reman3/Rayman_X/cpa/public/AI/AIBase/DsgMem.h

202 lines
8.0 KiB
C

/*---------------------------------------------------------------------------*/
/* DsgMem.h : Definition of variables in the designer memory.*/
/* auteur : Pierrick CREPY*/
/* date : 10/1996*/
/* modify : * 12/1996 O.C.*/
/* modify : 09/01/1997 O.C.*/
/* 970115 : Perso management (Fabien Morales)*/
/* 970120 : AddList (Fabien Morales) */
/* 970120 : 3DPoint are vector type (Fabien Morales) */
/* 970212 : Vector designer variable type (Fabien Morales) */
/* modify : Olivier Couvreur*/
/* date : 18/02/1997 CPA_EXPORT + new functions for editor*/
/* modify : Olivier Couvreur : new dsgvar structures*/
/* modify : Olivier Couvreur 27/05/97 ZDD + ZDE*/
/*---------------------------------------------------------------------------*/
#ifndef D_DsgMem
#define D_DsgMem
/**************************************/
#if !defined(CPA_EXPORT)
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif /*CPA_WANTS_IMPORT || CPA_WANTS_EXPORT*/
#endif /*CPA_EXPORT*/
/**************************************/
#undef extern
#define EXTERN_AI_DLL extern
/*******************************************************************************/
/* include*/
/* **************/
/* defines*/
/* **********/
#define C_TypeOfComport struct tdstComport_ *
#define C_SizeOfComport (sizeof(C_TypeOfComport))
#define C_TypeOfAction tdxHandleToState
#define C_SizeOfAction (sizeof(C_TypeOfAction))
#define C_TypeOfText FON_tdxHandleOfText
#define C_SizeOfText (sizeof(C_TypeOfText))
#define C_TypeOfBoolean char
#define C_SizeOfBoolean (sizeof (C_TypeOfBoolean))
#define C_TypeOf_128To127 char
#define C_SizeOf_128To127 (sizeof (C_TypeOf_128To127))
#define C_TypeOf0To255 unsigned char
#define C_SizeOf0To255 (sizeof (C_TypeOf0To255))
#define C_TypeOf_32768To32767 short
#define C_SizeOf_32768To32767 (sizeof (C_TypeOf_32768To32767))
#define C_TypeOf0To65535 unsigned short
#define C_SizeOf0To65535 (sizeof (C_TypeOf0To65535))
#define C_TypeOfInteger long
#define C_SizeOfInteger (sizeof (C_TypeOfInteger))
#define C_TypeOfPositiveInteger unsigned long
#define C_SizeOfPositiveInteger (sizeof (C_TypeOfInteger))
#define C_TypeOfFloat MTH_tdxReal
#define C_SizeOfFloat (sizeof (C_TypeOfFloat))
#define C_TypeOfWayPoint WP_tdhWayPoint
#define C_SizeOfWayPoint (sizeof (C_TypeOfWayPoint))
#define C_TypeOfPerso HIE_tdxHandleToSuperObject
#define C_SizeOfPerso (sizeof (C_TypeOfPerso))
/* ANNECY OA - 05/08/99 { */
#ifndef U64
#define C_TypeOfSuperObject HIE_tdxHandleToSuperObject
#define C_SizeOfSuperObject (sizeof (C_TypeOfPerso))
#endif
/* END ANNECY OA } */
#define C_TypeOfPersoInList HIE_tdxHandleToSuperObject
#define C_SizeOfPersoInList (sizeof (C_TypeOfPersoInList))
#define C_TypeOfList1 struct tdstList1_
#define C_SizeOfList1 (sizeof (C_TypeOfList1))
#define C_TypeOfVector struct MTH3D_tdstVector_
#define C_SizeOfVector (sizeof (C_TypeOfVector))
#define C_TypeOfGameMaterial GMT_tdxHandleToGameMaterial
#define C_SizeOfGameMaterial (sizeof(C_TypeOfGameMaterial))
#define C_TypeOfCaps unsigned long
#define C_SizeOfCaps (sizeof (C_TypeOfCaps))
#define C_TypeOfGraph WP_tdHandleOfGraph
#define C_SizeOfGraph (sizeof (C_TypeOfGraph))
/* Types & structures*/
/* *********************/
#include "..\AiBase\Specif\AiOption.h"
#include "GSParam.h"
#include "..\AiGame\EnumVar.h"
typedef struct tdstDsgVarInfo_
{
unsigned long ulOffsetInDsgMem;
tdeDsgVarTypeId eDsgVarTypeId;
SAI_tdeFlags eSaveType; /* for SAI*/
tdeObjectTreeInit eInitType; /* for OTI */
#if defined(ACTIVE_EDITOR)
char szDsgVarName[256];
#endif
} tdstDsgVarInfo;
typedef struct tdstDsgVar_
{
char *p_cDsgMemDefaultInit; /* to store model init values*/
tdstDsgVarInfo *p_stDsgVarInfo; /* info about each variable designer*/
unsigned long ulSize; /* size of this zone*/
unsigned char ucNbDsgVar; /* number of variable designer*/
} tdstDsgVar;
typedef struct tdstDsgMem_
{
tdstDsgVar **p_p_stDsgVar;
char *p_cDsgMemBufferInit; /* to store init values for each perso*/
char *p_cDsgMemBuffer; /* to store current values for each perso*/
} tdstDsgMem;
/* for DsgMemBuffer */
#define M_GetDsgMem(p_stMind) (AI_M_p_stGetDsgMem(p_stMind))
#define M_GetDsgMemBuffer(p_stMind) (AI_M_p_stGetDsgMem(p_stMind)->p_cDsgMemBuffer)
#define M_GetDsgVar(p_stMind) (*(AI_M_p_stGetDsgMem(p_stMind)->p_p_stDsgVar))
#define M_GetDsgVarInfo(p_stMind,ucId) (&(M_GetDsgVar(p_stMind)->p_stDsgVarInfo[ucId]))
#define M_GetDsgVarOffset(p_stMind,ucId) (M_GetDsgVarInfo(p_stMind,ucId)->ulOffsetInDsgMem)
#define M_GetDsgVarAddr(p_stMind,ucId) (M_GetDsgMemBuffer(p_stMind)+M_GetDsgVarOffset(p_stMind,ucId))
#define M_GetDsgVarType(p_stMind,ucId) (M_GetDsgVarInfo(p_stMind,ucId)->eDsgVarTypeId)
#define M_GetDsgVarSaveType(p_stMind,ucId) (M_GetDsgVarInfo(p_stMind,ucId)->eSaveType)
#define M_GetDsgVarInitType(p_stMind,ucId) (M_GetDsgVarInfo(p_stMind,ucId)->eInitType)
#define M_GetDsgVarSize(p_stMind) (AI_M_p_stGetDsgVar(p_stMind)->ulSize)
#define M_GetNbDsgVar(p_stMind) (AI_M_p_stGetDsgVar(p_stMind)->ucNbDsgVar)
#define M_GetDsgMemDefaultInit(p_stMind) (AI_M_p_stGetDsgVar(p_stMind)->p_cDsgMemDefaultInit)
#define M_GetDsgMemBufferInit(p_stMind) (AI_M_p_stGetDsgMem(p_stMind)->p_cDsgMemBufferInit)
#define M_GetDsgVarAddrInit(p_stMind,ucId) (M_GetDsgMemBufferInit(p_stMind)+M_GetDsgVarOffset(p_stMind,ucId))
#define M_GetDsgVarAddrDefault(p_stMind,ucId) (M_GetDsgMemDefaultInit(p_stMind)+M_GetDsgVarOffset(p_stMind,ucId))
#if defined(ACTIVE_EDITOR)
#define M_GetDsgVarName(p_stMind,ucId) (M_GetDsgVarInfo(p_stMind,ucId)->szDsgVarName)
#define M_SetDsgVarName(p_stMind,ucId,szName) strcpy((M_GetDsgVarInfo(p_stMind,ucId)->szDsgVarName),szName);
#else
#define M_GetDsgVarName(p_stMind,ucId) ""
#define M_SetDsgVarName(p_stMind,ucId,szName)
#endif /* ACTIVE_EDITOR*/
/* Function prototypes*/
/* *********************/
#if defined(AI_USE_SCRIPT)
/* to inittialize current DsgVar values (in perso)*/
EXTERN_AI_DLL CPA_EXPORT void fn_vInitDsgVar(struct AI_tdstMind_ *p_stMind,unsigned char ucDsgVarId, enum tdeDsgVarTypeId_ eDsgVarTypeId, char * szParams[]);
/* to inittialize init DsgVar values (in perso)*/
EXTERN_AI_DLL CPA_EXPORT void fn_vInitDsgVarInit(struct AI_tdstMind_ *p_stMind,unsigned char ucDsgVarId,enum tdeDsgVarTypeId_ eDsgVarTypeId, char * szParams[]);
/* to inittialize init DsgVar values of an array (in perso)*/
EXTERN_AI_DLL CPA_EXPORT void fn_vInitDsgVarArrayInit(struct AI_tdstMind_ *p_stMind,unsigned char ucDsgVarId,unsigned char ucIndex,enum tdeDsgVarTypeId_ eDsgVarTypeId, char * szParams[]);
/* to initialize init DsgVar values (in model)*/
EXTERN_AI_DLL CPA_EXPORT void fn_vInitDsgVarDefault(struct AI_tdstMind_ *p_stMind,unsigned char ucDsgVarId,enum tdeDsgVarTypeId_ eDsgVarTypeId, char * szParams[]);
#endif
EXTERN_AI_DLL CPA_EXPORT unsigned long fn_ulSizeOfDsgVar(enum tdeDsgVarTypeId_ eDsgVarTypeId, unsigned char ucNbElt);
#if defined(ACTIVE_EDITOR)
EXTERN_AI_DLL CPA_EXPORT unsigned char fn_ucGetDsgVarValue(void *pMyVarAddr,unsigned char ucIndex,tdeDsgVarTypeId eDsgVarTypeId,tdstGetSetParam *p_stGetSetParam);
EXTERN_AI_DLL CPA_EXPORT unsigned char fn_ucSetDsgVarValue(void *pMyVarAddr,unsigned char ucIndex,tdeDsgVarTypeId eDsgVarTypeId,tdstGetSetParam *p_stGetSetParam);
#endif
unsigned char fn_ucGetDsgVar(unsigned char ucId,unsigned char ucIndex,struct AI_tdstMind_ *p_stPerso,struct tdstGetSetParam_ *p_stGetSetParam);
#if defined(__DEBUG_AI__)
unsigned char fn_ucGetDsgVarInit(unsigned char ucId,unsigned char ucIndex,struct AI_tdstMind_ *p_stPerso,struct tdstGetSetParam_ *p_stGetSetParam);
#endif
unsigned char fn_ucSetDsgVar(unsigned char ucId,unsigned char ucIndex,struct AI_tdstMind_ *p_stPerso,struct tdstGetSetParam_ *p_stGetSetParam);
#include "List.h"
#include "Array.h"
/*******************************************************************************/
#undef EXTERN_AI_DLL
#endif /*D_DsgMem*/