-#ifndef COMMON_MUTATORS_EVENTS_H
-#define COMMON_MUTATORS_EVENTS_H
+#pragma once
#define EV_NO_ARGS(i, o)
/**/ i(string, MUTATOR_ARGV_1_string) \
/**/ o(vector, MUTATOR_ARGV_2_vector) \
/**/ o(string, MUTATOR_ARGV_3_string) \
+ /**/ o(string, MUTATOR_ARGV_4_string) \
/**/
MUTATOR_HOOKABLE(WP_Format, EV_WP_Format);
/**/
MUTATOR_HOOKABLE(PM_Physics, EV_PM_Physics);
+/** called when a weapon sound is about to be played, allows custom paths etc. */
+#define EV_WeaponSound(i, o) \
+ /** sound */ i(string, MUTATOR_ARGV_0_string) \
+ /** output */ i(string, MUTATOR_ARGV_1_string) \
+ /**/ o(string, MUTATOR_ARGV_1_string) \
+ /**/
+MUTATOR_HOOKABLE(WeaponSound, EV_WeaponSound);
+
/** called when a weapon model is about to be set, allows custom paths etc. */
#define EV_WeaponModel(i, o) \
/** model */ i(string, MUTATOR_ARGV_0_string) \
/**/
MUTATOR_HOOKABLE(WeaponModel, EV_WeaponModel);
-#endif
+/** decides whether a player can crouch or not */
+#define EV_PlayerCanCrouch(i, o) \
+ /** player */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** do_crouch */ i(bool, MUTATOR_ARGV_1_bool) \
+ /**/ o(bool, MUTATOR_ARGV_1_bool) \
+ /**/
+MUTATOR_HOOKABLE(PlayerCanCrouch, EV_PlayerCanCrouch);