/**/
MUTATOR_HOOKABLE(TagIndex_Apply, EV_TagIndex_Apply);
+/** Called when setting up skeleton bones */
+#define EV_Skeleton_CheckBones(i, o) \
+ /** entity id */ i(entity, self) \
+ /**/
+MUTATOR_HOOKABLE(Skeleton_CheckBones, EV_Skeleton_CheckBones);
+
+/** Called when setting up bones from the loaded model */
+#define EV_Skeleton_CheckModel(i, o) \
+ /** entity id */ i(entity, self) \
+ /**/
+MUTATOR_HOOKABLE(Skeleton_CheckModel, EV_Skeleton_CheckModel);
+
+/** Called when clearing the global parameters for a model */
+MUTATOR_HOOKABLE(ClearModelParams, EV_NO_ARGS);
+
+/** Called when getting the global parameters for a model */
+#define EV_GetModelParams(i, o) \
+ /** entity id */ i(string, checkmodel_input) \
+ /** entity id */ i(string, checkmodel_command) \
+ /**/
+string checkmodel_input, checkmodel_command;
+MUTATOR_HOOKABLE(GetModelParams, EV_GetModelParams);
+
#endif
e.bone_weapon = gettagindex(e, "tag_weapon");
if(!e.bone_weapon)
e.bone_weapon = gettagindex(e, "bip01 r hand");
+ MUTATOR_CALLHOOK(Skeleton_CheckBones, e);
for(i = 0; i < MAX_AIM_BONES; ++i)
{
e.(bone_aim[i]) = 0;
e.fixbone = get_model_parameters_fixbone;
if(get_model_parameters_bone_weapon)
e.bone_weapon = gettagindex(e, get_model_parameters_bone_weapon);
+ MUTATOR_CALLHOOK(Skeleton_CheckModel, e);
for(i = 0; i < MAX_AIM_BONES; ++i)
{
if(get_model_parameters_bone_aim[i])
#include "../client/defs.qh"
#include "constants.qh"
#include "../warpzonelib/mathlib.qh"
+ #include "../client/mutators/events.qh"
#include "mapinfo.qh"
#include "notifications.qh"
#include "deathtypes.qh"
#include "constants.qh"
#include "../server/autocvars.qh"
#include "../server/defs.qh"
+ #include "../server/mutators/events.qh"
#include "notifications.qh"
#include "deathtypes.qh"
#include "mapinfo.qh"
}
get_model_parameters_fixbone = 0;
+#ifndef MENUQC
+ MUTATOR_CALLHOOK(ClearModelParams);
+#endif
+
if (!m)
return 1;
get_model_parameters_bone_upperbody = s;
if(c == "bone_weapon")
get_model_parameters_bone_weapon = s;
+ #ifndef MENUQC
+ MUTATOR_CALLHOOK(GetModelParams, c, s);
+ #endif
for(int i = 0; i < MAX_AIM_BONES; ++i)
if(c == strcat("bone_aim", ftos(i)))
{
MUT_ACCADD_INVALID, // return this flag to make the function always continue
MUT_ACCADD_INDIFFERENT // return this flag to make the function always return
};
+
+/** Called when clearing the global parameters for a model */
+MUTATOR_HOOKABLE(ClearModelParams, EV_NO_ARGS);
+
+/** Called when getting the global parameters for a model */
+#define EV_GetModelParams(i, o) \
+ /** entity id */ i(string, checkmodel_input) \
+ /** entity id */ i(string, checkmodel_command) \
+ /**/
+string checkmodel_input, checkmodel_command;
+MUTATOR_HOOKABLE(GetModelParams, EV_GetModelParams);
#endif