#include "c_extern.h" #include "direct.h" #include UBYTE *PtrSce ; UBYTE *PtrScene ; #define GET_BYTE (*PtrSce++) #define GET_WORD (*(WORD*)PtrSce) ; PtrSce+=2 /*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ* ÛßßßÜ Û ÛÛßßß Û Üß Ûßßßß Û Û ÛÛÜ Û Ûßßßß ÛÛ Û ÛÛ ßßßßÛ ÛÛßÜ ÛÛßß ÛÛ Û ÛÛßÛÛ ÛÛ ßßßß ßß ßßßßß ßß ß ßßßßß ßß ßßßßß ßß ß ßßßßß *ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*/ /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ void GetDiskEnv( UBYTE *progpath ) { _splitpath( (char*)progpath, ProgDrive, ProgDir, Name, Ext ) ; getcwd( OrgDir, _MAX_DIR ) ; _dos_getdrive( &OrgDrive ) ; } void RestoreDiskEnv() { ULONG total ; _dos_setdrive( OrgDrive, &total ) ; chdir( OrgDir ) ; } /*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ* ÛÛßßß Ûßßßß Ûßßßß ÛÛÜ Û Ûßßßß Ûßßßß Û Û Ûßßßß ßßßßÛ ÛÛ ÛÛßß ÛÛßÛÛ ÛÛßß ÛÛßß ÛÛ ÛÛ ÛÛßß ßßßßß ßßßßß ßßßßß ßß ß ßßßßß ßßßßß ßß ßß ßßßßß ßßßßß *ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*/ /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ WORD LoadScene( WORD numscene ) { T_OBJET *ptrobj ; WORD n, info3 ; UBYTE string[256] ; UBYTE mess[256] ; WORD sizetoload ; WORD indexfile3d ; // PtrScene = PtrSce = LoadMalloc_HQR( PATH_RESSOURCE"scene.hqr", numscene ) ; HQRM_Load( PATH_RESSOURCE"scene.hqr", numscene, &PtrScene ) ; CHECK_MEMORY PtrSce = PtrScene ; if( !PtrSce ) { Message( "Scene.Hqr introuvable ou pas assez mem", TRUE ) ; } // info world: INFO_WORLD NewCube = numscene ; Island = GET_BYTE ; GameOverCube = GET_BYTE ; n = GET_WORD ; n = GET_WORD ; // ListHoloObj[NUM_PERSO].Alpha = GET_WORD ; // ListHoloObj[NUM_PERSO].Beta = GET_WORD ; // ListHoloObj[NUM_PERSO].Size = GET_WORD ; // ambiance: AMBIANCE AlphaLight = GET_WORD ; BetaLight = GET_WORD ; SampleAmbiance[0] = GET_WORD ; SampleRepeat[0] = GET_WORD ; SampleRnd[0] = GET_WORD ; SampleAmbiance[1] = GET_WORD ; SampleRepeat[1] = GET_WORD ; SampleRnd[1] = GET_WORD ; SampleAmbiance[2] = GET_WORD ; SampleRepeat[2] = GET_WORD ; SampleRnd[2] = GET_WORD ; SampleAmbiance[3] = GET_WORD ; SampleRepeat[3] = GET_WORD ; SampleRnd[3] = GET_WORD ; SecondMin = GET_WORD ; SecondEcart = GET_WORD ; CubeJingle = GET_BYTE ; // PlayMidiFile( CubeJingle ) ; // hero inits: HERO_START ptrobj = ListObjet ; CubeStartX = GET_WORD ; CubeStartY = GET_WORD ; CubeStartZ = GET_WORD ; sizetoload = GET_WORD ; ptrobj->PtrTrack = PtrSce ; PtrSce += sizetoload ; sizetoload = GET_WORD ; ptrobj->PtrLife = PtrSce ; PtrSce += sizetoload ; ptrobj++ ; // objets: OBJECT NbObjets = GET_WORD ; for( n=1; nFlags = GET_WORD ; indexfile3d = GET_WORD ; if( !(ptrobj->Flags & SPRITE_3D) ) { HQRM_Load( PATH_RESSOURCE"File3D.hqr", indexfile3d, &ptrobj->PtrFile3D ) ; CHECK_MEMORY /* ptrobj->PtrFile3D = LoadMalloc_HQR( PATH_RESSOURCE"File3D.hqr", indexfile3d ) ; */ } ptrobj->GenBody = GET_BYTE ; ptrobj->GenAnim = GET_BYTE ; /* if( n==5 ) { CoulText( 15,0 ) ; Text( 10, 300, "obj 5 org anim: %d", ptrobj->GenAnim ) ; } */ ptrobj->Sprite = GET_WORD ; ptrobj->OldPosX = ptrobj->PosObjX = GET_WORD ; ptrobj->OldPosY = ptrobj->PosObjY = GET_WORD ; ptrobj->OldPosZ = ptrobj->PosObjZ = GET_WORD ; ptrobj->HitForce = GET_BYTE ; ptrobj->OptionFlags = GET_WORD ; ptrobj->OptionFlags &= ~EXTRA_GIVE_NOTHING ; ptrobj->Beta = GET_WORD ; ptrobj->SRot = GET_WORD ; ptrobj->Move = GET_WORD ; ptrobj->Info = GET_WORD ; ptrobj->Info1 = GET_WORD ; ptrobj->Info2 = GET_WORD ; ptrobj->Info3 = GET_WORD ; ptrobj->NbBonus = GET_BYTE ; ptrobj->CoulObj = GET_BYTE ; ptrobj->Armure = GET_BYTE ; ptrobj->LifePoint = GET_BYTE ; sizetoload = GET_WORD ; ptrobj->PtrTrack = PtrSce ; PtrSce = PtrSce + sizetoload ; sizetoload = GET_WORD ; ptrobj->PtrLife = PtrSce ; PtrSce = PtrSce + sizetoload ; } // zone declechement: ZONE NbZones = GET_WORD ; ListZone = (T_ZONE*)PtrSce ; PtrSce += NbZones * 12 * 2 ; // point track: TRACK NbBrickTrack = GET_WORD ; ListBrickTrack = (T_TRACK*)PtrSce ; return TRUE ; } /*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ* ÛßßßÜ Ûßßßß ÛßßÛ Û Û Ûßßßß ÛÛ Û ÛÛßß ÛÛßßÛ ÛÛ Û ÛÛ ßÛ ßßßß ßßßßß ßßßßß ßßßßß ßßßßß *ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*/ /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ /* void *LoadTestMalloc( char *filename ) { void *ptr ; UBYTE string[256] ; ptr = LoadMalloc( filename ) ; if( !ptr ) { strcpy( string, "ARG ! Mem:" ) ; strcat( string, Itoa( (ULONG)Malloc(-1) ) ) ; strcat( string, " fichier:" ) ; strcat( string, filename ) ; Message( string, TRUE ) ; } return ptr ; } */ /*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*/ /*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*/