]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/events.qh
Merge branch 'master' into terencehill/replicatevars_enhancements
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / events.qh
index 35a8f6fd93b7f31900f8d8eb8341815c99f69e65..e7ca8583fd17062d13dc682808a2cc9469803c61 100644 (file)
@@ -10,6 +10,7 @@
 /** called when a player becomes observer, after shared setup */
 #define EV_MakePlayerObserver(i, o) \
     /** player */ i(entity, MUTATOR_ARGV_0_entity) \
+    /** is_forced */ i(bool, MUTATOR_ARGV_1_bool) \
     /**/
 MUTATOR_HOOKABLE(MakePlayerObserver, EV_MakePlayerObserver)
 
@@ -316,8 +317,17 @@ MUTATOR_HOOKABLE(PlayerPreThink, EV_PlayerPreThink);
     /**/
 MUTATOR_HOOKABLE(GetPressedKeys, EV_GetPressedKeys);
 
-/** is meant to call GetCvars_handle*(get_cvars_s, get_cvars_f, cvarfield, "cvarname") for cvars this mutator needs from the client */
-// NOTE: requesting cvar values (get_cvars_f 0) is deprecated
+/**
+ * is meant to call GetCvars_handle* for cvars this mutator needs from the client, e.g.:
+       MUTATOR_HOOKFUNCTION(mymutator, GetCvars)
+       {
+               GetCvars_handleFloat(this, store, s, f, cvar_mycvar, "mycvar");
+               return false;
+       }
+ * Usually you can just use REPLICATE instead of this hook, e.g.:
+       REPLICATE(cvar_mycvar, int, "mycvar");
+ * NOTE: requesting cvar values (get_cvars_f 0) is deprecated
+ */
 #define EV_GetCvars(i, o) \
     /**/ i(float, get_cvars_f) \
     /**/ i(string, get_cvars_s) \
@@ -449,6 +459,7 @@ MUTATOR_HOOKABLE(Damage_Calculate, EV_Damage_Calculate);
 
 /**
  * Called when a player is damaged
+ * Returns true if damage shouldn't be logged
  */
 #define EV_PlayerDamaged(i, o) \
     /** attacker  */ i(entity, MUTATOR_ARGV_0_entity) \
@@ -707,7 +718,7 @@ MUTATOR_HOOKABLE(ItemTouched, EV_ItemTouched);
 resource limit. */
 #define EV_GetResourceLimit(i, o) \
        /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \
-       /** resource type */  i(int, MUTATOR_ARGV_1_int) \
+       /** resource type */  i(entity, MUTATOR_ARGV_1_entity) \
        /** limit */          i(float, MUTATOR_ARGV_2_float) \
        /**/                  o(float, MUTATOR_ARGV_2_float) \
        /**/
@@ -717,8 +728,8 @@ MUTATOR_HOOKABLE(GetResourceLimit, EV_GetResourceLimit);
 constants for resource types. Return true to forbid the change. */
 #define EV_SetResource(i, o) \
        /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \
-       /** resource type */  i(int, MUTATOR_ARGV_1_int) \
-       /**/                  o(int, MUTATOR_ARGV_1_int) \
+       /** resource type */  i(entity, MUTATOR_ARGV_1_entity) \
+       /**/                  o(entity, MUTATOR_ARGV_1_entity) \
        /** amount */         i(float, MUTATOR_ARGV_2_float) \
        /**/                  o(float, MUTATOR_ARGV_2_float) \
        /**/
@@ -729,7 +740,7 @@ constants for resource types. Amount wasted is the amount of resource that is
 above resource limit so it was not given. */
 #define EV_ResourceAmountChanged(i, o) \
        /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \
-       /** resource type */  i(int, MUTATOR_ARGV_1_int) \
+       /** resource type */  i(entity, MUTATOR_ARGV_1_entity) \
        /** amount */         i(float, MUTATOR_ARGV_2_float) \
        /**/
 MUTATOR_HOOKABLE(ResourceAmountChanged, EV_ResourceAmountChanged);
@@ -739,7 +750,7 @@ limit. See RES_* constants for resource types. Amount wasted is the amount
 of resource that is above resource limit so it was not given. */
 #define EV_ResourceWasted(i, o) \
        /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \
