home *** CD-ROM | disk | FTP | other *** search
- /*
- Ghost In The Machine
- main.c
- */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <proto/graphics.h>
- #include <proto/exec.h>
- #include <utility/hooks.h>
-
- #include "VA3d:VA3D_Structures.h"
- #include "va3d:VA3D_animation.h"
- #include "va3d:VA3D_Display.h"
- #include "va3d:VA3D_entity.h"
- #include "va3d:VA3D_globalvar.h"
- #include "va3d:VA3D_io.h"
- #include "va3d:VA3D_map.h"
- #include "va3d:VA3D_precalc.h"
- #include "va3d:VA3D_palette.h"
- #include "va3d:VA3D_render.h"
- #include "va3d:VA3D_scene.h"
- #include "va3d:VA3D_Timer.h"
- #include "va3d:VA3D_xview.h"
-
- #include "ShowPicture/Show_Pic.h"
- #include "MusicPlayer/Music_Play.h"
- #include "XPK/XPK_Reader.h"
-
- LONG __near __stack = 20*1024;
-
- ULONG __saveds __asm RenderFrameHook(REGISTER __a0 struct Hook *hook,
- REGISTER __a2 APTR object,
- REGISTER __a1 APTR message);
- ULONG __saveds __asm RenderQuakeFrameHook(REGISTER __a0 struct Hook *hook,
- REGISTER __a2 APTR object,
- REGISTER __a1 APTR message);
- ULONG __saveds __asm PaletteHookFunc(REGISTER __a0 struct Hook *hook,
- REGISTER __a2 APTR object,
- REGISTER __a1 APTR message);
-
- ENTITY *FindEntity(ENTITY *Entity, STRPTR Name);
-
- VOID CleanUp(VOID);
- VOID FillPKeyEntry(PKEY_FRAME *CurrentKey,PKEY_FRAME *NextKey,PALETTE *Palette,ULONG Time,ULONG Flags);
- struct Hook RenderHook;
- struct Hook PalHook;
-
- typedef struct Scene_2
- {
- SCENE *Scene;
- PALETTE *Palette;
- }SCENE_2;
-
- SCENE_2 *LoadAndRelocScene(STRPTR SceneName,STRPTR PaletteName);
- VOID FreeScene(SCENE_2 *Scene);
-
- #define VALUES_NUMBER 4096
- #define ANGLES_NUMBER 360
- #define VISIBLE_ANGLE 40
- VOID *KatowiceChunky;
- VOID *KatowicePalette;
- VOID *NoiseChunky;
- VOID *NoisePalette;
- VOID *Bump_ShineLUT;
- VOID *EndChunky;
- VOID *EndPalette;
- SCENE_2 *IntroScene;
- SCENE_2 *GhostScene;
- SCENE_2 *BabeScene;
- SCENE_2 *RolloScene;
- SCENE_2 *BumpScene;
- SCENE_2 *QuakeScene;
- SCENE_2 *CreditsScene;
- SCENE_2 *DragonScene;
- SCENE_2 *VA3DLogoScene;
-
- PALETTE *BlackPal;
- PALETTE *WhitePal;
- PALETTE *RedPal;
- PALETTE *BluePal;
-
- ULONG CurrentTime;
-
- DVIEW *DView=NULL;
-
- #define SEC 709379
-
- PKEY_FRAME PKey[7];
-
- ULONG DragonFly[] =
- {
- 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1
- };
-
- ULONG SoldierRun[] =
- {
- 73, 74, 75, 76, 77, 78, 79, 80
- };
-
- ULONG DogRun[] =
- {
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59
- };
-
- ULONG SoldierStand_Load_Shoot[] =
- {
- //0, 1, 2, 3, 4, 5, 6, 7,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2,
- 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1,
- 2, 3, 4, 5, 6, 7
- };
-
- ULONG DogStand_Pain[] =
- {
- //69, 70, 71, 72, 73, 74, 75, 76,
- 77, 69 ,70, 71, 72, 73, 74, 75, 76, 77,
- 69, 70, 71,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25
- };
-
-
- MORPH_OBJECT *SoldierMObject;
- MORPH_OBJECT *DogMObject;
- MORPH_OBJECT *DragonMObject;
-
-
- VOID main(int argc,char **argv)
- {
- LONG i;
- BlackPalette[0] = 0x01000000;
- WhitePalette[0] = 0x01000000;
- RedPalette[0] = 0x01000000;
- BluePalette[0] = 0x01000000;
-
- for(i=0;i<256;i++)
- {
- WhitePalette[3*i+1] = (ULONG)255<<24;
- WhitePalette[3*i+2] = (ULONG)255<<24;
- WhitePalette[3*i+3] = (ULONG)255<<24;
- RedPalette[3*i+1] = (ULONG)255<<24;
- RedPalette[3*i+2] = (ULONG)0<<24;
- RedPalette[3*i+3] = (ULONG)0<<24;
- BluePalette[3*i+1] = (ULONG)0<<24;
- BluePalette[3*i+2] = (ULONG)0<<24;
- BluePalette[3*i+3] = (ULONG)255<<24;
- }
-
- RenderHook.h_Entry = (HOOKFUNC)RenderFrameHook;
- PalHook.h_Entry = (HOOKFUNC)PaletteHookFunc;
-
- if(!XPK_Init())
- {
- CleanUp();
- }
-
- VA3D_InitFFBPpower2();
-
- if((VA3D_RotateTable = XPK_UnPackFile("Data/Rotate.table")) == NULL) CleanUp();
-
- VA3D_AnglesNumber = (LONG)ANGLES_NUMBER;
- VA3D_CoordsNumber = (LONG)VALUES_NUMBER;
- VA3D_MinCoord = -(LONG)VALUES_NUMBER/2;
- VA3D_MaxCoord = -VA3D_MinCoord-1;
- VA3D_RotateTableCos = &VA3D_RotateTable[VALUES_NUMBER*(ANGLES_NUMBER/4)];
-
- if(!VA3D_PrecalcArcSineTable())
- {
- CleanUp();
- }
-
- if(AvailMem(MEMF_CHIP) < 900000)
- {
- printf ("Not enough chip mem\n");
- CleanUp();
- }
-
- if(VA3D_InitGFX())
- {
- if(!VA3D_PrecalcPerspectiveTable(VISIBLE_ANGLE,GlobalWidth,VALUES_NUMBER))
- {
- CleanUp();
- }
-
- if((IntroScene = LoadAndRelocScene("Data/IntroScene.va3d","Data/Venus.palette")) == NULL) CleanUp();
-
- if((BlackPal = VA3D_AllocPalette(VA3DAP_RGB32,BlackPalette,
- VA3DAP_CreateHashTable,FALSE,
- TAG_DONE)) == NULL) CleanUp();
-
- if((WhitePal = VA3D_AllocPalette(VA3DAP_RGB32,WhitePalette,
- VA3DAP_CreateHashTable,FALSE,
- TAG_DONE)) == NULL) CleanUp();
-
- if((RedPal = VA3D_AllocPalette(VA3DAP_RGB32,RedPalette,
- VA3DAP_CreateHashTable,FALSE,
- TAG_DONE)) == NULL) CleanUp();
-
- if((BluePal = VA3D_AllocPalette(VA3DAP_RGB32,BluePalette,
- VA3DAP_CreateHashTable,FALSE,
- TAG_DONE)) == NULL) CleanUp();
-
- if((DView=VA3D_OpenView(BlackPalette,DVF_DBUFF)) == NULL)
- {
- printf("Cannot Open Screen\n");
- CleanUp();
- }
- RenderHook.h_Data = DView;
- PalHook.h_Data = DView;
-
- if((VA3D_ShineLUT = XPK_UnPackFile("Data/Venus.ShinePalette")) == NULL) CleanUp();
-
- FillPKeyEntry(&PKey[0],&PKey[1],BlackPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],IntroScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],NULL,IntroScene->Palette,15*SEC,PKFF_NOINTERPOLATE);
-
- if(!StartMusic(IntroTuneP61)) CleanUp();
- {
- VA3D_AnimSequence(IntroScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- StopMusic();
- free(VA3D_ShineLUT);
- memcpy(tmpPal,IntroScene->Palette->RGB32,3080);
- FreeScene(IntroScene);
- }
-
- if((GhostScene=LoadAndRelocScene("Data/GhostScene.va3d","Data/Ghost.palette")) == NULL) CleanUp();
- if((BabeScene=LoadAndRelocScene("Data/BabeScene.va3d","Data/Ghost.palette")) == NULL) CleanUp();
- if((BumpScene=LoadAndRelocScene("Data/BumpScene.va3d","Data/Bump.palette")) == NULL) CleanUp();
- if((QuakeScene=LoadAndRelocScene("Data/Quake2.va3d","Data/Quake.palette")) == NULL) CleanUp();
- if((KatowiceChunky = XPK_UnPackFile("Data/Katowice.chunky")) == NULL) CleanUp();
- if((KatowicePalette = XPK_UnPackFile("Data/Katowice.palette")) == NULL) CleanUp();
- if((Bump_ShineLUT = XPK_UnPackFile("Data/Bump.ShinePalette")) == NULL) CleanUp();
- if((VA3D_ShineLUT = XPK_UnPackFile("Data/Quake.ShinePalette")) == NULL) CleanUp();
-
- FadeOutPalette(DView,tmpPal,0L,0L,0L,2*SEC);
-
- if(!StartMusic(MainTuneP61)) CleanUp();
-
- FillPKeyEntry(&PKey[0],&PKey[1],BlackPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],GhostScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],NULL,GhostScene->Palette,30*SEC,PKFF_NOINTERPOLATE);
- VA3D_AnimSequence(GhostScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- FillPKeyEntry(&PKey[0],&PKey[1],WhitePal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],GhostScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],NULL,GhostScene->Palette,45*SEC,PKFF_NOINTERPOLATE);
- VA3D_AnimSequence(BabeScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- RenderHook.h_Entry = (HOOKFUNC)RenderQuakeFrameHook;
-
- FillPKeyEntry(&PKey[0],&PKey[1],BlackPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],QuakeScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],NULL,RedPal,36*SEC,PKFF_NOINTERPOLATE);
-
- SoldierMObject = (MORPH_OBJECT *)FindEntity(QuakeScene->Scene->Entities, "soldier.mdl");
- DogMObject = (MORPH_OBJECT *)FindEntity(QuakeScene->Scene->Entities, "dog.mdl");
-
- SoldierMObject->Sequence = SoldierRun;
- SoldierMObject->SeqNumber = 8;
- SoldierMObject->CurrentSeq = 0;
- SoldierMObject->SeqDelay = 100000;
-
- DogMObject->Sequence = DogRun;
- DogMObject->SeqNumber = 12;
- DogMObject->CurrentSeq = 0;
- DogMObject->SeqDelay = 100000;
-
- VA3D_AnimSequence(QuakeScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_CurrentTime,&CurrentTime,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- FadeOutPalette(DView,QuakeScene->Palette->RGB32,255<<24,0L,0L,2*SEC);
-
- free(VA3D_ShineLUT);
- VA3D_ShineLUT = Bump_ShineLUT;
-
-
-
-
- RenderHook.h_Entry = (HOOKFUNC)RenderFrameHook;
-
- FillPKeyEntry(&PKey[0],&PKey[1],RedPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],BumpScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],&PKey[3],BumpScene->Palette,18*SEC,PKFF_NOINTERPOLATE);
- FillPKeyEntry(&PKey[3],NULL,BlackPal,20*SEC,PKFF_INTERPOLATE);
- VA3D_AnimSequence(BumpScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- if(!ShowPicture(KatowiceChunky,KatowicePalette,DisplayID)) CleanUp();
- free(KatowiceChunky);
- free(Bump_ShineLUT);
- FreeScene(GhostScene);
- FreeScene(QuakeScene);
- FreeScene(BabeScene);
- FreeScene(BumpScene);
-
- if((RolloScene=LoadAndRelocScene("Data/Roller.va3d","Data/Roller.palette")) == NULL) CleanUp();
- if((CreditsScene=LoadAndRelocScene("Data/Credits.va3d","Data/Credits.palette")) == NULL) CleanUp();
- if((DragonScene=LoadAndRelocScene("Data/Dragon.va3d","Data/Dragon.palette")) == NULL) CleanUp();
- if((VA3DLogoScene=LoadAndRelocScene("Data/VA3DLogo.va3d","Data/VA3DLogo.palette")) == NULL) CleanUp();
- if((NoiseChunky = XPK_UnPackFile("Data/Noise.chunky")) == NULL) CleanUp();
- if((NoisePalette = XPK_UnPackFile("Data/Noise.palette")) == NULL) CleanUp();
- if((EndChunky = XPK_UnPackFile("Data/End.chunky")) == NULL) CleanUp();
- if((EndPalette = XPK_UnPackFile("Data/End.palette")) == NULL) CleanUp();
- if((VA3D_ShineLUT = XPK_UnPackFile("Data/VA3DLogo.ShinePalette")) == NULL) CleanUp();
-
- while(P61_WaitPos2(20,45));
- ShutDownPicture(KatowicePalette);
- free(KatowicePalette);
-
- FillPKeyEntry(&PKey[0],&PKey[1],BlackPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],RolloScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],&PKey[3],RolloScene->Palette,26*SEC,PKFF_NOINTERPOLATE);
- FillPKeyEntry(&PKey[3],NULL,BluePal,28*SEC,PKFF_INTERPOLATE);
- VA3D_AnimSequence(RolloScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- DragonMObject = (MORPH_OBJECT *)FindEntity(DragonScene->Scene->Entities, "dragon.mdl");
- DragonMObject->Sequence = DragonFly;
- DragonMObject->SeqNumber = 14;
- DragonMObject->CurrentSeq = 0;
- DragonMObject->SeqDelay = 90000;
-
- FillPKeyEntry(&PKey[0],&PKey[1],BluePal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],DragonScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],&PKey[3],DragonScene->Palette,18*SEC,PKFF_NOINTERPOLATE);
- FillPKeyEntry(&PKey[3],NULL,BlackPal,20*SEC,PKFF_INTERPOLATE);
- VA3D_AnimSequence(DragonScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- FillPKeyEntry(&PKey[0],&PKey[1],BlackPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],CreditsScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[2],&PKey[3],CreditsScene->Palette,30*SEC,PKFF_NOINTERPOLATE);
- FillPKeyEntry(&PKey[3],NULL,BlackPal,32*SEC,PKFF_INTERPOLATE);
- VA3D_AnimSequence(CreditsScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- if(!ShowPicture2(NoiseChunky,NoisePalette,DisplayID)) CleanUp();
-
- for(i=0;i<250;i++) WaitTOF();
-
- ShutDownPicture(NoisePalette);
-
- FillPKeyEntry(&PKey[0],&PKey[1],BlackPal,0,0);
- FillPKeyEntry(&PKey[1],&PKey[2],VA3DLogoScene->Palette,2*SEC,PKFF_INTERPOLATE);
- FillPKeyEntry(&PKey[3],NULL,VA3DLogoScene->Palette,10*SEC,PKFF_NOINTERPOLATE);
- VA3D_AnimSequence(VA3DLogoScene->Scene,
- VA3DAS_PKeyFrames,&PKey,
- VA3DAS_PaletteHook,&PalHook,
- VA3DAS_TimerHook,&TimerHook,
- VA3DAS_RenderHook,&RenderHook,
- TAG_DONE);
-
- while(P61_WaitPos2(33,40));
-
- FadeOutPalette(DView,VA3DLogoScene->Palette->RGB32,0L,0L,0L,2*SEC);
-
- while(P61_WaitPos2(34,1));
- if(!ShowPicture2(EndChunky,EndPalette,DisplayID)) CleanUp();
- StopMusic();
- ShutDownPicture(EndPalette);
-
- for(i=0;i<100;i++) WaitTOF();
-
- free(VA3D_ShineLUT);
- free(EndPalette);
- free(EndChunky);
- free(NoisePalette);
- free(NoiseChunky);
- FreeScene(RolloScene);
- FreeScene(CreditsScene);
- FreeScene(DragonScene);
- FreeScene(VA3DLogoScene);
-
- VA3D_FreePalette(RedPal);
- VA3D_FreePalette(BluePal);
- VA3D_FreePalette(WhitePal);
- VA3D_FreePalette(BlackPal);
- printf("Alles in ordnung!\n");
- CleanUp();
- }
- else
- {
- printf("Cannot Init GFX Engine!\n");
- CleanUp();
- }
- }
-
- ULONG __saveds __asm RenderFrameHook(REGISTER __a0 struct Hook *hook,
- REGISTER __a2 APTR object,
- REGISTER __a1 APTR message)
- {
- SCENE *Scene = (SCENE*)object;
- DVIEW *tmpDView = (DVIEW *)hook->h_Data;
-
- VA3D_TransformScene(Scene, Scene->Camera, tmpDView->XView);
- VA3D_ClearXView(Scene, tmpDView->XView);
- VA3D_RenderScene(Scene, Scene->Camera, tmpDView->XView, RT_REAL);
-
- VA3D_SafeRender(tmpDView);
- DView->C2P(tmpDView);
- FrameEvent();
- VA3D_SwitchView(tmpDView);
- return 0L;
- }
-
- ULONG __saveds __asm RenderQuakeFrameHook(REGISTER __a0 struct Hook *hook,
- REGISTER __a2 APTR object,
- REGISTER __a1 APTR message)
- {
- SCENE *Scene = (SCENE*)object;
- DVIEW *tmpDView = (DVIEW *)hook->h_Data;
- STATIC Flag = 0;
-
- if((CurrentTime >= 30*SEC) && (Flag == 0))
- {
- tmpSeqTime = 30*SEC;
- SoldierMObject->Sequence = SoldierStand_Load_Shoot;
- SoldierMObject->SeqNumber = 55;
- SoldierMObject->CurrentSeq = 0;
- SoldierMObject->SeqDelay = 75000;
-
- DogMObject->Sequence = DogStand_Pain;
- DogMObject->SeqNumber = 55;
- DogMObject->CurrentSeq = 0;
- DogMObject->SeqDelay = 75000;
- Flag = 1;
- }
-
- VA3D_TransformScene(Scene, Scene->Camera, tmpDView->XView);
- VA3D_ClearXView(Scene, tmpDView->XView);
- VA3D_RenderScene(Scene, Scene->Camera, tmpDView->XView, RT_REAL);
-
- VA3D_SafeRender(tmpDView);
- DView->C2P(tmpDView);
- FrameEvent();
- VA3D_SwitchView(tmpDView);
- return 0L;
- }
-
- ULONG __saveds __asm PaletteHookFunc(REGISTER __a0 struct Hook *hook,
- REGISTER __a2 APTR object,
- REGISTER __a1 APTR message)
- {
- PALETTE *Palette = (PALETTE*)object;
- DVIEW *tmpDView = (DVIEW *)hook->h_Data;
-
- LoadRGB32(tmpDView->VP,Palette->RGB32);
- return 0L;
- }
-
- SCENE_2 *LoadAndRelocScene(STRPTR SceneName,STRPTR PaletteName)
- {
- VOID *tmpSceneData;
- VOID *tmpPaletteData;
- SCENE_2 *Scene;
- ULONG Status;
-
- if((tmpPaletteData = XPK_UnPackFile(PaletteName)) == NULL) return NULL;
- if((tmpSceneData = XPK_UnPackFile(SceneName)) == NULL) return NULL;
- if((Scene = malloc(sizeof(SCENE_2))) == NULL) return NULL;
- if((Scene->Palette = VA3D_AllocPalette(VA3DAP_RGB32,tmpPaletteData,
- VA3DAP_CreateHashTable,TRUE,
- TAG_DONE)) == NULL) return NULL;
-
- free(tmpPaletteData);
- if((Scene->Scene = VA3D_LoadScene(
- VA3DLS_FileAddress, tmpSceneData,
- VA3DLS_LoadMapHook,&FileHook,
- VA3DLS_Status, &Status,
- VA3DLS_Palette,Scene->Palette,
- TAG_DONE)) == NULL) CleanUp();
-
- VA3D_AllocDeepBuffer(Scene->Scene);
-
- free(tmpSceneData);
-
- return Scene;
- }
-
- VOID FreeScene(SCENE_2 *Scene)
- {
- if(Scene)
- {
- if(Scene->Scene) VA3D_FreeScene(Scene->Scene);
- if(Scene->Palette) VA3D_FreePalette(Scene->Palette);
- free(Scene);
- }
- }
-
- VOID CleanUp(VOID)
- {
- VA3D_FreeArcSineTable();
- VA3D_FreeRotateTable();
- VA3D_FreePerspectiveTable();
- if(DView) VA3D_CloseView(DView);
- VA3D_CloseGFX();
- XPK_Close();
- exit(0);
- }
-
- VOID FillPKeyEntry(PKEY_FRAME *CurrentKey,PKEY_FRAME *NextKey,PALETTE *Palette,ULONG Time,ULONG Flags)
- {
- CurrentKey->Next = NextKey;
- CurrentKey->Palette = Palette;
- CurrentKey->Flags = Flags;
- CurrentKey->Time = Time;
- }
-
-
- ENTITY *FindEntity(ENTITY *Entity, STRPTR Name)
- {
-
- while(Entity)
- {
- if(!strcmp(Entity->Name, Name))
- return Entity;
-
- Entity = Entity->Next;
- }
-
- return NULL;
- }
-