diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 2a7b22dd5b6..1b0f70badb4 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -530,7 +530,7 @@
M.Scale(px/sx, py/sy)
transform = M
-/atom/movable/screen/click_catcher/Initialize(mapload)
+/atom/movable/screen/click_catcher/Initialize(mapload, datum/hud/hud_owner)
. = ..()
RegisterSignal(SSmapping, COMSIG_PLANE_OFFSET_INCREASE, PROC_REF(offset_increased))
offset_increased(SSmapping, 0, SSmapping.max_plane_offset)
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index 7562721f678..533e8f1e8dd 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -252,12 +252,12 @@
/atom/movable/screen/button_palette/Destroy()
if(our_hud)
- our_hud.mymob?.client?.screen -= src
+ our_hud.mymob?.canon_client?.screen -= src
our_hud.toggle_palette = null
our_hud = null
return ..()
-/atom/movable/screen/button_palette/Initialize(mapload)
+/atom/movable/screen/button_palette/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_appearance()
@@ -416,7 +416,7 @@ GLOBAL_LIST_INIT(palette_removed_matrix, list(1.4,0,0,0, 0.7,0.4,0,0, 0.4,0,0.6,
/atom/movable/screen/palette_scroll/down/Destroy()
if(our_hud)
- our_hud.mymob?.client?.screen -= src
+ our_hud.mymob?.canon_client?.screen -= src
our_hud.palette_down = null
our_hud = null
return ..()
@@ -429,7 +429,7 @@ GLOBAL_LIST_INIT(palette_removed_matrix, list(1.4,0,0,0, 0.7,0.4,0,0, 0.4,0,0.6,
/atom/movable/screen/palette_scroll/up/Destroy()
if(our_hud)
- our_hud.mymob?.client?.screen -= src
+ our_hud.mymob?.canon_client?.screen -= src
our_hud.palette_up = null
our_hud = null
return ..()
@@ -447,7 +447,7 @@ GLOBAL_LIST_INIT(palette_removed_matrix, list(1.4,0,0,0, 0.7,0.4,0,0, 0.4,0,0.6,
/atom/movable/screen/action_landing/Destroy()
if(owner)
owner.landing = null
- owner?.owner?.mymob?.client?.screen -= src
+ owner?.owner?.mymob?.canon_client?.screen -= src
owner.refresh_actions()
owner = null
return ..()
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index fabbdae41ab..3cd50a700e7 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -184,106 +184,89 @@
var/mob/living/silicon/ai/myai = mymob
// Language menu
- using = new /atom/movable/screen/language_menu
+ using = new /atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_ai_language_menu
- using.hud = src
static_inventory += using
//AI core
- using = new /atom/movable/screen/ai/aicore()
+ using = new /atom/movable/screen/ai/aicore(null, src)
using.screen_loc = ui_ai_core
- using.hud = src
static_inventory += using
//Camera list
- using = new /atom/movable/screen/ai/camera_list()
+ using = new /atom/movable/screen/ai/camera_list(null, src)
using.screen_loc = ui_ai_camera_list
- using.hud = src
static_inventory += using
//Track
- using = new /atom/movable/screen/ai/camera_track()
+ using = new /atom/movable/screen/ai/camera_track(null, src)
using.screen_loc = ui_ai_track_with_camera
- using.hud = src
static_inventory += using
//Camera light
- using = new /atom/movable/screen/ai/camera_light()
+ using = new /atom/movable/screen/ai/camera_light(null, src)
using.screen_loc = ui_ai_camera_light
- using.hud = src
static_inventory += using
//Crew Monitoring
- using = new /atom/movable/screen/ai/crew_monitor()
+ using = new /atom/movable/screen/ai/crew_monitor(null, src)
using.screen_loc = ui_ai_crew_monitor
- using.hud = src
static_inventory += using
//Crew Manifest
- using = new /atom/movable/screen/ai/crew_manifest()
+ using = new /atom/movable/screen/ai/crew_manifest(null, src)
using.screen_loc = ui_ai_crew_manifest
- using.hud = src
static_inventory += using
//Alerts
- using = new /atom/movable/screen/ai/alerts()
+ using = new /atom/movable/screen/ai/alerts(null, src)
using.screen_loc = ui_ai_alerts
- using.hud = src
static_inventory += using
//Announcement
- using = new /atom/movable/screen/ai/announcement()
+ using = new /atom/movable/screen/ai/announcement(null, src)
using.screen_loc = ui_ai_announcement
- using.hud = src
static_inventory += using
//Shuttle
- using = new /atom/movable/screen/ai/call_shuttle()
+ using = new /atom/movable/screen/ai/call_shuttle(null, src)
using.screen_loc = ui_ai_shuttle
- using.hud = src
static_inventory += using
//Laws
- using = new /atom/movable/screen/ai/state_laws()
+ using = new /atom/movable/screen/ai/state_laws(null, src)
using.screen_loc = ui_ai_state_laws
- using.hud = src
static_inventory += using
// Modular Interface
- using = new /atom/movable/screen/ai/modpc()
+ using = new /atom/movable/screen/ai/modpc(null, src)
using.screen_loc = ui_ai_mod_int
- using.hud = src
static_inventory += using
myai.interfaceButton = using
var/atom/movable/screen/ai/modpc/tabletbutton = using
tabletbutton.robot = myai
//Take image
- using = new /atom/movable/screen/ai/image_take()
+ using = new /atom/movable/screen/ai/image_take(null, src)
using.screen_loc = ui_ai_take_picture
- using.hud = src
static_inventory += using
//View images
- using = new /atom/movable/screen/ai/image_view()
+ using = new /atom/movable/screen/ai/image_view(null, src)
using.screen_loc = ui_ai_view_images
- using.hud = src
static_inventory += using
//Medical/Security sensors
- using = new /atom/movable/screen/ai/sensors()
+ using = new /atom/movable/screen/ai/sensors(null, src)
using.screen_loc = ui_ai_sensor
- using.hud = src
static_inventory += using
//Multicamera mode
- using = new /atom/movable/screen/ai/multicam()
+ using = new /atom/movable/screen/ai/multicam(null, src)
using.screen_loc = ui_ai_multicam
- using.hud = src
static_inventory += using
//Add multicamera camera
- using = new /atom/movable/screen/ai/add_multicam()
+ using = new /atom/movable/screen/ai/add_multicam(null, src)
using.screen_loc = ui_ai_add_multicam
- using.hud = src
static_inventory += using
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 3c07ed18d8b..7faf83a89fc 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -504,7 +504,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
var/angle = 0
var/mob/living/simple_animal/hostile/construct/Cviewer = null
-/atom/movable/screen/alert/bloodsense/Initialize(mapload)
+/atom/movable/screen/alert/bloodsense/Initialize(mapload, datum/hud/hud_owner)
. = ..()
narnar = new('icons/hud/screen_alert.dmi', "mini_nar")
START_PROCESSING(SSprocessing, src)
@@ -637,7 +637,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
desc = "Unit's power cell has no charge remaining. No modules available until power cell is recharged."
icon_state = "empty_cell"
-/atom/movable/screen/alert/emptycell/Initialize(mapload)
+/atom/movable/screen/alert/emptycell/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_appearance(updates=UPDATE_DESC)
@@ -652,7 +652,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
desc = "Unit's power cell is running low."
icon_state = "low_cell"
-/atom/movable/screen/alert/lowcell/Initialize(mapload)
+/atom/movable/screen/alert/lowcell/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_appearance(updates=UPDATE_DESC)
diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm
index bbe9c067a73..60e3e4f7503 100644
--- a/code/_onclick/hud/alien.dm
+++ b/code/_onclick/hud/alien.dm
@@ -36,22 +36,19 @@
//begin buttons
- using = new /atom/movable/screen/swap_hand()
+ using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_1"
using.screen_loc = ui_swaphand_position(owner,1)
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/swap_hand()
+ using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
- using.hud = src
static_inventory += using
- action_intent = new /atom/movable/screen/combattoggle/flashy()
- action_intent.hud = src
+ action_intent = new /atom/movable/screen/combattoggle/flashy(null, src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent
@@ -62,64 +59,53 @@
H.leap_icon.screen_loc = ui_alien_storage_r
static_inventory += H.leap_icon
- using = new/atom/movable/screen/language_menu
+ using = new/atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_alien_language_menu
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/navigate
+ using = new /atom/movable/screen/navigate(null, src)
using.screen_loc = ui_alien_navigate_menu
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/drop()
+ using = new /atom/movable/screen/drop(null, src)
using.icon = ui_style
using.screen_loc = ui_drop_throw
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/resist()
+ using = new /atom/movable/screen/resist(null, src)
using.icon = ui_style
using.screen_loc = ui_above_movement
- using.hud = src
hotkeybuttons += using
- throw_icon = new /atom/movable/screen/throw_catch()
+ throw_icon = new /atom/movable/screen/throw_catch(null, src)
throw_icon.icon = ui_style
throw_icon.screen_loc = ui_drop_throw
- throw_icon.hud = src
hotkeybuttons += throw_icon
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_above_movement
- pull_icon.hud = src
static_inventory += pull_icon
//begin indicators
- healths = new /atom/movable/screen/healths/alien()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/alien(null, src)
infodisplay += healths
- alien_plasma_display = new /atom/movable/screen/alien/plasma_display()
- alien_plasma_display.hud = src
+ alien_plasma_display = new /atom/movable/screen/alien/plasma_display(null, src)
infodisplay += alien_plasma_display
if(!isalienqueen(mymob))
- alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder
- alien_queen_finder.hud = src
+ alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder(null, src)
infodisplay += alien_queen_finder
- zone_select = new /atom/movable/screen/zone_sel/alien()
- zone_select.hud = src
+ zone_select = new /atom/movable/screen/zone_sel/alien(null, src)
zone_select.update_appearance()
static_inventory += zone_select
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
- inv.hud = src
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
inv.update_appearance()
diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm
index c7f21a1382d..7d3b50da0c7 100644
--- a/code/_onclick/hud/alien_larva.dm
+++ b/code/_onclick/hud/alien_larva.dm
@@ -5,38 +5,31 @@
..()
var/atom/movable/screen/using
- action_intent = new /atom/movable/screen/combattoggle/flashy()
- action_intent.hud = src
+ action_intent = new /atom/movable/screen/combattoggle/flashy(null, src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent
- healths = new /atom/movable/screen/healths/alien()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/alien(null, src)
infodisplay += healths
- alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder()
- alien_queen_finder.hud = src
+ alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder(null, src)
infodisplay += alien_queen_finder
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = 'icons/hud/screen_alien.dmi'
pull_icon.update_appearance()
pull_icon.screen_loc = ui_above_movement
- pull_icon.hud = src
hotkeybuttons += pull_icon
- using = new/atom/movable/screen/language_menu
+ using = new/atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_alien_language_menu
- using.hud = src
static_inventory += using
- zone_select = new /atom/movable/screen/zone_sel/alien()
- zone_select.hud = src
+ using = new /atom/movable/screen/navigate(null, src)
+ using.screen_loc = ui_alien_navigate_menu
+ static_inventory += using
+
+ zone_select = new /atom/movable/screen/zone_sel/alien(null, src)
zone_select.update_appearance()
static_inventory += zone_select
-
- using = new /atom/movable/screen/navigate
- using.screen_loc = ui_alien_navigate_menu
- using.hud = src
- static_inventory += using
diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm
index e6e89e242ea..be860caa1f0 100644
--- a/code/_onclick/hud/blob_overmind.dm
+++ b/code/_onclick/hud/blob_overmind.dm
@@ -50,7 +50,7 @@
name = "Produce Blobbernaut (ERROR)"
desc = "Produces a strong, smart blobbernaut from a factory blob for (ERROR) resources.
The factory blob used will become fragile and unable to produce spores."
-/atom/movable/screen/blob/blobbernaut/Initialize(mapload)
+/atom/movable/screen/blob/blobbernaut/Initialize(mapload, datum/hud/hud_owner)
. = ..()
name = "Produce Blobbernaut ([BLOBMOB_BLOBBERNAUT_RESOURCE_COST])"
desc = "Produces a strong, smart blobbernaut from a factory blob for [BLOBMOB_BLOBBERNAUT_RESOURCE_COST] resources.
The factory blob used will become fragile and unable to produce spores."
@@ -67,7 +67,7 @@
name = "Produce Resource Blob (ERROR)"
desc = "Produces a resource blob for ERROR resources.
Resource blobs will give you resources every few seconds."
-/atom/movable/screen/blob/resource_blob/Initialize(mapload)
+/atom/movable/screen/blob/resource_blob/Initialize(mapload, datum/hud/hud_owner)
. = ..()
name = "Produce Resource Blob ([BLOB_STRUCTURE_RESOURCE_COST])"
desc = "Produces a resource blob for [BLOB_STRUCTURE_RESOURCE_COST] resources.
Resource blobs will give you resources every few seconds."
@@ -84,7 +84,7 @@
name = "Produce Node Blob (ERROR)"
desc = "Produces a node blob for ERROR resources.
Node blobs will expand and activate nearby resource and factory blobs."
-/atom/movable/screen/blob/node_blob/Initialize(mapload)
+/atom/movable/screen/blob/node_blob/Initialize(mapload, datum/hud/hud_owner)
. = ..()
name = "Produce Node Blob ([BLOB_STRUCTURE_NODE_COST])"
desc = "Produces a node blob for [BLOB_STRUCTURE_NODE_COST] resources.
Node blobs will expand and activate nearby resource and factory blobs."
@@ -101,7 +101,7 @@
name = "Produce Factory Blob (ERROR)"
desc = "Produces a factory blob for ERROR resources.
Factory blobs will produce spores every few seconds."
-/atom/movable/screen/blob/factory_blob/Initialize(mapload)
+/atom/movable/screen/blob/factory_blob/Initialize(mapload, datum/hud/hud_owner)
. = ..()
name = "Produce Factory Blob ([BLOB_STRUCTURE_FACTORY_COST])"
desc = "Produces a factory blob for [BLOB_STRUCTURE_FACTORY_COST] resources.
Factory blobs will produce spores every few seconds."
@@ -140,7 +140,7 @@
name = "Relocate Core (ERROR)"
desc = "Swaps a node and your core for ERROR resources."
-/atom/movable/screen/blob/relocate_core/Initialize(mapload)
+/atom/movable/screen/blob/relocate_core/Initialize(mapload, datum/hud/hud_owner)
. = ..()
name = "Relocate Core ([BLOB_POWER_RELOCATE_COST])"
desc = "Swaps a node and your core for [BLOB_POWER_RELOCATE_COST] resources."
@@ -154,55 +154,45 @@
..()
var/atom/movable/screen/using
- blobpwrdisplay = new /atom/movable/screen()
+ blobpwrdisplay = new /atom/movable/screen(null, src)
blobpwrdisplay.name = "blob power"
blobpwrdisplay.icon_state = "block"
blobpwrdisplay.screen_loc = ui_health
blobpwrdisplay.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
SET_PLANE_EXPLICIT(blobpwrdisplay, ABOVE_HUD_PLANE, owner)
- blobpwrdisplay.hud = src
infodisplay += blobpwrdisplay
- healths = new /atom/movable/screen/healths/blob()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/blob(null, src)
infodisplay += healths
- using = new /atom/movable/screen/blob/jump_to_node()
+ using = new /atom/movable/screen/blob/jump_to_node(null, src)
using.screen_loc = ui_inventory
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/jump_to_core()
+ using = new /atom/movable/screen/blob/jump_to_core(null, src)
using.screen_loc = ui_zonesel
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/blobbernaut()
+ using = new /atom/movable/screen/blob/blobbernaut(null, src)
using.screen_loc = ui_belt
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/resource_blob()
+ using = new /atom/movable/screen/blob/resource_blob(null, src)
using.screen_loc = ui_back
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/node_blob()
+ using = new /atom/movable/screen/blob/node_blob(null, src)
using.screen_loc = ui_hand_position(2)
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/factory_blob()
+ using = new /atom/movable/screen/blob/factory_blob(null, src)
using.screen_loc = ui_hand_position(1)
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/readapt_strain()
+ using = new /atom/movable/screen/blob/readapt_strain(null, src)
using.screen_loc = ui_storage1
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/blob/relocate_core()
+ using = new /atom/movable/screen/blob/relocate_core(null, src)
using.screen_loc = ui_storage2
- using.hud = src
static_inventory += using
diff --git a/code/_onclick/hud/blobbernaut.dm b/code/_onclick/hud/blobbernaut.dm
index d8531516d41..59c12a5aa0f 100644
--- a/code/_onclick/hud/blobbernaut.dm
+++ b/code/_onclick/hud/blobbernaut.dm
@@ -1,6 +1,5 @@
/datum/hud/living/blobbernaut/New(mob/living/owner)
. = ..()
- blobpwrdisplay = new /atom/movable/screen/healths/blob/overmind()
- blobpwrdisplay.hud = src
+ blobpwrdisplay = new /atom/movable/screen/healths/blob/overmind(null, src)
infodisplay += blobpwrdisplay
diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm
index e39e1ef36d0..c4650437c63 100644
--- a/code/_onclick/hud/credits.dm
+++ b/code/_onclick/hud/credits.dm
@@ -18,7 +18,7 @@
for(var/I in credit_order_for_this_round)
if(!credits)
return
- _credits += new /atom/movable/screen/credit(null, I, src, credits_icon)
+ _credits += new /atom/movable/screen/credit(null, null, I, src, credits_icon)
sleep(CREDIT_SPAWN_SPEED)
sleep(CREDIT_ROLL_SPEED - CREDIT_SPAWN_SPEED)
remove_verb(src, /client/proc/ClearCredits)
@@ -39,7 +39,7 @@
var/client/parent
var/matrix/target
-/atom/movable/screen/credit/Initialize(mapload, credited, client/P, icon/I)
+/atom/movable/screen/credit/Initialize(mapload, datum/hud/hud_owner, credited, client/P, icon/I)
. = ..()
icon = I
parent = P
diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm
index 61c006ac6fe..1cb8ade6311 100644
--- a/code/_onclick/hud/drones.dm
+++ b/code/_onclick/hud/drones.dm
@@ -2,29 +2,26 @@
..()
var/atom/movable/screen/inventory/inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "internal storage"
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
// inv_box.icon_full = "template"
inv_box.screen_loc = ui_drone_storage
inv_box.slot_id = ITEM_SLOT_DEX_STORAGE
- inv_box.hud = src
static_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "head/mask"
inv_box.icon = ui_style
inv_box.icon_state = "mask"
// inv_box.icon_full = "template"
inv_box.screen_loc = ui_drone_head
inv_box.slot_id = ITEM_SLOT_HEAD
- inv_box.hud = src
static_inventory += inv_box
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
- inv.hud = src
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
inv.update_appearance()
diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm
index c0fa5e481c9..29b78669d48 100644
--- a/code/_onclick/hud/generic_dextrous.dm
+++ b/code/_onclick/hud/generic_dextrous.dm
@@ -3,58 +3,50 @@
..()
var/atom/movable/screen/using
- using = new /atom/movable/screen/drop()
+ using = new /atom/movable/screen/drop(null, src)
using.icon = ui_style
using.screen_loc = ui_drone_drop
- using.hud = src
static_inventory += using
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_drone_pull
- pull_icon.hud = src
static_inventory += pull_icon
build_hand_slots()
- using = new /atom/movable/screen/swap_hand()
+ using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_1_m"
using.screen_loc = ui_swaphand_position(owner,1)
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/swap_hand()
+ using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
- using.hud = src
static_inventory += using
- action_intent = new /atom/movable/screen/combattoggle/flashy()
- action_intent.hud = src
+ action_intent = new /atom/movable/screen/combattoggle/flashy(null, src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent
- zone_select = new /atom/movable/screen/zone_sel()
+ zone_select = new /atom/movable/screen/zone_sel(null, src)
zone_select.icon = ui_style
- zone_select.hud = src
zone_select.update_appearance()
static_inventory += zone_select
- using = new /atom/movable/screen/area_creator
+ using = new /atom/movable/screen/area_creator(null, src)
using.icon = ui_style
- using.hud = src
static_inventory += using
- mymob.client.clear_screen()
+ mymob.canon_client.clear_screen()
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
- inv.hud = src
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
inv.update_appearance()
diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm
index b620d19cbb8..99b04df9068 100644
--- a/code/_onclick/hud/ghost.dm
+++ b/code/_onclick/hud/ghost.dm
@@ -57,40 +57,33 @@
..()
var/atom/movable/screen/using
- using = new /atom/movable/screen/ghost/spawners_menu()
+ using = new /atom/movable/screen/ghost/spawners_menu(null, src)
using.screen_loc = ui_ghost_spawners_menu
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/ghost/orbit()
+ using = new /atom/movable/screen/ghost/orbit(null, src)
using.screen_loc = ui_ghost_orbit
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/ghost/reenter_corpse()
+ using = new /atom/movable/screen/ghost/reenter_corpse(null, src)
using.screen_loc = ui_ghost_reenter_corpse
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/ghost/teleport()
+ using = new /atom/movable/screen/ghost/teleport(null, src)
using.screen_loc = ui_ghost_teleport
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/ghost/pai()
+ using = new /atom/movable/screen/ghost/pai(null, src)
using.screen_loc = ui_ghost_pai
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/ghost/minigames_menu()
+ using = new /atom/movable/screen/ghost/minigames_menu(null, src)
using.screen_loc = ui_ghost_minigames
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/language_menu
+ using = new /atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_ghost_language_menu
using.icon = ui_style
- using.hud = src
static_inventory += using
/datum/hud/ghost/show_hud(version = 0, mob/viewmob)
diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm
index 91da0f9fdb8..f9963c1fa3a 100644
--- a/code/_onclick/hud/guardian.dm
+++ b/code/_onclick/hud/guardian.dm
@@ -5,40 +5,33 @@
..()
var/atom/movable/screen/using
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
static_inventory += pull_icon
- healths = new /atom/movable/screen/healths/guardian()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/guardian(null, src)
infodisplay += healths
- using = new /atom/movable/screen/guardian/manifest()
+ using = new /atom/movable/screen/guardian/manifest(null, src)
using.screen_loc = ui_hand_position(2)
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/guardian/recall()
+ using = new /atom/movable/screen/guardian/recall(null, src)
using.screen_loc = ui_hand_position(1)
- using.hud = src
static_inventory += using
- using = new owner.toggle_button_type()
+ using = new owner.toggle_button_type(null, src)
using.screen_loc = ui_storage1
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/guardian/toggle_light()
+ using = new /atom/movable/screen/guardian/toggle_light(null, src)
using.screen_loc = ui_inventory
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/guardian/communicate()
+ using = new /atom/movable/screen/guardian/communicate(null, src)
using.screen_loc = ui_back
- using.hud = src
static_inventory += using
/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner) //for a dextrous guardian
@@ -47,56 +40,47 @@
if(istype(owner, /mob/living/simple_animal/hostile/guardian/dextrous))
var/atom/movable/screen/inventory/inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "internal storage"
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
inv_box.screen_loc = ui_id
inv_box.slot_id = ITEM_SLOT_DEX_STORAGE
- inv_box.hud = src
static_inventory += inv_box
- using = new /atom/movable/screen/guardian/communicate()
+ using = new /atom/movable/screen/guardian/communicate(null, src)
using.screen_loc = ui_sstore1
- using.hud = src
static_inventory += using
else
- using = new /atom/movable/screen/guardian/communicate()
+ using = new /atom/movable/screen/guardian/communicate(null, src)
using.screen_loc = ui_id
- using.hud = src
static_inventory += using
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
static_inventory += pull_icon
- healths = new /atom/movable/screen/healths/guardian()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/guardian(null, src)
infodisplay += healths
- using = new /atom/movable/screen/guardian/manifest()
+ using = new /atom/movable/screen/guardian/manifest(null, src)
using.screen_loc = ui_belt
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/guardian/recall()
+ using = new /atom/movable/screen/guardian/recall(null, src)
using.screen_loc = ui_back
- using.hud = src
static_inventory += using
- using = new owner.toggle_button_type()
+ using = new owner.toggle_button_type(null, src)
using.screen_loc = ui_storage2
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/guardian/toggle_light()
+ using = new /atom/movable/screen/guardian/toggle_light(null, src)
using.screen_loc = ui_inventory
- using.hud = src
static_inventory += using
/datum/hud/dextrous/guardian/persistent_inventory_update()
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 753c2fe8b81..123b7bfb696 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -160,8 +160,8 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list(
/datum/hud/proc/client_refresh(datum/source)
SIGNAL_HANDLER
- RegisterSignal(mymob.client, COMSIG_CLIENT_SET_EYE, PROC_REF(on_eye_change))
- on_eye_change(null, null, mymob.client.eye)
+ RegisterSignal(mymob.canon_client, COMSIG_CLIENT_SET_EYE, PROC_REF(on_eye_change))
+ on_eye_change(null, null, mymob.canon_client.eye)
/datum/hud/proc/clear_client(datum/source)
SIGNAL_HANDLER
@@ -472,14 +472,13 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list(
hand_slots = list()
var/atom/movable/screen/inventory/hand/hand_box
for(var/i in 1 to mymob.held_items.len)
- hand_box = new /atom/movable/screen/inventory/hand()
+ hand_box = new /atom/movable/screen/inventory/hand(null, src)
hand_box.name = mymob.get_held_index_name(i)
hand_box.icon = ui_style
hand_box.icon_state = "hand_[mymob.held_index_to_dir(i)]"
hand_box.screen_loc = ui_hand_position(i)
hand_box.held_index = i
hand_slots["[i]"] = hand_box
- hand_box.hud = src
static_inventory += hand_box
hand_box.update_appearance()
@@ -533,7 +532,7 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list(
palette_actions.insert_action(button, palette_actions.index_of(relative_to))
if(SCRN_OBJ_FLOATING) // If we don't have it as a define, this is a screen_loc, and we should be floating
floating_actions += button
- var/client/our_client = mymob.client
+ var/client/our_client = mymob.canon_client
if(!our_client)
position_action(button, button.linked_action.default_button_position)
return
@@ -574,7 +573,7 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list(
/// Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not
/datum/hud/proc/view_audit_buttons()
- var/our_view = mymob?.client?.view
+ var/our_view = mymob?.canon_client?.view
if(!our_view)
return
listed_actions.check_against_view()
@@ -690,7 +689,7 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list(
return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-[pixel_north_offset]"
/datum/action_group/proc/check_against_view()
- var/owner_view = owner?.mymob?.client?.view
+ var/owner_view = owner?.mymob?.canon_client?.view
if(!owner_view)
return
// Unlikey as it is, we may have been changed. Want to start from our target position and fail down
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index f65ef0a934e..f762df16966 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -58,279 +58,241 @@
var/atom/movable/screen/using
var/atom/movable/screen/inventory/inv_box
- using = new/atom/movable/screen/language_menu
+ using = new /atom/movable/screen/language_menu(null, src)
using.icon = ui_style
- using.hud = src
static_inventory += using
- using = new/atom/movable/screen/navigate
+ using = new /atom/movable/screen/navigate(null, src)
using.icon = ui_style
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/area_creator
+ using = new /atom/movable/screen/area_creator(null, src)
using.icon = ui_style
- using.hud = src
static_inventory += using
- action_intent = new /atom/movable/screen/combattoggle/flashy()
- action_intent.hud = src
+ action_intent = new /atom/movable/screen/combattoggle/flashy(null, src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent
- using = new /atom/movable/screen/mov_intent
+ using = new /atom/movable/screen/mov_intent(null, src)
using.icon = ui_style
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/drop()
+ using = new /atom/movable/screen/drop(null, src)
using.icon = ui_style
using.screen_loc = ui_drop_throw
- using.hud = src
static_inventory += using
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "uniform"
inv_box.icon = ui_style
inv_box.slot_id = ITEM_SLOT_ICLOTHING
inv_box.icon_state = "uniform"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_iclothing
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "suit"
inv_box.icon = ui_style
inv_box.slot_id = ITEM_SLOT_OCLOTHING
inv_box.icon_state = "suit"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_oclothing
- inv_box.hud = src
toggleable_inventory += inv_box
build_hand_slots()
- using = new /atom/movable/screen/swap_hand()
+ using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_1"
using.screen_loc = ui_swaphand_position(owner,1)
- using.hud = src
static_inventory += using
- using = new /atom/movable/screen/swap_hand()
+ using = new /atom/movable/screen/swap_hand(null, src)
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
- using.hud = src
static_inventory += using
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "id"
inv_box.icon = ui_style
inv_box.icon_state = "id"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_id
inv_box.slot_id = ITEM_SLOT_ID
- inv_box.hud = src
static_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "mask"
inv_box.icon = ui_style
inv_box.icon_state = "mask"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_mask
inv_box.slot_id = ITEM_SLOT_MASK
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "neck"
inv_box.icon = ui_style
inv_box.icon_state = "neck"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_neck
inv_box.slot_id = ITEM_SLOT_NECK
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "back"
inv_box.icon = ui_style
inv_box.icon_state = "back"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_back
inv_box.slot_id = ITEM_SLOT_BACK
- inv_box.hud = src
static_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "left pocket"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_storage1
inv_box.slot_id = ITEM_SLOT_LPOCKET
- inv_box.hud = src
static_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "right pocket"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_storage2
inv_box.slot_id = ITEM_SLOT_RPOCKET
- inv_box.hud = src
static_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "suit storage"
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_sstore1
inv_box.slot_id = ITEM_SLOT_SUITSTORE
- inv_box.hud = src
static_inventory += inv_box
- using = new /atom/movable/screen/resist()
+ using = new /atom/movable/screen/resist(null, src)
using.icon = ui_style
using.screen_loc = ui_above_intent
- using.hud = src
hotkeybuttons += using
- using = new /atom/movable/screen/human/toggle()
+ using = new /atom/movable/screen/human/toggle(null, src)
using.icon = ui_style
using.screen_loc = ui_inventory
- using.hud = src
static_inventory += using
using = new /atom/movable/screen/human/equip()
using.icon = ui_style
using.screen_loc = ui_equip_position(mymob)
- using.hud = src
static_inventory += using
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "gloves"
inv_box.icon = ui_style
inv_box.icon_state = "gloves"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_gloves
inv_box.slot_id = ITEM_SLOT_GLOVES
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "eyes"
inv_box.icon = ui_style
inv_box.icon_state = "glasses"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_glasses
inv_box.slot_id = ITEM_SLOT_EYES
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "ears"
inv_box.icon = ui_style
inv_box.icon_state = "ears"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_ears
inv_box.slot_id = ITEM_SLOT_EARS
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "head"
inv_box.icon = ui_style
inv_box.icon_state = "head"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_head
inv_box.slot_id = ITEM_SLOT_HEAD
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "shoes"
inv_box.icon = ui_style
inv_box.icon_state = "shoes"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_shoes
inv_box.slot_id = ITEM_SLOT_FEET
- inv_box.hud = src
toggleable_inventory += inv_box
- inv_box = new /atom/movable/screen/inventory()
+ inv_box = new /atom/movable/screen/inventory(null, src)
inv_box.name = "belt"
inv_box.icon = ui_style
inv_box.icon_state = "belt"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_belt
inv_box.slot_id = ITEM_SLOT_BELT
- inv_box.hud = src
static_inventory += inv_box
- throw_icon = new /atom/movable/screen/throw_catch()
+ throw_icon = new /atom/movable/screen/throw_catch(null, src)
throw_icon.icon = ui_style
throw_icon.screen_loc = ui_drop_throw
- throw_icon.hud = src
hotkeybuttons += throw_icon
- rest_icon = new /atom/movable/screen/rest()
+ rest_icon = new /atom/movable/screen/rest(null, src)
rest_icon.icon = ui_style
rest_icon.screen_loc = ui_above_movement
- rest_icon.hud = src
rest_icon.update_appearance()
static_inventory += rest_icon
- spacesuit = new /atom/movable/screen/spacesuit
- spacesuit.hud = src
+ spacesuit = new /atom/movable/screen/spacesuit(null, src)
infodisplay += spacesuit
- healths = new /atom/movable/screen/healths()
- healths.hud = src
+ healths = new /atom/movable/screen/healths(null, src)
infodisplay += healths
- healthdoll = new /atom/movable/screen/healthdoll()
- healthdoll.hud = src
+ healthdoll = new /atom/movable/screen/healthdoll(null, src)
infodisplay += healthdoll
- stamina = new /atom/movable/screen/stamina()
- stamina.hud = src
+ stamina = new /atom/movable/screen/stamina(null, src)
infodisplay += stamina
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.screen_loc = ui_above_intent
- pull_icon.hud = src
pull_icon.update_appearance()
static_inventory += pull_icon
- zone_select = new /atom/movable/screen/zone_sel()
+ zone_select = new /atom/movable/screen/zone_sel(null, src)
zone_select.icon = ui_style
- zone_select.hud = src
zone_select.update_appearance()
static_inventory += zone_select
- combo_display = new /atom/movable/screen/combo()
+ combo_display = new /atom/movable/screen/combo(null, src)
infodisplay += combo_display
- //SKYRAT EDIT ADDITION
- ammo_counter = new /atom/movable/screen/ammo_counter()
- ammo_counter.hud = src
- infodisplay += ammo_counter
- //SKYRAT EDIT END
+ ammo_counter = new /atom/movable/screen/ammo_counter(null, src) //SKYRAT EDIT ADDITION
+ infodisplay += ammo_counter //SKYRAT EDIT ADDITION
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
- inv.hud = src
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
inv.update_appearance()
diff --git a/code/_onclick/hud/living.dm b/code/_onclick/hud/living.dm
index 366079f233d..ecd6ecc1eba 100644
--- a/code/_onclick/hud/living.dm
+++ b/code/_onclick/hud/living.dm
@@ -4,17 +4,15 @@
/datum/hud/living/New(mob/living/owner)
..()
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
static_inventory += pull_icon
- combo_display = new /atom/movable/screen/combo()
+ combo_display = new /atom/movable/screen/combo(null, src)
infodisplay += combo_display
//mob health doll! assumes whatever sprite the mob is
- healthdoll = new /atom/movable/screen/healthdoll/living()
- healthdoll.hud = src
+ healthdoll = new /atom/movable/screen/healthdoll/living(null, src)
infodisplay += healthdoll
diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm
index 0bc228d4f6d..15abe020f5c 100644
--- a/code/_onclick/hud/new_player.dm
+++ b/code/_onclick/hud/new_player.dm
@@ -34,6 +34,7 @@
///Whether this HUD element can be hidden from the client's "screen" (moved off-screen) or not
var/always_shown = FALSE
+///Set the HUD in New, as lobby screens are made before Atoms are Initialized.
/atom/movable/screen/lobby/New(loc, datum/hud/our_hud, ...)
if(our_hud)
hud = our_hud
@@ -139,7 +140,7 @@
if(!.)
return
- var/datum/preferences/preferences = hud.mymob.client.prefs
+ var/datum/preferences/preferences = hud.mymob.canon_client.prefs
preferences.current_window = PREFERENCE_TAB_CHARACTER_PREFERENCES
preferences.update_static_data(usr)
preferences.ui_interact(usr)
@@ -154,7 +155,7 @@
///Whether we are readied up for the round or not
var/ready = FALSE
-/atom/movable/screen/lobby/button/ready/Initialize(mapload)
+/atom/movable/screen/lobby/button/ready/Initialize(mapload, datum/hud/hud_owner)
. = ..()
switch(SSticker.current_state)
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
@@ -207,7 +208,7 @@
base_icon_state = "join_game"
enabled = FALSE
-/atom/movable/screen/lobby/button/join/Initialize(mapload)
+/atom/movable/screen/lobby/button/join/Initialize(mapload, datum/hud/hud_owner)
. = ..()
switch(SSticker.current_state)
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
@@ -283,7 +284,7 @@
base_icon_state = "observe"
enabled = FALSE
-/atom/movable/screen/lobby/button/observe/Initialize(mapload)
+/atom/movable/screen/lobby/button/observe/Initialize(mapload, datum/hud/hud_owner)
. = ..()
if(SSticker.current_state > GAME_STATE_STARTUP)
set_button_status(TRUE)
@@ -319,7 +320,7 @@
if(!.)
return
- var/datum/preferences/preferences = hud.mymob.client.prefs
+ var/datum/preferences/preferences = hud.mymob.canon_client.prefs
preferences.current_window = PREFERENCE_TAB_GAME_PREFERENCES
preferences.update_static_data(usr)
preferences.ui_interact(usr)
diff --git a/code/_onclick/hud/ooze.dm b/code/_onclick/hud/ooze.dm
index d3ebe3e7288..1b466f7ff97 100644
--- a/code/_onclick/hud/ooze.dm
+++ b/code/_onclick/hud/ooze.dm
@@ -2,14 +2,12 @@
/datum/hud/ooze/New(mob/living/owner)
. = ..()
- zone_select = new /atom/movable/screen/zone_sel()
+ zone_select = new /atom/movable/screen/zone_sel(null, src)
zone_select.icon = ui_style
- zone_select.hud = src
zone_select.update_appearance()
static_inventory += zone_select
- alien_plasma_display = new /atom/movable/screen/ooze_nutrition_display //Just going to use the alien plasma display because making new vars for each object is braindead.
- alien_plasma_display.hud = src
+ alien_plasma_display = new /atom/movable/screen/ooze_nutrition_display(null, src) //Just going to use the alien plasma display because making new vars for each object is braindead.
infodisplay += alien_plasma_display
/atom/movable/screen/ooze_nutrition_display
diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm
index 8b24ae7f67c..9fc4f8986a2 100755
--- a/code/_onclick/hud/parallax.dm
+++ b/code/_onclick/hud/parallax.dm
@@ -13,12 +13,12 @@
if(!length(C.parallax_layers_cached))
C.parallax_layers_cached = list()
- C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_1(null, screenmob)
- C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_2(null, screenmob)
- C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/planet(null, screenmob)
+ C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_1(null, src)
+ C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_2(null, src)
+ C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/planet(null, src)
if(SSparallax.random_layer)
- C.parallax_layers_cached += new SSparallax.random_layer(null, screenmob)
- C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_3(null, screenmob)
+ C.parallax_layers_cached += new SSparallax.random_layer(null, src)
+ C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_3(null, src)
C.parallax_layers = C.parallax_layers_cached.Copy()
@@ -271,9 +271,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer)
screen_loc = "CENTER-7,CENTER-7"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
-/atom/movable/screen/parallax_layer/Initialize(mapload, mob/owner)
+/atom/movable/screen/parallax_layer/Initialize(mapload, datum/hud/hud_owner)
. = ..()
- var/client/boss = owner?.client
+ var/client/boss = hud_owner?.mymob?.canon_client
if(!boss) // If this typepath all starts to harddel your culprit is likely this
return INITIALIZE_HINT_QDEL
@@ -330,9 +330,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer)
/atom/movable/screen/parallax_layer/random/space_gas
icon_state = "space_gas"
-/atom/movable/screen/parallax_layer/random/space_gas/Initialize(mapload, mob/owner)
+/atom/movable/screen/parallax_layer/random/space_gas/Initialize(mapload, datum/hud/hud_owner)
. = ..()
- src.add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY)
+ add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY)
/atom/movable/screen/parallax_layer/random/asteroids
icon_state = "asteroids"
@@ -345,16 +345,17 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer)
speed = 3
layer = 30
-/atom/movable/screen/parallax_layer/planet/Initialize(mapload, mob/owner)
+/atom/movable/screen/parallax_layer/planet/Initialize(mapload, datum/hud/hud_owner)
. = ..()
- if(!owner?.client)
+ var/client/boss = hud_owner?.mymob?.canon_client
+ if(!boss)
return
var/static/list/connections = list(
COMSIG_MOVABLE_Z_CHANGED = PROC_REF(on_z_change),
COMSIG_MOB_LOGOUT = PROC_REF(on_mob_logout),
)
- AddComponent(/datum/component/connect_mob_behalf, owner.client, connections)
- on_z_change(owner)
+ AddComponent(/datum/component/connect_mob_behalf, boss, connections)
+ on_z_change(hud_owner?.mymob)
/atom/movable/screen/parallax_layer/planet/proc/on_mob_logout(mob/source)
SIGNAL_HANDLER
diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm
index 005188b3722..dbf4e0af531 100644
--- a/code/_onclick/hud/picture_in_picture.dm
+++ b/code/_onclick/hud/picture_in_picture.dm
@@ -13,7 +13,7 @@
var/mutable_appearance/standard_background
-/atom/movable/screen/movable/pic_in_pic/Initialize(mapload)
+/atom/movable/screen/movable/pic_in_pic/Initialize(mapload, datum/hud/hud_owner)
. = ..()
make_backgrounds()
RegisterSignal(SSmapping, COMSIG_PLANE_OFFSET_INCREASE, PROC_REF(multiz_offset_increase))
diff --git a/code/_onclick/hud/rendering/plane_master.dm b/code/_onclick/hud/rendering/plane_master.dm
index a873ec6d824..662360e76c6 100644
--- a/code/_onclick/hud/rendering/plane_master.dm
+++ b/code/_onclick/hud/rendering/plane_master.dm
@@ -64,7 +64,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
/// If this plane master is outside of our visual bounds right now
var/is_outside_bounds = FALSE
-/atom/movable/screen/plane_master/Initialize(mapload, datum/plane_master_group/home, offset = 0)
+/atom/movable/screen/plane_master/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset = 0)
. = ..()
src.offset = offset
true_alpha = alpha
@@ -132,7 +132,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
if(force_hidden)
return FALSE
- var/client/our_client = mymob?.client
+ var/client/our_client = mymob?.canon_client
// Alright, let's get this out of the way
// Mobs can move z levels without their client. If this happens, we need to ensure critical display settings are respected
// This is done here. Mild to severe pain but it's nessesary
@@ -386,7 +386,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
plane = GAME_PLANE_FOV_HIDDEN
render_relay_planes = list(RENDER_PLANE_GAME_WORLD)
-/atom/movable/screen/plane_master/game_world_fov_hidden/Initialize(mapload)
+/atom/movable/screen/plane_master/game_world_fov_hidden/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("vision_cone", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE))
@@ -433,7 +433,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
plane = GAME_PLANE_UPPER_FOV_HIDDEN
render_relay_planes = list(RENDER_PLANE_GAME_WORLD)
-/atom/movable/screen/plane_master/game_world_upper_fov_hidden/Initialize(mapload)
+/atom/movable/screen/plane_master/game_world_upper_fov_hidden/Initialize(mapload, datum/hud/hud_owner)
. = ..()
// Dupe of the other hidden plane
add_filter("vision_cone", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE))
@@ -536,7 +536,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
plane = PIPECRAWL_IMAGES_PLANE
start_hidden = TRUE
-/atom/movable/screen/plane_master/pipecrawl/Initialize(mapload)
+/atom/movable/screen/plane_master/pipecrawl/Initialize(mapload, datum/hud/hud_owner)
. = ..()
// Makes everything on this plane slightly brighter
// Has a nice effect, makes thing stand out
@@ -563,7 +563,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
// This can call on a cycle cause we don't clear in hide_from
// Yes this is the best way of hooking into the hud, I hate myself too
RegisterSignal(our_hud, COMSIG_HUD_EYE_CHANGED, PROC_REF(eye_changed), override = TRUE)
- eye_changed(our_hud, null, our_hud.mymob?.client?.eye)
+ eye_changed(our_hud, null, our_hud.mymob?.canon_client?.eye)
/atom/movable/screen/plane_master/camera_static/proc/eye_changed(datum/hud/source, atom/old_eye, atom/new_eye)
SIGNAL_HANDLER
@@ -611,7 +611,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
if(!.)
return
remove_filter("AO")
- if(istype(mymob) && mymob.client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion))
+ if(istype(mymob) && mymob.canon_client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion))
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
/atom/movable/screen/plane_master/balloon_chat
diff --git a/code/_onclick/hud/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm
index b9f60ff8e9d..c1fa1b37878 100644
--- a/code/_onclick/hud/rendering/plane_master_group.dm
+++ b/code/_onclick/hud/rendering/plane_master_group.dm
@@ -84,7 +84,7 @@
for(var/plane_offset in starting_offset to ending_offset)
if(plane_offset != 0 && !initial(mytype.allows_offsetting))
continue
- var/atom/movable/screen/plane_master/instance = new mytype(null, src, plane_offset)
+ var/atom/movable/screen/plane_master/instance = new mytype(null, null, src, plane_offset)
plane_masters["[instance.plane]"] = instance
prep_plane_instance(instance)
diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm
index 6d2b12fb6d5..867f7ca3aeb 100644
--- a/code/_onclick/hud/rendering/render_plate.dm
+++ b/code/_onclick/hud/rendering/render_plate.dm
@@ -76,7 +76,7 @@
plane = RENDER_PLANE_GAME
render_relay_planes = list(RENDER_PLANE_MASTER)
-/atom/movable/screen/plane_master/rendering_plate/game_plate/Initialize(mapload)
+/atom/movable/screen/plane_master/rendering_plate/game_plate/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("displacer", 1, displacement_map_filter(render_source = OFFSET_RENDER_TARGET(GRAVITY_PULSE_RENDER_TARGET, offset), size = 10))
@@ -91,7 +91,7 @@
plane = RENDER_PLANE_TRANSPARENT
appearance_flags = PLANE_MASTER
-/atom/movable/screen/plane_master/rendering_plate/transparent/Initialize(mapload, datum/plane_master_group/home, offset)
+/atom/movable/screen/plane_master/rendering_plate/transparent/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset)
. = ..()
// Don't display us if we're below everything else yeah?
AddComponent(/datum/component/plane_hide_highest_offset)
@@ -110,7 +110,7 @@
if(!.)
return
remove_filter("AO")
- if(istype(mymob) && mymob.client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion))
+ if(istype(mymob) && mymob.canon_client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion))
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
///Contains all lighting objects
@@ -140,7 +140,7 @@
* A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.
* This is then used to alpha mask the lighting plane.
*/
-/atom/movable/screen/plane_master/rendering_plate/lighting/Initialize(mapload)
+/atom/movable/screen/plane_master/rendering_plate/lighting/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("emissives", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(EMISSIVE_RENDER_TARGET, offset), flags = MASK_INVERSE))
add_filter("object_lighting", 2, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(O_LIGHTING_VISUAL_RENDER_TARGET, offset), flags = MASK_INVERSE))
@@ -225,7 +225,7 @@
render_relay_planes = list()
critical = PLANE_CRITICAL_DISPLAY
-/atom/movable/screen/plane_master/rendering_plate/emissive_slate/Initialize(mapload, datum/plane_master_group/home, offset)
+/atom/movable/screen/plane_master/rendering_plate/emissive_slate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset)
. = ..()
add_filter("em_block_masking", 2, color_matrix_filter(GLOB.em_mask_matrix))
if(offset != 0)
@@ -324,7 +324,7 @@
if(get_relay_to(target_plane))
return
render_relay_planes += target_plane
- var/client/display_lad = home?.our_hud?.mymob?.client
+ var/client/display_lad = home?.our_hud?.mymob?.canon_client
var/atom/movable/render_plane_relay/relay = generate_relay_to(target_plane, show_to = display_lad, blend_override = blend_override, relay_layer = relay_layer)
relay.color = relay_color
@@ -374,7 +374,7 @@
relays -= existing_relay
if(!length(relays) && !initial(render_target))
render_target = null
- var/client/lad = home?.our_hud?.mymob?.client
+ var/client/lad = home?.our_hud?.mymob?.canon_client
if(lad)
lad.screen -= existing_relay
diff --git a/code/_onclick/hud/revenanthud.dm b/code/_onclick/hud/revenanthud.dm
index 75865d3d454..c47ea4c2418 100644
--- a/code/_onclick/hud/revenanthud.dm
+++ b/code/_onclick/hud/revenanthud.dm
@@ -4,13 +4,11 @@
/datum/hud/revenant/New(mob/owner)
..()
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = ui_style
pull_icon.update_appearance()
pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
static_inventory += pull_icon
- healths = new /atom/movable/screen/healths/revenant()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/revenant(null, src)
infodisplay += healths
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index a94621e518f..fdc03364e3f 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -77,62 +77,52 @@
var/mob/living/silicon/robot/robit = mymob
var/atom/movable/screen/using
- using = new/atom/movable/screen/language_menu
+ using = new/atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_borg_language_menu
static_inventory += using
// Navigation
- using = new /atom/movable/screen/navigate
+ using = new /atom/movable/screen/navigate(null, src)
using.screen_loc = ui_borg_navigate_menu
static_inventory += using
//Radio
- using = new /atom/movable/screen/robot/radio()
+ using = new /atom/movable/screen/robot/radio(null, src)
using.screen_loc = ui_borg_radio
- using.hud = src
static_inventory += using
//Module select
if(!robit.inv1)
- robit.inv1 = new /atom/movable/screen/robot/module1()
-
+ robit.inv1 = new /atom/movable/screen/robot/module1(null, src)
robit.inv1.screen_loc = ui_inv1
- robit.inv1.hud = src
static_inventory += robit.inv1
if(!robit.inv2)
- robit.inv2 = new /atom/movable/screen/robot/module2()
-
+ robit.inv2 = new /atom/movable/screen/robot/module2(null, src)
robit.inv2.screen_loc = ui_inv2
- robit.inv2.hud = src
static_inventory += robit.inv2
if(!robit.inv3)
- robit.inv3 = new /atom/movable/screen/robot/module3()
-
+ robit.inv3 = new /atom/movable/screen/robot/module3(null, src)
robit.inv3.screen_loc = ui_inv3
- robit.inv3.hud = src
static_inventory += robit.inv3
//End of module select
- using = new /atom/movable/screen/robot/lamp()
+ using = new /atom/movable/screen/robot/lamp(null, src)
using.screen_loc = ui_borg_lamp
- using.hud = src
static_inventory += using
robit.lampButton = using
var/atom/movable/screen/robot/lamp/lampscreen = using
lampscreen.robot = robit
//Photography stuff
- using = new /atom/movable/screen/ai/image_take()
+ using = new /atom/movable/screen/ai/image_take(null, src)
using.screen_loc = ui_borg_camera
- using.hud = src
static_inventory += using
//Borg Integrated Tablet
- using = new /atom/movable/screen/robot/modpc()
+ using = new /atom/movable/screen/robot/modpc(null, src)
using.screen_loc = ui_borg_tablet
- using.hud = src
static_inventory += using
robit.interfaceButton = using
if(robit.modularInterface)
@@ -143,44 +133,37 @@
tabletbutton.robot = robit
//Alerts
- using = new /atom/movable/screen/robot/alerts()
+ using = new /atom/movable/screen/robot/alerts(null, src)
using.screen_loc = ui_borg_alerts
- using.hud = src
static_inventory += using
//Combat Mode
- action_intent = new /atom/movable/screen/combattoggle/robot()
- action_intent.hud = src
+ action_intent = new /atom/movable/screen/combattoggle/robot(null, src)
action_intent.icon = ui_style
action_intent.screen_loc = ui_combat_toggle
static_inventory += action_intent
//Health
- healths = new /atom/movable/screen/healths/robot()
- healths.hud = src
+ healths = new /atom/movable/screen/healths/robot(null, src)
infodisplay += healths
//Installed Module
- robit.hands = new /atom/movable/screen/robot/module()
+ robit.hands = new /atom/movable/screen/robot/module(null, src)
robit.hands.screen_loc = ui_borg_module
- robit.hands.hud = src
static_inventory += robit.hands
//Store
- module_store_icon = new /atom/movable/screen/robot/store()
+ module_store_icon = new /atom/movable/screen/robot/store(null, src)
module_store_icon.screen_loc = ui_borg_store
- module_store_icon.hud = src
- pull_icon = new /atom/movable/screen/pull()
+ pull_icon = new /atom/movable/screen/pull(null, src)
pull_icon.icon = 'icons/hud/screen_cyborg.dmi'
pull_icon.screen_loc = ui_borg_pull
- pull_icon.hud = src
pull_icon.update_appearance()
hotkeybuttons += pull_icon
- zone_select = new /atom/movable/screen/zone_sel/robot()
- zone_select.hud = src
+ zone_select = new /atom/movable/screen/zone_sel/robot(null, src)
zone_select.update_appearance()
static_inventory += zone_select
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index aa0dae0d942..6f4fefe3fd4 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -18,7 +18,7 @@
/// A reference to the object in the slot. Grabs or items, generally.
var/obj/master = null
/// A reference to the owner HUD, if any.
- var/datum/hud/hud = null
+ VAR_PRIVATE/datum/hud/hud = null
/**
* Map name assigned to this object.
* Automatically set by /client/proc/add_obj_to_map.
@@ -36,6 +36,11 @@
/// If FALSE, this will not be cleared when calling /client/clear_screen()
var/clear_with_screen = TRUE
+/atom/movable/screen/Initialize(mapload, datum/hud/hud_owner)
+ . = ..()
+ if(hud_owner && istype(hud_owner))
+ hud = hud_owner
+
/atom/movable/screen/Destroy()
master = null
hud = null
@@ -242,7 +247,7 @@
plane = ABOVE_HUD_PLANE
icon_state = "backpack_close"
-/atom/movable/screen/close/Initialize(mapload, new_master)
+/atom/movable/screen/close/Initialize(mapload, datum/hud/hud_owner, new_master)
. = ..()
master = new_master
@@ -267,7 +272,7 @@
icon_state = "combat_off"
screen_loc = ui_combat_toggle
-/atom/movable/screen/combattoggle/Initialize(mapload)
+/atom/movable/screen/combattoggle/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_appearance()
@@ -384,7 +389,7 @@
screen_loc = "7,7 to 10,8"
plane = HUD_PLANE
-/atom/movable/screen/storage/Initialize(mapload, new_master)
+/atom/movable/screen/storage/Initialize(mapload, datum/hud/hud_owner, new_master)
. = ..()
master = new_master
@@ -625,7 +630,7 @@
INITIALIZE_IMMEDIATE(/atom/movable/screen/splash)
/* SKYRAT EDIT REMOVAL
-/atom/movable/screen/splash/Initialize(mapload, client/C, visible, use_previous_title)
+/atom/movable/screen/splash/Initialize(mapload, datum/hud/hud_owner, client/C, visible, use_previous_title)
. = ..()
if(!istype(C))
return
diff --git a/code/_onclick/hud/screentip.dm b/code/_onclick/hud/screentip.dm
index 8f3b9d63014..107f4ce1be5 100644
--- a/code/_onclick/hud/screentip.dm
+++ b/code/_onclick/hud/screentip.dm
@@ -8,15 +8,14 @@
maptext = ""
layer = SCREENTIP_LAYER //Added to make screentips appear above action buttons (and other /atom/movable/screen objects)
-/atom/movable/screen/screentip/Initialize(mapload, _hud)
+/atom/movable/screen/screentip/Initialize(mapload, datum/hud/hud_owner)
. = ..()
- hud = _hud
update_view()
/atom/movable/screen/screentip/proc/update_view(datum/source)
SIGNAL_HANDLER
- if(!hud || !hud.mymob.client.view_size) //Might not have been initialized by now
+ if(!hud || !hud.mymob.canon_client.view_size) //Might not have been initialized by now
return
- maptext_width = view_to_pixels(hud.mymob.client.view_size.getView())[1]
+ maptext_width = view_to_pixels(hud.mymob.canon_client.view_size.getView())[1]
diff --git a/code/datums/components/admin_popup.dm b/code/datums/components/admin_popup.dm
index 1c821808a40..1d258653bae 100644
--- a/code/datums/components/admin_popup.dm
+++ b/code/datums/components/admin_popup.dm
@@ -83,7 +83,7 @@
/// The `world.time` when the last color update occurred.
var/last_update_time = 0
-/atom/movable/screen/admin_popup/Initialize(mapload, ...)
+/atom/movable/screen/admin_popup/Initialize(mapload, datum/hud/hud_owner, ...)
. = ..()
START_PROCESSING(SSobj, src)
diff --git a/code/datums/components/echolocation.dm b/code/datums/components/echolocation.dm
index 9d32744359d..63891a160fa 100644
--- a/code/datums/components/echolocation.dm
+++ b/code/datums/components/echolocation.dm
@@ -173,7 +173,7 @@
layer = ECHO_LAYER
show_when_dead = TRUE
-/atom/movable/screen/fullscreen/echo/Initialize(mapload)
+/atom/movable/screen/fullscreen/echo/Initialize(mapload, datum/hud/hud_owner)
. = ..()
particles = new /particles/echo()
diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm
index 50860f172f4..2364fbc7bb6 100644
--- a/code/datums/storage/storage.dm
+++ b/code/datums/storage/storage.dm
@@ -89,8 +89,8 @@
var/display_contents = TRUE
/datum/storage/New(atom/parent, max_slots, max_specific_storage, max_total_storage, numerical_stacking, allow_quick_gather, allow_quick_empty, collection_mode, attack_hand_interact)
- boxes = new(null, src)
- closer = new(null, src)
+ boxes = new(null, null, src)
+ closer = new(null, null, src)
src.parent = WEAKREF(parent)
src.real_location = src.parent
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 331b0a40561..230471feed0 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -125,7 +125,7 @@
color = EM_BLOCK_COLOR
appearance_flags = EMISSIVE_APPEARANCE_FLAGS
-/atom/movable/Initialize(mapload)
+/atom/movable/Initialize(mapload, ...)
. = ..()
#ifdef UNIT_TESTS
if(explosion_block && !HAS_TRAIT(src, TRAIT_BLOCKING_EXPLOSIVES))
diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm
index 426234ec7bb..c73036433fa 100644
--- a/code/modules/antagonists/changeling/changeling.dm
+++ b/code/modules/antagonists/changeling/changeling.dm
@@ -165,12 +165,10 @@
if(living_mob.hud_used)
var/datum/hud/hud_used = living_mob.hud_used
- lingchemdisplay = new /atom/movable/screen/ling/chems()
- lingchemdisplay.hud = hud_used
+ lingchemdisplay = new /atom/movable/screen/ling/chems(null, hud_used)
hud_used.infodisplay += lingchemdisplay
- lingstingdisplay = new /atom/movable/screen/ling/sting()
- lingstingdisplay.hud = hud_used
+ lingstingdisplay = new /atom/movable/screen/ling/sting(null, hud_used)
hud_used.infodisplay += lingstingdisplay
hud_used.show_hud(hud_used.hud_version)
@@ -204,12 +202,10 @@
var/datum/hud/ling_hud = owner.current.hud_used
- lingchemdisplay = new
- lingchemdisplay.hud = ling_hud
+ lingchemdisplay = new(null, ling_hud)
ling_hud.infodisplay += lingchemdisplay
- lingstingdisplay = new
- lingstingdisplay.hud = ling_hud
+ lingstingdisplay = new(null, ling_hud)
ling_hud.infodisplay += lingstingdisplay
ling_hud.show_hud(ling_hud.hud_version)
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index df1697f3a71..da1655f35ac 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -18,7 +18,7 @@
/datum/action/innate/cult/blood_magic/proc/Positioning()
for(var/datum/hud/hud as anything in viewers)
- var/our_view = hud.mymob?.client?.view || "15x15"
+ var/our_view = hud.mymob?.canon_client?.view || "15x15"
var/atom/movable/screen/movable/action_button/button = viewers[hud]
var/position = screen_loc_to_offset(button.screen_loc)
var/list/position_list = list()
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index 87c2ca709aa..6bfe17ebc2e 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -451,7 +451,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
/// Handles the background of the portal, ensures the effect well, works properly
var/atom/movable/screen/background/cam_background
-/atom/movable/screen/map_view/gateway_port/Initialize(mapload)
+/atom/movable/screen/map_view/gateway_port/Initialize(mapload, datum/hud/hud_owner)
. = ..()
cam_background = new
cam_background.del_on_map_removal = FALSE
diff --git a/code/modules/escape_menu/details.dm b/code/modules/escape_menu/details.dm
index b40454c25d0..49bd19ce97f 100644
--- a/code/modules/escape_menu/details.dm
+++ b/code/modules/escape_menu/details.dm
@@ -13,7 +13,7 @@ GLOBAL_DATUM(escape_menu_details, /atom/movable/screen/escape_menu/details)
maptext_height = 100
maptext_width = 200
-/atom/movable/screen/escape_menu/details/Initialize(mapload)
+/atom/movable/screen/escape_menu/details/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_text()
diff --git a/code/modules/escape_menu/home_page.dm b/code/modules/escape_menu/home_page.dm
index eb536cfe78e..548f5bcbf63 100644
--- a/code/modules/escape_menu/home_page.dm
+++ b/code/modules/escape_menu/home_page.dm
@@ -2,6 +2,7 @@
page_holder.give_screen_object(
new /atom/movable/screen/escape_menu/home_button(
null,
+ /* hud_owner = */ src,
src,
"Resume",
/* offset = */ 0,
@@ -12,6 +13,7 @@
page_holder.give_screen_object(
new /atom/movable/screen/escape_menu/home_button(
null,
+ /* hud_owner = */ null,
src,
"Settings",
/* offset = */ 1,
@@ -22,6 +24,7 @@
page_holder.give_screen_object(
new /atom/movable/screen/escape_menu/home_button/admin_help(
null,
+ /* hud_owner = */ src,
src,
"Admin Help",
/* offset = */ 2,
@@ -32,6 +35,7 @@
page_holder.give_screen_object(
new /atom/movable/screen/escape_menu/home_button/leave_body(
null,
+ /* hud_owner = */ src,
src,
"Leave Body",
/* offset = */ 3,
@@ -58,6 +62,7 @@
/atom/movable/screen/escape_menu/home_button/Initialize(
mapload,
+ datum/hud/hud_owner,
datum/escape_menu/escape_menu,
button_text,
offset,
@@ -70,6 +75,7 @@
home_button_text = new /atom/movable/screen/escape_menu/home_button_text(
src,
+ /* hud_owner = */ src,
button_text,
)
@@ -112,7 +118,7 @@
button_text
hovered = FALSE
-/atom/movable/screen/escape_menu/home_button_text/Initialize(mapload, button_text)
+/atom/movable/screen/escape_menu/home_button_text/Initialize(mapload, datum/hud/hud_owner, button_text)
. = ..()
src.button_text = button_text
diff --git a/code/modules/escape_menu/title.dm b/code/modules/escape_menu/title.dm
index 1a82967a6eb..4b669d4aa7b 100644
--- a/code/modules/escape_menu/title.dm
+++ b/code/modules/escape_menu/title.dm
@@ -13,7 +13,7 @@ GLOBAL_DATUM(escape_menu_title, /atom/movable/screen/escape_menu/title)
maptext_height = 100
maptext_width = 500
-/atom/movable/screen/escape_menu/title/Initialize(mapload)
+/atom/movable/screen/escape_menu/title/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_text()
diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm
index 19b7c68f833..b68edb67e26 100644
--- a/code/modules/mob/dead/dead.dm
+++ b/code/modules/mob/dead/dead.dm
@@ -74,7 +74,7 @@ INITIALIZE_IMMEDIATE(/mob/dead)
var/client/C = client
to_chat(C, span_notice("Sending you to [pick]."))
- new /atom/movable/screen/splash(null, C)
+ new /atom/movable/screen/splash(null, null, C)
notransform = TRUE
sleep(2.9 SECONDS) //let the animation play
diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm
index 984f1af30ba..e5bcd813b7e 100644
--- a/code/modules/mob/living/silicon/ai/multicam.dm
+++ b/code/modules/mob/living/silicon/ai/multicam.dm
@@ -6,7 +6,7 @@
var/highlighted = FALSE
var/mob/camera/ai_eye/pic_in_pic/aiEye
-/atom/movable/screen/movable/pic_in_pic/ai/Initialize(mapload)
+/atom/movable/screen/movable/pic_in_pic/ai/Initialize(mapload, datum/hud/hud_owner)
. = ..()
aiEye = new /mob/camera/ai_eye/pic_in_pic()
aiEye.screen = src
diff --git a/code/modules/pai/hud.dm b/code/modules/pai/hud.dm
index e94a95c1fcf..057a199cdad 100644
--- a/code/modules/pai/hud.dm
+++ b/code/modules/pai/hud.dm
@@ -180,62 +180,62 @@
var/mob/living/silicon/pai/mypai = mymob
// Software menu
- using = new /atom/movable/screen/pai/software
+ using = new /atom/movable/screen/pai/software(null, src)
using.screen_loc = ui_pai_software
static_inventory += using
// Holoform
- using = new /atom/movable/screen/pai/shell
+ using = new /atom/movable/screen/pai/shell(null, src)
using.screen_loc = ui_pai_shell
static_inventory += using
// Chassis Select Menu
- using = new /atom/movable/screen/pai/chassis
+ using = new /atom/movable/screen/pai/chassis(null, src)
using.screen_loc = ui_pai_chassis
static_inventory += using
// Rest
- using = new /atom/movable/screen/pai/rest
+ using = new /atom/movable/screen/pai/rest(null, src)
using.screen_loc = ui_pai_rest
static_inventory += using
// Integrated Light
- using = new /atom/movable/screen/pai/light
+ using = new /atom/movable/screen/pai/light(null, src)
using.screen_loc = ui_pai_light
static_inventory += using
// Newscaster
- using = new /atom/movable/screen/pai/newscaster
+ using = new /atom/movable/screen/pai/newscaster(null, src)
using.screen_loc = ui_pai_newscaster
static_inventory += using
// Language menu
- using = new /atom/movable/screen/language_menu
+ using = new /atom/movable/screen/language_menu(null, src)
using.screen_loc = ui_pai_language_menu
static_inventory += using
// Navigation
- using = new /atom/movable/screen/navigate
+ using = new /atom/movable/screen/navigate(null, src)
using.screen_loc = ui_pai_navigate_menu
static_inventory += using
// Host Monitor
- using = new /atom/movable/screen/pai/host_monitor()
+ using = new /atom/movable/screen/pai/host_monitor(null, src)
using.screen_loc = ui_pai_host_monitor
static_inventory += using
// Crew Manifest
- using = new /atom/movable/screen/pai/crew_manifest()
+ using = new /atom/movable/screen/pai/crew_manifest(null, src)
using.screen_loc = ui_pai_crew_manifest
static_inventory += using
// Laws
- using = new /atom/movable/screen/pai/state_laws()
+ using = new /atom/movable/screen/pai/state_laws(null, src)
using.screen_loc = ui_pai_state_laws
static_inventory += using
// Modular Interface
- using = new /atom/movable/screen/pai/modpc()
+ using = new /atom/movable/screen/pai/modpc(null, src)
using.screen_loc = ui_pai_mod_int
static_inventory += using
mypai.pda_button = using
@@ -243,22 +243,22 @@
tablet_button.pAI = mypai
// Internal GPS
- using = new /atom/movable/screen/pai/internal_gps()
+ using = new /atom/movable/screen/pai/internal_gps(null, src)
using.screen_loc = ui_pai_internal_gps
static_inventory += using
// Take image
- using = new /atom/movable/screen/pai/image_take()
+ using = new /atom/movable/screen/pai/image_take(null, src)
using.screen_loc = ui_pai_take_picture
static_inventory += using
// View images
- using = new /atom/movable/screen/pai/image_view()
+ using = new /atom/movable/screen/pai/image_view(null, src)
using.screen_loc = ui_pai_view_images
static_inventory += using
// Radio
- using = new /atom/movable/screen/pai/radio()
+ using = new /atom/movable/screen/pai/radio(null, src)
using.screen_loc = ui_pai_radio
static_inventory += using
diff --git a/code/modules/tutorials/_tutorial.dm b/code/modules/tutorials/_tutorial.dm
index 810960f9fa7..3baa9ad148b 100644
--- a/code/modules/tutorials/_tutorial.dm
+++ b/code/modules/tutorials/_tutorial.dm
@@ -100,7 +100,7 @@
PROTECTED_PROC(TRUE)
if (isnull(instruction_screen))
- instruction_screen = new(null, message, user.client)
+ instruction_screen = new(null, null, message, user.client)
user.client?.screen += instruction_screen
else
instruction_screen.change_message(message)
diff --git a/code/modules/tutorials/tutorial_instruction.dm b/code/modules/tutorials/tutorial_instruction.dm
index 7d8bda0fab7..05c95e2f754 100644
--- a/code/modules/tutorials/tutorial_instruction.dm
+++ b/code/modules/tutorials/tutorial_instruction.dm
@@ -10,7 +10,7 @@
var/client/client
var/atom/movable/screen/tutorial_instruction_text/instruction_text
-/atom/movable/screen/tutorial_instruction/Initialize(mapload, message, client/client)
+/atom/movable/screen/tutorial_instruction/Initialize(mapload, datum/hud/hud_owner, message, client/client)
. = ..()
transform = transform.Scale(36, 2.5)
@@ -18,7 +18,7 @@
src.client = client
animate(src, alpha = 245, time = 0.8 SECONDS, easing = SINE_EASING)
- instruction_text = new(src, message, client)
+ instruction_text = new(src, null, message, client)
vis_contents += instruction_text
/atom/movable/screen/tutorial_instruction/Destroy()
@@ -36,7 +36,7 @@
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
layer = TUTORIAL_INSTRUCTIONS_LAYER
-/atom/movable/screen/tutorial_instruction_text/Initialize(mapload, message, client/client)
+/atom/movable/screen/tutorial_instruction_text/Initialize(mapload, datum/hud/hud_owner, message, client/client)
. = ..()
var/view = client?.view_size.getView()
diff --git a/modular_skyrat/modules/goofsec/code/sol_fed.dm b/modular_skyrat/modules/goofsec/code/sol_fed.dm
index eb69fde9dd5..f1e3465f24f 100644
--- a/modular_skyrat/modules/goofsec/code/sol_fed.dm
+++ b/modular_skyrat/modules/goofsec/code/sol_fed.dm
@@ -256,9 +256,8 @@ GLOBAL_LIST_INIT(call911_do_and_do_not, list(
var/mob/living/M = mob_override || owner.current
if(M.hud_used)
var/datum/hud/H = M.hud_used
- var/atom/movable/screen/wanted/giving_wanted_lvl = new /atom/movable/screen/wanted()
+ var/atom/movable/screen/wanted/giving_wanted_lvl = new /atom/movable/screen/wanted(null, H)
H.wanted_lvl = giving_wanted_lvl
- giving_wanted_lvl.hud = H
H.infodisplay += giving_wanted_lvl
H.mymob.client.screen += giving_wanted_lvl