Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,73 @@
/*=========================================================================
* AllActs.h : This file contain included files to define all object.
* This is a part of the Hed project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__ALLACTS_H__ )
#define __ALLACTS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "ACP_Base.h"
#include "GAM/Structur/StdObjSt.h"
#include "GAM/objinit.h"
#include "GAM/TypeCam.h"
/**** Include here all actions headers files ****/
#include "Brain.h"
#include "Dynam.h"
#include "Cineinfo.h"
#include "CollSet.h"
#include "MSWay.h"
#include "MSLight.h"
#include "SectInfo.h"
#include "MS_Micro.h"
#ifndef D_THROW_PRT
#include "MSPrtSrc.h"
#endif /* D_THROW_PRT */
#include "MSSound.h" /* JO 08/12/97*/
#ifndef D_THROW_ANIM_EFFECT
#include "Animfx.h"
#endif /* D_THROW_ANIM_EFFECT */
/*XB980824*/
#ifndef D_THROW_MGT
#include "MSMag.h"
#endif /* D_THROW_MGT */
/*End XB*/
#include "3dData.h"
#include "StdGame.h"
void fn_vRegisterAllActionsScriptSections();
#define C_SectionOneCharacters "Character"
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackOneCharacter(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/* For binary purposes*/
unsigned long EngineObject_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
void EngineObject_fn_vReadBinaryBloc(unsigned long _ulStructAddress);
#endif /* U64 */
#endif /* !__ALLACTS_H__ */

View File

@@ -0,0 +1,108 @@
/*=========================================================================
* AnimEffect.h : AnimEffect's functions
*
*
* AnimEffect MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#ifndef D_THROW_ANIM_EFFECT
#if !defined(__AnimEffect_H__)
#define __AnimEffect_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_AnimEffect_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_AnimEffect_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
struct tdstAnimEffect_
{
/*these describe the sinus phase of a module displacement along the anim's axis
relatively to the position given by the current frame.*/
MTH3D_tdstVector stShiftPhase, stShiftMax;
/*there are time shifts that apply between two consecutive modules,
so that they dont always do the same thing together*/
MTH3D_tdstVector stShiftPlus;
};
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstAnimEffect_ * MS_tdxHandleToAnimEffect;
/**** AnimEffect scripts ****/
#define C_SectionAnimEffectDescription "AnimEffect"
#define C_EntryAnimEffectShiftPhase "ShiftPhase"
#define C_EntryAnimEffectShiftMax "ShiftMax"
#define C_EntryAnimEffectShiftPlus "ShiftPlus"
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eAnimEffectScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /*AR980217*/
/*extern CPA_EXPORT void fn_vAnimEffectSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulAnimEffectSizeOf();
extern CPA_EXPORT void fn_vAnimEffectAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToAnimEffect fn_h_AnimEffectRealAlloc();
extern CPA_EXPORT void fn_vAnimEffectFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vAnimEffectInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vAnimEffectDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vAnimEffectCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT MTH3D_tdstVector fn_stAnimEffectGetShiftPhase(MS_tdxHandleToAnimEffect h_AnimEffect);
extern CPA_EXPORT MTH3D_tdstVector fn_stAnimEffectGetShiftMax(MS_tdxHandleToAnimEffect h_AnimEffect);
extern CPA_EXPORT MTH3D_tdstVector fn_stAnimEffectGetShiftPlus(MS_tdxHandleToAnimEffect h_AnimEffect);
extern CPA_EXPORT void fn_vAnimEffectSetShiftPhase(MS_tdxHandleToAnimEffect h_AnimEffect,MTH3D_tdstVector _stVector);
extern CPA_EXPORT void fn_vAnimEffectSetShiftMax(MS_tdxHandleToAnimEffect h_AnimEffect,MTH3D_tdstVector _stVector);
extern CPA_EXPORT void fn_vAnimEffectSetShiftPlus(MS_tdxHandleToAnimEffect h_AnimEffect,MTH3D_tdstVector _stVector);
/**********************************/
/**** Special functions define ****/
/**********************************/
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vAnimEffectInitValueSAI(MS_tdxHandleToAnimEffect h_AnimEffect);
extern CPA_EXPORT void fn_vAnimEffectSavedValueSAI(MS_tdxHandleToAnimEffect h_AnimEffect);
extern CPA_EXPORT void fn_vAnimEffectFreeInitValueSAI(MS_tdxHandleToAnimEffect h_AnimEffect);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __AnimEffect_H__ */
#endif /* D_THROW_ANIM_EFFECT */

View File

@@ -0,0 +1,176 @@
/*=========================================================================
* Brain.h : Brain's functions
*
*
* Brain MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__Brain_H__)
#define __Brain_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_Brain_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_Brain_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/********************************************************************************/
/**** If we are int StdGame.c file, then, create the structures and variables ****/
/********************************************************************************/
/*#if defined(D_Brain_StructureDefine)*/
struct tdstBrain_
{
struct AI_tdstMind_ *p_stMind;
GMT_tdxHandleToGameMaterial hLastCollidedGoThroughMaterial;
ACP_tdxBool bWarnMechanicsFlag;
};
/*#endif /* D_Brain_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstBrain_ * MS_tdxHandleToBrain;
#define M_pstGetMindOfBrain(h_Brain) fn_p_stBrainGetMind(h_Brain)
#define M_SetMindOfBrain(h_Brain, p_stM) fn_vBrainSetMind((h_Brain),(p_stM))
/*ANNECY BBB 24/11/97 {*/
#define M_hGetLastCollidedGoThroughMaterialOfBrain(h_Brain) fn_hBrainGetLastCollidedGoThroughMaterial(h_Brain)
#define M_vSetLastCollidedGoThroughMaterialOfBrain(h_Brain, hGameMaterial) fn_vBrainSetLastCollidedGoThroughMaterial((h_Brain),(hGameMaterial))
/*#define M_bGetWarnMechanicsFlagOfBrain(h_Brain) fn_bBrainGetWarnMechanicsFlag(h_Brain)*/
#define M_vSetWarnMechanicsFlagOfBrain(h_Brain, bFlag) fn_vBrainSetWarnMechanicsFlag((h_Brain),(bFlag))
/*ENDANNECY BBB 24/11/97 }*/
#define AI_M_stGetMindOfSuperObj(hSupObj) ((AI_tdstMind *)fn_p_stBrainGetMind(M_GetMSHandle((hSupObj), Brain)))
/**** Brain scripts ****/
#define C_SectionBrainDescription "Brain"
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eBrainScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vBrainSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulBrainSizeOf();
extern CPA_EXPORT void fn_vBrainAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToBrain fn_h_BrainRealAlloc();
extern CPA_EXPORT void fn_vBrainFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vBrainInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vBrainDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vBrainCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/********************************/
/**** Acces functions define ****/
/********************************/
/*extern CPA_EXPORT struct AI_tdstMind_ *fn_p_stBrainGetMind(MS_tdxHandleToBrain h_Brain);*/
/*extern CPA_EXPORT void fn_vBrainSetMind(MS_tdxHandleToBrain h_Brain,struct AI_tdstMind_ *p_stMind);*/
/*ANNECY BBB 24/11/97 {*/
/*extern CPA_EXPORT GMT_tdxHandleToGameMaterial fn_hBrainGetLastCollidedGoThroughMaterial(MS_tdxHandleToBrain h_Brain);*/
/*extern CPA_EXPORT void fn_vBrainSetLastCollidedGoThroughMaterial(MS_tdxHandleToBrain h_Brain, GMT_tdxHandleToGameMaterial _hGameMaterial);*/
/*extern CPA_EXPORT ACP_tdxBool fn_bBrainGetWarnMechanicsFlag(MS_tdxHandleToBrain h_Brain);*/
/*extern CPA_EXPORT void fn_vBrainSetWarnMechanicsFlag(MS_tdxHandleToBrain h_Brain, ACP_tdxBool _bFlag);*/
/*ENDANNECY BBB 24/11/97 }*/
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vFirstInitBrain(MS_tdxHandleToBrain h_Brain);
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long Brain_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer,struct tdstEngineObject_* _hEngObj);
#endif
/*NZO 25/09/97*/
#ifdef BIN_LoadBin
extern CPA_EXPORT void Brain_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer,struct tdstEngineObject_* _hEngObj);
#endif
/*ANNECY jt {*/
#define fn_bBrainWaterCollideSO(hSupObj) fn_bBrainGetWarnMechanicsFlag(M_GetMSHandle(hSupObj,Brain));
/*extern CPA_EXPORT ACP_tdxBool fn_bBrainWaterCollideSO (HIE_tdxHandleToSuperObject hSupObj);*/
/*ENDANNECY jt }*/
/* inline functions that have moved from the BRAIN.C file.*/
INLINE
struct AI_tdstMind_ *fn_p_stBrainGetMind(MS_tdxHandleToBrain h_Brain)
{
return(h_Brain->p_stMind);
}
INLINE
void fn_vBrainSetMind(MS_tdxHandleToBrain h_Brain,struct AI_tdstMind_ *p_stMind)
{
h_Brain->p_stMind=p_stMind;
}
INLINE
GMT_tdxHandleToGameMaterial fn_hBrainGetLastCollidedGoThroughMaterial(MS_tdxHandleToBrain h_Brain)
{
return h_Brain->hLastCollidedGoThroughMaterial;
}
INLINE
void fn_vBrainSetLastCollidedGoThroughMaterial(MS_tdxHandleToBrain h_Brain, GMT_tdxHandleToGameMaterial _hGameMaterial)
{
h_Brain->hLastCollidedGoThroughMaterial = _hGameMaterial;
}
INLINE
ACP_tdxBool fn_bBrainGetWarnMechanicsFlag(MS_tdxHandleToBrain h_Brain)
{
return h_Brain->bWarnMechanicsFlag;
}
INLINE
void fn_vBrainSetWarnMechanicsFlag(MS_tdxHandleToBrain h_Brain, ACP_tdxBool _bFlag)
{
h_Brain->bWarnMechanicsFlag = _bFlag;
}
/* this function has been replaced (with a define) by the fn_bBrainGetWarnMechanicsFlag*/
/*INLINE
CPA_EXPORT ACP_tdxBool fn_bBrainWaterCollideSO (HIE_tdxHandleToSuperObject hSupObj)
{
return M_bGetWarnMechanicsFlagOfBrain (M_GetMSHandle(hSupObj,Brain));
}
*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __Brain_H__ */

View File

@@ -0,0 +1,279 @@
/*=========================================================================
* CollSet.h : CollSet's functions
*
*
* CollSet MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__CollSet_H__)
#define __CollSet_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_CollSet_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_CollSet_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/* various parameters set by the collisionning actor, used in the AI of the collided actor*/
#define C_wCollsetNbCollisionVectors 2
#define C_wCollsetNbCollisionReals 2
#if defined(D_CollSet_StructureDefine)
typedef struct tdstCollSet_
{
ZDX_tdxHandleToZdxList hZddList;
ZDX_tdxHandleToZdxList hZdeList;
ZDX_tdxHandleToZdxList hZdmList;
ZDX_tdxHandleToZdxList hZdrList;
ZDX_tdxHandleToCsaList hZddActivationList;
ZDX_tdxHandleToCsaList hZdeActivationList;
ZDX_tdxHandleToCsaList hZdmActivationList;
ZDX_tdxHandleToCsaList hZdrActivationList;
/* Only to optimize call to GetCurrentZoneSet function*/
ZDX_tdxHandleToZoneSetList hZddCurrentActivation;
ZDX_tdxHandleToZoneSetList hZdeCurrentActivation;
ZDX_tdxHandleToZoneSetList hZdrCurrentActivation;
ZDX_tdxHandleToZoneSetList hZdmCurrentActivation;
#ifdef MAY_BE_SUPPRESSED
ZDX_tdxHandleToZdxList hInitialZddList;
ZDX_tdxHandleToZdxList hInitialZdeList;
ZDX_tdxHandleToZdxList hInitialZdmList;
ZDX_tdxHandleToZdxList hInitialZdrList;
ZDX_tdxHandleToCsaList hZddInitialActivationList;
ZDX_tdxHandleToCsaList hZdeInitialActivationList;
ZDX_tdxHandleToCsaList hZdmInitialActivationList;
ZDX_tdxHandleToCsaList hZdrInitialActivationList;
#endif /* MAY_BE_SUPPRESSED */
unsigned long ulFBZddPriviligedZones;
unsigned long ulFBZdePriviligedZones;
unsigned long ulFBZdmPriviligedZones;
unsigned long ulFBZdrPriviligedZones;
unsigned char ucCollComputeFrequency;
unsigned char ucCharacterPriority;
unsigned char ucCollisionFlag; /* 0 : collide only with map*/
/*ANNECY BBB {*/
/*internal variables for collision parameter management and communication*/
struct stColliderInfo_
{
MTH3D_tdstVector a_stColliderVectors[C_wCollsetNbCollisionVectors];
MTH_tdxReal a_xColliderReals[C_wCollsetNbCollisionReals];
unsigned char ucColliderType;
/* if a collision is already registered, only higher a higher priority collision may replace it*/
unsigned char ucColliderPriority; /* 0 means that no collision is recorded*/
unsigned char a2_ucUnused[2]; /* alignment*/
} stColliderInfo;
/*ANNECY BBB }*/
} tdstCollSet;
#endif /* D_CollSet_StructureDefine */
M_BeginDeclareEnumerate(tdeCollSetPrivilegedActivation)
edmPriviligedDefault = 0x00,
edmPriviligedActivated = 0x01,
edmPriviligedDisactivated = 0x02,
edmNumberOfPrivilegedActivation
M_EndDeclareEnumerate(tdeCollSetPrivilegedActivation,unsigned char)
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstCollSet_ * MS_tdxHandleToCollSet;
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/* CollSet Section*/
#define C_SectionCollSetDescription "CollSet"
/* CollSet Entries*/
#define C_EntryZdmTable "ZdmTable"
#define C_EntryZddTable "ZddTable"
#define C_EntryZdeTable "ZdeTable"
#define C_EntryZdrTable "ZdrTable"
#define C_EntryZddActivationTable "ZddActivationTable"
#define C_EntryZdeActivationTable "ZdeActivationTable"
#define C_EntryZdmActivationTable "ZdmActivationTable"
#define C_Entry_CharacterPriority "CharacterPriority"
#define C_EntryZdrActivationTable "ZdrActivationTable"
#define C_EntryCollisionFlag "CollisionFlag"
#define C_EntryCollComputeFrequency "CollComputeFrequency"
/* Macros*/
/* Macros*/
#define CS_M_GetZdxList(ZoneType,p_stCollSet) ((p_stCollSet)->h##ZoneType##List)
#define CS_M_SetZdxList(ZoneType,p_stCollSet,p_stZdxList) ((p_stCollSet)->h##ZoneType##List=p_stZdxList)
#ifdef MAY_BE_SUPPRESSED
#define CS_M_GetZdxInitialList(ZoneType,p_stCollSet) ((p_stCollSet)->hInitial##ZoneType##List)
#define CS_M_SetZdxInitialList(ZoneType,p_stCollSet,p_stZdxList) ((p_stCollSet)->hInitial##ZoneType##List=p_stZdxList)
#endif /* MAY_BE_SUPPRESSED */
#define CS_M_GetActivationList(ZoneType,p_stCollSet) ((p_stCollSet)->h##ZoneType##ActivationList)
#define CS_M_SetActivationList(ZoneType,p_stCollSet,hCsaList) ((p_stCollSet)->h##ZoneType##ActivationList=hCsaList)
#ifdef MAY_BE_SUPPRESSED
#define CS_M_GetActivationInitialList(ZoneType,p_stCollSet) ((p_stCollSet)->h##ZoneType##InitialActivationList)
#define CS_M_SetActivationInitialList(ZoneType,p_stCollSet,hCsaList) ((p_stCollSet)->h##ZoneType##InitialActivationList=hCsaList)
#endif /* MAY_BE_SUPPRESSED */
#define CS_M_GetPrivilegedZone(ZoneType,p_stCollSet) ((p_stCollSet)->ulFB##ZoneType##PriviligedZones)
#define CS_M_SetPrivilegedZone(ZoneType,p_stCollSet,ulValue) ((p_stCollSet)->ulFB##ZoneType##PriviligedZones=ulValue)
#define CS_M_IsAllDefaultPrivilegedZones(ZoneType,p_stCollSet) (CS_M_GetPrivilegedZone(ZoneType,p_stCollSet) == 0)
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eCollSetScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vCollSetSaveMiniStructure(SCRIPT_tdstSaveFile *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulCollSetSizeOf();
extern CPA_EXPORT void fn_vCollSetAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToCollSet fn_h_CollSetRealAlloc();
extern CPA_EXPORT void fn_vCollSetFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vCollSetInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vCollSetDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vCollSetCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
/*ANNECY BBB {*/
extern CPA_EXPORT unsigned char fn_ucCollSetGetColliderPriority(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT unsigned char fn_ucCollSetGetColliderPrioritySO (HIE_tdxHandleToSuperObject _hSuperObject);
extern CPA_EXPORT unsigned char fn_ucCollSetGetColliderType(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT MTH3D_tdstVector fn_stCollSetGetColliderVector(MS_tdxHandleToCollSet _hCollSet, short _wIndex);
extern CPA_EXPORT MTH_tdxReal fn_xCollSetGetColliderReal(MS_tdxHandleToCollSet _hCollSet, short _wIndex);
extern CPA_EXPORT void fn_vCollSetSetColliderPriority(MS_tdxHandleToCollSet _hCollSet, unsigned char _ucPri);
extern CPA_EXPORT void fn_vCollSetSetColliderType(MS_tdxHandleToCollSet _hCollSet, unsigned char _ucType);
extern CPA_EXPORT void fn_vCollSetSetColliderVector(MS_tdxHandleToCollSet _hCollSet, short _wIndex, MTH3D_tdstVector *_p_stVector);
extern CPA_EXPORT void fn_vCollSetSetColliderReal(MS_tdxHandleToCollSet _hCollSet, short _wIndex, MTH_tdxReal _xReal);
/*ANNECY BBB }*/
/* Functions with Handles*/
extern CPA_EXPORT ZDX_tdxHandleToZdxList CS_fn_hGetZdxList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void CS_fn_vSetZdxList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj,ZDX_tdxHandleToZdxList);
extern CPA_EXPORT ZDX_tdxHandleToCsaList CS_fn_hGetActivationList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void CS_fn_vSetActivationList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj,ZDX_tdxHandleToCsaList);
extern CPA_EXPORT ZDX_tdxHandleToCsaList CS_fn_hGetActivationListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet);
extern CPA_EXPORT void CS_fn_vSetActivationListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet,ZDX_tdxHandleToCsaList);
extern CPA_EXPORT unsigned char CS_fn_ucGetCharacterPriority(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void CS_fn_vSetCharacterPriority(MS_tdxHandleToCollSet hCollSet,unsigned char _ucPriority);
extern CPA_EXPORT void fn_vCorrectAllActivationLists(struct tdstEngineObject_ * _p_stObject);
/* ANNECY AV {*/
extern CPA_EXPORT unsigned char fn_ucCollSetGetCharacterCollisionFlag(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void fn_vCollSetSetCharacterCollisionFlag(MS_tdxHandleToCollSet _hCollSet,unsigned char _ucCollisionFlag);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterNoCollisionWithMap (MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterNoCollisionWithProjectile (MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterNoCollisionWithSecondaryCharacter (MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterNoCollisionWithMainCharacter (MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterForceCollisionWhenNotMoving (MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterNoCollisionWithOtherSectors (MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT ACP_tdxBool fn_bCollSetGetCharacterNoCollisionZdeWithProjectile (MS_tdxHandleToCollSet _hCollset);
extern CPA_EXPORT void fn_vCollSetSetCharacterNoCollisionWithMap (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
extern CPA_EXPORT void fn_vCollSetSetCharacterNoCollisionWithProjectile (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
extern CPA_EXPORT void fn_vCollSetSetCharacterNoCollisionWithSecondaryCharacter (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
extern CPA_EXPORT void fn_vCollSetSetCharacterNoCollisionWithMainCharacter (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
extern CPA_EXPORT void fn_vCollSetSetCharacterForceCollisionWhenNotMoving (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
extern CPA_EXPORT void fn_vCollSetSetCharacterNoCollisionWithOtherSectors (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
extern CPA_EXPORT void fn_vCollSetSetCharacterNoCollisionZdeWithProjectile (MS_tdxHandleToCollSet _hCollSet, ACP_tdxBool _bValue);
/* Same access functions with a super object for the DNM module*/
extern CPA_EXPORT ACP_tdxBool fn_bGetCharacterNoCollisionWithMap (HIE_tdxHandleToSuperObject _hSuperObject);
extern CPA_EXPORT ACP_tdxBool fn_bGetCharacterForceCollisionWhenNotMoving (HIE_tdxHandleToSuperObject _hSuperObject);
extern CPA_EXPORT void fn_vSetCharacterNoCollisionWithMap (HIE_tdxHandleToSuperObject _hSuperObject, ACP_tdxBool _bValue);
/* END ANNECY AV }*/
extern CPA_EXPORT void fn_vCollSetSetCollComputeFrequency(MS_tdxHandleToCollSet _hCollSet,unsigned char _ucFrequency);
extern CPA_EXPORT unsigned char fn_ucCollSetGetCollComputeFrequency(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT unsigned char fn_ucCollSetGetCollComputeFrequencySO(HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void GAM_fn_vChangeFather(HIE_tdxHandleToSuperObject _hSprObj, HIE_tdxHandleToSuperObject _hNewFather);
/* JO 20/10/97 for optimisation*/
void fn_vSetCurrentZoneSetOfType(unsigned char _ucZoneType,MS_tdxHandleToCollSet _hCollSet,ZDX_tdxHandleToZoneSetList _hCurrentZoneSet);
ZDX_tdxHandleToZoneSetList fn_hGetCurrentZoneSetOfType(unsigned char _ucZoneType,MS_tdxHandleToCollSet _hCollSet);
#ifdef MAY_BE_SUPPRESSED
extern CPA_EXPORT ZDX_tdxHandleToZdxList CS_fn_hGetZdxInitialList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void CS_fn_vSetZdxInitialList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj,ZDX_tdxHandleToZdxList);
extern CPA_EXPORT ZDX_tdxHandleToCsaList CS_fn_hGetActivationInitialList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void CS_fn_vSetActivationInitialList(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj,ZDX_tdxHandleToCsaList);
extern CPA_EXPORT ZDX_tdxHandleToZdxList CS_fn_hGetZdxInitialListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet);
extern CPA_EXPORT void CS_fn_vSetZdxInitialListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet,ZDX_tdxHandleToZdxList);
extern CPA_EXPORT ZDX_tdxHandleToCsaList CS_fn_hGetActivationInitialListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet);
extern CPA_EXPORT void CS_fn_vSetActivationInitialListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet,ZDX_tdxHandleToCsaList);
extern CPA_EXPORT ZDX_tdxHandleToZdxList CS_fn_hGetZdxListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet);
extern CPA_EXPORT void CS_fn_vSetZdxListInCollSet(unsigned char ucZoneType,MS_tdxHandleToCollSet hCollSet,ZDX_tdxHandleToZdxList);
#endif /* MAY_BE_SUPPRESSED */
extern CPA_EXPORT unsigned long CS_fn_ulGetPrivilegedActivationZoneInCollSet(unsigned char _ucZoneType,MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void CS_fn_vSetPrivilegedActivationZoneInCollSet(unsigned char _ucZoneType,MS_tdxHandleToCollSet _hCollSet, unsigned long _ulFB);
extern CPA_EXPORT void CS_fn_vSetPrivilegedActivationZone(unsigned char _ucZoneType,MS_tdxHandleToCollSet _hCollSet,short _wIndex, tdeCollSetPrivilegedActivation _ePrivilege);
extern CPA_EXPORT tdeCollSetPrivilegedActivation CS_fn_eGetPrivilegedActivationZone(unsigned char _ucZoneType,MS_tdxHandleToCollSet _hCollSet,short _wIndex);
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vCollSetInitValueSAI(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void fn_vCollSetSavedValueSAI(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void fn_vCollSetFreeInitValueSAI(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void fn_vCollSetReInitCharacterCollisionFlag(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT void fn_vCollSetReInitCollComputeFrequency(MS_tdxHandleToCollSet _hCollSet);
/**********************************/
/**** Special functions define ****/
/**********************************/
#ifdef ACTIVE_EDITOR
extern CPA_EXPORT unsigned char *fn_p_ucCollSetGetCharacterCollisionFlagInit(MS_tdxHandleToCollSet _hCollSet);
extern CPA_EXPORT unsigned char *fn_p_ucCollSetGetCollComputeFrequencyInit(MS_tdxHandleToCollSet _hCollSet);
#endif /* ACTIVE_EDITOR */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __CollSet_H__ */

View File

@@ -0,0 +1,172 @@
/*=========================================================================
* Dynam.h : Dynam's functions
*
*
* Dynam MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__Dynam_H__)
#define __Dynam_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_Dynam_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_Dynam_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#include "mec/dnmmecid.h"
/********************************************************************************/
/**** If we are int Dynam.c file, then, create the structures and variables ****/
/********************************************************************************/
#if defined(D_Dynam_StructureDefine)
/* MecEngDesc flags */
#define C_ulMecEngDesc_DEFAULT 0x00000000
#define C_ulMecEngDesc_PATHKNOWN 0x00000001
#define C_ulMecEngDesc_DISTANTOBJ 0x00010000
struct tdstDynam_
{
/* Pointer on the DNM structure*/
struct DNM_stDynamics *p_stDynamics;
/*Datas used during the frame*/
struct DNM_stParsingDatas *p_stParsingDatas;
/*identifier on the kind of mechanics used*/
DNM_tdeMechanicsID eUsedMechanics;
};
#endif /* D_Dynam_StructureDefine */
typedef enum eDynamicSize_
{
eDynamicSizeBase,
eDynamicSizeAdvanced,
eDynamicSizeComplex
} eDynamicSize;
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstDynam_ * MS_tdxHandleToDynam;
/**** Dynam scripts ****/
#define C_SectionDynamDescription "Dynam"
#define C_EntryDynamType "DynamicsType"
#define C_szSlideFactorX "SlideFactorX"
#define C_szSlideFactorY "SlideFactorY"
#define C_szSlideFactorZ "SlideFactorZ"
#define C_szDynamicSizeBase "Base"
#define C_szDynamicSizeAdvanced "Advanced"
#define C_szDynamicSizeComplex "Complex"
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
extern CPA_EXPORT void fn_vUpdateDynamicsMS(struct tdstEngineObject_ *p_stObject);
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eDynamScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
extern CPA_EXPORT unsigned long fn_ulDynamSizeOf();
extern CPA_EXPORT void fn_vDynamAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToDynam fn_h_DynamRealAlloc();
extern CPA_EXPORT void fn_vDynamFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vDynamInit(struct tdstEngineObject_ *p_stObject,tdeObjectTreeInit eObjectInit);
extern CPA_EXPORT void fn_vDynamDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vDynamCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
extern CPA_EXPORT void fn_v_DynamicAlloc ( MS_tdxHandleToDynam h_Dynam, eDynamicSize eSize, ACP_tdxBool bCollision, ACP_tdxBool bAlways );
extern CPA_EXPORT void fn_v_DynamicFree ( MS_tdxHandleToDynam h_Dynam );
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT struct DNM_stDynamics *fn_p_stDynamGetDynamics(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT struct DNM_stParsingDatas *fn_p_stDynamGetParsingDatas(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT DNM_tdeMechanicsID fn_eDynamGetUsedMechanics(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT ACP_tdxBool fn_b_DynamGetIfCanHangSmthgOn(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT ACP_tdxBool fn_b_DynamGetIfIsAMobile(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT unsigned char fn_uc_DynamGetObjectType(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT unsigned long fn_ulDynamGetMecEngDesc(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetDynamics(MS_tdxHandleToDynam h_Dynam,struct DNM_stDynamics *p_stDynam);
extern CPA_EXPORT void fn_vDynamSetParsingDatas(MS_tdxHandleToDynam h_Dynam,struct DNM_stParsingDatas *p_stParsingDatas);
extern CPA_EXPORT void fn_vDynamSetUsedMechanics(MS_tdxHandleToDynam h_Dynam,DNM_tdeMechanicsID eUsedMechanics);
/* Functions linked to the MecEngDesc data */
extern CPA_EXPORT void fn_vDynamSetDefaultMecEngDesc(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetPathKnown(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetPathUnknown(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetDistantObject(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetNearObject(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT ACP_tdxBool fn_bDynamIsPathKnown(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT ACP_tdxBool fn_bDynamIsObjectDistant(MS_tdxHandleToDynam h_Dynam);
/* Function linked to the boolean environment */
extern CPA_EXPORT ACP_tdxBool fn_bDynamTakeCareOfEnvironment(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetStableEnvironment(MS_tdxHandleToDynam h_Dynam);
extern CPA_EXPORT void fn_vDynamSetDynamicsEnvironment(MS_tdxHandleToDynam h_Dynam);
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vInitDynamicalFunctionPointer(struct tdstDynam_ *p_stDynam);
extern CPA_EXPORT void fn_v_DynamUpdateDNMObjectTypeFromMS(struct tdstDynam_ *p_stDynam);
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long Dynam_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
#ifdef BIN_LoadBin
extern CPA_EXPORT void Dynam_fn_vReadBinaryBloc(unsigned long _ulStructAddress);
#endif
extern CPA_EXPORT struct DNM_stDynamics* fn_p_stDynamGetDynamicsSO (HIE_tdxHandleToSuperObject hSupObj);
ACP_tdxBool fn_bSetPositionWithoutCollideTest(HIE_tdxHandleToSuperObject p_SuperObjPerso, struct MTH3D_tdstVector_ *p_stVertex); /*vient de AI\AITools.h*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __Dynam_H__ */

View File

@@ -0,0 +1,156 @@
/*=========================================================================
* MSMagnet.h : MSMagnet's functions
*
*
*
*
* Version 0.9
* Creation date 11/25/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997(Shanghai)
*=======================================================================*/
#if !defined(__MSMagnet_H__)
#define __MSMagnet_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_MSMagnet_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSMagnet_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#include "MGT.h"
#define MAGNETOFF 0
#define MAGNETON 1
#define MAGNETGROWING 2
#define MAGNETRECOVERING 3
#define MAGNET_STRENGTH_MODIFIED 1
#define MAGNET_NEARFAR_MODIFIED 2
#define MAGNET_POSITION_MODIFIED 4
#if defined(D_MSMagnet_StructureDefine)
struct tdstMSMagnet_
{
MTH_tdxReal xFar;
MTH_tdxReal xNear;
MTH_tdxReal xStrength;
unsigned char status;
MTH3D_tdstVector stPosition;
unsigned long ulDuration; /*total duration in milliseconds*/
ACP_tdxIndex xMaxIndexOfMagnetModification;
MGT_tdxHandleToMagnetModification d_hMagnetModification[MGT_MAX_NUMBEROF_MODIFIEDOBJECTS];
unsigned char ucModifiedFlags;
};
#endif /* D_MSMagnet_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSMagnet_ * MS_tdxHandleToMSMagnet;
/**** MSMagnet scripts ****/
#define C_SectionMSMagnetDescription "MSMagnet"
#define C_EntryMSMagnetChamp "Champ"
#define C_EntryMagnetStatus "Status"
#define C_EntryMagnetFar "Far"
#define C_EntryMagnetNear "Near"
#define C_EntryMagnetStrength "Strength"
#define C_EntryMagnetDuration "Duration"
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
#ifndef U64
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMSMagnetScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /*U64 AR980316*/
extern CPA_EXPORT unsigned long fn_ulMSMagnetSizeOf();
extern CPA_EXPORT void fn_vMSMagnetAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSMagnet fn_h_MSMagnetRealAlloc();
extern CPA_EXPORT void fn_vMSMagnetFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMSMagnetInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSMagnetDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSMagnetCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT MTH_tdxReal fn_xMSMagnetGetFar(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetFar(MS_tdxHandleToMSMagnet h_MSMagnet,MTH_tdxReal xValue);
extern CPA_EXPORT MTH_tdxReal fn_xMSMagnetGetNear(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetNear(MS_tdxHandleToMSMagnet h_MSMagnet,MTH_tdxReal xValue);
extern CPA_EXPORT MTH_tdxReal fn_xMSMagnetGetStrength(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetStrength(MS_tdxHandleToMSMagnet h_MSMagnet,MTH_tdxReal xValue);
extern CPA_EXPORT unsigned char fn_lMSMagnetGetStatus(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetStatus(MS_tdxHandleToMSMagnet h_MSMagnet,unsigned char xValue);
extern CPA_EXPORT void fn_vMSMagnetAddMagnetModification(MS_tdxHandleToMSMagnet h_MSMagnet, MGT_tdxHandleToMagnetModification h_MagnetModif );
extern CPA_EXPORT void fn_vMSMagnetDeleteMagnetModification(MS_tdxHandleToMSMagnet h_MSMagnet, MGT_tdxHandleToMagnetModification h_MagnetModif );
extern CPA_EXPORT MGT_tdxHandleToMagnetModification fn_hMSMagnetGetMagnetModification(MS_tdxHandleToMSMagnet h_MSMagnet, ACP_tdxIndex xIndex );
extern CPA_EXPORT ACP_tdxIndex fn_xMSMagnetGetMaxIndexOfMagnetModification(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT MTH3D_tdstVector *fn_hMSMagnetGetPosition(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetPosition(MS_tdxHandleToMSMagnet h_MSMagnet,MTH3D_tdstVector *stPosition);
extern CPA_EXPORT unsigned long fn_ulMSMagnetGetDuration(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetDuration(MS_tdxHandleToMSMagnet h_MSMagnet,unsigned long ulDuration);
extern CPA_EXPORT void fn_vMSMagnetSetNearFarModification(MS_tdxHandleToMSMagnet h_MSMagnet,ACP_tdxBool _bModified);
extern CPA_EXPORT ACP_tdxBool fn_bMSMagnetIsNearFarModified(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetStrengthModification(MS_tdxHandleToMSMagnet h_MSMagnet,ACP_tdxBool _bModified);
extern CPA_EXPORT ACP_tdxBool fn_bMSMagnetIsStrengthModified(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSetPositionModification(MS_tdxHandleToMSMagnet h_MSMagnet,ACP_tdxBool _bModified);
extern CPA_EXPORT ACP_tdxBool fn_bMSMagnetIsPositionModified(MS_tdxHandleToMSMagnet h_MSMagnet);
/**********************************/
/**** Special functions define ****/
/**********************************/
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vMSMagnetInitValueSAI(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetSavedValueSAI(MS_tdxHandleToMSMagnet h_MSMagnet);
extern CPA_EXPORT void fn_vMSMagnetFreeInitValueSAI(MS_tdxHandleToMSMagnet h_MSMagnet);
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSMagnetGetFarInit (MS_tdxHandleToMSMagnet _hMSMagnet);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSMagnetGetNearInit (MS_tdxHandleToMSMagnet _hMSMagnet);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSMagnetGetStrengthInit (MS_tdxHandleToMSMagnet _hMSMagnet);
extern CPA_EXPORT unsigned long *fn_p_ulMSMagnetGetDurationInit (MS_tdxHandleToMSMagnet _hMSMagnet);
#endif /* ACTIVE_EDITOR */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MSMagnet_H__ */

View File

@@ -0,0 +1,323 @@
/*=========================================================================
* MSPrtSrc.h : MSPrtSrc's functions
*
*
* MSPrtSrc MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#ifndef D_THROW_PRT
#if !defined(__MSPrtSrc_H__)
#define __MSPrtSrc_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
struct tdstEngineObject_;
#include "GAM/Header.h"
#include "GAM/InitEnum.h"
#undef EXTERN
#undef extern
#if !defined(D_MSPrtSrc_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSPrtSrc_VariableDefine */
/*--------------------------------------------------------------------
* Environment masks
*--------------------------------------------------------------------*/
#define C_lAllEnvironments 0xFFFFFFFF
#define C_lEnvironmentWater 1
#define C_lEnvironmentAir 2
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#if defined(D_MSPrtSrc_StructureDefine)
/*--------------------------------------------------------------------
* Structures definitions
*--------------------------------------------------------------------*/
typedef struct tdstParticleGenerator_
{
PRT_tdstParticlesSource * p_stPrtSrc;
PRT_tdstParticlesSystem * p_stPrtSys;
PRT_tdstParticlesEnvironment * p_stPrtEnv;
long lEnvironmentMask;
MTH3D_tdstVector stMinPoint;
MTH3D_tdstVector stMaxPoint;
unsigned char ucLinkedToEnvironment;
/*ANNECY VL PRT 18/03/98{*/
unsigned long ulLinkedPrtGenMask;
struct tdstParticleGenerator_ *p_stLinkedPrtGen;
/*ENDANNECY VL}*/
} tdstParticleGenerator;
struct tdstMSPrtSrc_
{
tdstParticleGenerator * p_stParticleGenerator;
/* Add on for water streak actualisation */
GAM_tdxHandleToWaterStreakEffect hWaterStreakGenerator;
unsigned char ucGeneratorActivation;
unsigned char ucCanGenerate;
/*ANNECY VL 25/11/97{*/
/* add on for footpath effect*/
GAM_tdxHandleToFootPathEffect hFootPath;
/*ENDANNECY VL }*/
};
#endif /* D_MSPrtSrc_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSPrtSrc_ * MS_tdxHandleToMSPrtSrc;
/*--------------------------------------------------------------------
* MSPrtSrc scripts
*--------------------------------------------------------------------*/
#define C_SectionMSPrtSrcDescription "MSPrtSrc"
#define C_EntryMSPrtSrcGeneratorActivation "GeneratorActivation"
#define C_EntryMSPrtSrcParticleGenerator "ParticleGenerator"
#define C_EntryMSPrtSrcWaterStreakGenerator "WaterStreakGenerator"
/*ANNECY VL 25/11/97{*/
#define C_EntryMSPrtSrcFootPathGenerator "FootPathEffect"
/*ENDANNECY VL }*/
/*--------------------------------------------------------------------
* Particle Generator scripts
*--------------------------------------------------------------------*/
#define C_SectionParticleGenerator "ParticleGenerator"
#define C_EntryPrtGenLinkedToEnvironment "LinkedToEnvironment"
#define C_EntryPrtGenEnvironmentMask "EnvironmentMask"
#define C_EntryPrtGenLoadParticleSystem "LoadParticleSystem"
#define C_EntryPrtGenLoadParticleEnvironment "LoadParticleEnvironment"
#define C_EntryPrtGenLoadParticleSource "LoadParticleSource"
/*ANNECY VL PRT 18/03/98{*/
#define C_EntryPrtGenLinkedPrtGenMask "LinkedPrtGenMask"
#define C_EntryPrtGenLinkedPrtGen "LinkedPrtGen"
/*ENDANNECY VL}*/
#define C_szLinkedToEnvironment "Yes"
#define C_szNotLinkedToEnvironment "No"
/*--------------------------------------------------------------------
* Particle Source scripts
*--------------------------------------------------------------------*/
#define C_SectionParticleSource "PrtSrc"
#define C_EntryPrtSrcGenerationMode "GenerationMode"
#define C_EntryPrtSrcGenerationProbability "GenerationProbability"
#define C_EntryPrtSrcCrenelGeneration "CrenelGeneration"
#define C_EntryPrtSrcNbParticlesToGenerateMode "NbParticlesToGenerateMode"
#define C_EntryPrtSrcNbParticlesToGenerate "NbParticlesToGenerate"
#define C_EntryPrtSrcNbMinMax "NbMinMax"
#define C_EntryPrtSrcGeometryMode "GeometryMode"
#define C_EntryPrtSrcQuad "Quad"
#define C_EntryPrtSrcPoint "Point"
#define C_EntryPrtSrcLinkMode "LinkMode"
#define C_EntryPrtSrcSpeedAndRange "SpeedAndRange"
/* JO 10/12/97*/
#define C_EntryPrtSrcNoLifeTime "NoLifeTime"
#define C_EntryPrtSrcConstantLifeTime "ConstantLifeTime"
#define C_EntryPrtSrcProbabilistLifeTime "ProbabilistLifeTime"
#define C_szNoGeneration "NoGeneration"
#define C_szContinuousGeneration "ContinuousGeneration"
#define C_szProbabilistGeneration "ProbabilistGeneration"
#define C_szCrenelGeneration "CrenelGeneration"
#define C_szConstantNb "ConstantNb"
#define C_szProbabilistNb "ProbabilistNb"
#define C_szPoint "Point"
#define C_szQuad "Quad"
#define C_szRotationLink "RotationLink"
#define C_szTranslationLink "TranslationLink"
#define C_szRotationAndTranslationLink "RotationAndTranslationLink"
/*--------------------------------------------------------------------
* Particle System scripts
*--------------------------------------------------------------------*/
#define C_SectionPrtSysDescription "PrtSys"
#define C_EntryPrtSysCreatePoint "CreatePoint"
#define C_EntryPrtSysCreateSegment "CreateSegment"
#define C_EntryPrtSysCreateSprite "CreateSprite"
/*--------------------------------------------------------------------
* Particle Environment scripts
*--------------------------------------------------------------------*/
#define C_SectionPrtEnvDescription "PrtEnv"
#define C_EntryPrtEnvType "Type"
#define C_EntryPrtEnvMinMaxPoint "MinMaxPoint"
#define C_EntryPrtEnvSphere "Sphere"
#define C_EntryPrtEnvAcceleration "Acceleration"
#define C_szAlignedBox "AlignedBox"
#define C_szSphere "Sphere"
/*ANNECY VL 25/11/97{*/
/*--------------------------------------------------------------------
* FootPath effect scripts
*--------------------------------------------------------------------*/
#define C_szSectionFootPathEffectDescription "FootPathEffect"
#define C_szEntryNumberOfAlphaLevels "NumberOfAlphaLevels"
#define C_szEntryNumberOfPointsByAlpha "NumberOfPointsByAlpha"
#define C_szEntryAlpha "AlphaColor"
#define C_szEntryFootPrintOffsets "FootPrintOffsets"
#define C_szEntryFootPrintGameMaterial "FootPrintGameMaterial"
#define C_szEntryFootPrintDimension "FootPrintDimension"
#define C_szEntryMaterialMask "MaterialMask"
/*ENDANNECY VL }*/
/*--------------------------------------------------------------------
*
*--------------------------------------------------------------------*/
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMSPrtSrcScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_ePrtSysScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_ePrtEnvScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_ePrtGeneratorScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_ePrtSrcScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*ANNECY VL 25/11/97{*/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eFootPathScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*ENDANNECY VL }*/
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMSPrtSrcSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMSPrtSrcSizeOf();
extern CPA_EXPORT void fn_vMSPrtSrcAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSPrtSrc fn_h_MSPrtSrcRealAlloc();
extern CPA_EXPORT void fn_vMSPrtSrcFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMSPrtSrcInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSPrtSrcDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSPrtSrcCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT tdxHandleToParticleGenerator fn_p_stMSPrtSrcGetGenerator(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_p_stMSPrtSrcSetGenerator(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT unsigned char fn_ucMSPrtSrcGetGeneratorActivation(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSetGeneratorActivation(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,unsigned char _ucGeneratorActivation);
extern CPA_EXPORT GAM_tdxHandleToWaterStreakEffect fn_hMSPrtSrcGetWaterStreakGenerator(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSetWaterStreakGenerator(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,GAM_tdxHandleToWaterStreakEffect _hWaterStreakGenerator);
/*ANNECY VL 26/11/97{*/
extern CPA_EXPORT GAM_tdxHandleToFootPathEffect fn_hMSPrtSrcGetFootPath(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSetFootPath(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,GAM_tdxHandleToFootPathEffect _hfootPath );
/*ENDANNECY VL }*/
/**********************************************
*** Special functions for AI manipulations ***
**********************************************/
/* Generation Mode*/
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationModeNone(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationModeContinuous(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationModeCrenel(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,ACP_tdxIndex _xNb1,ACP_tdxIndex _xNb2);
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationModeProbability(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH_tdxReal _xProbability);
/* Generation number*/
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationNumberConstant(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,ACP_tdxIndex _xNumber);
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationNumberProbabilist(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,ACP_tdxIndex _xMin,ACP_tdxIndex _xMax);
/* Speed, acceleration and range*/
extern CPA_EXPORT void fn_vMSPrtSrcSetGenerationSpeedAndSpeedRange(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH_tdxReal _xSpeed,MTH_tdxReal _xSpeedRange);
extern CPA_EXPORT void fn_vMSPrtSrcSetAccelerationOfEnvironment(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH3D_tdstVector * _p_stAcceleration,MTH_tdxReal _xAccelerationRange);
/* Generation Geometry*/
extern CPA_EXPORT void fn_vMSPrtSrcSetMiddlePointOfEnvironment(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH3D_tdstVector * _p_stMiddlePoint);
extern CPA_EXPORT void fn_vMSPrtSrcSetRadiusOfSphereEnvironment(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH_tdxReal _xRadius);
extern CPA_EXPORT void fn_vMSPrtSrcSetDimensionsOfBoxEnvironment(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH_tdxReal _xXSemiLength,MTH_tdxReal _xYSemiLength,MTH_tdxReal _xZSemiLength);
/* Particles life time*/
extern CPA_EXPORT void fn_vMSPrtSrcSetParticlesInfiniteLifeTime(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSetParticlesConstantLifeTime(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH_tdxReal _xLifeTime);
extern CPA_EXPORT void fn_vMSPrtSrcSetParticlesProbabilistLifeTime(MS_tdxHandleToMSPrtSrc h_MSPrtSrc,MTH_tdxReal _xMinTime,MTH_tdxReal _xMaxTime);
/*************************************************/
/**** Access functions for particle generator ****/
/*************************************************/
extern CPA_EXPORT PRT_tdstParticlesSource * fn_p_stPrtGenGetSrc(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetSrc(tdxHandleToParticleGenerator _hPrtGenerator,PRT_tdstParticlesSource * _p_stSrc);
extern CPA_EXPORT PRT_tdstParticlesSystem * fn_p_stPrtGenGetPrtSys(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetPrtSys(tdxHandleToParticleGenerator _hPrtGenerator,PRT_tdstParticlesSystem * _p_stPrtSys);
extern CPA_EXPORT PRT_tdstParticlesEnvironment * fn_p_stPrtGenGetPrtEnv(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetPrtEnv(tdxHandleToParticleGenerator _hPrtGenerator,PRT_tdstParticlesEnvironment * _p_stPrtEnv);
extern CPA_EXPORT MTH3D_tdstVector * fn_p_stPrtGenGetMinPoint(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetMinPoint(tdxHandleToParticleGenerator _hPrtGenerator,MTH3D_tdstVector * _p_stMinPoint);
extern CPA_EXPORT MTH3D_tdstVector * fn_p_stPrtGenGetMaxPoint(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetMaxPoint(tdxHandleToParticleGenerator _hPrtGenerator,MTH3D_tdstVector * _p_stMaxPoint);
extern CPA_EXPORT unsigned char fn_ucPrtGenGetLinkValue(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetLinkValue(tdxHandleToParticleGenerator _hPrtGenerator,unsigned char _ucLinkValue);
extern CPA_EXPORT long fn_lPrtGenGetEnvironmentMask(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetEnvironmentMask(tdxHandleToParticleGenerator _hPrtGenerator,long _lEnvironmentMask);
/*ANNECY VL PRT 24/03/98{*/
extern CPA_EXPORT long fn_lPrtGenGetLinkedGenMask(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetLinkedGenMask(tdxHandleToParticleGenerator _hPrtGenerator,long _lLinkedGenMask);
extern CPA_EXPORT tdxHandleToParticleGenerator fn_hPrtGenGetLinkedGen(tdxHandleToParticleGenerator _hPrtGenerator);
extern CPA_EXPORT void fn_vPrtGenSetLinkedGen(tdxHandleToParticleGenerator _hPrtGenerator, tdxHandleToParticleGenerator _hLinkedGen);
/*ENDANNECY VL}*/
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vMSPrtSrcSourceGenerateParticles(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void fn_vMSPrtSrcInitMinMaxPoints(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcUpdateLinkedEnvironment(HIE_tdxHandleToSuperObject _hCharacter,MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vRegisterAllGamParticlesCallBacks(void);
extern CPA_EXPORT void fn_vMSPrtSysPreDrawAllParticlesSystemsForCharacter(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void fn_vMSPrtSysTreatAllParticlesSystemsForCharacter(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void GAM_fn_vTreatAllParticlesGeneratorInActiveSector(HIE_tdxHandleToSuperObject _hSector);
extern CPA_EXPORT void GAM_fn_vPreDrawAllParticlesGeneratorInActiveSector(HIE_tdxHandleToSuperObject _hSector);
extern CPA_EXPORT tdxHandleToParticleGenerator fn_hParticleGeneratorAllocation(void);
/* JO 29/11/97*/
extern CPA_EXPORT tdxHandleToParticleGenerator fn_hParticleGeneratorCopyClone(tdxHandleToParticleGenerator _hPrtGen);
extern CPA_EXPORT void fn_vSetFactorForParticlesGeneration(float _fFactor);
extern CPA_EXPORT float fn_fGetFactorForParticlesGeneration(void);
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vMSPrtSrcInitValueSAI(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcSavedValueSAI(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
extern CPA_EXPORT void fn_vMSPrtSrcFreeInitValueSAI(MS_tdxHandleToMSPrtSrc h_MSPrtSrc);
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
#endif /* ACTIVE_EDITOR */
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long MSPtrSrc_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*No read function necessary.*/
/*PRT_fn_vCreateParticlesSource(&h_MSPrtSrc->p_stPrtSrc);*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MSPrtSrc_H__ */
#endif /* D_THROW_PRT */

View File

@@ -0,0 +1,109 @@
/*=========================================================================
* MSSound.h : MSSound's functions
*
*
* MSSound MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__MSSound_H__)
#define __MSSound_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_MSSound_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSSound_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#if defined(D_MSSound_StructureDefine)
struct tdstMSSound_
{
RollOffParam stRollOff;
};
#endif /* D_MSSound_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSSound_ * MS_tdxHandleToMSSound;
/**** MSSound scripts ****/
#define C_SectionMSSoundDescription "MSSound"
#define C_EntryMSSoundSaturationDistance "SaturationDistance"
#define C_EntryMSSoundBackGroundDistance "BackGroundDistance"
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMSSoundScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMSSoundSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMSSoundSizeOf();
extern CPA_EXPORT void fn_vMSSoundAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSSound fn_h_MSSoundRealAlloc();
extern CPA_EXPORT void fn_vMSSoundFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMSSoundInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSSoundDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSSoundCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT SndReal fn_xMSSoundGetSaturationDistance(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundSetSaturationDistance(MS_tdxHandleToMSSound h_MSSound,SndReal _xSaturationDistance);
extern CPA_EXPORT SndReal fn_xMSSoundGetBackGroundDistance(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundSetBackGroundDistance(MS_tdxHandleToMSSound h_MSSound,SndReal _xBackGroundDistance);
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT SndBool fn_bRetRollOffFactor(long obj,RollOffParam* rolloff);
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vMSSoundInitValueSAI(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundSavedValueSAI(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT void fn_vMSSoundFreeInitValueSAI(MS_tdxHandleToMSSound h_MSSound);
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT SndReal *fn_p_xMSSoundGetSaturationDistanceInit(MS_tdxHandleToMSSound h_MSSound);
extern CPA_EXPORT SndReal *fn_p_xMSSoundGetBackGroundDistanceInit(MS_tdxHandleToMSSound h_MSSound);
#endif /* ACTIVE_EDITOR */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MSSound_H__ */

View File

@@ -0,0 +1,158 @@
/*=========================================================================
* MSWay.h : MSWay's functions
* Version 1.0
* Creation date January 21,1997
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__MSWay_H__)
#define __MSWay_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
/*ANNECY JMD {*/
#include "AI/AIBASE/WP_Handl.h"
#include "AI/AIBASE/WPgraphe.h"
/*ENDANNECY JMD }*/
#undef EXTERN
#undef extern
#if !defined(D_MSWay_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSWay_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/********************************************************************************/
/**** If we are int MSWay.c file, then, create the structures and variables ****/
/********************************************************************************/
#if defined(D_MSWay_StructureDefine)
/*
The MS for the ways only contains a dynamic array of way and the number of way in these array
The effective structure containing information on ways are described in waypoint.h
*/
typedef struct tdstMSWay_
{
WP_tdHandleOfGraph m_hPath ; /* path between two waypoints */
long m_lIndex ; /* index on the current waypoint in the list */
char m_bIsCircular;
} tdstMSWay;
#endif /* D_MSWay_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSWay_ * MS_tdxHandleToMSWay;
/*
Misc definition :
*/
typedef unsigned char tduc_WayIndex;
/**** MSWay scripts ****/
#define C_SectionMSWayDescription "MSWay"
#define C_EntryMSWayChamp "Champ"
/* Invalid MSWayHandle :*/
#define MSWAY_M_hInvalidMsWayHandle ((MS_tdxHandleToMSWay)NULL)
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
/*
------------------------------------------------------------------------------------------
MACROS-FUNCTIONS DECLARATION:
------------------------------------------------------------------------------------------
*/
/* */
/* accessing to the MSWay from the EngineObject :*/
#define MSWAY_M_hGetMSWayFromEngineObject(_EngineObject)\
((_EngineObject)->h_MSWay)
/*
-----------------------------------------------------------------------------------------
FUNCTIONS DECLARATION:
------------------------------------------------------------------------------------------
*/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMSWayScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMSWaySaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMSWaySizeOf();
extern CPA_EXPORT void fn_vMSWayAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSWay fn_h_MSWayRealAlloc();
extern CPA_EXPORT void fn_vMSWayFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMSWayInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSWayDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSWayCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
extern CPA_EXPORT void fn_vWaypointSecondPass (void);
/*********************************/
/**** Misc functions define ****/
/*********************************/
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long MSWay_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*NZO 25/09/97*/
#ifdef BIN_LoadBin
extern CPA_EXPORT void MSWay_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*ANNECY JMD {*/
/*****************************************************************************
* manage graph ( the m_hPath member )
*****************************************************************************/
CPA_EXPORT void MSWay_fn_vInitPath (MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT void MSWay_fn_vDesinitPath(MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT void MSWay_fn_vSetPath(MS_tdxHandleToMSWay hWay, WP_tdHandleOfGraph hPath, char _bIsCircular);
CPA_EXPORT long MSWay_fn_lGetNumberWayPointInPath (MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT long MSWay_fn_lGetCurrentIndexInPath (MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT long MSWay_fn_lGetLastIndexInPath (MS_tdxHandleToMSWay hWay) ;
/*ANNECY Bart#01 13/02/98 {*/
CPA_EXPORT long MSWay_fn_lGetFirstIndexInPath (MS_tdxHandleToMSWay hWay);
CPA_EXPORT long MSWay_fn_lSetCurrentIndexInPath (MS_tdxHandleToMSWay hWay, long _lIndex);
/*ENDANNECY Bart#01 }*/
/*ANNECY Bart#02 24/02/98 {*/
CPA_EXPORT long MSWay_fn_lLookForWPInMSWay(MS_tdxHandleToMSWay _hWay, WP_tdhWayPoint _hWayPoint);
/*ENDANNECY Bart#02 }*/
CPA_EXPORT long MSWay_fn_lIncrementCurrentIndexInPath (MS_tdxHandleToMSWay hWay, int iIncrement) ;
CPA_EXPORT WP_tdhWayPoint MSWay_fn_hGetWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex) ;
CPA_EXPORT WP_tdHandleOfGraph MSWay_fn_hGetPathFormPerso (HIE_tdxHandleToSuperObject hSuperObject) ;
/*ENDANNECY JMD }*/
CPA_EXPORT unsigned long MSWay_fn_ulGetCapsForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex) ;
CPA_EXPORT long MSWay_fn_lChangeCapsForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex, unsigned long ulNewCaps, long lValue) ;
CPA_EXPORT long MSWay_fn_lGetWeightForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex) ;
CPA_EXPORT long MSWay_fn_lChangeWeightForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex, long lWeight) ;
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MSWay_H__ */

View File

@@ -0,0 +1,156 @@
/*=========================================================================
* Micro.h : Micro's functions
*
*
* Micro MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__MS_Micro_H__)
#define __MS_Micro_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_Micro_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_Micro_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
typedef struct tdstIndexMicros_ * MIC_tdxHandleToMicro;
#if defined(D_Micro_StructureDefine)
LST2_M_DynamicUseListOf(MIC_tdxHandleToMicro);
struct tdstMicro_
{
GEO_tdxHandleToMatrix hMicroMatrix;
ACP_tdxBool bIsActive;
};
typedef struct tdstIndexMicrosList_
{
LST2_M_DynamicAnchorDeclaration(MIC_tdxHandleToMicro) hMicrosList;
} tdstIndexMicrosList;
typedef struct tdstIndexMicros_
{
LST2_M_DynamicElementDeclaration(MIC_tdxHandleToMicro)
long lIndex;
struct tdstEngineObject_ * hMicroObj;
} tdstIndexMicros;
#endif /* D_Micro_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMicro_ * MS_tdxHandleToMicro;
/**** Micro scripts ****/
#define C_SectionMicroDescription "Micro"
#define C_EntryMicroRotationMatrix "MatrixRotation"
#define C_EntryMicroTranslationMatrix "MatrixTranslation"
#define C_EntryMicroActivation "MicroIsActive"
#define C_EntryMicroUnactivation "MicroIsInactive"
/*** Sound Volume ***/
#define C_MSMicro_MinVolume 0
#define C_MSMicro_MaxVolume 127
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
EXTERN struct tdstIndexMicrosList_ g_stIndexMicrosList;
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMicroScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMicroSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMicroSizeOf();
extern CPA_EXPORT void fn_vMicroAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMicro fn_h_MicroRealAlloc();
extern CPA_EXPORT void fn_vMicroFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMicroInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMicroDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMicroCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT GEO_tdxHandleToMatrix fn_xMicroGetMatrix(MS_tdxHandleToMicro);
extern CPA_EXPORT void fn_vMicroSetMatrix(MS_tdxHandleToMicro,GEO_tdxHandleToMatrix);
extern CPA_EXPORT ACP_tdxBool fn_bMicroGetActivationFlag(MS_tdxHandleToMicro);
extern CPA_EXPORT void fn_vMicroSetActivationFlag(MS_tdxHandleToMicro,ACP_tdxBool);
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vAddMicro(struct tdstEngineObject_ *);
extern CPA_EXPORT void fn_vInitMicrosFunction();
extern CPA_EXPORT void fn_vActivateMicroForObject(struct tdstEngineObject_ *);
extern CPA_EXPORT void fn_vUnactivateMicroForObject(struct tdstEngineObject_ *);
extern CPA_EXPORT void fn_vRemoveMicro(struct tdstEngineObject_ * hEngObj);
extern CPA_EXPORT void fn_vRemoveAllMicros();
extern CPA_EXPORT long fn_lRetObjectSoundLinkVolumeWithMicro(long objet,long micro);
extern CPA_EXPORT BOOL td_fn_bRetObjetSoundLinkWithMicro(long objet,long micro);
/*************************************/
/**** Micro List access functions ****/
/*************************************/
extern CPA_EXPORT long fn_lGetMicroIndiceInMicroListElement(MIC_tdxHandleToMicro _hMicroListElement);
extern CPA_EXPORT struct tdstEngineObject_ * fn_p_stGetEngineObjectInMicroListElement(MIC_tdxHandleToMicro _hMicroListElement);
/*------------------------------------------------------------------
*------------------------------------------------------------------
* WARNING : these functions are to use only with the ONE micro
* version of the GamLib
*------------------------------------------------------------------
*-----------------------------------------------------------------*/
extern CPA_EXPORT void fn_vChangeCharacterForMicro(struct tdstEngineObject_ *);
extern CPA_EXPORT void GAM_fn_vChangeCharacterForMicro(HIE_tdxHandleToSuperObject);
extern CPA_EXPORT struct tdstEngineObject_ * fn_p_stGetFirstEngineObjectInMicroList(void);
/*------------------------------------------------------------------
*------------------------------------------------------------------
* End of functions for the ONE micro specific version of the GamLib
*------------------------------------------------------------------
*-----------------------------------------------------------------*/
extern CPA_EXPORT struct tdstEngineObject_ * fn_hReturnHandleMicroFromIndex(long lIndex);
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long MSMicro_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer, struct tdstEngineObject_ * p_stCharac);
#endif
/*No read function necessary.*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MS_Micro_H__ */

View File

@@ -0,0 +1,307 @@
/*=========================================================================
* MSLight.h : Light's functions
*
*
* Light MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__MSLIGHT_H__)
#define __MSLIGHT_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_MSLight_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSLight_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#if defined(D_MSLight_StructureDefine)
struct tdstMSLight_
{
/*ANNECY CT 13/01/98 {*/
unsigned char bLocalLight;
unsigned char bOnlyLocalLight;
/*ENDANNECY CT }*/
unsigned char bGiroPhare;
unsigned char bPulsing;
MTH3D_tdstVector stOffsetVect;
MTH3D_tdstVector stAngle;
MTH_tdxReal xStepGiro;
MTH_tdxReal xStepPulse;
MTH_tdxReal xMaxRangePulse;
MTH_tdxReal xGiroAngle;
GLI_tdstLight *p_stLight;
GEO_tdstGeometricObject *p_stVisuLight;
SECT_tdxHandleOfElementLstDNMLights hLightInSector;
/*ANNECY JMD 17/02/98{*/
unsigned char ucNbRLIUse ; /* 0 : no use ; 1 : use one RLI ; 2 : blend RLI */
unsigned char ucFirstRLI ; /* index of the first RLI in the array in the VSE */
unsigned char ucSecondRLI ; /* index of the second RLI in the arry in the VSE */
MTH_tdxReal ucBlendPercent ; /* percent of the blend between the two RLI */
/*END ANNECY JMD }*/
};
#endif /* D_MSLight_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSLight_ * MS_tdxHandleToMSLight;
/**** Light scripts ****/
#define C_SectionLightDescription "MSLight"
#define C_EntryLightOnOff "On"
#define C_EntryLightType "Type"
#define C_EntryLightFarNear "FarNear"
#define C_EntryLightLittleBigAlpha "LittleBigAlpha"
#define C_EntryLightLittleBigTangent "LittleBigTangent"
#define C_EntryLightColor "Color"
#define C_EntryGiroPhare "GiroPhare"
#define C_EntryPulse "Pulse"
#define C_EntryOffset "Offset"
#define C_EntryDirection "Direction"
/*ANNECY CT 13/01/98 {*/
#define C_EntryLocalLight "LocalLight"
#define C_EntryOnlyLocalLight "OnlyLocalLight"
/*ENDANNECY CT }*/
/*CHINA WFQ (MT) 16-02-98 {*/
#define C_EntryInterMinPos "InterMinPos"
#define C_EntryInterMaxPos "InterMaxPos"
#define C_EntryExterMinPos "ExterMinPos"
#define C_EntryExterMaxPos "ExterMaxPos"
#define C_EntryIntensityMinMax "IntensityMinMax"
/*ENDCHINA WFQ }*/
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/* MR1903*/
EXTERN unsigned char g_bShowLight
#if defined(D_MSLight_VariableDefine)
=0
#endif
;
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eLightScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vLightSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulLightSizeOf();
extern CPA_EXPORT void fn_vLightAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSLight fn_h_LightRealAlloc();
extern CPA_EXPORT void fn_vLightFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vLightInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vLightDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vLightCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
extern CPA_EXPORT void fn_vLightReInit(struct tdstEngineObject_ *p_stObject);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT unsigned char fn_ucMSLightGetOnOff(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetOnOff(MS_tdxHandleToMSLight h_MSLight,unsigned char ucOnOff);
extern CPA_EXPORT void fn_vMSCreateLightWithType(MS_tdxHandleToMSLight h_MSLight,long lTypeOfLight);
extern CPA_EXPORT long fn_lMSLightGetTypeOfLight(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetTypeOfLight(MS_tdxHandleToMSLight h_MSLight,long lTypeOfLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetFar(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetFar(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xFar);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetNear(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetNear(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xNear);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetLittleAlpha(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetLittleAlpha(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xLittleAlpha);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetBigAlpha(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetBigAlpha(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xBigAlpha);
extern CPA_EXPORT GEO_tdstColor *fn_p_stMSLightGetColor(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetColor(MS_tdxHandleToMSLight h_MSLight,GEO_tdstColor *p_stColor);
extern CPA_EXPORT void fn_vMSLightSetColorRGBA(MS_tdxHandleToMSLight h_MSLight,GEO_tdxColorValue xR,GEO_tdxColorValue xG,GEO_tdxColorValue xB,GEO_tdxColorValue xA);
extern CPA_EXPORT GEO_tdxColorValue fn_xMSLightGetColorR(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT GEO_tdxColorValue fn_xMSLightGetColorG(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT GEO_tdxColorValue fn_xMSLightGetColorB(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT GEO_tdxColorValue fn_xMSLightGetColorA(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT GLI_tdstLight **fn_pp_stMSLightGetLight(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT GLI_tdstLight *fn_p_stMSLightGetLight(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetLight(MS_tdxHandleToMSLight h_MSLight,GLI_tdstLight *p_stLight);
extern CPA_EXPORT void fn_vMSLightSetNearFar(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xNear,MTH_tdxReal xFar);
extern CPA_EXPORT void fn_vMSLightSetAlphas(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xLittleAlpha,MTH_tdxReal xBigAlpha);
extern CPA_EXPORT void fn_vMSLightSetGiroPhare(MS_tdxHandleToMSLight h_MSLight,unsigned char bOnOff,MTH_tdxReal xStep);
extern CPA_EXPORT unsigned char fn_bMSLightGetGiroPhare(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetGiroStep(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetGiroAngle(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xAngle);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetGiroAngle(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetPulseStep(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetPulse(MS_tdxHandleToMSLight h_MSLight,unsigned char bOnOff,MTH_tdxReal xStep,MTH_tdxReal xMaxRange);
extern CPA_EXPORT unsigned char fn_bMSLightGetPulse(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetPulseStep(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetPulseStep(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xStep);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetPulseMaxRange(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetPulseMaxRange(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xMR);
extern CPA_EXPORT void fn_vMSLightSetOffset(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xX,MTH_tdxReal xY,MTH_tdxReal xZ);
extern CPA_EXPORT void fn_vMSLightSetOffsetVector(MS_tdxHandleToMSLight h_MSLight,MTH3D_tdstVector *p_stVector);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetOffset(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetOffset(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetOffsetX(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetOffsetY(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetOffsetZ(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetDirection(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal xX,MTH_tdxReal xY,MTH_tdxReal xZ);
extern CPA_EXPORT void fn_vMSLightGetDirection(MS_tdxHandleToMSLight h_MSLight,MTH_tdxReal *p_xX,MTH_tdxReal *p_xY,MTH_tdxReal *p_xZ);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetDirectionX(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetDirectionY(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetDirectionZ(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT SECT_tdxHandleOfElementLstDNMLights fn_hMSLightGetLightNodeInSector(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT void fn_vMSLightSetLightNodeInSector(MS_tdxHandleToMSLight _hMSLight,SECT_tdxHandleOfElementLstDNMLights _hLightNode);
/*ANNECY CT 13/01/98 {*/
extern CPA_EXPORT unsigned char fn_bMSLightGetLocalLight(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetLocalLight(MS_tdxHandleToMSLight h_MSLight,unsigned char ucLocalLight);
extern CPA_EXPORT unsigned char fn_bMSLightGetOnlyLocalLight(MS_tdxHandleToMSLight h_MSLight);
extern CPA_EXPORT void fn_vMSLightSetOnlyLocalLight(MS_tdxHandleToMSLight h_MSLight,unsigned char ucOnlyLocalLight);
/*ENDANNECY CT }*/
/*CHINA WFQ (MT) 16-02-98 {*/
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetInterMinInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetInterMinX(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetInterMinY(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetInterMinZ(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetInterMaxInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetInterMaxX(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetInterMaxY(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetInterMaxZ(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetExterMinInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetExterMinX(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetExterMinY(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetExterMinZ(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetExterMaxInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetExterMaxX(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetExterMaxY(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetExterMaxZ(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetIntensityMin(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal fn_xMSLightGetIntensityMax(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT void fn_xMSLightSetInterMinXYZ(MS_tdxHandleToMSLight _hMSLight,
MTH_tdxReal xInterMinX, MTH_tdxReal xInterMinY, MTH_tdxReal xInterMinZ );
extern CPA_EXPORT void fn_xMSLightSetInterMaxXYZ(MS_tdxHandleToMSLight _hMSLight,
MTH_tdxReal xInterMaxX, MTH_tdxReal xInterMaxY, MTH_tdxReal xInterMaxZ );
extern CPA_EXPORT void fn_xMSLightSetExterMinXYZ(MS_tdxHandleToMSLight _hMSLight,
MTH_tdxReal xExterMinX, MTH_tdxReal xExterMinY, MTH_tdxReal xExterMinZ );
extern CPA_EXPORT void fn_xMSLightSetExterMaxXYZ(MS_tdxHandleToMSLight _hMSLight,
MTH_tdxReal xExterMaxX, MTH_tdxReal xExterMaxY, MTH_tdxReal xExterMaxZ );
extern CPA_EXPORT void fn_xMSLightSetIntensityMinMax(MS_tdxHandleToMSLight _hMSLight, MTH_tdxReal xIntensityMin, MTH_tdxReal xIntensity_Max);
/*ENDCHINA WFQ }*/
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT GLI_tdxValue fn_xComputeAngleOfPerso(HIE_tdxHandleToSuperObject p_SuperObjPerso);
extern CPA_EXPORT void fn_vUpdateLight(HIE_tdxHandleToSuperObject hSupObject);
extern CPA_EXPORT GEO_tdstGeometricObject *fn_pCreateSphere(MTH_tdxReal x,MTH_tdxReal y,MTH_tdxReal z,MTH_tdxReal xRadius);
extern CPA_EXPORT GEO_tdstGeometricObject *fn_pCreateCone(MTH_tdxReal x,MTH_tdxReal y,MTH_tdxReal z,MTH_tdxReal xRadius);
/**********************/
/**** SAI function ****/
/**********************/
void fn_vLightInitValueSAI(MS_tdxHandleToMSLight _hMSLight);
void fn_vLightSavedValueSAI(MS_tdxHandleToMSLight _hMSLight);
void fn_vLightFreeInitValueSAI(MS_tdxHandleToMSLight _hMSLight);
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT unsigned char *fn_p_ucMSLightGetGiroPhareInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT unsigned char *fn_p_ucMSLightGetPulsingInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetOffsetVectInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH3D_tdstVector *fn_p_stMSLightGetAngleInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetStepGiroInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetStepPulseInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetMaxRangePulseInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetGiroAngleInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT long *fn_p_lMSLightGetOnOffInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT long *fn_p_lMSLightGetTypeInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetFarInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetNearInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetLittleAlphaInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetBigAlphaInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetLittleTangentInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetBigTangentInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetColorRInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetColorGInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetColorBInit(MS_tdxHandleToMSLight _hMSLight);
/*ANNECY CT 13/01/98 {*/
extern CPA_EXPORT unsigned char *fn_p_ucMSLightGetLocalLightInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT unsigned char *fn_p_ucMSLightGetOnlyLocalInit(MS_tdxHandleToMSLight _hMSLight);
/*ENDANNECY CT }*/
/* CHINA WFQ (MT) 16-02-98 {*/
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetInterMinXInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetInterMinYInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetInterMinZInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetInterMaxXInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetInterMaxYInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetInterMaxZInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetExterMinXInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetExterMinYInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetExterMinZInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetExterMaxXInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetExterMaxYInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetExterMaxZInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetIntensityMinInit(MS_tdxHandleToMSLight _hMSLight);
extern CPA_EXPORT MTH_tdxReal *fn_p_xMSLightGetIntensityMaxInit(MS_tdxHandleToMSLight _hMSLight);
/*ENDCHINA WFQ }*/
#endif /* ACTIVE_EDITOR */
extern CPA_EXPORT GLI_tdstLight *HIE_fn_hGetSuperObjectLight(HIE_tdxHandleToSuperObject p_SuperObjPerso);
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long MSLight_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*NZO 25/09/97*/
#ifdef BIN_LoadBin
extern CPA_EXPORT void MSLight_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*ANNECY JMD 17/02/98{*/
extern CPA_EXPORT unsigned char fn_ucGetNumberOfRLI (MS_tdxHandleToMSLight hMSLight, unsigned char *ucIndex1, unsigned char *ucIndex2, MTH_tdxReal *xPercent );
extern CPA_EXPORT unsigned char fn_ucGetNumberOfRLIFromCharacter (HIE_tdxHandleToSuperObject hSprObj, unsigned char *p_ucIndex1, unsigned char *p_ucIndex2, MTH_tdxReal *p_xPercent) ;
extern CPA_EXPORT void fn_vMSLightSetRLIParameter ( MS_tdxHandleToMSLight hMSLight, long lNbRLI, long lIndex1, long lIndex2, long lPercent ) ;
/*END ANNECY JMD }*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __LIGHT_H__ */

View File

@@ -0,0 +1,140 @@
/*=========================================================================
* SectInfo.h : SectInfo's functions
*
*
* SectInfo MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__SectInfo_H__)
#define __SectInfo_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_SectInfo_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_SectInfo_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#if defined(D_SectInfo_StructureDefine)
typedef struct tdstSectInfo_
{
/* Obsolete (keeping it for ascendant compatibility)*/
HIE_tdxHandleToSuperObject hCurrentSector;
SECT_tdxHandleOfElementLstCharacter hNodeInSector;
/* For new version*/
MTH3D_tdstVector stPreviousPosition;
} tdstSectInfo;
#endif /* D_SectInfo_StructureDefine */
#ifdef CODEWARRIOR
#include "GAM\InitEnum.h"
#endif
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstSectInfo_ * MS_tdxHandleToSectInfo;
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/**** SectInfo scripts ****/
#define C_SectionSectInfoDescription "SectInfo"
#define C_EntrySectInfoChamp "Champ"
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eSectInfoScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vSectInfoSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulSectInfoSizeOf();
extern CPA_EXPORT void fn_vSectInfoAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToSectInfo fn_h_SectInfoRealAlloc();
extern CPA_EXPORT void fn_vSectInfoFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vSectInfoInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vSectInfoDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vSectInfoCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*extern CPA_EXPORT void fn_vSectInfoInitForCharacters(HIE_tdxHandleToSuperObject p_stDynamicHierarchy);*/
extern CPA_EXPORT void fn_vUpdateActiveSector();
extern CPA_EXPORT void fn_vSectInfoSavedValueSAI(MS_tdxHandleToSectInfo hSectInfo);
extern CPA_EXPORT void fn_vSectInfoFreeInitValueSAI(MS_tdxHandleToSectInfo hSectInfo);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT HIE_tdxHandleToSuperObject fn_h_SectInfoGetCurrentSector(MS_tdxHandleToSectInfo h_SectInfo);
extern CPA_EXPORT void fn_vSectInfoSetCurrentSector(MS_tdxHandleToSectInfo h_SectInfo,HIE_tdxHandleToSuperObject hCurrentSector);
extern CPA_EXPORT void fn_vSectInfoSetNode(MS_tdxHandleToSectInfo _hSectInfo,SECT_tdxHandleOfElementLstCharacter _hNode);
extern CPA_EXPORT SECT_tdxHandleOfElementLstCharacter fn_hSectInfoGetNode(MS_tdxHandleToSectInfo _hSectInfo);
/******************************************/
/**** Same functions for others module ****/
/******************************************/
extern CPA_EXPORT HIE_tdxHandleToSuperObject GAM_fn_hGetCurrentSector(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void GAM_fn_vSetCurrentSector(HIE_tdxHandleToSuperObject _hCharacter,HIE_tdxHandleToSuperObject _hCurrentSector);
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vInsertObjectInSectorList(HIE_tdxHandleToSuperObject hSector,HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void fn_vRemoveObjectInSectorList(HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void fn_vSectInfoInitForSingleCharacter(HIE_tdxHandleToSuperObject hCharacter,struct MTH3D_tdstVector_ * hPosition);
extern CPA_EXPORT void fn_vSectInfoLaunchSectorSoundEvents(HIE_tdxHandleToSuperObject);
extern CPA_EXPORT void fn_vSectInfoLaunchEventsFromS1ToS2(HIE_tdxHandleToSuperObject,HIE_tdxHandleToSuperObject);
extern CPA_EXPORT void fn_vSectInfoSetCharacterLauchingEvents(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT HIE_tdxHandleToSuperObject fn_hSearchSectorFromPosition(HIE_tdxHandleToSuperObject _hCharacter,MTH3D_tdstVector * _p_stPosition);
extern CPA_EXPORT void fn_vInsertLightInSectorList(HIE_tdxHandleToSuperObject hSector,HIE_tdxHandleToSuperObject hCharacter);
/* MR1108*/
extern CPA_EXPORT void fn_vInsertStreamInSectorList(HIE_tdxHandleToSuperObject hSector,HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void GAM_fn_vSectInfoTestChangeSectorForCharacter(HIE_tdxHandleToSuperObject _hCharacter);
/*****************************/
/**** Debugging functions ****/
/*****************************/
extern CPA_EXPORT char * fn_p_szSectInfoGetCurrentSectorName(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT char * fn_p_szSectInfoGetPreviousSectorName(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void fn_vTestAllSectorsListForIncoherences(void);
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long SectInfo_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*No read function necessary.*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __SectInfo_H__ */

View File

@@ -0,0 +1,578 @@
/*=========================================================================
* StdGame.h : StdGame's functions
*
*
* StdGame MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__StdGame_H__)
#define __StdGame_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_StdGame_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_StdGame_VariableDefine */
/******************************************/
#define GAM_C_DesactivateAtAll 0x01
#define GAM_C_Activable 0x02
#define GAM_C_Active 0x04
#define GAM_C_AllSecondPassDone 0x08
/******************************************/
#define GAM_C_Always 0x10
#define GAM_C_UselessCulling 0x20
#define GAM_C_AlwaysActive 0x40
#define GAM_C_TooFar 0x80
/******************************************/
#define GAM_C_SavedMiscFlags (GAM_C_DesactivateAtAll|GAM_C_Activable|GAM_C_Active)
/**************************************************************************************************************
GAM_C_DesactivateAtAll | GAM_C_Activable | Means
------------------------|-----------------------|-------------------------
0 | 0 | desactivated by AI
------------------------|-----------------------|-------------------------
0 | 1 | activable (active if in an active sector)
------------------------|-----------------------|-------------------------
1 | 0 | definitively dead (dead and init : NeverBackWhenTaken)
------------------------|-----------------------|-------------------------
1 | 1 | dead (dead and init : PlayerDead or always or GoOutOfZone)
*************************************************************************************************************/
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/********************************************************************************/
struct tdstStandardGame_
{
/*
* type of the object this structure describes
*/
tdObjectType otObjectFamilyType; /**** -1 (C_InvalidObjectType) is a invalid type ****/
#ifndef U64
tdObjectType otObjectModelType; /**** -1 (C_InvalidObjectType) is a invalid type ****/
#endif
tdObjectType otObjectPersonalType; /**** (if > C_AlwaysObjectType) is a always object ****/
/* super-object father pointer */
HIE_tdxHandleToSuperObject h_SuperObject;
/*
* how is the object activation performed ?
*/
enum tdeObjectinitInit_ eInitFlagWhenOutOfZone;
enum tdeObjectinitInit_ eInitFlagWhenDeadOrTaken;
/* last modification's trame number */
unsigned long ulLastTrame;
/* Capabilities of the object to follow a path in the WPgraph */
unsigned long ubf32Capabilities;
unsigned char ucTractionFactor;
/* number of hit points an object have at a given time */
unsigned char ucHitPoints/*,ucHitPointsInit*/;
unsigned char ucHitPointsMax/*,ucHitPointsMaxInit*/;
unsigned char ucHitPointsMaxMax;
unsigned long ulCustomBits;
/* Special management for platforms */
unsigned char ucPlatFormType;
/* used to know if the object is dead, taken ..., and must be not reappear if the player dead */
/* is the object to be handled at all by the game engine ? is this object to be handled by the game engine at the current time ? */
unsigned char ucMiscFlags; /* DesactivateAtAll + Activable + Active + AllSecondPassDone*/
/* ANNECY MT - 08/07/98 {*/
unsigned char ucTransparencyZoneMin;
unsigned char ucTransparencyZoneMax;
/* END ANNECY MT }*/
/* ANNECY AV {*/
/* Instead of using SAI functions to manage intialisation, which are memory eater, we save our variables ourself*/
/* This uses 8 bytes while SAI uses 96 bytes : we save 17 Ko for 200 actors !*/
unsigned long ulSaveCustomBits;
unsigned char ucSaveHitPoints;
unsigned char ucSaveHitPointsMax;
unsigned char ucSaveMiscFlags;
/* END ANNECY AV }*/
/* ANNECY MT - 22/10/98 {*/
unsigned char ucTooFarLimit;
/* END ANNECY MT }*/
#if defined(ACTIVE_EDITOR)
unsigned char bIsLoadedInFix;
unsigned char bIsInAllSubMaps;
#endif /* ACTIVE_EDITOR */
};
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstStandardGame_ * MS_tdxHandleToStandardGame;
/* ANNECY AV DEMO {*/
#if !defined(U64) && !defined(SCR2BIN)
#include "Gam/Specif/Demos.h"
#endif
/* END ANNECY AV }*/
/**** StdGame scripts ****/
#define C_SectionStdGameDescription "StandardGame"
#define C_EntryStdGameType "Type"
#define C_EntryStdGameHitPointInit "HitPointsInit"
#define C_EntryStdGameHitPoint "HitPoints"
#define C_EntryStdGameHitPointMaxInit "HitPointsMaxInit"
#define C_EntryStdGameHitPointMax "HitPointsMax"
#define C_EntryStdGameHitPointMaxMax "HitPointsMaxMax"
#define C_EntryStdGameIsActivable "IsActivable"
#define C_EntryStdGameIsDesactivableAtAll "IsDesactivableAtAll"
#define C_EntryStdInitFlag "InitFlags"
/*#define C_EntryStdSpecialPositionFlag "SpecialPositionFlag"*/
#define C_ValueStdInitFlagNeverBack "NeverBack"
#define C_ValueStdInitFlagAlways "Always"
#define C_ValueStdInitFlagGoOutOfZone "WhenGoOutOfZone"
#define C_ValueStdInitFlagPlayerDead "WhenPlayerDead"
#define C_ValueStdInitFlagMapLoaded "WhenMapLoaded"
#define C_ValueStdInitFlagSavedGameLoaded "WhenSavedGameLoaded"
#define C_EntryStdGamePlatFormType "PlatFormType"
/*ANNECY BBB 20/11/97 {*/
#define C_EntryStdGameCustomBits "CustomBits"
#define C_EntryStdGameCustomBitsInit "CustomBitsInit"
/*ENDANNECY BBB 20/11/97 }*/
/* JO 18/11/97*/
#define C_EntryStdGameLinkedToSectorFlag "LinkedToSector"
#define C_EntryStdGameCapabilities "Capabilities"
#define C_EntryStdGameTractionFactor "TractionFactor"
/* ANNECY MT - 08/07/98 {*/
#define C_EntryStdGameTransparencyZone "TransparencyZone"
/* END ANNECY MT }*/
/* ANNECY MT - 22/10/98 {*/
#define C_EntryStdGameTooFarLimit "TooFarLimit"
/* END ANNECY MT }*/
/*
* Custom Bit Flag values
*/
#define GAM_C_CustBitUnseenFrozenAnimPlayer 0x00000001 /* 1*/
#define GAM_C_CustBitNeedModuleMatrices 0x00000002 /* 2*/
#define GAM_C_CustBitMovable 0x00000004 /* 3*/
#define GAM_C_CustBitProjectile 0x00000008 /* 4*/
#define GAM_C_CustBitRayHit 0x00000010 /* 5*/
#define GAM_C_CustBitSightable 0x00000020 /* 6*/
#define GAM_C_CustBitCannotCrushPrincipalActor 0x00000040 /* 7*/
#define GAM_C_CustBitCollectable 0x00000080 /* 8*/
#define GAM_C_CustBitActorHasShadow 0x00000100 /* 9*/
#define GAM_C_CustBitShadowOnMe 0x00000200 /* 10*/
#define GAM_C_CustBitPrunable 0x00000400 /* 11*/
#define GAM_C_CustBitOutOfVisibility 0x00000800 /* 12*/
#define GAM_C_CustBitUnseenFrozen 0x00001000 /* 13*/
#define GAM_C_CustBitNoAnimPlayer 0x00002000 /* 14*/
#define GAM_C_CustBitFightable 0x00004000 /* 15*/
#define GAM_C_CustBitNoMechanic 0x00008000 /* 16*/
#define GAM_C_CustBitNoAI 0x00010000 /* 17*/
#define GAM_C_CustBitDestroyWhenAnimEnded 0x00020000 /* 18*/
#define GAM_C_CustBitNoAnimPlayerWhenTooFar 0x00040000 /* 19*/
#define GAM_C_CustBitNoAIWhenTooFar 0x00080000 /* 20*/
#define GAM_C_CustBitUnfreezable 0x00100000 /* 21*/
#define GAM_C_CustBitUsesTransparencyZone 0x00200000 /* 22*/
#define GAM_C_CustBitNoMecaWhenTooFar 0x00400000 /* 23*/
#define GAM_C_CustBitSoundWhenInvisible 0x00800000 /* 24*/
#define GAM_C_CustBitProtection 0x01000000 /* 25*/
#define GAM_C_CustBitCameraHit 0x02000000 /* 26*/
#define GAM_C_CustBit27 0x04000000 /* 27*/
#define GAM_C_CustBitAIUser1 0x08000000 /* 28*/
#define GAM_C_CustBitAIUser2 0x10000000 /* 29*/
#define GAM_C_CustBitAIUser3 0x20000000 /* 30*/
#define GAM_C_CustBitAIUser4 0x40000000 /* 31*/
#define GAM_C_CustBitRayman 0x80000000 /* 32*/
/* those bits cannot be modified, because they are for internal use only */
#define C_ulUnchangableCustomBits ( GAM_C_CustBitOutOfVisibility | GAM_C_CustBitRayman | GAM_C_CustBitProtection )
/* JO 04/11/97*/
/*
* PlatForm Type Values
*/
#define C_ucPlatFormType_None 0
#define C_ucPlatFormType_StandardPlatForm 1
/*******************************/
/**** Base functions define ****/
/*******************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eStdGameScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
extern CPA_EXPORT unsigned long fn_ulStdGameSizeOf();
extern CPA_EXPORT void fn_vStdGameAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToStandardGame fn_h_StdGameRealAlloc();
extern CPA_EXPORT void fn_vStdGameFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vStdGameInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vStdGameDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vStdGameCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/********************************/
/**** Acces functions define ****/
/********************************/
INLINE
tdObjectType fn_otStandardGameGetFamilyType (MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->otObjectFamilyType); }
INLINE
void fn_vStandardGameSetFamilyType (MS_tdxHandleToStandardGame h_StdGame,tdObjectType otFamilyType)
{ h_StdGame->otObjectFamilyType=otFamilyType; }
#ifndef U64
INLINE
tdObjectType fn_otStandardGameGetModelType(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->otObjectModelType); }
INLINE
void fn_vStandardGameSetModelType(MS_tdxHandleToStandardGame h_StdGame,tdObjectType otModelType)
{ h_StdGame->otObjectModelType=otModelType; }
#endif
INLINE
tdObjectType fn_otStandardGameGetPersonalType(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->otObjectPersonalType); }
INLINE
void fn_vStandardGameSetPersonalType(MS_tdxHandleToStandardGame h_StdGame,tdObjectType otPersonalType)
{ h_StdGame->otObjectPersonalType=otPersonalType; }
INLINE
unsigned long fn_ulStandardGameGetLastTrame(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->ulLastTrame); }
INLINE
void fn_vStandardGameSetLastTrame(MS_tdxHandleToStandardGame h_StdGame,unsigned long ulLastTrame)
{ h_StdGame->ulLastTrame=ulLastTrame; }
INLINE
unsigned char fn_ucStandardGameGetHitPoints(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->ucHitPoints); }
INLINE
void fn_vStandardGameSetHitPoints(MS_tdxHandleToStandardGame h_StdGame,unsigned char ucHitPoints)
{ h_StdGame->ucHitPoints=ucHitPoints; }
INLINE
unsigned char fn_ucStandardGameGetHitPointsMax(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->ucHitPointsMax); }
INLINE
void fn_vStandardGameSetHitPointsInit(MS_tdxHandleToStandardGame h_StdGame,unsigned char ucHitPointsInit)
{ h_StdGame -> ucSaveHitPoints = ucHitPointsInit ; }
INLINE
void fn_vStandardGameSetHitPointsMax(MS_tdxHandleToStandardGame h_StdGame,unsigned char ucHitPoints)
{ h_StdGame->ucHitPointsMax=ucHitPoints; }
INLINE
unsigned char fn_ucStandardGameGetHitPointsMaxMax(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->ucHitPointsMaxMax); }
INLINE
void fn_vStandardGameSetHitPointsMaxMax(MS_tdxHandleToStandardGame h_StdGame,unsigned char ucHitPoints)
{ h_StdGame->ucHitPointsMaxMax=ucHitPoints; }
INLINE
unsigned char fn_bf1StandardGameGetIsDesactivateAtAll(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_DesactivateAtAll ? TRUE : FALSE); }
INLINE
void fn_vStandardGameSetIsDesactivateAtAll(MS_tdxHandleToStandardGame h_StdGame,unsigned char bf1IsDesactivateAtAll)
{
/* ANNECY AV DEMO {*/
#if !defined(U64) && !defined(SCR2BIN) && !defined(RETAIL)
if(g_DEMO_KeybTest == DEMO_RECORD)
{
if (h_StdGame->h_SuperObject &&
((bf1IsDesactivateAtAll == TRUE && (h_StdGame->ucMiscFlags & GAM_C_DesactivateAtAll) == 0) ||
(bf1IsDesactivateAtAll == FALSE && (h_StdGame->ucMiscFlags & GAM_C_DesactivateAtAll) != 0)))
{
DEMO_fn_vTestAndSaveActivationDesactivation (h_StdGame->h_SuperObject , ! bf1IsDesactivateAtAll);
}
}
#endif
/* END ANNECY AV }*/
if(bf1IsDesactivateAtAll)
h_StdGame->ucMiscFlags |= GAM_C_DesactivateAtAll;
else
h_StdGame->ucMiscFlags &= ~GAM_C_DesactivateAtAll;
}
INLINE
unsigned char fn_bf1StandardGameGetIsActivable(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_Activable ? TRUE : FALSE); }
INLINE
void fn_vStandardGameSetIsActivable(MS_tdxHandleToStandardGame h_StdGame,unsigned char bf1IsActivable)
{
/* ANNECY AV DEMO {*/
#if !defined(U64) && !defined(SCR2BIN) && !defined(RETAIL)
if (g_DEMO_KeybTest == DEMO_RECORD)
{
if (h_StdGame->h_SuperObject &&
((bf1IsActivable == TRUE && (h_StdGame->ucMiscFlags & GAM_C_Activable) == 0) ||
(bf1IsActivable == FALSE && (h_StdGame->ucMiscFlags & GAM_C_Activable) != 0)))
{
DEMO_fn_vTestAndSaveActivationDesactivation (h_StdGame->h_SuperObject , bf1IsActivable);
}
}
#endif
/* END ANNECY AV }*/
if(bf1IsActivable)
h_StdGame->ucMiscFlags |= GAM_C_Activable;
else
h_StdGame->ucMiscFlags &= ~GAM_C_Activable;
}
INLINE
unsigned char fn_bf1StandardGameGetIsActive(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_Active ? TRUE : FALSE); }
INLINE
void fn_vStandardGameSetIsActive(MS_tdxHandleToStandardGame h_StdGame,unsigned char bf1IsActive)
{
/* ANNECY AV DEMO {*/
#if !defined(U64) && !defined(SCR2BIN) && !defined(RETAIL)
if(g_DEMO_KeybTest == DEMO_RECORD)
{
if (h_StdGame->h_SuperObject &&
((bf1IsActive == TRUE && (h_StdGame->ucMiscFlags & GAM_C_Active) == 0) ||
(bf1IsActive == FALSE && (h_StdGame->ucMiscFlags & GAM_C_Active) != 0)))
{
DEMO_fn_vTestAndSaveActivationDesactivation (h_StdGame->h_SuperObject , bf1IsActive);
}
}
#endif
/* END ANNECY AV }*/
if(bf1IsActive)
h_StdGame->ucMiscFlags |= GAM_C_Active;
else
h_StdGame->ucMiscFlags &= ~GAM_C_Active;
}
INLINE
enum tdeObjectinitInit_ fn_eStandardGameGetInitFlagWhenOutOfZone(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->eInitFlagWhenOutOfZone); }
INLINE
void fn_vStandardGameSetInitFlagWhenOutOfZone(MS_tdxHandleToStandardGame h_StdGame,enum tdeObjectinitInit_ eInitFlagWhenOutOfZone)
{ h_StdGame->eInitFlagWhenOutOfZone=eInitFlagWhenOutOfZone; }
INLINE
enum tdeObjectinitInit_ fn_eStandardGameGetInitFlagWhenDeadOrTaken(MS_tdxHandleToStandardGame h_StdGame)
{ return(h_StdGame->eInitFlagWhenDeadOrTaken); }
INLINE
void fn_vStandardGameSetInitFlagWhenDeadOrTaken(MS_tdxHandleToStandardGame h_StdGame,enum tdeObjectinitInit_ eInitFlagWhenDeadOrTaken)
{ h_StdGame->eInitFlagWhenDeadOrTaken=eInitFlagWhenDeadOrTaken; }
INLINE
unsigned char fn_ucStandardGameGetPlatFormType(MS_tdxHandleToStandardGame h_StdGame)
{ return h_StdGame->ucPlatFormType; }
INLINE
void fn_ucStandardGameSetPlatFormType(MS_tdxHandleToStandardGame h_StdGame,unsigned char _ucPlatFormType)
{ h_StdGame->ucPlatFormType = _ucPlatFormType; }
INLINE
void fn_vStandardGameSetCapabilities(MS_tdxHandleToStandardGame h_StdGame, unsigned long _ubf32Capabilities)
{ h_StdGame->ubf32Capabilities = _ubf32Capabilities; }
INLINE
unsigned long fn_ulStandardGameGetCapabilities(MS_tdxHandleToStandardGame h_StdGame)
{ return ( h_StdGame->ubf32Capabilities ); }
INLINE
void fn_vStandardGameAddCapabilities(MS_tdxHandleToStandardGame h_StdGame, unsigned long _ubf32Capabilities)
{ h_StdGame->ubf32Capabilities |= _ubf32Capabilities; }
INLINE
void fn_vStandardGameSubCapabilities(MS_tdxHandleToStandardGame h_StdGame, unsigned long _ubf32Capabilities)
{ h_StdGame->ubf32Capabilities -= (h_StdGame->ubf32Capabilities & _ubf32Capabilities); }
INLINE
void fn_vStandardGameSetTractionFactor(MS_tdxHandleToStandardGame h_StdGame,unsigned char _ucTractionFactor)
{ h_StdGame->ucTractionFactor = _ucTractionFactor; }
INLINE
unsigned char fn_ucStandardGameGetTractionFactor(MS_tdxHandleToStandardGame h_StdGame)
{ return ( h_StdGame->ucTractionFactor ); }
INLINE
unsigned char fn_bIsAllSecondPassDone(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_AllSecondPassDone ? TRUE : FALSE); }
INLINE
void fn_vAllSecondPassAreDone(MS_tdxHandleToStandardGame h_StdGame)
{ h_StdGame->ucMiscFlags |= GAM_C_AllSecondPassDone; }
INLINE
unsigned long fn_ulStandardGameGetCustomBits(MS_tdxHandleToStandardGame _hStdGame)
{ return _hStdGame->ulCustomBits; }
INLINE
void fn_vStandardGameSetCustomBits(MS_tdxHandleToStandardGame _hStdGame,unsigned long _ulCustomBits)
{ _hStdGame->ulCustomBits = _ulCustomBits; }
/* ANNECY MT - 08/07/98 {*/
INLINE
unsigned char fn_ucStandardGameGetTransparencyZoneMin(MS_tdxHandleToStandardGame _hStdGame)
{ return _hStdGame->ucTransparencyZoneMin; }
INLINE
void fn_vStandardGameSetTransparencyZoneMin(MS_tdxHandleToStandardGame _hStdGame, unsigned char _ucTransparencyZoneMin)
{ _hStdGame->ucTransparencyZoneMin = _ucTransparencyZoneMin; }
INLINE
unsigned char fn_ucStandardGameGetTransparencyZoneMax(MS_tdxHandleToStandardGame _hStdGame)
{ return _hStdGame->ucTransparencyZoneMax; }
INLINE
void fn_vStandardGameSetTransparencyZoneMax(MS_tdxHandleToStandardGame _hStdGame, unsigned char _ucTransparencyZoneMax)
{ _hStdGame->ucTransparencyZoneMax = _ucTransparencyZoneMax; }
/* END ANNECY MT }*/
extern CPA_EXPORT ACP_tdxBool fn_bStandardGameIsAPlatform (HIE_tdxHandleToSuperObject hSupObj);
extern CPA_EXPORT unsigned long fn_ulStandardGameGetCustomBitsSO (HIE_tdxHandleToSuperObject hSupObj);
extern CPA_EXPORT void fn_vStandardGameSetCustomBitsSO(HIE_tdxHandleToSuperObject hSupObj,unsigned long ulCustomBits);
extern CPA_EXPORT HIE_tdxHandleToSuperObject fn_h_StandardGameGetSuperObject(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT void fn_vStandardGameSetSuperObject(MS_tdxHandleToStandardGame h_StdGame,HIE_tdxHandleToSuperObject h_SuperObject);
extern CPA_EXPORT ACP_tdxBool fn_bStandardGameGetLinkToSectorFlag(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT void fn_bStandardGameSetLinkToSectorFlag(MS_tdxHandleToStandardGame h_StdGame,ACP_tdxBool _bLinkValue);
extern CPA_EXPORT unsigned char fn_ucStandardGameGetTransparencyZoneMinSO(HIE_tdxHandleToSuperObject hSupObj);
extern CPA_EXPORT unsigned char fn_ucStandardGameGetTransparencyZoneMaxSO(HIE_tdxHandleToSuperObject hSupObj);
/* ANNECY MT - 09/10/98 {*/
INLINE
void fn_vStandardGameSetAlwaysActive(MS_tdxHandleToStandardGame h_StdGame,ACP_tdxBool _bAlways)
{ if(_bAlways) h_StdGame->ucMiscFlags |= GAM_C_AlwaysActive; else h_StdGame->ucMiscFlags &= ~GAM_C_AlwaysActive; }
INLINE
unsigned char fn_bStandardGameIsAlwaysActive(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_AlwaysActive ? TRUE : FALSE); }
INLINE
void fn_vStandardGameSetAlways(MS_tdxHandleToStandardGame h_StdGame,ACP_tdxBool _bAlways)
{ if(_bAlways) h_StdGame->ucMiscFlags |= GAM_C_Always; else h_StdGame->ucMiscFlags &= ~GAM_C_Always; }
INLINE
unsigned char fn_bStandardGameIsAlways(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_Always ? TRUE : FALSE); }
INLINE
void fn_vStandardGameSetUselessCulling(MS_tdxHandleToStandardGame h_StdGame,ACP_tdxBool _bUseless)
{ if(_bUseless) h_StdGame->ucMiscFlags |= GAM_C_UselessCulling; else h_StdGame->ucMiscFlags &= ~GAM_C_UselessCulling; }
INLINE
unsigned char fn_bStandardGameIsUselessCulling(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_UselessCulling ? TRUE : FALSE); }
INLINE
void fn_vStandardGameSetTooFar(MS_tdxHandleToStandardGame h_StdGame,ACP_tdxBool _bTooFar)
{ if(_bTooFar) h_StdGame->ucMiscFlags |= GAM_C_TooFar; else h_StdGame->ucMiscFlags &= ~GAM_C_TooFar; }
INLINE
unsigned char fn_bStandardGameIsTooFar(MS_tdxHandleToStandardGame h_StdGame)
{ return(unsigned char)(h_StdGame->ucMiscFlags & GAM_C_TooFar ? TRUE : FALSE); }
/* END ANNECY MT }*/
/* ANNECY MT - 22/10/98 {*/
INLINE
unsigned char fn_ucStandardGameGetTooFarLimit(MS_tdxHandleToStandardGame _hStdGame)
{ return _hStdGame->ucTooFarLimit; }
INLINE
void fn_vStandardGameSetTooFarLimit(MS_tdxHandleToStandardGame _hStdGame, unsigned char _ucTooFarLimit)
{ _hStdGame->ucTooFarLimit = _ucTooFarLimit; }
extern CPA_EXPORT unsigned char fn_ucStandardGameGetTooFarLimitSO(HIE_tdxHandleToSuperObject hSupObj);
/* END ANNECY MT }*/
/**********************************/
/**** Special functions define ****/
/**********************************/
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_vStdGameInitValueSAI(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT void fn_vStdGameSavedValueSAI(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT void fn_vStdGameFreeInitValueSAI(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT void fn_vSetHitPointsToInitValue(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void fn_vSetHitPointsMaxToInitValue(struct tdstEngineObject_ *_p_stObject);
/*ANNECY BBB 20/11/97 {*/
extern CPA_EXPORT void fn_vSetCustomBitsToInitValue(struct tdstEngineObject_ *_p_stObject);
/*ENDANNECY BBB 20/11/97 }*/
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT unsigned char *fn_p_ucStdGameGetHitPointsInit(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT unsigned char *fn_p_ucStdGameGetHitPointsMaxInit(MS_tdxHandleToStandardGame h_StdGame);
extern CPA_EXPORT void fn_vStdGameSetLoadedInFix(MS_tdxHandleToStandardGame h_StdGame,unsigned char bValue);
extern CPA_EXPORT unsigned char fn_bStdGameIsLoadedInFix(MS_tdxHandleToStandardGame h_StdGame);
/* ANNECY MT - 19/11/98 {*/
extern CPA_EXPORT void fn_vStdGameSetInAllSubMaps(MS_tdxHandleToStandardGame h_StdGame,unsigned char bValue);
extern CPA_EXPORT unsigned char fn_bStdGameIsInAllSubMaps(MS_tdxHandleToStandardGame h_StdGame);
/* END ANNECY MT }*/
extern CPA_EXPORT unsigned long *fn_p_ulStdGameGetCustomBitsInit(MS_tdxHandleToStandardGame _hStdGame);
#endif /* ACTIVE_EDITOR */
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long StdGame_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*NZO 25/09/97*/
#ifdef BIN_LoadBin
extern CPA_EXPORT void StdGame_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __StdGame_H__ */

View File

@@ -0,0 +1,99 @@
/*=========================================================================
* ####.h : ####'s functions
*
*
* #### MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__####_H__)
#define __####_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_####_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_####_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#if defined(D_####_StructureDefine)
struct tdst####_
{
};
#endif /* D_####_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdst####_ * MS_tdxHandleTo####;
/**** #### scripts ****/
#define C_Section####Description "####"
#define C_Entry####Champ "Champ"
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_e####ScriptCallback(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*extern CPA_EXPORT void fn_v####SaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ul####SizeOf();
extern CPA_EXPORT void fn_v####Alloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleTo#### fn_h_####RealAlloc();
extern CPA_EXPORT void fn_v####Free(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_v####Init(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_v####Desinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_v####CopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/*********************************/
/**** Access functions define ****/
/*********************************/
extern CPA_EXPORT xtype fn_x####Getxxxxxx(MS_tdxHandleTo#### h_####);
extern CPA_EXPORT void fn_v####Setxxxxxx(MS_tdxHandleTo#### h_####,xtype xValue);
/**********************************/
/**** Special functions define ****/
/**********************************/
/**********************/
/**** SAI function ****/
/**********************/
extern CPA_EXPORT void fn_v####InitValueSAI(MS_tdxHandleTo#### h_####);
extern CPA_EXPORT void fn_v####SavedValueSAI(MS_tdxHandleTo#### h_####);
extern CPA_EXPORT void fn_v####FreeInitValueSAI(MS_tdxHandleTo#### h_####);
/*************************************/
/**** Access functions for Editor ****/
/*************************************/
#if defined(ACTIVE_EDITOR)
#endif /* ACTIVE_EDITOR */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __####_H__ */

View File

@@ -0,0 +1,662 @@
#if !defined(__CINEINFO_H__)
#define __CINEINFO_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_CineInfo_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_CineInfo_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*
**************************************************************************************************
**************************************************************************************************
FOR CAMERA CONSTANTS
**************************************************************************************************
**************************************************************************************************
*/
typedef struct CAM_tdstCameraConstants_
{
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xRayCameraSphereToGo1; /* Ray of camera sphere to determin if camera can go to a given position (source and dest) */
MTH_tdxReal xRayCameraSphereToGo2;
MTH_tdxReal xRayCameraSphereToSee1; /* Ray of camera sphere to determin if camera can see a given position (source and dest) */
MTH_tdxReal xRayCameraSphereToSee2;
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xBaseAngleComputePosNormal; /* Min angle for choosing a new good position in normal mode */
MTH_tdxReal xBaseAngleComputePosFailure; /* Min angle for choosing a new good position in case of failure */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xAverageForComputePos; /* Window time to compute position of targeted perso */
MTH_tdxReal xAverageForComputeLinearSpeed; /* Window time to compute linear speed of targeted perso */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xMinLinearSpeedCamera; /* Below, camera is considered not move... */
MTH_tdxReal xMinLinearSpeedTgtPerso; /* Below, is considered not move... */
MTH_tdxReal xMinAngularSpeedTgtPerso; /* Below, is considered not turn... */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xEpsilonDynTgtAngle; /* Dyn target compute if greate than... */
MTH_tdxReal xEpsilonDynTgtFocalAngle; /* Perso must be in focal with that epsilon */
MTH_tdxReal xEpsilonForEqualVectors; /* Two vectors are considered to be equal with that tolerance */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xOffsetMinDistPerso; /* Minimum distance of camera to targeted perso depending on BoundDistMin */
MTH_tdxReal xDistanceForNoCut; /* When visibility failure, no cut if new pos at this distance of camera */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
short xNumRayCameraCanGo; /* Number of ray to determin if camera can go to a given point */
short xNumRayCameraCanSee; /* Number of ray to determin if camera can see a given point */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
short xTickTestVisibility; /* Every n trames, we test visibility */
short xTickFindBetterPos; /* Every n trames, we try to find a better position if we are not at the first ideal one */
short xTickFindBetterPosIfNoMove; /* The same but force if the camera is not moving */
short xTickFailureCantSee; /* If camera can't see target during n trames, failure */
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
/* For dynamic speed */
MTH_tdxReal xDynSpeed_LinearFactNorm;
MTH_tdxReal xDynSpeed_LinearMax;
MTH_tdxReal xDynSpeed_LinearMulPerso;
MTH_tdxReal xDynSpeed_AngularFactNorm;
MTH_tdxReal xDynSpeed_AngularMax;
MTH_tdxReal xDynSpeed_AngularMulPerso;
MTH_tdxReal xDynSpeed_TargetFactNorm;
MTH_tdxReal xDynSpeed_TargetMax;
MTH_tdxReal xDynSpeed_TargetMulPerso;
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
MTH_tdxReal xBaseCutAngle; /* To cut angles */
MTH_tdxReal xCutAngleFactorPos;
MTH_tdxReal xCutAngleFactorTgt;
/* never change the order of those members !!!*/
/* always add new members at the end of the structure !!!*/
short wFlags; /* Some flags */
/* new members here ! */
short wAlign;
} CAM_tdstCameraConstants;
extern CAM_tdstCameraConstants CAM_g_stCameraConstants;
extern CAM_tdstCameraConstants CAM_g_stCopyCameraConstants;
#define CAM_C_xRayCameraSphereToGo1 (CAM_g_stCameraConstants.xRayCameraSphereToGo1)
#define CAM_C_xRayCameraSphereToGo2 (CAM_g_stCameraConstants.xRayCameraSphereToGo2)
#define CAM_C_xRayCameraSphereToSee1 (CAM_g_stCameraConstants.xRayCameraSphereToSee1)
#define CAM_C_xRayCameraSphereToSee2 (CAM_g_stCameraConstants.xRayCameraSphereToSee2)
#define CAM_C_xBaseAngleComputePosNormal (CAM_g_stCameraConstants.xBaseAngleComputePosNormal)
#define CAM_C_xBaseAngleComputePosFailure (CAM_g_stCameraConstants.xBaseAngleComputePosFailure)
#define CAM_C_xBaseCutAngle (CAM_g_stCameraConstants.xBaseCutAngle)
#define CAM_C_xAverageForComputePos (CAM_g_stCameraConstants.xAverageForComputePos)
#define CAM_C_xAverageForComputeLinearSpeed (CAM_g_stCameraConstants.xAverageForComputeLinearSpeed)
#define CAM_C_xMinLinearSpeedCamera (CAM_g_stCameraConstants.xMinLinearSpeedCamera)
#define CAM_C_xMinLinearSpeedTgtPerso (CAM_g_stCameraConstants.xMinLinearSpeedTgtPerso)
#define CAM_C_xMinAngularSpeedTgtPerso (CAM_g_stCameraConstants.xMinAngularSpeedTgtPerso)
#define CAM_C_xEpsilonDynTgtAngle (CAM_g_stCameraConstants.xEpsilonDynTgtAngle)
#define CAM_C_xEpsilonDynTgtFocalAngle (CAM_g_stCameraConstants.xEpsilonDynTgtFocalAngle)
#define CAM_C_xEpsilonForEqualVectors (CAM_g_stCameraConstants.xEpsilonForEqualVectors)
#define CAM_C_xMinDistPerso (_p_stStruct->hCineinfoWork->xBoundDistMin)
#define CAM_C_xMinDistPersoToComputePos (MTH_M_xAdd(CAM_C_xMinDistPerso, CAM_g_stCameraConstants.xOffsetMinDistPerso))
#define CAM_C_xDistanceForNoCut (CAM_g_stCameraConstants.xDistanceForNoCut)
#define CAM_C_xDynSpeed_LinearFactNorm (CAM_g_stCameraConstants.xDynSpeed_LinearFactNorm)
#define CAM_C_xDynSpeed_LinearMax (CAM_g_stCameraConstants.xDynSpeed_LinearMax)
#define CAM_C_xDynSpeed_LinearMulPerso (CAM_g_stCameraConstants.xDynSpeed_LinearMulPerso)
#define CAM_C_xDynSpeed_AngularFactNorm (CAM_g_stCameraConstants.xDynSpeed_AngularFactNorm)
#define CAM_C_xDynSpeed_AngularMax (CAM_g_stCameraConstants.xDynSpeed_AngularMax)
#define CAM_C_xDynSpeed_AngularMulPerso (CAM_g_stCameraConstants.xDynSpeed_AngularMulPerso)
#define CAM_C_xDynSpeed_TargetFactNorm (CAM_g_stCameraConstants.xDynSpeed_TargetFactNorm)
#define CAM_C_xDynSpeed_TargetMax (CAM_g_stCameraConstants.xDynSpeed_TargetMax)
#define CAM_C_xDynSpeed_TargetMulPerso (CAM_g_stCameraConstants.xDynSpeed_TargetMulPerso)
#define CAM_C_xNumRayCameraCanGo (CAM_g_stCameraConstants.xNumRayCameraCanGo)
#define CAM_C_xNumRayCameraCanSee (CAM_g_stCameraConstants.xNumRayCameraCanSee)
#define CAM_C_xTickTestVisibility (CAM_g_stCameraConstants.xTickTestVisibility)
#define CAM_C_xTickFindBetterPos (CAM_g_stCameraConstants.xTickFindBetterPos)
#define CAM_C_xTickFindBetterPosIfNoMove (CAM_g_stCameraConstants.xTickFindBetterPosIfNoMove)
#define CAM_C_xTickFailureCantSee (CAM_g_stCameraConstants.xTickFailureCantSee)
#define CAM_C_xCutAngleFactorPos (CAM_g_stCameraConstants.xCutAngleFactorPos)
#define CAM_C_xCutAngleFactorTgt (CAM_g_stCameraConstants.xCutAngleFactorTgt)
#define CAM_C_xTickTimeTestVisibility (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickTestVisibility*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
#define CAM_C_xTickTimeFindBetterPos (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickFindBetterPos*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
#define CAM_C_xTickTimeFindBetterPosIfNoMove (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickFindBetterPosIfNoMove*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
#define CAM_C_xTickTimeFailureCantSee (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickFailureCantSee*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
/*
**************************************************************************************************
**************************************************************************************************
DEFINITION FOR SCRIPT
**************************************************************************************************
**************************************************************************************************
*/
#define C_SectionCineinfoDescription "Cineinfo"
#define C_CAM_EntryShiftTarget "ShiftTarget"
#define C_CAM_EntryShiftPos "ShiftPos"
#define C_CAM_EntryDistance "Distance"
#define C_CAM_EntryAlpha "Alpha"
#define C_CAM_EntryTheta "Theta"
#define C_CAM_EntryLinearSpeed "LinearSpeed"
#define C_CAM_EntryAngularSpeed "AngularSpeed"
#define C_CAM_EntryTargetSpeed "TargetSpeed"
#define C_CAM_EntryDNMFlags "DNMFlags"
#define C_CAM_EntryIAFlags "IAFlags"
#define C_CAM_EntryFocal "Focal"
#define C_CAM_EntryZMinMax "ZMinMax"
#define C_CAM_EntryViewport "Viewport"
#define C_CAM_EntryChannel "Channel"
#define C_CAM_EntryActivation "Activation"
/*
**************************************************************************************************
**************************************************************************************************
DEFINITION FOR IA Flags
IA Flags are stored in wIAFLags member of CineInfo structure
and is reinitialized for each trame
**************************************************************************************************
**************************************************************************************************
*/
/*
* Flags that can be change in IA (uwIAFlags).
*/
#define C_IAFlags_NoDynamicTarget 0x0001
#define C_IAFlags_NoAverageMoveTgtPerso 0x0002
#define C_IAFlags_NoParseCutAngle 0x0004
#define C_IAFlags_NoVisibility 0x0008
#define C_IAFlags_NoVisibilityWithDynHie 0x0010
#define C_IAFlags_NoDynChangeTheta 0x0020
#define C_IAFlags_NoShiftUntilPosReached 0x0040
#define C_IAFlags_NoDynSpeed 0x0080
#define C_IAFlags_User 0x0FFF
/*
* Can't change that flags. They are in internal cineinfo just to change them temporary
* (by changing them in cineinfo work).
*/
#define C_IAFlags_TargetIsAlreadyComputed 0x1000
#define C_IAFlags_PositionIsAlreadyComputed 0x2000
#define C_IAFlags_RefAxisIsAlreadyComputed 0x4000
/*
* Private flags.
* Erased at each trame (ucVolatileIAFlags).
*/
#define C_VolIAFlags_CurrentAlreadyCopiedInWork 0x01
#define C_VolIAFlags_InitJustCopiedInCurrent 0x02
#define C_VolIAFlags_CameraNotMove 0x04
/*
* Private flags.
* Persistent (ucPersistentIAFlags).
*/
#define C_PerIAFlags_ShowInfo 0x01
#define C_PerIAFlags_VisibilityCopied 0x02
#define C_PerIAFlags_NoShift 0x04
#define C_PerIAFlags_ConstraintMoveVisFailure 0x08
#define C_PerIAFlags_PosIsForced 0x10
/*
**************************************************************************************************
**************************************************************************************************
CINEINFO STRUCTURE DEFINITION
=> Internal
=> General
**************************************************************************************************
**************************************************************************************************
*/
#if defined(D_CineInfo_StructureDefine)
struct tdstInternalStructurCineinfo_
{
/* Offset to add to the position of the new position. This is the point looked by the camera. */
MTH3D_tdstVector stShiftTarget;
/* Offset to add to the position of the target */
MTH3D_tdstVector stShiftPos;
/* Define distance */
MTH_tdxReal xDistMin;
MTH_tdxReal xDistMax;
MTH_tdxReal xBoundDistMin;
MTH_tdxReal xBoundDistMax;
/* Angle Alpha (axe rotation around axis Z) */
MTH_tdxReal xAngleAlpha;
MTH_tdxReal xAngleShiftAlpha;
/* Angle Theta (axe rotation around axis X) */
MTH_tdxReal xAngleTheta;
MTH_tdxReal xAngleShiftTheta;
/* Datas of Camera Linear Speed */
MTH_tdxReal xLinearSpeed;
MTH_tdxReal xLinearIncreaseSpeed;
MTH_tdxReal xLinearDecreaseSpeed;
/* Datas of Camera Angular Speed */
MTH_tdxReal xAngularSpeed;
MTH_tdxReal xAngularIncreaseSpeed;
MTH_tdxReal xAngularDecreaseSpeed;
/* Datas of Camera Angular Speed */
MTH_tdxReal xTargetSpeed;
MTH_tdxReal xTargetIncreaseSpeed;
MTH_tdxReal xTargetDecreaseSpeed;
/* Focal */
MTH_tdxReal xFocal;
/* Camera Altitude */
MTH_tdxReal xZMin;
MTH_tdxReal xZMax;
/* Super object targeted by camera */
HIE_tdxHandleToSuperObject hSuperObjectTargeted;
HIE_tdxHandleToSuperObject hSecondSuperObjectTargeted;
/* Flags of camera */
unsigned short uwDNMFlags; /* For mechanics */
unsigned short uwIAFlags; /* For IA */
/*
* 0 : pas de viewport associe
* 1 : viewport principal
* 2 : viewport secondaire
*/
enum e_ucListViewport_ eTypeOfViewport;
/*
* Number of channel
*/
char cChannel;
/* Activity */
ACP_tdxBool bIsActive;
};
/*
*=================================================================================================
*=================================================================================================
*/
/* ANNECY MT - 25/08/98 {*/
#define C_ucNbOfCheckedSpeeds 8
typedef struct tdstAveragePosition_
{
struct MTH3D_tdstVector_ a_CheckedSpeed[C_ucNbOfCheckedSpeeds];
struct MTH3D_tdstVector_ a_CheckedPos[C_ucNbOfCheckedSpeeds];
MTH_tdxReal a_CheckedTime[C_ucNbOfCheckedSpeeds];
}tdstAveragePosition;
typedef struct tdstSightAxisSystem_
{
struct MTH3D_tdstVector_ SightAxis;
struct MTH3D_tdstVector_ FirstComplementaryAxis;
struct MTH3D_tdstVector_ SecondComplementaryAxis;
}tdstSightAxisSystem;
/* END ANNECY MT }*/
/*
*=================================================================================================
*=================================================================================================
*/
struct tdstCineinfo_
{
/******************************************/
/* Internal structures */
/******************************************/
struct tdstInternalStructurCineinfo_ *hInit;
struct tdstInternalStructurCineinfo_ *hCurrent;
struct tdstInternalStructurCineinfo_ *hVisibility;
struct tdstInternalStructurCineinfo_ *hWork;
/******************************************/
/* Fields only accessibles by programmers */
/******************************************/
/*
* For visibility.
*/
MTH3D_tdstVector stLastFailedOrigin;
MTH3D_tdstVector stLastFailedWanted;
/*
* To force targeted point, or camera position.
*/
MTH3D_tdstVector stForceTarget;
MTH3D_tdstVector stForcePosition;
MTH3D_tdstVector stForceRefAxisY;
MTH3D_tdstVector stForceRefAxisZ;
/*
* When a second super object is defined.
*/
MTH_tdxReal xApexRatio;
/*
* To save delta angle when cutting.
*/
MTH_tdxReal xLastDeltaCut;
/*
* State
*/
enum e_ucCameraStates_ eState;
/*
* Counters.
* 1 : To test better pos
* 2 : To test visibility
* 3 : Failure if we can't see target during this number of trames
* 4 : To count the time the camera is not moving.
*/
/* ANNECY MT - 03/08/99 { */
/*
short wCounter1;
short wCounter2;
short wCounter3;
short wCounter4;
*/
MTH_tdxReal xCounter1;
MTH_tdxReal xCounter2;
MTH_tdxReal xCounter3;
MTH_tdxReal xCounter4;
/* END ANNECY MT } */
/*
* Private flags of camera.
*/
unsigned char ucVolIAFlags;
unsigned char ucPerIAFlags;
/* When cutting angles */
char cLastCutAngleSens;
/* ANNECY MT - 25/08/98 {*/
/*arrays on positions and speeds on the character*/
struct tdstAveragePosition_ AveragePosition;
/*list on the used requests*/
struct tdstSightAxisSystem_ stSightAxisSystem;
/* END ANNECY MT }*/
ACP_tdxBool bCanDoBestPos;
};
#endif /* D_CineInfo_StructureDefine */
/*
**************************************************************************************************
**************************************************************************************************
Handle define
**************************************************************************************************
**************************************************************************************************
*/
typedef struct tdstInternalStructurCineinfo_ *MS_tdxHandleToInternalCineinfo;
typedef struct tdstCineinfo_ *MS_tdxHandleToCineinfo;
typedef struct tdstAveragePosition_ *MS_tdxHandleToAveragePosition;
typedef struct tdstSightAxisSystem_ *MS_tdxHandleToSightAxisSystem;
/*
* macro to get internal cine info from camera super object
*/
#define M_GetCineinfo(_p_stSuperObject_, _Name_)\
(\
(MS_tdxHandleToInternalCineinfo)\
(\
(\
M_GetMSHandle(_p_stSuperObject_,Cineinfo)\
)\
->h##_Name_\
)\
)
/*
* macro to get internal cineinfo from cineinfo struct
*/
#define M_GetInternalCineinfo(_hCineinfo_, _Name_)\
(\
(MS_tdxHandleToInternalCineinfo)\
(\
(\
(MS_tdxHandleToCineinfo)(_hCineinfo_)\
)\
->h##_Name_\
)\
)
/*
**************************************************************************************************
**************************************************************************************************
Access Functions for fields in the internal structure
**************************************************************************************************
**************************************************************************************************
*/
extern CPA_EXPORT MTH3D_tdstVector *CAM_fn_p_stCineInfoGetShiftTarget(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetShiftTarget(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH3D_tdstVector *_p_stLookVertex);
extern CPA_EXPORT MTH3D_tdstVector *CAM_fn_p_stCineInfoGetShiftPos(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetShiftPos(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH3D_tdstVector *_p_stShiftPerso);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetBoundDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetBoundDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetBoundDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetBoundDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleShiftAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleShiftAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleShiftTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleShiftTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetLinearSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetLinearSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xSpeed);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetLinearIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetLinearIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetLinearDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetLinearDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngularSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngularSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngularIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngularIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngularDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngularDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetTargetSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetTargetSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xSpeed);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetTargetIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetTargetIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetTargetDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetTargetDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetFocal(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetFocal(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH_tdxReal _xAngle);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetZMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetZMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH_tdxReal _xZ);
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetZMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetZMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH_tdxReal _xZ);
extern CPA_EXPORT HIE_tdxHandleToSuperObject CAM_fn_hCineInfoGetSuperObjectTargeted(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetSuperObjectTargeted( MS_tdxHandleToInternalCineinfo _hIntCineinfo, HIE_tdxHandleToSuperObject _hSuperObject );
extern CPA_EXPORT unsigned short CAM_fn_uwCineInfoGetDNMFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetDNMFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo,unsigned short _uwFlag);
extern CPA_EXPORT unsigned short CAM_fn_uwCineInfoGetIAFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetIAFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo,unsigned short _uwFlag);
extern CPA_EXPORT enum e_ucCameraStates_ CAM_fn_eCineInfoGetState(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetState(MS_tdxHandleToInternalCineinfo _hIntCineinfo,enum e_ucCameraStates_ _eState);
extern CPA_EXPORT enum e_ucListViewport_ CAM_fn_eCineInfoGetTypeOfViewport(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetTypeOfViewport(MS_tdxHandleToInternalCineinfo _hIntCineinfo,enum e_ucListViewport_ _eType);
extern CPA_EXPORT ACP_tdxBool CAM_fn_bCineInfoGetIsActive(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetIsActive(MS_tdxHandleToInternalCineinfo _hIntCineinfo,ACP_tdxBool _bIsActive);
extern CPA_EXPORT char CAM_fn_cCineInfoGetChannel(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
extern CPA_EXPORT void CAM_fn_vCineInfoSetChannel(MS_tdxHandleToInternalCineinfo _hIntCineinfo,char _cChannel);
/*
**************************************************************************************************
**************************************************************************************************
Base functions
**************************************************************************************************
**************************************************************************************************
*/
extern CPA_EXPORT void CAM_fn_vInitCompleteCineinfo(MS_tdxHandleToCineinfo _hCineinfo);
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue CAM_fn_eCineinfoScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
extern CPA_EXPORT unsigned long CAM_fn_ulCineinfoSizeOf( void );
extern CPA_EXPORT unsigned long CAM_fn_ulCineinfoInternalSizeOf( void );
extern CPA_EXPORT void CAM_fn_vCineinfoAlloc(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT MS_tdxHandleToCineinfo CAM_fn_hCineinfoRealAlloc( void );
extern CPA_EXPORT MS_tdxHandleToInternalCineinfo CAM_fn_hCineinfoInternalRealAlloc( void );
extern CPA_EXPORT void CAM_fn_vCineinfoFree(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void CAM_fn_vCineinfoInit(struct tdstEngineObject_ *_p_stObject,enum tdeObjectTreeInit_ _eObjectInit);
extern CPA_EXPORT void CAM_fn_vCineinfoDesinit(struct tdstEngineObject_ *_p_stObject,enum tdeObjectTreeInit_ _eObjectInit);
extern CPA_EXPORT void CAM_fn_vCineinfoCopyClone(struct tdstEngineObject_ *_p_stObjectDest,struct tdstEngineObject_ *_p_stObjectSrc);
extern CPA_EXPORT void fn_vGetPersoSightAxisSystem(MS_tdxHandleToCineinfo _hCineinfo,MTH3D_tdstVector *_p_stSightAxis,MTH3D_tdstVector *_p_stFirstComplementaryAxis,MTH3D_tdstVector *_p_stSecondComplementaryAxis);
extern CPA_EXPORT void Cineinfo_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
extern CPA_EXPORT unsigned long IntStrCineInfo_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
extern CPA_EXPORT unsigned long Cineinfo_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
/*
**************************************************************************************************
**************************************************************************************************
Special functions
**************************************************************************************************
**************************************************************************************************
*/
extern CPA_EXPORT HIE_tdxHandleToSuperObject CAM_fn_hGetMainActiveCamera(HIE_tdxHandleToSuperObject hSuperObject);
extern void CAM_fn_vLoadCameraConstants(void);
extern CPA_EXPORT void CAM_fn_vSetCameraInList(HIE_tdxHandleToSuperObject _hSupObjectCamera);
extern CPA_EXPORT void CAM_fn_vDeleteCameraInList(HIE_tdxHandleToSuperObject _hSupObjectCamera);
/*extern CPA_EXPORT void CAM_fn_vCameraActivedByEditor(HIE_tdxHandleToSuperObject _hSuperObject);*/
/*extern CPA_EXPORT void CAM_fn_vCameraDesactivedByEditor(HIE_tdxHandleToSuperObject _hSuperObject);*/
extern CPA_EXPORT void CAM_fn_vSetCineinfoCurrentFromInit(MS_tdxHandleToCineinfo _hCineinfo);
extern CPA_EXPORT void CAM_fn_vSetCineinfoWorkFromCurrent(MS_tdxHandleToCineinfo _hCineinfo);
extern CPA_EXPORT void CAM_fn_vSetCineinfoVisibilityFromCurrent(MS_tdxHandleToCineinfo _hCineinfo);
extern CPA_EXPORT void CAM_fn_vSetCineinfoCurrentFromVisibility(MS_tdxHandleToCineinfo _hCineinfo);
extern CPA_EXPORT void CAM_fn_vSetCineinfoWorkFromVisibility(MS_tdxHandleToCineinfo _hCineinfo);
/*
**************************************************************************************************
**************************************************************************************************
*/
/* ANNECY MT 26/08/98 {*/
/*extern CPA_EXPORT void fn_vCineinfoSetCheckedSpeed (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul,struct MTH3D_tdstVector_*p_Speed);*/
/*extern CPA_EXPORT void fn_vCineinfoSetCheckedPos (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul,struct MTH3D_tdstVector_*p_Pos);*/
/*extern CPA_EXPORT void fn_vCineinfoSetCheckedTime (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul,MTH_tdxReal _dt);*/
extern CPA_EXPORT void fn_vCineinfoSetSightAxis (MS_tdxHandleToCineinfo _hCineinfo,struct MTH3D_tdstVector_*p_stVector);
extern CPA_EXPORT void fn_vCineinfoSetFirstComplementaryAxis (MS_tdxHandleToCineinfo _hCineinfo,struct MTH3D_tdstVector_*p_stVector);
extern CPA_EXPORT void fn_vCineinfoSetSecondComplementaryAxis (MS_tdxHandleToCineinfo _hCineinfo,struct MTH3D_tdstVector_*p_stVector);
extern CPA_EXPORT void fn_vCineinfoSetSightAxisSystem (MS_tdxHandleToCineinfo _hCineinfo,struct tdstSightAxisSystem_ *p_stAxisSystem);
/*extern CPA_EXPORT MTH3D_tdstVector *fn_p_CineinfoGetCheckedSpeed(MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul);*/
/*extern CPA_EXPORT MTH_tdxReal fn_xCineinfoGetCheckedTime (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul);*/
/*extern CPA_EXPORT MTH3D_tdstVector *fn_p_CineinfoGetCheckedPos (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul);*/
extern CPA_EXPORT void CAM_fn_vRemindSpeed (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdstMove *_p_Speed);
extern CPA_EXPORT void CAM_fn_vRemindPos (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdstMove *_p_Pos);
extern CPA_EXPORT void CAM_fn_vRemindTime (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdxReal _dt);
extern CPA_EXPORT void CAM_fn_vAverageSpeed (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdxReal xTimeWindow,MTH3D_tdstVector *p_result);
extern CPA_EXPORT void CAM_fn_vAveragePosition (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdxReal xTimeWindow,MTH3D_tdstVector *p_result);
extern CPA_EXPORT void CAM_fn_vUpdateTargetPosition(MS_tdxHandleToCineinfo _hCineinfo);
/* END ANNECY MT }*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __CINEINFO_H__ */

View File

@@ -0,0 +1,68 @@
/*///////////////////////////////////////////////////////////*/
/* //*/
/* Always Active Characters //*/
/* // */
/* File Name : AlwAct.h //*/
/* Date : 21/10/97 //*/
/* Author : FRB //*/
/* //*/
/*///////////////////////////////////////////////////////////*/
/*
*=======================================================================
Modifications: New LST_M_??? Macros / Micha<68>l / 070297
*=======================================================================*/
#ifndef __ALWACT_H__
#define __ALWACT_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/* ================================================================ */
#if defined(D_AlwAct_StructureDefine)
typedef struct tdstAlwaysActiveCharacter_
{
HIE_tdxHandleToSuperObject hAlwActSuperObject;
LST2_M_DynamicElementDeclaration(tdxHandleToAlwaysActiveCharacterNode)
} tdstAlwaysActiveCharacter;
#endif /*D_AlwAct_StructureDefine*/
/* Read-write accessors*/
extern CPA_EXPORT HIE_tdxHandleToSuperObject fn_hGetCharacterInAlwaysActiveCharacterNode(tdxHandleToAlwaysActiveCharacterNode hCharNode);
extern CPA_EXPORT void fn_vSetCharacterInAlwaysActiveCharacterNode(tdxHandleToAlwaysActiveCharacterNode hCharNode,HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void fn_vAddCharacterInAlwaysActiveCharacterList(HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void fn_vRemoveCharacterFromAlwaysActiveCharacterList(HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT ACP_tdxBool fn_bGetIfCharacterIsInAlwaysActiveCharacterList(HIE_tdxHandleToSuperObject hCharacter);
/* list */
extern CPA_EXPORT tdxHandleToAlwaysActiveCharacterNode fn_hGetFirstAlwaysActiveCharNode();
extern CPA_EXPORT tdxHandleToAlwaysActiveCharacterNode fn_hGetNextAlwaysActiveCharNode(tdxHandleToAlwaysActiveCharacterNode hCharNode);
#define M_ForEachAlwaysActiveCharacterNode(_hCharNode,_i) \
for \
( \
_i=0,(_hCharNode)=fn_hGetFirstAlwaysActiveCharNode(); \
_hCharNode; \
_i++,(_hCharNode)=fn_hGetNextAlwaysActiveCharNode(_hCharNode) \
)
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __ALWACT_H__ */

View File

@@ -0,0 +1,134 @@
/*
=======================================================================================
Name : Always.h
Author : Francois Mahieu Date :20/08/96
Description : This module contain all always functions, This is a part of the Game project.
=======================================================================================
Modification -> Author : Michael Date : 07/02/97
Description : New LST_M_??? Macros
=======================================================================================
*/
#if !defined(__ALWAYS_H__)
#define __ALWAYS_H__
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include "GAM/Header.h"
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*
=======================================================================================
Structures
=======================================================================================
*/
/*
* This structure is used for chain list of always models ***
*/
typedef struct tdstAlwaysModelList_
{
LST2_M_DynamicElementDeclaration(ALW_tdxHandleToModelList)
tdObjectType otObjectModelType; /* Always object type */
struct tdstEngineObject_ *p_stAlwaysObject; /* Pointer to a object structure than contain all object informations */
} tdstAlwaysModelList;
/*
* general structure to manage with always
*/
typedef struct tdstAlways_
{
unsigned long ulMaxNumberOfAlways; /* number max of always*/
LST2_M_DynamicAnchorDeclaration(ALW_tdxHandleToModelList) ALW_h_LstAlwaysModel; /* all always models*/
HIE_tdxHandleToSuperObject d_stAlwaysSuperObject; /* array of generated always*/
struct tdstEngineObject_ *d_stAlwaysEngineObjectInit;
HIE_tdxHandleToSuperObject *d_hAlwaysGenerator; /* list of generators*/
#if defined(ACTIVE_EDITOR)
ACP_tdxBool *d_bIsReferencedInLevel;
#endif
} tdstAlways;
/*
=======================================================================================
Functions
=======================================================================================
*/
/*
* init/desinit global structure
*/
void fn_vFirstInitAlwaysStructure();
void fn_vLastDesinitAlwaysStructure();
/*
* list of always models management
*/
extern CPA_EXPORT void fn_vAddAnAlwaysModel(struct tdstEngineObject_ *p_stAlwaysObject);
void fn_vKillAllAlwaysModel();
void fn_vInitAlwaysModel(enum tdeObjectTreeInit_ eObjIniType);
extern CPA_EXPORT unsigned char fn_ucIsAnAlwaysObject(struct tdstEngineObject_ *p_stEngineObject);
extern CPA_EXPORT unsigned char fn_ucIsAnAlwaysModel(struct tdstEngineObject_ *p_stEngineObject);
/*
* list of always management
*/
HIE_tdxHandleToSuperObject fn_p_stAllocateAlways
(
tdObjectType otObjectModelType,
HIE_tdxHandleToSuperObject p_stFatherSuperObject,
HIE_tdxHandleToSuperObject _hGenerator,
unsigned short uwAction,
POS_tdstCompletePosition *p_stMatrix
);
void fn_vKillAlwaysByPersonalType(tdObjectType otPersonalType);
void fn_vKillAlways(struct tdstEngineObject_ *p_stAlwaysObject);
void fn_vKillAllAlways();
/*
* special function for always
*/
void fn_vInitMindForAlways(void);
void fn_vKillAllAlwaysInNonActiveSectors(void);
extern CPA_EXPORT unsigned char fn_ucIsAlwaysGeneratedByMe( HIE_tdxHandleToSuperObject _hAlways, HIE_tdxHandleToSuperObject _hGenerator );
extern CPA_EXPORT unsigned long fn_ulGetNumberOfAlwaysBelongingToMe(HIE_tdxHandleToSuperObject _hGenerator);
#ifndef U64
void fn_vClearUnusedAlwaysInDemoMode();
#endif /* U64 */
/*
=======================================================================================
Globals
=======================================================================================
*/
EXTERN tdstAlways g_stAlways
#if defined(D_GameGlobals)
= { 0L, NULL, NULL, 0L, NULL, NULL, NULL}
#endif /* D_GameGlobals */
;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#if defined(__cplusplus)
}
#endif /* __cplusplus */
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#endif /* __ALWAYS_H__ */

View File

@@ -0,0 +1,164 @@
/*=========================================================================
* Basic.h : Basic engine functions
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__BASIC_H__)
#define __BASIC_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "Options/Options.h"
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
M_BeginDeclareEnumerate(tdeEngineDisplayMode)
edmDisplayModeAll = 0x00000000,
edmDisplayModeGouraud = 0x00000001,
edmDisplayModeTexture = 0x00000002,
edmDisplayModeUseStaticLight = 0x00000003,
edmDisplayModeUseRLI = 0x00000004,
edmDisplayModeWired = 0x00000005,
edmDisplayModeChromed = 0x00000006,
edmNumberOfDisplayMode,
M_EndDeclareEnumerate(tdeEngineDisplayMode,unsigned long)
#if !defined(U64)
/* for the choice of preferences*/
typedef struct tdstPreferences_
{
char cAsk;
char cBinary;
char cSave;
char szBinaryDirectory[64];
/* GuS 13/08/98*/
char cBinaryDsc; /* Pour les game.dsc, game.mem... binarises.*/
} tdstPreferences;
extern CPA_EXPORT void GAM_fn_vSavePreferences(void);
#endif /* U64 */
void fn_vChangeEngineMode(tdeEngineMode eNewMode);
tdeEngineMode fn_eGetEngineMode();
extern CPA_EXPORT char *fn_zsGetCharaterFilenameByEngineObject(char *_szFilename,struct tdstEngineObject_ *_stEngineObject,unsigned char _bCommon);
extern CPA_EXPORT char *fn_zsGetCharaterFilenameByTypeName(char *_szFilename,char *_szFamily,char *_szModel,char *_szPersonnal,unsigned char _bCommon);
extern CPA_EXPORT char *fn_zsGetLevelFilename(char *_szFilename,char *_szLevelName,char *_szExtension);
extern CPA_EXPORT char *fn_zsGetActualLevelFilename(char *_szFilename,char *_szExtension);
extern CPA_EXPORT unsigned char fn_bIsLevelExist(char *_szLevelName);
extern CPA_EXPORT void fn_vSetFirstLevelName(char * _szName);
extern CPA_EXPORT char *fn_p_szGetFirstLevelName(void);
extern CPA_EXPORT void fn_vSetLevelName(char * _szName);
extern CPA_EXPORT char *fn_p_szGetLevelName(void);
extern CPA_EXPORT void fn_vSetNextLevelName(char * _szName);
extern CPA_EXPORT char *fn_p_szGetNextLevelName(void);
extern CPA_EXPORT void fn_vFreeNextLevelName(void);
extern CPA_EXPORT unsigned char fn_bIsNextLevelNameValid(void);
/* ANNECY MT - 08/09/98 {*/
extern CPA_EXPORT long fn_lGetSubMapNumber(void);
/* END ANNECY MT }*/
/*extern CPA_EXPORT void fn_vSetNextLevelPositionName(char * _szPersoName,char * _szCameraName);*/
/*extern CPA_EXPORT char *fn_p_szGetNextLevelPositionPersoName(void);*/
/*extern CPA_EXPORT char *fn_p_szGetNextLevelPositionCameraName(void);*/
/*extern CPA_EXPORT void fn_vFreeNextLevelPositionName(void);*/
/*extern CPA_EXPORT unsigned char fn_bIsLevelPositionNameValid(void);*/
/*extern CPA_EXPORT void GAM_fn_vSetPlayerName(char * _szName);*/
/*extern CPA_EXPORT char *GAM_fn_p_szGetPlayerName(void);*/
/*extern CPA_EXPORT unsigned char GAM_fn_bIsPlayerNameValid(char *_szName);*/
extern CPA_EXPORT void GAM_fn_vSetSlotName(short _wSlotdId, char *_szSlotName);
extern CPA_EXPORT char *GAM_fn_szGetSlotName(short _wSlotId);
extern CPA_EXPORT unsigned char GAM_fn_bIsSlotNameValid(const char *_szName);
unsigned char GAM_fn_bIsSlotValid(short _wSlotdId);
extern CPA_EXPORT void fn_vRecurseSetDisplayBoudingVolumeFlag(HIE_tdxHandleToSuperObject _hSuperObject,unsigned char _bOnOff);
long fn_lAToI(char *szString);
MTH_tdxReal fn_fAToF(char *szString);
void fn_vInitAndRegisterAllScriptSections(void);
extern CPA_EXPORT void fn_vSetDisplayFlag(tdeEngineDisplayMode ulFlag,unsigned char ucValue);
extern CPA_EXPORT void fn_vSetGLIDisplayFlag(unsigned long *p_DisplayMode,tdeEngineDisplayMode ulFlag,unsigned char ucValue);
extern CPA_EXPORT void fn_vChangeViewPortPercent
(
unsigned long _ulMode,
unsigned long _ulWhat,
unsigned long _ulWidth,
unsigned long _ulHeight,
unsigned long _ulClipTop,
unsigned long _ulClipLeft,
unsigned long _ulClipBottom,
unsigned long _ulClipRight,
int _iPosX,
int _iPosY
);
extern CPA_EXPORT void fn_vChangeViewportRatio ( unsigned long ulMode, MTH_tdxReal xRatio) ;
extern CPA_EXPORT void GAM_fn_vActualizeAllGameViewportSize(void);
extern CPA_EXPORT void GAM_fn_vCreateGameDeviceAndViewPorts(void);
extern CPA_EXPORT void GAM_fn_vDestroyGameDeviceAndViewPorts(void);
extern CPA_EXPORT void fn_vCreateFixViewPort(GLD_tdhDevice _hDevice);
extern CPA_EXPORT void fn_vDestroyFixViewPort(GLD_tdhDevice _hDevice);
extern CPA_EXPORT void fn_vChangeFixViewPortSize(unsigned long _ulXMin,unsigned long _ulYMin,unsigned long _ulXMax,unsigned long _ulYMax);
extern CPA_EXPORT void fn_vCreateFixCamera(void);
extern CPA_EXPORT void fn_vCreateGameViewPortCamera(void);
extern CPA_EXPORT void fn_vReputGameViewportCamera(void);
extern CPA_EXPORT void GAM_fn_vAskToChangeLevel(char *szNewLevelName, ACP_tdxBool _bAskForAutosave ) ;
/*extern CPA_EXPORT void GAM_fn_vAskToChangeLevelWithPosition(char *szNewLevelName,char *szNewPositionPersoName,char *szNewPositionCameraName);*/
extern CPA_EXPORT void GAM_fn_vCreateListOfLevel(void);
extern CPA_EXPORT unsigned char GAM_fn_bIsEngineInFixMode(void);
extern CPA_EXPORT unsigned char GAM_fn_bIsEngineInLevelMode(void);
extern CPA_EXPORT void GAM_fn_vSetEngineInFixMode(void);
extern CPA_EXPORT void GAM_fn_vSetEngineInLevelMode(void);
extern CPA_EXPORT void GAM_fn_vTreatExeParameters(void);
extern CPA_EXPORT void GAM_fn_vReadUbiIniFileForGame(void);
#if defined(GAM_VIDEO)
extern CPA_EXPORT char *fn_szGetIntroductionVideoName(void);
extern CPA_EXPORT void fn_vRunTheGameVideo(void);
#endif /* GAM_VIDEO */
extern CPA_EXPORT void fn_vSetEngineInPaused(void);
extern CPA_EXPORT void fn_vResetEngineFromPaused(void);
extern CPA_EXPORT unsigned char fn_bIsEngineInPause(void);
extern CPA_EXPORT void fn_vSetDisplayFixFlag(enum tdeDisplayFixMode_ _eValue);
/* For demo management*/
extern void GAM_fn_vInitDemoTimer();
extern void GAM_fn_vTestDemoTimer();
extern void GAM_fn_vReturnToMenuLevel();
extern void GAM_fn_vLaunchDemoMode();
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* !__BASIC_H__ */

View File

@@ -0,0 +1,92 @@
/*=========================================================================
* CHLLoad.h : Header file for loading CHL
*
* Version 1.0
* Creation date 29/05/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__CHLLOAD_H__)
#define __CHLLOAD_H__
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/* For DLL using these function :*/
#include "../cpa_expt.h"
/*****************************************************************************************/
/**** Below : macros used to read script. ****/
/*****************************************************************************************/
#define C_GrandChildSection ( 2)
#define C_ChildSection ( 1)
#define C_ThisSection ( 0)
#define C_ParentSection (-1)
#define C_GrandParentSection (-2)
#define C_GrandGrandChildContext ( 3)
#define C_GrandChildContext ( 2)
#define C_ChildContext ( 1)
#define C_ThisContext ( 0)
#define C_ParentContext (-1)
#define C_GrandParentContext (-2)
#define M_IsTitle (_eAction==SCR_EA_Anl_BeginSection)
#define M_IsEnd (_eAction==SCR_EA_Anl_EndSection)
#define M_IsBegSubSection (_eAction==SCR_EA_Anl_BeginSubSection)
#define M_IsEndSubSection (_eAction==SCR_EA_Anl_EndSubSection)
#define M_IsEntry (_eAction==SCR_EA_Anl_Entry)
#define M_ActionIs(szActionAsked) (!strcmpi(_p_szName,szActionAsked))
/**** CHL scripts ****/
#define C_Section_CHLHeader "A3dHEADER"
#define C_Entry_FileVersion "VersionNumber"
#define C_Section_CHLGeneral "A3dChannelNames"
#define C_Entry_AddChannelName "AddChannelName"
/*
* Animations files script call-backs
*/
#if !defined(U64)
/*extern CPA_EXPORT SCR_tde_Anl_ReturnValue CHL_fn_eScriptCallBackHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);*/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue CHL_fn_eScriptCallBackGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*************************************************/
/********* global for CHL Link Table *************/
/*************************************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table CHL_g_stLinkTable;
#endif /* U64 */
/*************************************************/
/*
* Initialisation and access to link table for CHL name storage
*/
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *CHL_fn_p_stGetLinkTable(void);
#endif /* U64 */
extern CPA_EXPORT void CHL_fn_vInitLinkTable(void);
extern CPA_EXPORT void CHL_fn_vCloseLinkTable(void);
extern CPA_EXPORT void CHL_fn_vDeleteLinkTable(unsigned char ucMin,unsigned char ucMax);
extern CPA_EXPORT void CHL_fn_vRegisterAllScriptSections(void);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
/* !__CHLLOAD_H__ */
#endif

View File

@@ -0,0 +1,42 @@
/*=========================================================================
* Caps.h : Capabilities.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 29/01/98
* Author Fred "Bart" Compagnon
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1998
*=======================================================================*/
#if !defined(__Caps_h__)
#define __Caps_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
extern CPA_EXPORT void fn_vSetCapabilities(struct tdstEngineObject_ *_p_stObject, unsigned long _ubf32Capabilities);
extern CPA_EXPORT unsigned long fn_ulGetCapabilities(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void fn_vAddCapabilities(struct tdstEngineObject_ *_p_stObject, unsigned long _ubf32Capabilities);
extern CPA_EXPORT void fn_vSubCapabilities(struct tdstEngineObject_ *_p_stObject, unsigned long _ubf32Capabilities);
extern CPA_EXPORT void fn_vChangeCapabilities(struct tdstEngineObject_ *_p_stObject, unsigned long _ubf32Capabilities, long lValue);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __Caps_h__ */

View File

@@ -0,0 +1,131 @@
/*=========================================================================
* ChanList.h : ChanList's functions
*
*
* ChanList MUST BE REPLACE BY THE HEADER FILENAME
*
*
* Version 1.0
* Creation date 25/03/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__ChanList_H__)
#define __ChanList_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
struct tdstElement3d_;
#include "GAM/Header.h"
/* ANNECY AV {*/
#include "PO/POHandl.h"
/* ENDANNECY AV }*/
#define C_ucUnknownChannel (unsigned char)0xFF
#define C_wMaskForZoom ((unsigned short)0x8000)
struct tdstEngineObject_;
typedef struct tdstAChannel_
{
HIE_tdxHandleToSuperObject hSupObject;
/* POS_tdstCompletePosition stAnimMatrix; // animation matrix*/
HIE_tdxHandleToSuperObject hZoomSupObject; /* superobject used for symetric channels*/
struct tdstAChannel_ *p_stNextActiveChannel; /* link for active channels*/
struct tdstAChannel_ *p_stFatherChannel; /* hierarchy info*/
ACP_tdxBool bControlledChannel; /* channel position is modified by the AI, and should not be updated by the anim player */
ACP_tdxBool bActiveChannel; /* the AI wants the channel to be ignored */
} tdstAChannel;
EXTERN unsigned short fn_uwGetChannelOfSuperObject(CHN_tdxHandleToChannelArray hChannelArray, HIE_tdxHandleToSuperObject hSO, unsigned long ulNumberOfChannels);
extern CPA_EXPORT void fn_vInitCSOList(CHN_tdxHandleToChannelArray *p_hChannelArray, unsigned long ulNumberOfChannels);
extern CPA_EXPORT void fn_vFreeCSOList(CHN_tdxHandleToChannelArray *p_hChannelArray/*, unsigned long ulNumberOfChannels*/);
EXTERN void fn_vTakeControlOfChannel(struct tdstEngineObject_ *_hActor,unsigned short uwChannel, ACP_tdxBool _bControlled);
EXTERN void fn_vActivateChannel(HIE_tdxHandleToSuperObject _hPerso,unsigned short uwChannel,ACP_tdxBool _bActivate);
EXTERN void fn_vUpdateSPOFlagsOfChannelForActivation ( HIE_tdxHandleToSuperObject _hSOChannel, ACP_tdxBool _bActivate);
/*EXTERN void fn_vUpdateMatrixOfControledChannels(struct tdstEngineObject_ *_hActor);*/
/* ANNECY AV {*/
/* ---------------------------------------------------------------------------------------------*/
/* Definition of CHN_tdxHandleToMorphList, which is a list of Morph channels.*/
/* If a channel is morphing, it could be rotated or translated, as one wants...*/
typedef struct tdstMorphChannelList_
{
LST2_M_DynamicElementDeclaration(CHN_tdxHandleToMorphElement)
unsigned short uwChannelNumber;
ACP_tdxIndex MorphListIndex;
} tdstMorphChannelList;
tdstMorphChannelList* fn_p_stCreateMorphListElement();
void fn_vFreeMorphListElement(tdstMorphChannelList *p_stMorphList);
extern CPA_EXPORT void fn_vInitMorphList(CHN_tdxHandleToMorphList *p_hMorphList);
extern CPA_EXPORT void fn_vFreeMorphList(CHN_tdxHandleToMorphList *p_hMorphList);
EXTERN CPA_EXPORT void fn_vPutMorphElementInChannel(CHN_tdxHandleToMorphList hMorphList,unsigned short uwChannel,ACP_tdxIndex IndexOfMorphList);
EXTERN CPA_EXPORT void fn_vRemoveChannelFromMorphList(CHN_tdxHandleToMorphList hMorphList,unsigned short uwChannel);
EXTERN CPA_EXPORT ACP_tdxIndex fn_hMorphListIndex(CHN_tdxHandleToMorphList hMorphList,unsigned short uwChannel);
PO_tdxHandleToPhysicalObject fn_hGetMorphedObjectInChannel (CHN_tdxHandleToMorphList hMorphList,unsigned short uwChannel);
/* ENDANNECY AV }*/
/*****************************************/
/********** inline functions *************/
/*****************************************/
INLINE
CHN_tdxHandleToChannel fn_hGetCSOForChannel(CHN_tdxHandleToChannelArray hChannelArray,unsigned short uwChannel)
{
return &hChannelArray[uwChannel];
}
INLINE
void fn_vPutSuperObjectInChannel(CHN_tdxHandleToChannelArray hChannelArray,unsigned short uwChannelNumber,HIE_tdxHandleToSuperObject hSO)
{
/* assumes that the given channel number is good !*/
hChannelArray[uwChannelNumber].hSupObject = hSO;
}
INLINE
HIE_tdxHandleToSuperObject fn_hGetSuperObjectInChannel(CHN_tdxHandleToChannelArray hChannelArray, unsigned short uwChannelNumber)
{
return (hChannelArray) ? hChannelArray[uwChannelNumber].hSupObject : NULL;
}
INLINE
HIE_tdxHandleToSuperObject fn_hGetZoomSuperObjectInChannel(CHN_tdxHandleToChannelArray hChannelArray, unsigned short uwChannelNumber)
{
return (hChannelArray) ? hChannelArray[uwChannelNumber].hZoomSupObject : NULL;
}
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __ChanList_H__ */

View File

@@ -0,0 +1,36 @@
/*=========================================================================
* Clock.h : This module contain all always functions
* This is a part of the Game project.
*
* Version 1.0
* Creation date 31/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__CLOCK_H__)
#define __CLOCK_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
void fn_vFirstInitEngineClock();
void fn_vLastDesinitEngineClock();
void fn_vReinitEngineClock();
void fn_vRedesinitEngineClock();
void fn_vStartEngineClock();
void fn_vStopEngineClock();
void fn_vActualizeEngineClock();
void fn_vSaveEngineClock();
void fn_vLoadEngineClock();
void fn_vInitFrameLenght(void);
#endif /* __CLOCK_H__ */

View File

@@ -0,0 +1,21 @@
/* ColMotor.h*/
#ifndef COL_MOTOR
#define COL_MOTOR
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
long fn_lObjectActivateByCamera
(
HIE_tdxHandleToSuperObject COL_p_stCameraToCollide,
long COL_lTypeToSearch,
HIE_tdxHandleToSuperObject **COL_d_stArrayOfSOInCollision
);
#endif

View File

@@ -0,0 +1,55 @@
#ifndef _COLLISIO_H_
#define _COLLISIO_H_
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#define C_ucZdmTypePied 0
#define C_ucZdmTypeTronc 1
#define C_ucZdmTypetete 2
#define C_lCompleteCollision 0xFFFFFFFF
#define C_lHandsCollisionIsOn 1
#define C_lFixedCollisionIsOn 2
#define C_lTruncCollisionIsOn 4
#define C_lFeetCollisionIsOn 8
#define C_lHeadCollisionIsOn 16
extern CPA_EXPORT long COL_lHaveITakeSThgIntoTheMug (DNM_tdstMecObstacle _p_stResultObstacle [] ,
HIE_tdxHandleToSuperObject _p_stSupObj,
POS_tdstCompletePosition * _p_stStartPosition,
POS_tdstCompletePosition * _p_stEndPosition);
extern CPA_EXPORT void COL_fn_vNewStaticCollisionForCharacter (HIE_tdxHandleToSuperObject _hCharacter,
HIE_tdxHandleToSuperObject _hSector,
POS_tdstCompletePosition * _p_stStartMatrix,
POS_tdstCompletePosition * _p_stEndMatrix);
extern CPA_EXPORT void COL_fn_vStaticCollisionWithPartOfTreeForSector (HIE_tdxHandleToSuperObject _p_stEngineObj,
HIE_tdxHandleToSuperObject _p_stSuperObj,
GEO_tdstGeometricObject * _p_stDynamicGeoColl,
POS_tdstCompletePosition * _p_stStartMatrix,
POS_tdstCompletePosition * _p_stEndMatrix);
/* This function find the triangles of the super object containing the given point*/
/* and fill an array with the normals of these triangles (two triangles maximum)*/
extern CPA_EXPORT long COL_fn_lFindNormal (HIE_tdxHandleToSuperObject _hSuperObject,
MTH3D_tdstVector * _p_stPoint,
MTH3D_tdstVector * _p_a2_stNormal);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif

View File

View File

@@ -0,0 +1,104 @@
/*=========================================================================
* Model.h : Define the engine object model structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__Family_H__)
#define __Family_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "GAM/Header.h"
/*
* this structure is for all objects of the same type.
* it is to be stored in an array indexed by type values.
*/
typedef struct tdstFamilyList_
{
LST2_M_DynamicElementDeclaration(tdxHandleToFamilyList)
tdObjectType otObjectFamilyType; /**** -1 (C_InvalidObjectType) is a invalid type ****/
/**** Number of states ****/
/*unsigned short wNumberOfStates;*/
/**** Dynamic array of states ****/
LST2_M_StaticAnchorDeclaration(tdxHandleToState) hForStateArray;
/**** Number Of Objects Tables for this Family*/
/*unsigned short wNumberOfObjectsTables;*/
tdxHandleToObjectsTablesList h_DefaultObjectsTable;
/**** Dynamic array For All Objects Tables for this Family*/
LST2_M_StaticAnchorDeclaration(tdxHandleToObjectsTablesList) hForObjectsTablesList;
/* Jourdan 23/01/97*/
/*unsigned short wNumberOfCollSet;*/
/*struct tdstPhysicalCollSet_ * d_stCollSet;*/
/* Jourdan fin*/
/*ANNECY TQ 02/06/98{*/
GEO_tdxHandleToBoundingSphere hBoundingSphere;
#if defined(ACTIVE_EDITOR)
ACP_tdxHandleOfObject hGeometricSphere;
#endif /*ACTIVE_EDITOR*/
/*ENDANNECY TQ}*/
/* AR971211*/
/* char* p_cPositionsBloc; // pointer to the bloc of animation positions (used by a3c)*/
unsigned long ulNumberOfChannels;
unsigned char ucPriority;
// Shaitan => module list in the level
unsigned char ucOptimized;
// End Shaitan => module list in the level
} tdstFamily;
extern CPA_EXPORT void fn_vLastDesinitFamilyStructure();
extern CPA_EXPORT void fn_vDesinitFamilyStructureForPriority(unsigned char ucPriority);
extern CPA_EXPORT tdxHandleToFamilyList fn_hFindOrAddFAmily(tdObjectType otFamilyType);
extern CPA_EXPORT tdxHandleToFamilyList fn_hFindFamily(tdObjectType otFamilyType);
/* CGHT 28/05/97*/
extern CPA_EXPORT GEO_tdxHandleToBoundingSphere fn_vGetBoundingVolumeOfFamily(tdxHandleToFamilyList h_Family);
extern CPA_EXPORT void fn_vSetBoundingVolumeOfFamily(tdxHandleToFamilyList h_Family,GEO_tdxHandleToBoundingSphere hBV);
#if defined (ACTIVE_EDITOR)
extern CPA_EXPORT ACP_tdxHandleOfObject fn_vGetGeometricSphereOfFamily(tdxHandleToFamilyList h_Family);
extern CPA_EXPORT void fn_vSetGeometricSphereOfFamily(tdxHandleToFamilyList h_Family,ACP_tdxHandleOfObject hBV);
#endif /*ACTIVE_EDITOR*/
/* debut GIZMO NEW 07/06/97*/
extern CPA_EXPORT tdxHandleToObjectsTablesList fn_vGetDefaultObjectsTableOfFamily(tdxHandleToFamilyList h_Family);
extern CPA_EXPORT void fn_vSetDefaultObjectsTableOfFamily(tdxHandleToFamilyList h_Family,tdxHandleToObjectsTablesList h_DefaultObjectsTable);
/* fin GIZMO NEW 07/06/97*/
/*ANNECY BBB {*/
extern CPA_EXPORT tdxHandleToObjectsTablesList fn_hGetObjectsTableOfFamilyByIndex(tdxHandleToFamilyList _hFamily, ACP_tdxIndex _xIndex);
/*ANNECY BBB }*/
#ifdef _TMP_FAMILY_HANDLE_
/* ############# FOR EDITORS ONLY ############### */
extern CPA_EXPORT tdxHandleToState AddNewStateToStateArrayOfFamily(tdxHandleToFamily,tdxHandleToAnim3d);
extern CPA_EXPORT void RemoveStateInStateArrayOfFamily(tdxHandleToState);
#endif
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __Family_H__ */

View File

@@ -0,0 +1,430 @@
#ifndef _FUTIL_H_
#define _FUTIL_H_
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xSqr()
// Return the square of a value
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xSqr( A) ( ( A ) * ( A ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xMaxValue()
// Return the max value of two values
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xMaxValue( A, B) ( ( ( A ) > ( B ) ) ? ( A ) : ( B ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xMinValue()
// Return the min value of two values
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xMinValue( A, B) ( ( ( A ) < ( B ) ) ? ( A ) : ( B ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xMaxValue3()
// Return the max value of three values
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xMaxValue3( A, B, C) (\
( ( (A) > (B) ) && ( (A) > (C) ) )\
? (A) :\
( ( (B) > (C) ) ? (B) : (C) )\
)
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xMinValue3()
// Return the min value of three values
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xMinValue3( A, B, C) (\
( ( (A) < (B) ) && ( (A) < (C) ) )\
? (A) :\
( ( (B) < (C) ) ? (B) : (C) )\
)
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xLinearInterp()
// Return the linear interpolation
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xLinearInterp( A, B, C) ( ( B ) + MTH_M_xMul ( ( A ), ( ( C ) - ( B ) ) ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_bInRangeE()
// Return the interval inclusion
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_bInRangeE( A, B, C) ( ((A) <= (B)) && ((B) <= (C)) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_bInRangeE2()
// Return the interval inclusion for 2 two values
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_bInRangeE2( A, B, C, D, E, F) ( ((A) <= (B)) && ((B) <= (C)) &&\
((D) <= (E)) && ((E) <= (F)) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_ubf3VectSign()
// Return the sign of the vector three components
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_ulVectSign( A, B, C) ( ((A)<0)?4:0 | ((B)<0)?2:0 | ((C)<0)?1:0 )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vCopyVertex()
// Copy vertex to another
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vCopyVertex( A, B)\
(A)->xX = (B)->xX;\
(A)->xY = (B)->xY;\
(A)->xZ = (B)->xZ
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vCopy2Vertex()
// Copy two vertice to another
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vCopy2Vertex( A, B, C)\
(A)->xX = (B)->xX = (C)->xX;\
(A)->xY = (B)->xY = (C)->xY;\
(A)->xZ = (B)->xZ = (C)->xZ
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vAddScale3Vertex()
// Add a vertex with a scalar
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vAddScale3Vertex( A, B, C)\
(A)->xX = MTH_M_xAdd ( (B)->xX, (C) );\
(A)->xY = MTH_M_xAdd ( (B)->xY, (C) );\
(A)->xZ = MTH_M_xAdd ( (B)->xZ, (C) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vSub3Vertex()
// Subtract two vertices
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vSub3Vertex( A, B, C)\
(A)->xX = (B)->xX - (C)->xX;\
(A)->xY = (B)->xY - (C)->xY;\
(A)->xZ = (B)->xZ - (C)->xZ
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vSubScale3Vertex()
// Subtract a vertex by a scalar
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vSubScale3Vertex( A, B, C)\
(A)->xX = MTH_M_xSub ( (B)->xX, (C) );\
(A)->xY = MTH_M_xSub ( (B)->xY, (C) );\
(A)->xZ = MTH_M_xSub ( (B)->xZ, (C) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vMul3Vertex()
// Multiply two vertices
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vMul3Vertex( A, B, C)\
(A)->xX = MTH_M_xMul ( (B)->xX, (C)->xX );\
(A)->xY = MTH_M_xMul ( (B)->xY, (C)->xY );\
(A)->xZ = MTH_M_xMul ( (B)->xZ, (C)->xZ )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vNegVertex()
// Negative a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vNegVertex( A, B)\
(A)->xX = MTH_M_xNeg ( (B)->xX );\
(A)->xY = MTH_M_xNeg ( (B)->xY );\
(A)->xZ = MTH_M_xNeg ( (B)->xZ )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vDivScaleVertex()
// Divide a vertex by a scalar
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vDivScaleVertex( A, B)\
(A)->xX = MTH_M_xDiv ( (A)->xX, (B) );\
(A)->xY = MTH_M_xDiv ( (A)->xY, (B) );\
(A)->xZ = MTH_M_xDiv ( (A)->xZ, (B) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vMulAddVertex()
// Multiply by a scalar and addition a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vMulAddVertex( A, B, C, D)\
(A)->xX = MTH_M_xMul ( (B), (C)->xX ) + (D)->xX;\
(A)->xY = MTH_M_xMul ( (B), (C)->xY ) + (D)->xY;\
(A)->xZ = MTH_M_xMul ( (B), (C)->xZ ) + (D)->xZ
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vMidVertex()
// Divide a vertex by a scalar
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vMidVertex( A, B, C)\
(A)->xX = MTH_M_xMul ( (B)->xX + (C)->xX, MTH_M_xFloatToReal ( 0.5 ) );\
(A)->xY = MTH_M_xMul ( (B)->xY + (C)->xY, MTH_M_xFloatToReal ( 0.5 ) );\
(A)->xZ = MTH_M_xMul ( (B)->xZ + (C)->xZ, MTH_M_xFloatToReal ( 0.5 ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vMaxVertex()
// Max coordinates of a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vMaxVertex( A, B, C)\
(A)->xX = FUT_M_xMaxValue ( (B)->xX, (C)->xX );\
(A)->xY = FUT_M_xMaxValue ( (B)->xY, (C)->xY );\
(A)->xZ = FUT_M_xMaxValue ( (B)->xZ, (C)->xZ )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vMinVertex()
// Min coordinates of a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vMinVertex( A, B, C)\
(A)->xX = FUT_M_xMinValue ( (B)->xX, (C)->xX );\
(A)->xY = FUT_M_xMinValue ( (B)->xY, (C)->xY );\
(A)->xZ = FUT_M_xMinValue ( (B)->xZ, (C)->xZ )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vCrossProduct()
// Croos product of two vectors
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vCrossProduct( A, B, C)\
(A)->xX = MTH_M_xMul ( (B)->xY, (C)->xZ ) - MTH_M_xMul ( (B)->xZ, (C)->xY );\
(A)->xY = MTH_M_xMul ( (B)->xZ, (C)->xX ) - MTH_M_xMul ( (B)->xX, (C)->xZ );\
(A)->xZ = MTH_M_xMul ( (B)->xX, (C)->xY ) - MTH_M_xMul ( (B)->xY, (C)->xX )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_vLinearIntVertex()
// Linear interpolation of two vertices
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_vLinearIntVertex( A, B, C, D)\
(A)->xX = FUT_M_xLinearInterp ( (B), (C)->xX, (D)->xX );\
(A)->xY = FUT_M_xLinearInterp ( (B), (C)->xY, (D)->xY );\
(A)->xZ = FUT_M_xLinearInterp ( (B), (C)->xZ, (D)->xZ )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xDetXYVertex()
// Deter XY of a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xDetXYVertex( A, B) ( MTH_M_xMul ( (A)->xX, (B)->xY ) -\
MTH_M_xMul ( (A)->xY, (B)->xX ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xDetYZVertex()
// Deter YZ of a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xDetYZVertex( A, B) ( MTH_M_xMul ( (A)->xY, (B)->xZ ) -\
MTH_M_xMul ( (A)->xZ, (B)->xY ) )
/*
////////////////////////////////////////////////////////////////////////////////
// Description : FUT_M_xDetZXVertex()
// Deter ZX of a vertex
////////////////////////////////////////////////////////////////////////////////
// Input :
// Output :
////////////////////////////////////////////////////////////////////////////////
// Creation date : 22 aug 1996 Author : FPI
////////////////////////////////////////////////////////////////////////////////
*/
#define FUT_M_xDetZXVertex( A, B) ( MTH_M_xMul ( (A)->xZ, (B)->xX ) -\
MTH_M_xMul ( (A)->xX, (B)->xZ ) )
#endif

View File

@@ -0,0 +1,61 @@
#if !defined(__GAMHandl_h__)
#define __GAMHandl_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
typedef void * tdxHandleToVoid;
typedef struct tdstFamilyList_ * tdxHandleToFamilyList;
typedef struct tdstState_ * tdxHandleToState;
typedef struct tdstTransition_ * tdxHandleToTransition;
typedef struct tdstProhibit_ * tdxHandleToProhibit;
typedef struct tdstObjectsTableElement_ * tdxHandleToObjectsTableElement;
typedef struct tdstObjectsTablesList_ * tdxHandleToObjectsTablesList;
typedef struct tdstNodeCamera_ * tdxHandleToNodeCamera;
typedef struct tdstNodeMainCharacter_ * MC_tdxHandleToMainCharacterNode;
typedef struct tdstAlwaysActiveCharacter_ *tdxHandleToAlwaysActiveCharacterNode;
typedef struct tdstCsaList_ * ZDX_tdxHandleToCsaList;
typedef struct tdstZdxList_ * ZDX_tdxHandleToZdxList;
/* JO 20/10/97*/
typedef struct tdstZoneSetList_ * ZDX_tdxHandleToZoneSetList;
typedef struct tdstAlwaysModelList_ * ALW_tdxHandleToModelList;
/* fbolefeysot - 25/06/98{*/
typedef struct tdstAChannel_ *CHN_tdxHandleToChannel;
/*END fbolefeysot}*/
typedef struct tdstChannelActivationStateList_ *CHN_tdxHandleToCASElement;
/*typedef struct tdstUnderControlChannelList_ *CHN_tdxHandleToUCCElement; //ANNECY BBB ne sert plus*/
/*ANNECY AV {*/
typedef struct tdstMorphChannelList_ *CHN_tdxHandleToMorphElement;
/*ENDANNECY }*/
typedef struct tdstWaterStreakEffect_ * GAM_tdxHandleToWaterStreakEffect;
typedef struct tdstBubbleEffect_ * GAM_tdxHandleToBubbleEffect;
/*ANNECY VL 25/11/97{*/
typedef struct tdstFootPath_ *GAM_tdxHandleToFootPathEffect;
/*ENDANNECY VL }*/
typedef struct tdstViewportManagement_ *tdxHandleToViewportManagement;
/* MR2706*/
typedef struct tdstLipsSynchroTable_ *tdxHandleOfLipsSynchroTable;
/* JO 10/10/97*/
typedef struct tdstParticleGenerator_ * tdxHandleToParticleGenerator;
/* ANNECY AV DEMO {*/
#ifndef U64
typedef struct tdstDemoSOList_ *DEMO_tdxHandleToDemoSOElement;
typedef struct tdstDemoGMTList_ *DEMO_tdxHandleToDemoGMTElement;
#endif
/* END ANNECY AV }*/
#endif /* __GAMHandl_h__ */

View File

@@ -0,0 +1,83 @@
/*=========================================================================
* Handles.h : Define All Handles (used by Lists).
* This is a part of the Game project.
*
* Version 1.0
* Creation date 11/03/97 DAVID Sebastien (Gizmo)
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__GAMLst_H__)
#define __GAMLst_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "GAM/GAMHandl.h"
#include "lst.h"
/*----------------------------------------------------------------------
* Handles Sebastien DAVID
*--------------------------------------------------------------------*/
LST2_M_DynamicUseListOf(tdxHandleToFamilyList);
LST2_M_StaticUseListOf(tdxHandleToState);
LST2_M_StaticUseListOf(tdxHandleToTransition);
LST2_M_StaticUseListOf(tdxHandleToProhibit);
LST2_M_StaticUseListOf(tdxHandleToObjectsTablesList);
/* ANNECY AV DEMO {*/
#ifndef U64
LST2_M_StaticUseListOf(DEMO_tdxHandleToDemoSOElement);
typedef LST2_M_StaticAnchorDeclaration(DEMO_tdxHandleToDemoSOElement) *DEMO_tdxHandleToDemoSOList;
LST2_M_StaticUseListOf(DEMO_tdxHandleToDemoGMTElement);
typedef LST2_M_StaticAnchorDeclaration(DEMO_tdxHandleToDemoGMTElement) *DEMO_tdxHandleToDemoGMTList;
#endif
/* END ANNECY AV }*/
/*----------------------------------------------------------------------
* Handles Olivier JOURDAN
*--------------------------------------------------------------------*/
LST2_M_DynamicUseListOf(tdxHandleToNodeCamera);
LST2_M_DynamicUseListOf(MC_tdxHandleToMainCharacterNode);
/*----------------------------------------------------------------------
* Handles Francois Mahieu
*--------------------------------------------------------------------*/
LST2_M_DynamicUseListOf(ALW_tdxHandleToModelList);
/*----------------------------------------------------------------------
* Handles Michael Ryssen
*--------------------------------------------------------------------*/
/* fbolefeysot - 25/06/98{*/
/*LST2_M_DynamicUseListOf(CHN_tdxHandleToCSOElement);*/
/*END fbolefeysot}*/
LST2_M_DynamicUseListOf(CHN_tdxHandleToCASElement);
/*ANNECY AV {*/
LST2_M_DynamicUseListOf(CHN_tdxHandleToMorphElement);
/*ENDANNECY AV }*/
/* fbolefeysot - 25/06/98{*/
typedef struct tdstAChannel_ *CHN_tdxHandleToChannelArray;
/*typedef LST2_M_DynamicAnchorDeclaration(CHN_tdxHandleToCSOElement) *CHN_tdxHandleToCSOList;*/
/*END fbolefeysot}*/
typedef LST2_M_DynamicAnchorDeclaration(CHN_tdxHandleToCASElement) *CHN_tdxHandleToCASList;
/*ANNECY AV {*/
typedef LST2_M_DynamicAnchorDeclaration(CHN_tdxHandleToMorphElement) *CHN_tdxHandleToMorphList;
/*ENDANNECY AV }*/
/*----------------------------------------------------------------------
* Handles Frederic Bourbon
*--------------------------------------------------------------------*/
LST2_M_DynamicUseListOf(tdxHandleToAlwaysActiveCharacterNode);
#endif /* __GAMLst_H__ */

View File

@@ -0,0 +1,14 @@
#if !defined(__GAM_Version_h__)
#define __GAM_Version_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#define C_szGamVersion "GAM V5.7.0" /* The format is XXX Va.b.c with Xxx is the Tag of the module */
#define C_szGamFullName "Game library" /* the complete and clear name of the module */
#define C_szGamDate "Sept 01 1997" /* The format is "Mmm dd yyyy".You can use __DATE__ but be careful that you have the control of the compilation*/
#endif /* __GAM_Version_h__ */

View File

@@ -0,0 +1,130 @@
/*ANNECY BBB 03/11/97 {*/
/*identique <20> celui de GAM\TTrouble\P5\, mais recopi<70> ici pour <20>tre accessible*/
/*ENDANNECY BBB 03/11/97 }*/
/*=========================================================================
* GamOpt.c : Game Options
* This is a part of the Ed project.
*
* Version 1.0
* Creation date 30/06/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__GamOpt_h__)
#define __GamOpt_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
M_BeginDeclareEnumerate(tdeScreenResolution)
e_SR_Default = 0,
e_SR_320x240,
e_SR_400x300,
e_SR_480x360,
e_SR_512x384,
e_SR_640x480,
e_SR_800x600,
e_SR_960x720,
e_SR_1024x768,
e_SR_1152x864,
e_SR_1600x1200,
M_EndDeclareEnumerate(tdeScreenResolution,unsigned char)
#define C_ucNbSaveGameSlots 3
#define C_ucSaveGameSlotNameLength 8
#ifndef U64
/*********** FabPerez ***********************/
typedef struct _StructRecupPosSlot{
unsigned long pos;
struct _StructRecupPosSlot * pt_NextStructRecupPosSlot ;
char a_szSlotNames[C_ucSaveGameSlotNameLength + 1];
char a_szOldSlotNames[C_ucSaveGameSlotNameLength + 1];
} StructRecupPosSlot;
/******************************************/
#endif
typedef struct tdstGameOptions_
{
/**** FileNames of options ****/
char szDefaultFileName[_MAX_PATH];
char szCurrentFileName[_MAX_PATH];
/**** Player name ****/
/*char szPlayerName[_MAX_PATH];*/
/* slot names*/
char a_szSlotNames[C_ucNbSaveGameSlots][C_ucSaveGameSlotNameLength + 1];
unsigned long ulCurrentSlot;
#ifdef U64
char a_cSlotIdOnControllerPak[C_ucNbSaveGameSlots];
char cNbAvailableSlots;
#endif /* U64*/
/**** Video's options ****/
unsigned long ulDetails;
unsigned long ulScreenSize;
/**** Sound's options ****/
unsigned long ulFxVolume;
unsigned long ulMusicVolume;
unsigned long ulVoiceVolume;
} tdstGameOptions;
extern CPA_EXPORT void fn_vSetGameOptionsSlotName(short _wSlotdId, char *_szSlotName);
extern CPA_EXPORT char *fn_szGetGameOptionsSlotName(short _wSlotId);
extern CPA_EXPORT void fn_vSetDefaultGameOptionsFileName(char *_szFileName);
extern CPA_EXPORT void fn_vSetCurrentGameOptionsFileName(char *_szFileName);
extern CPA_EXPORT unsigned char fn_bSaveCurrentGameOptions(void);
extern CPA_EXPORT unsigned char fn_bLoadCurrentGameOptions(void);
extern CPA_EXPORT unsigned char fn_bLoadDefaultGameOptions(void);
extern CPA_EXPORT unsigned char fn_bLoadGameOptions(char *_szFileName);
/*extern CPA_EXPORT void fn_vMenuOptionInitDetails(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeDetailsValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitScreenSize(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeScreenSizeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitMusicVolume(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitFxVolume(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitVoiceVolume(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeMusicVolumeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeFxVolumeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeVoiceVolumeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
extern CPA_EXPORT void fn_vValidateAllOption(void);
/*extern CPA_EXPORT void fn_vChangePlayerName(char *_szName);*/
extern CPA_EXPORT void fn_vChangeDetailsValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeScreenSizeValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeMusicVolumeValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeFxVolumeValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeVoiceVolumeValue(unsigned long _ulValue);
/*ANNECY BBB 03/11/97 {*/
extern CPA_EXPORT tdstGameOptions g_stGameOptions;
/*ENDANNECY BBB 03/11/97 }*/
#if defined(WIN32) && defined(_DEBUG) /* on PC, and in debug versions */
extern CPA_EXPORT ACP_tdxBool g_bIsLoadingAnAlways ;
#endif /* WIN32 && _DEBUG */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __GamOpt_h__ */

View File

@@ -0,0 +1,107 @@
#if !defined(__GAMSAVE_H__)
#define __GAMSAVE_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*#define C_szDefaultSaveName C_szDefaultPlayerName*/
/*#define C_szDefaultSaveComment "INVALID SAVED GAME"*/
/* ******* U64 U64 U64 U64 U64 U64
pour la version U64 : si <20>a ne compile pas <20> cause du
tdstSavedGame, c'est parce-que vous n'avez pas encore
adapt<70> vos sauvegardes sp<73>cifiques au nouveau syst<73>me
de Benoit...
2 solutions :
- enlever le commentaire (pas bon)
- adapter vos sauvegardes sp<73>cifiques au nouveau syst<73>me (bon)
******* U64 U64 U64 U64 U64 U64 */
/*typedef struct tdstSavedGame_
{
unsigned char bNewGame;
unsigned char bSaveAsked;
//char szSavedComment[_MAX_PATH];
//unsigned long ulCurrentSavedNumber;
//unsigned long ulMaxSavedNumber;
} tdstSavedGame;*/
/*extern CPA_EXPORT void fn_vInitNewGamePlayerSavedGame(void);*/
/*extern CPA_EXPORT void fn_vInitPlayerSavedGame(void);*/
/*extern CPA_EXPORT void fn_vSearchAllGameSavePlayer(void);*/
/*extern CPA_EXPORT void fn_vFreeAllGameSavePlayer(void);*/
/*extern CPA_EXPORT void fn_vIncPlayerSavedNumber(void);
extern CPA_EXPORT void fn_vFirstPlayerSavedNumber(void);
extern CPA_EXPORT void fn_vLastPlayerSavedNumber(void);
extern CPA_EXPORT void fn_vNextPlayerSavedNumber(void);
extern CPA_EXPORT void fn_vPreviousPlayerSavedNumber(void);*/
/*extern CPA_EXPORT void fn_vSetPlayerSavedComment(char * _szComment);
extern CPA_EXPORT char *fn_p_szGetPlayerSavedComment(void);*/
/*extern CPA_EXPORT void fn_vAskToPlayerSaveTheGame(char * _szComment);*/
extern CPA_EXPORT unsigned char fn_bPlayerSaveGameAll(void);
extern CPA_EXPORT unsigned char fn_bLevelSaveGameAll(void);
/*extern CPA_EXPORT unsigned char fn_bPlayerSaveGameNumber(char *_szFileName);*/
extern CPA_EXPORT unsigned char fn_bPlayerSaveGameGeneral(char *_szFileName);
/*extern CPA_EXPORT unsigned char fn_bPlayerSaveGameOneLevel(char *_szFileName);*/
extern CPA_EXPORT unsigned char fn_bLevelSaveGameItSelf(char *_szFileName);
/*extern CPA_EXPORT unsigned char fn_bLoadPlayerSaveGameSavedNumber(void);
extern CPA_EXPORT unsigned char fn_bLoadPlayerSaveGameInformation(void);
extern CPA_EXPORT unsigned char fn_bLoadPlayerSaveGameBeforeLoadLevel(void);*/
extern CPA_EXPORT unsigned char fn_bLoadPlayerSaveGameAfterLoadLevel(void);
extern CPA_EXPORT unsigned char fn_bLoadLevelSaveGameAfterLoadLevel(void);
/*extern CPA_EXPORT unsigned char fn_bIsSavedGamePlayerExist(char *_szPlayerName);*/
extern CPA_EXPORT unsigned char fn_bDestroySavedGame(unsigned long _ulSlotId);
extern CPA_EXPORT ACP_tdxBool fn_bRenameSaveGameSlot(char *_szOldName, char *_szNewName);
extern CPA_EXPORT ACP_tdxBool fn_bSaveGameInSlot(unsigned long _ulSlotId);
extern CPA_EXPORT ACP_tdxBool fn_bLoadGameFromSlot(unsigned long _ulSlotId);
extern CPA_EXPORT ACP_tdxBool fn_bEraseGameInSlot(unsigned long _ulSlotId);
extern CPA_EXPORT ACP_tdxBool fn_bCopyGameInSlotFromSlot(unsigned long _ulDstSlotId, unsigned long _ulSrcSlotId);
extern CPA_EXPORT ACP_tdxBool fn_bIsSlotOccupied(unsigned long _ulSlotId);
extern unsigned char GAM_g_ucSaveGameBeforeChangeLevel;
/* ******* U64 U64 U64 U64 U64 U64
pour la version U64 : si <20>a ne compile pas <20> cause du
g_stSavedGame, c'est parce-que vous n'avez pas encore
adapt<70> vos sauvegardes sp<73>cifiques au nouveau syst<73>me
de Benoit...
2 solutions :
- enlever le commentaire (pas bon)
- adapter vos sauvegardes sp<73>cifiques au nouveau syst<73>me (bon)
******* U64 U64 U64 U64 U64 U64 */
/*EXTERN struct tdstSavedGame_ g_stSavedGame;*/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN const char *g_c_szSlotNames[];
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __GAMSAVE_H__ */

View File

@@ -0,0 +1,82 @@
/*=========================================================================
* GameEng.h : Engine of Game Header
* It is in this file that the SuperObject Tree is explored.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 22/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__GAMEENG_H__)
#define __GAMEENG_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*
* variables of the above types are here
*/
/* Global pointer on the current world */
EXTERN HIE_tdxHandleToSuperObject gp_stActualWorld;
EXTERN HIE_tdxHandleToSuperObject gp_stDynamicWorld;
EXTERN HIE_tdxHandleToSuperObject SECT_hFatherSector;
EXTERN HIE_tdxHandleToSuperObject gp_stInactiveDynamicWorld;
EXTERN unsigned char g_ucIsEdInGhostMode;
EXTERN struct GLI_tdstLight_ *gp_stLight;
EXTERN HIE_tdxHandleToSuperObject g_hSOCurrentMainSector;
EXTERN HIE_tdxHandleToSuperObject g_hSOPreviousMainSector;
void fn_vDisplayAll();
void fn_vBuildWorldTree();
void fn_vEngine();
extern CPA_EXPORT void fn_vReputCharacterSuperObjectAtTheWorld(HIE_tdxHandleToSuperObject h_SupObject);
extern CPA_EXPORT void fn_vDestructAllFatherSonLinks(void);
extern CPA_EXPORT ACP_tdxBool fn_bMoveCharacterAtPosition(HIE_tdxHandleToSuperObject _hCharacter,MTH_tdxReal _xX,MTH_tdxReal _xY,MTH_tdxReal _xZ);
extern CPA_EXPORT ACP_tdxBool GAM_fn_bIsPersoUnderWater(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void GAM_fn_vMoveCharacterOneAtCharacterTwoPosition(HIE_tdxHandleToSuperObject _hCharacterOne,HIE_tdxHandleToSuperObject _hCharacterTwo);
/* Special for E3 and shadows (to be removed)*/
/*extern CPA_EXPORT ACP_tdxBool GAM_fn_bThisCharacterIsED(HIE_tdxHandleToSuperObject _hCharacter);*/
/*extern CPA_EXPORT ACP_tdxBool GAM_fn_bIsPersoUnderWater2(HIE_tdxHandleToSuperObject _hCharacter,MTH3D_tdstVector * p_stVector);*/
extern CPA_EXPORT void fn_vTreatCameraHierarchy(HIE_tdxHandleToSuperObject hSuperObj,ACP_tdxBool bForcedActivity);
/*ANNECY CT 02/03/98{*/
extern CPA_EXPORT long GAM_fn_lGetNbPersoActive();
extern CPA_EXPORT unsigned char GAM_fn_bIsCharacterActive(HIE_tdxHandleToSuperObject hSuperObj);
/*ENDANNECY CT}*/
#if defined(USE_PROFILER)
extern void GAM_fn_vShowRasters();
#endif
#if defined(ACTIVE_EDITOR)
extern CPA_EXPORT void GAM_fn_vFillHierarchyBeforeEditor(void);
extern CPA_EXPORT void GAM_fn_vFillHierarchyAfterEditor(void);
#endif /* ACTIVE_EDITOR */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __GAMEENG_H__ */

View File

@@ -0,0 +1,17 @@
/*******************************************************/
/**** This files can be include more than once time ****/
/**** Do not put : ****/
/**** #if !defined(__Header_h__) ****/
/**** #define __Header_h__ ****/
/**** #endif __Header_h__ ****/
/*******************************************************/
#include "CPA_Expt.h"
#undef EXTERN
#undef extern
#if !defined(D_GameGlobals)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_GameGlobals */

View File

@@ -0,0 +1,46 @@
/*=========================================================================
* HitPts.h : Hit points.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 15/05/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__HitPts_h__)
#define __HitPts_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
extern CPA_EXPORT unsigned char fn_ucGetHitPoints(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void fn_vSetHitPoints(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
extern CPA_EXPORT void fn_vSetHitPointsInit(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
extern CPA_EXPORT void fn_vSetHitPointsToMaxValue(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void fn_vAddHitPoints(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
extern CPA_EXPORT unsigned char fn_ucSubHitPoints(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
extern CPA_EXPORT unsigned char fn_ucGetHitPointsMax(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void fn_vSetHitPointsMax(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
extern CPA_EXPORT void fn_vSetHitPointsMaxToMaxValue(struct tdstEngineObject_ *_p_stObject);
extern CPA_EXPORT void fn_vAddHitPointsMax(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
extern CPA_EXPORT unsigned char fn_ucSubHitPointsMax(struct tdstEngineObject_ *_p_stObject,unsigned char _ucValue);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __HitPts_h__ */

View File

@@ -0,0 +1,31 @@
#if !defined(__INITENUM_H__)
#define __INITENUM_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
typedef enum tdeObjectTreeInit_
{
OTI_WhenGameStart = 0,
OTI_MapLoaded,
OTI_ReinitTheMap,
OTI_LoadSavedGame,
OTI_PlayerDead,
OTI_WhenGoOutOfZone = OTI_PlayerDead,
OTI_Always = OTI_WhenGoOutOfZone,
OTI_AlwaysCreated,
} tdeObjectTreeInit;
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __INITENUM_H__ */

View File

@@ -0,0 +1,65 @@
/*=========================================================================
* InitEng.h : Engine initialzed functions.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__INITENG_H__)
#define __INITENG_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*HP 230698*/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN long *gp_lBeginMapSoundEventID;
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
EXTERN SND_tduRefEvt g_stBeginMapSoundEvent;
//XB 01/06/99
//EXTERN ACP_tdxBool g_bBeginMapSoundEventFlag;
extern ACP_tdxBool g_bBeginMapSoundEventFlag;
//End XB 01/06/99
void fn_vInitEngineWhenInitApplication(void);
void fn_vDesinitEngineWhenLeaveApplication(void);
void fn_vFirstInitEngine(void);
void fn_vLastDesinitEngine(void);
void fn_vInitGameLoop(void);
void fn_vDesInitGameLoop(void);
void fn_vInitLevelLoop(void);
void fn_vDesInitLevelLoop(void);
void fn_vInitDeadLoop(void);
void fn_vDesInitDeadLoop(void);
void fn_vInitAllLinkTables(void);
void fn_vReinitTheMap(void);
void fn_vReinitTheStaticHierarchie(HIE_tdxHandleToSuperObject hSuperObject);
void fn_vVerifySomeProgramVariables(void);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* !__INITENG_H__ */

View File

@@ -0,0 +1,48 @@
/*=========================================================================
* Input.h : Contain the pad structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 22/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__INPUT_H__)
#define __INPUT_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#define C_Section_IPTLink "IptLink"
#define C_Entry_IPTLink "AddRef"
void fn_vInit3DOSSpecialKey();
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackIPTLink(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
void fn_vAnalyse3DOSSpecialInputActions();
void fn_vEngineReadInput(void);
void fn_vCommandsMode(void);
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
extern unsigned char g_ucDisplayCenters;
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __INPUT_H__ */

View File

@@ -0,0 +1,123 @@
#ifndef __LSYERM_H__
#define __LSYERM_H__
#ifdef D_USE_LIPSYNC
/*#include "CPA_Expt.h"*/
#ifdef __cplusplus
extern "C" {
#endif
#pragma warning( disable : 4201 4214 4115 )
#define C_szLipsSynchVersion "LSY V1.0.0" /* The format is XXX Va.b.c with Xxx is the Tag of the module */
#define C_szLipsSynchFullName "LipsSynchs module"/* the complete and clear name of the module */
#define C_szLipsSynchDate __DATE__ /*The format is "Mmm dd yyyy".You can use __DATE__ but be careful that you have the control of the compilation*/
#include "ERM.h"
#undef EXTERN
#if !defined(LSY_MainFile)
#define EXTERN extern
#else /* !LSY_MainFile */
#define EXTERN
#endif /* !LSY_MainFile */
#define __FATAL_ERR_LipsSynch__
#define __WARNING1_ERR_LipsSynch__
/* error of the LipsSynch Module*/
enum e_uwLipsSynchErrNumber{
E_uwLipsSynchFatalErr,
#ifdef __FATAL_ERR_LipsSynch__
/* Fatals error :*/
E_uwLipsSynchFatalNotAFatalError,
E_uwLipsSynchWarningErrorIsNotAWarningError,
E_uwLipsSynchMemoryPlace,
#endif /*__FATAL_ERR_LipsSynch__*/
E_uwLipsSynchStartOfWarning,/* important constant, it allows to recognize if an error is fatal or not.*/
#ifdef __WARNING1_ERR_LipsSynch__
E_uwLipsSynchWarningShouldNotHappen,/* should never happen, but....*/
#endif /*__WARNING1_ERR_LipsSynch__*/
E_uwLipsSynchErrNumber
};
EXTERN unsigned char g_ucLipsSynchModuleId /*number of identification of the Erm module*/
#ifdef LSY_MainFile
= C_ucModuleNotInitialized
#endif /*LSY_MainFile*/
;
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN CPA_EXPORT char * g_a_szLipsSynchInformationModule []
#if defined(LSY_MainFile) && !defined(CPA_WANTS_IMPORT)
= {C_szLipsSynchVersion, C_szLipsSynchFullName, C_szLipsSynchDate}
#endif /*LSY_MainFile && CPA_WANTS_IMPORT*/
;
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN char * g_szLipsSynchModuleName /* Obliged syntax 'g_sz'+[Abbreviation of ModuleName]+'ModuleName'*/
#ifdef LSY_MainFile
= "Module LipsSynch"
#endif /*LSY_MainFile*/
;
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#if defined(__ERROR_STRINGS__)
EXTERN tdstErrorMsg g_a_stLipsSynchTabErr [] /* Obliged syntax 'g_a_st'+[Abbreviation of ModuleName]+'TabErr'*/
#ifdef LSY_MainFile
={
#ifdef __FATAL_ERR_LipsSynch__
E_uwLipsSynchFatalNotAFatalError, "This is not a valide LSY Debug fatal error",
E_uwLipsSynchWarningErrorIsNotAWarningError,"M_LipsSynchWarningError : Try to raise a fatal or a information",
E_uwLipsSynchMemoryPlace,"Not enough memory.",
#endif /*__FATAL_ERR_LipsSynch__*/
E_uwLipsSynchStartOfWarning,"This is a strange LSY Debug Warning",
#ifdef __WARNING1_ERR_LipsSynch__
E_uwLipsSynchWarningShouldNotHappen,"This error should never happen!!!!",
#endif /*__WARNING1_ERR_LipsSynch__*/
0xFFFF, "\0"/*fin*/
}
#endif /*LSY_MainFile*/
;
#endif /*__ERROR_STRINGS__*/
#define M_LipsSynchFatalError(ErrorNum) \
{ \
if (ErrorNum>E_uwLipsSynchFatalErr&&ErrorNum<E_uwLipsSynchStartOfWarning) \
{ \
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(LipsSynch,C_ucErmDefaultChannel,(unsigned short)ErrorNum,C_lErmNoDebugData,C_ucErmOpenInfoWindow,C_ucAllowStopForDebug, NULL);\
} \
else \
{ \
Erm_M_ClearLastError((unsigned short)C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(LipsSynch,C_ucErmDefaultChannel,(unsigned short)E_uwLipsSynchFatalNotAFatalError,C_lErmNoDebugData,C_ucErmOpenInfoWindow,C_ucAllowStopForDebug, NULL);\
} \
}
#define M_LipsSynchWarningError(ErrorNum) \
{ \
if (ErrorNum>E_uwLipsSynchStartOfWarning&&ErrorNum<E_uwLipsSynchErrNumber) \
{ \
Erm_M_UpdateLastError(LipsSynch,C_ucErmDefaultChannel,(unsigned short)ErrorNum,C_lErmNoDebugData,C_ucErmOpenInfoWindow,C_ucAllowStopForDebug, NULL);\
} \
else \
{ \
M_LipsSynchFatalError(E_uwLipsSynchWarningErrorIsNotAWarningError); \
} \
}
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* D_USE_LIPSYNC*/
#endif /* __LSYITEM_H__*/

View File

@@ -0,0 +1,58 @@
#ifndef __LSYMEM_H__
#define __LSYMEM_H__
/*#include "CPA_Expt.h"*/
#ifdef __cplusplus
extern "C" {
#endif
#pragma warning( disable : 4201 4214 4115 )
#include "mmg.h"
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
enum e_ucLipsSynchStaticBlocks
{
E_ucLipsSynchMemoryBlock,
E_ucLipsSynchMaxBlocksNb
};
#undef EXTERN
#undef extern
#if !defined(LSY_MainFile)
#define EXTERN extern
#else
#define EXTERN
#endif /* LSY_MainFile */
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN tdstBlockInfo g_a_stLipsSynchBlocksInfo[E_ucLipsSynchMaxBlocksNb];
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#ifdef __DYNAMIC_MALLOC_ALLOWED__
#ifdef __DEBUG_MALLOC_MODE__
EXTERN tdstDynInfo g_stLipsSynchDynInfo;
#endif /* __DEBUG_MALLOC_MODE__ */
#endif /* __DYNAMIC_MALLOC_ALLOWED__ */
#undef EXTERN
#undef extern
extern CPA_EXPORT void *LSY_fn_p_vAlloc(unsigned long Mmg_fn_p_vAlloc);
extern CPA_EXPORT void LSY_fn_vFree(void *p_vPointer);
extern CPA_EXPORT void LSY_fn_vFirstInitLSYMemory(unsigned long _ulLipsSynchMenorySize);
extern CPA_EXPORT void LSY_fn_vDesinitLSYMemory(void);
extern CPA_EXPORT void LSY_PrintUsedStaticMemory(void);
extern CPA_EXPORT void LSY_fn_vFreeLipsSynchroBlock(void);
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __LSYMEM_H__*/

View File

@@ -0,0 +1,97 @@
#if !defined(__LipsSync_H__)
#define __LipsSync_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#ifdef D_USE_LIPSYNC
#include "GAM/Header.h"
#include "HDL.h"
#define MAX_NUM_CHAN_SYN 10
#define LARGE_NUMBER 30000
#define NO_LIPS -1000
#define NO_PHONEME 12 /* Cf 'N'-'A' = 13 ('N' for None)*/
typedef struct tdstLipsSynchroEvent_
{
unsigned char ucPhoneme;
unsigned char ucIntensity;
unsigned char ucExpression;
} tdstLipsSynchroEvent;
typedef struct tdstDialText_
{
long lFrameNumber;
MTH_tdxReal xPosX,xPosY;
} tdstDialText;
typedef struct tdstActing_
{
long lFrameNumber;
tdxHandleToState hNewState;
} tdstActing;
typedef struct tdstLipsSynchroTable_
{
long lNumberOfFrames;
long lSpeed;
struct tdstLipsSynchroEvent_ *p_stTable;
SND_tdxHandleToSoundEvent p_stSndEvent;
SND_tdxHandleToSoundEvent p_stSndEventStop;
long lSoundHandle;
unsigned char ucChannelAffected[MAX_NUM_CHAN_SYN];
unsigned char ucNumberOfChannelAffected;
int iIndex; /* Index in the global array of superimposed texts*/
long lNumberOfTexts;
struct tdstDialText_ *p_stDialTexts;
long lNumberOfActings;
struct tdstActing_ *p_stActing;
} tdstLipsSynchroTable;
typedef struct tdstLipsSynchroBinTable_
{
char szSectionName[255];
tdstLipsSynchroTable *p_stLSTable;
} tdstLipsSynchroBinTable;
struct tdstDialText_ *fn_xAllocateDialTexts(long lNbTexts);
struct tdstActing_ *fn_xAllocateActing(long lNbActing);
extern CPA_EXPORT tdstLipsSynchroEvent *fn_xAllocateLipsSynchroEvents(long lNbEvents);
extern CPA_EXPORT tdxHandleOfLipsSynchroTable fn_xAllocateLipsSynchroTable();
extern CPA_EXPORT tdstLipsSynchroBinTable *fn_xAllocateLipsSynchroBinTable(long lNbElts);
extern CPA_EXPORT void fn_vLSSetSpeed(tdxHandleOfLipsSynchroTable hLSTable,long lSpeed);
extern CPA_EXPORT void fn_vLSSetSound(tdxHandleOfLipsSynchroTable hLSTable,SND_tdxHandleToSoundEvent);
extern CPA_EXPORT SND_tdxHandleToSoundEvent fn_xLSGetSound(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT void fn_vLSSetPhoneme(tdxHandleOfLipsSynchroTable hLSTable,int iIndex,unsigned char ucPhoneme);
extern CPA_EXPORT void fn_vLSSetIntensity(tdxHandleOfLipsSynchroTable hLSTable,int iIndex,unsigned char ucIntensity);
extern CPA_EXPORT void fn_vLSSetExpression(tdxHandleOfLipsSynchroTable hLSTable,int iIndex,unsigned char ucExpression);
extern CPA_EXPORT long fn_lLSGetSpeed(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT long fn_lLSGetNumberOfFrame(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT unsigned char fn_ucLSGetPhoneme(tdxHandleOfLipsSynchroTable hLSTable,int iIndex);
extern CPA_EXPORT unsigned char fn_ucLSGetIntensity(tdxHandleOfLipsSynchroTable hLSTable,int iIndex);
extern CPA_EXPORT unsigned char fn_ucLSGetExpression(tdxHandleOfLipsSynchroTable hLSTable,int iIndex);
extern CPA_EXPORT void fn_vSetSoundHandle(tdxHandleOfLipsSynchroTable hLSTable,long handle);
extern CPA_EXPORT long fn_lGetSoundHandle(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT void fn_vPlayLipsSynch(HIE_tdxHandleToSuperObject hSOM);
extern CPA_EXPORT short fn_vGetLipsSynchObject(HIE_tdxHandleToSuperObject hSOM,short);
extern CPA_EXPORT void fn_vLSAddChannelSync(tdxHandleOfLipsSynchroTable hLSTable,unsigned char);
extern CPA_EXPORT void fn_vLSResetChannelSync(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT void fn_vStartLipsSynchro(HIE_tdxHandleToSuperObject hSOM,tdxHandleOfLipsSynchroTable hLipsTable);
extern CPA_EXPORT void fn_vStopLipsSynchro(HIE_tdxHandleToSuperObject hSOM);
extern CPA_EXPORT BOOL fn_bIsDiscussionOver(HIE_tdxHandleToSuperObject hSOM);
#endif /*D_USE_LIPSYNC*/
#endif /* __LipsSync_H__ */

View File

@@ -0,0 +1,132 @@
/*=========================================================================
* LoadAni.h : Header file for loading animations.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 18/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__LOADANI_H__)
#define __LOADANI_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "GAM/GAMHandl.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/**** Animations scripts ****/
#define C_Section_AnimationHeader "A3dHEADER"
#define C_Entry_FileVersion "VersionNumber"
#define C_Entry_FileType "FileType"
#define C_AnimationsFileType "Animations"
#define C_Section_AnimationGeneral "A3dAnimationGENERAL"
#define C_Entry_ActorName "Actor"
#define C_Entry_AnimationName "Animation"
#define C_Entry_NumberOfChannels "NumberOfChannels"
#define C_Entry_NumberOfFrames "NumberOfFrames"
#define C_Entry_NumberOfEvents "NumberOfEvents" /* test events*/
/* MR1504*/
#define C_Entry_AnimationTranslationOffset "AnimationTranslationOffset"
/* MR1804*/
#define C_Entry_AnimationSpeed "AnimationSpeed"
/* MR0907*/
#define C_Entry_Compressed "Compressed"
#define C_Section_AnimationFrame "A3dAnimationFRAME"
#define C_Section_AnimationChannel "A3dAnimationCHANNEL"
#define C_Entry_BankName "Bank"
#define C_Entry_ObjectName "Object"
#define C_Entry_Orientation "Orientation"
#define C_Entry_Scale "Scale"
#define C_Entry_Position "Position"
#define C_Entry_Status "Status"
#define C_Entry_ObjectType "ObjectType"
/* MR2908*/
#define C_Entry_LightColorNearFar "LightColorNearFar"
#define C_Entry_SpotLightLittleBigAlpha "SpotLightLittleBigAlpha"
/* End MR2908*/
/* MR2307*/
#define C_Entry_ActiveStatus "ActiveStatus"
/* tmp for Objects Tables Test DVD (Gizmo)*/
#define C_Entry_NumberInTable "NumberInTable"
/* test events*/
#define C_Section_AnimationEvent "A3dAnimationEVENT"
#define C_Entry_EventReference "Reference"
#define C_Entry_EventDefinition "Definition"
/* Speed*/
#define C_Section_AnimationSpeedList "SpeedsList"
#define C_Section_AnimationSpeed "Speed"
#define C_Entry_RotationSpeed "RotationSpeed"
#define C_Entry_TranslationSpeed "TranslationSpeed"
#define C_Entry_Morphing "Morphing"
/* SOUND 14/02/97*/
#define C_Entry_SoundEventReference "LoadSoundEvent"
/* SOUND fin*/
#define C_Entry_MechanicEventReference "Type"
#define C_Entry_GenericEventReference "Data"
/* MR1206*/
#define C_Entry_AnimReferenceChannel "AnimReferenceChannel"
#define C_Section_HierarchiesList "HierarchiesList"
#define C_Section_HIERARCHY "A3dHIERARCHY"
#define C_Entry_ChannelAndFather "ChannelAndFather"
#define C_Entry_StringTableAdd "Add"
#define C_Entry_VerticesTableAdd "Add"
#define C_Entry_QuaternionTableAdd "Add"
#define C_Section_Channel "Channel"
#define C_Section_Frame "Frame"
#define C_Entry_LightColor "LightColor"
#define C_Entry_LightNearFar "LightNearFar"
#define C_Section_A3dStringsTable "A3dStringsTable"
#define C_Section_A3dVertexesTable "A3dVertexesTable"
#define C_Section_A3dQuaternionsTable "A3dQuaternionsTable"
/* end test events*/
/*
* Animations files script call-backs
*/
/*
* Initialisation and access to link table for animation name storage
*/
extern void fn_vInitAnimationLinkTable( void );
extern void fn_vCloseAnimationLinkTable( void );
extern void fn_vDeleteAnimationLinkTable(unsigned char ucMin,unsigned char ucMax);
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *fnp_stGetAnimationLinkTable( void );
#endif /* U64 */
extern void GAM_fn_vUpdateEventArrayOfAnimation(struct tdstAnim3d_* _p_stAnim, tdxHandleToObjectsTablesList _h_ObjectsTablesListElement);
extern void GAM_fn_vCreateEventArrayOfAnimation(struct tdstAnim3d_* _p_stAnim, tdxHandleToObjectsTablesList _h_ObjectsTablesListElement);
void fn_vAddAnimIntoA3bLinkTable(struct tdstAnim3d_* _p_stAnim, char* _szAnimFileName);
struct tdstAnim3d_* fn_p_stGetAnimIntoA3bLinkTable(char* _szAnimFileName);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* !__LOADANI_H__ */

View File

@@ -0,0 +1,204 @@
/* (c) Ubi R&D 1997*/
/* See Alain Robin for any comment or question*/
#if !defined(__LOADGAMBIN_H__)
#define __LOADGAMBIN_H__
#ifdef __cplusplus
extern "C" {
#endif
/* For DLLs who are using this module : */
#undef 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
/****************************************************************************/
/* GLOBAL VARIABLES */
/****************************************************************************/
/*HP 02/03*/
#if !defined(U64)
extern SCR_tdst_Link_Table BIN_g_stFamilyNamesLinkTable; /* To transform the Ids into family names*/
extern SCR_tdst_Link_Table BIN_g_stGlobalStatesLinkTable; /* To be able to get the id of a state when we binarize the characters*/
extern SCR_tdst_Link_Table BIN_g_stGlobalTBLLinkTable; /* Same purpose*/
extern SCR_tdst_Link_Table BIN_g_stBinarisationButtonLinkTable;
extern SCR_tdst_Link_Table FON_g_stFontLinkTable;
/*HP 02/03*/
#endif
extern BIN_tdxHandleToReducedLinkTable g_hFixReducedLinkTable;
/****************************************************************************/
/* PUBLIC MACROS & CONSTANTS */
/****************************************************************************/
/****************************************************************************/
/* BASIC FUNCTIONS */
/****************************************************************************/
/*----------------------------------------------------------------------------
// Description : fn_vBinSaveLevel
----------------------------------------------------------------------------//
// Input : _szLevelName : Name of the level to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinSaveLevel(char* _szLevelName);
/*----------------------------------------------------------------------------
// Description : fn_vBinLoadLevel
----------------------------------------------------------------------------//
// Input : _szLevelName : Name of the level to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinLoadLevel(char* _szLevelName);
/*----------------------------------------------------------------------------
// Description : fn_vMarkFix
// Function to mark the fix into the link tables
----------------------------------------------------------------------------//
// Input :
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vMarkFix();
/*----------------------------------------------------------------------------
// Description : fn_vBinSaveFix
----------------------------------------------------------------------------//
// Input : _szFixName : Name of the fix to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinSaveFix(char* _szFixName);
/*----------------------------------------------------------------------------
// Description : fn_vBinLoadFix
----------------------------------------------------------------------------//
// Input : _szFixName : Name of the level to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinLoadFix(char* _szFixName);
/*----------------------------------------------------------------------------
// Description : fn_vBinLoadLevelFromOneFile
----------------------------------------------------------------------------//
// Input : _szLevelName : Name of the level to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinLoadLevelFromOneFile(char* _szLevelName);
/*----------------------------------------------------------------------------
// Description : fn_vBinSaveLevelInOneFile
----------------------------------------------------------------------------//
// Input : _szLevelName : Name of the level to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinSaveLevelInOneFile(char* _szLevelName);
/*----------------------------------------------------------------------------
// Description : fn_vBinSaveFixIntoOneFile
----------------------------------------------------------------------------//
// Input : _szFixName : Name of the fix to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinSaveFixIntoOneFile(char* _szFixName);
/*----------------------------------------------------------------------------
// Description : fn_vBinLoadFixFromOneFile
----------------------------------------------------------------------------//
// Input : _szFixName : Name of the fix
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinLoadFixFromOneFile(char* _szFixName);
/*----------------------------------------------------------------------------
// Description : fn_v_InitBinarizeFamilyProcess
// Register callback
------------------------------------------------------------------------------
// Input :
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_v_InitBinarizeFamilyProcess();
/*----------------------------------------------------------------------------
// Description : fn_vBinSaveFamilyInOneFile
----------------------------------------------------------------------------//
// Input : _szLevelName : Name of the level to save
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vBinSaveFamilyInOneFile(struct tdstFamilyList_ *_p_stFamily,
char* _szFamilyBankName,
unsigned long _ulFamilyId);
/*----------------------------------------------------------------------------
// Description : fn_vEmptyAllLinkTablesForTheFamilies
------------------------------------------------------------------------------
// Input :
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vEmptyAllLinkTablesForTheFamilies();
/*----------------------------------------------------------------------------
// Description : fn_vLoadBinFamily
------------------------------------------------------------------------------
// Input : _ulId : Id of the family to load
// _xMode : 1=Fix mode 0=Level mode
// Output : the pointer to the family
----------------------------------------------------------------------------*/
extern CPA_EXPORT struct tdstFamilyList_ *fn_vLoadBinFamily(unsigned long _ulId,ACP_tdxBool _xMode);
/*----------------------------------------------------------------------------
// Description : fn_vSaveBinaryCharacter
------------------------------------------------------------------------------
// Input : _hCharacterSPO : Handle to the character SPO
// _szLevelName : Name of the current level
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vSaveBinaryCharacter(struct tdstEngineObject_ *p_stEngineObject,char* _szLevelName);
/*----------------------------------------------------------------------------
// Description : fn_hLoadBinaryCharacterOfFix
------------------------------------------------------------------------------
// Input : _szFixName : Name of the level
// _szCharacterName : Name of the character
// _ulId : Id of the character SPO
// Output : Handle to the character SPO
----------------------------------------------------------------------------*/
extern CPA_EXPORT struct tdstEngineObject_ *fn_hLoadBinaryCharacterOfFix(char* _szFixName,char* _szCharacterName,unsigned long _ulId);
/*----------------------------------------------------------------------------
// Description : fn_vLoadBinaryCharacterOfLevel
------------------------------------------------------------------------------
// Input : _szLevelName : Name of the level
// _szCharacterName : Name of the character
// _ulId : Id of the character SPO
// Output : Handle to the character SPO
----------------------------------------------------------------------------*/
extern CPA_EXPORT HIE_tdxHandleToSuperObject fn_hLoadBinaryCharacterOfLevel(char* _szLevelName,char* _szCharacterName, unsigned long _ulId);
/*----------------------------------------------------------------------------
// Description : fn_vReadAIBloc
------------------------------------------------------------------------------
// Input : _hEngObj : Handle to the engine object containing the AI
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_vReadAIBloc(struct tdstEngineObject_* _hEngObj);
/*----------------------------------------------------------------------------
// Description : fn_v_WriteAIBloc
------------------------------------------------------------------------------
// Input : _hEngObj : Handle to the engine object containing the AI
// Output :
----------------------------------------------------------------------------*/
extern CPA_EXPORT void fn_v_WriteAIBloc(struct tdstEngineObject_* _hEngObj);
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif

View File

@@ -0,0 +1,118 @@
/*=========================================================================
* LoadFml.h : This module contain all functions used to load
* a family type, this states, and all over
* This is a part of the Game project.
*
* Version 1.0
* Creation date 16/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__LOADFML_H__)
#define __LOADFML_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "GAM/Header.h"
// Shaitan => module list in the level
/**** Modules scripts ****/
#define C_SectionCreateListOfPOs "CreateListOfPOs"
#define C_Entry_LoadPO "LoadNewPO"
// End Shaitan => module list in the level
/**** Actions scripts ****/
#define C_SectionCreateNewActionsArray "CreateNewActionsArray"
#define C_SubSectionCreateNewAction "CreateNewAction"
/**** States scripts ****/
// Shaitan => state list in the level
#define C_SectionCreateListOfState "CreateListOfState"
#define C_Entry_State "LoadNewState"
// End Shaitan => state list in the level
#define C_SectionCreateNewState "CreateNewState"
#define C_Entry_Animation "Animation"
#define C_Entry_NextState "NextState"
#define C_Entry_Speed "Speed"
#define C_Entry_Repeat "Repeat"
#define C_Entry_AddTargetState "AddTargetState"
#define C_Entry_ProhibitedTargetState "ProhibitedTargetState"
#define C_Entry_AffectCollSet "AffectCollSet"
#define C_Entry_LinkMechanics "LinkMechanics"
#define C_Entry_TransitionStatusFlag "TransitionStatusFlag"
#define C_Value_TransitionAllowedByDefault "AllowedByDefault"
#define C_Value_TransitionProhibitedbyDefault "ProhibitedbyDefault"
#define C_szNoState "NoState_EndOfAction" /* maj 13/12 DVD (Gizmo)*/
#define C_Entry_CustomBits "CustomBits"
/* CGHT 14/05/97*/
#define C_SectionSetBoundingVolume "SetBoundingVolume"
#define C_Entry_Geometric "BoundingVolume"
void fn_vRegisterAllBdVolumeScriptSections ();
void fn_vLoadFamily(struct tdstFamilyList_ *p_stFamily);
// Shaitan => state list in the level
void fn_vInitStateList (struct tdstFamilyList_ *p_stFamily);
// End Shaitan => state list in the level
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackCreateNewState(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
// Shaitan => state list in the level
SCR_tde_Anl_ReturnValue fn_eScriptCallBackCreateListOfState(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
// End Shaitan => state list in the level
// Shaitan => module list in the level
SCR_tde_Anl_ReturnValue fn_eScriptCallBackCreateListOfPOs(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
// End Shaitan => module list in the level
/* CGHT 14/05/97*/
SCR_tde_Anl_ReturnValue fn_eScriptCallBackSetBoundingVolume(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*-----------------------------------------------------------------------------
* Description : Save all the loaded families in binary mode
*-----------------------------------------------------------------------------
* Input :
* Output : void
*---------------------------------------------------------------------------*/
void fn_vSaveBinaryFamily(struct tdstFamilyList_ *_p_stFamily, unsigned long _ulId);
void fn_vSaveAllBinaryFamily(); /*AR970927*/
unsigned long GAM_fn_ulWriteFamilyBinaryBloc(unsigned long _ulFamily,char* _p_cBuffer);
void GAM_fn_vResolvePointersOfFamilyBinaryBloc(unsigned long _ulPointer);
/*-----------------------------------------------------------------------------
* Description : Save all structures composing a family into one file
*-----------------------------------------------------------------------------
* Input : _p_stFamily : Address of the family
* _szAnimationBankName : Name of the file containing all the family
* Output :
*---------------------------------------------------------------------------*/
void fn_vSaveStructuresOfAFamily(struct tdstFamilyList_ *_p_stFamily,char* _szAnimationBankName);
/*-----------------------------------------------------------------------------
* Description : fn_vWriteFamilyBinaryBloc : Generic write family function
*-----------------------------------------------------------------------------
* Input : _szFileName : File name
* _ulFamilyId : Id of the family (globally generated)
* _p_stFamily : Pointer to the family to write
* Output :
*---------------------------------------------------------------------------*/
void fn_vWriteFamilyBinaryBloc(char* _szFileName,unsigned long _ulFamilyId,struct tdstFamilyList_ *_p_stFamily);
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __LOADFML_H__ */

View File

@@ -0,0 +1,70 @@
/*=========================================================================
* LoadGls.h : This module contain all functions used to load
* global variables.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 28/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__LOADGLS_H__)
#define __LOADGLS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#define C_SectionFirstLevelDescription "FirstLevelDescription"
#define C_SectionLanguage "Languages"
#define C_AddLanguage "AddLanguage"
#define C_SectionAddStringsFiles "Texts"
#define C_EntryAddStringsFile "AddStringsFile"
/*#define C_EntryAddFontFile "AddFontFile"*/
#define C_SectionPreloadSectionInFix "PreloadSectionInFix"
#define C_Entry_PreloadSection "PreloadSection"
#define C_Entry_SecondPassForCharacter "SecondPassForCharacter"
void fn_vLoadGameMemoryScript(void);
void fn_vLoadGameScript(void);
void fn_vLoadGameFixScript(void);
/* Modif Gus 98/08/11*/
void fn_vLoadReducedGameScript(void);
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackDirectoriesDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackInputDeviceManagerDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackRandomManagerDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackGameOptionsFileDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackPreloadSectionInFix(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackAddStringsFiles(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackFirstLevel(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackBigFile(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackAnimStacksDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*ANNECY BBB 24/10/97 {*/
SCR_tde_Anl_ReturnValue fn_eScriptCallBackAdditionalLevel(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLanguage(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*BEGIN OS 09-Mar-98*/
SCR_tde_Anl_ReturnValue fn_eScriptCallBackBinAdditionalLevel(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*END OS 09-Mar-98*/
/*ENDANNECY BBB 24/10/97 }*/
#endif /* U64 */
void fn_vDeleteAllFixReUsableSections(void);
#endif /* __LOADGLS_H__ */

View File

@@ -0,0 +1,71 @@
#ifndef __LOADLSYN_H__
#define __LOADLSYN_H__
#ifdef D_USE_LIPSYNC
#ifdef __cplusplus
extern "C" {
#endif
#define C_SectionA3dLSGeneral "A3dLSGeneral"
#define C_EntryNumberOfFrames "TotalFrameNumber"
#define C_EntryLSSpeed "NbFramesPerSecond"
#define C_EntryLSSound "LoadSoundEvent"
#define C_EntryLSStopSound "LoadStopSoundEvent" /* MR0808*/
#define C_EntryLSChannelNumber "SelectedChannel"
#define C_EntryNumberOfTexts "TextNumber" /* MR1908*/
#define C_EntryNumberOfActings "ActingNumber"
#define C_SectionA3dLSData "A3dLSData"
#define C_EntryLSMouth "LSMouth"
#define C_EntryLSIntensity "LSIntensity"
#define C_EntryLSExpression "LSExpression"
/* MR1908*/
#define C_SectionTextDial "Text"
#define C_EntryDisplayText "DisplayText"
/* MR2108*/
#define C_SectionLSActing "Acting"
#define C_EntryActingFlag "ActingFlag"
#define C_SectionDialogue "TextDial"
#define C_EntryText "Text"
#define C_EntryFont "Font"
#define C_EntryPosition "Pos"
#define C_SectionActing "ActingDescription"
#define C_EntryNewState "NewState"
extern CPA_EXPORT void fn_vLipsSynchroLoadInit();
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *fn_p_stGetLipsSynchroLinkTable();
#endif /* U64 */
/* For BIN*/
/*----------------------------------------------------------------------------
// Description : GAM_fn_ulWriteLipsSynchroBinaryBloc
// Write a binary bloc for a lip synchro structure
------------------------------------------------------------------------------
// Input : _ulStructAddress : Address of the element indexed triangle
// _p_cDestBuffer : Pointer to the buffer
// Output : length of the data written
----------------------------------------------------------------------------*/
extern CPA_EXPORT unsigned long GAM_fn_ulWriteLipsSynchroBinaryBloc(unsigned long _ulStructAddress,
char* _p_cDestBuffer);
/*-----------------------------------------------------------------------------
* Description : Read binary function for Lips synchro table
*-----------------------------------------------------------------------------
* Input : _ulLST : Address of the lips synchro table
* Output :
*---------------------------------------------------------------------------*/
extern CPA_EXPORT void GAM_fn_vResolveLSTBinaryBloc(unsigned long _ulLST);
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* D_USE_LIPSYNC*/
#endif /* __LOADLSYN_H__ */

View File

@@ -0,0 +1,113 @@
/*=========================================================================
* LoadLvl.h : This module contain all functions used to load
* a level.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 28/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__LOADLVL_H__)
#define __LOADLVL_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
/**** Levels scripts ****/
#define C_SectionLevelDescription "LevelDescription"
#define C_SectionLevelOptions "LevelOptions"
#define C_EntryInitNumberOfAlways "NumberOfAlways"
/* MR2808*/
#define C_EntryReserveString "ReserveString"
#define C_EntryInitNumberOfTurningSectors "NumberOfTurningSectors"
#define C_SectionLevelCharacters "InsertCharacter"
#define C_SectionLevelAlways "InsertAlways"
#define C_SectionUseSAIWithEditor "UseSAIWithEditor"
#define C_LevelPrincipalCharacter "PrincipalActor"
#define C_LevelStandardCamera "StandardCamera"
/* Keeping it for ascendant compatibility*/
#define C_LevelCharacterLauchingSounds "ActorLauchingSounds"
#define C_LevelCharacterLaunchingSounds "ActorLaunchingSounds"
#define C_LevelLinkCharacters "LinkCharacter"
#define C_LevelCharacterMatrixTranslation "MatrixTranslation"
#define C_LevelCharacterMatrixRotation "MatrixRotation"
#define C_LevelCharacterMatrixScale "MatrixScale"
#define C_LevelCharacterInitialState "InitialState"
#define C_LevelCharacterIsAlwaysActive "CharacterIsAlwaysActive"
#define C_LevelCharacterFlags "CharacterFlags"
#define C_LevelCharacterTransparency "Transparency"
/* ANNECY MT - 19/11/98 {*/
#define C_LevelCharacterIsInAllSubmap "CharacterIsInAllSubmaps"
/* END ANNECY MT }*/
void fn_vLoadLevel(char *szLevelName,long _lSubMapNumber);
/**************** FabPerez SectorAnalyse ************/
/*****************************************************/
#if defined (WIN32) && defined(_DEBUG)
//extern void fn_InitMapSectorStruct(HIE_tdxHandleToSuperObject g_hLoadedSuperObjectRoot);
extern void fn_InitMapSectorStruct(void);
typedef struct _StructInfoSectorTrame{
//char a256_SectorName[255];
char *p_a256_SectorName;
int i_NbSectorMap;
unsigned long ul_UneTrame;
unsigned long ul_DeuxTrames;
unsigned long ul_TroisTrames;
}StructInfoSectorTrame;
#endif /*WIN32 & _DEBUG*/
/************** Fin FabPerez SectorAnalyse ***********/
/******************************************************/
#if !defined(U64)
void fn_vLoadTheMap(char *szLevelName,long _lSubMapNumber);
#else /* U64 */
#include "Rom64.h"
void fn_vLoadTheMap(U64_tdxIndex xIndex,long _lSubMapNumber);
#endif /* U64 */
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelOptions(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelCharacters(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelAlways(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelSoundBank(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelSoundBankBlock(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackLevelUseSAIWithEditor(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
void fn_vDeleteAllLevelReUsableSections(void);
/*AR980812*/
void fn_vUpdateWithMatrixIdentityConst(HIE_tdxHandleToSuperObject h_SuperObject);
void fn_vRecurUpdateWithMatrixIdentityConst(HIE_tdxHandleToSuperObject h_SuperObject);
#ifndef _FIRE_DEADCODE_U64_
EXTERN HIE_tdxHandleToSuperObject g_p_stLoadedEngineSuperObject
#if defined(D_GameGlobals)
= NULL
#endif /* D_GameGlobals */
;
#endif /* _FIRE_DEADCODE_U64_ */
#endif /* __LOADLVL_H__ */

View File

@@ -0,0 +1,153 @@
#if !defined(__FON_Eff_h__)
#define __FON_Eff_h__
#include "CPA_Expt.h"
#undef EXTERN
#undef extern
#if !defined(FON_MainFile)
#define EXTERN extern
#else
#define EXTERN
#endif /* FON_MainFile */
#ifdef __cplusplus
extern "C" {
#endif
/********************************************/
/**** ComeFromeFrontOrBack : 0x00xxyyzz*/
/**** xx = Speed * 10*/
/**** yy = Delta Z * 10*/
/**** zz = Z position*/
/*****/
/**** Rotation : 0x00xxyyzz*/
/**** xx = X rotation * 100*/
/**** yy = Y rotation * 100*/
/**** zz = Z rotation * 100*/
/********************************************/
typedef enum FON_tdeEffect_
{
FON_E_EffectNoEffect = 0x00000000,
FON_E_EffectTranslationX = 0x00000001,
FON_E_EffectTranslationXTo0 = 0x00000002,
FON_E_EffectTranslationY = 0x00000004,
FON_E_EffectTranslationYTo0 = 0x00000008,
FON_E_EffectTranslationZ = 0x00000010,
FON_E_EffectTranslationZTo0 = 0x00000020,
FON_E_EffectRotation = 0x00000040,
FON_E_EffectRotationTo0 = 0x00000080,
FON_E_EffectScaleXWave = 0x00000100,
FON_E_EffectScaleXWaveTo1 = 0x00000200,
FON_E_EffectScaleXTo1 = 0x00000400,
FON_E_EffectScaleYWave = 0x00000800,
FON_E_EffectScaleYWaveTo1 = 0x00001000,
FON_E_EffectScaleYTo1 = 0x00002000,
FON_E_EffectScaleZWave = 0x00004000,
FON_E_EffectScaleZWaveTo1 = 0x00008000,
FON_E_EffectScaleZTo1 = 0x00010000,
FON_E_EffectLight = 0x00020000,
} FON_tdeEffect;
/*typedef struct FON_tdstEffect_
{
FON_tdeEffect eEffect;
unsigned long ulTranslationXParam;
unsigned long ulTranslationYParam;
unsigned long ulTranslationZParam;
unsigned long ulRotationParam;
unsigned long ulScaleXParam;
unsigned long ulScaleYParam;
unsigned long ulScaleZParam;
GLI_tdstLight *p_stLight;
} FON_tdstEffect;*/
/*typedef struct FON_stEffectByDisplay_
{
struct FON_tdstEffect_ stEnabledEffect;
struct FON_tdstEffect_ stDisabledEffect;
struct FON_tdstEffect_ stSelectedEffect;
struct FON_tdstEffect_ stPressedEffect;
} FON_stEffectByDisplay;*/
#if defined(U64) /* en attendant la v<>ritable transplantation ( voir avec Fran<61>ois ) */
/* Menu item text*/
/*typedef struct FON_stTextFont_
{
char *szText;
POS_tdxHandleToPosition *d_hLocalMatrix;
POS_tdxHandleToDynRotation *d_hLocalDynRotation;
FON_tdxHandleOfFont p_stFont;
struct FON_tdstEffect_ stEffect;
} FON_tdstTextFont;*/
#endif /* U64 */
extern CPA_EXPORT void FON_fn_vSetElapsedTime(unsigned long ulTime);
/*extern CPA_EXPORT void FON_fn_vCopyEffectOfOneCharact(FON_tdxHandleOfString _hTextDest,unsigned long _ulIndexDest,FON_tdxHandleOfString _hTextSrc,unsigned long _ulIndexSrc);*/
/*extern CPA_EXPORT void FON_fn_vInitEffectOfOneCharactFor(FON_tdxHandleOfString _hText,enum FON_tdeTypeOfDisplay_ _eTypeOfDisplay,unsigned long _ulIndex);*/
/*extern CPA_EXPORT void FON_fn_vReinitTextEffectOfOneCharact(FON_tdxHandleOfString _hText,unsigned long _ulIndex);*/
/*extern CPA_EXPORT void FON_fn_vReinitTextEffectOfOneCharactWithEffect(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulIndex);*/
/*extern CPA_EXPORT void FON_fn_vDesinitTextEffectOfOneCharact(FON_tdxHandleOfString _hText,unsigned long _ulIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitEffectFor(FON_tdxHandleOfString _hText,enum FON_tdeTypeOfDisplay_ _eTypeOfDisplay);*/
/*extern CPA_EXPORT void FON_fn_vReinitTextEffect(FON_tdxHandleOfString _hText);*/
/*extern CPA_EXPORT void FON_fn_vReinitTextEffectWithEffect(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffect(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,FON_tdeEffect _eEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffect(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectTranslationXTo0(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectTranslationXTo0OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectTranslationYTo0(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectTranslationYTo0OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectTranslationZTo0(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectTranslationZTo0OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectTranslationXYZTo0(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectRotation(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectRotationOfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectRotation(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectRotationTo0(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectRotationTo0OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectRotationTo0(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleX(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXOfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectScaleX(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXTo1OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleYTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleYTo1OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleZTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleZTo1OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectScaleXYZTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXWave(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXWaveOfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXWaveTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleXWaveTo1OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleYWave(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleYWaveOfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleYWaveTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleYWaveTo1OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleZWave(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleZWaveOfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleZWaveTo1(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectScaleZWaveTo1OfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectScaleXYZWave(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectLight(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam);*/
/*extern CPA_EXPORT void FON_fn_vInitTextEffectLightOfOneCharact(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long _ulParam,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vPlayLetterEffectLight(FON_tdxHandleOfString _hText,FON_tdstEffect *p_stEffect,unsigned long lIndex);*/
/*EXTERN FON_stEffectByDisplay FON_g_stEffectByDisplay;*/
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __FON_Eff_h__ */

View File

@@ -0,0 +1,137 @@
#if !defined(__FONPUB_H__)
#define __FONPUB_H__
#include "CPA_Expt.h"
#undef EXTERN
#undef extern
#if !defined(FON_MainFile)
#define EXTERN extern
#else
#define EXTERN
#endif /* FON_MainFile */
#ifdef __cplusplus
extern "C" {
#endif
typedef long FON_tdxHandleOfText;
#define FON_C_xInvalidTextHandle ((FON_tdxHandleOfText) (-1))
/*typedef enum FON_tdeTypeOfFont_
{
FON_eUnknow = 0x00,
FON_eGeneralStandard = 0x10,
FON_eGeneralUnicode = 0x20,
FON_e3DObjectStandard = 0x11,
FON_e3DObjectUnicode = 0x21,
} FON_tdeTypeOfFont;*/
/*typedef enum FON_tdeAlignment_
{
FON_E_LeftAlign = 0,
FON_E_UpAlign = 0,
FON_E_MiddleAlign = 1,
FON_E_RightAlign = 2,
FON_E_DownAlign = 2
} FON_tdeAlignment;*/
/*typedef enum FON_tdeTypeOfDisplay_
{
FON_Normal = 0,
FON_Disabled = 1,
FON_Enabled = 2,
FON_Selected = 3,
FON_Pressed = 4,
} FON_tdeTypeOfDisplay;*/
#undef EXTERN
#undef extern
/*extern CPA_EXPORT void FON_fn_vSetDeviceAndViewPort(GLD_tdhDevice hGLDDevice,GLD_tdhViewport hGLDViewport,GLD_tdstViewportAttributes *p_stViewportAttr);*/
extern CPA_EXPORT void FON_fn_vInitLoad(void);
extern CPA_EXPORT void FON_fn_vInitFonts(void);
#ifdef ACTIVE_EDITOR
extern CPA_EXPORT void FON_fn_vReInitFonts(void);
#endif /* ACTIVE_EDITOR */
extern CPA_EXPORT void FON_fn_vDesInitFonts(void);
extern CPA_EXPORT void FON_fn_vFirstInitFONMemory(unsigned long _ulFontTextMemorySize);
extern CPA_EXPORT void FON_fn_vDesinitFONMemory(void);
extern CPA_EXPORT void FON_fn_vReinitFONMemory(void);
extern CPA_EXPORT void FON_PrintUsedStaticMemory(void);
/*extern CPA_EXPORT FON_tdxHandleOfFont FON_fn_xGetFont(char *szFontName);*/
/*extern CPA_EXPORT char *FON_fn_szGetFontName(FON_tdxHandleOfFont hFont);*/
/*extern CPA_EXPORT unsigned char FON_fn_bIsFontExists(char *szFontName);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xComputeXWithAlign(FON_tdxHandleOfString hText,MTH_tdxReal x,enum FON_tdeAlignment_ eXAlign);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xComputeYWithAlign(FON_tdxHandleOfString hText,MTH_tdxReal y,enum FON_tdeAlignment_ eYAlign);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xWidthOfLetter(FON_tdxHandleOfString hText,unsigned long lIndex);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xWidthOfText(FON_tdxHandleOfString hText,long lIndex);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xHeightOfText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xWidthOfMultipleText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xHeightOfMultipleText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xRealHeightOfText(FON_tdxHandleOfString hText,long lIndex);*/
/*extern CPA_EXPORT unsigned long FON_fn_ulGetNumberOfTexts(void);*/
/*extern CPA_EXPORT FON_tdxHandleOfString FON_fn_hGetTextHandleWithFont(char *_szLinkKey,FON_tdxHandleOfFont hFont);*/
/*extern CPA_EXPORT void FON_fn_vChangeFontOfText(FON_tdxHandleOfString hText,FON_tdxHandleOfFont hFont);*/
/*extern CPA_EXPORT FON_tdxHandleOfFont FON_fn_xGetFontOfTextHandle(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT void FON_fn_vDrawText(FON_tdxHandleOfString hText,MTH_tdxReal x,MTH_tdxReal y,enum FON_tdeAlignment_ eXAlign,enum FON_tdeAlignment_ eYAlign,FON_tdeTypeOfDisplay _eDisplayType);*/
/*extern CPA_EXPORT void FON_fn_vDrawText3D(FON_tdxHandleOfString hText,MTH_tdxReal x,MTH_tdxReal y,MTH_tdxReal z,enum FON_tdeAlignment_ eXAlign,enum FON_tdeAlignment_ eYAlign,FON_tdeTypeOfDisplay _eDisplayType);*/
/*extern CPA_EXPORT enum FON_tdeTypeOfFont_ FON_fn_eGetTypeOfFontForText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT char *FON_fn_p_szGetStringPointer(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT unsigned long FON_fn_ulGetDisplayedLenghtOfText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT unsigned long FON_fn_ulGetTrueLenghtOfText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT unsigned short FON_fn_uwGetDisplayedCharacter(FON_tdxHandleOfFont hFont,char *szText,unsigned long lIndex);*/
/*extern CPA_EXPORT unsigned long FON_fn_vGetNextCharacter(FON_tdxHandleOfFont hFont,char *szText,unsigned long lIndex);*/
/*extern CPA_EXPORT void FON_fn_vChangeText(FON_tdxHandleOfString hText,char *szText);*/
/*extern CPA_EXPORT void FON_fn_vUpperText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xWidthOfTextByHandle(FON_tdxHandleOfString hText,long lIndex);*/
/*extern CPA_EXPORT MTH_tdxReal FON_fn_xHeightOfTextByHandle(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT FON_tdxHandleOfString FON_fn_hGetInvalidTextHandle(void);*/
/*extern CPA_EXPORT unsigned char FON_fn_bIsAValidText(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT struct FON_tdstEffect_ *FON_fn_p_stGetEffectPointer(FON_tdxHandleOfString hText);*/
/*extern CPA_EXPORT GLI_tdstLight *FON_fn_p_stCreateLight(MTH_tdxReal xR,MTH_tdxReal xG,MTH_tdxReal xB,MTH_tdxReal xA);*/
/* for binarisation*/
/*
extern CPA_EXPORT void FON_fn_vReadAllFontBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT void FON_fn_vReadBinaryBloc(unsigned long _ulAddress);
extern CPA_EXPORT void FON_fn_vWriteAllFontBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT unsigned long FON_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
extern CPA_EXPORT unsigned long FON_fn_ulWriteEffectBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
extern CPA_EXPORT unsigned long FON_fn_ulWriteStandardEffectBinaryBloc(unsigned long _ulStructAddress,char* _p_cDestBuffer);
extern CPA_EXPORT void FON_fn_vPrepareSaveBinaryBloc();
extern CPA_EXPORT void FON_fn_vResolveEffectBinaryBloc(unsigned long _ulAddress);
extern CPA_EXPORT void FON_fn_vResolveStandardEffectBinaryBloc(unsigned long _ulAddress);
extern CPA_EXPORT void FON_fn_vReadAllTextStringBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT void FON_fn_vReadAndUpdateGeneralFontLinkTable(char* _szFileName);
extern CPA_EXPORT unsigned long FON_fn_vWriteAllFontAndEffectBinaryBlocs(unsigned long ulDataPointer, char* _p_cBuffer);
extern CPA_EXPORT void FON_fn_vWriteFontAndEffect(char* _szBinaryFileName);
extern CPA_EXPORT void FON_fn_vResolveFontAndEffect(unsigned long _ulAddress);
extern CPA_EXPORT void FON_fn_vWriteStdEffect(char* _szBinaryFileName);
*/
/* MR0410*/
/*extern CPA_EXPORT void fn_vSaveFONGeneral();*/
/*extern CPA_EXPORT void fn_vReadFONGeneral();*/
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __FONPUB_H__ */

View File

@@ -0,0 +1,32 @@
#ifndef __FONLOAD_H__
#define __FONLOAD_H__
#include "CPA_Expt.h"
#undef EXTERN
#undef extern
#if !defined(FON_MainFile)
#define EXTERN extern
#else
#define EXTERN
#endif /* FON_MainFile */
#ifdef __cplusplus
extern "C" {
#endif
#define FON_C_SectionAddNewStrings "AddNewStrings"
#define FON_C_SectionNewString "NewString"
#define FON_C_SectionNewUpperString "NewUpperString"
#define FON_C_SectionNewStringLength "NewStringLength"
#ifndef U64
extern CPA_EXPORT SCR_tde_Anl_ReturnValue FON_fn_eLoadTextString(SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern CPA_EXPORT SCR_tdst_Link_Table *FON_fn_p_stGetLinkTable();
#endif
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __FONLOAD_H__*/

View File

@@ -0,0 +1,70 @@
#ifndef __FONTEXT_H__
#define __FONTEXT_H__
#include "CPA_Expt.h"
#undef EXTERN
#undef extern
#if !defined(FON_MainFile)
#define EXTERN extern
#else
#define EXTERN
#endif /* FON_MainFile */
#ifdef __cplusplus
extern "C" {
#endif
/* Menu item text*/
/*typedef struct FON_tdstFontAndEffect_
{
FON_tdxHandleOfFont p_stFont;
struct FON_tdstEffect_ stEffect;
} FON_tdstFontAndEffect;
*/
/*typedef enum FON_tdeTextEffect_
{
FON_e_Nothing = 0x00,
FON_e_Translation = 0x01,
FON_e_Rotation = 0x02,
FON_e_Scale = 0x04,
FON_e_NeedMatrix = FON_e_Translation|FON_e_Rotation|FON_e_Scale,
FON_e_Light = 0x08,
} FON_tdeTextEffect_;*/
/*typedef enum FON_tdeTypeOfText_
{
FON_eUnknow = 0x00,
FON_eASCII,
FON_eUnicode
} FON_tdeTypeOfText;
typedef struct FON_stText_
{
char *szText;
FON_tdeTypeOfText eTypeOftext;
} FON_tdstText;*/
/* Functions prototypes*/
/*void FON_fn_vAllocText(FON_tdxHandleOfString hTextNumber,unsigned long _ulSize/*,enum FON_tdeTextEffect_ _eTextEffect );*/
/*void FON_fn_vAllocTextWithoutString(FON_tdxHandleOfString hTextNumber,unsigned long _ulSize);*/
/*char/*struct FON_stText_ *FON_fn_p_stGetTextPointerOfHandle(FON_tdxHandleOfString hText);*/
/*struct FON_tdstFontAndEffect_ *FON_fn_p_stGetFontAndEffectPointerOfHandle(FON_tdxHandleOfString hText);*/
/*struct FON_tdstEffect_ *FON_fn_p_stGetEffectPointerOfHandle(FON_tdxHandleOfString hText);*/
#ifdef ACTIVE_EDITOR
extern CPA_EXPORT char *FON_fn_szGetNameOfTextHandle(FON_tdxHandleOfText hString);
#endif /* ACTIVE_EDITOR */
extern CPA_EXPORT FON_tdxHandleOfText FON_fn_hGetTextHandleWithoutWarning(char *_szLinkKey);
extern CPA_EXPORT FON_tdxHandleOfText FON_fn_hGetTextHandle(char *_szLinkKey);
extern CPA_EXPORT char *FON_fn_szGetTextPointerForHandle(FON_tdxHandleOfText hString);
extern CPA_EXPORT unsigned short FON_fn_uwGetNumberOfAvailableLanguages();
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __FONTEXT_H__ */

View File

@@ -0,0 +1,158 @@
/*=========================================================================
* Macros.h : The macros used by the project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#ifndef __MACROS_H__
#define __MACROS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Options/EnumCsts.h"
/*
* if the constants are not to be enumerated, the typedef does not
* exist, enabling the programmer to choose the memory usage for the
* variable. it is his responsibility to ensure that the scope is enough
* for the enum range. the enumerated type is faked with the specified
* type.
* if the constants are enumerated, the type exists, and the variables
* are of this type. the problem is that the memory usage is implementation-
* dependant
*/
#if defined(D_EnumerateConstants)
#define M_BeginDeclareEnumerate(tdeWhatever) \
typedef enum tdeWhatever##_ \
{
#define M_EndDeclareEnumerate(tdeWhatever, type) \
} tdeWhatever;
#else /* D_EnumerateConstants */
#define M_BeginDeclareEnumerate(tdeWhatever) \
enum \
{
#define M_EndDeclareEnumerate(tdeWhatever, type) \
}; \
typedef type tdeWhatever;
#endif /* !D_EnumerateConstants */
/***************************************/
/**** Error macros (using ACPerror) ****/
/***************************************/
#define M_GameFatalError(ErrorNum) \
{ \
if (ErrorNum>E_uwGameFatalErr&&ErrorNum<E_uwGameStartOfWarning) \
{ \
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Game,C_ucErmDefaultChannel,(unsigned short)ErrorNum,C_lErmNoDebugData,C_ucErmOpenInfoWindow,C_ucAllowStopForDebug, NULL);\
} \
else \
{ \
Erm_M_ClearLastError((unsigned short)C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Game,C_ucErmDefaultChannel,(unsigned short)E_uwGameFatalErrorNotAFatalError,C_lErmNoDebugData,C_ucErmOpenInfoWindow,C_ucAllowStopForDebug, NULL);\
} \
}
#define M_GameInformationError(ErrorNum) \
{ \
if (ErrorNum>E_uwGameStartOfInformationWarning&&ErrorNum<E_uwGameErrNumber) \
{ \
Erm_M_UpdateLastError(Game,C_ucErmDefaultChannel,(unsigned short)ErrorNum,C_lErmNoDebugData,C_ucErmNoOpenInfoWindow,C_ucNeverStopForDebug, NULL);\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
} \
else \
{ \
M_GameFatalError(E_uwGameInformationErrorIsNotAInformationError); \
} \
}
#define M_GameWarningError(ErrorNum) \
{ \
if (ErrorNum>E_uwGameStartOfWarning&&ErrorNum<E_uwGameStartOfInformationWarning) \
{ \
Erm_M_UpdateLastError(Game,C_ucErmDefaultChannel,(unsigned short)ErrorNum,C_lErmNoDebugData,C_ucErmOpenInfoWindow,C_ucAllowStopForDebug, NULL);\
} \
else \
{ \
M_GameFatalError(E_uwGameWarningErrorIsNotAWarningError); \
} \
}
#define M_GameInformationErrorWithString(ErrorNum,szString) \
{ \
if (ErrorNum>E_uwGameStartOfInformationWarning&&ErrorNum<E_uwGameErrNumber) \
{ \
Erm_M_UpdateLastError(Game,C_ucErmDefaultChannel,(unsigned short)ErrorNum,C_lErmNoDebugData,C_ucErmNoOpenInfoWindow,C_ucNeverStopForDebug, szString);\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
} \
else \
{ \
M_GameFatalError(E_uwGameInformationErrorIsNotAInformationError); \
} \
}
/*******************************/
/**** Engine general macros ****/
/*******************************/
/*************************/
/**** Object's macros ****/
/*************************/
#define M_VoidMiniStructurePointer(p_stObject,i) (*(((void **)(p_stObject))+i))
#define M_ForAllMiniStructure(i) for (i=0;i<sizeof(tdstEngineObject)/sizeof(void*);i++)
#define M_ForAllMiniStructureExceptNULL(p_stObject,i) \
M_ForAllMiniStructure(i) \
if (M_VoidMiniStructurePointer(p_stObject,i)!=NULL)
#define M_ForAllMiniStructureNULL(p_stObject,i) \
M_ForAllMiniStructure(i) \
if (M_VoidMiniStructurePointer(p_stObject,i)==NULL)
#define M_CopyMSPointer(p_stDest,p_stSrc,ucRank) { M_VoidMiniStructurePointer((p_stDest),(ucRank)) = M_VoidMiniStructurePointer((p_stSrc),(ucRank)); }
/******************************/
/**** Engine Object Macros ****/
/******************************/
#define M_ObjectGetFamilyType(p_stObject) fn_otStandardGameGetFamilyType((p_stObject)->h_StandardGame)
#define M_ObjectGetModelType(p_stObject) fn_otStandardGameGetModelType((p_stObject)->h_StandardGame)
#define M_ObjectGetPersonalType(p_stObject) fn_otStandardGameGetPersonalType((p_stObject)->h_StandardGame)
#define M_ObjectSetFamilyType(p_stObject,Type) fn_vStandardGameSetFamilyType((p_stObject)->h_StandardGame,(Type))
#define M_ObjectSetModelType(p_stObject,Type) fn_vStandardGameSetModelType((p_stObject)->h_StandardGame,(Type))
#define M_ObjectSetPersonalType(p_stObject,Type) fn_vStandardGameSetPersonalType((p_stObject)->h_StandardGame,(Type))
#define M_ObjectIsActivable(p_stObject) (fn_bf1StandardGameGetIsActivable((p_stObject)->h_StandardGame)==1)
#define M_ObjectIsActive(p_stObject) (fn_bf1StandardGameGetIsActive((p_stObject)->h_StandardGame)==1)
#define M_ActivateObject(p_stObject) (fn_vStandardGameSetIsActive((p_stObject)->h_StandardGame,1))
#define M_UnactivateObject(p_stObject) (fn_vStandardGameSetIsActive((p_stObject)->h_StandardGame,0))
#define M_ObjectIsAlreadyTreated(p_stObject) (fn_ulStandardGameGetLastTrame((p_stObject)->h_StandardGame)==g_stEngineStructure.stEngineTimer.ulTrameNumber)
#define M_TreatObject(p_stObject) fn_vStandardGameSetLastTrame((p_stObject)->h_StandardGame,g_stEngineStructure.stEngineTimer.ulTrameNumber)
#define M_GetMSHandle(p_stSuperObject,Name) ((MS_tdxHandleTo##Name) ((struct tdstEngineObject_ *)(HIE_fn_hGetSuperObjectObject(p_stSuperObject)))->h_##Name)
#define M_GetEngineObject(p_stSuperObject) ((HIE_fn_ulGetSuperObjectType(p_stSuperObject) != HIE_C_ulActor)?NULL:((struct tdstEngineObject_ *)(HIE_fn_hGetSuperObjectObject(p_stSuperObject))))
#define M_SetSuperObject(p_stObject,p_stSuperObjectIn) fn_vStandardGameSetSuperObject((p_stObject)->h_StandardGame,(p_stSuperObjectIn))
#define M_GetSuperObject(p_stObject) (fn_h_StandardGameGetSuperObject((p_stObject)->h_StandardGame))
/*******************************************************/
#define GAM_M_MakeSubMapNumber(_lSubMap,_lEntry) ( ( ( (_lSubMap) & 0x0000FFFF ) << 16 ) + ( (_lEntry) & 0x0000FFFF ) )
#define GAM_M_GetSubMap(_lAbsolute) ( ( (_lAbsolute) & 0xFFFF0000 ) >> 16 )
#define GAM_M_GetEntry(_lAbsolute) ( (_lAbsolute) & 0x0000FFFF )
/*******************************************************/
#endif /* __MACROS_H__ */

View File

@@ -0,0 +1,72 @@
#ifndef __MAINCHAR_H__
#define __MAINCHAR_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*----------------------------------------------------------------------
* Lists initialisations
*--------------------------------------------------------------------*/
/*LST2_M_DynamicUseListOf(MC_tdxHandleToMainCharacterNode);*/
/*----------------------------------------------------------------------
* Structures
*--------------------------------------------------------------------*/
#if defined(D_MainChar_StructureDefine)
typedef struct tdstNodeMainCharacter_
{
/* O.D. 15/8/97*/
HIE_tdxHandleToSuperObject hNewCharacterForTheNextFrame;
HIE_tdxHandleToSuperObject hCharacter;
LST2_M_DynamicElementDeclaration(MC_tdxHandleToMainCharacterNode)
} tdstNodeMainCharacter;
#endif /* D_MainChar_StructureDefine */
/*----------------------------------------------------------------------
* Functions
*--------------------------------------------------------------------*/
extern CPA_EXPORT MC_tdxHandleToMainCharacterNode MC_fn_hCreateMainCharacterNode();
extern CPA_EXPORT void MC_fn_vFreeMainCharacterNode(MC_tdxHandleToMainCharacterNode hMainCharNode);
extern CPA_EXPORT void MC_fn_vAddCharacterInMainCharacterList(HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void MC_fn_vRemoveCharacterinMainCharacterList(HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT unsigned char MC_fn_ucIsCharacterInMainCharacterList(HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT void MC_fn_vSetCharacterInMainCharacterNode(MC_tdxHandleToMainCharacterNode hMainCharNode,HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT HIE_tdxHandleToSuperObject MC_fn_hGetCharacterInMainCharacterNode(MC_tdxHandleToMainCharacterNode hMainCharNode);
extern CPA_EXPORT MC_tdxHandleToMainCharacterNode MC_fn_hGetFirstMainCharNode();
extern CPA_EXPORT MC_tdxHandleToMainCharacterNode MC_fn_hGetNextMainCharNode(MC_tdxHandleToMainCharacterNode hMainCharNode);
/* O.D. 15/8/97*/
extern CPA_EXPORT void MC_fn_vSetNewMainCharacter(MC_tdxHandleToMainCharacterNode hMainCharNode,HIE_tdxHandleToSuperObject hCharacter);
extern CPA_EXPORT HIE_tdxHandleToSuperObject MC_fn_hGetNewMainCharacter(MC_tdxHandleToMainCharacterNode hMainCharNode);
/*----------------------------------------------------------------------
* Add for new LstDef.h
*--------------------------------------------------------------------*/
void MC_fn_vCopyStruct_MainCharNode(MC_tdxHandleToMainCharacterNode,MC_tdxHandleToMainCharacterNode);
/*----------------------------------------------------------------------
* Macros
*--------------------------------------------------------------------*/
#define MC_M_ForEachMainCharacterNode(_hFather,_hMainCharNode,_i) \
for \
( \
_i=0,(_hMainCharNode)=MC_fn_hGetFirstMainCharNode(); \
_hMainCharNode; \
_i++,(_hMainCharNode)=MC_fn_hGetNextMainCharNode(_hMainCharNode) \
)
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MAINCHAR_H__ */

View File

@@ -0,0 +1,53 @@
#ifndef __MICROS_H__
#define __MICROS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#undef EXTERN
#undef extern
#if !defined(D_Micros_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_CollSet_VariableDefine */
#define GAM_C_NBLOCKEVENTSLOTNUMBER 10
/* sound objects types */
EXTERN long g_lSoundObjectTypeAnim,
#ifdef D_USE_LIPSYNC
g_lSoundObjectTypeLipsSynchro, /* for voices */
#endif
g_lSoundObjectTypeMenu, /* for menu and inventory */
g_lSoundObjectTypeMusic; /* for ambience musics */
/* sound volume lines */
EXTERN long
#ifdef D_USE_LIPSYNC
g_lSoundVolumeLineVoices, /* for voices */
#endif
g_lSoundVolumeLineSound, /* voices of characters */
g_lSoundVolumeLineMusic; /* ambience musics */
/* temporary objects id. for Music */
#define C_SOUNDOBJECT_MUSIC 1
#define C_SOUNDOBJECT_SECTOR 2
/******************************************/
#define GAM_C_NBLOCKEVENTSLOTNUMBER 10
EXTERN SND_tdstBlockEvent *ga_pstBlockEventSlotMemory[GAM_C_NBLOCKEVENTSLOTNUMBER];
/******************************************/
void fn_lInitSoundForAnim();
void GAM_fn_lSaveBlockEventSlotMemory(SND_tdstBlockEvent *_p_stBlockEvent,unsigned long _ulIndex);
SND_tdstBlockEvent *GAM_p_stGetBlockEventSlotMemory(unsigned long _ulIndex);
#endif /* __MICROS_H__ */

View File

@@ -0,0 +1,88 @@
/*=========================================================================
* ObjType.h : This module contain all object's type functions
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__OBJTYPE_H__)
#define __OBJTYPE_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
typedef struct tdstObjectTypeElement_ *tdhHandleToObjectTypeElement;
LST2_M_DynamicUseListOf(tdhHandleToObjectTypeElement);
typedef struct tdstObjectTypeElement_
{
LST2_M_DynamicElementDeclaration(tdhHandleToObjectTypeElement)
char *szName;
unsigned char ucElementPriority;
} tdstObjectTypeElement;
typedef struct tdstObjectType_
{
LST2_M_DynamicAnchorDeclaration(tdhHandleToObjectTypeElement) hFamilyType;
LST2_M_DynamicAnchorDeclaration(tdhHandleToObjectTypeElement) hModelType;
LST2_M_DynamicAnchorDeclaration(tdhHandleToObjectTypeElement) hPersonalType;
} tdstObjectType;
/**********************************/
/**** Two modes used functions ****/
/**********************************/
void fn_vFirstInitObjectTypeStructure();
void fn_vLastDesinitObjectTypeStructure();
extern CPA_EXPORT struct tdstEngineObject_ *fn_p_stFindObjectByItsPersonalType(tdObjectType otPersonalType,HIE_tdxHandleToSuperObject p_stSuperObject);
/***************************************/
/**** mode with name used functions ****/
/***************************************/
/**** Family type ****/
extern CPA_EXPORT tdObjectType fn_otFindOrAddFamilyTypeOfFamilyTypeName(char *szFamilyType);
extern CPA_EXPORT tdObjectType fn_otFindFamilyTypeOfFamilyTypeName(char *szFamilyType);
extern CPA_EXPORT char *fn_szFindFamilyTypeNameOfFamilyType(tdObjectType otFamilyType);
extern CPA_EXPORT void fn_vChangeFamilyTypeNameOfFamilyType(tdObjectType _otFamilyType,char *_szNewName);
/**** Model type ****/
extern CPA_EXPORT tdObjectType fn_otFindOrAddModelTypeOfModelTypeName(char *szModelType);
extern CPA_EXPORT tdObjectType fn_otFindModelTypeOfModelTypeName(char *szModelType);
extern CPA_EXPORT char *fn_szFindModelTypeNameOfModelType(tdObjectType otModelType);
extern CPA_EXPORT void fn_vChangeModelTypeNameOfModelType(tdObjectType _otModelType,char *_szNewName);
/**** Personal type ****/
extern CPA_EXPORT tdObjectType fn_otFindOrAddPersonalTypeOfPersonalTypeName(char *szPersonalType);
extern CPA_EXPORT tdObjectType fn_otFindPersonalTypeOfPersonalTypeName(char *szPersonalType);
extern CPA_EXPORT char *fn_szFindPersonalTypeNameOfPersonalType(tdObjectType otPersonalType);
extern CPA_EXPORT void fn_vChangePersonalTypeNameOfPersonalType(tdObjectType _otPersonalType,char *_szNewName);
extern CPA_EXPORT struct tdstEngineObject_ *fn_p_stFindObjectByItsPersonalTypeName(char *szPersonalType,HIE_tdxHandleToSuperObject p_stSuperObject);
extern CPA_EXPORT void fn_vFreeAllObjectTypeForPriority(unsigned char ucPriority);
EXTERN tdstObjectType g_stObjectTypes;
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __OBJTYPE_H__ */

View File

@@ -0,0 +1,74 @@
/*=========================================================================
* Objinit.h : Object initialzed init.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__OBJINIT_H__)
#define __OBJINIT_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "InitEnum.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*
* variables of the above types are here
*/
void fn_vDestroyAllHierarchy(HIE_tdxHandleToSuperObject p_stSuperObject);
/**** Allocate Object and SuperObject ****/
HIE_tdxHandleToSuperObject fn_p_stAllocateEngineSuperObject(FILE *p_stHandle,tdObjectType otObjectFamilyType,tdObjectType otObjectModelType,tdObjectType otObjectPersonalType);
HIE_tdxHandleToSuperObject fn_p_stFreeEngineSuperObject(HIE_tdxHandleToSuperObject p_stSuperObject);
/**** Allocate Object ****/
struct tdstEngineObject_ *fn_p_stAllocateEngineObject(FILE *p_stHandle,tdObjectType otObjectFamilyType,tdObjectType otObjectModelType,tdObjectType otObjectPersonalType);
struct tdstEngineObject_ *fn_p_stFreeEngineObject(struct tdstEngineObject_ *p_stTempObject);
/**** Init for object ****/
void fn_vDesinitOneObject(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjIniType);
void fn_vForceActiveAnObject(struct tdstEngineObject_ *p_stObject);
void fn_vActiveAnObject(struct tdstEngineObject_ *p_stObject);
void fn_vDesactiveAnObject(struct tdstEngineObject_ *p_stObject);
void fn_vKillEngineObjectNotAlways(struct tdstEngineObject_ *p_stObject);
void fn_vKillEngineObjectOrAlwaysByPointer(struct tdstEngineObject_ *p_stObject);
void fn_vKillEngineObjectOrAlwaysByPersonalType(tdObjectType otPersonalType);
void fn_vInitAllObjectsWhenNewGameStart(void);
void fn_vInitAllObjectsWhenMapJustLoaded(void);
void fn_vInitAllObjectsWhenSavedGameJustLoaded(void);
void fn_vInitObjectsWhenPlayerChangeSector(HIE_tdxHandleToSuperObject hCharacter,HIE_tdxHandleToSuperObject hCurrentSector,HIE_tdxHandleToSuperObject hPreviousSector);
void fn_vForceReinitAllObjects(void);
void fn_vSnifThePlayerIsDead(void);
/*void fn_vSnifThePlayerIsDeadWithOption(ACP_tdxBool _bSpecialPositionUse);*/
void fn_vSnifThePlayerIsDeadWithResurrectionAt(HIE_tdxHandleToSuperObject _hCharacterPositionOne,HIE_tdxHandleToSuperObject _hCharacterPositionTwo);
void fn_vInitAllObjectsWhenPlayerDead(void);
void fn_vInitAllObjectTree(enum tdeObjectTreeInit_ eObjIniType,HIE_tdxHandleToSuperObject p_stSupObject);
/**** For editors */
extern CPA_EXPORT void fn_vAddChildToSuperObject(HIE_tdxHandleToSuperObject hChild,char *szFamily,char *szModel,char *szPersonal);
extern CPA_EXPORT void fn_vInitOneObject(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjIniType);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __OBJINIT_H__ */

View File

@@ -0,0 +1,25 @@
/*=========================================================================
* ActBlMal.h
* This is a part of the Game project.
*
* Version 1.0
* Creation date 14/02/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__ACTBLMAL_H__)
#define __ACTBLMAL_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#define D_ActivateBlockMalloc
#endif

View File

@@ -0,0 +1,29 @@
/* MR1402*/
/*=========================================================================
* ActObjNm.h
* This is a part of the Game project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__ACTOBJNM_H__)
#define __ACTOBJNM_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/*
* This flag is to activate names for object's types (family, model and personal)
*/
#define D_ActiveObjectNames
#endif

View File

@@ -0,0 +1,12 @@
#ifndef __DEF_SND_H__
#define __DEF_SND_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#define SOUND_FOR_3DOS
#endif

View File

@@ -0,0 +1,37 @@
/* MR1402*/
/*=========================================================================
* EnumCsts.h
* This is a part of the Game project.
*
* Version 1.0
* Creation date 14/02/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__ENUMCSTS_H__)
#define __ENUMCSTS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/*
* if this one is set, all variables accepting constants from a given
* set of values will have a type causing syntax errors when an attempt
* to set them to a value outside the set is made.
*/
#if defined(U64)
#define D_EnumerateConstants
#else
/* #define D_EnumerateConstants */
#endif /* U64 */
#endif

View File

@@ -0,0 +1,29 @@
/*=========================================================================
* InLine.h
* This is a part of the Game project.
*
* Version 1.0
* Creation date 14/02/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__INLINE_H__)
#define __INLINE_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#if defined(__cplusplus)
#define GAME_INLINE inline /*=============> For inline source code*/
#else /* !__cplusplus */
#define GAME_INLINE
#endif /* __cplusplus */
#endif

View File

@@ -0,0 +1,26 @@
/*=========================================================================
* LightOpt.h
* This is a part of the Game project.
*
* Version 1.0
* Creation date 26/02/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
/*#if !defined(__LIGHTOPT_H__)*/
#ifndef __LIGHTOPT_H__
#define __LIGHTOPT_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#define __3DOSLIGHTS
#endif

View File

@@ -0,0 +1,12 @@
#ifndef __Opt_Info_h__
#define __Opt_Info_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#define D_Option_InfoWindow
#endif /* __Opt_Info_h__ */

View File

@@ -0,0 +1,34 @@
/*=========================================================================
* Options.h : All options of the project.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__OPTIONS_H__)
#define __OPTIONS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/* SOUND 14/02/97*/
#include "Def_Snd.h"
/* SOUND fin*/
#include "ActBlMal.h"
#include "EnumCsts.h"
#include "InLine.h"
#include "SptIALod.h"
#include "LightOpt.h"
#include "Specif\Flags.h"
#endif /* __OPTIONS_H__ */

View File

@@ -0,0 +1,29 @@
/* MR1402*/
/*=========================================================================
* SptIALod.h
* This is a part of the Game project.
*
* Version 1.0
* Creation date 14/02/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__SPTIALOD_H__)
#define __SPTIALOD_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/* Option for the Artificial Inteligence IA (or AI)
***************************************************/
/* if this this ScriptIaLoad is not defined mean that the program load binary file.*/
#define D_ScriptIaLoad
#endif

View File

@@ -0,0 +1,31 @@
/*=========================================================================
* Options.h : All specific flags for GAM.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 31/03/98
* Revision date
*
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__FLAGS_H__)
#define __FLAGS_H__
#define GAM_USE_SCRIPT
#define GAM_COMMAND_LINE
#define GAM_READ_INI_FILE
#define GAM_USE_SNA
#define GAM_VIGNETTE
/* no video in rayman2 !*/
/*#define GAM_VIDEO*/
#endif /* __FLAGS_H__ */

View File

@@ -0,0 +1,57 @@
/*=========================================================================
* SubMapPs.h : Define the submap positions structure
* This is a part of the Game project.
*
* Version 1.0
* Creation date 08/09/98
* Revision date
*
*
* (c) Ubi Studios 1998
*=======================================================================*/
#if !defined(__SUBMAPPS_H__)
#define __SUBMAPPS_H__ /* {*/
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/******************************************/
#ifdef __cplusplus
extern "C" {
#endif
/******************************************/
#include "GAM/Header.h"
/**/
typedef struct tdstSubMapPosition_
{
long lSubMap;
POS_tdxHandleToPosition hPosition;
struct tdstSubMapPosition_ *p_stNextPosition;
} tdstSubMapPosition;
/**/
extern CPA_EXPORT void GAM_fn_vAddSubMapPosition(long _lSubMapNumber , long _lEntryNumber , POS_tdxHandleToPosition _hPosition);
extern CPA_EXPORT POS_tdxHandleToPosition GAM_fn_hGetSubMapPosition(long _lSubMapNumber , long _lEntryNumber);
extern CPA_EXPORT void GAM_fn_vInitSubMapPositionList();
extern CPA_EXPORT void GAM_fn_vClearSubMapPositionList();
extern CPA_EXPORT void GAM_fn_vLoadSubMapPositions(char *_szFileName);
/**/
extern tdstSubMapPosition *gs_hFirstSubMapPosition;
/******************************************/
#ifdef __cplusplus
}/* extern "C" */
#endif
/******************************************/
/******************************************/
#endif /* __SUBMAPPS_H__ }*/
/******************************************/

View File

@@ -0,0 +1,30 @@
#ifndef __PHYSICAL_COLLSET_H
#define __PHYSICAL_COLLSET_H
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/* Structure used in PhysicalObjects */
/* Jourdan 20/02/97*/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
extern CPA_EXPORT void fn_vGetAllObjectsInZdd(
HIE_tdxHandleToSuperObject /*hSuperObj*/,
unsigned char /*ucChannelNumber*/,
unsigned char /*ucSubChannelNumber*/,
HIE_tdxHandleToSuperObject * /*hSuperObjTable*/,
unsigned short * /*wNumber*/);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __PHYSICAL_COLLSET_H */

View File

@@ -0,0 +1,56 @@
/*ANNECY CT 20/02/98{*/
/*=========================================================================
* Anim.h : Contain the CPA's animation functions.
*
*
* Version 0.0
* Creation date 20/02/98
* Revision date
*
* That file needs to be compatible for all platforms.
*=======================================================================*/
#ifndef _ANIM_H_
#define _ANIM_H_
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/*
* To export code.
*/
#undef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else /* CPA_WANTS_IMPORT */
#define CPA_EXPORT
#endif /* CPA_WANTS_IMPORT */
#ifndef __ANIM_S_H__
typedef struct tdstAnim3d_ tdstAnim3d;
#endif /*AR980313 to avoid redefinition*/
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*extern CPA_EXPORT void fn_vFreeJustStructAnim(tdstAnim3d * p_stAnim);*/
/*extern CPA_EXPORT void fn_vFreeSubStructAnim(tdstAnim3d * p_stAnim);*/
extern CPA_EXPORT void ANI_fn_vFreeze(HIE_tdxHandleToSuperObject hSuperObjPerso);
extern CPA_EXPORT void ANI_fn_vUnFreeze(HIE_tdxHandleToSuperObject hSuperObjPerso);
extern CPA_EXPORT tdstAnim3d * fn_p_stLoadAnimationFile(char * szFileName,struct tdstFamilyList_ *p_stFamily);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif
/*ENDANNECY CT}*/

View File

@@ -0,0 +1,80 @@
/* ***********************************************************************************/
/* * "a3x_cach.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_CACH_H
#define A3X_CACH_H
/* ***********************************************************************************/
typedef struct tdstA3dHeader_
{
unsigned short uwNumOfCacheEntry;
unsigned short uwCacheList;
} tdstA3dHeader;
typedef struct tdstCacheLine_
{
signed long slCacheValue;
unsigned short uwNumOfA3dHeader;
unsigned short uwNumOfMemBloc;
unsigned short uwPrev;
unsigned short uwNext;
} tdstCacheLine;
extern unsigned short *p_uwLastA3dGENERAL;
extern unsigned long *p_ulAnimOffsets;
extern char *p_cLoadAnimBuf;
extern unsigned short uwMaxInTabFrame3d;
extern unsigned short uwMaxInTabElement3d;
typedef struct tdstOutputCacheLine_
{ void *p_vSuperObject;
tdstAnim3d *p_stAnim3d;
tdstFrame3d *p_stFrame3d;
tdstElement3d *p_stElement3d;
long lNumOfLastFrame;
MTH3D_tdstMatrix stAngularSpeedMatrix;
} tdstOutputCacheLine;
#ifndef A3X_CACH_C
/* ***********************************************************************************/
extern tdstA3dGENERAL *fn_p_GetA3dGENERAL( unsigned short uwNumOfA3dGENERAL,
unsigned long ulFrameNumber );
extern void fn_v_InitCache( void );
extern tdstOutputCacheLine *fn_p_GetOutputCacheEntry( unsigned short _uwNumOfA3dGENERAL,
unsigned long _ulFrame,
void *_p_vSuperObject );
extern tdstShortA3dGENERAL *fn_p_ReadShortAnimFromROM( unsigned short _uwNumOfIntAnim );
/*-----------------------------------------------------------------------------
* Name : fn_vInitROMLoad
*-----------------------------------------------------------------------------
* Description : Initialise the ROM loading system for the animation
* (Real time load or use memory extension)
*-----------------------------------------------------------------------------
* Input :
* Output :
*-----------------------------------------------------------------------------*/
extern void fn_vInitROMLoad(void);
/* Global variables used by the load functions*/
extern char* g_p_cROMAnimBlocStart;
extern char* g_p_cROMAnimBlocStop;
extern int g_bRealTimeAnimationLoad;
extern char *p_cCompressedAnimBuf;
/* ***********************************************************************************/
#endif
#endif

View File

@@ -0,0 +1,478 @@
/* ***********************************************************************************/
/* * "a3x_glob.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_GLOB_H
#define A3X_GLOB_H
#include "specif\a3x_pref.h"
/* ***********************************************************************************/
/* Main Defines*/
#define KillChannels
/* ***********************************************************************************/
/* Defines*/
#define SEB_Invalid 0xFFFF
#define xZero ((SEB_xReal) 0.0)
#define xOne ((SEB_xReal) 1.0)
#define xHalfOne ((SEB_xReal) 0.5)
/*#define xEps ((SEB_xReal) 0.0001)*/
/*#define xOneSubEps ((SEB_xReal) 0.9999)*/
#define xHalfPi ((SEB_xReal) 1.570796326795)
#define xPi ((SEB_xReal) 3.14159265359)
#define xTwoPi ((SEB_xReal) 6.28318530718)
#define xExpandValue ((SEB_xReal)3.05185094759971922971282082583e-5)
#define xCompactValue 32767.0f
#define lEps 1
#define lOne 32767
#define lOneSubEps 32766
#define lDecSin 3L
#define lNbSin 8192L /* Size of sinus table*/
#define lNbSinDiv2 (lNbSin >> 1)
#define lNbSinDiv4 (lNbSin >> 2)
#define lNbSin34 (lNbSinDiv4 * 3)
#define lMaskNbSin (lNbSin - 1)
/* ***********************************************************************************/
#define SEB_xMaskQuatOri 0x0001
#define SEB_xMaskQuatSca 0x0002
#define SEB_xMaskScaleValues 0x0004
#define SEB_xMaskPosition 0x0008
#define SEB_xMaskAllLow 0x000F
#define SEB_xMaskIdQuatOri 0x0010
#define SEB_xMaskIdQuatSca 0x0020
#define SEB_xMaskIdScaleValues 0x0040
#define SEB_xMaskLastKey 0x0080
#define SEB_xMaskZeroAngCentre 0x0100
#define SEB_xTypeWrapLastKey 0x0200
#define SEB_xTypeChangeOfHierarchy 0x0400
#define SEB_xTypeHierarchized 0x0800
#define SEB_xTypeSoundEvent 0x1000
/* ***********************************************************************************/
/* Types definitions*/
/* ***********************************************************************************/
/* ----------------------------------------------------------------------------------*/
/* Matrices, vectors and quaternions definitions*/
/* ----------------------------------------------------------------------------------*/
typedef SEB_xReal tdxMatrix33[3][3];
typedef SEB_xReal tdxVector3[3];
typedef SEB_xReal tdxQuater4[4];
typedef unsigned long tdxULongVector3[3];
typedef signed short tdxSShortQuater4[4];
typedef char tdFileName[256];
/* ----------------------------------------------------------------------------------*/
/* Stack definition*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstStackInfos_ {
unsigned long ulPosAlloc;
unsigned long ulStackPos;
unsigned long ulMaxPos;
unsigned long ulResetPos;
} tdstStackInfos;
/* ----------------------------------------------------------------------------------*/
/* Cutted animations definition*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstCuttedAnim_ {
unsigned short uwStartFrame;
unsigned short uwEndFrame;
unsigned short uwPrevAnim;
unsigned short uwNextAnim;
unsigned short uwMaxNumberOfElements;
unsigned short uwAlign;
} tdstCuttedAnim;
/* ----------------------------------------------------------------------------------*/
/* NTTO*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileNTTO_ {
#ifndef U64
unsigned short uwTypeOfObject; /* + hierarchized object info !*/
unsigned short ucNumberInTable; /* temporary a short AR9810*/
unsigned char ucTransparency;
#else
unsigned short uwTypeOfObject; /* + hierarchized object info !*/
unsigned char ucNumberInTable;
unsigned char ucTransparency;
#endif
} tdstFileNTTO;
typedef struct tdstNTTO_ {
#ifndef U64
unsigned short uwTypeOfObject; /* + hierarchized object info !*/
unsigned short ucNumberInTable; /* temporary a short AR9810*/
unsigned char ucTransparency;
#else
unsigned short uwTypeOfObject; /* + hierarchized object info !*/
unsigned char ucNumberInTable;
unsigned char ucTransparency;
#endif
} tdstNTTO;
/* ----------------------------------------------------------------------------------*/
/* Hierarchy*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileHierarchy_ {
unsigned short uwChild;
unsigned short uwFather;
} tdstFileHierarchy;
typedef struct tdstBinHierarchy_ {
unsigned short uwChild;
unsigned short uwFather;
} tdstBinHierarchy;
typedef struct tdstHierarchy_ {
unsigned short uwChild;
unsigned short uwFather;
} tdstHierarchy;
/* ----------------------------------------------------------------------------------*/
/* Only Frame*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileOnlyFrame_ {
unsigned short uwNumOfAngularSpeedQuat;
unsigned short uwNumOfSpeedVector;
unsigned short uwHierarchyNbCouples;
unsigned short uwNumOfHierarchyCouples;
unsigned short uwNumOfSavedFrame;
unsigned short uwAlign;
} tdstFileOnlyFrame;
typedef struct tdstBinOnlyFrame_ {
signed long slNumOfAngularSpeedQuat;
signed long slNumOfSpeedVector;
unsigned short uwHierarchyNbCouples;
unsigned short uwNumOfSavedFrame;
signed long slNumOfHierarchyCouples;
tdxQuater4 tdxAngularSpeedQuat; /* only for binarisation*/
tdxVector3 tdxSpeedVector; /* only for binarisation*/
} tdstBinOnlyFrame;
typedef struct tdstOnlyFrame_ {
unsigned short uwNumOfAngularSpeedQuat;
unsigned short uwNumOfSpeedVector;
unsigned short uwHierarchyNbCouples;
unsigned short uwNumOfFirstHierarchyCouple;
unsigned short uwNumOfSavedFrame;
/* unsigned short uwAlign; // AR9811 To save memory...*/
} tdstOnlyFrame;
/* ----------------------------------------------------------------------------------*/
/* Channel*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileChannel_ {
unsigned short uwNumberOfKeys;
unsigned short uwChannelNumber;
unsigned short uwNumOfLocalPivotPos;
unsigned short uwAlign;
} tdstFileChannel;
typedef struct tdstBinChannel_ {
unsigned short uwNumberOfKeys;
unsigned short uwChannelNumber;
signed long slNumOfLocalPivotPos;
/* signed long slNumOfFrameNTTO; // in tdstBinFrame*/
signed long slNumOfFrames;
/* signed short slNumOfKeyFrame; // in tdstBinFrame*/
unsigned short uwUsedChannel; /* only for binarisation*/
unsigned short uwGenerateChannel; /* only for binarisation*/
tdxVector3 a3_xLocalPivotPos; /* only for binarisation*/
} tdstBinChannel;
typedef struct tdstChannel_ {
unsigned short uwNumberOfKeys;
unsigned short uwChannelNumber;
unsigned short uwNumOfLocalPivotPos;
unsigned short uwNumOfFirstFrame;
unsigned long ulNumOfFirstFrameKF;
unsigned short uwNumOfFirstKeyFrame;
/* unsigned short uwAlign; // AR9811 To save memory...*/
} tdstChannel;
/* ----------------------------------------------------------------------------------*/
/* Frames KF*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFrameKF_ {
unsigned short uwNumOfKeyFrame;
/* unsigned short uwAlign; //AR9808 Too much memory lost*/
} tdstFrameKF;
/* ----------------------------------------------------------------------------------*/
/* Frame*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileFrame_ {
/* signed short swNumberInTable;*/
/* unsigned short uwTypeOfObject; // + hierarchized object info !*/
unsigned short uwNumOfNTTO;
/* unsigned short uwAlign; //AR9808 Too much memory lost*/
} tdstFileFrame;
typedef struct tdstBinFrame_ {
signed short swNumberInTable;
unsigned short uwTypeOfObject;
unsigned short uwFrameNumber;
unsigned char ucTransparency;
unsigned char ucAlign;
tdxQuater4 a4_xQuatOri; /* Orientation of quaternion*/
tdxQuater4 a4_xQuatSca; /* Orientation of scale*/
tdxVector3 a3_xScaleValues; /* Scaling values*/
tdxVector3 a3_xPosition; /* Channel position*/
tdxVector3 a3_xWorldPivotPosition; /* Pivot position in world axes*/
SEB_xReal xDistMaster;
SEB_xReal xInterpolationParameter;
unsigned short uwMask; /* Interpolation mask to speed up calculation*/
unsigned short uwAttribute; /* Key attribute*/
unsigned short uwChildrenInHierarchy; /* only for binarisation*/
signed long slNumOfNTTO;
signed long slNumOfQuatOri;
signed long slNumOfQuatSca;
signed long slNumOfScaleValues;
signed long slNumOfPosition;
} tdstBinFrame;
typedef struct tdstFrame_ {
/* signed short swNumberInTable;*/
/* unsigned short uwTypeOfObject; // + hierarchized object info !*/
/* unsigned short uwNumOfNTTO;*/
unsigned short uwNumOfNTTO;
/* unsigned short uwAlign; //AR9808 Too much memory lost*/
} tdstFrame;
/* ----------------------------------------------------------------------------------*/
/* Key Frame*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileKeyFrame_ {
unsigned short uwFrameNumber;
unsigned short uwMask;
unsigned short uwNumOfQuatOri;
unsigned short uwNumOfQuatSca;
unsigned short uwNumOfScaleValues;
unsigned short uwNumOfPosition;
signed short swInterpolationParameter;
} tdstFileKeyFrame;
typedef struct tdstKeyFrame_ {
tdxVector3 a3_xWorldPivotPosition;
SEB_xReal xDistMaster;
unsigned short uwFrameNumber;
unsigned short uwMask;
unsigned short uwNumOfQuatOri;
unsigned short uwNumOfQuatSca;
unsigned short uwNumOfScaleValues;
unsigned short uwNumOfPosition;
unsigned short uwAngQuatOri;
unsigned short uwAngQuatSca;
unsigned short uwAngObjCentre;
signed short swInterpolationParameter;
} tdstKeyFrame;
/* ----------------------------------------------------------------------------------*/
/* A3D General*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileA3dAnimationGENERAL_ {
unsigned short uwAnimationSpeed;
unsigned short uwNumberOfVectors;
unsigned short uwNumberOfQuaternions;
unsigned short uwNumberOfHierarchies;
unsigned short uwNumberOfSavedNTTO;
unsigned short uwNumberOfSavedFrames;
unsigned short uwNumberOfChannels;
unsigned short uwNumberOfFrames;
unsigned short uwNumberOfKeyFrames;
unsigned short uwNumberOfEvents;
unsigned short uwNumOfFirstPosition;
unsigned short uwStartFrame;
unsigned short uwEndFrame;
unsigned short uwFakeAnimSpeed;
unsigned short uwFlags;
unsigned short uwNumOfAnimationTranslationOffset;
unsigned short uwNumOfAnimationRotationOffset;
unsigned short uwNumberOfMorphData;
} tdstFileA3dAnimationGENERAL;
/* For fast load (reduced structure)*/
typedef struct tdstShortA3dGENERAL_
{
unsigned short uwNumberOfFrames;
unsigned short uwFrameRate;
unsigned short uwMaxNumberOfElements;
unsigned short uwNumberOfEvents;
unsigned short uwNumberOfMorphData;
unsigned short uwAlign;
tdxVector3 a3_xAnimationTranslationOffset;
tdxSShortQuater4 a4_uwAnimationRotationOffset; /* Can be Eliminated... See later*/
} tdstShortA3dGENERAL;
typedef struct tdstBinA3dAnimationGENERAL_ {
unsigned short uwAnimationSpeed;
unsigned short uwNumberOfSavedVectors;
unsigned short uwNumberOfSavedQuaternions;
unsigned short uwNumberOfHierarchies;
unsigned short uwNumberOfSavedNTTO;
unsigned short uwNumberOfSavedFrames;
unsigned short uwNumberOfChannels;
unsigned short uwNumberOfFrames;
unsigned short uwNumberOfKeyFrames;
unsigned short uwNumberOfEvents;
unsigned short uwNumberOfMorphData;
unsigned short uwAlign;
unsigned short uwStartFrame;
unsigned short uwEndFrame;
unsigned short uwFlags;
unsigned short uwFakeAnimSpeed;
signed long slNumOfAnimationTranslationOffset;
signed long slNumOfAnimationRotationOffset;
signed long slNumOfPositions;
signed long slNumOfSavedVectors;
signed long slNumOfSavedQuaternions;
signed long slNumOfHierarchies;
signed long slNumOfSavedNTTO;
signed long slNumOfOnlyFrames;
signed long slNumOfChannels;
signed long slNumOfEvents;
signed long slNumOfMorphData;
/* ----------------*/
signed long slNumOfFramesNTTO;
/* Before optimisation*/
unsigned short uwNumberOfVectors;
unsigned short uwNumberOfQuaternions;
signed long slNumOfVectors;
signed long slNumOfQuaternions;
tdxVector3 uwAnimationTranslationOffset;
tdxQuater4 uwAnimationRotationOffset;
} tdstBinA3dAnimationGENERAL;
typedef struct tdstA3dGENERAL_ {
unsigned short uwAnimationSpeed;
unsigned short uwNumberOfVectors;
unsigned short uwNumberOfQuaternions;
unsigned short uwNumberOfHierarchies;
unsigned short uwNumberOfNTTO;
unsigned short uwNumberOfSavedFrames;
unsigned short uwNumberOfChannels;
unsigned short uwNumberOfFrames;
unsigned short uwNumberOfKeyFrames;
unsigned short uwNumberOfEvents;
unsigned short uwNumOfFirstPosition;
unsigned short uwStartFrame;
unsigned short uwEndFrame;
unsigned short uwFakeAnimSpeed;
unsigned short uwFlags;
unsigned short uwNumOfAnimationTranslationOffset;
unsigned short uwNumOfAnimationRotationOffset;
unsigned short uwNumberOfMorphData;
unsigned short uwNumOfFirstVector;
unsigned short uwNumOfFirstQuaternion;
unsigned short uwNumOfFirstHierarchy;
unsigned short uwNumOfFirstNTTO;
unsigned short uwNumOfFirstOnlyFrame;
unsigned short uwNumOfFirstChannel;
unsigned short uwNumOfFirstEvent;
unsigned short uwNumOfFirstMorphData;
} tdstA3dGENERAL;
/* ----------------------------------------------------------------------------------*/
/* Morph Data*/
/* ----------------------------------------------------------------------------------*/
typedef struct tdstFileMorphData_ {
unsigned char ucTarget;
unsigned char ucMorphingAmount;
unsigned short uwChannelNumber;
unsigned short uwFrameNumber;
unsigned short uwAlign; /* Usefull for storage structures AR9809*/
} tdstFileMorphData; /*AR9803 Written into binary file*/
typedef struct tdstBinMorphData_ {
unsigned char ucTarget;
unsigned char ucMorphingAmount;
unsigned short uwChannelNumber;
unsigned short uwFrameNumber;
unsigned short uwAlign;
} tdstBinMorphData; /*AR9803 Filled by scripts*/
/* ----------------------------------------------------------------------------------*/
/* Event definition*/
/* ----------------------------------------------------------------------------------*/
#define A3i_Version 0x1110 /* 1.17 */
/* AR9809 Now, this structure is common (event loaded the same way than PC)*/
/* Storage structure*/
typedef struct tdstFileEvent_ {
unsigned short usEventNumberInTBL;
unsigned short uwFrameNumber;
unsigned short uwChannelNumber;
unsigned short uwAlign;
} tdstFileEvent;
/* Binarisation structure*/
typedef struct tdstBinEvent_ {
unsigned short usEventNumberInTBL;
unsigned short uwFrameNumber;
unsigned short uwChannelNumber;
} tdstBinEvent;
/* ***********************************************************************************/
#endif

View File

@@ -0,0 +1,125 @@
/* ***********************************************************************************/
/* * "a3x_int.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_INT_H
#define A3X_INT_H
/* ***********************************************************************************/
enum { eQX, eQY, eQZ, eQW };
#ifndef A3X_INT_C
/* ***********************************************************************************/
/* Precalculations*/
extern void fn_v_InitSinTab( void );
extern signed short ax_SinTab[];
extern tdxQuater4 a4_xQuater1;
/* ***********************************************************************************/
/* Matrices tests*/
extern unsigned short fn_uw_IsDiagonale( tdxMatrix33 _a3a3_xMtx );
extern unsigned short fn_uw_IsOrthogonale( tdxMatrix33 _a3a3_xMtx );
extern unsigned short fn_uw_IsOrthonormee( tdxMatrix33 _a3a3_xMtx );
extern unsigned short fn_uw_IsUnitQuat( tdxQuater4 _a4_xQuat );
extern unsigned short fn_uw_AreSameMatrix( tdxMatrix33 _a3a3_xMtx1,
tdxMatrix33 _a3a3_xMtx2 );
extern unsigned short fn_uw_AreSameQuat( tdxQuater4 _a4_xQuat1,
tdxQuater4 _a4_xQuat2 );
extern unsigned short fn_uw_AreSameVect( tdxVector3 _a3_xVect1,
tdxVector3 _a3_xVect2 );
extern unsigned short fn_uw_CompQuat( tdxQuater4 _a4_xQuat1,
tdxQuater4 _a4_xQuat2 );
extern unsigned short fn_uw_CompVect( tdxVector3 _a3_xVect1,
tdxVector3 _a3_xVect2 );
/* ***********************************************************************************/
/* Miscellaneous matrices operations*/
extern void fn_v_SetIdMatrix( tdxMatrix33 _a3a3_xMatrix );
extern void fn_v_SetZeroVector( tdxVector3 _a3_xVector );
extern void fn_v_SetOneVector( tdxVector3 _a3_xVector );
extern void fn_v_SetIdQuater( tdxQuater4 _a4_xQuater );
extern void fn_v_ExpandQuat( tdxQuater4 _a4_xQuatD,
tdxSShortQuater4 _a4_xQuatS );
extern void fn_v_CopyQuat( tdxQuater4 _a4_xQuatD,
tdxQuater4 _a4_xQuatS );
extern void fn_v_CopyVect( tdxVector3 _a3_xVectD,
tdxVector3 _a3_xVectS );
extern void fn_v_CopyMatrix( tdxMatrix33 _a3a3_xMtxD,
tdxMatrix33 _a3a3_xMtxS );
extern void fn_v_MatrixToVecDia( tdxVector3 _a3_xVec,
tdxMatrix33 _a3a3_xMtx );
extern void fn_v_TranMatrix( tdxMatrix33 _a3a3_xMtxD,
tdxMatrix33 _a3a3_xMtxS );
extern void fn_v_TranMatrixOne( tdxMatrix33 _a3a3_xMtxD );
extern unsigned short fn_uw_AngleBetweenVect( tdxVector3 _a3_xVec1,
tdxVector3 _a3_xVec2 );
extern unsigned short fn_uw_AngleBetweenQuat( tdxQuater4 _a4_xQuat1,
tdxQuater4 _a4_xQuat2 );
extern SEB_xReal fn_x_VectorLength( tdxVector3 _a3_xVect );
extern void fn_v_NormalizeVector( tdxVector3 _a3_xVect );
extern SEB_xReal fn_x_NormalizeVector( tdxVector3 _a3_xVect );
extern SEB_xReal fn_x_QuaterLength( tdxQuater4 _a4_xQuat );
extern SEB_xReal fn_x_NormalizeQuater( tdxQuater4 _a4_xQuat );
/* ***********************************************************************************/
/* Matrices computations*/
extern void fn_v_MatrixByVector( tdxVector3 _a3_xVecD,
tdxMatrix33 _a3a3_xMtxS,
tdxVector3 _a3_xVecS );
extern void fn_v_DiaByMatrix( tdxVector3 _a3a3_xMtxD,
tdxVector3 _a3_xVecS,
tdxMatrix33 _a3a3_xMtxS );
extern void fn_v_MatrixByDia( tdxMatrix33 _a3a3_xMtxD,
tdxMatrix33 _a3a3_xMtxS,
tdxVector3 _a3_xVecS );
extern void fn_v_MultMatrix( tdxMatrix33 _a3a3_xMtxR,
tdxMatrix33 _a3a3_xMtx1,
tdxMatrix33 _a3a3_xMtx2 );
extern void fn_v_InvRotDiaRot( tdxMatrix33 _a3a3_xMtxD,
tdxMatrix33 _a3a3_xMtxS,
tdxVector3 _a3_xVecS );
/* ***********************************************************************************/
/* Matrices / Quaternions conversions*/
extern void fn_v_QuatToMatrix( tdxMatrix33 _a3a3_xMtx,
tdxQuater4 _a4_xQuat );
extern void fn_v_MatrixToQuat( tdxQuater4 _a4_xQuat,
tdxMatrix33 _a3a3_xMtx );
/* ***********************************************************************************/
/* Interpolations computations*/
extern void fn_v_InterpolVect( tdxVector3 _a3_xVecD,
tdxVector3 _a3_xVecS1,
tdxVector3 _a3_xVecS2,
register SEB_xReal _xT );
extern void fn_v_InterpolQuat( tdxQuater4 _a4_xQuatD,
tdxQuater4 _a4_xQuatS1,
tdxQuater4 _a4_xQuatS2,
register SEB_xReal _xT );
extern void fn_v_InterpolQuatWithOmega( tdxQuater4 _a4_xQuatD,
tdxQuater4 _a4_xQuatS1,
tdxQuater4 _a4_xQuatS2,
register SEB_xReal _xT,
register signed short _swOmega );
/* ***********************************************************************************/
#endif
#endif

View File

@@ -0,0 +1,84 @@
/* ***********************************************************************************/
/* * "a3x_intn.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_INTN_H
#define A3X_INTN_H
#define C_uwAnimNotInterpolated 0xFFFF
#ifndef A3X_INTN_C
/* ***********************************************************************************/
/* Interpolations computations*/
extern void fn_v_CalculateGeneral( tdstAnim3d *_p_stAnim3d,
unsigned long _ulFrame );
extern tdstEvent *fn_v_GetEventsAddress( tdstAnim3d *_p_stAnim3d,
unsigned long _ulFrame,
tdxHandleToObjectsTablesList _h_ObjectsTablesListElement);/*AR9809 Parameter necessary for U64*/
extern tdstFrame3d *fn_p_GetFramesAddress( tdstAnim3d *_p_stAnim,
unsigned short _uwNumFrame,
unsigned long _ulFrame,
void *p_stSuperObject );
/* ****************************************************************** fn_vUpdateFrame*/
/* Update Frame structure if it wasn't - but matrix isn't update*/
/* Set Linear and Angular Speed (Alloc or Free Matrix) */
/* Set Hierarchy*/
/* Fill Element3D Array : ElementNuber,ElementType,ActiveStatus,ChannelNumber*/
/* */
/* 17/07/98 - Carlos Torres*/
/* ***********************************************************************************/
extern void fn_vUpdateFrame(void * _p_stSuperObject,
tdstFrame3d * _p_stFrame,
tdstAnim3d * _p_stAnim3d,
unsigned short _uwFrame);
/* ************************************************************ fn_vUpdateFrameMatrix*/
/* Update Frame if it wasn't update*/
/* And Update Matrix in Channel Array */
/* if they weren't updated*/
/* or if bolean ForceUpdate is TRUE*/
/* */
/* 17/07/98 - Carlos Torres*/
/* ***********************************************************************************/
extern void fn_vUpdateFrameMatrix(void * _p_stSuperObject,
tdstFrame3d * _p_stFrame,
tdstAnim3d * _p_stAnim3d,
unsigned short _uwFrame,
unsigned char ucForceUpdate,
tdstAChannel * d_stChannelArray);
/* ****************************************************** fn_p_stGetLinearSpeedVector*/
/* Return the Linear Speed Vector */
/* the vector returned is a reference so*/
/* DON'T Modify it or Free it*/
/* if there is no speed, return NULL*/
/* reference remain valid until animation is free*/
/* */
/* 20/07/98 - Carlos Torres*/
/* ***********************************************************************************/
extern MTH3D_tdstVector * fn_p_stGetLinearSpeedVector(tdstAnim3d * _p_stAnim3d,unsigned short _uwFrame);
/* ***************************************************** fn_p_stGetAngularSpeedMatrix*/
/* Return the Angular Speed Matrix */
/* Fill the Matrix if exist and return pointer */
/* If no angular speed return NULL*/
/* The matrix pass in parameter must be allocate by the calling function*/
/* */
/* 20/07/98 - Carlos Torres*/
/* ***********************************************************************************/
extern MTH3D_tdstMatrix * fn_p_stGetAngularSpeedMatrix(tdstAnim3d * _p_stAnim3d,
unsigned short _uwFrame,
MTH3D_tdstMatrix * p_stMatrix);
#ifdef U64
/*AR9902 Function to get the hierarchy couples of an animation even if it isn't loaded into the cache anymore*/
extern tdstCouple* fn_p_stGetOldHieCouples(tdstAnim3d *p_stOldAnim,
unsigned short uwOldFrameNumber);
#endif /*U64*/
#endif
#endif

View File

@@ -0,0 +1,22 @@
/* ***********************************************************************************/
/* * "a3x_load.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_LOAD_H
#define A3X_LOAD_H
#ifndef A3X_LOAD_C
/* ***********************************************************************************/
extern unsigned short fn_uw_LoadAnimV6 ( void *_p_vStartFile );
extern void fn_v_LoadCachedAnimV6 ( char *_p_cDestMem,
void *_p_vStartFile,
unsigned long _ulMaxlength );
/* ***********************************************************************************/
#endif
#endif

View File

@@ -0,0 +1,128 @@
/* ***********************************************************************************/
/* * "a3x_mem.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_MEM_H
#define A3X_MEM_H
#include "a3x_glob.h"
/* ***********************************************************************************/
/* Defines*/
enum
{ eStackA3dGENERAL,
eStackVertexes,
eStackQuaternions,
eStackHierarchies,
eStackNTTO,
eStackOnlyFrames,
eStackChannels,
eStackFrames,
eStackFramesKF,
eStackKeyFrames,
eStackEvents,
eStackMorphData,
/* the following stack are not affected by fn_v_UnclearPreviousLoadedAnims*/
/*eStackFrame3d, */
/*eStackElement3d,*/
eStackNbMax
};
/* ***********************************************************************************/
/* Defines*/
#define M_v_ResetOneStack( uwNumStack ) \
tdstStacks[ (uwNumStack) ].ulPosAlloc= \
tdstStacks[ (uwNumStack) ].ulStackPos= \
tdstStacks[ (uwNumStack) ].ulResetPos
/* ***********************************************************************************/
/* Externs*/
extern tdstStackInfos tdstStacks[];
/*extern tdstAnimLights stAnimLights;*/
extern tdstA3dGENERAL *p_stA3dGENERAL;
extern tdxVector3 *p_a3_xVectors;
extern tdxSShortQuater4 *p_a4_xQuaternions;
extern tdstHierarchy *p_stHierarchies;
extern tdstNTTO *p_stNTTO;
extern tdstOnlyFrame *p_stOnlyFrames;
extern tdstChannel *p_stChannels;
extern tdstFrame *p_stFrames;
extern tdstFrameKF *p_stFramesKF;
extern tdstKeyFrame *p_stKeyFrames;
extern tdstEvent *p_stEvents;
extern tdstMorphData *p_stMorphData; /*AR9803*/
/*extern tdstFrame3d *p_stFrame3d;*/
/*extern tdstElement3d **p_p_stElement3d;*/
extern MTH3D_tdstMatrix *p_stAngularSpeedMatrix;
extern tdstPLA_Hierarchy *p_stHierarchy;
extern tdstElement3d *p_stElement3d;
extern POS_tdstCompletePosition *p_stPosMatrix;
#ifdef U64
extern tdstCuttedAnim *p_stCuttedAnim;
#endif
#ifndef A3X_MEM_C
/* ***********************************************************************************/
extern unsigned long fn_ul_GetStackAlloc( unsigned short _uwNumStack );
extern unsigned long fn_ul_GetStackPos( unsigned short _uwNumStack );
extern void fn_v_AllocateOnStack( unsigned short uwNumStack,
unsigned short uwWantedSize );
extern unsigned long fn_ul_AllocateOnStack( unsigned short _uwNumStack,
unsigned short _uwWantedSize );
extern void fn_v_DeAllocateOnStack( unsigned short _uwNumStack,
unsigned short _uwSize );
/* ************************************************** fn_v_UnclearPreviousLoadedAnims*/
/* Allow to keep the N First Anims when clear*/
/* Must be call after loading the N anims*/
/* 03/07/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_v_UnclearPreviousLoadedAnims( void );
/* ************************************************************ fn_v_ClearLoadedAnims*/
/* Clear Loaded Anims depending on parameter ucClearAll*/
/* False : Until the position set by fn_v_UnclearPreviousLoadedAnims*/
/* True : ALL anims*/
/* 03/07/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_v_ClearLoadedAnims(unsigned char ucClearAll);
/* **************************************************************** fn_v_InitInterpol*/
/* Make allocation and init structure for anim management*/
/* Must be called only once*/
/* 03/07/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_v_InitInterpol( void );
/* **************************************************************** fn_vSetStackSize*/
/* Set the stack size */
/* Must be called only once for all stack to configure it*/
/**/
/* 27/10/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_vSetStackSize(unsigned short uwNumStack,unsigned long ulSize);
#ifndef RETAIL
/* ***************************************************************** fn_vAnimStackLog*/
/* Make a log of Memory used for each stack in an open file*/
/**/
/* 11/12/98 Carlos Torres*/
/* ***********************************************************************************/
extern void fn_vAnimStackLog(FILE * fLogFile);
#endif /* RETAIL */
/* ***********************************************************************************/
#endif
#endif

View File

@@ -0,0 +1,53 @@
/* ***********************************************************************************/
/* * "a3x_pref.h" **/
/* * Written by : S<>bastien Rubens **/
/* * Tabulations : 4 char **/
/* ***********************************************************************************/
#ifndef A3X_PREF_H
#define A3X_PREF_H
/* ***********************************************************************************/
/* Main Defines*/
#define PC
#define NoInvalid
#define DIR_EXE "x:\\cpa\\exe\\main\\"
#define DIR_FAMILIES "gamedata\\World\\Levels\\_common\\Families"
#define DIR_ANIMS "World\\graphics\\anims"
#define DIR_DATA "GameData"
#define REL_DIR_FAMILY "World\\Levels\\_common\\Families"
/*#define A3xDebug // A3x debug version ?*/
/*#define A3X_CUT // Cutted animations*/
/*#define MaxRAMSizeOfAnim 10240 // 10 Ko*/
/*#define A3X_AcpLight // If you want a light version of ACP structures*/
#define A3X_PC /* If you are on PC computer (nothing else)*/
#ifndef A3X_PC /* do not use with PC*/
#define A3X_N64 /* We are on N64 ?*/
#endif
#ifdef A3X_BINARISATION
#define SEB_xReal double /* For binarisation*/
#else
#define SEB_xReal float /* For realtime*/
#endif
/*#define A3X_CacheIsUsed // If you use cache*/
#ifndef A3X_CacheIsUsed /* do not use with cache !*/
/*ANNECY TQ 22/07/98{*/
/* We no longer use the static tables*/
/*#define A3X_StaticTables // If you use static tables (or alloc tables)*/
/*ENDANNECY TQ}*/
#endif
/* ***********************************************************************************/
#endif

View File

@@ -0,0 +1,10 @@
#ifdef _DEBUG
#define _DEBUG_STRING_FOR_PLA_
#endif
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#define LEN_DEBUG_STRING 80

View File

@@ -0,0 +1,178 @@
/*=========================================================================
* PlayAnim.h : Contain the CPA's animations player functions.
*
*
* Version 0.0
* Creation date 21/10/96 Sebastien DAVID
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#ifndef _PLAYANIM_H_
#define _PLAYANIM_H_
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM\STRUCTUR\anim_s.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#include "GAM/Header.h"
/*============*/
/* CONSTANTES */
/*============*/
#define PLA_C_NbClocks 16
/*ANNECY CT 17/02/98{*/
#define PLA_C_wRandomFrame -32768
/*ENDANNECY CT}*/
/*====================*/
/* EXTERNs of GLOBALs */
/*====================*/
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN short PLA_g_a_wClock[PLA_C_NbClocks];
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#define __PLA_NB_MAX_SUPOBJ__ 512L /* used in release to allocate heap, and in debug to set limit*/
#define __PLA_LIM_SUPOBJ_ALLOC__ 512L /* used in debug to allocate heap*/
/*===========*/
/* FONCTIONS */
/*===========*/
/* Olivier Didelot le 1 juillet 1998*/
/*void PLA_fn_vDesInitAllChildOfCharacterByEngineobject(struct tdstEngineObject_ * p_stEngineObject);*/
extern tdstFrame3d *fn_p_GetFramesAddress(tdstAnim3d *_p_stAnim3d, unsigned short _uwNumFrame, unsigned long _ulFrame,void *p_stSuperObject);
extern ACP_tdxBool PLA_fn_bDoAnimPlayerForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject, ACP_tdxBool bNoDisplay , ACP_tdxBool _bHandleSkippedEventsIfRelevant);
extern CPA_EXPORT void PLA_fn_vInitAllChildInHeapNewAnim(HIE_tdxHandleToSuperObject p_stSuperObject
, struct tdstAnim3d_ *p_stCurrentAnim
, unsigned short _uwFrameNumber );
extern CPA_EXPORT void PLA_fn_vDesInitAllChildOfCharacter(HIE_tdxHandleToSuperObject p_stSuperObject,struct tdstEngineObject_ * p_stObject);
extern void PLA_fn_vRefreshGlobalMatrixUnderCharacter(HIE_tdxHandleToSuperObject _hSprObj);
extern void PLA_fn_vRefreshGlobalMatrixOfAnimsHierarchy(HIE_tdxHandleToSuperObject _hSprObj);
extern CPA_EXPORT ACP_tdxBool PLA_fn_bSetNewStateWithRandom(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
extern CPA_EXPORT ACP_tdxBool PLA_fn_bSetNewState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState, ACP_tdxBool _bForce , ACP_tdxBool _bHandleSkippedEventsIfRelevant);
/*ANNECY CT 17/02/98{*/
extern CPA_EXPORT void PLA_fn_vSetCurrFrame(HIE_tdxHandleToSuperObject p_stSuperObject,short _wFrame);
extern CPA_EXPORT unsigned short PLA_fn_uwGetNbFrameInCurrAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
extern CPA_EXPORT unsigned short PLA_fn_uwGetCurrFrameOfAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
/*ENDANNECY CT}*/
/*ANNECY CT 06/02/98{*/
extern CPA_EXPORT BOOL PLA_fn_bSetNewStateFluid(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
/*ENDANNECY CT}*/
extern CPA_EXPORT BOOL PLA_fn_bInitNewStateWithRandom(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
extern CPA_EXPORT BOOL PLA_fn_vInitNewState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_State);
extern CPA_EXPORT BOOL PLA_fn_bTestNewState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_WantedState);
extern CPA_EXPORT BOOL PLA_fn_bTestCurrentAction(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_FirsStateOfAction);
extern CPA_EXPORT void PLA_fn_vModifyCurrentState(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState h_State);
/* tmp DVD*/
extern void PLA_fn_vInitNewAction(HIE_tdxHandleToSuperObject p_stSuperObject,unsigned short wAction);
void PLA_fn_vSetNewSubAnim(HIE_tdxHandleToSuperObject p_stSuperObject
,unsigned char ucElement3D
,tdxHandleToState h_TmpState);
void PLA_fn_vKillSubAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
void PLA_fn_vAllocateSubAnimObjHeap(void);
extern void PLA_fn_vCreateSupObjHeap(void);
/*ANNECY BBB: fonctions priv<69>es qui n'ont rien <20> foutre ici!*/
/*unsigned long PLA_fn_ulFindNextFreeSupObj(void);*/
unsigned long PLA_fn_vInitNewSubAnimInHeap( unsigned char ucElement
, struct tdstState_ *p_stCurrentState );
/*void PLA_fn_vDesInitOneSubAnimInHeap(struct tdstSubAnim3d_ *p_stSubAnim);*/
void PLA_fn_vInitControlMatrix(HIE_tdxHandleToSuperObject p_stSuperObject);
/* void PLA_fn_vAbsoluteTranslationOfModule( HIE_tdxHandleToSuperObject p_stSuperObject
, MTH3D_tdstVector *p_stControlTranslationVertex ); */
/* tmp DVD*/
extern BOOL PLA_fn_bTestIfEndOfAction(HIE_tdxHandleToSuperObject p_stSuperObject);
BOOL PLA_fn_bTestIfEndOfAnim(HIE_tdxHandleToSuperObject p_stSuperObject);
/* Access Function to Speed. CGHT 12/02/97*/
struct MTH3D_tdstVector_ * PLA_fn_stGetLinearSpeedVector(HIE_tdxHandleToSuperObject p_stSuperObject,short sLastFrame);
struct MTH3D_tdstMatrix_ * PLA_fn_stGetAngularSpeedMatrix(HIE_tdxHandleToSuperObject p_stSuperObject,short sLastFrame);
void PLA_fn_vComputeNextFrame(HIE_tdxHandleToSuperObject p_stSuperObject);
ACP_tdxBool PLA_fn_bSkipCurrentFrame(HIE_tdxHandleToSuperObject p_stSuperObject);
/* MR1306*/
void PLA_fn_vMoveTakenObject(HIE_tdxHandleToSuperObject p_stSuperObject);
extern CPA_EXPORT void PLA_fn_vDoFrame(tdstAnim3d *p_stCurrentAnim,unsigned short uwCurrentFrame, HIE_tdxHandleToSuperObject p_stSuperObject);
extern CPA_EXPORT void PLA_fn_vOverWriteMatrixWithUCC(HIE_tdxHandleToSuperObject p_stSuperObject);
extern CPA_EXPORT void PLA_fn_vUpdateTransparencyForModules(HIE_tdxHandleToSuperObject p_stSuperObject) ;
/* MR3108*/
/*extern CPA_EXPORT tdstAnimLights *PLA_fn_pstGetLightsOfAnim(HIE_tdxHandleToSuperObject hCharacter);*/
extern void fn_vRemoveAllAnimLightsFromSectorList(HIE_tdxHandleToSuperObject hCharacter);
/* ONLY FOR EDITOR*/
extern CPA_EXPORT BOOL PLA_fn_bDoFirstInitOfAnimPlayerForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject, tdstAnim3d *p_stNewanim);
extern CPA_EXPORT void PLA_fn_bDoOffsetFirstInitForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject);
/*----------------*/
/*ANNECY BBB: fonctions priv<69>es qui n'ont rien <20> foutre ici!*/
/*void PLA_fn_vCreateMatrixHeap(void);*/
/*unsigned long PLA_fn_ulFindNextFreeMatrix(void);*/
extern CPA_EXPORT void GAM_fn_vAddMorphData(tdstAnim3d *_p_stAnim, unsigned long _ulChannelNumber,
unsigned short _uwFrameNumber,unsigned char _ucMorphingAmount,unsigned char _ucTarget);
/*AR980325 For PC compilation*/
tdstFrame3d *fn_p_GetFramesAddress(tdstAnim3d *_p_stAnim3d, unsigned short _uwNumFrame, unsigned long _ulFrame,void *p_stSuperObject);
unsigned char GAM_fn_ucGetMorphAmount(tdstAnim3d *_p_stAnim, unsigned long _ulChannelNumber, unsigned short _uwFrameNumber) ;
unsigned char GAM_fn_ucGetMorphTarget(tdstAnim3d *_p_stAnim, unsigned long _ulChannelNumber, unsigned short _uwFrameNumber) ;
void PLA_fn_vForceRegenerationWhenBlockInNoState_EndOfAction(HIE_tdxHandleToSuperObject p_stSuperObject); /*AR9805*/
void PLA_fn_vForceRegenerationWhenSkip(HIE_tdxHandleToSuperObject p_stSuperObject); /*AR9805*/
#ifdef ACTIVE_EDITOR
void fn_vCheckModuleAccessGam(HIE_tdxHandleToSuperObject hPerso, unsigned char cChannel);
#endif
/*AR9806 New heap management by gizmo*/
void PLA_fn_vInitMatrixHeap(void);
void PLA_fn_vCreateMatrixHeap(void);
void PLA_fn_vInitSupObjHeap(void);
void PLA_fn_vCreateSupObjHeap(void);
void PLA_fn_vInitHeaps(void);
void PLA_fn_vCreateAndInitHeaps(void);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* _PLAYANIM_H_ */

View File

@@ -0,0 +1,144 @@
/*=========================================================================
* PlayEvts.h : This module contain all functions used to play events
* This is a part of the Game project.
*
* Version 1.0
* Creation date 6/11/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__PLAYEVTS_H__)
#define __PLAYEVTS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
/******************************************/
#include "GAM/Header.h"
#define C_ucNormal 0
#define C_ucReverse 1
#define C_ucStopEvent 2
void fn_vInitAllEvents(HIE_tdxHandleToSuperObject p_stSuperObject,unsigned short uwFirstFrame);
void fn_vDesInitAllEvents(HIE_tdxHandleToSuperObject p_stSuperObject,tdxHandleToState hNextState,BOOL bStopEvents);
void fn_vPlayEventsSinceLastOneNoLoop(HIE_tdxHandleToSuperObject p_stSuperObject );
void fn_vPlayLastEventsBeforeRestart(HIE_tdxHandleToSuperObject p_stSuperObject );
void fn_vPlayEvent( struct tdstEvent_ * p_stEvent, unsigned char ucMode ,HIE_tdxHandleToSuperObject p_stSuperObject);
unsigned short fn_uwGetNbEngineFrameSinceLastMechEvent(HIE_tdxHandleToSuperObject p_stSuperObject);
/*-----------------------------------------------------------------------------
* Description : Get the type of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* Output : the type
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
unsigned char GAM_fn_ucGetTypeOfEvent(tdstEvent* _p_stEvent);
tdstEvent *fn_p_GetEventsAddress(tdstAnim3d *_p_stAnim3d,
unsigned long _ulFrame,
tdxHandleToObjectsTablesList _h_ObjectsTablesListElement); /*AR9809 Parameter necessary for U64*/
/*-----------------------------------------------------------------------------
* Description : Get the pointed event of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* Output : the type
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
void* GAM_fn_p_xGetEventOfEvent(tdstEvent* _p_stEvent);
/*-----------------------------------------------------------------------------
* Description : Get the address pointed event of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* Output : the address
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
void** GAM_fn_p_xGetAdressOfEventOfEvent(tdstEvent* _p_stEvent);
/*-----------------------------------------------------------------------------
* Description : Set the pointed event of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the animation event
* _p_xRealEvent : pointed event
* Output :
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
void GAM_fn_vSetEventOfEvent(tdstEvent* _p_stEvent,void* _p_xRealEvent);
/*-----------------------------------------------------------------------------
* Description : Get the first call field of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* Output : the first call
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
unsigned char GAM_fn_ucGetFirstCallOfEvent(tdstEvent* _p_stEvent);
/*-----------------------------------------------------------------------------
* Description : Get the first call field of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* _ucFirstCall : The first call field
* Output :
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
void GAM_fn_vSetFirstCallOfEvent(tdstEvent* _p_stEvent,unsigned char _ucFirstCall);
/*-----------------------------------------------------------------------------
* Description : Get the period field of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* Output : the period
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
unsigned char GAM_fn_ucGetPeriodOfEvent(tdstEvent* _p_stEvent);
/*-----------------------------------------------------------------------------
* Description : Get the first call field of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* _ucPeriod : The period
* Output :
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
void GAM_fn_vSetPeriodOfEvent(tdstEvent* _p_stEvent,unsigned char _ucPeriod);
/*-----------------------------------------------------------------------------
* Description : Get the binary event id field of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* Output : the period
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
unsigned long GAM_fn_ulGetBinaryEventIdOfEvent(tdstEvent* _p_stEvent);
/*-----------------------------------------------------------------------------
* Description : Get the first call field of an event (V5 or V6 format)
*-----------------------------------------------------------------------------
* Input : _p_stEvent : pointer to the event
* _ulBinaryEventId : The binary event id
* Output :
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
void GAM_fn_vSetBinaryEventIdOfEvent(tdstEvent* _p_stEvent,unsigned long _ulBinaryEventId);
#endif /* __PLAYEVTS_H__ */

View File

@@ -0,0 +1,83 @@
/*=========================================================================
* 3DOSLkTb.h : Link tables structures
*
*
*
*
* Version 1.0
* Creation date 25/03/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__3DOSLkTb_H__)
#define __3DOSLkTb_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
typedef struct tdst3DOSLinkTable_
{
/**** Those link-tables are for the editors and for the engine ****/
#if !defined(U64)
SCR_tdst_Link_Table stCharacter;
SCR_tdst_Link_Table stState;
SCR_tdst_Link_Table stAnimation;
#endif /* U64 */
/**** Familly, Model and Personnal engine object's types (used in abjtype.c) ****/
/*
unsigned long ulNumberOfFamily;
SCR_tdst_Link_Table stFamilyType;
unsigned long ulNumberOfModel;
SCR_tdst_Link_Table stModelType;
unsigned long ulNumberOfPersonal;
SCR_tdst_Link_Table stPersonnalType;
*/
/**** Those link-tables are only used by the editors ****/
#if !defined(U64)
SCR_tdst_Link_Table stACZ;
#else /* U64 */
char cNotEmpty;
#endif /* U64 */
#if !defined(U64)
#if defined(ACTIVE_EDITOR)||defined(BIN_SaveBin)
SCR_tdst_Link_Table stCharacterZone;
SCR_tdst_Link_Table stLipsSynchroList;
/* JO 06/11/97*/
SCR_tdst_Link_Table stPrtGenLinkTable;
SCR_tdst_Link_Table stPrtSrcLinkTable;
SCR_tdst_Link_Table stPrtSysLinkTable;
SCR_tdst_Link_Table stPrtSysSpriteLinkTable;
SCR_tdst_Link_Table stPrtEnvLinkTable;
SCR_tdst_Link_Table stZDXList;
SCR_tdst_Link_Table stACZList;
#endif /* ACTIVE_EDITOR || BIN_SaveBin */
#endif /* U64 */
} tdst3DOSLinkTable;
#ifndef _FIRE_DEADCODE_U64_
EXTERN CPA_EXPORT tdst3DOSLinkTable g_st3DOSLinkTable;
#endif /* _FIRE_DEADCODE_U64_ */
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __3DOSLkTb_H__ */

View File

@@ -0,0 +1,188 @@
/*=========================================================================
* Anim_s.h : Define the engine anim's structure.
* This is a part of the Game project.
*
* Version 2.0
* Creation date 09/08/96
* Revision date 24/10/96 DVD (Gizmo)
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__ANIM_S_H__)
#define __ANIM_S_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "ACP_Base.h" /*AR9808 Must be included before all includes*/
#include "POS.H"
#include "GLI.H"
#include "SCT.H"
#include "GAM/Header.h"
#include "../PlayAnim/PLA_dbg.h"
#include "GAM/Macros.h"
#define C_ucSOUND_EVENT 0
#define C_ucMECHANIC_EVENT 1
#define C_ucGENERATE_EVENT 2
#define C_ucGENERIC_EVENT 3
#define C_ucNeverPlay 255
/* MR1206*/
#define C_ucTAKE_OBJECT_EVENT 1
#define C_ucTAKE_IN_OBJECT_EVENT 2
#define C_ucTAKE_OUT_OBJECT_EVENT 3
#define C_ucDROP_OBJECT_EVENT 4
#define C_ucTHROW_OBJECT_EVENT 5
/*ANNECY VL 26/11/97{*/
#define C_ucEvent_User0 6
#define C_ucEvent_User1 7
#define C_ucEvent_User2 8
#define C_ucEvent_User3 9
#define C_ucEvent_User4 10
#define C_ucEvent_User5 11
#define C_ucEvent_User6 12
#define C_ucEvent_User7 13
/*ENDANNECY VL }*/
/* structure describing a all events*/
typedef struct tdstEventInTable_
{
void* p_xEvent; /* pointer to the event*/
unsigned char ucTypeOfEvent;
unsigned char ucPriority;
unsigned char ucFirstCall; /* number of anim loop before event*/
unsigned char ucPeriod; /* number of loop after FirstCall*/
#ifndef U64
unsigned long ulBinaryEventId; /* used for the binarisation only*/
#endif
} tdstEventInTable;
typedef struct tdstEvent_
{
tdstEventInTable* p_stfEventInTBL;
unsigned short usEventNumberInTBL;
unsigned short uwFrameNumber;
unsigned short uwChannelNumber;
} tdstEvent;
/*
* structure describing a 3d element
*/
M_BeginDeclareEnumerate( tdeTypeOfElement )
TE_GraphicObject = 0,
TE_SubAnimation,
TE_EmptyObject,
TE_Event,
TE_Light, /* MR2908*/
TE_Fake,
TE_Undefined
M_EndDeclareEnumerate( tdeTypeOfElement, unsigned char )
/* structure Couple (Child,Father) for Hierarchy*/
typedef struct tdstCouple_
{
unsigned short wChild,wFather;
} tdstCouple;
/* structure Hierarchy*/
typedef struct tdstPLA_Hierarchy_
{
unsigned long ulNbOfCouples;
tdstCouple * d_stCouples;
} tdstPLA_Hierarchy;
#include "Specif/Elem_3d.h"
struct tdstAnim3d_;
typedef struct tdstFrame3d_
{
/**** array of 3d element structure ****/
struct tdstElement3d_ *p_stArrayOfElts3d;
#ifndef U64
struct MTH3D_tdstMatrix_ *p_stAngularSpeedMatrix;
struct MTH3D_tdstVector_ *p_stLinearSpeedVector;
#endif /*U64*/
tdstPLA_Hierarchy stHierarchy;
/* ref of the information of the frame*/
struct tdstAnim3d_ * p_stAnim;
unsigned short uwFrameNumber;
unsigned char ucMatrixUpdated;
unsigned char ucCacheEntry; /*AR9902 This is to be sure that the animation is still loaded into the same cache entry*/
} tdstFrame3d;
typedef struct stMorphData
{
unsigned char ucTarget; /* index of the target PO into the objects table*/
unsigned char ucMorphingAmount; /* ratio for the morphing*/
unsigned short uwChannelNumber;
unsigned short uwFrameNumber;
unsigned short uwAlign;
} tdstMorphData;
/*
* structure describing an animation sequence
*/
typedef struct tdstAnim3d_
{
#ifdef _DEBUG_STRING_FOR_PLA_
char szAnimName[LEN_DEBUG_STRING];
#endif
/**** Number of frames in the animation ****/
unsigned short uwNumberOfFrames;
unsigned char ucFrameRate;
unsigned char ucMaxNumberOfElements; /* total number of channels for this anim*/
/**** point to the first event (sound or other) ****/
struct tdstEvent_ *d_stAnimEvent;
/* POS_tdstCompletePosition stOffsetMatrix;*/
/* AR9811 Only the translation of this position is used*/
/* I have replaced it by a simple vector*/
MTH3D_tdstVector stOffsetMatrix;
/* BOOL bCompressedAnim;*/
/* MR2908*/
/* tdstAnimLights *p_stLights; // Array of lights*/
/**** morph array *** AR980304*/
tdstMorphData *d_stMorphDataArray; /* WARNING ! FOR PC, A3B VERSION MUST BE CHANGED !!!*/
unsigned short uwNumOfA3dGENERAL; /* For interpolation*/
unsigned char ucNumberOfEvents;
unsigned char ucUnused; /* alignment*/
} tdstAnim3d;
/*
* structure describing an sub-animation sequence
*/
/*typedef struct tdstSubAnim3d_
{
// current animation infos
unsigned short uwCurrentFrame; // current frame in the current animation
unsigned char ucRepeatAnimation; // how many animation after this one finished
unsigned char ucElement;
struct tdstState_ *p_stCurrentState;
} tdstSubAnim3d;
*/
#endif /* !__ANIM_S_H__ */

View File

@@ -0,0 +1,247 @@
/*=========================================================================
* EngMode.h : Define the engine modes structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
/*
*=======================================================================
Modifications: New LST2_M_??? Macros / Micha<68>l / 070297
*=======================================================================*/
#if !defined(__ENGMODE_H__)
#define __ENGMODE_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#ifdef __cplusplus
extern "C" {
#endif
#include "TMR.h"
#include "GAM/Header.h"
#include "GAM/GAMHandl.h"
#define C_NumberOfCounter 16
M_BeginDeclareEnumerate(tdeEngineMode)
EM_ModeInvalid = 0,
EM_ModeStartingProgram, /* first init*/
EM_ModeStoppingProgram, /* last desinit*/
EM_ModeEnterGame, /* init game loop*/
EM_ModeQuitGame, /* desinit game loop*/
EM_ModeEnterLevel, /* init level loop*/
EM_ModeChangeLevel, /* desinit level loop*/
EM_ModeDeadLoop, /* init dead loop*/
EM_ModePlayerDead, /* desinit dead loop*/
EM_ModePlaying, /* playing game*/
/* FBF {*/
/*EM_ModeEnterMenu, // Init the menu
EM_ModeMenu, // In the start menu
EM_ModeQuitMenuToEnterGame, // Go to the game from the menu
EM_ModeEnterMenuWhenPlaying, // Init the menu when playing
EM_ModeEnterMenuWhenPlayingWithoutPause, // Init the menu by AI
EM_ModeMenuWhenPlaying, // In the menu when playing
EM_ModeMenuWhenPlayingWithoutPause, // In the menu when playing without pause
EM_ModeResumeGameFromMenu, // Return to the game from the menu
*/
/* FBF }*/
NbTotalEngineMode
M_EndDeclareEnumerate(tdeEngineMode, unsigned char)
M_BeginDeclareEnumerate(tdeInputMode)
IM_Normal,
IM_Commands,
IM_NumberOfMode
M_EndDeclareEnumerate(tdeInputMode, unsigned char)
/**** This enum is used as a bitfield ****/
M_BeginDeclareEnumerate(tdeDisplayFixMode)
DFM_DisplayAll = 0xff,
DFM_DisplayHitPoints = 0x01,
DFM_DisplayGameSave = 0x02,
DFM_DisplayNothing = 0x00,
DFM_NumberOfMode
M_EndDeclareEnumerate(tdeDisplayFixMode, unsigned char)
/*********************************************************************/
/**** This structures define the differents mode or state of play ****/
/**** and the options of game ****/
/*********************************************************************/
typedef struct tdstEngineTimerStructure_
{
unsigned long ulTrameNumber; /* Number of the frame */
short sTimerHandle;
unsigned long ulCurrentTimerCount; /* Current trame timer in msec*/
unsigned long ulDeltaTimerCount; /*Between two trames in msec*/
unsigned long a_ulCounter[C_NumberOfCounter]; /*Other frequencies counters*/
unsigned long ulUsefulDeltaTime;/* computed time in msec*/
unsigned long ulPauseTime; /* When engine is in pause */
MTH_tdxReal xFrameLength; /* frame length in s ( 60Hz -> 1/60 s ) */
#ifndef U64
struct _stTimerCount stRealTimeCount; /* Current trame timer in tick*/
struct _stTimerCount stPauseTime;
unsigned long ulTickPerMS;
#endif /* U64 */
} tdstEngineTimerStructure;
typedef struct tdstLanguageStructure_
{
char szLanguageCode[20];
char szLanguageText[20];
}tdstLanguageStructure;
#define M_ulGetUsefulDeltaTimeInMilliSeconds(stTimer) ((stTimer).ulUsefulDeltaTime)
#define M_xGetUsefulDeltaTimeInSeconds(stTimer)\
(MTH_M_xDiv(MTH_M_xLongToReal(stTimer.ulUsefulDeltaTime),\
MTH_M_xFloatToReal(1000.f)))
#define M_xGetFrameLength(stTimer) ((stTimer).xFrameLength)
/*ANNECY BBB 24/10/97 {*/
/*#define C_ucMaxNbSubLevels 10*/
/*ENDANNECY BBB 24/10/97 }*/
#define _MAX_NAME_LEVEL 30
typedef struct tdstEngineStructure_
{
tdeEngineMode eEngineMode;
char szLevelName[_MAX_NAME_LEVEL];
char szNextLevelName[_MAX_NAME_LEVEL];
char szFirstLevelName[_MAX_NAME_LEVEL];
/*ANNECY BBB 24/10/97 {*/
/*char szSubLevelName[C_ucMaxNbSubLevels][_MAX_PATH];*/
/*ENDANNECY BBB 24/10/97 }*/
/*char szCreditsLevelName[_MAX_PATH];*/
/*char szNextLevelPositionPersoName[50];*/
/*char szNextLevelPositionCameraName[50];*/
tdeInputMode eInputMode;
tdeDisplayFixMode eDisplayFixMode;
unsigned long ulDisplayMode;
/*unsigned char bSkipMainMenu;*/
tdstEngineTimerStructure stEngineTimer;
/* XB 23/06/99 */
/* not used in N64 engine */
#ifndef U64
GLD_tdhDevice hGLDDevice;
GLD_tdhViewport hGLDViewport;
#endif /* U64 */
/* End XB 23/06/99 */
GLD_tdstViewportAttributes stViewportAttr;
struct GLI_tdstCamera_ *p_stGameViewportCamera;
/* XB 23/06/99 */
/* not used in N64 engine */
#ifndef U64
void * hDrawSem;
#endif /* U64 */
/* End XB 23/06/99 */
GLD_tdhViewport hGLDFixViewport;
GLD_tdstViewportAttributes stFixViewportAttr;
GLI_tdstSpecificAttributesFor3D stFixAttributes3D;
struct GLI_tdstCamera_ *p_stFixCamera;
/* camera's management */
tdxHandleToViewportManagement a_hViewportArray;
LST2_M_DynamicAnchorDeclaration(tdxHandleToNodeCamera) hCameraList;
/* *************** */
LST2_M_DynamicAnchorDeclaration(tdxHandleToFamilyList) hFamilyList;
LST2_M_DynamicAnchorDeclaration(MC_tdxHandleToMainCharacterNode) hMainCharacterList;
LST2_M_DynamicAnchorDeclaration(tdxHandleToAlwaysActiveCharacterNode) hAlwaysActiveCharactersList;
/* *************** */
HIE_tdxHandleToSuperObject h_StdCamCaracter; /* Standard camera caracter description */
tdstLanguageStructure *p_stLanguageTable;
/*FIL_tdxHandleToFileNameList hGameSavedNameList;*/
FIL_tdxHandleToFileNameList hLevelNameList;
/* To restore positions after resurection*/
POS_tdstCompletePosition stMainCharacterPosition;
POS_tdstCompletePosition stMainCameraPosition;
long lSubMapNumber;
unsigned char bEngineIsInPaused;
unsigned char bEngineHasInPaused;
char a_szLevelName[80][_MAX_NAME_LEVEL];
unsigned char ucNumberOfLevels;
unsigned char ucCurrentLevel;
/* used to know which level we come from, if relevant: should be initialized to 0 at program start*/
/*then only modified by AI calls or level change requests (no save required)*/
unsigned char ucPreviousLevel;
unsigned char ucExitIdToQuitPrevLevel;
unsigned char ucLevelGlobalCounter;
ACP_tdxBool xDemoMode; /*AR9807*/
unsigned char ucCurrentLanguage; /*for multilanguage texts*/
unsigned char ucNbLanguages; /*for multilanguage texts*/
ACP_tdxBool bEngineFrozen; /* if true, unprotected characters are not treated in the engine loop*/
/* To restore positions after resurection*/
ACP_tdxBool bResurection;
/* Begin Shaitan ModeLook*/
/* For camera mode*/
char cCameraMode;
/* End Shaitan ModeLook*/
} tdstEngineStructure;
/* Begin Shaitan ModeLook*/
#define C_CamModeNormal 0
#define C_CamModeLook 1
/* End Shaitan ModeLook*/
EXTERN CPA_EXPORT struct tdstEngineStructure_ g_stEngineStructure;
/* Globals varaibles for binarisation*/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN CPA_EXPORT char g_cIsLevelOk;
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN CPA_EXPORT char g_cMemMode;
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN CPA_EXPORT char g_a64_cGameDataDirectory[64];
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
EXTERN CPA_EXPORT char g_cUseBinary;
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/*
0 : Normal Memory
1 : Binary Memory
2 : Binary Memory for pass 1
3 : Binary Memory for pass 2
*/
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* !__ENGMODE_H__ */

View File

@@ -0,0 +1,311 @@
/*=========================================================================
* ErrGame.h : Management of the errors for GAME
*
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__ERRGAME_H_)
#define __ERRGAME_H_
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#ifdef __cplusplus
extern "C" {
#endif
#include "GAM/Header.h"
#define __FATAL_ERR_GAME__
#define __INFORMATION_ERR_GAME__ /**** Treat as a level 1 warning ****/
#define __WARNING_ERR_GAME__ /**** Treat as a level 2 warning ****/
enum e_uwGameErrNumber
{
E_uwGameFatalErr,
#if defined(__FATAL_ERR_GAME__)
/**** Error's errors ****/
E_uwGameFatalErrorNotAFatalError,
E_uwGameInformationErrorIsNotAInformationError,
E_uwGameWarningErrorIsNotAWarningError,
/**** Memory's errors ****/
E_uwGameInitMemoryCheckAlign,
E_uwGameGameMallocBadBlock,
E_uwGameGameMallocBadSize,
E_uwGameGameMallocAlloc,
E_uwGameIncreaseNumberOfSource,
/**** Object's errors ****/
E_uwGameScriptCallBackStateActionsAlreadyRead,
E_uwGameInitAllObjectTreeNullPointer,
E_uwGameInitAllObjectTreeBadInitType,
E_uwGameInitDesinitOneObjectNullPointer,
E_uwGameMiniStructAllocAlreadyAlloc,
E_uwGameMiniStructObjectNull,
E_uwGameMiniStructNull,
E_uwGameCineInfoSuperObjectNull,
/**** Engine's errors ****/
E_uwGameChooseTheGoodInitInvalidMode,
E_uwGameChooseTheGoodDesinitInvalidMode,
E_uwGameChangeEngineModeNewMode,
E_uwGameExploreWorldTreeInvalidSuperObject,
E_uwGameVerifySomeProgramVariableHandleFunction,
E_uwGameLanguage,
E_uwGameLanguageDefinition,
/**** Basic functions errors ****/
E_uwGameAToIBadEntry,
E_uwGameAToFBadEntry,
/**** Script errors ****/
E_uwGameScriptBadNumberOfArg,
E_uwGameScriptBadIPTLinkNumber,
/**** Animations ****/
E_uwGameErrorWhileLoadingAnimation,
E_uwGameBadAnimationGeneralInfo,
E_uwGameBadFrameNumber,
E_uwGameBadChannelNumber,
E_uwGameTooManyAnimations,
E_uwGameCurrentActorNotSet,
E_uwGameNoMorePLAObj,
E_uwGamePLA_NoWantedState,
E_uwGameStateNotInLinkTable,
E_uwGameScriptCallBackCreateNewStateBadNextState,
E_uwGameScriptCallBackCreateNewStateBadTargetState,
E_uwGameScriptCallBackCreateNewStateBadStateToGo,
/**** ViewPort errors ****/
E_uwGameCantCreateFixViewPort,
E_uwGameCantClearViewPort,
E_uwGameCantWriteToViewPort,
E_uwGameCantWriteToViewPortFinished,
E_uwGameCantFlipDevice,
/**** Always errors ****/
E_uwGameKillAlwaysByPersonalType,
/**** Dynamics ****/
E_uwGameDynamScriptCallBackBadParameter,
/**** SubMap ****/
E_uwGameUnCoherentSubMap,
#endif /* __FATAL_ERR_GAME__ */
E_uwGameStartOfWarning,
#if defined(__WARNING_ERR_GAME__)
/**** Engine's warning ****/
E_uwGameChangeEngineModeOldMode,
/**** memory's warning ****/
E_uwGameMallocUserDataAlreadyAllocated,
/**** Input's warning ****/
E_uwGameReadInputKeyboard,
E_uwGameReadInputJoystick,
/**** Object's warning ****/
E_uwGameAddAnAlwaysModelAlreadyExist,
E_uwGameAllocateAlwaysUnknownModel,
E_uwGameAllocateAlwaysNoMorePlace,
E_uwGameKillOneEngineObjectInvalid,
E_uwGameFreeEngineSuperObjectNoCharacter,
E_uwGameFirstInitFamilyStructureNoNull,
E_uwGameFreeUnknownSuperObjectType,
E_uwGameSaveOneEngineCharacters,
E_uwGameSaveAllEngineCharacters,
E_uwGameCreateSOFromEngineObjectAndParentBadSO,
E_uwGameChangeOfMechanicsDuringOneFrame,
E_uwGameBadNumberOfStatesInActivationList,
E_uwGamePLA_BadInitialState,
/*E_uwGameProblemsWithStartingPosition,*/
E_uwGameDebugDynamicAllocation,
#endif /* __WARNING_ERR_GAME__ */
E_uwGameStartOfInformationWarning,
#if defined(__INFORMATION_ERR_GAME__)
/**** Input's information ****/
E_uwGameInitInputKeyboard,
E_uwGameInitInputJoystick,
/**** Memory's information ****/
E_uwGameGameFreeNullPointer,
/**** Object's information ****/
E_uwGameInitOneObjectInvalidObject,
E_uwGameKillAlwaysByRankInvalidObject,
/**** Script's information ****/
E_uwGameScriptCallBackDescriptionUnknownAction,
E_uwGameScriptCallBackDescriptionScriptError,
/**** Sector errors ****/
E_uwGameCurrentSectorInOwnSoundList,
E_uwGameSectorTwiceInSoundList,
E_uwGameCurrentSectorInOwnActivityList,
E_uwGameSectorTwiceInActivityList,
E_uwGameCurrentSectorInOwnCollisionList,
E_uwGameSectorTwiceInCollisionList,
E_uwGameCurrentSectorInOwnGraphicList,
E_uwGameSectorTwiceInGraphicList,
#endif /* __INFORMATION_ERR_GAME__ */
E_uwGameErrNumber,
};
/*------------------*/
/* Global Variables*/
/*------------------*/
EXTERN unsigned char g_ucGameModuleId /* number of identification of the Game module*/
#if defined(D_GameGlobals)
= C_ucModuleNotInitialized
#endif /* D_GameGlobals */
;
#if defined(__ERROR_STRINGS__)
EXTERN CPA_EXPORT char * g_a_szGameInformationModule []
#if defined(D_GameGlobals) && !defined(CPA_WANTS_IMPORT)
= {C_szGamVersion, C_szGamFullName, C_szGamDate}
#endif /* D_GameGlobals && CPA_WANTS_IMPORT */
;
EXTERN char * g_szGameModuleName /* Obliged syntax 'sz'+[Abbreviation of ModuleName]+'ModuleName'*/
#if defined(D_GameGlobals)
= {C_szGamFullName}
#endif /* D_GameGlobals */
;
EXTERN tdstErrorMsg g_a_stGameTabErr[] /* Obliged syntax 'a_sz'+[Abbreviation of ModuleName]+'TabErr'*/
#if defined(D_GameGlobals)
=
{
#if defined(__FATAL_ERR_GAME__)
/* --------------------*/
/**** Error's errors ****/
E_uwGameFatalErrorNotAFatalError,"M_GameFatalError : Try to raise a warning or an information",
E_uwGameInformationErrorIsNotAInformationError,"M_GameInformationError : Try to raise a fatal or a warning",
E_uwGameWarningErrorIsNotAWarningError,"M_GameWarningError : Try to raise a fatal or a information",
/**** Memory's errors ****/
E_uwGameInitMemoryCheckAlign,"fn_vInitMemory : Bad alignment memory",
E_uwGameGameMallocBadBlock,"fnp_vGameMalloc : Bad block memory",
E_uwGameGameMallocBadSize,"fnp_vGameMalloc : Bad size allocation",
E_uwGameGameMallocAlloc,"fnp_vGameMalloc : Null pointer returned",
E_uwGameIncreaseNumberOfSource,"GAM_fn_vMemoryLogFile : Increase number of source",
/**** Object's errors ****/
E_uwGameScriptCallBackStateActionsAlreadyRead,"fn_vScriptCallBackStateActions : Two lines have the same state in script",
E_uwGameInitAllObjectTreeNullPointer,"fn_vInitAllObjectTree : Null pointer",
E_uwGameInitAllObjectTreeBadInitType,"fn_vInitAllObjectTree : Bad initialisation's type",
E_uwGameInitDesinitOneObjectNullPointer,"fn_v(Des)InitOneObject : A object must have p_st3dDatas and p_stStandardGame",
E_uwGameMiniStructAllocAlreadyAlloc,"fn_v####Alloc : Attempt to realloc a mini structure",
E_uwGameMiniStructObjectNull,"Attempt to used a NULL object's pointer",
E_uwGameMiniStructNull,"Attempt to used a NULL object mini-structure's pointer",
E_uwGameCineInfoSuperObjectNull,"Attempt to used CineInfo with no SuperObject",
/**** Engine's errors ****/
E_uwGameChooseTheGoodInitInvalidMode,"fn_vChooseTheGoodInit : invalid engine mode",
E_uwGameChooseTheGoodDesinitInvalidMode,"fn_vChooseTheGoodDesInit : invalid engine mode",
E_uwGameChangeEngineModeNewMode,"fn_vChangeEngineMode : bad new engine mode",
E_uwGameExploreWorldTreeInvalidSuperObject,"fn_vExploreWorldTree : unknown SuperObject type",
E_uwGameVerifySomeProgramVariableHandleFunction,"fn_vVerifySomeProgramVariable : size of tdstEngineObject and stStructureHandleFunction are not compatible",
E_uwGameLanguage,"Array of languages is full.",
E_uwGameLanguageDefinition, "Redefinition of the array of languages." ,
/**** Basic functions errors ****/
E_uwGameAToIBadEntry,"fn_lAToI : string in number.",
E_uwGameAToFBadEntry,"fn_lAToF : string in number.",
/**** Script errors ****/
E_uwGameScriptBadNumberOfArg,"Script callback : bad number of arguments",
E_uwGameScriptBadIPTLinkNumber,"fn_eScriptCallBackIPTLink : Bad link number",
/**** Animations ****/
E_uwGameErrorWhileLoadingAnimation,"",
E_uwGameBadAnimationGeneralInfo,"",
E_uwGameBadFrameNumber,"",
E_uwGameBadChannelNumber,"",
E_uwGameTooManyAnimations,"",
E_uwGameCurrentActorNotSet,"",
E_uwGameNoMorePLAObj,"SuperObjects heap Overflow : increase constant at the top of PlayAnim.h",
E_uwGamePLA_NoWantedState,"WantedState == NULL, a state has ended and no new state has been positionned",
E_uwGameScriptCallBackCreateNewStateBadNextState,"fn_eScriptCallBackCreateNewState : Bad Next State",
E_uwGameScriptCallBackCreateNewStateBadTargetState,"fn_eScriptCallBackCreateNewState : Bad Target State",
E_uwGameScriptCallBackCreateNewStateBadStateToGo,"fn_eScriptCallBackCreateNewState : Bad StateToGo State",
/**** ViewPort errors ****/
E_uwGameCantCreateFixViewPort,"fn_vCreateFixViewPort : failed.",
E_uwGameCantClearViewPort,"fn_vEngine : Can't clear ViewPort.",
E_uwGameCantWriteToViewPort,"fn_vEngine : Can't write to ViewPort.",
E_uwGameCantWriteToViewPortFinished,"fn_vDisplayAll : can't write to ViewPort finished",
E_uwGameCantFlipDevice,"fn_vDisplayAll : can't write to ViewPort finished",
/**** Always errors ****/
E_uwGameKillAlwaysByPersonalType,"fn_vKillAlwaysByPersonalType : Bad SO type founded",
/**** Dynamics ****/
E_uwGameDynamScriptCallBackBadParameter,"fn_eDynamScriptCallBack : Bad parameters",
/**** Submap ****/
E_uwGameUnCoherentSubMap,"fn_vVerifySubMapCoherence : Some loaded sectors are not child of root",
#endif /* __FATAL_ERR_GAME__ */
#ifdef __WARNING_ERR_GAME__
/* --------------------*/
/**** Engine's warning ****/
E_uwGameChangeEngineModeOldMode,"fn_vChangeEngineMode : bad old engine mode",
/**** memory's warning ****/
E_uwGameMallocUserDataAlreadyAllocated,"fn_vMallocUserData : User data already allocated.",
/**** Input's warning ****/
E_uwGameReadInputKeyboard,"fn_vReadInput : keyboard is read but not initialized",
E_uwGameReadInputJoystick,"fn_vReadInput : joystick is read but not initialized",
/**** Object's warning ****/
E_uwGameAddAnAlwaysModelAlreadyExist,"fn_vAddAnAlwaysModel : Always model already exist (ignored)",
E_uwGameAllocateAlwaysUnknownModel,"fn_p_stAllocateAlways : Unknown always model",
E_uwGameAllocateAlwaysNoMorePlace,"fn_p_stAllocateAlways : No more place",
E_uwGameKillOneEngineObjectInvalid,"fn_vKillOneEngineObject : Attempt to kill a invalid object (ignored)",
E_uwGameFreeEngineSuperObjectNoCharacter,"fn_p_stFreeEngineSuperObject : Attempt to free a no character SuperObject (ignored)",
E_uwGameFirstInitFamilyStructureNoNull,"fn_vFirstInitFamilyStructure : g_p_stFamily is not NULL (lost memory) !!!",
E_uwGameFreeUnknownSuperObjectType,"fn_vDestroyAllHierarchy : Unknown super object type (ignored).",
E_uwGameSaveOneEngineCharacters,"fn_vSaveOneEngineCharacters : Can not save character (ignored).",
E_uwGameSaveAllEngineCharacters,"fn_vSaveAllEngineAndAlwaysCharacters : Can not save characters (ignored).",
E_uwGameCreateSOFromEngineObjectAndParentBadSO,"fn_hCreateSOFromEngineObjectAndParent : Try to put a Character SO above a not Physical SO",
E_uwGameChangeOfMechanicsDuringOneFrame,"fn_vMakeCharacterReact : Kind of Mechanics should change at beginning of Frame !",
/* JO 29/05/97*/
E_uwGameBadNumberOfStatesInActivationList,"fn_eScriptCallBackCreateNewZoneSetArray : Will bug in few minuts!!",
E_uwGamePLA_BadInitialState,"Bad Initial State in .car : it doesn't exist in .sta",
/*E_uwGameProblemsWithStartingPosition,"Problem with starting point",*/
E_uwGameDebugDynamicAllocation,"Debug version : dynamic allocation in bloc GAM (don't forget to increase the bloc)",
#endif /* __WARNING_ERR_GAME__ */
#ifdef __INFORMATION_ERR_GAME__
/* --------------------*/
/**** Input's information ****/
E_uwGameInitInputKeyboard,"fn_vInitInput : no keyboard !",
E_uwGameInitInputJoystick,"fn_vInitInput : no joystick !",
/**** Memory's information ****/
E_uwGameGameFreeNullPointer,"fn_vGameFree : Try to free a null pointer !",
/**** Object's information ****/
E_uwGameInitOneObjectInvalidObject,"fn_vInitOneObject : init a invalid object",
E_uwGameKillAlwaysByRankInvalidObject,"fn_vKillAlwaysByRank : attempt to destroy invalid always object",
/**** Script's information ****/
E_uwGameScriptCallBackDescriptionUnknownAction,"fn_eScriptCallBackXxx : unknown action (ignored)",
E_uwGameScriptCallBackDescriptionScriptError,"fn_eScriptCallBackXxx : internal script error (file skipped)",
/**** Sector errors ****/
E_uwGameCurrentSectorInOwnSoundList,"fn_vTestAllSectorsListForIncoherences: Current sector is in its own Sound list",
E_uwGameSectorTwiceInSoundList,"fn_vTestAllSectorsListForIncoherences: Sector is twice in Sound list",
E_uwGameCurrentSectorInOwnActivityList,"fn_vTestAllSectorsListForIncoherences: Current sector is in its own Activity list",
E_uwGameSectorTwiceInActivityList,"fn_vTestAllSectorsListForIncoherences: Sector is twice in Activity list",
E_uwGameCurrentSectorInOwnCollisionList,"fn_vTestAllSectorsListForIncoherences: Current sector is in its own Collision list",
E_uwGameSectorTwiceInCollisionList,"fn_vTestAllSectorsListForIncoherences: Sector is twice in Collision list",
E_uwGameCurrentSectorInOwnGraphicList,"fn_vTestAllSectorsListForIncoherences: Current sector is in its own Graphic list",
E_uwGameSectorTwiceInGraphicList,"fn_vTestAllSectorsListForIncoherences: Sector is twice in Graphic list",
#endif /* __INFORMATION_ERR_GAME__ */
0xffff,"\0"/*fin*/
}
#endif /* D_GameGlobals */
;
#endif /* __ERROR_STRINGS__ */
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* !__ERRGAME_H_ */

View File

@@ -0,0 +1,175 @@
/*=========================================================================
* GameScript.h : Contain all section and section entry of all Game script
* This is a part of the Game project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__GameScpt_h__)
#define __GameScpt_h__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#define GAM_C_FixScriptPriority 1
#define GAM_C_LevelScriptPriority 2
#define GAM_C_FixDynamicScriptPriority 11
#define GAM_C_LevelDynamicScriptPriority 12
/************************************************************/
/**** IMPORTANT : ****/
/**** All this sections must be registred in ****/
/**** fn_vRegisterAllScriptSections in Basic.c file ****/
/************************************************************/
/**** Directories script ****/
#define C_Section_DirectoriesDescription "DirectoriesDescription"
/**** Memory script ****/
#define C_Section_MemoryDescription "NewMemoryDescription"
#define C_Section_BinaryMemoryDescription "NewBinaryMemoryDescription"
#define C_Section_BinaryMemoryDescriptionPass1 "NewBinaryMemoryDescriptionPass1"
#define C_Section_BinaryMemoryDescriptionPass2 "NewBinaryMemoryDescriptionPass2"
#define C_Entry_GAM_FixMemory "GameFixMemorySize"
#define C_Entry_GAM_LevelMemory "GameLevelMemorySize"
#define C_Entry_MenuMemory "MenuMemorySize"
#define C_Entry_FontMemory "FontMemorySize"
#define C_Entry_SAIFixMemory "SAIFixMemorySize"
#define C_Entry_SAILevelMemory "SAIMemorySize"
#define C_Entry_AIFixMemory "AIFixMemory"
#define C_Entry_AIMemory "AIMemory"
#define C_Entry_TMPFixMemory "TMPFixMemory"
#define C_Entry_TMPLevelMemory "TMPLevelMemory"
#define C_Entry_ACPTextMemory "ACPTextMemory"
#define C_Entry_ACPFixMemory "ACPFixMemory"
#define C_Entry_ACPLevelMemory "ACPMemory"
#define C_Entry_POSMemory "PositionMemorySize"
#define C_Entry_ScriptMemory "ScriptMemorySize"
#define C_Entry_IPTMemory "IPTMemorySize"
/* MR0912*/
#define C_Entry_LipsSynchMemory "LipsSynchMemory"
/* For BIN*/
#define C_Entry_UseMemorySnapshot "UseMemorySnapshot"
/**** Input devices manager ****/
#define C_Section_InputDeviceManagerDescription "InputDeviceManagerDescription"
#define C_Entry_InitInputDeviceManager "InitInputDeviceManager"
#define C_Entry_AddInputDeviceFile "AddInputDeviceFile"
#define C_Entry_Computable "Computetable"
/**** Random manager ****/
#define C_Section_RandomManagerDescription "RandomManagerDescription"
#define C_Entry_InitRandomManager "InitRandomManager"
/**** Game Options ****/
#define C_Section_GameOptionsFile "GameOptionsFile"
#define C_Entry_GameOptionsDefault "DefaultFile"
#define C_Entry_GameOptionsCurrent "CurrentFile"
/*#define C_Entry_CreditsLevel "CreditsLevelName"*/
#define C_Entry_FrameSynchro "FrameSynchro"
#define C_Section_BigFile "BigFiles"
#define C_Entry_BigFileVignettes "Vignettes"
#define C_Entry_BigFileTextures "Textures"
/**** Anim Stacks ****/
#define C_Section_Animstacks "AnimStacks"
#define C_Entry_A3dGeneral "A3dGeneral"
#define C_Entry_Vertexes "Vertexes"
#define C_Entry_Quaternions "Quaternions"
#define C_Entry_Hierarchies "Hierarchies"
#define C_Entry_NTTO "NTTO"
#define C_Entry_OnlyFrames "OnlyFrames"
#define C_Entry_Channels "Channels"
#define C_Entry_Frames "Frames"
#define C_Entry_FramesKF "FramesKF"
#define C_Entry_KeyFrames "KeyFrames"
#define C_Entry_Events "Events"
#define C_Entry_MorphData "MorphData"
/******************/
/**** Filename ****/
/******************/
#ifdef ACTIVE_EDITOR
#define C_GameMemoryFile "GameData\\Game.mem"
#define C_GameScriptFile "GameData\\Game.dsc"
#define C_GameVignetteFile "GameData\\Game.pgb"
#endif /* ACTIVE_EDITOR*/
#define C_DefaultDirGameData "GameData"
#define C_GameMemoryFileName "Game.mem"
#define C_GameScriptFileName "Game.dsc"
#define C_GameVignetteFileName "Game.pgb"
#define C_GameFixScriptFile "Game.Fix"
/*#define C_WorldScriptFile "World.dsc"*/
#define C_ScriptCharacterDirectory "Charact"
#define C_MemoryDescriptionSuffixe "mem" /**** Suffixe for memories filenames ****/
#define C_ScriptDescriptionSuffixe "dsc" /**** Suffixe for descriptions filenames ****/
#define C_ScriptCharacterSuffixe "car" /**** Suffixe for characters filenames ****/
#define C_ScriptLevelSuffixe "lvl" /**** Suffixe for level filenames ****/
#define C_ScriptAlwaysSuffixe "alw" /**** Suffixe for always filenames ****/
#define C_MecaLevelSuffixe "ame"
/*#define C_ScriptPgbSuffixe "pgb"*/
/*****************************************************************************************/
/**** Below : macros used to read script. ****/
/**** to use them, the callback function must have there parameters as next : ****/
/**** FILE *p_stHandle,char *szAction,char *d_szPars[],char cIsTitle ****/
/*****************************************************************************************/
#define C_GrandChildSection ( 2)
#define C_ChildSection ( 1)
#define C_ThisSection ( 0)
#define C_ParentSection (-1)
#define C_GrandParentSection (-2)
#define C_GrandChildContext ( 2)
#define C_ChildContext ( 1)
#define C_ThisContext ( 0)
#define C_ParentContext (-1)
#define C_GrandParentContext (-2)
#define M_IsTitle (_eAction==SCR_EA_Anl_BeginSection)
#define M_IsEnd (_eAction==SCR_EA_Anl_EndSection)
#define M_IsBegSubSection (_eAction==SCR_EA_Anl_BeginSubSection)
#define M_IsEndSubSection (_eAction==SCR_EA_Anl_EndSubSection)
#define M_IsEntry (_eAction==SCR_EA_Anl_Entry)
#define M_ActionIs(szActionAsked) (!strcmpi(_p_szName,szActionAsked))
#define M_CheckScriptParamNumber(ulNumber) \
{ \
if (SCR_fn_uc_RdL0_GetNumberOfParameters(_ap_szParams)!=ulNumber) \
M_GameFatalError(E_uwGameScriptBadNumberOfArg); \
}
#ifndef _FIRE_DEADCODE_U64_
EXTERN unsigned long g_SCR_a9MemTable[9]
#if defined(D_GameGlobals)
={0,0,0,0,0,0,0,0,0}
#endif /* D_GameGlobals */
;
#endif /* _FIRE_DEADCODE_U64_ */
#endif /* __GameScpt_h__ */

View File

@@ -0,0 +1,170 @@
#if !defined(__INPUT_S_H__)
#define __INPUT_S_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
/****************************************************************************
*** WARNING : ***
*** ***
*** If you modifie this structure, thing to modifie the file link.ipt ***
*** ***
****************************************************************************/
struct tdst_EntryActions_
{
#if !defined (U64)
IPT_tdxHandleToEntryElement hScreenSnapShot;
/* ANNECY AV {*/
/* IPT_tdxHandleToEntryElement hDisplayBench;*/
/* END ANNECY AV }*/
#endif /*!defined (U64)*/
#if !defined(PRESS_DEMO)
/* ANNECY AV {*/
/* IPT_tdxHandleToEntryElement hPause;*/
/* END ANNECY AV }*/
/**** Toggle wired/solid rendering ****/
IPT_tdxHandleToEntryElement hDisplayModeToggle;
/* ANNECY AV {*/
/*
IPT_tdxHandleToEntryElement hDisplayFixMode;
IPT_tdxHandleToEntryElement hIncScreenSize;
IPT_tdxHandleToEntryElement hDecScreenSize;
IPT_tdxHandleToEntryElement hStopTheVideo;
*/
/* END ANNECY AV }*/
/**** Debug handle ****/
IPT_tdxHandleToEntryElement hDisplayRaster;
IPT_tdxHandleToEntryElement hDisplayRasterMode;
IPT_tdxHandleToEntryElement hDisplayRasterPCU64;
#endif /* PRESS_DEMO */
IPT_tdxHandleToEntryElement hReinitTheMap;
#if !defined(PRESS_DEMO)
#ifdef U64
IPT_tdxHandleToEntryElement hRecordDemo;
IPT_tdxHandleToEntryElement hPlayDemo;
#endif
IPT_tdxHandleToEntryElement hDisplayOnlyStatic;
IPT_tdxHandleToEntryElement hDisplayLight;
IPT_tdxHandleToEntryElement hDisplayZDC;
IPT_tdxHandleToEntryElement hDisplaySectorInfos;
IPT_tdxHandleToEntryElement hDisplayWaypoints;
IPT_tdxHandleToEntryElement hDisplayBoundingVolumes;
#ifndef U64
IPT_tdxHandleToEntryElement hDisplayRayTraceSegments;
#endif /*U64*/
/*ENDANNECY TQ}*/
/*ANNECY CG KEY 4 ACTIVATED GENDOORS 18/06/98{*/
IPT_tdxHandleToEntryElement hDisplayActivatedGendoors;
/*ENDANNECY CG}*/
/*ANNECY CG 20/10/98{*/
/* Oliv' - Portage v14*/
#ifndef U64
IPT_tdxHandleToEntryElement hClearOptionsDisplayed;
#endif /* U64 */
/* EndOfOliv'*/
/*ENDANNECY CG}*/
#endif /* PRESS_DEMO */
/*ANNECY VL 24/05/98{*/
/**** changing map menu*/
IPT_tdxHandleToEntryElement hChooseLevel;
IPT_tdxHandleToEntryElement hChooseLevelUp;
IPT_tdxHandleToEntryElement hChooseLevelDown;
IPT_tdxHandleToEntryElement hChooseLevelValidate;
IPT_tdxHandleToEntryElement hChooseLevelInvalidate;
/*ENDANNECY VL}*/
#if !defined(PRESS_DEMO)
/**** Flying mode cheat code ****/
IPT_tdxHandleToEntryElement hFlyingMode;
IPT_tdxHandleToEntryElement hFlyingModeForward;
IPT_tdxHandleToEntryElement hFlyingModeBackward;
IPT_tdxHandleToEntryElement hFlyingModeUp;
IPT_tdxHandleToEntryElement hFlyingModeDown;
IPT_tdxHandleToEntryElement hFlyingModeLeft;
IPT_tdxHandleToEntryElement hFlyingModeRight;
IPT_tdxHandleToEntryElement hFlyingModeStrafeLeft;
IPT_tdxHandleToEntryElement hFlyingModeStrafeRight;
/* ANNECY AV {*/
/* IPT_tdxHandleToEntryElement hFlyingModeSpeedIncrease;*/
/* IPT_tdxHandleToEntryElement hFlyingModeSpeedDecrease;*/
/* END ANNECY AV }*/
IPT_tdxHandleToEntryElement hFlyingModeDoubleSpeed;
#ifndef U64 /* Oliv' - don't need that */
/* add to stop the game pause (for DC)*/
IPT_tdxHandleToEntryElement hEndPause;
/* add to do a soft reset using the pad (for DC)*/
IPT_tdxHandleToEntryElement hSoftReset;
#endif /* U64 */
/* *** Log For Anim Memory Stack ****/
#ifdef WIN32
IPT_tdxHandleToEntryElement hMemoryStackLog;
#endif /* WIN32*/
/* Oliv' - Portage v15 : Please, I removed warnings in the following comment. Keep this like it :-)*/
/* ANNECY AV {*/
/*
// *** Memory cheat code ***
IPT_tdxHandleToEntryElement hTestMemory;
// *** Borders gothrough ***
IPT_tdxHandleToEntryElement hBorderActive;
IPT_tdxHandleToEntryElement hConstantAnimSpeed;
*/
/* END ANNECY AV }*/
#ifdef WIN32
IPT_tdxHandleToEntryElement hDisplayTextOverScanLimit ;
IPT_tdxHandleToEntryElement hAltDisplayTextOverScanLimit ;
IPT_tdxHandleToEntryElement hGliMenu_Activate ;
IPT_tdxHandleToEntryElement hGliMenu_Next ;
IPT_tdxHandleToEntryElement hGliMenu_Prev ;
IPT_tdxHandleToEntryElement hGliMenu_Select ;
IPT_tdxHandleToEntryElement hGliMenu_Zoom ;
IPT_tdxHandleToEntryElement hGliMenu_Goto ;
IPT_tdxHandleToEntryElement hStartStopStep ;
IPT_tdxHandleToEntryElement hPulseStep ;
#endif /* WIN32 */
#endif /* PRESS_DEMO */
};
EXTERN struct tdst_EntryActions_ g_st_3DOS_EntryActions;
//XB 01/06/99
//EXTERN unsigned char g_ucSCTDisplaySectors;
extern unsigned char g_ucSCTDisplaySectors;
//End XB 01/06/99
#ifndef RETAIL
EXTERN char g_cChooseLevel;
#endif /* !RETAIL */
#endif /* __INPUT_S_H__ */

View File

@@ -0,0 +1,49 @@
/*///////////////////////////////////////////////////////////*/
/* //*/
/* Memory Management of the Module : Game //*/
/* // */
/* File Name : MemGame.h //*/
/* Date : 03/10/96 //*/
/* Author : First_Name Last_Name //*/
/* //*/
/*///////////////////////////////////////////////////////////*/
#ifndef __MemGame_H__
#define __MemGame_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
enum e_ucGameStaticBlocks
{
E_ucFirstMemoryBlock = 0,
E_ucFirstFixMemoryBlock = E_ucFirstMemoryBlock,
E_ucGameFixMemory = E_ucFirstFixMemoryBlock,
/* E_ucGameTempFixMemory,*/
E_ucLastFixMemoryBlock = E_ucGameFixMemory,
E_ucFirstLevelMemoryBlock,
E_ucGameLevelMemory = E_ucFirstLevelMemoryBlock,
/*E_ucGameTempLevelMemory,*/
E_ucLastLevelMemoryBlock = E_ucGameLevelMemory,
E_ucLastMemoryBlock = E_ucLastLevelMemoryBlock,
E_ucGameMaxBlocksNb /* maximum number of static block, You have to follow this syntax 'E_uc+ Abbreviation Module +MaxBlocksNb'*/
};
#ifndef _FIRE_DEADCODE_U64_
EXTERN tdstBlockInfo g_a_stGameBlocksInfo[E_ucGameMaxBlocksNb];
#endif /* _FIRE_DEADCODE_U64_ */
#ifdef __DYNAMIC_MALLOC_ALLOWED__
#ifdef __DEBUG_MALLOC_MODE__
EXTERN tdstDynInfo g_stGameDynInfo;
#endif /* __DEBUG_MALLOC_MODE__ */
#endif /* __DYNAMIC_MALLOC_ALLOWED__ */
#endif /* __MemGame_H__ */

View File

@@ -0,0 +1,160 @@
/*=========================================================================
* Objects.h : Define the engine object structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 20/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__OBJECTS_H__)
#define __OBJECTS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "GAM/Actions/Animfx.h"
#include "GAM/actions/allacts.h"
#include "GAM/actions/3ddata.h"
/*
* this structure is for each object in a level (ie all events)
* when a structure pointer is added, not forget to add its handle's functions (see below)
*/
typedef struct tdstEngineObject_
{
/* pointer to the 3d datas, animations ... */
MS_tdxHandleTo3dData h_3dData;
/* pointer to the standard game structure (hitpoints ...) */
MS_tdxHandleToStandardGame h_StandardGame;
/***********************************************************************************/
/**** All next fields are structures pointer and must be in alphabetical order. ****/
/***********************************************************************************/
/*** pointer to the dynamic system ***/
MS_tdxHandleToDynam h_Dynam;
/*** pointer to intelligence structure ***/
MS_tdxHandleToBrain h_Brain;
/*** pointer to the cineinfo structure ***/
MS_tdxHandleToCineinfo h_Cineinfo;
/*** pointer to the Collide Set structure ***/
MS_tdxHandleToCollSet h_CollSet;
/*** pointer to the way structure ***/
MS_tdxHandleToMSWay h_MSWay;
/*** pointer to the light structure ***/
MS_tdxHandleToMSLight h_MSLight;
/*** pointer to the Sector structure ***/
MS_tdxHandleToSectInfo h_SectInfo;
/*** pointer to the Micro structure ***/
MS_tdxHandleToMicro h_Micro;
#ifndef D_THROW_PRT
/*** pointer to the particle source structure JO 10/09/97 ***/
MS_tdxHandleToMSPrtSrc h_MSPrtSrc;
#endif /* D_THROW_PRT */
/*** pointer to the sound structure JO 08/12/97 ***/
MS_tdxHandleToMSSound h_MSSound;
#ifndef D_THROW_ANIM_EFFECT
/*** pointer to the anim effect structure ***/
MS_tdxHandleToAnimEffect h_AnimEffect;
#endif /* D_THROW_ANIM_EFFECT */
/*XB980824*/
#ifndef D_THROW_MGT
/*** pointer to the magnet structure ***/
MS_tdxHandleToMSMagnet h_MSMagnet;
#endif /* D_THROW_MGT */
} tdstEngineObject;
/* a basic handler function used to load the objects structures */
#if !defined(U64)
typedef SCR_tde_Anl_ReturnValue (tdfn_eScriptCallBackHandleFunction)(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/* a basic handler function used to alloc the objects structures */
/*typedef void (tdfn_vSaveMSFunction)(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
typedef void (tdfn_vCopyCloneMSFunction)(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
/* a basic handler function used to size of the objects mini-structures */
typedef unsigned long (tdfn_ulSizeofHandleFunction)();
/* a basic handler function used to alloc the objects structures */
typedef void (tdfn_vAllocHandleFunction)(struct tdstEngineObject_ *p_stObject);
/* a basic handler function used to init the objects structures */
typedef void (tdfn_vInitHandleFunction)(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
unsigned long fn_ulEmptySizeOf();
void fn_vEmptyAlloc(struct tdstEngineObject_ *p_stObject);
void fn_vEmptyFree(struct tdstEngineObject_ *p_stObject);
void fn_vEmptyInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
void fn_vEmptyDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
void fn_vEmptyCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
typedef struct tdstStructureHandleFunction_
{
tdfn_vCopyCloneMSFunction *p_fn_vCopyCloneMSFunction;
tdfn_ulSizeofHandleFunction *p_fn_ulSizeOfFunction;
tdfn_vAllocHandleFunction *p_fn_vAllocFunction;
tdfn_vAllocHandleFunction *p_fn_vFreeFunction;
tdfn_vInitHandleFunction *p_fn_vInitFunction;
tdfn_vInitHandleFunction *p_fn_vDesinitFunction;
} tdstStructureHandleFunction;
EXTERN tdstStructureHandleFunction g_a_stStructureHandleFunction[]
#if defined(D_GameGlobals)
=
{
/*h_3dData*/
{fn_v3dDataCopyClone,fn_ul3dDataSizeOf,fn_v3dDataAlloc,fn_v3dDataFree,fn_v3dDataInit,fn_v3dDataDesinit},
/*h_StandardGame*/
{fn_vStdGameCopyClone,fn_ulStdGameSizeOf,fn_vStdGameAlloc,fn_vStdGameFree,fn_vStdGameInit,fn_vStdGameDesinit},
/*h_Dynamics*/
{fn_vDynamCopyClone,fn_ulDynamSizeOf,fn_vDynamAlloc,fn_vDynamFree,fn_vDynamInit,fn_vDynamDesinit},
/*h_Brain*/
{fn_vBrainCopyClone,fn_ulBrainSizeOf,fn_vBrainAlloc,fn_vBrainFree,fn_vBrainInit,fn_vBrainDesinit},
/*h_Cineinfo*/
{CAM_fn_vCineinfoCopyClone,CAM_fn_ulCineinfoSizeOf,CAM_fn_vCineinfoAlloc,CAM_fn_vCineinfoFree,CAM_fn_vCineinfoInit,CAM_fn_vCineinfoDesinit},
/*h_CollSet*/
{fn_vCollSetCopyClone,fn_ulCollSetSizeOf,fn_vCollSetAlloc,fn_vCollSetFree,fn_vCollSetInit,fn_vCollSetDesinit},
/*h_MSWay*/
{fn_vMSWayCopyClone,fn_ulMSWaySizeOf,fn_vMSWayAlloc,fn_vMSWayFree,fn_vMSWayInit,fn_vMSWayDesinit},
/*h_Light*/
{fn_vLightCopyClone,fn_ulLightSizeOf,fn_vLightAlloc,fn_vLightFree,fn_vLightInit,fn_vLightDesinit},
/*h_SectInfo*/
{fn_vSectInfoCopyClone,fn_ulSectInfoSizeOf,fn_vSectInfoAlloc,fn_vSectInfoFree,fn_vSectInfoInit,fn_vSectInfoDesinit},
/*h_Micro*/
{fn_vMicroCopyClone,fn_ulMicroSizeOf,fn_vMicroAlloc,fn_vMicroFree,fn_vMicroInit,fn_vMicroDesinit},
#ifndef D_THROW_PRT
/*h_MSPrtSrc*/
{fn_vMSPrtSrcCopyClone,fn_ulMSPrtSrcSizeOf,fn_vMSPrtSrcAlloc,fn_vMSPrtSrcFree,fn_vMSPrtSrcInit,fn_vMSPrtSrcDesinit},
#endif /* D_THROW_PRT */
/*h_MSSound JO 08/12/97*/
{fn_vMSSoundCopyClone,fn_ulMSSoundSizeOf,fn_vMSSoundAlloc,fn_vMSSoundFree,fn_vMSSoundInit,fn_vMSSoundDesinit},
#ifndef D_THROW_ANIM_EFFECT
/*h_AnimEffect*/
{fn_vAnimEffectCopyClone,fn_ulAnimEffectSizeOf,fn_vAnimEffectAlloc,fn_vAnimEffectFree,fn_vAnimEffectInit,fn_vAnimEffectDesinit},
#endif /* D_THROW_ANIM_EFFECT */
/*XB980824*/
#ifndef D_THROW_MGT
/*** pointer to the magnet structure ***/
/*h_MSMagnet*/
{fn_vMSMagnetCopyClone,fn_ulMSMagnetSizeOf,fn_vMSMagnetAlloc,fn_vMSMagnetFree,fn_vMSMagnetInit,fn_vMSMagnetDesinit},
#endif /* D_THROW_MGT */
/*End XB*/
/*End structure*/
{(tdfn_vCopyCloneMSFunction*)0x00000001,(tdfn_ulSizeofHandleFunction *)0x00000002,(tdfn_vAllocHandleFunction *)0x00000003,(tdfn_vAllocHandleFunction *)0x00000004,(tdfn_vInitHandleFunction *)0x00000005,(tdfn_vInitHandleFunction *)0x00000006}
}
#endif /* D_GameGlobals */
;
#endif /* __OBJECTS_H__ */

View File

@@ -0,0 +1,157 @@
/*=========================================================================
* ObjsTbls.h : Define the engine state structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 25/03/97
* Revision date
* Author Sebastien DAVID
*
* That file needs to be compatible for all platforms.
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__OBJSTBLS_H__)
#define __OBJSTBLS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#include "GAM/GAMHandl.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#define C_wTdO_Undefined 0xffff
#define C_wTdO_PhysicalObject 0
#define C_wTdO_Animation 1
#define C_wTdO_Light 2
#define C_wTdO_Camera 3
#define C_wTdO_Mirror 4
#define C_wTdO_Event 5
/* ANNECY AV {*/
#define C_wObjectTableHasZdd 0x0001
#define C_wObjectTableHasZde 0x0002
/* END ANNECY AV }*/
/**************************/
/**** Structure define ****/
/**************************/
#if defined(D_ObjsTbls_Define)
typedef struct tdstObjectsTableElement_
{
MTH3D_tdstVector * p_stCustomZoom; /* AR971014 Changed for alignment*/
/* to create an Array of POs ...*/
tdxHandleToVoid h_Target;
unsigned long uwChannelNumber; /* AR971107 Warning ! Bad prefix !!!*/
unsigned short wTypeOfTarget; /* AR971014 Changed for alignment*/
#ifndef U64
unsigned char ucPhoneme;
unsigned char ucIntensity;
unsigned char ucExpression;
#endif //U64
#ifdef _DEBUG
unsigned short wCounter;
#endif
} tdstObjectsTableElement;
typedef struct tdstObjectsTablesList_
{
/* to use a List of Objects Tables ...*/
LST2_M_StaticElementDeclaration(tdxHandleToObjectsTablesList)
/*BOOL bDuplicateTable; // MR0707*/
struct tdstObjectsTableElement_ * d_stObjectsTable;
#ifndef U64 //AR9904 Useless !
struct tdstObjectsTableElement_ * d_stInitObjectsTable;
#endif //U64
/* to access to an Objects Table ...*/
unsigned short wNumberOfElement; /* AR971014 Changed for alignment*/
/* ANNECY AV {*/
unsigned short wZDxUsed; /* can be C_wObjectTableHasZdd | C_wObjectTableHasZde*/
/* END ANNECY AV }*/
} tdstObjectsTablesList;
#endif /* D_ObjsTbls_Define */
/*******************************/
/**** Base functions define ****/
/*******************************/
/* ************* ObjectsTablesList *************/
extern CPA_EXPORT tdxHandleToObjectsTablesList fn_hObjectsTablesListAlloc();
extern CPA_EXPORT void fn_hObjectsTablesListFree(tdxHandleToObjectsTablesList h_ObjectsTableElement);
/**********************************/
/**** Special functions define ****/
/**********************************/
extern CPA_EXPORT void fn_vInitObjectsTablesList(struct tdstFamilyList_ *p_stFamily);
extern CPA_EXPORT void fn_vAddAnObjectsTablesInList( struct tdstFamilyList_ *p_stFamily
, tdxHandleToObjectsTablesList h_ObjectsTablesListElement);
extern CPA_EXPORT void fn_vObjectsTablesAlloc(tdxHandleToObjectsTablesList h_ObjectsTablesListElement,unsigned short wNumberOfElement);
extern CPA_EXPORT void fn_vChangeObjectsTableForCharacter(HIE_tdxHandleToSuperObject p_stSuperObject, long l_Number);
extern CPA_EXPORT void fn_vExchangeTwoObjectsInCurrentObjectsTable(HIE_tdxHandleToSuperObject p_stSuperObject
,unsigned short w_ObjectA ,unsigned short w_ObjectB);
extern CPA_EXPORT void fn_vCopyObjectDestFromSourceOfObjectsTable(HIE_tdxHandleToSuperObject p_stSuperObject
,unsigned short w_ObjectDest ,unsigned short w_ObjectSource);
extern CPA_EXPORT void fn_vCopyObjectFromObjectTabletoAnother(tdxHandleToObjectsTablesList, tdxHandleToObjectsTablesList, unsigned short, unsigned short);
extern CPA_EXPORT unsigned short fn_uwGetObjectTableNumberOfelements(tdxHandleToObjectsTablesList _hTargetTable);
/* ANNECY AV {*/
extern CPA_EXPORT ACP_tdxBool fn_bObjectTableHasZdd (tdxHandleToObjectsTablesList _hObjectTableList);
extern CPA_EXPORT ACP_tdxBool fn_bObjectTableHasZde (tdxHandleToObjectsTablesList _hObjectTableList);
/* END ANNECY AV }*/
/* ***** ACCESS FUNCTIONS BY HANDLES ***** */
extern CPA_EXPORT tdxHandleToObjectsTableElement fn_d_hGetObjectsTable(tdxHandleToObjectsTablesList h_ObjectsTablesListElement);
extern CPA_EXPORT tdxHandleToObjectsTableElement fn_d_hGetInitObjectsTable(tdxHandleToObjectsTablesList h_ObjectsTablesListElement);
extern CPA_EXPORT tdxHandleToObjectsTableElement fn_d_hGetElementByNumberInObjectsTable(tdxHandleToObjectsTablesList h_ObjectsTablesListElement
,unsigned short wNumberInTable);
extern CPA_EXPORT unsigned short fn_wObjectsTableGetTypeOfTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement);
extern CPA_EXPORT void fn_vObjectsTableSetTypeOfTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement
,unsigned short wTypeOfTarget);
extern CPA_EXPORT tdxHandleToVoid fn_hObjectsTableGetTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement);
extern CPA_EXPORT void fn_vObjectsTableSetTarget(tdxHandleToObjectsTableElement h_ObjectsTablesElement
,tdxHandleToVoid h_Target);
extern CPA_EXPORT void fn_vDuplicateObjectTable(tdxHandleToObjectsTablesList hObjTableList);
extern CPA_EXPORT void fn_vReInitObjectTable(tdxHandleToObjectsTablesList hObjTableList);
#ifndef U64
// Shaitan => module list in the level
extern CPA_EXPORT void fn_vFindUsedIndexes(short *wArrayOfIndexes, short wMaxElements, struct tdstAnim3d_ *p_stAnim, struct tdst3dData_ * h3dData);
// End Shaitan => module list in the level
#endif
/*
extern CPA_EXPORT void fn_vSetObjectTableListDuplicate(tdxHandleToObjectsTablesList hObjTableList,BOOL bDuplicate);
extern CPA_EXPORT BOOL fn_bGetObjectTableListDuplicate(tdxHandleToObjectsTablesList hObjTableList);
*/
extern void fn_vCheckObjectsTables(struct tdstEngineObject_ *p_stEngineObject);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* !__OBJSTBLS_H__ */

View File

@@ -0,0 +1,204 @@
/*=========================================================================
* State.h : Define the engine state structure.
* This is a part of the Game project.
*
* Version 1.0
* Creation date 09/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__STATE_H__)
#define __STATE_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#ifdef __cplusplus
extern "C" {
#endif
#include "GAM/Header.h"
#include "../PlayAnim/PLA_dbg.h"
#define C_ucAllowedState 0
#define C_ucProhibitedState 1
/*ANNECY CT 11/02/98{*/
#define C_ucStandardLink 0
#define C_ucProportionalLink 1
/*ENDANNECY CT}*/
/***********************/
/**** Handle define ****/
/***********************/
#if defined(D_State_Define)
/* structure to determined which transitional state to use*/
typedef struct tdstTransition_ /* maj 15/11 DVD (Gizmo)*/
{
LST2_M_StaticElementDeclaration(tdxHandleToTransition)
tdxHandleToState h_TargetState;
tdxHandleToState h_StateToGo;
/*ANNECY CT 11/02/98{*/
unsigned char ucLinkingType; /* C_ucStandardLink or C_ucProportionalLink*/
/*ENDANNECY CT}*/
} tdstTransition;
/* structure to determined which states are prohibited*/
typedef struct tdstProhibit_
{
LST2_M_StaticElementDeclaration(tdxHandleToProhibit)
tdxHandleToState h_ProhibitedState;
} tdstProhibit;
typedef struct tdstState_
{
#ifdef _DEBUG_STRING_FOR_PLA_
char szStateName[LEN_DEBUG_STRING];
#endif
/* Macro to create chain list for State Array */
LST2_M_StaticElementDeclaration(tdxHandleToState)
/* pointer of the animation for this state in the model's animation array */
struct tdstAnim3d_ *p_stAnim;
/*
* array of States can be doing in this state
* NULL pointer : None
*/
LST2_M_StaticAnchorDeclaration(tdxHandleToTransition) hForTransitionArray;
/*
* array of States can't be doing in this state
* NULL pointer : None
*/
LST2_M_StaticAnchorDeclaration(tdxHandleToProhibit) hForProhibitArray;
/*
* next state in the automaton when the animation ends
*/
tdxHandleToState h_NextState;
/* maj 23/01/97 S<>bastien DAVID (Gizmo)*/
/* dynamic array of unsigned char (length=NumberOfModule) for the moment,*/
/* in final there will be a bit-field array.*/
/* unsigned char * d_ucModuleCollsetActivationFlags;*/
DNM_tdxHandleToMecIdentityCard h_LinkedMechanicsIdCard;
/*
* How many time the animation must be repeated.
* if ucRepeatAnimation = 0, the animation is played 1 time.
* if ucRepeatAnimation = 1, the animation is played 2 times.
* and so on...
*/
unsigned char ucRepeatAnimation;
/*
* animation playback speed in VBLs per frame
*/
signed char scSpeedAnim;
unsigned char ucTransitionStatusFlag; /* C_ucAllowedState or C_ucProhibitedState*/
/* ANNECY MT - 24/11/98 {*/
unsigned char ucCustomBits; /* new */
/* END ANNECY MT }*/
} tdstState;
#endif /* D_State_Define */
/*******************************/
/**** Base functions define ****/
/*******************************/
/* ************* STATE *************/
extern CPA_EXPORT unsigned long fn_ulStateSizeOf();
extern CPA_EXPORT tdxHandleToState fn_h_StateAlloc();
extern CPA_EXPORT void fn_h_StateFree(tdxHandleToState h_State);
/* ************ Transition ************** */
extern CPA_EXPORT unsigned long fn_ulTransitionSizeOf();
extern CPA_EXPORT tdxHandleToTransition fn_h_TransitionAlloc();
extern CPA_EXPORT void fn_h_TransitionFree(tdxHandleToTransition h_Transition);
/* ************ Prohibited State ************** */
extern CPA_EXPORT unsigned long fn_ulProhibitSizeOf();
extern CPA_EXPORT tdxHandleToProhibit fn_h_ProhibitAlloc();
extern CPA_EXPORT void fn_h_ProhibitFree(tdxHandleToProhibit h_Prohibit);
/*********************************/
/**** Access functions define ****/
/*********************************/
/*################################## STATE #############*/
/* ************ Name *************/
extern CPA_EXPORT char* fn_p_szGetStateName(tdxHandleToState h_State);
/* ************ Anim *************/
extern CPA_EXPORT struct tdstAnim3d_* fn_p_stGetAnimInState(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetAnimInState(tdxHandleToState h_State,struct tdstAnim3d_ *p_stAnim);
/********** NextState ************/
extern CPA_EXPORT tdxHandleToState fn_hGetNextStateInState(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetNextStateInState(tdxHandleToState h_State,tdxHandleToState h_NextState);
/* ******* RepeatAnimation *******/
extern CPA_EXPORT unsigned char fn_ucGetRepeatAnimationInState(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetRepeatAnimationInState(tdxHandleToState h_State,unsigned char ucRepeatAnimation);
/* ******* TransitionStatusFlag *******/
extern CPA_EXPORT unsigned char fn_ucGetTransitionStatusFlagInState(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetTransitionStatusFlagInState(tdxHandleToState h_State,unsigned char ucTransitionStatusFlag);
/* ********* SpeedAnim ***********/
extern CPA_EXPORT signed char fn_scGetSpeedInState(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetSpeedInState(tdxHandleToState h_State,signed char scSpeedAnim);
/* ******* MechanicsIdCard *******/
extern CPA_EXPORT DNM_tdxHandleToMecIdentityCard fn_hGetStateMechanicsIdCard(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetStateMechanicsIdCard(tdxHandleToState h_State,DNM_tdxHandleToMecIdentityCard h_LinkedMechanicsIdCard);
/* ANNECY MT - 24/11/98 {*/
/* ******* CustomBits *******/
extern CPA_EXPORT unsigned char fn_ucGetStateCustomBits(tdxHandleToState h_State);
extern CPA_EXPORT void fn_vSetStateCustomBits(tdxHandleToState h_State,unsigned char ucCustomBits);
/* END ANNECY MT }*/
/*################################## TRANSITION #############*/
/*********** TargetState *******************/
extern CPA_EXPORT tdxHandleToState fn_hGetTargetStateInTransition(tdxHandleToTransition h_Transition);
extern CPA_EXPORT void fn_vSetTargetStateInTransition(tdxHandleToTransition h_Transition,tdxHandleToState h_TargetState);
/*************** StateToGo *******************/
extern CPA_EXPORT tdxHandleToState fn_hGetStateToGoInTransition(tdxHandleToTransition h_Transition);
extern CPA_EXPORT void fn_vSetStateToGoInTransition(tdxHandleToTransition h_Transition,tdxHandleToState h_StateToGo);
/*ANNECY CT 11/02/98{*/
/*************** LinkingType *******************/
extern CPA_EXPORT unsigned char fn_ucGetLinkingTypeInTransition(tdxHandleToTransition h_Transition);
extern CPA_EXPORT void fn_vSetLinkingTypeInTransition(tdxHandleToTransition h_Transition,unsigned char ucLinkingType);
/*ENDANNECY CT}*/
extern CPA_EXPORT tdxHandleToState fn_hGetProhibitedStateInProhibit( tdxHandleToProhibit _hProhibit );
extern CPA_EXPORT void fn_vSetProhibitedStateInProhibit( tdxHandleToProhibit _hProhibit, tdxHandleToState _hState );
extern CPA_EXPORT tdxHandleToTransition fn_hGetTransitionalWithTargetState( tdxHandleToState _hState, tdxHandleToState _hTargetState );
/*ANNECY CT 11/02/98{*/
/*extern CPA_EXPORT tdxHandleToState fn_hIfExistTransitionalWithTargetState(tdxHandleToState h_State, tdxHandleToState h_TargetState);*/
extern CPA_EXPORT tdxHandleToTransition fn_hIfExistTransitionalWithTargetState(tdxHandleToState h_State, tdxHandleToState h_TargetState);
/*ENDANNECY CT}*/
extern CPA_EXPORT long fn_hIfExistProhibitedState(tdxHandleToState h_State, tdxHandleToState h_TargetState);
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* !__STATE_H__ */

View File

@@ -0,0 +1,42 @@
/*=========================================================================
* StdObjSt.h : Define standard objects structures
*
* This is a part of the Game project.
*
* Version 1.0
* Creation date 01/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__STDOBJST_H__)
#define __STDOBJST_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
M_BeginDeclareEnumerate(tdeObjectinitInit)
OI_WhenPlayerGoOutOfActionZone = 0,
OI_Always,
OI_WhenPlayerIsDead,
OI_WhenMapJustLoaded,
OI_WhenSavedGameJustLoaded,
OI_NeverBackWhenTaken,
OI_NumberOfObjectInit,
OI_WhenGeneratorIsDesactivated
M_EndDeclareEnumerate(tdeObjectinitInit,unsigned char)
typedef long tdObjectType;
#define C_InvalidObjectType -1
#define C_AlwaysObjectType 0x00010000
#endif /* __STDOBJST_H__ */

View File

@@ -0,0 +1,10 @@
typedef struct tdstElement3d_
{
/* POS_tdxHandleToPosition stMatrix; //AR970707 (Use compressed position)*/
unsigned short wElement:15;
unsigned short bf1ActiveStatus:1;
unsigned char ucChannelNumber;
tdeTypeOfElement eTypeOfElement; /*3D module, 2D-3D sprite, 2D facing sprite or animation*/
unsigned char ucTransparency;
} tdstElement3d;

View File

@@ -0,0 +1,164 @@
/*=========================================================================
* TBLLoad.h : Header file for loading TBL
*
* Version 1.0
* Creation date 29/05/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__TBLLOAD_H__)
#define __TBLLOAD_H__
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/* For DLL using these function :*/
#include "../cpa_expt.h"
/*****************************************************************************************/
/**** Below : macros used to read script. ****/
/*****************************************************************************************/
#define C_GrandChildSection ( 2)
#define C_ChildSection ( 1)
#define C_ThisSection ( 0)
#define C_ParentSection (-1)
#define C_GrandParentSection (-2)
#define C_GrandChildContext ( 2)
#define C_ChildContext ( 1)
#define C_ThisContext ( 0)
#define C_ParentContext (-1)
#define C_GrandParentContext (-2)
#define M_IsTitle (_eAction==SCR_EA_Anl_BeginSection)
#define M_IsEnd (_eAction==SCR_EA_Anl_EndSection)
#define M_IsBegSubSection (_eAction==SCR_EA_Anl_BeginSubSection)
#define M_IsEndSubSection (_eAction==SCR_EA_Anl_EndSubSection)
#define M_IsEntry (_eAction==SCR_EA_Anl_Entry)
#define M_ActionIs(szActionAsked) (!strcmpi(_p_szName,szActionAsked))
/**** TBL scripts ****/
#define C_Section_TBLHeader "TBL_HEADER"
#define C_Entry_FileVersion "VersionNumber"
#define C_Entry_MaximumIndex "MaximumIndex"
#define C_Entry_Duplicate "Duplicate" /* MR0707*/
#define C_Entry_MIRROR "MIRROR"
#define C_Section_TBLGeneral "TBL"
#define C_Entry_PHY "PHY"
#define C_Section_EVTGeneral "EVT"
#define C_Entry_ObjectType "ObjectType"
#define C_Entry_GenericEvent "GenericEvent"
#define C_Entry_FirstCall "FirstCall"
#define C_Entry_Period "Period"
#define C_Entry_Priority "Priority"
#define C_Entry_MechanicEvent "MechanicEvent"
#define C_Entry_SoundEvent "SoundEvent"
/* MR2706*/
#define C_Entry_LipsSynchro "LipsSynchro"
#define C_Entry_CustomZoom "CustomZoom"
/*
* Animations files script call-backs
*/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue TBL_fn_eScriptCallBackHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue TBL_fn_eScriptCallBackGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*BEGIN OS 23-Mar-98*/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue TBL_fn_eScriptCallBackBinHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue TBL_fn_eScriptCallBackBinGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*END OS 23-Mar-98*/
#endif /* U64 */
/*************************************************/
/********* global for TBL Link Table *************/
/*************************************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table TBL_g_stLinkTable;
#endif /* U64 */
/*************************************************/
/*
* Initialisation and access to link table for TBL name storage
*/
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *TBL_fn_p_stGetLinkTable(void);
#endif /* U64 */
extern CPA_EXPORT void TBL_fn_vInitLinkTable(void);
extern CPA_EXPORT void TBL_fn_vCloseLinkTable(void);
extern CPA_EXPORT void TBL_fn_vDeleteLinkTable(unsigned char ucMin,unsigned char ucMax);
extern CPA_EXPORT void TBL_fn_vRegisterAllScriptSections(void);
#if !defined(U64)
/*-----------------------------------------------------------------------------
* Description : Script callback for the V6 events
*-----------------------------------------------------------------------------
* Input : script inputs
* Output : script outputs
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue TBL_fn_eScriptCallBackEvent(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*BEGIN OS 23-Mar-98*/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue TBL_fn_eScriptCallBackBinEvent(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/*END OS 23-Mar-98*/
/*-----------------------------------------------------------------------------
* Description : Create an event pointed in TBL (V6 format)
*-----------------------------------------------------------------------------
* Input :
* Output : pointer to the event
*-----------------------------------------------------------------------------
* Creation date : Jan 98 Author : Alain Robin
*---------------------------------------------------------------------------*/
struct tdstEventInTable_* GAM_fn_p_stCreateEventInTBL();
#endif /* !defined(U64) */
/*-----------------------------------------------------------------------------
* Description : Save binary function for TBL
*-----------------------------------------------------------------------------
* Input : _ulTBL : Address of the object table
* _p_cBuffer : Pointer to the buffer to fill
* Output : Length of the data written
*---------------------------------------------------------------------------*/
extern CPA_EXPORT unsigned long GAM_fn_ulWriteTBLBinaryBloc(unsigned long _ulTBL,char* _p_cBuffer);
/*-----------------------------------------------------------------------------
* Description : Write all TBL function
*-----------------------------------------------------------------------------
* Input :
* Output :
*---------------------------------------------------------------------------*/
extern CPA_EXPORT void GAM_fn_vWriteAllTBLBinaryBlocs(char* _szFileName);
/*-----------------------------------------------------------------------------
* Description : Read binary function for TBL
*-----------------------------------------------------------------------------
* Input : _ulTBL : Address of the object table
* Output :
*---------------------------------------------------------------------------*/
extern CPA_EXPORT void GAM_fn_vResolveTBLBinaryBloc(unsigned long _ulTBL);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
/* !__TBLLOAD_H__ */
#endif

View File

@@ -0,0 +1,48 @@
/*=========================================================================
* TypeCAm.h : Cammera's types
*
*
*
*
* Version 1.0
* Creation date 10/02/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__TYPECAM_H__)
#define __TYPECAM_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
typedef enum e_ucListViewport_
{
CAM_e_NoViewport = 0,
CAM_e_MainViewport,
CAM_e_SecondaryViewport
} e_ucListViewport;
/*
Camera's States
*/
typedef enum e_ucCameraStates_
{
CAM_e_State_GoToOptimal = 0,
CAM_e_State_GoToComputedOptimal,
CAM_e_State_FailureVisibility,
CAM_e_State_FailureVisibilityWithoutCut,
CAM_e_TempState_GhostMode,
CAM_e_TempState_ApexMode,
} e_ucCameraStates;
#endif

View File

@@ -0,0 +1,80 @@
#ifndef __TEXTFRMT_H__
#define __TEXTFRMT_H__
#if _MSC_VER >= 1000
#pragma once
#endif
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/*the structure that holds all the relevant information for formatting*/
typedef struct stTfmtStatus_
{
MTH_tdxReal xScreenWidth;
MTH_tdxReal xBaseCharX, xBaseCharZ;
MTH_tdxReal xBaseToAddX;
MTH_tdxReal xRandomPosRadius;
MTH_tdxReal xCharWidth, xLineHeight, xCharZoom;
MTH_tdxReal xCurCharZoom ;
MTH_tdxReal xCurCharWidth ;
tdxHandleToObjectsTablesList hSourceObjectTable;
char cJustificationMode;
} tdstTfmtStatus;
typedef struct stTfmtLineResults_
{
short wStartChar;
short wEndChar;
MTH3D_tdstVector stLineOrigin;
} tdstTfmtLineResults;
#define MAX_TEXTAFFICHE 30
typedef struct stInfoTextAffiche_
{
BOOL bFirstInit;
unsigned long ulCurrentDelay; /* Delay between letters*/
unsigned long ulTimer; /* The Timer*/
unsigned long ulEvent; /* Evenement*/
short wCurrentLetterInString; /* Position of the current letter in string*/
} tdstInfoTextAffiche;
#define TFMT_MAX_SCALEDPATTERN 50
#define TFMT_MAX_WIDTHTABLEELMENT 256
extern unsigned char g_ucTextAfficheId;
extern HIE_tdxHandleToSuperObject gp_SuperObjPersoGenerated[MAX_TEXTAFFICHE];
extern tdstInfoTextAffiche g_stInfoTextAffiche[MAX_TEXTAFFICHE];
extern BOOL g_bFreeTextAfficheBlocs[MAX_TEXTAFFICHE];
short TFMT_wPositionModulesAccordingToText(tdstTfmtStatus *_p_stStatus, HIE_tdxHandleToSuperObject _hSuperObjPerso, char *_pszText, long _lStart, long _lEnd, MTH_tdxReal _xScreenWidth, tdstTfmtLineResults *_d_stLineResults, short _wNbLines);
unsigned long TFMT_wPositionModulesAccordingToText2(tdstTfmtStatus *_p_stStatus, HIE_tdxHandleToSuperObject _hSuperObjPerso, char *_pszText, long _lStart, long _lEnd, ACP_tdxBool *bFirstTime, short *pwCurrentChar, unsigned long *ulDelay);
void TFMT_vInitFormatterStatus(tdstTfmtStatus *_p_stStatus, HIE_tdxHandleToSuperObject _hSuperObjPerso, MTH_tdxReal _xScreenWidth);
void TFMT_vChangeLetter( HIE_tdxHandleToSuperObject hSuperObjPerso, unsigned char ucPosLetter, unsigned char ucLetter );
void TEXT_vComputeLengthOgString( char *p_szString, tdstTfmtStatus *p_stStatus );
void TFMT_vSetDefaultValuesCharacter(MTH_tdxReal _xCharWidth, MTH_tdxReal _xLineHeight, MTH_tdxReal _xCharZoom);
void TFMT_vInitTextAfficheStructure( void );
unsigned char TFMT_ucNumberOfCurrentTextAffiche( HIE_tdxHandleToSuperObject p_SuperObjPersoTreated );
unsigned char TFMT_ucSetNumber4CurrentTextAffiche( void );
void TFMT_ucClearNumberOfCurrentTextAffiche( HIE_tdxHandleToSuperObject p_SuperObjPersoTreated );
void TFMT_vInitScapingTable ( MTH_tdxReal xValue ) ;
void TFMT_vUpdateSpacingTable ( char *szText ) ;
void TFMT_vInitScaleTable ( MTH_tdxReal xValue ) ;
void TFMT_vUpdateScaleTable ( char *szText ) ;
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __TEXTFRMT_H__ */

View File

@@ -0,0 +1,51 @@
#ifndef __TOOLCAM_H__
#define __TOOLCAM_H__
#if _MSC_VER >= 1000
#pragma once
#endif
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
#define CAM_Nb_Viewport 2
typedef struct tdstViewportManagement_
{
HIE_tdxHandleToSuperObject hCamera;
HIE_tdxHandleToSuperObject hTempCamera;
struct GLI_tdstCamera_ *p_stCamera;
ACP_tdxBool bValid;
}tdstViewportManagement;
typedef struct tdstNodeCamera_
{
HIE_tdxHandleToSuperObject p_stSuperObjectCamera;
LST2_M_DynamicElementDeclaration(tdxHandleToNodeCamera)
} tdstNodeCamera;
void CAM_fn_vCameraManagement(void);
void CAM_fn_vActualizeAViewport(long);
void CAM_fn_vAssignCameraToAViewport(long, HIE_tdxHandleToSuperObject);
#if !defined(PRESS_DEMO)
void CAM_vDisplayInfo(void);
#endif /* PRESS_DEMO */
ACP_tdxBool CAM_fn_bSuperObjectIsACamera(HIE_tdxHandleToSuperObject);
void CAM_fn_vInitCameras(void);
void CAM_fn_vReInitCameras(void);
extern CPA_EXPORT HIE_tdxHandleToSuperObject CAM_fn_hGetActiveCamera(long);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __TOOLCAM_H__ */

View File

@@ -0,0 +1,40 @@
/* FM970130 : Matrix tool*/
/*=========================================================================
* ToolMatr.h : This module contain simple used functions
* This is a part of the Game project.
*
* It contains adding function concerning the matrix management
*
* Version 1.0
* Creation date 30/01/97
* Author Fabien MORALES
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#ifndef TOOL_MATR_H
#define TOOL_MATR_H
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
/********************************************/
/* Operations on Rotation-Matrices */
/********************************************/
/* Set the absolute angle of rotation (X, Y or Z axis) for a super perso matrix :*/
void fn_vSetRotationMatrixX ( POS_tdstCompletePosition *p_stMatrix, GLI_tdxValue xAngle );
void fn_vSetRotationMatrixY ( POS_tdstCompletePosition *p_stMatrix, GLI_tdxValue xAngle );
void fn_vSetRotationMatrixZ ( POS_tdstCompletePosition *p_stMatrix, GLI_tdxValue xAngle );
void fn_vTurnMatrixX(POS_tdstCompletePosition *, MTH_tdxReal);
void fn_vTurnMatrixY(POS_tdstCompletePosition *, MTH_tdxReal);
void fn_vTurnMatrixZ(POS_tdstCompletePosition *, MTH_tdxReal);
#endif /* TOOL_MATR_H */

View File

@@ -0,0 +1,131 @@
/*=========================================================================
* ToolsCPA.h : CPA tools include
*
*
* Version 1.0
* Creation date 10/01/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__CPATOOLS_H__)
#define __CPATOOLS_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
/****************************************
* Here is the list of disabled WARNING *
****************************************/
#if defined(VISUAL)
#pragma warning(disable:4010) /** single-line comment contains line-continuation character **/
#pragma warning(disable:4032) /** formal parameter 1 has different type when promoted **/
#pragma warning(disable:4100) /** unreferenced formal parameter **/
#pragma warning(disable:4115) /** named type definition in parentheses **/
#pragma warning(disable:4127) /** conditional expression is constant **/
#pragma warning(disable:4201) /** nonstandard extension used : nameless struct/union **/
#pragma warning(disable:4213) /** nonstandard extension used : cast on l-value **/
#pragma warning(disable:4214) /** nonstandard extension used : bit field types other than int **/
#pragma warning(disable:4310) /** cast truncates constant value **/
#pragma warning(disable:4514) /** unreferenced inline function has been removed **/
#pragma warning(disable:4702) /** unreachable code **/
#pragma warning(disable:4711) /** selected for automatic inline expansion **/
#endif /* VISUAL */
#if defined(WIN32)&&defined(__cplusplus)
#include "stdafx.h"
#endif /* WIN32&&__cplusplus */
#define HieFriend
#include "ACP_Base.h"
#include "CPA_Expt.h"
#include "CPA_Std.h"
#include "Options\Options.h"
#include "SAI.h"
#include "MTH.h"
#include "POS.h"
#include "GEO.h"
#include "GLD.h"
#if (!defined(U64))
#include "TEX.h"
#endif /* !defined(U64) */
#include "GLI.h"
#include "COL.h"
#include "MEC.h"
/* Shaitan Clean Env {*/
/*#include "ENV.h"*/
/* End Shaitan Clean Env }*/
#include "SND.h"
/* Shaitan Clean Env {*/
/*#include "SRF.h"*/
/* End Shaitan Clean Env }*/
#include "SCT.h"
#include "SPO.h"
#include "LST.h"
/*#include "FON.h"*/
#include "ERM.h"
#include "GMT.h"
#ifdef USE_IPT_DX5
#include "IPT_DX5.h" /* InPuT (absolutely before GAM.h)*/
#else /* USE_IPT_WIN */
#include "IPT.h" /* InPuT (absolutely before GAM.h)*/
#endif /* USE_IPT_WIN */
#include "MMG.h"
#include "SCR.h"
#include "TMR.h"
#include "RND.h"
#include "PCS.h"
#include "PO.h"
/*XB980821*/
#ifndef D_THROW_IPO
#include "IPO.h"
#endif /* D_THROW_IPO */
/*End XB*/
/* Oliv' - Portage v15*/
#ifndef U64
#include "DPT.h"
#endif
/* EndOfOliv'*/
/* FBF {*/
/*#include "MNU.h"*/
/* FBF }*/
#ifdef GAM_VIGNETTE
#include "VIG.h"
#endif /* GAM_VIGNETTE */
#include "SHW.h"
#include "SIF.h"
/*XB980821*/
#ifndef D_THROW_IPO
#include "ISI.h"
#endif /* D_THROW_IPO */
/*End XB*/
#ifndef D_THROW_PRT
#include "PRT.h"
#endif /* D_THROW_PRT */
/*#include "CMP.h"*/
/*XB980821*/
#ifndef D_THROW_IPO
#include "ISI.h"
#endif /* D_THROW_IPO */
/*End XB*/
#include "FIL.h"
#ifdef GAM_VIDEO
#include "VDO.h"
#endif /* GAM_VIDEO */
#include "TMP.h"
#include "AI.h"
#include "GAMVers.h"
#include "GAMLst.h"
#include "Macros.h"
#endif /* __CPATOOLS_H__ */

View File

@@ -0,0 +1,401 @@
/*
* Loading of differents Zdx Tables in a global structure
* (Csa means CollSetChoice Array)
*/
#ifndef __ZDXSTUFF_H
#define __ZDXSTUFF_H
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/* ANNECY AV NONEVER {*/
/* EXTERN ACP_tdxHandleOfObject g_hNeverMovingZDM; */
/* END ANNECY AV NONEVER }*/
#define C_MaxLengthOfName 20
#define C_lAllZdxAreOn 0xFFFFFFFF
#define C_lModuleZdxAreOn 1
#define C_lCharacterZdxAreOn 2
#define C_lZdeAreOn 4
#define C_lZddAreOn 8
#define C_lZdrAreOn 16
#define C_lZdmAreOn 32
/*----------------------------------------------------------------------
* Handles
*--------------------------------------------------------------------*/
typedef struct tdstGeometricZdxList_ * ZDX_tdxHandleToGeoZdxList;
typedef struct tdstZdxIndexList_ * ZDX_tdxHandleToZdxIndexList;
typedef struct tdstZoneSetEncapsulation_ * ZDX_tdxHandleToZoneSetEncapsulation;
LST2_M_StaticUseListOf(ZDX_tdxHandleToGeoZdxList);
LST2_M_StaticUseListOf(ZDX_tdxHandleToZoneSetList);
LST2_M_StaticUseListOf(ZDX_tdxHandleToZdxIndexList);
LST2_M_StaticUseListOf(ZDX_tdxHandleToZoneSetEncapsulation);
#ifdef D_ZdxStuff_StructureDefine
/*----------------------------------------------------------------------
* Structures
*--------------------------------------------------------------------*/
typedef struct tdstCsaList_
{
LST2_M_StaticAnchorDeclaration(ZDX_tdxHandleToZoneSetEncapsulation) hZoneSetEncapsulationList;
} tdstCsaList;
/*--------------------------------------------------------------------*/
typedef struct tdstZdxList_
{
LST2_M_StaticAnchorDeclaration(ZDX_tdxHandleToGeoZdxList) hGeoZdxList;
unsigned short uwNumberOfZdx;
} tdstZdxList;
/*--------------------------------------------------------------------*/
typedef struct tdstGeometricZdxList_
{
LST2_M_StaticElementDeclaration(ZDX_tdxHandleToGeoZdxList)
ACP_tdxHandleOfObject hGeoObj;
} tdstGeometricZdxList;
/*--------------------------------------------------------------------*/
typedef struct tdstZoneSetList_
{
LST2_M_StaticAnchorDeclaration(ZDX_tdxHandleToZdxIndexList) hZdxIndexList;
} tdstZoneSetList;
/*--------------------------------------------------------------------*/
typedef struct tdstZdxIndexList_
{
LST2_M_StaticElementDeclaration(ZDX_tdxHandleToZdxIndexList)
unsigned short uwZdxIndex;
} tdstZdxIndexList;
/*--------------------------------------------------------------------*/
/*
* This structure is added for binarisation
*/
typedef struct tdstZoneSetEncapsulation_
{
LST2_M_StaticElementDeclaration(ZDX_tdxHandleToZoneSetEncapsulation)
tdstZoneSetList * p_stZoneSetList;
/* Oliv' - 21/06/1999 */
#ifndef D_THROW_ZSE_INDEX
unsigned short uwIndex;
#endif
/* EndOfOliv' */
} tdstZoneSetEncapsulation;
/*--------------------------------------------------------------------*/
#endif /* D_ZdxStuff_StructureDefine */
/*----------------------------------------------------------------------
* Sections
*--------------------------------------------------------------------*/
#define C_SectionCreateNewArrayOfZdx "CreateNewArrayOfZdx"
#define C_SectionCreateNewZoneSetArray "CreateNewArrayOfZoneSet"
/* MR0404*/
#define C_SectionNewActivationZone "NewActivationZone"
/* JO 22/04/97 */
#define C_SectionPhysicalCollideSetDescription "Physical_CollSet"
/* JO 15/07/97*/
#define C_SectionAddActivation "AddActivation"
/*----------------------------------------------------------------------
* Entries
*--------------------------------------------------------------------*/
#define C_EntryGeometricObject "GeometricObject"
#define C_EntryNewCollSet "NewCollSet"
#define C_EntryEndCollSet "EndCollSet"
#define C_EntryNewZdd "Zdd"
#define C_EntryNewZdm "Zdm"
#define C_EntryNewZde "Zde"
#define C_EntryNewZdr "Zdr"
#define C_EntryNewIndex "ZdxIndex"
#define C_EntryActivationZone "ActivationZone"
/*----------------------------------------------------------------------
* Miscellaneous
*--------------------------------------------------------------------*/
#define C_szTypeZdd "Zdd"
#define C_szTypeZdm "Zdm"
#define C_szTypeZde "Zde"
#define C_szTypeZdr "Zdr"
#define C_ucTypeZdd (unsigned char)0
#define C_ucTypeZdm (unsigned char)1
#define C_ucTypeZde (unsigned char)2
#define C_ucTypeZdr (unsigned char)3
/*----------------------------------------------------------------------
* CallBacks
*--------------------------------------------------------------------*/
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackZdxArrayDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
SCR_tde_Anl_ReturnValue fn_eScriptCallBackCreateNewZoneSetArray(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/* MR0404*/
SCR_tde_Anl_ReturnValue fn_eScriptCallBackCreateNewActivationZone(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
/* JO 15/07/97*/
SCR_tde_Anl_ReturnValue fn_eScriptCallBackCreateActivation(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*----------------------------------------------------------------------
* Memory management functions
*--------------------------------------------------------------------*/
extern CPA_EXPORT ZDX_tdxHandleToZdxList fn_p_stCreateZdxListElement();
extern CPA_EXPORT ZDX_tdxHandleToZdxIndexList fn_p_stCreateZdxIndexListElement();
extern CPA_EXPORT ZDX_tdxHandleToGeoZdxList fn_p_stCreateGeometricZdxListElement();
extern CPA_EXPORT ZDX_tdxHandleToZoneSetList fn_p_stCreateZoneSetListElement();
extern CPA_EXPORT ZDX_tdxHandleToCsaList fn_p_stCreateCsaListElement();
extern CPA_EXPORT void fn_vFreeZdxListElement(ZDX_tdxHandleToZdxList p_stZdxList);
extern CPA_EXPORT void fn_vFreeZdxIndexListElement(ZDX_tdxHandleToZdxIndexList p_stZdxIndexList);
extern CPA_EXPORT void fn_vFreeGeometricZdxListElement(ZDX_tdxHandleToGeoZdxList p_stGeoZdxList);
extern CPA_EXPORT void fn_vFreeZoneSetListElement(ZDX_tdxHandleToZoneSetList p_stZoneSetList);
extern CPA_EXPORT void fn_vFreeCsaListElement(ZDX_tdxHandleToCsaList p_stCsaList);
/* JO 24/09/97*/
extern CPA_EXPORT ZDX_tdxHandleToZoneSetEncapsulation fn_p_stCreateZoneSetEncapsulation();
extern CPA_EXPORT void fn_vFreeZoneSetEncapsulation(ZDX_tdxHandleToZoneSetEncapsulation);
/*----------------------------------------------------------------------
* Access functions
*--------------------------------------------------------------------*/
extern CPA_EXPORT unsigned short fn_uwGetNumberOfGeoObjInList(ZDX_tdxHandleToZdxList hZdxList);
/*--------------------------------------------------------------------*/
long fn_lGetZdxListNumberOfElements(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
/*--------------------------------------------------------------------*/
/*** tdstGeometricZdxList ***/
extern CPA_EXPORT ACP_tdxHandleOfObject fn_hGetGeoObjFromGeoZdx(ZDX_tdxHandleToGeoZdxList hGeoZdxList);
extern CPA_EXPORT void fn_vSetGeoObjInGeoZdx(ZDX_tdxHandleToGeoZdxList hGeoZdxList,ACP_tdxHandleOfObject hGeoObj);
/*--------------------------------------------------------------------*/
/*** tdstZdxIndexList ***/
extern CPA_EXPORT unsigned short fn_uwGetIndexFromZdxIndexList(struct tdstZdxIndexList_ * p_stZdxIndexList);
extern CPA_EXPORT ZDX_tdxHandleToZdxIndexList ZDX_fn_hGetNextBrotherInZdxIndexList(ZDX_tdxHandleToZdxIndexList hZdxIndexList);
/*--------------------------------------------------------------------*/
/*** Mixed access functions ***/
/* JO 20/10/97 for optimisation*/
extern CPA_EXPORT ZDX_tdxHandleToZoneSetList fn_p_stGetCurrentZoneSetOfType2(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void fn_vUpdateCurrentActivationForCharacter(HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT ZDX_tdxHandleToZoneSetList fn_p_stGetCurrentZoneSetOfType(unsigned char ucZoneType,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT unsigned short fn_uwGetIndexOfZdx(unsigned char ucZoneNumber,struct tdstZoneSetList_ * p_stZoneSetList);
extern CPA_EXPORT void fn_vSetGeometricZdxOfTypeAtIndex(unsigned char ucZoneType,unsigned short uwIndex,HIE_tdxHandleToSuperObject hSuperObj,ACP_tdxHandleOfObject hGeoObj);
extern CPA_EXPORT ACP_tdxHandleOfObject fn_hGetGeometricZdxOfTypeAtIndex(unsigned char ucZoneType,unsigned short uwIndex,HIE_tdxHandleToSuperObject hSuperObj);
extern CPA_EXPORT void ZDX_fn_vDisplayAllZdx(GLD_tdstViewportAttributes * p_stViewPort,HIE_tdxHandleToSuperObject p_stSupObject);
/*ANNECY TQ 11/03/98{*/
extern CPA_EXPORT void ZDX_fn_vDisplayAllBoundingVolumes(GLD_tdstViewportAttributes * p_stViewPort,HIE_tdxHandleToSuperObject p_stSupObject);
/*ENDANNECY TQ}*/
/*--------------------------------------------------------------------*/
/*** Access functions for editors ***/
extern CPA_EXPORT ACP_tdxHandleOfObject ZDX_fn_hGetGeometricZdxInListAtIndex(unsigned short uwIndex,ZDX_tdxHandleToZdxList hZdxList);
extern CPA_EXPORT void ZDX_fn_vSetGeometricZdxInListAtIndex(unsigned short uwIndex,ZDX_tdxHandleToZdxList hZdxList,ACP_tdxHandleOfObject hGeoObj);
extern CPA_EXPORT ZDX_tdxHandleToZdxList ZDX_fn_hCreateEmptyListOftype(unsigned char ucZonetype,unsigned short uwNumberOfElements);
extern CPA_EXPORT ZDX_tdxHandleToZdxIndexList ZDX_fn_hGetFirstZdxIndexListOfTypeInZoneSet(unsigned char ucZoneType,ZDX_tdxHandleToZoneSetList hZoneSet);
extern CPA_EXPORT ZDX_tdxHandleToZdxList ZDX_fn_hCreateEmptyListOftype(unsigned char ucZonetype,unsigned short uwNumberOfElements);
#ifdef ACTIVE_EDITOR
extern CPA_EXPORT void ZDX_fn_vDestructZdxList(ZDX_tdxHandleToZdxList hZdxList);
#endif /* ACTIVE_EDITOR */
/*--------------------------------------------------------------------*/
/*** New for convenience... ***/
ACP_tdxHandleOfObject ZDX_fn_hGetGeoObjOfTypeAndMatrixFromZdxInfos(
HIE_tdxHandleToSuperObject _hCharacter,
unsigned char _ucZoneType,
unsigned char _ucModuleOrCharacter,
unsigned char _ucChannelNumber,
POS_tdstCompletePosition ** _p_hMatrix);
/*--------------------------------------------------------------------
* Return Game Material if this type exist, NULL if can't find it
*--------------------------------------------------------------------*/
GMT_tdxHandleToGameMaterial fn_hIsTypeExistsInGeoObj(ACP_tdxHandleOfObject _hGeoObj,GMT_tdxMask _wMaterialMask);
/*--------------------------------------------------------------------*/
/*** Functions to use Zde ***/
ACP_tdxBool fn_bIsThisModuleZdeInContactWithZdeOfTypes(HIE_tdxHandleToSuperObject _hSuperObj,unsigned short _uwChannelNumber,GMT_tdxMask wMaterialMask);
ACP_tdxBool fn_bIsThisZdeInClashWithCharacterZdeOfTypes(ACP_tdxHandleOfObject _hGeoObj,POS_tdstCompletePosition * _hMatrix,HIE_tdxHandleToSuperObject _hCharacter,GMT_tdxMask wMaterialMask);
/*** New request from design ***/
void fn_vGetAllCharactersInContactWithThisZde(HIE_tdxHandleToSuperObject _hSuperObj,unsigned char _ucModuleOrCharacter,unsigned char _ucChannelNumber,HIE_tdxHandleToSuperObject * _hSuperObjTable,unsigned short * _p_wNumber,GMT_tdxMask _wMaterialMask);
void fn_vGetAllCharactersInContactWithThisModuleZde(
HIE_tdxHandleToSuperObject _hSuperObj,
unsigned char _ucChannelNumber,
HIE_tdxHandleToSuperObject * _hSuperObjTable,
GMT_tdxMask _wMaterialMask,
long _lMaxNumberOfObjects,
long * _p_lCurrentNumberOfObjects);
void fn_vGetAllCharacterInContactWithThisGeoObj(
HIE_tdxHandleToSuperObject _hSuperObj,
ACP_tdxHandleOfObject _hGeoObj,
POS_tdstCompletePosition * _hMatrix,
HIE_tdxHandleToSuperObject * _hSuperObjTable,
GMT_tdxMask _wMaterialMask,
long _lMaxNumberOfObjects,
long * _p_lCurrentNumberofObjects);
ACP_tdxBool fn_bCharacterOwnsZdeOfType(HIE_tdxHandleToSuperObject _hCharacter,GMT_tdxMask _wMaterialMask);
ACP_tdxBool fn_bIsTypeExistsInGeoObj(ACP_tdxHandleOfObject _hGeoObj,GMT_tdxMask _wMaterialMask);
/*** New request from AI ***/
ACP_tdxBool fn_bThisZdeFromOneVsAllZdeFromTwo(
HIE_tdxHandleToSuperObject _hCharacterONE,
unsigned char _ucModuleOrCharacter,
unsigned char _ucChannelNumber,
HIE_tdxHandleToSuperObject _hCharacterTWO,
GMT_tdxMask _wMaterialMask);
/*** Re-New request from AI (oh yes) ***/
ACP_tdxBool fn_bThisZdeFromOneVsThisZdeFromTwo(
HIE_tdxHandleToSuperObject _hCharacterONE,
unsigned char _ucModuleOrCharacterForONE,
unsigned char _ucChannelNumberForONE,
HIE_tdxHandleToSuperObject _hCharacterTWO,
unsigned char _ucModuleOrCharacterForTWO,
unsigned char _ucChannelNumberForTWO);
ACP_tdxBool fn_bThisTypeFromOneVsThisTypeFromTwo(
HIE_tdxHandleToSuperObject _hCharacterONE,
GMT_tdxMask _wMaterialMaskOfONE,
HIE_tdxHandleToSuperObject _hCharacterTWO,
GMT_tdxMask _wMaterialMaskOfTWO);
void fn_vThisTypeVsThisType(
HIE_tdxHandleToSuperObject _hCharacter,
GMT_tdxMask _wCharacterMask,
GMT_tdxMask _wOthersMask,
HIE_tdxHandleToSuperObject * _p_hObjectTable,
unsigned short * _p_uwNumber);
/*--------------------------------------------------------------------*/
/*** Coz Physical Collide Set is now a CPA module ***/
void fn_vDetectAllObjectsInThisModule(
HIE_tdxHandleToSuperObject _hCharacter,
ACP_tdxHandleOfObject _hModule,
POS_tdstCompletePosition * _p_stMatrix,
HIE_tdxHandleToSuperObject * _p_hSuperObjTable,
long _lMaxNumberOfObjects,
long * _p_lCurrentNumberOfObjects);
PCS_tdxHandleToPhysicalCollSet fn_pGetPhysicalCollSet(HIE_tdxHandleToSuperObject hSuperObj,unsigned char ucChannelNumber,unsigned char ucSubChannelNumber,POS_tdstCompletePosition * p_stMatrix);
ACP_tdxHandleOfObject fn_hGetGeoObjOfZdm(HIE_tdxHandleToSuperObject hSuperObj,unsigned char ucChannelNumber,unsigned char ucSubChannelNumber);
HIE_tdxHandleToSuperObject * fn_pGetObjectsInZone (HIE_tdxHandleToSuperObject hObj,long lIndex,unsigned short * uwnb);
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackPhysicalCollideSetDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*** New request from AI ***/
ACP_tdxBool fn_bIsCharacterTWODetectedByThisZddOfCharacterOne(
HIE_tdxHandleToSuperObject _hCharacterONE,
unsigned char _ucModuleOrCharacter,
unsigned char _ucChannelNumber,
HIE_tdxHandleToSuperObject _hCharacterTWO);
ACP_tdxBool fn_bIsCharacterTWODetectedByCharacterOne(
HIE_tdxHandleToSuperObject _hCharacterONE,
HIE_tdxHandleToSuperObject _hCharacterTWO);
void fn_vFirstTimeInitCollisionGeometricObject();
void fn_vClearCollisionGeometricObject(void);
void fn_vClearStaticCollisionGeometricObject(void);
ACP_tdxHandleOfObject fn_hStaticMakeOneObjectFromManyZdx(
unsigned char _ucZoneType,
HIE_tdxHandleToSuperObject _hCharacter);
ACP_tdxHandleOfObject fn_hMakeOneObjectFromManyZdx(
unsigned char _ucZoneType,
HIE_tdxHandleToSuperObject _hCharacter);
ACP_tdxHandleOfObject fn_hMakeOneObjectFromManyOthers(
unsigned char _ucZoneType,
HIE_tdxHandleToSuperObject _hCharacter,
ACP_tdxHandleOfObject _hTargetObject);
EXTERN ACP_tdxHandleOfObject g_hCollisionGeoObj;
EXTERN ACP_tdxHandleOfObject g_hStaticCollisionGeoObj;
/* ANNECY AV {*/
/*EXTERN ACP_tdxHandleOfObject g_hZdrCollisionGeoObj;*/
/* END ANNECY AV }*/
/*--------------------------------------------------------------------*/
/*** Zdx drawing management for one character ***/
extern CPA_EXPORT void fn_vSetActivationOfModuleZdxDrawing(
HIE_tdxHandleToSuperObject _hCharacter,
ACP_tdxBool _bState);
extern CPA_EXPORT void fn_vSetActivationOfCharacterZdxDrawing(
HIE_tdxHandleToSuperObject _hCharacter,
ACP_tdxBool _bState);
extern CPA_EXPORT void fn_vSetActivationOfZoneTypeDrawing(
HIE_tdxHandleToSuperObject _hCharacter,
ACP_tdxBool _bState,
unsigned char _ucZoneType);
extern CPA_EXPORT void fn_vUnactivateAllZdxDisplay(
HIE_tdxHandleToSuperObject _hCharacter);
extern CPA_EXPORT void fn_vActivateAllZdxDisplay(
HIE_tdxHandleToSuperObject _hCharacter);
/*--------------------------------------------------------------------*/
/*** Zdx drawing management for all characters ***/
extern CPA_EXPORT void fn_vSetActivationOfModuleZdxDrawingForAllCharacters(
ACP_tdxBool _bState);
extern CPA_EXPORT void fn_vSetActivationOfCharacterZdxDrawingForAllCharacters(
ACP_tdxBool _bState);
extern CPA_EXPORT void fn_vUnactivateAllZdxDisplayForAllCharacters(void);
extern CPA_EXPORT void fn_vActivateAllZdxDisplayForAllCharacters(void);
extern CPA_EXPORT void fn_vSetActivationOfZoneTypeDrawingForAllCharacters(
ACP_tdxBool _bState,unsigned char _ucZoneType);
/*--------------------------------------------------------------------*/
/*** Special functions to test integrity of Activation Lists ***/
extern CPA_EXPORT void fn_vCorrectActivationList(
ZDX_tdxHandleToCsaList _p_stCsaList,long _lNumberOfState);
/*--------------------------------------------------------------------*/
/*** Functions used for tests in the console ***/
/* ANNECY AV {*/
/* Not used anymore
ACP_tdxBool GAM_fn_bTestZoneDisplacement (HIE_tdxHandleToSuperObject _hCharacter,
unsigned char _ucZoneType,
long _lZoneNumber,
MTH3D_tdstVector * _p_stDisplacement);
*/
/* END ANNECY AV }*/
/*--------------------------------------------------------------------*/
/*** Function to order ZoneSetList by index ***/
extern CPA_EXPORT void GAM_fn_vOrderZoneSetList(ZDX_tdxHandleToZoneSetList _hZoneSetList);
tdeCollSetPrivilegedActivation fn_eGetPrivilegedActivationZoneOfCharacter(
unsigned char _ucZoneType,
HIE_tdxHandleToSuperObject _hCharacter,
ACP_tdxIndex _xIndex);
ACP_tdxBool fn_bIsAllDefaultPrivilegedActivationZoneOfCharacter(
unsigned char _ucZoneType,
HIE_tdxHandleToSuperObject _hCharacter);
/*--------------------------------------------------------------------*/
/*#define ZDX_M_ForEachZdxIndexListOfTypeInZoneSet(_ZoneType,_hZoneSet,_hZdxIndexList,_i) \
for \
( \
_i=0,(_hZdxIndexList)=ZDX_fn_hGetFirstZdxIndexListOfTypeInZoneSet(_ZoneType,_hZoneSet); \
_hZdxIndexList; \
_i++,(_hZdxIndexList)=ZDX_fn_hGetNextBrotherInZdxIndexList(_hZdxIndexList) \
)*/
/* AR9808 This macro wasn't valid for optimized static lists*/
#define ZDX_M_ForEachZdxIndexListOfTypeInZoneSet(_ZoneType,_hZoneSet,_hZdxIndexList,_i) \
LST2_M_StaticForEachElementOf(&_hZoneSet->hZdxIndexList, _hZdxIndexList, _i)
/*--------------------------------------------------------------------
* Return geometric zone if active, NULL if inactive
*--------------------------------------------------------------------*/
ACP_tdxHandleOfObject fn_hIsThisZoneActive(
HIE_tdxHandleToSuperObject _hCharacter,
unsigned char _ucZoneType,
unsigned char _ucZoneNumber);
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __ZDXSTUFF_H */

View File

@@ -0,0 +1,91 @@
/*=========================================================================
* Memory.h : Contain the memory's functions.
* (based on CAP memory (see Pierrick))
* This is a part of the Game project.
*
* Version 1.0
* Creation date 30/08/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__ZEMEM_H__)
#define __ZEMEM_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
#define ACP_TextMemoryChannel 0
/*XB 98/10/05*/
#if !defined(U64)
#define ACP_FixMemoryChannel 1
#define ACP_LevelMemoryChannel 2
#else
#define ACP_FixMemoryChannel 0
#define ACP_LevelMemoryChannel 1
#define ACP_U64_FixMemoryChannel 2
#define ACP_U64_LevelMemoryChannel 3
//XB 16/06/99
#define ACP_U64_LDDMemoryChannel 4
//End XB 16/06/99
#endif /* !U64 */
/*End XB*/
#define GAM_C_ActionMalloc 0
#define GAM_C_ActionRealloc 1
#define GAM_C_ActionFree 2
/**** Here are functions definition ****/
void fn_vFirstInitGameMemory(void);
void fn_vLastDesinitGameMemory(void);
void GAM_fn_vSetGameMemoryInFix(void);
void GAM_fn_vSetGameMemoryInLevel(void);
void *fnp_vGameDebugMallocInHLM(unsigned long ulSize,char *szFile,unsigned long ulLine);
void *fnp_vGameMallocInHLM(unsigned long ulSize);
void fn_vGameFreeInHLM(void *p_vPointer);
void GAM_fn_vMemoryLogFile(void *p_vPointer,unsigned char ucAction,char *szFile,unsigned long ulLine,unsigned long ulSize);
void GAM_fn_vPrintMemoryInformation(void);
void fn_vGameTestMemory(void);
void GAM_PrintUsedStaticMemory(void);
void GAM_PrintAllUsedStaticMemory(void);
void fn_vFreeFixAllowedMemory(void);
void fn_vFreeLevelAllowedMemory(void);
#if !defined(U64)
SCR_tde_Anl_ReturnValue fn_eScriptCallBackMemoryDescription(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
#ifndef RETAIL
#define M_p_GameMallocInHLM(ulSize) \
fnp_vGameDebugMallocInHLM(ulSize,__FILE__,__LINE__)
#else
#define M_p_GameMallocInHLM(ulSize) \
fnp_vGameMallocInHLM(ulSize)
#endif
#define M_GameFreeInHLM(p_vPointer) \
{ \
GAM_fn_vMemoryLogFile(p_vPointer,GAM_C_ActionFree,__FILE__,__LINE__,0); \
fn_vGameFreeInHLM((void*)p_vPointer); \
p_vPointer = NULL; \
}
EXTERN unsigned char GAM_g_ucHLMMemoryBlock;
#if defined(U64)
extern struct MTH3D_tdstVector_ *g_p_stVectorNull;
extern struct MTH3D_tdstMatrix_ *g_p_stIdentityMatrix;
#endif
#endif /* __ZEMEM_H__ */

Some files were not shown because too many files have changed in this diff Show More