diff --git a/code/controllers/hooks-defs.dm b/code/controllers/hooks-defs.dm index b080c279d93..aa38a133cae 100644 --- a/code/controllers/hooks-defs.dm +++ b/code/controllers/hooks-defs.dm @@ -10,13 +10,6 @@ */ /hook/roundstart -/** - * Captain spawned hook. - * Called in supervisor.dm when a captain spawns - * Parameters: var/mob/living/carbon/human/captain - */ -/hook/captain_spawned - /** * Mob login hook. * Called in login.dm when a player logs in to a mob. diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 710835ca873..3208e9d3533 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -24,7 +24,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0) /datum/job/captain/announce(mob/living/carbon/human/H) . = ..() captain_announcement.Announce("All hands, Captain [H.real_name] on deck!") - callHook("captain_spawned", list("captain" = H)) + updateDisplaycase(H) /datum/outfit/job/captain name = "Captain" diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 543ebd7af91..6b54f61537e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -2,17 +2,15 @@ #define DISPLAYCASE_FRAME_SCREWDRIVER 1 // List and hook used to set up the captain's print on their display case -var/global/list/captain_display_cases = list() +GLOBAL_LIST_INIT(captain_display_cases, list()) -/hook/captain_spawned/proc/displaycase(mob/living/carbon/human/captain) - if(!captain_display_cases.len) - return 1 +/proc/updateDisplaycase(mob/living/carbon/human/captain) + if(!GLOB.captain_display_cases.len) + return var/fingerprint = captain.get_full_print() - for(var/obj/structure/displaycase/D in captain_display_cases) - if(istype(D)) - D.ue = fingerprint - - return 1 + for(var/item in GLOB.captain_display_cases) + var/obj/structure/displaycase/CASE = item + CASE.ue = fingerprint /obj/structure/displaycase_frame name = "display case frame" @@ -123,6 +121,10 @@ var/global/list/captain_display_cases = list() req_access = list(access_captain) start_showpiece_type = /obj/item/gun/energy/laser/captain +/obj/structure/displaycase/captains_laser/Initialize(mapload) + . = ..() + GLOB.captain_display_cases += src + /obj/structure/displaycase/stechkin name = "officer's display case" desc = "A display case containing a humble stechkin pistol. Never forget your roots." @@ -136,7 +138,7 @@ var/global/list/captain_display_cases = list() return ..() /obj/structure/displaycase/captains_laser/Destroy() - captain_display_cases -= src + GLOB.captain_display_cases -= src return ..() /obj/structure/displaycase/examine(mob/user)