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

309 lines
9.8 KiB
C
Raw Blame History

#if !defined(_CFAST_H_)
#define _CFAST_H_
#include "..\AiBase\Specif\AiOption.h"
#include "GSParam.h"
#include "StrIntel.h"
#include "EnumType.h"
#include "AI\AIGame\TypePtr.h"
#include "AI\AIGame\ConvCst.h"
#define CFast_lMaxTreeDepth 20
#ifdef __cplusplus
/*extern "C" {*/
#endif
/**************************************/
#if !defined(CPA_EXPORT)
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif /*CPA_WANTS_IMPORT || CPA_WANTS_EXPORT*/
#endif /*CPA_EXPORT*/
/**************************************/
#undef extern
#define EXTERN_AI_DLL extern
/*
* Array for all C functions.
*/
typedef struct CFast_tdst_ArrayFunctions_
{
/* char *mpsz_Name;*/
void (*mfnv_Function)(HIE_tdxHandleToSuperObject);
#ifdef U64
//long ml_SizeOfCode;
long ml_SizeOfTree;
struct tdstNodeInterpret_ *mp_stPseudoTree;
#endif
} CFast_tdst_ArrayFunctions;
typedef void (*CFast_EvalFunc)(void);
/*
* functions
*/
#define C_MAX_SIZE_FUNCTION_EDITOR_NAME 50
#define C_MAX_SIZE_FUNCTION_SCRIPT_NAME 41
#define C_MAX_FUNCTION_NB_IN_PARAM 6
#define C_MAX_FUNCTION_NB_OUT_PARAM 1
typedef struct tdstFunctionEntry_
{
#if defined(ACTIVE_EDITOR)
/* Function string used in editor*/
char szFunctionEditorName[C_MAX_SIZE_FUNCTION_EDITOR_NAME+1];
char szFunctionEditorName_En[C_MAX_SIZE_FUNCTION_EDITOR_NAME+1];
#endif /* ACTIVE_EDITOR*/
#if defined (AI_USE_SCRIPT)
/* Function string used in script*/
char szFunctionScriptName[C_MAX_SIZE_FUNCTION_SCRIPT_NAME+1];
#endif /* AI_USE_SCRIPT */
#if defined(_AI_LIB_)
/* pointer on Function function*/
tdp_fn_p_stFunctionFunctionPtr p_fn_p_stFunctionFunction;
#endif /* _AI_LIB_*/
#if defined (AI_USE_SCRIPT) || defined (U64_AIDEBUG)
/* list of Function parameters (taken from szAutorizedTypeParam) in parameter*/
char szFunctionTypeInParam[C_MAX_FUNCTION_NB_IN_PARAM+1];
/* out parameter*/
char szFunctionTypeOutParam[C_MAX_FUNCTION_NB_OUT_PARAM+1];
#endif /* AI_USE_SCRIPT */
unsigned char bUltraFunctionFlag;
#ifdef PROFILE_IA
unsigned long ulCallCtr;
unsigned long ulTimeCtr;
unsigned long ulOwnTimeCtr;
#endif /* PROFILE_IA*/
} tdstFunctionEntry;
extern tdstFunctionEntry a_stFunctionTable[] ;
/*
* Keyword
*/
#define C_MAX_SIZE_KEYWORD_EDITOR_NAME 17
#define C_MAX_SIZE_KEYWORD_SCRIPT_NAME 14
#define C_MAX_KEYWORD_NB_IN_PARAM 3
#define C_MAX_KEYWORD_NB_OUT_PARAM 1
#if defined(ACTIVE_EDITOR) || defined(AI_USE_SCRIPT) || defined(_AI_LIB_)
typedef struct tdstKeyWordEntry_
{
#if defined(ACTIVE_EDITOR)
/* KeyWord string used in editor*/
char szKeyWordEditorName[C_MAX_SIZE_KEYWORD_EDITOR_NAME+1];
char szKeyWordEditorName_En[C_MAX_SIZE_KEYWORD_EDITOR_NAME+1];
#endif /* ACTIVE_EDITOR*/
#if defined (AI_USE_SCRIPT)
/* KeyWord string used in script*/
char szKeyWordScriptName[C_MAX_SIZE_KEYWORD_SCRIPT_NAME+1];
#endif /* AI_USE_SCRIPT */
#if defined(_AI_LIB_)
/* pointer on KeyWord function*/
tdp_fn_p_stKeyWordFunctionPtr p_fn_p_stKeyWordFunction;
#endif /* _AI_LIB_*/
#if defined (AI_USE_SCRIPT) || defined (U64_AIDEBUG)
/* list of KeyWord parameters (taken from szAutorizedTypeParam) in parameter*/
char szKeyWordTypeInParam[C_MAX_KEYWORD_NB_IN_PARAM+1];
/* list of KeyWord parameters (taken from szAutorizedTypeParam) out parameter*/
char szKeyWordTypeOutParam[C_MAX_KEYWORD_NB_OUT_PARAM+1];
#endif /* AI_USE_SCRIPT */
} tdstKeyWordEntry;
extern tdstKeyWordEntry a_stKeyWordTable[] ;
#endif
/*
* conditions
*/
#define C_MAX_SIZE_CONDITION_EDITOR_NAME 50
#define C_MAX_SIZE_CONDITION_SCRIPT_NAME 40
#define C_MAX_CONDITION_NB_PARAM 4
typedef struct tdstConditionEntry_
{
#if defined(ACTIVE_EDITOR)
/* Condition string used in editor*/
char szConditionEditorName[C_MAX_SIZE_CONDITION_EDITOR_NAME+1];
char szConditionEditorName_En[C_MAX_SIZE_CONDITION_EDITOR_NAME+1];
#endif /* ACTIVE_EDITOR*/
#if defined (AI_USE_SCRIPT)
/* Condition string used in script*/
char szConditionScriptName[C_MAX_SIZE_CONDITION_SCRIPT_NAME+1];
#endif /* AI_USE_SCRIPT */
#if defined(_AI_LIB_)
/* pointer on Condition function*/
tdp_fn_p_stConditionFunctionPtr p_fn_p_stConditionFunction;
#endif /* _AI_LIB_*/
#if defined (AI_USE_SCRIPT) || defined (U64_AIDEBUG)
/* list of Condition parameters (taken from szAutorizedTypeParam) in parameter*/
char szConditionTypeInParam[C_MAX_CONDITION_NB_PARAM+1];
#endif /* AI_USE_SCRIPT */
unsigned char bUltraCondtionFlag;
#ifdef PROFILE_IA
unsigned long ulCallCtr;
unsigned long ulTimeCtr;
unsigned long ulOwnTimeCtr;
#endif /* PROFILE_IA*/
} tdstConditionEntry;
extern tdstConditionEntry a_stConditionTable[] ;
/*
* Meta-Action
*/
#define C_MAX_SIZE_META_ACTION_SCRIPT_NAME 37
#define C_MAX_SIZE_META_ACTION_EDITOR_NAME 80
#define C_MAX_NB_META_ACTION_PARAM C_MAX_NB_PARAM
typedef struct tdstMetaActionEntry_
{
#if defined(ACTIVE_EDITOR)
/* metaaction string used in editor*/
char szMetaActionEditorName[C_MAX_SIZE_META_ACTION_EDITOR_NAME+1];
char szMetaActionEditorName_En[C_MAX_SIZE_META_ACTION_EDITOR_NAME+1];
#endif /* ACTIVE_EDITOR*/
#if defined (AI_USE_SCRIPT)
/* metaaction string used in script*/
char szMetaActionScriptName[C_MAX_SIZE_META_ACTION_SCRIPT_NAME+1];
#endif /* AI_USE_SCRIPT */
#if defined(_AI_LIB_)
/* pointer on metaaction INIT function*/
tdp_fn_p_stMetaActionInitFunctionPtr p_fn_p_stMetaActionInitFunction;
/* pointer on metaaction NEXT function*/
tdp_fn_ucMetaActionFunctionPtr p_fn_ucMetaActionFunction;
#endif /* _AI_LIB_*/
/* list of metaaction parameters (taken from szAutorizedTypeParam)*/
char szMetaActionTypeParam[C_MAX_NB_META_ACTION_PARAM+1];
} tdstMetaActionEntry;
extern tdstMetaActionEntry a_stMetaActionTable[] ;
/*
* procedures
*/
#define C_MAX_SIZE_PROCEDURE_EDITOR_NAME 50
#define C_MAX_SIZE_PROCEDURE_SCRIPT_NAME 40
#define C_MAX_PROCEDURE_NB_PARAM 8 /*ANNECY YLT Passage de 6 <20> 8 arguments (note: ceci ne prend pas plus de place en release binarise)*/
typedef struct tdstProcedureEntry_
{
#if defined(ACTIVE_EDITOR)
/* Procedure string used in editor*/
char szProcedureEditorName[C_MAX_SIZE_PROCEDURE_EDITOR_NAME+1];
char szProcedureEditorName_En[C_MAX_SIZE_PROCEDURE_EDITOR_NAME+1];
#endif /* ACTIVE_EDITOR*/
#if defined (AI_USE_SCRIPT)
/* Procedure string used in script*/
char szProcedureScriptName[C_MAX_SIZE_PROCEDURE_SCRIPT_NAME+1];
#endif /* AI_USE_SCRIPT */
#if defined(_AI_LIB_)
/* pointer on Procedure function*/
tdp_fn_p_stProcedureFunctionPtr p_fn_p_stProcedureFunction;
#endif
#if defined (AI_USE_SCRIPT) || defined (U64_AIDEBUG)
/* list of Procedure parameters (taken from szAutorizedTypeParam) in parameter*/
char szProcedureTypeParam[C_MAX_PROCEDURE_NB_PARAM+1];
#endif /* AI_USE_SCRIPT */
unsigned char bUltraProcedureFlag;
#ifdef PROFILE_IA
unsigned long ulCallCtr;
unsigned long ulTimeCtr;
unsigned long ulOwnTimeCtr;
#endif /* PROFILE_IA*/
} tdstProcedureEntry;
extern tdstProcedureEntry a_stProcedureTable[] ;
/*
* Operators
*/
#define C_MAX_SIZE_OPERATOR_EDITOR_NAME 4
#define C_MAX_SIZE_OPERATOR_SCRIPT_NAME 26
#define C_MAX_OPERATOR_NB_IN_PARAM 2
#define C_MAX_OPERATOR_NB_OUT_PARAM 1
#if defined(ACTIVE_EDITOR) || defined(AI_USE_SCRIPT) || defined(_AI_LIB_)
typedef struct tdstOperatorEntry_
{
#if defined(ACTIVE_EDITOR)
/* Operator string used in editor*/
char szOperatorEditorName[C_MAX_SIZE_OPERATOR_EDITOR_NAME+1];
#endif /* ACTIVE_EDITOR*/
#if defined (AI_USE_SCRIPT)
/* Operator string used in script*/
char szOperatorScriptName[C_MAX_SIZE_OPERATOR_SCRIPT_NAME+1];
#endif /* AI_USE_SCRIPT */
#if defined(_AI_LIB_)
/* pointer on Operator function*/
tdp_fn_p_stOperatorFunctionPtr p_fn_p_stOperatorFunction;
#endif /* _AI_LIB_*/
#if defined(ACTIVE_EDITOR)
/* list of Operator parameters (taken from szAutorizedTypeParam) in parameter*/
char szOperatorTypeInParam[C_MAX_OPERATOR_NB_IN_PARAM+1];
/* out parameter*/
char szOperatorTypeOutParam[C_MAX_OPERATOR_NB_OUT_PARAM+1];
#endif /* ACTIVE_EDITOR*/
} tdstOperatorEntry;
extern tdstOperatorEntry a_stOperatorTable[] ;
#endif
/*
* type (vector, ... )
*/
typedef struct tdstTypeEntry_
{
tdp_fn_p_stEvalTypePtr p_fn_p_stEvalTypePtr;
} tdstTypeEntry;
extern tdstTypeEntry a_stTypeTable[] ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_p_stConditionFunctionPtr CFast_g_p_fn_CondPtr ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_p_stOperatorFunctionPtr CFast_g_p_fn_OpPtr ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_p_stProcedureFunctionPtr CFast_g_p_fn_ProcPtr ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_p_stFunctionFunctionPtr CFast_g_p_fn_FuncPtr ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_p_stKeyWordFunctionPtr CFast_g_p_fn_KeyWordPtr ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_p_stMetaActionInitFunctionPtr CFast_g_p_fn_MetaInitPtr ;
EXTERN_AI_DLL CPA_EXPORT tdp_fn_ucMetaActionFunctionPtr CFast_g_p_fn_MetaPtr ;
EXTERN_AI_DLL CPA_EXPORT tdstGetSetParam CFast_g_a_stParam[CFast_lMaxTreeDepth] ;
EXTERN_AI_DLL CPA_EXPORT tdstNodeInterpret CFast_g_a_stPseudoTree[7][CFast_lMaxTreeDepth] ;
EXTERN_AI_DLL CPA_EXPORT long CFast_g_a_lLong[CFast_lMaxTreeDepth] ;
EXTERN_AI_DLL CPA_EXPORT tdeTypeInterpret CFast_g_aEvt2Eti[] ;
EXTERN_AI_DLL CPA_EXPORT ACP_tdxBool CFast_g_bProcessReflex ;
EXTERN_AI_DLL CPA_EXPORT ACP_tdxBool CFast_g_bMetaActionInRfx ;
/*extern tdstNodeInterpret *M_CFast_GetReferenceNodeN(HIE_tdxHandleToSuperObject hSuperObjectPerso, long indice) ;*/
#ifdef __cplusplus
/*}*/
#endif
#ifdef __cplusplus
extern "C" {
#endif
EXTERN_AI_DLL char gcGlobAleat;
EXTERN_AI_DLL CPA_EXPORT CFast_tdst_ArrayFunctions CFast_gast_ArrayFunctions[];
tdstNodeInterpret *fn_p_stEvalVector(HIE_tdxHandleToSuperObject p_SuperObjPerso, tdstNodeInterpret *p_stTree, tdstGetSetParam *p_stValue) ;
#ifdef __cplusplus
}
#endif
#endif /* _CFAST_H_ */