]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/base.qh
Convert more calls
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / base.qh
index 8e753140fc508a6f7614f2c6e15c5d721d395a4c..478a0b9636f8fe3a261f9ea9b3c6665532daf47d 100644 (file)
@@ -264,72 +264,111 @@ MUTATOR_HOOKABLE(MonsterSpawn, EV_NO_ARGS);
     /**/
 MUTATOR_HOOKABLE(MonsterDies, EV_MonsterDies);
 
-MUTATOR_HOOKABLE(MonsterRespawn, EV_NO_ARGS);
-       // called when a monster wants to respawn
-       // INPUT:
-//             entity other;
-
-MUTATOR_HOOKABLE(MonsterDropItem, EV_NO_ARGS);
-       // called when a monster is dropping loot
-       // INPUT, OUTPUT:
-               .void() monster_loot;
-//             entity other;
-
-MUTATOR_HOOKABLE(MonsterMove, EV_NO_ARGS);
-       // called when a monster moves
-       // returning true makes the monster stop
-       // INPUT:
-               float monster_speed_run;
-               float monster_speed_walk;
-               entity monster_target;
+/** called when a monster wants to respawn */
+#define EV_MonsterRespawn(i, o) \
+    /**/ i(entity, other) \
+    /**/
+MUTATOR_HOOKABLE(MonsterRespawn, EV_MonsterRespawn);
+
+/** called when a monster is dropping loot */
+#define EV_MonsterDropItem(i, o) \
+    /**/ i(entity, other) \
+    /**/ o(entity, other) \
+    /**/
+.void() monster_loot;
+MUTATOR_HOOKABLE(MonsterDropItem, EV_MonsterDropItem);
+
+/**
+ * called when a monster moves
+ * returning true makes the monster stop
+ */
+#define EV_MonsterMove(i, o) \
+    /**/ i(float, monster_speed_run) \
+    /**/ o(float, monster_speed_run) \
+    /**/ i(float, monster_speed_walk) \
+    /**/ o(float, monster_speed_walk) \
+    /**/ i(entity, monster_target) \
+    /**/
+float monster_speed_run;
+float monster_speed_walk;
+entity monster_target;
+MUTATOR_HOOKABLE(MonsterMove, EV_MonsterMove);
 
+/** called when a monster looks for another target */
 MUTATOR_HOOKABLE(MonsterFindTarget, EV_NO_ARGS);
-       // called when a monster looks for another target
 
+/** called to change a random monster to a miniboss */
 MUTATOR_HOOKABLE(MonsterCheckBossFlag, EV_NO_ARGS);
-    // called to change a random monster to a miniboss
 
+/**
+ * called when a player tries to spawn a monster
+ * return 1 to prevent spawning
+ */
 MUTATOR_HOOKABLE(AllowMobSpawning, EV_NO_ARGS);
-       // called when a player tries to spawn a monster
-       // return 1 to prevent spawning
-
-MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor, EV_NO_ARGS);
-       // called when a player gets damaged to e.g. remove stuff he was carrying.
-       // INPUT:
-//             entity frag_inflictor;
-//             entity frag_attacker;
-//             entity frag_target; // same as self
-               vector damage_force; // NOTE: this force already HAS been applied
-       // INPUT, OUTPUT:
-               float damage_take;
-               float damage_save;
-
-MUTATOR_HOOKABLE(PlayerDamage_Calculate, EV_NO_ARGS);
-       // called to adjust damage and force values which are applied to the player, used for e.g. strength damage/force multiplier
-       // i'm not sure if I should change this around slightly (Naming of the entities, and also how they're done in g_damage).
-       // INPUT:
-//             entity frag_attacker;
-//             entity frag_target;
-//             float frag_deathtype;
-       // INPUT, OUTPUT:
-               float frag_damage;
-               float frag_mirrordamage;
-               vector frag_force;
-
-MUTATOR_HOOKABLE(PlayerPowerups, EV_NO_ARGS);
-       // called at the end of player_powerups() in cl_client.qc, used for manipulating the values which are set by powerup items.
-       // INPUT
-//     entity self;
-       int olditems; // also technically output, but since it is at the end of the function it's useless for that :P
-
-MUTATOR_HOOKABLE(PlayerRegen, EV_NO_ARGS);
-       // called every player think frame
-       // return 1 to disable regen
-       // INPUT, OUTPUT:
-               float regen_mod_max;
-               float regen_mod_regen;
-               float regen_mod_rot;
-               float regen_mod_limit;
+
+/** called when a player gets damaged to e.g. remove stuff he was carrying. */
+#define EV_PlayerDamage_SplitHealthArmor(i, o) \
+    /**/ i(entity, frag_inflictor) \
+    /**/ i(entity, frag_attacker) \
+    /** same as self */ i(entity, frag_target) \
+    /** NOTE: this force already HAS been applied */ i(vector, damage_force) \
+    /**/ i(float, damage_take) \
+    /**/ o(float, damage_take) \
+       /**/ i(float, damage_save) \
+    /**/ o(float, damage_save) \
+    /**/
+vector damage_force;
+float damage_take;
+float damage_save;
+MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor, EV_PlayerDamage_SplitHealthArmor);
+
+/**
+ * called to adjust damage and force values which are applied to the player, used for e.g. strength damage/force multiplier
+ * i'm not sure if I should change this around slightly (Naming of the entities, and also how they're done in g_damage).
+ */
+#define EV_PlayerDamage_Calculate(i, o) \
+    /**/ i(entity, frag_attacker) \
+    /**/ i(entity, frag_target) \
+    /**/ i(float, frag_deathtype) \
+       /**/ i(float, frag_damage) \
+    /**/ o(float, frag_damage) \
+       /**/ i(float, frag_mirrordamage) \
+    /**/ o(float, frag_mirrordamage) \
+    /**/ i(vector, frag_force) \
+    /**/ o(vector, frag_force) \
+    /**/
+float frag_damage;
+float frag_mirrordamage;
+vector frag_force;
+MUTATOR_HOOKABLE(PlayerDamage_Calculate, EV_PlayerDamage_Calculate);
+
+/** called at the end of player_powerups() in cl_client.qc, used for manipulating the values which are set by powerup items. */
+#define EV_PlayerPowerups(i, o) \
+    /**/ i(entity, self) \
+    /**/ i(int, olditems) \
+    /**/
+int olditems;
+MUTATOR_HOOKABLE(PlayerPowerups, EV_PlayerPowerups);
+
+/**
+ * called every player think frame
+ * return 1 to disable regen
+ */
+#define EV_PlayerRegen(i, o) \
+    /**/ i(float, regen_mod_max) \
+    /**/ o(float, regen_mod_max) \
+    /**/ i(float, regen_mod_regen) \
+    /**/ o(float, regen_mod_regen) \
+    /**/ i(float, regen_mod_rot) \
+    /**/ o(float, regen_mod_rot) \
+    /**/ i(float, regen_mod_limit) \
+    /**/ o(float, regen_mod_limit) \
+    /**/
+float regen_mod_max;
+float regen_mod_regen;
+float regen_mod_rot;
+float regen_mod_limit;
+MUTATOR_HOOKABLE(PlayerRegen, EV_PlayerRegen);
 
 MUTATOR_HOOKABLE(PlayerUseKey, EV_NO_ARGS);
        // called when the use key is pressed