/*///////////////////////////////////////////////////////////*/ /* //*/ /* Management of the Module : AI (Intelligence) //*/ /* //*/ /*///////////////////////////////////////////////////////////*/ /* //*/ /* abbreviation of the module-name. Used in macro is 'AI' //*/ /* //*/ /*///////////////////////////////////////////////////////////*/ #ifndef __ERRAI_H__ #define __ERRAI_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define C_szAIVersion "AI V5.0.0" /* The format is XXX Va.b.c with Xxx is the Tag of the module */ #define C_szAIFullName "Artificial Intelligence"/* the complete and clear name of the module */ #define C_szAIDate "Dec 5 1997" /*The format is "Mmm dd yyyy".You can use __DATE__ but be careful that you have the control of the compilation*/ #ifndef __ERM_H__ #include "ERM.h" #endif /*__ERM_H__*/ /*----------*/ /* Constant*/ /*----------*/ /* error of the AI Module*/ typedef enum e_uwAIErrNumber_{ E_uwAIFatalErr = 0, #ifdef __FATAL_ERR_AI__ /* -----------------*/ E_uwAIFatalNotAFatalError, E_uwAIFatalTooMuchCond, E_uwAIFatalTooMuchAction, E_uwAIFatalTooMuchParamCond, E_uwAIFatalTooMuchParamAction, E_uwAIFatalNoEltInStackCond, E_uwAIFatalTooMuchEltInStackCond, E_uwAIFatalWrongParamCond, E_uwAIFatalWrongParamAction, E_uwAIFatalNotValidField, E_uwAIFatalInvalidAction, E_uwAIFatalFailedAllocationMem, E_uwAIFatalWrongTypeVar, E_uwAIFatalPersoListFull, E_uwAIFatalPbPersoListInsert, E_uwAIFatalPbDeleteInPersoList, E_uwAIFatalUnknownFieldName, E_uwAIFatalUnknownFunc, /*E_uwAIFatalUnknownFuncList,*/ E_uwAIFatalUnknownProcedure, E_uwAIFatalUnknownCond, E_uwAIFatalNotValidPriority, E_uwAIFatalUnknownKeyWord, E_uwAIFatalTooMuchNode, E_uwAIActionTableTooSmall, E_uwAIBadLeftInAffectation, E_uwAIFatalBadComportNumber, E_uwAIFatalBadNodeNumber, E_uwAIFatalBadRuleNumber, E_uwAIFatalNodeNotInRule, E_uwAIFatalRuleNotInComport, E_uwAIFatalComportNotInIntelligence, E_uwAIFatalCantFindPerso, E_uwAIFatalUnknownNode, E_uwAIFatalInvalidAccessToField, E_uwAIFatalInvalidAccessToDsgVar, E_uwAIFatalInvalidAccessToFieldOrDsgVar, E_uwAIFatalNotAGoodAction, E_uwAIFatalWrongTypeParamAction, E_uwAIFatalNotValidFunction, E_uwAIFatalNotValidProcedure, E_uwAIFatalNotValidDsgVarId, E_uwAIFatalNotValidOperator, E_uwAIFatalNotValidCondition, E_uwAIFatalUnknownOperator, E_uwAIFatalInvalidParameter, E_uwAIFatalInvalidWPValue, E_uwAIFatalArrayAlreadyFull, E_uwAIFatalArrayEmpty, E_uwAIFatalAssertionFailure, E_uwAIFatalTypeLinkInvalid, E_uwAIFatalDynTypeLinkInvalid, E_uwAIFatalWayPositionInvalid, E_uwAIFatalWayFirstLinkMustBeLine, E_uwAIFatalNullVectorNotAllowed, E_uwAIFatalBadEntryAIModel, E_uwAIWrongOperatorInLeftAffect, E_uwAIDivisionByZero, E_uwAIFatalNoDynamics, E_uwAIFatalUnknownButton, E_uwAIFatalReferenceNotLoaded, E_uwAIFatalScriptError, E_uwAIFatalNotMSCamera, E_uwAIFatalInvalidUseOfUltraOperator, E_uwAIFatalInvalidModelCast, E_uwAIFatalInvalidDsgvarSaveType, #endif /*__FATAL_ERR_AI__*/ E_uwAIStartOfWarning,/* important constant, it allows to recognize if an error is fatal or not.*/ #ifdef __WARNING_ERR_AI__ /* -------------------*/ E_uwAIWarningCanNotFree,/*!!y*/ E_uwAIWarningTruncateAffectation,/*!!y*/ E_uwAIWarningBadType, E_uwAIWarningChangeToCurrentComport, E_uwAIWarningCycleComport, E_uwAIWarningArrayCyclingComportTooSmall, E_uwAIWarningExecuteActionInt, E_uwAIWarningComportOfAnotherPerso, E_uwAIDebugDynamicAllocation, E_uwAIWarningScriptError, E_uwAIWarningEngineGoto, E_uwAIWarningChannelNotControlled, /*ANNECY BBB: is fatal for engine, but not in editor mode*/ #if defined(ACTIVE_EDITOR) E_uwAIWarningUnknownCond, E_uwAIWarningUnknownFieldName, E_uwAIWarningUnknownOperator, E_uwAIWarningUnknownFunc, E_uwAIWarningUnknownProcedure, E_uwAIWarningUnknownKeyWord, E_uwAIWarningInvalidAction, E_uwAIWarningUnknownNode, E_uwAIWarningReferenceNotLoaded, E_uwAIWarningWrongParamAction, E_uwAIWarningInvalidUseOfUltraOperator, E_uwAIWarningWrongTypeVar, #endif #endif /*__WARNING_ERR_AI__*/ E_uwAIErrNumber } e_uwAIErrNumber; /*------------------*/ /* Global Variables*/ /*------------------*/ #undef EXTERN_ERRAI #undef extern #ifndef __DeclareGlobalVariableErrAI_h__ #define EXTERN_ERRAI extern /*external declaration*/ #else /*__DeclareGlobalVariableErrAI_h__*/ #define EXTERN_ERRAI /*replace by nothing : we have to declare*/ #endif /*__DeclareGlobalVariableErrAI_h__*/ EXTERN_ERRAI unsigned char g_ucAIModuleId /*number of identification of the Erm module*/ #ifdef __DeclareGlobalVariableErrAI_h__ = C_ucModuleNotInitialized #endif /*__DeclareGlobalVariableErrAI_h__*/ ; #ifdef __ERROR_STRINGS__ EXTERN_ERRAI char * g_a_szAIInformationModule [] #if defined(__DeclareGlobalVariableErrAI_h__) && !defined(CPA_WANTS_IMPORT) = {C_szAIVersion, C_szAIFullName, C_szAIDate} #endif /*__DeclareGlobalVariableErrAI_h__ && CPA_WANTS_IMPORT*/ ; EXTERN_ERRAI char * g_szAIModuleName /* Obliged syntax 'g_sz'+[Abbreviation of ModuleName]+'ModuleName'*/ #ifdef __DeclareGlobalVariableErrAI_h__ = "Module AI" #endif /*__DeclareGlobalVariableErrAI_h__*/ ; EXTERN_ERRAI /*struct!!y!!*/ tdstErrorMsg/*_!!y!!*/ g_a_stAITabErr [] /* Obliged syntax 'g_a_st'+[Abbreviation of ModuleName]+'TabErr'*/ #ifdef __DeclareGlobalVariableErrAI_h__/*Call from main program*/ ={ #ifdef __FATAL_ERR_AI__ /* -------------*/ E_uwAIFatalNotAFatalError, "This is not a valide AI fatal error", E_uwAIFatalTooMuchCond, "Too much Conditions Loaded", E_uwAIFatalTooMuchAction, "Too much Actions Loaded", E_uwAIFatalTooMuchParamCond, "Too much parameters for the Condition", E_uwAIFatalTooMuchParamAction, "Too much parameters for the Action", E_uwAIFatalNoEltInStackCond, "There is no element in condition stack", E_uwAIFatalTooMuchEltInStackCond, "Too much elements in condition stack", E_uwAIFatalWrongParamCond, "Wrong number of parameter in the Condition", E_uwAIFatalWrongParamAction, "Wrong number of parameter", E_uwAIFatalNotValidField, "Wrong field in perso struct", E_uwAIFatalInvalidAction, "Invalid action", E_uwAIFatalFailedAllocationMem, "Problem during an allocation memory", E_uwAIFatalWrongTypeVar, "Script Read Problem: The type of the variable is not valid", E_uwAIFatalPersoListFull, "The Perso List is Full", E_uwAIFatalPbPersoListInsert, "The insert position in the Perso List is not available", E_uwAIFatalPbDeleteInPersoList, "Wrong specified position in the Perso list! Can not delete the perso", E_uwAIFatalUnknownFieldName, "Unknown Field Name", E_uwAIFatalUnknownFunc, "Unknown Function Name", E_uwAIFatalUnknownProcedure, "Unknown Procedure name", E_uwAIFatalUnknownCond, "Unknown Condition Name", E_uwAIFatalNotValidPriority, "Priority of rule must be greater than 0", E_uwAIFatalUnknownKeyWord, "Unknown KeyWord Name", E_uwAIFatalTooMuchNode, "Too much Node Interpret Loaded", E_uwAIActionTableTooSmall, "Action table is too small", E_uwAIBadLeftInAffectation, "Bad Type for left operand in affectation", E_uwAIFatalBadComportNumber,"Bad comportment number", E_uwAIFatalBadNodeNumber,"Bad node number", E_uwAIFatalBadRuleNumber,"Bad rule number", E_uwAIFatalNodeNotInRule,"CreateNode section not in CreateRule section", E_uwAIFatalRuleNotInComport,"CreateRule section not in CreateComport section", E_uwAIFatalComportNotInIntelligence,"CreateComport section not in CreateIntelligence section", E_uwAIFatalCantFindPerso, "Can't find perso", E_uwAIFatalUnknownNode,"Unknown node", E_uwAIFatalInvalidAccessToField, "Invalid access to field", E_uwAIFatalInvalidAccessToDsgVar,"Invalid access to dsgvar", E_uwAIFatalInvalidAccessToFieldOrDsgVar,"Invalid access to dsgvar or field", E_uwAIFatalNotAGoodAction, "Not a good action to change to", E_uwAIFatalWrongTypeParamAction, "Wrong type for action's parameter", E_uwAIFatalNotValidFunction, "This is not a valid Function", E_uwAIFatalNotValidProcedure, "This is not a valid Procedure", E_uwAIFatalNotValidDsgVarId, "Wrong Variable Designer ID", E_uwAIFatalNotValidOperator, "This is not a valid operator", E_uwAIFatalNotValidCondition, "This is not a valid condition", E_uwAIFatalUnknownOperator, "Unknown operator", E_uwAIFatalInvalidParameter,"A function parameter is invalid", E_uwAIFatalInvalidWPValue, "WP handle is invalid", E_uwAIFatalArrayAlreadyFull,"Attempt to add an element to the array though it is already full", E_uwAIFatalArrayEmpty,"Attempt to access to an element in the array though it is empty", E_uwAIFatalAssertionFailure,"Assertion failure", E_uwAIFatalTypeLinkInvalid,"The type of the link is invalid", E_uwAIFatalDynTypeLinkInvalid,"The dynamic type of the link is invalid", E_uwAIFatalWayPositionInvalid,"The position specified for the access of a WP or a link in the way is invalid", E_uwAIFatalWayFirstLinkMustBeLine,"The first link must be a line (only for mode NbrOfLink = NbrOf WP)", E_uwAIFatalNullVectorNotAllowed,"Null vector is not allowed for this function", E_uwAIFatalBadEntryAIModel, "Bad entry in AIModel Script", E_uwAIWrongOperatorInLeftAffect, "Wrong operator in left parameter of affect function", E_uwAIDivisionByZero,"Division by zero", E_uwAIFatalNoDynamics, "No Dynamics found", E_uwAIFatalUnknownButton, "Button not defined", E_uwAIFatalReferenceNotLoaded,"Reference not loaded", E_uwAIFatalScriptError, "There was an error in the script", E_uwAIFatalNotMSCamera, "Super Object is not a camera", E_uwAIFatalInvalidUseOfUltraOperator, "Invalid use of Ultra operator", E_uwAIFatalInvalidModelCast,"Invalid model cast", E_uwAIFatalInvalidDsgvarSaveType,"Invalid save type for designer variable", #endif /*__FATAL_ERR_AI__*/ #ifdef __WARNING_ERR_AI__ /* ----------------*/ E_uwAIWarningCanNotFree, "Memory problem for free", E_uwAIWarningTruncateAffectation, "Strange a (out of range) designer variable has been truncated ", E_uwAIWarningBadType,"Field or variable designer have not correct type to store the passed value", E_uwAIWarningChangeToCurrentComport, "Change comport to the same comport", E_uwAIWarningCycleComport, "Cycle in comportement changing", E_uwAIWarningArrayCyclingComportTooSmall, "The array for cycling comport is too small", E_uwAIWarningExecuteActionInt, "The execute action has interrupted", E_uwAIWarningComportOfAnotherPerso,"This comport doesn't belong to perso", E_uwAIDebugDynamicAllocation,"Debug version : dynamic allocation in bloc AI (don't forget to increase the bloc)", E_uwAIWarningScriptError ,"This is a warning about AI script", E_uwAIWarningEngineGoto,"Wrong use of EngineGoto", E_uwAIWarningChannelNotControlled, "Call of a repositionning procedure on an uncontrolled channel", #if defined(ACTIVE_EDITOR) /* usefull for ACTIVE_1STPASS_CHECKING*/ E_uwAIWarningUnknownCond ,"Unknown Condition Name", E_uwAIWarningUnknownFieldName ,"Unknown Field Name", E_uwAIWarningUnknownOperator ,"Unknown Operator Name", E_uwAIWarningUnknownFunc ,"Unknown Function Name", E_uwAIWarningUnknownProcedure ,"Unknown Procedure name", E_uwAIWarningUnknownKeyWord ,"Unknown Keyword name", E_uwAIWarningInvalidAction ,"Unknown Action name", E_uwAIWarningUnknownNode ,"Unknown Node", E_uwAIWarningReferenceNotLoaded,"Reference not loaded", E_uwAIWarningWrongParamAction ,"Wrong number of parameter", E_uwAIWarningInvalidUseOfUltraOperator,"Invalid use of Ultra operator", E_uwAIWarningWrongTypeVar ,"Script Read Problem: The type of the variable is not valid", #endif #endif /*__WARNING_ERR_AI__*/ 0xFFFF, "\0"/*fin*/ }; #endif /*__DeclareGlobalVariableErrAI_h__*/ ; #undef extern #endif /*__ERROR_STRINGS__*/ #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /*__ERRAI_H__*/