#if !defined(M_DEFINE_FUNCTION)
#error You should define M_DEFINE_FUNCTION accordingly before including this file !
#endif
 
/************************************************************************************************
* le #ifdef suivant permet d'exclure les fonctions inutilisées
* Merci
*	Marc
************************************************************************************************/
#if defined(_AI_EXCLUDE_NEVER_USED_)    /* MT {*/
	#define NU_M_DEFINE_FUNCTION(a,b,english,c,d,e,f,g)
#else
	#define NU_M_DEFINE_FUNCTION	M_DEFINE_FUNCTION
#endif                                  /* _AI_EXCLUDE_NEVER_USED_ }*/
/* 6 parameters to define a function : enum , editor name, script name, function pointers in Function.c, in params, out param ,ultra-able */
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* Acthor */
	M_DEFINE_FUNCTION(eFunc_GetPersoAbsolutePosition	,"ACT_PositionAbsoluePerso"			,"ACT_GetPersoAbsolutePosition"    ,"Func_GetPersoAbsolutePosition"	,fn_p_stGetPersoAbsolutePosition,USE_NO_PARAM,USE_VECTOR_PARAM, /**/ ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetMyAbsolutePosition		,"ACT_MaPositionAbsolue"			,"ACT_GetMyAbsolutePosition"       ,"Func_GetMyAbsolutePosition"		,fn_p_stGetMyAbsolutePosition,USE_NO_PARAM,USE_VECTOR_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetAngleAroundZToPerso		,"ACT_AngleAutourZVersPerso"		,"ACT_GetAngleAroundZToPerso"      ,"Func_GetAngleAroundZToPerso"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_DistanceToPerso				,"ACT_DistanceAuPerso"				,"ACT_DistanceToPerso"             ,"Func_DistanceToPerso"				,fn_p_stDistanceToPerso,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceXToPerso			,"ACT_DistanceXAuPerso"				,"ACT_DistanceXToPerso"            ,"Func_DistanceXToPerso"			,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceYToPerso			,"ACT_DistanceYAuPerso"				,"ACT_DistanceYToPerso"            ,"Func_DistanceYToPerso"			,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceZToPerso			,"ACT_DistanceZAuPerso"				,"ACT_DistanceZToPerso"            ,"Func_DistanceZToPerso"			,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceXYToPerso			,"ACT_DistanceXYAuPerso"			,"ACT_DistanceXYToPerso"           ,"Func_DistanceXYToPerso"			,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceXZToPerso		,"ACT_DistanceXZAuPerso"			,"ACT_DistanceXZToPerso"           ,"Func_DistanceXZToPerso"			,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    NU_M_DEFINE_FUNCTION(eFunc_DistanceYZToPerso		,"ACT_DistanceYZAuPerso"			,"ACT_DistanceYZToPerso"           ,"Func_DistanceYZToPerso"			,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceToPersoCenter		,"ACT_DistanceAuCentrePerso"		,"ACT_DistanceToPersoCenter"       ,"Func_DistanceToPersoCenter"		,fn_p_stDistanceToPersoCenter,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    NU_M_DEFINE_FUNCTION(eFunc_DistanceXToPersoCenter	,"ACT_DistanceXAuCentrePerso"       ,"ACT_DistanceXToPersoCenter"      ,"Func_DistanceXToPersoCenter"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceYToPersoCenter	,"ACT_DistanceYAuCentrePerso"       ,"ACT_DistanceYToPersoCenter"      ,"Func_DistanceYToPersoCenter"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceZToPersoCenter		,"ACT_DistanceZAuCentrePerso"       ,"ACT_DistanceZToPersoCenter"      ,"Func_DistanceZToPersoCenter"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DistanceXYToPersoCenter	,"ACT_DistanceXYAuCentrePerso"      ,"ACT_DistanceXYToPersoCenter"     ,"Func_DistanceXYToPersoCenter"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    NU_M_DEFINE_FUNCTION(eFunc_DistanceXZToPersoCenter	,"ACT_DistanceXZAuCentrePerso"      ,"ACT_DistanceXZToPersoCenter"     ,"Func_DistanceXZToPersoCenter"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
    NU_M_DEFINE_FUNCTION(eFunc_DistanceYZToPersoCenter	,"ACT_DistanceYZAuCentrePerso"      ,"ACT_DistanceYZToPersoCenter"     ,"Func_DistanceYZToPersoCenter"		,fn_p_stDistanceFunction,USE_PERSO_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
	
/**********************************************************************************************************************************************************************************************************************************************************/
/* Reseau */
	M_DEFINE_FUNCTION(eFunc_DistanceToWP				,"Reseau_DistanceAuWP"				,"NETWORK_DistanceToWP"            ,"Func_DistanceToWP"				,fn_p_stDistanceFunction,USE_WAYPOINT_PARAM,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetWPAbsolutePosition		,"Reseau_PositionAbsolueWP"			,"NETWORK_GetWPAbsolutePosition"   ,"Func_GetWPAbsolutePosition"		,fn_p_stGetWpAbsolutePosition,USE_WAYPOINT_PARAM ,USE_VECTOR_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Math Functions */
    M_DEFINE_FUNCTION(eFunc_Int							,"Math_ConversionEnEntier"			,"MATH_Int"                        ,"Func_Int"						,fn_p_stMathFunctionInt,USE_REAL_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_RandomInt					,"Math_EntierAuHasard"				,"MATH_RandomInt"                  ,"Func_RandomInt"					,fn_p_stMathFunctionInt,USE_2_CONSTANTS_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_Real						,"Math_ConversionEnReel"			,"MATH_Real"                       ,"Func_Real"						,fn_p_stMathFunctionReal,USE_CONSTANT_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_Sinus						,"Math_Sinus"						,"MATH_Sinus"                      ,"Func_Sinus"						,fn_p_stMathFunctionReal,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_Cosinus						,"Math_Cosinus"						,"MATH_Cosinus"                    ,"Func_Cosinus"					,fn_p_stMathFunctionReal,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
   	M_DEFINE_FUNCTION(eFunc_Square						,"Math_Carre"						,"MATH_Square"                     ,"Func_Square"						,fn_p_stMathFunctionReal,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_SquareRoot					,"Math_Racine"						,"MATH_SquareRoot"                 ,"Func_SquareRoot"					,fn_p_stMathFunctionReal,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_RandomReal					,"Math_ReelAuHasard"				,"MATH_RandomReal"                 ,"Func_RandomReal"					,fn_p_stMathFunctionReal,USE_2_REALS_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_MinimumReal					,"Math_MinimumReel"					,"MATH_MinimumReal"                ,"Func_MinimumReal"				,fn_p_stMathFunctionReal,USE_2_REALS_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_MaximumReal					,"Math_MaximumReel"					,"MATH_MaximumReal"                ,"Func_MaximumReal"				,fn_p_stMathFunctionReal,USE_2_REALS_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_DegreeToRadian			,"Math_ConversionDegreEnRadian"		,"MATH_DegreeToRadian"             ,"Func_DegreeToRadian"				,fn_p_stMathFunctionReal,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_RadianToDegree			,"Math_ConversionRadianEnDegre"		,"MATH_RadianToDegree"             ,"Func_RadianToDegree"				,fn_p_stMathFunctionReal,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_AbsoluteValue				,"Math_ValeurAbsolue"			    ,"MATH_AbsoluteValue"              ,"Func_AbsoluteValue"				,fn_p_stMathAbsoluteValue,USE_REAL_PARAM,USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_LimitRealInRange			,"Math_ReelBorne"					,"MATH_LimitRealInRange"           ,"Func_LimitRealInRange"			,fn_p_stMathFunctionReal,USE_3_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_Sign						,"Math_Signe"						,"MATH_Sign"                       ,"Func_Sign"						,fn_p_stMathFunctionReal,USE_REAL_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_Cube						,"Math_Cube"						,"MATH_Cube"                       ,"Func_Cube"						,fn_p_stMathFunctionReal,USE_REAL_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_Modulo						,"Math_Modulo"						,"MATH_Modulo"                     ,"Func_Modulo"						,fn_p_stMathFunctionReal,USE_3_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TernInf						,"Math_TernInf"						,"MATH_TernInf"                    ,"Func_TernInf"					,fn_p_stMathTernarReal,USE_4_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TernSup						,"Math_TernSup"						,"MATH_TernSup"                    ,"Func_TernSup"					,fn_p_stMathTernarReal,USE_4_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TernEq					,"Math_TernEq"						,"MATH_TernEq"                     ,"Func_TernEq"						,fn_p_stMathTernarReal,USE_4_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TernInfEq				,"Math_TernInfEq"					,"MATH_TernInfEq"                  ,"Func_TernInfEq"					,fn_p_stMathTernarReal,USE_4_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TernSupEq					,"Math_TernSupEq"					,"MATH_TernSupEq"                  ,"Func_TernSupEq"					,fn_p_stMathTernarReal,USE_4_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TernOp						,"Math_TernOp"					    ,"MATH_TernOp"                     ,"Func_TernOp"					    ,fn_p_stMathTernarReal,USE_BOOLEAN_PARAM USE_2_REALS_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_TemporalRealCombination		,"Math_CombinaisonTemporelleReel"	,"MATH_TemporalRealCombination"	   ,"Func_TemporalRealCombination"		,fn_p_stRealFunction, USE_REAL_PARAM USE_REAL_PARAM USE_REAL_PARAM, USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/) /*this function is in Function.c*/

/**********************************************************************************************************************************************************************************************************************************************************/
/* HitPoints & HitPointsMax Functions */
	M_DEFINE_FUNCTION(eFunc_GetHitPoints				,"ACT_LitPointsDeVie"				,"ACT_GetHitPoints"                ,"Func_GetHitPoints"				,fn_p_stHitPointsAndHitPointsMaxFunction,USE_PERSO_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_AddAndGetHitPoints		,"ACT_AjouteEtLitPointsDeVie"		,"ACT_AddAndGetHitPoints"          ,"Func_AddAndGetHitPoints"			,fn_p_stHitPointsAndHitPointsMaxFunction,USE_PERSO_CONSTANT_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_SubAndGetHitPoints			,"ACT_EnleveEtLitPointsDeVie"		,"ACT_SubAndGetHitPoints"          ,"Func_SubAndGetHitPoints"			,fn_p_stHitPointsAndHitPointsMaxFunction,USE_PERSO_CONSTANT_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetHitPointsMax				,"ACT_LitPointsDeVieMax"			,"ACT_GetHitPointsMax"             ,"Func_GetHitPointsMax"				,fn_p_stHitPointsAndHitPointsMaxFunction,USE_PERSO_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_AddAndGetHitPointsMax	,"ACT_AjouteEtLitPointsDeVieMax"	,"ACT_AddAndGetHitPointsMax"       ,"Func_AddAndGetHitPointsMax"		,fn_p_stHitPointsAndHitPointsMaxFunction,USE_PERSO_CONSTANT_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_SubAndGetHitPointsMax	,"ACT_EnleveEtLitPointsDeVieMax"	,"ACT_SubAndGetHitPointsMax"       ,"Func_SubAndGetHitPointsMax"		,fn_p_stHitPointsAndHitPointsMaxFunction,USE_PERSO_CONSTANT_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* List Functions */
    M_DEFINE_FUNCTION(eFunc_ListSize					,"LST_TailleDeListe"				,"LST_ListSize"                    ,"Func_ListSize"					,fn_p_stListFunction,USE_DSGVARIDLIST_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GivePersoInList				,"LST_PrendPersoDansListe"			,"LST_GivePersoInList"             ,"Func_GivePersoInList"				,fn_p_stListFunction,USE_DSGVARIDLIST_CONSTANT_PARAM,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Vector */
    M_DEFINE_FUNCTION(eFunc_AbsoluteVector				,"VEC_VecteurAbsolu"				,"VEC_AbsoluteVector"              ,"Func_AbsoluteVector"				,fn_p_stLocalToGlobal,USE_VECTOR_PARAM,USE_VECTOR_PARAM, /**/ ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_RelativeVector				,"VEC_VecteurRelatif"				,"VEC_RelativeVector"              ,"Func_RelativeVector"				,fn_p_stGlobalToLocal,USE_VECTOR_PARAM,USE_VECTOR_PARAM, /**/ ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_VecteurLocalToGlobal		,"VEC_VecteurLocalToGlobal"			,"VEC_VectorLocalToGlobal"         ,"Func_VectorLocalToGlobal"			,fn_p_stLocalToGlobal,USE_VECTOR_PARAM,USE_VECTOR_PARAM,ULTRA_ABLE)
	M_DEFINE_FUNCTION(eFunc_VecteurGlobalToLocal		,"VEC_VecteurGlobalToLocal"			,"VEC_VectorGlobalToLocal"         ,"Func_VectorGlobalToLocal"			,fn_p_stGlobalToLocal,USE_VECTOR_PARAM,USE_VECTOR_PARAM,ULTRA_ABLE)
/**********************************************************************************************************************************************************************************************************************************************************/
	//KWN : Add a New AI Function
	M_DEFINE_FUNCTION(eFunc_GetScreenCoordinates			,"ACT_GetScreenCoordinates"					,"ACT_ScreenCoordinates"			,"Func_GetScreenCoordinates"		,fn_p_stVectorFunction,USE_VECTOR_PARAM	,USE_VECTOR_PARAM, NOT_ULTRA_ABLE)
	M_DEFINE_FUNCTION(eFunc_GetScreenDSActif			,"ACT_GetScreenDSActif"					,"ACT_GetScreenDSActif"			,"Func_GetScreenDSActif"		,fn_p_GetScreenDSActif,USE_NO_PARAM	,USE_CONSTANT_PARAM, NOT_ULTRA_ABLE)
	M_DEFINE_FUNCTION(eFunc_GetStyletCordinates			,"ACT_GetStyletCordinates"					,"ACT_GetStyletCordinates"			,"Func_GetStyletCordinates"		,fn_p_GetStyletCordinates,USE_NO_PARAM	,USE_VECTOR_PARAM, NOT_ULTRA_ABLE)
/**********************************************************************************************************************************************************************************************************************************************************/

/* Magnet MGT functions */
/*XB980824*/
#ifndef D_THROW_MGT
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetStrength		,"Magnet_GetStrength"				,"MAGNET_GetStrength"              ,"Func_MAGNETGetStrength"			,MGT_fn_p_stGetInfo,	USE_NO_PARAM,USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetFar				,"Magnet_GetFar"					,"MAGNET_GetFar"                   ,"Func_MAGNETGetFar"				,MGT_fn_p_stGetInfo,	USE_NO_PARAM,USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetNear			,"Magnet_GetNear"					,"MAGNET_GetNear"                  ,"Func_MAGNETGetNear"				,MGT_fn_p_stGetInfo,	USE_NO_PARAM,USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetDuration		,"Magnet_GetDuration"				,"MAGNET_GetDuration"              ,"Func_MAGNETGetDuration"			,MGT_fn_p_stGetInfo,	USE_NO_PARAM,USE_CONSTANT_PARAM,	/**/ ULTRA_ABLE /**/)
#else
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetStrength		,"Magnet_GetStrength"				,"MAGNET_GetStrength"              ,"Func_MAGNETGetStrength"			,fn_p_stDummyFunction,	USE_NO_PARAM,USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetFar				,"Magnet_GetFar"					,"MAGNET_GetFar"                   ,"Func_MAGNETGetFar"				,fn_p_stDummyFunction,	USE_NO_PARAM,USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetNear			,"Magnet_GetNear"					,"MAGNET_GetNear"                  ,"Func_MAGNETGetNear"				,fn_p_stDummyFunction,	USE_NO_PARAM,USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetMagnetDuration		,"Magnet_GetDuration"				,"MAGNET_GetDuration"              ,"Func_MAGNETGetDuration"			,fn_p_stDummyFunction,	USE_NO_PARAM,USE_CONSTANT_PARAM,	/**/ ULTRA_ABLE /**/)
#endif /* D_THROW_MGT */
/*End XB*/
/**********************************************************************************************************************************************************************************************************************************************************/
/* to change SPO draw mask */
	NU_M_DEFINE_FUNCTION(eFunc_SPO_GetDrawFlag			,"SPO_GetDrawFlag"					,"SPO_GetDrawFlag"                 ,"Func_SPO_GetDrawFlag"				,fn_p_st_SPO_GetDrawFlag,USE_SUPEROBJECT_PARAM USE_CONSTANT_PARAM,	USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Time Functions */
	M_DEFINE_FUNCTION(eFunc_GetTime						,"Temps_Obtenir"					,"TIME_GetTime"                    ,"Func_GetTime"						,fn_p_stTimeFunction,USE_NO_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_GetElapsedTime				,"Temps_Ecoule"						,"TIME_ElapsedTime"                ,"Func_ElapsedTime"					,fn_p_stTimeFunction,USE_CONSTANT_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetDeltaT					,"Temps_LitDT"						,"TIME_GetDT"                      ,"Func_GetDT"						,fn_p_stGetDTFunction,USE_NO_PARAM,USE_REAL_PARAM, NOT_ULTRA_ABLE  )
	M_DEFINE_FUNCTION(eFunc_GetFrameLength				,"Temps_DureeTrame"					,"TIME_GetFrameLength"			   ,"Func_GetFrameLength"				,fn_p_stGetFrameLength,USE_NO_PARAM,USE_REAL_PARAM, NOT_ULTRA_ABLE  )

/**********************************************************************************************************************************************************************************************************************************************************/
/* Input analogic value Functions */
	M_DEFINE_FUNCTION(eFunc_InputAnalogicValue			,"PAD_LitValeurAnalogiqueEntree"	,"PAD_GetInputAnalogicValue"       ,"Func_GetInputAnalogicValue"		,fn_p_stInputFunction,USE_BUTTON_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_VitessePadAnalogique		,"PAD_VitessePadAnalogique"			,"PAD_VitessePadAnalogique"        ,"Func_VitessePadAnalogique"		,fn_p_stCode4VitessePadAnalogique, USE_CONSTANT_PARAM USE_CONSTANT_PARAM USE_REAL_PARAM, USE_VECTOR_PARAM, ULTRA_ABLE )
/**********************************************************************************************************************************************************************************************************************************************************/
/* Misc */
	M_DEFINE_FUNCTION(eFunc_GenerateObject				,"GenereObjet"						,"ACT_GenerateObject"              ,"Func_GenerateObject"				,fn_p_stMiscFunction,USE_ALWAYS_PARAM USE_VECTOR_PARAM,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_CountGeneratedObjects	    ,"ACT_CompteObjetsGeneres"			,"ACT_CountGeneratedObjects"       ,"Func_CountGeneratedObjects"				,fn_p_stMiscFunction,USE_PERSO_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetGlobalCounter		    ,"MAP_LitCompteurGlobal"			,"MAP_GetGlobalCounter"            ,"Func_GetGlobalCounter"				,fn_p_stMiscFunction,USE_NO_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	NU_M_DEFINE_FUNCTION(eFunc_GetSubMapId					,"MAP_LitNumeroDeSousMap"			,"MAP_GetSubMapId"					,"Func_GetSubMapId"				,fn_p_stMiscFunction,USE_NO_PARAM,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Color functions */
  	NU_M_DEFINE_FUNCTION(eFunc_AddColor					,"AjouteCouleur"        ,"COLOR_AddColor"					,"Func_AddColor"    ,fn_p_stColorFunction,USE_COLOR_PARAM USE_COLOR_PARAM	,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_AddRed					,"AjouteRouge"          ,"COLOR_AddRed"						,"Func_AddRed"      ,fn_p_stColorFunction,USE_COLOR_PARAM USE_CONSTANT_PARAM,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_AddGreen					,"AjouteVert"           ,"COLOR_AddGreen"					,"Func_AddGreen"    ,fn_p_stColorFunction,USE_COLOR_PARAM USE_CONSTANT_PARAM,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_AddBlue					,"AjouteBleu"           ,"COLOR_AddBlue"					,"Func_AddBlue"     ,fn_p_stColorFunction,USE_COLOR_PARAM USE_CONSTANT_PARAM,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_AddAlpha					,"AjouteAlpha"          ,"COLOR_AddAlpha"					,"Func_AddAlpha"    ,fn_p_stColorFunction,USE_COLOR_PARAM USE_CONSTANT_PARAM,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	M_DEFINE_FUNCTION(eFunc_ColorRedGreenBlueAlpha		,"CouleurRVBA"          ,"COLOR_ColorRGBA"					,"Func_ColorRGBA"   ,fn_p_stColorFunction,USE_RGBA_PARAM					,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	M_DEFINE_FUNCTION(eFunc_ColorRedGreenBlue			,"CouleurRVB"           ,"COLOR_ColorRGB"					,"Func_ColorRGB"    ,fn_p_stColorFunction,USE_RGB_PARAM						,USE_COLOR_PARAM   , /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_ColorRed					,"ComposanteRouge"      ,"COLOR_ColorRed"					,"Func_ColorRed"    ,fn_p_stColorFunction,USE_COLOR_PARAM					,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_ColorGreen				,"ComposanteVerte"      ,"COLOR_ColorGreen"					,"Func_ColorGreen"  ,fn_p_stColorFunction,USE_COLOR_PARAM					,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_ColorBlue				,"ComposanteBleue"      ,"COLOR_ColorBlue"					,"Func_ColorBlue"   ,fn_p_stColorFunction,USE_COLOR_PARAM					,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_ColorAlpha				,"ComposanteAlpha"      ,"COLOR_ColorAlpha"					,"Func_ColorAlpha"  ,fn_p_stColorFunction,USE_COLOR_PARAM					,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
/**********************************************************************************************************************************************************************************************************************************************************/
/* Visual GMT functions */
	NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTColor					,"LitVisuelGMTCouleur"              ,"GMT_GetVisualGMTColor"				  ,"Func_GetVisualGMTColor"					,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_COLOR_PARAM		,/**/ NOT_ULTRA_ABLE /**/ )
    NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTSpecularCoef			    ,"LitVisuelGMTSpeculaireCoef"       ,"GMT_GetVisualGMTSpecularCoef"		  ,"Func_GetVisualGMTSpecularCoef"			,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_COLOR_PARAM		,/**/ NOT_ULTRA_ABLE /**/ )
    NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTSpecularExponent		    ,"LitVisuelGMTSpeculaireCoef"       ,"GMT_GetVisualGMTSpecularExponant"	  ,"Func_GetVisualGMTSpecularExponant"		,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_CONSTANT_PARAM	,/**/ NOT_ULTRA_ABLE /**/ )
    NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTDiffuseCoef				,"LitVisuelGMTDiffusionCoef"        ,"GMT_GetVisualGMTDiffuseCoef"		  ,"Func_GetVisualGMTDiffuseCoef"			,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_COLOR_PARAM		,/**/ NOT_ULTRA_ABLE /**/ )
    NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTAmbientCoef				,"LitVisuelGMTAmbientCoef"          ,"GMT_GetVisualGMTAmbientCoef"			  ,"Func_GetVisualGMTAmbientCoef"			,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_COLOR_PARAM		,/**/ NOT_ULTRA_ABLE /**/ )
    NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTTextureScrollingCoefU	,"LitVisuelGMTTextureScrollingCoefU","GMT_GetVisualGMTTextureScrollCoefU"  ,"Func_GetVisualGMTTextureScrollingCoefU"	,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_REAL_PARAM		,/**/ NOT_ULTRA_ABLE /**/ )
    NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTTextureScrollingCoefV	,"LitVisuelGMTTextureScrollingCoefV","GMT_GetVisualGMTTextureScrollCoefV"  ,"Func_GetVisualGMTTextureScrollingCoefV"	,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_REAL_PARAM		,/**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTFrame					,"LitNoImageVisuelGMT"              ,"GMT_GetVisualGMTFrame"				  ,"Func_GetVisualGMTFrame"					,fn_p_stVisualGameMaterialFunction	,USE_GMT_PARAM, USE_CONSTANT_PARAM	,/**/ NOT_ULTRA_ABLE /**/ )
	NU_M_DEFINE_FUNCTION(eFunc_GetVisualGMTNumberOfFrames			,"LitNbImagesVisuelGMT"             ,"GMT_GetVisualGMTNumberOfFrames"				  ,"Func_GetVisualGMTNumberOfFrames"		,fn_p_stVisualGameMaterialFunction  ,USE_GMT_PARAM, USE_CONSTANT_PARAM	,/**/ NOT_ULTRA_ABLE /**/ )
/**********************************************************************************************************************************************************************************************************************************************************/
/* Function for savegames */
	M_DEFINE_FUNCTION(eFunc_SaveGame				        ,"SauvePartie"				            ,"GAME_SaveGame"                            ,"Func_SaveGame"			          ,fn_p_stSaveGameFunction,USE_CONSTANT_PARAM, USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_LoadGame				        ,"ChargePartie"				            ,"GAME_LoadGame"                            ,"Func_LoadGame"			          ,fn_p_stSaveGameFunction,USE_CONSTANT_PARAM, USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_EraseGame				        ,"EffacePartie"				            ,"GAME_EraseGame"                           ,"Func_EraseGame"			          ,fn_p_stSaveGameFunction,USE_CONSTANT_PARAM, USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
	M_DEFINE_FUNCTION(eFunc_GetCurrentSlot          ,"LitNumeroSlotCourant"           ,"GAME_GetCurrentSlotNumber"                ,"Func_GetCurrentSlotNumber"    ,fn_p_stSaveGameFunction,USE_NO_PARAM, USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
    M_DEFINE_FUNCTION(eFunc_IsAValidSlotName			,"OPTION_IsAValidSlotName"		,"OPTION_IsAValidSlotName"		,"Func_IsAValidSlotName"	 ,fn_p_stIsAValidSlotName, USE_TEXT_PARAM USE_2_CONSTANTS_PARAM, USE_CONSTANT_PARAM,  NOT_ULTRA_ABLE)
	M_DEFINE_FUNCTION(eFunc_RepairCorruptSlot,		"GAME_RepairCorruption", "GAME_RepairCorruption", "Func_RepairCorruption", fn_p_stSaveGameFunction, USE_NO_PARAM, USE_CONSTANT_PARAM, NOT_ULTRA_ABLE)


#include "DefFunc1.h"
#include "DefFunCa.h"
 
#if defined(M_DEFINE_FUNCTION)
#undef M_DEFINE_FUNCTION
#endif
