]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/mutator_spawn_near_teammate.qc
Merge branch 'master' into terencehill/music_player
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_spawn_near_teammate.qc
index f17b264172e26b282333b5e07225b253687f78e6..ffae9543b95c663527fe29a6abe49f527453c94f 100644 (file)
@@ -41,11 +41,12 @@ MUTATOR_HOOKFUNCTION(msnt_Spawn_Score)
 
 MUTATOR_HOOKFUNCTION(msnt_PlayerSpawn)
 {
+       // Note: when entering this, fixangle is already set.
        if(autocvar_g_spawn_near_teammate_ignore_spawnpoint)
        {
                if(autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay_death)
                        self.msnt_timer = time + autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay_death;
-                       
+
                entity team_mate, best_mate = world;
                vector best_spot = '0 0 0';
                float pc = 0, best_dist = 0, dist = 0;
@@ -54,14 +55,14 @@ MUTATOR_HOOKFUNCTION(msnt_PlayerSpawn)
                        if((autocvar_g_spawn_near_teammate_ignore_spawnpoint_check_health >= 0 && team_mate.health >= autocvar_g_balance_health_regenstable) || autocvar_g_spawn_near_teammate_ignore_spawnpoint_check_health == 0)
                        if(team_mate.deadflag == DEAD_NO)
                        if(team_mate.msnt_timer < time)
-                       if(!IsDifferentTeam(self, team_mate))
+                       if(SAME_TEAM(self, team_mate))
                        if(time > team_mate.spawnshieldtime) // spawn shielding
-                       if(team_mate.freezetag_frozen == 0)
+                       if(team_mate.frozen == 0)
                        if(team_mate != self)
                        {
                                tracebox(team_mate.origin, PL_MIN, PL_MAX, team_mate.origin - '0 0 100', MOVE_WORLDONLY, team_mate);
                                if(trace_fraction != 1.0)
-                               if not(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY)
+                               if(!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY))
                                {
                                        pc = pointcontents(trace_endpos + '0 0 1');
                                        if(pc == CONTENT_EMPTY)
@@ -111,6 +112,7 @@ MUTATOR_HOOKFUNCTION(msnt_PlayerSpawn)
                                                                        {
                                                                                setorigin(self, trace_endpos);
                                                                                self.angles = team_mate.angles;
+                                                                               self.angles_z = 0; // never spawn tilted even if the spot says to
                                                                                team_mate.msnt_timer = time + autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay;
                                                                                return 0;
                                                                        }
@@ -127,7 +129,7 @@ MUTATOR_HOOKFUNCTION(msnt_PlayerSpawn)
                {
                        setorigin(self, best_spot);
                        self.angles = best_mate.angles;
-                       self.fixangle = TRUE;
+                       self.angles_z = 0; // never spawn tilted even if the spot says to
                        best_mate.msnt_timer = time + autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay;
                }
        }
@@ -135,6 +137,7 @@ MUTATOR_HOOKFUNCTION(msnt_PlayerSpawn)
        {
                self.angles = vectoangles(spawn_spot.msnt_lookat.origin - self.origin);
                self.angles_x = -self.angles_x;
+               self.angles_z = 0; // never spawn tilted even if the spot says to
                /*
                sprint(self, "You should be looking at ", spawn_spot.msnt_lookat.netname, "^7.\n");
                sprint(self, "distance: ", vtos(spawn_spot.msnt_lookat.origin - self.origin), "\n");