From: Mario Date: Fri, 29 May 2020 14:31:22 +0000 (+1000) Subject: Light refactor of spawnpoint linking code to more accurately represent the available... X-Git-Tag: xonotic-v0.8.5~1006 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=07bf788d52ea7654fad81911819d3806001a2f13 Light refactor of spawnpoint linking code to more accurately represent the available spawnpoints, fixes #1969 --- diff --git a/qcsrc/server/spawnpoints.qc b/qcsrc/server/spawnpoints.qc index 3b321e8210..e8b7fb8977 100644 --- a/qcsrc/server/spawnpoints.qc +++ b/qcsrc/server/spawnpoints.qc @@ -75,6 +75,17 @@ void spawnpoint_reset(entity this) this.SendFlags |= 1; // update team since it was restored during reset } +void link_spawnpoint(entity this) +{ + bool anypoint = (autocvar_g_spawn_useallspawns || (teamplay && have_team_spawns <= 0)); // TODO: check if available teams is equal to spawnpoints available + + // Don't show team spawns in non-team matches, + // and don't show non-team spawns in team matches. + // (Unless useallspawns is activated) + if(anypoint || !((teamplay && !Team_IsValidTeam(this.team)) || (!teamplay && Team_IsValidTeam(this.team)))) + Net_LinkEntity(this, false, 0, SpawnPoint_Send); +} + void relocate_spawnpoint(entity this) { // nudge off the floor @@ -134,11 +145,8 @@ void relocate_spawnpoint(entity this) e.solid = SOLID_TRIGGER; } - // Don't show team spawns in non-team matches, - // and don't show non-team spawns in team matches. - // (Unless useallspawns is activated) - if(autocvar_g_spawn_useallspawns || !((teamplay && !Team_IsValidTeam(this.team)) || (!teamplay && Team_IsValidTeam(this.team)))) - Net_LinkEntity(this, false, 0, SpawnPoint_Send); + // network it after all spawnpoints are setup, so that we can check if team spawnpoints are used + InitializeEntity(this, link_spawnpoint, INITPRIO_FINDTARGET); } spawnfunc(info_player_survivor)