reman3/Rayman_X/cpa/public/GAM/specif/Demos.h

240 lines
9.2 KiB
C

#define DEMO_ON
/*=========================================================================
* Demo.h : Demo's functions
*
*
* Demo MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 16/04/98
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1998
*=======================================================================*/
#if !defined(__Demo_H__)
#define __Demo_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#include "GAM/Header.h"
#define DEMO_DELTACOUNT 20 /* Save complete position only 1 out of DEMO_DELTACOUNT*/
#define DEMO_NOTHING 0
#define DEMO_RECORD 1
#define DEMO_PLAY 2
#define DEMO_FLAG_NEW_ENGINE_FRAME 0x00000001
#define DEMO_FLAG_STATE_CHANGE 0x00000002
#define DEMO_FLAG_FRAME_CHANGE 0x00000004
#define DEMO_FLAG_TRANSPARENCY_CHANGE 0x00000008
#define DEMO_FLAG_TRANSLATION_COMPLETE 0x00000010
#define DEMO_FLAG_TRANSLATION_DELTA 0x00000020
#define DEMO_FLAG_ROTATION_COMPLETE 0x00000040
#define DEMO_FLAG_ROTATION_DELTA 0x00000080
#define DEMO_FLAG_ACTIVATE 0x00000100
#define DEMO_FLAG_DESACTIVATE 0x00000200
#define DEMO_FLAG_ACTIVATE_CANAL 0x00000400
#define DEMO_FLAG_DESACTIVATE_CANAL 0x00000800
#define DEMO_FLAG_IS_AN_ALWAYS 0x00001000
/* #define DEMO_FLAG_SECTOR_CHANGE 0x00002000*/
#define DEMO_FLAG_COMPRESS_ACTOR_NUMBER 0x00002000
#define DEMO_FLAG_DELTA_POSITION 0x00004000
#define DEMO_FLAG_EXTENDED 0x00008000
#define DEMO_FLAG_ACTIVE_DESACTIVE 0x00000001
#define DEMO_FLAG_SUPERIMPOSED_TEXT 0x00000002
#define DEMO_FLAG_FIX_CHANGE 0x00000004
/* ANNECY AV {*/
#define DEMO_FLAG_CHANGE_VIEWPORT_SIZE 0x00000008
#define DEMO_FLAG_MODULE_TRANSPARENCY 0x00000010
#define DEMO_FLAG_ACTIVATE_TRANSPARENCY 0x00000020
#define DEMO_FLAG_DESACTIVATE_TRANSPARENCY 0x00000040
#define DEMO_FLAG_MOVE_MODULE 0x00000080
#define DEMO_FLAG_ROTATE_MODULE 0x00000100
#define DEMO_FLAG_GENERATE_AGO 0x00000200
/* END ANNECY AV }*/
/*
#define DEMO_FIX_HIT_POINTS 1
#define DEMO_FIX_HIT_POINTS_MAX 2
#define DEMO_FIX_SILVER_SPADE 3
#define DEMO_FIX_SILVER_SPADE_MAX 4
#define DEMO_FIX_LIVES 5
#define DEMO_FIX_TINGS 6
#define DEMO_FIX_BEES 7
*/
#define DEMO_TEST_FLAG(Flag,Mask) ( ((Flag) & (Mask)) == (Mask) )
#define DEMO_FLAG_CAST unsigned short
#define M_DEMO_MOVE(type) gp_DEMO_CurrentPosInMemory += sizeof(type)
#define M_DEMO_WRITE(info,type) \
{ \
memcpy(gp_DEMO_CurrentPosInMemory,info,sizeof(type)); \
M_DEMO_MOVE(type); \
}
#define M_DEMO_READ(info,type) \
{ \
memcpy(info,gp_DEMO_CurrentPosInMemory,sizeof(type)); \
M_DEMO_MOVE(type); \
}
#define M_DEMO_LOOK(info,decal,type) \
{ \
memcpy(info,gp_DEMO_CurrentPosInMemory+(decal),sizeof(type)); \
}
/* ANNECY AV {*/
typedef struct tdstDemoCompressedMatrix_
{
short a9_sCoef [9];
} tdstDemoCompressedMatrix;
typedef struct tdstDemoUltraConpressedMatrix_
{
char a9_cCoef [9];
} tdstDemoUltraCompressedMatrix;
typedef struct tdstDemoSOList_
{
LST2_M_StaticElementDeclaration(DEMO_tdxHandleToDemoSOElement)
HIE_tdxHandleToSuperObject hCharacterSupObject;
unsigned char ucReInit;
unsigned char ucDeltaCounter;
MTH3D_tdstVector _stTrs; /* translation*/
/* ANNECY AV {*/
/* POS_tdstShortQuaternion _stQuaternion; // rotation*/
tdstDemoCompressedMatrix stCompressedMatrix;
/* END ANNECY AV }*/
unsigned short wStateNumber;
unsigned short uwCurrentFrame;
unsigned char ucActivate;
unsigned char ucTransparence;
} tdstDemoSOList;
typedef struct tdstDemoGMTList_
{
LST2_M_StaticElementDeclaration(DEMO_tdxHandleToDemoGMTElement)
GMT_tdxHandleToGameMaterial hGameMaterial;
} tdstDemoGMTList;
extern void DEMO_fn_vPrepareForRead(int _iNbFramesToWait);
extern void DEMO_fn_vPrepareForWrite(void);
extern void DEMO_fn_vLoadFromFile(char *szFileName);
#ifndef RETAIL
extern void DEMO_fn_vSaveToFile(void);
#endif /* RETAIL */
extern void DEMO_fn_vSetTestInputDuringDemo (int _bTestInput);
extern void DEMO_fn_vSetMapToLoadWhenDemoFinished (char * _szMapName);
extern void DEMO_fn_vSwitchVCRMode ();
extern void DEMO_fn_vAutoPlayDemoFromFile(char *szFileName);
extern void DEMO_fn_vAllocateMemory(void);
extern void DEMO_fn_vCloseFirstInit(void);
#ifndef RETAIL
extern void DEMO_fn_vSaveACompleteCharacterPosition(HIE_tdxHandleToSuperObject hSO);
#endif /* RETAIL */
extern void DEMO_fn_vGetACompleteCharacterPosition(HIE_tdxHandleToSuperObject hSO);
extern void DEMO_fn_vGoToTheNextInfoBlock(void);
extern void DEMO_fn_vInitSOList(void);
extern tdstDemoSOList* DEMO_fn_p_stCreateSOListElement(void);
/* ANNECY AV {*/
extern void DEMO_fn_vStartOfAlwaysCreation ();
/* END ANNECY AV }*/
extern void DEMO_fn_vPutCharacterInList(HIE_tdxHandleToSuperObject hSO);
extern void DEMO_fn_vReInitSOList(void);
extern unsigned short DEMO_fn_wGetNumberFromSO(HIE_tdxHandleToSuperObject hSO);
extern tdstDemoSOList * DEMO_fn_p_stGetInfosPointerFromSO(HIE_tdxHandleToSuperObject hSO);
extern unsigned short DEMO_fn_vFindMainCharacterNumber(void);
#ifndef RETAIL
extern void DEMO_fn_vSaveFixValuesChange(unsigned char FieldFlag,unsigned char ucNewValue);
/* ANNECY AV {*/
/* extern void DEMO_fn_vSaveSuperImposedTextActivationDesactivation(int iIndex,FON_tdxHandleOfString hText,FON_tdxHandleOfFont hFont,MTH_tdxReal xPosX,MTH_tdxReal xPosY,long lLiveTime,int Activate);*/
extern void DEMO_fn_vSaveChangeViewportSize (unsigned char _ucParam1 , unsigned char _ucParam2 , unsigned char _ucParam3 ,
unsigned char _ucParam4 , unsigned char _ucParam5 , unsigned char _ucParam6 ,
unsigned char _ucParam7 , unsigned char _ucParam8 , unsigned char _ucParam9 , unsigned char _ucParam10);
extern void DEMO_fn_vSaveModuleTransparencyValue (HIE_tdxHandleToSuperObject hSO , unsigned char ucChannelNumber , MTH_tdxReal xTransparencyValue);
extern void DEMO_fn_vSaveActivateModuleTransparency (HIE_tdxHandleToSuperObject hSO , unsigned char ucChannelNumber , int bTransparencyActive);
extern void DEMO_fn_vSaveModuleMove (HIE_tdxHandleToSuperObject hSO , unsigned char ucChannelNumber , int bSaveTransformMatrix);
/* END ANNECY AV }*/
extern void DEMO_fn_vSaveHitPointValuesChange(MS_tdxHandleToStandardGame h_StdGame,unsigned char ucHitPoints,int HitPointsFlag);
extern void DEMO_fn_vSaveAlwaysActivationDesactivation(HIE_tdxHandleToSuperObject hSO,MTH3D_tdstVector * p_stTempVector,int Activate);
extern void DEMO_fn_vSaveCanalActivationDesactivation(HIE_tdxHandleToSuperObject hSO, unsigned char ucChannelNumber,int Activate);
/* extern void DEMO_fn_vSaveSectorChange(HIE_tdxHandleToSuperObject hSO, HIE_tdxHandleToSuperObject hSectorNew);*/
extern CPA_EXPORT void DEMO_fn_vTestAndSaveActivationDesactivation(HIE_tdxHandleToSuperObject hSO, int Active);
extern void DEMO_SaveInfo(HIE_tdxHandleToSuperObject hSO);
#endif /* RETAIL */
extern BOOL DEMO_Play(HIE_tdxHandleToSuperObject hSO);
extern ACP_tdxBool DEMO_fn_bUpdateDynamicHierarchy(void);
/* ANNECY MT - 04/12/98 {*/
extern CPA_EXPORT void DEMO_fn_vStopWhenPlaying(void);
/* END ANNECY MT }*/
extern CPA_EXPORT unsigned short g_DEMO_KeybTest;
extern unsigned short g_DEMO_FirstInitFlag;
/* ANNECY MT - 30/04/99 { */
extern void DEMO_fn_vInitGMTFixList(void);
extern void DEMO_fn_vInitGMTLevelList(void);
extern tdstDemoGMTList* DEMO_fn_p_stCreateGMTListElement(void);
extern tdstDemoGMTList* DEMO_fn_p_stCreateGMTListElement(void);
extern void DEMO_fn_vPutGMTInList(GMT_tdxHandleToGameMaterial _hGameMaterial);
extern unsigned short DEMO_fn_wGetNumberFromGMT(GMT_tdxHandleToGameMaterial _hGameMaterial);
extern GMT_tdxHandleToGameMaterial DEMO_fn_hGetGMTFromList(unsigned short _uwIndex);
#ifndef RETAIL
extern void DEMO_fn_vSaveGenerateAGO (unsigned long PartType, MTH3D_tdstVector *p_stPosition, MTH3D_tdstVector *p_stDirection, GMT_tdxHandleToGameMaterial hGameMaterial, float parameter);
#endif /* RETAIL */
extern void DEMO_fn_vDesInitLevel();
extern void DEMO_fn_vDesInitGame();
/* END ANNECY MT } */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __Demo_H__ */