]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/mutator_bloodloss.qc
Mutators: port to new syntax
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_bloodloss.qc
index 4d990b3cf50608d151a22d771d8b660f54a790f5..5db1f98a0eb9c84e953ab2409655958f64914f5b 100644 (file)
@@ -1,48 +1,46 @@
+
+#include "mutator.qh"
+
+REGISTER_MUTATOR(bloodloss, cvar("g_bloodloss"));
+
 .float bloodloss_timer;
 
-MUTATOR_HOOKFUNCTION(bloodloss_PlayerThink)
-{
+MUTATOR_HOOKFUNCTION(bloodloss, PlayerPreThink)
+{SELFPARAM();
        if(IS_PLAYER(self))
        if(self.health <= autocvar_g_bloodloss && self.deadflag == DEAD_NO)
        {
-               self.BUTTON_CROUCH = TRUE;
+               self.BUTTON_CROUCH = true;
 
                if(time >= self.bloodloss_timer)
                {
-                       self.event_damage(self, self, 1, DEATH_ROT, self.origin, '0 0 0');
+                       if(self.vehicle)
+                               vehicles_exit(VHEF_RELEASE);
+                       if(self.event_damage)
+                               self.event_damage(self, self, 1, DEATH_ROT.m_id, self.origin, '0 0 0');
                        self.bloodloss_timer = time + 0.5 + random() * 0.5;
                }
        }
 
-       return FALSE;
+       return false;
 }
 
-MUTATOR_HOOKFUNCTION(bloodloss_PlayerJump)
-{
+MUTATOR_HOOKFUNCTION(bloodlossPlayerJump)
+{SELFPARAM();
        if(self.health <= autocvar_g_bloodloss)
-               return TRUE;
+               return true;
 
-       return FALSE;
+       return false;
 }
 
-MUTATOR_HOOKFUNCTION(bloodloss_BuildMutatorsString)
+MUTATOR_HOOKFUNCTION(bloodlossBuildMutatorsString)
 {
        ret_string = strcat(ret_string, ":bloodloss");
-       return FALSE;
+       return false;
 }
 
-MUTATOR_HOOKFUNCTION(bloodloss_BuildMutatorsPrettyString)
+MUTATOR_HOOKFUNCTION(bloodlossBuildMutatorsPrettyString)
 {
        ret_string = strcat(ret_string, ", Blood loss");
-       return FALSE;
-}
-
-MUTATOR_DEFINITION(mutator_bloodloss)
-{
-       MUTATOR_HOOK(PlayerPreThink, bloodloss_PlayerThink, CBC_ORDER_ANY);
-       MUTATOR_HOOK(PlayerJump, bloodloss_PlayerJump, CBC_ORDER_ANY);
-       MUTATOR_HOOK(BuildMutatorsString, bloodloss_BuildMutatorsString, CBC_ORDER_ANY);
-       MUTATOR_HOOK(BuildMutatorsPrettyString, bloodloss_BuildMutatorsPrettyString, CBC_ORDER_ANY);
-
-       return FALSE;
+       return false;
 }