]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/gamemode_nexball.qc
Merge branch 'Mario/rifle_arena' into Mario/mutators
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / gamemode_nexball.qc
index ba70a6cda8a5e301242f978430cf2c82d31a5e95..adfb31a1b57112685e62e9ddfa04dd2337cfedba 100644 (file)
@@ -479,7 +479,7 @@ void SpawnBall(void)
 
 //     balls += 4; // using the remaining bits to count balls will leave more than the max edict count, so it's fine
 
-       if(!self.model)
+       if(self.model == "")
        {
                self.model = "models/nexball/ball.md3";
                self.scale = 1.3;
@@ -505,13 +505,13 @@ void SpawnBall(void)
 
        if(!autocvar_g_nexball_sound_bounce)
                self.noise = "";
-       else if(!self.noise)
+       else if(self.noise == "")
                self.noise = "sound/nexball/bounce.wav";
        //bounce sound placeholder (FIXME)
-       if(!self.noise1)
+       if(self.noise1 == "")
                self.noise1 = "sound/nexball/drop.wav";
        //ball drop sound placeholder (FIXME)
-       if(!self.noise2)
+       if(self.noise2 == "")
                self.noise2 = "sound/nexball/steal.wav";
        //stealing sound placeholder (FIXME)
        if(self.noise) precache_sound(self.noise);
@@ -568,7 +568,7 @@ void SpawnGoal(void)
        }
        EXACTTRIGGER_INIT;
        self.classname = "nexball_goal";
-       if(!self.noise)
+       if(self.noise == "")
                self.noise = "ctf/respawn.wav";
        precache_sound(self.noise);
        self.touch = GoalTouch;
@@ -598,7 +598,7 @@ void spawnfunc_nexball_pinkgoal(void)
 void spawnfunc_nexball_fault(void)
 {
        self.team = GOAL_FAULT;
-       if(!self.noise)
+       if(self.noise == "")
                self.noise = "misc/typehit.wav";
        SpawnGoal();
 }
@@ -606,7 +606,7 @@ void spawnfunc_nexball_fault(void)
 void spawnfunc_nexball_out(void)
 {
        self.team = GOAL_OUT;
-       if(!self.noise)
+       if(self.noise == "")
                self.noise = "misc/typehit.wav";
        SpawnGoal();
 }
@@ -929,6 +929,9 @@ MUTATOR_HOOKFUNCTION(nexball_PlayerPreThink)
                }
                
        }
+       
+       nexball_setstatus();
+       
        return FALSE;
 }
 
@@ -944,6 +947,13 @@ MUTATOR_HOOKFUNCTION(nexball_PlayerSpawn)
        return FALSE;
 }
 
+MUTATOR_HOOKFUNCTION(nexball_SetStartItems)
+{
+       start_items |= IT_UNLIMITED_SUPERWEAPONS; // FIXME BAD BAD BAD BAD HACK, NEXBALL SHOULDN'T ABUSE PORTO'S WEAPON SLOT
+       
+       return FALSE;
+}
+
 MUTATOR_DEFINITION(gamemode_nexball)
 {
        MUTATOR_HOOK(PlayerDies, nexball_BallDrop, CBC_ORDER_ANY);
@@ -953,6 +963,7 @@ MUTATOR_DEFINITION(gamemode_nexball)
        MUTATOR_HOOK(BuildMutatorsString, nexball_BuildMutatorsString, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerSpawn, nexball_PlayerSpawn, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerPreThink, nexball_PlayerPreThink, CBC_ORDER_ANY);
+       MUTATOR_HOOK(SetStartItems, nexball_SetStartItems, CBC_ORDER_ANY);
 
        MUTATOR_ONADD
        {