From 07bf788d52ea7654fad81911819d3806001a2f13 Mon Sep 17 00:00:00 2001 From: Mario Date: Sat, 30 May 2020 00:31:22 +1000 Subject: [PATCH] Light refactor of spawnpoint linking code to more accurately represent the available spawnpoints, fixes #1969 --- qcsrc/server/spawnpoints.qc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/qcsrc/server/spawnpoints.qc b/qcsrc/server/spawnpoints.qc index 3b321e821..e8b7fb897 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) -- 2.39.2