/*-------------------------------------------------------------------------------------
DefNode.h : Node & ReadRule
Author : Olivier Couvreur 25/09/97
--------------------------------------------------------------------------------------*/
 
#if !defined(M_DEFINE_NODE)
#error You should define M_DEFINE_NODE accordingly before including this file !
#endif
 
/* for script*/
 
/* in DEFINES.AI in Gamedata\World\_Common\Families*/
#define C_DefineAIFiles								"Defines.ai"
#define C_CreateAIDefines_String					"CreateAIDefines"
#define C_ConstantRefString							"ConstantRef"
#define C_RealRefString								"RealRef"
 
/* in .AI*/
#define C_CreateAIModel_String			            "CreateAIModel"
#define C_CreateIntellAIModel_String				"CreateIntellAIModel"
#define C_CreateReflexAIModel_String				"CreateReflexAIModel"
#define C_CreateVariableDeclarationAIModel_String	"CreateVariableDeclarationAIModel"
#define C_CreateMacroAIModel_String					"CreateMacroAIModel"
#define C_CreatePseudoTree_String         "CreatePseudoTree"
 
/* in .NOD : CFAST*/
#define C_MakeNodeString              "MakeNode"
 
/* in .MAC*/
#define C_CreateListOfMacro_String					"CreateListOfMacro"
#define C_CreateMacro_String						"CreateMacro"
 
/* in .DEC */
#define C_CreateVariables_String					"CreateVariables"
/* for SAI*/
#define C_TypeSaveVariables_String                  "TypeSaveVariable" 
/* for OTI*/
#define C_TypeInitVariables_String                  "TypeInitVariable" 
 
/* in .CAR*/
#define C_InitVariables_String			 "InitVariables"
#define C_InitComportReflex_String		 "InitComportReflex"
#define C_InitComportIntelligence_String "InitComportIntelligence"
 
/* in .RUL & .RFX*/
 
#define C_ScriptAIReferenceString		 "ScriptAIReference"
 
/* sections and subsections*/
#define C_CreateIntelligence_String "CreateIntelligence"
#define C_CreateComport_String		"CreateComport"
#define C_CreateRule_String			"CreateRule"
#define C_CreateSchedule_String		"CreateSchedule"
 
/* entries (nodes)*/
#define C_KeyWordString				"KeyWord"
#define C_ConditionString			"Condition"
#define C_MetaActionString			"MetaAction"
#define C_FieldString				"Field"
#define C_ConstantString			"Constant"
#define C_OperatorString			"Operator"
#define C_FunctionString			"Function"
#define C_ProcedureString			"Procedure"
#define C_DsgVarString				"DsgVar"
#define C_DsgVarRefString			"DsgVarRef"
#define C_RealString				"Real"
#define C_BeginMacroString			"BeginMacro"
#define C_EndMacroString			"EndMacro"
#define C_VectorString				"Vector"
#define C_ConstantVectorString		"ConstantVector"
#define C_PersoRefString			"PersoRef"
#define C_ActionRefString			"ActionRef"
#define C_WayPointString			"WayPoint"
#define C_ModuleString				"Module" 
#define C_DsgVarIdString			"DsgVarId"
#define C_ComportRefString			"ComportRef"
#define C_ButtonString				"Button"
#define C_StringString				"String"
#define C_MaskString				"Mask"
#define C_LipSynchroRefString		"LipSynchroRef"
#define C_ObjectTableRefString		"ObjectTableRef"
#define C_SectorRefString			"SectorRef" 
#define C_SuperObjectRefString		"SuperObjectRef" 
#define C_FamilyRefString			"FamilyRef"
#define C_ModuleRefString			"ModuleRef"
#define C_SoundEventRefString       "SoundEventRef"
#define C_TextRefString             "TextRef"
#define C_FontRefString             "FontRef"
#define C_ParticleGeneratorString   "ParticleGenerator"
#define C_GameMaterialRefString		"GameMaterialRef"
#define C_ColorString				"Color"
#define C_ModelRefString			"ModelRef"
#define C_LightString				"Light"
#define C_CapsString        "CapsRef"
#define C_GraphString       "GraphRef"
#define C_MacroRefString    "MacroRef"
 
