reman3/Rayman_X/cpa/tempgrp/AI/AIBase/CFast.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