#if !defined(M_DEFINE_PROCEDURE)
#error You should define M_DEFINE_PROCEDURE accordingly before including this file !
#endif
 
/* 6 parameters to define a procedure : enum , editor name, script name, function pointers in Procedure.c, in params,ultra-able */
 
/************************************************************************************************
* le #ifdef suivant permet d'exclure les fonctions inutilisées
* Merci
*	Marc
************************************************************************************************/
#if defined(_AI_EXCLUDE_NEVER_USED_)    /* MT {*/
	#define NU_M_DEFINE_PROCEDURE(a,b,english,c,d,e,f)
#else
	#define NU_M_DEFINE_PROCEDURE		M_DEFINE_PROCEDURE
#endif /* _AI_EXCLUDE_NEVER_USED_ }*/
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* HitPoints procedures */
M_DEFINE_PROCEDURE(eProc_SetHitPoints					    ,"ACT_FixePointsDeVie"					,"ACT_SetHitPoints"                         ,"Proc_SetHitPoints"					,fn_p_stHitPointsProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetHitPointsInit					,"ACT_FixePointsDeVieInit"				,"ACT_SetHitPointsInit"                     ,"Proc_SetHitPointsInit"				,fn_p_stHitPointsProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetHitPointsToInitValue		    ,"ACT_ReinitPointsDeVie"				,"ACT_SetHitPointsToInit"                   ,"Proc_SetHitPointsToInit"				,fn_p_stHitPointsProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetHitPointsToMaxValue		    ,"ACT_ReinitPointsDeVieAMax"			,"ACT_SetHitPointsToMax"                    ,"Proc_SetHitPointsToMax"				,fn_p_stHitPointsProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_AddHitPoints					    ,"ACT_AjoutePointsDeVie"				,"ACT_AddHitPoints"                         ,"Proc_AddHitPoints"					,fn_p_stHitPointsProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SubHitPoints					    ,"ACT_EnlevePointsDeVie"				,"ACT_SubHitPoints"                         ,"Proc_SubHitPoints"					,fn_p_stHitPointsProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/* HitPointsMax procedures */
M_DEFINE_PROCEDURE(eProc_SetHitPointsMax				    ,"ACT_FixePointsDeVieMax"				,"ACT_SetHitPointsMax"                      ,"Proc_SetHitPointsMax"					,fn_p_stHitPointsMaxProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetHitPointsMaxToInitValue	    ,"ACT_ReinitPointsDeVieMax"				,"ACT_SetHitPointsMaxToInit"                ,"Proc_SetHitPointsMaxToInit"			,fn_p_stHitPointsMaxProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetHitPointsMaxToMaxValue	    ,"ACT_ReinitPointsDeVieMaxAMax"			,"ACT_SetHitPointsMaxToMax"                 ,"Proc_SetHitPointsMaxToMax"			,fn_p_stHitPointsMaxProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_AddHitPointsMax				    ,"ACT_AjoutePointsDeVieMax"				,"ACT_AddHitPointsMax"                      ,"Proc_AddHitPointsMax"					,fn_p_stHitPointsMaxProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SubHitPointsMax				    ,"ACT_EnlevePointsDeVieMax"				,"ACT_SubHitPointsMax"                      ,"Proc_SubHitPointsMax"					,fn_p_stHitPointsMaxProcedure,USE_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/* Transparence */
M_DEFINE_PROCEDURE(eProc_TransparentDisplay				    ,"ACT_ActivationTransparence"			,"ACT_TransparentDisplay"                   ,"Proc_TransparentDisplay"              ,fn_p_stTransparenceProcedure,		USE_CONSTANT_PARAM,						/**/ ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetTransparency				    ,"ACT_NiveauTransparence"				,"ACT_SetTransparency"                      ,"Proc_SetTransparency"                 ,fn_p_stTransparenceProcedure,		USE_REAL_PARAM,							/**/ ULTRA_ABLE /**/ )
/* draw mask */
M_DEFINE_PROCEDURE(eProc_ACT_SetDrawFlag				    ,"ACT_SetDrawFlag"						,"ACT_SetDrawFlag"                          ,"Proc_ACT_SetDrawFlag"					,fn_p_st_ACT_SetDrawFlag		,USE_PERSO_PARAM USE_2_CONSTANTS_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
/***********************************************************************************************************************************************************************************************************************************************************/
/* Transparence */
M_DEFINE_PROCEDURE(eProc_ModuleTransparentDisplay		    ,"MOD_ActivationTransparence"			,"MOD_ModuleTransparentDisplay"             ,"Proc_ModuleTransparentDisplay"        ,fn_p_stTransparenceProcedure,		USE_MODULE_PARAM USE_CONSTANT_PARAM,	/**/ ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_ModuleTransparentDisplay2		    ,"MOD_ActivationTransparence2"			,"MOD_ModuleTransparentDisplay2"            ,"Proc_ModuleTransparentDisplay2"       ,fn_p_stTransparenceProcedure,		USE_CONSTANT_PARAM USE_CONSTANT_PARAM,	/**/ ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetModuleTransparency			    ,"MOD_NiveauTransparence"				,"MOD_SetModuleTransparency"                ,"Proc_SetModuleTransparency"           ,fn_p_stTransparenceProcedure,		USE_MODULE_PARAM USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetModuleTransparency2  		    ,"MOD_NiveauTransparence2"				,"MOD_SetModuleTransparency2"               ,"Proc_SetModuleTransparency2"          ,fn_p_stTransparenceProcedure,		USE_CONSTANT_PARAM USE_REAL_PARAM,		/**/ ULTRA_ABLE /**/ )
/***********************************************************************************************************************************************************************************************************************************************************/
/* List ZDD ZDE procedures */
M_DEFINE_PROCEDURE(eProc_ListAffectPersoZDD		    		,"LST_AffecteListeAvecZDDPerso"			,"LST_ListAffectWithPersoZDD"               ,"Proc_ListAffectWithPersoZDD"			,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_ZDD_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ListAffectModuleZDD	    		,"LST_AffecteListeAvecZDDModule"		,"LST_ListAffectWithModuleZDD"              ,"Proc_ListAffectWithModuleZDD"			,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_ZDD_MODULE_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListAffectPersoZDE		    		,"LST_AffecteListeAvecZDEPerso"			,"LST_ListAffectWithPersoZDE"               ,"Proc_ListAffectWithPersoZDE"			,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_ZDE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListAffectModuleZDE	    		,"LST_AffecteListeAvecZDEModule"		,"LST_ListAffectWithModuleZDE"              ,"Proc_ListAffectWithModuleZDE"			,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_ZDE_MODULE_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ListAffectPersoTypeZDE	    		,"LST_AffecteListeAvecTypeZDEPerso"		,"LST_ListAffectWithPersoTypeZDE"           ,"Proc_ListAffectWithPersoTypeZDE"		,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_ZDE_PERSO_MASK_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListAffectModuleTypeZDE 		,"LST_AffecteListeAvecTypeZDEModule"	,"LST_ListAffectWithModuleTypeZDE"          ,"Proc_ListAffectWithModuleTypeZDE"		,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_ZDE_MODULE_MASK_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListAffectTypeZDEWithTypeZDE	,"LST_AffecteListeTypeZDEAvecTypeZDE"	,"LST_ListAffectTypeZDEWithTypeZDE"         ,"Proc_ListAffectTypeZDEWithTypeZDE"	,fn_p_stListZDDZDEProcedure,USE_DSGVARIDLIST_PARAM USE_MASK_PARAM USE_MASK_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/* List Misc procedures */
NU_M_DEFINE_PROCEDURE(eProc_AddPersoInList					,"LST_AjoutePersoDansListe"				,"LST_AddPersoInList"                       ,"Proc_AddPersoInList"					,fn_p_stListProcedure,USE_DSGVARIDLIST_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_AddPersoInListAt				,"LST_AjoutePersoDansListeA"			,"LST_AddPersoInListAt"                     ,"Proc_AddPersoInListAt"				,fn_p_stListProcedure,USE_DSGVARIDLIST_PERSO_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_DeletePersoAtInList				,"LST_DetruitPersoDansListe"			,"LST_DeletePersoAtInList"                  ,"Proc_DeletePersoAtInList"				,fn_p_stListProcedure,USE_DSGVARIDLIST_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_FindPersoAndDeleteInList		,"LST_TrouveEtDetruitPersoDansListe"	,"LST_FindPersoAndDeleteInList"             ,"Proc_FindPersoAndDeleteInList"		,fn_p_stListProcedure,USE_DSGVARIDLIST_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListSelect						,"LST_SelectDansListe"					,"LST_Select"                               ,"Proc_Select"							,fn_p_stListProcedure,USE_DSGVARIDLIST_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListUnSelect					,"LST_UnSelectDansListe"				,"LST_UnSelect"                             ,"Proc_UnSelect"						,fn_p_stListProcedure,USE_DSGVARIDLIST_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ListSort					    	,"LST_TrieListe"						,"LST_ListSort"                             ,"Proc_ListSort"						,fn_p_stListProcedure,USE_DSGVARIDLIST_2_CONSTANTS_PARAM USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ListSortByFamily				,"LST_TrieListeParFamille"				,"LST_ListSortByFamily"                     ,"Proc_ListSortByFamily"				,fn_p_stListProcedure,USE_DSGVARIDLIST_FAMILY_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ListSortByModel				    ,"LST_TrieListeParModele"				,"LST_ListSortByModele"                     ,"Proc_ListSortByModele"				,fn_p_stListProcedure,USE_DSGVARIDLIST_MODEL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_FillListWithAllPersoOfAFamily	,"LST_RemplirListeAvecTouteUneFamille"  ,"LST_ListSortByModele"                     ,"Proc_FillListWithAllPersoOfAFamily"	,fn_p_stListProcedure,USE_DSGVARIDLIST_FAMILY_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_FillListWithAllPersoOfAModel	,"LST_RemplirListeAvecToutUnModele"		,"LST_FillListWithAllPersoOfAModel"         ,"Proc_FillListWithAllPersoOfAModel"	,fn_p_stListProcedure,USE_DSGVARIDLIST_MODEL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_DeleteFamilyInList				    ,"LST_DetruitFamilleDansListe"			,"LST_DeleteFamilyInList"                   ,"Proc_DeleteFamilyInList"				,fn_p_stListProcedure,USE_DSGVARIDLIST_FAMILY_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_DeleteModelInList				    ,"LST_DetruitModeleDansListe"			,"LST_DeleteModelInList"                    ,"Proc_DeleteModelInList"				,fn_p_stListProcedure,USE_DSGVARIDLIST_MODEL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/* List Ensemble procedures */
NU_M_DEFINE_PROCEDURE(eProc_ListUnion						    ,"LST_ListeUnion"						,"LST_DeleteModelInList"                    ,"Proc_ListUnion"						,fn_p_stListEnsembleProcedure,USE_3_DSGVARIDLISTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListInter						    ,"LST_ListeInter"						,"LST_ListInter"                            ,"Proc_ListInter"						,fn_p_stListEnsembleProcedure,USE_3_DSGVARIDLISTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListDiff					    	,"LST_ListeDiff"						,"LST_ListDiff"                             ,"Proc_ListDiff"						,fn_p_stListEnsembleProcedure,USE_3_DSGVARIDLISTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_ListAdd					    	,"LST_ListeAjoute"						,"LST_ListAdd"                              ,"Proc_ListAdd"							,fn_p_stListEnsembleProcedure,USE_3_DSGVARIDLISTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Brouillards */
M_DEFINE_PROCEDURE(eProc_FogActivate					    ,"LUM_BrouillardActive"					,"FOG_Activate"                             ,"FOG_Proc_Activate"					,fn_p_stFogProcedure,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetFogColor					    ,"LUM_BrouillardFixeCouleur"			,"FOG_SetColor"                             ,"FOG_Proc_SetColor"  					,fn_p_stFogProcedure,USE_COLOR_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetFogNearFarInf				    ,"LUM_BrouillardFixeDistances"			,"FOG_SetNearFarInf"                        ,"FOG_Proc_SetNearFarInf"				,fn_p_stFogProcedure,USE_3_REALS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetFogBlend					    ,"LUM_BrouillardFixeBlend"				,"FOG_SetBlend"                             ,"FOG_Proc_SetBlend"					,fn_p_stFogProcedure,USE_2_REALS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_RestoreFog						    ,"LUM_RestaurerBrouillard"				,"FOG_RestoreFog"                           ,"FOG_Proc_RestoreFog"					,fn_p_stFogProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SaveFog						    ,"LUM_SauverBrouillard"					,"FOG_SaveFog"                              ,"FOG_Proc_SaveFog"						,fn_p_stFogProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/*************************************************************************************************************************************/
/* Magnet MGT procedure */
/*XB980824*/
#ifndef D_THROW_MGT
NU_M_DEFINE_PROCEDURE(eProc_Magnet_ActiveMagnet			    ,"Magnet_ON"							,"MAGNET_ON"                                ,"Procedure_Magnet_ActiveMagnet"		,MGT_fn_p_stActiveMagnet,	USE_NO_PARAM,			/**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_Magnet_DeactiveMagnet		    ,"Magnet_OFF"							,"MAGNET_OFF"                               ,"Procedure_Magnet_DeactiveMagnet"		,MGT_fn_p_stDeactiveMagnet,	USE_NO_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetStrength			    ,"Magnet_SetStrength"					,"MAGNET_SetStrength"                       ,"Procedure_Magnet_SetStrength"			,MGT_fn_p_stSetParam,		USE_REAL_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetFar				    ,"Magnet_SetFar"						,"MAGNET_SetFar"                            ,"Procedure_Magnet_SetFar"				,MGT_fn_p_stSetParam,		USE_REAL_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetNear				    ,"Magnet_SetNear"						,"MAGNET_SetNear"                           ,"Procedure_Magnet_SetNear"				,MGT_fn_p_stSetParam,		USE_REAL_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetDuration			    ,"Magnet_SetDuration"					,"MAGNET_SetDuration"                       ,"Procedure_Magnet_SetDuration"			,MGT_fn_p_stSetParam,		USE_CONSTANT_PARAM,		/**/ ULTRA_ABLE /**/)
#else 
NU_M_DEFINE_PROCEDURE(eProc_Magnet_ActiveMagnet			    ,"Magnet_ON"							,"MAGNET_ON"                                ,"Procedure_Magnet_ActiveMagnet"	    ,fn_p_stDummy,	USE_NO_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_DeactiveMagnet		    ,"Magnet_OFF"							,"MAGNET_OFF"                               ,"Procedure_Magnet_DeactiveMagnet"		,fn_p_stDummy,	USE_NO_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetStrength			    ,"Magnet_SetStrength"					,"MAGNET_SetStrength"                       ,"Procedure_Magnet_SetStrength"			,fn_p_stDummy,		USE_REAL_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetFar				    ,"Magnet_SetFar"						,"MAGNET_SetFar"                            ,"Procedure_Magnet_SetFar"				,fn_p_stDummy,		USE_REAL_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetNear				    ,"Magnet_SetNear"						,"MAGNET_SetNear"                           ,"Procedure_Magnet_SetNear"				,fn_p_stDummy,		USE_REAL_PARAM,			/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_Magnet_SetDuration			    ,"Magnet_SetDuration"					,"MAGNET_SetDuration"                       ,"Procedure_Magnet_SetDuration"			,fn_p_stDummy,		USE_CONSTANT_PARAM,		/**/ ULTRA_ABLE /**/)
#endif /* D_THROW_MGT */
/*End XB*/
/**********************************************************************************************************************************************************************************************************************************************************/
#ifndef D_THROW_PRT
/* FootPath */
NU_M_DEFINE_PROCEDURE(eProc_FootPath_AddFootPrint			,"FootPath_AddFootPrint"				,"FootPath_AddFootPrint"                    ,"Proc_FootPath_AddFootPrint"			,fn_p_st_FootPath_AddFootPrint	,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_FootPath_Clear					,"FootPath_Clear"						,"FootPath_Clear"                           ,"Proc_FootPath_Clear"					,fn_p_st_FootPath_Clear			,USE_NO_PARAM,		/**/ NOT_ULTRA_ABLE /**/)
#else 
NU_M_DEFINE_PROCEDURE(eProc_FootPath_AddFootPrint			,"FootPath_AddFootPrint"				,"FootPath_AddFootPrint"                    ,"Proc_FootPath_AddFootPrint"			,fn_p_stDummy					,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_FootPath_Clear					,"FootPath_Clear"						,"FootPath_Clear"                           ,"Proc_FootPath_Clear"					,fn_p_stDummy					,USE_NO_PARAM,		/**/ NOT_ULTRA_ABLE /**/)
#endif /* D_THROW_PRT */
/**********************************************************************************************************************************************************************************************************************************************************/
/* Effect */
M_DEFINE_PROCEDURE(eProc_SinEffect_SetFreq				    ,"Effect_SetSinusFreq"					,"EFFECT_SetSinusFreq"               ,"Proc_SinusEffect_SetFreq"				,fn_p_st_SinusEffect_SetFreq	,USE_2_CONSTANTS_PARAM,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SinEffect_SetAmplitude			    ,"Effect_SetSinusAmplitude"				,"EFFECT_SetSinusAmplitude"          ,"Proc_SinusEffect_SetAmplitude"	        ,fn_p_st_SinusEffect_SetAmplitude, USE_VECTOR_PARAM,		/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SinEffect_SetState				    ,"Effect_SetSinusState"					,"EFFECT_SetSinusState"              ,"Proc_SinusEffect_SetState"		        ,fn_p_st_SinusEffect_SetState	,USE_CONSTANT_PARAM,	/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SinEffect_SetFreq3D				,"Effect_SetSinusFreq3D"                ,"EFFECT_SetSinusFreq3D"			 ,"Proc_SinusEffect_SetFreq3D"				,fn_p_st_SinusEffect_SetFreq	,USE_3_CONSTANTS_PARAM,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SinEffect_SetRLIAmplitude			,"Effect_SetRLISinusAmplitude"          ,"EFFECT_SetRLISinusAmplitude"		 ,"Proc_SinusEffect_SetRLIAmplitude"		,fn_p_st_SinusEffect_SetRLIParams, USE_3_REALS_PARAM,		/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SinEffect_SetRLIBase			    ,"Effect_SetRLISinusBase"               ,"EFFECT_SetRLISinusBase"			 ,"Proc_SinusEffect_SetRLIBase"		        ,fn_p_st_SinusEffect_SetRLIParams, USE_3_REALS_PARAM,		/**/ NOT_ULTRA_ABLE /**/)
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* SuperObject Draw mask */
M_DEFINE_PROCEDURE(eProc_SPO_SetDrawFlag			    	,"SPO_SetDrawFlag"						,"SPO_SetDrawFlag"                          ,"Proc_SPO_SetDrawFlag"					        ,fn_p_st_SPO_SetDrawFlag		,USE_SUPEROBJECT_PARAM USE_2_CONSTANTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SPO_SetEngineDisplayModeFlag	,"SPO_SetEngineDisplayModeFlag"			,"SPO_SetEngineDisplayModeFlag"             ,"Proc_SPO_SetEngineDisplayModeFlag"	        ,fn_p_st_SPO_SetEngineDisplayModeFlag,USE_2_CONSTANTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* NO FAMILY */
M_DEFINE_PROCEDURE(eProc_DeactivateBut					    ,"BoutonDesactive"		    			,"DeactivateBut"                            ,"Proc_DeactivateBut"					        ,fn_p_stKeyboardProcedure, USE_BUTTON_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_ActivateBut					    ,"BoutonActive" 						,"ActivateBut"                              ,"Proc_ActivateBut"						        ,fn_p_stKeyboardProcedure, USE_BUTTON_PARAM, /**/ NOT_ULTRA_ABLE /**/ )
/**********************************************************************************************************************************************************************************************************************************************************/
M_DEFINE_PROCEDURE(eProc_None							    ,"NeRienFaire"							,"None"                                     ,"Proc_None"							        ,fn_p_stNoneProcedure						, USE_NO_PARAM,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeComport					    ,"ChangeComportement"					,"ChangeComport"                            ,"Proc_ChangeComport"					        ,fn_p_stChangeComportIntelligenceProcedure	,USE_PERSO_INTELL_COMPORT_PARAM	,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeComportReflex			    ,"ChangeComportementReflexe"			,"ChangeComportReflex"                      ,"Proc_ChangeComportReflex"				        ,fn_p_stChangeComportReflexProcedure		,USE_PERSO_REFLEX_COMPORT_PARAM	,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeMyComport				    ,"ChangeMonComportement"				,"ChangeMyComport"                          ,"Proc_ChangeMyComport"					        ,fn_p_stChangeMyComportIntelligenceProcedure,USE_MY_INTELL_COMPORT_PARAM	,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeMyComportReflex			    ,"ChangeMonComportementReflexe"			,"ChangeMyComportReflex"                    ,"Proc_ChangeMyComportReflex"			        ,fn_p_stChangeMyComportReflexProcedure		,USE_MY_REFLEX_COMPORT_PARAM	,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeMyComportAndMyReflex			,"ChangeMonComportementEtMonReflexe"	,"ChangeMyComportAndMyReflex"               ,"Proc_ChangeMyComportAndMyReflex"			    ,fn_p_stChangeMyComportIntelligenceAndReflexProcedure		, USE_MY_INTELL_COMPORT_PARAM USE_MY_REFLEX_COMPORT_PARAM	,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeAction					    ,"ChangeAction"							,"ChangeAction"                             ,"Proc_ChangeAction"					        ,fn_p_stChangeActionProcedure,USE_ACTION_PARAM			, ULTRA_ABLE )
M_DEFINE_PROCEDURE(eProc_ChangeActionForce				    ,"ChangeActionForce"					,"ChangeActionForce"                        ,"Proc_ChangeActionForce"					    ,fn_p_stChangeActionProcedure,USE_ACTION_PARAM			, ULTRA_ABLE )
M_DEFINE_PROCEDURE(eProc_ChangeActionRandom				    ,"ChangeActionAleatoire"				,"ChangeActionRandom"                       ,"Proc_ChangeActionRandom"				        ,fn_p_stChangeActionRandomProcedure,USE_ACTION_PARAM,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeActionWithEvents			    ,"ChangeActionAvecEvenements"			,"ChangeActionWithEvents"                   ,"Proc_ChangeActionWithEvents"					,fn_p_stChangeActionProcedure,USE_ACTION_PARAM	USE_BOOLEAN_PARAM , ULTRA_ABLE )
/**********************************************************************************************************************************************************************************************************************************************************/
M_DEFINE_PROCEDURE(eKeyWord_Boucle						    ,"Boucle"								,"Loop"                                     ,"Proc_Loop"							        ,fn_p_stLoopKeyWord,USE_CONSTANT_PARAM,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eKeyWord_FinBoucle					    ,"FinBoucle"							,"EndLoop"                                  ,"Proc_EndLoop"							        ,fn_p_stEndLoopKeyWord,USE_NO_PARAM,/**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eKeyWord_Break							,"Break"								,"Break"                                    ,"Proc_Break"							        ,fn_p_stBreakKeyword,USE_CONSTANT_PARAM,/**/ NOT_ULTRA_ABLE /**/)
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* Misc procedures with no parameter */
M_DEFINE_PROCEDURE(eProc_PlayerIsDead                       ,"MortDuJoueur"                             ,"ACT_PlayerIsDead"                         ,"Proc_PlayerIsDead"                        ,fn_p_stMiscNoProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ResetDynamicsWithCard			    ,"MEC_RestaureParametresCarte"              ,"MEC_RestoreCardParameters"                ,"Proc_RestoreCardParameters"               ,fn_p_stMiscNoProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_BreakAI			                ,"BreakAI"                                  ,"BreakAI"                                  ,"Proc_BreakAI"                             ,fn_p_stMiscNoProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_IgnoreTraceFlagForNextPicking		,"COL_IgnoreFlagRayTraceAuProchainPicking"  ,"Proc_IgnoreTraceFlagForNextPicking"       ,"Proc_IgnoreTraceFlagForNextPicking"       ,fn_p_stMiscNoProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* Misc procedures with one parameter */
M_DEFINE_PROCEDURE(eProc_SetMainActor                       ,"FixeActeurPrincipal"                  ,"ACT_SetMainActor"                         ,"Proc_SetMainActor"                            ,fn_p_stMiscProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ActivateObject                     ,"ActiveObjet"                          ,"SPO_ActivateObject"                       ,"Proc_ActivateObject"                          ,fn_p_stMiscProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_DesactivateObject                  ,"DesactiveObjet"                       ,"SPO_DesactivateObject"                    ,"Proc_DesactivateObject"                       ,fn_p_stMiscProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeMap                          ,"ChangeMap"                            ,"MAP_ChangeMap"                            ,"Proc_ChangeMap"                               ,fn_p_stMiscProcedure,USE_MAP_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeMapNoAutosave                ,"ChangeMapSansSauver"                  ,"MAP_ChangeMapNoAutosave"                  ,"Proc_ChangeMapNoAutosave"                     ,fn_p_stMiscProcedure,USE_MAP_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetActionReturn                    ,"ForceValeurDeRetourMetaAction"        ,"SetActionReturn"                          ,"Proc_SetActionReturn"                         ,fn_p_stMiscProcedure,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_FactorAnimationFrameRate           ,"FixeFacteurVitesseAnimation"          ,"FactorAnimationFrameRate"                 ,"Proc_FactorAnimationFrameRate"                ,fn_p_stMiscUltraProcedure,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetCharacterPriority               ,"ACT_FixePriorite"                     ,"ACT_SetCharacterPriority"                 ,"Proc_SetCharacterPriority"					,fn_p_stMiscUltraProcedure,USE_CONSTANT_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ForcePersoHandling			        ,"ACT_ForceTraitementPerso"             ,"ACT_ForcePersoHandling"                   ,"Proc_ForcePersoHandling"                      ,fn_p_stMiscProcedure,USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/*M_DEFINE_PROCEDURE(eProc_PlayerIsDeadWithOption	 ,"MortDuJoueurAvecOption"		 ,"Proc_PlayerIsDeadWithOption"  ,fn_p_stMiscProcedure,USE_CONSTANT_PARAM, /*   NOT_ULTRA_ABLE /*  )*/
/**********************************************************************************************************************************************************************************************************************************************************/
/* Misc procedures with two or more parameters */
/*M_DEFINE_PROCEDURE(eProc_ChangeMapAtPosition     ,"ChangeMapALaPosition"         ,"Proc_ChangeMapAtPosition"     ,fn_p_stMiscMoreProcedure,USE_MAP_PARAM USE_STRING_PARAM USE_STRING_PARAM, /*   NOT_ULTRA_ABLE /*  )*/
M_DEFINE_PROCEDURE(eProc_PlayerIsDeadWithPlacement          ,"MortDuJoueurAvecRepositionnement"     ,"ACT_PlayerIsDeadWithPlacement"            ,"Proc_PlayerIsDeadWithPlacement"  ,fn_p_stMiscMoreProcedure,USE_PERSO_PARAM USE_PERSO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* Table procedures */
NU_M_DEFINE_PROCEDURE(eProc_SwapLinkTableObjects            ,"EchangeObjetsDansTable"                ,"SwapLinkTableObjects"                    ,"Proc_SwapLinkTableObjects"               ,fn_p_stLinkTableProcedure,USE_2_CONSTANTS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ChangeCurrentObjectTable           ,"ChangeTableObjetCourante"              ,"ChangeCurrentObjectTable"                ,"Proc_ChangeCurrentObjectTable"           ,fn_p_stLinkTableProcedure,USE_OBJECTTABLE_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/*ANNECY BBB {*/
NU_M_DEFINE_PROCEDURE(eProc_BuildObjectTableFromTableAndString ,"ModifieTableCouranteAvecTableEtTexte"      ,"BuildObjectTableFromTableAndString"   ,"Proc_BuildObjectTableFromTableAndString"        ,fn_p_stBuildObjectTableFromTableAndStringProcedure, USE_OBJECTTABLE_PARAM USE_STRING_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_BuildObjectTableFromFormattedString,"ModifieTableCouranteAvecTexteFormate"      ,"BuildObjectTableFromFormattedString"  ,"Proc_BuildObjectTableFromFormattedString"        ,fn_p_stBuildObjectTableFromTableAndStringProcedure, USE_STRING_PARAM USE_REAL_PARAM USE_CONSTANT_PARAM USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/*ANNECY BBB }*/
/**********************************************************************************************************************************************************************************************************************************************************/
/* LipsSynchro */
#ifdef D_USE_LIPSYNC
M_DEFINE_PROCEDURE(eProc_StartSpeech			            ,"Parle"                                ,"StartSpeech"                              ,"Proc_StartSpeech"			      ,fn_p_stLipsSynchroProcedure,USE_LIPSYNCHRO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_StopSpeech				        ,"ArreteDeParler"				        ,"StopSpeech"                               ,"Proc_StopSpeech"			      ,fn_p_stLipsSynchroProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
#endif /*  D_USE_LIPSYNC*/
/**********************************************************************************************************************************************************************************************************************************************************/
/* Module Control */
M_DEFINE_PROCEDURE(eProc_TakeModuleControl                  ,"ControlerModule"				        ,"MOD_TakeModuleControl"                    ,"Proc_TakeModuleControl"		      ,fn_p_stModuleControlProcedure,USE_MODULE_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_TakeManyModulesControl		    ,"ControlerPlusieursModules"		    ,"MOD_TakeManyModulesControl"               ,"Proc_TakeManyModulesControl"		      ,fn_p_stModuleControlProcedure,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_ReleaseModuleControl	            ,"LibererModule"				        ,"MOD_ReleaseModuleControl"                 ,"Proc_ReleaseModuleControl"	      ,fn_p_stModuleControlProcedure,USE_MODULE_PARAM, /**/ NOT_ULTRA_ABLE /**/)
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* Saved game */
#if 0 /* Mis en fonction */
NU_M_DEFINE_PROCEDURE(eProc_SaveGame				        ,"SauvePartie"				            ,"GAME_SaveGame"                            ,"Proc_SaveGame"			          ,fn_p_stSaveGameProcedure,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_LoadGame				        ,"ChargePartie"				            ,"GAME_LoadGame"                            ,"Proc_LoadGame"			          ,fn_p_stSaveGameProcedure,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_EraseGame				        ,"EffacePartie"				            ,"GAME_EraseGame"                           ,"Proc_EraseGame"			          ,fn_p_stSaveGameProcedure,USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
#endif /* 0 */
NU_M_DEFINE_PROCEDURE(eProc_CopyGame				        ,"CopiePartie"				            ,"GAME_CopyGame"                            ,"Proc_CopyGame"			          ,fn_p_stSaveGameProcedure,USE_CONSTANT_PARAM USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_QuitGame                           ,"TerminePartie"                        ,"GAME_QuitGame"                            ,"Proc_QuitGame"                      ,fn_p_stSaveGameProcedure,USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Channel activation : ULTRA */
M_DEFINE_PROCEDURE(eProc_ActivateChannel                    ,"ActiveCanal"                          ,"ActivateChannel"                          ,"Proc_ActivateChannel"               ,fn_p_stChangeActivationChannelProcedure,USE_MODULE_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_DeactivateChannel                  ,"DesactiveCanal"                       ,"DeactivateChannel"                        ,"Proc_DeactivateChannel"             ,fn_p_stChangeActivationChannelProcedure,USE_MODULE_PARAM, /**/ ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Light */
M_DEFINE_PROCEDURE(eProc_PersoLightOn			            ,"AllumeLumierePerso"			        ,"ACT_PersoLightOn"                         ,"Proc_PersoLightOn"		          ,fn_p_stPersoLightProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_PersoLightOff			            ,"EteintLumierePerso"			        ,"ACT_PersoLightOff"                        ,"Proc_PersoLightOff"			      ,fn_p_stPersoLightProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetPersoLightColor              ,"FixeCouleurLumierePerso"		        ,"ACT_SetPersoLightColor"                   ,"Proc_SetPersoLightColor"            ,fn_p_stPersoLightProcedure,USE_COLOR_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetPersoLightNearFar	            ,"FixeDistancesLumierePerso"            ,"ACT_SetPersoLightNearFar"                 ,"Proc_SetPersoLightNearFar"          ,fn_p_stPersoLightProcedure,USE_2_REALS_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetPersoLightLittleBigAlpha     ,"FixeAlphasLumierePerso"	            ,"ACT_SetPersoLightLittleBigAlpha"          ,"Proc_SetPersoLightLittleBigAlpha"   ,fn_p_stPersoLightProcedure,USE_2_REALS_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetPersoLightGyrophare		    ,"FixeGyrophareLumierePerso"            ,"ACT_SetPersoLightGyrophare"               ,"Proc_SetPersoLightGyrophare"        ,fn_p_stPersoLightProcedure,USE_BOOLEAN_PARAM USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetPersoLightPulse			    ,"FixePulseLumierePerso"	            ,"ACT_SetPersoLightPulse"                   ,"Proc_SetPersoLightPulse"            ,fn_p_stPersoLightProcedure,USE_BOOLEAN_PARAM USE_2_REALS_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetPersoLightParalleleType	    ,"FixeTypeParalleleLumierePerso"	    ,"ACT_SetPersoLightParalleleType"           ,"Proc_SetPersoLightParalleleType"    ,fn_p_stPersoLightProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SetPersoLightSphericalType	        ,"FixeTypeSpheriqueLumierePerso"	    ,"ACT_SetPersoLightSphericalType"           ,"Proc_SetPersoLightSphericalType"    ,fn_p_stPersoLightProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetPersoLightHotSpotType	    ,"FixeTypeHotSpotLumierePerso"		    ,"ACT_SetPersoLightHotSpotType"             ,"Proc_SetPersoLightHotSpotType"	  ,fn_p_stPersoLightProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SetPersoLightAmbientType	    ,"FixeTypeAmbientLumierePerso"		    ,"ACT_SetPersoLightAmbientType"             ,"Proc_SetPersoLightAmbientType"	  ,fn_p_stPersoLightProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* Sound */
M_DEFINE_PROCEDURE(eProc_SendSoundRequest                   ,"EnvoieRequeteSon"                     ,"SOUND_SendSoundRequest"                   ,"Proc_SendSoundRequest"        ,fn_p_stSoundProcedure,USE_SOUNDEVENT_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_SendVoiceRequest                ,"EnvoieRequeteVoix"                    ,"SOUND_SendVoiceRequest"                   ,"Proc_SendVoiceRequest"        ,fn_p_stSoundProcedure,USE_SOUNDEVENT_PARAM, /**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SendMusicRequest                ,"EnvoieRequeteMusique"                 ,"SOUND_SendMusicRequest"                   ,"Proc_SendMusicRequest"        ,fn_p_stSoundProcedure,USE_SOUNDEVENT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SendAmbianceRequest                ,"EnvoieRequeteAmbiance"                ,"SOUND_SendAmbianceRequest"                ,"Proc_SendAmbianceRequest"     ,fn_p_stSoundProcedure,USE_SOUNDEVENT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_SendMenuSndRequest		            ,"EnvoieRequeteMenuSon"                 ,"SOUND_SendMenuSndRequest"                  ,"Proc_SendMenuSndRequest"    ,fn_p_stSoundProcedure,USE_SOUNDEVENT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
/**********************************************************************************************************************************************************************************************************************************************************/
/* display */
NU_M_DEFINE_PROCEDURE(eProc_DefaultDisplay                  ,"AfficheDefaut"                        ,"DefautDisplay"                            ,"Proc_DefautDisplay"           ,fn_p_stDisplayProcedure, USE_NO_PARAM,/**/ ULTRA_ABLE /**/ )
/**********************************************************************************************************************************************************************************************************************************************************/
M_DEFINE_PROCEDURE(eProc_DisplayVignette                    ,"VIG_AfficheVignette"                  ,"VIG_DisplayVignette"                      ,"Proc_DisplayVignette"         ,fn_p_stMenuAndVignetteProcedure, USE_STRING_PARAM,/**/ ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_DeleteVignette                     ,"VIG_SupprimeVignette"                 ,"VIG_DeleteVignette"                       ,"Proc_DeleteVignette"          ,fn_p_stMenuAndVignetteProcedure, USE_NO_PARAM,/**/ ULTRA_ABLE /**/ )
/**********************************************************************************************************************************************************************************************************************************************************/
#ifndef D_THROW_PRT
/* ParticleGenerator */
/* diverse*/
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetGeneratorOn              ,"PRT_DeclencheGenerateur"              ,"PRT_SetParticleGeneratorOn"                   ,"Proc_SetParticleGeneratorOn",fn_p_stParticleGeneratorProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetGeneratorOff             ,"PRT_ArreteGenerateur"                 ,"PRT_SetParticleGeneratorOff"                  ,"Proc_SetParticleGeneratorOff",fn_p_stParticleGeneratorProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetGenerator                ,"PRT_InstalleGenerateur"               ,"PRT_SetParticleGenerator"                     ,"Proc_SetParticleGenerator",fn_p_stParticleGeneratorProcedure,USE_PARTICLEGENERATOR_PARAM, /**/ ULTRA_ABLE /**/)
/* Generation mode*/
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeNone                 ,"PRT_PasDeGeneration"                  ,"PRT_SetGenerationModeNone"                    ,"Proc_SetGenerationModeNone",fn_p_stParticleGeneratorProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeContinuous           ,"PRT_GenerationContinue"               ,"PRT_SetGenerationModeContinuous"              ,"Proc_SetGenerationModeContinuous",fn_p_stParticleGeneratorProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeCrenel               ,"PRT_GenerationEnCreneau"              ,"PRT_SetGenerationModeCrenel"                  ,"Proc_SetGenerationModeCrenel",fn_p_stParticleGeneratorProcedure,USE_CONSTANT_PARAM USE_CONSTANT_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeProbability          ,"PRT_GenerationProbabiliste"           ,"PRT_SetGenerationModeProbability"             ,"Proc_SetGenerationModeProbability",fn_p_stParticleGeneratorProcedure,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
/* Generation number*/
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetNumberConstant           ,"PRT_GenereNombreConstant"             ,"PRT_SetGenerationNbConstant"                  ,"Proc_SetGenerationNbConstant",fn_p_stParticleGeneratorProcedure,USE_CONSTANT_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetNumberProbabilist        ,"PRT_GenereNombreProbabiliste"         ,"PRT_SetGenerationNbProbabilist"               ,"Proc_SetGenerationNbProbabilist",fn_p_stParticleGeneratorProcedure,USE_2_CONSTANTS_PARAM, /**/ ULTRA_ABLE /**/)
/* Particles LifeTime*/
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetInfiniteLifeTime         ,"PRT_TempsDeVieInfini"                 ,"PRT_SetInfiniteLifeTime"                      ,"Proc_SetInfiniteLifeTime",fn_p_stParticleGeneratorProcedure,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetConstantLifeTime         ,"PRT_TempsDeVieConstant"               ,"PRT_SetConstantLifeTime"                      ,"Proc_SetConstantLifeTime",fn_p_stParticleGeneratorProcedure,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetPobabilistLifeTime       ,"PRT_TempsDeVieProbabiliste"           ,"PRT_SetProbabilistLifeTime"                   ,"Proc_SetProbabilistLifeTime",fn_p_stParticleGeneratorProcedure,USE_REAL_PARAM USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
/*XB for Fred !!!!!!!!!! Do not remove*/
#else
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetGeneratorOn              ,"PRT_DeclencheGenerateur"              ,"PRT_SetParticleGeneratorOn"                   ,"Proc_SetParticleGeneratorOn",fn_p_stDummy,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetGeneratorOff             ,"PRT_ArreteGenerateur"                 ,"PRT_SetParticleGeneratorOff"                  ,"Proc_SetParticleGeneratorOff",fn_p_stDummy,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetGenerator                ,"PRT_InstalleGenerateur"               ,"PRT_SetParticleGenerator"                     ,"Proc_SetParticleGenerator",fn_p_stDummy,USE_PARTICLEGENERATOR_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeNone                 ,"PRT_PasDeGeneration"                  ,"PRT_SetGenerationModeNone"                    ,"Proc_SetGenerationModeNone",fn_p_stDummy,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeContinuous           ,"PRT_GenerationContinue"               ,"PRT_SetGenerationModeContinuous"              ,"Proc_SetGenerationModeContinuous",fn_p_stDummy,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeCrenel               ,"PRT_GenerationEnCreneau"              ,"PRT_SetGenerationModeCrenel"                  ,"Proc_SetGenerationModeCrenel",fn_p_stDummy,USE_CONSTANT_PARAM USE_CONSTANT_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetModeProbability          ,"PRT_GenerationProbabiliste"           ,"PRT_SetGenerationModeProbability"             ,"Proc_SetGenerationModeProbability",fn_p_stDummy,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetNumberConstant           ,"PRT_GenereNombreConstant"             ,"PRT_SetGenerationNbConstant"                  ,"Proc_SetGenerationNbConstant",fn_p_stDummy,USE_CONSTANT_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetNumberProbabilist        ,"PRT_GenereNombreProbabiliste"         ,"PRT_SetGenerationNbProbabilist"               ,"Proc_SetGenerationNbProbabilist",fn_p_stDummy,USE_2_CONSTANTS_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetInfiniteLifeTime         ,"PRT_TempsDeVieInfini"                 ,"PRT_SetInfiniteLifeTime"                      ,"Proc_SetInfiniteLifeTime",fn_p_stDummy,USE_NO_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetConstantLifeTime         ,"PRT_TempsDeVieConstant"               ,"PRT_SetConstantLifeTime"                      ,"Proc_SetConstantLifeTime",fn_p_stDummy,USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_PRT_SetPobabilistLifeTime       ,"PRT_TempsDeVieProbabiliste"           ,"PRT_SetProbabilistLifeTime"                   ,"Proc_SetProbabilistLifeTime",fn_p_stDummy,USE_REAL_PARAM USE_REAL_PARAM, /**/ ULTRA_ABLE /**/)
/*End XB for Fred !!!!!!!!!! DO not remove*/
#endif /* D_THROW_PRT */
/**********************************************************************************************************************************************************************************************************************************************************/
 
/**********************************************************************************************************************************************************************************************************************************************************/
/* Old metactions*/
/* Old ActBasic.c procedure*/
/* Old ActHed.c procedure*/
/*M_DEFINE_PROCEDURE(eProc_TurnAbsoluteDirection	,"TourneDirectionAbsolue"		,"Proc_TurnAbsoluteDirection"	,fn_p_stTurnAbsoluteDirectionProcedure	,USE_REAL_PARAM		,/*   NOT_ULTRA_ABLE /*  )*/
/*M_DEFINE_PROCEDURE(eProc_GoAbsoluteDirection	,"VaToutDroitDirectionAbsolue"	,"Proc_GoAbsoluteDirection"		,fn_p_stGoAbsoluteDirectionProcedure	,USE_2_REALS_PARAM	,/*   NOT_ULTRA_ABLE /*  )*/
/* Old ActMain.c procedure*/
M_DEFINE_PROCEDURE(eProc_Turn                               ,"ACT_TourneVitesse"                    ,"ACT_Turn"                                 ,"Proc_Turn"			,fn_p_stTurnProcedure		 ,USE_REAL_PARAM			,/**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_Turn2                              ,"ACT_TourneAngle"                      ,"ACT_Turn2"                                ,"Proc_Turn2"					,fn_p_stTurnProcedure		 ,USE_REAL_PARAM			,/**/ ULTRA_ABLE /**/)
NU_M_DEFINE_PROCEDURE(eProc_DeltaTurnPerso                  ,"OrienteVersPersoAvecDelta"            ,"ACT_DeltaTurnPerso"                       ,"Proc_DeltaTurnPerso"	,fn_p_stTurnPersoProcedure	 ,USE_PERSO_3_REALS_PARAM	,/**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_TurnPerso                       ,"OrienteVersPerso"			            ,"ACT_TurnPerso"                            ,"Proc_TurnPerso"		,fn_p_stTurnPersoProcedure	 ,USE_PERSO_PARAM			,/**/ ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_KillPerso		                    ,"DetruitPerso"                         ,"ACT_KillPerso"                            ,"Proc_KillPerso"		,fn_p_stKillPersoAndClearVariableProcedure, USE_PERSO_PARAM , /**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_KillPersoAndClearVariable          ,"DetruitPersoEtEffaceVariable"         ,"ACT_KillPersoAndClearVariable"            ,"Proc_KillPersoAndClearVariable"		,fn_p_stKillPersoAndClearVariableProcedure , USE_ADDR_PERSO_PARAM,/**/ NOT_ULTRA_ABLE /**/ )
 
 
/*************************************************************************************************************************************/
/* Visual GMT procedure*/
NU_M_DEFINE_PROCEDURE(eProc_SetVisualGMTColor				,"FixeVisuelGMTCouleur"				    ,"GMT_SetVisualGMTColor"                    ,"Proc_SetVisualGMTColor"					,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_COLOR_PARAM				 ,/**/ NOT_ULTRA_ABLE /**/ )
NU_M_DEFINE_PROCEDURE(eProc_SetVisualGMTSpecularExponent	,"FixeVisuelGMTSpeculaireExposant"	    ,"GMT_SetVisualGMTSpecularExponant"         ,"Proc_SetVisualGMTSpecularExponant"		,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_CONSTANT_PARAM			 ,/**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetVisualGMTSpecularCoef			,"FixeVisuelGMTSpeculaireCoef"		    ,"GMT_SetVisualGMTSpecularCoef"             ,"Proc_SetVisualGMTSpecularCoef"			,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_COLOR_PARAM				 ,/**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetVisualGMTDiffuseCoef			,"FixeVisuelGMTDiffusionCoef"		    ,"GMT_SetVisualGMTDiffuseCoef"              ,"Proc_SetVisualGMTDiffuseCoef"				,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_COLOR_PARAM				 ,/**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetVisualGMTAmbientCoef			,"FixeVisuelGMTAmbientCoef"			    ,"GMT_SetVisualGMTAmbientCoef"              ,"Proc_SetVisualGMTAmbientCoef"				,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_COLOR_PARAM				 ,/**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetVisualGMTAsChromed			,"FixeVisuelGMTChrome"				    ,"GMT_SetVisualGMTAsChromed"                ,"Proc_SetVisualGMTAsChromed"				,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_BOOLEAN_PARAM			 ,/**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetVisualGMTTextureScrollingCoef,"FixeVisuelGMTTextureScrollingCoef"    ,"GMT_SetVisualGMTTextureScrollingCoef"     ,"Proc_SetVisualGMTTextureScrollingCoef"	,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_REAL_PARAM USE_REAL_PARAM ,/**/ NOT_ULTRA_ABLE /**/ )
NU_M_DEFINE_PROCEDURE(eProc_LockVisualGMT					,"BloqueVisuelGMT"					    ,"GMT_LockVisualGMT"                        ,"Proc_LockVisualGMT"						,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM								 ,/**/ NOT_ULTRA_ABLE /**/ )
NU_M_DEFINE_PROCEDURE(eProc_UnlockVisualGMT					,"DebloqueVisuelGMT"				    ,"GMT_UnlockVisualGMT"                      ,"Proc_UnlockVisualGMT"						,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM							     ,/**/ NOT_ULTRA_ABLE /**/ )
M_DEFINE_PROCEDURE(eProc_SetVisualGMTFrame				,"FixeNoImageVisuelGMT"				    ,"GMT_SetVisualGMTFrame"                    ,"Proc_SetVisualGMTFrame"					,fn_p_stVisualGameMaterialProcedure	,USE_GMT_PARAM USE_CONSTANT_PARAM		     ,/**/ NOT_ULTRA_ABLE /**/ )
 
/*************************************************************************************************************************************/
	//KWN : Add a New AI Function
M_DEFINE_PROCEDURE(eProc_SetScreenDSActif			,"ACT_SetScreenDSActif"					,"ACT_SetScreenDSActif"			,"Func_SetScreenDSActif"		,fn_p_SetScreenDSActif,USE_CONSTANT_PARAM, NOT_ULTRA_ABLE)
/*************************************************************************************************************************************/

 
#include "DefProc1.h"
#include "DefProCa.h"
 
/*/////////////////////////////////////////////////////////////////////////////////////*/
/* Animations Graphiques Optimisées*/
/*/////////////////////////////////////////////////////////////////////////////////////*/
/* Generates a simple particle*/
/* Arg 1 = Particle type (int)*/
/* Arg 2 = Position*/
/* Arg 3 = Initial Direction*/
/* Arg 4 = Game Material*/
/* Arg 5 = Optional Real Parameter*/
M_DEFINE_PROCEDURE(eProc_LaunchAGO					,"LanceAGO"							,"SetAGO"                           ,"Proc_SetAGO"								,fn_p_stAGOProcedure				,USE_CONSTANT_PARAM USE_VECTOR_PARAM USE_VECTOR_PARAM USE_GMT_PARAM USE_REAL_PARAM,/**/ NOT_ULTRA_ABLE /**/ )
/**/
/*///////////////////////////////////////////////////////////////////////////////////////*/
 
M_DEFINE_PROCEDURE(eProc_SetInGameMenu				,"ActiveMenuMap"					,"ActivateMenuMap"					,"Proc_ActivateMenuMap"						,fn_p_stInGameMenuProcedure				,USE_CONSTANT_PARAM ,/**/ NOT_ULTRA_ABLE /**/ )
 
/*///////////////////////////////////////////////////////////////////////////////////////*/
/* Texts without always                                                                  */
/*///////////////////////////////////////////////////////////////////////////////////////*/

M_DEFINE_PROCEDURE(eProc_JffTxt_Affiche				,"JFFTXT_Affiche"					,"JFFTXT_Affiche",                    "Proc_JffTxt_Affiche"						,fn_p_stJFFTXTProcedure, USE_CONSTANT_PARAM USE_VECTOR_PARAM USE_STRING_PARAM USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_JffTxt_Extend				,"JFFTXT_Extend"					,"JFFTXT_Extend",                    "Proc_JffTxt_Extend"						,fn_p_stJFFTXTProcedure, USE_CONSTANT_PARAM USE_CONSTANT_PARAM USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_JffTxt_Modify				,"JFFTXT_Modify"					,"JFFTXT_Modify",                    "Proc_JffTxt_Modify"						,fn_p_stJFFTXTProcedure, USE_CONSTANT_PARAM USE_CONSTANT_PARAM USE_CONSTANT_PARAM, /**/ NOT_ULTRA_ABLE /**/)
 
#ifdef U64
/* FQ FADE*/
NU_M_DEFINE_PROCEDURE(eProc_FadeIn					,"FadeIn"	,"FADE_FadeIn"	,"Proc_FadeIn"	,fn_p_stFadeProcedure				,USE_NO_PARAM								 ,/**/ ULTRA_ABLE /**/ )
NU_M_DEFINE_PROCEDURE(eProc_FadeOut					,"FadeOut"	,"FADE_FadeOut"	,"Proc_FadeOut"	,fn_p_stFadeProcedure				,USE_NO_PARAM								 ,/**/ ULTRA_ABLE /**/ )
#else
NU_M_DEFINE_PROCEDURE(eProc_FadeIn					,"FadeIn"	,"FADE_FadeIn"	,"Proc_FadeIn"	,fn_p_stDummy,	USE_NO_PARAM								 ,/**/ ULTRA_ABLE /**/ )
NU_M_DEFINE_PROCEDURE(eProc_FadeOut					,"FadeOut"	,"FADE_FadeOut"	,"Proc_FadeOut"	,fn_p_stDummy,	USE_NO_PARAM								 ,/**/ ULTRA_ABLE /**/ )
#endif U64

M_DEFINE_PROCEDURE(eProc_HUD_SetLumsCount,			"HUD_SetLumsCount", "HUD_SetLumsCount", "Proc_HUD_SetLumsCount", fn_p_stHUDSetLumsCount, USE_2_CONSTANTS_PARAM,  /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_HUD_SetCagesCount,			"HUD_SetCagesCount", "HUD_SetCagesCount", "Proc_HUD_SetCagesCount", fn_p_stHUDSetCagesCount, USE_2_CONSTANTS_PARAM,  /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_HUD_SetSwimGauge,			"HUD_SetSwimGauge", "HUD_SetSwimGauge", "Proc_HUD_SetSwimGauge", fn_p_stHUDSetSwimGauge, USE_REAL_PARAM USE_REAL_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_HUD_SetHealthGauge,		"HUD_SetHealthGauge", "HUD_SetHealthGauge", "Proc_HUD_SetHealthGauge", fn_p_stHUDSetHealthGauge, USE_3_REALS_PARAM, /**/ NOT_ULTRA_ABLE /**/)
M_DEFINE_PROCEDURE(eProc_HUD_SetEnemyHealthGauge,	"HUD_SetEnemyHealthGauge", "HUD_SetEnemyHealthGauge", "Proc_HUD_SetEnemyHealthGauge", fn_p_stHUDSetEnemyHealthGauge, USE_2_REALS_PARAM USE_CONSTANT_PARAM, NOT_ULTRA_ABLE)

M_DEFINE_PROCEDURE(eProc_DoCheatMenu, "PROC_DoCheatMenu", "PROC_DoCheatMenu", "Proc_DoCheatMenu", fn_vDoCheatMenu, USE_NO_PARAM, /**/ NOT_ULTRA_ABLE /**/)

M_DEFINE_PROCEDURE(eProc_SetBacklight, "PROC_SetBacklight", "PROC_SetBacklight", "Proc_SetBacklight", fn_vSetBacklight, USE_2_CONSTANTS_PARAM, NOT_ULTRA_ABLE)

M_DEFINE_PROCEDURE(eProc_BeginAnalogCalibration, "PROC_BeginAnalogCalibration", "PROC_BeginAnalogCalibration", "Proc_BeginAnalogCalibration", fn_vBeginAnalogCalibration, USE_NO_PARAM, NOT_ULTRA_ABLE)
M_DEFINE_PROCEDURE(eProc_EndAnalogCalibration, "PROC_EndAnalogCalibration", "PROC_EndAnalogCalibration", "Proc_EndAnalogCalibration", fn_vEndAnalogCalibration, USE_NO_PARAM, NOT_ULTRA_ABLE)


#if defined(M_DEFINE_PROCEDURE)
#undef M_DEFINE_PROCEDURE
#endif
