353 lines
7.9 KiB
C
353 lines
7.9 KiB
C
#include "defines.h"
|
|
|
|
/*══════════════════════════════════════════════════════════════════════════*/
|
|
/*──────────────────────────────────────────────────────────────────────────*/
|
|
|
|
#include "ambiance.def"
|
|
#include "diskfunc.def"
|
|
#include "extra.def"
|
|
#include "fiche.def"
|
|
#include "flipbox.def"
|
|
#include "gamemenu.def"
|
|
#include "gerelife.def"
|
|
#include "geretrak.def"
|
|
#include "grille.def"
|
|
#include "holomap.def"
|
|
#include "incrust.def"
|
|
#include "message.def"
|
|
#include "object.def"
|
|
#include "perso.def"
|
|
#include "playfla.def"
|
|
|
|
/* prototype */
|
|
|
|
char *GetMultiText( LONG text, char *dst ) ;
|
|
|
|
WORD GiveObjSelect( WORD type, LONG xm, LONG ym ) ;
|
|
|
|
UBYTE WorldColBrick( WORD xw, WORD yw, WORD zw ) ;
|
|
|
|
WORD ThrowExtra( WORD owner,
|
|
WORD x, WORD y, WORD z, WORD num,
|
|
WORD alpha, WORD beta, WORD vitesse, WORD poids,
|
|
WORD hitforce ) ;
|
|
WORD GetValue() ;
|
|
|
|
WORD GetListObjet( WORD x0, WORD y0 ) ;
|
|
|
|
LONG SceReadWord() ;
|
|
WORD SearchLastZoneSce() ;
|
|
|
|
ULONG HQ_MixSample( WORD numsample, WORD decalage, WORD repeat, WORD volleft, WORD volright ) ;
|
|
void HQ_StopOneSample( WORD num ) ;
|
|
|
|
void *LoadTestMalloc( char *filename ) ;
|
|
|
|
WORD InitAnim( UBYTE gen_anim, WORD flag, UBYTE gen_nextanim, WORD numobj ) ;
|
|
WORD SearchAnim( UBYTE numanim, WORD numobj ) ;
|
|
WORD SearchBody( UBYTE numbody, WORD numobj ) ;
|
|
void LoadFic( UBYTE indexfileobjet, WORD numobj ) ;
|
|
|
|
/*--------- divers ---------------------------------------------*/
|
|
|
|
extern UWORD *BufOrder ;
|
|
extern UBYTE *BufText ;
|
|
extern UBYTE *BufSpeak ;
|
|
|
|
extern UBYTE GamePathname[] ;
|
|
|
|
extern WORD ComportementDebug;
|
|
|
|
extern UBYTE *LbaFont ;
|
|
extern UBYTE *Screen ;
|
|
extern UBYTE PalettePcx[] ;
|
|
extern UBYTE *PtrPal ;
|
|
|
|
extern WORD MyJoy ;
|
|
extern WORD MyFire ;
|
|
extern WORD MyKey ;
|
|
|
|
extern WORD LastFire ;
|
|
|
|
extern LONG FlagVsync ;
|
|
extern WORD FlagMCGA ;
|
|
extern LONG FlagCredits ;
|
|
|
|
extern UBYTE String[] ;
|
|
extern UBYTE EditString[] ;
|
|
extern WORD Value ;
|
|
|
|
extern LONG SampleVolume, MusicVolume, CDVolume, LineVolume, MasterVolume ;
|
|
extern WORD SamplesEnable ;
|
|
extern UBYTE *PtrSample[] ;
|
|
|
|
extern WORD QuickMessage ;
|
|
extern LONG FlecheForcee ;
|
|
|
|
extern WORD FlagPalettePcx ;
|
|
extern WORD FlagFade ;
|
|
extern WORD FlagMessageShade ;
|
|
extern WORD Bulle ;
|
|
extern WORD FlagBlackPal ;
|
|
|
|
extern WORD FlaFromCD ;
|
|
extern UBYTE PathFla[] ;
|
|
|
|
extern LONG Version_US ;
|
|
|
|
/*-------- RESSOURCES ---------------------------------------------*/
|
|
|
|
extern T_HQR_HEADER *HQR_Samples ;
|
|
extern T_HQR_HEADER *HQR_Midi ;
|
|
extern T_HQR_HEADER *InventoryObj ;
|
|
|
|
/*-------- DISKFUNC.C ---------------------------------------------*/
|
|
|
|
extern char PleaseWait[] ;
|
|
|
|
extern UBYTE ProgDrive[] ;
|
|
extern UBYTE ProgDir[] ;
|
|
|
|
extern ULONG OrgDrive ;
|
|
extern UBYTE OrgDir[] ;
|
|
|
|
extern UBYTE Drive[] ;
|
|
extern UBYTE Dir[] ;
|
|
extern UBYTE Name[] ;
|
|
extern UBYTE Ext[] ;
|
|
|
|
extern UBYTE OrgPathname[] ;
|
|
extern UBYTE ProgramPathname[] ;
|
|
|
|
extern UBYTE Pathname[] ;
|
|
|
|
extern UBYTE FliPathname[_MAX_PATH] ;
|
|
|
|
/*-------- SCRIPT.C ---------------------------------------------*/
|
|
|
|
extern UBYTE FicName[] ;
|
|
extern UBYTE *PtrFiche ;
|
|
extern UBYTE *PtrCommand ;
|
|
extern UBYTE *PtrFicName ;
|
|
|
|
/*-------- FLIP_BOX.C ---------------------------------------------*/
|
|
|
|
extern WORD NbPhysBox ;
|
|
extern WORD NbOptPhysBox ;
|
|
|
|
/*-------- LIB_SVGA ---------------------------------------------*/
|
|
|
|
extern WORD NbPolyPoints ;
|
|
|
|
/*-------- life tool ---------------------------------------------*/
|
|
|
|
extern WORD ErrorFlag ;
|
|
|
|
extern WORD FlagInfos ;
|
|
|
|
extern WORD Modif ;
|
|
|
|
extern UBYTE DefPathname[] ;
|
|
extern UBYTE ScePathname[] ;
|
|
extern UBYTE PcxPathname[] ;
|
|
|
|
extern WORD FlagFrame ;
|
|
|
|
extern T_ZONE *ListZone ;
|
|
extern WORD NbZones ;
|
|
|
|
extern WORD IndexZone ;
|
|
extern WORD EditNumZone ;
|
|
extern WORD EditTypeZone ;
|
|
extern WORD VisuTypeZone ;
|
|
|
|
extern UBYTE *ListTypeZone[] ;
|
|
|
|
extern T_TRACK *ListBrickTrack ;
|
|
extern WORD NbBrickTrack ;
|
|
|
|
extern WORD IndexBrickTrack ;
|
|
extern WORD EditNumTrack ;
|
|
|
|
extern WORD ActiveEdit ;
|
|
|
|
/*
|
|
extern T_FLAG ListFlagCube[] ;
|
|
extern T_FLAG ListFlagGame[] ;
|
|
*/
|
|
extern UBYTE ListFlagCube[] ;
|
|
extern UBYTE ListFlagGame[] ;
|
|
|
|
extern UBYTE ListFlagInventory[] ;
|
|
|
|
|
|
extern UBYTE *ListMove[] ;
|
|
|
|
/*--------- holomap ----------------------------*/
|
|
|
|
//extern T_HOLO_OBJ ListHoloObj[MAX_HOLO_OBJ] ;
|
|
//extern WORD NbHoloObj ;
|
|
|
|
extern T_HOLO_POS *ListHoloPos ; // [MAX_HOLO_POS] ;
|
|
extern UBYTE TabHoloPos[] ;
|
|
|
|
/*--------- menus -----------------------------*/
|
|
|
|
extern WORD GameChoice ;
|
|
extern WORD GameNbChoices ;
|
|
extern WORD GameListChoice[] ;
|
|
|
|
/*--------- perso ----------------------------*/
|
|
|
|
extern WORD FlagTheEnd ;
|
|
|
|
extern WORD ActionNormal ;
|
|
extern WORD InventoryAction ;
|
|
extern WORD Weapon ;
|
|
|
|
extern WORD Comportement ;
|
|
extern WORD AnimRien ;
|
|
extern WORD AnimRienNormal, AnimRienSportif, AnimRienAgressif, AnimRienDiscret, AnimRienProtopack ;
|
|
|
|
extern UBYTE *PtrFile3dNormal ;
|
|
extern UBYTE *PtrFile3dSportif ;
|
|
extern UBYTE *PtrFile3dAgressif ;
|
|
extern UBYTE *PtrFile3dDiscret ;
|
|
extern UBYTE *PtrFile3dProtopack ;
|
|
|
|
extern WORD SceZoom ;
|
|
extern WORD Shadow ;
|
|
extern WORD ShadowX, ShadowY, ShadowZ ;
|
|
extern UBYTE ShadowCol ;
|
|
|
|
extern WORD NumHolomapTraj ;
|
|
extern WORD FlagChgCube, NewCube, NumCube ;
|
|
extern WORD NewPosX, NewPosY, NewPosZ ;
|
|
extern WORD SceneStartX, SceneStartY, SceneStartZ ;
|
|
extern WORD CubeStartX, CubeStartY, CubeStartZ ;
|
|
extern WORD GameOverCube ;
|
|
|
|
extern WORD CombatAuto ;
|
|
extern WORD MagicBall ;
|
|
extern WORD MagicBallType ;
|
|
extern WORD MagicBallCount ;
|
|
|
|
extern WORD MagicLevel ;
|
|
extern WORD MagicPoint ;
|
|
extern WORD NbGoldPieces ;
|
|
extern WORD NbLittleKeys ;
|
|
extern WORD Chapitre ;
|
|
extern UBYTE Island ;
|
|
extern WORD Fuel ;
|
|
extern WORD NumPingouin ;
|
|
|
|
extern WORD NbFourLeafClover ;
|
|
extern WORD NbCloverBox ;
|
|
|
|
extern WORD FlagClimbing ;
|
|
extern WORD StartYFalling ;
|
|
extern T_REAL_VALUE RealFalling ;
|
|
extern WORD StepFalling ;
|
|
|
|
extern UBYTE CodeJeu ;
|
|
extern WORD FlagWater ;
|
|
|
|
// perso sauvegarde entrée cube
|
|
|
|
extern WORD SaveCube ;
|
|
extern WORD SaveComportement ;
|
|
|
|
extern char SaveStringBody[SIZE_NAME+1] ;
|
|
extern BYTE SaveGenBody ;
|
|
|
|
extern WORD SaveBeta ;
|
|
extern WORD SaveNbGoldPieces ;
|
|
extern WORD SaveMagicLevel ;
|
|
extern WORD SaveMagicPoint ;
|
|
extern WORD SaveLifePoint ;
|
|
extern WORD SaveChapitre ;
|
|
extern WORD SaveNbCloverBox ;
|
|
extern WORD SaveNbFourLeafClover ;
|
|
|
|
/*--------- Extra objs ----------------------------*/
|
|
|
|
extern T_EXTRA ListExtra[] ;
|
|
|
|
//extern UBYTE *PtrSpriteExtra ;
|
|
extern T_HQR_HEADER *HQRPtrSpriteExtra ;
|
|
extern WORD *PtrZvExtra ;
|
|
|
|
/*---------------- incrust display ----------------*/
|
|
|
|
extern T_INCRUST_DISP ListIncrustDisp[] ;
|
|
|
|
/*-------- Moteur 3D ---------------------------------------------*/
|
|
|
|
extern UBYTE *BufferShadow ;
|
|
|
|
extern UBYTE *BufferAnim ;
|
|
extern UBYTE *PtrBufferAnim ;
|
|
|
|
extern LONG NbBodys ;
|
|
extern UBYTE *PtrBody[] ;
|
|
extern T_HQR_HEADER *HQR_Anims ;
|
|
|
|
extern LONG NbObjets ;
|
|
extern T_OBJET ListObjet[] ;
|
|
|
|
extern T_SORT ListTri[] ;
|
|
|
|
extern WORD NumObjFollow ;
|
|
|
|
/*--------- ambiance ----------------------------*/
|
|
|
|
extern WORD SampleAmbiance[] ;
|
|
extern WORD SampleRepeat[] ;
|
|
extern WORD SampleRnd[] ;
|
|
extern WORD SamplePlayed ;
|
|
extern ULONG TimerNextAmbiance ;
|
|
extern WORD SecondEcart ;
|
|
extern WORD SecondMin ;
|
|
extern WORD CubeJingle ;
|
|
extern UBYTE *PtrXmi ;
|
|
extern WORD NumXmi ;
|
|
|
|
/*-------- Brick ISO ---------------------------------------------*/
|
|
|
|
#ifdef BRICK_HQR
|
|
extern UBYTE *BufferBrick ;
|
|
#endif
|
|
extern UBYTE *BufCube ;
|
|
|
|
extern WORD FirstTime ;
|
|
extern WORD CameraZone ;
|
|
|
|
extern LONG StartXCube ;
|
|
extern LONG StartYCube ;
|
|
extern LONG StartZCube ;
|
|
|
|
extern LONG WorldXCube ;
|
|
extern LONG WorldYCube ;
|
|
extern LONG WorldZCube ;
|
|
|
|
extern WORD XpOrgw ;
|
|
extern WORD YpOrgw ;
|
|
|
|
extern WORD LastXmBrickSelected ;
|
|
extern WORD LastYmBrickSelected ;
|
|
extern WORD LastZmBrickSelected ;
|
|
|
|
extern UBYTE *BufCollis ;
|
|
|
|
extern WORD CubeClip ;
|
|
extern WORD CubeClipX, CubeClipY, CubeClipZ ;
|
|
|
|
extern WORD FlagAffGrille ;
|
|
/*--------- Message ---------------------------------------------*/
|
|
|
|
extern WORD NumObjSpeak ;
|
|
extern LONG FlagSpeak ;
|
|
|
|
|
|
|