]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/gamemode_lms.qc
Merge branch 'master' into Mario/vaporizer_damage
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / gamemode_lms.qc
index 0684ac8edb20b90dbbbcc1ceb3d3d66cae1d8201..85f2e1ed237e2af51209b1bcf8235ffc0a711955 100644 (file)
@@ -1,3 +1,11 @@
+#include "gamemode_lms.qh"
+#include "../_all.qh"
+
+#include "gamemode.qh"
+
+#include "../campaign.qh"
+#include "../command/cmd.qh"
+
 // main functions
 float LMS_NewPlayerLives()
 {
@@ -23,7 +31,7 @@ MUTATOR_HOOKFUNCTION(lms_ResetMap)
        lms_lowest_lives = 999;
        lms_next_place = player_count;
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_ResetPlayers)
@@ -33,7 +41,7 @@ MUTATOR_HOOKFUNCTION(lms_ResetPlayers)
        if(IS_PLAYER(self))
                PlayerScore_Add(self, SP_LMS_LIVES, LMS_NewPlayerLives());
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_PlayerPreSpawn)
@@ -41,16 +49,19 @@ MUTATOR_HOOKFUNCTION(lms_PlayerPreSpawn)
        // player is dead and becomes observer
        // FIXME fix LMS scoring for new system
        if(PlayerScore_Add(self, SP_LMS_RANK, 0) > 0)
+       {
                self.classname = "observer";
+               Send_Notification(NOTIF_ONE, self, MSG_CENTER, CENTER_LMS_NOLIVES);
+       }
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_PlayerDies)
 {
        self.respawn_flags |= RESPAWN_FORCE;
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_RemovePlayer)
@@ -67,7 +78,7 @@ MUTATOR_HOOKFUNCTION(lms_RemovePlayer)
                else
                        Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_LMS_FORFEIT, self.netname);
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_ClientConnect)
@@ -81,7 +92,7 @@ MUTATOR_HOOKFUNCTION(lms_ClientConnect)
                self.frags = FRAGS_SPECTATOR;
        }
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_PlayerThink)
@@ -89,20 +100,20 @@ MUTATOR_HOOKFUNCTION(lms_PlayerThink)
        if(self.deadflag == DEAD_DYING)
                self.deadflag = DEAD_RESPAWNING;
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_PlayerRegen)
 {
        if(autocvar_g_lms_regenerate)
-               return FALSE;
-       return TRUE;
+               return false;
+       return true;
 }
 
 MUTATOR_HOOKFUNCTION(lms_ForbidThrowing)
 {
        // forbode!
-       return TRUE;
+       return true;
 }
 
 MUTATOR_HOOKFUNCTION(lms_GiveFragsForKill)
@@ -123,7 +134,7 @@ MUTATOR_HOOKFUNCTION(lms_GiveFragsForKill)
        }
        frag_score = 0;
 
-       return TRUE;
+       return true;
 }
 
 MUTATOR_HOOKFUNCTION(lms_SetStartItems)
@@ -138,31 +149,31 @@ MUTATOR_HOOKFUNCTION(lms_SetStartItems)
        start_ammo_plasma  = warmup_start_ammo_plasma  = cvar("g_lms_start_ammo_plasma");
        start_ammo_fuel    = warmup_start_ammo_fuel    = cvar("g_lms_start_ammo_fuel");
 
-       return FALSE;
+       return false;
 }
 
 MUTATOR_HOOKFUNCTION(lms_KeepScore)
 {
        // don't clear player score
-       return TRUE;
+       return true;
 }
 
 MUTATOR_HOOKFUNCTION(lms_FilterItem)
 {
        if(autocvar_g_lms_extra_lives)
-       if(self.classname == "item_health_mega")
+       if(self.itemdef == ITEM_HealthMega)
        {
                self.max_health = 1;
-               return FALSE;
+               return false;
        }
 
-       return TRUE;
+       return true;
 }
 
 MUTATOR_HOOKFUNCTION(lms_ItemTouch)
 {
        // give extra lives for mega health
-       if(self.items & IT_HEALTH)
+       if (self.items & ITEM_HealthMega.m_itemid)
        {
                Send_Notification(NOTIF_ONE, other, MSG_CENTER, CENTER_EXTRALIVES);
                PlayerScore_Add(other, SP_LMS_LIVES, autocvar_g_lms_extra_lives);
@@ -174,7 +185,7 @@ MUTATOR_HOOKFUNCTION(lms_ItemTouch)
 // scoreboard stuff
 void lms_ScoreRules()
 {
-       ScoreRules_basics(0, 0, 0, FALSE);
+       ScoreRules_basics(0, 0, 0, false);
        ScoreInfo_SetLabel_PlayerScore(SP_LMS_LIVES,    "lives",     SFL_SORT_PRIO_SECONDARY);
        ScoreInfo_SetLabel_PlayerScore(SP_LMS_RANK,     "rank",      SFL_LOWER_IS_BETTER | SFL_RANK | SFL_SORT_PRIO_PRIMARY | SFL_ALLOW_HIDE);
        ScoreRules_basics_end();
@@ -221,7 +232,7 @@ MUTATOR_DEFINITION(gamemode_lms)
 
        MUTATOR_ONREMOVE
        {
-               print("This is a game type and it cannot be removed at runtime.");
+               LOG_INFO("This is a game type and it cannot be removed at runtime.");
                return -1;
        }