477 lines
21 KiB
C
477 lines
21 KiB
C
#define D_Brain_StructureDefine
|
|
|
|
#include "AIUseCPA.h"
|
|
#include "TypePtr.h"
|
|
#include "CFast.h"
|
|
#include "EnumProc.h"
|
|
#include "EnumCond.h"
|
|
#include "EnumAct.h"
|
|
#include "EnumFunc.h"
|
|
#include "EnumFild.h"
|
|
#include "EnumOper.h"
|
|
#include "EnumKey.h"
|
|
#include "ActConst.h"
|
|
#include "DsgMem.h"
|
|
#include "DsgMemC.h"
|
|
#include "Specif\AItools.h"
|
|
#ifndef U64
|
|
#include "sna.h"
|
|
#endif
|
|
|
|
//XB 05/08/99
|
|
#ifndef D_THROW_CFAST_AI
|
|
//End XB
|
|
|
|
extern void fn_vSetUltraOperatorPerso(HIE_tdxHandleToSuperObject hCurrentSuperObjPerso,HIE_tdxHandleToSuperObject hNewCurrentSuperObjPerso);
|
|
extern tdstNodeInterpret *fn_p_stOperatorGetPerso(HIE_tdxHandleToSuperObject p_SuperObjPerso, tdstNodeInterpret *p_stTree, HIE_tdxHandleToSuperObject *hSuperObjPersoFound) ;
|
|
extern void fn_vSetProcedureActionReturn(tducActionReturn ucActionReturn);
|
|
extern tducActionReturn fn_ucGetProcedureActionReturn(void);
|
|
|
|
tdstGetSetParam CFast_g_a_stParam[CFast_lMaxTreeDepth] ;
|
|
tdstNodeInterpret CFast_g_a_stPseudoTree[7][CFast_lMaxTreeDepth] ;
|
|
/*long CFast_g_a_lLong[CFast_lMaxTreeDepth] ;*/
|
|
tdp_fn_p_stConditionFunctionPtr CFast_g_p_fn_CondPtr ;
|
|
tdp_fn_p_stOperatorFunctionPtr CFast_g_p_fn_OpPtr ;
|
|
tdp_fn_p_stProcedureFunctionPtr CFast_g_p_fn_ProcPtr ;
|
|
tdp_fn_p_stFunctionFunctionPtr CFast_g_p_fn_FuncPtr ;
|
|
tdp_fn_p_stKeyWordFunctionPtr CFast_g_p_fn_KeyWordPtr ;
|
|
tdp_fn_p_stMetaActionInitFunctionPtr CFast_g_p_fn_MetaInitPtr ;
|
|
tdp_fn_ucMetaActionFunctionPtr CFast_g_p_fn_MetaPtr ;
|
|
ACP_tdxBool CFast_g_bProcessReflex ;
|
|
ACP_tdxBool CFast_g_bMetaActionInRfx ;
|
|
|
|
tdeTypeInterpret CFast_g_aEvt2Eti[] = {
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Real,
|
|
E_ti_String,
|
|
E_ti_WayPointRef,
|
|
E_ti_PersoRef,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_ConstantVector,
|
|
E_ti_Module,
|
|
E_ti_DsgVarRef,
|
|
E_ti_ActionRef,
|
|
E_ti_Button,
|
|
E_ti_Mask,
|
|
E_ti_Constant,
|
|
E_ti_LipsSynchroRef,
|
|
E_ti_ObjectTableRef,
|
|
E_ti_SuperObjectRef,
|
|
E_ti_Constant,
|
|
E_ti_FamilyRef,
|
|
E_ti_SoundEventRef,
|
|
E_ti_ComportRef,
|
|
E_ti_Constant,
|
|
E_ti_Constant,
|
|
E_ti_ParticleGenerator,
|
|
E_ti_GameMaterialRef,
|
|
E_ti_Color,
|
|
E_ti_ModelRef,
|
|
E_ti_Constant,
|
|
E_ti_Light,
|
|
E_ti_Caps,
|
|
E_ti_Graph
|
|
} ;
|
|
|
|
/* Mind of current perso */
|
|
AI_tdstMind *p_stGlobalMind;
|
|
struct tdstNodeInterpret_ *gp_stRefTree;
|
|
struct tdstNodeInterpret_ *gp_stPseudoTree;
|
|
HIE_tdxHandleToSuperObject g_hSuperObjectPerso;
|
|
char *p_cGlobalDsgMemBuffer;
|
|
tdstDsgVarInfo *p_stGlobalDsgVarInfo;
|
|
|
|
#define M_LocalGetDsgVarAddr(mind, ind) (p_cLocalDsgMemBuffer + p_stLocalDsgVarInfo[ind].ulOffsetInDsgMem)
|
|
/*#define M_LocalGetDsgVarAddr(mind, ind) (p_cLocalVarsArray[ind])*/
|
|
|
|
#ifdef __DEBUG_AI__
|
|
#ifdef ACTIVE_EDITOR
|
|
#define CFast_M_MakeNode(val, type, skip, depth, bpt) { {{(enum tdeCondId_)val}}, (tdeTypeInterpret)type, skip, depth }
|
|
#else
|
|
#define CFast_M_MakeNode(val, type, skip, depth, bpt) { {{(enum tdeCondId_)val}}, (tdeTypeInterpret)type, skip, depth }
|
|
#endif /* ACTIVE_EDITOR */
|
|
#else
|
|
#define CFast_M_MakeNode(val, type, skip, depth, bpt) { val, skip, depth, type }
|
|
#endif /* __DEBUG_AI__ */
|
|
|
|
#ifdef U64
|
|
#define CFast_M_MakeRef(a, b, c, d) { b, c, d }
|
|
#else
|
|
#define CFast_M_MakeRef(a, b, c, d) { b }
|
|
#endif
|
|
|
|
#ifdef U64
|
|
void CFast_vCalcAllCodeSizes(void) {
|
|
/*
|
|
long i = 0 ;
|
|
while( CFast_gast_ArrayFunctions[i].ml_SizeOfTree != 0L )
|
|
{
|
|
CFast_gast_ArrayFunctions[i].ml_SizeOfCode -= (long)(CFast_gast_ArrayFunctions[i].mfnv_Function);
|
|
i++ ;
|
|
}
|
|
*/
|
|
}
|
|
#endif /* U64 */
|
|
|
|
|
|
/***************************************/
|
|
void CFast_fn_vSetUltraOperatorPersoRef(int i)
|
|
{
|
|
fn_vSetUltraOperatorPerso(g_hSuperObjectPerso, M_GetSuperObject(M_p_stPersoRefInterpret(gp_stRefTree + i))) ;
|
|
}
|
|
/***************************************/
|
|
void CFast_fn_vSetUltraOperatorMainActor(void) {
|
|
fn_vSetUltraOperatorPerso(g_hSuperObjectPerso, MC_fn_hGetCharacterInMainCharacterNode(MC_fn_hGetFirstMainCharNode())) ;
|
|
}
|
|
/***************************************/
|
|
/*void CFast_fn_vSetUltraOperatorWorld(void) {
|
|
fn_vSetUltraOperatorPerso(g_hSuperObjectPerso, g_stEngineStructure.h_WorldCaracter) ;
|
|
}*/
|
|
/***************************************/
|
|
void CFast_fn_vSetUltraOperatorPersoVar(int i)
|
|
{
|
|
HIE_tdxHandleToSuperObject hNewCurrentSuperObjPerso;
|
|
tdstNodeInterpret stTmpTree;
|
|
M_SetTypeInterpret(&stTmpTree, E_ti_DsgVarRef);
|
|
M_lValueInterpret(&stTmpTree) = i;
|
|
fn_p_stOperatorGetPerso(g_hSuperObjectPerso,&stTmpTree,&hNewCurrentSuperObjPerso);
|
|
fn_vSetUltraOperatorPerso(g_hSuperObjectPerso, hNewCurrentSuperObjPerso);
|
|
}
|
|
|
|
/***************************************/
|
|
void CFast_memcpy(int i, int j, int k)
|
|
{
|
|
long *pdest = (long *) &CFast_g_a_stPseudoTree[i][j], *psrc = (long *) (gp_stRefTree + k);
|
|
#if defined(__DEBUG_AI__)
|
|
memcpy(pdest, psrc, sizeof(tdstNodeInterpret));
|
|
#else
|
|
/* Size of tdstNodeInterpret in release is 8 */
|
|
*pdest++ = *psrc++;
|
|
*pdest++ = *psrc++;
|
|
#endif
|
|
}
|
|
|
|
/***************************************/
|
|
void CFast_CallFunction1_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[1]) ;
|
|
}
|
|
void CFast_CallFunction2_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[2]) ;
|
|
}
|
|
void CFast_CallFunction3_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[3]) ;
|
|
}
|
|
void CFast_CallFunction4_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[4]) ;
|
|
}
|
|
void CFast_CallFunction5_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[5]) ;
|
|
}
|
|
void CFast_CallFunction6_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[6]) ;
|
|
}
|
|
void CFast_CallFunction7_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[7]) ;
|
|
}
|
|
void CFast_CallFunction8_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[8]) ;
|
|
}
|
|
void CFast_CallFunction9_Static(int iInd)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[9]) ;
|
|
}
|
|
|
|
void CFast_CallFunction1_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[1]) ;
|
|
}
|
|
void CFast_CallFunction2_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[2]) ;
|
|
}
|
|
void CFast_CallFunction3_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[3]) ;
|
|
}
|
|
void CFast_CallFunction4_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[4]) ;
|
|
}
|
|
void CFast_CallFunction5_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[5]) ;
|
|
}
|
|
void CFast_CallFunction6_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[6]) ;
|
|
}
|
|
void CFast_CallFunction7_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[7]) ;
|
|
}
|
|
void CFast_CallFunction8_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[8]) ;
|
|
}
|
|
void CFast_CallFunction9_NoStatic(void)
|
|
{
|
|
a_stFunctionTable[M_eFuncIdInterpret(CFast_g_a_stPseudoTree[E_ti_Function])].p_fn_p_stFunctionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Function]+1, &CFast_g_a_stParam[9]) ;
|
|
}
|
|
|
|
/***************************************/
|
|
long CFast_CallCondition_Static(int iInd)
|
|
{
|
|
long temp;
|
|
a_stConditionTable[M_eCondIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stConditionFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &temp) ;
|
|
return temp;
|
|
}
|
|
long CFast_CallCondition_NoStatic(void)
|
|
{
|
|
long temp;
|
|
a_stConditionTable[M_eCondIdInterpret(CFast_g_a_stPseudoTree[E_ti_Condition])].p_fn_p_stConditionFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Condition]+1, &temp) ;
|
|
return temp;
|
|
}
|
|
/***************************************/
|
|
void CFast_CallVector0_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[0]) ;
|
|
}
|
|
void CFast_CallVector1_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[1]) ;
|
|
}
|
|
void CFast_CallVector2_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[2]) ;
|
|
}
|
|
void CFast_CallVector3_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[3]) ;
|
|
}
|
|
void CFast_CallVector4_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[4]) ;
|
|
}
|
|
void CFast_CallVector5_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[5]) ;
|
|
}
|
|
void CFast_CallVector6_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[6]) ;
|
|
}
|
|
void CFast_CallVector7_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[7]) ;
|
|
}
|
|
void CFast_CallVector8_Static (int iInd) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, gp_stPseudoTree+iInd, &CFast_g_a_stParam[8]) ;
|
|
}
|
|
void CFast_CallVector0_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[0]) ;
|
|
}
|
|
void CFast_CallVector1_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[1]) ;
|
|
}
|
|
void CFast_CallVector2_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[2]) ;
|
|
}
|
|
void CFast_CallVector3_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[3]) ;
|
|
}
|
|
void CFast_CallVector4_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[4]) ;
|
|
}
|
|
void CFast_CallVector5_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[5]) ;
|
|
}
|
|
void CFast_CallVector6_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[6]) ;
|
|
}
|
|
void CFast_CallVector7_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[7]) ;
|
|
}
|
|
void CFast_CallVector8_NoStatic (void) {
|
|
a_stTypeTable[E_ti_Vector].p_fn_p_stEvalTypePtr(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[6], &CFast_g_a_stParam[8]) ;
|
|
}
|
|
/***************************************/
|
|
void CFast_CallOperator0_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[0]) ;
|
|
}
|
|
void CFast_CallOperator1_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[1]) ;
|
|
}
|
|
void CFast_CallOperator2_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[2]) ;
|
|
}
|
|
void CFast_CallOperator3_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[3]) ;
|
|
}
|
|
void CFast_CallOperator4_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[4]) ;
|
|
}
|
|
void CFast_CallOperator5_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[5]) ;
|
|
}
|
|
void CFast_CallOperator6_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[6]) ;
|
|
}
|
|
void CFast_CallOperator7_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[7]) ;
|
|
}
|
|
void CFast_CallOperator8_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[8]) ;
|
|
}
|
|
void CFast_CallOperator9_Static(int iInd)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(gp_stPseudoTree+iInd)].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, gp_stPseudoTree+iInd+1, &CFast_g_a_stParam[9]) ;
|
|
}
|
|
|
|
void CFast_CallOperator0_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[0]) ;
|
|
}
|
|
void CFast_CallOperator1_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[1]) ;
|
|
}
|
|
void CFast_CallOperator2_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[2]) ;
|
|
}
|
|
void CFast_CallOperator3_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[3]) ;
|
|
}
|
|
void CFast_CallOperator4_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[4]) ;
|
|
}
|
|
void CFast_CallOperator5_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[5]) ;
|
|
}
|
|
void CFast_CallOperator6_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[6]) ;
|
|
}
|
|
void CFast_CallOperator7_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[7]) ;
|
|
}
|
|
void CFast_CallOperator8_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[8]) ;
|
|
}
|
|
void CFast_CallOperator9_NoStatic(void)
|
|
{
|
|
a_stOperatorTable[M_eOperatorIdInterpret(CFast_g_a_stPseudoTree[E_ti_Operator])].p_fn_p_stOperatorFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Operator]+1, &CFast_g_a_stParam[9]) ;
|
|
}
|
|
|
|
/***************************************/
|
|
void CFast_CallProcedure_Static(int iInd)
|
|
{
|
|
a_stProcedureTable[M_eProcedureIdInterpret(gp_stPseudoTree + iInd)].p_fn_p_stProcedureFunction(g_hSuperObjectPerso, gp_stPseudoTree + iInd+1) ;
|
|
}
|
|
void CFast_CallProcedure_NoStatic(void)
|
|
{
|
|
a_stProcedureTable[M_eProcedureIdInterpret(CFast_g_a_stPseudoTree[E_ti_Procedure])].p_fn_p_stProcedureFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_Procedure]+1) ;
|
|
}
|
|
|
|
/***************************************/
|
|
void CFast_CallMetaActionInit_Static(int iInd)
|
|
{
|
|
a_stMetaActionTable[M_eMetaActionIdInterpret(gp_stPseudoTree + iInd)].p_fn_p_stMetaActionInitFunction(g_hSuperObjectPerso, gp_stPseudoTree + iInd+1) ;
|
|
}
|
|
void CFast_CallMetaActionInit_NoStatic(void)
|
|
{
|
|
a_stMetaActionTable[M_eMetaActionIdInterpret(CFast_g_a_stPseudoTree[E_ti_MetaAction])].p_fn_p_stMetaActionInitFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_MetaAction]+1) ;
|
|
}
|
|
/***************************************/
|
|
unsigned char CFast_CallMetaAction(int iFunc)
|
|
{
|
|
return a_stMetaActionTable[iFunc].p_fn_ucMetaActionFunction(g_hSuperObjectPerso) ;
|
|
}
|
|
/***************************************/
|
|
void CFast_CallKeyword_Static(int iInd, int iReturn)
|
|
{
|
|
a_stKeyWordTable[M_eKeyWordIdInterpret(gp_stPseudoTree + iInd)].p_fn_p_stKeyWordFunction(g_hSuperObjectPerso, gp_stPseudoTree + iInd + 1, &CFast_g_a_stParam[iReturn]) ;
|
|
}
|
|
void CFast_CallKeyword_NoStatic(int iReturn)
|
|
{
|
|
a_stKeyWordTable[M_eKeyWordIdInterpret(CFast_g_a_stPseudoTree[E_ti_KeyWord])].p_fn_p_stKeyWordFunction(g_hSuperObjectPerso, CFast_g_a_stPseudoTree[E_ti_KeyWord] + 1, &CFast_g_a_stParam[iReturn]) ;
|
|
}
|
|
|
|
void CFast_vInitStaticTree (struct tdstNodeInterpret_ *p_stStaticTree, long lSize,
|
|
struct tdstNodeInterpret_ *p_stRefTree ){
|
|
long i;
|
|
|
|
for ( i=0 ; i<lSize ; i++, p_stStaticTree++ ) {
|
|
if ( M_GetTypeInterpret(p_stStaticTree) == E_ti_Unknown ) {
|
|
memcpy ( p_stStaticTree,
|
|
&p_stRefTree[M_lValueInterpret(p_stStaticTree)],
|
|
sizeof(struct tdstNodeInterpret_) ) ;
|
|
#ifndef U64
|
|
/* special processing for sound, because the pointers points to dynamically allocated memory */
|
|
if( M_GetTypeInterpret(p_stStaticTree) == E_ti_SoundEventRef
|
|
&& SNA_fn_ucGetLoadType()==SNA_SAVE_SNAPSHOT )
|
|
/* we save the id of the sound event and the pointer */
|
|
SNA_fn_vWriteSoundEntryInSoundTableFile(
|
|
SND_fn_ulGetEventBinIdFromPointer(M_SoundEventInterpret(p_stStaticTree)),
|
|
(unsigned long)&(M_SoundEventInterpret(p_stStaticTree)) );
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
******************************************************************
|
|
* INCLUDE ALL ALL .CXX FOR MODELS
|
|
******************************************************************
|
|
*/
|
|
|
|
#ifndef U64
|
|
#define DEBUG_CFAST
|
|
#define U64_IA_EN_C
|
|
#else
|
|
/*#define U64_IA_EN_C*/
|
|
#endif
|
|
|
|
#ifndef CODEWARRIOR
|
|
#pragma warning(disable : 4101)
|
|
#endif
|
|
#include "CFastf.cxx"
|
|
#ifndef CODEWARRIOR
|
|
#pragma warning(default: 4101)
|
|
#endif
|
|
|
|
//XB 05/08/99
|
|
#endif /* D_THROW_CFAST_AI */
|
|
//End XB
|