-       /** resource type */  i(int, MUTATOR_ARGV_1_int) \
+       /** resource type */  i(entity, MUTATOR_ARGV_1_entity) \
        /** amount wasted */  i(float, MUTATOR_ARGV_2_float) \
        /**/
 MUTATOR_HOOKABLE(ResourceWasted, EV_ResourceWasted);
@@ -749,8 +760,8 @@ for resource types. Return true to forbid giving.
 NOTE: This hook is also called by GiveResourceWithLimit */
 #define EV_GiveResource(i, o) \
        /** receiver */      i(entity, MUTATOR_ARGV_0_entity) \
-       /** resource type */ i(int, MUTATOR_ARGV_1_int) \
-       /**/                 o(int, MUTATOR_ARGV_1_int) \
+       /** resource type */ i(entity, MUTATOR_ARGV_1_entity) \
+       /**/                 o(entity, MUTATOR_ARGV_1_entity) \
        /** amount */        i(float, MUTATOR_ARGV_2_float) \
        /**/                 o(float, MUTATOR_ARGV_2_float) \
        /**/
@@ -760,8 +771,8 @@ MUTATOR_HOOKABLE(GiveResource, EV_GiveResource);
 RES_* constants for resource types. Return true to forbid giving. */
 #define EV_GiveResourceWithLimit(i, o) \
        /** receiver */      i(entity, MUTATOR_ARGV_0_entity) \
-       /** resource type */ i(int, MUTATOR_ARGV_1_int) \
-       /**/                 o(int, MUTATOR_ARGV_1_int) \
+       /** resource type */ i(entity, MUTATOR_ARGV_1_entity) \
+       /**/                 o(entity, MUTATOR_ARGV_1_entity) \
        /** amount */        i(float, MUTATOR_ARGV_2_float) \
        /**/                 o(float, MUTATOR_ARGV_2_float) \
        /** limit */         i(float, MUTATOR_ARGV_3_float) \
@@ -774,8 +785,8 @@ for resource types. Return true to forbid giving.
 NOTE: This hook is also called by TakeResourceWithLimit */
 #define EV_TakeResource(i, o) \
     /** receiver */      i(entity, MUTATOR_ARGV_0_entity) \
-    /** resource type */ i(int, MUTATOR_ARGV_1_int) \
-    /**/                 o(int, MUTATOR_ARGV_1_int) \
+    /** resource type */ i(entity, MUTATOR_ARGV_1_entity) \
+    /**/                 o(entity, MUTATOR_ARGV_1_entity) \
     /** amount */        i(float, MUTATOR_ARGV_2_float) \
     /**/                 o(float, MUTATOR_ARGV_2_float) \
     /**/
@@ -785,8 +796,8 @@ MUTATOR_HOOKABLE(TakeResource, EV_TakeResource);
 RES_* constants for resource types. Return true to forbid giving. */
 #define EV_TakeResourceWithLimit(i, o) \
     /** receiver */      i(entity, MUTATOR_ARGV_0_entity) \
-    /** resource type */ i(int, MUTATOR_ARGV_1_int) \
-    /**/                 o(int, MUTATOR_ARGV_1_int) \
+    /** resource type */ i(entity, MUTATOR_ARGV_1_entity) \
+    /**/                 o(entity, MUTATOR_ARGV_1_entity) \
     /** amount */        i(float, MUTATOR_ARGV_2_float) \
     /**/                 o(float, MUTATOR_ARGV_2_float) \
     /** limit */         i(float, MUTATOR_ARGV_3_float) \
@@ -1249,3 +1260,9 @@ MUTATOR_HOOKABLE(LogDeath_AppendItemCodes, EV_LogDeath_AppendItemCodes);
     /**/                            o(bool, MUTATOR_ARGV_0_bool) \
     /**/
 MUTATOR_HOOKABLE(AllowRocketJumping, EV_AllowRocketJumping);
+
+/** Called when weapons are performing their attack, useful for applying bonus attack sounds */
+#define EV_W_PlayStrengthSound(i, o) \
+    /** player */ i(entity, MUTATOR_ARGV_0_entity) \
+    /**/
+MUTATOR_HOOKABLE(W_PlayStrengthSound, EV_W_PlayStrengthSound);