diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 05b1a04ea96..a0d31937c7b 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -227,6 +227,12 @@ var/global/datum/controller/gameticker/ticker
statistic_cycle() // Polls population totals regularly and stores them in an SQL DB -- TLE
votetimer()
+
+ for(var/mob/M in mob_list)
+ if(istype(M,/mob/new_player))
+ var/mob/new_player/N = M
+ N.new_player_panel_proc()
+
return 1
/datum/controller/gameticker
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index a68d5bc80f9..471aed1d7f2 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -24,9 +24,7 @@
proc/new_player_panel_proc()
- var/output = "
"
+ output += ""
- var/datum/browser/popup = new(src, "playersetup", "New Player Options
", 210, 240)
+ var/datum/browser/popup = new(src, "playersetup", "New Player Options
", 220, 290)
popup.set_window_options("can_close=0")
popup.set_content(output)
popup.open(0)
@@ -105,6 +103,7 @@
if(href_list["ready"])
ready = !ready
+ new_player_panel_proc()
if(href_list["refresh"])
src << browse(null, "window=playersetup") //closes the player setup window
@@ -115,7 +114,7 @@
if(alert(src,"Are you sure you wish to observe? You will have to wait 30 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes")
if(!client) return 1
var/mob/dead/observer/observer = new()
-
+ src << browse(null, "window=playersetup")
spawning = 1
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
@@ -309,7 +308,7 @@
EquipRacialItems(character)
character = job_master.EquipRank(character, rank, 1) //equips the human
EquipCustomItems(character)
-
+
// AIs don't need a spawnpoint, they must spawn at an empty core
if(character.mind.assigned_role == "AI")
@@ -346,7 +345,7 @@
else
character.loc = pick(latejoin)
join_message = "has arrived on the station"
-
+
character.lastarea = get_area(loc)
// Moving wheelchair if they have one
if(character.buckled && istype(character.buckled, /obj/structure/stool/bed/chair/wheelchair))
@@ -398,12 +397,12 @@
if(character.mind)
if((character.mind.special_role != "MODE"))
var/arrivalmessage = "A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"]."
- announcer.say(";[arrivalmessage]")
+ announcer.say(";[arrivalmessage]")
else
if(character.mind)
if((character.mind.special_role != "MODE"))
// can't use their name here, since cyborg namepicking is done post-spawn, so we'll just say "A new Cyborg has arrived"/"A new Android has arrived"/etc.
- global_announcer.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
+ global_announcer.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
proc/LateChoices()
var/mills = world.time // 1/10 of a second, not real milliseconds but whatever
@@ -444,9 +443,9 @@
proc/create_character()
spawning = 1
close_spawn_windows()
-
+
var/mob/living/carbon/human/new_character
-
+
var/datum/species/chosen_species
if(client.prefs.species)
chosen_species = all_species[client.prefs.species]
@@ -454,10 +453,10 @@
// Have to recheck admin due to no usr at roundstart. Latejoins are fine though.
if(is_species_whitelisted(chosen_species) || has_admin_rights())
new_character = new(loc, client.prefs.species)
-
+
if(!new_character)
new_character = new(loc)
-
+
new_character.lastarea = get_area(loc)
var/datum/language/chosen_language
@@ -505,9 +504,9 @@
if(client.prefs.disabilities & DISABILITY_FLAG_DEAF)
new_character.dna.SetSEState(DEAFBLOCK,1,1)
new_character.sdisabilities |= DEAF
-
+
chosen_species.handle_dna(new_character)
-
+
domutcheck(new_character)
new_character.dna.UpdateSE()