/* 3 parameters : script string (readrule.h), node type (deftype.h), function pointer for initialization (readrule.c) */
 
	M_DEFINE_NODE(C_KeyWordString			,E_ti_KeyWord		,fn_vInitNodeKeyWord)
	M_DEFINE_NODE(C_ConditionString			,E_ti_Condition		,fn_vInitNodeCondition)
	M_DEFINE_NODE(C_MetaActionString		,E_ti_MetaAction	,fn_vInitNodeMetaAction)
	M_DEFINE_NODE(C_FieldString				,E_ti_Field			,fn_vInitNodeField)
	M_DEFINE_NODE(C_ConstantString			,E_ti_Constant		,fn_vInitNodeConstant)
	M_DEFINE_NODE(C_ConstantRefString		,E_ti_Constant		,fn_vInitNodeConstantRef)
	M_DEFINE_NODE(C_OperatorString			,E_ti_Operator		,fn_vInitNodeOperator)
	M_DEFINE_NODE(C_FunctionString			,E_ti_Function		,fn_vInitNodeFunction)
	M_DEFINE_NODE(C_ProcedureString			,E_ti_Procedure		,fn_vInitNodeProcedure)
	M_DEFINE_NODE(C_DsgVarString			,E_ti_DsgVar		,fn_vInitNodeDsgVar)
	M_DEFINE_NODE(C_DsgVarRefString			,E_ti_DsgVarRef		,fn_vInitNodeDsgVarRef)
	M_DEFINE_NODE(C_RealString				,E_ti_Real			,fn_vInitNodeReal)
	M_DEFINE_NODE(C_RealRefString			,E_ti_Real			,fn_vInitNodeRealRef)
	M_DEFINE_NODE(C_BeginMacroString		,E_ti_BeginMacro	,fn_vInitNodeBeginMacro)
	M_DEFINE_NODE(C_EndMacroString			,E_ti_EndMacro		,fn_vInitNodeEndMacro)
	M_DEFINE_NODE(C_VectorString			,E_ti_Vector		,fn_vInitNodeVector)
	M_DEFINE_NODE(C_ConstantVectorString	,E_ti_ConstantVector,fn_vInitNodeConstantVector)
	M_DEFINE_NODE(C_PersoRefString			,E_ti_PersoRef		,fn_vInitNodePersoRef)
	M_DEFINE_NODE(C_ActionRefString			,E_ti_ActionRef		,fn_vInitNodeActionRef)
	M_DEFINE_NODE(C_WayPointString			,E_ti_WayPointRef	,fn_vInitNodeWayPoint)
	M_DEFINE_NODE(C_ModuleString			,E_ti_Module		,fn_vInitNodeModule)
	M_DEFINE_NODE(C_DsgVarIdString			,E_ti_DsgVarId		,fn_vInitNodeDsgVarId)
	M_DEFINE_NODE(C_ComportRefString		,E_ti_ComportRef	,fn_vInitNodeComportRef)
	M_DEFINE_NODE(C_ButtonString			,E_ti_Button		,fn_vInitNodeButton)
	M_DEFINE_NODE(C_StringString			,E_ti_String		,fn_vInitNodeString)
	M_DEFINE_NODE(C_MaskString				,E_ti_Mask			,fn_vInitNodeMask)
#ifdef D_USE_LIPSYNC
	M_DEFINE_NODE(C_LipSynchroRefString		,E_ti_LipsSynchroRef,fn_vInitNodeLipSynchroRef)
#endif /*  D_USE_LIPSYNC*/
/* should be deleted very soon*/
	M_DEFINE_NODE(C_SectorRefString			,E_ti_SuperObjectRef,fn_vInitNodeSuperObjectRef)
	M_DEFINE_NODE(C_SuperObjectRefString	,E_ti_SuperObjectRef,fn_vInitNodeSuperObjectRef)
	M_DEFINE_NODE(C_FamilyRefString			,E_ti_FamilyRef		,fn_vInitNodeFamilyRef)
	M_DEFINE_NODE(C_ModuleRefString			,E_ti_ModuleRef		,fn_vInitNodeModuleRef)
	M_DEFINE_NODE(C_SoundEventRefString     ,E_ti_SoundEventRef	,fn_vInitNodeSoundEventRef)
  M_DEFINE_NODE(C_TextRefString     ,E_ti_TextRef   ,fn_vInitNodeTextRef)
	M_DEFINE_NODE(C_ObjectTableRefString    ,E_ti_ObjectTableRef,fn_vInitNodeObjectTableRef)
  M_DEFINE_NODE(C_ParticleGeneratorString ,E_ti_ParticleGenerator,fn_vInitNodeParticleGenerator)
	M_DEFINE_NODE(C_GameMaterialRefString   ,E_ti_GameMaterialRef, fn_vInitNodeGameMaterialRef)
	M_DEFINE_NODE(C_ColorString				,E_ti_Color			, fn_vInitNodeColor)
	M_DEFINE_NODE(C_ModelRefString			,E_ti_ModelRef		, fn_vInitNodeModelRef)
	M_DEFINE_NODE(C_LightString				,E_ti_Light			,fn_vInitNodeLight)
	M_DEFINE_NODE(C_CapsString				,E_ti_Caps			,fn_vInitNodeCaps)
	M_DEFINE_NODE(C_GraphString				,E_ti_Graph			,fn_vInitNodeGraph)
	M_DEFINE_NODE(C_MacroRefString			,E_ti_MacroRef		,fn_vInitNodeMacroRef)
#if defined(M_DEFINE_NODE)
#undef M_DEFINE_NODE 
#endif
