diff --git a/code/controllers/subsystems/initialization/map_finalization.dm b/code/controllers/subsystems/initialization/map_finalization.dm index e8e3a268c7a..4684e992783 100644 --- a/code/controllers/subsystems/initialization/map_finalization.dm +++ b/code/controllers/subsystems/initialization/map_finalization.dm @@ -21,6 +21,9 @@ // Generate the area list. resort_all_areas() + // This is dependant on markers. + populate_antag_spawns() + ..() /proc/resort_all_areas() diff --git a/code/controllers/subsystems/initialization/misc_early.dm b/code/controllers/subsystems/initialization/misc_early.dm index b21ea5009b1..250f576c63d 100644 --- a/code/controllers/subsystems/initialization/misc_early.dm +++ b/code/controllers/subsystems/initialization/misc_early.dm @@ -34,6 +34,7 @@ populate_robolimb_list() // Set up antags. + // Spawn locations are set after map init! populate_antag_type_list() // Get BOREALIS to warn staff about a lazy admin forgetting visibility to 0 diff --git a/code/game/antagonist/_antagonist_setup.dm b/code/game/antagonist/_antagonist_setup.dm index 7f40ec5ae90..92ee06e7a3d 100644 --- a/code/game/antagonist/_antagonist_setup.dm +++ b/code/game/antagonist/_antagonist_setup.dm @@ -91,3 +91,11 @@ var/global/list/bantype_to_antag_age = list() if(player in antag.pending_antagonists) return 1 return 0 + +/** + * This must be called after map loading is done! + */ +/proc/populate_antag_spawns() + for (var/T in all_antag_types) + var/datum/antagonist/A = all_antag_types[T] + A.get_starting_locations() diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index d926fc69e5c..4815abe27f1 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -77,7 +77,7 @@ role_type = id cur_max = hard_cap - get_starting_locations() + if(!role_text_plural) role_text_plural = role_text if(config.protect_roles_from_antagonist)