@@ -89,10 +90,10 @@
if(ishuman(usr))
if(!usr.put_in_hands(O))
O.forceMove(get_turf(src))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/guncase/handle_atom_del(atom/A)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/guncase/contents_explosion(severity, target)
for(var/thing in contents)
diff --git a/code/game/objects/structures/headpike.dm b/code/game/objects/structures/headpike.dm
index 258ef6579213..140f6995e1fb 100644
--- a/code/game/objects/structures/headpike.dm
+++ b/code/game/objects/structures/headpike.dm
@@ -20,7 +20,7 @@
victim = locate(/obj/item/bodypart/head) in parts_list
name = "[victim.name] on a spear"
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/headpike/glass/CheckParts(list/parts_list)
spear = locate(/obj/item/twohanded/spear) in parts_list
@@ -38,7 +38,8 @@
. = ..()
pixel_x = rand(-8, 8)
-/obj/structure/headpike/update_icon()
+/obj/structure/headpike/update_icon(updates=ALL)
+ . = ..()
..()
var/obj/item/bodypart/head/H = locate() in contents
var/mutable_appearance/MA = new()
diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm
index 57844bb77b00..4ea0b0d19792 100644
--- a/code/game/objects/structures/holosign.dm
+++ b/code/game/objects/structures/holosign.dm
@@ -215,14 +215,15 @@
/obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
playsound(loc, 'sound/weapons/egloves.ogg', 80, 1)
-/obj/structure/holobed/update_icon()
+/obj/structure/holobed/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][stasis ? "" : "_off"]"
/obj/structure/holobed/AltClick(mob/living/user)
if(user.a_intent == INTENT_HELP)
stasis = !stasis
handle_stasis(occupant)
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_warning("You [stasis ? "activate" : "deactivate"] the stasis field."))
/obj/structure/holobed/Exited(atom/movable/AM, atom/newloc)
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index 37bb885f2d59..b88b37271265 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -64,28 +64,28 @@
if(!myspray)
put_in_cart(I, user)
myspray=I
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, fail_msg)
else if(istype(I, /obj/item/paint/paint_remover))
if(!myremover)
put_in_cart(I, user)
myremover=I
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, fail_msg)
else if(istype(I, /obj/item/melee/flyswatter))
if(!myswatter)
put_in_cart(I, user)
myswatter=I
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, fail_msg)
else if(istype(I, /obj/item/flashlight))
if(!mylight)
put_in_cart(I, user)
mylight=I
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, fail_msg)
else if(istype(I, /obj/item/lightreplacer))
@@ -104,7 +104,7 @@
if(signs < max_signs)
put_in_cart(I, user)
signs++
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("[src] can't hold any more signs!"))
else if(mybag)
@@ -208,7 +208,7 @@
else
return
- update_icon()
+ update_appearance(UPDATE_ICON)
/*
check_menu: Checks if we are allowed to interact with a radial menu
@@ -223,7 +223,8 @@
return FALSE
return TRUE
-/obj/structure/janitorialcart/update_icon()
+/obj/structure/janitorialcart/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(mybag)
add_overlay("cart_garbage")
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index e894818d15bc..34a5273dde71 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -13,11 +13,11 @@
if (up)
src.up = up
up.down = src
- up.update_icon()
+ up.update_appearance(UPDATE_ICON)
if (down)
src.down = down
down.up = src
- down.update_icon()
+ down.update_appearance(UPDATE_ICON)
return INITIALIZE_HINT_LATELOAD
/obj/structure/ladder/Destroy(force)
@@ -36,26 +36,27 @@
if (L)
down = L
L.up = src // Don't waste effort looping the other way
- L.update_icon()
+ L.update_appearance(UPDATE_ICON)
if (!up)
L = locate() in SSmapping.get_turf_above(T)
if (L)
up = L
L.down = src // Don't waste effort looping the other way
- L.update_icon()
+ L.update_appearance(UPDATE_ICON)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/ladder/proc/disconnect()
if(up && up.down == src)
up.down = null
- up.update_icon()
+ up.update_appearance(UPDATE_ICON)
if(down && down.up == src)
down.up = null
- down.update_icon()
+ down.update_appearance(UPDATE_ICON)
up = down = null
-/obj/structure/ladder/update_icon()
+/obj/structure/ladder/update_icon(updates=ALL)
+ . = ..()
if(up && down)
icon_state = "ladder11"
@@ -160,7 +161,7 @@
/obj/structure/ladder/unbreakable/LateInitialize()
// Override the parent to find ladders based on being height-linked
if (!id || (up && down))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
for (var/O in GLOB.ladders)
@@ -170,17 +171,17 @@
if (!down && L.height == height - 1)
down = L
L.up = src
- L.update_icon()
+ L.update_appearance(UPDATE_ICON)
if (up)
break // break if both our connections are filled
else if (!up && L.height == height + 1)
up = L
L.down = src
- L.update_icon()
+ L.update_appearance(UPDATE_ICON)
if (down)
break // break if both our connections are filled
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/ladder/unbreakable/binary
name = "mysterious ladder"
diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm
index 3b91e7e76d21..29da139fcb06 100644
--- a/code/game/objects/structures/life_candle.dm
+++ b/code/game/objects/structures/life_candle.dm
@@ -37,7 +37,7 @@
user.visible_message(span_notice("[user] touches [src]. It seems to respond to [user.p_their()] presence!"), span_warning("You create a connection between you and [src]."))
linked_minds |= user.mind
- update_icon()
+ update_appearance(UPDATE_ICON)
float(linked_minds.len)
if(linked_minds.len)
START_PROCESSING(SSobj, src)
@@ -46,7 +46,8 @@
STOP_PROCESSING(SSobj, src)
set_light(0)
-/obj/structure/life_candle/update_icon()
+/obj/structure/life_candle/update_icon(updates=ALL)
+ . = ..()
if(linked_minds.len)
icon_state = icon_state_active
else
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index 3dbc37c7fb3b..5032b7177460 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -95,7 +95,7 @@
door_opened = TRUE
layer = OPEN_DOOR_LAYER
air_update_turf(1)
- update_icon()
+ update_appearance(UPDATE_ICON)
isSwitchingStates = FALSE
if(close_delay != -1)
@@ -116,10 +116,11 @@
door_opened = FALSE
layer = initial(layer)
air_update_turf(1)
- update_icon()
+ update_appearance(UPDATE_ICON)
isSwitchingStates = FALSE
-/obj/structure/mineral_door/update_icon()
+/obj/structure/mineral_door/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][door_opened ? "open":""]"
/obj/structure/mineral_door/attackby(obj/item/I, mob/user)
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
index 300cc049d6c4..fdfe4ab452d1 100644
--- a/code/game/objects/structures/mop_bucket.dm
+++ b/code/game/objects/structures/mop_bucket.dm
@@ -19,27 +19,28 @@
if(!user.transferItemToLoc(M, src))
return
ourmop = M
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You put [M] into [src]."))
else
reagents.trans_to(M, 5, transfered_by = user)
to_chat(user, span_notice("You wet [M] in [src]."))
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/mopbucket/attack_hand(mob/user)
if(ourmop)
user.put_in_hands(ourmop)
to_chat(user, span_notice("You take [ourmop] from [src]."))
ourmop = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return
return ..()
-/obj/structure/mopbucket/update_icon()
+/obj/structure/mopbucket/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents.total_volume > 0)
add_overlay("mopbucket_water")
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index f02d14fe7fe4..c07dbbce1426 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -43,9 +43,10 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
/obj/structure/bodycontainer/on_log(login)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/bodycontainer/update_icon()
+/obj/structure/bodycontainer/update_icon(updates=ALL)
+ . = ..()
return
/obj/structure/bodycontainer/relaymove(mob/user)
@@ -130,7 +131,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
for(var/atom/movable/AM in src)
AM.forceMove(T)
recursive_organ_check(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bodycontainer/proc/close()
playsound(src, 'sound/effects/roll.ogg', 5, 1)
@@ -140,7 +141,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
if(ismob(AM) && !isliving(AM))
continue
AM.forceMove(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bodycontainer/get_remote_view_fullscreens(mob/user)
if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS)))
@@ -173,7 +174,8 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
beeper = !beeper
to_chat(user, span_notice("You turn the speaker function [beeper ? "on" : "off"]."))
-/obj/structure/bodycontainer/morgue/update_icon()
+/obj/structure/bodycontainer/morgue/update_icon(updates=ALL)
+ . = ..()
if (!connected || connected.loc != src) // Open or tray is gone.
icon_state = "morgue0"
else
@@ -232,7 +234,8 @@ GLOBAL_LIST_EMPTY(crematoriums)
connected = new /obj/structure/tray/c_tray(src)
connected.connected = src
-/obj/structure/bodycontainer/crematorium/update_icon()
+/obj/structure/bodycontainer/crematorium/update_icon(updates=ALL)
+ . = ..()
if(!connected || connected.loc != src)
icon_state = "crema0"
else
@@ -260,7 +263,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
else
audible_message(span_italics("You hear a roar as the crematorium fires up."))
locked = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
cremate_timer = addtimer(CALLBACK(src, PROC_REF(finish_cremate), user), (breakout_time + cremate_time ), TIMER_STOPPABLE)
@@ -271,7 +274,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people
deltimer(cremate_timer)
cremate_timer = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bodycontainer/crematorium/proc/finish_cremate(mob/user)
var/list/conts = get_all_contents() - src - connected
@@ -327,7 +330,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
if(!QDELETED(src))
locked = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people
/obj/structure/bodycontainer/crematorium/creamatorium
@@ -362,7 +365,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
/obj/structure/tray/Destroy()
if(connected)
connected.connected = null
- connected.update_icon()
+ connected.update_appearance(UPDATE_ICON)
connected = null
return ..()
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index 8913505ecbf4..8d305e0addac 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -56,7 +56,8 @@ FLOOR SAFES
space += I.w_class
I.forceMove(src)
-/obj/structure/safe/update_icon()
+/obj/structure/safe/update_icon(updates=ALL)
+ . = ..()
if(open)
icon_state = "[initial(icon_state)]-open"
else
@@ -147,7 +148,7 @@ FLOOR SAFES
return
to_chat(user, span_notice("You [open ? "close" : "open"] [src]."))
open = !open
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
if("turnright")
if(open)
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 5f691e267775..8e63a2859bb8 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -29,7 +29,7 @@
/obj/machinery/shower/interact(mob/M)
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
handle_mist()
add_fingerprint(M)
if(on)
@@ -69,7 +69,8 @@
. = ..()
. += span_notice("You can
alt-click to change the temperature.")
-/obj/machinery/shower/update_icon()
+/obj/machinery/shower/update_icon(updates=ALL)
+ . = ..()
. = ..()
cut_overlays()
if(on)
diff --git a/code/game/objects/structures/signs/signs_interactive.dm b/code/game/objects/structures/signs/signs_interactive.dm
index 589f1e251033..5934bc9b63d4 100644
--- a/code/game/objects/structures/signs/signs_interactive.dm
+++ b/code/game/objects/structures/signs/signs_interactive.dm
@@ -18,9 +18,10 @@ GLOBAL_LIST_EMPTY(map_delamination_counters)
/obj/structure/sign/delamination_counter/proc/update_count(new_count)
since_last = min(new_count, 99)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/sign/delamination_counter/update_icon()
+/obj/structure/sign/delamination_counter/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/ones = since_last % 10
diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm
index 40e2517985d8..bc91cd528b12 100644
--- a/code/game/objects/structures/stairs.dm
+++ b/code/game/objects/structures/stairs.dm
@@ -34,12 +34,12 @@
update_surrounding()
/obj/structure/stairs/proc/update_surrounding()
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/i in GLOB.cardinals)
var/turf/T = get_step(get_turf(src), i)
var/obj/structure/stairs/S = locate() in T
if(S)
- S.update_icon()
+ S.update_appearance(UPDATE_ICON)
/obj/structure/stairs/Uncross(atom/movable/AM, atom/newloc)
if(!newloc || !AM)
@@ -54,7 +54,8 @@
return FALSE
return ..()
-/obj/structure/stairs/update_icon()
+/obj/structure/stairs/update_icon(updates=ALL)
+ . = ..()
if(isTerminator())
icon_state = "stairs_t"
else
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index e8e0eee656b0..69a258c05d18 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -76,7 +76,8 @@
/obj/structure/table/proc/deconstruction_hints(mob/user)
return span_notice("The top is
screwed on, but the main
bolts are also visible.")
-/obj/structure/table/update_icon()
+/obj/structure/table/update_icon(updates=ALL)
+ . = ..()
if(smooth)
queue_smooth(src)
queue_smooth_neighbors(src)
diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm
index d2b91fa512e7..9ccfc3f65880 100644
--- a/code/game/objects/structures/tank_dispenser.dm
+++ b/code/game/objects/structures/tank_dispenser.dm
@@ -23,9 +23,10 @@
new /obj/item/tank/internals/oxygen(src)
for(var/i in 1 to plasmatanks)
new /obj/item/tank/internals/plasma(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/tank_dispenser/update_icon()
+/obj/structure/tank_dispenser/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
switch(oxygentanks)
if(1 to 3)
@@ -69,7 +70,7 @@
if(!user.transferItemToLoc(I, src))
return
to_chat(user, span_notice("You put [I] in [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/tank_dispenser/ui_state(mob/user)
return GLOB.physical_state
@@ -109,7 +110,7 @@
usr.put_in_hands(tank)
oxygentanks--
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE)
diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm
index 55a4f827e09a..96b932d81924 100644
--- a/code/game/objects/structures/transit_tubes/station.dm
+++ b/code/game/objects/structures/transit_tubes/station.dm
@@ -38,7 +38,7 @@
for(var/obj/structure/transit_tube_pod/pod in loc)
if(!pod.moving && !pod.cargo)
AM.forceMove(pod)
- pod.update_icon()
+ pod.update_appearance(UPDATE_ICON)
return
@@ -152,7 +152,7 @@
continue
S.forceMove(pod)
playsound(src, 'sound/mecha/mechturn.ogg', 25 ,1)
- pod.update_icon()
+ pod.update_appearance(UPDATE_ICON)
sleep(SleepTime)
if(open_status == STATION_TUBE_CLOSED && pod && pod.loc == loc)
pod.follow_tube()
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm
index 363e07b906eb..1e6b5a6575f5 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm
@@ -4,7 +4,8 @@
cargo = TRUE
name = "transit tube cargo pod"
-/obj/structure/transit_tube_pod/cargo/update_icon()
+/obj/structure/transit_tube_pod/cargo/update_icon(updates=ALL)
+ . = ..()
if(contents.len)
icon_state = "pod_cargo_occupied"
else
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
index 99e985c417c3..67c13c99e0f6 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
@@ -19,7 +19,8 @@
empty_pod()
return ..()
-/obj/structure/transit_tube_pod/update_icon()
+/obj/structure/transit_tube_pod/update_icon(updates=ALL)
+ . = ..()
if(contents.len)
icon_state = "pod_occupied"
else
@@ -88,7 +89,7 @@
location = get_turf(src)
for(var/atom/movable/M in contents)
M.forceMove(location)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/transit_tube_pod/Process_Spacemove()
if(moving) //No drifting while moving in the tubes
@@ -176,7 +177,7 @@
if(direction == turn(station.boarding_dir,180))
if(station.open_status == STATION_TUBE_OPEN)
mob.forceMove(loc)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
station.open_animation()
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index d1c3f214b08d..e55d2ebd8db1 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -14,7 +14,7 @@
/obj/structure/toilet/Initialize(mapload)
. = ..()
open = round(rand(0, 1))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/toilet/attack_hand(mob/living/user)
@@ -67,10 +67,11 @@
w_items -= I.w_class
else
open = !open
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/toilet/update_icon()
+/obj/structure/toilet/update_icon(updates=ALL)
+ . = ..()
icon_state = "toilet[open][cistern]"
@@ -81,7 +82,7 @@
if(I.use_tool(src, user, 30))
user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", span_notice("You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!"), span_italics("You hear grinding porcelain."))
cistern = !cistern
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(cistern)
if(user.a_intent != INTENT_HARM)
@@ -392,9 +393,10 @@
/obj/structure/curtain/proc/toggle()
open = !open
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/curtain/update_icon()
+/obj/structure/curtain/update_icon(updates=ALL)
+ . = ..()
if(!open)
icon_state = "closed"
layer = WALL_OBJ_LAYER
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index f96d2a764bc1..1b65c2095d05 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -47,7 +47,8 @@
setDir(ini_dir)
move_update_air(T)
-/obj/structure/windoor_assembly/update_icon()
+/obj/structure/windoor_assembly/update_icon(updates=ALL)
+ . = ..()
icon_state = "[facing]_[secure ? "secure_" : ""]windoor_assembly[state]"
/obj/structure/windoor_assembly/CanAllowThrough(atom/movable/mover, turf/target)
@@ -309,7 +310,7 @@
return ..()
//Update to reflect changes(if applicable)
- update_icon()
+ update_appearance(UPDATE_ICON)
@@ -339,7 +340,7 @@
/obj/structure/windoor_assembly/proc/after_rotation(mob/user)
ini_dir = dir
- update_icon()
+ update_appearance(UPDATE_ICON)
//Flips the windoor assembly, determines whather the door opens to the left or the right
/obj/structure/windoor_assembly/verb/flip()
@@ -361,5 +362,5 @@
facing = "l"
to_chat(usr, span_notice("The windoor will now slide to the left."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index a1efbe1afd29..5c306ddcd2d7 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -326,12 +326,13 @@
//This proc is used to update the icons of nearby windows.
/obj/structure/window/proc/update_nearby_icons()
- update_icon()
+ update_appearance(UPDATE_ICON)
if(smooth)
queue_smooth_neighbors(src)
//merges adjacent full-tile windows into one
-/obj/structure/window/update_icon()
+/obj/structure/window/update_icon(updates=ALL)
+ . = ..()
if(!QDELETED(src))
if(!fulltile)
return
@@ -807,7 +808,7 @@
/obj/structure/window/reinforced/clockwork/ratvar_act()
if(GLOB.ratvar_awakens)
obj_integrity = max_integrity
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/window/reinforced/clockwork/narsie_act()
take_damage(rand(25, 75), BRUTE)
@@ -873,7 +874,7 @@
/obj/structure/window/paperframe/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/window/paperframe/examine(mob/user)
. = ..()
@@ -899,9 +900,10 @@
playsound(src, hitsound, 50, 1)
if(!QDELETED(src))
user.visible_message(span_danger("[user] tears a hole in [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/window/paperframe/update_icon()
+/obj/structure/window/paperframe/update_icon(updates=ALL)
+ . = ..()
if(obj_integrity < max_integrity)
cut_overlay(paper)
add_overlay(torn)
@@ -926,10 +928,10 @@
qdel(W)
user.visible_message("[user] patches some of the holes in \the [src].")
if(obj_integrity == max_integrity)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
@@ -950,9 +952,10 @@
/obj/structure/cloth_curtain/proc/toggle()
open = !open
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/cloth_curtain/update_icon()
+/obj/structure/cloth_curtain/update_icon(updates=ALL)
+ . = ..()
if(!open)
icon_state = "curtain_closed"
layer = WALL_OBJ_LAYER
diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm
index 8a361f3306a9..c7e25756775c 100644
--- a/code/game/turfs/open.dm
+++ b/code/game/turfs/open.dm
@@ -317,7 +317,7 @@
/turf/open/floor/grass/fairy/Initialize(mapload)
. = ..()
icon_state = "fairygrass[rand(1,4)]"
- update_icon()
+ update_appearance(UPDATE_ICON)
/turf/open/indestructible/boss //you put stone tiles on this and use it as a base
name = "necropolis floor"
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 64fe6c622ee7..d2c354833aa7 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -115,7 +115,8 @@
/turf/open/floor/blob_act(obj/structure/blob/B)
return
-/turf/open/floor/update_icon()
+/turf/open/floor/update_icon(updates=ALL)
+ . = ..()
update_visuals()
return 1
@@ -164,7 +165,7 @@
W.icon_regular_floor = old_icon
W.icon_state_regular_floor = old_icon_state
W.setDir(old_dir)
- W.update_icon()
+ W.update_appearance(UPDATE_ICON)
return W
/turf/open/floor/attackby(obj/item/C, mob/user, params)
@@ -285,7 +286,7 @@
new_window.req_one_access = the_rcd.airlock_electronics.one_access
new_window.unres_sides = the_rcd.airlock_electronics.unres_sides
new_window.autoclose = TRUE
- new_window.update_icon()
+ new_window.update_appearance(UPDATE_ICON)
return TRUE
to_chat(user, span_notice("You build an airlock."))
var/obj/machinery/door/airlock/new_airlock = new the_rcd.airlock_type(src)
@@ -304,7 +305,7 @@
if(new_airlock.electronics.unres_sides)
new_airlock.unres_sides = new_airlock.electronics.unres_sides
new_airlock.autoclose = TRUE
- new_airlock.update_icon()
+ new_airlock.update_appearance(UPDATE_ICON)
return TRUE
if(RCD_DECONSTRUCT)
diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm
index 3ae163c2e448..64cfc6ad6a27 100644
--- a/code/game/turfs/simulated/floor/fancy_floor.dm
+++ b/code/game/turfs/simulated/floor/fancy_floor.dm
@@ -197,7 +197,7 @@
. = ..()
if(src.type == /turf/open/floor/grass) //don't want grass subtypes getting the icon state,
icon_state = "grass[rand(1,4)]"
- update_icon()
+ update_appearance(UPDATE_ICON)
/turf/open/floor/grass/attackby(obj/item/C, mob/user, params)
if((C.tool_behaviour == TOOL_SHOVEL) && params)
@@ -293,9 +293,10 @@
/turf/open/floor/carpet/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/turf/open/floor/carpet/update_icon()
+/turf/open/floor/carpet/update_icon(updates=ALL)
+ . = ..()
if(!..())
return 0
if(!broken && !burnt)
@@ -402,11 +403,11 @@
/turf/open/floor/carpet/break_tile()
broken = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/turf/open/floor/carpet/burn_tile()
burnt = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/turf/open/floor/carpet/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
return FALSE
diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm
index 75b94e76ea9c..0b33a56f5970 100644
--- a/code/game/turfs/simulated/floor/light_floor.dm
+++ b/code/game/turfs/simulated/floor/light_floor.dm
@@ -34,7 +34,7 @@
/turf/open/floor/light/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
if(!length(lighttile_designs))
populate_lighttile_designs()
@@ -43,7 +43,8 @@
light_range = 0
update_light()
-/turf/open/floor/light/update_icon()
+/turf/open/floor/light/update_icon(updates=ALL)
+ . = ..()
..()
if(on)
switch(state)
@@ -79,7 +80,7 @@
if(!choice)
return FALSE
currentcolor = choice
- update_icon()
+ update_appearance(UPDATE_ICON)
/turf/open/floor/light/attack_ai(mob/user)
if(!can_modify_colour)
@@ -88,7 +89,7 @@
if(!choice)
return FALSE
currentcolor = choice
- update_icon()
+ update_appearance(UPDATE_ICON)
return attack_hand(user)
/turf/open/floor/light/attackby(obj/item/C, mob/user, params)
@@ -98,7 +99,7 @@
if(state && user.temporarilyRemoveItemFromInventory(C))
qdel(C)
state = 0 //fixing it by bashing it with a light bulb, fun eh?
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You replace the light bulb."))
else
to_chat(user, span_notice("The light bulb seems fine, no need to replace it."))
diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm
index d575fdfb7347..eeef805e9ea7 100644
--- a/code/game/turfs/simulated/floor/mineral_floor.dm
+++ b/code/game/turfs/simulated/floor/mineral_floor.dm
@@ -23,7 +23,8 @@
icons = typelist("icons", icons)
-/turf/open/floor/mineral/update_icon()
+/turf/open/floor/mineral/update_icon(updates=ALL)
+ . = ..()
if(!..())
return 0
if(!broken && !burnt)
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index 69254b140a13..b3b4ee14f990 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -20,14 +20,15 @@
/turf/open/floor/circuit/Initialize(mapload)
SSmapping.nuke_tiles += src
- update_icon()
+ update_appearance(UPDATE_ICON)
. = ..()
/turf/open/floor/circuit/Destroy()
SSmapping.nuke_tiles -= src
return ..()
-/turf/open/floor/circuit/update_icon()
+/turf/open/floor/circuit/update_icon(updates=ALL)
+ . = ..()
if(on)
if(LAZYLEN(SSmapping.nuke_threats))
icon_state = "rcircuitanim"
diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm
index e3150da9027d..d47d9e49b5d2 100644
--- a/code/game/turfs/simulated/floor/plasteel_floor.dm
+++ b/code/game/turfs/simulated/floor/plasteel_floor.dm
@@ -13,7 +13,8 @@
new /obj/effect/glowing_rune(src)
ChangeTurf(/turf/open/floor/plating/rust)
-/turf/open/floor/plasteel/update_icon()
+/turf/open/floor/plasteel/update_icon(updates=ALL)
+ . = ..()
if(!..())
return 0
if(!broken && !burnt)
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index a4907cbc81de..b639e4b35807 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -44,7 +44,8 @@
else
icon_plating = initial(icon_state)
-/turf/open/floor/plating/update_icon()
+/turf/open/floor/plating/update_icon(updates=ALL)
+ . = ..()
if(!..())
return
if(!broken && !burnt)
diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm
index e092293e435a..45c84de560fc 100644
--- a/code/game/turfs/simulated/minerals.dm
+++ b/code/game/turfs/simulated/minerals.dm
@@ -93,9 +93,10 @@
if(hardness <= 0)
gets_drilled(user,triggered_by_explosion)
else
- update_icon()
+ update_appearance(UPDATE_ICON)
-/turf/closed/mineral/update_icon()
+/turf/closed/mineral/update_icon(updates=ALL)
+ . = ..()
if(hardness != initial(hardness))
var/mutable_appearance/cracks = mutable_appearance('icons/turf/mining.dmi',"rock_cracks",ON_EDGED_TURF_LAYER)
var/matrix/M = new
diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm
index 5b87b9094dfd..a410cde0af7e 100644
--- a/code/game/turfs/simulated/wall/reinf_walls.dm
+++ b/code/game/turfs/simulated/wall/reinf_walls.dm
@@ -55,7 +55,7 @@
if(W.tool_behaviour == TOOL_WIRECUTTER)
W.play_tool_sound(src, 100)
d_state = SUPPORT_LINES
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You cut the outer grille."))
return 1
@@ -66,14 +66,14 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_LINES)
return 1
d_state = COVER
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You unsecure the support lines."))
return 1
else if(W.tool_behaviour == TOOL_WIRECUTTER)
W.play_tool_sound(src, 100)
d_state = INTACT
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You repair the outer grille."))
return 1
@@ -86,7 +86,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER)
return 1
d_state = CUT_COVER
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You press firmly on the cover, dislodging it."))
return 1
@@ -96,7 +96,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER)
return 1
d_state = SUPPORT_LINES
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("The support lines have been secured."))
return 1
@@ -107,7 +107,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER)
return 1
d_state = ANCHOR_BOLTS
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You pry off the cover."))
return 1
@@ -119,7 +119,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER)
return TRUE
d_state = COVER
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("The metal cover has been welded securely to the frame."))
return 1
@@ -130,7 +130,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS)
return 1
d_state = SUPPORT_RODS
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You remove the bolts anchoring the support rods."))
return 1
@@ -140,7 +140,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS)
return 1
d_state = CUT_COVER
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("The metal cover has been pried back into place."))
return 1
@@ -153,7 +153,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS)
return 1
d_state = SHEATH
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You slice through the support rods."))
return 1
@@ -164,7 +164,7 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS)
return 1
d_state = ANCHOR_BOLTS
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You tighten the bolts anchoring the support rods."))
return 1
@@ -186,12 +186,13 @@
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SHEATH)
return TRUE
d_state = SUPPORT_RODS
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You weld the support rods back together."))
return 1
return 0
-/turf/closed/wall/r_wall/update_icon()
+/turf/closed/wall/r_wall/update_icon(updates=ALL)
+ . = ..()
if(d_state != INTACT)
smooth = SMOOTH_FALSE
clear_smooth_overlays()
diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm
index fbd722e33640..7b5274c70453 100644
--- a/code/game/turfs/space/transit.dm
+++ b/code/game/turfs/space/transit.dm
@@ -8,7 +8,7 @@
/turf/open/space/transit/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
RegisterSignal(src, COMSIG_TURF_RESERVATION_RELEASED, PROC_REF(launch_contents))
/turf/open/space/transit/Destroy()
@@ -67,7 +67,8 @@
/turf/open/space/transit/east
dir = EAST
-/turf/open/space/transit/update_icon()
+/turf/open/space/transit/update_icon(updates=ALL)
+ . = ..()
icon_state = "speedspace_ns_[get_transit_state(src)]"
transform = turn(matrix(), get_transit_angle(src))
diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm
index edaf2ed31fe9..ccfdb6b73a3f 100644
--- a/code/modules/NTNet/relays.dm
+++ b/code/modules/NTNet/relays.dm
@@ -32,7 +32,8 @@
return FALSE
return TRUE
-/obj/machinery/ntnet_relay/update_icon()
+/obj/machinery/ntnet_relay/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(is_operational())
var/mutable_appearance/on_overlay = mutable_appearance(icon, "[initial(icon_state)]_on")
@@ -49,7 +50,7 @@
else
use_power = IDLE_POWER_USE
- update_icon()
+ update_appearance(UPDATE_ICON)
if(dos_overload > 0)
dos_overload = max(0, dos_overload - dos_dissipate * delta_time)
@@ -57,12 +58,12 @@
// If DoS traffic exceeded capacity, crash.
if((dos_overload > dos_capacity) && !dos_failure)
dos_failure = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
SSnetworks.station_network.add_log("Quantum relay switched from normal operation mode to overload recovery mode.")
// If the DoS buffer reaches 0 again, restart.
if((dos_overload == 0) && dos_failure)
dos_failure = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
SSnetworks.station_network.add_log("Quantum relay switched from overload recovery mode to normal operation mode.")
..()
@@ -89,13 +90,13 @@
if("restart")
dos_overload = 0
dos_failure = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
SSnetworks.station_network.add_log("Quantum relay manually restarted from overload recovery mode to normal operation mode.")
return TRUE
if("toggle")
enabled = !enabled
SSnetworks.station_network.add_log("Quantum relay manually [enabled ? "enabled" : "disabled"].")
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/ntnet_relay/Initialize(mapload)
diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm
index 154cbd61fd30..e2f9eab725c0 100644
--- a/code/modules/VR/vr_sleeper.dm
+++ b/code/modules/VR/vr_sleeper.dm
@@ -22,7 +22,7 @@
sparks = new /datum/effect_system/spark_spread()
sparks.set_up(2,0)
sparks.attach(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/vr_sleeper/attackby(obj/item/I, mob/user, params)
if(!state_open && !occupant)
@@ -61,7 +61,8 @@
sparks.start()
addtimer(CALLBACK(src, PROC_REF(emagNotify)), 150)
-/obj/machinery/vr_sleeper/update_icon()
+/obj/machinery/vr_sleeper/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][state_open ? "-open" : ""]"
/obj/machinery/vr_sleeper/open_machine()
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 1e05e75f80c2..d02738d80ecd 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -457,7 +457,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
var/obj/item/storage/wallet/W = worn
W.front_id = id
id.forceMove(W)
- W.update_icon()
+ W.update_appearance(UPDATE_ICON)
else
H.equip_to_slot(id,ITEM_SLOT_ID)
else if(isanimal(M))
@@ -848,7 +848,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
F.anchored = TRUE
F.warming_up = 3
F.start_fields()
- F.update_icon()
+ F.update_appearance(UPDATE_ICON)
spawn(30)
for(var/obj/machinery/the_singularitygen/G in GLOB.machines)
diff --git a/code/modules/admin/verbs/manipulate_organs.dm b/code/modules/admin/verbs/manipulate_organs.dm
index 92eacb7af34b..5d2c9bf6563d 100644
--- a/code/modules/admin/verbs/manipulate_organs.dm
+++ b/code/modules/admin/verbs/manipulate_organs.dm
@@ -71,4 +71,4 @@
var/obj/item/implantcase/case = new(get_turf(C))
case.imp = I
I.forceMove(case)
- case.update_icon()
+ case.update_appearance(UPDATE_ICON)
diff --git a/code/modules/antagonists/_common/antag_hud.dm b/code/modules/antagonists/_common/antag_hud.dm
index 9fcca9388dbf..5592fadc16e8 100644
--- a/code/modules/antagonists/_common/antag_hud.dm
+++ b/code/modules/antagonists/_common/antag_hud.dm
@@ -77,7 +77,7 @@ GLOBAL_LIST_EMPTY_TYPED(has_antagonist_huds, /datum/atom_hud/alternate_appearanc
return final_antag_hud_images
-/datum/atom_hud/alternate_appearance/basic/antagonist_hud/proc/update_icon()
+/datum/atom_hud/alternate_appearance/basic/antagonist_hud/update_icon()
if (antag_hud_images.len == 0)
image.icon = icon('icons/blanks/32x32.dmi', "nothing")
else
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 567636e03180..dbcdbd8075be 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -405,7 +405,8 @@
Congratulations! You are now trained for invasive xenobiology research!"}
-/obj/item/paper/guides/antag/abductor/update_icon()
+/obj/item/paper/guides/antag/abductor/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/paper/guides/antag/abductor/AltClick()
@@ -442,9 +443,10 @@ Congratulations! You are now trained for invasive xenobiology research!"}
txt = "probing"
to_chat(usr, span_notice("You switch the baton to [txt] mode."))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/abductor/baton/update_icon()
+/obj/item/abductor/baton/update_icon(updates=ALL)
+ . = ..()
switch(mode)
if(BATON_STUN)
icon_state = "wonderprodStun"
diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm
index 74fd4e93cdff..a0a6dcbfc614 100644
--- a/code/modules/antagonists/abductor/equipment/gland.dm
+++ b/code/modules/antagonists/abductor/equipment/gland.dm
@@ -50,7 +50,8 @@
else
holder.icon_state = "hudgland_spent"
-/obj/item/organ/heart/gland/update_icon()
+/obj/item/organ/heart/gland/update_icon(updates=ALL)
+ . = ..()
return // stop it from switching to the non existent heart_on sprite
/obj/item/organ/heart/gland/proc/mind_control(command, mob/living/user)
diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm
index af79d3d5e118..4dc494e2c95c 100644
--- a/code/modules/antagonists/abductor/machinery/experiment.dm
+++ b/code/modules/antagonists/abductor/machinery/experiment.dm
@@ -183,7 +183,8 @@
SSjob.SendToLateJoin(H, FALSE)
return
-/obj/machinery/abductor/experiment/update_icon()
+/obj/machinery/abductor/experiment/update_icon(updates=ALL)
+ . = ..()
if(state_open)
icon_state = "experiment-open"
else
diff --git a/code/modules/antagonists/blob/blobstrains/_blobstrain.dm b/code/modules/antagonists/blob/blobstrains/_blobstrain.dm
index fb81ebac4274..3698fdeafc78 100644
--- a/code/modules/antagonists/blob/blobstrains/_blobstrain.dm
+++ b/code/modules/antagonists/blob/blobstrains/_blobstrain.dm
@@ -31,7 +31,7 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/
point_rate = point_rate * overmind.basemodifier
for(var/BL in GLOB.blobs)
var/obj/structure/blob/B = BL
- B.update_icon()
+ B.update_appearance(UPDATE_ICON)
for(var/BLO in overmind.blob_mobs)
var/mob/living/simple_animal/hostile/blob/BM = BLO
BM.update_icons() //If it's getting a new strain, tell it what it does!
diff --git a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
index 73ffff293882..3a089efc6474 100644
--- a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
+++ b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
@@ -17,7 +17,7 @@
var/obj/structure/blob/newB = B.expand(null, null, 0)
if(newB)
newB.obj_integrity = B.obj_integrity - damage
- newB.update_icon()
+ newB.update_appearance(UPDATE_ICON)
return ..()
diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm
index eb3d55cdad08..2d00eb9ab763 100644
--- a/code/modules/antagonists/blob/overmind.dm
+++ b/code/modules/antagonists/blob/overmind.dm
@@ -59,7 +59,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
set_strain(BS)
color = blobstrain.complementary_color
if(blob_core)
- blob_core.update_icon()
+ blob_core.update_appearance(UPDATE_ICON)
SSshuttle.registerHostileEnvironment(src)
announcement_time = world.time + 6000
. = ..()
@@ -180,7 +180,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
var/obj/structure/blob/B = BL
if(B && B.overmind == src)
B.overmind = null
- B.update_icon() //reset anything that was ours
+ B.update_appearance(UPDATE_ICON) //reset anything that was ours
for(var/BLO in blob_mobs)
var/mob/living/simple_animal/hostile/blob/BM = BLO
if(BM)
diff --git a/code/modules/antagonists/blob/powers.dm b/code/modules/antagonists/blob/powers.dm
index 2aa7516c5faf..214cb9dcd6c7 100644
--- a/code/modules/antagonists/blob/powers.dm
+++ b/code/modules/antagonists/blob/powers.dm
@@ -51,7 +51,7 @@
core.overmind = src
blobs_legit += src
blob_core = core
- core.update_icon()
+ core.update_appearance(UPDATE_ICON)
update_health_hud()
placed = 1
return 1
@@ -173,7 +173,7 @@
if(LAZYLEN(candidates)) //if we got at least one candidate, they're a blobbernaut now.
B.max_integrity = initial(B.max_integrity) * 0.25 //factories that produced a blobbernaut have much lower health
B.obj_integrity = min(B.obj_integrity, B.max_integrity)
- B.update_icon()
+ B.update_appearance(UPDATE_ICON)
B.visible_message(span_warning("
The blobbernaut [pick("rips", "tears", "shreds")] its way out of the factory blob!"))
playsound(B.loc, 'sound/effects/splat.ogg', 50, 1)
var/mob/living/simple_animal/hostile/blob/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blob/blobbernaut(get_turf(B))
diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm
index 5482732d13b7..edf7fe0db559 100644
--- a/code/modules/antagonists/blob/structures/_blob.dm
+++ b/code/modules/antagonists/blob/structures/_blob.dm
@@ -29,7 +29,7 @@
overmind.blobs_legit += src
GLOB.blobs += src //Keep track of the blob in the normal list either way
setDir(pick(GLOB.cardinals))
- update_icon()
+ update_appearance(UPDATE_ICON)
if(atmosblock)
air_update_turf(1)
ConsumeTile()
@@ -82,7 +82,7 @@
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSBLOB)
-/obj/structure/blob/update_icon() //Updates color based on overmind color if we have an overmind.
+/obj/structure/blob/update_icon(updates=ALL) //Updates color based on overmind color if we have an overmind.
if(overmind)
add_atom_colour(overmind.blobstrain.color, FIXED_COLOUR_PRIORITY)
else
@@ -103,7 +103,7 @@
var/obj/structure/blob/B = L
if(!B.overmind && !istype(B, /obj/structure/blob/core) && prob(30))
B.overmind = pulsing_overmind //reclaim unclaimed, non-core blobs.
- B.update_icon()
+ B.update_appearance(UPDATE_ICON)
var/distance = get_dist(get_turf(src), get_turf(B))
var/expand_probablity = max(20 - distance * 8, 1)
if(B.Adjacent(src))
@@ -127,7 +127,7 @@
if(heal_timestamp <= world.time)
obj_integrity = min(max_integrity, obj_integrity+health_regen)
heal_timestamp = world.time + 20
- update_icon()
+ update_appearance(UPDATE_ICON)
pulse_timestamp = world.time + 10
return 1 //we did it, we were pulsed!
return 0 //oh no we failed
@@ -185,7 +185,7 @@
if(T.Enter(B,src)) //NOW we can attempt to move into the tile
B.density = initial(B.density)
B.forceMove(T)
- B.update_icon()
+ B.update_appearance(UPDATE_ICON)
if(B.overmind && expand_reaction)
B.overmind.blobstrain.expand_reaction(src, B, T, controller)
return B
@@ -289,7 +289,7 @@
/obj/structure/blob/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
. = ..()
if(. && obj_integrity > 0)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/blob/obj_destruction(damage_flag)
if(overmind)
@@ -301,7 +301,7 @@
CRASH("change_to(): invalid type for blob")
var/obj/structure/blob/B = new type(src.loc, controller)
B.creation_action()
- B.update_icon()
+ B.update_appearance(UPDATE_ICON)
B.setDir(dir)
qdel(src)
return B
@@ -344,7 +344,8 @@
return "Currently weak to brute damage."
return "N/A"
-/obj/structure/blob/normal/update_icon()
+/obj/structure/blob/normal/update_icon(updates=ALL)
+ . = ..()
..()
if(obj_integrity <= 15)
icon_state = "blob_damaged"
diff --git a/code/modules/antagonists/blob/structures/core.dm b/code/modules/antagonists/blob/structures/core.dm
index 1cecdc9f8e16..7c260ae5f88e 100644
--- a/code/modules/antagonists/blob/structures/core.dm
+++ b/code/modules/antagonists/blob/structures/core.dm
@@ -15,17 +15,18 @@
GLOB.blob_cores += src
START_PROCESSING(SSobj, src)
GLOB.poi_list |= src
- update_icon() //so it atleast appears
+ update_appearance(UPDATE_ICON) //so it atleast appears
if(!placed && !overmind)
return INITIALIZE_HINT_QDEL
if(overmind)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/structure/blob/core/scannerreport()
return "Directs the blob's expansion, gradually expands, and sustains nearby blob spores and blobbernauts."
-/obj/structure/blob/core/update_icon()
+/obj/structure/blob/core/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
color = null
var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob")
diff --git a/code/modules/antagonists/blob/structures/node.dm b/code/modules/antagonists/blob/structures/node.dm
index f9c3b48eb84b..b0a4cf4093b9 100644
--- a/code/modules/antagonists/blob/structures/node.dm
+++ b/code/modules/antagonists/blob/structures/node.dm
@@ -18,7 +18,8 @@
/obj/structure/blob/node/scannerreport()
return "Gradually expands and sustains nearby blob spores and blobbernauts."
-/obj/structure/blob/node/update_icon()
+/obj/structure/blob/node/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
color = null
var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob")
diff --git a/code/modules/antagonists/blob/structures/shield.dm b/code/modules/antagonists/blob/structures/shield.dm
index 0a21174326c4..d2ec0c51037e 100644
--- a/code/modules/antagonists/blob/structures/shield.dm
+++ b/code/modules/antagonists/blob/structures/shield.dm
@@ -19,7 +19,8 @@
/obj/structure/blob/shield/core
point_return = 0
-/obj/structure/blob/shield/update_icon()
+/obj/structure/blob/shield/update_icon(updates=ALL)
+ . = ..()
..()
if(obj_integrity < max_integrity * 0.5)
icon_state = "[initial(icon_state)]_damaged"
diff --git a/code/modules/antagonists/bloodsuckers/powers/targeted/lasombra.dm b/code/modules/antagonists/bloodsuckers/powers/targeted/lasombra.dm
index 450049b3ed12..5e5d7ab1fc40 100644
--- a/code/modules/antagonists/bloodsuckers/powers/targeted/lasombra.dm
+++ b/code/modules/antagonists/bloodsuckers/powers/targeted/lasombra.dm
@@ -78,7 +78,7 @@
if(istype(O, /obj/item/pda))
var/obj/item/pda/PDA = O
PDA.set_light_on(FALSE)
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
O.visible_message(span_danger("The light in [PDA] shorts out!"))
else
O.visible_message(span_danger("[O] is disintegrated by [src]!"))
diff --git a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_coffin.dm b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_coffin.dm
index fe9b83f2c7d6..029e73b6dd11 100644
--- a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_coffin.dm
+++ b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_coffin.dm
@@ -162,7 +162,7 @@
if(user == resident)
if(welded)
welded = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
locked = FALSE
return TRUE
playsound(get_turf(src), 'sound/machines/door_locked.ogg', 20, 1)
diff --git a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
index c639c21c7b33..16eec3661a74 100644
--- a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
+++ b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
@@ -316,7 +316,7 @@
return
icon_state = initial(icon_state) + (awoken ? "_idle" : "_awaken")
- update_icon()
+ update_appearance(UPDATE_ICON)
var/rankspent
switch(bloodsuckerdatum.clanprogress)
if(0)
@@ -395,7 +395,8 @@
. = ..()
anchored = FALSE
-/obj/structure/bloodsucker/moldingstone/update_icon()
+/obj/structure/bloodsucker/moldingstone/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
switch(metal)
if(1 to 5)
@@ -427,7 +428,7 @@
balloon_alert(user, "added [metal] metal")
if(istype(I, /obj/item/bloodsucker/chisel))
start_sculpiting(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bloodsucker/moldingstone/proc/start_sculpiting(mob/living/artist)
if(metal < 10)
@@ -440,7 +441,7 @@
if(!do_after(artist, 10 SECONDS, src))
artist.balloon_alert(artist, "ruined!")
metal -= rand(5, 10)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
artist.balloon_alert(artist, "done, a masterpiece!")
@@ -464,7 +465,7 @@
new /obj/item/stack/sheet/metal(get_turf(user), count)
else
to_chat(user, span_warning("There's no metal to retrieve in [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef METALLIMIT
/obj/structure/bloodsucker/bloodstatue
@@ -710,7 +711,7 @@
playsound(loc, 'sound/effects/pop_expl.ogg', 25, 1)
density = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
// Set up Torture stuff now
convert_progress = 3
@@ -746,7 +747,7 @@
visible_message(span_danger("[buckled_mob][buckled_mob.stat == DEAD ? "'s corpse" : ""] slides off of the rack."))
density = FALSE
buckled_mob.Paralyze(2 SECONDS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/structure/bloodsucker/vassalrack/attack_hand(mob/user, list/modifiers)
@@ -807,10 +808,11 @@
smallmeat++
meat_amount = bigmeat + intermeat + mediummeat + smallmeat
qdel(I)
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef MEATLIMIT
-/obj/structure/bloodsucker/vassalrack/update_icon()
+/obj/structure/bloodsucker/vassalrack/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(bigmeat)
add_overlay("bigmeat_[bigmeat]")
@@ -849,7 +851,7 @@
else
to_chat(user, span_warning("There's no meat to retrieve in [src]"))
meat_amount = bigmeat + intermeat + mediummeat + smallmeat
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Step One: Tick Down Conversion from 3 to 0
@@ -1149,7 +1151,7 @@
if(bigmeat && meatlost == 4)
bigmeat--
meatlost -= 4
- update_icon()
+ update_appearance(UPDATE_ICON)
meat_amount = bigmeat + intermeat + mediummeat + smallmeat
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1183,7 +1185,8 @@
STOP_PROCESSING(SSobj, src)
return ..()
-/obj/structure/bloodsucker/candelabrum/update_icon()
+/obj/structure/bloodsucker/candelabrum/update_icon(updates=ALL)
+ . = ..()
icon_state = "candelabrum[lit ? "_lit" : ""]"
return ..()
@@ -1208,7 +1211,7 @@
else
set_light(0)
STOP_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bloodsucker/candelabrum/process()
if(!lit)
@@ -1284,7 +1287,7 @@
if(!buckle_mob(target))
return
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bloodsucker/candelabrum/proc/remove_loyalties(mob/living/target, mob/living/user)
// Find Mindshield implant & destroy, takes a good while.
@@ -1296,7 +1299,7 @@
/obj/structure/bloodsucker/candelabrum/unbuckle_mob(mob/living/buckled_mob, force = FALSE, can_fall = TRUE)
. = ..()
src.visible_message(span_danger("[buckled_mob][buckled_mob.stat==DEAD?"'s corpse":""] slides off of the candelabrum."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/// Blood Throne - Allows Bloodsuckers to remotely speak with their Vassals. - Code (Mostly) stolen from comfy chairs (armrests) and chairs (layers)
/* broken currently
diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
index 400a1f0cba1a..04e4265543d7 100644
--- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
+++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
@@ -181,7 +181,7 @@
/obj/effect/clockwork/sigil/transmission/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/effect/clockwork/sigil/transmission/ex_act(severity)
if(severity == 3)
@@ -242,7 +242,8 @@
return FALSE
return TRUE
-/obj/effect/clockwork/sigil/transmission/update_icon()
+/obj/effect/clockwork/sigil/transmission/update_icon(updates=ALL)
+ . = ..()
var/power_charge = get_clockwork_power()
if(GLOB.ratvar_awakens)
alpha = 255
diff --git a/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm b/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm
index 5ada97e2fd2b..9049148c6098 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm
@@ -21,7 +21,7 @@
shorted = 1
visible_message(span_warning("The [name]'s screen blurs with static."))
update()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/smes/power_drain(clockcult_user)
if(charge)
@@ -32,13 +32,13 @@
icon_state = "[initial(icon_state)]-o"
do_sparks(10, FALSE, src)
visible_message(span_warning("[src]'s panel flies open with a flurry of sparks!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/power_drain(clockcult_user)
if(charge)
. = min(charge, MIN_CLOCKCULT_POWER*3)
charge = use(.)
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/silicon/robot/power_drain(clockcult_user)
if((!clockcult_user || !is_servant_of_ratvar(src)) && cell && cell.charge)
diff --git a/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm b/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm
index 7542c93ca2a2..1f59ddc1c2cb 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm
@@ -12,7 +12,7 @@
else
current_power = GLOB.clockwork_power = clamp(GLOB.clockwork_power + amount, 0, MAX_CLOCKWORK_POWER)
for(var/obj/effect/clockwork/sigil/transmission/T in GLOB.all_clockwork_objects)
- T.update_icon()
+ T.update_appearance(UPDATE_ICON)
var/unlock_message
if(current_power >= SCRIPT_UNLOCK_THRESHOLD && !GLOB.script_scripture_unlocked)
GLOB.script_scripture_unlocked = TRUE
diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm
index 35d628814b22..3314555dfc43 100644
--- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm
@@ -296,7 +296,7 @@
if(!O.pulledby && !iseffect(O) && O.density)
if(!step_away(O, src, 2) || get_dist(O, src) < 2)
O.take_damage(50, BURN, BOMB)
- O.update_icon()
+ O.update_appearance(UPDATE_ICON)
for(var/V in GLOB.player_list)
var/mob/M = V
var/turf/T = get_turf(M)
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 74c0b5bd29c7..e432d48eb1e7 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -384,7 +384,8 @@
max = 40
prefix = "darkened"
-/obj/item/sharpener/cult/update_icon()
+/obj/item/sharpener/cult/update_icon(updates=ALL)
+ . = ..()
icon_state = "cult_sharpener[used ? "_used" : ""]"
/obj/item/clothing/suit/hooded/cultrobes/cult_shield
@@ -690,7 +691,8 @@ GLOBAL_VAR_INIT(curselimit, 0)
qdel(spear_act)
..()
-/obj/item/twohanded/cult_spear/update_icon()
+/obj/item/twohanded/cult_spear/update_icon(updates=ALL)
+ . = ..()
icon_state = "bloodspear[wielded]"
/obj/item/twohanded/cult_spear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index d1d13d45a883..359c3d9674e5 100644
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ b/code/modules/antagonists/cult/cult_structures.dm
@@ -306,13 +306,14 @@
/obj/structure/destructible/cult/pillar/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/destructible/cult/pillar/Destroy()
new /obj/effect/decal/cleanable/ash(loc)
..()
-/obj/structure/destructible/cult/pillar/update_icon()
+/obj/structure/destructible/cult/pillar/update_icon(updates=ALL)
+ . = ..()
icon_state = "pillar[alt ? "alt": ""]2"
if (obj_integrity < max_integrity/3)
icon_state = "pillar[alt ? "alt": ""]0"
@@ -398,7 +399,7 @@
M.playsound_local(src, 'sound/effects/explosionfar.ogg', 50, 1)
shake_camera(M, 1, 1)
for (var/obj/structure/destructible/cult/pillar/P in pillars)
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
/obj/structure/destructible/cult/bloodstone/proc/summon()
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF //should stop the stone from being destroyed by damage
@@ -408,7 +409,7 @@
/obj/structure/destructible/cult/bloodstone/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/destructible/cult/bloodstone/ex_act(severity)
switch(severity)
@@ -470,7 +471,8 @@
else
T.narsie_act(TRUE, TRUE)
-/obj/structure/destructible/cult/bloodstone/update_icon()
+/obj/structure/destructible/cult/bloodstone/update_icon(updates=ALL)
+ . = ..()
icon_state = "bloodstone-[current_fullness]"
cut_overlays()
var/image/I_base = image('icons/obj/cult_64x64.dmi',"bloodstone-base")
@@ -500,7 +502,7 @@
animate(color = list(1.25,0.12,0,0,0,1.25,0.12,0,0.12,0,1.25,0,0,0,0,1,0,0,0,0), time = 0.1 SECONDS)
animate(color = list(1.125,0.06,0,0,0,1.125,0.06,0,0.06,0,1.125,0,0,0,0,1,0,0,0,0), time = 0.1 SECONDS)
set_light(20, 20)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/destructible/cult/bloodstone/conceal() //lol
return
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_book.dm b/code/modules/antagonists/eldritch_cult/eldritch_book.dm
index 75f4bb92702a..041b056a6533 100644
--- a/code/modules/antagonists/eldritch_cult/eldritch_book.dm
+++ b/code/modules/antagonists/eldritch_cult/eldritch_book.dm
@@ -155,7 +155,7 @@
if(cultie.gain_knowledge(EK))
return TRUE
- update_icon() // Not applicable to all objects.
+ update_appearance(UPDATE_ICON) // Not applicable to all objects.
/obj/item/forbidden_book/ui_close(mob/user)
flick("book_closing",src)
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm
index 5a93e1632aa0..1650f38ac392 100644
--- a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm
+++ b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm
@@ -759,7 +759,7 @@
pixel_y = rand(-6,6)
pixel_x = rand(-6,6)
icon_state = "small_rune_[rand(12)]"
- update_icon()
+ update_appearance(UPDATE_ICON)
// Shoots out in a wave-like, what rust heretics themselves get
/datum/action/cooldown/spell/cone/staggered/entropic_plume
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index 6477ecc6b202..503e6326003d 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -39,7 +39,7 @@
GLOB.nuke_list += src
core = new /obj/item/nuke_core(src)
STOP_PROCESSING(SSobj, core)
- update_icon()
+ update_appearance(UPDATE_ICON)
GLOB.poi_list |= src
previous_level = get_security_level()
@@ -111,7 +111,7 @@
if(I.use_tool(src, user, 60, volume=100))
deconstruction_state = NUKESTATE_UNSCREWED
to_chat(user, span_notice("You remove the screws from [src]'s front panel."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(NUKESTATE_PANEL_REMOVED)
@@ -122,7 +122,7 @@
if(I.use_tool(src, user, 80, volume=100, amount=1))
to_chat(user, span_notice("You cut [src]'s inner plate."))
deconstruction_state = NUKESTATE_WELDED
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(NUKESTATE_CORE_EXPOSED)
if(istype(I, /obj/item/nuke_core_container))
@@ -132,7 +132,7 @@
if(core_box.load(core, user))
to_chat(user, span_notice("You load the plutonium core into [core_box]."))
deconstruction_state = NUKESTATE_CORE_REMOVED
- update_icon()
+ update_appearance(UPDATE_ICON)
core = null
else
to_chat(user, span_warning("You fail to load the plutonium core into [core_box]. [core_box] has already been used!"))
@@ -146,7 +146,7 @@
to_chat(user, span_notice("You repair [src]'s inner metal plate. The radiation is contained."))
deconstruction_state = NUKESTATE_PANEL_REMOVED
STOP_PROCESSING(SSobj, core)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
. = ..()
@@ -158,14 +158,14 @@
if(tool.use_tool(src, user, 30, volume=100))
to_chat(user, span_notice("You remove [src]'s front panel."))
deconstruction_state = NUKESTATE_PANEL_REMOVED
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
if(NUKESTATE_WELDED)
to_chat(user, span_notice("You start prying off [src]'s inner plate..."))
if(tool.use_tool(src, user, 30, volume=100))
to_chat(user, span_notice("You pry off [src]'s inner plate. You can see the core's green glow!"))
deconstruction_state = NUKESTATE_CORE_EXPOSED
- update_icon()
+ update_appearance(UPDATE_ICON)
START_PROCESSING(SSobj, core)
return TRUE
@@ -179,7 +179,8 @@
else
return NUKE_OFF_UNLOCKED
-/obj/machinery/nuclearbomb/update_icon()
+/obj/machinery/nuclearbomb/update_icon(updates=ALL)
+ . = ..()
if(deconstruction_state == NUKESTATE_INTACT)
switch(get_nuke_state())
if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
@@ -197,7 +198,7 @@
update_icon_interior()
update_icon_lights()
-/obj/machinery/nuclearbomb/proc/update_icon_interior()
+/obj/machinery/nuclearbomb/update_icon_interior()
cut_overlay(interior)
switch(deconstruction_state)
if(NUKESTATE_UNSCREWED)
@@ -214,7 +215,7 @@
return
add_overlay(interior)
-/obj/machinery/nuclearbomb/proc/update_icon_lights()
+/obj/machinery/nuclearbomb/update_icon_lights()
if(lights)
cut_overlay(lights)
switch(get_nuke_state())
@@ -408,7 +409,7 @@
timing = FALSE
detonation_timer = null
countdown.stop()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/nuclearbomb/proc/set_active()
if(safety)
@@ -429,7 +430,7 @@
S.switch_mode_to(initial(S.mode))
S.alert = FALSE
countdown.stop()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/nuclearbomb/proc/get_time_left()
if(timing)
@@ -456,7 +457,7 @@
exploding = TRUE
yes_code = FALSE
safety = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
sound_to_playing_players('sound/machines/alarm.ogg')
if(SSticker && SSticker.mode)
SSticker.roundend_check_paused = TRUE
@@ -563,7 +564,7 @@
S.switch_mode_to(initial(S.mode))
S.alert = FALSE
countdown.stop()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/nuclearbomb/beer/proc/fizzbuzz()
var/datum/reagents/R = new/datum/reagents(1000)
diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm
index 709cb0f00b29..2d9425074c9d 100644
--- a/code/modules/antagonists/revolution/revolution.dm
+++ b/code/modules/antagonists/revolution/revolution.dm
@@ -140,7 +140,7 @@
to_chat(admin, span_danger("Repairing flash failed!"))
else
flash.burnt_out = FALSE
- flash.update_icon()
+ flash.update_appearance(UPDATE_ICON)
/datum/antagonist/rev/head/proc/admin_demote(datum/mind/target,mob/user)
message_admins("[key_name_admin(user)] has demoted [key_name_admin(owner)] from head revolutionary.")
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index 5493f5eefb60..21032abf8445 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -75,7 +75,8 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "demon_heart-on"
-/obj/item/organ/heart/demon/update_icon()
+/obj/item/organ/heart/demon/update_icon(updates=ALL)
+ . = ..()
return //always beating visually
/obj/item/organ/heart/demon/attack(mob/M, mob/living/carbon/user, obj/target)
diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
index abea49d42908..d9b6d332bd86 100644
--- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
+++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
@@ -654,7 +654,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module))
if(!is_station_level(F.z))
continue
F.obj_flags |= EMAGGED
- F.update_icon()
+ F.update_appearance(UPDATE_ICON)
to_chat(owner, span_notice("All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized."))
owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0)
diff --git a/code/modules/antagonists/zombie/abilities/spit.dm b/code/modules/antagonists/zombie/abilities/spit.dm
index 809bf1767c5b..51a49364c0b8 100644
--- a/code/modules/antagonists/zombie/abilities/spit.dm
+++ b/code/modules/antagonists/zombie/abilities/spit.dm
@@ -12,7 +12,8 @@
else
add_ranged_ability(user, span_notice("You open your neurotoxin reserves.
Left-click to fire at a target!"), TRUE)
-/obj/effect/proc_holder/zombie/spit/update_icon()
+/obj/effect/proc_holder/zombie/spit/update_icon(updates=ALL)
+ . = ..()
action.button_icon_state = "alien_neurotoxin_[active]"
action.build_all_button_icons()
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index e72de7fe9e5e..43045ad9cb83 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -11,7 +11,7 @@
throw_range = 7
var/is_position_sensitive = FALSE //set to true if the device has different icons for each position.
- //This will prevent things such as visible lasers from facing the incorrect direction when transformed by assembly_holder's update_icon()
+ //This will prevent things such as visible lasers from facing the incorrect direction when transformed by assembly_holder's update_appearance(UPDATE_ICON)
var/secured = TRUE
var/list/attached_overlays = null
var/obj/item/assembly_holder/holder = null
@@ -82,7 +82,7 @@
/obj/item/assembly/proc/toggle_secure()
secured = !secured
- update_icon()
+ update_appearance(UPDATE_ICON)
return secured
diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm
index 8eff567fcb1a..22399760526a 100644
--- a/code/modules/assembly/doorcontrol.dm
+++ b/code/modules/assembly/doorcontrol.dm
@@ -65,7 +65,7 @@
if(specialfunctions & BOLTS)
if(!D.wires.is_cut(WIRE_BOLTS) && D.hasPower())
D.locked = !D.locked
- D.update_icon()
+ D.update_appearance(UPDATE_ICON)
if(specialfunctions & SHOCK)
if(D.secondsElectrified)
D.set_electrified(MACHINE_ELECTRIFIED_PERMANENT, usr)
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 1fae39be6571..b951a5c59700 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -57,7 +57,7 @@
attached_overlays += flashing_overlay
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), 5)
if(holder)
- holder.update_icon()
+ holder.update_appearance(UPDATE_ICON)
/obj/item/assembly/flash/proc/clown_check(mob/living/carbon/human/user)
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
@@ -68,7 +68,7 @@
/obj/item/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something.
if(!burnt_out)
burnt_out = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
if(ismob(loc))
var/mob/M = loc
M.visible_message(span_danger("[src] burns out!"),span_userdanger("[src] burns out!"))
diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm
index 69f90681a7ca..4e02aa6ec716 100644
--- a/code/modules/assembly/health.dm
+++ b/code/modules/assembly/health.dm
@@ -27,7 +27,7 @@
else
scanning = FALSE
STOP_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
return secured
/obj/item/assembly/health/AltClick(mob/living/user)
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index 3c983852d139..397f279023e3 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -23,7 +23,7 @@
attach(A,user)
attach(A2,user)
name = "[A.name]-[A2.name] assembly"
- update_icon()
+ update_appearance(UPDATE_ICON)
SSblackbox.record_feedback("tally", "assembly_made", 1, "[initial(A.name)]-[initial(A2.name)]")
/obj/item/assembly_holder/proc/attach(obj/item/assembly/A, mob/user)
@@ -40,7 +40,8 @@
a_right = A
A.holder_movement()
-/obj/item/assembly_holder/update_icon()
+/obj/item/assembly_holder/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(a_left)
add_overlay("[a_left.icon_state]_left")
@@ -81,7 +82,7 @@
add_overlay(right)
if(master)
- master.update_icon()
+ master.update_appearance(UPDATE_ICON)
/obj/item/assembly_holder/Crossed(atom/movable/AM as mob|obj)
. = ..()
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index 82c6fd03c3e5..434a75546283 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -36,7 +36,7 @@
return FALSE //Cooldown check
on = !on
refreshBeam()
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/assembly/infra/toggle_secure()
@@ -47,10 +47,11 @@
else
QDEL_LIST(beams)
STOP_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
return secured
-/obj/item/assembly/infra/update_icon()
+/obj/item/assembly/infra/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
attached_overlays = list()
if(on)
@@ -61,7 +62,7 @@
attached_overlays += "infrared_visible"
if(holder)
- holder.update_icon()
+ holder.update_appearance(UPDATE_ICON)
return
/obj/item/assembly/infra/dropped()
@@ -204,7 +205,7 @@
visible = !visible
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
refreshBeam()
/***************************IBeam*********************************/
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 6266ccaf3595..0d55516b4364 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -22,16 +22,17 @@
if((HAS_TRAIT(user, TRAIT_DUMB) || HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))
to_chat(user, span_warning("Your hand slips, setting off the trigger!"))
pulse(FALSE)
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src, 'sound/weapons/handcuffs.ogg', 30, TRUE, -3)
-/obj/item/assembly/mousetrap/update_icon()
+/obj/item/assembly/mousetrap/update_icon(updates=ALL)
+ . = ..()
if(armed)
icon_state = "mousetraparmed"
else
icon_state = "mousetrap"
if(holder)
- holder.update_icon()
+ holder.update_appearance(UPDATE_ICON)
/obj/item/assembly/mousetrap/proc/triggered(mob/target, type = "feet")
if(!armed)
@@ -42,7 +43,7 @@
if(HAS_TRAIT(H, TRAIT_PIERCEIMMUNE))
playsound(src, 'sound/effects/snap.ogg', 50, TRUE)
armed = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
pulse(FALSE)
return FALSE
switch(type)
@@ -69,7 +70,7 @@
M.splat()
playsound(src, 'sound/effects/snap.ogg', 50, TRUE)
armed = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
pulse(FALSE)
@@ -87,7 +88,7 @@
return
to_chat(user, span_notice("You disarm [src]."))
armed = !armed
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src, 'sound/weapons/handcuffs.ogg', 30, TRUE, -3)
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index ae7b26bef1da..f741cf0d8d08 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -29,7 +29,7 @@
timing = !timing
else
scanning = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/assembly/prox_sensor/on_detach()
@@ -50,7 +50,7 @@
else
START_PROCESSING(SSobj, src)
proximity_monitor.SetHost(loc,src)
- update_icon()
+ update_appearance(UPDATE_ICON)
return secured
/obj/item/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj)
@@ -84,7 +84,7 @@
return FALSE
scanning = scan
proximity_monitor.SetRange(scanning ? sensitivity : 0)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/assembly/prox_sensor/proc/sensitivity_change(value)
var/sense = min(max(sensitivity + value, 0), 5)
@@ -92,7 +92,8 @@
if(scanning && proximity_monitor.SetRange(sense))
sense()
-/obj/item/assembly/prox_sensor/update_icon()
+/obj/item/assembly/prox_sensor/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
attached_overlays = list()
if(timing)
@@ -102,7 +103,7 @@
add_overlay("prox_scanning")
attached_overlays += "prox_scanning"
if(holder)
- holder.update_icon()
+ holder.update_appearance(UPDATE_ICON)
return
/obj/item/assembly/prox_sensor/ui_status(mob/user)
@@ -140,7 +141,7 @@
. = TRUE
if("time")
timing = !timing
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("input")
var/value = text2num(params["adjust"])
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index d549dba6d50a..32931ef6f261 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -44,9 +44,10 @@
signal()
return TRUE
-/obj/item/assembly/signaler/update_icon()
+/obj/item/assembly/signaler/update_icon(updates=ALL)
+ . = ..()
if(holder)
- holder.update_icon()
+ holder.update_appearance(UPDATE_ICON)
return
/obj/item/assembly/signaler/ui_status(mob/user)
@@ -104,9 +105,9 @@
else
idx++
label_color = label_colors[idx]
- update_icon()
+ update_appearance(UPDATE_ICON)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/assembly/signaler/attackby(obj/item/W, mob/user, params)
if(issignaler(W))
@@ -116,7 +117,7 @@
set_frequency(signaler2.frequency)
// yogs start - signaller colors
label_color = signaler2.label_color
- update_icon()
+ update_appearance(UPDATE_ICON)
// yogs end
to_chat(user, "You transfer the frequency and code of \the [signaler2.name] to \the [name]")
..()
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 0861f88d4eb9..3c2153084960 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -37,7 +37,7 @@
if(!..())
return FALSE//Cooldown check
timing = !timing
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
@@ -48,7 +48,7 @@
else
timing = FALSE
STOP_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
return secured
@@ -63,7 +63,7 @@
LM.playsound_local(get_turf(src), 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE)
if(loop)
timing = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/assembly/timer/process(delta_time)
@@ -76,14 +76,15 @@
time = saved_time
-/obj/item/assembly/timer/update_icon()
+/obj/item/assembly/timer/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
attached_overlays = list()
if(timing)
add_overlay("timer_timing")
attached_overlays += "timer_timing"
if(holder)
- holder.update_icon()
+ holder.update_appearance(UPDATE_ICON)
/obj/item/assembly/timer/ui_status(mob/user)
if(is_secured(user))
@@ -115,7 +116,7 @@
timing = !timing
if(timing && istype(holder, /obj/item/transfer_valve))
log_bomber(usr, "activated a", src, "attachment on [holder]")
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("repeat")
loop = !loop
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index 8b9ba4a59fdc..c1d4ed3203ea 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -236,7 +236,7 @@
if(name == initial(name))
name = "[get_area_name(src)] Air Alarm"
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/airalarm/Destroy()
SSradio.remove_object(src, frequency)
@@ -458,7 +458,7 @@
if(A.atmosalert(0, src))
post_alert(0)
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/airalarm/proc/reset(wire)
@@ -466,7 +466,7 @@
if(WIRE_POWER)
if(!wires.is_cut(WIRE_POWER))
shorted = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
if(WIRE_AI)
if(!wires.is_cut(WIRE_AI))
aidisabled = FALSE
@@ -630,7 +630,8 @@
"set_internal_pressure" = 0
), signal_source)
-/obj/machinery/airalarm/update_icon()
+/obj/machinery/airalarm/update_icon(updates=ALL)
+ . = ..()
if(panel_open)
switch(buildstage)
if(2)
@@ -724,7 +725,7 @@
if(A.atmosalert(new_area_danger_level,src)) //if area was in normal state or if area was in alert state
post_alert(new_area_danger_level)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/airalarm/attackby(obj/item/W, mob/user, params)
switch(buildstage)
@@ -734,13 +735,13 @@
to_chat(user, span_notice("You cut the final wires."))
new /obj/item/stack/cable_coil(loc, 5)
buildstage = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(W.tool_behaviour == TOOL_SCREWDRIVER) // Opening that Air Alarm up.
W.play_tool_sound(src)
panel_open = !panel_open
to_chat(user, span_notice("The wires have been [panel_open ? "exposed" : "unexposed"]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(W.GetID())// trying to unlock the interface with an ID card
togglelock(user)
@@ -759,7 +760,7 @@
new /obj/item/electronics/airalarm( src.loc )
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
buildstage = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(istype(W, /obj/item/stack/cable_coil))
@@ -780,14 +781,14 @@
shorted = 0
post_alert(0)
buildstage = 2
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(0)
if(istype(W, /obj/item/electronics/airalarm))
if(user.temporarilyRemoveItemFromInventory(W))
to_chat(user, span_notice("You insert the circuit."))
buildstage = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
qdel(W)
return
@@ -798,7 +799,7 @@
user.visible_message(span_notice("[user] fabricates a circuit and places it into [src]."), \
span_notice("You adapt an air alarm circuit and slot it into the assembly."))
buildstage = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(W.tool_behaviour == TOOL_WRENCH)
@@ -828,7 +829,7 @@
user.visible_message(span_notice("[user] fabricates a circuit and places it into [src]."), \
span_notice("You adapt an air alarm circuit and slot it into the assembly."))
buildstage = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
return FALSE
diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm
index ce6d38b8a42d..aa5d64062e76 100644
--- a/code/modules/atmospherics/machinery/atmosmachinery.dm
+++ b/code/modules/atmospherics/machinery/atmosmachinery.dm
@@ -117,13 +117,14 @@ GLOBAL_LIST_EMPTY(pipeimages)
if(can_be_node(target, i))
nodes[i] = target
break
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/proc/setPipingLayer(new_layer)
piping_layer = (pipe_flags & PIPING_DEFAULT_LAYER_ONLY) ? PIPING_LAYER_DEFAULT : new_layer
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/atmospherics/update_icon()
+/obj/machinery/atmospherics/update_icon(updates=ALL)
+ . = ..()
layer = initial(layer) + piping_layer / 1000
return ..()
@@ -175,7 +176,7 @@ GLOBAL_LIST_EMPTY(pipeimages)
var/obj/machinery/atmospherics/pipe/P = reference
P.destroy_network()
nodes[nodes.Find(reference)] = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pipe)) //lets you autodrop
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm
index 861f457062fd..5e1428559345 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm
@@ -14,7 +14,7 @@
initialize_directions = EAST|WEST
/obj/machinery/atmospherics/components/binary/hide(intact)
- update_icon()
+ update_appearance(UPDATE_ICON)
..()
/obj/machinery/atmospherics/components/binary/getNodeConnects()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
index e4510f592166..0efa3051ad6e 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
@@ -36,7 +36,7 @@
/obj/machinery/atmospherics/components/binary/circulator/Initialize(mapload)
. = ..()
component_parts = list(new /obj/item/circuitboard/machine/circulator)
- update_icon()
+ update_appearance(UPDATE_ICON)
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS )
/obj/machinery/atmospherics/components/binary/circulator/Destroy()
@@ -79,7 +79,8 @@
..()
update_icon_nopipes()
-/obj/machinery/atmospherics/components/binary/circulator/update_icon()
+/obj/machinery/atmospherics/components/binary/circulator/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(anchored)
@@ -185,7 +186,7 @@
node2.addMember(src)
SSair.add_to_rebuild_queue(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
@@ -254,7 +255,7 @@
generator.cold_circ = null
else
generator.hot_circ = null
- generator.update_icon()
+ generator.update_appearance(UPDATE_ICON)
generator = null
/obj/machinery/atmospherics/components/binary/circulator/setPipingLayer(new_layer)
@@ -278,5 +279,5 @@
/obj/machinery/atmospherics/components/binary/circulator/obj_break(damage_flag)
if(generator)
generator.kill_circs()
- generator.update_icon()
+ generator.update_appearance(UPDATE_ICON)
..()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
index 9181b33d5709..607797d55d5a 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
@@ -175,7 +175,7 @@
return //do not update_icon
spawn(2)
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume
name = "large dual-port air vent"
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm
index cc951ab2977e..01ec68fa1c20 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm
@@ -33,7 +33,7 @@ Passive gate is similar to the regular pump except:
var/msg = "was turned [on ? "on" : "off"] by [key_name(user)]"
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/passive_gate/AltClick(mob/user)
@@ -43,7 +43,7 @@ Passive gate is similar to the regular pump except:
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
balloon_alert(user, "pressure output set to [target_pressure] kPa")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
@@ -148,7 +148,7 @@ Passive gate is similar to the regular pump except:
var/msg = "was set to [target_pressure] kPa by [key_name(usr)]"
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/passive_gate/atmosinit()
..()
@@ -179,7 +179,7 @@ Passive gate is similar to the regular pump except:
return
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/passive_gate/can_unwrench(mob/user)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm
index 92a3873e6980..7d3c7949b7d7 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm
@@ -24,7 +24,7 @@
if(can_interact(user))
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/pressure_valve/AltClick(mob/user)
@@ -32,7 +32,7 @@
target_pressure = MAX_OUTPUT_PRESSURE
investigate_log("was set to [target_pressure] kPa by [key_name(user)]", INVESTIGATE_ATMOS)
balloon_alert(user, "pressure output set to [target_pressure] kPa")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/pressure_valve/Destroy()
@@ -117,7 +117,7 @@
if(.)
target_pressure = clamp(pressure, 0, ONE_ATMOSPHERE*100)
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/pressure_valve/atmosinit()
. = ..()
@@ -147,7 +147,7 @@
return
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/pressure_valve/can_unwrench(mob/user)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
index ef25ea72f46e..76f2b98782d7 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
@@ -30,7 +30,7 @@
/obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user)
if(can_interact(user))
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/pump/AltClick(mob/user)
@@ -40,7 +40,7 @@
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - makes supermatter invest useful
balloon_alert(user, "pressure output set to [target_pressure] kPa")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/pump/Destroy()
@@ -137,7 +137,7 @@
var/msg = "was set to [target_pressure] kPa by [key_name(usr)]"
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - makes supermatter invest useful
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/pump/atmosinit()
..()
@@ -168,7 +168,7 @@
return
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/pump/can_unwrench(mob/user)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm
index 88ccb2a6adc0..72b17e5a29c6 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm
@@ -23,7 +23,7 @@
if(can_interact(user))
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/temperature_gate/AltClick(mob/user)
@@ -31,7 +31,7 @@
target_temperature = max_temperature
investigate_log("was set to [target_temperature] K by [key_name(user)]", INVESTIGATE_ATMOS)
balloon_alert(user, "target temperature set to [target_temperature] K")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
@@ -109,7 +109,7 @@
if(.)
target_temperature = clamp(minimum_temperature, temperature, max_temperature)
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/temperature_gate/can_unwrench(mob/user)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm
index 579fea954138..3a489e3821af 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm
@@ -18,7 +18,7 @@
if(can_interact(user))
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/temperature_pump/AltClick(mob/user)
@@ -26,7 +26,7 @@
heat_transfer_rate = max_heat_transfer_rate
investigate_log("was set to [heat_transfer_rate]% by [key_name(user)]", INVESTIGATE_ATMOS)
balloon_alert(user, "transfer rate set to [heat_transfer_rate]%")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/temperature_pump/update_icon_nopipes()
@@ -94,4 +94,4 @@
if(.)
heat_transfer_rate = clamp(rate, 0, max_heat_transfer_rate)
investigate_log("was set to [heat_transfer_rate]% by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
index 04ca2b623e24..9092deda1252 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
@@ -34,7 +34,7 @@
var/msg = "was turned [on ? "on" : "off"] by [key_name(usr)]"
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/volume_pump/AltClick(mob/user)
@@ -44,7 +44,7 @@
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
balloon_alert(user, "volume output set to [transfer_rate] L/s")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/binary/volume_pump/Destroy()
@@ -158,7 +158,7 @@
var/msg = "was set to [transfer_rate] L/s by [key_name(usr)]"
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/volume_pump/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
@@ -185,7 +185,7 @@
return //do not update_icon
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/binary/volume_pump/can_unwrench(mob/user)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm
index edb0f39239ab..117795926328 100644
--- a/code/modules/atmospherics/machinery/components/components_base.dm
+++ b/code/modules/atmospherics/machinery/components/components_base.dm
@@ -24,7 +24,8 @@
/obj/machinery/atmospherics/components/proc/update_icon_nopipes()
return
-/obj/machinery/atmospherics/components/update_icon()
+/obj/machinery/atmospherics/components/update_icon(updates=ALL)
+ . = ..()
update_icon_nopipes()
underlays.Cut()
diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
index 3c60597ff47e..62b21c59dffa 100644
--- a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
+++ b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
@@ -52,7 +52,7 @@
if(tool.use_tool(src, user, 10 SECONDS, volume=30, amount=5))
balloon_alert(user, "repaired")
cracked = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
update_overlays()
/obj/machinery/atmospherics/components/unary/hypertorus/default_change_direction_wrench(mob/user, obj/item/I)
@@ -72,7 +72,8 @@
node.addMember(src)
SSair.add_to_rebuild_queue(src)
-/obj/machinery/atmospherics/components/unary/hypertorus/update_icon()
+/obj/machinery/atmospherics/components/unary/hypertorus/update_icon(updates=ALL)
+ . = ..()
. = ..()
if(panel_open)
icon_state = icon_state_open
@@ -82,6 +83,7 @@
icon_state = icon_state_off
/obj/machinery/atmospherics/components/unary/hypertorus/proc/update_overlays()
+ . = ..()
if(!cracked)
return
@@ -153,7 +155,8 @@
return
return ..()
-/obj/machinery/hypertorus/update_icon()
+/obj/machinery/hypertorus/update_icon(updates=ALL)
+ . = ..()
if(panel_open)
icon_state = icon_state_open
else if(active)
diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm
index d3c98bc979c2..c6d822718456 100644
--- a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm
+++ b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm
@@ -89,22 +89,22 @@
return
to_chat(user, span_notice("You link all parts toghether."))
active = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
linked_interface.active = TRUE
- linked_interface.update_icon()
+ linked_interface.update_appearance(UPDATE_ICON)
RegisterSignal(linked_interface, COMSIG_PARENT_QDELETING, PROC_REF(unregister_signals))
linked_input.active = TRUE
- linked_input.update_icon()
+ linked_input.update_appearance(UPDATE_ICON)
RegisterSignal(linked_input, COMSIG_PARENT_QDELETING, PROC_REF(unregister_signals))
linked_output.active = TRUE
- linked_output.update_icon()
+ linked_output.update_appearance(UPDATE_ICON)
RegisterSignal(linked_output, COMSIG_PARENT_QDELETING, PROC_REF(unregister_signals))
linked_moderator.active = TRUE
- linked_moderator.update_icon()
+ linked_moderator.update_appearance(UPDATE_ICON)
RegisterSignal(linked_moderator, COMSIG_PARENT_QDELETING, PROC_REF(unregister_signals))
for(var/obj/machinery/hypertorus/corner/corner in corners)
corner.active = TRUE
- corner.update_icon()
+ corner.update_appearance(UPDATE_ICON)
RegisterSignal(corner, COMSIG_PARENT_QDELETING, PROC_REF(unregister_signals))
soundloop = new(list(src), TRUE)
soundloop.volume = 5
@@ -138,27 +138,27 @@
if(!active)
return
active = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
if(linked_interface)
linked_interface.active = FALSE
- linked_interface.update_icon()
+ linked_interface.update_appearance(UPDATE_ICON)
linked_interface = null
if(linked_input)
linked_input.active = FALSE
- linked_input.update_icon()
+ linked_input.update_appearance(UPDATE_ICON)
linked_input = null
if(linked_output)
linked_output.active = FALSE
- linked_output.update_icon()
+ linked_output.update_appearance(UPDATE_ICON)
linked_output = null
if(linked_moderator)
linked_moderator.active = FALSE
- linked_moderator.update_icon()
+ linked_moderator.update_appearance(UPDATE_ICON)
linked_moderator = null
if(corners.len)
for(var/obj/machinery/hypertorus/corner/corner in corners)
corner.active = FALSE
- corner.update_icon()
+ corner.update_appearance(UPDATE_ICON)
corners = list()
QDEL_NULL(soundloop)
@@ -592,7 +592,7 @@
/obj/machinery/atmospherics/components/unary/hypertorus/core/proc/create_crack()
var/obj/machinery/atmospherics/components/unary/hypertorus/part = pick(machine_parts)
part.cracked = TRUE
- part.update_icon()
+ part.update_appearance(UPDATE_ICON)
part.update_overlays()
return part
diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
index ec56fa1788a7..590db0133660 100644
--- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
+++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
@@ -15,7 +15,7 @@
circuit = /obj/item/circuitboard/machine/crystallizer
pipe_flags = PIPING_ONE_PER_TURF| PIPING_DEFAULT_LAYER_ONLY
- ///Base icon state for the machine to be used in update_icon()
+ ///Base icon state for the machine to be used in update_appearance(UPDATE_ICON)
var/base_icon = "crystallizer"
///Internal Gas mix used for processing the gases that have been put in
var/datum/gas_mixture/internal
@@ -79,12 +79,13 @@
SSair.add_to_rebuild_queue(src)
return TRUE
-/obj/machinery/atmospherics/components/binary/crystallizer/proc/update_overlays()
+/obj/machinery/atmospherics/components/binary/crystallizer/update_overlays()
+ . = ..()
cut_overlays()
add_overlay(getpipeimage(icon, "pipe", dir, COLOR_LIME, piping_layer))
add_overlay(getpipeimage(icon, "pipe", turn(dir, 180), COLOR_RED, piping_layer))
-/obj/machinery/atmospherics/components/binary/crystallizer/proc/update_icon_state()
+/obj/machinery/atmospherics/components/binary/crystallizer/update_icon_state()
if(panel_open)
icon_state = "[base_icon]-open"
else if(on)
@@ -92,7 +93,8 @@
else
icon_state = "[base_icon]-off"
-/obj/machinery/atmospherics/components/binary/crystallizer/update_icon()
+/obj/machinery/atmospherics/components/binary/crystallizer/update_icon(updates=ALL)
+ . = ..()
. = ..()
update_icon_state()
update_overlays()
@@ -102,7 +104,7 @@
return
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
///Checks if the gases in the input are the ones needed by the recipe
/obj/machinery/atmospherics/components/binary/crystallizer/proc/check_gas_requirements()
@@ -341,7 +343,7 @@
var/_gas_input = params["gas_input"]
gas_input = clamp(_gas_input, 0, max_gas_input)
investigate_log("was set to [gas_input] by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef MIN_PROGRESS_AMOUNT
#undef MIN_DEVIATION_RATE
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
index 4794b303f08e..38191eb090a0 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
@@ -21,7 +21,7 @@
var/msg = "was turned [on ? "on" : "off"] by [key_name(usr)]"
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/trinary/filter/AltClick(mob/user)
@@ -31,7 +31,7 @@
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
balloon_alert(user, "volume output set to [transfer_rate] L/s")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/trinary/filter/proc/set_frequency(new_frequency)
@@ -44,7 +44,8 @@
SSradio.remove_object(src,frequency)
return ..()
-/obj/machinery/atmospherics/components/trinary/filter/update_icon()
+/obj/machinery/atmospherics/components/trinary/filter/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
for(var/direction in GLOB.cardinals)
if(!(direction & initialize_directions))
@@ -194,7 +195,7 @@
investigate_log(msg, INVESTIGATE_ATMOS)
investigate_log(msg, INVESTIGATE_SUPERMATTER) // yogs - make supermatter invest useful
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/trinary/filter/can_unwrench(mob/user)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index e1b4960217e9..3b2381225198 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -20,7 +20,7 @@
if(can_interact(user))
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/trinary/mixer/AltClick(mob/user)
@@ -28,10 +28,11 @@
target_pressure = MAX_OUTPUT_PRESSURE
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
balloon_alert(user, "pressure output on set to [target_pressure] kPa")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
-/obj/machinery/atmospherics/components/trinary/mixer/update_icon()
+/obj/machinery/atmospherics/components/trinary/mixer/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
for(var/direction in GLOB.cardinals)
if(!(direction & initialize_directions))
@@ -173,7 +174,7 @@
adjust_node1_value(100 - value)
investigate_log("was set to [node2_concentration] % on node 2 by [key_name(usr)]", INVESTIGATE_ATMOS)
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/trinary/mixer/proc/adjust_node1_value(newValue)
node1_concentration = newValue / 100
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 19a3c017abca..015b1cfad79d 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -54,7 +54,7 @@
var/oldoccupant = occupant
. = ..() // Parent proc takes care of removing occupant if necessary
if (AM == oldoccupant)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/cryo_cell/on_construction()
..(dir, dir)
@@ -102,7 +102,8 @@
beaker.forceMove(drop_location())
beaker = null
-/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon()
+/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(panel_open)
@@ -181,7 +182,7 @@
return
if(!is_operational())
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(!occupant)
return
@@ -198,7 +199,7 @@
playsound(src,'sound/machines/cryo_warning_ignore.ogg',60,1)
on = FALSE
sleep(0.2 SECONDS)// here for timing. Shuts off right at climax of the effect before falloff.
- update_icon()
+ update_appearance(UPDATE_ICON)
return
var/robotic_limb_damage = 0 // brute and burn damage to robotic limbs
@@ -223,7 +224,7 @@
treating_wounds = has_cryo_wound
if(!treating_wounds)
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src, 'sound/machines/cryo_warning.ogg', volume) // Bug the doctors.
var/msg = "Patient fully restored."
if(robotic_limb_damage)
@@ -270,7 +271,7 @@
if(!nodes[1] || !airs[1] || (air1.get_moles(/datum/gas/oxygen) < 5 && air1.get_moles(/datum/gas/pluoxium) < 5)) // Turn off if the machine won't work.
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(occupant)
@@ -310,7 +311,7 @@
var/mob/living/L = M
L.update_mobility()
occupant = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/cryo_cell/close_machine(mob/living/carbon/user)
treating_wounds = FALSE
@@ -371,7 +372,7 @@
|| default_change_direction_wrench(user, I) \
|| default_pry_open(I) \
|| default_deconstruction_crowbar(I))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(I.tool_behaviour == TOOL_SCREWDRIVER)
to_chat(user, "
You can't access the maintenance panel while the pod is " \
@@ -465,7 +466,7 @@
log_game("[key_name(usr)] removed an [beaker] to cryo containing [beaker.reagents.reagent_list]") // yogs -- Adds logging for when the beaker's removed from cryo
beaker = null
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/cryo_cell/update_remote_sight(mob/living/user)
return // we don't see the pipe network while inside cryo.
@@ -511,7 +512,7 @@
on = FALSE
else if(!state_open)
on = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/cryo_cell/AltClick(mob/user)
if(!user.canUseTopic(src, !issilicon(user)))
@@ -522,6 +523,6 @@
close_machine()
else
open_machine()
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef CRYOMOBS
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm b/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm
index 3cfca0993886..1ca74980ddd4 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm
@@ -23,7 +23,8 @@
piping_layer = 4
icon_state = "he_map-4"
-/obj/machinery/atmospherics/components/unary/heat_exchanger/update_icon()
+/obj/machinery/atmospherics/components/unary/heat_exchanger/update_icon(updates=ALL)
+ . = ..()
if(nodes[1])
icon_state = "he1"
var/obj/machinery/atmospherics/node = nodes[1]
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
index f48524d90e3e..368e9274af67 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
@@ -28,7 +28,7 @@
if(can_interact(user))
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/unary/outlet_injector/AltClick(mob/user)
@@ -36,7 +36,7 @@
volume_rate = MAX_TRANSFER_RATE
investigate_log("was set to [volume_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS)
balloon_alert(user, "volume output set to [volume_rate] L/s")
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/unary/outlet_injector/Destroy()
@@ -145,7 +145,7 @@
spawn(2)
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/outlet_injector/ui_interact(mob/user, datum/tgui/ui)
@@ -185,7 +185,7 @@
if(.)
volume_rate = clamp(rate, 0, MAX_TRANSFER_RATE)
investigate_log("was set to [volume_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
broadcast_status()
/obj/machinery/atmospherics/components/unary/outlet_injector/can_unwrench(mob/user)
@@ -199,7 +199,7 @@
return
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
// mapping
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index 62c5ef10b2ad..d8ac5b453adc 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -39,7 +39,8 @@
B += M.rating
heat_capacity = 5000 * ((B - 1) ** 2)
-/obj/machinery/atmospherics/components/unary/thermomachine/update_icon()
+/obj/machinery/atmospherics/components/unary/thermomachine/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(panel_open)
@@ -68,7 +69,7 @@
if(can_interact(user))
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/atmospherics/components/unary/thermomachine/AltClick(mob/living/user)
@@ -183,7 +184,7 @@
target_temperature = clamp(target, min_temperature, max_temperature)
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/thermomachine/freezer
name = "freezer"
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm b/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm
index e095517775f1..db73b2ea8a45 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm
@@ -18,10 +18,10 @@
/obj/machinery/atmospherics/components/unary/on_construction()
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/hide(intact)
- update_icon()
+ update_appearance(UPDATE_ICON)
..(intact)
/obj/machinery/atmospherics/components/unary/proc/assign_uid_vents()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index c61b24eabb59..986accee0521 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -119,7 +119,7 @@
space_shutoff_ticks--
if(space_shutoff_ticks <= 1 && !on)
on = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
if(!nodes[1])
on = FALSE
if(!on || welded)
@@ -137,7 +137,7 @@
last_moles_added = 0
on = FALSE
space_shutoff_ticks = 20 // shut off for about 20 seconds before trying again.
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(pump_direction & RELEASING) // internal -> external
@@ -302,7 +302,7 @@
// log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/components/unary/vent_pump/welder_act(mob/living/user, obj/item/I)
if(!I.tool_start_check(user, amount=0))
@@ -315,7 +315,7 @@
else
user.visible_message("[user] unwelded the vent.", span_notice("You unweld the vent."), span_italics("You hear welding."))
welded = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
pipe_vision_img.plane = ABOVE_HUD_PLANE
investigate_log("was [welded ? "welded shut" : "unwelded"] by [key_name(user)]", INVESTIGATE_ATMOS)
@@ -345,7 +345,7 @@
return
user.visible_message("[user] furiously claws at [src]!", "You manage to clear away the stuff blocking the vent", "You hear loud scraping noises.")
welded = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
pipe_vision_img.plane = ABOVE_HUD_PLANE
playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index 672fa9af62c9..2729cb4f456a 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -243,7 +243,7 @@
return //do not update_icon
broadcast_status()
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/machinery/atmospherics/components/unary/vent_scrubber/power_change()
@@ -261,7 +261,7 @@
else
user.visible_message("[user] unwelds the scrubber.", "You unweld the scrubber.", "You hear welding.")
welded = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
pipe_vision_img.plane = ABOVE_HUD_PLANE
investigate_log("was [welded ? "welded shut" : "unwelded"] by [key_name(user)]", INVESTIGATE_ATMOS)
@@ -287,7 +287,7 @@
return
user.visible_message("[user] furiously claws at [src]!", "You manage to clear away the stuff blocking the scrubber.", "You hear loud scraping noises.")
welded = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
pipe_vision_img.plane = ABOVE_HUD_PLANE
playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1)
diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm
index b6a6290539d9..886c83ceccc1 100644
--- a/code/modules/atmospherics/machinery/other/miner.dm
+++ b/code/modules/atmospherics/machinery/other/miner.dm
@@ -71,12 +71,12 @@
/obj/machinery/atmospherics/miner/proc/set_active(setting)
if(active != setting)
active = setting
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/miner/proc/set_broken(setting)
if(broken != setting)
broken = setting
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/miner/proc/update_power()
if(!active)
@@ -108,7 +108,8 @@
return TRUE
return FALSE
-/obj/machinery/atmospherics/miner/update_icon()
+/obj/machinery/atmospherics/miner/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(broken)
add_overlay("broken")
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm
index 10b8fff66ae3..90f2cc47bf89 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm
@@ -30,7 +30,8 @@
return ..(target, given_layer, FALSE) //we want a normal pipe instead
return ..(target, given_layer, TRUE)
-/obj/machinery/atmospherics/pipe/heat_exchanging/junction/update_icon()
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction/update_icon(updates=ALL)
+ . = ..()
icon_state = "pipe[nodes[1] ? "1" : "0"][nodes[2] ? "1" : "0"]-[piping_layer]"
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm
index ab63bddb6a14..8f81fafd0ff2 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm
@@ -26,7 +26,8 @@
initialize_directions = NORTH|SOUTH|EAST|WEST
initialize_directions &= ~dir
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_icon()
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm
index fddd9ea8b079..0379be8fe355 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm
@@ -24,7 +24,8 @@
/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/SetInitDirections()
initialize_directions = initial(initialize_directions)
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_icon()
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm
index fd013e11bd36..f3f472efb7e1 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm
@@ -24,7 +24,8 @@
if(EAST, WEST)
initialize_directions = EAST|WEST
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple/update_icon()
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple/update_icon(updates=ALL)
+ . = ..()
icon_state = "pipe[nodes[1] ? "1" : "0"][nodes[2] ? "1" : "0"]-[piping_layer]"
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm
index 40eeb619ba4f..14b95da4d789 100644
--- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm
@@ -42,7 +42,7 @@
/obj/machinery/atmospherics/pipe/layer_manifold/proc/get_all_connected_nodes()
return front_nodes + back_nodes + nodes
-/obj/machinery/atmospherics/pipe/layer_manifold/update_icon() //HEAVILY WIP FOR UPDATE ICONS!!
+/obj/machinery/atmospherics/pipe/layer_manifold/update_icon(updates=ALL) //HEAVILY WIP FOR UPDATE ICONS!!
cut_overlays()
layer = initial(layer) + (PIPING_LAYER_MAX * PIPING_LAYER_LCHANGE) //This is above everything else.
@@ -99,7 +99,7 @@
new_nodes += foundfront
if(foundback && !QDELETED(foundback))
new_nodes += foundback
- update_icon()
+ update_appearance(UPDATE_ICON)
return new_nodes
/obj/machinery/atmospherics/pipe/layer_manifold/atmosinit()
@@ -128,7 +128,7 @@
if(reference in back_nodes)
var/i = back_nodes.Find(reference)
back_nodes[i] = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/pipe/layer_manifold/relaymove(mob/living/user, dir)
if(initialize_directions & dir)
diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm
index e051cf04f92f..3ecdaa8246e3 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold.dm
@@ -22,7 +22,7 @@
var/mutable_appearance/center
-/* We use New() instead of Initialize(mapload) because these values are used in update_icon()
+/* We use New() instead of Initialize(mapload) because these values are used in update_appearance(UPDATE_ICON)
* in the mapping subsystem init before Initialize(mapload) is called in the atoms subsystem init.
* This is true for the other manifolds (the 4 ways and the heat exchanges) too.
*/
@@ -35,7 +35,8 @@
initialize_directions = NORTH|SOUTH|EAST|WEST
initialize_directions &= ~dir
-/obj/machinery/atmospherics/pipe/manifold/update_icon()
+/obj/machinery/atmospherics/pipe/manifold/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!center)
center = mutable_appearance(icon, "manifold_center")
diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
index 75aa68046046..73030a5698fa 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
@@ -29,7 +29,8 @@
/obj/machinery/atmospherics/pipe/manifold4w/SetInitDirections()
initialize_directions = initial(initialize_directions)
-/obj/machinery/atmospherics/pipe/manifold4w/update_icon()
+/obj/machinery/atmospherics/pipe/manifold4w/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!center)
center = mutable_appearance(icon, "manifold_center")
diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm
index 2d9dfc0b4a13..22f5650198dc 100644
--- a/code/modules/atmospherics/machinery/pipes/pipes.dm
+++ b/code/modules/atmospherics/machinery/pipes/pipes.dm
@@ -45,7 +45,7 @@
/obj/machinery/atmospherics/pipe/hide(i)
if(level == 1 && isturf(loc))
invisibility = i ? INVISIBILITY_MAXIMUM : 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/pipe/proc/releaseAirToTurf()
if(air_temporary)
@@ -98,7 +98,8 @@
qdel(meter)
. = ..()
-/obj/machinery/atmospherics/pipe/update_icon()
+/obj/machinery/atmospherics/pipe/update_icon(updates=ALL)
+ . = ..()
. = ..()
update_alpha()
@@ -109,7 +110,7 @@
for(var/i in 1 to device_type)
if(nodes[i])
var/obj/machinery/atmospherics/N = nodes[i]
- N.update_icon()
+ N.update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/pipe/return_pipenets()
. = list(parent)
diff --git a/code/modules/atmospherics/machinery/pipes/simple.dm b/code/modules/atmospherics/machinery/pipes/simple.dm
index 00d24cebda5e..3ac2daf18e06 100644
--- a/code/modules/atmospherics/machinery/pipes/simple.dm
+++ b/code/modules/atmospherics/machinery/pipes/simple.dm
@@ -32,7 +32,8 @@
if(EAST, WEST)
initialize_directions = EAST|WEST
-/obj/machinery/atmospherics/pipe/simple/update_icon()
+/obj/machinery/atmospherics/pipe/simple/update_icon(updates=ALL)
+ . = ..()
icon_state = "pipe[nodes[1] ? "1" : "0"][nodes[2] ? "1" : "0"]-[piping_layer]"
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index 632d2a6ed27c..fb6227a91a20 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -236,7 +236,7 @@
timing = !timing
if(timing)
valve_timer = world.time + (timer_set * 10)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/canister/proto
name = "prototype canister"
@@ -274,7 +274,7 @@
/obj/machinery/portable_atmospherics/canister/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/canister/Destroy()
qdel(pump)
@@ -308,7 +308,8 @@
#define CANISTER_LIGHT_RANGE 0.4
#define CANISTER_LIGHT_POWER 0.5
-/obj/machinery/portable_atmospherics/canister/update_icon()
+/obj/machinery/portable_atmospherics/canister/update_icon(updates=ALL)
+ . = ..()
if(stat & BROKEN)
cut_overlays()
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
@@ -476,7 +477,7 @@
if(.)
if(close_valve)
valve_open = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
investigate_log("Valve was closed by [key_name(user)].
", INVESTIGATE_ATMOS)
else if(valve_open && holding)
investigate_log("[key_name(user)] started a transfer into [holding].
", INVESTIGATE_ATMOS)
@@ -501,7 +502,7 @@
pump.airs[1] = null
pump.airs[2] = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/canister/ui_state(mob/user)
return GLOB.physical_state
@@ -647,7 +648,7 @@
investigate_log("[key_name(usr)] removed the [holding], leaving the valve open and transferring into the [span_boldannounce("air")].", INVESTIGATE_ATMOS)
replace_tank(usr, FALSE)
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/canister/examine(mob/dead/observer/user)
if(istype(user))
diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
index 6651e9376774..53764eb0bc1a 100644
--- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
+++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
@@ -70,7 +70,7 @@
anchored = TRUE //Prevent movement
pixel_x = new_port.pixel_x
pixel_y = new_port.pixel_y
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/portable_atmospherics/Move()
@@ -86,7 +86,7 @@
connected_port = null
pixel_x = 0
pixel_y = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/portable_atmospherics/AltClick(mob/living/user)
@@ -111,7 +111,7 @@
holding = new_tank
else
holding = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/portable_atmospherics/attackby(obj/item/W, mob/user, params)
@@ -122,7 +122,7 @@
return
to_chat(user, span_notice("[holding ? "In one smooth motion you pop [holding] out of [src]'s connector and replace it with [T]" : "You insert [T] into [src]"]."))
replace_tank(user, FALSE, T)
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(W.tool_behaviour == TOOL_WRENCH)
if(!(stat & BROKEN))
if(connected_port)
@@ -132,7 +132,7 @@
"[user] disconnects [src].", \
span_notice("You unfasten [src] from the port."), \
span_italics("You hear a ratchet."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else
var/obj/machinery/atmospherics/components/unary/portables_connector/possible_port = locate(/obj/machinery/atmospherics/components/unary/portables_connector) in loc
@@ -147,7 +147,7 @@
"[user] connects [src].", \
span_notice("You fasten [src] to the port."), \
span_italics("You hear a ratchet."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm
index c5558ef62a09..d0bf6f63f115 100644
--- a/code/modules/atmospherics/machinery/portable/pump.dm
+++ b/code/modules/atmospherics/machinery/portable/pump.dm
@@ -29,7 +29,8 @@
QDEL_NULL(pump)
return ..()
-/obj/machinery/portable_atmospherics/pump/update_icon()
+/obj/machinery/portable_atmospherics/pump/update_icon(updates=ALL)
+ . = ..()
icon_state = "psiphon:[on]"
cut_overlays()
@@ -67,7 +68,7 @@
if(prob(100 / severity))
direction = PUMP_OUT
pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/pump/replace_tank(mob/living/user, close_valve)
. = ..()
@@ -75,7 +76,7 @@
if(close_valve)
if(on)
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(on && holding && direction == PUMP_OUT)
investigate_log("[key_name(user)] started a transfer into [holding].
", INVESTIGATE_ATMOS)
@@ -153,10 +154,10 @@
if(holding)
replace_tank(usr, FALSE)
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/pump/CtrlShiftClick(mob/user)
if(!user.canUseTopic(src, BE_CLOSE))
return
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm
index 6d9e143dbfcc..6277805c345e 100644
--- a/code/modules/atmospherics/machinery/portable/scrubber.dm
+++ b/code/modules/atmospherics/machinery/portable/scrubber.dm
@@ -36,7 +36,8 @@
air_update_turf()
return ..()
-/obj/machinery/portable_atmospherics/scrubber/update_icon()
+/obj/machinery/portable_atmospherics/scrubber/update_icon(updates=ALL)
+ . = ..()
icon_state = "pscrubber:[on]"
cut_overlays()
@@ -79,7 +80,7 @@
if(is_operational())
if(prob(50 / severity))
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/scrubber/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -113,7 +114,7 @@
if(close_valve)
if(on)
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(on && holding)
investigate_log("[key_name(user)] started a transfer into [holding].
", INVESTIGATE_ATMOS)
@@ -131,7 +132,7 @@
if("toggle_filter")
scrubbing ^= gas_id2path(params["val"])
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/portable_atmospherics/scrubber/huge
name = "huge air scrubber"
@@ -149,13 +150,14 @@
/obj/machinery/portable_atmospherics/scrubber/huge/movable
movable = TRUE
-/obj/machinery/portable_atmospherics/scrubber/huge/update_icon()
+/obj/machinery/portable_atmospherics/scrubber/huge/update_icon(updates=ALL)
+ . = ..()
icon_state = "scrubber:[on]"
/obj/machinery/portable_atmospherics/scrubber/huge/process_atmos()
if((!anchored && !movable) || !is_operational())
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE
if(!on)
return
@@ -176,4 +178,4 @@
if(!user.canUseTopic(src, BE_CLOSE))
return
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index c183a67a633d..278eb22ed8d5 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -16,7 +16,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/machinery/gateway/Initialize(mapload)
randomspawns = GLOB.awaydestinations
- update_icon()
+ update_appearance(UPDATE_ICON)
if(!istype(src, /obj/machinery/gateway/centerstation) && !istype(src, /obj/machinery/gateway/centeraway))
switch(dir)
if(SOUTH,SOUTHEAST,SOUTHWEST)
@@ -26,9 +26,9 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/machinery/gateway/proc/toggleoff()
for(var/obj/machinery/gateway/G in linked)
G.active = 0
- G.update_icon()
+ G.update_appearance(UPDATE_ICON)
active = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/gateway/proc/detect()
if(!can_link)
@@ -53,7 +53,8 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
ready = TRUE
return ready
-/obj/machinery/gateway/update_icon()
+/obj/machinery/gateway/update_icon(updates=ALL)
+ . = ..()
if(active)
icon_state = "on"
return
@@ -80,7 +81,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
. = ..()
if(!GLOB.the_gateway)
GLOB.the_gateway = src
- update_icon()
+ update_appearance(UPDATE_ICON)
wait = world.time + CONFIG_GET(number/gateway_delay) //+ thirty minutes default
awaygate = locate(/obj/machinery/gateway/centeraway)
@@ -100,7 +101,8 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
var/obj/machinery/gateway/centeraway/awaygate = null
can_link = TRUE
-/obj/machinery/gateway/centerstation/update_icon()
+/obj/machinery/gateway/centerstation/update_icon(updates=ALL)
+ . = ..()
if(active)
icon_state = "oncenter"
return
@@ -129,9 +131,9 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
for(var/obj/machinery/gateway/G in linked)
G.active = 1
- G.update_icon()
+ G.update_appearance(UPDATE_ICON)
active = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
//okay, here's the good teleporting stuff
/obj/machinery/gateway/centerstation/Bumped(atom/movable/AM)
@@ -179,11 +181,12 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/machinery/gateway/centeraway/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
stationgate = locate(/obj/machinery/gateway/centerstation)
-/obj/machinery/gateway/centeraway/update_icon()
+/obj/machinery/gateway/centeraway/update_icon(updates=ALL)
+ . = ..()
if(active)
icon_state = "oncenter"
return
@@ -198,9 +201,9 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
for(var/obj/machinery/gateway/G in linked)
G.active = 1
- G.update_icon()
+ G.update_appearance(UPDATE_ICON)
active = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/gateway/centeraway/proc/check_exile_implant(mob/living/L)
for(var/obj/item/implant/exile/E in L.implants)//Checking that there is an exile implant
@@ -250,4 +253,4 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/item/paper/fluff/gateway
info = "Congratulations,
Your station has been selected to carry out the Gateway Project.
The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.
--Nanotrasen Bluespace Research"
- name = "Confidential Correspondence, Pg 1"
\ No newline at end of file
+ name = "Confidential Correspondence, Pg 1"
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index b6e9e8ca6ba2..2f5985e8cfa1 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -413,7 +413,8 @@
icon_state = "1"
color = rgb(0,0,255)
-/obj/structure/ladder/unbreakable/rune/update_icon()
+/obj/structure/ladder/unbreakable/rune/update_icon(updates=ALL)
+ . = ..()
return
/obj/structure/ladder/unbreakable/rune/show_fluff_message(up,mob/user)
diff --git a/code/modules/awaymissions/pamphlet.dm b/code/modules/awaymissions/pamphlet.dm
index 7cbbde096d6e..42a8a767c7a2 100644
--- a/code/modules/awaymissions/pamphlet.dm
+++ b/code/modules/awaymissions/pamphlet.dm
@@ -35,5 +35,6 @@
environs."
//we don't want the silly text overlay!
-/obj/item/paper/pamphlet/update_icon()
+/obj/item/paper/pamphlet/update_icon(updates=ALL)
+ . = ..()
return
diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm
index a65843e618e0..fc223419f786 100644
--- a/code/modules/buildmode/buildmode.dm
+++ b/code/modules/buildmode/buildmode.dm
@@ -134,12 +134,12 @@
close_switchstates()
mode = new newmode(src)
mode.enter_mode(src)
- modebutton.update_icon()
+ modebutton.update_appearance(UPDATE_ICON)
/datum/buildmode/proc/change_dir(newdir)
build_dir = newdir
close_dirswitch()
- dirbutton.update_icon()
+ dirbutton.update_appearance(UPDATE_ICON)
return 1
/datum/buildmode/proc/InterceptClickOn(mob/user, params, atom/object)
diff --git a/code/modules/buildmode/buttons.dm b/code/modules/buildmode/buttons.dm
index a60f105f8321..258c1a93e7e7 100644
--- a/code/modules/buildmode/buttons.dm
+++ b/code/modules/buildmode/buttons.dm
@@ -24,10 +24,11 @@
bd.toggle_modeswitch()
else if(pa.Find("right"))
bd.mode.change_settings(usr.client)
- update_icon()
+ update_appearance(UPDATE_ICON)
return 1
-/atom/movable/screen/buildmode/mode/update_icon()
+/atom/movable/screen/buildmode/mode/update_icon(updates=ALL)
+ . = ..()
if(bd && bd.mode)
icon_state = bd.mode.get_button_iconstate()
else
@@ -47,13 +48,14 @@
screen_loc = "NORTH,WEST+2"
name = "Change Dir"
-/atom/movable/screen/buildmode/bdir/update_icon()
+/atom/movable/screen/buildmode/bdir/update_icon(updates=ALL)
+ . = ..()
dir = bd.build_dir
return
/atom/movable/screen/buildmode/bdir/Click()
bd.toggle_dirswitch()
- update_icon()
+ update_appearance(UPDATE_ICON)
return 1
// used to switch between modes
diff --git a/code/modules/cargo/bounty_console.dm b/code/modules/cargo/bounty_console.dm
index 1059bb18e716..fc6891985393 100644
--- a/code/modules/cargo/bounty_console.dm
+++ b/code/modules/cargo/bounty_console.dm
@@ -23,7 +23,7 @@
/obj/item/paper/bounty_printout/Initialize(mapload)
. = ..()
info = "Nanotrasen Cargo Bounties
"
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/datum/bounty/B in GLOB.bounties_list)
if(B.claimed)
continue
diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm
index 40bf5def556a..cb49bc4a1135 100644
--- a/code/modules/cargo/centcom_podlauncher.dm
+++ b/code/modules/cargo/centcom_podlauncher.dm
@@ -714,7 +714,7 @@
if (isnull(target_turf))
return
var/obj/structure/closet/supplypod/centcompod/toLaunch = DuplicateObject(temp_pod) //Duplicate the temp_pod (which we have been varediting or configuring with the UI) and store the result
- toLaunch.update_icon()//we update_icon() here so that the door doesnt "flicker on" right after it lands
+ toLaunch.update_appearance(UPDATE_ICON)//we update_appearance(UPDATE_ICON) here so that the door doesnt "flicker on" right after it lands
var/shippingLane = GLOB.areas_by_type[/area/centcom/supplypod/podStorage]
toLaunch.forceMove(shippingLane)
if (launchClone) //We arent launching the actual items from the bay, rather we are creating clones and launching those
diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm
index c9d22a586f26..a0d8c22af791 100644
--- a/code/modules/cargo/expressconsole.dm
+++ b/code/modules/cargo/expressconsole.dm
@@ -192,7 +192,7 @@
. = TRUE
message_admins("[ADMIN_LOOKUPFLW(usr)] has ordered a [SO.pack.name] pod at location [ADMIN_VERBOSEJMP(LZ)]")
investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]), paid by [D.account_holder] has shipped.", INVESTIGATE_CARGO)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
if(SO.pack.get_cost() * (0.72*MAX_EMAG_ROCKETS) <= points_to_check) // bulk discount :^)
landingzone = GLOB.areas_by_type[pick(GLOB.the_station_areas)] //override default landing zone
@@ -212,7 +212,7 @@
new /obj/effect/DPtarget(LZ, podType, SO)
amountordered++
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
CHECK_TICK
message_admins("[ADMIN_LOOKUPFLW(usr)] has ordered a [SO.pack.name] pod x[amountordered] at location [ADMIN_VERBOSEJMP(LZ)]")
investigate_log("Order #[SO.id] ([SO.pack.name] x[amountordered], placed by [key_name(SO.orderer_ckey)]), paid by [D.account_holder] has shipped.", INVESTIGATE_CARGO)
diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm
index 7ae9c3426c5e..dd3242739b63 100644
--- a/code/modules/cargo/gondolapod.dm
+++ b/code/modules/cargo/gondolapod.dm
@@ -29,7 +29,8 @@
name = linked_pod.name
. = ..()
-/mob/living/simple_animal/pet/gondola/gondolapod/update_icon()
+/mob/living/simple_animal/pet/gondola/gondolapod/update_icon(updates=ALL)
+ . = ..()
if(opened)
icon_state = "gondolapod_open"
else
@@ -60,12 +61,12 @@
/mob/living/simple_animal/pet/gondola/gondolapod/setOpened()
opened = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, setClosed)), 50)
/mob/living/simple_animal/pet/gondola/gondolapod/setClosed()
opened = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/pet/gondola/gondolapod/death()
qdel(linked_pod) //Will cause the open() proc for the linked supplypod to be called with the "broken" parameter set to true, meaning that it will dump its contents on death
diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm
index ca7883ffb2bf..330295e2a226 100644
--- a/code/modules/cargo/order.dm
+++ b/code/modules/cargo/order.dm
@@ -54,7 +54,7 @@
P.info += "Rank: [orderer_rank]
"
P.info += "Comment: [reason]
"
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
return P
/datum/supply_order/proc/generateManifest(obj/structure/closet/crate/C, owner, packname) //generates-the-manifests.
@@ -92,10 +92,10 @@
while(--lost >= 0)
qdel(pick(C.contents))
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
P.forceMove(C)
C.manifest = P
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
return P
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index f7c55fc15716..fc365bc33e0b 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -109,7 +109,7 @@
door = "[base]_door"
else
door = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/proc/SetReverseIcon()
fin_mask = "bottomfin"
@@ -117,7 +117,7 @@
icon_state = GLOB.podstyles[style][POD_BASE] + "_reverse"
pixel_x = initial(pixel_x)
transform = matrix()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/proc/backToNonReverseIcon()
fin_mask = initial(fin_mask)
@@ -125,9 +125,10 @@
icon_state = GLOB.podstyles[style][POD_BASE]
pixel_x = initial(pixel_x)
transform = matrix()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/closet/supplypod/update_icon()
+/obj/structure/closet/supplypod/update_icon(updates=ALL)
+ . = ..()
var/list/new_overlays = update_overlays()
if(managed_overlays)
cut_overlay(managed_overlays)
@@ -137,6 +138,7 @@
add_overlay(new_overlays)
/obj/structure/closet/supplypod/proc/update_overlays()
+ . = ..()
. = list()
if(style == STYLE_INVISIBLE)
return
@@ -420,17 +422,17 @@
/obj/structure/closet/supplypod/setOpened() //Proc exists here, as well as in any atom that can assume the role of a "holder" of a supplypod. Check the open_pod() proc for more details
opened = TRUE
density = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/extractionpod/setOpened()
opened = TRUE
density = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/setClosed() //Ditto
opened = FALSE
density = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/proc/tryMakeRubble(turf/T) //Ditto
if (rubble_type == RUBBLE_NONE)
@@ -443,7 +445,7 @@
return
rubble = new /obj/effect/supplypod_rubble(T)
rubble.setStyle(rubble_type, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/Moved()
deleteRubble()
@@ -452,7 +454,7 @@
/obj/structure/closet/supplypod/proc/deleteRubble()
rubble?.fadeAway()
rubble = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/supplypod/proc/addGlow()
if (GLOB.podstyles[style][POD_SHAPE] != POD_SHAPE_NORML)
@@ -599,7 +601,7 @@
/obj/effect/DPtarget/proc/beginLaunch(effectCircle) //Begin the animation for the pod falling. The effectCircle param determines whether the pod gets to come in from any descent angle
pod.addGlow()
- pod.update_icon()
+ pod.update_appearance(UPDATE_ICON)
if (pod.style != STYLE_INVISIBLE)
pod.add_filter("motionblur",1,list("type"="motion_blur", "x"=0, "y"=3))
pod.forceMove(drop_location())
diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm
index a8464a573325..d19a4cd254de 100644
--- a/code/modules/cargo/supplypod_beacon.dm
+++ b/code/modules/cargo/supplypod_beacon.dm
@@ -29,9 +29,10 @@
playsound(src,'sound/machines/synth_no.ogg',50,0)
if (SP_UNREADY)
ready = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/supplypod_beacon/update_icon()
+/obj/item/supplypod_beacon/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if (launched)
add_overlay("sp_green")
diff --git a/code/modules/client/preferences/ghost.dm b/code/modules/client/preferences/ghost.dm
index 648feea31e49..442e8c8d789e 100644
--- a/code/modules/client/preferences/ghost.dm
+++ b/code/modules/client/preferences/ghost.dm
@@ -16,7 +16,7 @@
return
ghost.ghost_accs = value
- ghost.update_icon()
+ ghost.update_appearance(UPDATE_ICON)
/datum/preference/choiced/ghost_accessories/deserialize(input, datum/preferences/preferences)
// Old ghost preferences used to be 1/50/100.
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 42490f1d6549..75c006a7b3a1 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -243,7 +243,7 @@
var/obj/item/clothing/head/helmet/helmet = initial(HS.helmettype)
I.head_piece.initial_state = initial(helmet.icon_state)
update_item(helmet, I.head_piece)
- I.head_piece.update_icon()
+ I.head_piece.update_appearance(UPDATE_ICON)
qdel(helmet)
//YOGS END
target.icon = initial(picked_item.icon)
diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm
index 98ea902107de..a4a9742044f4 100644
--- a/code/modules/clothing/ears/_ears.dm
+++ b/code/modules/clothing/ears/_ears.dm
@@ -35,15 +35,16 @@
/obj/item/clothing/ears/headphones/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/clothing/ears/headphones/update_icon()
+/obj/item/clothing/ears/headphones/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)]_[headphones_on? "on" : "off"]"
item_state = "[initial(item_state)]_[headphones_on? "on" : "off"]"
/obj/item/clothing/ears/headphones/proc/toggle(owner)
headphones_on = !headphones_on
- update_icon()
+ update_appearance(UPDATE_ICON)
var/mob/living/carbon/human/H = owner
if(istype(H))
H.update_inv_ears()
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index bd0d1dba3c7e..63126f58f413 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -24,7 +24,7 @@
/obj/item/clothing/glasses/meson/engine/Initialize(mapload)
. = ..()
START_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/glasses/meson/engine/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -50,7 +50,7 @@
if(H.glasses == src)
H.update_sight()
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/X in actions)
var/datum/action/A = X
A.build_all_button_icons()
@@ -114,7 +114,8 @@
pic = new('icons/turf/overlays.dmi', place, "redOverlay", AREA_LAYER)
flick_overlay(pic, list(user.client), 8)
-/obj/item/clothing/glasses/meson/engine/update_icon()
+/obj/item/clothing/glasses/meson/engine/update_icon(updates=ALL)
+ . = ..()
icon_state = "trayson-[mode]"
update_mob()
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 09dce2c10e8e..2675ddcde344 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -31,9 +31,10 @@
turn_on(user)
else
turn_off(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/clothing/head/hardhat/update_icon()
+/obj/item/clothing/head/hardhat/update_icon(updates=ALL)
+ . = ..()
icon_state = "hardhat[on]_[hat_type]"
item_state = "hardhat[on]_[hat_type]"
if(ishuman(loc))
@@ -128,7 +129,7 @@
/obj/item/clothing/head/hardhat/weldhat/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/head/hardhat/weldhat/attack_self(mob/living/user)
toggle_helmet_light(user)
@@ -147,7 +148,7 @@
/obj/item/clothing/head/hardhat/weldhat/proc/toggle_welding_screen(mob/living/user)
if(weldingvisortoggle(user))
playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands)
. = ..()
@@ -156,7 +157,8 @@
if(!up)
. += mutable_appearance(mob_overlay_icon, "weldvisor")
-/obj/item/clothing/head/hardhat/weldhat/update_icon()
+/obj/item/clothing/head/hardhat/weldhat/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!up)
add_overlay("weldvisor")
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 015fa6c1949e..bd04b6b9a7c0 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -46,7 +46,7 @@
if(A == attached_light)
set_attached_light(null)
update_helmlight()
- update_icon()
+ update_appearance(UPDATE_ICON)
QDEL_NULL(alight)
qdel(A)
return ..()
@@ -368,7 +368,8 @@
//LightToggle
-/obj/item/clothing/head/helmet/update_icon()
+/obj/item/clothing/head/helmet/update_icon(updates=ALL)
+ . = ..()
var/state = "[initial(icon_state)]"
if(attached_light)
if(attached_light.on)
@@ -396,7 +397,7 @@
return
to_chat(user, span_notice("You click [S] into place on [src]."))
set_attached_light(S)
- update_icon()
+ update_appearance(UPDATE_ICON)
update_helmlight()
alight = new(src)
if(loc == user)
@@ -416,7 +417,7 @@
var/obj/item/flashlight/removed_light = set_attached_light(null)
update_helmlight()
removed_light.update_brightness(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
user.update_inv_head()
QDEL_NULL(alight)
return TRUE
@@ -441,7 +442,7 @@
/obj/item/clothing/head/helmet/proc/update_helmlight()
if(attached_light)
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/X in actions)
var/datum/action/A = X
A.build_all_button_icons()
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 33b94dd71cbe..6bb1beaa8b55 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -207,9 +207,10 @@
/obj/item/clothing/head/wig/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/clothing/head/wig/update_icon()
+/obj/item/clothing/head/wig/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
icon_state = ""
var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style]
@@ -241,7 +242,7 @@
user.visible_message(span_notice("[user] changes \the [src]'s hairstyle to [new_style]."), span_notice("You change \the [src]'s hairstyle to [new_style]."))
if(adjustablecolor)
hair_color = input(usr,"","Choose Color",hair_color) as color|null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/head/wig/random/Initialize(mapload)
@@ -264,7 +265,7 @@
. = ..()
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
hair_color = "#[user.hair_color]"
- update_icon()
+ update_appearance(UPDATE_ICON)
user.update_inv_head()
/obj/item/clothing/head/bronze
diff --git a/code/modules/clothing/neck/bodycamera.dm b/code/modules/clothing/neck/bodycamera.dm
index a73749e00491..bdb6d15adc23 100644
--- a/code/modules/clothing/neck/bodycamera.dm
+++ b/code/modules/clothing/neck/bodycamera.dm
@@ -26,7 +26,7 @@
bodcam.network = list("ss13")
bodcam.internal_light = FALSE
bodcam.status = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/neck/bodycam/attack_self(mob/user)
if(!setup)
@@ -39,7 +39,7 @@
bodcam.status = TRUE
to_chat(user, span_notice("You turn on the body camera."))
getMobhook(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/neck/bodycam/AltClick(mob/user)
if(preset)
@@ -52,9 +52,10 @@
bodcam.network[1] = temp
setup = TRUE
bodcam.status = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/clothing/neck/bodycam/update_icon()
+/obj/item/clothing/neck/bodycam/update_icon(updates=ALL)
+ . = ..()
..()
var/suffix = "off"
if(bodcam.status)
@@ -92,7 +93,7 @@
Disconnect()
bodcam.c_tag = null
bodcam.network[1] = null //requires a reset
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/neck/bodycam/Destroy()
Disconnect()
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index 064b1dc748fc..d3d7b4c12f0d 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -23,7 +23,7 @@
on = !on
if(!always_noslip)
clothing_flags &= ~NOSLIP
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(loc, span_warning("You ran out of bananium!"))
else
new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(usr.dir, 180))) //honk
@@ -45,7 +45,7 @@
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
if(bananium.get_material_amount(/datum/material/bananium))
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You [on ? "activate" : "deactivate"] the prototype shoes."))
if(!always_noslip)
if(on)
@@ -55,7 +55,8 @@
else
to_chat(user, span_warning("You need bananium to turn the prototype shoes on!"))
-/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon()
+/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon(updates=ALL)
+ . = ..()
if(on)
icon_state = "clown_prototype_on"
else
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index fd422cc78b1e..e8edd0bad877 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -305,7 +305,8 @@
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
visor_flags = STOPSPRESSUREDAMAGE
-/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
+/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon(updates=ALL)
+ . = ..()
icon_state = "hardsuit[on]-[hardsuit_type]"
/obj/item/clothing/head/helmet/space/hardsuit/syndi/Initialize(mapload)
@@ -336,7 +337,7 @@
flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
flags_inv &= ~visor_flags_inv
cold_protection &= ~HEAD
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
toggle_hardsuit_mode(user)
user.update_inv_head()
@@ -363,7 +364,7 @@
linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS)
linkedsuit.icon_state = "hardsuit[on]-[hardsuit_type]"
- linkedsuit.update_icon()
+ linkedsuit.update_appearance(UPDATE_ICON)
user.update_inv_wear_suit()
user.update_inv_w_uniform()
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 5200b8744533..ce806464ec2a 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -137,7 +137,7 @@
P.info = text("Forensic Record - (FR-[])
", frNum)
P.info += jointext(log, "
")
P.info += "
Notes:
"
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
if(ismob(loc))
var/mob/M = loc
diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm
index 4fa101792923..0832da7b7b52 100644
--- a/code/modules/events/pirates.dm
+++ b/code/modules/events/pirates.dm
@@ -137,7 +137,7 @@
. = ..()
gps = new/obj/item/gps/internal/pirate(src)
gps.tracking = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/shuttle_scrambler/process()
if(active)
@@ -168,7 +168,7 @@
if(active || !user.canUseTopic(src, BE_CLOSE))
return
toggle_on(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
send_notification()
else
dump_loot(user)
@@ -195,7 +195,8 @@
active = FALSE
STOP_PROCESSING(SSobj,src)
-/obj/machinery/shuttle_scrambler/update_icon()
+/obj/machinery/shuttle_scrambler/update_icon(updates=ALL)
+ . = ..()
if(active)
icon_state = "dominator-blue"
else
diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm
index a581d6c659ea..28b1f2d0d176 100644
--- a/code/modules/events/prison_break.dm
+++ b/code/modules/events/prison_break.dm
@@ -49,7 +49,7 @@
if(istype(O, /obj/structure/closet/secure_closet))
var/obj/structure/closet/secure_closet/temp = O
temp.locked = FALSE
- temp.update_icon()
+ temp.update_appearance(UPDATE_ICON)
else if(istype(O, /obj/machinery/door/airlock))
var/obj/machinery/door/airlock/temp = O
//Skip doors in critical positions, such as the SM chamber, and skip doors the AI can't control since it's a virus
diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm
index 328a3bba45fe..a03c131d4ed8 100644
--- a/code/modules/events/shuttle_loan.dm
+++ b/code/modules/events/shuttle_loan.dm
@@ -271,7 +271,7 @@
setAnchored(TRUE)
timer_set = rand(480, 600) //once the supply shuttle docks (after 5 minutes travel time), players have between 3-5 minutes to defuse the bomb
activate()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/paper/fluff/cargo/bomb
name = "hastly scribbled note"
diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm
index 0666ca9bd206..bd0e32ace46b 100644
--- a/code/modules/events/stray_cargo.dm
+++ b/code/modules/events/stray_cargo.dm
@@ -52,7 +52,7 @@
var/datum/supply_pack/SP = new pack_type
var/obj/structure/closet/crate/crate = SP.generate(null)
crate.locked = FALSE //Unlock secure crates
- crate.update_icon()
+ crate.update_appearance(UPDATE_ICON)
var/obj/structure/closet/supplypod/pod = make_pod()
new /obj/effect/DPtarget(LZ, pod, crate)
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 0a0d75ec7aaf..549ecd66acf5 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -23,9 +23,10 @@
age_restricted = TRUE
/obj/item/reagent_containers/food/drinks/bottle/on_reagent_change(changetype)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/food/drinks/bottle/update_icon()
+/obj/item/reagent_containers/food/drinks/bottle/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents.total_volume)
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 799324b0f0ca..4e081b85a8a8 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -347,9 +347,10 @@
/obj/item/reagent_containers/glass/bowl/on_reagent_change(changetype)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/bowl/update_icon()
+/obj/item/reagent_containers/glass/bowl/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents && reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/obj/food/soupsalad.dmi', "fullbowl")
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 254025024908..39207c494d3e 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -672,9 +672,10 @@
/obj/item/reagent_containers/food/snacks/pancakes/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/food/snacks/pancakes/update_icon()
+/obj/item/reagent_containers/food/snacks/pancakes/update_icon(updates=ALL)
+ . = ..()
if(contents.len)
name = "stack of pancakes"
else
@@ -738,13 +739,13 @@
pancake.pixel_x = rand(-1,1)
pancake.pixel_y = 3 * contents.len - 1
add_overlay(pancake)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/food/snacks/pancakes/attack(mob/M, mob/user, def_zone, stacked = TRUE)
if(user.a_intent == INTENT_HARM || !contents.len || !stacked)
return ..()
var/obj/item/O = contents[contents.len]
. = O.attack(M, user, def_zone, FALSE)
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef PANCAKE_MAX_STACK
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 756db185425b..5b478fa3728e 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -38,7 +38,8 @@
if(M.rating >= 2)
. += "Gibber has been upgraded to process inorganic materials."
-/obj/machinery/gibber/update_icon()
+/obj/machinery/gibber/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if (dirty)
add_overlay("grbloody")
@@ -99,7 +100,7 @@
user.visible_message(span_danger("[user] stuffs [C] into the gibber!"))
C.forceMove(src)
occupant = C
- update_icon()
+ update_appearance(UPDATE_ICON)
else
startgibbing(user)
@@ -133,7 +134,7 @@
/obj/machinery/gibber/proc/go_out()
dropContents()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/gibber/proc/startgibbing(mob/user)
if(src.operating)
@@ -145,7 +146,7 @@
visible_message(span_italics("You hear a loud squelchy grinding sound."))
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
operating = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
var/offset = prob(50) ? -2 : 2
animate(src, pixel_x = pixel_x + offset, time = 0.02 SECONDS, loop = 200) //start shaking
@@ -221,7 +222,7 @@
pixel_x = initial(pixel_x) //return to its spot after shaking
operating = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
//auto-gibs anything that bumps into it
/obj/machinery/gibber/autogibber
diff --git a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
index 56065b62c0c0..a88ac75caedf 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
@@ -32,7 +32,7 @@
return
if(!on && default_deconstruction_screwdriver(user, icon_state, icon_state, I))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(griddled_objects.len >= max_items)
@@ -49,7 +49,7 @@
I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/8), world.icon_size/4)
to_chat(user, "You place [I] on [src].")
AddToGrill(I, user)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
@@ -62,7 +62,7 @@
begin_processing()
else
end_processing()
- update_icon()
+ update_appearance(UPDATE_ICON)
update_grill_audio()
@@ -106,7 +106,8 @@
if(prob(10))
visible_message("[griddled_item] doesn't seem to be doing too great on the [src]!")
-/obj/machinery/griddle/update_icon()
+/obj/machinery/griddle/update_icon(updates=ALL)
+ . = ..()
. = ..()
if(panel_open)
icon_state = "griddle[variant]_o"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
index ce0259a5c6c0..29a62c32cc1b 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
@@ -20,7 +20,8 @@
. = ..()
grill_loop = new(list(src), FALSE)
-/obj/machinery/grill/update_icon()
+/obj/machinery/grill/update_icon(updates=ALL)
+ . = ..()
if(grilled_item)
icon_state = "grill"
else if(grill_fuel > 0)
@@ -38,7 +39,7 @@
else
grill_fuel += (50 * stackamount)
S.use(stackamount)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(I.resistance_flags & INDESTRUCTIBLE)
to_chat(user, span_warning("You don't feel it would be wise to grill [I]..."))
@@ -59,7 +60,7 @@
RegisterSignal(grilled_item, COMSIG_GRILL_COMPLETED, PROC_REF(GrillCompleted))
grilled_item.foodtype |= GRILLED
to_chat(user, span_notice("You put the [grilled_item] on [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
grill_loop.start()
return
else
@@ -67,13 +68,13 @@
grill_fuel += (20 * (I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy)))
to_chat(user, span_notice("You pour the Monkey Energy in [src]."))
I.reagents.remove_reagent(/datum/reagent/consumable/monkey_energy, I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
..()
/obj/machinery/grill/process(delta_time)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
if(grill_fuel <= 0)
return
else
@@ -124,7 +125,7 @@
if(grilled_item)
to_chat(user, span_notice("You take out [grilled_item] from [src]."))
grilled_item.forceMove(drop_location())
- update_icon()
+ update_appearance(UPDATE_ICON)
return
return ..()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index c32488db9083..78c4e814ff54 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -87,7 +87,8 @@
"- Capacity: [max_n_of_items] items.\n"+\
span_notice("- Cook time reduced by [(efficiency - 1) * 25]%.")
-/obj/machinery/microwave/update_icon()
+/obj/machinery/microwave/update_icon(updates=ALL)
+ . = ..()
if(broken)
icon_state = "mwb"
else if(dirty_anim_playing)
@@ -109,7 +110,7 @@
if(dirty < 100)
if(default_deconstruction_screwdriver(user, icon_state, icon_state, O) || default_unfasten_wrench(user, O))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(panel_open && is_wire_tool(O))
@@ -127,7 +128,7 @@
if(O.use_tool(src, user, 20))
user.visible_message("[user] fixes \the [src].", span_notice("You fix \the [src]."))
broken = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
return FALSE //to use some fuel
else
to_chat(user, span_warning("It's broken!"))
@@ -141,7 +142,7 @@
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
user.visible_message("[user] has cleaned \the [src].", span_notice("You clean \the [src]."))
dirty = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("You need more space cleaner!"))
return TRUE
@@ -152,7 +153,7 @@
if(do_after(user, P.cleanspeed, src))
user.visible_message("[user] has cleaned \the [src].", span_notice("You clean \the [src]."))
dirty = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
if(dirty == 100) // The microwave is all dirty so can't be used!
@@ -258,7 +259,7 @@
set_light(1.5)
soundloop.start()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/microwave/proc/spark()
visible_message(span_warning("Sparks fly around [src]!"))
@@ -282,7 +283,7 @@
turn_on()
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
dirty_anim_playing = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
loop(MICROWAVE_MUCK, 4)
/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * efficiency, 2)) // standard wait is 10
@@ -349,7 +350,7 @@
/obj/machinery/microwave/proc/after_finish_loop()
set_light(0)
soundloop.stop()
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef MICROWAVE_NORMAL
#undef MICROWAVE_MUCK
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
index 471abd866cc4..8a6293889681 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
@@ -42,7 +42,8 @@
QDEL_NULL(particles)
. = ..()
-/obj/machinery/oven/update_icon()
+/obj/machinery/oven/update_icon(updates=ALL)
+ . = ..()
update_overlays()
if(panel_open)
icon_state = "oven_o"
@@ -54,6 +55,7 @@
return ..()
/obj/machinery/oven/proc/update_overlays()
+ . = ..()
cut_overlays()
var/mutable_appearance/door_overlay
if(open)
@@ -87,7 +89,7 @@
if(prob(10))
visible_message(span_danger("You smell a burnt smell coming from [src]!"))
set_smoke_state(worst_cooked_food_state)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/oven/attackby(obj/item/I, mob/user, params)
@@ -110,7 +112,7 @@
RegisterSignal(used_tray, COMSIG_MOVABLE_MOVED, PROC_REF(ItemMoved))
update_baking_audio()
- update_icon()
+ update_appearance(UPDATE_ICON)
///Called when the tray is moved out of the oven in some way
/obj/machinery/oven/proc/ItemMoved(obj/item/oven_tray, atom/OldLoc, Dir, Forced)
@@ -144,7 +146,7 @@
if(used_tray)
begin_processing()
used_tray.vis_flags |= VIS_HIDE
- update_icon()
+ update_appearance(UPDATE_ICON)
update_baking_audio()
return TRUE
@@ -178,7 +180,7 @@
to_chat(user,span_notice("The access panel won't budge with a tray inside!"))
return TRUE
panel_open = !panel_open
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index f85e1aff0663..a50e1a63c76f 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -146,10 +146,11 @@
/obj/machinery/smartfridge/obj_break(damage_flag)
if(!(stat & BROKEN))
stat |= BROKEN
- update_icon()
+ update_appearance(UPDATE_ICON)
..(damage_flag)
-/obj/machinery/smartfridge/update_icon()
+/obj/machinery/smartfridge/update_icon(updates=ALL)
+ . = ..()
var/startstate = initial(icon_state)
if(stat & BROKEN)
icon_state = "[startstate]-broken"
@@ -230,7 +231,7 @@
if(accept_check(O))
load(O)
user.visible_message("[user] has added \the [O] to \the [src].", span_notice("You add \the [O] to \the [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
updateUsrDialog()
if(contents.len >= max_n_of_items)
indicate_full()
@@ -245,7 +246,7 @@
if(accept_check(G))
load(G)
loaded++
- update_icon()
+ update_appearance(UPDATE_ICON)
updateUsrDialog()
if(loaded)
@@ -272,7 +273,7 @@
load(organ)
OS.clear_organ()
user.visible_message("[user] has added \the [organ] to \the [src].", span_notice("You add \the [organ] to \the [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
updateUsrDialog()
if(contents.len >= max_n_of_items)
indicate_full()
@@ -377,7 +378,7 @@
if(O.name == params["name"])
dispense(O, usr)
break
- update_icon()
+ update_appearance(UPDATE_ICON)
cut_overlay(full_indicator_state)
animate_dispenser()
return TRUE
@@ -390,7 +391,7 @@
dispense(O, usr)
desired--
- update_icon()
+ update_appearance(UPDATE_ICON)
cut_overlay(full_indicator_state)
animate_dispenser()
return TRUE
@@ -454,7 +455,7 @@
/obj/machinery/smartfridge/drying_rack/ui_act(action, params)
. = ..()
if(.)
- update_icon() // This is to handle a case where the last item is taken out manually instead of through drying pop-out
+ update_appearance(UPDATE_ICON) // This is to handle a case where the last item is taken out manually instead of through drying pop-out
return
switch(action)
if("Dry")
@@ -474,9 +475,10 @@
/obj/machinery/smartfridge/drying_rack/load() //For updating the filled overlay
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/smartfridge/drying_rack/update_icon()
+/obj/machinery/smartfridge/drying_rack/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
if(drying)
@@ -489,7 +491,7 @@
if(drying)
if(rack_dry())//no need to update unless something got dried
SStgui.update_uis(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/smartfridge/drying_rack/accept_check(obj/item/O)
if(istype(O, /obj/item/reagent_containers/food/snacks/))
@@ -507,7 +509,7 @@
else
drying = TRUE
use_power = ACTIVE_POWER_USE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/smartfridge/drying_rack/proc/rack_dry()
for(var/obj/item/reagent_containers/food/snacks/S in src)
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index 15d995943de2..ec6c318fa731 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -31,14 +31,15 @@
/obj/item/pizzabox/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/pizzabox/Destroy()
unprocess()
return ..()
-/obj/item/pizzabox/update_icon()
+/obj/item/pizzabox/update_icon(updates=ALL)
+ . = ..()
// Description
desc = initial(desc)
if(open)
@@ -104,7 +105,7 @@
audible_message(span_warning("[icon2html(src, hearers(src))] *beep*"))
bomb_active = TRUE
START_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/pizzabox/attack_hand(mob/user)
@@ -115,13 +116,13 @@
user.put_in_hands(pizza)
to_chat(user, span_notice("You take [pizza] out of [src]."))
pizza = null
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(bomb)
if(wires.is_all_cut() && bomb_defused)
user.put_in_hands(bomb)
to_chat(user, span_notice("You carefully remove the [bomb] from [src]."))
bomb = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else
bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num|null
@@ -136,14 +137,14 @@
bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!"
to_chat(user, span_warning("You trap [src] with [bomb]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(boxes.len)
var/obj/item/pizzabox/topbox = boxes[boxes.len]
boxes -= topbox
user.put_in_hands(topbox)
to_chat(user, span_notice("You remove the topmost [name] from the stack."))
- topbox.update_icon()
- update_icon()
+ topbox.update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON)
user.regenerate_icons()
/obj/item/pizzabox/attackby(obj/item/I, mob/user, params)
@@ -158,8 +159,8 @@
boxes += add
newbox.boxes.Cut()
to_chat(user, span_notice("You put [newbox] on top of [src]!"))
- newbox.update_icon()
- update_icon()
+ newbox.update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON)
user.regenerate_icons()
if(boxes.len >= 5)
if(prob(10 * boxes.len))
@@ -179,7 +180,7 @@
return
pizza = I
to_chat(user, span_notice("You put [I] in [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(istype(I, /obj/item/bombcore/miniature/pizza))
if(open && !bomb)
@@ -188,7 +189,7 @@
wires = new /datum/wires/explosive/pizza(src)
bomb = I
to_chat(user, span_notice("You put [I] in [src]. Sneeki breeki..."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(bomb)
to_chat(user, span_notice("[src] already has a bomb in it!"))
@@ -202,7 +203,7 @@
if(!user.canUseTopic(src, BE_CLOSE))
return
to_chat(user, span_notice("You write with [I] on [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(is_wire_tool(I))
if(wires && bomb)
@@ -252,9 +253,9 @@
fall_dir = pick(GLOB.alldirs)
step(P.pizza, fall_dir)
P.pizza = null
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
boxes -= P
- update_icon()
+ update_appearance(UPDATE_ICON)
if(isliving(loc))
var/mob/living/L = loc
L.regenerate_icons()
@@ -263,7 +264,7 @@
STOP_PROCESSING(SSobj, src)
qdel(wires)
wires = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/pizzabox/bomb/Initialize(mapload)
. = ..()
diff --git a/code/modules/food_and_drinks/plate.dm b/code/modules/food_and_drinks/plate.dm
index 5140cd543efb..5741018c6e2b 100644
--- a/code/modules/food_and_drinks/plate.dm
+++ b/code/modules/food_and_drinks/plate.dm
@@ -31,7 +31,7 @@
I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -placement_offset, max_height_offset)
to_chat(user, span_notice("You place [I] on [src]."))
AddToPlate(I, user)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm
index 9c53e54cc252..7e4f55ac5625 100644
--- a/code/modules/games/cas.dm
+++ b/code/modules/games/cas.dm
@@ -78,7 +78,7 @@
H.pickup(user)
user.put_in_hands(H)
user.visible_message("[user] draws a card from the deck.", span_notice("You draw a card from the deck."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/toy/cards/deck/cas/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/toy/cards/singlecard/cas))
@@ -93,9 +93,10 @@
cards += RC
user.visible_message("[user] adds a card to the bottom of the deck.",span_notice("You add the card to the bottom of the deck."))
qdel(SC)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/toy/cards/deck/cas/update_icon()
+/obj/item/toy/cards/deck/cas/update_icon(updates=ALL)
+ . = ..()
if(cards.len < 26)
icon_state = "deck_[deckstyle]_low"
@@ -129,14 +130,15 @@
else if(flipped)
name = buffertext
flipped = !flipped
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/toy/cards/singlecard/cas/AltClick(mob/living/user)
if(!ishuman(user) || !user.canUseTopic(src, BE_CLOSE))
return
Flip()
-/obj/item/toy/cards/singlecard/cas/update_icon()
+/obj/item/toy/cards/singlecard/cas/update_icon(updates=ALL)
+ . = ..()
if(flipped)
icon_state = "[card_face]_flipped"
else
diff --git a/code/modules/goals/station_goals/bsa.dm b/code/modules/goals/station_goals/bsa.dm
index 11149fb38997..887252463c37 100644
--- a/code/modules/goals/station_goals/bsa.dm
+++ b/code/modules/goals/station_goals/bsa.dm
@@ -255,7 +255,7 @@
if("recalibrate")
calibrate(usr)
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/computer/bsa_control/proc/calibrate(mob/user)
if(!GLOB.bsa_unlock)
diff --git a/code/modules/goals/station_goals/shield.dm b/code/modules/goals/station_goals/shield.dm
index f981ad6066a1..08e2b455144b 100644
--- a/code/modules/goals/station_goals/shield.dm
+++ b/code/modules/goals/station_goals/shield.dm
@@ -116,9 +116,10 @@
else
animate(src, pixel_y = 0, time = 1 SECONDS)
anchored = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/satellite/update_icon()
+/obj/machinery/satellite/update_icon(updates=ALL)
+ . = ..()
icon_state = active ? "sat_active" : "sat_inactive"
/obj/machinery/satellite/multitool_act(mob/living/user, obj/item/I)
diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm
index 87d2981dd78c..d0ecd28c9f9f 100644
--- a/code/modules/holodeck/area_copy.dm
+++ b/code/modules/holodeck/area_copy.dm
@@ -37,7 +37,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars, list(
var/obj/item/I = O
I.damtype = STAMINA // thou shalt not
- N.update_icon()
+ N.update_appearance(UPDATE_ICON)
if(ismachinery(O))
var/obj/machinery/M = O
M.power_change()
diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm
index 27220da6be7c..a9852f65155e 100644
--- a/code/modules/holodeck/items.dm
+++ b/code/modules/holodeck/items.dm
@@ -187,7 +187,7 @@
ready = !ready
- update_icon()
+ update_appearance(UPDATE_ICON)
var/numbuttons = 0
var/numready = 0
@@ -199,7 +199,8 @@
if(numbuttons == numready)
begin_event()
-/obj/machinery/readybutton/update_icon()
+/obj/machinery/readybutton/update_icon(updates=ALL)
+ . = ..()
if(ready)
icon_state = "auth_on"
else
diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm
index 94588436d409..5688d03a52c2 100644
--- a/code/modules/holodeck/turfs.dm
+++ b/code/modules/holodeck/turfs.dm
@@ -34,7 +34,7 @@
. = ..()
if(src.type == /turf/open/floor/holofloor/grass) //don't want grass subtypes getting the icon state,
icon_state = "grass[rand(1,4)]"
- update_icon()
+ update_appearance(UPDATE_ICON)
/turf/open/floor/holofloor/beach
gender = PLURAL
@@ -119,7 +119,8 @@
. = ..()
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), 1)
-/turf/open/floor/holofloor/carpet/update_icon()
+/turf/open/floor/holofloor/carpet/update_icon(updates=ALL)
+ . = ..()
if(!..())
return 0
if(intact)
diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm
index 1cf097c98ed6..4b2432474af6 100644
--- a/code/modules/hydroponics/beekeeping/honeycomb.dm
+++ b/code/modules/hydroponics/beekeeping/honeycomb.dm
@@ -17,10 +17,11 @@
. = ..()
pixel_x = rand(8,-8)
pixel_y = rand(8,-8)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/honeycomb/update_icon()
+/obj/item/reagent_containers/honeycomb/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/mutable_appearance/honey_overlay = mutable_appearance(icon, /datum/reagent/consumable/honey)
if(honey_color)
@@ -37,4 +38,4 @@
reagents.add_reagent(R.type,5)
else
honey_color = ""
- update_icon()
\ No newline at end of file
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index eb2625ad9658..c919ccbc2295 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -31,7 +31,7 @@
..()
if(A == beaker)
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/biogenerator/contents_explosion(severity, target)
..()
@@ -63,9 +63,10 @@
. += span_notice("The status display reads: Productivity at [productivity*100]%.
Matter consumption reduced by [(efficiency*25)-25]%.
Machine can hold up to [max_items] pieces of produce.")
/obj/machinery/biogenerator/on_reagent_change(changetype) //When the reagents change, change the icon as well.
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/biogenerator/update_icon()
+/obj/machinery/biogenerator/update_icon(updates=ALL)
+ . = ..()
if(panel_open)
icon_state = "biogen-empty-o"
else if(!src.beaker)
@@ -88,7 +89,7 @@
var/obj/item/reagent_containers/glass/B = beaker
B.forceMove(drop_location())
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(default_deconstruction_crowbar(O))
@@ -104,7 +105,7 @@
return
beaker = O
to_chat(user, span_notice("You add the container to the machine."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("Close the maintenance panel first."))
return
@@ -184,12 +185,12 @@
qdel(I)
if(S)
processing = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(loc, 'sound/machines/blender.ogg', 50, TRUE)
use_power(S * 30)
sleep(S + 15 / productivity)
processing = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = TRUE)
if(materials.len != 1 || materials[1] != getmaterialref(/datum/material/biomass))
@@ -199,7 +200,7 @@
else
if(remove_points)
points -= materials[getmaterialref(/datum/material/biomass)]*multiplier/efficiency
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/biogenerator/proc/check_container_volume(list/reagents, multiplier = 1)
@@ -240,7 +241,7 @@
beaker.reagents.add_reagent(R, D.make_reagents[R])
. = 1
--i
- update_icon()
+ update_appearance(UPDATE_ICON)
return .
/obj/machinery/biogenerator/proc/detach(mob/living/user)
@@ -250,7 +251,7 @@
else
beaker.drop_location(get_turf(src))
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/biogenerator/ui_status(mob/user)
if(stat & BROKEN || panel_open)
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index efc99f269478..d2f943866f10 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -63,9 +63,10 @@
ENABLE_BITFIELD(reagents.flags, DRAINABLE)
DISABLE_BITFIELD(reagents.flags, REFILLABLE)
to_chat(user, span_notice("You close [src], letting you draw from its tap."))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/fermenting_barrel/update_icon()
+/obj/structure/fermenting_barrel/update_icon(updates=ALL)
+ . = ..()
if(open)
icon_state = "barrel_open"
else
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 14f4baaf914b..f72cee9fcba6 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -55,7 +55,8 @@
min_wchance = 0
min_wrate = 0
-/obj/machinery/plantgenes/update_icon()
+/obj/machinery/plantgenes/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
if((stat & (BROKEN|NOPOWER)))
@@ -71,7 +72,7 @@
/obj/machinery/plantgenes/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "dnamod", "dnamod", I))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(default_deconstruction_crowbar(I))
return
@@ -261,7 +262,7 @@
seed.verb_pickup()
seed = null
update_genes()
- update_icon()
+ update_appearance(UPDATE_ICON)
else
var/obj/item/I = usr.get_active_held_item()
if (istype(I, /obj/item/seeds))
@@ -269,7 +270,7 @@
return
insert_seed(I)
to_chat(usr, span_notice("You add [I] to the machine."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(href_list["eject_disk"] && !operation)
var/obj/item/I = usr.get_active_held_item()
eject_disk()
@@ -278,7 +279,7 @@
return
disk = I
to_chat(usr, span_notice("You add [I] to the machine."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(href_list["op"] == "insert" && disk && disk.gene && seed)
if(!operation) // Wait for confirmation
operation = "insert"
@@ -337,10 +338,10 @@
else if(istype(G, /datum/plant_gene/core/weed_chance))
gene.value = max(gene.value, min_wchance)
disk.update_name()
- disk.update_icon()
+ disk.update_appearance(UPDATE_ICON)
qdel(seed)
seed = null
- update_icon()
+ update_appearance(UPDATE_ICON)
if("replace")
if(disk && disk.gene && istype(disk.gene, G.type) && istype(G, /datum/plant_gene/core))
seed.genes -= G
@@ -372,7 +373,7 @@
S.forceMove(src)
seed = S
update_genes()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/plantgenes/proc/eject_disk()
if (disk && !operation)
@@ -383,7 +384,7 @@
disk.forceMove(drop_location())
disk = null
update_genes()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/plantgenes/proc/update_genes()
core_genes = list()
@@ -436,11 +437,12 @@
/obj/item/disk/plantgene/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
src.pixel_x = rand(-5, 5)
src.pixel_y = rand(-5, 5)
-/obj/item/disk/plantgene/update_icon()
+/obj/item/disk/plantgene/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(gene)
add_overlay("datadisk_gene")
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index aef012e31693..b344e2836c60 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -215,7 +215,7 @@
weedinvasion() // Weed invasion into empty tray
needs_update = 1
if (needs_update)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/machinery/hydroponics/proc/nutrimentMutation()
@@ -237,7 +237,8 @@
return
return
-/obj/machinery/hydroponics/update_icon()
+/obj/machinery/hydroponics/update_icon(updates=ALL)
+ . = ..()
//Refreshes the icon and sets the luminosity
cut_overlays()
@@ -360,7 +361,7 @@
harvest = 0
weedlevel = 0 // Reset
pestlevel = 0 // Reset
- update_icon()
+ update_appearance(UPDATE_ICON)
visible_message(span_warning("The [oldPlantName] is overtaken by some [myseed.plantname]!"))
update_name()
@@ -394,7 +395,7 @@
weedlevel = 0 // Reset
sleep(0.5 SECONDS) // Wait a while
- update_icon()
+ update_appearance(UPDATE_ICON)
visible_message(span_warning("[oldPlantName] suddenly mutates into [myseed.plantname]!"))
update_name()
@@ -414,7 +415,7 @@
weedlevel = 0 // Reset
sleep(0.5 SECONDS) // Wait a while
- update_icon()
+ update_appearance(UPDATE_ICON)
visible_message(span_warning("The mutated weeds in [src] spawn some [myseed.plantname]!"))
update_name()
else
@@ -426,7 +427,7 @@
pestlevel = 0 // Pests die
lastproduce = 0
if(!dead)
- update_icon()
+ update_appearance(UPDATE_ICON)
dead = 1
@@ -777,9 +778,9 @@
S.clear_reagents()
qdel(S)
- H.update_icon()
+ H.update_appearance(UPDATE_ICON)
if(reagent_source) // If the source wasn't composted and destroyed
- reagent_source.update_icon()
+ reagent_source.update_appearance(UPDATE_ICON)
return 1
else if(istype(O, /obj/item/seeds) && !istype(O, /obj/item/seeds/sample))
@@ -795,7 +796,7 @@
age = 1
plant_health = myseed.endurance
lastcycle = world.time
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("[src] already has seeds in it!"))
@@ -823,7 +824,7 @@
if(weedlevel > 0)
user.visible_message("[user] uproots the weeds.", span_notice("You remove the weeds from [src]."))
weedlevel = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("This plot is completely devoid of weeds! It doesn't need uprooting."))
@@ -844,7 +845,7 @@
user.visible_message(span_notice("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses."), \
span_notice("You [using_irrigation ? "" : "dis"]connect [src]'s irrigation hoses."))
for(var/obj/machinery/hydroponics/h in range(1,src))
- h.update_icon()
+ h.update_appearance(UPDATE_ICON)
else if(istype(O, /obj/item/shovel/spade))
if(!myseed && !weedlevel)
@@ -864,7 +865,7 @@
myseed = null
update_name()
weedlevel = 0 //Has a side effect of cleaning up those nasty weeds
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
@@ -895,7 +896,7 @@
qdel(myseed)
myseed = null
update_name()
- update_icon()
+ update_appearance(UPDATE_ICON)
else
if(user)
examine(user)
@@ -903,7 +904,7 @@
/obj/machinery/hydroponics/AltClick(mob/user)
. = ..()
if(!anchored)
- update_icon()
+ update_appearance(UPDATE_ICON)
return FALSE
var/warning = tgui_alert(user, "Are you sure you wish to empty the tray's nutrient beaker?","Empty Tray Nutrients?", list("Yes", "No"))
if(warning == "Yes" && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
@@ -931,7 +932,7 @@
myseed = null
update_name()
dead = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.///
/obj/machinery/hydroponics/proc/adjustNutri(adjustamt)
@@ -965,7 +966,7 @@
/obj/machinery/hydroponics/proc/become_self_sufficient() // Ambrosia Gaia effect
visible_message(span_boldnotice("[src] begins to glow with a beautiful light!"))
self_sustaining = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/hydroponics/proc/update_name()
if(myseed)
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index f0acd1979f1f..3d9a7e170a89 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -239,8 +239,8 @@
C.charge = newcharge
if(isobj(C.loc))
var/obj/O = C.loc
- O.update_icon() //update power meters and such
- C.update_icon()
+ O.update_appearance(UPDATE_ICON) //update power meters and such
+ C.update_appearance(UPDATE_ICON)
batteries_recharged = 1
if(batteries_recharged)
to_chat(target, span_notice("Your batteries are recharged!"))
diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm
index 7394c38f8656..0101ffbe9a02 100644
--- a/code/modules/instruments/items.dm
+++ b/code/modules/instruments/items.dm
@@ -94,14 +94,14 @@
*/
/obj/item/instrument/piano_synth/headphones/proc/start_playing()
icon_state = "[initial(icon_state)]_on"
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Called by a component signal when our song stops playing.
*/
/obj/item/instrument/piano_synth/headphones/proc/stop_playing()
icon_state = "[initial(icon_state)]"
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/instrument/banjo
name = "banjo"
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index ffa127dfe698..b47cc00c4dc9 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -329,7 +329,7 @@
H.equip_to_slot_if_possible(PDA, ITEM_SLOT_ID)
PDA.update_label()
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
PDA.update_filters()
else
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index e11fa80ceebc..aba47d985c6e 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -48,7 +48,7 @@
for(var/obj/item/I in loc)
if(istype(I, /obj/item/book))
I.forceMove(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bookcase/attackby(obj/item/I, mob/user, params)
switch(state)
@@ -82,13 +82,13 @@
if(is_type_in_list(I, allowed_books))
if(!user.transferItemToLoc(I, src))
return
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(STR)
for(var/obj/item/T in I.contents)
if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook))
STR.remove_from_storage(T, src)
to_chat(user, span_notice("You empty \the [I] into \the [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(istype(I, /obj/item/pen))
if(!user.is_literate())
to_chat(user, span_notice("You scribble illegibly on the side of [src]!"))
@@ -129,7 +129,7 @@
user.put_in_hands(choice)
else
choice.forceMove(drop_location())
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bookcase/deconstruct(disassembled = TRUE)
@@ -139,7 +139,8 @@
qdel(src)
-/obj/structure/bookcase/update_icon()
+/obj/structure/bookcase/update_icon(updates=ALL)
+ . = ..()
if(contents.len < 5)
icon_state = "book-[contents.len]"
else
@@ -152,7 +153,7 @@
/obj/structure/bookcase/manuals/medical/Initialize(mapload)
. = ..()
new /obj/item/book/manual/wiki/medical_cloning(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bookcase/manuals/engineering
@@ -165,7 +166,7 @@
new /obj/item/book/manual/wiki/engineering_guide(src)
new /obj/item/book/manual/wiki/engineering_singulo_tesla(src)
new /obj/item/book/manual/wiki/robotics_cyborgs(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/bookcase/manuals/research_and_development
@@ -174,7 +175,7 @@
/obj/structure/bookcase/manuals/research_and_development/Initialize(mapload)
. = ..()
new /obj/item/book/manual/wiki/research_and_development(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/*
diff --git a/code/modules/library/random_books.dm b/code/modules/library/random_books.dm
index 97f9366e0732..4847689a48b1 100644
--- a/code/modules/library/random_books.dm
+++ b/code/modules/library/random_books.dm
@@ -31,11 +31,11 @@
/obj/structure/bookcase/random/Initialize(mapload)
. = ..()
if(!book_count || !isnum(book_count))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
book_count += pick(-1,-1,0,1,1)
create_random_books(book_count, src, FALSE, category)
- update_icon()
+ update_appearance(UPDATE_ICON)
/proc/create_random_books(amount = 2, location, fail_loud = FALSE, category = null)
. = list()
@@ -45,7 +45,7 @@
if(fail_loud || prob(5))
var/obj/item/paper/P = new(location)
P.info = "There once was a book from Nantucket
But the database failed us, so f*$! it.
I tried to be good to you
Now this is an I.O.U
If you're feeling entitled, well, stuff it!
~"
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
return
if(prob(25))
category = null
diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm
index ee83c53b4e8b..1c80c99f58f1 100644
--- a/code/modules/library/soapstone.dm
+++ b/code/modules/library/soapstone.dm
@@ -145,9 +145,10 @@
creator_key = user.ckey
realdate = world.realtime
map = SSmapping.config.map_name
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/chisel_message/update_icon()
+/obj/structure/chisel_message/update_icon(updates=ALL)
+ . = ..()
..()
var/hash = md5(hidden_message)
var/newcolor = copytext_char(hash, 1, 7)
@@ -188,7 +189,7 @@
var/turf/newloc = locate(x, y, z)
if(isturf(newloc))
forceMove(newloc)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/chisel_message/examine(mob/user)
. = ..()
diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm
index 4a8a2064af37..0858fb4ea0dd 100644
--- a/code/modules/mapping/mapping_helpers.dm
+++ b/code/modules/mapping/mapping_helpers.dm
@@ -247,7 +247,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
else
var/obj/item/organ/O = part
O.organ_flags |= ORGAN_FROZEN
- j.update_icon()
+ j.update_appearance(UPDATE_ICON)
qdel(src)
/obj/effect/mapping_helpers/teleport_anchor
diff --git a/code/modules/mapping/minimap.dm b/code/modules/mapping/minimap.dm
index 084a8b3697cd..169c9e1c09f8 100644
--- a/code/modules/mapping/minimap.dm
+++ b/code/modules/mapping/minimap.dm
@@ -105,9 +105,10 @@
/obj/item/map/station/Initialize(mapload)
..()
minimaps += SSmapping.station_minimaps
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/map/update_icon()
+/obj/item/map/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/datum/minimap/map = minimaps[1]
if(!map) return
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index aa1adf0be3d4..e23ef87c55ac 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -124,9 +124,10 @@
/obj/item/clothing/head/helmet/space/hostile_environment/Initialize(mapload)
. = ..()
AddComponent(/datum/component/spraycan_paintable)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/clothing/head/helmet/space/hostile_environment/update_icon()
+/obj/item/clothing/head/helmet/space/hostile_environment/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
var/mutable_appearance/glass_overlay = mutable_appearance(icon, "hostile_env_glass")
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index fad185b85682..2c8d7d8a35ca 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -28,7 +28,7 @@
var/detonation_damage = 50
var/backstab_bonus = 30
-/obj/item/twohanded/kinetic_crusher/update_icon() //Updates the sprite for in-hand and on-mob.
+/obj/item/twohanded/kinetic_crusher/update_icon(updates=ALL) //Updates the sprite for in-hand and on-mob.
icon_state = "mining_hammer[wielded]"
return
@@ -508,7 +508,8 @@
..()
-/obj/item/twohanded/kinetic_crusher/mega/update_icon()
+/obj/item/twohanded/kinetic_crusher/mega/update_icon(updates=ALL)
+ . = ..()
icon_state = "magmite_crusher[wielded]"
return
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index 864fdb0e26b2..d55e11f59ac9 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -33,14 +33,15 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
/obj/item/stack/marker_beacon/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stack/marker_beacon/examine(mob/user)
. = ..()
. += "Use in-hand to place a [singular_name].\n"+\
"Alt-click to select a color. Current color is [picked_color]."
-/obj/item/stack/marker_beacon/update_icon()
+/obj/item/stack/marker_beacon/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][lowertext(picked_color)]"
/obj/item/stack/marker_beacon/attack_self(mob/user)
@@ -64,7 +65,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
return
if(input_color)
picked_color = input_color
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/marker_beacon
name = "marker beacon"
@@ -83,20 +84,21 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
/obj/structure/marker_beacon/Initialize(mapload, set_color)
. = ..()
picked_color = set_color
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/marker_beacon/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
var/obj/item/stack/marker_beacon/M = new(loc)
M.picked_color = picked_color
- M.update_icon()
+ M.update_appearance(UPDATE_ICON)
qdel(src)
/obj/structure/marker_beacon/examine(mob/user)
. = ..()
. += span_notice("Alt-click to select a color. Current color is [picked_color].")
-/obj/structure/marker_beacon/update_icon()
+/obj/structure/marker_beacon/update_icon(updates=ALL)
+ . = ..()
while(!picked_color || !GLOB.marker_beacon_colors[picked_color])
picked_color = pick(GLOB.marker_beacon_colors)
icon_state = "[initial(icon_state)][lowertext(picked_color)]-on"
@@ -110,7 +112,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
if(do_after(user, remove_speed, src))
var/obj/item/stack/marker_beacon/M = new(loc)
M.picked_color = picked_color
- M.update_icon()
+ M.update_appearance(UPDATE_ICON)
transfer_fingerprints_to(M)
if(user.put_in_hands(M, TRUE)) //delete the beacon if it fails
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
@@ -143,4 +145,4 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
return
if(input_color)
picked_color = input_color
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm
index 2a5a7e004690..ce92bd03525e 100644
--- a/code/modules/mining/equipment/regenerative_core.dm
+++ b/code/modules/mining/equipment/regenerative_core.dm
@@ -41,7 +41,7 @@
/obj/item/organ/regenerative_core/proc/preserved(implanted = 0)
inert = FALSE
preserved = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
name = "preserved regenerative core"
desc = "All that remains of a hivelord. It is preserved, allowing you to use it to heal completely without danger of decay."
if(implanted)
@@ -54,7 +54,7 @@
name = "decayed regenerative core"
desc = "All that remains of a hivelord. It has decayed, and is completely useless."
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "inert"))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/organ/regenerative_core/ui_action_click()
if(inert)
@@ -134,9 +134,10 @@
/obj/item/organ/regenerative_core/legion/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/organ/regenerative_core/update_icon()
+/obj/item/organ/regenerative_core/update_icon(updates=ALL)
+ . = ..()
icon_state = inert ? "legion_soul_inert" : "legion_soul"
cut_overlays()
if(!inert && !preserved)
diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index 8baa359fe742..dc5b647ebc1d 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -138,7 +138,8 @@
icon = 'icons/obj/lavaland/survival_pod.dmi'
icon_state = "sleeper"
-/obj/machinery/sleeper/survival_pod/update_icon()
+/obj/machinery/sleeper/survival_pod/update_icon(updates=ALL)
+ . = ..()
if(state_open)
cut_overlays()
else
@@ -154,7 +155,8 @@
/obj/machinery/stasis/survival_pod/play_power_sound()
return
-/obj/machinery/stasis/survival_pod/update_icon()
+/obj/machinery/stasis/survival_pod/update_icon(updates=ALL)
+ . = ..()
return
//Computer
@@ -206,7 +208,8 @@
pitches = FALSE
var/empty = FALSE
-/obj/machinery/smartfridge/survival_pod/update_icon()
+/obj/machinery/smartfridge/survival_pod/update_icon(updates=ALL)
+ . = ..()
return
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index 4d6908fa6f0b..6e317d5ca45e 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -300,7 +300,8 @@
icon = 'icons/obj/lavaland/ash_flora.dmi'
icon_state = "mushroom_bowl"
-/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon()
+/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents && reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/obj/lavaland/ash_flora.dmi', "fullbowl")
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index c9192aac2f50..afa11672d5a6 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -683,7 +683,8 @@ GLOBAL_LIST_EMPTY(aide_list)
desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'."
list_reagents = list(/datum/reagent/flightpotion = 5)
-/obj/item/reagent_containers/glass/bottle/potion/update_icon()
+/obj/item/reagent_containers/glass/bottle/potion/update_icon(updates=ALL)
+ . = ..()
if(reagents.total_volume)
icon_state = initial(icon_state)
desc = initial(desc)
@@ -1504,7 +1505,8 @@ GLOBAL_LIST_EMPTY(aide_list)
chaser_speed = max(chaser_speed + health_percent, 0.5) //one tenth of a second faster for each missing 10% of health
blast_range -= round(health_percent * 10) //one additional range for each missing 10% of health
-/obj/item/hierophant_club/update_icon()
+/obj/item/hierophant_club/update_icon(updates=ALL)
+ . = ..()
icon_state = "hierophant_club[timer <= world.time ? "_ready":""][(beacon && !QDELETED(beacon)) ? "":"_beacon"]"
item_state = icon_state
if(ismob(loc))
@@ -1513,9 +1515,9 @@ GLOBAL_LIST_EMPTY(aide_list)
M.update_inv_back()
/obj/item/hierophant_club/proc/prepare_icon_update()
- update_icon()
+ update_appearance(UPDATE_ICON)
sleep(timer - world.time)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/hierophant_club/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/toggle_unfriendly_fire)) //toggle friendly fire...
@@ -1743,7 +1745,8 @@ GLOBAL_LIST_EMPTY(aide_list)
var/fauna_damage_type = BRUTE
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
-/obj/item/twohanded/bonespear/stalwartpike/update_icon()
+/obj/item/twohanded/bonespear/stalwartpike/update_icon(updates=ALL)
+ . = ..()
. = ..()
if(wielded)
icon_state = "stalwart_spear1"
diff --git a/code/modules/mining/lavaland/world_anvil.dm b/code/modules/mining/lavaland/world_anvil.dm
index acf746ba7888..05673d281cd4 100644
--- a/code/modules/mining/lavaland/world_anvil.dm
+++ b/code/modules/mining/lavaland/world_anvil.dm
@@ -27,7 +27,8 @@
QDEL_NULL(internal)
. = ..()
-/obj/structure/world_anvil/update_icon()
+/obj/structure/world_anvil/update_icon(updates=ALL)
+ . = ..()
icon_state = forge_charges > 0 ? "anvil_a" : "anvil"
if(forge_charges > 0)
set_light(4,1,LIGHT_COLOR_ORANGE)
@@ -44,7 +45,7 @@
forge_charges = forge_charges + placed_ore.quality
to_chat(user,"You place down the gibtonite on the World Anvil, and watch as the gibtonite melts into it. The World Anvil is now heated enough for [forge_charges] forge[forge_charges > 1 ? "s" : ""].")
qdel(placed_ore)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(forge_charges <= 0)
to_chat(user,"The World Anvil is not hot enough to be usable!")
@@ -70,7 +71,7 @@
forge_charges--
if(forge_charges <= 0)
visible_message("The World Anvil cools down.")
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index 998142f53fc9..7adc53516bd8 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -345,7 +345,8 @@
do_sparks(5, TRUE, src)
..()
-/obj/machinery/mineral/ore_redemption/update_icon()
+/obj/machinery/mineral/ore_redemption/update_icon(updates=ALL)
+ . = ..()
if(powered())
icon_state = initial(icon_state)
else
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 4727e1a51b3b..ecf2607a0c45 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -105,7 +105,8 @@
var/datum/data/mining_equipment/M = p
GLOB.vending_products[M.equipment_path] = 1
-/obj/machinery/mineral/equipment_vendor/update_icon()
+/obj/machinery/mineral/equipment_vendor/update_icon(updates=ALL)
+ . = ..()
if(powered())
icon_state = initial(icon_state)
else
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 1527ab7d8c16..2543ca87517e 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -22,7 +22,8 @@
var/list/stack_overlays
var/edible = FALSE //can a preternis eat it for some funny effect?
-/obj/item/stack/ore/update_icon()
+/obj/item/stack/ore/update_icon(updates=ALL)
+ . = ..()
var/difference = min(ORESTACK_OVERLAYS_MAX, amount) - (LAZYLEN(stack_overlays)+1)
if(difference == 0)
return
@@ -620,7 +621,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/coinstack/Initialize(mapload)
. = ..()
coins = list()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/coinstack/examine(mob/user)
. = ..()
@@ -634,7 +635,8 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
if(antag > 1)
. += span_info("But they told me I could only have one at a time...")
-/obj/item/coinstack/update_icon()
+/obj/item/coinstack/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
for(var/i in 1 to length(coins))
var/obj/item/coin/C = coins[i]
@@ -663,7 +665,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
C.pixel_y = 0
src.add_fingerprint(user)
to_chat(user,span_notice("You add [C] to the stack of coins."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/coinstack/proc/remove_from_stack(mob/living/user) //you can only remove the topmost coin from the stack
@@ -671,7 +673,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
if(top_coin)
coins -= top_coin
user.put_in_active_hand(top_coin)
- update_icon()
+ update_appearance(UPDATE_ICON)
if(length(coins) <= 1) //one coin left, we're done here
var/obj/item/coin/lastCoin = coins[1]
coins -= coins[1]
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index ad6b3592ae60..0dc2444d07c1 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -297,7 +297,7 @@
observer.real_name = observer.client.prefs.read_preference(/datum/preference/name/real_name)
observer.name = observer.real_name
observer.client.init_verbs()
- observer.update_icon()
+ observer.update_appearance(UPDATE_ICON)
observer.stop_sound_channel(CHANNEL_LOBBYMUSIC)
QDEL_NULL(mind)
qdel(src)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 640270573be5..5fed9d343765 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -115,7 +115,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
facial_hair_style = body_human.facial_hair_style
facial_hair_color = brighten_color(body_human.facial_hair_color)
- update_icon()
+ update_appearance(UPDATE_ICON)
if(!T || is_secret_level(T.z))
var/list/turfs = get_area_turfs(/area/shuttle/arrival)
@@ -818,7 +818,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
qdel(species)
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/dead/observer/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE)
return IsAdminGhost(usr)
diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm
index 57ed3dd01f24..7ad4cbe455a8 100644
--- a/code/modules/mob/living/brain/MMI.dm
+++ b/code/modules/mob/living/brain/MMI.dm
@@ -24,7 +24,8 @@
Unless you are slaved as a silicon, you retain crew/antagonist/etc status and should behave as such.\n\
Being placed in a mech does not slave you to any laws."
-/obj/item/mmi/update_icon()
+/obj/item/mmi/update_icon(updates=ALL)
+ . = ..()
if(!brain)
icon_state = "mmi_off"
return
@@ -83,7 +84,7 @@
brain = newbrain
name = "[initial(name)]: [brainmob.real_name]"
- update_icon()
+ update_appearance(UPDATE_ICON)
SSblackbox.record_feedback("amount", "mmis_filled", 1)
@@ -110,7 +111,7 @@
if(!brainmob) return
to_chat(brainmob, span_userdanger("Due to the traumatic danger of your removal, all memories of the events leading to your brain being removed are lost[rebooting ? ", along with all memories of the events leading to your death as a cyborg" : ""]"))
eject_brain(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
name = initial(name)
user.visible_message(span_notice("[user] rips the brain out of [src]"), span_danger("You successfully remove the brain from the [src][rebooting ? ", interrupting the reboot process" : ""]"))
if(rebooting)
@@ -159,7 +160,7 @@
name = "[initial(name)]: [brainmob.real_name]"
to_chat(brainmob, welcome_message)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/item/mmi/proc/replacement_ai_name()
diff --git a/code/modules/mob/living/brain/death.dm b/code/modules/mob/living/brain/death.dm
index e90637f63ed8..1e04d944ed97 100644
--- a/code/modules/mob/living/brain/death.dm
+++ b/code/modules/mob/living/brain/death.dm
@@ -7,7 +7,7 @@
var/obj/item/mmi = container
mmi.visible_message(span_warning("[src]'s MMI flatlines!"), \
span_italics("You hear something flatline."))
- mmi.update_icon()
+ mmi.update_appearance(UPDATE_ICON)
return ..()
diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm
index 5037d46eb4c6..ac45319e64c0 100644
--- a/code/modules/mob/living/brain/posibrain.dm
+++ b/code/modules/mob/living/brain/posibrain.dm
@@ -60,12 +60,12 @@ GLOBAL_VAR(posibrain_notify_cooldown)
ping_ghosts("requested", FALSE)
next_ask = world.time + askDelay
searching = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(check_success)), askDelay)
/obj/item/mmi/posibrain/proc/check_success()
searching = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
if(QDELETED(brainmob))
return
if(brainmob.client)
@@ -131,7 +131,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
brainmob.mind.remove_all_antag()
brainmob.mind.wipe_memory()
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/item/mmi/posibrain/proc/transfer_personality(mob/candidate)
@@ -210,7 +210,8 @@ GLOBAL_VAR(posibrain_notify_cooldown)
return
-/obj/item/mmi/posibrain/update_icon()
+/obj/item/mmi/posibrain/update_icon(updates=ALL)
+ . = ..()
if(searching)
icon_state = "[initial(icon_state)]-searching"
return
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 340f9918a803..1993b8ea0862 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -45,10 +45,10 @@
var/atom/movable/screen/inventory/hand/H
H = hud_used.hand_slots["[oindex]"]
if(H)
- H.update_icon()
+ H.update_appearance(UPDATE_ICON)
H = hud_used.hand_slots["[held_index]"]
if(H)
- H.update_icon()
+ H.update_appearance(UPDATE_ICON)
/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index 2574a5250c22..24508222ca83 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -80,7 +80,7 @@
FP.entered_dirs |= dir
FP.bloodiness = S.bloody_shoes[S.blood_state] - BLOOD_LOSS_IN_SPREAD
FP.add_blood_DNA(S.return_blood_DNA())
- FP.update_icon()
+ FP.update_appearance(UPDATE_ICON)
update_inv_shoes()
//End bloody footprints
if(istype(S))
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index c5fdec856f51..b7d911f694b0 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -179,7 +179,8 @@
/obj/item/organ/heart/nightmare/Stop()
return 0
-/obj/item/organ/heart/nightmare/update_icon()
+/obj/item/organ/heart/nightmare/update_icon(updates=ALL)
+ . = ..()
return //always beating visually
/obj/item/organ/heart/nightmare/process()
@@ -261,7 +262,7 @@
var/obj/item/pda/PDA = O
PDA.set_light_on(FALSE)
PDA.set_light_range(0) //It won't be turning on again.
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
visible_message(span_danger("The light in [PDA] shorts out!"))
else
visible_message(span_danger("[O] is disintegrated by [src]!"))
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 11f673676385..64a179f88e09 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -102,7 +102,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_ICLOTHING) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(istype(w_uniform, /obj/item/clothing/under))
var/obj/item/clothing/under/U = w_uniform
@@ -148,7 +148,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_ID) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
var/mutable_appearance/id_overlay = overlays_standing[ID_LAYER]
@@ -173,7 +173,7 @@ There are several things that need to be remembered:
if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_GLOVES) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_GLOVES) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(!gloves && blood_in_hands)
var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -GLOVES_LAYER)
@@ -209,7 +209,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EYES) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(glasses)
glasses.screen_loc = ui_glasses //...draw the item in the inventory screen
@@ -237,7 +237,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EARS) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(ears)
ears.screen_loc = ui_ears //move the item to the appropriate screen loc
@@ -258,7 +258,7 @@ There are several things that need to be remembered:
if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(wear_neck)
wear_neck.screen_loc = ui_neck
@@ -283,7 +283,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_FEET) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(shoes)
var/target_overlay = shoes.icon_state
@@ -311,7 +311,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_SUITSTORE) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(s_store)
s_store.screen_loc = ui_sstore1
@@ -350,7 +350,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BELT) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(belt)
belt.screen_loc = ui_belt
@@ -373,7 +373,7 @@ There are several things that need to be remembered:
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_OCLOTHING) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(istype(wear_suit, /obj/item))
wear_suit.screen_loc = ui_oclothing
@@ -402,9 +402,9 @@ There are several things that need to be remembered:
var/atom/movable/screen/inventory/inv
inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_LPOCKET) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_RPOCKET) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(l_store)
l_store.screen_loc = ui_storage1
@@ -427,7 +427,7 @@ There are several things that need to be remembered:
if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(wear_mask)
var/target_overlay = wear_mask.icon_state
@@ -454,7 +454,7 @@ There are several things that need to be remembered:
if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(back)
update_hud_back(back)
diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm
index 7d51955714f9..8a829ab51ceb 100644
--- a/code/modules/mob/living/carbon/update_icons.dm
+++ b/code/modules/mob/living/carbon/update_icons.dm
@@ -117,7 +117,7 @@
if(client && hud_used?.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(wear_mask)
if(!(ITEM_SLOT_MASK in check_obscured_slots()))
@@ -131,7 +131,7 @@
if(client && hud_used?.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(wear_neck)
if(!(ITEM_SLOT_NECK in check_obscured_slots()))
@@ -145,7 +145,7 @@
if(client && hud_used?.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(back)
overlays_standing[BACK_LAYER] = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = 'icons/mob/clothing/back.dmi')
@@ -161,7 +161,7 @@
if(client && hud_used?.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1])
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_HEAD) + 1]
- inv.update_icon()
+ inv.update_appearance(UPDATE_ICON)
if(head)
overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/clothing/head/head.dmi')
@@ -198,7 +198,7 @@
for(var/hand in hud_used.hand_slots)
var/atom/movable/screen/inventory/hand/H = hud_used.hand_slots[hand]
if(H)
- H.update_icon()
+ H.update_appearance(UPDATE_ICON)
//update whether our head item appears on our hud.
/mob/living/carbon/proc/update_hud_head(obj/item/I)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index b41b16d05d35..5d890506003f 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -1054,7 +1054,7 @@
playsound(get_turf(src), 'sound/machines/ding.ogg', 50, 1, ignore_walls = FALSE)
to_chat(src, "Hack complete. \The [apc] is now under your exclusive control.")
- apc.update_icon()
+ apc.update_appearance(UPDATE_ICON)
/mob/living/silicon/ai/verb/deploy_to_shell(mob/living/silicon/robot/target)
set category = "AI Commands"
diff --git a/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm b/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm
index ebf7da491931..d4189f8b325f 100644
--- a/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm
+++ b/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm
@@ -40,7 +40,7 @@ GLOBAL_VAR_INIT(primary_data_core, null)
GLOB.data_cores += src
if(primary && !GLOB.primary_data_core)
GLOB.primary_data_core = src
- update_icon()
+ update_appearance(UPDATE_ICON)
RefreshParts()
/obj/machinery/ai/data_core/RefreshParts()
@@ -165,7 +165,7 @@ GLOBAL_VAR_INIT(primary_data_core, null)
if(valid_holder())
valid_ticks++
if(valid_ticks == 1)
- update_icon()
+ update_appearance(UPDATE_ICON)
use_power = ACTIVE_POWER_USE
if((stat & NOPOWER))
integrated_battery.use(active_power_usage * CELL_POWERUSE_MULTIPLIER)
@@ -174,7 +174,7 @@ GLOBAL_VAR_INIT(primary_data_core, null)
valid_ticks--
if(valid_ticks <= 0)
use_power = IDLE_POWER_USE
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/mob/living/silicon/ai/AI in contents)
if(!AI.is_dying)
AI.relocate()
@@ -214,7 +214,8 @@ GLOBAL_VAR_INIT(primary_data_core, null)
if(AI.eyeobj)
AI.eyeobj.forceMove(get_turf(src))
-/obj/machinery/ai/data_core/update_icon()
+/obj/machinery/ai/data_core/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!(stat & (BROKEN|EMPED)) && has_power())
diff --git a/code/modules/mob/living/silicon/ai/decentralized/management/ai_controlpanel.dm b/code/modules/mob/living/silicon/ai/decentralized/management/ai_controlpanel.dm
index a47fbdc71046..682e629b444d 100644
--- a/code/modules/mob/living/silicon/ai/decentralized/management/ai_controlpanel.dm
+++ b/code/modules/mob/living/silicon/ai/decentralized/management/ai_controlpanel.dm
@@ -218,7 +218,7 @@ GLOBAL_VAR_INIT(ai_control_code, random_nukecode(6))
return
downloading.transfer_ai(AI_TRANS_TO_CARD, user_downloading, null, intellicard)
intellicard.forceMove(get_turf(src))
- intellicard.update_icon()
+ intellicard.update_appearance(UPDATE_ICON)
intellicard = null
stop_download(TRUE)
@@ -237,7 +237,7 @@ GLOBAL_VAR_INIT(ai_control_code, random_nukecode(6))
intellicard.AI.control_disabled = FALSE
intellicard.AI.relocate(TRUE)
intellicard.AI = null
- intellicard.update_icon()
+ intellicard.update_appearance(UPDATE_ICON)
/obj/machinery/computer/ai_control_console/ui_act(action, params)
if(..())
diff --git a/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm b/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm
index 406632bf187a..4396b205b52f 100644
--- a/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm
+++ b/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm
@@ -39,7 +39,7 @@ GLOBAL_LIST_EMPTY(server_cabinets)
roundstart = mapload
installed_racks = list()
GLOB.server_cabinets += src
- update_icon()
+ update_appearance(UPDATE_ICON)
RefreshParts()
/obj/machinery/ai/server_cabinet/Destroy()
@@ -79,7 +79,7 @@ GLOBAL_LIST_EMPTY(server_cabinets)
valid_ticks++
if(!was_valid_holder)
- update_icon()
+ update_appearance(UPDATE_ICON)
was_valid_holder = TRUE
if(!hardware_synced)
@@ -96,7 +96,8 @@ GLOBAL_LIST_EMPTY(server_cabinets)
GLOB.ai_os.update_hardware()
-/obj/machinery/ai/server_cabinet/update_icon()
+/obj/machinery/ai/server_cabinet/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(installed_racks.len > 0)
@@ -131,7 +132,7 @@ GLOBAL_LIST_EMPTY(server_cabinets)
cached_power_usage += rack.get_power_usage()
GLOB.ai_os.update_hardware()
use_power = ACTIVE_POWER_USE
- update_icon()
+ update_appearance(UPDATE_ICON)
return FALSE
if(W.tool_behaviour == TOOL_CROWBAR)
if(installed_racks.len)
@@ -145,7 +146,7 @@ GLOBAL_LIST_EMPTY(server_cabinets)
GLOB.ai_os.update_hardware()
to_chat(user, span_notice("You remove all the racks from [src]"))
use_power = IDLE_POWER_USE
- update_icon()
+ update_appearance(UPDATE_ICON)
return FALSE
else
if(default_deconstruction_crowbar(W))
diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm
index 2b5a31dacbcf..5375e0db651b 100644
--- a/code/modules/mob/living/silicon/ai/multicam.dm
+++ b/code/modules/mob/living/silicon/ai/multicam.dm
@@ -171,14 +171,14 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room)
continue
cameras_telegraphed -= C
C.in_use_lights--
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
for (var/V in add)
var/obj/machinery/camera/C = V
if(QDELETED(C))
continue
cameras_telegraphed |= C
C.in_use_lights++
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
/mob/camera/aiEye/pic_in_pic/proc/disable_camera_telegraphing()
telegraph_cameras = FALSE
@@ -187,7 +187,7 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room)
if(QDELETED(C))
continue
C.in_use_lights--
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
cameras_telegraphed.Cut()
/mob/camera/aiEye/pic_in_pic/Destroy()
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index d4ec495f1296..8abcb905b1e7 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -170,7 +170,7 @@
mmi.brainmob.name = src.real_name
mmi.brainmob.real_name = src.real_name
mmi.brainmob.container = mmi
- mmi.update_icon()
+ mmi.update_appearance(UPDATE_ICON)
updatename()
@@ -195,7 +195,7 @@
mmi.brainmob.remove_from_dead_mob_list()
mmi.brainmob.add_to_alive_mob_list()
mind.transfer_to(mmi.brainmob)
- mmi.update_icon()
+ mmi.update_appearance(UPDATE_ICON)
if(istype(mmi, /obj/item/mmi/posibrain))
ADD_TRAIT(mmi.brainmob, TRAIT_PACIFISM, POSIBRAIN_TRAIT)
else
@@ -803,14 +803,14 @@
set_light_range(1) //Again, like above, this only takes effect when the light is forced on by doomsday mode.
set_light_on(FALSE)
lamp_enabled = FALSE
- lampButton?.update_icon()
+ lampButton?.update_appearance(UPDATE_ICON)
update_icons()
return
set_light_range(lamp_intensity)
set_light_color(lamp_color)
set_light_on(TRUE)
lamp_enabled = TRUE
- lampButton?.update_icon()
+ lampButton?.update_appearance(UPDATE_ICON)
update_icons()
/mob/living/silicon/robot/proc/deconstruct()
diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm
index df5ed87c4484..f722196c2fa2 100644
--- a/code/modules/mob/living/silicon/robot/robot_defense.dm
+++ b/code/modules/mob/living/silicon/robot/robot_defense.dm
@@ -54,7 +54,7 @@
add_fingerprint(user)
if(opened && !wiresexposed && !issilicon(user))
if(cell)
- cell.update_icon()
+ cell.update_appearance(UPDATE_ICON)
cell.add_fingerprint(user)
user.put_in_active_hand(cell)
to_chat(user, span_notice("You remove \the [cell]."))
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index bd710740f7c7..32c18f9a79b1 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -153,7 +153,7 @@
var/obj/item/assembly/flash/F = I
F.times_used = 0
F.burnt_out = FALSE
- F.update_icon()
+ F.update_appearance(UPDATE_ICON)
else if(istype(I, /obj/item/melee/baton))
var/obj/item/melee/baton/B = I
if(B.cell)
@@ -389,7 +389,7 @@
if(T.cell.charge < T.cell.maxcharge)
var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select]
T.cell.give(S.e_cost * coeff)
- T.update_icon()
+ T.update_appearance(UPDATE_ICON)
else
T.charge_timer = 0
diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
index 435c369d4016..899663281cdd 100644
--- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
+++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
@@ -60,13 +60,13 @@
return
switch(mode)
if(BOT_IDLE) // idle
- update_icon()
+ update_appearance(UPDATE_ICON)
walk_to(src,0)
look_for_perp() // see if any criminals are in range
if(!mode && auto_patrol) // still idle, and set to patrol
mode = BOT_START_PATROL // switch to patrol mode
if(BOT_HUNT) // hunting for perp
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src,'sound/effects/beepskyspinsabre.ogg',100,TRUE,-1)
// general beepsky doesn't give up so easily, jedi scum
if(frustration >= 20)
diff --git a/code/modules/mob/living/simple_animal/bot/atmosbot.dm b/code/modules/mob/living/simple_animal/bot/atmosbot.dm
index cff40711067f..e86f67e520c6 100644
--- a/code/modules/mob/living/simple_animal/bot/atmosbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/atmosbot.dm
@@ -51,11 +51,11 @@
/mob/living/simple_animal/bot/atmosbot/turn_on()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/atmosbot/turn_off()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/atmosbot/set_custom_texts()
text_hack = "You corrupt [name]'s safety protocols."
@@ -82,7 +82,7 @@
if(last_barrier_tick + ATMOSBOT_HOLOBARRIER_COOLDOWN < world.time)
target = return_nearest_breach()
action = ATMOSBOT_DEPLOY_FOAM
- update_icon()
+ update_appearance(UPDATE_ICON)
if(!target)
if(auto_patrol)
@@ -194,9 +194,10 @@
return
breached_pressure = new_breach_pressure
update_controls()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/mob/living/simple_animal/bot/atmosbot/update_icon()
+/mob/living/simple_animal/bot/atmosbot/update_icon(updates=ALL)
+ . = ..()
icon_state = "atmosbot[on][on?"_[action]":""]"
/mob/living/simple_animal/bot/atmosbot/UnarmedAttack(atom/A, proximity)
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index b69bf925fc76..a0e812ba5d71 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -130,7 +130,7 @@
on = TRUE
update_mobility()
set_light_on(on)
- update_icon()
+ update_appearance(UPDATE_ICON)
diag_hud_set_botstat()
return TRUE
@@ -139,7 +139,7 @@
update_mobility()
set_light_on(on)
bot_reset() //Resets an AI's call, should it exist.
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/Initialize(mapload)
. = ..()
@@ -400,7 +400,7 @@
if(istype(dropped_item, /obj/item/stock_parts/cell))
var/obj/item/stock_parts/cell/dropped_cell = dropped_item
dropped_cell.charge = 0
- dropped_cell.update_icon()
+ dropped_cell.update_appearance(UPDATE_ICON)
else if(istype(dropped_item, /obj/item/storage))
var/obj/item/storage/S = dropped_item
@@ -409,7 +409,7 @@
else if(istype(dropped_item, /obj/item/gun/energy))
var/obj/item/gun/energy/dropped_gun = dropped_item
dropped_gun.cell.charge = 0
- dropped_gun.update_icon()
+ dropped_gun.update_appearance(UPDATE_ICON)
//Generalized behavior code, override where needed!
@@ -855,7 +855,8 @@ Pass a positive integer as an argument to override a bot's default speed.
ejectpai(usr)
update_controls()
-/mob/living/simple_animal/bot/update_icon()
+/mob/living/simple_animal/bot/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][on]"
// Machinery to simplify topic and access calls
@@ -968,7 +969,7 @@ Pass a positive integer as an argument to override a bot's default speed.
/mob/living/simple_animal/bot/revive(full_heal = 0, admin_revive = 0)
if(..())
- update_icon()
+ update_appearance(UPDATE_ICON)
. = 1
/mob/living/simple_animal/bot/ghost()
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index 52a44ad84592..5e5f30bf570d 100644
--- a/code/modules/mob/living/simple_animal/bot/construction.dm
+++ b/code/modules/mob/living/simple_animal/bot/construction.dm
@@ -212,9 +212,10 @@
/obj/item/bot_assembly/floorbot/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/bot_assembly/floorbot/update_icon()
+/obj/item/bot_assembly/floorbot/update_icon(updates=ALL)
+ . = ..()
..()
switch(build_step)
if(ASSEMBLY_FIRST_STEP)
@@ -237,7 +238,7 @@
to_chat(user, span_notice("You add [W] to [src]."))
qdel(W)
build_step++
- update_icon()
+ update_appearance(UPDATE_ICON)
if(ASSEMBLY_SECOND_STEP)
if(istype(W, /obj/item/bodypart/l_arm/robot) || istype(W, /obj/item/bodypart/r_arm/robot))
diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
index 2e01b58cd734..90441684ade8 100644
--- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
@@ -388,15 +388,15 @@ Auto Patrol[]"},
if(!lasercolor)
var/obj/item/gun/energy/e_gun/dragnet/G = new (Tsec)
G.cell.charge = 0
- G.update_icon()
+ G.update_appearance(UPDATE_ICON)
else if(lasercolor == "b")
var/obj/item/gun/energy/laser/bluetag/G = new (Tsec)
G.cell.charge = 0
- G.update_icon()
+ G.update_appearance(UPDATE_ICON)
else if(lasercolor == "r")
var/obj/item/gun/energy/laser/redtag/G = new (Tsec)
G.cell.charge = 0
- G.update_icon()
+ G.update_appearance(UPDATE_ICON)
if(prob(50))
new /obj/item/bodypart/l_leg/robot(Tsec)
diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm
index cdc1f2e12d42..8997b576225c 100644
--- a/code/modules/mob/living/simple_animal/bot/firebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/firebot.dm
@@ -41,7 +41,7 @@
/mob/living/simple_animal/bot/firebot/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
var/datum/job/engineer/J = new/datum/job/engineer
access_card.access += J.get_access()
prev_access = access_card.access
@@ -76,11 +76,11 @@
/mob/living/simple_animal/bot/firebot/turn_on()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/firebot/turn_off()
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/firebot/bot_reset()
..()
@@ -88,14 +88,14 @@
old_target_fire = null
ignore_list = list()
anchored = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/firebot/proc/soft_reset()
path = list()
target_fire = null
mode = BOT_IDLE
last_found = world.time
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/firebot/set_custom_texts()
text_hack = "You corrupt [name]'s safety protocols."
@@ -152,7 +152,7 @@
stationary_mode = !stationary_mode
update_controls()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/firebot/proc/is_burning(atom/target)
if(ismob(target))
@@ -286,7 +286,8 @@
flick("firebot1_use", user)
internal_ext.afterattack(target, user, null)
-/mob/living/simple_animal/bot/firebot/update_icon()
+/mob/living/simple_animal/bot/firebot/update_icon(updates=ALL)
+ . = ..()
if(!on)
icon_state = "firebot0"
return
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index a4ad78b124a5..76995a260562 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -45,7 +45,7 @@
/mob/living/simple_animal/bot/floorbot/Initialize(mapload, new_toolbox_color)
. = ..()
toolbox_color = new_toolbox_color
- update_icon()
+ update_appearance(UPDATE_ICON)
var/datum/job/engineer/J = new/datum/job/engineer
access_card.access += J.get_access()
prev_access = access_card.access
@@ -55,11 +55,11 @@
/mob/living/simple_animal/bot/floorbot/turn_on()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/floorbot/turn_off()
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/floorbot/bot_reset()
..()
@@ -67,7 +67,7 @@
oldloc = null
ignore_list = list()
anchored = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/floorbot/set_custom_texts()
text_hack = "You corrupt [name]'s construction protocols."
@@ -355,11 +355,12 @@
if(specialtiles == 0)
speak("Requesting refill of custom floortiles to continue replacing.")
mode = BOT_IDLE
- update_icon()
+ update_appearance(UPDATE_ICON)
anchored = FALSE
target = null
-/mob/living/simple_animal/bot/floorbot/update_icon()
+/mob/living/simple_animal/bot/floorbot/update_icon(updates=ALL)
+ . = ..()
icon_state = "[toolbox_color]floorbot[on]"
diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm
index 2965832f658d..7de5fcadff37 100644
--- a/code/modules/mob/living/simple_animal/bot/honkbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm
@@ -39,7 +39,7 @@
/mob/living/simple_animal/bot/honkbot/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
auto_patrol = TRUE
var/datum/job/clown/J = new/datum/job/clown
access_card.access += J.get_access()
@@ -133,7 +133,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
oldtarget_name = user.name
audible_message(span_danger("[src] gives out an evil laugh!"))
playsound(src, 'sound/machines/honkbot_evil_laugh.ogg', 75, 1, -1) // evil laughter
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/honkbot/bullet_act(obj/item/projectile/Proj)
if((istype(Proj,/obj/item/projectile/beam)) || (istype(Proj,/obj/item/projectile/bullet) && (Proj.damage_type == BURN))||(Proj.damage_type == BRUTE) && (!Proj.nodamage && Proj.damage < health && ishuman(Proj.firer)))
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index 3cf8e99d2eb6..d8c165849627 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -91,7 +91,8 @@
treatment_tox_avoid = null
treatment_tox = /datum/reagent/toxin/sodium_thiopental
-/mob/living/simple_animal/bot/medbot/update_icon()
+/mob/living/simple_animal/bot/medbot/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(skin)
add_overlay("medskin_[skin]")
@@ -116,11 +117,11 @@
prev_access = access_card.access
qdel(J)
skin = new_skin
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/medbot/update_mobility()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/medbot/bot_reset()
..()
@@ -129,14 +130,14 @@
oldloc = null
last_found = world.time
declare_cooldown = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/medbot/proc/soft_reset() //Allows the medibot to still actively perform its medical duties without being completely halted as a hard reset does.
path = list()
patient = null
mode = BOT_IDLE
last_found = world.time
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/medbot/set_custom_texts()
@@ -222,7 +223,7 @@
else if(href_list["stationary"])
stationary_mode = !stationary_mode
path = list()
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(href_list["virus"])
treat_virus = !treat_virus
@@ -413,7 +414,7 @@
if(patient && (get_dist(src,patient) <= 1)) //Patient is next to us, begin treatment!
if(mode != BOT_HEALING)
mode = BOT_HEALING
- update_icon()
+ update_appearance(UPDATE_ICON)
frustration = 0
medicate_patient(patient)
return
@@ -554,9 +555,9 @@
var/mob/living/carbon/C = A
patient = C
mode = BOT_HEALING
- update_icon()
+ update_appearance(UPDATE_ICON)
medicate_patient(C)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
..()
@@ -664,7 +665,7 @@
if(failed)
visible_message("[src] retracts its syringe.")
- update_icon()
+ update_appearance(UPDATE_ICON)
soft_reset()
return
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 361ffc9c733b..98b3a5c7c4b1 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -112,7 +112,7 @@
..()
else
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/mob/living/simple_animal/bot/mulebot/emag_act(mob/user)
@@ -124,7 +124,8 @@
flick("mulebot-emagged", src)
playsound(src, "sparks", 100, 0)
-/mob/living/simple_animal/bot/mulebot/update_icon()
+/mob/living/simple_animal/bot/mulebot/update_icon(updates=ALL)
+ . = ..()
if(open)
icon_state="mulebot-hatch"
else
@@ -386,7 +387,7 @@
load = AM
mode = BOT_IDLE
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/mulebot/proc/load_mob(mob/living/M)
can_buckle = TRUE
@@ -460,7 +461,7 @@
num_steps--
if(!on || client)
return
- update_icon()
+ update_appearance(UPDATE_ICON)
switch(mode)
if(BOT_IDLE) // idle
@@ -569,7 +570,7 @@
mode = BOT_GO_HOME
else
mode = BOT_DELIVER
- update_icon()
+ update_appearance(UPDATE_ICON)
get_nav()
// starts bot moving to home
@@ -580,7 +581,7 @@
spawn(0)
set_destination(home_destination)
mode = BOT_BLOCKED
- update_icon()
+ update_appearance(UPDATE_ICON)
// called when bot reaches current target
/mob/living/simple_animal/bot/mulebot/proc/at_target()
@@ -688,7 +689,7 @@
loaddir = text2num(direction)
else
loaddir = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
if(destination) // No need to calculate a path if you do not have a destination set!
calc_path()
@@ -710,7 +711,7 @@
new /obj/item/stack/cable_coil/cut(Tsec)
if(cell)
cell.forceMove(Tsec)
- cell.update_icon()
+ cell.update_appearance(UPDATE_ICON)
cell = null
do_sparks(3, TRUE, src)
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index ef3b15ef59d5..ef6110148b79 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -71,7 +71,7 @@
/mob/living/simple_animal/bot/secbot/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
var/datum/job/detective/J = new/datum/job/detective
access_card.access += J.get_access()
prev_access = access_card.access
@@ -83,7 +83,8 @@
if(prob(5))
russian = TRUE // imported from Russia
-/mob/living/simple_animal/bot/secbot/update_icon()
+/mob/living/simple_animal/bot/secbot/update_icon(updates=ALL)
+ . = ..()
if(mode == BOT_HUNT)
icon_state = "[initial(icon_state)]-c"
return
@@ -209,7 +210,7 @@ Auto Patrol: []"},
oldtarget_name = user.name
audible_message(span_danger("[src] buzzes oddly!"))
declare_arrests = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/bot/secbot/bullet_act(obj/item/projectile/Proj)
if(istype(Proj , /obj/item/projectile/beam)||istype(Proj, /obj/item/projectile/bullet))
diff --git a/code/modules/mob/living/simple_animal/eldritch_demons.dm b/code/modules/mob/living/simple_animal/eldritch_demons.dm
index 1991868eb855..574f0a5bbf40 100644
--- a/code/modules/mob/living/simple_animal/eldritch_demons.dm
+++ b/code/modules/mob/living/simple_animal/eldritch_demons.dm
@@ -322,7 +322,7 @@
icon_state = "rust_walker_n"
else if(newdir == SOUTH)
icon_state = "rust_walker_s"
- //update_icon()
+ //update_icon(updates=ALL)
/mob/living/simple_animal/hostile/eldritch/rust_spirit/Moved()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
index 64b0860dc4a7..b4fc54249ac2 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
@@ -65,7 +65,7 @@
to_chat(user, span_notice("You install [M] in [src]!"))
mmi = M
transfer_personality(M)
- update_icon()
+ update_appearance(UPDATE_ICON)
return 1
else if(O.tool_behaviour == TOOL_WELDER && (user.a_intent != INTENT_HARM || user == src)) ///Removed needless self repair part
@@ -131,7 +131,8 @@
if(!QDELETED(src) && stat != DEAD)
death()
-/mob/living/simple_animal/spiderbot/update_icon()
+/mob/living/simple_animal/spiderbot/update_icon(updates=ALL)
+ . = ..()
if(mmi)
if(istype(mmi, /obj/item/mmi/posibrain))
icon_state = "spiderbot-chassis-posi"
@@ -150,10 +151,10 @@
else if(key)
mmi.brainmob.key = key
mmi.forceMove(loc)
- mmi.update_icon()
+ mmi.update_appearance(UPDATE_ICON)
mmi = null
name = initial(name)
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/spiderbot/gib()
eject_brain()
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index d95270a0120e..101ece8a3a79 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -636,7 +636,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
"}
-/obj/item/paper/guides/antag/guardian/update_icon()
+/obj/item/paper/guides/antag/guardian/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/paper/guides/antag/guardian/wizard
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index f7946560440d..96773a5aae98 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -300,7 +300,8 @@ Difficulty: Very Hard
var/list/stored_items = list()
var/list/blacklist = list()
-/obj/machinery/smartfridge/black_box/update_icon()
+/obj/machinery/smartfridge/black_box/update_icon(updates=ALL)
+ . = ..()
return
/obj/machinery/smartfridge/black_box/accept_check(obj/item/O)
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index 684a7d66b59c..d25d453cef94 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -239,19 +239,19 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
var/obj/item/ammo_casing/energy/shot = Zapgun.ammo_type[Zapgun.select]
if(Zapgun.cell.charge >= shot.e_cost)
Zapgun.cell.use(shot.e_cost)
- Zapgun.update_icon()
+ Zapgun.update_appearance(UPDATE_ICON)
..()
else if(Zapstick)
if(Zapstick.charges)
Zapstick.charges--
- Zapstick.update_icon()
+ Zapstick.update_appearance(UPDATE_ICON)
..()
else if(Pewgun)
if(Pewgun.chambered)
if(Pewgun.chambered.BB)
qdel(Pewgun.chambered.BB)
Pewgun.chambered.BB = null //because qdel takes too long, ensures icon update
- Pewgun.chambered.update_icon()
+ Pewgun.chambered.update_appearance(UPDATE_ICON)
..()
else
visible_message(span_danger("The [src] clears a jam!"))
@@ -260,7 +260,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
if(Pewgun.magazine && Pewgun.magazine.stored_ammo.len)
Pewgun.chambered = Pewgun.magazine.get_round(0)
Pewgun.chambered.forceMove(Pewgun)
- Pewgun.update_icon()
+ Pewgun.update_appearance(UPDATE_ICON)
else if(Pewgun.magazine && Pewgun.magazine.stored_ammo.len) //only true for pumpguns i think
Pewgun.chambered = Pewgun.magazine.get_round(0)
Pewgun.chambered.forceMove(Pewgun)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 7e56049b2801..b15bbe0233fd 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -536,10 +536,10 @@
var/atom/movable/screen/inventory/hand/H
H = hud_used.hand_slots["[hand_index]"]
if(H)
- H.update_icon()
+ H.update_appearance(UPDATE_ICON)
H = hud_used.hand_slots["[oindex]"]
if(H)
- H.update_icon()
+ H.update_appearance(UPDATE_ICON)
/mob/living/simple_animal/put_in_hands(obj/item/I, del_on_fail = FALSE, merge_stacks = TRUE)
. = ..(I, del_on_fail, merge_stacks)
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index 8f30343f0aaf..cace6dbe8401 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -99,7 +99,7 @@
idle_threads = list()
install_starting_components()
install_starting_files()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/modular_computer/Destroy()
kill_program(forced = TRUE)
@@ -262,7 +262,8 @@
. += get_modular_computer_parts_examine(user)
-/obj/item/modular_computer/update_icon()
+/obj/item/modular_computer/update_icon(updates=ALL)
+ . = ..()
if(!physical)
return
@@ -293,11 +294,11 @@
/obj/item/modular_computer/equipped()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/modular_computer/dropped()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/modular_computer/proc/update_label()
@@ -338,7 +339,7 @@
else
to_chat(user, span_notice("You press the power button and start up \the [src]."))
enabled = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
play_computer_sound(startup_sound, get_clamped_volume(), FALSE)
ui_interact(user)
else // Unpowered
@@ -480,7 +481,7 @@
var/mob/user = usr
if(user && istype(user))
ui_interact(user) // Re-open the UI on this computer. It should show the main screen now.
- update_icon()
+ update_appearance(UPDATE_ICON)
// Returns 0 for No Signal, 1 for Low Signal and 2 for Good Signal. 3 is for wired connection (always-on)
/obj/item/modular_computer/proc/get_ntnet_status(specific_action = 0)
@@ -504,7 +505,7 @@
if(loud)
physical.visible_message(span_notice("\The [src] shuts down."))
enabled = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
play_computer_sound(shutdown_sound, get_clamped_volume(), FALSE)
/**
@@ -517,7 +518,7 @@
if(!has_light)
return FALSE
set_light_on(!light_on)
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/**
diff --git a/code/modules/modular_computers/computers/item/computer_components.dm b/code/modules/modular_computers/computers/item/computer_components.dm
index 8020167959a6..0be41490d652 100644
--- a/code/modules/modular_computers/computers/item/computer_components.dm
+++ b/code/modules/modular_computers/computers/item/computer_components.dm
@@ -50,7 +50,7 @@
yeet.on_remove(src, user)
if(enabled && !use_power())
shutdown_computer()
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/// This isn't the "uninstall fully" proc, it just makes the computer lose all its references to the component
diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm
index cb6f3f7aa702..9af6c1d7edb0 100644
--- a/code/modules/modular_computers/computers/item/computer_ui.dm
+++ b/code/modules/modular_computers/computers/item/computer_ui.dm
@@ -116,7 +116,7 @@
active_program.program_state = PROGRAM_STATE_BACKGROUND // Should close any existing UIs
active_program = null
- update_icon()
+ update_appearance(UPDATE_ICON)
if(user && istype(user))
ui_interact(user) // Re-open the UI on this computer. It should show the main screen now.
@@ -156,7 +156,7 @@
active_program = P
P.alert_pending = FALSE
idle_threads.Remove(P)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
var/obj/item/computer_hardware/processor_unit/PU = all_components[MC_CPU]
@@ -171,7 +171,7 @@
if(P.run_program(user))
active_program = P
P.alert_pending = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
if("PC_toggle_light")
diff --git a/code/modules/modular_computers/computers/item/laptop/laptop.dm b/code/modules/modular_computers/computers/item/laptop/laptop.dm
index bbdcdb815ae1..ab0806994076 100644
--- a/code/modules/modular_computers/computers/item/laptop/laptop.dm
+++ b/code/modules/modular_computers/computers/item/laptop/laptop.dm
@@ -33,7 +33,8 @@
if(start_open && !screen_on)
toggle_open()
-/obj/item/modular_computer/laptop/update_icon()
+/obj/item/modular_computer/laptop/update_icon(updates=ALL)
+ . = ..()
if(screen_on)
..()
else
@@ -106,7 +107,7 @@
icon_state = icon_state_unpowered
screen_on = !screen_on
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm
index dd636708bd2f..0720cfe412af 100644
--- a/code/modules/modular_computers/computers/item/processor.dm
+++ b/code/modules/modular_computers/computers/item/processor.dm
@@ -62,7 +62,7 @@
if(!machinery_computer)
return
..()
- machinery_computer.update_icon()
+ machinery_computer.update_appearance(UPDATE_ICON)
return
/obj/item/modular_computer/processor/attack_ghost(mob/user)
diff --git a/code/modules/modular_computers/computers/item/tablet/tablet.dm b/code/modules/modular_computers/computers/item/tablet/tablet.dm
index 81e483c3dc95..6e711b83f013 100644
--- a/code/modules/modular_computers/computers/item/tablet/tablet.dm
+++ b/code/modules/modular_computers/computers/item/tablet/tablet.dm
@@ -56,11 +56,12 @@
return
to_chat(user, span_notice("You slide \the [C] into \the [src]."))
inserted_item = C
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
-/obj/item/modular_computer/tablet/update_icon()
+/obj/item/modular_computer/tablet/update_icon(updates=ALL)
+ . = ..()
..()
if (!isnull(variants))
if(!finish_color)
diff --git a/code/modules/modular_computers/computers/machinery/console/modular_console.dm b/code/modules/modular_computers/computers/machinery/console/modular_console.dm
index 29275d051998..884ab9a5b1d5 100644
--- a/code/modules/modular_computers/computers/machinery/console/modular_console.dm
+++ b/code/modules/modular_computers/computers/machinery/console/modular_console.dm
@@ -42,9 +42,10 @@
network_card.identification_string = "Unknown Console"
if(cpu)
cpu.screen_on = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/modular_computer/console/update_icon()
+/obj/machinery/modular_computer/console/update_icon(updates=ALL)
+ . = ..()
. = ..()
// this bit of code makes the computer hug the wall its next to
diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm
index 02e8b67c8cc1..721b87d130fe 100644
--- a/code/modules/modular_computers/computers/machinery/modular_computer.dm
+++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm
@@ -75,8 +75,9 @@
return FALSE
return (cpu.emag_act(user))
-/obj/machinery/modular_computer/update_icon()
- cpu.update_icon()
+/obj/machinery/modular_computer/update_icon(updates=ALL)
+ . = ..()
+ cpu.update_appearance(UPDATE_ICON)
/obj/machinery/modular_computer/AltClick(mob/user)
if(cpu)
@@ -105,13 +106,13 @@
if(cpu)
cpu.shutdown_computer(0)
stat |= NOPOWER
- update_icon()
+ update_appearance(UPDATE_ICON)
// Modular computers can have battery in them, we handle power in previous proc, so prevent this from messing it up for us.
/obj/machinery/modular_computer/power_change()
if(cpu && cpu.use_power()) // If MC_CPU still has a power source, PC wouldn't go offline.
stat &= ~NOPOWER
- update_icon()
+ update_appearance(UPDATE_ICON)
return
. = ..()
diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm
index b7d3163581b3..0efcfdb19b62 100644
--- a/code/modules/modular_computers/file_system/program.dm
+++ b/code/modules/modular_computers/file_system/program.dm
@@ -68,7 +68,7 @@
// Relays icon update to the computer.
/datum/computer_file/program/proc/update_computer_icon()
if(computer)
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
// Attempts to create a log in global ntnet datum. Returns 1 on success, 0 on fail.
/datum/computer_file/program/proc/generate_network_log(text)
@@ -237,7 +237,7 @@
program_state = PROGRAM_STATE_BACKGROUND // Should close any existing UIs
computer.active_program = null
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
ui.close()
if(user && istype(user))
diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
index 28aa6d769e9c..abff81bd1308 100644
--- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
+++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
@@ -28,7 +28,7 @@
computer.visible_message(span_notice("\The [computer]'s screen brightly flashes and loud electrical buzzing is heard."))
computer.enabled = FALSE
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
var/obj/item/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD]
var/obj/item/computer_hardware/battery/battery_module = computer.all_components[MC_CELL]
var/obj/item/computer_hardware/recharger/recharger = computer.all_components[MC_CHARGE]
diff --git a/code/modules/modular_computers/file_system/programs/arcade.dm b/code/modules/modular_computers/file_system/programs/arcade.dm
index 3f2fd4639e87..37bcf6bbe17d 100644
--- a/code/modules/modular_computers/file_system/programs/arcade.dm
+++ b/code/modules/modular_computers/file_system/programs/arcade.dm
@@ -28,7 +28,7 @@
game_active = FALSE
program_icon_state = "arcade_off"
if(istype(computer))
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
ticket_count += 1
sleep(1 SECONDS)
return
@@ -38,7 +38,7 @@
game_active = FALSE
program_icon_state = "arcade_off"
if(istype(computer))
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
sleep(1 SECONDS)
return
return
@@ -168,4 +168,4 @@
boss_id = rand(1,6)
pause_state = FALSE
if(istype(computer))
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
diff --git a/code/modules/modular_computers/file_system/programs/engineering/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/sm_monitor.dm
index f0d06dc70970..c4afd769d205 100644
--- a/code/modules/modular_computers/file_system/programs/engineering/sm_monitor.dm
+++ b/code/modules/modular_computers/file_system/programs/engineering/sm_monitor.dm
@@ -31,7 +31,7 @@
ui_header = "smmon_[last_status].gif"
program_icon_state = "smmon_[last_status]"
if(istype(computer))
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
/datum/computer_file/program/supermatter_monitor/run_program(mob/living/user)
. = ..(user)
diff --git a/code/modules/modular_computers/file_system/programs/medical/crew_monitor.dm b/code/modules/modular_computers/file_system/programs/medical/crew_monitor.dm
index 2f64d0d938ce..d0986bc7e206 100644
--- a/code/modules/modular_computers/file_system/programs/medical/crew_monitor.dm
+++ b/code/modules/modular_computers/file_system/programs/medical/crew_monitor.dm
@@ -56,7 +56,7 @@
ui_header = "health_green.gif"
if(istype(computer))
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
/datum/computer_file/program/crew_monitor/ui_data(mob/user)
var/list/data = get_header_data()
diff --git a/code/modules/modular_computers/file_system/programs/portrait_printer.dm b/code/modules/modular_computers/file_system/programs/portrait_printer.dm
index 912bf4030dcd..95bd71cb097b 100644
--- a/code/modules/modular_computers/file_system/programs/portrait_printer.dm
+++ b/code/modules/modular_computers/file_system/programs/portrait_printer.dm
@@ -73,7 +73,7 @@
printed_canvas.name = "painting - [title]"
///this is a copy of something that is already in the database- it should not be able to be saved.
printed_canvas.no_save = TRUE
- printed_canvas.update_icon()
+ printed_canvas.update_appearance(UPDATE_ICON)
to_chat(usr, span_notice("You have printed [title] onto a new canvas."))
playsound(computer.physical, 'sound/items/poster_being_created.ogg', 100, TRUE)
diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm
index 97f64584ed06..6f42edf88f70 100644
--- a/code/modules/modular_computers/file_system/programs/radar.dm
+++ b/code/modules/modular_computers/file_system/programs/radar.dm
@@ -17,7 +17,7 @@
var/atom/selected
///Used to store when the next scan is available. Updated by the scan() proc.
var/next_scan = 0
- ///Used to keep track of the last value program_icon_state was set to, to prevent constant unnecessary update_icon() calls
+ ///Used to keep track of the last value program_icon_state was set to, to prevent constant unnecessary update_appearance(UPDATE_ICON) calls
var/last_icon_state = ""
///Used by the tgui interface, themed NT or Syndicate.
var/arrowstyle = "ntosradarpointer.png"
@@ -180,7 +180,7 @@
if(!trackable(signal))
program_icon_state = "[initial(program_icon_state)]lost"
if(last_icon_state != program_icon_state)
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
last_icon_state = program_icon_state
return
@@ -198,7 +198,7 @@
program_icon_state = "[initial(program_icon_state)]far"
if(last_icon_state != program_icon_state)
- computer.update_icon()
+ computer.update_appearance(UPDATE_ICON)
last_icon_state = program_icon_state
computer.setDir(get_dir(here_turf, target_turf))
diff --git a/code/modules/modular_computers/file_system/programs/science/airestorer.dm b/code/modules/modular_computers/file_system/programs/science/airestorer.dm
index 56a9d7463fbd..4251db214748 100644
--- a/code/modules/modular_computers/file_system/programs/science/airestorer.dm
+++ b/code/modules/modular_computers/file_system/programs/science/airestorer.dm
@@ -85,7 +85,7 @@
A.updatehealth()
if(A.health >= 0 && A.stat == DEAD)
A.revive()
- cardhold.update_icon()
+ cardhold.update_appearance(UPDATE_ICON)
// Finished restoring
if(A.health >= 100)
ai_slot.locked = FALSE
diff --git a/code/modules/modular_computers/hardware/printer.dm b/code/modules/modular_computers/hardware/printer.dm
index 4266a46127cd..abb76b538a7c 100644
--- a/code/modules/modular_computers/hardware/printer.dm
+++ b/code/modules/modular_computers/hardware/printer.dm
@@ -37,7 +37,7 @@
P.info = text_to_print
if(paper_title)
P.name = paper_title
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
P.reload_fields()
stored_paper--
P = null
@@ -52,7 +52,7 @@
// Damaged printer causes the resulting paper to be somewhat harder to read.
if(damage > damage_malfunction)
P.info = stars(P.info, 100-malfunction_probability)
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
P.reload_fields()
stored_paper--
P = null
diff --git a/code/modules/ninja/suit/ninjaDrainAct.dm b/code/modules/ninja/suit/ninjaDrainAct.dm
index f8b61cef7b5e..0c33b62b46d6 100644
--- a/code/modules/ninja/suit/ninjaDrainAct.dm
+++ b/code/modules/ninja/suit/ninjaDrainAct.dm
@@ -55,7 +55,7 @@ They *could* go in their appropriate files, but this is supposed to be modular
playsound(loc, "sparks", 50, 1)
obj_flags |= EMAGGED
locked = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
@@ -112,7 +112,7 @@ They *could* go in their appropriate files, but this is supposed to be modular
S.cell.give(charge)
charge = 0
corrupt()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/proc/AI_notify_hack()
var/turf/location = get_turf(src)
diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm
index 6a9040497657..510b4c6b5afc 100644
--- a/code/modules/ninja/suit/suit_attackby.dm
+++ b/code/modules/ninja/suit/suit_attackby.dm
@@ -29,7 +29,7 @@
U.put_in_hands(old_cell)
old_cell.add_fingerprint(U)
old_cell.corrupt()
- old_cell.update_icon()
+ old_cell.update_appearance(UPDATE_ICON)
cell = CELL
to_chat(U, span_notice("Upgrade complete. Maximum capacity: [round(cell.maxcharge/100)]%"))
else
diff --git a/code/modules/pai/card.dm b/code/modules/pai/card.dm
index 312b8a26abc1..59d5b3096d6c 100644
--- a/code/modules/pai/card.dm
+++ b/code/modules/pai/card.dm
@@ -58,12 +58,12 @@
if(thing == pai) //double check /mob/living/silicon/pai/Destroy() if you change these.
pai = null
emotion_icon = initial(emotion_icon)
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/item/pai_card/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
SSpai.pai_card_list += src
/obj/item/pai_card/suicide_act(mob/living/user)
@@ -71,6 +71,7 @@
return OXYLOSS
/obj/item/pai_card/proc/update_overlays()
+ . = ..()
. = ..()
. += "pai-[emotion_icon]"
if(pai?.hacking_cable)
@@ -79,7 +80,7 @@
/obj/item/pai_card/vv_edit_var(vname, vval)
. = ..()
if(vname == NAMEOF(src, emotion_icon))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/pai_card/ui_interact(mob/user, datum/tgui/ui)
. = ..()
@@ -253,7 +254,7 @@
return FALSE
pai = downloaded
emotion_icon = "null"
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src, 'sound/effects/pai_boot.ogg', 50, TRUE, -1)
audible_message("[src] plays a cheerful startup noise!")
return TRUE
diff --git a/code/modules/pai/death.dm b/code/modules/pai/death.dm
index 62cd82fe009b..2168f46796fb 100644
--- a/code/modules/pai/death.dm
+++ b/code/modules/pai/death.dm
@@ -14,6 +14,6 @@
card.forceMove(drop_location())
card.pai = null
card.emotion_icon = initial(card.emotion_icon)
- card.update_icon()
+ card.update_appearance(UPDATE_ICON)
qdel(src)
diff --git a/code/modules/pai/door_jack.dm b/code/modules/pai/door_jack.dm
index 50013cf5862c..75cf0fe9b442 100644
--- a/code/modules/pai/door_jack.dm
+++ b/code/modules/pai/door_jack.dm
@@ -116,7 +116,7 @@
untrack_thing(hacking_cable)
QDEL_NULL(hacking_cable)
if(!QDELETED(card))
- card.update_icon()
+ card.update_appearance(UPDATE_ICON)
return FALSE
var/obj/machinery/door/door = hacking_cable.machine
balloon_alert(src, "success")
diff --git a/code/modules/pai/pai.dm b/code/modules/pai/pai.dm
index 71a1013a4c19..ea62ccef1a4e 100644
--- a/code/modules/pai/pai.dm
+++ b/code/modules/pai/pai.dm
@@ -170,7 +170,7 @@
hacking_cable = null
SStgui.update_user_uis(src)
if(!QDELETED(card))
- card.update_icon()
+ card.update_appearance(UPDATE_ICON)
if(deleting_atom == atmos_analyzer)
atmos_analyzer = null
if(deleting_atom == camera)
diff --git a/code/modules/pai/software.dm b/code/modules/pai/software.dm
index 1ff2e02d3585..9fb5cf109e78 100644
--- a/code/modules/pai/software.dm
+++ b/code/modules/pai/software.dm
@@ -142,7 +142,7 @@
if(isnull(new_image))
return FALSE
card.emotion_icon = new_image
- card.update_icon()
+ card.update_appearance(UPDATE_ICON)
return TRUE
/**
diff --git a/code/modules/paperwork/carbonpaper.dm b/code/modules/paperwork/carbonpaper.dm
index d81bbbb5fc2c..90ee059e81d3 100644
--- a/code/modules/paperwork/carbonpaper.dm
+++ b/code/modules/paperwork/carbonpaper.dm
@@ -7,7 +7,8 @@
var/iscopy = FALSE
-/obj/item/paper/carbon/update_icon()
+/obj/item/paper/carbon/update_icon(updates=ALL)
+ . = ..()
if(iscopy)
if(written.len)
icon_state = "cpaper_words"
@@ -52,8 +53,8 @@
copied = TRUE
copy.copied = TRUE
copy.iscopy = TRUE
- update_icon()
- copy.update_icon()
+ update_appearance(UPDATE_ICON)
+ copy.update_appearance(UPDATE_ICON)
usr.put_in_hands(copy)
else
to_chat(usr, span_warning("There are no more carbon copies attached to this paper!"))
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 82cc9c8f249a..4e33a34ad1d7 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -17,7 +17,7 @@
return BRUTELOSS//the clipboard's clip is very strong. industrial duty. can kill a man easily.
/obj/item/clipboard/Initialize(mapload)
- update_icon()
+ update_appearance(UPDATE_ICON)
. = ..()
/obj/item/clipboard/Destroy()
@@ -25,7 +25,8 @@
QDEL_NULL(toppaper) //let movable/Destroy handle the rest
return ..()
-/obj/item/clipboard/update_icon()
+/obj/item/clipboard/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/list/dat = list()
if(toppaper)
@@ -43,10 +44,10 @@
return
toppaper = W
to_chat(user, span_notice("You clip the paper onto \the [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(toppaper)
toppaper.attackby(user.get_active_held_item(), user)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clipboard/attack_self(mob/user)
@@ -126,4 +127,4 @@
//Update everything
attack_self(usr)
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm
index f8e59ab8369a..f92fadcb5737 100644
--- a/code/modules/paperwork/contract.dm
+++ b/code/modules/paperwork/contract.dm
@@ -10,7 +10,8 @@
/obj/item/paper/contract/proc/update_text()
return
-/obj/item/paper/contract/update_icon()
+/obj/item/paper/contract/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/paper/contract/infernal
@@ -269,7 +270,7 @@
var/obj/item/storage/wallet/W = worn
W.front_id = id
id.forceMove(worn)
- worn.update_icon()
+ worn.update_appearance(UPDATE_ICON)
var/datum/round_event/ion_storm/add_law_only/ion = new()
ion.announceEvent = -1
ion.ionMessage = "[user.name] is the only Captain of the station. [user.name] is the highest authority, legitimate or otherwise, on the station. [user.name] was always the captain and highest authority on the station. Do not state this law."
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index 311c6a3cfee3..da63fefc3651 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -196,7 +196,7 @@ GLOBAL_LIST_EMPTY(adminfaxes)
templist += L
P.written += templist
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
playsound(loc, "sound/items/polaroid1.ogg", 50, 1)
// Stamps
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 90c0b9ab5d32..ce787e343c1e 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -60,7 +60,8 @@
icon_state = "coloredcabinet_frame"
name = "colored cabinet"
-/obj/structure/filingcabinet/colored/update_icon()
+/obj/structure/filingcabinet/colored/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/mutable_appearance/cab = mutable_appearance(icon, "coloredcabinet_trim")
cab.color = colour
@@ -68,7 +69,7 @@
/obj/structure/filingcabinet/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
if(mapload)
for(var/obj/item/I in loc)
if(istype(I, /obj/item/paper) || istype(I, /obj/item/folder) || istype(I, /obj/item/photo))
@@ -185,7 +186,7 @@
colour = colour_choice
name = "colored cabinet" // Having a cabinet called 'Purple Cabinet' while it's green colored would be weird
playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5)
- update_icon() // reset overlays
+ update_appearance(UPDATE_ICON) // reset overlays
return
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index df5436db67ad..0ee702fa4e55 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -28,7 +28,8 @@
icon_state = "folder_white"
-/obj/item/folder/update_icon()
+/obj/item/folder/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(contents.len)
add_overlay("folder_paper")
@@ -39,7 +40,7 @@
if(!user.transferItemToLoc(W, src))
return
to_chat(user, span_notice("You put [W] into [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(istype(W, /obj/item/pen))
if(!user.is_literate())
to_chat(user, span_notice("You scribble illegibly on the cover of [src]!"))
@@ -94,7 +95,7 @@
//Update everything
attack_self(usr)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/folder/documents
name = "folder- 'TOP SECRET'"
@@ -103,7 +104,7 @@
/obj/item/folder/documents/Initialize(mapload)
. = ..()
new /obj/item/documents/nanotrasen(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/folder/syndicate
icon_state = "folder_syndie"
@@ -116,7 +117,7 @@
/obj/item/folder/syndicate/red/Initialize(mapload)
. = ..()
new /obj/item/documents/syndicate/red(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/folder/syndicate/blue
icon_state = "folder_sblue"
@@ -124,9 +125,9 @@
/obj/item/folder/syndicate/blue/Initialize(mapload)
. = ..()
new /obj/item/documents/syndicate/blue(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/folder/syndicate/mining/Initialize(mapload)
. = ..()
new /obj/item/documents/syndicate/mining(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/paperwork/inspector_booth.dm b/code/modules/paperwork/inspector_booth.dm
index cff2ff91cb79..5f48396efb58 100644
--- a/code/modules/paperwork/inspector_booth.dm
+++ b/code/modules/paperwork/inspector_booth.dm
@@ -55,9 +55,10 @@
/obj/machinery/inspector_booth/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/inspector_booth/update_icon()
+/obj/machinery/inspector_booth/update_icon(updates=ALL)
+ . = ..()
if (stat & NOPOWER)
icon_state = "booth_off"
else if (panel_open || stat & MAINT)
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 0442a79569ad..8c34c71035e8 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -76,10 +76,10 @@
pixel_y = rand(-8, 8)
pixel_x = rand(-9, 9)
written = list()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/paper/update_icon()
+/obj/item/paper/update_icon(updates=ALL)
if(resistance_flags & ON_FIRE)
icon_state = "paper_onfire"
@@ -185,7 +185,7 @@
stamps = null
LAZYCLEARLIST(stamped)
cut_overlays()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/paper/proc/parsepencode(t, obj/item/pen/P, mob/user, iscrayon = 0)
@@ -279,7 +279,7 @@
else
written.Insert(text2num(id),templist) // text2num, otherwise it writes to the hashtable index instead of into the array
usr << browse("[name][render_body(usr,TRUE)]
[stamps]", "window=[name]") // Update the window
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/paper/attackby(obj/item/P, mob/living/carbon/human/user, params)
@@ -355,7 +355,7 @@
src.loc = B
P.loc = B
B.amount = 2
- B.update_icon()
+ B.update_appearance(UPDATE_ICON)
add_fingerprint(user)
@@ -368,7 +368,7 @@
/obj/item/paper/extinguish()
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/*
* Construction paper
@@ -393,7 +393,8 @@
icon_state = "scrap"
slot_flags = null
-/obj/item/paper/crumpled/update_icon()
+/obj/item/paper/crumpled/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/paper/crumpled/bloody
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 351e5472cc1c..3c95e72e33d5 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -58,7 +58,7 @@
usr << browse("", "window=[name]") //Closes the dialog
P = src[page]
P.attackby(W, user)
- update_icon()
+ update_appearance(UPDATE_ICON)
attack_self(usr) //Update the browsed page.
add_fingerprint(usr)
return
@@ -114,7 +114,7 @@
/obj/item/paper_bundle/attack_self(mob/user as mob)
src.show_content(user)
add_fingerprint(usr)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/item/paper_bundle/proc/update_screen()
@@ -165,7 +165,7 @@
page = amount
if(page == amount)
screen = 2
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(usr, span_notice("You need to hold it in hand!"))
if (istype(src.loc, /mob) || istype(src.loc?.loc, /mob))
@@ -205,7 +205,8 @@
/obj/item/paper_bundle/AltClick(mob/living/user)
unbundle()
-/obj/item/paper_bundle/update_icon()
+/obj/item/paper_bundle/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/obj/item/paper/P = src[1]
icon_state = P.icon_state
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index 127366ab3b44..4b87641bb37a 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -15,7 +15,7 @@
/obj/item/papercutter/Initialize(mapload)
. = ..()
storedcutter = new /obj/item/hatchet/cutterblade(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/papercutter/suicide_act(mob/user)
@@ -34,7 +34,8 @@
return (BRUTELOSS)
-/obj/item/papercutter/update_icon()
+/obj/item/papercutter/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
icon_state = (storedcutter ? "[initial(icon_state)]-cutter" : "[initial(icon_state)]")
@@ -49,7 +50,7 @@
playsound(loc, "pageturn", 60, 1)
to_chat(user, span_notice("You place [P] in [src]."))
storedpaper = P
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(istype(P, /obj/item/hatchet/cutterblade) && !storedcutter)
if(!user.transferItemToLoc(P, src))
@@ -57,7 +58,7 @@
to_chat(user, span_notice("You replace [src]'s [P]."))
P.forceMove(src)
storedcutter = P
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(P.tool_behaviour == TOOL_SCREWDRIVER && storedcutter)
P.play_tool_sound(src)
@@ -79,7 +80,7 @@
to_chat(user, span_notice("You remove [src]'s [storedcutter]."))
user.put_in_hands(storedcutter)
storedcutter = null
- update_icon()
+ update_appearance(UPDATE_ICON)
if(storedpaper)
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1)
@@ -88,7 +89,7 @@
qdel(storedpaper)
new /obj/item/paperslip(get_turf(src))
new /obj/item/paperslip(get_turf(src))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/papercutter/MouseDrop(atom/over_object)
. = ..()
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index c52d915c54b4..fa60d1cbb2be 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -25,7 +25,7 @@
if(P && !bin_pen)
P.forceMove(src)
bin_pen = P
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/paper_bin/Destroy()
if(papers)
@@ -37,7 +37,7 @@
/obj/item/paper_bin/fire_act(exposed_temperature, exposed_volume)
if(total_paper)
total_paper = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
..()
/obj/item/paper_bin/MouseDrop(atom/over_object)
@@ -73,14 +73,14 @@
user.put_in_hands(P)
to_chat(user, span_notice("You take [P] out of \the [src]."))
bin_pen = null
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(total_paper >= 1)
response = alert(user, "Do you take regular paper, or Carbon copy paper?", "Paper type request", "Regular", "Carbon Copy", "Cancel")
if (response != "Regular" && response != "Carbon Copy")
add_fingerprint(user)
return
total_paper--
- update_icon()
+ update_appearance(UPDATE_ICON)
// If there's any custom paper on the stack, use that instead of creating a new paper.
var/obj/item/paper/P
if(papers.len > 0)
@@ -113,14 +113,14 @@
to_chat(user, span_notice("You put [P] in [src]."))
papers.Add(P)
total_paper++
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(istype(I, /obj/item/pen) && !bin_pen)
var/obj/item/pen/P = I
if(!user.transferItemToLoc(P, src))
return
to_chat(user, span_notice("You put [P] in [src]."))
bin_pen = P
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
@@ -131,7 +131,8 @@
else
. += "It doesn't contain anything."
-/obj/item/paper_bin/update_icon()
+/obj/item/paper_bin/update_icon(updates=ALL)
+ . = ..()
if(total_paper < 1)
icon_state = "paper_bin0"
else
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 97985c89f6ff..68955ea225b9 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -29,7 +29,7 @@
newPaper.forceMove(src)
else
internalPaper = new(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/paperplane/handle_atom_del(atom/A)
if(A == internalPaper)
@@ -52,7 +52,8 @@
sleep(1 SECONDS)
return (BRUTELOSS)
-/obj/item/paperplane/update_icon()
+/obj/item/paperplane/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/list/stamped = internalPaper.stamped
if(stamped)
@@ -75,7 +76,7 @@
else if(istype(P, /obj/item/stamp)) //we don't randomize stamps on a paperplane
internalPaper.attackby(P, user) //spoofed attack to update internal paper.
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(P.is_hot())
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10))
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 3447000a9306..dc55d3dfe2b0 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -11,7 +11,7 @@
/obj/machinery/papershredder/proc/try_insert(mob/user, insert_size = 0)
if(paperamount <= max_paper - insert_size)
paperamount += insert_size
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src.loc, 'sound/items/pshred.ogg', 75, 1)
return TRUE
else
@@ -30,7 +30,7 @@
if(ran == 3)
SP.color = null
paperamount -=1
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_warning("The [src] was too full and shredded paper goes everywhere!"))
else
to_chat(user, span_warning("The [src] is full please empty it before you continue."))
@@ -74,7 +74,7 @@
SP.color = null
STR.handle_item_insertion(SP)
paperamount -=1
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("The [W] is full."))
return
@@ -85,7 +85,7 @@
if(paperamount < max_paper)
qdel(W)
paperamount += 1
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(shred_amount && try_insert(user, shred_amount))
@@ -113,12 +113,13 @@
if(ran == 3)
SP.color = null
paperamount -=1
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/papershredder/AltClick(mob/living/user)
emptypaper()
-/obj/machinery/papershredder/update_icon()
+/obj/machinery/papershredder/update_icon(updates=ALL)
+ . = ..()
if(paperamount == 0)
icon_state = "papershredder0"
if(paperamount == 1||paperamount == 2)
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 45dd291ba16f..ebdc031366f4 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -227,9 +227,10 @@
to_chat(user, span_warning("[src] is now active."))
var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering)
butchering.butchering_enabled = on
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/pen/edagger/update_icon()
+/obj/item/pen/edagger/update_icon(updates=ALL)
+ . = ..()
if(on)
icon_state = "edagger"
item_state = "edagger"
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 3733cfb818f1..756b29ca6049 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -341,7 +341,7 @@
c.written += L
c.name = copy.name
c.fields = copy.fields
- c.update_icon()
+ c.update_appearance(UPDATE_ICON)
c.stamps = copy.stamps
if(copy.stamped)
c.stamped = copy.stamped.Copy()
@@ -374,7 +374,7 @@
p.amount++
//p.amount--
p.loc = src.loc
- p.update_icon()
+ p.update_appearance(UPDATE_ICON)
p.icon_state = "paper_words"
p.name = bundle.name
p.pixel_y = rand(-8, 8)
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 8cb813ecbc13..081c0f11d821 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -18,9 +18,10 @@
/obj/machinery/ticket_machine/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/ticket_machine/update_icon()
+/obj/machinery/ticket_machine/update_icon(updates=ALL)
+ . = ..()
var/Temp = screenNum //This whole thing breaks down a 3 digit number into 3 seperate digits, aka "69" becomes "0","6" and "9"
var/Digit1 = round(Temp%10)//The remainder of any number/10 is always that number's rightmost digit
var/Digit2 = round(((Temp-Digit1)*0.1)%10) //Same idea, but divided by ten, to find the middle digit
@@ -50,7 +51,7 @@
if(currentNum < screenNum - 1)
screenNum -- //this should only happen if the queue is all caught up and more numbers get called than tickets exist
currentNum = screenNum - 1 //so the number wont go onto infinity. Numbers that haven't been taken yet won't show up on the screen yet either.
- update_icon() //Update our icon here
+ update_appearance(UPDATE_ICON) //Update our icon here
if(tickets.len\The [src] already contains a photo.")
..()
@@ -31,7 +31,7 @@
user.put_in_hands(I)
to_chat(user, span_notice("You carefully remove the photo from \the [src]."))
displayed = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/item/wallframe/picture/attack_self(mob/user)
@@ -44,7 +44,8 @@
else
return ..()
-/obj/item/wallframe/picture/update_icon()
+/obj/item/wallframe/picture/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(displayed)
add_overlay(image(displayed))
@@ -106,7 +107,7 @@
else
qdel(framed)
framed = P
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/sign/picture_frame/examine(mob/user)
if(in_range(src, user) && framed)
@@ -135,7 +136,7 @@
if(!user.transferItemToLoc(P, src))
return
framed = P
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, "\The [src] already contains a photo.")
@@ -148,7 +149,8 @@
if(framed)
framed.show(user)
-/obj/structure/sign/picture_frame/update_icon()
+/obj/structure/sign/picture_frame/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(framed)
add_overlay(image(framed))
@@ -162,5 +164,5 @@
if(contents.len)
var/obj/item/I = pick(contents)
I.forceMove(F)
- F.update_icon()
+ F.update_appearance(UPDATE_ICON)
qdel(src)
diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm
index 768367a708ed..dabe93bf4e2d 100644
--- a/code/modules/photography/photos/photo.dm
+++ b/code/modules/photography/photos/photo.dm
@@ -21,7 +21,7 @@
if(!istype(P))
return
picture = P
- update_icon()
+ update_appearance(UPDATE_ICON)
if(P.caption)
scribble = P.caption
if(setname && P.picture_name)
@@ -32,7 +32,8 @@
if(setdesc && P.picture_desc)
desc = P.picture_desc
-/obj/item/photo/update_icon()
+/obj/item/photo/update_icon(updates=ALL)
+ . = ..()
if(!istype(picture) || !picture.picture_image)
return
var/icon/I = picture.get_small_icon()
diff --git a/code/modules/plumbing/ducts.dm b/code/modules/plumbing/ducts.dm
index f238a8cc734d..2a3c099c9f8a 100644
--- a/code/modules/plumbing/ducts.dm
+++ b/code/modules/plumbing/ducts.dm
@@ -57,7 +57,7 @@ All the important duct code:
for(var/atom/movable/AM in get_step(src, D))
if(connect_network(AM, D))
add_connects(D)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/duct/proc/connect_network(atom/movable/AM, direction, ignore_color)
if(istype(AM, /obj/machinery/duct))
@@ -82,7 +82,7 @@ All the important duct code:
add_neighbour(D)
D.add_connects(opposite_dir)
- D.update_icon()
+ D.update_appearance(UPDATE_ICON)
return TRUE //tell the current pipe to also update it's sprite
if(!(D in neighbours)) //we cool
if((duct_color != D.duct_color) && !(ignore_colors || D.ignore_colors))
@@ -125,7 +125,7 @@ All the important duct code:
duct.remove_duct(src)
lose_neighbours()
reset_connects(0)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/duct/proc/create_duct()
duct = new()
@@ -160,7 +160,7 @@ All the important duct code:
adjacents += D
return adjacents
-/obj/machinery/duct/update_icon() //setting connects isnt a parameter because sometimes we make more than one change, overwrite it completely or just add it to the bitfield
+/obj/machinery/duct/update_icon(updates=ALL) //setting connects isnt a parameter because sometimes we make more than one change, overwrite it completely or just add it to the bitfield
var/temp_icon = initial(icon_state)
for(var/D in GLOB.cardinals)
if(D & connects)
@@ -245,7 +245,7 @@ All the important duct code:
return
connect_network(D, direction, TRUE)
add_connects(direction)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/duct/multilayered
name = "duct layer-manifold"
@@ -262,7 +262,8 @@ All the important duct code:
dumb = TRUE
-/obj/machinery/duct/multilayered/update_icon()
+/obj/machinery/duct/multilayered/update_icon(updates=ALL)
+ . = ..()
icon_state = initial(icon_state)
if((connects & NORTH) || (connects & SOUTH))
icon_state += "_vertical"
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 5051b5ba8f06..9bbb07a6d4b6 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -205,7 +205,7 @@
operating = FALSE
name = "[area.name] APC"
stat |= MAINT
- src.update_icon()
+ src.update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(update)), 5)
/obj/machinery/power/apc/Destroy()
@@ -230,7 +230,7 @@
/obj/machinery/power/apc/handle_atom_del(atom/A)
if(A == cell)
cell = null
- update_icon()
+ update_appearance(UPDATE_ICON)
updateUsrDialog()
/obj/machinery/power/apc/proc/make_terminal()
@@ -260,7 +260,7 @@
stack_trace("Bad areastring path for [src], [src.areastring]")
else if(isarea(A) && src.areastring == null)
src.area = A
- update_icon()
+ update_appearance(UPDATE_ICON)
make_terminal()
@@ -325,7 +325,8 @@
// update the APC icon to show the three base states
// also add overlays for indicator lights
-/obj/machinery/power/apc/update_icon()
+/obj/machinery/power/apc/update_icon(updates=ALL)
+ . = ..()
var/update = check_updates() //returns 0 if no need to update icons.
// 1 if we need to update the icon_state
// 2 if we need to update the overlays
@@ -518,7 +519,7 @@
else if (opened!=APC_COVER_REMOVED)
opened = APC_COVER_CLOSED
coverlocked = TRUE //closing cover relocks it
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if (!(stat & BROKEN))
if(coverlocked && !(stat & MAINT)) // locked...
@@ -529,7 +530,7 @@
return
else
opened = APC_COVER_OPENED
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else
W.play_tool_sound(src)
@@ -538,7 +539,7 @@
W.play_tool_sound(src)
to_chat(user, span_notice("You pry the broken cover off of [src]."))
opened = APC_COVER_REMOVED
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/W)
@@ -550,10 +551,10 @@
user.visible_message("[user] removes \the [cell] from [src]!",span_notice("You remove \the [cell]."))
var/turf/T = get_turf(user)
cell.forceMove(T)
- cell.update_icon()
+ cell.update_appearance(UPDATE_ICON)
cell = null
charging = APC_NOT_CHARGING
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else
switch (has_electronics)
@@ -570,14 +571,14 @@
else
to_chat(user, span_warning("There is nothing to secure!"))
return
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(obj_flags & EMAGGED)
to_chat(user, span_warning("The interface is broken!"))
return
else
panel_open = !panel_open
to_chat(user, span_notice("The wires have been [panel_open ? "exposed" : "unexposed"]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/apc/wirecutter_act(mob/living/user, obj/item/W)
if (terminal && opened)
@@ -626,7 +627,7 @@
"[user.name] has inserted the power cell to [src.name]!",\
span_notice("You insert the power cell."))
chargecount = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
else if (W.GetID())
togglelock(user)
else if (istype(W, /obj/item/stack/cable_coil) && opened)
@@ -704,7 +705,7 @@
chargecount = 0
user.visible_message(span_notice("[user] fabricates a weak power cell and places it into [src]."), \
span_warning("Your [P.name] whirrs with strain as you create a weak power cell and place it into [src]!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("[src] has both electronics and a cell."))
return
@@ -719,7 +720,7 @@
to_chat(user, span_notice("You replace missing APC's cover."))
qdel(W)
opened = APC_COVER_OPENED
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if (has_electronics)
to_chat(user, span_warning("You cannot repair this APC until you remove the electronics still inside!"))
@@ -733,7 +734,7 @@
obj_integrity = max_integrity
if (opened==APC_COVER_REMOVED)
opened = APC_COVER_OPENED
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(istype(W, /obj/item/clockwork/integration_cog) && is_servant_of_ratvar(user))
if(integration_cog)
to_chat(user, span_warning("This APC already has a cog."))
@@ -742,7 +743,7 @@
user.visible_message(span_warning("[user] slices [src]'s cover lock, and it swings wide open!"), \
span_alloy("You slice [src]'s cover lock apart with [W], and the cover swings open."))
opened = APC_COVER_OPENED
- update_icon()
+ update_appearance(UPDATE_ICON)
else
user.visible_message(span_warning("[user] presses [W] into [src]!"), \
span_alloy("You hold [W] in place within [src], and it slowly begins to warm up..."))
@@ -759,7 +760,7 @@
playsound(src, 'sound/machines/clockcult/steam_whoosh.ogg', 50, FALSE)
opened = APC_COVER_CLOSED
locked = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(istype(W, /obj/item/apc_powercord))
return //because we put our fancy code in the right places, and this is all in the powercord's afterattack()
@@ -815,7 +816,7 @@
chargecount = 0
user.visible_message(span_notice("[user] fabricates a weak power cell and places it into [src]."), \
span_warning("Your [the_rcd.name] whirrs with strain as you create a weak power cell and place it into [src]!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
else
to_chat(user, span_warning("[src] has both electronics and a cell."))
@@ -835,7 +836,7 @@
if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN) && !malfhack)
locked = !locked
to_chat(user, span_notice("You [ locked ? "lock" : "unlock"] the APC interface."))
- update_icon()
+ update_appearance(UPDATE_ICON)
updateUsrDialog()
else
to_chat(user, span_warning("Access denied."))
@@ -866,7 +867,7 @@
opened = APC_COVER_REMOVED
coverlocked = FALSE
visible_message(span_warning("The APC cover is knocked down!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/apc/emag_act(mob/user)
if(!(obj_flags & EMAGGED) && !malfhack)
@@ -882,7 +883,7 @@
obj_flags |= EMAGGED
locked = FALSE
to_chat(user, span_notice("You emag the APC interface."))
- update_icon()
+ update_appearance(UPDATE_ICON)
// attack with hand - remove cell (if cover open) or interact with the APC
@@ -899,10 +900,10 @@
if(cell)
user.visible_message("[user] removes \the [cell] from [src]!",span_notice("You remove \the [cell]."))
user.put_in_hands(cell)
- cell.update_icon()
+ cell.update_appearance(UPDATE_ICON)
src.cell = null
charging = APC_NOT_CHARGING
- src.update_icon()
+ src.update_appearance(UPDATE_ICON)
return
if((stat & MAINT) && !opened) //no board; no interface
return
@@ -1040,7 +1041,7 @@
to_chat(usr, "The APC does not respond to the command.")
else
locked = !locked
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("cover")
coverlocked = !coverlocked
@@ -1055,20 +1056,20 @@
chargemode = !chargemode
if(!chargemode)
charging = APC_NOT_CHARGING
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("channel")
if(params["eqp"])
equipment = setsubsystem(text2num(params["eqp"]))
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
else if(params["lgt"])
lighting = setsubsystem(text2num(params["lgt"]))
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
else if(params["env"])
environ = setsubsystem(text2num(params["env"]))
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
. = TRUE
if("overload")
@@ -1086,7 +1087,7 @@
malfvacate()
if("reboot")
failure_timer = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
if("emergency_lighting")
emergency_lights = !emergency_lights
@@ -1111,7 +1112,7 @@
add_hiddenprint(user)
log_combat(user, src, "turned [operating ? "on" : "off"]")
update()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/apc/proc/malfhack(mob/living/silicon/ai/malf)
if(!istype(malf))
@@ -1252,7 +1253,7 @@
/obj/machinery/power/apc/process()
if(icon_update_needed)
- update_icon()
+ update_appearance(UPDATE_ICON)
if(stat & (BROKEN|MAINT))
return
if(!area.requires_power)
@@ -1427,7 +1428,7 @@
if(APC_RESET_EMP)
equipment = 3
environ = 3
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
// damage and destruction acts
@@ -1443,7 +1444,7 @@
lighting = 0
equipment = 0
environ = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
addtimer(CALLBACK(src, PROC_REF(reset), APC_RESET_EMP), 600)
diff --git a/code/modules/power/apc/apc_appearance.dm b/code/modules/power/apc/apc_appearance.dm
new file mode 100644
index 000000000000..4cc22180e224
--- /dev/null
+++ b/code/modules/power/apc/apc_appearance.dm
@@ -0,0 +1,119 @@
+// update the APC icon to show the three base states
+// also add overlays for indicator lights
+/obj/machinery/power/apc/update_appearance(updates=check_updates())
+ icon_update_needed = FALSE
+ if(!updates)
+ return
+
+ . = ..()
+ // And now, separately for cleanness, the lighting changing
+ if(!update_state)
+ switch(charging)
+ if(APC_NOT_CHARGING)
+ set_light_color(COLOR_SOFT_RED)
+ if(APC_CHARGING)
+ set_light_color(LIGHT_COLOR_BLUE)
+ if(APC_FULLY_CHARGED)
+ set_light_color(LIGHT_COLOR_GREEN)
+ set_light(light_on_range)
+ return
+
+ if(update_state & UPSTATE_BLUESCREEN)
+ set_light_color(LIGHT_COLOR_BLUE)
+ set_light(light_on_range)
+ return
+
+ set_light(0)
+
+/obj/machinery/power/apc/update_icon_state()
+ if(!update_state)
+ icon_state = "apc0"
+ return ..()
+ if(update_state & (UPSTATE_OPENED1|UPSTATE_OPENED2))
+ var/basestate = "apc[cell ? 2 : 1]"
+ if(update_state & UPSTATE_OPENED1)
+ icon_state = (update_state & (UPSTATE_MAINT|UPSTATE_BROKE)) ? "apcmaint" : basestate
+ else if(update_state & UPSTATE_OPENED2)
+ icon_state = "[basestate][((update_state & UPSTATE_BROKE) || malfhack) ? "-b" : null]-nocover"
+ return ..()
+ if(update_state & UPSTATE_BROKE)
+ icon_state = "apc-b"
+ return ..()
+ if(update_state & UPSTATE_BLUESCREEN)
+ icon_state = "apcemag"
+ return ..()
+ if(update_state & UPSTATE_WIREEXP)
+ icon_state = "apcewires"
+ return ..()
+ if(update_state & UPSTATE_MAINT)
+ icon_state = "apc0"
+ return ..()
+
+/obj/machinery/power/apc/update_overlays()
+ . = ..()
+ . = ..()
+ if((stat & (BROKEN|MAINT)) || update_state)
+ return
+
+ . += mutable_appearance(icon, "apcox-[locked]")
+ . += SSvis_overlays.add_vis_overlay(src, icon, "apcox-[locked]", layer, plane, dir)
+ . += mutable_appearance(icon, "apco3-[charging]")
+ . += SSvis_overlays.add_vis_overlay(src, icon, "apco3-[charging]", layer, EMISSIVE_PLANE, dir)
+ if(!operating)
+ return
+
+ . += mutable_appearance(icon, "apco0-[equipment]")
+ . += SSvis_overlays.add_vis_overlay(src, icon, "apco0-[equipment]", layer, EMISSIVE_PLANE, dir)
+ . += mutable_appearance(icon, "apco1-[lighting]")
+ . += SSvis_overlays.add_vis_overlay(src, icon, "apco1-[lighting]", layer, EMISSIVE_PLANE, dir)
+ . += mutable_appearance(icon, "apco2-[environ]")
+ . += SSvis_overlays.add_vis_overlay(src, icon, "apco2-[environ]", layer, EMISSIVE_PLANE, dir)
+
+/// Checks for what icon updates we will need to handle
+/obj/machinery/power/apc/proc/check_updates()
+ SIGNAL_HANDLER
+ . = NONE
+
+ // Handle icon status:
+ var/new_update_state = NONE
+ if(stat & BROKEN)
+ new_update_state |= UPSTATE_BROKE
+ if(stat & MAINT)
+ new_update_state |= UPSTATE_MAINT
+
+ if(opened)
+ new_update_state |= (opened << UPSTATE_COVER_SHIFT)
+ if(cell)
+ new_update_state |= UPSTATE_CELL_IN
+
+ else if((obj_flags & EMAGGED) || malfai)
+ new_update_state |= UPSTATE_BLUESCREEN
+ else if(panel_open)
+ new_update_state |= UPSTATE_WIREEXP
+
+ if(new_update_state != update_state)
+ update_state = new_update_state
+ . |= UPDATE_ICON_STATE
+
+ // Handle overlay status:
+ var/new_update_overlay = NONE
+ if(operating)
+ new_update_overlay |= UPOVERLAY_OPERATING
+
+ if(!update_state)
+ if(locked)
+ new_update_overlay |= UPOVERLAY_LOCKED
+
+ new_update_overlay |= (charging << UPOVERLAY_CHARGING_SHIFT)
+ new_update_overlay |= (equipment << UPOVERLAY_EQUIPMENT_SHIFT)
+ new_update_overlay |= (lighting << UPOVERLAY_LIGHTING_SHIFT)
+ new_update_overlay |= (environ << UPOVERLAY_ENVIRON_SHIFT)
+
+ if(new_update_overlay != update_overlay)
+ update_overlay = new_update_overlay
+ . |= UPDATE_OVERLAYS
+
+
+// Used in process so it doesn't update the icon too much
+/obj/machinery/power/apc/proc/queue_icon_update()
+ icon_update_needed = TRUE
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index ff93006eba42..f05e5bcabc19 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -90,7 +90,7 @@ By design, d1 is the smallest direction and d2 is the highest
cable_color = param_color || cable_color || pick(cable_colors)
if(cable_colors[cable_color])
cable_color = cable_colors[cable_color]
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/cable/Destroy() // called when a cable is deleted
if(powernet)
@@ -117,9 +117,10 @@ By design, d1 is the smallest direction and d2 is the highest
if(level == 1 && isturf(loc))
invisibility = i ? INVISIBILITY_MAXIMUM : 0
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/structure/cable/update_icon()
+/obj/structure/cable/update_icon(updates=ALL)
+ . = ..()
icon_state = "[d1]-[d2]"
color = null
add_atom_colour(cable_color, FIXED_COLOUR_PRIORITY)
@@ -492,12 +493,12 @@ By design, d1 is the smallest direction and d2 is the highest
pixel_x = rand(-2,2)
pixel_y = rand(-2,2)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stack/cable_coil/proc/set_cable_color(new_color)
color = GLOB.cable_colors[new_color]
cable_color = new_color
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stack/cable_coil/suicide_act(mob/user)
if(locate(/obj/structure/chair/stool) in get_turf(user))
@@ -537,7 +538,7 @@ By design, d1 is the smallest direction and d2 is the highest
if(use(CABLE_RESTRAINTS_COST))
var/obj/item/restraints/handcuffs/cable/restraints = new(null, cable_color)
user.put_in_hands(restraints)
- update_icon()
+ update_appearance(UPDATE_ICON)
///////////////////////////////////
// General procedures
@@ -562,7 +563,8 @@ By design, d1 is the smallest direction and d2 is the highest
return
return ..()
-/obj/item/stack/cable_coil/update_icon()
+/obj/item/stack/cable_coil/update_icon(updates=ALL)
+ . = ..()
if(novariants)
return
icon_state = "[initial(item_state)][amount < 3 ? amount : ""]"
@@ -576,7 +578,7 @@ By design, d1 is the smallest direction and d2 is the highest
var/obj/item/stack/cable_coil/new_cable = ..()
if(istype(new_cable))
new_cable.cable_color = cable_color
- new_cable.update_icon()
+ new_cable.update_appearance(UPDATE_ICON)
//add cables to the stack
/obj/item/stack/cable_coil/proc/give(extra)
@@ -584,7 +586,7 @@ By design, d1 is the smallest direction and d2 is the highest
amount = max_amount
else
amount += extra
- update_icon()
+ update_appearance(UPDATE_ICON)
@@ -633,7 +635,7 @@ By design, d1 is the smallest direction and d2 is the highest
C.d1 = 0 //it's a O-X node cable
C.d2 = dirn
C.add_fingerprint(user)
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
//create a new powernet with the cable, if needed it will be merged later
var/datum/powernet/PN = new()
@@ -705,7 +707,7 @@ By design, d1 is the smallest direction and d2 is the highest
NC.d1 = 0
NC.d2 = fdirn
NC.add_fingerprint(user)
- NC.update_icon()
+ NC.update_appearance(UPDATE_ICON)
//create a new powernet with the cable, if needed it will be merged later
var/datum/powernet/newPN = new(loc.z)
@@ -747,7 +749,7 @@ By design, d1 is the smallest direction and d2 is the highest
return
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
C.d1 = nd1
C.d2 = nd2
@@ -755,7 +757,7 @@ By design, d1 is the smallest direction and d2 is the highest
//updates the stored cable coil
C.add_fingerprint(user)
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
C.mergeConnectedNetworks(C.d1) //merge the powernets...
@@ -786,7 +788,7 @@ By design, d1 is the smallest direction and d2 is the highest
/obj/item/stack/cable_coil/cyborg/attack_self(mob/user)
var/picked = tgui_input_list(user, "Pick a cable color.","Cable Color", GLOB.cable_colors)
cable_color = picked
- update_icon()
+ update_appearance(UPDATE_ICON)
//////////////////////////////
// Misc.
@@ -848,7 +850,7 @@ By design, d1 is the smallest direction and d2 is the highest
amount = rand(1,2)
pixel_x = rand(-2,2)
pixel_y = rand(-2,2)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stack/cable_coil/cut/red
cable_color = "red"
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index a15b72fca84f..65020462c3e1 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -33,7 +33,7 @@
charge = maxcharge
if(ratingdesc)
desc += " This one has a rating of [DisplayEnergy(maxcharge)], and you should not swallow it."
- update_icon()
+ update_appearance(UPDATE_ICON)
RegisterSignal(src, COMSIG_ITEM_MAGICALLY_CHARGED, PROC_REF(on_magic_charge))
var/static/list/loc_connections = list(
@@ -77,7 +77,7 @@
. |= COMPONENT_ITEM_BURNT_OUT
charge = maxcharge
- update_icon()
+ update_appearance(UPDATE_ICON)
// Guns need to process their chamber when we've been charged
if(isgun(loc))
@@ -86,7 +86,7 @@
// The thing we're in might have overlays or icon states for whether the cell is charged
if(!ismob(loc))
- loc.update_icon()
+ loc.update_appearance(UPDATE_ICON)
return .
@@ -96,7 +96,8 @@
else
return PROCESS_KILL
-/obj/item/stock_parts/cell/update_icon()
+/obj/item/stock_parts/cell/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(grown_battery)
add_overlay(image('icons/obj/power.dmi',"grown_wires"))
@@ -220,7 +221,7 @@
/obj/item/stock_parts/cell/crap/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/upgraded
name = "upgraded power cell"
@@ -242,7 +243,7 @@
/obj/item/stock_parts/cell/secborg/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/mini_egun
name = "miniature energy gun power cell"
@@ -278,7 +279,7 @@
/obj/item/stock_parts/cell/high/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/super
name = "super-capacity power cell"
@@ -290,7 +291,7 @@
/obj/item/stock_parts/cell/super/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/hyper
name = "hyper-capacity power cell"
@@ -302,7 +303,7 @@
/obj/item/stock_parts/cell/hyper/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/bluespace
name = "bluespace power cell"
@@ -315,7 +316,7 @@
/obj/item/stock_parts/cell/bluespace/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/infinite
name = "infinite-capacity power cell!"
@@ -336,7 +337,8 @@
maxcharge = 50000
ratingdesc = FALSE
-/obj/item/stock_parts/cell/infinite/abductor/update_icon()
+/obj/item/stock_parts/cell/infinite/abductor/update_icon(updates=ALL)
+ . = ..()
return
@@ -372,7 +374,7 @@
/obj/item/stock_parts/cell/emproof/empty/Initialize(mapload)
. = ..()
charge = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/stock_parts/cell/emproof/corrupt()
return
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 6a61c3bbf381..0ede6cc0d48c 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -22,7 +22,7 @@
find_circs()
connect_to_network()
SSair.atmos_machinery += src
- update_icon()
+ update_appearance(UPDATE_ICON)
component_parts = list(new /obj/item/circuitboard/machine/generator)
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS )
@@ -31,7 +31,8 @@
SSair.atmos_machinery -= src
return ..()
-/obj/machinery/power/generator/update_icon()
+/obj/machinery/power/generator/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
@@ -106,7 +107,7 @@
var/datum/gas_mixture/cold_circ_air1 = cold_circ.airs[1]
cold_circ_air1.merge(cold_air)
- update_icon()
+ update_appearance(UPDATE_ICON)
src.updateDialog()
@@ -219,7 +220,7 @@
to_chat(user, span_notice("You start removing the circulators..."))
if(I.use_tool(src, user, 30, volume=50))
kill_circs()
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You disconnect [src]'s circulator links."))
playsound(src, 'sound/misc/box_deploy.ogg', 50)
return TRUE
@@ -245,7 +246,7 @@
kill_circs()
connect_to_network()
to_chat(user, span_notice("You [anchored?"secure":"unsecure"] [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/power/generator/screwdriver_act(mob/user, obj/item/I)
@@ -260,7 +261,7 @@
panel_open = !panel_open
I.play_tool_sound(src)
to_chat(user, span_notice("You [panel_open?"open":"close"] the panel on [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/power/generator/crowbar_act(mob/user, obj/item/I)
@@ -283,11 +284,11 @@
/obj/machinery/power/generator/proc/kill_circs()
if(hot_circ)
hot_circ.generator = null
- hot_circ.update_icon()
+ hot_circ.update_appearance(UPDATE_ICON)
hot_circ = null
if(cold_circ)
cold_circ.generator = null
- cold_circ.update_icon()
+ cold_circ.update_appearance(UPDATE_ICON)
cold_circ = null
/obj/machinery/power/generator/obj_break(damage_flag)
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index 5e6593c35804..b1001afca118 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -43,7 +43,8 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(tesla_flags & TESLA_MACHINE_EXPLOSIVE)
qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over
-/obj/machinery/gravity_generator/update_icon()
+/obj/machinery/gravity_generator/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "[get_status()]_[sprite_number]"
@@ -154,7 +155,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
part.sprite_number = count
part.main_part = src
parts += part
- part.update_icon()
+ part.update_appearance(UPDATE_ICON)
/obj/machinery/gravity_generator/main/proc/connected_parts()
return parts.len == 8
@@ -177,7 +178,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(M.stat & BROKEN)
M.set_fix()
broken_state = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
set_power()
// Interaction
@@ -190,14 +191,14 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
to_chat(user, span_notice("You secure the screws of the framework."))
I.play_tool_sound(src)
broken_state++
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(GRAV_NEEDS_WELDING)
if(I.tool_behaviour == TOOL_WELDER)
if(I.use_tool(src, user, 0, volume=50, amount=1))
to_chat(user, span_notice("You mend the damaged framework."))
broken_state++
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(GRAV_NEEDS_PLASTEEL)
if(istype(I, /obj/item/stack/sheet/plasteel))
@@ -207,7 +208,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
to_chat(user, span_notice("You add the plating to the framework."))
playsound(src.loc, 'sound/machines/click.ogg', 75, 1)
broken_state++
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("You need 10 sheets of plasteel!"))
return
@@ -259,10 +260,11 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
return "fix[min(broken_state, 3)]"
return on || charging_state != POWER_IDLE ? "on" : "off"
-/obj/machinery/gravity_generator/main/update_icon()
+/obj/machinery/gravity_generator/main/update_icon(updates=ALL)
+ . = ..()
..()
for(var/obj/O in parts)
- O.update_icon()
+ O.update_appearance(UPDATE_ICON)
// Set the charging state based on power/breaker.
/obj/machinery/gravity_generator/main/proc/set_power()
@@ -274,7 +276,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
charging_state = new_state ? POWER_UP : POWER_DOWN // Startup sequence animation.
investigate_log("is now [charging_state == POWER_UP ? "charging" : "discharging"].", INVESTIGATE_GRAVITY)
- update_icon()
+ update_appearance(UPDATE_ICON)
// Set the state of the gravity.
/obj/machinery/gravity_generator/main/proc/set_state(new_state)
@@ -295,7 +297,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY)
message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]")
- update_icon()
+ update_appearance(UPDATE_ICON)
update_list()
src.updateUsrDialog()
if(alert)
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index f8ca79194b24..3d42a34b1952 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -87,7 +87,7 @@
if(cell)
user.visible_message("[user] removes [cell] from [src]!",span_notice("You remove [cell]."))
user.put_in_hands(cell)
- cell.update_icon()
+ cell.update_appearance(UPDATE_ICON)
cell = null
add_fingerprint(user)
@@ -339,7 +339,8 @@
QDEL_NULL(cell)
return ..()
-/obj/machinery/light/update_icon()
+/obj/machinery/light/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
switch(status) // set icon_states
if(LIGHT_OK)
@@ -413,7 +414,7 @@
else
use_power = IDLE_POWER_USE
set_light(0)
- update_icon()
+ update_appearance(UPDATE_ICON)
active_power_usage = (brightness * 10)
if(on != on_gs)
@@ -542,7 +543,7 @@
set_light(0)
forced_off = !forced_off
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
update()
else
return ..()
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index afe65f073e13..1326d1652960 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -45,15 +45,16 @@
/obj/machinery/power/port_gen/proc/TogglePower()
if(active)
active = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
soundloop.stop()
else if(HasFuel())
active = TRUE
START_PROCESSING(SSmachines, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
soundloop.start()
-/obj/machinery/power/port_gen/update_icon()
+/obj/machinery/power/port_gen/update_icon(updates=ALL)
+ . = ..()
icon_state = "[base_icon]_[active]"
/obj/machinery/power/port_gen/process()
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index b23d8adb3cec..878e4821a1c5 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -124,7 +124,7 @@
SEND_SIGNAL(src, COMSIG_MACHINERY_POWER_LOST)
. = TRUE
stat |= NOPOWER
- update_icon()
+ update_appearance(UPDATE_ICON)
// connect the machine to a powernet if a node cable is present on the turf
/obj/machinery/power/proc/connect_to_network()
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 7a8d8c5da898..d957f631aa5f 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -159,7 +159,7 @@
if(!user.transferItemToLoc(W, src))
return
loaded_tank = W
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(W.GetID())
if(togglelock(user))
return TRUE
@@ -294,14 +294,15 @@
if(active)
toggle_power()
else
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/rad_collector/rad_act(pulse_strength, collectable_radiation)
. = ..()
if(loaded_tank && active && collectable_radiation && pulse_strength > RAD_COLLECTOR_EFFICIENCY)
stored_power += (pulse_strength-RAD_COLLECTOR_EFFICIENCY)*RAD_COLLECTOR_COEFFICIENT*(machine_tier+power_bonus)
-/obj/machinery/power/rad_collector/update_icon()
+/obj/machinery/power/rad_collector/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(loaded_tank)
add_overlay("ptank")
@@ -327,7 +328,7 @@
else
icon_state = "ca"
flick("ca_deactive", src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/rad_collector/bullet_act(obj/item/projectile/P)
if(istype(P, /obj/item/projectile/energy/nuclear_particle))
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 78e4e045a113..5103c8778bfa 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -120,7 +120,8 @@
QDEL_NULL(sparks)
return ..()
-/obj/machinery/power/emitter/update_icon()
+/obj/machinery/power/emitter/update_icon(updates=ALL)
+ . = ..()
if(active && powernet)
icon_state = avail(active_power_usage) ? icon_state_on : icon_state_underpowered
else
@@ -146,7 +147,7 @@
log_game("Emitter turned [active ? "ON" : "OFF"] by [key_name(user)] in [AREACOORD(src)]")
investigate_log("turned [active ? "ON" : "OFF"] by [key_name(user)] at [AREACOORD(src)]", INVESTIGATE_SINGULO)
investigate_log("turned [active ? "ON" : "OFF"] by [key_name(user)] at [AREACOORD(src)]", INVESTIGATE_SUPERMATTER) // yogs - so supermatter investigate is useful
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("The controls are locked!"))
@@ -169,20 +170,20 @@
return
if(state != EMITTER_WELDED || (!powernet && active_power_usage))
active = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(active == TRUE)
if(!active_power_usage || surplus() >= active_power_usage)
add_load(active_power_usage)
if(!powered)
powered = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
investigate_log("regained power and turned ON at [AREACOORD(src)]", INVESTIGATE_SINGULO)
investigate_log("regained power and turned ON at [AREACOORD(src)]", INVESTIGATE_SUPERMATTER) // yogs - so supermatter investigate is useful
else
if(powered)
powered = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
investigate_log("lost power and turned OFF at [AREACOORD(src)]", INVESTIGATE_SINGULO)
investigate_log("lost power and turned OFF at [AREACOORD(src)]", INVESTIGATE_SUPERMATTER) // yogs - so supermatter investigate is useful
log_game("Emitter lost power in [AREACOORD(src)]")
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index 45b2ddb3acca..ac51fc4f09bb 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -44,7 +44,8 @@ field_generator power level display
var/list/obj/machinery/field/generator/connected_gens
var/clean_up = 0
-/obj/machinery/field/generator/update_icon()
+/obj/machinery/field/generator/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(warming_up)
add_overlay("+a[warming_up]")
@@ -170,7 +171,7 @@ field_generator power level display
var/new_level = round(num_power_levels * power / field_generator_max_power)
if(new_level != power_level)
power_level = new_level
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/field/generator/proc/turn_off()
active = FG_OFFLINE
@@ -179,7 +180,7 @@ field_generator power level display
while (warming_up>0 && !active)
sleep(5 SECONDS)
warming_up--
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/field/generator/proc/turn_on()
active = FG_CHARGING
@@ -187,7 +188,7 @@ field_generator power level display
while (warming_up<3 && active)
sleep(5 SECONDS)
warming_up++
- update_icon()
+ update_appearance(UPDATE_ICON)
if(warming_up >= 3)
start_fields()
@@ -303,7 +304,7 @@ field_generator power level display
connected_gens |= G
G.connected_gens |= src
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/field/generator/proc/cleanup()
@@ -318,7 +319,7 @@ field_generator power level display
FG.cleanup()
connected_gens -= FG
clean_up = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
//This is here to help fight the "hurr durr, release singulo cos nobody will notice before the
//singulo eats the evidence". It's not fool-proof but better than nothing.
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 6bc4f7dc0d8c..87ea3f5140f4 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -106,7 +106,7 @@
construction_state = PA_CONSTRUCTION_PANEL_OPEN
update_state()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/particle_accelerator/deconstruct(disassembled = TRUE)
@@ -121,7 +121,8 @@
investigate_log("was moved whilst active; it powered down.", INVESTIGATE_SINGULO)
-/obj/structure/particle_accelerator/update_icon()
+/obj/structure/particle_accelerator/update_icon(updates=ALL)
+ . = ..()
switch(construction_state)
if(PA_CONSTRUCTION_UNSECURED,PA_CONSTRUCTION_UNWIRED)
icon_state="[reference]"
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index a6bc79e0402d..4bc467ac7b80 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -54,7 +54,7 @@
var/obj/structure/particle_accelerator/part = CP
part.strength = null
part.powered = FALSE
- part.update_icon()
+ part.update_appearance(UPDATE_ICON)
connected_parts.Cut()
return
if(!part_scan())
@@ -62,7 +62,8 @@
active = FALSE
connected_parts.Cut()
-/obj/machinery/particle_accelerator/control_box/update_icon()
+/obj/machinery/particle_accelerator/control_box/update_icon(updates=ALL)
+ . = ..()
if(active)
icon_state = "control_boxp[strength]" //yogs- fix sprite not updating (note that /tg/ PA power 2 sprite is incomplete)
else
@@ -84,7 +85,7 @@
for(var/CP in connected_parts)
var/obj/structure/particle_accelerator/part = CP
part.strength = strength
- part.update_icon()
+ part.update_appearance(UPDATE_ICON)
/obj/machinery/particle_accelerator/control_box/proc/add_strength(s)
if(assembled && (strength < strength_upper_limit))
@@ -120,12 +121,12 @@
if(connected_parts.len < 6)
investigate_log("lost a connected part; It powered down.", INVESTIGATE_SINGULO)
toggle_power()
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(area_restricted && !istype(get_area(src),/area/engine))
investigate_log("had its area restriction turned on while in an invalid area; It powered down.", INVESTIGATE_SINGULO)
toggle_power()
- update_icon()
+ update_appearance(UPDATE_ICON)
return
//emit some particles
for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts)
@@ -198,14 +199,14 @@
var/obj/structure/particle_accelerator/part = CP
part.strength = strength
part.powered = TRUE
- part.update_icon()
+ part.update_appearance(UPDATE_ICON)
else
use_power = IDLE_POWER_USE
for(var/CP in connected_parts)
var/obj/structure/particle_accelerator/part = CP
part.strength = null
part.powered = FALSE
- part.update_icon()
+ part.update_appearance(UPDATE_ICON)
return TRUE
@@ -269,7 +270,7 @@
if(did_something)
user.changeNext_move(CLICK_CD_MELEE)
update_state()
- update_icon()
+ update_appearance(UPDATE_ICON)
return
..()
@@ -365,7 +366,7 @@
to_chat(operator, "You [locked ? "enable" : "disable"] the area restriction.");
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/particle_accelerator/control_box/charlie //for charlie station
locked = FALSE
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 19d5552a8a4c..db39cc10dfc2 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -61,7 +61,7 @@
obj_break()
return
terminal.master = src
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/smes/RefreshParts()
var/IO = 0
@@ -81,7 +81,7 @@
/obj/machinery/power/smes/attackby(obj/item/I, mob/user, params)
//opening using screwdriver
if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
//changing direction using wrench
@@ -98,7 +98,7 @@
to_chat(user, span_alert("No power terminal found."))
return
stat &= ~BROKEN
- update_icon()
+ update_appearance(UPDATE_ICON)
return
//building and linking a terminal
@@ -205,7 +205,8 @@
obj_break()
-/obj/machinery/power/smes/update_icon()
+/obj/machinery/power/smes/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(stat & BROKEN)
return
@@ -286,7 +287,7 @@
// only update icon if state changed
if(last_disp != chargedisplay() || last_chrg != inputting || last_onln != outputting)
- update_icon()
+ update_appearance(UPDATE_ICON)
@@ -316,7 +317,7 @@
output_used -= excess
if(clev != chargedisplay() ) //if needed updates the icons overlay
- update_icon()
+ update_appearance(UPDATE_ICON)
return
@@ -353,12 +354,12 @@
if("tryinput")
input_attempt = !input_attempt
log_smes(usr)
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("tryoutput")
output_attempt = !output_attempt
log_smes(usr)
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("input")
var/target = params["target"]
@@ -420,7 +421,7 @@
output_level = rand(0, output_level_max)
input_level = rand(0, input_level_max)
charge = max(charge - 1e6/severity, 0)
- update_icon()
+ update_appearance(UPDATE_ICON)
log_smes()
/obj/machinery/power/smes/engineering
@@ -446,7 +447,7 @@
return
output_attempt = !output_attempt
log_smes(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
#undef SMES_OUTPUTTING
#undef SMES_NOT_OUTPUTTING
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index bb9e9457076e..652b2f1d9839 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -34,7 +34,7 @@
panelstructure = mutable_appearance(icon, "solar_panel", FLY_LAYER)
paneloverlay = mutable_appearance(icon, "solar_panel-o", FLY_LAYER)
paneloverlay.color = panelcolor
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/solar/Destroy()
unset_control() //remove from control computer
@@ -113,7 +113,8 @@
new /obj/item/shard(src.loc)
qdel(src)
-/obj/machinery/power/solar/update_icon()
+/obj/machinery/power/solar/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
var/matrix/turner = matrix()
@@ -134,7 +135,7 @@
if(azimuth_current != azimuth_target)
azimuth_current = azimuth_target
occlusion_setup()
- update_icon()
+ update_appearance(UPDATE_ICON)
needs_to_update_solar_exposure = TRUE
///trace towards sun to see if we're in shadow
@@ -349,7 +350,7 @@
if(connected_tracker && length(connected_panels))
track = SOLAR_TRACK_AUTO
connected_tracker.sun_update(SSsun, SSsun.azimuth)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/solar_control/Destroy()
for(var/obj/machinery/power/solar/M in connected_panels)
@@ -372,7 +373,8 @@
if(!T.control) //i.e unconnected
T.set_control(src)
-/obj/machinery/power/solar_control/update_icon()
+/obj/machinery/power/solar_control/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(stat & NOPOWER)
add_overlay("[icon_keyboard]_off")
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index 5ae45fcc4890..8f523deafe8d 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -33,9 +33,10 @@
pixel_x = rand(-10, 10)
pixel_y = rand(-10, 10)
setDir(pick(GLOB.alldirs))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/ammo_casing/update_icon()
+/obj/item/ammo_casing/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "[initial(icon_state)][BB && !CHECK_BITFIELD(casing_flags, CASINGFLAG_NO_LIVE_SPRITE) ? "-live" : ""]"
desc = "[initial(desc)][!BB && !CHECK_BITFIELD(casing_flags, CASINGFLAG_NO_LIVE_SPRITE) ? " This one is spent." : ""]"
@@ -59,7 +60,7 @@
else
continue
if (boolets > 0)
- box.update_icon()
+ box.update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s."))
else
to_chat(user, span_warning("You fail to collect anything!"))
@@ -72,7 +73,7 @@
. = ..()
/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3)
- update_icon()
+ update_appearance(UPDATE_ICON)
SpinAnimation(10, 1)
var/matrix/M = matrix(transform)
M.Turn(rand(-170,170))
diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm
index 846c96a80fb0..85b5374638e6 100644
--- a/code/modules/projectiles/ammunition/_firing.dm
+++ b/code/modules/projectiles/ammunition/_firing.dm
@@ -19,7 +19,7 @@
else
user.changeNext_move(CLICK_CD_RANGE)
user.newtonian_move(get_dir(target, user))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", atom/fired_from)
diff --git a/code/modules/projectiles/ammunition/reusable/_reusable.dm b/code/modules/projectiles/ammunition/reusable/_reusable.dm
index f34ed497f52a..9344d0e5a102 100644
--- a/code/modules/projectiles/ammunition/reusable/_reusable.dm
+++ b/code/modules/projectiles/ammunition/reusable/_reusable.dm
@@ -31,4 +31,4 @@
if(!BB)
newshot()
in_air = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/projectiles/ammunition/reusable/arrow.dm b/code/modules/projectiles/ammunition/reusable/arrow.dm
index 124516d06256..20af263e22e2 100644
--- a/code/modules/projectiles/ammunition/reusable/arrow.dm
+++ b/code/modules/projectiles/ammunition/reusable/arrow.dm
@@ -76,7 +76,7 @@
if(iscarbon(user))
var/mob/living/carbon/C = user
C.throw_mode_off()
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/item/ammo_casing/reusable/arrow/wirecutter_act(mob/living/user, obj/item/I)
@@ -131,23 +131,23 @@
if(istype(new_explosive))
explosive = new_explosive
LAZYADD(attached_parts, new_explosive)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/ammo_casing/reusable/arrow/proc/add_bola(obj/item/restraints/legcuffs/bola/new_bola)
if(istype(new_bola))
bola = new_bola
LAZYADD(attached_parts, new_bola)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/ammo_casing/reusable/arrow/proc/add_syringe(obj/item/reagent_containers/syringe/new_syringe)
if(istype(new_syringe))
syringe = new_syringe
LAZYADD(attached_parts, new_syringe)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/ammo_casing/reusable/arrow/proc/add_flame()
flaming = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/ammo_casing/reusable/arrow/proc/on_embed(target, mob/living/carbon/embedde)
if(syringe)
@@ -439,7 +439,7 @@
// Otherwise, move it to the arrow and make it the new shard
new_shard.forceMove(src)
shard = new_shard
- update_icon()
+ update_appearance(UPDATE_ICON)
..()
/obj/item/ammo_casing/reusable/arrow/singulo/update_icon(force_update)
diff --git a/code/modules/projectiles/ammunition/reusable/foam.dm b/code/modules/projectiles/ammunition/reusable/foam.dm
index 90ebfb71bdf5..59bfa0b04f13 100644
--- a/code/modules/projectiles/ammunition/reusable/foam.dm
+++ b/code/modules/projectiles/ammunition/reusable/foam.dm
@@ -10,7 +10,8 @@
var/modified = FALSE
var/obj/item/pen/pen
-/obj/item/ammo_casing/reusable/foam_dart/update_icon()
+/obj/item/ammo_casing/reusable/foam_dart/update_icon(updates=ALL)
+ . = ..()
..()
if (modified)
icon_state = "foamdart_empty"
@@ -26,7 +27,7 @@
if (A.tool_behaviour == TOOL_SCREWDRIVER && !modified)
modified = TRUE
to_chat(user, span_notice("You pop the safety cap off [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if (istype(A, /obj/item/pen))
if(modified)
if(!pen)
diff --git a/code/modules/projectiles/attachments/_attachment.dm b/code/modules/projectiles/attachments/_attachment.dm
index a7b59c5a9f93..2db87086242d 100644
--- a/code/modules/projectiles/attachments/_attachment.dm
+++ b/code/modules/projectiles/attachments/_attachment.dm
@@ -35,7 +35,8 @@
/// See code/modules/projectiles/attachments/laser_sight.dm for example.
var/list/actions_list = list()
-/obj/item/attachment/update_icon()
+/obj/item/attachment/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][is_on ? "_on" : ""]"
. = ..()
attached_gun?.update_attachments()
diff --git a/code/modules/projectiles/attachments/laser_sight.dm b/code/modules/projectiles/attachments/laser_sight.dm
index 23569ceadf88..fcc00d98237c 100644
--- a/code/modules/projectiles/attachments/laser_sight.dm
+++ b/code/modules/projectiles/attachments/laser_sight.dm
@@ -48,7 +48,7 @@
else
attached_gun.spread += 6
QDEL_LIST(attached_gun.current_tracers)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/attachment/laser_sight/process()
return aiming_beam(TRUE)
diff --git a/code/modules/projectiles/attachments/scopes.dm b/code/modules/projectiles/attachments/scopes.dm
index 4a340175c638..479064cdad1c 100644
--- a/code/modules/projectiles/attachments/scopes.dm
+++ b/code/modules/projectiles/attachments/scopes.dm
@@ -47,7 +47,7 @@
else
attached_gun.spread += accuracy
drop_user(current_user)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/attachment/scope/infrared/pickup_user(mob/user)
. = ..()
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index b68ca45f49ab..25bc1eed9047 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -39,7 +39,7 @@
calc_mats()
if(!start_empty)
top_off(starting=TRUE)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* top_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once
@@ -59,7 +59,7 @@
for(var/i = max(1, stored_ammo.len), i <= max_ammo, i++)
stored_ammo += new round_check(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/ammo_box/proc/calc_mats(force = FALSE)
if (force || !bullet_cost)
@@ -138,8 +138,8 @@
if(!silent)
to_chat(user, span_notice("You load [num_loaded] round\s into \the [src]!"))
playsound(src, 'sound/weapons/bulletinsert.ogg', 60, TRUE)
- A.update_icon()
- update_icon()
+ A.update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON)
return num_loaded
/obj/item/ammo_box/attack_self(mob/user)
@@ -150,7 +150,7 @@
A.bounce_away(FALSE, NONE)
playsound(src, 'sound/weapons/bulletinsert.ogg', 60, TRUE)
to_chat(user, span_notice("You remove a round from [src]!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/ammo_box/AltClick(mob/user)
. = ..()
@@ -167,9 +167,10 @@
A.bounce_away(FALSE, NONE)
playsound(src, 'sound/weapons/bulletinsert.ogg', 60, TRUE)
to_chat(user, span_notice("You remove a round from [src]!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/ammo_box/update_icon()
+/obj/item/ammo_box/update_icon(updates=ALL)
+ . = ..()
var/rounds_left = stored_ammo.len
switch(multiple_sprites)
if(AMMO_BOX_PER_BULLET)
@@ -206,4 +207,4 @@
/obj/item/ammo_box/magazine/handle_atom_del(atom/A)
stored_ammo -= A
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/projectiles/boxes_magazines/external/grenade.dm b/code/modules/projectiles/boxes_magazines/external/grenade.dm
index 690c880c15a1..2c22ca5bb099 100644
--- a/code/modules/projectiles/boxes_magazines/external/grenade.dm
+++ b/code/modules/projectiles/boxes_magazines/external/grenade.dm
@@ -5,7 +5,8 @@
caliber = "75"
max_ammo = 8
-/obj/item/ammo_box/magazine/m75/update_icon()
+/obj/item/ammo_box/magazine/m75/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "75-8"
diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm
index 8132339a8e3d..992c69735e9e 100644
--- a/code/modules/projectiles/boxes_magazines/external/lmg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm
@@ -32,6 +32,7 @@
ammo_type = /obj/item/ammo_casing/mm712x82/inc
sprite_designation = "I"
-/obj/item/ammo_box/magazine/mm712x82/update_icon()
+/obj/item/ammo_box/magazine/mm712x82/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "a762[sprite_designation]-[round(ammo_count(),10)]"
diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm
index 951b1411d8ef..c3e5f9bfbcf2 100644
--- a/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -64,7 +64,8 @@
caliber = ".45"
max_ammo = 8
-/obj/item/ammo_box/magazine/m45/update_icon()
+/obj/item/ammo_box/magazine/m45/update_icon(updates=ALL)
+ . = ..()
..()
if (ammo_count() >= 8)
icon_state = "45-8"
@@ -81,7 +82,8 @@
caliber = "9mm"
max_ammo = 15
-/obj/item/ammo_box/magazine/pistolm9mm/update_icon()
+/obj/item/ammo_box/magazine/pistolm9mm/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "9x19p-[ammo_count() ? "10" : "0"]"
@@ -95,7 +97,8 @@
caliber = ".50ae"
max_ammo = 7
-/obj/item/ammo_box/magazine/m50/update_icon()
+/obj/item/ammo_box/magazine/m50/update_icon(updates=ALL)
+ . = ..()
. = ..()
if (ammo_count() >= 7)
icon_state = "50ae-7"
@@ -112,7 +115,8 @@
caliber = "38"
max_ammo = 8
-/obj/item/ammo_box/magazine/v38/update_icon()
+/obj/item/ammo_box/magazine/v38/update_icon(updates=ALL)
+ . = ..()
..()
if (ammo_count() >= 8)
icon_state = "v38[sprite_designation]-8"
diff --git a/code/modules/projectiles/boxes_magazines/external/rechargable.dm b/code/modules/projectiles/boxes_magazines/external/rechargable.dm
index e98aff2bbc60..e260d3f80c78 100644
--- a/code/modules/projectiles/boxes_magazines/external/rechargable.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rechargable.dm
@@ -8,7 +8,8 @@
caliber = LASER
max_ammo = 20
-/obj/item/ammo_box/magazine/recharge/update_icon()
+/obj/item/ammo_box/magazine/recharge/update_icon(updates=ALL)
+ . = ..()
..()
desc = "[initial(desc)] It has [stored_ammo.len] shot\s left."
cut_overlays()
@@ -29,7 +30,8 @@
icon_state = "lasgunmag"
desc = "A rechargeable, detachable battery that serves as a magazine for las weaponry."
-/obj/item/ammo_box/magazine/recharge/lasgun/update_icon()
+/obj/item/ammo_box/magazine/recharge/lasgun/update_icon(updates=ALL)
+ . = ..()
..()
desc = "[initial(desc)] It has [stored_ammo.len] shot\s left."
if(ammo_count())
@@ -74,7 +76,8 @@
"fire" = 2
)
-/obj/item/gun/ballistic/automatic/pistol/ntusp/update_icon()
+/obj/item/gun/ballistic/automatic/pistol/ntusp/update_icon(updates=ALL)
+ . = ..()
icon_state = initial(icon_state)
if(istype(magazine, /obj/item/ammo_box/magazine/recharge/ntusp/laser))
// Tricks the parent proc into thinking we have a skin so it uses the laser-variant icon_state
@@ -104,7 +107,7 @@
var/bullets_to_remove = round(bullet_count / (severity*2))
for(var/i = 0; i < bullets_to_remove, i++)
qdel(get_round())
- update_icon()
+ update_appearance(UPDATE_ICON)
if(isgun(loc))
var/obj/item/gun/ballistic/G = loc
if(!G.magazine == src)
@@ -135,7 +138,8 @@
icon_state = "powerpack_small-l"
max_ammo = 8
-/obj/item/ammo_box/magazine/recharge/ntusp/laser/update_icon()
+/obj/item/ammo_box/magazine/recharge/ntusp/laser/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
var/cur_ammo = ammo_count()
diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm
index f33ba8a15753..32f27881dab2 100644
--- a/code/modules/projectiles/boxes_magazines/external/rifle.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm
@@ -8,7 +8,8 @@
caliber = ".45"
max_ammo = 10
-/obj/item/ammo_box/magazine/m10mm/rifle/update_icon()
+/obj/item/ammo_box/magazine/m10mm/rifle/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "75-8"
@@ -25,7 +26,8 @@
caliber = "a556"
max_ammo = 30
-/obj/item/ammo_box/magazine/m556/update_icon()
+/obj/item/ammo_box/magazine/m556/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "5.56m[sprite_designation]-[round(ammo_count(),5)]"
@@ -55,7 +57,8 @@
caliber = "a556"
max_ammo = 30
-/obj/item/ammo_box/magazine/r556/update_icon()
+/obj/item/ammo_box/magazine/r556/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "arg556[sprite_designation]"
@@ -96,7 +99,8 @@
caliber = "m308"
max_ammo = 15
-/obj/item/ammo_box/magazine/m308/update_icon()
+/obj/item/ammo_box/magazine/m308/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "m308[sprite_designation]"
@@ -130,7 +134,8 @@
caliber = "a762"
max_ammo = 11
-/obj/item/ammo_box/magazine/ks762/update_icon()
+/obj/item/ammo_box/magazine/ks762/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "ks762[sprite_designation]"
diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
index 46eaf75985f4..0777f32191fb 100644
--- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm
+++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
@@ -10,7 +10,8 @@
max_ammo = 8
sprite_designation = "b"
-/obj/item/ammo_box/magazine/m12g/update_icon()
+/obj/item/ammo_box/magazine/m12g/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "m12g[sprite_designation]-8"
diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm
index c05c7332e51a..cd50a4847b83 100644
--- a/code/modules/projectiles/boxes_magazines/external/smg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/smg.dm
@@ -8,7 +8,8 @@
caliber = "4.6x30mm"
max_ammo = 20
-/obj/item/ammo_box/magazine/wt550m9/update_icon()
+/obj/item/ammo_box/magazine/wt550m9/update_icon(updates=ALL)
+ . = ..()
..()
switch(ammo_count())
if(17 to 21) //Considers the extra bullet in the chamber
@@ -75,7 +76,7 @@
sprite_designation = "B"
max_ammo = 10
-/obj/item/ammo_box/magazine/wt550m9/wt_airburst/update_icon() // Snowflake code snowflake code
+/obj/item/ammo_box/magazine/wt550m9/wt_airburst/update_icon(updates=ALL) // Snowflake code snowflake code
..()
switch(ammo_count())
if(9 to 11) //Considers the extra bullet in the chamber
@@ -101,7 +102,8 @@
caliber = "9mm"
max_ammo = 32
-/obj/item/ammo_box/magazine/uzim9mm/update_icon()
+/obj/item/ammo_box/magazine/uzim9mm/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "uzi9mm-[round(ammo_count(),4)]"
@@ -115,7 +117,8 @@
caliber = "9mm"
max_ammo = 21
-/obj/item/ammo_box/magazine/smgm9mm/update_icon()
+/obj/item/ammo_box/magazine/smgm9mm/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "smg9mm[sprite_designation]-[ammo_count() ? "42" : "0"]"
@@ -145,7 +148,8 @@
caliber = ".45"
max_ammo = 24
-/obj/item/ammo_box/magazine/smgm45/update_icon()
+/obj/item/ammo_box/magazine/smgm45/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "c20r45[sprite_designation]-[round(ammo_count(),2)]"
diff --git a/code/modules/projectiles/boxes_magazines/external/sniper.dm b/code/modules/projectiles/boxes_magazines/external/sniper.dm
index 6da8640160d9..3bb49412436c 100644
--- a/code/modules/projectiles/boxes_magazines/external/sniper.dm
+++ b/code/modules/projectiles/boxes_magazines/external/sniper.dm
@@ -9,7 +9,8 @@
max_ammo = 6
caliber = ".50bmg"
-/obj/item/ammo_box/magazine/sniper_rounds/update_icon()
+/obj/item/ammo_box/magazine/sniper_rounds/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "[initial(icon_state)]-ammo"
diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm
index 82c97ea054ff..9be6a9fd1e15 100644
--- a/code/modules/projectiles/boxes_magazines/external/toy.dm
+++ b/code/modules/projectiles/boxes_magazines/external/toy.dm
@@ -9,7 +9,8 @@
ammo_type = /obj/item/ammo_casing/reusable/foam_dart
max_ammo = 20
-/obj/item/ammo_box/magazine/toy/smg/update_icon()
+/obj/item/ammo_box/magazine/toy/smg/update_icon(updates=ALL)
+ . = ..()
..()
if(ammo_count())
icon_state = "smg9mm-42"
@@ -35,7 +36,8 @@
ammo_type = /obj/item/ammo_casing/reusable/foam_dart
max_ammo = 20
-/obj/item/ammo_box/magazine/toy/smgm45/update_icon()
+/obj/item/ammo_box/magazine/toy/smgm45/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "c20r45-[round(ammo_count(),2)]"
@@ -50,7 +52,8 @@
ammo_type = /obj/item/ammo_casing/reusable/foam_dart
max_ammo = 50
-/obj/item/ammo_box/magazine/toy/m762/update_icon()
+/obj/item/ammo_box/magazine/toy/m762/update_icon(updates=ALL)
+ . = ..()
..()
icon_state = "a762-[round(ammo_count(),10)]"
diff --git a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm
index a1d16826ccfe..7b47c450a3bd 100644
--- a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm
+++ b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm
@@ -58,4 +58,4 @@
for(var/i = 1, i <= max_ammo, i++)
if(!give_round(new load_type(src)))
break
- update_icon()
\ No newline at end of file
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index d6128dfa15bf..bb9c5b7319b4 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -121,7 +121,7 @@
pin = null
if(A == chambered)
chambered = null
- update_icon()
+ update_appearance(UPDATE_ICON)
if(A == bayonet)
clear_bayonet()
if(A == gun_light)
@@ -206,7 +206,7 @@
w_class -= suppressed.w_class
qdel(suppressed)
suppressed = null
- update_icon()
+ update_appearance(UPDATE_ICON)
else
if(enloudened && enloudened.enloudened_sound)
playsound(user, enloudened.enloudened_sound, fire_sound_volume, vary_fire_sound)
@@ -355,7 +355,7 @@
firing_burst = FALSE
return FALSE
process_chamber()
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/// cd_override is FALSE or 0 by default (no override), if you want to make a gun have no click cooldown then just make it something small like 0.001
@@ -409,7 +409,7 @@
shoot_with_empty_chamber(user)
return
process_chamber()
- update_icon()
+ update_appearance(UPDATE_ICON)
semicd = TRUE
addtimer(CALLBACK(src, PROC_REF(reset_semicd)), fire_delay)
@@ -419,7 +419,8 @@
recent_shoot = world.time
return TRUE
-/obj/item/gun/update_icon()
+/obj/item/gun/update_icon(updates=ALL)
+ . = ..()
..()
@@ -629,7 +630,7 @@
else
cut_overlay(flashlight_overlay, TRUE)
flashlight_overlay = null
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/X in actions)
var/datum/action/A = X
A.build_all_button_icons()
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 703e8dfe6a9d..6834aa2444c7 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -156,7 +156,7 @@
feedback_fire_slide ? add_overlay(feedback_firing_icon) : add_overlay(feedback_original_icon)
DabAnimation(speed = feedback_recoil_speed, angle = ((rand(25,50)) * feedback_recoil_amount), direction = (feedback_recoil_reverse ? 2 : 3), hold_seconds = feedback_recoil_hold)
sleep(frames)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if (bolt_type == BOLT_TYPE_LOCKING)
if(type != "slide*")
@@ -165,7 +165,7 @@
DabAnimation(speed = feedback_recoil_speed, angle = ((rand(20,25)) * feedback_recoil_amount), direction = 2)
add_overlay("[feedback_original_icon_base]_[type]") // actual animation
sleep(frames)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/Initialize(mapload)
. = ..()
@@ -177,7 +177,7 @@
feedback_firing_icon = feedback_original_icon_base
if (!spawnwithmagazine)
bolt_locked = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if (!magazine)
if (!starting_mag_type)
@@ -185,10 +185,11 @@
else
magazine = new starting_mag_type(src)
chamber_round()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/gun/ballistic/update_icon()
+/obj/item/gun/ballistic/update_icon(updates=ALL)
+ . = ..()
if (QDELETED(src))
return
..()
@@ -281,7 +282,7 @@
else
playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
feedback("slide_close")
- update_icon()
+ update_appearance(UPDATE_ICON)
///Drops the bolt from a locked position
/obj/item/gun/ballistic/proc/drop_bolt(mob/user = null)
@@ -291,7 +292,7 @@
bolt_locked = FALSE
feedback("slide_close")
chamber_round()
- update_icon()
+ update_appearance(UPDATE_ICON)
///Handles all the logic needed for magazine insertion
/obj/item/gun/ballistic/proc/insert_magazine(mob/user, obj/item/ammo_box/magazine/AM, display_message = TRUE)
@@ -308,7 +309,7 @@
feedback("mag_in")
if (bolt_type == BOLT_TYPE_OPEN && !bolt_locked)
chamber_round(TRUE)
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
else
to_chat(user, span_warning("You cannot seem to get \the [src] out of your hands!"))
@@ -340,10 +341,10 @@
else
magazine = null
user.put_in_hands(old_mag)
- old_mag.update_icon()
+ old_mag.update_appearance(UPDATE_ICON)
if (display_message)
to_chat(user, span_notice("You pull the [magazine_wording] out of \the [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/can_shoot()
return chambered
@@ -376,8 +377,8 @@
user.say(reload_say, forced = "reloading")
if (chambered == null && bolt_type == BOLT_TYPE_NO_BOLT)
chamber_round()
- A.update_icon()
- update_icon()
+ A.update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON)
return
if(istype(A, /obj/item/suppressor))
var/obj/item/suppressor/S = A
@@ -420,11 +421,11 @@
/obj/item/gun/ballistic/proc/install_suppressor(obj/item/suppressor/S)
suppressed = S
w_class += S.w_class //so pistols do not fit in pockets when suppressed
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/proc/install_enloudener(obj/item/enloudener/E)
enloudened = E
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/AltClick(mob/user)
if (unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERY))
@@ -438,7 +439,7 @@
user.put_in_hands(suppressed)
w_class -= suppressed.w_class
suppressed = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(enloudened && can_unsuppress)
if(!user.is_holding(src))
@@ -447,7 +448,7 @@
user.put_in_hands(enloudened)
w_class -= enloudened.w_class
enloudened = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return
///Prefire empty checks for the bolt drop
@@ -456,7 +457,7 @@
if (bolt_type == BOLT_TYPE_OPEN && !bolt_locked)
bolt_locked = TRUE
playsound(src, bolt_drop_sound, bolt_drop_sound_volume)
- update_icon()
+ update_appearance(UPDATE_ICON)
///postfire empty checks for bolt locking and sound alarms
/obj/item/gun/ballistic/proc/postfire_empty_checks()
@@ -464,12 +465,12 @@
if (!alarmed && empty_alarm)
playsound(src, empty_alarm_sound, empty_alarm_volume, empty_alarm_vary)
alarmed = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
if (bolt_type == BOLT_TYPE_LOCKING)
if(!bolt_locked)
feedback("slide_open")
bolt_locked = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/afterattack()
prefire_empty_checks()
@@ -500,7 +501,7 @@
if (num_unloaded)
to_chat(user, span_notice("You unload [num_unloaded] [cartridge_wording]\s from [src]."))
playsound(user, eject_sound, eject_sound_volume, eject_sound_vary)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("[src] is empty!"))
return
@@ -630,7 +631,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
recoil = SAWN_OFF_RECOIL
sawn_off = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
///used for sawing guns, causes the gun to fire without the input of the user
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index ec4fd862e563..e2c13f426957 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -27,7 +27,8 @@
/obj/item/gun/ballistic/automatic/proto/unrestricted
pin = /obj/item/firing_pin
-/obj/item/gun/ballistic/automatic/update_icon()
+/obj/item/gun/ballistic/automatic/update_icon(updates=ALL)
+ . = ..()
..()
if(!select)
add_overlay("[initial(icon_state)]_semi")
@@ -56,7 +57,7 @@
to_chat(user, span_notice("You switch to [burst_size]-rnd burst."))
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/X in actions)
var/datum/action/A = X
A.build_all_button_icons()
@@ -82,7 +83,7 @@
/obj/item/gun/ballistic/automatic/c20r/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/automatic/wt550
name = "\improper security auto carbine"
@@ -133,7 +134,7 @@
/obj/item/gun/ballistic/automatic/m90/Initialize(mapload)
. = ..()
underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/automatic/m90/unrestricted
pin = /obj/item/firing_pin
@@ -141,7 +142,7 @@
/obj/item/gun/ballistic/automatic/m90/unrestricted/Initialize(mapload)
. = ..()
underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/automatic/m90/afterattack(atom/target, mob/living/user, flag, params)
if(select == 2)
@@ -157,7 +158,8 @@
else
..()
-/obj/item/gun/ballistic/automatic/m90/update_icon()
+/obj/item/gun/ballistic/automatic/m90/update_icon(updates=ALL)
+ . = ..()
..()
switch(select)
if(0)
@@ -188,7 +190,7 @@
spread -= spread_difference
to_chat(user, span_notice("You switch to semi-auto."))
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/item/gun/ballistic/automatic/tommygun
@@ -262,10 +264,11 @@
playsound(user, 'sound/weapons/sawopen.ogg', 60, 1)
else
playsound(user, 'sound/weapons/sawopen.ogg', 60, 1)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/gun/ballistic/automatic/l6_saw/update_icon()
+/obj/item/gun/ballistic/automatic/l6_saw/update_icon(updates=ALL)
+ . = ..()
. = ..()
add_overlay("l6_door_[cover_open ? "open" : "closed"]")
@@ -276,7 +279,7 @@
return
else
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/gun/ballistic/automatic/l6_saw/attack_hand(mob/user)
diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm
index 39598331ba6c..1c3c687a6c5d 100644
--- a/code/modules/projectiles/guns/ballistic/bow.dm
+++ b/code/modules/projectiles/guns/ballistic/bow.dm
@@ -43,7 +43,7 @@
/obj/item/gun/ballistic/bow/chamber_round()
chambered = magazine.get_round(1)
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/dropped()
. = ..()
@@ -61,7 +61,7 @@
chambered = null
magazine.give_round(old_chambered)
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/equipped(mob/user, slot)
..()
@@ -71,7 +71,7 @@
chambered = null
magazine.get_round(FALSE)
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/attack_self(mob/living/user)
if(drawing)
@@ -121,7 +121,7 @@
user.put_in_hands(AC)
to_chat(user, span_notice("You remove [AC]."))
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/ammo_casing))
@@ -131,9 +131,10 @@
to_chat(user, span_notice("You notch [I]."))
nerfed = istype(I, /obj/item/ammo_casing/reusable/arrow/toy)
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/gun/ballistic/bow/update_icon()
+/obj/item/gun/ballistic/bow/update_icon(updates=ALL)
+ . = ..()
cut_overlay(arrow_overlay, TRUE)
icon_state = "[initial(icon_state)][chambered ? "_firing" : ""]"
if(get_ammo())
@@ -451,7 +452,8 @@
if(TIMER_COOLDOWN_CHECK(src, "arrow_recharge"))
. += span_warning("It is currently recharging!")
-/obj/item/gun/ballistic/bow/energy/update_icon()
+/obj/item/gun/ballistic/bow/energy/update_icon(updates=ALL)
+ . = ..()
cut_overlay(arrow_overlay, TRUE)
if(folded)
@@ -492,7 +494,7 @@
to_chat(user, span_notice("You fabricate an arrow."))
recharge_arrow()
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/energy/proc/recharge_arrow()
if(folded || magazine.get_round(TRUE))
@@ -500,7 +502,7 @@
var/ammo_type = magazine.ammo_type
magazine.give_round(new ammo_type())
update_slowdown()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/energy/attackby(obj/item/I, mob/user, params)
return
@@ -512,7 +514,7 @@
QDEL_NULL(current_round)
if(!TIMER_COOLDOWN_CHECK(src, "arrow_recharge"))
recharge_arrow()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/energy/proc/select_projectile(mob/living/user)
var/obj/item/ammo_box/magazine/internal/bow/energy/M = magazine
@@ -550,7 +552,7 @@
to_chat(user, span_notice("You switch \the [src]'s firing mode to \"[initial(choice.name)]\"."))
QDEL_NULL(choice_list)
QDEL_NULL(radial_list)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/energy/CtrlClick(mob/living/user)
if(!can_fold || !user.is_holding(src))
@@ -580,7 +582,7 @@
//magazine.stored_ammo = stored_ammo
if(user)
to_chat(user, span_notice("You extend [src], allowing it to be fired."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/bow/energy/advanced
name = "advanced hardlight bow"
diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
index 9bca7518e0cc..0c3b290c55b3 100644
--- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm
+++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
@@ -42,7 +42,7 @@
armed = 0
to_chat(user, span_warning("You need a free hand to hold the gun!"))
return
- update_icon()
+ update_appearance(UPDATE_ICON)
user.update_inv_back()
else
to_chat(user, span_warning("You are already holding the gun!"))
@@ -81,7 +81,8 @@
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
-/obj/item/minigunpack/update_icon()
+/obj/item/minigunpack/update_icon(updates=ALL)
+ . = ..()
if(armed)
icon_state = "notholstered"
else
@@ -96,7 +97,7 @@
to_chat(user, span_notice("You attach the [gun.name] to the [name]."))
else
src.visible_message(span_warning("The [gun.name] snaps back onto the [name]!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
user.update_inv_back()
diff --git a/code/modules/projectiles/guns/ballistic/minigun.dm b/code/modules/projectiles/guns/ballistic/minigun.dm
index a7c5e9da5701..2fe3991bc177 100644
--- a/code/modules/projectiles/guns/ballistic/minigun.dm
+++ b/code/modules/projectiles/guns/ballistic/minigun.dm
@@ -42,7 +42,7 @@
armed = FALSE
to_chat(user, span_warning("You need a free hand to hold the gun!"))
return
- update_icon()
+ update_appearance(UPDATE_ICON)
user.update_inv_back()
else
to_chat(user, span_warning("You are already holding the gun!"))
@@ -81,7 +81,8 @@
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
-/obj/item/minigunbackpack/update_icon()
+/obj/item/minigunbackpack/update_icon(updates=ALL)
+ . = ..()
if(armed)
icon_state = "notholstered"
else
@@ -96,7 +97,7 @@
to_chat(user, span_notice("You attach the [gun.name] to the [name]."))
else
visible_message(span_warning("The [gun.name] snaps back onto the [name]!"))
- update_icon()
+ update_appearance(UPDATE_ICON)
user.update_inv_back()
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index 002f16d91691..30a76ee99871 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -181,8 +181,8 @@
..()
if(get_ammo(FALSE) > 0)
spin()
- update_icon()
- A.update_icon()
+ update_appearance(UPDATE_ICON)
+ A.update_appearance(UPDATE_ICON)
return
/obj/item/gun/ballistic/revolver/russian/attack_self(mob/user)
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index 356e9c069f4b..a93cf2c8afc2 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -15,7 +15,8 @@
bolt_drop_sound = "sound/weapons/mosinboltin.ogg"
tac_reloads = FALSE
-obj/item/gun/ballistic/rifle/update_icon()
+obj/item/gun/ballistic/rifle/update_icon(updates=ALL)
+ . = ..()
..()
add_overlay("[icon_state]_bolt[bolt_locked ? "_locked" : ""]")
@@ -25,7 +26,7 @@ obj/item/gun/ballistic/rifle/rack(mob/user = null)
playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
process_chamber(FALSE, FALSE, FALSE)
bolt_locked = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
drop_bolt(user)
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index e5626fb46520..2aeb79dee741 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -228,11 +228,12 @@
slot_flags = ITEM_SLOT_BACK
to_chat(user, span_notice("You tie the lengths of cable to the shotgun, making a sling."))
slung = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("You need at least ten lengths of cable if you want to make a sling!"))
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/update_icon()
+/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/update_icon(updates=ALL)
+ . = ..()
..()
if(slung)
icon_state = "ishotgunsling"
@@ -243,7 +244,7 @@
if(. && slung) //sawing off the gun removes the sling
new /obj/item/stack/cable_coil(get_turf(src), 10)
slung = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn
name = "sawn-off improvised shotgun"
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index c65adaa8a00f..256b25d52ccc 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -13,7 +13,8 @@
item_flags = NONE
casing_ejector = FALSE
-/obj/item/gun/ballistic/automatic/toy/update_icon()
+/obj/item/gun/ballistic/automatic/toy/update_icon(updates=ALL)
+ . = ..()
. = ..()
add_overlay("[icon_state]_toy")
@@ -56,7 +57,8 @@
casing_ejector = FALSE
can_suppress = FALSE
-/obj/item/gun/ballistic/shotgun/toy/update_icon()
+/obj/item/gun/ballistic/shotgun/toy/update_icon(updates=ALL)
+ . = ..()
. = ..()
add_overlay("[icon_state]_toy")
@@ -90,7 +92,8 @@
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot
mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot
-/obj/item/gun/ballistic/automatic/c20r/toy/update_icon()
+/obj/item/gun/ballistic/automatic/c20r/toy/update_icon(updates=ALL)
+ . = ..()
. = ..()
add_overlay("[icon_state]_toy")
@@ -110,6 +113,7 @@
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot
mag_type = /obj/item/ammo_box/magazine/toy/m762/riot
-/obj/item/gun/ballistic/automatic/l6_saw/toy/update_icon()
+/obj/item/gun/ballistic/automatic/l6_saw/toy/update_icon(updates=ALL)
+ . = ..()
. = ..()
add_overlay("[icon_state]_toy")
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index cf7810067b49..1fa4719ab9ab 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -10,7 +10,7 @@
var/list/ammo_type = list(/obj/item/ammo_casing/energy)
var/select = 1 //The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next.
var/can_charge = TRUE //Can it be charged in a recharger?
- var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_icon()?
+ var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_appearance(UPDATE_ICON)?
var/charge_sections = 4
ammo_x_offset = 2
var/shaded_charge = FALSE //if this gun uses a stateful charge bar for more detail
@@ -45,7 +45,7 @@
emp_jam_timer = addtimer(CALLBACK(src, PROC_REF(emp_unjam)), unjam_time, TIMER_STOPPABLE)
chambered = null //we empty the chamber
recharge_newshot() //and try to charge a new shot
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/energy/shoot_with_empty_chamber(mob/living/user as mob|obj)
if(emp_jammed)
@@ -73,7 +73,7 @@
recharge_newshot(TRUE)
if(selfcharge)
START_PROCESSING(SSobj, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/energy/proc/update_ammo_types()
var/obj/item/ammo_casing/energy/shot
@@ -100,12 +100,12 @@
cell.give(100*charge_amount)
if(!chambered) //if empty chamber we try to charge a new shot
recharge_newshot(TRUE)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/energy/attack_self(mob/living/user as mob)
if(ammo_type.len > 1)
select_fire(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/energy/can_shoot()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
@@ -204,7 +204,7 @@
playsound(loc, fire_sound, 50, 1, -1)
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
cell.use(shot.e_cost)
- update_icon()
+ update_appearance(UPDATE_ICON)
return(FIRELOSS)
else
user.visible_message(span_suicide("[user] panics and starts choking to death!"))
diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm
index d7ede30bf273..9b85ca3dcd5b 100644
--- a/code/modules/projectiles/guns/energy/dueling.dm
+++ b/code/modules/projectiles/guns/energy/dueling.dm
@@ -173,7 +173,7 @@
if(DUEL_SETTING_C)
setting = DUEL_SETTING_A
to_chat(user,span_notice("You switch [src] setting to [setting] mode."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/energy/dueling/update_icon(force_update)
. = ..()
@@ -230,7 +230,8 @@
duration = 30
var/setting
-/obj/effect/temp_visual/dueling_chaff/update_icon()
+/obj/effect/temp_visual/dueling_chaff/update_icon(updates=ALL)
+ . = ..()
. = ..()
switch(setting)
if(DUEL_SETTING_A)
@@ -251,13 +252,13 @@
. = ..()
var/obj/item/projectile/energy/duel/D = BB
D.setting = setting
- D.update_icon()
+ D.update_appearance(UPDATE_ICON)
/obj/item/ammo_casing/energy/duel/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from)
. = ..()
var/obj/effect/temp_visual/dueling_chaff/C = new(get_turf(user))
C.setting = setting
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
//Projectile
@@ -268,7 +269,8 @@
homing = TRUE
var/setting
-/obj/item/projectile/energy/duel/update_icon()
+/obj/item/projectile/energy/duel/update_icon(updates=ALL)
+ . = ..()
. = ..()
switch(setting)
if(DUEL_SETTING_A)
@@ -323,7 +325,8 @@
STR.max_items = 2
STR.set_holdable(list(/obj/item/gun/energy/dueling))
-/obj/item/storage/lockbox/dueling/update_icon()
+/obj/item/storage/lockbox/dueling/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED)
if(locked)
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index f35aff17fee8..5b6b2d251f2f 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -30,7 +30,8 @@
set_gun_light(new /obj/item/flashlight/seclite(src))
return ..()
-/obj/item/gun/energy/e_gun/mini/update_icon()
+/obj/item/gun/energy/e_gun/mini/update_icon(updates=ALL)
+ . = ..()
..()
if(gun_light && gun_light.on)
add_overlay("mini-light")
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index 563a01fc4b3c..f6db13cb2336 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -108,7 +108,7 @@
/obj/item/gun/energy/kinetic_accelerator/proc/empty()
if(cell)
cell.use(cell.charge)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/energy/kinetic_accelerator/proc/attempt_reload(recharge_time)
if(!cell)
@@ -142,10 +142,11 @@
playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
else
to_chat(loc, span_warning("[src] silently charges up."))
- update_icon()
+ update_appearance(UPDATE_ICON)
overheat = FALSE
-/obj/item/gun/energy/kinetic_accelerator/update_icon()
+/obj/item/gun/energy/kinetic_accelerator/update_icon(updates=ALL)
+ . = ..()
..()
if(!can_shoot())
add_overlay("[icon_state]_empty")
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 6ac021300bab..5d7134111a6c 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -34,7 +34,8 @@
pin = null
ammo_x_offset = 1
-/obj/item/gun/energy/decloner/update_icon()
+/obj/item/gun/energy/decloner/update_icon(updates=ALL)
+ . = ..()
..()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
if(!QDELETED(cell) && (cell.charge > shot.e_cost))
@@ -208,7 +209,8 @@
. = ..(amount=1)
-/obj/item/gun/energy/plasmacutter/update_icon()
+/obj/item/gun/energy/plasmacutter/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/gun/energy/plasmacutter/adv
@@ -306,7 +308,8 @@
desc = "A projector that emits high density quantum-coupled bluespace beams. This one seems to be modified to go through glass."
ammo_type = list(/obj/item/ammo_casing/energy/wormhole/upgraded, /obj/item/ammo_casing/energy/wormhole/orange/upgraded)
-/obj/item/gun/energy/wormhole_projector/update_icon()
+/obj/item/gun/energy/wormhole_projector/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][select]"
item_state = icon_state
@@ -384,7 +387,8 @@
can_charge = FALSE
use_cyborg_cell = TRUE
-/obj/item/gun/energy/printer/update_icon()
+/obj/item/gun/energy/printer/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/gun/energy/printer/emp_act()
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index 7b08f3da3ab4..785a0bc26720 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -49,7 +49,7 @@
. |= COMPONENT_ITEM_BURNT_OUT
charges = max_charges
- update_icon()
+ update_appearance(UPDATE_ICON)
recharge_newshot()
return .
@@ -108,7 +108,8 @@
recharge_newshot()
return 1
-/obj/item/gun/magic/update_icon()
+/obj/item/gun/magic/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj)
diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm
index 383cb47830c5..efb9ba6b73fd 100644
--- a/code/modules/projectiles/guns/magic/wand.dm
+++ b/code/modules/projectiles/guns/magic/wand.dm
@@ -21,7 +21,8 @@
. = ..()
. += "Has [charges] charge\s remaining."
-/obj/item/gun/magic/wand/update_icon()
+/obj/item/gun/magic/wand/update_icon(updates=ALL)
+ . = ..()
icon_state = "[initial(icon_state)][charges ? "" : "-drained"]"
/obj/item/gun/magic/wand/attack(atom/target, mob/living/user)
@@ -44,7 +45,7 @@
zap_self(user)
else
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/magic/wand/proc/zap_self(mob/living/user)
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index ab196eda9af9..c02bdb51d2ca 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -148,7 +148,8 @@
current_zoom_x = 0
current_zoom_y = 0
-/obj/item/gun/energy/beam_rifle/update_icon()
+/obj/item/gun/energy/beam_rifle/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/obj/item/ammo_casing/energy/primary_ammo = ammo_type[1]
if(!QDELETED(cell) && (cell.charge >= primary_ammo.e_cost))
diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm
index ae5f27377a2b..878bc373ecf5 100644
--- a/code/modules/projectiles/guns/misc/blastcannon.dm
+++ b/code/modules/projectiles/guns/misc/blastcannon.dm
@@ -41,10 +41,11 @@
user.put_in_hands(bomb)
user.visible_message(span_warning("[user] detaches [bomb] from [src]."))
bomb = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
-/obj/item/gun/blastcannon/update_icon()
+/obj/item/gun/blastcannon/update_icon(updates=ALL)
+ . = ..()
if(bomb)
icon_state = icon_state_loaded
name = "blast cannon"
@@ -65,7 +66,7 @@
return FALSE
user.visible_message(span_warning("[user] attaches [T] to [src]!"))
bomb = T
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
return ..()
@@ -94,7 +95,7 @@
var/power = bomb? calculate_bomb() : debug_power
power = min(power, max_power)
QDEL_NULL(bomb)
- update_icon()
+ update_appearance(UPDATE_ICON)
var/heavy = power * 0.25
var/medium = power * 0.5
var/light = power
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 9798c722b26a..41fe02823bcf 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -18,7 +18,7 @@
/obj/item/gun/syringe/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
chambered = new /obj/item/ammo_casing/syringegun(src)
/obj/item/gun/syringe/handle_atom_del(atom/A)
@@ -37,7 +37,7 @@
/obj/item/gun/syringe/process_chamber()
if(chambered && !chambered.BB) //we just fired
recharge_newshot()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/gun/syringe/examine(mob/user)
. = ..()
@@ -71,14 +71,15 @@
to_chat(user, span_notice("You load [A] into \the [src]."))
syringes += A
recharge_newshot()
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(loc, load_sound, 40)
return TRUE
else
to_chat(user, span_warning("[src] cannot hold more syringes!"))
return FALSE
-/obj/item/gun/syringe/update_icon()
+/obj/item/gun/syringe/update_icon(updates=ALL)
+ . = ..()
. = ..()
if(!has_syringe_overlay)
return
@@ -124,7 +125,7 @@
to_chat(user, span_notice("You load \the [D] into \the [src]."))
syringes += D
recharge_newshot()
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(loc, load_sound, 40)
return TRUE
else
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 175a73c951ce..cdb90cfd1447 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -450,7 +450,7 @@
for(var/atom/movable/AM in contents)
C.insert(AM)
C.welded = weld
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
created = TRUE
return ..()
@@ -477,7 +477,7 @@
if(!welded)
return
icon_state = magic_icon
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/closet/decay/after_weld(weld_state)
if(weld_state)
@@ -497,7 +497,7 @@
/obj/structure/closet/decay/proc/unmagify()
icon_state = weakened_icon
- update_icon()
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(decay)), 15 SECONDS)
icon_welded = "welded"
diff --git a/code/modules/projectiles/projectile/reusable/arrow.dm b/code/modules/projectiles/projectile/reusable/arrow.dm
index 30058fb07342..751419a950e1 100644
--- a/code/modules/projectiles/projectile/reusable/arrow.dm
+++ b/code/modules/projectiles/projectile/reusable/arrow.dm
@@ -37,7 +37,7 @@
L.ignite_mob()
arrow.flaming = FALSE
- arrow.update_icon()
+ arrow.update_appearance(UPDATE_ICON)
/obj/item/projectile/bullet/reusable/arrow/handle_drop(atom/target)
if(dropped || !ammo_type)
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index d5d0914bde36..6b6f210a6cc6 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -107,7 +107,7 @@
t4_upgrade_reagents = sortList(t4_upgrade_reagents, /proc/cmp_reagents_asc)
display_reagents |= t4_upgrade_reagents
//we don't sort display_reagents again after adding these because they will fuck up the order
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/chem_dispenser/Destroy()
QDEL_NULL(beaker)
@@ -145,7 +145,8 @@
if(working_state)
flick(working_state,src)
-/obj/machinery/chem_dispenser/update_icon()
+/obj/machinery/chem_dispenser/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
icon_state = "[(nopower_state && !powered()) ? nopower_state : initial(icon_state)]"
if(has_panel_overlay && panel_open)
@@ -347,7 +348,7 @@
if(default_unfasten_wrench(user, I))
return
if(default_deconstruction_screwdriver(user, icon_state, icon_state, I))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
if(default_deconstruction_crowbar(I))
return
@@ -375,7 +376,7 @@
replace_beaker(user, B)
to_chat(user, span_notice("You add [B] to [src]."))
updateUsrDialog()
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(user.a_intent != INTENT_HARM && !istype(I, /obj/item/card/emag))
to_chat(user, span_warning("You can't load [I] into [src]!"))
return ..()
@@ -434,7 +435,7 @@
beaker = new_beaker
else
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/chem_dispenser/on_deconstruction()
@@ -479,7 +480,7 @@
var/old = dir
. = ..()
if(dir != old)
- update_icon() // the beaker needs to be re-positioned if we rotate
+ update_appearance(UPDATE_ICON) // the beaker needs to be re-positioned if we rotate
/obj/machinery/chem_dispenser/drinks/display_beaker()
var/mutable_appearance/b_o = beaker_overlay || mutable_appearance(icon, "disp_beaker")
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index b7d6268b8347..aa9ec700c085 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -21,16 +21,17 @@
. = ..()
if(A == beaker)
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/chem_heater/update_icon()
+/obj/machinery/chem_heater/update_icon(updates=ALL)
+ . = ..()
icon_state = "mixer[beaker ? 1 : 0][on ? "a" : "b"]"
/obj/machinery/chem_heater/CtrlClick(mob/user)
if(!user.canUseTopic(src, !issilicon(user)))
return
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/chem_heater/AltClick(mob/living/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
@@ -47,7 +48,7 @@
beaker = new_beaker
else
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/chem_heater/RefreshParts()
@@ -91,7 +92,7 @@
replace_beaker(user, B)
to_chat(user, span_notice("You add [B] to [src]."))
updateUsrDialog()
- update_icon()
+ update_appearance(UPDATE_ICON)
return
return ..()
@@ -129,7 +130,7 @@
if("power")
on = !on
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
if("temperature")
var/target = params["target"]
var/adjust = text2num(params["adjust"])
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 177d08bc2404..4ee34c6b780f 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -65,11 +65,12 @@
if(A == beaker)
beaker = null
reagents.clear_reagents()
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(A == bottle)
bottle = null
-/obj/machinery/chem_master/update_icon()
+/obj/machinery/chem_master/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if (stat & BROKEN)
add_overlay("waitlight")
@@ -103,7 +104,7 @@
replace_beaker(user, B)
to_chat(user, span_notice("You add [B] to [src]."))
updateUsrDialog()
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(!condi && istype(I, /obj/item/storage/pill_bottle))
if(bottle)
to_chat(user, span_warning("A pill bottle is already loaded into [src]!"))
@@ -131,7 +132,7 @@
beaker = new_beaker
else
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/chem_master/on_deconstruction()
diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm
index 4bc6fd486e40..9fcf3822a6e7 100644
--- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm
@@ -53,7 +53,7 @@
var/input = text2num(params["amount"])
if(input)
amount = input
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/chem_dispenser/chem_synthesizer/proc/find_reagent(input)
. = FALSE
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index 59b9f2a427f9..99188da75ac4 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -17,7 +17,7 @@
/obj/machinery/computer/pandemic/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/computer/pandemic/Destroy()
QDEL_NULL(beaker)
@@ -42,7 +42,7 @@
/obj/machinery/computer/pandemic/handle_atom_del(atom/A)
if(A == beaker)
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return ..()
/obj/machinery/computer/pandemic/proc/get_by_index(thing, index)
@@ -122,10 +122,11 @@
/obj/machinery/computer/pandemic/proc/reset_replicator_cooldown()
wait = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src, 'sound/machines/ping.ogg', 30, TRUE)
-/obj/machinery/computer/pandemic/update_icon()
+/obj/machinery/computer/pandemic/update_icon(updates=ALL)
+ . = ..()
if(stat & BROKEN)
icon_state = (beaker ? "mixer1_b" : "mixer0_b")
return
@@ -140,7 +141,7 @@
if(beaker)
beaker.forceMove(drop_location())
beaker = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/computer/pandemic/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -215,7 +216,7 @@
B.desc = "A small bottle. Contains [A.agent] culture in synthblood medium."
B.reagents.add_reagent(/datum/reagent/blood, 20, data)
wait = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
var/turf/source_turf = get_turf(src)
log_virus("A culture bottle was printed for the virus [A.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]")
addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 50)
@@ -229,7 +230,7 @@
B.name = "[D.name] vaccine bottle"
B.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id))
wait = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 200)
. = TRUE
@@ -247,7 +248,7 @@
beaker = I
to_chat(user, span_notice("You insert [I] into [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 8be38a4680d0..5ae36d4ea595 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -37,7 +37,7 @@
. = ..()
holdingitems = list()
QDEL_NULL(container)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/reagentgrinder/Destroy()
if(container)
@@ -89,7 +89,7 @@
. = ..()
if(A == container)
container = null
- update_icon()
+ update_appearance(UPDATE_ICON)
if(holdingitems[A])
holdingitems -= A
@@ -99,7 +99,8 @@
AM.forceMove(drop_location())
holdingitems = list()
-/obj/machinery/reagentgrinder/update_icon()
+/obj/machinery/reagentgrinder/update_icon(updates=ALL)
+ . = ..()
if(!container)
icon_state = "juicer"
return
@@ -118,7 +119,7 @@
container = new_container
else
container = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params)
@@ -142,7 +143,7 @@
return
replace_container(user, B)
to_chat(user, span_notice("You add [B] to [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE //no afterattack
if(holdingitems.len >= limit)
diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm
index b883fedc1ed1..18e421308614 100644
--- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm
+++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm
@@ -36,7 +36,8 @@
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
reagents.maximum_volume += REAGENTS_BASE_VOLUME * B.rating
-/obj/machinery/smoke_machine/update_icon()
+/obj/machinery/smoke_machine/update_icon(updates=ALL)
+ . = ..()
if((!is_operational()) || (!on) || (reagents.total_volume == 0))
if (panel_open)
icon_state = "smoke0-o"
@@ -70,12 +71,12 @@
return
if(reagents.total_volume == 0)
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
var/turf/location = get_turf(src)
var/smoke_test = locate(/obj/effect/particle_effect/fluid/smoke) in location
if(on && !smoke_test)
- update_icon()
+ update_appearance(UPDATE_ICON)
var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/smoke = new()
smoke.set_up(setting * 3, location = location, carry = reagents, efficiency = efficiency)
smoke.start()
@@ -131,7 +132,7 @@
switch(action)
if("purge")
reagents.clear_reagents()
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("setting")
var/amount = text2num(params["amount"])
@@ -140,7 +141,7 @@
. = TRUE
if("power")
on = !on
- update_icon()
+ update_appearance(UPDATE_ICON)
if(on)
message_admins("[ADMIN_LOOKUPFLW(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [ADMIN_VERBOSEJMP(src)].")
log_game("[key_name(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [AREACOORD(src)].")
diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm
index 96054f949928..3419ba010036 100644
--- a/code/modules/reagents/chemistry/recipes/special.dm
+++ b/code/modules/reagents/chemistry/recipes/special.dm
@@ -208,4 +208,4 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related
dat += " above [recipe.required_temp] degrees"
dat += "."
info = dat.Join("")
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index 633b94a1001b..faa875420502 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -57,7 +57,7 @@
. = ..()
if(blood_type != null)
reagents.add_reagent(unique_blood ? unique_blood : /datum/reagent/blood, 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/blood/on_reagent_change(changetype)
if(reagents)
@@ -69,7 +69,7 @@
else
blood_type = null
update_pack_name()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/blood/proc/update_pack_name()
if(!labelled)
@@ -78,7 +78,8 @@
else
name = "blood pack"
-/obj/item/reagent_containers/blood/update_icon()
+/obj/item/reagent_containers/blood/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/v = min(round(reagents.total_volume / volume * 10), 10)
@@ -141,4 +142,4 @@
labelled = 0
update_pack_name()
else
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/modules/reagents/reagent_containers/borghypo.dm b/code/modules/reagents/reagent_containers/borghypo.dm
index 31ef33730ecc..161978d3cd4a 100644
--- a/code/modules/reagents/reagent_containers/borghypo.dm
+++ b/code/modules/reagents/reagent_containers/borghypo.dm
@@ -55,7 +55,8 @@ Borg Hypospray
regenerate_reagents()
charge_timer = 0
- //update_icon()
+ //update_icon(updates=ALL)
+ . = ..()
return 1
// Use this to add more chemicals for the borghypo to produce.
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index 916c955288e0..f6af3528dfc8 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -15,12 +15,13 @@
. = ..()
if(!icon_state)
icon_state = "bottle"
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/glass/bottle/on_reagent_change(changetype)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/bottle/update_icon()
+/obj/item/reagent_containers/glass/bottle/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!filling_icon_state)
filling_icon_state = icon_state
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index 640716e6e1b8..f98c021dc380 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -44,7 +44,7 @@
span_userdanger("[user] tries to squirt something into [target]'s eyes, but fails!"))
to_chat(user, span_notice("You transfer [trans] unit\s of the solution."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return
else if(isalien(target)) //hiss-hiss has no eyes!
to_chat(target, span_danger("[target] does not seem to have any eyes!"))
@@ -82,7 +82,7 @@
trans = src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user)
to_chat(user, span_notice("You transfer [trans] unit\s of the solution."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else
@@ -98,9 +98,10 @@
to_chat(user, span_notice("You fill [src] with [trans] unit\s of the solution."))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/dropper/update_icon()
+/obj/item/reagent_containers/dropper/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "dropper")
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 0d4d5a14eeae..f720b7c41c6d 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -119,15 +119,16 @@
/obj/item/reagent_containers/glass/beaker/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/glass/beaker/get_part_rating()
return reagents.maximum_volume
/obj/item/reagent_containers/glass/beaker/on_reagent_change(changetype)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/beaker/update_icon()
+/obj/item/reagent_containers/glass/beaker/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents.total_volume)
@@ -177,7 +178,8 @@
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,60,120)
-/obj/item/reagent_containers/glass/beaker/plastic/update_icon()
+/obj/item/reagent_containers/glass/beaker/plastic/update_icon(updates=ALL)
+ . = ..()
icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states
..()
icon_state = "beakerwhite"
@@ -422,9 +424,10 @@
/obj/item/reagent_containers/glass/mixbowl/on_reagent_change(changetype)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/mixbowl/update_icon()
+/obj/item/reagent_containers/glass/mixbowl/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(reagents.total_volume)
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 685083f3619f..20438c495514 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -126,7 +126,7 @@
if(!iscyborg(user))
reagents.maximum_volume = 0 //Makes them useless afterwards
reagents.flags = NONE
- update_icon()
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(cyborg_recharge), user), 80)
/obj/item/reagent_containers/autoinjector/medipen/proc/cyborg_recharge(mob/living/silicon/robot/user)
@@ -134,9 +134,10 @@
var/mob/living/silicon/robot/R = user
if(R.cell.use(100))
reagents.add_reagent_list(list_reagents)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/autoinjector/medipen/update_icon()
+/obj/item/reagent_containers/autoinjector/medipen/update_icon(updates=ALL)
+ . = ..()
if(reagents.total_volume > 0)
icon_state = initial(icon_state)
else
@@ -304,9 +305,10 @@
if(ispath(container))
container = new container
antispam = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/hypospray/update_icon()
+/obj/item/hypospray/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
if(ismob(loc))
@@ -352,7 +354,7 @@
user.put_in_hands(container)
to_chat(user, span_notice("You remove [container] from [src]."))
container = null
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(loc, pick(eject_sound), 50, 1)
else
to_chat(user, span_notice("This hypo isn't loaded!"))
@@ -373,7 +375,7 @@
unload_hypo(user)
container = V
user.visible_message(span_notice("[user] has loaded [container] into [src]."),span_notice("You have loaded [container] into [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(loc, pick(load_sound), 35, 1)
return TRUE
else
@@ -430,7 +432,7 @@
if(HYPO_DRAW)
draw(target, user)
antispam = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/hypospray/proc/inject(mob/living/carbon/target, mob/user)
//Initial Checks/Logging
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index d338a4a87afb..56638d4daa75 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -21,28 +21,28 @@
. = ..()
if(list_reagents) //syringe starts in inject mode if its already got something inside
mode = SYRINGE_INJECT
- update_icon()
+ update_appearance(UPDATE_ICON)
RegisterSignal(src, COMSIG_ITEM_EMBED_TICK, PROC_REF(embed_inject))
/obj/item/reagent_containers/syringe/on_reagent_change(changetype)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/syringe/pickup(mob/user)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/syringe/dropped(mob/user)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/syringe/attack_self(mob/user)
mode = !mode
- update_icon()
+ update_appearance(UPDATE_ICON)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/reagent_containers/syringe/attack_hand()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/reagent_containers/syringe/attack_paw(mob/user)
return attack_hand(user)
@@ -103,7 +103,7 @@
to_chat(user, span_notice("You fill [src] with [trans] units of the solution. It now contains [reagents.total_volume] units."))
if (reagents.total_volume >= reagents.maximum_volume)
mode=!mode
- update_icon()
+ update_appearance(UPDATE_ICON)
if(SYRINGE_INJECT)
// Always log attemped injections for admins
@@ -165,10 +165,11 @@
to_chat(user, span_notice("You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units."))
if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT)
mode = SYRINGE_DRAW
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/syringe/update_icon()
+/obj/item/reagent_containers/syringe/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
var/rounded_vol
if(reagents && reagents.total_volume)
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 1dcc4bde816d..b0996259367c 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -101,7 +101,7 @@
reagents.trans_to(W, W.max_fuel, transfered_by = user)
user.visible_message(span_notice("[user] refills [user.p_their()] [W.name]."), span_notice("You refill [W]."))
playsound(src, 'sound/effects/refill.ogg', 50, 1)
- W.update_icon()
+ W.update_appearance(UPDATE_ICON)
else
user.visible_message(span_warning("[user] catastrophically fails at refilling [user.p_their()] [W.name]!"), span_userdanger("That was stupid of you."))
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index f7b15f1ba49c..1798b0dd2a7e 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -121,7 +121,8 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
movedir = backwards
update()
-/obj/machinery/conveyor/update_icon()
+/obj/machinery/conveyor/update_icon(updates=ALL)
+ . = ..()
if(!operating)
icon_state = "conveyor[inverted ? "-0" : "0"]"
else
@@ -132,7 +133,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
if(stat & NOPOWER)
operating = FALSE
. = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
// machine process
// move items to the target location
@@ -197,7 +198,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
inverted = !inverted
update_move_direction()
to_chat(user, span_notice("You set [src]'s direction [inverted ? "backwards" : "back to default"]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(I.tool_behaviour == TOOL_MULTITOOL)
switch(conveytime)
@@ -253,7 +254,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
. = ..()
if (newid)
id = newid
- update_icon()
+ update_appearance(UPDATE_ICON)
LAZYADD(GLOB.conveyors_by_id[id], src)
/obj/machinery/conveyor_switch/Destroy()
@@ -271,7 +272,8 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
// update the icon depending on the position
-/obj/machinery/conveyor_switch/update_icon()
+/obj/machinery/conveyor_switch/update_icon(updates=ALL)
+ . = ..()
if(position<0)
if(invert_icon)
icon_state = "switch-fwd"
@@ -297,7 +299,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
for(var/obj/machinery/conveyor/C in GLOB.conveyors_by_id[id])
C.operating = position
C.update_move_direction()
- C.update_icon()
+ C.update_appearance(UPDATE_ICON)
CHECK_TICK
// attack with hand, switch position
@@ -318,13 +320,13 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
position = 0
operated = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
// find any switches with same id as this one, and set their positions to match us
for(var/obj/machinery/conveyor_switch/S in GLOB.conveyors_by_id[id])
S.invert_icon = invert_icon
S.position = position
- S.update_icon()
+ S.update_appearance(UPDATE_ICON)
CHECK_TICK
/obj/machinery/conveyor_switch/attackby(obj/item/I, mob/user, params)
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index bab1c389c7b8..df0da2e97c0c 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -39,7 +39,7 @@
air_contents = new /datum/gas_mixture()
//gas.volume = 1.05 * CELLSTANDARD
- update_icon()
+ update_appearance(UPDATE_ICON)
return INITIALIZE_HINT_LATELOAD //we need turfs to have air
@@ -96,7 +96,7 @@
if((I.item_flags & ABSTRACT) || !user.temporarilyRemoveItemFromInventory(I))
return
place_item_in_disposal(I, user)
- update_icon()
+ update_appearance(UPDATE_ICON)
return 1 //no afterattack
else
return ..()
@@ -140,7 +140,7 @@
target.visible_message(span_danger("[user] has placed [target] in [src]."), span_userdanger("[user] has placed [target] in [src]."))
log_combat(user, target, "stuffed", addition="into [src]")
target.LAssailant = WEAKREF(user)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/disposal/relaymove(mob/user)
attempt_escape(user)
@@ -157,14 +157,14 @@
// leave the disposal
/obj/machinery/disposal/proc/go_out(mob/user)
user.forceMove(loc)
- update_icon()
+ update_appearance(UPDATE_ICON)
// monkeys and xenos can only pull the flush lever
/obj/machinery/disposal/attack_paw(mob/user)
if(stat & BROKEN)
return
flush = !flush
- update_icon()
+ update_appearance(UPDATE_ICON)
// eject the contents of the disposal unit
@@ -173,10 +173,11 @@
for(var/atom/movable/AM in src)
AM.forceMove(T)
AM.pipe_eject(0)
- update_icon()
+ update_appearance(UPDATE_ICON)
// update the icon & overlays to reflect mode & status
-/obj/machinery/disposal/update_icon()
+/obj/machinery/disposal/update_icon(updates=ALL)
+ . = ..()
return
/obj/machinery/disposal/proc/flush()
@@ -233,7 +234,7 @@
src.transfer_fingerprints_to(stored)
stored.anchored = FALSE
stored.density = TRUE
- stored.update_icon()
+ stored.update_appearance(UPDATE_ICON)
for(var/atom/movable/AM in src) //out, out, darned crowbar!
AM.forceMove(T)
..()
@@ -273,8 +274,8 @@
to_chat(user, span_warning("You empty the bag."))
for(var/obj/item/O in T.contents)
STR.remove_from_storage(O,src)
- T.update_icon()
- update_icon()
+ T.update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON)
else
return ..()
@@ -285,7 +286,7 @@
if(!user.canUseTopic(src, TRUE))
return
flush = !flush
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/disposal/bin/ui_state(mob/user)
return GLOB.notcontained_state
@@ -315,22 +316,22 @@
switch(action)
if("handle-0")
flush = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("handle-1")
if(!panel_open)
flush = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("pump-0")
if(pressure_charging)
pressure_charging = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("pump-1")
if(!pressure_charging)
pressure_charging = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
if("eject")
eject()
@@ -346,7 +347,7 @@
visible_message(span_notice("[AM] lands in [src] and triggers the flush system!."))
else
visible_message(span_notice("[AM] lands in [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
else
visible_message(span_notice("[AM] bounces off of [src]'s rim!"))
return ..()
@@ -357,9 +358,10 @@
..()
full_pressure = FALSE
pressure_charging = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/disposal/bin/update_icon()
+/obj/machinery/disposal/bin/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(stat & BROKEN)
pressure_charging = FALSE
@@ -435,7 +437,7 @@
if(air_contents.return_pressure() >= SEND_PRESSURE)
full_pressure = TRUE
pressure_charging = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return
/obj/machinery/disposal/bin/get_remote_view_fullscreens(mob/user)
diff --git a/code/modules/recycling/disposal/construction.dm b/code/modules/recycling/disposal/construction.dm
index 7697a7036590..92cae2b0e2b3 100644
--- a/code/modules/recycling/disposal/construction.dm
+++ b/code/modules/recycling/disposal/construction.dm
@@ -32,7 +32,7 @@
if(flip)
rotcomp.BaseRot(null,ROTATION_FLIP)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/disposalconstruct/Move()
var/old_dir = dir
@@ -40,7 +40,8 @@
setDir(old_dir) //pipes changing direction when moved is just annoying and buggy
// update iconstate and dpdir due to dir and type
-/obj/structure/disposalconstruct/update_icon()
+/obj/structure/disposalconstruct/update_icon(updates=ALL)
+ . = ..()
icon_state = initial(pipe_type.icon_state)
if(is_pipe())
icon_state = "con[icon_state]"
@@ -63,7 +64,7 @@
// change visibility status and force update of icon
/obj/structure/disposalconstruct/hide(intact)
invisibility = (intact && level==1) ? INVISIBILITY_MAXIMUM: 0 // hide if floor is intact
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/disposalconstruct/proc/get_disposal_dir()
if(!is_pipe())
@@ -94,7 +95,7 @@
if(dir in GLOB.diagonals) // Fix RPD-induced diagonal turning
setDir(turn(dir, 45))
pipe_type = initial(temp.flip_type)
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/disposalconstruct/proc/can_be_rotated(mob/user,rotation_type)
if(anchored)
@@ -147,7 +148,7 @@
density = initial(pipe_type.density)
to_chat(user, span_notice("You attach the [pipename] to the underfloor."))
I.play_tool_sound(src, 100)
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/structure/disposalconstruct/welder_act(mob/living/user, obj/item/I)
diff --git a/code/modules/religion/religion_structures.dm b/code/modules/religion/religion_structures.dm
index c69675312af7..86e92e4b4d23 100644
--- a/code/modules/religion/religion_structures.dm
+++ b/code/modules/religion/religion_structures.dm
@@ -64,11 +64,12 @@
to_chat(user, span_notice("The liquid feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards."))
user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,10) //Hurts your brain and makes you go insane
user.reagents.add_reagent(/datum/reagent/toxin/mindbreaker,10) //However, it gives rather potent healing.
- update_icon()
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), time_between_uses)
-/obj/structure/holyfountain/update_icon()
+/obj/structure/holyfountain/update_icon(updates=ALL)
+ . = ..()
if(last_process + time_between_uses > world.time)
icon_state = "fountain"
else
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 45f8e8afc293..52fab6f808f7 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -48,10 +48,11 @@ Note: Must be placed within 3 tiles of the R&D Console
linked_console.updateUsrDialog()
/obj/machinery/rnd/destructive_analyzer/proc/finish_loading()
- update_icon()
+ update_appearance(UPDATE_ICON)
reset_busy()
-/obj/machinery/rnd/destructive_analyzer/update_icon()
+/obj/machinery/rnd/destructive_analyzer/update_icon(updates=ALL)
+ . = ..()
if(loaded_item)
icon_state = "d_analyzer_l"
else
@@ -94,7 +95,7 @@ Note: Must be placed within 3 tiles of the R&D Console
else
qdel(thing)
if (!innermode)
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/machinery/rnd/destructive_analyzer/proc/user_try_decon_id(id, mob/user)
@@ -150,5 +151,5 @@ Note: Must be placed within 3 tiles of the R&D Console
return FALSE
loaded_item.forceMove(get_turf(src))
loaded_item = null
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 7d6c2fc83e70..5272c537cc39 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -563,12 +563,13 @@
addtimer(CALLBACK(src, PROC_REF(reset_exp)), resetTime)
/obj/machinery/rnd/experimentor/proc/reset_exp()
- update_icon()
+ update_appearance(UPDATE_ICON)
recentlyExperimented = FALSE
if(autoexperiment)
do_experiment()
-/obj/machinery/rnd/experimentor/update_icon()
+/obj/machinery/rnd/experimentor/update_icon(updates=ALL)
+ . = ..()
icon_state = "h_lathe"
/obj/machinery/rnd/experimentor/proc/warn_admins(user, ReactionName)
diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm
index 305f9711f963..3417d9bd7866 100644
--- a/code/modules/research/nanites/nanite_chamber.dm
+++ b/code/modules/research/nanites/nanite_chamber.dm
@@ -38,7 +38,7 @@
busy = status
busy_message = message
busy_icon_state = working_icon
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/nanite_chamber/proc/set_safety(threshold)
if(!occupant)
@@ -104,7 +104,8 @@
return
SEND_SIGNAL(occupant, COMSIG_NANITE_DELETE)
-/obj/machinery/nanite_chamber/update_icon()
+/obj/machinery/nanite_chamber/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if((stat & MAINT) || panel_open)
@@ -188,7 +189,7 @@
/obj/machinery/nanite_chamber/attackby(obj/item/I, mob/user, params)
if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant...
- update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
+ update_appearance(UPDATE_ICON)//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
return
if(default_pry_open(I))
diff --git a/code/modules/research/nanites/nanite_chamber_computer.dm b/code/modules/research/nanites/nanite_chamber_computer.dm
index f244b96d6aee..9fc62c1ce89c 100644
--- a/code/modules/research/nanites/nanite_chamber_computer.dm
+++ b/code/modules/research/nanites/nanite_chamber_computer.dm
@@ -122,7 +122,7 @@
switch(action)
if("toggle_lock")
chamber.locked = !chamber.locked
- chamber.update_icon()
+ chamber.update_appearance(UPDATE_ICON)
. = TRUE
if("eject")
eject(usr)
diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm
index ad787af0069f..835ebcfbd4ec 100644
--- a/code/modules/research/nanites/nanite_remote.dm
+++ b/code/modules/research/nanites/nanite_remote.dm
@@ -33,7 +33,7 @@
if(allowed(user))
to_chat(user, span_notice("You unlock [src]."))
locked = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(user, span_warning("Access denied."))
@@ -44,9 +44,10 @@
obj_flags |= EMAGGED
if(locked)
locked = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/nanite_remote/update_icon()
+/obj/item/nanite_remote/update_icon(updates=ALL)
+ . = ..()
. = ..()
cut_overlays()
if(obj_flags & EMAGGED)
@@ -166,7 +167,7 @@
if("lock")
if(!(obj_flags & EMAGGED))
locked = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
. = TRUE
diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm
index 5451fdd8e952..6f99898c52d8 100644
--- a/code/modules/research/nanites/public_chamber.dm
+++ b/code/modules/research/nanites/public_chamber.dm
@@ -30,7 +30,7 @@
/obj/machinery/public_nanite_chamber/proc/set_busy(status, working_icon)
busy = status
busy_icon_state = working_icon
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/public_nanite_chamber/proc/inject_nanites(mob/living/attacker)
if(stat & (NOPOWER|BROKEN))
@@ -60,7 +60,8 @@
log_combat(attacker, occupant, "injected", null, "with nanites via [src]")
occupant.AddComponent(/datum/component/nanites, 75, cloud_id)
-/obj/machinery/public_nanite_chamber/update_icon()
+/obj/machinery/public_nanite_chamber/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if((stat & MAINT) || panel_open)
@@ -161,7 +162,7 @@
/obj/machinery/public_nanite_chamber/attackby(obj/item/I, mob/user, params)
if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant...
- update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
+ update_appearance(UPDATE_ICON)//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
return
if(default_pry_open(I))
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index f304969ebc76..40c5581b44b3 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -27,7 +27,7 @@
var/obj/item/circuitboard/machine/B = new /obj/item/circuitboard/machine/rdserver(null)
B.apply_default_parts(src)
current_temp = get_env_temp()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/rnd/server/Destroy()
SSresearch.servers -= src
@@ -39,7 +39,8 @@
tot_rating += SP.rating
heat_gen /= max(1, tot_rating)
-/obj/machinery/rnd/server/update_icon()
+/obj/machinery/rnd/server/update_icon(updates=ALL)
+ . = ..()
if(panel_open)
icon_state = "server_t"
return
@@ -53,7 +54,7 @@
/obj/machinery/rnd/server/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I)
.=..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/rnd/server/power_change()
. = ..()
@@ -65,7 +66,7 @@
working = FALSE
else
working = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/rnd/server/emp_act()
. = ..()
diff --git a/code/modules/security_levels/level_interface.dm b/code/modules/security_levels/level_interface.dm
index 11fff53c633e..e89777c2c3d0 100644
--- a/code/modules/security_levels/level_interface.dm
+++ b/code/modules/security_levels/level_interface.dm
@@ -28,7 +28,8 @@
radio.independent = TRUE
radio.recalculateChannels()
-/obj/machinery/level_interface/update_icon()
+/obj/machinery/level_interface/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!is_operational())
set_light_on(FALSE)
diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm
index e83b789c568b..45fd7b7eef61 100644
--- a/code/modules/security_levels/security_levels.dm
+++ b/code/modules/security_levels/security_levels.dm
@@ -82,10 +82,10 @@ GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN)
GLOB.security_level = level
for(var/obj/machinery/firealarm/FA in GLOB.machines)
if(is_station_level(FA.z))
- FA.update_icon()
+ FA.update_appearance(UPDATE_ICON)
for(var/obj/machinery/level_interface/LI in GLOB.machines)
- LI.update_icon()
+ LI.update_appearance(UPDATE_ICON)
if(level >= SEC_LEVEL_RED)
for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines)
diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm
index 5d5f8eac070c..de8bfb333a1e 100644
--- a/code/modules/shuttle/emergency.dm
+++ b/code/modules/shuttle/emergency.dm
@@ -498,7 +498,8 @@
density = FALSE
clockwork = TRUE //it'd look weird
-/obj/machinery/computer/shuttle/pod/update_icon()
+/obj/machinery/computer/shuttle/pod/update_icon(updates=ALL)
+ . = ..()
return
/obj/machinery/computer/shuttle/pod/emag_act(mob/user)
diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm
index c82232e217a5..68cddd114902 100644
--- a/code/modules/shuttle/manipulator.dm
+++ b/code/modules/shuttle/manipulator.dm
@@ -12,11 +12,11 @@
density = TRUE
-/obj/machinery/shuttle_manipulator/update_icon()
+/obj/machinery/shuttle_manipulator/update_icon(updates=ALL)
cut_overlays()
var/mutable_appearance/hologram_projection = mutable_appearance(icon, "hologram_on")
hologram_projection.pixel_y = 22
var/mutable_appearance/hologram_ship = mutable_appearance(icon, "hologram_whiteship")
hologram_ship.pixel_y = 27
add_overlay(hologram_projection)
- add_overlay(hologram_ship)
\ No newline at end of file
+ add_overlay(hologram_ship)
diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm
index 2faa462705f4..99be3d6a1f9a 100644
--- a/code/modules/shuttle/on_move.dm
+++ b/code/modules/shuttle/on_move.dm
@@ -258,8 +258,8 @@ All ShuttleMove procs go here
A.addMember(src)
SSair.add_to_rebuild_queue(src)
else
- // atmosinit() calls update_icon(), so we don't need to call it
- update_icon()
+ // atmosinit() calls update_appearance(UPDATE_ICON), so we don't need to call it
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/pipe/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation)
. = ..()
diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm
index 61e43d69fb8c..c13af51c7769 100644
--- a/code/modules/shuttle/shuttle_rotate.dm
+++ b/code/modules/shuttle/shuttle_rotate.dm
@@ -42,7 +42,7 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate
/mob/dead/observer/shuttleRotate(rotation, params)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/************************************Structure rotate procs************************************/
@@ -59,7 +59,7 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate
var/temp = d1
d1 = d2
d2 = temp
- update_icon()
+ update_appearance(UPDATE_ICON)
//Fixes dpdir on shuttle rotation
/obj/structure/disposalpipe/shuttleRotate(rotation, params)
diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm
index 8b128e9f886f..0c50f411162c 100644
--- a/code/modules/shuttle/spaceship_navigation_beacon.dm
+++ b/code/modules/shuttle/spaceship_navigation_beacon.dm
@@ -29,7 +29,8 @@ obj/machinery/spaceship_navigation_beacon/emp_act()
return ..()
// update the icon_state
-/obj/machinery/spaceship_navigation_beacon/update_icon()
+/obj/machinery/spaceship_navigation_beacon/update_icon(updates=ALL)
+ . = ..()
if(powered())
icon_state = "core"
else
@@ -37,7 +38,7 @@ obj/machinery/spaceship_navigation_beacon/emp_act()
/obj/machinery/spaceship_navigation_beacon/power_change()
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/spaceship_navigation_beacon/multitool_act(mob/living/user, obj/item/multitool/I)
if(panel_open)
diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index d4564362a1e9..481727b56fdf 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -19,9 +19,10 @@
. = ..()
if(prob(50))
desc = "Oh no, not again."
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/power/emitter/energycannon/magical/update_icon()
+/obj/machinery/power/emitter/energycannon/magical/update_icon(updates=ALL)
+ . = ..()
if(active)
icon_state = icon_state_on
else
@@ -39,7 +40,7 @@
visible_message("\
[src] closes its eyes.")
active = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/emitter/energycannon/magical/attackby(obj/item/W, mob/user, params)
return
diff --git a/code/modules/spells/spell_types/self/summonitem.dm b/code/modules/spells/spell_types/self/summonitem.dm
index 26d960eb4038..61a2066d0f70 100644
--- a/code/modules/spells/spell_types/self/summonitem.dm
+++ b/code/modules/spells/spell_types/self/summonitem.dm
@@ -125,7 +125,7 @@
if(istype(retrieved_item, /obj/machinery/portable_atmospherics))
var/obj/machinery/portable_atmospherics/atmos_item = retrieved_item
atmos_item.disconnect()
- atmos_item.update_icon()
+ atmos_item.update_appearance(UPDATE_ICON)
// Otherwise bring the whole thing with us
item_to_retrieve = retrieved_item
diff --git a/code/modules/surgery/anesthesia_machine.dm b/code/modules/surgery/anesthesia_machine.dm
index 8fb1b92fac3b..7e2b43103905 100644
--- a/code/modules/surgery/anesthesia_machine.dm
+++ b/code/modules/surgery/anesthesia_machine.dm
@@ -20,9 +20,10 @@
if(is_roundstart)
var/obj/item/tank/T = new /obj/item/tank/internals/anesthetic(src)
attached_tank = T
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/anesthetic_machine/update_icon()
+/obj/machinery/anesthetic_machine/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(mask_out)
add_overlay("mask_off")
@@ -44,7 +45,7 @@
I.forceMove(src) // Put new tank in, set it as attached tank
visible_message("[user] inserts [I] into [src].")
attached_tank = I
- update_icon()
+ update_appearance(UPDATE_ICON)
return
. = ..()
@@ -54,7 +55,7 @@
attached_tank.forceMove(loc)
to_chat(user, "You remove the [attached_tank].")
attached_tank = null
- update_icon()
+ update_appearance(UPDATE_ICON)
if(mask_out)
retract_mask()
@@ -67,7 +68,7 @@
else
attached_mask.forceMove(src)
mask_out = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
return FALSE
@@ -87,7 +88,7 @@
target.open_internals(attached_tank, TRUE)
mask_out = TRUE
START_PROCESSING(SSmachines, src)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
to_chat(usr, "[mask_out ? "The machine is already in use!" : "The machine has no attached tank!"]")
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index c591bf219261..0b3becbd171d 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -231,7 +231,7 @@
if(C.hud_used)
var/atom/movable/screen/inventory/hand/R = C.hud_used.hand_slots["[held_index]"]
if(R)
- R.update_icon()
+ R.update_appearance(UPDATE_ICON)
if(C.gloves)
C.dropItemToGround(C.gloves, TRUE)
C.update_inv_gloves() //to remove the bloody hands overlay
@@ -249,7 +249,7 @@
if(C.hud_used)
var/atom/movable/screen/inventory/hand/L = C.hud_used.hand_slots["[held_index]"]
if(L)
- L.update_icon()
+ L.update_appearance(UPDATE_ICON)
if(C.gloves)
C.dropItemToGround(C.gloves, TRUE)
C.update_inv_gloves() //to remove the bloody hands overlay
@@ -334,7 +334,7 @@
if(C.hud_used)
var/atom/movable/screen/inventory/hand/hand = C.hud_used.hand_slots["[held_index]"]
if(hand)
- hand.update_icon()
+ hand.update_appearance(UPDATE_ICON)
C.update_inv_gloves()
if(special) //non conventional limb attachment
diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm
index 199aeffaae44..89d9c76f975f 100644
--- a/code/modules/surgery/bodyparts/parts.dm
+++ b/code/modules/surgery/bodyparts/parts.dm
@@ -124,7 +124,7 @@
if(owner.hud_used)
var/atom/movable/screen/inventory/hand/L = owner.hud_used.hand_slots["[held_index]"]
if(L)
- L.update_icon()
+ L.update_appearance(UPDATE_ICON)
/obj/item/bodypart/l_arm/monkey
icon = 'icons/mob/animal_parts.dmi'
@@ -219,7 +219,7 @@
if(owner.hud_used)
var/atom/movable/screen/inventory/hand/R = owner.hud_used.hand_slots["[held_index]"]
if(R)
- R.update_icon()
+ R.update_appearance(UPDATE_ICON)
/obj/item/bodypart/r_arm/monkey
icon = 'icons/mob/animal_parts.dmi'
diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm
index 502e94bb786b..e00d42966643 100644
--- a/code/modules/surgery/implant_removal.dm
+++ b/code/modules/surgery/implant_removal.dm
@@ -68,7 +68,7 @@
return TRUE
case.imp.implant(target, user)
case.imp = null
- case.update_icon()
+ case.update_appearance(UPDATE_ICON)
display_results(user, target, span_notice("You implant \the [I] into [target]'s [parse_zone(target_zone)]."),
"[user] implants \the [I] into [target]'s [parse_zone(target_zone)]!",
"[user] inserts something into [target]'s [parse_zone(target_zone)]!")
@@ -92,7 +92,7 @@
if(case && !case.imp)
case.imp = I
I.forceMove(case)
- case.update_icon()
+ case.update_appearance(UPDATE_ICON)
display_results(user, target, span_notice("You place [I] into [case]."),
"[user] places [I] into [case]!",
"[user] places it into [case]!")
diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm
index dad5d62f72ca..65957bfa5f47 100644
--- a/code/modules/surgery/organs/appendix.dm
+++ b/code/modules/surgery/organs/appendix.dm
@@ -10,7 +10,8 @@
now_fixed = span_info("The pain in your abdomen has subsided.")
var/inflamed
-/obj/item/organ/appendix/update_icon()
+/obj/item/organ/appendix/update_icon(updates=ALL)
+ . = ..()
if(inflamed)
icon_state = "appendixinflamed"
name = "inflamed appendix"
@@ -30,7 +31,7 @@
for(var/datum/disease/appendicitis/A in M.diseases)
A.cure()
inflamed = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
..()
/obj/item/organ/appendix/Insert(mob/living/carbon/M, special = 0)
@@ -64,7 +65,8 @@
inflamed = FALSE
M.emote("chuckle") //you really think that will stop me?
-/obj/item/organ/appendix/cybernetic/update_icon()
+/obj/item/organ/appendix/cybernetic/update_icon(updates=ALL)
+ . = ..()
icon_state = "implant-filter"
name = "cybernetic appendix"
diff --git a/code/modules/surgery/organs/augment_legs.dm b/code/modules/surgery/organs/augment_legs.dm
index 5fa0ea931ed0..94225758f760 100644
--- a/code/modules/surgery/organs/augment_legs.dm
+++ b/code/modules/surgery/organs/augment_legs.dm
@@ -11,7 +11,7 @@
/obj/item/organ/cyberimp/leg/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
SetSlotFromZone()
/obj/item/organ/cyberimp/leg/emp_act(severity)
@@ -59,7 +59,8 @@
else
CRASH("Invalid zone for [type]")
-/obj/item/organ/cyberimp/leg/update_icon()
+/obj/item/organ/cyberimp/leg/update_icon(updates=ALL)
+ . = ..()
if(zone == BODY_ZONE_R_LEG)
transform = null
else // Mirroring the icon
@@ -81,7 +82,7 @@
zone = BODY_ZONE_R_LEG
SetSlotFromZone()
to_chat(user, span_notice("You modify [src] to be installed on the [zone == BODY_ZONE_R_LEG ? "right" : "left"] leg."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/organ/cyberimp/leg/emp_act(severity)
. = ..()
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index c45e71e971ed..3eda6cc71145 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -18,7 +18,7 @@
if(ispath(holder))
holder = new holder(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
SetSlotFromZone()
items_list = contents.Copy()
@@ -33,7 +33,8 @@
return FALSE
return TRUE
-/obj/item/organ/cyberimp/arm/update_icon()
+/obj/item/organ/cyberimp/arm/update_icon(updates=ALL)
+ . = ..()
if(zone == BODY_ZONE_R_ARM)
transform = null
else // Mirroring the icon
@@ -53,7 +54,7 @@
zone = BODY_ZONE_R_ARM
if(SetSlotFromZone())
I.play_tool_sound(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You modify [src] to be installed on the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."))
else
to_chat(user, span_warning("[src] cannot be modified!"))
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index 8e8318edfab1..7ef1b2c2dfb0 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -169,9 +169,10 @@
if(!silent)
to_chat(owner, span_notice("You turn your thrusters set off."))
on = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/organ/cyberimp/chest/thrusters/update_icon()
+/obj/item/organ/cyberimp/chest/thrusters/update_icon(updates=ALL)
+ . = ..()
if(on)
icon_state = "imp_jetpack-on"
else
@@ -275,9 +276,10 @@
on = !on
if(!silent)
to_chat(owner, span_notice("You turn your spinal implant [on? "on" : "off"]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/organ/cyberimp/chest/spinalspeed/update_icon()
+/obj/item/organ/cyberimp/chest/spinalspeed/update_icon(updates=ALL)
+ . = ..()
if(on)
icon_state = "imp_spinal-on"
else
diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm
index ef4d029470ef..5c36f6392aa0 100644
--- a/code/modules/surgery/organs/autosurgeon.dm
+++ b/code/modules/surgery/organs/autosurgeon.dm
@@ -41,7 +41,7 @@
if(user.getorganslot(bastard.slot)) //NEVERMIND WE ARE NOT BALLING
bastard.zone = original_zone //MISSION ABORT
bastard.SetSlotFromZone()
- bastard.update_icon()
+ bastard.update_appearance(UPDATE_ICON)
storedorgan.Insert(user)//insert stored organ into the user
user.visible_message(span_notice("[user] presses a button on [src], and you hear a short mechanical noise."), span_notice("You feel a sharp sting as [src] plunges into your body."))
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1)
@@ -148,7 +148,7 @@
implant.zone = BODY_ZONE_R_ARM
to_chat(user, span_notice("You change the autosurgeon to target the right arm."))
implant.SetSlotFromZone()
- implant.update_icon() //If for whatever reason, the implant is removed from the autosurgeon after it's switched
+ implant.update_appearance(UPDATE_ICON) //If for whatever reason, the implant is removed from the autosurgeon after it's switched
/obj/item/autosurgeon/arm/syndicate/syndie_mantis
uses = 1
@@ -325,7 +325,7 @@
if(user.getorganslot(bastard.slot)) //NEVERMIND WE ARE NOT BALLING
bastard.zone = original_zone //MISSION ABORT
bastard.SetSlotFromZone()
- bastard.update_icon()
+ bastard.update_appearance(UPDATE_ICON)
toimplant.Insert(user)//insert stored organ into the user
user.visible_message(span_notice("[user] presses a button on [src], and you hear a short mechanical noise."), span_notice("You feel a sharp sting as [src] plunges into your body."))
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1)
diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm
index 434931c55e1b..232e54c414fd 100644
--- a/code/modules/surgery/organs/heart.dm
+++ b/code/modules/surgery/organs/heart.dm
@@ -24,9 +24,10 @@
/obj/item/organ/heart/Initialize(mapload)
. = ..()
icon_base = icon_state
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/organ/heart/update_icon()
+/obj/item/organ/heart/update_icon(updates=ALL)
+ . = ..()
if(beating)
icon_state = "[icon_base]-on"
else
@@ -51,12 +52,12 @@
/obj/item/organ/heart/proc/Stop()
beating = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/organ/heart/proc/Restart()
beating = 1
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/organ/heart/prepare_eat()
diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 4805c86b9360..1a3121e15ef8 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -39,7 +39,8 @@
. = ..()
languages_possible = languages_possible_base
-/obj/item/organ/tongue/update_icon()
+/obj/item/organ/tongue/update_icon(updates=ALL)
+ . = ..()
. = ..()
if(honked) // This tongue has a bike horn inside of it. Let's draw it
add_overlay("honked")
@@ -75,7 +76,7 @@
/obj/item/organ/tongue/Initialize(mapload) // this only exists to make sure the spawned tongue has a horn inside of it visually
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/organ/tongue/examine(mob/user)
. = ..()
diff --git a/code/modules/vehicles/motorized_wheelchair.dm b/code/modules/vehicles/motorized_wheelchair.dm
index ee690b5b5806..487649cc2d7a 100644
--- a/code/modules/vehicles/motorized_wheelchair.dm
+++ b/code/modules/vehicles/motorized_wheelchair.dm
@@ -33,7 +33,7 @@
var/mob/living/L = A
L.update_mobility()
if(power_cell)
- power_cell.update_icon()
+ power_cell.update_appearance(UPDATE_ICON)
refresh_parts()
/obj/vehicle/ridden/wheelchair/motorized/obj_destruction(damage_flag)
@@ -75,7 +75,7 @@
/obj/vehicle/ridden/wheelchair/motorized/attack_hand(mob/living/user)
if(power_cell && panel_open)
- power_cell.update_icon()
+ power_cell.update_appearance(UPDATE_ICON)
user.put_in_hands(power_cell)
to_chat(user, span_notice("You remove the [power_cell] from [src]."))
power_cell = null
diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm
index e174ffc33cb4..ccb053ab2df5 100644
--- a/code/modules/vehicles/pimpin_ride.dm
+++ b/code/modules/vehicles/pimpin_ride.dm
@@ -9,7 +9,7 @@
/obj/vehicle/ridden/janicart/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 7), TEXT_EAST = list(-12, 7), TEXT_WEST = list( 12, 7)))
@@ -42,7 +42,7 @@
return
to_chat(user, span_notice("You hook the trashbag onto [src]."))
mybag = I
- update_icon()
+ update_appearance(UPDATE_ICON)
else if(istype(I, /obj/item/janiupgrade))
if(floorbuffer)
to_chat(user, span_warning("[src] already has a floor buffer!"))
@@ -51,11 +51,12 @@
qdel(I)
to_chat(user, span_notice("You upgrade [src] with the floor buffer."))
AddElement(/datum/element/cleaning)
- update_icon()
+ update_appearance(UPDATE_ICON)
else
return ..()
-/obj/vehicle/ridden/janicart/update_icon()
+/obj/vehicle/ridden/janicart/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(mybag)
add_overlay("cart_garbage")
@@ -70,7 +71,7 @@
mybag.forceMove(get_turf(user))
user.put_in_hands(mybag)
mybag = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/vehicle/ridden/janicart/upgraded
floorbuffer = TRUE
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index ae1970316efb..b73d03236ad2 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -265,7 +265,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
else
..()
-/obj/machinery/vending/update_icon()
+/obj/machinery/vending/update_icon(updates=ALL)
+ . = ..()
if(stat & BROKEN)
icon_state = "[initial(icon_state)]-broken"
else
@@ -973,7 +974,7 @@ GLOBAL_LIST_EMPTY(vending_products)
else
stat |= NOPOWER
- update_icon()
+ update_appearance(UPDATE_ICON)
//Somebody cut an important wire and now we're following a new definition of "pitch."
/**
diff --git a/tgui/docs/tutorial-and-examples.md b/tgui/docs/tutorial-and-examples.md
index 3dba803c959a..fb553fc07c71 100644
--- a/tgui/docs/tutorial-and-examples.md
+++ b/tgui/docs/tutorial-and-examples.md
@@ -84,7 +84,7 @@ input. The input's `action` and `params` are passed to the proc.
return FALSE
color = new_color
. = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
```
The `..()` (parent call) is very important here, as it is how we check that the
@@ -312,7 +312,7 @@ upon code review):
// A demo of proper input sanitation.
var = CLAMP(newvar, min_val, max_val)
. = TRUE
- update_icon() // Not applicable to all objects.
+ update_appearance(UPDATE_ICON) // Not applicable to all objects.
```
And the template:
diff --git a/yogstation/code/controllers/subsystem/bluespace_locker.dm b/yogstation/code/controllers/subsystem/bluespace_locker.dm
index e54b407ef0c0..9469d82ed2b3 100644
--- a/yogstation/code/controllers/subsystem/bluespace_locker.dm
+++ b/yogstation/code/controllers/subsystem/bluespace_locker.dm
@@ -65,8 +65,8 @@ SUBSYSTEM_DEF(bluespace_locker)
internal_locker.contents += external_locker.contents
internal_locker.open()
internal_locker.dump_contents()
- internal_locker.update_icon()
- external_locker.update_icon()
+ internal_locker.update_appearance(UPDATE_ICON)
+ external_locker.update_appearance(UPDATE_ICON)
/datum/controller/subsystem/bluespace_locker/proc/redistribute_locker()
if(!internal_locker)
diff --git a/yogstation/code/controllers/subsystem/yogs.dm b/yogstation/code/controllers/subsystem/yogs.dm
index 2c2903a81988..7abe1b406fc2 100644
--- a/yogstation/code/controllers/subsystem/yogs.dm
+++ b/yogstation/code/controllers/subsystem/yogs.dm
@@ -125,7 +125,7 @@ SUBSYSTEM_DEF(Yogs)
for(var/datum/department_goal/d in listOfGoals[account])
P.info += d.get_name()
P.info += "
"
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
else
var/obj/item/paper/P = new /obj/item/paper(C.loc)
@@ -135,7 +135,7 @@ SUBSYSTEM_DEF(Yogs)
if(d.account == account)
P.info += d.get_name()
P.info += ""
- P.update_icon()
+ P.update_appearance(UPDATE_ICON)
for(var/path in subtypesof(/datum/corporation))
diff --git a/yogstation/code/game/gamemodes/gangs/dominator.dm b/yogstation/code/game/gamemodes/gangs/dominator.dm
index 142aba7a87d0..dda2eb53d5d8 100644
--- a/yogstation/code/game/gamemodes/gangs/dominator.dm
+++ b/yogstation/code/game/gamemodes/gangs/dominator.dm
@@ -28,7 +28,7 @@
spark_system = new
spark_system.set_up(5, TRUE, src)
countdown = new(src)
- update_icon()
+ update_appearance(UPDATE_ICON)
.=..()
/obj/machinery/dominator/Destroy()
@@ -54,7 +54,8 @@
/obj/machinery/dominator/tesla_act()
qdel(src)
-/obj/machinery/dominator/update_icon()
+/obj/machinery/dominator/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(!(stat & BROKEN))
icon_state = "dominator-active"
@@ -137,7 +138,7 @@
spark_system.start()
else if(!(stat & BROKEN))
spark_system.start()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/dominator/obj_break(damage_flag)
@@ -196,7 +197,7 @@
SSshuttle.registerHostileEnvironment(src)
name = "[gang.name] Gang [name]"
operating = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
countdown.color = gang.color
countdown.start()
@@ -244,7 +245,7 @@
set_light(0)
operating = FALSE
stat |= BROKEN
- update_icon()
+ update_appearance(UPDATE_ICON)
STOP_PROCESSING(SSmachines, src)
if(nukedisk)
nukedisk.forceMove(drop_location())
diff --git a/yogstation/code/game/gamemodes/gangs/gangtool.dm b/yogstation/code/game/gamemodes/gangs/gangtool.dm
index f26843e72475..b56084988d8c 100644
--- a/yogstation/code/game/gamemodes/gangs/gangtool.dm
+++ b/yogstation/code/game/gamemodes/gangs/gangtool.dm
@@ -21,7 +21,7 @@
var/list/tags = list()
/obj/item/gangtool/Initialize(mapload)
- update_icon()
+ update_appearance(UPDATE_ICON)
if(buyable_items.len)
return ..()
for(var/i in subtypesof(/datum/gang_item))
@@ -138,7 +138,8 @@
recall(usr)
attack_self(usr)
-/obj/item/gangtool/update_icon()
+/obj/item/gangtool/update_icon(updates=ALL)
+ . = ..()
overlays.Cut()
var/image/I = new(icon, "[icon_state]-overlay")
if(gang)
@@ -174,7 +175,7 @@
if(G)
gang = G.gang
gang.gangtools += src
- update_icon()
+ update_appearance(UPDATE_ICON)
if(!(user.mind in gang.leaders) && promotable)
G.promote()
free_pen = TRUE
diff --git a/yogstation/code/game/mecha/makeshift/lockermech.dm b/yogstation/code/game/mecha/makeshift/lockermech.dm
index 2bd3abe045a4..cc2d63696f9c 100644
--- a/yogstation/code/game/mecha/makeshift/lockermech.dm
+++ b/yogstation/code/game/mecha/makeshift/lockermech.dm
@@ -26,11 +26,11 @@
/obj/mecha/working/makeshift/go_out()
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/mecha/working/makeshift/moved_inside(mob/living/carbon/human/H)
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/mecha/working/makeshift/Exit(atom/movable/O)
diff --git a/yogstation/code/game/objects/items/brace.dm b/yogstation/code/game/objects/items/brace.dm
index b8ec8cbadaa4..d937c0376b74 100644
--- a/yogstation/code/game/objects/items/brace.dm
+++ b/yogstation/code/game/objects/items/brace.dm
@@ -23,7 +23,8 @@
var/obj/machinery/door/airlock/placed_on
var/cover_open = FALSE
-/obj/structure/deployed_brace/update_icon()
+/obj/structure/deployed_brace/update_icon(updates=ALL)
+ . = ..()
..()
cut_overlays()
if(cover_open)
@@ -53,7 +54,7 @@
cover_open = !cover_open
tool.play_tool_sound(src)
to_chat(user, span_notice("You [cover_open ? "open" : "close"] the cover."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/deployed_brace/wrench_act(mob/user, obj/item/tool)
if(get_dist(user, placed_on) > 1)
diff --git a/yogstation/code/game/objects/items/crayons.dm b/yogstation/code/game/objects/items/crayons.dm
index ddee748e0504..cd9fa6acb177 100644
--- a/yogstation/code/game/objects/items/crayons.dm
+++ b/yogstation/code/game/objects/items/crayons.dm
@@ -88,7 +88,7 @@
if(G)
gang = G
paint_color = G.color
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/toy/crayon/spraycan/gang/examine(mob/user)
. = ..()
diff --git a/yogstation/code/game/objects/items/fishing/rods.dm b/yogstation/code/game/objects/items/fishing/rods.dm
index d007f0eab550..27269e1a76a9 100644
--- a/yogstation/code/game/objects/items/fishing/rods.dm
+++ b/yogstation/code/game/objects/items/fishing/rods.dm
@@ -206,10 +206,11 @@
opened = !opened
w_class = opened ? WEIGHT_CLASS_BULKY : WEIGHT_CLASS_SMALL
playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE)
- update_icon()
+ update_appearance(UPDATE_ICON)
user.regenerate_icons()
-/obj/item/twohanded/fishingrod/collapsible/update_icon()
+/obj/item/twohanded/fishingrod/collapsible/update_icon(updates=ALL)
+ . = ..()
item_state = opened ? "fishing_rod" : ""
icon_state = "[rod_icon_state][opened ? "" : "_c"]"
diff --git a/yogstation/code/game/objects/items/holotool/holotool.dm b/yogstation/code/game/objects/items/holotool/holotool.dm
index f85969bcfaf0..586c9d8c4cf9 100644
--- a/yogstation/code/game/objects/items/holotool/holotool.dm
+++ b/yogstation/code/game/objects/items/holotool/holotool.dm
@@ -68,7 +68,7 @@
if(!C || QDELETED(src))
return
current_color = C
- update_icon()
+ update_appearance(UPDATE_ICON)
action.build_all_button_icons()
user.regenerate_icons()
@@ -80,7 +80,7 @@
current_tool = mode
current_tool.on_set(src)
playsound(loc, 'yogstation/sound/items/holotool.ogg', get_clamped_volume(), 1, -1)
- update_icon()
+ update_appearance(UPDATE_ICON)
user.regenerate_icons()
@@ -101,7 +101,8 @@
else
qdel(M)
-/obj/item/holotool/update_icon()
+/obj/item/holotool/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(current_tool)
var/mutable_appearance/holo_item = mutable_appearance(icon, current_tool.name)
diff --git a/yogstation/code/game/objects/items/premadepapers.dm b/yogstation/code/game/objects/items/premadepapers.dm
index a8add201328f..564b23bbb402 100644
--- a/yogstation/code/game/objects/items/premadepapers.dm
+++ b/yogstation/code/game/objects/items/premadepapers.dm
@@ -24,7 +24,7 @@
written += new/datum/langtext("
Reason: ",/datum/language/common)
written += ""
written += new/datum/langtext("
Stamp Below if Approved",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
@@ -57,7 +57,7 @@
written += new/datum/langtext("
Administrator Notes: ",/datum/language/common)
written += ""
written += new/datum/langtext("
Stamp Below if Accepted:",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -106,7 +106,7 @@
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("Signed: ",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -173,7 +173,7 @@
written += ""
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("Reporting Officer's Signature:",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -207,7 +207,7 @@
written += ""
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("Stamp Below if Approved",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
@@ -243,7 +243,7 @@
written += new/datum/langtext("Signed, ",/datum/language/common)
written += ""
written += new/datum/langtext("
Roboticist Notes:",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -274,7 +274,7 @@
written += ""
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("Stamp Below if Approved",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -312,7 +312,7 @@
written += ""
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("Stamp Below if Approved",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -340,7 +340,7 @@
written += ""
written += new/datum/langtext("
",/datum/language/common)
written += new/datum/langtext("Stamp Below if Approved",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
//RD upgrade form not included because from personal experience if you don't upgrade stuff you will be lynched
@@ -372,7 +372,7 @@
written += new/datum/langtext("
Signed, ",/datum/language/common)
written += ""
written += new/datum/langtext("
Stamp Below if Approved",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -403,7 +403,7 @@
written += ""
written += new/datum/langtext("
Stamp:",/datum/language/common)
written += new/datum/langtext("",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -476,7 +476,7 @@
written += ""
written += new/datum/langtext(", hereby acknowledge that I have answered this test's questions to the best of my ability, and acknowledge that if I fail this test, a penalty to be determined may be applied to me.
",/datum/language/common)
written += new/datum/langtext("Test Administrator: ",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
*
@@ -501,7 +501,7 @@
written += new/datum/langtext("4. Who is the CEO of Nanotrasen? Answer below. Theo Deimi
",/datum/language/common)
written += new/datum/langtext("5. From the following letters, Z V B D M K T P H S Y C, which 2, in order, come last in the alphabet? YZ
",/datum/language/common)
written += new/datum/langtext("TOP SECRET - Command Eyes Only",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
// How to perform autopsy
@@ -514,7 +514,7 @@
written += new/datum/langtext("Step 1: Apply drapes to the chest and select Autopsy.
",/datum/language/common)
written += new/datum/langtext("Step 2: Incise the chest with a scalpel.
",/datum/language/common)
written += new/datum/langtext("Step 3: While holding a forensic scanner in your off-hand, perform the autopsy using the scalpel again.
",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
//academy ruin papers
@@ -551,7 +551,7 @@
written += new/datum/langtext("To: Recruiter Billy the Lame
",/datum/language/common)
written += new/datum/langtext("Bill, where the heck did you find this guy? Are you sure he's wizard material..? He st--te-s a-lot. He's a -tink-ng l-zard--
",/datum/language/common)
written += new/datum/langtext("The rest of the paper is charred...",/datum/language/common)
- update_icon()
+ update_appearance(UPDATE_ICON)
@@ -606,7 +606,7 @@
new /obj/item/paper/paperwork/incident_report(src)
new /obj/item/paper/paperwork/literacytest(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the Head of Security's clipboard.
@@ -633,7 +633,7 @@
for (var/i in 1 to 10)
new /obj/item/paper/paperwork/sec_incident_report(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the Captain's clipboard.
@@ -658,7 +658,7 @@
new /obj/item/paper/paperwork/literacytest(src)
new /obj/item/paper/paperwork/literacytest/answers(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the Head of Personnels clipboard.
@@ -685,7 +685,7 @@
new /obj/item/paper/paperwork/literacytest(src)
new /obj/item/paper/paperwork/literacytest/answers(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the Warden's clipboard.
@@ -709,7 +709,7 @@
for (var/i in 1 to 10)
new /obj/item/paper/paperwork/sec_incident_report(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the Chief Engineer's clipboard.
@@ -732,7 +732,7 @@
new /obj/item/paper/paperwork/hopaccessrequestform(src)
new /obj/item/paper/paperwork/incident_report(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the Chief Medical Officer's clipboard.
@@ -755,7 +755,7 @@
new /obj/item/paper/paperwork/hopaccessrequestform(src)
new /obj/item/paper/paperwork/incident_report(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes security officer clipboards.
@@ -771,7 +771,7 @@
for (var/i in 1 to 10)
new /obj/item/paper/paperwork/incident_report(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
/**
* Initializes the admin variant clipboard.
@@ -808,5 +808,5 @@
new /obj/item/paper/paperwork/literacytest(src)
new /obj/item/paper/paperwork/literacytest/answers(src)
toppaper = contents[contents.len]
- update_icon()
+ update_appearance(UPDATE_ICON)
//turdis bad
diff --git a/yogstation/code/game/objects/items/sharpener.dm b/yogstation/code/game/objects/items/sharpener.dm
index e30c0094ec3b..21b29989213c 100644
--- a/yogstation/code/game/objects/items/sharpener.dm
+++ b/yogstation/code/game/objects/items/sharpener.dm
@@ -1,2 +1,2 @@
-/obj/item/sharpener/update_icon()
+/obj/item/sharpener/update_icon(updates=ALL)
icon_state = "[initial(icon_state)]_used"
diff --git a/yogstation/code/game/objects/items/tools.dm b/yogstation/code/game/objects/items/tools.dm
index cde82f097b5b..1f26e2a8aa74 100644
--- a/yogstation/code/game/objects/items/tools.dm
+++ b/yogstation/code/game/objects/items/tools.dm
@@ -66,7 +66,7 @@
to_chat(user,span_notice("Your servos whirr as the cutting head reconfigures into a prying head."))
else
to_chat(user, span_notice("You attach the pry jaws to [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/jawsoflife/proc/transform_cutters(mob/user)
attack_verb = list("pinched", "nipped")
@@ -80,7 +80,7 @@
to_chat(user,span_notice("Your servos whirr as the prying head reconfigures into a cutting head."))
else
to_chat(user, span_notice("You attach the cutting jaws to [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
//better handdrill
/obj/item/handdrill
@@ -138,7 +138,7 @@
to_chat(user,span_notice("Your servos whirr as the drill reconfigures into bolt mode."))
else
to_chat(user, span_notice("You attach the bolt driver bit to [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/handdrill/proc/transform_screwdriver(mob/user)
desc = "A simple powered hand drill. It's fitted with a screw bit."
@@ -150,7 +150,7 @@
to_chat(user,span_notice("Your servos whirr as the drill reconfigures into screw mode."))
else
to_chat(user, span_notice("You attach the screw driver bit to [src]."))
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/jawsoflife/jimmy
name = "airlock jimmy"
diff --git a/yogstation/code/game/objects/structures/fireaxe.dm b/yogstation/code/game/objects/structures/fireaxe.dm
index 2ceb921d75bf..183eb87d48b8 100644
--- a/yogstation/code/game/objects/structures/fireaxe.dm
+++ b/yogstation/code/game/objects/structures/fireaxe.dm
@@ -9,7 +9,7 @@
/obj/structure/fireaxecabinet/Initialize(mapload)//<-- mirrored/overwritten proc
. = ..()
fireaxe = new
- update_icon()
+ update_appearance(UPDATE_ICON)
//Sets up a spark system
spark_system = new /datum/effect_system/spark_spread
spark_system.set_up(2, 1, src)
@@ -86,7 +86,7 @@
audible_message("You hear an audible clunk as the [name]'s bolt [locked ? "retracts" : "locks into place"].")
playsound(loc, "sound/machines/locktoggle.ogg", 30, 1, -3)
locked = !locked
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/structure/fireaxecabinet/emag_act(mob/user)
//this allows you to emag the fireaxe cabinet, unlocking it immediately.
@@ -105,5 +105,5 @@
playsound(loc, "sound/machines/locktoggle.ogg", 30, 1, -3)
locked = 0
audible_message("You hear an audible clunk as the [name]'s bolt retracts.")
- update_icon()
+ update_appearance(UPDATE_ICON)
//Fireaxe Cabinet is now permanently unlocked.
diff --git a/yogstation/code/game/objects/structures/toilet_bong.dm b/yogstation/code/game/objects/structures/toilet_bong.dm
index 6236ddc89caf..1b8d024b302b 100644
--- a/yogstation/code/game/objects/structures/toilet_bong.dm
+++ b/yogstation/code/game/objects/structures/toilet_bong.dm
@@ -20,7 +20,8 @@
weed_overlay = mutable_appearance('yogstation/icons/obj/watercloset.dmi', "weed")
START_PROCESSING(SSobj, src)
-/obj/structure/toilet_bong/update_icon()
+/obj/structure/toilet_bong/update_icon(updates=ALL)
+ . = ..()
. = ..()
cut_overlays()
if (LAZYLEN(contents))
@@ -44,7 +45,7 @@
smoke.set_up(smoke_spread, location = location, carry = boof.reagents, silent = TRUE)
smoke.start()
qdel(boof)
- update_icon()
+ update_appearance(UPDATE_ICON)
// It's a bong powered by a **flamethrower**, it's definitely an open flame!!
/obj/structure/toilet_bong/process()
diff --git a/yogstation/code/modules/antagonists/darkspawn/darkspawn_objects/umbral_tendrils.dm b/yogstation/code/modules/antagonists/darkspawn/darkspawn_objects/umbral_tendrils.dm
index 1c55ec101a61..a4f15945230b 100644
--- a/yogstation/code/modules/antagonists/darkspawn/darkspawn_objects/umbral_tendrils.dm
+++ b/yogstation/code/modules/antagonists/darkspawn/darkspawn_objects/umbral_tendrils.dm
@@ -82,7 +82,7 @@
if(istype(O, /obj/item/pda))
var/obj/item/pda/PDA = O
PDA.set_light_on(FALSE)
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
visible_message(span_danger("The light in [PDA] shorts out!"))
else
visible_message(span_danger("[O] is disintegrated by [src]!"))
diff --git a/yogstation/code/modules/antagonists/shadowling/shadowling_abilities.dm b/yogstation/code/modules/antagonists/shadowling/shadowling_abilities.dm
index bd7bf2d88a81..fa3c739017ff 100644
--- a/yogstation/code/modules/antagonists/shadowling/shadowling_abilities.dm
+++ b/yogstation/code/modules/antagonists/shadowling/shadowling_abilities.dm
@@ -521,7 +521,7 @@
target_apc.cell?.charge = 0 //Sent to the shadow realm
target_apc.chargemode = 0 //Won't recharge either until an engineer hits the button
target_apc.charging = 0
- target_apc.update_icon()
+ target_apc.update_appearance(UPDATE_ICON)
return TRUE
diff --git a/yogstation/code/modules/antagonists/slaughter/slaughter.dm b/yogstation/code/modules/antagonists/slaughter/slaughter.dm
index 561a30f50e9d..fed512a52752 100644
--- a/yogstation/code/modules/antagonists/slaughter/slaughter.dm
+++ b/yogstation/code/modules/antagonists/slaughter/slaughter.dm
@@ -133,7 +133,8 @@
icon_state = "demon_heart-on"
decay_factor = 0
-/obj/item/organ/heart/demon/update_icon()
+/obj/item/organ/heart/demon/update_icon(updates=ALL)
+ . = ..()
return //always beating visually
/obj/item/organ/heart/demon/attack(mob/M, mob/living/carbon/user, obj/target)
diff --git a/yogstation/code/modules/assembly/signaler.dm b/yogstation/code/modules/assembly/signaler.dm
index 951b9fbb2e83..641a92617de9 100644
--- a/yogstation/code/modules/assembly/signaler.dm
+++ b/yogstation/code/modules/assembly/signaler.dm
@@ -5,9 +5,10 @@
/obj/item/assembly/signaler/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/item/assembly/signaler/update_icon()
+/obj/item/assembly/signaler/update_icon(updates=ALL)
+ . = ..()
if(label_color)
cut_overlays()
attached_overlays = list()
diff --git a/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm b/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm
index 7e9daa9c63f1..b6d6712def5c 100644
--- a/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm
+++ b/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm
@@ -47,7 +47,7 @@ GLOBAL_LIST_EMPTY(bluespace_pipe_networks)
return ..() + GLOB.bluespace_pipe_networks[bluespace_network_name] - src
/obj/machinery/atmospherics/pipe/bluespace/hide()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/pipe/bluespace/update_icon(showpipe)
underlays.Cut()
@@ -83,4 +83,4 @@ GLOBAL_LIST_EMPTY(bluespace_pipe_networks)
if(color)
. = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir, color)
else
- . = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir)
\ No newline at end of file
+ . = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', state, dir)
diff --git a/yogstation/code/modules/clothing/head/helmet.dm b/yogstation/code/modules/clothing/head/helmet.dm
index ffd7174204d6..cd6a8274bdde 100644
--- a/yogstation/code/modules/clothing/head/helmet.dm
+++ b/yogstation/code/modules/clothing/head/helmet.dm
@@ -5,7 +5,8 @@
. = ..()
initial_state = "[initial(icon_state)]"
-/obj/item/clothing/head/helmet/update_icon()
+/obj/item/clothing/head/helmet/update_icon(updates=ALL)
+ . = ..()
var/state = "[initial_state]"
if(attached_light)
if(attached_light.on)
diff --git a/yogstation/code/modules/clothing/suits/nerd.dm b/yogstation/code/modules/clothing/suits/nerd.dm
index 94abc9883b90..a1f1a94c230b 100644
--- a/yogstation/code/modules/clothing/suits/nerd.dm
+++ b/yogstation/code/modules/clothing/suits/nerd.dm
@@ -57,7 +57,7 @@
. = ..()
GC = new(src)
GC.scanning = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/suit/armor/nerd/Destroy()
QDEL_NULL(GC)
diff --git a/yogstation/code/modules/guardian/abilities/major/healing.dm b/yogstation/code/modules/guardian/abilities/major/healing.dm
index d471a2b1fe89..1683af8a48fb 100644
--- a/yogstation/code/modules/guardian/abilities/major/healing.dm
+++ b/yogstation/code/modules/guardian/abilities/major/healing.dm
@@ -45,7 +45,7 @@
guardian.do_attack_animation(O)
O.obj_integrity = min(O.obj_integrity + (O.max_integrity * 0.1), O.max_integrity)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(O))
- O.update_icon()
+ O.update_appearance(UPDATE_ICON)
if (guardian.namedatum)
H.color = guardian.namedatum.color
guardian.changeNext_move(CLICK_CD_MELEE)
diff --git a/yogstation/code/modules/jobs/job_types/_job.dm b/yogstation/code/modules/jobs/job_types/_job.dm
index 6f74b51930a9..266bafbc687f 100644
--- a/yogstation/code/modules/jobs/job_types/_job.dm
+++ b/yogstation/code/modules/jobs/job_types/_job.dm
@@ -49,18 +49,18 @@
var/obj/item/modular_computer/tablet/pda/PDA = locate(/obj/item/modular_computer/tablet/pda) in H.get_all_contents()
if(PDA)
PDA.finish_color = "glass"
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
if(PDA_COLOR_PIPBOY)
var/obj/item/modular_computer/tablet/pda/PDA = locate(/obj/item/modular_computer/tablet/pda) in H.get_all_contents()
if(PDA)
PDA.finish_color = "pipboy"
PDA.slot_flags |= ITEM_SLOT_GLOVES
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
if(PDA_COLOR_RAINBOW)
var/obj/item/modular_computer/tablet/pda/PDA = locate(/obj/item/modular_computer/tablet/pda) in H.get_all_contents()
if(PDA)
PDA.finish_color = "rainbow"
- PDA.update_icon()
+ PDA.update_appearance(UPDATE_ICON)
/datum/job/proc/give_cape(mob/living/H, mob/M)
var/client/C = M.client
diff --git a/yogstation/code/modules/mob/living/brain/MMI.dm b/yogstation/code/modules/mob/living/brain/MMI.dm
index 938d33afd02c..6fc408eca8df 100644
--- a/yogstation/code/modules/mob/living/brain/MMI.dm
+++ b/yogstation/code/modules/mob/living/brain/MMI.dm
@@ -7,7 +7,7 @@
brain = newbrain
name = "[initial(name)]: [brain.real_name]"
to_chat(brainmob, "(If your brain was removed after your death you don't remember how you died, or who killed you. See rule 1.6.") //yogs
- update_icon()
+ update_appearance(UPDATE_ICON)
return
.=..()
diff --git a/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm b/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm
index c99a33a04e1d..2bbcdae0b009 100644
--- a/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm
+++ b/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm
@@ -33,7 +33,7 @@
if(random_color)
var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
- update_icon()
+ update_appearance(UPDATE_ICON)
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8, MOB_LAYER), TEXT_SOUTH = list(0, 8, MOB_LAYER), TEXT_EAST = list(0, 8, MOB_LAYER), TEXT_WEST = list( 0, 8, MOB_LAYER)))
D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
@@ -44,7 +44,7 @@
/mob/living/simple_animal/chocobo/death(gibbed)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
for(var/mob/living/N in buckled_mobs)
unbuckle_mob(N)
can_buckle = FALSE
@@ -53,9 +53,10 @@
. = ..()
if(.)
can_buckle = initial(can_buckle)
- update_icon()
+ update_appearance(UPDATE_ICON)
-/mob/living/simple_animal/chocobo/update_icon()
+/mob/living/simple_animal/chocobo/update_icon(updates=ALL)
+ . = ..()
if(!random_color) //icon override
return
cut_overlays()
diff --git a/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm b/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm
index 8957c9d389fe..eec57a5a77de 100644
--- a/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm
+++ b/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm
@@ -105,7 +105,7 @@ Difficulty: Insanely Hard
/mob/living/simple_animal/hostile/retaliate/goat/king/phase2/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/hostile/retaliate/goat/king/Found(atom/A)
if(isliving(A))
@@ -251,11 +251,12 @@ Difficulty: Insanely Hard
player.music_path = /datum/music/sourced/battle/king_goat_2
player.do_range_check(0)
stun_chance = 10
- update_icon()
+ update_appearance(UPDATE_ICON)
visible_message(span_cult("\The [src]' wounds close with a flash, and when he emerges, he's even larger than before!"))
-/mob/living/simple_animal/hostile/retaliate/goat/king/phase2/update_icon()
+/mob/living/simple_animal/hostile/retaliate/goat/king/phase2/update_icon(updates=ALL)
+ . = ..()
var/matrix/M = new
if(phase3)
icon_state = "king_goat3"
diff --git a/yogstation/code/modules/power/singularity/particle_accelerator/particle_control.dm b/yogstation/code/modules/power/singularity/particle_accelerator/particle_control.dm
index 0e252afdaf75..554048023299 100644
--- a/yogstation/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/yogstation/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -16,4 +16,4 @@
if(!active)
toggle_power()
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/yogstation/code/modules/power/validhunter.dm b/yogstation/code/modules/power/validhunter.dm
index 63262bd57139..82fdb2b7a994 100644
--- a/yogstation/code/modules/power/validhunter.dm
+++ b/yogstation/code/modules/power/validhunter.dm
@@ -15,7 +15,8 @@
connect_to_network()
return ..()
-/obj/machinery/power/validhunter_engine/update_icon()
+/obj/machinery/power/validhunter_engine/update_icon(updates=ALL)
+ . = ..()
if(operating)
icon_state = "throw_me_in_the_trash_and_feed_my_remains_to_the_devil_operating"
else
@@ -74,7 +75,7 @@
/obj/machinery/power/validhunter_engine/proc/process_mob(mob/living/L, mob/user)
operating = TRUE
- update_icon()
+ update_appearance(UPDATE_ICON)
playsound(src.loc, 'sound/machines/terminal_on.ogg', 50, 1)
L.forceMove(src)
@@ -159,7 +160,7 @@
pixel_x = initial(pixel_x) //return to its spot after shaking
operating = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/machinery/power/validhunter_engine/proc/fake_gib(mob/living/L)
playsound(src.loc, 'sound/machines/terminal_off.ogg', 50, 1)
@@ -167,5 +168,5 @@
dropContents()
operating = FALSE
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm b/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm
index 9aaa8b623031..5180df57aa3c 100644
--- a/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm
+++ b/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm
@@ -13,7 +13,8 @@
casing_ejector = FALSE
internal_magazine = TRUE
-/obj/item/gun/ballistic/speargun/update_icon()
+/obj/item/gun/ballistic/speargun/update_icon(updates=ALL)
+ . = ..()
return
/obj/item/gun/ballistic/speargun/attack_self()
diff --git a/yogstation/code/modules/reagents/reagent_containers/hypospray.dm b/yogstation/code/modules/reagents/reagent_containers/hypospray.dm
index 64698a74717a..b79f04419b6a 100644
--- a/yogstation/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/yogstation/code/modules/reagents/reagent_containers/hypospray.dm
@@ -23,7 +23,8 @@
amount_per_transfer_from_this = 25
list_reagents = list(/datum/reagent/medicine/stimulants = 75)
-/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/update_icon()
+/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/update_icon(updates=ALL)
+ . = ..()
if(reagents.total_volume > 25)
icon_state = initial(icon_state)
else if(reagents.total_volume)
@@ -45,7 +46,8 @@
var/enlightenment = pick(strings(REDPILL_FILE, "redpill_questions"))
to_chat(M, span_notice("[enlightenment]"))
-/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/redpill/update_icon()
+/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/redpill/update_icon(updates=ALL)
+ . = ..()
if(reagents.total_volume > 25)
icon_state = initial(icon_state)
else if(reagents.total_volume)
diff --git a/yogstation/code/modules/recycling/disposal/pipe_sorting.dm b/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
index f62799bbc453..1ebe6292cacb 100644
--- a/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
+++ b/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
@@ -27,7 +27,8 @@
if(!wires.is_cut(WIRE_SORT_SCAN))
sort_scan = TRUE
-/obj/structure/disposalpipe/sorting/update_icon()
+/obj/structure/disposalpipe/sorting/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
. = ..()
if(panel_open)
@@ -37,7 +38,7 @@
panel_open = !panel_open
I.play_tool_sound(src)
to_chat(user, span_notice("You [panel_open ? "open" : "close"] the wire panel."))
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/structure/disposalpipe/sorting/attackby(obj/item/I, mob/user)
diff --git a/yogstation/code/modules/spacepods/construction.dm b/yogstation/code/modules/spacepods/construction.dm
index 52b704d195ca..02a6e2a13949 100644
--- a/yogstation/code/modules/spacepods/construction.dm
+++ b/yogstation/code/modules/spacepods/construction.dm
@@ -200,4 +200,4 @@
user.visible_message("[user] welds [src]'s armor.", "You weld [src]'s armor.")
// finally this took too fucking long
// somehow this takes up 40 lines less code than the original, code-less version. And it actually works
- update_icon()
+ update_appearance(UPDATE_ICON)
diff --git a/yogstation/code/modules/spacepods/equipment.dm b/yogstation/code/modules/spacepods/equipment.dm
index aec8c6517d61..54454085cea5 100644
--- a/yogstation/code/modules/spacepods/equipment.dm
+++ b/yogstation/code/modules/spacepods/equipment.dm
@@ -38,7 +38,7 @@
/obj/item/spacepod_equipment/weaponry/on_install(obj/spacepod/SP)
. = ..()
SP.weapon = src
- SP.update_icon()
+ SP.update_appearance(UPDATE_ICON)
/obj/item/spacepod_equipment/weaponry/on_uninstall()
. = ..()
diff --git a/yogstation/code/modules/spacepods/physics.dm b/yogstation/code/modules/spacepods/physics.dm
index 4eb92c5b40c5..5ba97f85e2d3 100644
--- a/yogstation/code/modules/spacepods/physics.dm
+++ b/yogstation/code/modules/spacepods/physics.dm
@@ -207,7 +207,7 @@
C.pixel_y = last_offset_y*32
animate(C, pixel_x = offset_x*32, pixel_y = offset_y*32, time = time SECONDS, flags=ANIMATION_END_NOW)
user_thrust_dir = 0
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/spacepod/Bumped(atom/movable/A)
if(A.dir & NORTH)
diff --git a/yogstation/code/modules/spacepods/spacepod.dm b/yogstation/code/modules/spacepods/spacepod.dm
index 769a4112cc45..512df97a4d49 100644
--- a/yogstation/code/modules/spacepods/spacepod.dm
+++ b/yogstation/code/modules/spacepods/spacepod.dm
@@ -168,12 +168,12 @@ GLOBAL_LIST_INIT(spacepods_list, list())
if(W.use_tool(src, user, 50, amount=3, volume = 50))
if(repairing)
obj_integrity = min(max_integrity, obj_integrity + 10)
- update_icon()
+ update_appearance(UPDATE_ICON)
to_chat(user, span_notice("You mend some [pick("dents","bumps","damage")] with [W]"))
else if(!cell && !internal_tank && !equipment.len && !pilot && !passengers.len && construction_state == SPACEPOD_ARMOR_WELDED)
user.visible_message("[user] slices off [src]'s armor.", span_notice("You slice off [src]'s armor."))
construction_state = SPACEPOD_ARMOR_SECURED
- update_icon()
+ update_appearance(UPDATE_ICON)
return TRUE
return ..()
@@ -235,7 +235,7 @@ GLOBAL_LIST_INIT(spacepods_list, list())
max_integrity = armor.pod_integrity
obj_integrity = max_integrity - integrity_failure + obj_integrity
pod_armor = armor
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/spacepod/proc/remove_armor()
if(!pod_armor)
@@ -243,7 +243,7 @@ GLOBAL_LIST_INIT(spacepods_list, list())
max_integrity = integrity_failure
desc = initial(desc)
pod_armor = null
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/spacepod/proc/InterceptClickOn(mob/user, params, atom/target)
@@ -256,7 +256,7 @@ GLOBAL_LIST_INIT(spacepods_list, list())
/obj/spacepod/take_damage()
..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/spacepod/return_air()
return cabin_air
@@ -396,7 +396,8 @@ GLOBAL_LIST_INIT(spacepods_list, list())
// there here's your frame pieces back, happy?
qdel(src)
-/obj/spacepod/update_icon()
+/obj/spacepod/update_icon(updates=ALL)
+ . = ..()
cut_overlays()
if(construction_state != SPACEPOD_ARMOR_WELDED)
icon = 'goon/icons/obj/spacepods/construction_2x2.dmi'
diff --git a/yogstation/code/modules/xenoarch/loot/gigadrill.dm b/yogstation/code/modules/xenoarch/loot/gigadrill.dm
index 32c252da6d48..5e11e52a92d5 100644
--- a/yogstation/code/modules/xenoarch/loot/gigadrill.dm
+++ b/yogstation/code/modules/xenoarch/loot/gigadrill.dm
@@ -13,13 +13,14 @@
/obj/vehicle/ridden/gigadrill/after_add_occupant(mob/M)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
/obj/vehicle/ridden/gigadrill/after_remove_occupant(mob/M)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
-/obj/vehicle/ridden/gigadrill/update_icon()
+/obj/vehicle/ridden/gigadrill/update_icon(updates=ALL)
+ . = ..()
. = ..()
if(occupant_amount())
icon_state = "gigadrill_mov"
From dbd33494031dac37d93812fc5f43b4986df93546 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 01:43:14 -0400
Subject: [PATCH 02/50] update name
---
code/_onclick/hud/action_button.dm | 2 +-
code/datums/actions/action.dm | 16 +++++------
code/datums/components/bakeable.dm | 3 +-
.../components/storage/concrete/_concrete.dm | 4 +--
code/game/atoms.dm | 2 ++
code/game/machinery/doors/airlock.dm | 3 +-
code/game/machinery/doors/airlock_types.dm | 3 +-
.../mecha/equipment/weapons/mecha_ammo.dm | 3 +-
code/game/mecha/mecha.dm | 4 +--
code/game/objects/structures/door_assembly.dm | 12 ++++----
code/modules/antagonists/_common/antag_hud.dm | 2 +-
code/modules/antagonists/brother/brother.dm | 1 +
code/modules/antagonists/ert/ert.dm | 1 +
code/modules/antagonists/official/official.dm | 1 +
.../food_and_drinks/food/customizables.dm | 6 ++--
code/modules/food_and_drinks/food/snacks.dm | 3 +-
code/modules/hydroponics/gene_modder.dm | 6 ++--
code/modules/hydroponics/hydroponics.dm | 28 +++++++------------
.../carbon/human/species_types/jellypeople.dm | 1 +
.../mob/living/simple_animal/slime/death.dm | 2 +-
.../mob/living/simple_animal/slime/powers.dm | 2 +-
.../mob/living/simple_animal/slime/slime.dm | 5 ++--
.../chemistry/recipes/slime_extracts.dm | 4 +--
23 files changed, 55 insertions(+), 59 deletions(-)
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index 5e4cf84d785a..573e0de0fab5 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -268,7 +268,7 @@
src.our_hud = our_hud
refresh_owner()
-/atom/movable/screen/button_palette/proc/update_name(updates)
+/atom/movable/screen/button_palette/update_name(updates)
if(expanded)
name = "Hide Buttons"
else
diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm
index 555e769039f4..8a911901d5bb 100644
--- a/code/datums/actions/action.dm
+++ b/code/datums/actions/action.dm
@@ -364,14 +364,14 @@
var/update_flag = ALL
var/forced = TRUE
-// if(updates & UPDATE_ICON_STATE)
-// update_flag |= UPDATE_BUTTON_ICON
-// forced = TRUE
-// if(updates & UPDATE_OVERLAYS)
-// update_flag |= UPDATE_BUTTON_OVERLAY
-// forced = TRUE
-// if(updates & (UPDATE_NAME|UPDATE_DESC))
-// update_flag |= UPDATE_BUTTON_NAME
+ if(updates & UPDATE_ICON_STATE)
+ update_flag |= UPDATE_BUTTON_ICON
+ forced = TRUE
+ if(updates & UPDATE_OVERLAYS)
+ update_flag |= UPDATE_BUTTON_OVERLAY
+ forced = TRUE
+ if(updates & (UPDATE_NAME|UPDATE_DESC))
+ update_flag |= UPDATE_BUTTON_NAME
// Status is not relevant, and background is not relevant. Neither will change
// Force the update if an icon state or overlay change was done
diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm
index 3b4382e22974..412d2e0ebda7 100644
--- a/code/datums/components/bakeable.dm
+++ b/code/datums/components/bakeable.dm
@@ -67,8 +67,7 @@
for(var/obj/O in original.ingredients)
BR.ingredients += O
BR.mix_filling_color(O)
- BR.update_name(O)
- BR.update_overlays(O)
+ BR.update_appearance()
if(original_object.custom_materials)
diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm
index 8ac3a89c6a90..79cb3f9d0883 100644
--- a/code/datums/components/storage/concrete/_concrete.dm
+++ b/code/datums/components/storage/concrete/_concrete.dm
@@ -191,7 +191,7 @@
if(!prevent_warning)
mob_item_insertion_feedback(usr, M, I)
SEND_SIGNAL(parent, COMSIG_STORAGE_INSERTED, I, M)
- update_appearance(UPDATE_ICON)
+ update_icon()
return TRUE
/datum/component/storage/concrete/update_icon(updates=ALL)
@@ -201,4 +201,4 @@
O.update_appearance(UPDATE_ICON)
for(var/i in slaves)
var/datum/component/storage/slave = i
- slave.update_appearance(UPDATE_ICON)
+ slave.update_icon()
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 920f17854b1a..ed01f05343ed 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -49,6 +49,8 @@
///vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays
var/list/managed_vis_overlays
+ ///overlays managed by [update_overlays][/atom/proc/update_overlays] to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
+ var/list/managed_overlays
///Proximity monitor associated with this atom
var/datum/proximity_monitor/proximity_monitor
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index fdbd50f1c5c2..5ace29752d09 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1598,8 +1598,7 @@
A.state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS
A.created_name = name
A.previous_assembly = previous_airlock
- A.update_name()
- A.update_appearance(UPDATE_ICON)
+ A.update_appearance()
if(!disassembled)
if(A)
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 5c5dbb706619..5204102cb6c1 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -226,8 +226,7 @@
DA.glass = TRUE
if(heat_proof)
DA.heat_proof_finished = TRUE
- DA.update_appearance(UPDATE_ICON)
- DA.update_name()
+ DA.update_appearance()
qdel(src)
/obj/machinery/door/airlock/plasma/BlockSuperconductivity() //we don't stop the heat~
diff --git a/code/game/mecha/equipment/weapons/mecha_ammo.dm b/code/game/mecha/equipment/weapons/mecha_ammo.dm
index c3080a16a99e..da3c9dd905be 100644
--- a/code/game/mecha/equipment/weapons/mecha_ammo.dm
+++ b/code/game/mecha/equipment/weapons/mecha_ammo.dm
@@ -17,7 +17,8 @@
/// Type of ammo. used to make sure the ammo type is compatable with the weapon itself
var/ammo_type
-/obj/item/mecha_ammo/proc/update_name()
+/obj/item/mecha_ammo/update_name(updates=ALL)
+ . = ..()
if(!rounds)
name = "empty ammo box"
desc = "An exosuit ammuniton box that has since been emptied. Please recycle."
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 145e489702b1..14c6919e5b8c 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1296,7 +1296,7 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
playsound(get_turf(user),A.load_audio,50,1)
to_chat(user, span_notice("You add [ammo_needed] [A.round_term][ammo_needed > 1?"s":""] to the [gun.name]"))
A.rounds = A.rounds - ammo_needed
- A.update_name()
+ A.update_appearance(UPDATE_NAME)
return TRUE
else
@@ -1307,7 +1307,7 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
playsound(get_turf(user),A.load_audio,50,1)
to_chat(user, span_notice("You add [A.rounds] [A.round_term][A.rounds > 1?"s":""] to the [gun.name]"))
A.rounds = 0
- A.update_name()
+ A.update_appearance(UPDATE_NAME)
return TRUE
if(!fail_chat_override)
if(found_gun)
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index be1abe21b0a5..a3e2addb7676 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -22,8 +22,7 @@
/obj/structure/door_assembly/Initialize(mapload)
. = ..()
- update_appearance(UPDATE_ICON)
- update_name()
+ update_appearance()
/obj/structure/door_assembly/examine(mob/user)
. = ..()
@@ -259,8 +258,7 @@
qdel(src)
else
return ..()
- update_name()
- update_appearance(UPDATE_ICON)
+ update_appearance()
/obj/structure/door_assembly/update_icon(updates=ALL)
. = ..()
@@ -271,7 +269,8 @@
add_overlay(get_airlock_overlay("glass_construction", overlays_file))
add_overlay(get_airlock_overlay("panel_c[state+1]", overlays_file))
-/obj/structure/door_assembly/proc/update_name()
+/obj/structure/door_assembly/update_name(updates=ALL)
+ . = ..()
name = ""
switch(state)
if(AIRLOCK_ASSEMBLY_NEEDS_WIRES)
@@ -294,8 +293,7 @@
if(electronics)
target.electronics = source.electronics
source.electronics.forceMove(target)
- target.update_appearance(UPDATE_ICON)
- target.update_name()
+ target.update_appearance()
qdel(source)
/obj/structure/door_assembly/deconstruct(disassembled = TRUE)
diff --git a/code/modules/antagonists/_common/antag_hud.dm b/code/modules/antagonists/_common/antag_hud.dm
index 5592fadc16e8..9fcca9388dbf 100644
--- a/code/modules/antagonists/_common/antag_hud.dm
+++ b/code/modules/antagonists/_common/antag_hud.dm
@@ -77,7 +77,7 @@ GLOBAL_LIST_EMPTY_TYPED(has_antagonist_huds, /datum/atom_hud/alternate_appearanc
return final_antag_hud_images
-/datum/atom_hud/alternate_appearance/basic/antagonist_hud/update_icon()
+/datum/atom_hud/alternate_appearance/basic/antagonist_hud/proc/update_icon()
if (antag_hud_images.len == 0)
image.icon = icon('icons/blanks/32x32.dmi', "nothing")
else
diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm
index 53d34e0adbea..d6742eabdee2 100644
--- a/code/modules/antagonists/brother/brother.dm
+++ b/code/modules/antagonists/brother/brother.dm
@@ -169,6 +169,7 @@
meeting_areas -= meeting_area
/datum/team/brother_team/proc/update_name()
+ . = ..()
var/list/last_names = list()
for(var/datum/mind/M in members)
var/list/split_name = splittext(M.name," ")
diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm
index f5892b008e6e..0b6c53162d2b 100644
--- a/code/modules/antagonists/ert/ert.dm
+++ b/code/modules/antagonists/ert/ert.dm
@@ -73,6 +73,7 @@
name_source = GLOB.last_names
/datum/antagonist/ert/proc/update_name()
+ . = ..()
owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]")
/datum/antagonist/ert/deathsquad/New()
diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm
index 7f7ac455bbc8..d12890a2fc92 100644
--- a/code/modules/antagonists/official/official.dm
+++ b/code/modules/antagonists/official/official.dm
@@ -43,6 +43,7 @@
name_source = GLOB.last_names
/datum/antagonist/centcom/proc/update_name()
+ . = ..()
owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]")
/datum/antagonist/centcom/on_gain()
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 4e081b85a8a8..22a3a740a4f9 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -53,14 +53,14 @@
mix_filling_color(S)
S.reagents.trans_to(src,min(S.reagents.total_volume, 15), transfered_by = user) //limit of 15, we don't want our custom food to be completely filled by just one ingredient with large reagent volume.
foodtype |= S.foodtype
- update_overlays(S)
to_chat(user, span_notice("You add the [I.name] to the [name]."))
- update_name(S)
+ update_overlays(S = S)
+ update_name(S = S)
else
. = ..()
-/obj/item/reagent_containers/food/snacks/customizable/proc/update_name(obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/customizable/update_name(updates=ALL, obj/item/reagent_containers/food/snacks/S)
for(var/obj/item/I in ingredients)
if(!istype(S, I.type))
customname = "custom"
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 9cd1aa6ea9a3..5f26058ab87f 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -255,7 +255,8 @@ All foods are distributed among various categories. Use common sense.
trash = null
return
-/obj/item/reagent_containers/food/snacks/proc/update_overlays(obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/update_overlays(obj/item/reagent_containers/food/snacks/S)
+ . = ..()
cut_overlays()
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index f72cee9fcba6..02aa0588d5d8 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -337,8 +337,7 @@
gene.value = max(gene.value, min_wrate)
else if(istype(G, /datum/plant_gene/core/weed_chance))
gene.value = max(gene.value, min_wchance)
- disk.update_name()
- disk.update_appearance(UPDATE_ICON)
+ disk.update_appearance()
qdel(seed)
seed = null
update_appearance(UPDATE_ICON)
@@ -447,7 +446,8 @@
if(gene)
add_overlay("datadisk_gene")
-/obj/item/disk/plantgene/proc/update_name()
+/obj/item/disk/plantgene/update_name(updates=ALL)
+ . = ..()
if(gene)
name = "[gene.get_name()] (plant data disk)"
else
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index b344e2836c60..1319a2c44d8b 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -361,9 +361,8 @@
harvest = 0
weedlevel = 0 // Reset
pestlevel = 0 // Reset
- update_appearance(UPDATE_ICON)
visible_message(span_warning("The [oldPlantName] is overtaken by some [myseed.plantname]!"))
- update_name()
+ update_appearance()
/obj/machinery/hydroponics/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) // Mutates the current seed
if(!myseed)
@@ -395,9 +394,8 @@
weedlevel = 0 // Reset
sleep(0.5 SECONDS) // Wait a while
- update_appearance(UPDATE_ICON)
visible_message(span_warning("[oldPlantName] suddenly mutates into [myseed.plantname]!"))
- update_name()
+ update_appearance()
/obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent instead. Mind you, this pretty much destroys the old plant
if( weedlevel > 5 )
@@ -415,9 +413,8 @@
weedlevel = 0 // Reset
sleep(0.5 SECONDS) // Wait a while
- update_appearance(UPDATE_ICON)
visible_message(span_warning("The mutated weeds in [src] spawn some [myseed.plantname]!"))
- update_name()
+ update_appearance()
else
to_chat(usr, span_warning("The few weeds in [src] seem to react, but only for a moment..."))
@@ -427,10 +424,8 @@
pestlevel = 0 // Pests die
lastproduce = 0
if(!dead)
+ dead = TRUE
update_appearance(UPDATE_ICON)
- dead = 1
-
-
/obj/machinery/hydroponics/proc/mutatepest(mob/user)
if(pestlevel > 5)
@@ -792,11 +787,10 @@
to_chat(user, span_notice("You plant [O]."))
dead = 0
myseed = O
- update_name()
age = 1
plant_health = myseed.endurance
lastcycle = world.time
- update_appearance(UPDATE_ICON)
+ update_appearance()
else
to_chat(user, span_warning("[src] already has seeds in it!"))
@@ -863,9 +857,8 @@
harvest = FALSE //To make sure they can't just put in another seed and insta-harvest it
qdel(myseed)
myseed = null
- update_name()
weedlevel = 0 //Has a side effect of cleaning up those nasty weeds
- update_appearance(UPDATE_ICON)
+ update_appearance()
else
return ..()
@@ -895,8 +888,7 @@
to_chat(user, span_notice("You remove the dead plant from [src]."))
qdel(myseed)
myseed = null
- update_name()
- update_appearance(UPDATE_ICON)
+ update_appearance()
else
if(user)
examine(user)
@@ -930,9 +922,8 @@
if(!myseed.get_gene(/datum/plant_gene/trait/repeated_harvest))
qdel(myseed)
myseed = null
- update_name()
dead = 0
- update_appearance(UPDATE_ICON)
+ update_appearance()
/// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.///
/obj/machinery/hydroponics/proc/adjustNutri(adjustamt)
@@ -968,7 +959,8 @@
self_sustaining = TRUE
update_appearance(UPDATE_ICON)
-/obj/machinery/hydroponics/proc/update_name()
+/obj/machinery/hydroponics/update_name(updates=ALL)
+ . = ..()
if(myseed)
name = "[initial(name)] ([myseed.plantname])"
else
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index b5ec23277559..a089b8509537 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -512,6 +512,7 @@
species = _species
/datum/action/innate/integrate_extract/proc/update_name()
+ . = ..()
if(!species || !species.current_extract)
name = "Integrate Extract"
desc = "Eat a slime extract to use its properties."
diff --git a/code/modules/mob/living/simple_animal/slime/death.dm b/code/modules/mob/living/simple_animal/slime/death.dm
index 5435ce561ecf..19aa4ec103a1 100644
--- a/code/modules/mob/living/simple_animal/slime/death.dm
+++ b/code/modules/mob/living/simple_animal/slime/death.dm
@@ -15,7 +15,7 @@
E.Grant(src)
revive(full_heal = 1)
regenerate_icons()
- update_name()
+ update_appearance(UPDATE_NAME)
return
if(buckled)
diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm
index 34a93c979cbf..4490a13da32e 100644
--- a/code/modules/mob/living/simple_animal/slime/powers.dm
+++ b/code/modules/mob/living/simple_animal/slime/powers.dm
@@ -152,7 +152,7 @@
for(var/datum/action/innate/slime/evolve/E in actions)
E.Remove(src)
regenerate_icons()
- update_name()
+ update_appearance(UPDATE_NAME)
else
to_chat(src, "I am not ready to evolve yet...")
else
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 60f16e558944..9d782b06052b 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -143,13 +143,14 @@
/mob/living/simple_animal/slime/proc/set_colour(new_colour)
colour = new_colour
- update_name()
+ update_appearance(UPDATE_NAME)
slime_mutation = mutation_table(colour)
var/sanitizedcolour = replacetext(colour, " ", "")
coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]")
regenerate_icons()
-/mob/living/simple_animal/slime/proc/update_name()
+/mob/living/simple_animal/slime/update_name(updates=ALL)
+ . = ..()
if(slime_name_regex.Find(name))
number = rand(1, 1000)
name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])"
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 0eb2e1075a5f..1eba0a7713dc 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -438,9 +438,9 @@
if(slime.docile) //Undoes docility, but doesn't make rabid.
slime.visible_message(span_danger("[slime] forgets its training, becoming wild once again!"))
slime.docile = FALSE
- slime.update_name()
+ slime.update_appearance(UPDATE_NAME)
continue
- slime.rabid = 1
+ slime.rabid = TRUE
slime.visible_message(span_danger("The [slime] is driven into a frenzy!"))
..()
From 1a4957fbe0f13f378f121944bd3dea831ee951fe Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 01:54:52 -0400
Subject: [PATCH 03/50] fixes
---
.../game/gamemodes/clown_ops/bananium_bomb.dm | 6 +-
code/game/objects/items/defib.dm | 2 +-
code/game/objects/items/plushes.dm | 17 +--
code/game/objects/items/stacks/cash.dm | 7 +-
.../nukeop/equipment/nuclearbomb.dm | 16 ++-
.../machinery/components/fusion/hfr_parts.dm | 2 +-
code/modules/cargo/supplypod.dm | 4 +-
.../food_and_drinks/kitchen_machinery/oven.dm | 2 +-
code/modules/pai/card.dm | 2 +-
code/modules/power/apc/apc_appearance.dm | 119 ------------------
10 files changed, 27 insertions(+), 150 deletions(-)
delete mode 100644 code/modules/power/apc/apc_appearance.dm
diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm
index d9a0f3551179..7feed74d00fd 100644
--- a/code/game/gamemodes/clown_ops/bananium_bomb.dm
+++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm
@@ -10,8 +10,7 @@
switch(get_nuke_state())
if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
icon_state = "bananiumbomb_base"
- update_icon_interior()
- update_icon_lights()
+ update_appearance(UPDATE_ICON)
if(NUKE_ON_TIMING)
cut_overlays()
icon_state = "bananiumbomb_timing"
@@ -20,8 +19,7 @@
icon_state = "bananiumbomb_exploding"
else
icon_state = "bananiumbomb_base"
- update_icon_interior()
- update_icon_lights()
+ update_appearance(UPDATE_ICON)
/obj/machinery/nuclearbomb/syndicate/bananium/get_cinematic_type(off_station)
switch(off_station)
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 6147d62e25a6..866df2d71ec6 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -65,7 +65,7 @@
else
powered = FALSE
-/obj/item/defibrillator/proc/update_overlays()
+/obj/item/defibrillator/update_overlays()
. = ..()
cut_overlays()
if(!on)
diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm
index 965c971fe4a1..3943dd623d2a 100644
--- a/code/game/objects/items/plushes.dm
+++ b/code/game/objects/items/plushes.dm
@@ -236,7 +236,7 @@
vowbroken = TRUE
mood_message = pick(vowbroken_message)
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/toy/plush/proc/scorned_by(obj/item/toy/plush/Outmoded)
scorned_by.Add(Outmoded)
@@ -250,7 +250,7 @@
lover.cheer_up()
mood_message = pick(love_message)
- update_desc()
+ update_appearance(UPDATE_DESC)
if(partner) //who?
partner = null //more like who cares
@@ -267,7 +267,7 @@
partner.heal_memories()
mood_message = pick(partner_message)
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/toy/plush/proc/plop(obj/item/toy/plush/Daddy)
if(partner != Daddy)
@@ -292,12 +292,12 @@
young = TRUE
name = "[Mama] Jr" //Icelandic naming convention pending
normal_desc = "[src] is a little baby of [maternal_parent] and [paternal_parent]!" //original desc won't be used so the child can have moods
- update_desc()
+ update_appearance(UPDATE_DESC)
Mama.mood_message = pick(Mama.parent_message)
- Mama.update_desc()
+ Mama.update_appearance(UPDATE_DESC)
Dada.mood_message = pick(Dada.parent_message)
- Dada.update_desc()
+ Dada.update_appearance(UPDATE_DESC)
/obj/item/toy/plush/proc/bad_news(obj/item/toy/plush/Deceased) //cotton to cotton, sawdust to sawdust
var/is_that_letter_for_me = FALSE
@@ -336,7 +336,7 @@
if(is_that_letter_for_me)
heartbroken = TRUE
mood_message = pick(heartbroken_message)
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/toy/plush/proc/cheer_up() //it'll be all right
if(!heartbroken)
@@ -348,7 +348,7 @@
if(mood_message in heartbroken_message)
mood_message = null
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/toy/plush/proc/heal_memories() //time fixes all wounds
if(!vowbroken)
@@ -358,6 +358,7 @@
cheer_up()
/obj/item/toy/plush/update_desc(updates=ALL)
+ . = ..()
desc = normal_desc
if(mood_message)
desc += mood_message
diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm
index 530b7246cec5..65ce5efc26b9 100644
--- a/code/game/objects/items/stacks/cash.dm
+++ b/code/game/objects/items/stacks/cash.dm
@@ -16,9 +16,10 @@
/obj/item/stack/spacecash/Initialize(mapload)
. = ..()
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/stack/spacecash/update_desc(updates=ALL)
+ . = ..()
var/total_worth = get_item_credit_value()
desc = "It's worth [total_worth] credit[( total_worth > 1 ) ? "s" : ""]"
@@ -27,11 +28,11 @@
/obj/item/stack/spacecash/merge(obj/item/stack/S)
. = ..()
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/stack/spacecash/use(used, transfer = FALSE)
. = ..()
- update_desc()
+ update_appearance(UPDATE_DESC)
/obj/item/stack/spacecash/c1
icon_state = "spacecash"
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index 503e6326003d..42e690a1da2b 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -185,8 +185,7 @@
switch(get_nuke_state())
if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
icon_state = "nuclearbomb_base"
- update_icon_interior()
- update_icon_lights()
+ update_appearance(UPDATE_ICON)
if(NUKE_ON_TIMING)
cut_overlays()
icon_state = "nuclearbomb_timing"
@@ -195,11 +194,13 @@
icon_state = "nuclearbomb_exploding"
else
icon_state = "nuclearbomb_base"
- update_icon_interior()
- update_icon_lights()
+ update_appearance(UPDATE_ICON)
-/obj/machinery/nuclearbomb/update_icon_interior()
+/obj/machinery/nuclearbomb/update_overlays()
+ . = ..()
cut_overlay(interior)
+ if(lights)
+ cut_overlay(lights)
switch(deconstruction_state)
if(NUKESTATE_UNSCREWED)
interior = "panel-unscrewed"
@@ -214,10 +215,6 @@
if(NUKESTATE_INTACT)
return
add_overlay(interior)
-
-/obj/machinery/nuclearbomb/update_icon_lights()
- if(lights)
- cut_overlay(lights)
switch(get_nuke_state())
if(NUKE_OFF_LOCKED)
lights = ""
@@ -230,6 +227,7 @@
lights = "lights-exploding"
add_overlay(lights)
+
/obj/machinery/nuclearbomb/process()
if(timing && !exploding)
if(detonation_timer < world.time)
diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
index 62b21c59dffa..b66bc804319c 100644
--- a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
+++ b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
@@ -82,7 +82,7 @@
else
icon_state = icon_state_off
-/obj/machinery/atmospherics/components/unary/hypertorus/proc/update_overlays()
+/obj/machinery/atmospherics/components/unary/hypertorus/update_overlays()
. = ..()
if(!cracked)
return
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index fc365bc33e0b..39e9829f6a5d 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -58,8 +58,6 @@
var/list/reverse_option_list = list("Mobs"=FALSE,"Objects"=FALSE,"Anchored"=FALSE,"Underfloor"=FALSE,"Wallmounted"=FALSE,"Floors"=FALSE,"Walls"=FALSE, "Mecha"=FALSE)
var/list/turfs_in_cargo = list()
- var/list/managed_overlays
-
/obj/structure/closet/supplypod/bluespacepod
style = STYLE_BLUESPACE
bluespace = TRUE
@@ -137,7 +135,7 @@
managed_overlays = new_overlays
add_overlay(new_overlays)
-/obj/structure/closet/supplypod/proc/update_overlays()
+/obj/structure/closet/supplypod/update_overlays()
. = ..()
. = list()
if(style == STYLE_INVISIBLE)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
index 8a6293889681..24a1ab565ab4 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
@@ -54,7 +54,7 @@
icon_state = "oven_off"
return ..()
-/obj/machinery/oven/proc/update_overlays()
+/obj/machinery/oven/update_overlays()
. = ..()
cut_overlays()
var/mutable_appearance/door_overlay
diff --git a/code/modules/pai/card.dm b/code/modules/pai/card.dm
index 59d5b3096d6c..b82e5c387f78 100644
--- a/code/modules/pai/card.dm
+++ b/code/modules/pai/card.dm
@@ -70,7 +70,7 @@
user.visible_message(span_suicide("[user] is staring sadly at [src]! [user.p_they()] can't keep living without real human intimacy!"))
return OXYLOSS
-/obj/item/pai_card/proc/update_overlays()
+/obj/item/pai_card/update_overlays()
. = ..()
. = ..()
. += "pai-[emotion_icon]"
diff --git a/code/modules/power/apc/apc_appearance.dm b/code/modules/power/apc/apc_appearance.dm
deleted file mode 100644
index 4cc22180e224..000000000000
--- a/code/modules/power/apc/apc_appearance.dm
+++ /dev/null
@@ -1,119 +0,0 @@
-// update the APC icon to show the three base states
-// also add overlays for indicator lights
-/obj/machinery/power/apc/update_appearance(updates=check_updates())
- icon_update_needed = FALSE
- if(!updates)
- return
-
- . = ..()
- // And now, separately for cleanness, the lighting changing
- if(!update_state)
- switch(charging)
- if(APC_NOT_CHARGING)
- set_light_color(COLOR_SOFT_RED)
- if(APC_CHARGING)
- set_light_color(LIGHT_COLOR_BLUE)
- if(APC_FULLY_CHARGED)
- set_light_color(LIGHT_COLOR_GREEN)
- set_light(light_on_range)
- return
-
- if(update_state & UPSTATE_BLUESCREEN)
- set_light_color(LIGHT_COLOR_BLUE)
- set_light(light_on_range)
- return
-
- set_light(0)
-
-/obj/machinery/power/apc/update_icon_state()
- if(!update_state)
- icon_state = "apc0"
- return ..()
- if(update_state & (UPSTATE_OPENED1|UPSTATE_OPENED2))
- var/basestate = "apc[cell ? 2 : 1]"
- if(update_state & UPSTATE_OPENED1)
- icon_state = (update_state & (UPSTATE_MAINT|UPSTATE_BROKE)) ? "apcmaint" : basestate
- else if(update_state & UPSTATE_OPENED2)
- icon_state = "[basestate][((update_state & UPSTATE_BROKE) || malfhack) ? "-b" : null]-nocover"
- return ..()
- if(update_state & UPSTATE_BROKE)
- icon_state = "apc-b"
- return ..()
- if(update_state & UPSTATE_BLUESCREEN)
- icon_state = "apcemag"
- return ..()
- if(update_state & UPSTATE_WIREEXP)
- icon_state = "apcewires"
- return ..()
- if(update_state & UPSTATE_MAINT)
- icon_state = "apc0"
- return ..()
-
-/obj/machinery/power/apc/update_overlays()
- . = ..()
- . = ..()
- if((stat & (BROKEN|MAINT)) || update_state)
- return
-
- . += mutable_appearance(icon, "apcox-[locked]")
- . += SSvis_overlays.add_vis_overlay(src, icon, "apcox-[locked]", layer, plane, dir)
- . += mutable_appearance(icon, "apco3-[charging]")
- . += SSvis_overlays.add_vis_overlay(src, icon, "apco3-[charging]", layer, EMISSIVE_PLANE, dir)
- if(!operating)
- return
-
- . += mutable_appearance(icon, "apco0-[equipment]")
- . += SSvis_overlays.add_vis_overlay(src, icon, "apco0-[equipment]", layer, EMISSIVE_PLANE, dir)
- . += mutable_appearance(icon, "apco1-[lighting]")
- . += SSvis_overlays.add_vis_overlay(src, icon, "apco1-[lighting]", layer, EMISSIVE_PLANE, dir)
- . += mutable_appearance(icon, "apco2-[environ]")
- . += SSvis_overlays.add_vis_overlay(src, icon, "apco2-[environ]", layer, EMISSIVE_PLANE, dir)
-
-/// Checks for what icon updates we will need to handle
-/obj/machinery/power/apc/proc/check_updates()
- SIGNAL_HANDLER
- . = NONE
-
- // Handle icon status:
- var/new_update_state = NONE
- if(stat & BROKEN)
- new_update_state |= UPSTATE_BROKE
- if(stat & MAINT)
- new_update_state |= UPSTATE_MAINT
-
- if(opened)
- new_update_state |= (opened << UPSTATE_COVER_SHIFT)
- if(cell)
- new_update_state |= UPSTATE_CELL_IN
-
- else if((obj_flags & EMAGGED) || malfai)
- new_update_state |= UPSTATE_BLUESCREEN
- else if(panel_open)
- new_update_state |= UPSTATE_WIREEXP
-
- if(new_update_state != update_state)
- update_state = new_update_state
- . |= UPDATE_ICON_STATE
-
- // Handle overlay status:
- var/new_update_overlay = NONE
- if(operating)
- new_update_overlay |= UPOVERLAY_OPERATING
-
- if(!update_state)
- if(locked)
- new_update_overlay |= UPOVERLAY_LOCKED
-
- new_update_overlay |= (charging << UPOVERLAY_CHARGING_SHIFT)
- new_update_overlay |= (equipment << UPOVERLAY_EQUIPMENT_SHIFT)
- new_update_overlay |= (lighting << UPOVERLAY_LIGHTING_SHIFT)
- new_update_overlay |= (environ << UPOVERLAY_ENVIRON_SHIFT)
-
- if(new_update_overlay != update_overlay)
- update_overlay = new_update_overlay
- . |= UPDATE_OVERLAYS
-
-
-// Used in process so it doesn't update the icon too much
-/obj/machinery/power/apc/proc/queue_icon_update()
- icon_update_needed = TRUE
From 4284e99610c7c79adecc2e0a0f856419aab2b328 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 02:40:36 -0400
Subject: [PATCH 04/50] Removes double parent calls from many things
---
code/_onclick/hud/action_button.dm | 1 +
code/_onclick/hud/screen_objects.dm | 1 -
code/datums/elements/update_icon_blocker.dm | 18 +++++++++++++
code/datums/martial/sleeping_carp.dm | 1 -
.../game/gamemodes/clown_ops/bananium_bomb.dm | 2 --
code/game/machinery/bounty_board.dm | 1 -
code/game/machinery/computer/aifixer.dm | 1 -
code/game/machinery/computer/arcade.dm | 1 -
code/game/machinery/computer/atmos_alert.dm | 1 -
code/game/machinery/computer/atmos_control.dm | 2 +-
code/game/machinery/computer/station_alert.dm | 1 -
code/game/machinery/decontamination.dm | 1 -
code/game/machinery/doors/brigdoors.dm | 2 --
code/game/machinery/doors/firedoor.dm | 2 --
code/game/machinery/iv_drip.dm | 12 ++++-----
.../machinery/porta_turret/portable_turret.dm | 1 -
code/game/machinery/prisonlabor.dm | 1 -
code/game/machinery/recycler.dm | 1 -
code/game/machinery/stasis.dm | 1 -
.../telecomms/machines/message_server.dm | 1 -
code/game/machinery/transformer.dm | 1 -
code/game/mecha/mech_bay.dm | 1 -
code/game/mecha/mecha.dm | 1 -
code/game/mecha/working/ripley.dm | 1 -
code/game/objects/items/RCD.dm | 3 ---
code/game/objects/items/ashtray.dm | 1 -
code/game/objects/items/defib.dm | 1 -
.../objects/items/devices/geiger_counter.dm | 1 -
code/game/objects/items/devices/megaphone.dm | 1 -
code/game/objects/items/dice.dm | 18 ++++++-------
.../granters/martial_arts/plasma_fist.dm | 1 -
code/game/objects/items/holy_weapons.dm | 1 -
code/game/objects/items/laser_level.dm | 2 --
code/game/objects/items/mail.dm | 2 --
code/game/objects/items/melee/misc.dm | 1 -
code/game/objects/items/robot/robot_items.dm | 4 ---
.../objects/items/stacks/license_plates.dm | 1 -
code/game/objects/items/stacks/medical.dm | 2 +-
code/game/objects/items/stacks/rods.dm | 6 ++---
code/game/objects/items/stacks/stack.dm | 1 -
code/game/objects/items/storage/belt.dm | 3 ---
code/game/objects/items/storage/boxes.dm | 4 +--
code/game/objects/items/storage/lockbox.dm | 1 -
code/game/objects/items/storage/toolbox.dm | 1 -
.../objects/items/syndicateReverseCard.dm | 1 -
code/game/objects/items/tools/weldingtool.dm | 1 -
code/game/objects/items/twohanded.dm | 6 -----
code/game/objects/structures/aliens.dm | 1 -
code/game/objects/structures/artstuff.dm | 1 -
.../crates_lockers/closets/bodybag.dm | 3 ---
.../structures/crates_lockers/crates/bins.dm | 1 -
.../crates_lockers/crates/secure.dm | 1 -
code/game/objects/structures/headpike.dm | 1 -
code/game/objects/structures/morgue.dm | 26 ++++++++-----------
code/game/objects/structures/shower.dm | 1 -
code/game/objects/structures/watercloset.dm | 1 -
.../game/turfs/simulated/floor/fancy_floor.dm | 2 +-
.../game/turfs/simulated/floor/light_floor.dm | 1 -
.../turfs/simulated/floor/mineral_floor.dm | 2 +-
.../turfs/simulated/floor/plasteel_floor.dm | 2 +-
code/game/turfs/simulated/floor/plating.dm | 2 +-
.../abductor/equipment/abduction_gear.dm | 6 ++---
.../antagonists/abductor/equipment/gland.dm | 6 ++---
.../antagonists/blob/structures/_blob.dm | 1 -
.../antagonists/blob/structures/shield.dm | 1 -
.../structures/bloodsucker_crypt.dm | 1 -
code/modules/antagonists/brother/brother.dm | 1 -
code/modules/antagonists/ert/ert.dm | 1 -
code/modules/antagonists/official/official.dm | 1 -
.../antagonists/slaughter/slaughter.dm | 6 ++---
code/modules/assembly/infrared.dm | 1 -
code/modules/assembly/proximity.dm | 1 -
code/modules/assembly/signaler.dm | 1 -
.../atmospherics/machinery/atmosmachinery.dm | 1 -
.../components/binary_devices/circulator.dm | 2 --
.../machinery/components/components_base.dm | 3 +--
.../machinery/components/fusion/hfr_parts.dm | 1 -
.../gas_recipe_machines/crystallizer.dm | 1 -
.../components/trinary_devices/filter.dm | 2 --
.../components/trinary_devices/mixer.dm | 2 --
.../atmospherics/machinery/pipes/pipes.dm | 1 -
.../awaymissions/mission_code/Academy.dm | 6 ++---
code/modules/awaymissions/pamphlet.dm | 6 ++---
code/modules/buildmode/buttons.dm | 1 -
code/modules/clothing/head/hardhat.dm | 2 --
code/modules/clothing/neck/bodycamera.dm | 1 -
.../food_and_drinks/food/customizables.dm | 2 ++
.../kitchen_machinery/griddle.dm | 1 -
.../food_and_drinks/kitchen_machinery/oven.dm | 1 -
.../kitchen_machinery/smartfridge.dm | 1 -
code/modules/holodeck/turfs.dm | 2 +-
code/modules/hydroponics/gene_modder.dm | 1 -
code/modules/library/soapstone.dm | 1 -
.../modules/mining/equipment/explorer_gear.dm | 1 -
.../mining/equipment/kinetic_crusher.dm | 1 -
.../mining/equipment/regenerative_core.dm | 3 +--
code/modules/mining/equipment/survival_pod.dm | 12 ++++-----
.../mining/lavaland/necropolis_chests.dm | 1 -
code/modules/mining/machine_redemption.dm | 1 -
.../carbon/human/species_types/jellypeople.dm | 1 -
.../human/species_types/shadowpeople.dm | 7 +++--
.../living/simple_animal/bot/construction.dm | 1 -
.../mob/living/simple_animal/bot/mulebot.dm | 1 -
.../mob/living/simple_animal/bot/secbot.dm | 1 -
.../living/simple_animal/guardian/guardian.dm | 6 ++---
.../computers/item/laptop/laptop.dm | 7 +++--
.../computers/item/tablet/tablet.dm | 1 -
.../machinery/console/modular_console.dm | 1 -
code/modules/pai/card.dm | 1 -
code/modules/paperwork/contract.dm | 6 ++---
code/modules/paperwork/paper.dm | 6 ++---
code/modules/paperwork/paper_cutter.dm | 1 -
code/modules/paperwork/papershredder.dm | 1 -
code/modules/power/cell.dm | 6 ++---
code/modules/power/gravitygenerator.dm | 2 --
code/modules/power/solar.dm | 1 -
.../projectiles/ammunition/_ammunition.dm | 1 -
.../projectiles/ammunition/reusable/foam.dm | 1 -
.../projectiles/attachments/_attachment.dm | 1 -
.../boxes_magazines/external/grenade.dm | 1 -
.../boxes_magazines/external/lmg.dm | 1 -
.../boxes_magazines/external/pistol.dm | 4 ---
.../boxes_magazines/external/rechargable.dm | 4 ---
.../boxes_magazines/external/rifle.dm | 5 ----
.../boxes_magazines/external/shotgun.dm | 1 -
.../boxes_magazines/external/smg.dm | 3 ---
.../boxes_magazines/external/sniper.dm | 1 -
.../boxes_magazines/external/toy.dm | 3 ---
code/modules/projectiles/gun.dm | 5 ----
code/modules/projectiles/guns/ballistic.dm | 1 -
.../projectiles/guns/ballistic/automatic.dm | 2 --
.../guns/ballistic/laser_gatling.dm | 1 +
.../projectiles/guns/ballistic/rifle.dm | 1 -
.../projectiles/guns/ballistic/shotgun.dm | 1 -
.../modules/projectiles/guns/ballistic/toy.dm | 4 ---
.../projectiles/guns/energy/dueling.dm | 2 --
.../projectiles/guns/energy/energy_gun.dm | 1 -
.../guns/energy/kinetic_accelerator.dm | 1 -
.../projectiles/guns/energy/special.dm | 15 ++++-------
code/modules/projectiles/guns/magic.dm | 6 ++---
.../projectiles/guns/misc/syringe_gun.dm | 1 -
.../chemistry/machinery/smoke_machine.dm | 1 -
.../reagents/reagent_containers/borghypo.dm | 2 +-
.../reagents/reagent_containers/glass.dm | 3 +--
.../reagents/reagent_containers/hypospray.dm | 1 -
code/modules/recycling/disposal/bin.dm | 6 ++---
.../modules/research/nanites/nanite_remote.dm | 1 -
code/modules/shuttle/emergency.dm | 6 ++---
code/modules/surgery/organs/tongue.dm | 1 -
yogstation.dme | 1 +
yogstation/code/game/objects/items/brace.dm | 1 -
.../game/objects/structures/toilet_bong.dm | 1 -
.../antagonists/slaughter/slaughter.dm | 6 ++---
.../projectiles/guns/ballistic/launchers.dm | 6 ++---
.../recycling/disposal/pipe_sorting.dm | 1 -
.../code/modules/xenoarch/loot/gigadrill.dm | 1 -
156 files changed, 124 insertions(+), 279 deletions(-)
create mode 100644 code/datums/elements/update_icon_blocker.dm
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index 573e0de0fab5..7affa36451bf 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -269,6 +269,7 @@
refresh_owner()
/atom/movable/screen/button_palette/update_name(updates)
+ . = ..()
if(expanded)
name = "Hide Buttons"
else
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 17514001cea6..4c0546673f78 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -219,7 +219,6 @@
/atom/movable/screen/inventory/hand/update_icon(updates=ALL)
. = ..()
- . = ..()
if(!handcuff_overlay)
var/ui_style = hud?.mymob?.client?.prefs?.read_preference(/datum/preference/choiced/ui_style)
diff --git a/code/datums/elements/update_icon_blocker.dm b/code/datums/elements/update_icon_blocker.dm
new file mode 100644
index 000000000000..daeb2759b84d
--- /dev/null
+++ b/code/datums/elements/update_icon_blocker.dm
@@ -0,0 +1,18 @@
+/// Prevents calling anything in update_icon() like update_icon_state() or update_overlays()
+/datum/element/update_icon_blocker
+
+/datum/element/update_icon_blocker/Attach(datum/target)
+ . = ..()
+ if(!isatom(target))
+ return ELEMENT_INCOMPATIBLE
+
+ RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, PROC_REF(block_update_icon))
+
+/datum/element/update_icon_blocker/Detach(datum/source, ...)
+ UnregisterSignal(source, COMSIG_ATOM_UPDATE_ICON)
+ return ..()
+
+/datum/element/update_icon_blocker/proc/block_update_icon()
+ SIGNAL_HANDLER
+
+ return COMSIG_ATOM_NO_UPDATE_ICON_STATE | COMSIG_ATOM_NO_UPDATE_OVERLAYS
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index bac014a77627..178bdce34eac 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -184,7 +184,6 @@
/obj/item/twohanded/bostaff/update_icon(updates=ALL)
. = ..()
icon_state = "bostaff[wielded]"
- return
/obj/item/twohanded/bostaff/attack(mob/target, mob/living/user)
add_fingerprint(user)
diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm
index 7feed74d00fd..20d2b086eb06 100644
--- a/code/game/gamemodes/clown_ops/bananium_bomb.dm
+++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm
@@ -10,7 +10,6 @@
switch(get_nuke_state())
if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
icon_state = "bananiumbomb_base"
- update_appearance(UPDATE_ICON)
if(NUKE_ON_TIMING)
cut_overlays()
icon_state = "bananiumbomb_timing"
@@ -19,7 +18,6 @@
icon_state = "bananiumbomb_exploding"
else
icon_state = "bananiumbomb_base"
- update_appearance(UPDATE_ICON)
/obj/machinery/nuclearbomb/syndicate/bananium/get_cinematic_type(off_station)
switch(off_station)
diff --git a/code/game/machinery/bounty_board.dm b/code/game/machinery/bounty_board.dm
index e4ae95e52be6..866d074f5e65 100644
--- a/code/game/machinery/bounty_board.dm
+++ b/code/game/machinery/bounty_board.dm
@@ -33,7 +33,6 @@ GLOBAL_LIST_EMPTY(request_list)
/obj/machinery/bounty_board/update_icon(updates=ALL)
. = ..()
- ..()
if(stat & (NOPOWER|BROKEN))
icon_state = "request_kiosk_off"
else
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index ae650ce99584..5c58e296dbf1 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -79,7 +79,6 @@
/obj/machinery/computer/aifixer/update_icon(updates=ALL)
. = ..()
- ..()
if(stat & (NOPOWER|BROKEN))
return
else
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index fe8e5f123194..c792dd3620bb 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -89,7 +89,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
icon_screen = "invaders"
else
icon_screen = ""
- . = ..()
/obj/machinery/computer/arcade/proc/prizevend(mob/user)
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "arcade", /datum/mood_event/arcade)
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index f302a1a9ab59..732e6bfd0316 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -79,7 +79,6 @@
/obj/machinery/computer/atmos_alert/update_icon(updates=ALL)
. = ..()
- ..()
if(stat & (NOPOWER|BROKEN))
return
if(priority_alarms.len)
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index ae1bacc53438..cfba2bd58b8d 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -44,7 +44,7 @@
/obj/machinery/air_sensor/update_icon(updates=ALL)
. = ..()
- icon_state = "gsensor[on]"
+ icon_state = "gsensor[on]"
/obj/machinery/air_sensor/process_atmos()
if(on)
diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm
index 49125f2bbdff..8b9fc1963c8e 100644
--- a/code/game/machinery/computer/station_alert.dm
+++ b/code/game/machinery/computer/station_alert.dm
@@ -76,7 +76,6 @@
/obj/machinery/computer/station_alert/update_icon(updates=ALL)
. = ..()
- ..()
if(stat & (NOPOWER|BROKEN))
return
var/active_alarms = FALSE
diff --git a/code/game/machinery/decontamination.dm b/code/game/machinery/decontamination.dm
index 8d06a634d8e7..d769b5442ac7 100644
--- a/code/game/machinery/decontamination.dm
+++ b/code/game/machinery/decontamination.dm
@@ -38,7 +38,6 @@
update_appearance(UPDATE_ICON)
/obj/machinery/decontamination_unit/update_icon(updates=ALL)
- . = ..()
. = ..()
icon_state = uv? "tube_on" : (state_open? "tube_open" : "tube")
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index a12c9c52c7e6..9b216e56452b 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -334,8 +334,6 @@
else
if(maptext)
maptext = ""
- return
-
// Adds an icon in case the screen is broken/off, stolen from status_display.dm
/obj/machinery/door_timer/proc/set_picture(state)
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index a3815f66cd9b..edf1effbf1c0 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -216,7 +216,6 @@
flick("door_closing", src)
/obj/machinery/door/firedoor/update_icon(updates=ALL)
- . = ..()
cut_overlays()
if(density)
icon_state = "door_closed"
@@ -474,7 +473,6 @@
. += span_notice("There are no firelock electronics in the frame. The frame could be cut apart.")
/obj/structure/firelock_frame/update_icon(updates=ALL)
- . = ..()
..()
icon_state = "frame[constructionStep]"
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 3ac9af7afed1..a716d01deef4 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -246,15 +246,15 @@
can_convert = FALSE
/obj/machinery/iv_drip/saline/Initialize(mapload)
- . = ..()
- beaker = new /obj/item/reagent_containers/glass/saline(src)
-
-/obj/machinery/iv_drip/saline/update_icon(updates=ALL)
- return
+ AddElement(/datum/element/update_icon_blocker)
+ . = ..()
+ beaker = new /obj/item/reagent_containers/glass/saline(src)
/obj/machinery/iv_drip/saline/eject_beaker()
- return
+ return
+
/obj/machinery/iv_drip/saline/toggle_mode()
return
+
#undef IV_TAKING
#undef IV_INJECTING
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 25234acde09f..96d47e7b473c 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -940,7 +940,6 @@
/obj/machinery/turretid/update_icon(updates=ALL)
. = ..()
- ..()
if(stat & NOPOWER)
icon_state = "control_off"
else if (enabled)
diff --git a/code/game/machinery/prisonlabor.dm b/code/game/machinery/prisonlabor.dm
index a42674fb4d4a..f291787ede69 100644
--- a/code/game/machinery/prisonlabor.dm
+++ b/code/game/machinery/prisonlabor.dm
@@ -10,7 +10,6 @@
var/pressing = FALSE
/obj/machinery/plate_press/update_icon(updates=ALL)
- . = ..()
. = ..()
if(!is_operational())
icon_state = "offline"
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 5267227997e0..48bb82bac77a 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -73,7 +73,6 @@
/obj/machinery/recycler/update_icon(updates=ALL)
. = ..()
- ..()
var/is_powered = !(stat & (BROKEN|NOPOWER))
if(safety_mode)
is_powered = FALSE
diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm
index fab87f1e154f..baaeb3bcaeb3 100644
--- a/code/game/machinery/stasis.dm
+++ b/code/game/machinery/stasis.dm
@@ -110,7 +110,6 @@
return stasis_enabled && is_operational()
/obj/machinery/stasis/update_icon(updates=ALL)
- . = ..()
. = ..()
var/_running = stasis_running()
var/list/overlays_to_remove = managed_vis_overlays
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index adbf5f9531a6..bcdd2eaf0c6c 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -54,7 +54,6 @@
return ..()
/obj/machinery/blackbox_recorder/update_icon(updates=ALL)
- . = ..()
. = ..()
if(!stored)
icon_state = "blackbox_b"
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index 6445347cc9c2..47e49818dff2 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -36,7 +36,6 @@
/obj/machinery/transformer/update_icon(updates=ALL)
. = ..()
- ..()
if(stat & (BROKEN|NOPOWER) || cooldown == 1)
icon_state = "separator-AO0"
else
diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm
index 53d381035fc8..87594863927f 100644
--- a/code/game/mecha/mech_bay.dm
+++ b/code/game/mecha/mech_bay.dm
@@ -140,7 +140,6 @@
/obj/machinery/computer/mech_bay_power_console/update_icon(updates=ALL)
. = ..()
- ..()
if(!recharge_port || !recharge_port.recharging_mech || !recharge_port.recharging_mech.cell || !(recharge_port.recharging_mech.cell.charge < recharge_port.recharging_mech.cell.maxcharge) || stat & (NOPOWER|BROKEN))
return
add_overlay("recharge_comp_on")
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 14c6919e5b8c..c74ea54c3004 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -174,7 +174,6 @@
. = ..()
if (silicon_pilot && silicon_icon_state)
icon_state = silicon_icon_state
- . = ..()
/obj/mecha/get_cell()
return cell
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index a1f25d5e1826..4ea3c83a2e1c 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -41,7 +41,6 @@
/obj/mecha/working/ripley/update_icon(updates=ALL)
. = ..()
- ..()
var/datum/component/armor_plate/C = GetComponent(/datum/component/armor_plate)
if (C.amount)
cut_overlays()
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 6e424f8525a3..3d7fb5a5d6f7 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -738,7 +738,6 @@ RLD
/obj/item/construction/rcd/update_icon(updates=ALL)
. = ..()
- ..()
if(has_ammobar)
var/ratio = CEILING((matter / max_matter) * ammo_sections, 1)
cut_overlays() //To prevent infinite stacking of overlays
@@ -879,8 +878,6 @@ RLD
/obj/item/construction/rld/update_icon(updates=ALL)
. = ..()
icon_state = "rld-[round(matter/35)]"
- ..()
-
/obj/item/construction/rld/attack_self(mob/user)
..()
diff --git a/code/game/objects/items/ashtray.dm b/code/game/objects/items/ashtray.dm
index 9b2d4eb4a708..ed5a4aec72ff 100644
--- a/code/game/objects/items/ashtray.dm
+++ b/code/game/objects/items/ashtray.dm
@@ -7,7 +7,6 @@
/obj/item/ashtray/update_icon(updates=ALL)
. = ..()
- ..()
overlays.Cut()
if(contents.len == max_butts)
add_overlay(image('icons/obj/objects.dmi',"ashtray_full"))
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 866df2d71ec6..5e4d24e02c17 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -53,7 +53,6 @@
/obj/item/defibrillator/update_icon(updates=ALL)
. = ..()
update_power()
- update_overlays()
update_charge()
/obj/item/defibrillator/proc/update_power()
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index ff9713892dcc..dda2a31f9e74 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -99,7 +99,6 @@
icon_state = "geiger_on_4"
if(RAD_LEVEL_CRITICAL + 1 to INFINITY)
icon_state = "geiger_on_5"
- ..()
/obj/item/geiger_counter/proc/update_sound()
var/datum/looping_sound/geiger/loop = soundloop
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 36661fe3d9f0..1a2fddb5c0ea 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -47,7 +47,6 @@
return TRUE
/obj/item/megaphone/update_icon(updates=ALL)
- . = ..()
. = ..()
cut_overlays()
var/mutable_appearance/base_overlay
diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm
index d9c4d8a49566..fc42205394d5 100644
--- a/code/game/objects/items/dice.dm
+++ b/code/game/objects/items/dice.dm
@@ -142,9 +142,9 @@
w_class = WEIGHT_CLASS_SMALL
sides = 100
-/obj/item/dice/d100/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/dice/d100/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/dice/eightbd20
name = "strange d20"
@@ -153,9 +153,9 @@
sides = 20
special_faces = list("It is certain","It is decidedly so","Without a doubt","Yes, definitely","You may rely on it","As I see it, yes","Most likely","Outlook good","Yes","Signs point to yes","Reply hazy try again","Ask again later","Better not tell you now","Cannot predict now","Concentrate and ask again","Don't count on it","My reply is no","My sources say no","Outlook not so good","Very doubtful")
-/obj/item/dice/eightbd20/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/dice/eightbd20/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/dice/fourdd6
name = "4d d6"
@@ -164,9 +164,9 @@
sides = 48
special_faces = list("Cube-Side: 1-1","Cube-Side: 1-2","Cube-Side: 1-3","Cube-Side: 1-4","Cube-Side: 1-5","Cube-Side: 1-6","Cube-Side: 2-1","Cube-Side: 2-2","Cube-Side: 2-3","Cube-Side: 2-4","Cube-Side: 2-5","Cube-Side: 2-6","Cube-Side: 3-1","Cube-Side: 3-2","Cube-Side: 3-3","Cube-Side: 3-4","Cube-Side: 3-5","Cube-Side: 3-6","Cube-Side: 4-1","Cube-Side: 4-2","Cube-Side: 4-3","Cube-Side: 4-4","Cube-Side: 4-5","Cube-Side: 4-6","Cube-Side: 5-1","Cube-Side: 5-2","Cube-Side: 5-3","Cube-Side: 5-4","Cube-Side: 5-5","Cube-Side: 5-6","Cube-Side: 6-1","Cube-Side: 6-2","Cube-Side: 6-3","Cube-Side: 6-4","Cube-Side: 6-5","Cube-Side: 6-6","Cube-Side: 7-1","Cube-Side: 7-2","Cube-Side: 7-3","Cube-Side: 7-4","Cube-Side: 7-5","Cube-Side: 7-6","Cube-Side: 8-1","Cube-Side: 8-2","Cube-Side: 8-3","Cube-Side: 8-4","Cube-Side: 8-5","Cube-Side: 8-6")
-/obj/item/dice/fourdd6/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/dice/fourdd6/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/dice/attack_self(mob/user)
diceroll(user)
diff --git a/code/game/objects/items/granters/martial_arts/plasma_fist.dm b/code/game/objects/items/granters/martial_arts/plasma_fist.dm
index cac0d918d85b..856e5ea66376 100644
--- a/code/game/objects/items/granters/martial_arts/plasma_fist.dm
+++ b/code/game/objects/items/granters/martial_arts/plasma_fist.dm
@@ -21,7 +21,6 @@
update_appearance(UPDATE_ICON)
/obj/item/book/granter/martial/plasma_fist/update_icon(updates=ALL)
- . = ..()
. = ..()
if(uses <= 0)
name = "empty scroll"
diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm
index 4b48192e07dc..10cd08ea8e55 100644
--- a/code/game/objects/items/holy_weapons.dm
+++ b/code/game/objects/items/holy_weapons.dm
@@ -514,7 +514,6 @@
update_appearance(UPDATE_ICON)
/obj/item/nullrod/dualsword/update_icon(updates=ALL)
- . = ..()
. = ..()
item_state = swords ? "fulldual" : "emptydual"
icon_state = item_state
diff --git a/code/game/objects/items/laser_level.dm b/code/game/objects/items/laser_level.dm
index bb9be77f5012..e2632c042721 100644
--- a/code/game/objects/items/laser_level.dm
+++ b/code/game/objects/items/laser_level.dm
@@ -33,8 +33,6 @@
. = ..()
cut_overlays()
add_overlay("[initial(icon_state)][lightlevel]")
- return
-
/obj/item/laserlevel/proc/update_overlay(mob/user)
user.clear_fullscreen("laser",0)
diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm
index 5fc9a083fee1..e8066981d2e9 100644
--- a/code/game/objects/items/mail.dm
+++ b/code/game/objects/items/mail.dm
@@ -74,7 +74,6 @@
update_appearance(UPDATE_ICON)
/obj/item/mail/update_icon(updates=ALL)
- . = ..()
. = ..()
var/bonus_stamp_offset = 0
for(var/stamp in stamps)
@@ -219,7 +218,6 @@
icon_state = "mail"
/obj/structure/closet/crate/mail/update_icon(updates=ALL)
- . = ..()
. = ..()
if(opened)
icon_state = "[initial(icon_state)]open"
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 906729a5f60f..98a08193b6f3 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -738,7 +738,6 @@
update_appearance(UPDATE_ICON)
/obj/item/melee/roastingstick/update_icon(updates=ALL)
- . = ..()
. = ..()
cut_overlays()
if (held_sausage)
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 4c234490334c..caf5a990c7ee 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -177,12 +177,8 @@
var/static/list/charge_machines = typecacheof(list(/obj/machinery/cell_charger, /obj/machinery/recharger, /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port))
var/static/list/charge_items = typecacheof(list(/obj/item/stock_parts/cell, /obj/item/gun/energy))
-/obj/item/borg/charger/Initialize(mapload)
- . = ..()
-
/obj/item/borg/charger/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "charger_[mode]"
/obj/item/borg/charger/attack_self(mob/user)
diff --git a/code/game/objects/items/stacks/license_plates.dm b/code/game/objects/items/stacks/license_plates.dm
index e58247ffffc4..8c9b3b94e31f 100644
--- a/code/game/objects/items/stacks/license_plates.dm
+++ b/code/game/objects/items/stacks/license_plates.dm
@@ -24,7 +24,6 @@
///Override to allow for variations
/obj/item/stack/license_plates/filled/update_icon(updates=ALL)
- . = ..()
. = ..()
if(novariants)
return
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index f9567d95f287..11083bcbfd47 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -421,7 +421,7 @@
/obj/item/stack/medical/mesh/advanced/update_icon(updates=ALL)
. = ..()
if(is_open)
- return ..()
+ return
icon_state = "aloe_mesh_closed"
/obj/item/stack/medical/aloe
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 80358e6e495c..d096c3a2a055 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -90,9 +90,9 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
is_cyborg = 1
cost = 250
-/obj/item/stack/rods/cyborg/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/stack/rods/cyborg/Initialize(mapload, new_amount, merge)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/stack/rods/ten
amount = 10
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 50b506c54fc8..6eaab252f8c7 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -84,7 +84,6 @@
icon_state = "[initial(icon_state)]_2"
else
icon_state = "[initial(icon_state)]_3"
- ..()
/obj/item/stack/examine(mob/user)
. = ..()
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index a7ac6b5fcf8c..e8b99a0ffb88 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -24,7 +24,6 @@
for(var/obj/item/I in contents)
var/mutable_appearance/M = I.get_belt_overlay()
add_overlay(M)
- ..()
/obj/item/storage/belt/Initialize(mapload)
. = ..()
@@ -818,7 +817,6 @@
/obj/item/storage/belt/quiver/update_icon(updates=ALL)
. = ..()
- ..()
if(content_overlays && ismob(loc))
var/mob/M = loc
M.update_inv_belt()
@@ -1198,7 +1196,6 @@
if(loc && isliving(loc))
var/mob/living/L = loc
L.regenerate_icons()
- ..()
/obj/item/storage/belt/sabre/PopulateContents()
new /obj/item/melee/sabre(src)
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 37cbcd0586cd..ab28b67f6e74 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -50,7 +50,6 @@
return SHAME
/obj/item/storage/box/update_icon(updates=ALL)
- . = ..()
. = ..()
if(illustration)
cut_overlays()
@@ -989,7 +988,8 @@
. = ..()
if(contents.len == 0)
icon_state = "[item_state]"
- else icon_state = "[item_state]_closed"
+ else
+ icon_state = "[item_state]_closed"
/obj/item/storage/box/papersack/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pen))
diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm
index 2938abb1d3d7..364a2a65629e 100644
--- a/code/game/objects/items/storage/lockbox.dm
+++ b/code/game/objects/items/storage/lockbox.dm
@@ -268,7 +268,6 @@
if(!broken)
var/mutable_appearance/led = mutable_appearance(icon, "led[locked]")
add_overlay(led)
- ..()
/obj/item/storage/lockbox/vialbox/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index e966a9cbb2e2..3dbc8072f82a 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -32,7 +32,6 @@
/obj/item/storage/toolbox/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
if(has_latches)
add_overlay(latches)
diff --git a/code/game/objects/items/syndicateReverseCard.dm b/code/game/objects/items/syndicateReverseCard.dm
index f0b2ff3b5184..0ea8f9ab93e8 100644
--- a/code/game/objects/items/syndicateReverseCard.dm
+++ b/code/game/objects/items/syndicateReverseCard.dm
@@ -16,7 +16,6 @@
/obj/item/syndicateReverseCard/update_icon(updates=ALL)
. = ..()
- ..()
if (used)
cut_overlays()
add_overlay(image('icons/obj/toy.dmi', icon_state = "reverse_overlay"))
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 2dde3457c955..5b901dee2655 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -65,7 +65,6 @@
ratio = CEILING(ratio*4, 1) * 25
add_overlay("[initial(icon_state)][ratio]")
update_torch()
- return
/obj/item/weldingtool/process(delta_time)
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index c97b6666fe21..a3d59a6fb1d1 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -108,10 +108,6 @@
return
unwield(user)
-/obj/item/twohanded/update_icon(updates=ALL)
- . = ..()
- return
-
/obj/item/twohanded/attack_self(mob/user)
. = ..()
if(wielded) //Trying to unwield it
@@ -1407,8 +1403,6 @@
. = ..()
hitsound = wielded ? 'yogstation/sound/weapons/bat_hit.ogg' : 'sound/items/trayhit1.ogg' //big donk if wielded
item_state = "bigspoon[wielded]" //i don't know why it's item_state rather than icon_state like every other wielded weapon
- return
-
/*
Broom
diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm
index f975c514e2a0..620c9f0a80fd 100644
--- a/code/game/objects/structures/aliens.dm
+++ b/code/game/objects/structures/aliens.dm
@@ -240,7 +240,6 @@
/obj/structure/alien/egg/update_icon(updates=ALL)
. = ..()
- ..()
switch(status)
if(GROWING)
icon_state = "[base_icon]_growing"
diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm
index 2eb79672cea6..2586deeda6f9 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -299,7 +299,6 @@
/obj/structure/sign/painting/update_icon(updates=ALL)
. = ..()
- . = ..()
if(C && C.generated_icon)
icon_state = null
diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
index 30617e266037..dd9a8aead137 100644
--- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm
+++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
@@ -50,7 +50,6 @@
/obj/structure/closet/body_bag/update_icon(updates=ALL)
. = ..()
- ..()
if (tagged)
add_overlay("bodybag_label")
@@ -192,7 +191,6 @@
return ..()
/obj/structure/closet/body_bag/environmental/prisoner/update_icon(updates=ALL)
- . = ..()
. = ..()
if(sinched)
icon_state = initial(icon_state) + "_sinched"
@@ -295,7 +293,6 @@
sinch_time = 4 SECONDS
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/update_icon(updates=ALL)
- . = ..()
. = ..()
var/obj/item/bodybag/environmental/prisoner/syndicate/inner_bag = foldedbag_instance
if(sinched && inner_bag && inner_bag.killing)
diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm
index b8a9136366de..2107df71268d 100644
--- a/code/game/objects/structures/crates_lockers/crates/bins.dm
+++ b/code/game/objects/structures/crates_lockers/crates/bins.dm
@@ -14,7 +14,6 @@
/obj/structure/closet/crate/bin/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
if(contents.len == 0)
add_overlay("largebing")
diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm
index abe953ff338a..37003268a607 100644
--- a/code/game/objects/structures/crates_lockers/crates/secure.dm
+++ b/code/game/objects/structures/crates_lockers/crates/secure.dm
@@ -15,7 +15,6 @@
/obj/structure/closet/crate/secure/update_icon(updates=ALL)
. = ..()
- ..()
if(broken)
add_overlay("securecrateemag")
else if(locked)
diff --git a/code/game/objects/structures/headpike.dm b/code/game/objects/structures/headpike.dm
index 140f6995e1fb..f41dcb984f2a 100644
--- a/code/game/objects/structures/headpike.dm
+++ b/code/game/objects/structures/headpike.dm
@@ -40,7 +40,6 @@
/obj/structure/headpike/update_icon(updates=ALL)
. = ..()
- ..()
var/obj/item/bodypart/head/H = locate() in contents
var/mutable_appearance/MA = new()
if(H)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index c07dbbce1426..7d608bc59114 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -29,6 +29,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
var/breakout_time = 600
/obj/structure/bodycontainer/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
. = ..()
GLOB.bodycontainers += src
recursive_organ_check(src)
@@ -45,10 +46,6 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
..()
update_appearance(UPDATE_ICON)
-/obj/structure/bodycontainer/update_icon(updates=ALL)
- . = ..()
- return
-
/obj/structure/bodycontainer/relaymove(mob/user)
if(user.stat || !isturf(loc))
return
@@ -160,6 +157,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
/obj/structure/bodycontainer/morgue/Initialize(mapload)
. = ..()
+ RemoveElement(/datum/element/update_icon_blocker)
connected = new/obj/structure/tray/m_tray(src)
connected.connected = src
@@ -231,6 +229,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
/obj/structure/bodycontainer/crematorium/Initialize(mapload)
. = ..()
+ RemoveElement(/datum/element/update_icon_blocker)
connected = new /obj/structure/tray/c_tray(src)
connected.connected = src
@@ -238,17 +237,14 @@ GLOBAL_LIST_EMPTY(crematoriums)
. = ..()
if(!connected || connected.loc != src)
icon_state = "crema0"
- else
-
- if(src.contents.len > 1)
- src.icon_state = "crema2"
- else
- src.icon_state = "crema1"
-
- if(locked)
- src.icon_state = "crema_active"
-
- return
+ return
+ if(locked)
+ icon_state = "crema_active"
+ return
+ if(contents.len > 1)
+ icon_state = "crema2"
+ return
+ icon_state = "crema1"
/obj/structure/bodycontainer/crematorium/proc/cremate(mob/user)
if(locked)
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 8e63a2859bb8..3656fe55525e 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -70,7 +70,6 @@
. += span_notice("You can alt-click to change the temperature.")
/obj/machinery/shower/update_icon(updates=ALL)
- . = ..()
. = ..()
cut_overlays()
if(on)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index e55d2ebd8db1..fd6a4fc82d11 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -74,7 +74,6 @@
. = ..()
icon_state = "toilet[open][cistern]"
-
/obj/structure/toilet/attackby(obj/item/I, mob/living/user, params)
if(I.tool_behaviour == TOOL_CROWBAR)
to_chat(user, span_notice("You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]..."))
diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm
index 64cfc6ad6a27..fc32106cff7d 100644
--- a/code/game/turfs/simulated/floor/fancy_floor.dm
+++ b/code/game/turfs/simulated/floor/fancy_floor.dm
@@ -297,7 +297,7 @@
/turf/open/floor/carpet/update_icon(updates=ALL)
. = ..()
- if(!..())
+ if(!.)
return 0
if(!broken && !burnt)
if(smooth)
diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm
index 0b33a56f5970..12e4fcbc5d57 100644
--- a/code/game/turfs/simulated/floor/light_floor.dm
+++ b/code/game/turfs/simulated/floor/light_floor.dm
@@ -45,7 +45,6 @@
/turf/open/floor/light/update_icon(updates=ALL)
. = ..()
- ..()
if(on)
switch(state)
if(0)
diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm
index eeef805e9ea7..b6e340a7e304 100644
--- a/code/game/turfs/simulated/floor/mineral_floor.dm
+++ b/code/game/turfs/simulated/floor/mineral_floor.dm
@@ -25,7 +25,7 @@
/turf/open/floor/mineral/update_icon(updates=ALL)
. = ..()
- if(!..())
+ if(!.)
return 0
if(!broken && !burnt)
if( !(icon_state in icons) )
diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm
index d47d9e49b5d2..5cdcbb103786 100644
--- a/code/game/turfs/simulated/floor/plasteel_floor.dm
+++ b/code/game/turfs/simulated/floor/plasteel_floor.dm
@@ -15,7 +15,7 @@
/turf/open/floor/plasteel/update_icon(updates=ALL)
. = ..()
- if(!..())
+ if(!.)
return 0
if(!broken && !burnt)
icon = icon_regular_floor
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index b639e4b35807..8940fca47bce 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -46,7 +46,7 @@
/turf/open/floor/plating/update_icon(updates=ALL)
. = ..()
- if(!..())
+ if(!.)
return
if(!broken && !burnt)
icon_state = icon_plating //Because asteroids are 'platings' too.
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index dbcdbd8075be..018b0a87cce5 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -405,9 +405,9 @@
Congratulations! You are now trained for invasive xenobiology research!"}
-/obj/item/paper/guides/antag/abductor/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/paper/guides/antag/abductor/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/paper/guides/antag/abductor/AltClick()
return //otherwise it would fold into a paperplane.
diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm
index a0a6dcbfc614..b791fbd4d78a 100644
--- a/code/modules/antagonists/abductor/equipment/gland.dm
+++ b/code/modules/antagonists/abductor/equipment/gland.dm
@@ -50,9 +50,9 @@
else
holder.icon_state = "hudgland_spent"
-/obj/item/organ/heart/gland/update_icon(updates=ALL)
- . = ..()
- return // stop it from switching to the non existent heart_on sprite
+/obj/item/organ/heart/gland/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/organ/heart/gland/proc/mind_control(command, mob/living/user)
if(!ownerCheck() || !mind_control_uses || active_mind_control)
diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm
index edf7fe0db559..90b542580003 100644
--- a/code/modules/antagonists/blob/structures/_blob.dm
+++ b/code/modules/antagonists/blob/structures/_blob.dm
@@ -346,7 +346,6 @@
/obj/structure/blob/normal/update_icon(updates=ALL)
. = ..()
- ..()
if(obj_integrity <= 15)
icon_state = "blob_damaged"
name = "fragile blob"
diff --git a/code/modules/antagonists/blob/structures/shield.dm b/code/modules/antagonists/blob/structures/shield.dm
index d2ec0c51037e..0d84e70c206f 100644
--- a/code/modules/antagonists/blob/structures/shield.dm
+++ b/code/modules/antagonists/blob/structures/shield.dm
@@ -21,7 +21,6 @@
/obj/structure/blob/shield/update_icon(updates=ALL)
. = ..()
- ..()
if(obj_integrity < max_integrity * 0.5)
icon_state = "[initial(icon_state)]_damaged"
name = "weakened [initial(name)]"
diff --git a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
index 16eec3661a74..43b02245d487 100644
--- a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
+++ b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
@@ -1188,7 +1188,6 @@
/obj/structure/bloodsucker/candelabrum/update_icon(updates=ALL)
. = ..()
icon_state = "candelabrum[lit ? "_lit" : ""]"
- return ..()
/obj/structure/bloodsucker/candelabrum/examine(mob/user)
. = ..()
diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm
index d6742eabdee2..53d34e0adbea 100644
--- a/code/modules/antagonists/brother/brother.dm
+++ b/code/modules/antagonists/brother/brother.dm
@@ -169,7 +169,6 @@
meeting_areas -= meeting_area
/datum/team/brother_team/proc/update_name()
- . = ..()
var/list/last_names = list()
for(var/datum/mind/M in members)
var/list/split_name = splittext(M.name," ")
diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm
index 0b6c53162d2b..f5892b008e6e 100644
--- a/code/modules/antagonists/ert/ert.dm
+++ b/code/modules/antagonists/ert/ert.dm
@@ -73,7 +73,6 @@
name_source = GLOB.last_names
/datum/antagonist/ert/proc/update_name()
- . = ..()
owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]")
/datum/antagonist/ert/deathsquad/New()
diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm
index d12890a2fc92..7f7ac455bbc8 100644
--- a/code/modules/antagonists/official/official.dm
+++ b/code/modules/antagonists/official/official.dm
@@ -43,7 +43,6 @@
name_source = GLOB.last_names
/datum/antagonist/centcom/proc/update_name()
- . = ..()
owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]")
/datum/antagonist/centcom/on_gain()
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index 21032abf8445..367412be4cdd 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -75,9 +75,9 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "demon_heart-on"
-/obj/item/organ/heart/demon/update_icon(updates=ALL)
- . = ..()
- return //always beating visually
+/obj/item/organ/heart/demon/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/organ/heart/demon/attack(mob/M, mob/living/carbon/user, obj/target)
if(M != user)
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index 434a75546283..72b732ed6f49 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -63,7 +63,6 @@
if(holder)
holder.update_appearance(UPDATE_ICON)
- return
/obj/item/assembly/infra/dropped()
. = ..()
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index f741cf0d8d08..498cc4743f4c 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -104,7 +104,6 @@
attached_overlays += "prox_scanning"
if(holder)
holder.update_appearance(UPDATE_ICON)
- return
/obj/item/assembly/prox_sensor/ui_status(mob/user)
if(is_secured(user))
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 32931ef6f261..48887ddd4630 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -48,7 +48,6 @@
. = ..()
if(holder)
holder.update_appearance(UPDATE_ICON)
- return
/obj/item/assembly/signaler/ui_status(mob/user)
if(is_secured(user))
diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm
index aa5d64062e76..0bc46b3f7045 100644
--- a/code/modules/atmospherics/machinery/atmosmachinery.dm
+++ b/code/modules/atmospherics/machinery/atmosmachinery.dm
@@ -126,7 +126,6 @@ GLOBAL_LIST_EMPTY(pipeimages)
/obj/machinery/atmospherics/update_icon(updates=ALL)
. = ..()
layer = initial(layer) + piping_layer / 1000
- return ..()
/obj/machinery/atmospherics/proc/can_be_node(obj/machinery/atmospherics/target, iteration)
return connection_check(target, piping_layer)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
index 0efa3051ad6e..f3f385d3384f 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
@@ -95,8 +95,6 @@
add_overlay(cap)
- return ..()
-
/obj/machinery/atmospherics/components/binary/circulator/update_icon_nopipes()
cut_overlays()
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm
index 117795926328..2f213ce0464a 100644
--- a/code/modules/atmospherics/machinery/components/components_base.dm
+++ b/code/modules/atmospherics/machinery/components/components_base.dm
@@ -33,7 +33,7 @@
plane = showpipe ? GAME_PLANE : FLOOR_PLANE
if(!showpipe)
- return ..()
+ return
var/connected = 0 //Direction bitset
@@ -50,7 +50,6 @@
if(!shift_underlay_only)
PIPING_LAYER_SHIFT(src, piping_layer)
- return ..()
/obj/machinery/atmospherics/components/proc/get_pipe_underlay(state, dir, color = null)
if(color)
diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
index b66bc804319c..2910d03bad60 100644
--- a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
+++ b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
@@ -73,7 +73,6 @@
SSair.add_to_rebuild_queue(src)
/obj/machinery/atmospherics/components/unary/hypertorus/update_icon(updates=ALL)
- . = ..()
. = ..()
if(panel_open)
icon_state = icon_state_open
diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
index 590db0133660..a22c2400f820 100644
--- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
+++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
@@ -94,7 +94,6 @@
icon_state = "[base_icon]-off"
/obj/machinery/atmospherics/components/binary/crystallizer/update_icon(updates=ALL)
- . = ..()
. = ..()
update_icon_state()
update_overlays()
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
index 38191eb090a0..87a2029bf595 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
@@ -60,8 +60,6 @@
add_overlay(cap)
- return ..()
-
/obj/machinery/atmospherics/components/trinary/filter/update_icon_nopipes()
var/on_state = on && nodes[1] && nodes[2] && nodes[3] && is_operational()
icon_state = "filter_[on_state ? "on" : "off"]-[set_overlay_offset(piping_layer)][flipped ? "_f" : ""]"
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index 3b2381225198..9e9be0dd2f06 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -47,8 +47,6 @@
add_overlay(cap)
- return ..()
-
/obj/machinery/atmospherics/components/trinary/mixer/update_icon_nopipes()
var/on_state = on && nodes[1] && nodes[2] && nodes[3] && is_operational()
icon_state = "mixer_[on_state ? "on" : "off"]-[set_overlay_offset(piping_layer)][flipped ? "_f" : ""]"
diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm
index 22f5650198dc..bf36ad6a1740 100644
--- a/code/modules/atmospherics/machinery/pipes/pipes.dm
+++ b/code/modules/atmospherics/machinery/pipes/pipes.dm
@@ -99,7 +99,6 @@
. = ..()
/obj/machinery/atmospherics/pipe/update_icon(updates=ALL)
- . = ..()
. = ..()
update_alpha()
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index 2f5985e8cfa1..4cd2f39cf900 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -413,9 +413,9 @@
icon_state = "1"
color = rgb(0,0,255)
-/obj/structure/ladder/unbreakable/rune/update_icon(updates=ALL)
- . = ..()
- return
+/obj/structure/ladder/unbreakable/rune/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/structure/ladder/unbreakable/rune/show_fluff_message(up,mob/user)
user.visible_message("[user] activates \the [src].",span_notice("You activate \the [src]."))
diff --git a/code/modules/awaymissions/pamphlet.dm b/code/modules/awaymissions/pamphlet.dm
index 42a8a767c7a2..b28f517ea93b 100644
--- a/code/modules/awaymissions/pamphlet.dm
+++ b/code/modules/awaymissions/pamphlet.dm
@@ -35,6 +35,6 @@
environs."
//we don't want the silly text overlay!
-/obj/item/paper/pamphlet/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/paper/pamphlet/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
diff --git a/code/modules/buildmode/buttons.dm b/code/modules/buildmode/buttons.dm
index 258c1a93e7e7..d88410fc43f5 100644
--- a/code/modules/buildmode/buttons.dm
+++ b/code/modules/buildmode/buttons.dm
@@ -51,7 +51,6 @@
/atom/movable/screen/buildmode/bdir/update_icon(updates=ALL)
. = ..()
dir = bd.build_dir
- return
/atom/movable/screen/buildmode/bdir/Click()
bd.toggle_dirswitch()
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 2675ddcde344..f58d3c79c4c6 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -42,7 +42,6 @@
H.update_inv_head()
for(var/datum/action/A as anything in actions)
A.build_all_button_icons(force = TRUE)
- ..()
/obj/item/clothing/head/hardhat/proc/turn_on(mob/user)
set_light_on(TRUE)
@@ -162,7 +161,6 @@
cut_overlays()
if(!up)
add_overlay("weldvisor")
- ..()
/obj/item/clothing/head/hardhat/weldhat/orange
icon_state = "hardhat0_orange"
diff --git a/code/modules/clothing/neck/bodycamera.dm b/code/modules/clothing/neck/bodycamera.dm
index bdb6d15adc23..511acab4d9cf 100644
--- a/code/modules/clothing/neck/bodycamera.dm
+++ b/code/modules/clothing/neck/bodycamera.dm
@@ -56,7 +56,6 @@
/obj/item/clothing/neck/bodycam/update_icon(updates=ALL)
. = ..()
- ..()
var/suffix = "off"
if(bodcam.status)
suffix = "on"
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 22a3a740a4f9..777328cfc6ba 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -61,6 +61,7 @@
/obj/item/reagent_containers/food/snacks/customizable/update_name(updates=ALL, obj/item/reagent_containers/food/snacks/S)
+ . = ..()
for(var/obj/item/I in ingredients)
if(!istype(S, I.type))
customname = "custom"
@@ -103,6 +104,7 @@
filling_color = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3], rgbcolor[4])
/obj/item/reagent_containers/food/snacks/customizable/update_overlays(obj/item/reagent_containers/food/snacks/S)
+ . = ..()
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
diff --git a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
index a88ac75caedf..3af46ad12fbf 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
@@ -107,7 +107,6 @@
visible_message("[griddled_item] doesn't seem to be doing too great on the [src]!")
/obj/machinery/griddle/update_icon(updates=ALL)
- . = ..()
. = ..()
if(panel_open)
icon_state = "griddle[variant]_o"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
index 24a1ab565ab4..782408da1719 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
@@ -52,7 +52,6 @@
icon_state = "oven_on"
else
icon_state = "oven_off"
- return ..()
/obj/machinery/oven/update_overlays()
. = ..()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index a50e1a63c76f..db10bf105bac 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -479,7 +479,6 @@
/obj/machinery/smartfridge/drying_rack/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
if(drying)
add_overlay("drying_rack_drying")
diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm
index 5688d03a52c2..7cab5a48b863 100644
--- a/code/modules/holodeck/turfs.dm
+++ b/code/modules/holodeck/turfs.dm
@@ -121,7 +121,7 @@
/turf/open/floor/holofloor/carpet/update_icon(updates=ALL)
. = ..()
- if(!..())
+ if(!.)
return 0
if(intact)
queue_smooth(src)
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 02aa0588d5d8..731969a2e981 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -57,7 +57,6 @@
/obj/machinery/plantgenes/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
if((stat & (BROKEN|NOPOWER)))
icon_state = "dnamod-off"
diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm
index 1c80c99f58f1..119471b4d873 100644
--- a/code/modules/library/soapstone.dm
+++ b/code/modules/library/soapstone.dm
@@ -149,7 +149,6 @@
/obj/structure/chisel_message/update_icon(updates=ALL)
. = ..()
- ..()
var/hash = md5(hidden_message)
var/newcolor = copytext_char(hash, 1, 7)
add_atom_colour("#[newcolor]", FIXED_COLOUR_PRIORITY)
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index e23ef87c55ac..6ab45101d717 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -128,7 +128,6 @@
/obj/item/clothing/head/helmet/space/hostile_environment/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
var/mutable_appearance/glass_overlay = mutable_appearance(icon, "hostile_env_glass")
glass_overlay.appearance_flags = RESET_COLOR
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 2c8d7d8a35ca..c80649adfa1a 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -511,7 +511,6 @@
/obj/item/twohanded/kinetic_crusher/mega/update_icon(updates=ALL)
. = ..()
icon_state = "magmite_crusher[wielded]"
- return
/obj/item/projectile/destabilizer/mega
name = "destabilizing force"
diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm
index ce92bd03525e..796b0832b7e5 100644
--- a/code/modules/mining/equipment/regenerative_core.dm
+++ b/code/modules/mining/equipment/regenerative_core.dm
@@ -142,8 +142,7 @@
cut_overlays()
if(!inert && !preserved)
add_overlay("legion_soul_crackle")
- for(var/X in actions)
- var/datum/action/A = X
+ for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
/obj/item/organ/regenerative_core/legion/go_inert()
diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index dc5b647ebc1d..c5288c48e6c0 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -155,9 +155,9 @@
/obj/machinery/stasis/survival_pod/play_power_sound()
return
-/obj/machinery/stasis/survival_pod/update_icon(updates=ALL)
- . = ..()
- return
+/obj/machinery/stasis/survival_pod/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
//Computer
/obj/item/gps/computer
@@ -208,9 +208,9 @@
pitches = FALSE
var/empty = FALSE
-/obj/machinery/smartfridge/survival_pod/update_icon(updates=ALL)
- . = ..()
- return
+/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
. = ..()
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index afa11672d5a6..e371d42e9f3c 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -1746,7 +1746,6 @@ GLOBAL_LIST_EMPTY(aide_list)
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/item/twohanded/bonespear/stalwartpike/update_icon(updates=ALL)
- . = ..()
. = ..()
if(wielded)
icon_state = "stalwart_spear1"
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index 7adc53516bd8..8e5b02716e28 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -351,4 +351,3 @@
icon_state = initial(icon_state)
else
icon_state = "[initial(icon_state)]-off"
- return
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index a089b8509537..b5ec23277559 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -512,7 +512,6 @@
species = _species
/datum/action/innate/integrate_extract/proc/update_name()
- . = ..()
if(!species || !species.current_extract)
name = "Integrate Extract"
desc = "Eat a slime extract to use its properties."
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index b7d911f694b0..696b7b26b661 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -147,6 +147,9 @@
var/obj/item/light_eater/blade
decay_factor = 0
+/obj/item/organ/heart/nightmare/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/organ/heart/nightmare/attack(mob/M, mob/living/carbon/user, obj/target)
if(M != user)
@@ -179,10 +182,6 @@
/obj/item/organ/heart/nightmare/Stop()
return 0
-/obj/item/organ/heart/nightmare/update_icon(updates=ALL)
- . = ..()
- return //always beating visually
-
/obj/item/organ/heart/nightmare/process()
if(QDELETED(owner) || owner.stat != DEAD || !owner)
respawn_progress = 0
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index 5e5f30bf570d..095aa366d125 100644
--- a/code/modules/mob/living/simple_animal/bot/construction.dm
+++ b/code/modules/mob/living/simple_animal/bot/construction.dm
@@ -216,7 +216,6 @@
/obj/item/bot_assembly/floorbot/update_icon(updates=ALL)
. = ..()
- ..()
switch(build_step)
if(ASSEMBLY_FIRST_STEP)
desc = initial(desc)
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 98b3a5c7c4b1..6d79cced7647 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -136,7 +136,6 @@
if(load.layer < layer)
load.layer = layer + 0.01
add_overlay(load)
- return
/mob/living/simple_animal/bot/mulebot/ex_act(severity)
unload(0)
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index ef6110148b79..64d869412897 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -88,7 +88,6 @@
if(mode == BOT_HUNT)
icon_state = "[initial(icon_state)]-c"
return
- ..()
/mob/living/simple_animal/bot/secbot/turn_off()
..()
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index 101ece8a3a79..5fe89722a06c 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -636,9 +636,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
"}
-/obj/item/paper/guides/antag/guardian/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/paper/guides/antag/guardian/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/paper/guides/antag/guardian/wizard
name = "Guardian Guide"
diff --git a/code/modules/modular_computers/computers/item/laptop/laptop.dm b/code/modules/modular_computers/computers/item/laptop/laptop.dm
index ab0806994076..bdecc7e504cf 100644
--- a/code/modules/modular_computers/computers/item/laptop/laptop.dm
+++ b/code/modules/modular_computers/computers/item/laptop/laptop.dm
@@ -36,10 +36,9 @@
/obj/item/modular_computer/laptop/update_icon(updates=ALL)
. = ..()
if(screen_on)
- ..()
- else
- SSvis_overlays.remove_vis_overlay(physical, physical.managed_vis_overlays)
- icon_state = icon_state_closed
+ return
+ SSvis_overlays.remove_vis_overlay(physical, physical.managed_vis_overlays)
+ icon_state = icon_state_closed
/obj/item/modular_computer/laptop/attack_self(mob/user)
if(!screen_on)
diff --git a/code/modules/modular_computers/computers/item/tablet/tablet.dm b/code/modules/modular_computers/computers/item/tablet/tablet.dm
index 6e711b83f013..83fda287c284 100644
--- a/code/modules/modular_computers/computers/item/tablet/tablet.dm
+++ b/code/modules/modular_computers/computers/item/tablet/tablet.dm
@@ -62,7 +62,6 @@
/obj/item/modular_computer/tablet/update_icon(updates=ALL)
. = ..()
- ..()
if (!isnull(variants))
if(!finish_color)
finish_color = pick(variants)
diff --git a/code/modules/modular_computers/computers/machinery/console/modular_console.dm b/code/modules/modular_computers/computers/machinery/console/modular_console.dm
index 884ab9a5b1d5..006b8de4eb80 100644
--- a/code/modules/modular_computers/computers/machinery/console/modular_console.dm
+++ b/code/modules/modular_computers/computers/machinery/console/modular_console.dm
@@ -46,7 +46,6 @@
/obj/machinery/modular_computer/console/update_icon(updates=ALL)
. = ..()
- . = ..()
// this bit of code makes the computer hug the wall its next to
var/turf/T = get_turf(src)
diff --git a/code/modules/pai/card.dm b/code/modules/pai/card.dm
index b82e5c387f78..6ec83b0daa82 100644
--- a/code/modules/pai/card.dm
+++ b/code/modules/pai/card.dm
@@ -71,7 +71,6 @@
return OXYLOSS
/obj/item/pai_card/update_overlays()
- . = ..()
. = ..()
. += "pai-[emotion_icon]"
if(pai?.hacking_cable)
diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm
index f92fadcb5737..45e6b403b591 100644
--- a/code/modules/paperwork/contract.dm
+++ b/code/modules/paperwork/contract.dm
@@ -10,9 +10,9 @@
/obj/item/paper/contract/proc/update_text()
return
-/obj/item/paper/contract/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/paper/contract/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/paper/contract/infernal
var/contractType = 0
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 8c34c71035e8..af9533845905 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -393,9 +393,9 @@
icon_state = "scrap"
slot_flags = null
-/obj/item/paper/crumpled/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/paper/crumpled/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/paper/crumpled/bloody
icon_state = "scrap_bloodied"
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index 4b87641bb37a..8fc213ddfa14 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -36,7 +36,6 @@
/obj/item/papercutter/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
icon_state = (storedcutter ? "[initial(icon_state)]-cutter" : "[initial(icon_state)]")
if(storedpaper)
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index dc55d3dfe2b0..7e1334feb002 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -132,7 +132,6 @@
icon_state = "papershredder4"
if(paperamount == 9||paperamount == 10)
icon_state = "papershredder5"
- return
/obj/item/shreddedpaper
name = "shredded paper"
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 65020462c3e1..5861cbfc158e 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -337,9 +337,9 @@
maxcharge = 50000
ratingdesc = FALSE
-/obj/item/stock_parts/cell/infinite/abductor/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/stock_parts/cell/infinite/abductor/Initialize(mapload, override_maxcharge)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/stock_parts/cell/potato
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index b1001afca118..1187b3e45c18 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -45,7 +45,6 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
/obj/machinery/gravity_generator/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "[get_status()]_[sprite_number]"
/obj/machinery/gravity_generator/proc/get_status()
@@ -262,7 +261,6 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
/obj/machinery/gravity_generator/main/update_icon(updates=ALL)
. = ..()
- ..()
for(var/obj/O in parts)
O.update_appearance(UPDATE_ICON)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 652b2f1d9839..954026a7986b 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -115,7 +115,6 @@
/obj/machinery/power/solar/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
var/matrix/turner = matrix()
turner.Turn(azimuth_current)
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index 8f523deafe8d..a3fe5743d607 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -37,7 +37,6 @@
/obj/item/ammo_casing/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "[initial(icon_state)][BB && !CHECK_BITFIELD(casing_flags, CASINGFLAG_NO_LIVE_SPRITE) ? "-live" : ""]"
desc = "[initial(desc)][!BB && !CHECK_BITFIELD(casing_flags, CASINGFLAG_NO_LIVE_SPRITE) ? " This one is spent." : ""]"
diff --git a/code/modules/projectiles/ammunition/reusable/foam.dm b/code/modules/projectiles/ammunition/reusable/foam.dm
index 59bfa0b04f13..1da10cfbfa7d 100644
--- a/code/modules/projectiles/ammunition/reusable/foam.dm
+++ b/code/modules/projectiles/ammunition/reusable/foam.dm
@@ -12,7 +12,6 @@
/obj/item/ammo_casing/reusable/foam_dart/update_icon(updates=ALL)
. = ..()
- ..()
if (modified)
icon_state = "foamdart_empty"
else
diff --git a/code/modules/projectiles/attachments/_attachment.dm b/code/modules/projectiles/attachments/_attachment.dm
index 2db87086242d..9f96b0f2b493 100644
--- a/code/modules/projectiles/attachments/_attachment.dm
+++ b/code/modules/projectiles/attachments/_attachment.dm
@@ -38,7 +38,6 @@
/obj/item/attachment/update_icon(updates=ALL)
. = ..()
icon_state = "[initial(icon_state)][is_on ? "_on" : ""]"
- . = ..()
attached_gun?.update_attachments()
/obj/item/attachment/Destroy()
diff --git a/code/modules/projectiles/boxes_magazines/external/grenade.dm b/code/modules/projectiles/boxes_magazines/external/grenade.dm
index 2c22ca5bb099..afb3043a122e 100644
--- a/code/modules/projectiles/boxes_magazines/external/grenade.dm
+++ b/code/modules/projectiles/boxes_magazines/external/grenade.dm
@@ -7,7 +7,6 @@
/obj/item/ammo_box/magazine/m75/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "75-8"
else
diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm
index 992c69735e9e..9a9cef3e80e4 100644
--- a/code/modules/projectiles/boxes_magazines/external/lmg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm
@@ -34,5 +34,4 @@
/obj/item/ammo_box/magazine/mm712x82/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "a762[sprite_designation]-[round(ammo_count(),10)]"
diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm
index c3e5f9bfbcf2..8cf74d43c8bc 100644
--- a/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -66,7 +66,6 @@
/obj/item/ammo_box/magazine/m45/update_icon(updates=ALL)
. = ..()
- ..()
if (ammo_count() >= 8)
icon_state = "45-8"
else
@@ -84,7 +83,6 @@
/obj/item/ammo_box/magazine/pistolm9mm/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "9x19p-[ammo_count() ? "10" : "0"]"
//Desert Eagle
@@ -98,7 +96,6 @@
max_ammo = 7
/obj/item/ammo_box/magazine/m50/update_icon(updates=ALL)
- . = ..()
. = ..()
if (ammo_count() >= 7)
icon_state = "50ae-7"
@@ -117,7 +114,6 @@
/obj/item/ammo_box/magazine/v38/update_icon(updates=ALL)
. = ..()
- ..()
if (ammo_count() >= 8)
icon_state = "v38[sprite_designation]-8"
else
diff --git a/code/modules/projectiles/boxes_magazines/external/rechargable.dm b/code/modules/projectiles/boxes_magazines/external/rechargable.dm
index e260d3f80c78..a7760f29dcc0 100644
--- a/code/modules/projectiles/boxes_magazines/external/rechargable.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rechargable.dm
@@ -10,7 +10,6 @@
/obj/item/ammo_box/magazine/recharge/update_icon(updates=ALL)
. = ..()
- ..()
desc = "[initial(desc)] It has [stored_ammo.len] shot\s left."
cut_overlays()
var/cur_ammo = ammo_count()
@@ -32,7 +31,6 @@
/obj/item/ammo_box/magazine/recharge/lasgun/update_icon(updates=ALL)
. = ..()
- ..()
desc = "[initial(desc)] It has [stored_ammo.len] shot\s left."
if(ammo_count())
icon_state = "[initial(icon_state)]"
@@ -85,7 +83,6 @@
current_skin = "ntusp-l"
unique_reskin = list()
unique_reskin[current_skin] = current_skin
- ..()
current_skin = null
unique_reskin = null
@@ -140,7 +137,6 @@
/obj/item/ammo_box/magazine/recharge/ntusp/laser/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
var/cur_ammo = ammo_count()
if(cur_ammo)
diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm
index 32f27881dab2..c92d7bb0bda8 100644
--- a/code/modules/projectiles/boxes_magazines/external/rifle.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm
@@ -10,7 +10,6 @@
/obj/item/ammo_box/magazine/m10mm/rifle/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "75-8"
else
@@ -28,7 +27,6 @@
/obj/item/ammo_box/magazine/m556/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "5.56m[sprite_designation]-[round(ammo_count(),5)]"
/obj/item/ammo_box/magazine/m556/ap
@@ -59,7 +57,6 @@
/obj/item/ammo_box/magazine/r556/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "arg556[sprite_designation]"
else
@@ -101,7 +98,6 @@
/obj/item/ammo_box/magazine/m308/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "m308[sprite_designation]"
else
@@ -136,7 +132,6 @@
/obj/item/ammo_box/magazine/ks762/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "ks762[sprite_designation]"
else
diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
index 0777f32191fb..188f37e76d7c 100644
--- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm
+++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
@@ -12,7 +12,6 @@
/obj/item/ammo_box/magazine/m12g/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "m12g[sprite_designation]-8"
else
diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm
index cd50a4847b83..258e2fdd4508 100644
--- a/code/modules/projectiles/boxes_magazines/external/smg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/smg.dm
@@ -104,7 +104,6 @@
/obj/item/ammo_box/magazine/uzim9mm/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "uzi9mm-[round(ammo_count(),4)]"
//NT Saber SMG
@@ -119,7 +118,6 @@
/obj/item/ammo_box/magazine/smgm9mm/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "smg9mm[sprite_designation]-[ammo_count() ? "42" : "0"]"
/obj/item/ammo_box/magazine/smgm9mm/ap
@@ -150,7 +148,6 @@
/obj/item/ammo_box/magazine/smgm45/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "c20r45[sprite_designation]-[round(ammo_count(),2)]"
/obj/item/ammo_box/magazine/smgm45/ap
diff --git a/code/modules/projectiles/boxes_magazines/external/sniper.dm b/code/modules/projectiles/boxes_magazines/external/sniper.dm
index 3bb49412436c..82a20aca5fdf 100644
--- a/code/modules/projectiles/boxes_magazines/external/sniper.dm
+++ b/code/modules/projectiles/boxes_magazines/external/sniper.dm
@@ -11,7 +11,6 @@
/obj/item/ammo_box/magazine/sniper_rounds/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "[initial(icon_state)]-ammo"
else
diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm
index 9be6a9fd1e15..f6fb0b078a72 100644
--- a/code/modules/projectiles/boxes_magazines/external/toy.dm
+++ b/code/modules/projectiles/boxes_magazines/external/toy.dm
@@ -11,7 +11,6 @@
/obj/item/ammo_box/magazine/toy/smg/update_icon(updates=ALL)
. = ..()
- ..()
if(ammo_count())
icon_state = "smg9mm-42"
else
@@ -38,7 +37,6 @@
/obj/item/ammo_box/magazine/toy/smgm45/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "c20r45-[round(ammo_count(),2)]"
/obj/item/ammo_box/magazine/toy/smgm45/riot
@@ -54,7 +52,6 @@
/obj/item/ammo_box/magazine/toy/m762/update_icon(updates=ALL)
. = ..()
- ..()
icon_state = "a762-[round(ammo_count(),10)]"
/obj/item/ammo_box/magazine/toy/m762/riot
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index bb9c5b7319b4..e77255d3dddf 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -419,11 +419,6 @@
recent_shoot = world.time
return TRUE
-/obj/item/gun/update_icon(updates=ALL)
- . = ..()
- ..()
-
-
/obj/item/gun/proc/reset_semicd()
semicd = FALSE
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 6834aa2444c7..24fd47509c72 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -192,7 +192,6 @@
. = ..()
if (QDELETED(src))
return
- ..()
if(current_skin)
icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]"
else
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index e2c13f426957..b9111b829bdf 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -160,7 +160,6 @@
/obj/item/gun/ballistic/automatic/m90/update_icon(updates=ALL)
. = ..()
- ..()
switch(select)
if(0)
add_overlay("[initial(icon_state)]_semi")
@@ -268,7 +267,6 @@
/obj/item/gun/ballistic/automatic/l6_saw/update_icon(updates=ALL)
- . = ..()
. = ..()
add_overlay("l6_door_[cover_open ? "open" : "closed"]")
diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
index 0c3b290c55b3..a10caeb86e66 100644
--- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm
+++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
@@ -128,6 +128,7 @@
ammo_pack = loc
else
return INITIALIZE_HINT_QDEL //No pack, no gun
+ AddElement(/datum/element/update_icon_blocker)
return ..()
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index a93cf2c8afc2..e5e68eacca93 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -17,7 +17,6 @@
obj/item/gun/ballistic/rifle/update_icon(updates=ALL)
. = ..()
- ..()
add_overlay("[icon_state]_bolt[bolt_locked ? "_locked" : ""]")
obj/item/gun/ballistic/rifle/rack(mob/user = null)
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 2aeb79dee741..c768a5e14483 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -234,7 +234,6 @@
/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/update_icon(updates=ALL)
. = ..()
- ..()
if(slung)
icon_state = "ishotgunsling"
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index 256b25d52ccc..e2146c4b0eb2 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -14,7 +14,6 @@
casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/toy/update_icon(updates=ALL)
- . = ..()
. = ..()
add_overlay("[icon_state]_toy")
@@ -58,7 +57,6 @@
can_suppress = FALSE
/obj/item/gun/ballistic/shotgun/toy/update_icon(updates=ALL)
- . = ..()
. = ..()
add_overlay("[icon_state]_toy")
@@ -93,7 +91,6 @@
mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot
/obj/item/gun/ballistic/automatic/c20r/toy/update_icon(updates=ALL)
- . = ..()
. = ..()
add_overlay("[icon_state]_toy")
@@ -114,6 +111,5 @@
mag_type = /obj/item/ammo_box/magazine/toy/m762/riot
/obj/item/gun/ballistic/automatic/l6_saw/toy/update_icon(updates=ALL)
- . = ..()
. = ..()
add_overlay("[icon_state]_toy")
diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm
index 9b85ca3dcd5b..2cee2778a9df 100644
--- a/code/modules/projectiles/guns/energy/dueling.dm
+++ b/code/modules/projectiles/guns/energy/dueling.dm
@@ -231,7 +231,6 @@
var/setting
/obj/effect/temp_visual/dueling_chaff/update_icon(updates=ALL)
- . = ..()
. = ..()
switch(setting)
if(DUEL_SETTING_A)
@@ -270,7 +269,6 @@
var/setting
/obj/item/projectile/energy/duel/update_icon(updates=ALL)
- . = ..()
. = ..()
switch(setting)
if(DUEL_SETTING_A)
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index 5b6b2d251f2f..6429a775012f 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -32,7 +32,6 @@
/obj/item/gun/energy/e_gun/mini/update_icon(updates=ALL)
. = ..()
- ..()
if(gun_light && gun_light.on)
add_overlay("mini-light")
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index f6db13cb2336..4d2b76bd91e5 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -147,7 +147,6 @@
/obj/item/gun/energy/kinetic_accelerator/update_icon(updates=ALL)
. = ..()
- ..()
if(!can_shoot())
add_overlay("[icon_state]_empty")
else
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 5d7134111a6c..abb300488e82 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -36,7 +36,6 @@
/obj/item/gun/energy/decloner/update_icon(updates=ALL)
. = ..()
- ..()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
if(!QDELETED(cell) && (cell.charge > shot.e_cost))
add_overlay("decloner_spin")
@@ -139,6 +138,7 @@
toolspeed = 2
/obj/item/gun/energy/plasmacutter/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
. = ..()
AddComponent(/datum/component/butchering, 25, 105, 0, 'sound/weapons/plasma_cutter.ogg')
@@ -208,11 +208,6 @@
else
. = ..(amount=1)
-
-/obj/item/gun/energy/plasmacutter/update_icon(updates=ALL)
- . = ..()
- return
-
/obj/item/gun/energy/plasmacutter/adv
name = "advanced plasma cutter"
icon_state = "adv_plasmacutter"
@@ -378,6 +373,10 @@
can_charge = FALSE
use_cyborg_cell = TRUE
+/obj/item/gun/energy/printer/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
+
/obj/item/gun/energy/printer/flamethrower
name = "cyborg flame projector"
desc = "Originally intended for cyborgs to assist in atmospherics projects, was soon scrapped due to safety concerns."
@@ -387,10 +386,6 @@
can_charge = FALSE
use_cyborg_cell = TRUE
-/obj/item/gun/energy/printer/update_icon(updates=ALL)
- . = ..()
- return
-
/obj/item/gun/energy/printer/emp_act()
return
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index 785a0bc26720..9d932166f90e 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -108,9 +108,9 @@
recharge_newshot()
return 1
-/obj/item/gun/magic/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/gun/magic/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj)
to_chat(user, span_warning("The [name] whizzles quietly."))
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 41fe02823bcf..436a065f0843 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -79,7 +79,6 @@
return FALSE
/obj/item/gun/syringe/update_icon(updates=ALL)
- . = ..()
. = ..()
if(!has_syringe_overlay)
return
diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm
index 18e421308614..4d1e8d696ea2 100644
--- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm
+++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm
@@ -45,7 +45,6 @@
icon_state = "smoke0"
else
icon_state = "smoke1"
- return ..()
/obj/machinery/smoke_machine/RefreshParts()
var/new_volume = REAGENTS_BASE_VOLUME
diff --git a/code/modules/reagents/reagent_containers/borghypo.dm b/code/modules/reagents/reagent_containers/borghypo.dm
index 161978d3cd4a..9568d4d14527 100644
--- a/code/modules/reagents/reagent_containers/borghypo.dm
+++ b/code/modules/reagents/reagent_containers/borghypo.dm
@@ -55,7 +55,7 @@ Borg Hypospray
regenerate_reagents()
charge_timer = 0
- //update_icon(updates=ALL)
+ update_appearance(UPDATE_ICON)
. = ..()
return 1
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index f720b7c41c6d..6bc66948106e 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -179,9 +179,8 @@
possible_transfer_amounts = list(5,10,15,20,25,30,60,120)
/obj/item/reagent_containers/glass/beaker/plastic/update_icon(updates=ALL)
- . = ..()
icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states
- ..()
+ . = ..()
icon_state = "beakerwhite"
/obj/item/reagent_containers/glass/beaker/meta
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 20438c495514..928a79e5f310 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -309,7 +309,6 @@
/obj/item/hypospray/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
if(ismob(loc))
var/mob/M = loc
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index df0da2e97c0c..4c75601b77da 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -176,9 +176,9 @@
update_appearance(UPDATE_ICON)
// update the icon & overlays to reflect mode & status
-/obj/machinery/disposal/update_icon(updates=ALL)
- . = ..()
- return
+/obj/machinery/disposal/Initialize(mapload, obj/structure/disposalconstruct/make_from)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/machinery/disposal/proc/flush()
flushing = TRUE
diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm
index 835ebcfbd4ec..92b15e85dd10 100644
--- a/code/modules/research/nanites/nanite_remote.dm
+++ b/code/modules/research/nanites/nanite_remote.dm
@@ -47,7 +47,6 @@
update_appearance(UPDATE_ICON)
/obj/item/nanite_remote/update_icon(updates=ALL)
- . = ..()
. = ..()
cut_overlays()
if(obj_flags & EMAGGED)
diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm
index de8bfb333a1e..ada242f152b2 100644
--- a/code/modules/shuttle/emergency.dm
+++ b/code/modules/shuttle/emergency.dm
@@ -498,9 +498,9 @@
density = FALSE
clockwork = TRUE //it'd look weird
-/obj/machinery/computer/shuttle/pod/update_icon(updates=ALL)
- . = ..()
- return
+/obj/machinery/computer/shuttle/pod/Initialize(mapload, obj/item/circuitboard/C)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/machinery/computer/shuttle/pod/emag_act(mob/user)
if(obj_flags & EMAGGED)
diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 1a3121e15ef8..a658bb57a18b 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -40,7 +40,6 @@
languages_possible = languages_possible_base
/obj/item/organ/tongue/update_icon(updates=ALL)
- . = ..()
. = ..()
if(honked) // This tongue has a bike horn inside of it. Let's draw it
add_overlay("honked")
diff --git a/yogstation.dme b/yogstation.dme
index d6ca39b8e2e2..2df7c7cd33eb 100644
--- a/yogstation.dme
+++ b/yogstation.dme
@@ -641,6 +641,7 @@
#include "code\datums\elements\earhealing.dm"
#include "code\datums\elements\firestacker.dm"
#include "code\datums\elements\squish.dm"
+#include "code\datums\elements\update_icon_blocker.dm"
#include "code\datums\helper_datums\events.dm"
#include "code\datums\helper_datums\getrev.dm"
#include "code\datums\helper_datums\icon_snapshot.dm"
diff --git a/yogstation/code/game/objects/items/brace.dm b/yogstation/code/game/objects/items/brace.dm
index d937c0376b74..3ee9a380db36 100644
--- a/yogstation/code/game/objects/items/brace.dm
+++ b/yogstation/code/game/objects/items/brace.dm
@@ -25,7 +25,6 @@
/obj/structure/deployed_brace/update_icon(updates=ALL)
. = ..()
- ..()
cut_overlays()
if(cover_open)
add_overlay("cover_open")
diff --git a/yogstation/code/game/objects/structures/toilet_bong.dm b/yogstation/code/game/objects/structures/toilet_bong.dm
index 1b8d024b302b..d3cf8f48e681 100644
--- a/yogstation/code/game/objects/structures/toilet_bong.dm
+++ b/yogstation/code/game/objects/structures/toilet_bong.dm
@@ -21,7 +21,6 @@
START_PROCESSING(SSobj, src)
/obj/structure/toilet_bong/update_icon(updates=ALL)
- . = ..()
. = ..()
cut_overlays()
if (LAZYLEN(contents))
diff --git a/yogstation/code/modules/antagonists/slaughter/slaughter.dm b/yogstation/code/modules/antagonists/slaughter/slaughter.dm
index fed512a52752..16a114100244 100644
--- a/yogstation/code/modules/antagonists/slaughter/slaughter.dm
+++ b/yogstation/code/modules/antagonists/slaughter/slaughter.dm
@@ -133,9 +133,9 @@
icon_state = "demon_heart-on"
decay_factor = 0
-/obj/item/organ/heart/demon/update_icon(updates=ALL)
- . = ..()
- return //always beating visually
+/obj/item/organ/heart/demon/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/organ/heart/demon/attack(mob/M, mob/living/carbon/user, obj/target)
if(M != user)
diff --git a/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm b/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm
index 5180df57aa3c..060b47aee275 100644
--- a/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm
+++ b/yogstation/code/modules/projectiles/guns/ballistic/launchers.dm
@@ -13,9 +13,9 @@
casing_ejector = FALSE
internal_magazine = TRUE
-/obj/item/gun/ballistic/speargun/update_icon(updates=ALL)
- . = ..()
- return
+/obj/item/gun/ballistic/speargun/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
+ return ..()
/obj/item/gun/ballistic/speargun/attack_self()
return
diff --git a/yogstation/code/modules/recycling/disposal/pipe_sorting.dm b/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
index 1ebe6292cacb..20a58d062755 100644
--- a/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
+++ b/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
@@ -30,7 +30,6 @@
/obj/structure/disposalpipe/sorting/update_icon(updates=ALL)
. = ..()
cut_overlays()
- . = ..()
if(panel_open)
add_overlay(image('yogstation/icons/obj/atmospherics/pipes/disposal.dmi', "[icon_state]-open"))
diff --git a/yogstation/code/modules/xenoarch/loot/gigadrill.dm b/yogstation/code/modules/xenoarch/loot/gigadrill.dm
index 5e11e52a92d5..22d6bbbe1298 100644
--- a/yogstation/code/modules/xenoarch/loot/gigadrill.dm
+++ b/yogstation/code/modules/xenoarch/loot/gigadrill.dm
@@ -20,7 +20,6 @@
update_appearance(UPDATE_ICON)
/obj/vehicle/ridden/gigadrill/update_icon(updates=ALL)
- . = ..()
. = ..()
if(occupant_amount())
icon_state = "gigadrill_mov"
From fef98c5257fd80ca6c2d1addd31d4adf37224ac3 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 03:05:14 -0400
Subject: [PATCH 05/50] More fixes
---
code/_onclick/hud/screen_objects.dm | 73 ++++----
code/game/machinery/airlock_control.dm | 2 +
code/game/machinery/doors/airlock.dm | 224 ++++++++++++-------------
3 files changed, 140 insertions(+), 159 deletions(-)
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 4c0546673f78..5cba45b63a8a 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -181,16 +181,13 @@
cut_overlay(object_overlays)
object_overlays.Cut()
-/atom/movable/screen/inventory/update_icon(updates=ALL)
- . = ..()
+/atom/movable/screen/inventory/update_icon_state()
if(!icon_empty)
icon_empty = icon_state
- if(hud && hud.mymob && slot_id && icon_full)
- if(hud.mymob.get_item_by_slot(slot_id))
- icon_state = icon_full
- else
- icon_state = icon_empty
+ if(hud?.mymob && slot_id && icon_full)
+ icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty
+ return ..()
/atom/movable/screen/inventory/proc/add_overlays()
var/mob/user = hud.mymob
@@ -217,15 +214,12 @@
var/static/mutable_appearance/blocked_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "blocked")
var/held_index = 0
-/atom/movable/screen/inventory/hand/update_icon(updates=ALL)
+/atom/movable/screen/inventory/hand/update_overlays()
. = ..()
if(!handcuff_overlay)
- var/ui_style = hud?.mymob?.client?.prefs?.read_preference(/datum/preference/choiced/ui_style)
var/state = (!(held_index % 2)) ? "markus" : "gabrielle"
- handcuff_overlay = mutable_appearance((ui_style ? ui_style2icon(ui_style) : 'icons/mob/screen_gen.dmi'), state)
-
- cut_overlays()
+ handcuff_overlay = mutable_appearance('icons/mob/screen_gen.dmi', state)
if(!hud?.mymob)
return
@@ -233,14 +227,14 @@
if(iscarbon(hud.mymob))
var/mob/living/carbon/C = hud.mymob
if(C.handcuffed)
- add_overlay(handcuff_overlay)
+ . += handcuff_overlay
if(held_index)
if(!C.has_hand_for_held_index(held_index))
- add_overlay(blocked_overlay)
+ . += blocked_overlay
if(held_index == hud.mymob.active_hand_index)
- add_overlay((held_index % 2) ? "lhandactive" : "rhandactive")
+ . += (held_index % 2) ? "lhandactive" : "rhandactive"
/atom/movable/screen/inventory/hand/Click(location, control, params)
@@ -330,16 +324,13 @@
/atom/movable/screen/mov_intent/Click()
toggle(usr)
-/atom/movable/screen/mov_intent/update_icon(mob/user)
- if(!user && hud)
- user = hud.mymob
- if(!user)
- return
- switch(user.m_intent)
+/atom/movable/screen/mov_intent/update_icon_state()
+ switch(hud?.mymob?.m_intent)
if(MOVE_INTENT_WALK)
icon_state = "walking"
if(MOVE_INTENT_RUN)
icon_state = "running"
+ return ..()
/atom/movable/screen/mov_intent/proc/toggle(mob/user)
if(isobserver(user))
@@ -356,13 +347,9 @@
return
usr.stop_pulling()
-/atom/movable/screen/pull/update_icon(mob/mymob)
- if(!mymob)
- return
- if(mymob.pulling)
- icon_state = "pull"
- else
- icon_state = "pull0"
+/atom/movable/screen/pull/update_icon_state()
+ icon_state = "[initial(icon_state)][hud?.mymob?.pulling ? null : 0]"
+ return ..()
/atom/movable/screen/resist
name = "resist"
@@ -388,14 +375,12 @@
var/mob/living/L = usr
L.lay_down()
-/atom/movable/screen/rest/update_icon(mob/mymob)
- if(!isliving(mymob))
- return
- var/mob/living/L = mymob
- if(!L.resting)
- icon_state = "act_rest"
- else
- icon_state = "act_rest0"
+/atom/movable/screen/rest/update_icon_state()
+ var/mob/living/user = hud?.mymob
+ if(!istype(user))
+ return ..()
+ icon_state = "[initial(icon_state)][user.resting ? 0 : null]"
+ return ..()
/atom/movable/screen/storage
name = "storage"
@@ -435,6 +420,7 @@
name = "damage zone"
icon_state = "zone_sel"
screen_loc = ui_zonesel
+ var/overlay_icon = 'icons/mob/screen_gen.dmi'
var/selecting = BODY_ZONE_CHEST
var/static/list/hover_overlays_cache = list()
var/hovering
@@ -536,18 +522,15 @@
update_icon(usr)
return 1
-/atom/movable/screen/zone_sel/update_icon(mob/user)
- cut_overlays()
- add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[selecting]"))
- user.zone_selected = selecting
+/atom/movable/screen/zone_sel/update_overlays()
+ . = ..()
+ if(!hud?.mymob)
+ return
+ . += mutable_appearance(overlay_icon, "[hud.mymob.zone_selected]")
/atom/movable/screen/zone_sel/alien
icon = 'icons/mob/screen_alien.dmi'
-
-/atom/movable/screen/zone_sel/alien/update_icon(mob/user)
- cut_overlays()
- add_overlay(mutable_appearance('icons/mob/screen_alien.dmi', "[selecting]"))
- user.zone_selected = selecting
+ overlay_icon = 'icons/mob/screen_alien.dmi'
/atom/movable/screen/zone_sel/robot
icon = 'icons/mob/screen_cyborg.dmi'
diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm
index b399ab860ef1..99dda3ad4841 100644
--- a/code/game/machinery/airlock_control.dm
+++ b/code/game/machinery/airlock_control.dm
@@ -2,6 +2,8 @@
// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access)
/obj/machinery/door/airlock
+ /// The current state of the airlock, used to construct the airlock overlays
+ var/airlock_state
var/id_tag
var/frequency
var/datum/radio_frequency/radio_connection
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 5ace29752d09..c5331693599c 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -24,6 +24,18 @@
#define AIRLOCK_DENY 5
#define AIRLOCK_EMAG 6
+#define AIRLOCK_FRAME_CLOSED "closed"
+#define AIRLOCK_FRAME_CLOSING "closing"
+#define AIRLOCK_FRAME_OPEN "open"
+#define AIRLOCK_FRAME_OPENING "opening"
+
+// Airlock light states, used for generating the light overlays
+#define AIRLOCK_LIGHT_BOLTS "bolts"
+#define AIRLOCK_LIGHT_EMERGENCY "emergency"
+#define AIRLOCK_LIGHT_DENIED "denied"
+#define AIRLOCK_LIGHT_CLOSING "closing"
+#define AIRLOCK_LIGHT_OPENING "opening"
+
#define AIRLOCK_SECURITY_NONE 0 //Normal airlock //Wires are not secured
#define AIRLOCK_SECURITY_METAL 1 //Medium security airlock //There is a simple metal over wires (use welder)
#define AIRLOCK_SECURITY_PLASTEEL_I_S 2 //Sliced inner plating (use crowbar), jumps to 0
@@ -594,135 +606,119 @@
else
return FALSE
-/obj/machinery/door/airlock/update_icon(state=0, override=0)
- cut_overlays()
+/obj/machinery/door/airlock/update_icon(updates=ALL, state=0, override=FALSE)
if(operating && !override)
return
- switch(state)
- if(0)
- if(density)
- state = AIRLOCK_CLOSED
- else
- state = AIRLOCK_OPEN
- icon_state = ""
+
+ if(!state)
+ state = density ? AIRLOCK_CLOSED : AIRLOCK_OPEN
+ airlock_state = state
+
+ . = ..()
+
+ SSdemo.mark_dirty(src)
+
+/obj/machinery/door/airlock/update_icon_state()
+ . = ..()
+ switch(airlock_state)
if(AIRLOCK_OPEN, AIRLOCK_CLOSED)
icon_state = ""
if(AIRLOCK_DENY, AIRLOCK_OPENING, AIRLOCK_CLOSING, AIRLOCK_EMAG)
icon_state = "nonexistenticonstate" //MADNESS
- set_airlock_overlays(state)
- SSdemo.mark_dirty(src)
-/obj/machinery/door/airlock/proc/set_side_overlays(obj/effect/overlay/airlock_part/base, show_lights = FALSE)
- var/side = base.side_id
- base.icon = icon
- base.cut_overlays()
+/obj/machinery/door/airlock/update_overlays()
+ . = ..()
+
+ var/frame_state
+ var/light_state
+ switch(airlock_state)
+ if(AIRLOCK_CLOSED)
+ frame_state = AIRLOCK_FRAME_CLOSED
+ if(locked)
+ light_state = AIRLOCK_LIGHT_BOLTS
+ else if(emergency)
+ light_state = AIRLOCK_LIGHT_EMERGENCY
+ if(AIRLOCK_DENY)
+ frame_state = AIRLOCK_FRAME_CLOSED
+ light_state = AIRLOCK_LIGHT_DENIED
+ if(AIRLOCK_EMAG)
+ frame_state = AIRLOCK_FRAME_CLOSED
+ if(AIRLOCK_CLOSING)
+ frame_state = AIRLOCK_FRAME_CLOSING
+ light_state = AIRLOCK_LIGHT_CLOSING
+ if(AIRLOCK_OPEN)
+ frame_state = AIRLOCK_FRAME_OPEN
+ if(AIRLOCK_OPENING)
+ frame_state = AIRLOCK_FRAME_OPENING
+ light_state = AIRLOCK_LIGHT_OPENING
+
+ . += get_airlock_overlay(frame_state, icon, src, em_block = TRUE)
if(airlock_material)
- base.add_overlay(get_airlock_overlay("[airlock_material]_[side]", overlays_file))
+ . += get_airlock_overlay("[airlock_material]_[frame_state]", overlays_file, src, em_block = TRUE)
else
- base.add_overlay(get_airlock_overlay("fill_[side]", icon))
- if(panel_open && panel_attachment == side)
- if(security_level)
- base.add_overlay(get_airlock_overlay("panel_closed_protected", overlays_file))
- else
- base.add_overlay(get_airlock_overlay("panel_closed", overlays_file))
- if(show_lights && lights && hasPower())
- base.add_overlay(get_airlock_overlay("lights_[side]", overlays_file))
-
- if(note && note_attachment == side)
- var/notetype = note_type()
- base.add_overlay(get_airlock_overlay(notetype, note_overlay_file))
-
-/obj/machinery/door/airlock/proc/set_airlock_overlays(state)
- for(var/obj/effect/overlay/airlock_part/part in part_overlays)
- set_side_overlays(part, state == AIRLOCK_CLOSING || state == AIRLOCK_OPENING)
- if(part.aperture_angle)
- var/matrix/T
- if(state == AIRLOCK_OPEN || state == AIRLOCK_OPENING || state == AIRLOCK_CLOSING)
- T = matrix()
- T.Translate(-part.open_px,-part.open_py)
- T.Turn(part.aperture_angle)
- T.Translate(part.open_px,part.open_py)
- switch(state)
- if(AIRLOCK_CLOSED, AIRLOCK_DENY, AIRLOCK_EMAG)
- part.transform = matrix()
- if(AIRLOCK_OPEN)
- part.transform = T
- if(AIRLOCK_CLOSING)
- part.transform = T
- animate(part, transform = T, time = 0.5 SECONDS - part.move_end_time, flags = ANIMATION_LINEAR_TRANSFORM)
- animate(transform = matrix(), time = part.move_end_time - part.move_start_time, flags = ANIMATION_LINEAR_TRANSFORM)
- if(AIRLOCK_OPENING)
- part.transform = matrix()
- animate(part, transform = matrix(), time = part.move_start_time, flags = ANIMATION_LINEAR_TRANSFORM)
- animate(transform = T, time = part.move_end_time - part.move_start_time, flags = ANIMATION_LINEAR_TRANSFORM)
- else
- switch(state)
- if(AIRLOCK_CLOSED, AIRLOCK_DENY, AIRLOCK_EMAG)
- part.pixel_x = 0
- part.pixel_y = 0
- if(AIRLOCK_OPEN)
- part.pixel_x = part.open_px
- part.pixel_y = part.open_py
- if(AIRLOCK_CLOSING)
- part.pixel_x = part.open_px
- part.pixel_y = part.open_py
- animate(part, pixel_x = part.open_px, pixel_y = part.open_py, time = 0.5 SECONDS - part.move_end_time)
- animate(pixel_x = 0, pixel_y = 0, time = part.move_end_time - part.move_start_time)
- if(AIRLOCK_OPENING)
- part.pixel_x = 0
- part.pixel_y = 0
- animate(part, pixel_x = 0, pixel_y = 0, time = part.move_start_time)
- animate(pixel_x = part.open_px, pixel_y = part.open_py, time = part.move_end_time - part.move_start_time)
-
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
- SSvis_overlays.add_vis_overlay(src, overlays_file, "frame", FLOAT_LAYER, FLOAT_PLANE, dir)
-
- switch(state)
- if(AIRLOCK_CLOSED)
- if(lights && hasPower())
- if(locked)
- SSvis_overlays.add_vis_overlay(src, overlays_file, "lights_bolts", FLOAT_LAYER, FLOAT_PLANE, dir)
- else if(emergency)
- SSvis_overlays.add_vis_overlay(src, overlays_file, "lights_emergency", FLOAT_LAYER, FLOAT_PLANE, dir)
- if(welded)
- SSvis_overlays.add_vis_overlay(src, overlays_file, "welded", FLOAT_LAYER, FLOAT_PLANE, dir)
- if(obj_integrity
Date: Tue, 11 Jul 2023 03:10:02 -0400
Subject: [PATCH 06/50] minor fixes
---
code/__DEFINES/flags.dm | 4 ----
code/datums/components/storage/storage.dm | 3 +--
code/game/objects/items/pet_carrier.dm | 16 +++++++++-------
.../gas_recipe_machines/crystallizer.dm | 1 +
4 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index d04a6c5c5a82..04d435f54ddb 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -81,10 +81,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define UPDATE_ICON_STATE (1<<2)
/// Update the atom's overlays
#define UPDATE_OVERLAYS (1<<3)
-/// Update the atom's greyscaling
-#define UPDATE_GREYSCALE (1<<4)
-/// Update the atom's smoothing. (More accurately, queue it for an update)
-#define UPDATE_SMOOTHING (1<<5)
/// Update the atom's icon
#define UPDATE_ICON (UPDATE_ICON_STATE|UPDATE_OVERLAYS)
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 4ae6bc76b1bf..9b8fbc896533 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -688,8 +688,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
else if(I && I.w_class >= 3) //Otherwise they can only see large or normal items from a distance...
viewing.show_message(span_notice("[M] puts [I] [insert_preposition]to [parent]."), MSG_VISUAL)
-/datum/component/storage/proc/update_icon(updates=ALL)
- . = ..()
+/datum/component/storage/proc/update_icon()
if(isobj(parent))
var/obj/O = parent
O.update_appearance(UPDATE_ICON)
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index d5dc0c99fea6..29fcb3a5db8e 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -141,15 +141,17 @@
update_appearance(UPDATE_ICON)
remove_occupant(user)
-/obj/item/pet_carrier/update_icon(updates=ALL)
- . = ..()
- cut_overlay("unlocked")
- cut_overlay("locked")
+/obj/item/pet_carrier/update_icon_state()
if(open)
icon_state = initial(icon_state)
- else
- icon_state = "pet_carrier_[!occupants.len ? "closed" : "occupied"]"
- add_overlay("[locked ? "" : "un"]locked")
+ return ..()
+ icon_state = "[base_icon_state]_[!occupants.len ? "closed" : "occupied"]"
+ return ..()
+
+/obj/item/pet_carrier/update_overlays()
+ . = ..()
+ if(!open)
+ . += "[base_icon_state]_[locked ? "" : "un"]locked"
/obj/item/pet_carrier/MouseDrop(atom/over_atom)
. = ..()
diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
index a22c2400f820..3c95302122f0 100644
--- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
+++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
@@ -86,6 +86,7 @@
add_overlay(getpipeimage(icon, "pipe", turn(dir, 180), COLOR_RED, piping_layer))
/obj/machinery/atmospherics/components/binary/crystallizer/update_icon_state()
+ . = ..()
if(panel_open)
icon_state = "[base_icon]-open"
else if(on)
From 6f5c4aeefc9a6c9f8849734916c52097b38f0a0a Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 03:22:40 -0400
Subject: [PATCH 07/50] fuck
---
code/game/machinery/doors/airlock.dm | 22 +++++------
code/game/objects/items/pet_carrier.dm | 4 +-
.../nukeop/equipment/nuclearbomb.dm | 37 ++++++++++---------
3 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index c5331693599c..f2ad12a1acce 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -652,35 +652,35 @@
frame_state = AIRLOCK_FRAME_OPENING
light_state = AIRLOCK_LIGHT_OPENING
- . += get_airlock_overlay(frame_state, icon, src, em_block = TRUE)
+ . += get_airlock_overlay(frame_state, icon)
if(airlock_material)
- . += get_airlock_overlay("[airlock_material]_[frame_state]", overlays_file, src, em_block = TRUE)
+ . += get_airlock_overlay("[airlock_material]_[frame_state]", overlays_file)
else
- . += get_airlock_overlay("fill_[frame_state]", icon, src, em_block = TRUE)
+ . += get_airlock_overlay("fill_[frame_state]", icon)
if(lights && hasPower())
- . += get_airlock_overlay("lights_[light_state]", overlays_file, src, em_block = FALSE)
+ . += get_airlock_overlay("lights_[light_state]", overlays_file)
if(panel_open)
- . += get_airlock_overlay("panel_[frame_state][security_level ? "_protected" : null]", overlays_file, src, em_block = TRUE)
+ . += get_airlock_overlay("panel_[frame_state][security_level ? "_protected" : null]", overlays_file)
if(frame_state == AIRLOCK_FRAME_CLOSED && welded)
- . += get_airlock_overlay("welded", overlays_file, src, em_block = TRUE)
+ . += get_airlock_overlay("welded", overlays_file)
if(airlock_state == AIRLOCK_EMAG)
- . += get_airlock_overlay("sparks", overlays_file, src, em_block = FALSE)
+ . += get_airlock_overlay("sparks", overlays_file)
if(hasPower())
if(frame_state == AIRLOCK_FRAME_CLOSED)
if(obj_integrity < integrity_failure * max_integrity)
- . += get_airlock_overlay("sparks_broken", overlays_file, src, em_block = FALSE)
+ . += get_airlock_overlay("sparks_broken", overlays_file)
else if(obj_integrity < (0.75 * max_integrity))
- . += get_airlock_overlay("sparks_damaged", overlays_file, src, em_block = FALSE)
+ . += get_airlock_overlay("sparks_damaged", overlays_file)
else if(frame_state == AIRLOCK_FRAME_OPEN)
if(obj_integrity < (0.75 * max_integrity))
- . += get_airlock_overlay("sparks_open", overlays_file, src, em_block = FALSE)
+ . += get_airlock_overlay("sparks_open", overlays_file)
if(note)
- . += get_airlock_overlay(get_note_state(frame_state), note_overlay_file, src, em_block = TRUE)
+ . += get_airlock_overlay(get_note_state(frame_state), note_overlay_file)
if(hasPower() && unres_sides)
for(var/heading in list(NORTH,SOUTH,EAST,WEST))
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index 29fcb3a5db8e..526bbc748ca8 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -145,13 +145,13 @@
if(open)
icon_state = initial(icon_state)
return ..()
- icon_state = "[base_icon_state]_[!occupants.len ? "closed" : "occupied"]"
+ icon_state = "[initial(icon_state)]_[!occupants.len ? "closed" : "occupied"]"
return ..()
/obj/item/pet_carrier/update_overlays()
. = ..()
if(!open)
- . += "[base_icon_state]_[locked ? "" : "un"]locked"
+ . += "[initial(icon_state)]_[locked ? "" : "un"]locked"
/obj/item/pet_carrier/MouseDrop(atom/over_atom)
. = ..()
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index 42e690a1da2b..45f4b503ab52 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -179,28 +179,28 @@
else
return NUKE_OFF_UNLOCKED
-/obj/machinery/nuclearbomb/update_icon(updates=ALL)
- . = ..()
- if(deconstruction_state == NUKESTATE_INTACT)
- switch(get_nuke_state())
- if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
- icon_state = "nuclearbomb_base"
- update_appearance(UPDATE_ICON)
- if(NUKE_ON_TIMING)
- cut_overlays()
- icon_state = "nuclearbomb_timing"
- if(NUKE_ON_EXPLODING)
- cut_overlays()
- icon_state = "nuclearbomb_exploding"
- else
+/obj/machinery/nuclearbomb/update_icon_state()
+ if(deconstruction_state != NUKESTATE_INTACT)
icon_state = "nuclearbomb_base"
- update_appearance(UPDATE_ICON)
+ return ..()
+
+ switch(get_nuke_state())
+ if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
+ icon_state = "nuclearbomb_base"
+ if(NUKE_ON_TIMING)
+ icon_state = "nuclearbomb_timing"
+ if(NUKE_ON_EXPLODING)
+ icon_state = "nuclearbomb_exploding"
+
+ return ..()
/obj/machinery/nuclearbomb/update_overlays()
. = ..()
- cut_overlay(interior)
+
if(lights)
cut_overlay(lights)
+ cut_overlay(interior)
+
switch(deconstruction_state)
if(NUKESTATE_UNSCREWED)
interior = "panel-unscrewed"
@@ -214,7 +214,7 @@
interior = "core-removed"
if(NUKESTATE_INTACT)
return
- add_overlay(interior)
+
switch(get_nuke_state())
if(NUKE_OFF_LOCKED)
lights = ""
@@ -225,8 +225,9 @@
lights = "lights-timing"
if(NUKE_ON_EXPLODING)
lights = "lights-exploding"
- add_overlay(lights)
+ add_overlay(lights)
+ add_overlay(interior)
/obj/machinery/nuclearbomb/process()
if(timing && !exploding)
From 64cab8a4c5b5e9af6e911a8d333203adbf071283 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 18:33:21 -0400
Subject: [PATCH 08/50] A!
---
code/_onclick/telekinesis.dm | 18 +++++-----
code/datums/components/grillable.dm | 14 ++++----
code/game/area/areas.dm | 9 +++--
code/game/atoms.dm | 7 ++--
.../game/gamemodes/clown_ops/bananium_bomb.dm | 23 ++++++-------
code/game/machinery/airlock_cycle_control.dm | 34 +++++++++----------
code/game/machinery/announcement_system.dm | 11 +++---
code/game/machinery/aug_manipulator.dm | 12 ++++---
code/game/machinery/buttons.dm | 15 ++++----
code/game/machinery/cell_charger.dm | 9 +++--
code/game/machinery/decontamination.dm | 3 +-
code/game/machinery/defibrillator_mount.dm | 11 +++---
code/game/machinery/electrolyzer.dm | 6 ++--
code/game/machinery/firealarm.dm | 22 ++++++------
code/game/machinery/gulag_processor.dm | 4 ---
code/game/machinery/holosign.dm | 2 +-
.../machinery/porta_turret/portable_turret.dm | 3 +-
code/game/machinery/suit_storage_unit.dm | 3 +-
code/game/objects/items/defib.dm | 20 +++++------
.../gas_recipe_machines/crystallizer.dm | 4 +--
code/modules/cargo/supplypod.dm | 1 -
.../food_and_drinks/food/customizables.dm | 13 ++++---
code/modules/food_and_drinks/food/snacks.dm | 5 ++-
.../food_and_drinks/food/snacks_pastry.dm | 16 +++++----
.../food_and_drinks/kitchen_machinery/oven.dm | 3 +-
.../computers/machinery/modular_computer.dm | 2 +-
code/modules/power/power.dm | 1 +
code/modules/research/server.dm | 1 -
.../shuttle/spaceship_navigation_beacon.dm | 4 ---
code/modules/vending/_vending.dm | 2 +-
30 files changed, 129 insertions(+), 149 deletions(-)
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 334c220a0081..26489fe5537f 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -183,17 +183,15 @@
return
new /obj/effect/temp_visual/telekinesis(get_turf(focus))
-/obj/item/tk_grab/update_icon(updates=ALL)
+/obj/item/tk_grab/update_overlays()
. = ..()
- cut_overlays()
- if(focus)
- var/old_layer = focus.layer
- var/old_plane = focus.plane
- focus.layer = layer+0.01
- focus.plane = ABOVE_HUD_PLANE
- add_overlay(focus) //this is kind of ick, but it's better than using icon()
- focus.layer = old_layer
- focus.plane = old_plane
+ if(!focus)
+ return
+
+ var/mutable_appearance/focus_overlay = new(focus)
+ focus_overlay.layer = layer + 0.01
+ focus_overlay.plane = ABOVE_HUD_PLANE
+ . += focus_overlay
/obj/item/tk_grab/suicide_act(mob/user)
user.visible_message(span_suicide("[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!"))
diff --git a/code/datums/components/grillable.dm b/code/datums/components/grillable.dm
index 825ae90383ae..09178440a4bc 100644
--- a/code/datums/components/grillable.dm
+++ b/code/datums/components/grillable.dm
@@ -42,11 +42,11 @@
///Ran when an object starts grilling on something
/datum/component/grillable/proc/StartGrilling(atom/grill_source)
currently_grilling = TRUE
- RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(OnMoved),TRUE)
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(OnMoved))
AddGrilledItemOverlay(parent)
- //var/atom/A = parent
- //A.update_appearance(UPDATE_ICON)
+ var/atom/atom_parent = parent
+ atom_parent.update_appearance(UPDATE_ICON)
///Ran when an object finished grilling
/datum/component/grillable/proc/FinishGrilling(atom/grill_source)
@@ -77,12 +77,12 @@
///Ran when an object moves from the grill
/datum/component/grillable/proc/OnMoved(atom/A, atom/OldLoc, Dir, Forced)
+ SIGNAL_HANDLER
+
currently_grilling = FALSE
- var/obj/O = parent;
- O.cut_overlays()
- //UnregisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS)
+ UnregisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS)
UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
- //A.update_appearance(UPDATE_ICON)
+ A.update_appearance()
/datum/component/grillable/proc/AddGrilledItemOverlay(obj/source)
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 72891722b54a..d01ce11aaa21 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -519,21 +519,20 @@ GLOBAL_LIST_EMPTY(teleportlocs)
L.update()
/**
- * Update the icon of the area
+ * Update the icon state of the area
*
* Im not sure what the heck this does, somethign to do with weather being able to set icon
* states on areas?? where the heck would that even display?
*/
-/area/update_icon(updates=ALL)
- . = ..()
+/area/update_icon_state()
var/weather_icon
- for(var/V in SSweather.processing)
- var/datum/weather/W = V
+ for(var/datum/weather/W as anything in SSweather.processing)
if(W.stage != END_STAGE && (src in W.impacted_areas))
W.update_areas()
weather_icon = TRUE
if(!weather_icon)
icon_state = null
+ return ..()
/**
* Update the icon of the area (overridden to always be null for space
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index ed01f05343ed..9199a9c8e635 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -592,15 +592,12 @@
if(LAZYLEN(managed_vis_overlays))
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
- var/list/new_overlays = update_overlays(updates)
+ var/list/new_overlays = update_overlays()
if(managed_overlays)
cut_overlay(managed_overlays)
managed_overlays = null
if(length(new_overlays))
- if (length(new_overlays) == 1)
- managed_overlays = new_overlays[1]
- else
- managed_overlays = new_overlays
+ managed_overlays = new_overlays
add_overlay(new_overlays)
. |= UPDATE_OVERLAYS
diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm
index 20d2b086eb06..250e53fd6fe2 100644
--- a/code/game/gamemodes/clown_ops/bananium_bomb.dm
+++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm
@@ -4,20 +4,19 @@
icon = 'icons/obj/machines/nuke.dmi'
icon_state = "bananiumbomb_base"
-/obj/machinery/nuclearbomb/syndicate/bananium/update_icon(updates=ALL)
+/obj/machinery/nuclearbomb/syndicate/bananium/update_icon_state()
. = ..()
- if(deconstruction_state == NUKESTATE_INTACT)
- switch(get_nuke_state())
- if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
- icon_state = "bananiumbomb_base"
- if(NUKE_ON_TIMING)
- cut_overlays()
- icon_state = "bananiumbomb_timing"
- if(NUKE_ON_EXPLODING)
- cut_overlays()
- icon_state = "bananiumbomb_exploding"
- else
+ if(deconstruction_state != NUKESTATE_INTACT)
icon_state = "bananiumbomb_base"
+ return
+
+ switch(get_nuke_state())
+ if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED)
+ icon_state = "bananiumbomb_base"
+ if(NUKE_ON_TIMING)
+ icon_state = "bananiumbomb_timing"
+ if(NUKE_ON_EXPLODING)
+ icon_state = "bananiumbomb_exploding"
/obj/machinery/nuclearbomb/syndicate/bananium/get_cinematic_type(off_station)
switch(off_station)
diff --git a/code/game/machinery/airlock_cycle_control.dm b/code/game/machinery/airlock_cycle_control.dm
index 7523ff307734..fc62172ae40e 100644
--- a/code/game/machinery/airlock_cycle_control.dm
+++ b/code/game/machinery/airlock_cycle_control.dm
@@ -107,7 +107,7 @@
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
pixel_y = (dir & 3)? (dir == 1 ? -24 : 24) : 0
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
/obj/machinery/advanced_airlock_controller/Destroy()
qdel(wires)
@@ -134,7 +134,7 @@
if(airlock.density && (cyclestate == AIRLOCK_CYCLESTATE_CLOSED || (airlocks[A] && cyclestate == AIRLOCK_CYCLESTATE_INOPEN) || (!airlocks[A] && cyclestate == AIRLOCK_CYCLESTATE_OUTOPEN)))
airlock.bolt()
-/obj/machinery/advanced_airlock_controller/update_icon(use_hash = FALSE)
+/obj/machinery/advanced_airlock_controller/proc/update_cycle_icon(use_hash = FALSE)
var/turf/location = get_turf(src)
if(!location)
return
@@ -193,7 +193,7 @@
if(WIRE_POWER)
if(!wires.is_cut(WIRE_POWER))
shorted = FALSE
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
if(WIRE_AI)
if(!wires.is_cut(WIRE_AI))
aidisabled = FALSE
@@ -292,12 +292,12 @@
/obj/machinery/advanced_airlock_controller/process_atmos()
if((stat & (NOPOWER|BROKEN)) || shorted)
- update_icon(TRUE)
+ update_cycle_icon(TRUE)
return
var/turf/location = get_turf(src)
if(!location)
- update_icon(TRUE)
+ update_cycle_icon(TRUE)
return
var/pressure = 0
if(location)
@@ -430,7 +430,7 @@
var/obj/machinery/atmospherics/components/unary/vent_pump/vent = V
vent.on = FALSE
vent.update_appearance(UPDATE_ICON)
- update_icon(TRUE)
+ update_cycle_icon(TRUE)
/obj/machinery/advanced_airlock_controller/attackby(obj/item/W, mob/user, params)
switch(buildstage)
@@ -440,13 +440,13 @@
to_chat(user, span_notice("You cut the final wires."))
new /obj/item/stack/cable_coil(loc, 5)
buildstage = 1
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
return
else if(W.tool_behaviour == TOOL_SCREWDRIVER) // Opening that up.
W.play_tool_sound(src)
panel_open = !panel_open
to_chat(user, span_notice("The wires have been [panel_open ? "exposed" : "unexposed"]."))
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
return
else if(W.GetID())// trying to unlock the interface with an ID card
togglelock(user)
@@ -465,7 +465,7 @@
new /obj/item/electronics/advanced_airlock_controller( src.loc )
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
buildstage = 0
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
return
if(istype(W, /obj/item/stack/cable_coil))
@@ -486,14 +486,14 @@
cut_links()
shorted = 0
buildstage = 2
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
return
if(0)
if(istype(W, /obj/item/electronics/advanced_airlock_controller))
if(user.temporarilyRemoveItemFromInventory(W))
to_chat(user, span_notice("You insert the circuit."))
buildstage = 1
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
qdel(W)
return
@@ -504,7 +504,7 @@
user.visible_message(span_notice("[user] fabricates a circuit and places it into [src]."), \
span_notice("You adapt an airlock controller circuit and slot it into the assembly."))
buildstage = 1
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
return
if(W.tool_behaviour == TOOL_WRENCH)
@@ -732,7 +732,7 @@
depressurization_target = clamp(text2num(params["pressure"]), 0, depressurization_margin - 0.15)
if("skip_delay")
skip_delay = clamp(text2num(params["skip_delay"]), 0, 1200)
- update_icon(TRUE)
+ update_cycle_icon(TRUE)
/obj/machinery/advanced_airlock_controller/proc/request_from_door(airlock)
var/role = airlocks[airlock]
@@ -775,7 +775,7 @@
else
if(src.allowed(usr) && !wires.is_cut(WIRE_IDSCAN))
locked = !locked
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
to_chat(user, span_notice("You [ locked ? "lock" : "unlock"] the airlock controller interface."))
updateUsrDialog()
else
@@ -783,8 +783,8 @@
return
/obj/machinery/advanced_airlock_controller/power_change()
- ..()
- update_appearance(UPDATE_ICON)
+ . = ..()
+ update_cycle_icon()
/obj/machinery/advanced_airlock_controller/emag_act(mob/user)
if(obj_flags & EMAGGED)
@@ -795,7 +795,7 @@
/obj/machinery/advanced_airlock_controller/obj_break(damage_flag)
..()
- update_appearance(UPDATE_ICON)
+ update_cycle_icon()
/obj/machinery/advanced_airlock_controller/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm
index c928b1415502..692bf18f87ac 100644
--- a/code/game/machinery/announcement_system.dm
+++ b/code/game/machinery/announcement_system.dm
@@ -32,24 +32,23 @@ GLOBAL_LIST_EMPTY(announcement_systems)
radio = new /obj/item/radio/headset/silicon/ai(src)
update_appearance(UPDATE_ICON)
-/obj/machinery/announcement_system/update_icon(updates=ALL)
+/obj/machinery/announcement_system/update_overlays()
. = ..()
- cut_overlays()
if(is_operational())
var/mutable_appearance/on_app = mutable_appearance(icon, "AAS_on")
- add_overlay(on_app)
+ . += on_app
if(arrivalToggle)
var/mutable_appearance/arriving = mutable_appearance(icon, greenlight)
- add_overlay(arriving)
+ . += arriving
if(newheadToggle)
var/mutable_appearance/newhead = mutable_appearance(icon, pinklight)
- add_overlay(newhead)
+ . += newhead
if(stat & BROKEN)
var/mutable_appearance/icecream = mutable_appearance(icon, errorlight)
- add_overlay(icecream)
+ . += icecream
/obj/machinery/announcement_system/Destroy()
QDEL_NULL(radio)
diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm
index 1132d623f6d0..8f686f18065b 100644
--- a/code/game/machinery/aug_manipulator.dm
+++ b/code/game/machinery/aug_manipulator.dm
@@ -21,20 +21,22 @@
/obj/machinery/aug_manipulator/update_icon(updates=ALL)
. = ..()
- cut_overlays()
-
if(stat & BROKEN)
icon_state = "[initial_icon_state]-broken"
return
- if(storedpart)
- add_overlay("[initial_icon_state]-closed")
-
if(powered())
icon_state = initial_icon_state
else
icon_state = "[initial_icon_state]-off"
+/obj/machinery/aug_manipulator/update_overlays()
+ . = ..()
+ if(stat & BROKEN)
+ return
+ if(storedpart)
+ . += "[initial_icon_state]-closed"
+
/obj/machinery/aug_manipulator/Destroy()
QDEL_NULL(storedpart)
return ..()
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index 73d3b3f7498b..8ccbc8a177c5 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -44,20 +44,23 @@
/obj/machinery/button/update_icon(updates=ALL)
. = ..()
- cut_overlays()
if(panel_open)
icon_state = "button-open"
- if(device)
- add_overlay("button-device")
- if(board)
- add_overlay("button-board")
-
else
if(stat & (NOPOWER|BROKEN))
icon_state = "[skin]-p"
else
icon_state = skin
+/obj/machinery/button/update_overlays()
+ . = ..()
+ if(!panel_open)
+ return
+ if(device)
+ . += "button-device"
+ if(board)
+ . += "button-board"
+
/obj/machinery/button/attackby(obj/item/W, mob/user, params)
if(W.tool_behaviour == TOOL_SCREWDRIVER)
if(panel_open || allowed(user))
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index fcb631e4587f..c88200bd3f6c 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -13,16 +13,15 @@
var/chargelevel = -1
var/charge_rate = 250
-/obj/machinery/cell_charger/update_icon(updates=ALL)
+/obj/machinery/cell_charger/update_overlays()
. = ..()
- cut_overlays()
if(charging)
- add_overlay(image(charging.icon, charging.icon_state))
- add_overlay("ccharger-on")
+ . += image(charging.icon, charging.icon_state)
+ . += "ccharger-on"
if(!(stat & (BROKEN|NOPOWER)))
var/newlevel = round(charging.percent() * 4 / 100)
chargelevel = newlevel
- add_overlay("ccharger-o[newlevel]")
+ . += "ccharger-o[newlevel]"
/obj/machinery/cell_charger/examine(mob/user)
. = ..()
diff --git a/code/game/machinery/decontamination.dm b/code/game/machinery/decontamination.dm
index d769b5442ac7..b6c54de73878 100644
--- a/code/game/machinery/decontamination.dm
+++ b/code/game/machinery/decontamination.dm
@@ -47,12 +47,11 @@
to_pickup.forceMove(src)
/obj/machinery/decontamination_unit/power_change()
- . = ..()
if(!is_operational() && state_open)
open_machine()
dump_mob()
playsound(src, 'sound/machines/decon/decon-open.ogg', 50, TRUE)
- update_appearance(UPDATE_ICON)
+ return ..()
/obj/machinery/decontamination_unit/proc/dump_mob()
var/turf/T = get_turf(src)
diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm
index ece2e8774a76..63a7a47cf142 100644
--- a/code/game/machinery/defibrillator_mount.dm
+++ b/code/game/machinery/defibrillator_mount.dm
@@ -38,18 +38,17 @@
defib.cell.give(180) //90% efficiency, slightly better than the cell charger's 87.5%
update_appearance(UPDATE_ICON)
-/obj/machinery/defibrillator_mount/update_icon(updates=ALL)
+/obj/machinery/defibrillator_mount/update_overlays()
. = ..()
- cut_overlays()
if(defib)
- add_overlay("defib")
+ . += "defib"
if(defib.powered)
- add_overlay(defib.safety ? "online" : "emagged")
+ . += defib.safety ? "online" : "emagged"
var/ratio = defib.cell.charge / defib.cell.maxcharge
ratio = CEILING(ratio * 4, 1) * 25
- add_overlay("charge[ratio]")
+ . += "charge[ratio]"
if(clamps_locked)
- add_overlay("clamps")
+ . += "clamps"
/obj/machinery/defibrillator_mount/get_cell()
if(defib)
diff --git a/code/game/machinery/electrolyzer.dm b/code/game/machinery/electrolyzer.dm
index 0f2ce774db9e..f1d8f9eeb8d4 100644
--- a/code/game/machinery/electrolyzer.dm
+++ b/code/game/machinery/electrolyzer.dm
@@ -56,10 +56,12 @@
/obj/machinery/electrolyzer/update_icon(updates=ALL)
. = ..()
- cut_overlays()
icon_state = "electrolyzer-[on ? "[mode]" : "off"]"
+
+/obj/machinery/electrolyzer/update_overlays()
+ . = ..()
if(panel_open)
- add_overlay("electrolyzer-open")
+ . += "electrolyzer-open"
/obj/machinery/electrolyzer/process(delta_time)
if((stat & (BROKEN|MAINT)) && on)
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index 14610658e278..ea3056b75bf8 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -54,30 +54,28 @@
/obj/machinery/firealarm/update_icon(updates=ALL)
. = ..()
- cut_overlays()
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
-
if(panel_open)
icon_state = "fire_b[buildstage]"
return
-
if(stat & BROKEN)
icon_state = "firex"
return
-
icon_state = "fire0"
- if(stat & NOPOWER)
+/obj/machinery/firealarm/update_overlays()
+ . = ..()
+ SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
+ if(stat & (NOPOWER|BROKEN))
return
- add_overlay("fire_overlay")
+ . += "fire_overlay"
if(is_station_level(z))
- add_overlay("fire_[GLOB.security_level]")
+ . += "fire_[GLOB.security_level]"
SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", layer, EMISSIVE_PLANE, dir)
else
- add_overlay("fire_[SEC_LEVEL_GREEN]")
+ . += "fire_[SEC_LEVEL_GREEN]"
SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", layer, EMISSIVE_PLANE, dir)
@@ -85,15 +83,15 @@
A = A.loc
if(!detecting || !A.fire)
- add_overlay("fire_off")
+ . += "fire_off"
SSvis_overlays.add_vis_overlay(src, icon, "fire_off", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "fire_off", layer, EMISSIVE_PLANE, dir)
else if(obj_flags & EMAGGED)
- add_overlay("fire_emagged")
+ . += "fire_emagged"
SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", layer, EMISSIVE_PLANE, dir)
else
- add_overlay("fire_on")
+ . += "fire_on"
SSvis_overlays.add_vis_overlay(src, icon, "fire_on", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "fire_on", layer, EMISSIVE_PLANE, dir)
diff --git a/code/game/machinery/gulag_processor.dm b/code/game/machinery/gulag_processor.dm
index da1fc55e151c..6f59248dd0f4 100644
--- a/code/game/machinery/gulag_processor.dm
+++ b/code/game/machinery/gulag_processor.dm
@@ -60,10 +60,6 @@ GLOBAL_VAR_INIT(gulag_required_items, typecacheof(list(
id = null
..()
-/obj/machinery/gulag_processor/power_change()
- ..()
- update_appearance(UPDATE_ICON)
-
/obj/machinery/gulag_processor/interact(mob/user)
. = ..()
toggle_open()
diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm
index 8d381e2b4752..43933e73bd0e 100644
--- a/code/game/machinery/holosign.dm
+++ b/code/game/machinery/holosign.dm
@@ -28,7 +28,7 @@
/obj/machinery/holosign/power_change()
if(!is_operational())
lit = FALSE
- update_appearance(UPDATE_ICON)
+ return ..()
/obj/machinery/holosign/surgery
name = "surgery holosign"
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 96d47e7b473c..7dd03435c399 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -219,10 +219,9 @@
interact(usr)
/obj/machinery/porta_turret/power_change()
- . = ..()
if(!anchored || (stat & BROKEN) || !powered())
- update_appearance(UPDATE_ICON)
remove_control()
+ return ..()
/obj/machinery/porta_turret/attackby(obj/item/I, mob/user, params)
if(stat & BROKEN)
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 10edade5b42c..57f04afe1eb5 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -170,11 +170,10 @@
add_overlay("human")
/obj/machinery/suit_storage_unit/power_change()
- . = ..()
if(!is_operational() && state_open)
open_machine()
dump_contents()
- update_appearance(UPDATE_ICON)
+ return ..()
/obj/machinery/suit_storage_unit/proc/dump_contents()
dropContents()
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 5e4d24e02c17..7af93fd085b8 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -51,9 +51,8 @@
paddles.extinguish()
/obj/item/defibrillator/update_icon(updates=ALL)
- . = ..()
update_power()
- update_charge()
+ return ..()
/obj/item/defibrillator/proc/update_power()
if(!QDELETED(cell))
@@ -66,22 +65,19 @@
/obj/item/defibrillator/update_overlays()
. = ..()
- cut_overlays()
if(!on)
- add_overlay("[initial(icon_state)]-paddles")
+ . += "[initial(icon_state)]-paddles"
if(powered)
- add_overlay("[initial(icon_state)]-powered")
- if(!cell)
- add_overlay("[initial(icon_state)]-nocell")
- if(!safety)
- add_overlay("[initial(icon_state)]-emagged")
-
-/obj/item/defibrillator/proc/update_charge()
+ . += "[initial(icon_state)]-powered"
if(powered) //so it doesn't show charge if it's unpowered
if(!QDELETED(cell))
var/ratio = cell.charge / cell.maxcharge
ratio = CEILING(ratio*4, 1) * 25
- add_overlay("[initial(icon_state)]-charge[ratio]")
+ . += "[initial(icon_state)]-charge[ratio]"
+ if(!cell)
+ . += "[initial(icon_state)]-nocell"
+ if(!safety)
+ . += "[initial(icon_state)]-emagged"
/obj/item/defibrillator/CheckParts(list/parts_list)
..()
diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
index 3c95302122f0..3961f1aedf44 100644
--- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
+++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
@@ -82,8 +82,8 @@
/obj/machinery/atmospherics/components/binary/crystallizer/update_overlays()
. = ..()
cut_overlays()
- add_overlay(getpipeimage(icon, "pipe", dir, COLOR_LIME, piping_layer))
- add_overlay(getpipeimage(icon, "pipe", turn(dir, 180), COLOR_RED, piping_layer))
+ . += getpipeimage(icon, "pipe", dir, COLOR_LIME, piping_layer)
+ . += getpipeimage(icon, "pipe", turn(dir, 180), COLOR_RED, piping_layer)
/obj/machinery/atmospherics/components/binary/crystallizer/update_icon_state()
. = ..()
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index 39e9829f6a5d..7f5de005e982 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -137,7 +137,6 @@
/obj/structure/closet/supplypod/update_overlays()
. = ..()
- . = list()
if(style == STYLE_INVISIBLE)
return
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 777328cfc6ba..ed3cbdbc0ae4 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -54,13 +54,13 @@
S.reagents.trans_to(src,min(S.reagents.total_volume, 15), transfered_by = user) //limit of 15, we don't want our custom food to be completely filled by just one ingredient with large reagent volume.
foodtype |= S.foodtype
to_chat(user, span_notice("You add the [I.name] to the [name]."))
- update_overlays(S = S)
- update_name(S = S)
+ update_snack_overlays(S)
+ update_snack_name(S)
else
. = ..()
-/obj/item/reagent_containers/food/snacks/customizable/update_name(updates=ALL, obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/customizable/proc/update_snack_name(obj/item/reagent_containers/food/snacks/S)
. = ..()
for(var/obj/item/I in ingredients)
if(!istype(S, I.type))
@@ -103,7 +103,7 @@
rgbcolor[4] = (customcolor[4]+ingcolor[4])/2
filling_color = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3], rgbcolor[4])
-/obj/item/reagent_containers/food/snacks/customizable/update_overlays(obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/customizable/update_snack_overlays(obj/item/reagent_containers/food/snacks/S)
. = ..()
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
@@ -140,12 +140,11 @@
/obj/item/reagent_containers/food/snacks/customizable/initialize_slice(obj/item/reagent_containers/food/snacks/slice, reagents_per_slice)
..()
slice.filling_color = filling_color
- slice.update_overlays(src)
+ slice.update_snack_overlays(src)
/obj/item/reagent_containers/food/snacks/customizable/Destroy()
- for(var/ingredient in ingredients)
- qdel(ingredient)
+ QDEL_NULL(ingredients)
return ..()
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 5f26058ab87f..49d86418e092 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -255,16 +255,15 @@ All foods are distributed among various categories. Use common sense.
trash = null
return
-/obj/item/reagent_containers/food/snacks/update_overlays(obj/item/reagent_containers/food/snacks/S)
+/obj/item/reagent_containers/food/snacks/proc/update_snack_overlays(obj/item/reagent_containers/food/snacks/S)
. = ..()
- cut_overlays()
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
else
filling.color = S.filling_color
- add_overlay(filling)
+ . += filling
// initialize_cooked_food() is called when microwaving the food
/obj/item/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency = 1)
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 39207c494d3e..5454355f9fd3 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -734,12 +734,16 @@
return O.attackby(I, user, params)
..()
-/obj/item/reagent_containers/food/snacks/pancakes/update_overlays(obj/item/reagent_containers/food/snacks/P)
- var/mutable_appearance/pancake = mutable_appearance(icon, "[P.item_state]_[rand(1,3)]")
- pancake.pixel_x = rand(-1,1)
- pancake.pixel_y = 3 * contents.len - 1
- add_overlay(pancake)
- update_appearance(UPDATE_ICON)
+/obj/item/reagent_containers/food/snacks/pancakes/update_icon(updates = ALL)
+ if(!(updates & UPDATE_OVERLAYS))
+ return ..()
+
+ updates &= ~UPDATE_OVERLAYS
+ . = ..() // Don't update overlays. We're doing that here
+
+ if(contents.len < LAZYLEN(overlays))
+ overlays -= overlays[overlays.len]
+ . |= UPDATE_OVERLAYS
/obj/item/reagent_containers/food/snacks/pancakes/attack(mob/M, mob/user, def_zone, stacked = TRUE)
if(user.a_intent == INTENT_HARM || !contents.len || !stacked)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
index 782408da1719..79e2f187b7af 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
@@ -55,14 +55,13 @@
/obj/machinery/oven/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/door_overlay
if(open)
door_overlay = mutable_appearance(icon, "oven_lid_open")
door_overlay.pixel_y = OVEN_LID_Y_OFFSET
else
door_overlay = mutable_appearance(icon, "oven_lid_closed")
- add_overlay(door_overlay);
+ . += door_overlay
/obj/machinery/oven/process(delta_time)
..()
diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm
index 721b87d130fe..bd30abb85358 100644
--- a/code/modules/modular_computers/computers/machinery/modular_computer.dm
+++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm
@@ -112,7 +112,7 @@
/obj/machinery/modular_computer/power_change()
if(cpu && cpu.use_power()) // If MC_CPU still has a power source, PC wouldn't go offline.
stat &= ~NOPOWER
- update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON) //modPCs should be changed to use powered() instead.
return
. = ..()
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 878e4821a1c5..f3a553097b6c 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -113,6 +113,7 @@
*/
/obj/machinery/proc/power_change()
if(stat & BROKEN)
+ update_appearance(UPDATE_ICON)
return
if(powered(power_channel))
if(stat & NOPOWER)
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index 40c5581b44b3..cb12b4782fdf 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -59,7 +59,6 @@
/obj/machinery/rnd/server/power_change()
. = ..()
refresh_working()
- return
/obj/machinery/rnd/server/proc/refresh_working()
if(stat & EMPED || research_disabled || stat & NOPOWER)
diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm
index 0c50f411162c..72845a00d2af 100644
--- a/code/modules/shuttle/spaceship_navigation_beacon.dm
+++ b/code/modules/shuttle/spaceship_navigation_beacon.dm
@@ -36,10 +36,6 @@ obj/machinery/spaceship_navigation_beacon/emp_act()
else
icon_state = "core-open"
-/obj/machinery/spaceship_navigation_beacon/power_change()
- . = ..()
- update_appearance(UPDATE_ICON)
-
/obj/machinery/spaceship_navigation_beacon/multitool_act(mob/living/user, obj/item/multitool/I)
if(panel_open)
var/new_name = "Beacon_[input("Enter the custom name for this beacon", "It be Beacon ..your input..") as text]"
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index b73d03236ad2..02b16acf41ff 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -974,7 +974,7 @@ GLOBAL_LIST_EMPTY(vending_products)
else
stat |= NOPOWER
- update_appearance(UPDATE_ICON)
+ return ..()
//Somebody cut an important wire and now we're following a new definition of "pitch."
/**
From e18b7ae0d0c0269a1faac7b08f53f63ccc2e6e97 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 18:54:51 -0400
Subject: [PATCH 09/50] general annoyances in this PR
---
code/controllers/globals.dm | 2 +-
code/controllers/subsystem/blackbox.dm | 2 +-
code/datums/wires/_wires.dm | 5 +----
code/game/alternate_appearance.dm | 4 ----
code/game/atoms.dm | 3 +++
code/modules/atmospherics/gasmixtures/gas_mixture.dm | 2 +-
code/modules/mob/dead/observer/observer.dm | 2 +-
7 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm
index b029ad215085..a098680ee403 100644
--- a/code/controllers/globals.dm
+++ b/code/controllers/globals.dm
@@ -35,7 +35,7 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars)
return ..()
/datum/controller/global_vars/can_vv_get(var_name)
- if(var_name == "gvars_datum_protected_varlist")
+ if(var_name == NAMEOF(src, gvars_datum_protected_varlist))
return FALSE
return ..()
diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm
index fe652102534b..68fade5867ea 100644
--- a/code/controllers/subsystem/blackbox.dm
+++ b/code/controllers/subsystem/blackbox.dm
@@ -68,7 +68,7 @@ SUBSYSTEM_DEF(blackbox)
//no touchie
/datum/controller/subsystem/blackbox/vv_get_var(var_name)
- if(var_name == "feedback")
+ if(var_name == NAMEOF(src, feedback))
return debug_variable(var_name, deepCopyList(feedback), 0, src)
return ..()
diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm
index 10ebab692b1c..5335d652eea0 100644
--- a/code/datums/wires/_wires.dm
+++ b/code/datums/wires/_wires.dm
@@ -11,9 +11,6 @@
if(A.attachable)
return TRUE
-/atom
- var/datum/wires/wires = null
-
/atom/proc/attempt_wire_interaction(mob/user)
if(!wires)
return WIRE_INTERACTION_FAIL
@@ -313,4 +310,4 @@
else
to_chat(L, span_warning("You need an attachable assembly!"))
-#undef MAXIMUM_EMP_WIRES
\ No newline at end of file
+#undef MAXIMUM_EMP_WIRES
diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm
index 78a481a97dd8..f9e5fb9181f0 100644
--- a/code/game/alternate_appearance.dm
+++ b/code/game/alternate_appearance.dm
@@ -1,9 +1,5 @@
GLOBAL_LIST_EMPTY(active_alternate_appearances)
-
-/atom
- var/list/alternate_appearances
-
/atom/proc/remove_alt_appearance(key)
if(alternate_appearances)
for(var/K in alternate_appearances)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 9199a9c8e635..1ad0c6a6283e 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -29,6 +29,8 @@
///HUD images that this atom can provide.
var/list/hud_possible
+ var/list/alternate_appearances
+
///Value used to increment ex_act() if reactionary_explosions is on
var/explosion_block = 0
@@ -39,6 +41,7 @@
*/
var/list/atom_colours
+ var/datum/wires/wires = null
///overlays that should remain on top and not normally removed when using cut_overlay functions, like c4.
var/list/priority_overlays
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
index 985ed07f7d91..991907fbd814 100644
--- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
@@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache())
reaction_results = new
/datum/gas_mixture/vv_edit_var(var_name, var_value)
- if(var_name == "_extools_pointer_gasmixture")
+ if(var_name == NAMEOF(src, _extools_pointer_gasmixture))
return FALSE // please no. segfaults bad.
return ..()
/*
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 5fed9d343765..467e0b8987a3 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -970,7 +970,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/vv_edit_var(var_name, var_value)
. = ..()
- if(var_name == "invisibility")
+ if(var_name == NAMEOF(src, invisibility))
set_invisibility(invisibility) // updates light
/proc/set_observer_default_invisibility(amount, message=null)
From 50aa00cd58db743d4f032598cdefde336af23504 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 19:09:30 -0400
Subject: [PATCH 10/50] going in specific fixes
---
code/_onclick/hud/alien.dm | 4 +-
code/_onclick/hud/alien_larva.dm | 4 +-
code/_onclick/hud/constructs.dm | 2 +-
code/_onclick/hud/devil.dm | 4 +-
code/_onclick/hud/generic_dextrous.dm | 4 +-
code/_onclick/hud/human.dm | 4 +-
code/_onclick/hud/monkey.dm | 4 +-
code/_onclick/hud/robot.dm | 4 +-
code/_onclick/hud/screen_objects.dm | 2 +-
code/datums/martial/sleeping_carp.dm | 2 +-
code/game/area/areas.dm | 4 +-
code/game/machinery/ai_slipper.dm | 2 +-
code/game/machinery/airlock_control.dm | 2 +-
code/game/machinery/aug_manipulator.dm | 2 +-
code/game/machinery/bounty_board.dm | 2 +-
code/game/machinery/buttons.dm | 2 +-
code/game/machinery/dance_machine.dm | 2 +-
code/game/machinery/decontamination.dm | 2 +-
code/game/machinery/dna_scanner.dm | 3 +-
code/game/machinery/doppler_array.dm | 2 +-
code/game/machinery/droneDispenser.dm | 2 +-
code/game/machinery/electrolyzer.dm | 2 +-
code/game/machinery/fat_sucker.dm | 23 +++++-----
code/game/machinery/firealarm.dm | 2 +-
code/game/machinery/flasher.dm | 14 +++---
code/game/machinery/gulag_processor.dm | 2 +-
code/game/machinery/gulag_teleporter.dm | 3 +-
code/game/machinery/harvester.dm | 8 +++-
code/game/machinery/hologram.dm | 2 +-
code/game/machinery/igniter.dm | 2 +-
code/game/machinery/iv_drip.dm | 61 +++++++++++++------------
code/game/machinery/lightswitch.dm | 14 +++---
32 files changed, 98 insertions(+), 94 deletions(-)
diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm
index da3c51ca94ba..bc6d08d4b40f 100644
--- a/code/_onclick/hud/alien.dm
+++ b/code/_onclick/hud/alien.dm
@@ -83,7 +83,7 @@
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_above_movement
static_inventory += pull_icon
@@ -100,7 +100,7 @@
infodisplay += alien_queen_finder
zone_select = new /atom/movable/screen/zone_sel/alien()
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm
index 5c7062a365f1..b6ce26603f85 100644
--- a/code/_onclick/hud/alien_larva.dm
+++ b/code/_onclick/hud/alien_larva.dm
@@ -17,7 +17,7 @@
infodisplay += alien_queen_finder
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = 'icons/mob/screen_alien.dmi'
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_above_movement
hotkeybuttons += pull_icon
@@ -26,5 +26,5 @@
static_inventory += using
zone_select = new /atom/movable/screen/zone_sel/alien()
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
diff --git a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm
index 4b8fb2838042..b27331a811c7 100644
--- a/code/_onclick/hud/constructs.dm
+++ b/code/_onclick/hud/constructs.dm
@@ -5,7 +5,7 @@
..()
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_construct_pull
static_inventory += pull_icon
diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm
index 3e4b39832322..b553efc1c890 100644
--- a/code/_onclick/hud/devil.dm
+++ b/code/_onclick/hud/devil.dm
@@ -13,7 +13,7 @@
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_drone_pull
static_inventory += pull_icon
@@ -39,7 +39,7 @@
zone_select = new /atom/movable/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
devilsouldisplay = new /atom/movable/screen/devil/soul_counter
infodisplay += devilsouldisplay
diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm
index 4e86148f2e24..a58a103d9cda 100644
--- a/code/_onclick/hud/generic_dextrous.dm
+++ b/code/_onclick/hud/generic_dextrous.dm
@@ -10,7 +10,7 @@
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_drone_pull
static_inventory += pull_icon
@@ -41,7 +41,7 @@
zone_select = new /atom/movable/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
using = new /atom/movable/screen/area_creator
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 2ee4fba344f3..ff02d32fd88b 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -288,7 +288,7 @@
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_above_intent
static_inventory += pull_icon
@@ -297,7 +297,7 @@
zone_select = new /atom/movable/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm
index f171e2d9f58f..412cd9e98b1b 100644
--- a/code/_onclick/hud/monkey.dm
+++ b/code/_onclick/hud/monkey.dm
@@ -83,13 +83,13 @@
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_above_movement
static_inventory += pull_icon
zone_select = new /atom/movable/screen/zone_sel()
zone_select.icon = ui_style
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
mymob.client.screen = list()
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 39b24e8ab827..7fdf26f94f40 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -169,13 +169,13 @@
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = 'icons/mob/screen_cyborg.dmi'
- pull_icon.update_icon(mymob)
+ pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_borg_pull
hotkeybuttons += pull_icon
zone_select = new /atom/movable/screen/zone_sel/robot()
- zone_select.update_icon(mymob)
+ zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 5cba45b63a8a..da21a2c540e5 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -519,7 +519,7 @@
if(choice != selecting)
selecting = choice
- update_icon(usr)
+ update_appearance(UPDATE_ICON)
return 1
/atom/movable/screen/zone_sel/update_overlays()
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index 178bdce34eac..1fc3da8df6de 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -181,7 +181,7 @@
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
block_chance = 50
-/obj/item/twohanded/bostaff/update_icon(updates=ALL)
+/obj/item/twohanded/bostaff/update_icon_state()
. = ..()
icon_state = "bostaff[wielded]"
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index d01ce11aaa21..5f568c6cb7dc 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -537,8 +537,8 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/**
* Update the icon of the area (overridden to always be null for space
*/
-/area/space/update_icon(updates=ALL)
- . = ..()
+/area/space/update_icon_state()
+ SHOULD_CALL_PARENT(FALSE)
icon_state = null
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index 1d01a43d851b..dfd10fbb7fb0 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -17,7 +17,7 @@
. = ..()
. += span_notice("It has [uses] uses of foam remaining.")
-/obj/machinery/ai_slipper/update_icon(updates=ALL)
+/obj/machinery/ai_slipper/update_icon_state()
. = ..()
if(stat & BROKEN)
return
diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm
index 99dda3ad4841..52a878a1de2d 100644
--- a/code/game/machinery/airlock_control.dm
+++ b/code/game/machinery/airlock_control.dm
@@ -115,7 +115,7 @@
id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR
master_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER
-/obj/machinery/airlock_sensor/update_icon(updates=ALL)
+/obj/machinery/airlock_sensor/update_icon_state()
. = ..()
if(on)
if(alert)
diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm
index 8f686f18065b..732de941f591 100644
--- a/code/game/machinery/aug_manipulator.dm
+++ b/code/game/machinery/aug_manipulator.dm
@@ -19,7 +19,7 @@
initial_icon_state = initial(icon_state)
return ..()
-/obj/machinery/aug_manipulator/update_icon(updates=ALL)
+/obj/machinery/aug_manipulator/update_icon_state()
. = ..()
if(stat & BROKEN)
icon_state = "[initial_icon_state]-broken"
diff --git a/code/game/machinery/bounty_board.dm b/code/game/machinery/bounty_board.dm
index 866d074f5e65..dbfa874310cc 100644
--- a/code/game/machinery/bounty_board.dm
+++ b/code/game/machinery/bounty_board.dm
@@ -31,7 +31,7 @@ GLOBAL_LIST_EMPTY(request_list)
GLOB.allbountyboards -= src
. = ..()
-/obj/machinery/bounty_board/update_icon(updates=ALL)
+/obj/machinery/bounty_board/update_icon_state()
. = ..()
if(stat & (NOPOWER|BROKEN))
icon_state = "request_kiosk_off"
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index 8ccbc8a177c5..fb754a98be52 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -42,7 +42,7 @@
board.accesses = req_one_access
-/obj/machinery/button/update_icon(updates=ALL)
+/obj/machinery/button/update_icon_state()
. = ..()
if(panel_open)
icon_state = "button-open"
diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm
index 4e41d093a45d..0216151d09fb 100644
--- a/code/game/machinery/dance_machine.dm
+++ b/code/game/machinery/dance_machine.dm
@@ -80,7 +80,7 @@
return
return ..()
-/obj/machinery/jukebox/update_icon(updates=ALL)
+/obj/machinery/jukebox/update_icon_state()
. = ..()
if(active)
icon_state = "[initial(icon_state)]-active"
diff --git a/code/game/machinery/decontamination.dm b/code/game/machinery/decontamination.dm
index b6c54de73878..db881eab3bea 100644
--- a/code/game/machinery/decontamination.dm
+++ b/code/game/machinery/decontamination.dm
@@ -37,7 +37,7 @@
decon_emagged = new(list(src), FALSE)
update_appearance(UPDATE_ICON)
-/obj/machinery/decontamination_unit/update_icon(updates=ALL)
+/obj/machinery/decontamination_unit/update_icon_state()
. = ..()
icon_state = uv? "tube_on" : (state_open? "tube_open" : "tube")
diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm
index ff787276b660..7492975e1ac3 100644
--- a/code/game/machinery/dna_scanner.dm
+++ b/code/game/machinery/dna_scanner.dm
@@ -35,7 +35,8 @@
if(scan_level >= 3)
. += "Scanner has been upgraded to support autoprocessing."
-/obj/machinery/dna_scannernew/update_icon(updates=ALL)
+/obj/machinery/dna_scannernew/update_icon_state()
+ . = ..()
//no power or maintenance
if(stat & (NOPOWER|BROKEN))
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index f1cd200f232b..e816b4db95db 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -81,7 +81,7 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
return FALSE
return ..()
-/obj/machinery/doppler_array/update_icon(updates=ALL)
+/obj/machinery/doppler_array/update_icon_state()
. = ..()
if(stat & BROKEN)
icon_state = "[initial(icon_state)]-broken"
diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm
index 6077da46a9fc..0ba3aeeb5ce7 100644
--- a/code/game/machinery/droneDispenser.dm
+++ b/code/game/machinery/droneDispenser.dm
@@ -169,7 +169,7 @@
if(istype(a, dispense_type))
.++
-/obj/machinery/droneDispenser/update_icon(updates=ALL)
+/obj/machinery/droneDispenser/update_icon_state()
. = ..()
if(stat & (BROKEN|NOPOWER))
icon_state = icon_off
diff --git a/code/game/machinery/electrolyzer.dm b/code/game/machinery/electrolyzer.dm
index f1d8f9eeb8d4..a3b56108a132 100644
--- a/code/game/machinery/electrolyzer.dm
+++ b/code/game/machinery/electrolyzer.dm
@@ -54,7 +54,7 @@
else
. += "There is no power cell installed."
-/obj/machinery/electrolyzer/update_icon(updates=ALL)
+/obj/machinery/electrolyzer/update_icon_state()
. = ..()
icon_state = "electrolyzer-[on ? "[mode]" : "off"]"
diff --git a/code/game/machinery/fat_sucker.dm b/code/game/machinery/fat_sucker.dm
index 17f01f8c84fc..729601badbdf 100644
--- a/code/game/machinery/fat_sucker.dm
+++ b/code/game/machinery/fat_sucker.dm
@@ -106,27 +106,26 @@
free_exit = !free_exit
to_chat(user, span_notice("Safety hatch [free_exit ? "unlocked" : "locked"]."))
-/obj/machinery/fat_sucker/update_icon(updates=ALL)
+/obj/machinery/fat_sucker/update_overlays()
. = ..()
- overlays.Cut()
if(!state_open)
if(processing)
- overlays += "[icon_state]_door_on"
- overlays += "[icon_state]_stack"
- overlays += "[icon_state]_smoke"
- overlays += "[icon_state]_green"
+ . += "[icon_state]_door_on"
+ . += "[icon_state]_stack"
+ . += "[icon_state]_smoke"
+ . += "[icon_state]_green"
else
- overlays += "[icon_state]_door_off"
+ . += "[icon_state]_door_off"
if(occupant)
if(powered(AREA_USAGE_EQUIP))
- overlays += "[icon_state]_stack"
- overlays += "[icon_state]_yellow"
+ . += "[icon_state]_stack"
+ . += "[icon_state]_yellow"
else
- overlays += "[icon_state]_red"
+ . += "[icon_state]_red"
else if(powered(AREA_USAGE_EQUIP))
- overlays += "[icon_state]_red"
+ . += "[icon_state]_red"
if(panel_open)
- overlays += "[icon_state]_panel"
+ . += "[icon_state]_panel"
/obj/machinery/fat_sucker/process(delta_time)
if(!processing)
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index ea3056b75bf8..d9fc2f9388b8 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -52,7 +52,7 @@
LAZYREMOVE(myarea.firealarms, src)
return ..()
-/obj/machinery/firealarm/update_icon(updates=ALL)
+/obj/machinery/firealarm/update_icon_state()
. = ..()
if(panel_open)
icon_state = "fire_b[buildstage]"
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 7e8f72ae4244..dc4e0c16da38 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -46,15 +46,15 @@
return FALSE
return ..()
-/obj/machinery/flasher/update_icon(updates=ALL)
+/obj/machinery/flasher/update_icon_state()
. = ..()
- if (powered())
- if(bulb.burnt_out)
- icon_state = "[base_state]1-p"
- else
- icon_state = "[base_state]1"
- else
+ if(!powered())
icon_state = "[base_state]1-p"
+ return
+ if(bulb.burnt_out)
+ icon_state = "[base_state]1-p"
+ else
+ icon_state = "[base_state]1"
//Don't want to render prison breaks impossible
/obj/machinery/flasher/attackby(obj/item/W, mob/user, params)
diff --git a/code/game/machinery/gulag_processor.dm b/code/game/machinery/gulag_processor.dm
index 6f59248dd0f4..d0b450f487e7 100644
--- a/code/game/machinery/gulag_processor.dm
+++ b/code/game/machinery/gulag_processor.dm
@@ -90,7 +90,7 @@ GLOBAL_VAR_INIT(gulag_required_items, typecacheof(list(
return ..()
-/obj/machinery/gulag_processor/update_icon(updates=ALL)
+/obj/machinery/gulag_processor/update_icon_state()
. = ..()
icon_state = initial(icon_state) + (state_open ? "_open" : "")
//no power or maintenance
diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm
index 3220300426d1..4a1e3b111643 100644
--- a/code/game/machinery/gulag_teleporter.dm
+++ b/code/game/machinery/gulag_teleporter.dm
@@ -64,7 +64,7 @@ The console is located at computer/gulag_teleporter.dm
return ..()
-/obj/machinery/gulag_teleporter/update_icon(updates=ALL)
+/obj/machinery/gulag_teleporter/update_icon_state()
. = ..()
icon_state = initial(icon_state) + (state_open ? "_open" : "")
//no power or maintenance
@@ -81,7 +81,6 @@ The console is located at computer/gulag_teleporter.dm
//running and someone in there
if(occupant)
icon_state += "_occupied"
- return
/obj/machinery/gulag_teleporter/relaymove(mob/user)
diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm
index f8ac55315e11..f008b7c21f06 100644
--- a/code/game/machinery/harvester.dm
+++ b/code/game/machinery/harvester.dm
@@ -9,6 +9,7 @@
idle_power_usage = 50
circuit = /obj/item/circuitboard/machine/harvester
light_color = LIGHT_COLOR_BLUE
+ var/warming_up
var/interval = 20
var/harvesting = FALSE
var/list/operation_order = list() //Order of wich we harvest limbs.
@@ -27,7 +28,8 @@
max_time -= L.rating
interval = max(max_time,1)
-/obj/machinery/harvester/update_icon(warming_up)
+/obj/machinery/harvester/update_icon_state()
+ . = ..()
if(warming_up)
icon_state = initial(icon_state)+"-charging"
return
@@ -87,10 +89,12 @@
harvesting = TRUE
visible_message(span_notice("The [name] begins warming up!"))
say("Initializing harvest protocol.")
- update_icon(TRUE)
+ warming_up = TRUE
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(harvest)), interval)
/obj/machinery/harvester/proc/harvest()
+ warming_up = FALSE
update_appearance(UPDATE_ICON)
if(!harvesting || state_open || !powered(AREA_USAGE_EQUIP) || !occupant || !iscarbon(occupant))
return
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index fb91ed1c25d7..b9b64536e289 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -469,7 +469,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
set_light_on(FALSE)
update_appearance(UPDATE_ICON)
-/obj/machinery/holopad/update_icon(updates=ALL)
+/obj/machinery/holopad/update_icon_state()
. = ..()
var/total_users = LAZYLEN(masters) + LAZYLEN(holo_calls)
if(ringing)
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index e214ad3a6254..b40419f65a57 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -102,7 +102,7 @@
QDEL_NULL(spark_system)
return ..()
-/obj/machinery/sparker/update_icon(updates=ALL)
+/obj/machinery/sparker/update_icon_state()
. = ..()
if(disable)
icon_state = "[initial(icon_state)]-d"
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index a716d01deef4..11532de5f553 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -25,7 +25,7 @@
QDEL_NULL(beaker)
return ..()
-/obj/machinery/iv_drip/update_icon(updates=ALL)
+/obj/machinery/iv_drip/update_icon_state()
. = ..()
if(attached)
if(mode)
@@ -38,35 +38,36 @@
else
icon_state = "donateidle"
- cut_overlays()
-
- if(beaker)
- if(attached)
- add_overlay("beakeractive")
- else
- add_overlay("beakeridle")
- if(beaker.reagents.total_volume)
- var/mutable_appearance/filling_overlay = mutable_appearance('icons/obj/iv_drip.dmi', "reagent")
-
- var/percent = round((beaker.reagents.total_volume / beaker.volume) * 100)
- switch(percent)
- if(0 to 9)
- filling_overlay.icon_state = "reagent0"
- if(10 to 24)
- filling_overlay.icon_state = "reagent10"
- if(25 to 49)
- filling_overlay.icon_state = "reagent25"
- if(50 to 74)
- filling_overlay.icon_state = "reagent50"
- if(75 to 79)
- filling_overlay.icon_state = "reagent75"
- if(80 to 90)
- filling_overlay.icon_state = "reagent80"
- if(91 to INFINITY)
- filling_overlay.icon_state = "reagent100"
-
- filling_overlay.color = list("#0000", "#0000", "#0000", "#000f", mix_color_from_reagents(beaker.reagents.reagent_list))
- add_overlay(filling_overlay)
+/obj/machinery/iv_drip/update_overlays()
+ . = ..()
+ if(!beaker)
+ return
+ if(attached)
+ . += "beakeractive"
+ else
+ . += "beakeridle"
+ if(!beaker.reagents.total_volume)
+ return
+ var/mutable_appearance/filling_overlay = mutable_appearance('icons/obj/iv_drip.dmi', "reagent")
+ var/percent = round((beaker.reagents.total_volume / beaker.volume) * 100)
+ switch(percent)
+ if(0 to 9)
+ filling_overlay.icon_state = "reagent0"
+ if(10 to 24)
+ filling_overlay.icon_state = "reagent10"
+ if(25 to 49)
+ filling_overlay.icon_state = "reagent25"
+ if(50 to 74)
+ filling_overlay.icon_state = "reagent50"
+ if(75 to 79)
+ filling_overlay.icon_state = "reagent75"
+ if(80 to 90)
+ filling_overlay.icon_state = "reagent80"
+ if(91 to INFINITY)
+ filling_overlay.icon_state = "reagent100"
+
+ filling_overlay.color = list("#0000", "#0000", "#0000", "#000f", mix_color_from_reagents(beaker.reagents.reagent_list))
+ . += filling_overlay
/obj/machinery/iv_drip/MouseDrop(mob/living/target)
. = ..()
diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm
index abef6031bb9a..85e58ba6fad9 100644
--- a/code/game/machinery/lightswitch.dm
+++ b/code/game/machinery/lightswitch.dm
@@ -27,14 +27,14 @@
update_appearance(UPDATE_ICON)
-/obj/machinery/light_switch/update_icon(updates=ALL)
+/obj/machinery/light_switch/update_overlays()
. = ..()
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
- if(!(stat & NOPOWER))
- if(area.lightswitch)
- SSvis_overlays.add_vis_overlay(src, icon, "light1", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
- else
- SSvis_overlays.add_vis_overlay(src, icon, "light0", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
+ if(stat & NOPOWER)
+ return
+ if(area.lightswitch)
+ . += "light1"
+ else
+ . += "light0"
/obj/machinery/light_switch/examine(mob/user)
. = ..()
From eac82548d14d8277c1e41cce4931638ce70226eb Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Tue, 11 Jul 2023 21:15:33 -0400
Subject: [PATCH 11/50] remove remaining update icons and hud fixes
---
code/_onclick/hud/human.dm | 7 ++++++
code/_onclick/hud/screen_objects.dm | 5 ++---
code/game/machinery/PDApainter.dm | 15 ++++++-------
code/game/machinery/Sleeper.dm | 2 +-
code/game/machinery/doors/airlock.dm | 22 +++++++++----------
code/game/machinery/igniter.dm | 2 +-
code/game/machinery/magnet.dm | 7 +++---
code/game/machinery/medical_kiosk.dm | 2 +-
code/game/machinery/navbeacon.dm | 9 ++++----
code/game/machinery/newscaster.dm | 18 +++++++++------
code/game/machinery/prisonlabor.dm | 2 +-
code/game/machinery/recharger.dm | 6 ++---
code/game/machinery/rechargestation.dm | 2 +-
code/game/machinery/recycler.dm | 2 +-
code/game/machinery/requests_console.dm | 7 ++++--
code/game/machinery/sci_bombardment.dm | 12 +++++-----
code/game/machinery/shieldgen.dm | 6 ++---
code/game/machinery/slotmachine.dm | 5 +----
code/game/machinery/spaceheater.dm | 7 +++---
code/modules/assembly/flash.dm | 8 +++----
code/modules/client/preferences/ghost.dm | 2 +-
code/modules/clothing/glasses/_glasses.dm | 2 +-
code/modules/clothing/head/collectable.dm | 2 +-
code/modules/clothing/head/misc_special.dm | 2 +-
code/modules/clothing/spacesuits/plasmamen.dm | 6 ++---
code/modules/flufftext/Hallucination.dm | 6 ++---
code/modules/mob/dead/observer/login.dm | 2 +-
code/modules/mob/dead/observer/observer.dm | 4 +++-
.../living/simple_animal/eldritch_demons.dm | 12 +++++-----
code/modules/mob/mob.dm | 4 ++--
code/modules/mob/mob_movement.dm | 2 +-
code/modules/power/singularity/generator.dm | 4 ++--
code/modules/projectiles/gun.dm | 2 +-
code/modules/projectiles/guns/energy.dm | 2 +-
.../projectiles/guns/energy/energy_gun.dm | 2 +-
.../projectiles/guns/misc/syringe_gun.dm | 2 +-
.../security_levels/keycard_authentication.dm | 4 ++--
code/modules/vending/security_armaments.dm | 2 +-
38 files changed, 110 insertions(+), 98 deletions(-)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index ff02d32fd88b..f0761648bd9b 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -109,6 +109,7 @@
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()
@@ -269,14 +270,17 @@
throw_icon = new /atom/movable/screen/throw_catch()
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.icon = ui_style
rest_icon.screen_loc = ui_above_movement
+ rest_icon.hud = src
static_inventory += rest_icon
healths = new /atom/movable/screen/healths()
+ healths.hud = src
infodisplay += healths
stamina = new /atom/movable/screen/stamina()
@@ -284,18 +288,21 @@
infodisplay += stamina
healthdoll = new /atom/movable/screen/healthdoll()
+ healthdoll.hud = src
infodisplay += healthdoll
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = ui_style
pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_above_intent
+ pull_icon.hud = src
static_inventory += pull_icon
devilsouldisplay = new /atom/movable/screen/devil/soul_counter
infodisplay += devilsouldisplay
zone_select = new /atom/movable/screen/zone_sel()
+ zone_select.hud = src
zone_select.icon = ui_style
zone_select.update_appearance(UPDATE_ICON)
static_inventory += zone_select
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index da21a2c540e5..eef70bfa7e6e 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -421,7 +421,6 @@
icon_state = "zone_sel"
screen_loc = ui_zonesel
var/overlay_icon = 'icons/mob/screen_gen.dmi'
- var/selecting = BODY_ZONE_CHEST
var/static/list/hover_overlays_cache = list()
var/hovering
@@ -517,8 +516,8 @@
if(isobserver(user))
return
- if(choice != selecting)
- selecting = choice
+ if(choice != hud.mymob.zone_selected)
+ hud.mymob.zone_selected = choice
update_appearance(UPDATE_ICON)
return 1
diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm
index dcc43cc9cd73..d89241338826 100644
--- a/code/game/machinery/PDApainter.dm
+++ b/code/game/machinery/PDApainter.dm
@@ -8,24 +8,23 @@
var/obj/item/pda/storedpda = null
var/list/colorlist = list()
-
-/obj/machinery/pdapainter/update_icon(updates=ALL)
+/obj/machinery/pdapainter/update_icon_state()
. = ..()
- cut_overlays()
-
if(stat & BROKEN)
icon_state = "[initial(icon_state)]-broken"
return
- if(storedpda)
- add_overlay("[initial(icon_state)]-closed")
-
if(powered())
icon_state = initial(icon_state)
else
icon_state = "[initial(icon_state)]-off"
- return
+/obj/machinery/pdapainter/update_overlays()
+ . = ..()
+ if(stat & BROKEN)
+ return
+ if(storedpda)
+ . += "[initial(icon_state)]-closed"
/obj/machinery/pdapainter/Initialize(mapload)
. = ..()
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index d02d6285ef82..7c1c68f09d8d 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -69,7 +69,7 @@
available_treatments |= treatments[i]
stasis = (I >= 4)
-/obj/machinery/sleeper/update_icon(updates=ALL)
+/obj/machinery/sleeper/update_icon_state()
. = ..()
if(state_open)
icon_state = "[initial(icon_state)]-open"
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index f2ad12a1acce..ba0f0f41f2ec 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -760,15 +760,15 @@
/obj/machinery/door/airlock/do_animate(animation)
switch(animation)
if("opening")
- update_icon(AIRLOCK_OPENING)
+ update_icon(state = AIRLOCK_OPENING)
if("closing")
- update_icon(AIRLOCK_CLOSING)
+ update_icon(state=AIRLOCK_CLOSING)
if("deny")
if(!stat)
- update_icon(AIRLOCK_DENY)
+ update_icon(state = AIRLOCK_DENY)
playsound(src,doorDeni,50,0,3)
sleep(0.6 SECONDS)
- update_icon(AIRLOCK_CLOSED)
+ update_icon(state = AIRLOCK_CLOSED)
/obj/machinery/door/airlock/examine(mob/user)
. = ..()
@@ -1388,7 +1388,7 @@
if(welded)
welded = !welded
operating = TRUE
- update_icon(AIRLOCK_OPENING, 1)
+ update_icon(state = AIRLOCK_OPENING, override = TRUE)
sleep(0.1 SECONDS)
set_opacity(0)
update_freelook_sight()
@@ -1398,7 +1398,7 @@
air_update_turf(1)
sleep(0.1 SECONDS)
layer = OPEN_DOOR_LAYER
- update_icon(AIRLOCK_OPEN, 1)
+ update_icon(state = AIRLOCK_OPEN, override = TRUE)
operating = FALSE
if(delayed_close_requested)
delayed_close_requested = FALSE
@@ -1433,7 +1433,7 @@
SSexplosions.med_mov_atom += killthis
operating = TRUE
- update_icon(AIRLOCK_CLOSING, 1)
+ update_icon(state = AIRLOCK_CLOSING, override = TRUE)
layer = CLOSED_DOOR_LAYER
if(air_tight)
density = TRUE
@@ -1449,7 +1449,7 @@
set_opacity(1)
update_freelook_sight()
sleep(0.1 SECONDS)
- update_icon(AIRLOCK_CLOSED, 1)
+ update_icon(state = AIRLOCK_CLOSED, override = TRUE)
operating = FALSE
delayed_close_requested = FALSE
if(safe)
@@ -1499,13 +1499,13 @@
/obj/machinery/door/airlock/emag_act(mob/user)
if(!operating && density && hasPower() && !(obj_flags & EMAGGED))
operating = TRUE
- update_icon(AIRLOCK_EMAG, 1)
+ update_icon(state = AIRLOCK_EMAG, override = TRUE)
sleep(0.6 SECONDS)
if(QDELETED(src))
return
operating = FALSE
if(!open())
- update_icon(AIRLOCK_CLOSED, 1)
+ update_icon(state = AIRLOCK_CLOSED, override = TRUE)
obj_flags |= EMAGGED
lights = FALSE
locked = TRUE
@@ -1809,7 +1809,7 @@
/obj/machinery/door/airlock/proc/blow_charge()
panel_open = TRUE
- update_icon(AIRLOCK_OPENING)
+ update_icon(state = AIRLOCK_OPENING)
visible_message(span_warning("[src]'s panel is blown off in a spray of deadly shrapnel!"))
charge.forceMove(drop_location())
charge.ex_act(EXPLODE_DEVASTATE)
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index b40419f65a57..e9238927e030 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -69,7 +69,7 @@
wires = new /datum/wires/igniter(src)
icon_state = "igniter[on]"
-/obj/machinery/igniter/update_icon(updates=ALL)
+/obj/machinery/igniter/update_icon_state()
. = ..()
if(stat & NOPOWER)
icon_state = "igniter0"
diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm
index 4c12ac77c90a..1c5e2c5b055c 100644
--- a/code/game/machinery/magnet.dm
+++ b/code/game/machinery/magnet.dm
@@ -49,7 +49,7 @@
update_appearance(UPDATE_ICON)
// update the icon_state
-/obj/machinery/magnetic_module/update_icon(updates=ALL)
+/obj/machinery/magnetic_module/update_icon_state()
. = ..()
var/state="floor_magnet"
var/onstate=""
@@ -57,8 +57,9 @@
onstate="0"
if(invisibility)
- icon_state = "[state][onstate]-f" // if invisible, set icon to faded version
- // in case of being revealed by T-scanner
+ // if invisible, set icon to faded version
+ // in case of being revealed by T-scanner
+ icon_state = "[state][onstate]-f"
else
icon_state = "[state][onstate]"
diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm
index ab8abc026d10..d567f70eed7b 100644
--- a/code/game/machinery/medical_kiosk.dm
+++ b/code/game/machinery/medical_kiosk.dm
@@ -70,7 +70,7 @@
scan_active_4 = FALSE
return
-/obj/machinery/medical_kiosk/update_icon(updates=ALL)
+/obj/machinery/medical_kiosk/update_icon_state()
. = ..()
if(is_operational())
icon_state = "kiosk_off"
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index cecc67b290a9..6e14252d83cd 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -75,13 +75,14 @@
update_appearance(UPDATE_ICON)
// update the icon_state
-/obj/machinery/navbeacon/update_icon(updates=ALL)
+/obj/machinery/navbeacon/update_icon_state()
. = ..()
- var/state="navbeacon[open]"
+ var/state = "navbeacon[open]"
if(invisibility)
- icon_state = "[state]-f" // if invisible, set icon to faded version
- // in case revealed by T-scanner
+ // if invisible, set icon to faded version
+ // in case revealed by T-scanner
+ icon_state = "[state]-f"
else
icon_state = "[state]"
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 9f78a19cff83..51ea193c4cf4 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -226,9 +226,8 @@ GLOBAL_LIST_EMPTY(allCasters)
picture = null
return ..()
-/obj/machinery/newscaster/update_icon(updates=ALL)
+/obj/machinery/newscaster/update_icon_state()
. = ..()
- cut_overlays()
if(stat & (NOPOWER|BROKEN))
icon_state = "newscaster_off"
else
@@ -236,18 +235,23 @@ GLOBAL_LIST_EMPTY(allCasters)
icon_state = "newscaster_wanted"
else
icon_state = "newscaster_normal"
- if(alert)
- add_overlay("newscaster_alert")
+
+/obj/machinery/newscaster/update_overlays()
+ . = ..()
var/hp_percent = obj_integrity * 100 /max_integrity
switch(hp_percent)
if(75 to 100)
return
if(50 to 75)
- add_overlay("crack1")
+ . += "crack1"
if(25 to 50)
- add_overlay("crack2")
+ . += "crack2"
else
- add_overlay("crack3")
+ . += "crack3"
+ if(stat & (NOPOWER|BROKEN))
+ return
+ if(alert)
+ . += "newscaster_alert"
/obj/machinery/newscaster/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
. = ..()
diff --git a/code/game/machinery/prisonlabor.dm b/code/game/machinery/prisonlabor.dm
index f291787ede69..4c7180e2a558 100644
--- a/code/game/machinery/prisonlabor.dm
+++ b/code/game/machinery/prisonlabor.dm
@@ -9,7 +9,7 @@
var/obj/item/stack/license_plates/empty/current_plate
var/pressing = FALSE
-/obj/machinery/plate_press/update_icon(updates=ALL)
+/obj/machinery/plate_press/update_icon_state()
. = ..()
if(!is_operational())
icon_state = "offline"
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index c30851531cb4..6c393d6f367b 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -175,8 +175,8 @@
B.cell.charge = 0
-/obj/machinery/recharger/update_icon(updates=ALL) //we have an update_appearance(UPDATE_ICON) in addition to the stuff in process to make it feel a tiny bit snappier.
- cut_overlays()
+/obj/machinery/recharger/update_overlays()
+ . = ..()
if(charging)
var/mutable_appearance/scan = mutable_appearance(icon, "[initial(icon_state)]filled")
var/obj/item/stock_parts/cell/C = charging.get_cell()
@@ -194,7 +194,7 @@
scan.color = "#58d0ff"
else
scan.color = gradient(list(0, "#ff0000", 0.99, "#00ff00", 1, "#cece00"), num)
- add_overlay(scan)
+ . += scan
/obj/machinery/recharger/wallrecharger
name = "wall recharger"
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 7f8ef2aece14..7ac13c1066ed 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -88,7 +88,7 @@
use_power = ACTIVE_POWER_USE //It always tries to charge, even if it can't.
add_fingerprint(occupant)
-/obj/machinery/recharge_station/update_icon(updates=ALL)
+/obj/machinery/recharge_station/update_icon_state()
. = ..()
if(is_operational())
if(state_open)
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 48bb82bac77a..1611bef65ea3 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -71,7 +71,7 @@
playsound(src, "sparks", 75, TRUE, -1)
to_chat(user, span_notice("You use the cryptographic sequencer on [src]."))
-/obj/machinery/recycler/update_icon(updates=ALL)
+/obj/machinery/recycler/update_icon_state()
. = ..()
var/is_powered = !(stat & (BROKEN|NOPOWER))
if(safety_mode)
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 41cd612a416e..94b7c67392f8 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -75,11 +75,14 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)
set_light(0)
else
set_light(1.4,0.7,"#34D352")//green light
+
+/obj/machinery/requests_console/update_icon_state()
+ . = ..()
if(open)
if(!hackState)
- icon_state="req_comp_open"
+ icon_state = "req_comp_open"
else
- icon_state="req_comp_rewired"
+ icon_state = "req_comp_rewired"
else if(stat & NOPOWER)
if(icon_state != "req_comp_off")
icon_state = "req_comp_off"
diff --git a/code/game/machinery/sci_bombardment.dm b/code/game/machinery/sci_bombardment.dm
index 8410e13f00b6..9eedf2ecaefa 100644
--- a/code/game/machinery/sci_bombardment.dm
+++ b/code/game/machinery/sci_bombardment.dm
@@ -59,19 +59,17 @@
QDEL_NULL(radio)
return ..()
-/obj/machinery/sci_bombardment/update_icon(updates=ALL)
+/obj/machinery/sci_bombardment/update_overlays()
. = ..()
- cut_overlays()
if(!powered(power_channel))
- add_overlay("LAM_radar0")
+ . += "LAM_radar0"
set_light(0)
else
- add_overlay("LAM_screen[dest && !locked && !target_delay ? "Targ" : "Idle"]")
- add_overlay("LAM_radar[target_delay || locked ? "0" : "1"]")
+ . += "LAM_screen[dest && !locked && !target_delay ? "Targ" : "Idle"]"
+ . += "LAM_radar[target_delay || locked ? "0" : "1"]"
set_light(2)
if(scibomb)
- add_overlay("LAM_hatch")
- return
+ . += "LAM_hatch"
/obj/machinery/sci_bombardment/attackby(obj/item/transfer_valve/B, mob/user, params)
if(istype(B, /obj/item/transfer_valve) && B.tank_one && B.tank_two)
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index f01647435f57..b7d51370b98c 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -203,12 +203,12 @@
playsound(src, "sparks", 100, 1)
to_chat(user, span_warning("You short out the access controller."))
-/obj/machinery/shieldgen/update_icon(updates=ALL)
+/obj/machinery/shieldgen/update_icon_state()
. = ..()
if(active)
- icon_state = (stat & BROKEN) ? "shieldonbr":"shieldon"
+ icon_state = (stat & BROKEN) ? "shieldonbr" : "shieldon"
else
- icon_state = (stat & BROKEN) ? "shieldoffbr":"shieldoff"
+ icon_state = (stat & BROKEN) ? "shieldoffbr" : "shieldoff"
#define ACTIVE_SETUPFIELDS 1
#define ACTIVE_HASFIELDS 2
diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm
index 438eb61614ed..265fd3106a48 100644
--- a/code/game/machinery/slotmachine.dm
+++ b/code/game/machinery/slotmachine.dm
@@ -65,17 +65,14 @@
money += round(delta_time / 2) //SPESSH MAJICKS
-/obj/machinery/computer/slot_machine/update_icon(updates=ALL)
+/obj/machinery/computer/slot_machine/update_icon_state()
. = ..()
if(stat & NOPOWER)
icon_state = "slots0"
-
else if(stat & BROKEN)
icon_state = "slotsb"
-
else if(working)
icon_state = "slots2"
-
else
icon_state = "slots1"
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 97aa6d149e5c..51d30bc7fd11 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -57,13 +57,14 @@
if(in_range(user, src) || isobserver(user))
. += "The status display reads: Temperature range at [settableTemperatureRange]°C.
Heating power at [heatingPower*0.001]kJ.
Power consumption at [(efficiency*-0.0025)+150]%." //100%, 75%, 50%, 25%
-/obj/machinery/space_heater/update_icon(updates=ALL)
+/obj/machinery/space_heater/update_icon_state()
. = ..()
icon_state = "sheater-[on ? "[mode]" : "off"]"
- cut_overlays()
+/obj/machinery/space_heater/update_overlays()
+ . = ..()
if(panel_open)
- add_overlay("sheater-open")
+ . += "sheater-open"
/obj/machinery/space_heater/process(delta_time)
if(!on || stat & (BROKEN|MAINT))
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index b951a5c59700..712374081f32 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -45,7 +45,7 @@
attack(user,user)
return FIRELOSS
-/obj/item/assembly/flash/update_icon(flash = FALSE)
+/obj/item/assembly/flash/update_icon(updates=ALL, flash = FALSE)
cut_overlays()
attached_overlays = list()
if(burnt_out)
@@ -120,7 +120,7 @@
addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE)
times_used++
flash_recharge()
- update_icon(TRUE)
+ update_icon(flash = TRUE)
if(user && !clown_check(user))
return FALSE
return TRUE
@@ -173,7 +173,7 @@
var/mob/living/silicon/robot/R = M
if(!R.sensor_protection)
log_combat(user, R, "flashed", src)
- update_icon(1)
+ update_icon(flash = TRUE)
R.Paralyze(rand(80,120))
R.set_confusion_if_lower(5 SECONDS * CONFUSION_STACK_MAX_MULTIPLIER)
R.flash_act(affect_silicon = 1)
@@ -294,7 +294,7 @@
addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE)
addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd)
playsound(src, 'sound/weapons/flash.ogg', 100, TRUE)
- update_icon(1)
+ update_icon(flash = TRUE)
return TRUE
diff --git a/code/modules/client/preferences/ghost.dm b/code/modules/client/preferences/ghost.dm
index 442e8c8d789e..544346d34058 100644
--- a/code/modules/client/preferences/ghost.dm
+++ b/code/modules/client/preferences/ghost.dm
@@ -90,7 +90,7 @@
if (!is_donator(client))
return
- ghost.update_icon(value)
+ ghost.update_icon(ALL, value)
/datum/preference/choiced/ghost_form/compile_constant_data()
var/list/data = ..()
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 5cf0c4407f9f..4dbaf236f073 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -338,7 +338,7 @@
/obj/item/clothing/glasses/blindfold/white/equipped(mob/living/carbon/human/user, slot)
if(ishuman(user) && slot == ITEM_SLOT_EYES)
- update_icon(user)
+ update_appearance(UPDATE_ICON)
user.update_inv_glasses() //Color might have been changed by update_icon.
..()
diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm
index 48297c5499e0..a7af38a5fdce 100644
--- a/code/modules/clothing/head/collectable.dm
+++ b/code/modules/clothing/head/collectable.dm
@@ -105,7 +105,7 @@
/obj/item/clothing/head/collectable/kitty/equipped(mob/living/carbon/human/user, slot)
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
- update_icon(user)
+ update_appearance(UPDATE_ICON)
user.update_inv_head() //Color might have been changed by update_icon.
..()
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 6bb1beaa8b55..34ba105110a2 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -134,7 +134,7 @@
/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
- update_icon(user)
+ update_appearance(UPDATE_ICON)
user.update_inv_head() //Color might have been changed by update_icon.
var/datum/language_holder/LH = user.get_language_holder()
if(!LH.has_language(/datum/language/felinid) || !LH.can_speak_language(/datum/language/felinid))
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index 30ba60f29546..c18680d16148 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -61,7 +61,7 @@
helmet_on = !helmet_on
icon_state = "[initial(icon_state)][helmet_on ? "-light":""]"
item_state = icon_state
- update_icon(user)
+ update_appearance(UPDATE_ICON)
set_light_on(helmet_on)
@@ -78,7 +78,7 @@
saved_style = "enviro[GLOB.plasmaman_helmet_list[style]]"
add_overlay(mutable_appearance('icons/obj/clothing/hats.dmi', saved_style))
helmet_mob_overlay = mutable_appearance('icons/mob/clothing/head/head.dmi', saved_style)
- update_icon(user)
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/head/helmet/space/plasmaman/update_icon(mob/living/carbon/human/user)
if(!user)
@@ -95,7 +95,7 @@
if(slot != ITEM_SLOT_HEAD)
user.cut_overlay(helmet_mob_overlay)
return
- update_icon(user)
+ update_appearance(UPDATE_ICON)
/obj/item/clothing/head/helmet/space/plasmaman/dropped(mob/living/user)
user.cut_overlay(helmet_mob_overlay)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index a89f8d6d2de1..b42eae418de3 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
name = "alien hunter ([rand(1, 1000)])"
/obj/effect/hallucination/simple/xeno/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- update_icon("alienh_pounce")
+ update_icon(new_state = "alienh_pounce")
if(hit_atom == target && target.stat!=DEAD)
target.Paralyze(100)
target.visible_message(span_danger("[target] flails around wildly."),"[name] pounces on you!")
@@ -239,10 +239,10 @@ GLOBAL_LIST_INIT(hallucination_list, list(
feedback_details += "Vent Coords: [pump.x],[pump.y],[pump.z]"
xeno = new(pump.loc,target)
sleep(1 SECONDS)
- xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32)
+ xeno.update_icon(new_state = "alienh_leap", new_icon = 'icons/mob/alienleap.dmi', new_px = -32, new_py = -32)
xeno.throw_at(target,7,1, xeno, FALSE, TRUE)
sleep(1 SECONDS)
- xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32)
+ xeno.update_icon(new_state = "alienh_leap", new_icon = 'icons/mob/alienleap.dmi', new_px = -32, new_py = -32)
xeno.throw_at(pump,7,1, xeno, FALSE, TRUE)
sleep(1 SECONDS)
var/xeno_name = xeno.name
diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm
index e39207ffde59..2740d8c89b45 100644
--- a/code/modules/mob/dead/observer/login.dm
+++ b/code/modules/mob/dead/observer/login.dm
@@ -16,5 +16,5 @@
if (isturf(T))
update_z(T.z)
- update_icon(preferred_form)
+ update_icon(new_form = preferred_form)
updateghostimages()
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 467e0b8987a3..12adf35f59db 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -193,7 +193,9 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
* Hair will always update its dir, so if your sprite has no dirs the haircut will go all over the place.
* |- Ricotez
*/
-/mob/dead/observer/update_icon(new_form)
+/mob/dead/observer/update_icon(updates=ALL, new_form)
+ . = ..()
+
if(client) //We update our preferences in case they changed right before update_icon was called.
ghost_accs = client.prefs.read_preference(/datum/preference/choiced/ghost_accessories)
ghost_others = client.prefs.read_preference(/datum/preference/choiced/ghost_others)
diff --git a/code/modules/mob/living/simple_animal/eldritch_demons.dm b/code/modules/mob/living/simple_animal/eldritch_demons.dm
index 574f0a5bbf40..48999f3b2a07 100644
--- a/code/modules/mob/living/simple_animal/eldritch_demons.dm
+++ b/code/modules/mob/living/simple_animal/eldritch_demons.dm
@@ -317,12 +317,12 @@
)
/mob/living/simple_animal/hostile/eldritch/rust_spirit/setDir(newdir)
- . = ..()
- if(newdir == NORTH)
- icon_state = "rust_walker_n"
- else if(newdir == SOUTH)
- icon_state = "rust_walker_s"
- //update_icon(updates=ALL)
+ . = ..()
+ if(newdir == NORTH)
+ icon_state = "rust_walker_n"
+ else if(newdir == SOUTH)
+ icon_state = "rust_walker_s"
+ update_appearance(UPDATE_ICON)
/mob/living/simple_animal/hostile/eldritch/rust_spirit/Moved()
. = ..()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 12c2fda13881..ae9267b10791 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -676,13 +676,13 @@
/mob/proc/update_pull_hud_icon()
if(hud_used)
if(hud_used.pull_icon)
- hud_used.pull_icon.update_icon(src)
+ hud_used.pull_icon.update_appearance(UPDATE_ICON)
///Update the resting hud icon
/mob/proc/update_rest_hud_icon()
if(hud_used)
if(hud_used.rest_icon)
- hud_used.rest_icon.update_icon(src)
+ hud_used.rest_icon.update_appearance(UPDATE_ICON)
/**
* Verb to activate the object in your held hand
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index b2368a0ba2a1..e62c604fd91f 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -495,7 +495,7 @@
m_intent = MOVE_INTENT_RUN
if(hud_used && hud_used.static_inventory)
for(var/atom/movable/screen/mov_intent/selector in hud_used.static_inventory)
- selector.update_icon(src)
+ selector.update_appearance(UPDATE_ICON)
///Moves a mob upwards in z level
/mob/verb/up()
diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm
index f451e9b3128b..162f1775d5e6 100644
--- a/code/modules/power/singularity/generator.dm
+++ b/code/modules/power/singularity/generator.dm
@@ -22,7 +22,7 @@
default_unfasten_wrench(user, W, 0)
else
return ..()
-/obj/machinery/the_singularitygen/update_icon(power)
+/obj/machinery/the_singularitygen/update_icon(updates=ALL, power)
if(power)
if(power>150)
animate(src, icon_state = "[initial(icon_state)]_3", 10)
@@ -43,4 +43,4 @@
qdel(src)
else
energy -= delta_time * 0.5
- update_icon(energy)
+ update_icon(power = energy)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index e77255d3dddf..cb928bdf0c5c 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -643,7 +643,7 @@
attachment_overlays += M
att_position += 1
- update_icon(TRUE)
+ update_appearance(UPDATE_ICON)
for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 1fa4719ab9ab..83a610fb535d 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -156,7 +156,7 @@
to_chat(user, span_notice("[src] is now set to [shot.select_name]."))
chambered = null
recharge_newshot(TRUE)
- update_icon(TRUE)
+ update_appearance(UPDATE_ICON)
return
/obj/item/gun/energy/update_icon(force_update)
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index 6429a775012f..5608cc521927 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -163,7 +163,7 @@
I.use(1)
cell.give(250*charge_multiplier)
user.radiation += (75*charge_multiplier) //You are putting you hand into a nuclear reactor to put more uranium in it
- update_icon(TRUE)
+ update_appearance(UPDATE_ICON)
else
if(!(previous_loc == user.loc))
to_chat(user, span_boldwarning("You move, bumping your hand on [src]'s nulear reactor's core!")) //when I said devoid of ANY safety measures I meant it
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 436a065f0843..ccd49172f967 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -142,7 +142,7 @@
/obj/item/gun/syringe/blowgun/Initialize(mapload)
. = ..()
- update_icon()
+ update_appearance(UPDATE_ICON)
chambered = new /obj/item/ammo_casing/blowgun(src)
diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm
index 0db2e85e71bd..b48a1295fcfb 100644
--- a/code/modules/security_levels/keycard_authentication.dm
+++ b/code/modules/security_levels/keycard_authentication.dm
@@ -137,7 +137,7 @@ GLOBAL_VAR_INIT(emergency_access, FALSE)
for(var/turf/in_area as anything in A.get_contained_turfs())
for(var/obj/machinery/door/airlock/D in in_area)
D.emergency = TRUE
- D.update_icon(ALL, 0)
+ D.update_icon(state=ALL, override=0)
minor_announce("Access restrictions on maintenance and external airlocks have been lifted.", "Attention! Station-wide emergency declared!",1)
GLOB.emergency_access = TRUE
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("emergency maintenance access", "enabled"))
@@ -147,7 +147,7 @@ GLOBAL_VAR_INIT(emergency_access, FALSE)
for(var/turf/in_area as anything in A.get_contained_turfs())
for(var/obj/machinery/door/airlock/D in in_area)
D.emergency = FALSE
- D.update_icon(ALL, 0)
+ D.update_icon(state=ALL, override=0)
minor_announce("Access restrictions in maintenance areas have been restored.", "Attention! Station-wide emergency rescinded:")
GLOB.emergency_access = FALSE
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("emergency maintenance access", "disabled"))
diff --git a/code/modules/vending/security_armaments.dm b/code/modules/vending/security_armaments.dm
index 4c7d2ceb86a1..d4e102afc784 100644
--- a/code/modules/vending/security_armaments.dm
+++ b/code/modules/vending/security_armaments.dm
@@ -82,7 +82,7 @@
var/list/items = list()
for(var/obj/item/wep in inventory)
var/obj/item/gun/weapon = wep
- weapon.update_icon(TRUE)
+ weapon.update_appearance(UPDATE_ICON)
var/icon/gun_icon = getFlatIcon(wep)
var/list/details = list()
From de0400b80400d9e7872fea73840285a5c4629f25 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 02:51:42 -0400
Subject: [PATCH 12/50] Mass replace update icon with update icon
state/overlays
---
code/game/machinery/camera/camera.dm | 3 +-
code/game/machinery/camera/camera_assembly.dm | 2 +-
code/game/machinery/computer/_computer.dm | 9 ++--
code/game/machinery/computer/aifixer.dm | 23 +++++-----
code/game/machinery/computer/arcade.dm | 2 +-
code/game/machinery/computer/atmos_alert.dm | 6 +--
code/game/machinery/computer/atmos_control.dm | 2 +-
code/game/machinery/computer/camera.dm | 3 +-
code/game/machinery/computer/station_alert.dm | 4 +-
code/game/machinery/doors/brigdoors.dm | 22 +++++-----
code/game/machinery/doors/door.dm | 2 +-
code/game/machinery/doors/firedoor.dm | 21 +++++----
code/game/machinery/doors/passworddoor.dm | 2 +-
code/game/machinery/doors/poddoor.dm | 2 +-
code/game/machinery/doors/windowdoor.dm | 2 +-
.../embedded_controller/access_controller.dm | 4 +-
.../embedded_controller/airlock_controller.dm | 2 +-
.../embedded_controller_base.dm | 2 -
.../simple_vent_controller.dm | 2 +-
.../machinery/porta_turret/portable_turret.dm | 43 +++++++++----------
code/game/machinery/stasis.dm | 20 +++++----
code/game/machinery/suit_storage_unit.dm | 21 +++++----
code/game/machinery/syndicatebomb.dm | 2 +-
.../telecomms/machines/broadcaster.dm | 8 ++--
.../telecomms/machines/message_server.dm | 9 ++--
.../machinery/telecomms/telecomunications.dm | 21 +++++----
code/game/machinery/teleporter.dm | 4 +-
code/game/machinery/transformer.dm | 2 +-
code/game/machinery/washing_machine.dm | 8 ++--
code/game/mecha/mech_bay.dm | 4 +-
code/game/mecha/mecha.dm | 2 +-
code/game/mecha/working/ripley.dm | 14 +++---
.../effects/decals/cleanable/humans.dm | 9 ++--
.../temporary_visuals/miscellaneous.dm | 4 +-
code/game/objects/items/RCD.dm | 7 ++-
code/game/objects/items/RCL.dm | 4 +-
code/game/objects/items/ashtray.dm | 7 ++-
code/game/objects/items/candle.dm | 4 +-
code/game/objects/items/cards_ids.dm | 5 +--
code/game/objects/items/chrono_eraser.dm | 5 +--
code/game/objects/items/cigs_lighters.dm | 10 ++---
code/game/objects/items/crayons.dm | 13 +++---
code/game/objects/items/credit_holochip.dm | 8 ++--
code/game/objects/items/defib.dm | 7 +--
code/game/objects/items/dice.dm | 5 +--
code/game/objects/items/discoball.dm | 5 +--
code/game/objects/items/etherealdiscoball.dm | 5 +--
code/game/objects/items/flamethrower.dm | 9 ++--
code/game/objects/items/handcuffs.dm | 2 +-
code/game/objects/items/holy_weapons.dm | 2 +-
code/game/objects/items/hot_potato.dm | 2 +-
code/game/objects/items/hourglass.dm | 2 +-
code/game/objects/items/inducer.dm | 7 ++-
code/game/objects/items/laser_level.dm | 5 +--
code/game/objects/items/mail.dm | 2 +-
code/game/objects/items/pinpointer.dm | 15 +++----
code/game/objects/items/pneumaticCannon.dm | 5 +--
code/game/objects/items/shields.dm | 2 +-
code/game/objects/items/singularityhammer.dm | 4 +-
code/game/objects/items/stunbaton.dm | 2 +-
.../objects/items/supermatter_delaminator.dm | 4 +-
.../objects/items/syndicateReverseCard.dm | 7 ++-
code/game/objects/items/theft_tools.dm | 2 +-
code/game/objects/items/toys.dm | 29 +++++++------
code/modules/religion/religion_structures.dm | 2 +-
65 files changed, 230 insertions(+), 244 deletions(-)
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 1c278a55e234..ad099747c6d1 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -354,7 +354,8 @@
new /obj/item/stack/cable_coil(loc, 2)
qdel(src)
-/obj/machinery/camera/update_icon(updates=ALL) //TO-DO: Make panel open states, xray camera, and indicator lights overlays instead.
+/obj/machinery/camera/update_icon_state() //TO-DO: Make panel open states, xray camera, and indicator lights overlays instead.
+ . = ..()
var/xray_module
if(isXRay(TRUE))
xray_module = "xray"
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 87bd1edddc15..ffe3efbcf9b6 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -67,7 +67,7 @@
if(building)
setDir(ndir)
-/obj/structure/camera_assembly/update_icon(updates=ALL)
+/obj/structure/camera_assembly/update_icon_state()
. = ..()
icon_state = "[xray_module ? "xray" : null][initial(icon_state)]"
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index b3d7094dc4cb..a688376830fc 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -54,11 +54,10 @@
icon_state = initial(icon_state)
update_appearance(UPDATE_ICON)
-/obj/machinery/computer/update_icon(updates=ALL)
+/obj/machinery/computer/update_overlays()
. = ..()
- cut_overlays()
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
+ SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
//Prevents fuckery with subtypes that are meant to be pixel shifted or map shifted shit
if(pixel_x == 0 && pixel_y == 0)
// this bit of code makes the computer hug the wall its next to
@@ -86,9 +85,9 @@
pixel_y = offet_matrix[2]
if(stat & NOPOWER)
- add_overlay("[icon_keyboard]_off")
+ . += "[icon_keyboard]_off"
return
- add_overlay(icon_keyboard)
+ . += icon_keyboard
// This whole block lets screens ignore lighting and be visible even in the darkest room
var/overlay_state = icon_screen
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index 5c58e296dbf1..34ee8b08f8f7 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -77,21 +77,20 @@
if(oldstat != occupier.stat)
update_appearance(UPDATE_ICON)
-/obj/machinery/computer/aifixer/update_icon(updates=ALL)
+/obj/machinery/computer/aifixer/update_overlays()
. = ..()
if(stat & (NOPOWER|BROKEN))
return
- else
- if(restoring)
- add_overlay("ai-fixer-on")
- if (occupier)
- switch (occupier.stat)
- if (0)
- add_overlay("ai-fixer-full")
- if (2)
- add_overlay("ai-fixer-404")
- else
- add_overlay("ai-fixer-empty")
+ if(restoring)
+ . += "ai-fixer-on"
+ if(!occupier)
+ . += "ai-fixer-empty"
+ return
+ switch(occupier.stat)
+ if(0)
+ . += "ai-fixer-full"
+ if(2)
+ . += "ai-fixer-404"
/obj/machinery/computer/aifixer/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card)
if(!..())
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index c792dd3620bb..a5c7dea552ab 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
return INITIALIZE_HINT_QDEL
Reset()
-/obj/machinery/computer/arcade/update_icon(updates=ALL)
+/obj/machinery/computer/arcade/update_icon_state()
. = ..()
if(dir == 2)
icon_screen = "invaders"
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 732e6bfd0316..0a54ea2f031e 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -77,11 +77,11 @@
update_appearance(UPDATE_ICON)
return
-/obj/machinery/computer/atmos_alert/update_icon(updates=ALL)
+/obj/machinery/computer/atmos_alert/update_overlays()
. = ..()
if(stat & (NOPOWER|BROKEN))
return
if(priority_alarms.len)
- add_overlay("alert:2")
+ . += "alert:2"
else if(minor_alarms.len)
- add_overlay("alert:1")
+ . += "alert:1"
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index cfba2bd58b8d..7474377cc462 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -42,7 +42,7 @@
name = "incinerator chamber gas sensor"
id_tag = ATMOS_GAS_MONITOR_SENSOR_INCINERATOR
-/obj/machinery/air_sensor/update_icon(updates=ALL)
+/obj/machinery/air_sensor/update_icon_state()
. = ..()
icon_state = "gsensor[on]"
diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm
index 6ef0348ea21f..43f22a4e2754 100644
--- a/code/game/machinery/computer/camera.dm
+++ b/code/game/machinery/computer/camera.dm
@@ -260,12 +260,11 @@
clockwork = TRUE //it'd look very weird
light_power = 0
-/obj/machinery/computer/security/telescreen/update_icon(updates=ALL)
+/obj/machinery/computer/security/telescreen/update_icon_state()
. = ..()
icon_state = initial(icon_state)
if(stat & BROKEN)
icon_state += "b"
- return
/obj/machinery/computer/security/telescreen/entertainment
name = "entertainment monitor"
diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm
index 8b9fc1963c8e..1b203509452c 100644
--- a/code/game/machinery/computer/station_alert.dm
+++ b/code/game/machinery/computer/station_alert.dm
@@ -74,7 +74,7 @@
L -= I
return !cleared
-/obj/machinery/computer/station_alert/update_icon(updates=ALL)
+/obj/machinery/computer/station_alert/update_overlays()
. = ..()
if(stat & (NOPOWER|BROKEN))
return
@@ -84,4 +84,4 @@
if(L.len)
active_alarms = TRUE
if(active_alarms)
- add_overlay("alert:2")
+ . += "alert:2"
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index 9b216e56452b..927f8d8b0971 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -316,12 +316,10 @@
// if timing=true, run update display function
/obj/machinery/door_timer/update_icon(updates=ALL)
. = ..()
- if(stat & (NOPOWER))
- icon_state = "frame"
+ if(stat & BROKEN)
return
-
- if(stat & (BROKEN))
- set_picture("ai_bsod")
+ if(stat & NOPOWER)
+ icon_state = "frame"
return
if(timing)
@@ -331,16 +329,18 @@
if(length(disp2) > CHARS_PER_LINE)
disp2 = "Error"
update_display(disp1, disp2)
- else
- if(maptext)
- maptext = ""
+ return
+ if(maptext)
+ maptext = ""
// Adds an icon in case the screen is broken/off, stolen from status_display.dm
-/obj/machinery/door_timer/proc/set_picture(state)
+/obj/machinery/door_timer/update_overlays()
+ . = ..()
+ if(!(stat & BROKEN))
+ return
if(maptext)
maptext = ""
- cut_overlays()
- add_overlay(mutable_appearance('icons/obj/status_display.dmi', state))
+ . += mutable_appearance('icons/obj/status_display.dmi', state)
//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 6dbb75f60b31..b16722a44f26 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -294,7 +294,7 @@
/obj/machinery/door/proc/unelectrify()
secondsElectrified = MACHINE_NOT_ELECTRIFIED
-/obj/machinery/door/update_icon(updates=ALL)
+/obj/machinery/door/update_icon_state()
. = ..()
if(density)
icon_state = "door1"
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index edf1effbf1c0..329686d9fea2 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -215,18 +215,23 @@
if("closing")
flick("door_closing", src)
-/obj/machinery/door/firedoor/update_icon(updates=ALL)
- cut_overlays()
+/obj/machinery/door/firedoor/update_icon_state()
+ . = ..()
if(density)
icon_state = "door_closed"
- if(welded)
- add_overlay("welded")
else
icon_state = "door_open"
- if(welded)
- add_overlay("welded_open")
SSdemo.mark_dirty(src)
+/obj/machinery/door/firedoor/update_overlays()
+ . = ..()
+ if(!welded)
+ return
+ if(density)
+ . += "welded"
+ else
+ . += "welded_open"
+
/obj/machinery/door/firedoor/open()
. = ..()
latetoggle()
@@ -472,8 +477,8 @@
if(CONSTRUCTION_NOCIRCUIT)
. += span_notice("There are no firelock electronics in the frame. The frame could be cut apart.")
-/obj/structure/firelock_frame/update_icon(updates=ALL)
- ..()
+/obj/structure/firelock_frame/update_icon_state()
+ . = ..()
icon_state = "frame[constructionStep]"
/obj/structure/firelock_frame/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
diff --git a/code/game/machinery/doors/passworddoor.dm b/code/game/machinery/doors/passworddoor.dm
index 54b3b3d4dacd..d91a9c9cfd38 100644
--- a/code/game/machinery/doors/passworddoor.dm
+++ b/code/game/machinery/doors/passworddoor.dm
@@ -42,7 +42,7 @@
else
do_animate("deny")
-/obj/machinery/door/password/update_icon(updates=ALL)
+/obj/machinery/door/password/update_icon_state()
. = ..()
if(density)
icon_state = "closed"
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index 9965fa29e7b6..8d5c39cf8c1e 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -89,7 +89,7 @@
flick("closing", src)
playsound(src, 'sound/machines/blastdoor.ogg', 30, 1)
-/obj/machinery/door/poddoor/update_icon(updates=ALL)
+/obj/machinery/door/poddoor/update_icon_state()
. = ..()
if(density)
icon_state = "closed"
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index fcaa2fe9f0e5..834aa255a5e4 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -45,7 +45,7 @@
electronics = null
return ..()
-/obj/machinery/door/window/update_icon(updates=ALL)
+/obj/machinery/door/window/update_icon_state()
. = ..()
if(density)
icon_state = base_state
diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm
index 0ce9f901b360..1a2fb972d1d7 100644
--- a/code/game/machinery/embedded_controller/access_controller.dm
+++ b/code/game/machinery/embedded_controller/access_controller.dm
@@ -84,7 +84,7 @@
busy = FALSE
update_appearance(UPDATE_ICON)
-/obj/machinery/doorButtons/access_button/update_icon(updates=ALL)
+/obj/machinery/doorButtons/access_button/update_icon_state()
. = ..()
if(stat & NOPOWER)
icon_state = "access_button_off"
@@ -244,7 +244,7 @@
else if(A.id_tag == idExterior)
exteriorAirlock = A
-/obj/machinery/doorButtons/airlock_controller/update_icon(updates=ALL)
+/obj/machinery/doorButtons/airlock_controller/update_icon_state()
. = ..()
if(stat & NOPOWER)
icon_state = "access_control_off"
diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm
index 80adb9aaa755..04914bc41a3c 100644
--- a/code/game/machinery/embedded_controller/airlock_controller.dm
+++ b/code/game/machinery/embedded_controller/airlock_controller.dm
@@ -255,7 +255,7 @@
new_prog.master = src
program = new_prog
-/obj/machinery/embedded_controller/radio/airlock_controller/update_icon(updates=ALL)
+/obj/machinery/embedded_controller/radio/airlock_controller/update_icon_state()
. = ..()
if(on && program)
if(program.memory["processing"])
diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index 08d2f19ee8b9..4e4c42385a21 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -32,8 +32,6 @@
popup.set_content(return_text())
popup.open()
-/obj/machinery/embedded_controller/update_icon(updates=ALL)
-
/obj/machinery/embedded_controller/proc/return_text()
/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line)
diff --git a/code/game/machinery/embedded_controller/simple_vent_controller.dm b/code/game/machinery/embedded_controller/simple_vent_controller.dm
index 75548575886a..a434f61b398b 100644
--- a/code/game/machinery/embedded_controller/simple_vent_controller.dm
+++ b/code/game/machinery/embedded_controller/simple_vent_controller.dm
@@ -54,7 +54,7 @@
new_prog.master = src
program = new_prog
-/obj/machinery/embedded_controller/radio/simple_vent_controller/update_icon(updates=ALL)
+/obj/machinery/embedded_controller/radio/simple_vent_controller/update_icon_state()
. = ..()
if(on && program)
icon_state = "airlock_control_standby"
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 7dd03435c399..6b9caf3e6f9e 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -97,27 +97,25 @@
if(!has_cover)
INVOKE_ASYNC(src, PROC_REF(popUp))
-/obj/machinery/porta_turret/update_icon(updates=ALL)
+/obj/machinery/porta_turret/update_icon_state()
. = ..()
- cut_overlays()
if(!anchored)
icon_state = "turretCover"
return
if(stat & BROKEN)
icon_state = "[base_icon_state]_broken"
- else
- if(powered())
- if(on && raised)
- switch(mode)
- if(TURRET_STUN)
- icon_state = "[base_icon_state]_stun"
- if(TURRET_LETHAL)
- icon_state = "[base_icon_state]_lethal"
- else
- icon_state = "[base_icon_state]_off"
- else
- icon_state = "[base_icon_state]_unpowered"
-
+ return
+ if(!powered())
+ icon_state = "[base_icon_state]_unpowered"
+ return
+ if(!on || !raised)
+ icon_state = "[base_icon_state]_off"
+ return
+ switch(mode)
+ if(TURRET_STUN)
+ icon_state = "[base_icon_state]_stun"
+ if(TURRET_LETHAL)
+ icon_state = "[base_icon_state]_lethal"
/obj/machinery/porta_turret/proc/setup(obj/item/gun/turret_gun)
if(stored_gun)
@@ -937,17 +935,18 @@
aTurret.setState(enabled, lethal)
update_appearance(UPDATE_ICON)
-/obj/machinery/turretid/update_icon(updates=ALL)
+/obj/machinery/turretid/update_icon_state()
. = ..()
if(stat & NOPOWER)
icon_state = "control_off"
- else if (enabled)
- if (lethal)
- icon_state = "control_kill"
- else
- icon_state = "control_stun"
- else
+ return
+ if(!enabled)
icon_state = "control_standby"
+ return
+ if(lethal)
+ icon_state = "control_kill"
+ else
+ icon_state = "control_stun"
/obj/item/wallframe/turret_control
name = "turret control frame"
diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm
index baaeb3bcaeb3..401360aa8d1b 100644
--- a/code/game/machinery/stasis.dm
+++ b/code/game/machinery/stasis.dm
@@ -109,7 +109,17 @@
/obj/machinery/stasis/proc/stasis_running()
return stasis_enabled && is_operational()
-/obj/machinery/stasis/update_icon(updates=ALL)
+/obj/machinery/stasis/update_icon_state()
+ . = ..()
+ if(stat & BROKEN)
+ icon_state = "stasis_broken"
+ return
+ if(panel_open || stat & MAINT)
+ icon_state = "stasis_maintenance"
+ return
+ icon_state = "stasis"
+
+/obj/machinery/stasis/update_overlays()
. = ..()
var/_running = stasis_running()
var/list/overlays_to_remove = managed_vis_overlays
@@ -127,14 +137,6 @@
SSvis_overlays.remove_vis_overlay(src, overlays_to_remove)
- if(stat & BROKEN)
- icon_state = "stasis_broken"
- return
- if(panel_open || stat & MAINT)
- icon_state = "stasis_maintenance"
- return
- icon_state = "stasis"
-
/obj/machinery/stasis/obj_break(damage_flag)
. = ..()
if(.)
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 57f04afe1eb5..598c983ef600 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -144,30 +144,29 @@
QDEL_NULL(storage)
return ..()
-/obj/machinery/suit_storage_unit/update_icon(updates=ALL)
+/obj/machinery/suit_storage_unit/update_overlays()
. = ..()
- cut_overlays()
if(uv)
if(uv_super)
- add_overlay("super")
+ . += "super"
else if(occupant)
- add_overlay("uvhuman")
+ . += "uvhuman"
else
- add_overlay("uv")
+ . += "uv"
else if(state_open)
if(stat & BROKEN)
- add_overlay("broken")
+ . += "broken"
else
- add_overlay("open")
+ . += "open"
if(suit)
- add_overlay("suit")
+ . += "suit"
if(helmet)
- add_overlay("helm")
+ . += "helm"
if(storage)
- add_overlay("storage")
+ . += "storage"
else if(occupant)
- add_overlay("human")
+ . += "human"
/obj/machinery/suit_storage_unit/power_change()
if(!is_operational() && state_open)
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index b7c1a0c3eb0b..3799c63845e7 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -103,7 +103,7 @@
. = ..()
. += {"A digital display on it reads "[seconds_remaining()]"."}
-/obj/machinery/syndicatebomb/update_icon(updates=ALL)
+/obj/machinery/syndicatebomb/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][active ? "-active" : "-inactive"][open_panel ? "-wires" : ""]"
diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm
index 11594fd2a263..e3378014395a 100644
--- a/code/game/machinery/telecomms/machines/broadcaster.dm
+++ b/code/game/machinery/telecomms/machines/broadcaster.dm
@@ -57,17 +57,17 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
var/mutable_appearance/sending = mutable_appearance(icon, "broadcaster_send", 1)
flick(sending, src)
-/obj/machinery/telecomms/broadcaster/update_icon(updates=ALL) // Special fuckery
- cut_overlays()
+/obj/machinery/telecomms/broadcaster/update_overlays()
+ . = ..()
if(on)
var/mutable_appearance/on_overlay = mutable_appearance(icon, on_icon, 0)
- add_overlay(on_overlay)
+ . += on_overlay
var/mutable_appearance/base_overlay
if(panel_open)
base_overlay = mutable_appearance(icon, "[initial(icon_state)]_o")
else
base_overlay = mutable_appearance(icon, initial(icon_state))
- add_overlay(base_overlay)
+ . += base_overlay
/obj/machinery/telecomms/broadcaster/Destroy()
// In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore.
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index bcdd2eaf0c6c..8678a0e9db3c 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -53,7 +53,7 @@
new /obj/effect/decal/cleanable/oil(loc)
return ..()
-/obj/machinery/blackbox_recorder/update_icon(updates=ALL)
+/obj/machinery/blackbox_recorder/update_icon_state()
. = ..()
if(!stored)
icon_state = "blackbox_b"
@@ -157,14 +157,11 @@
if(!relay_information(signal, /obj/machinery/telecomms/hub))
relay_information(signal, /obj/machinery/telecomms/broadcaster)
-/obj/machinery/telecomms/message_server/update_icon(updates=ALL)
+/obj/machinery/telecomms/message_server/update_overlays()
. = ..()
- cut_overlays()
if(calibrating && on)
var/mutable_appearance/calibrate = mutable_appearance(icon, "message_server_disabled")
- add_overlay(calibrate)
- else if (!calibrating && on)
- return ..()
+ . += calibrate
// Root messaging signal datum
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index 1777f32b66db..1883a21ee23f 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -120,21 +120,24 @@ GLOBAL_LIST_EMPTY(telecomms_list)
T.links |= src
-/obj/machinery/telecomms/update_icon(updates=ALL)
+/obj/machinery/telecomms/update_icon_state()
. = ..()
- cut_overlays()
- if(on)
- var/mutable_appearance/on_overlay
- if(on_icon)
- on_overlay = mutable_appearance(icon, on_icon)
- else
- on_overlay = mutable_appearance(icon, "[initial(icon_state)]_on")
- add_overlay(on_overlay)
if(panel_open)
icon_state = "[initial(icon_state)]_o"
else
icon_state = initial(icon_state)
+/obj/machinery/telecomms/update_overlays()
+ . = ..()
+ if(!on)
+ return
+ var/mutable_appearance/on_overlay
+ if(on_icon)
+ on_overlay = mutable_appearance(icon, on_icon)
+ else
+ on_overlay = mutable_appearance(icon, "[initial(icon_state)]_on")
+ . += on_overlay
+
/obj/machinery/telecomms/proc/update_power()
if(toggled)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 1d44550334e0..2abfb2067a03 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -87,7 +87,7 @@
calibrated = 0
return
-/obj/machinery/teleport/hub/update_icon(updates=ALL)
+/obj/machinery/teleport/hub/update_icon_state()
. = ..()
if(panel_open)
icon_state = "tele-o"
@@ -218,7 +218,7 @@
if(teleporter_hub)
teleporter_hub.update_appearance(UPDATE_ICON)
-/obj/machinery/teleport/station/update_icon(updates=ALL)
+/obj/machinery/teleport/station/update_icon_state()
. = ..()
if(panel_open)
icon_state = "controller-o"
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index 47e49818dff2..aeea168ec50d 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -34,7 +34,7 @@
QDEL_NULL(countdown)
. = ..()
-/obj/machinery/transformer/update_icon(updates=ALL)
+/obj/machinery/transformer/update_icon_state()
. = ..()
if(stat & (BROKEN|NOPOWER) || cooldown == 1)
icon_state = "separator-AO0"
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index b26b1dacce4d..bc84eeb744a9 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -258,9 +258,8 @@ GLOBAL_LIST_INIT(dye_registry, list(
add_fingerprint(user)
open_machine()
-/obj/machinery/washing_machine/update_icon(updates=ALL)
+/obj/machinery/washing_machine/update_icon_state()
. = ..()
- cut_overlays()
if(busy)
icon_state = "wm_running_[bloody_mess]"
else if(bloody_mess)
@@ -268,8 +267,11 @@ GLOBAL_LIST_INIT(dye_registry, list(
else
var/full = contents.len ? 1 : 0
icon_state = "wm_[state_open]_[full]"
+
+/obj/machinery/washing_machine/update_overlays()
+ . = ..()
if(panel_open)
- add_overlay("wm_panel")
+ . += "wm_panel"
/obj/machinery/washing_machine/attackby(obj/item/W, mob/user, params)
if(panel_open && !busy && default_unfasten_wrench(user, W))
diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm
index 87594863927f..68301e4458eb 100644
--- a/code/game/mecha/mech_bay.dm
+++ b/code/game/mecha/mech_bay.dm
@@ -138,11 +138,11 @@
else
recharge_port = null
-/obj/machinery/computer/mech_bay_power_console/update_icon(updates=ALL)
+/obj/machinery/computer/mech_bay_power_console/update_overlays()
. = ..()
if(!recharge_port || !recharge_port.recharging_mech || !recharge_port.recharging_mech.cell || !(recharge_port.recharging_mech.cell.charge < recharge_port.recharging_mech.cell.maxcharge) || stat & (NOPOWER|BROKEN))
return
- add_overlay("recharge_comp_on")
+ . += "recharge_comp_on"
/obj/machinery/computer/mech_bay_power_console/Initialize(mapload)
. = ..()
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index c74ea54c3004..bb7e139b17ee 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -170,7 +170,7 @@
diag_hud_set_mechcell()
diag_hud_set_mechstat()
-/obj/mecha/update_icon(updates=ALL)
+/obj/mecha/update_icon_state()
. = ..()
if (silicon_pilot && silicon_icon_state)
icon_state = silicon_icon_state
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index 4ea3c83a2e1c..cbcfe2425339 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -39,15 +39,15 @@
..()
update_appearance(UPDATE_ICON)
-/obj/mecha/working/ripley/update_icon(updates=ALL)
+/obj/mecha/working/ripley/update_overlays()
. = ..()
var/datum/component/armor_plate/C = GetComponent(/datum/component/armor_plate)
- if (C.amount)
- cut_overlays()
- if(C.amount < 3)
- add_overlay(occupant ? "ripley-g" : "ripley-g-open")
- else
- add_overlay(occupant ? "ripley-g-full" : "ripley-g-full-open")
+ if(!C || !C.amount)
+ return
+ if(C.amount < 3)
+ . += (occupant ? "ripley-g" : "ripley-g-open")
+ else
+ . += (occupant ? "ripley-g-full" : "ripley-g-full-open")
/obj/mecha/working/ripley/check_for_internal_damage(list/possible_int_damage,ignore_threshold=null)
if (!enclosed)
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index ea10fd0cf923..f248f581f5e2 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -225,23 +225,22 @@
update_appearance(UPDATE_ICON)
-/obj/effect/decal/cleanable/blood/footprints/update_icon(updates=ALL)
+/obj/effect/decal/cleanable/blood/footprints/update_overlays()
. = ..()
- cut_overlays()
for(var/Ddir in GLOB.cardinals)
if(entered_dirs & Ddir)
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"]
if(!bloodstep_overlay)
GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]1", dir = Ddir)
- add_overlay(bloodstep_overlay)
+ . += bloodstep_overlay
if(exited_dirs & Ddir)
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"]
if(!bloodstep_overlay)
GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]2", dir = Ddir)
- add_overlay(bloodstep_overlay)
+ . += bloodstep_overlay
- alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
+ alpha = BLOODY_FOOTPRINT_BASE_ALPHA + bloodiness
/obj/effect/decal/cleanable/blood/footprints/examine(mob/user)
diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
index 53c64b8f0a78..24b09ed785c3 100644
--- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm
+++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
@@ -183,7 +183,7 @@
if(EAST)
icon_state = "beam_splash_e"
-/obj/item/projectile/curse_hand/update_icon(updates=ALL)
+/obj/item/projectile/curse_hand/update_icon_state()
. = ..()
icon_state = "[icon_state][handedness]"
@@ -537,7 +537,7 @@
else
update_appearance(UPDATE_ICON)
-/obj/effect/constructing_effect/update_icon(updates=ALL)
+/obj/effect/constructing_effect/update_icon_state()
. = ..()
icon_state = "rcd"
if (delay < 10)
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 3d7fb5a5d6f7..3c25133864f1 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -736,12 +736,11 @@ RLD
explosion(src, 0, 0, 3, 1, flame_range = 1)
qdel(src)
-/obj/item/construction/rcd/update_icon(updates=ALL)
+/obj/item/construction/rcd/update_overlays()
. = ..()
if(has_ammobar)
var/ratio = CEILING((matter / max_matter) * ammo_sections, 1)
- cut_overlays() //To prevent infinite stacking of overlays
- add_overlay("[icon_state]_charge[ratio]")
+ . += "[icon_state]_charge[ratio]"
/obj/item/construction/rcd/Initialize(mapload)
. = ..()
@@ -875,7 +874,7 @@ RLD
else
..()
-/obj/item/construction/rld/update_icon(updates=ALL)
+/obj/item/construction/rld/update_icon_state()
. = ..()
icon_state = "rld-[round(matter/35)]"
diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm
index a40f5f1bf14f..c0a5aef6eaa9 100644
--- a/code/game/objects/items/RCL.dm
+++ b/code/game/objects/items/RCL.dm
@@ -90,7 +90,7 @@
QDEL_NULL(wiring_gui_menu)
return ..()
-/obj/item/twohanded/rcl/update_icon(updates=ALL)
+/obj/item/twohanded/rcl/update_icon_state()
. = ..()
if(!loaded)
icon_state = "rcl-0"
@@ -316,7 +316,7 @@
name = "makeshift rapid cable layer"
ghetto = TRUE
-/obj/item/twohanded/rcl/ghetto/update_icon(updates=ALL)
+/obj/item/twohanded/rcl/ghetto/update_icon_state()
. = ..()
if(!loaded)
icon_state = "rclg-0"
diff --git a/code/game/objects/items/ashtray.dm b/code/game/objects/items/ashtray.dm
index ed5a4aec72ff..dfd0dda751d4 100644
--- a/code/game/objects/items/ashtray.dm
+++ b/code/game/objects/items/ashtray.dm
@@ -5,13 +5,12 @@
icon_state = "ashtray"
var/max_butts = 10
-/obj/item/ashtray/update_icon(updates=ALL)
+/obj/item/ashtray/update_overlays()
. = ..()
- overlays.Cut()
if(contents.len == max_butts)
- add_overlay(image('icons/obj/objects.dmi',"ashtray_full"))
+ . += image('icons/obj/objects.dmi', "ashtray_full")
else if(contents.len >= max_butts * 0.5)
- add_overlay(image('icons/obj/objects.dmi',"ashtray_half"))
+ . += image('icons/obj/objects.dmi', "ashtray_half")
/obj/item/ashtray/attackby(obj/item/W, mob/user)
if (user.a_intent == INTENT_HARM)
diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm
index 9e30789111b3..6d67e937ec36 100644
--- a/code/game/objects/items/candle.dm
+++ b/code/game/objects/items/candle.dm
@@ -24,7 +24,7 @@
if(start_lit)
light()
-/obj/item/candle/update_icon(updates=ALL)
+/obj/item/candle/update_icon_state()
. = ..()
icon_state = "candle[(wax > 800) ? ((wax > 1500) ? 1 : 2) : 3][lit ? "_lit" : ""]"
@@ -100,7 +100,7 @@
wax = 2000
candle_type = "resin"
-/obj/item/candle/resin/update_icon(updates=ALL)
+/obj/item/candle/resin/update_icon_state()
. = ..()
icon_state = "resincandle[(wax > 800) ? ((wax > 1500) ? 1 : 2) : 3][lit ? "_lit" : ""]"
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 0197ac2b0fff..719f273890e3 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -40,14 +40,13 @@
.=..()
update_appearance(UPDATE_ICON)
-/obj/item/card/data/update_icon(updates=ALL)
+/obj/item/card/data/update_overlays()
. = ..()
- cut_overlays()
if(detail_color == COLOR_FLOORTILE_GRAY)
return
var/mutable_appearance/detail_overlay = mutable_appearance('icons/obj/card.dmi', "[icon_state]-color")
detail_overlay.color = detail_color
- add_overlay(detail_overlay)
+ . += detail_overlay
/obj/item/card/data/full_color
desc = "A plastic magstripe card for simple and speedy data storage and transfer. This one has the entire card colored."
diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm
index 38cc17bfee92..ad8095ffd4fb 100644
--- a/code/game/objects/items/chrono_eraser.dm
+++ b/code/game/objects/items/chrono_eraser.dm
@@ -57,6 +57,7 @@
var/turf/startpos = null
/obj/item/gun/energy/chrono_gun/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHRONO_GUN_TRAIT)
if(istype(loc, /obj/item/chrono_eraser))
@@ -65,10 +66,6 @@
TED = new(src.loc)
return INITIALIZE_HINT_QDEL
-/obj/item/gun/energy/chrono_gun/update_icon(updates=ALL)
- . = ..()
- return
-
/obj/item/gun/energy/chrono_gun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
if(field)
field_disconnect(field)
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 18a0b8e8ae08..9a53da7b8034 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -587,12 +587,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
user.visible_message(span_suicide("[user] begins whacking [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
return BRUTELOSS
-/obj/item/lighter/update_icon(updates=ALL)
+/obj/item/lighter/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/lighter_overlay = mutable_appearance(icon,"lighter_overlay_[overlay_state][lit ? "-on" : ""]")
icon_state = "[initial(icon_state)][lit ? "-on" : ""]"
- add_overlay(lighter_overlay)
+ . += lighter_overlay
/obj/item/lighter/ignition_effect(atom/A, mob/user)
if(is_hot())
@@ -722,13 +721,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
lighter_color = pick(color_list)
update_appearance(UPDATE_ICON)
-/obj/item/lighter/greyscale/update_icon(updates=ALL)
+/obj/item/lighter/greyscale/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/lighter_overlay = mutable_appearance(icon,"lighter_overlay_[overlay_state][lit ? "-on" : ""]")
icon_state = "[initial(icon_state)][lit ? "-on" : ""]"
lighter_overlay.color = lighter_color
- add_overlay(lighter_overlay)
+ . += lighter_overlay
/obj/item/lighter/greyscale/ignition_effect(atom/A, mob/user)
if(is_hot())
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 13867edb9cb2..948defd3050f 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -550,11 +550,10 @@
new /obj/item/toy/crayon/black(src)
update_appearance(UPDATE_ICON)
-/obj/item/storage/crayons/update_icon(updates=ALL)
+/obj/item/storage/crayons/update_overlays()
. = ..()
- cut_overlays()
for(var/obj/item/toy/crayon/crayon in contents)
- add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.crayon_color))
+ . += mutable_appearance('icons/obj/crayons.dmi', crayon.crayon_color)
/obj/item/storage/crayons/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/toy/crayon))
@@ -703,14 +702,16 @@
. = ..()
-/obj/item/toy/crayon/spraycan/update_icon(updates=ALL)
+/obj/item/toy/crayon/spraycan/update_icon_state()
. = ..()
icon_state = is_capped ? icon_capped : icon_uncapped
+
+/obj/item/toy/crayon/spraycan/update_overlays()
+ . = ..()
if(use_overlays)
- cut_overlays()
var/mutable_appearance/spray_overlay = mutable_appearance('icons/obj/crayons.dmi', "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]")
spray_overlay.color = paint_color
- add_overlay(spray_overlay)
+ . += spray_overlay
/obj/item/toy/crayon/spraycan/attackby(obj/item/S,mob/user)
if(S.is_sharp() || istype(S, /obj/item/screwdriver) || istype(S, /obj/item/surgicaldrill))
diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm
index a06718e09df1..61352b428502 100644
--- a/code/game/objects/items/credit_holochip.dm
+++ b/code/game/objects/items/credit_holochip.dm
@@ -22,7 +22,7 @@
/obj/item/holochip/get_item_credit_value()
return credits
-/obj/item/holochip/update_icon(updates=ALL)
+/obj/item/holochip/update_icon_state()
. = ..()
name = "\improper [credits] credit holochip"
var/rounded_credits = credits
@@ -38,6 +38,9 @@
if(1000000000 to INFINITY)
icon_state = "holochip_giga"
rounded_credits = round(rounded_credits * 0.000000001)
+
+/obj/item/holochip/update_overlays()
+ . = ..()
var/overlay_color = "#914792"
switch(rounded_credits)
if(0 to 4)
@@ -56,10 +59,9 @@
overlay_color = "#0153C1"
if(500 to INFINITY)
overlay_color = "#2C2C2C"
- cut_overlays()
var/mutable_appearance/holochip_overlay = mutable_appearance('icons/obj/economy.dmi', "[icon_state]-color")
holochip_overlay.color = overlay_color
- add_overlay(holochip_overlay)
+ . += holochip_overlay
/obj/item/holochip/proc/spend(amount, pay_anyway = FALSE)
if(credits >= amount)
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 7af93fd085b8..bb8c8bdbbf60 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -51,10 +51,6 @@
paddles.extinguish()
/obj/item/defibrillator/update_icon(updates=ALL)
- update_power()
- return ..()
-
-/obj/item/defibrillator/proc/update_power()
if(!QDELETED(cell))
if(QDELETED(paddles) || cell.charge < paddles.revivecost)
powered = FALSE
@@ -62,6 +58,7 @@
powered = TRUE
else
powered = FALSE
+ return ..()
/obj/item/defibrillator/update_overlays()
. = ..()
@@ -359,7 +356,7 @@
busy = FALSE
update_appearance(UPDATE_ICON)
-/obj/item/twohanded/shockpaddles/update_icon(updates=ALL)
+/obj/item/twohanded/shockpaddles/update_icon_state()
. = ..()
icon_state = "defibpaddles[wielded]"
item_state = "defibpaddles[wielded]"
diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm
index fc42205394d5..3776d6dde260 100644
--- a/code/game/objects/items/dice.dm
+++ b/code/game/objects/items/dice.dm
@@ -208,10 +208,9 @@
else if(!src.throwing) //Dice was thrown and is coming to rest
visible_message(span_notice("[src] rolls to a stop, landing on [result]. [comment]"))
-/obj/item/dice/update_icon(updates=ALL)
+/obj/item/dice/update_overlays()
. = ..()
- cut_overlays()
- add_overlay("[src.icon_state]-[src.result]")
+ . += "[src.icon_state]-[src.result]"
/obj/item/dice/microwave_act(obj/machinery/microwave/M)
if(microwave_riggable)
diff --git a/code/game/objects/items/discoball.dm b/code/game/objects/items/discoball.dm
index d35724a8a00b..26cbad379cf0 100644
--- a/code/game/objects/items/discoball.dm
+++ b/code/game/objects/items/discoball.dm
@@ -72,13 +72,12 @@
update_appearance(UPDATE_ICON)
TimerID = addtimer(CALLBACK(src, PROC_REF(DiscoFever)), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors
-/obj/structure/discoball/update_icon(updates=ALL)
+/obj/structure/discoball/update_overlays()
. = ..()
- cut_overlays()
icon_state = "disco_[TurnedOn]"
var/mutable_appearance/base_overlay = mutable_appearance(icon, "ethdisco_base")
base_overlay.appearance_flags = RESET_COLOR
- add_overlay(base_overlay)
+ . += base_overlay
/obj/structure/discoball/wrench_act(mob/living/user, obj/item/I)
. = ..()
diff --git a/code/game/objects/items/etherealdiscoball.dm b/code/game/objects/items/etherealdiscoball.dm
index df7e609215cd..5e85a324024a 100644
--- a/code/game/objects/items/etherealdiscoball.dm
+++ b/code/game/objects/items/etherealdiscoball.dm
@@ -65,10 +65,9 @@
update_appearance(UPDATE_ICON)
TimerID = addtimer(CALLBACK(src, PROC_REF(DiscoFever)), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors
-/obj/structure/etherealball/update_icon(updates=ALL)
+/obj/structure/etherealball/update_overlays()
. = ..()
- cut_overlays()
icon_state = "ethdisco_head_[TurnedOn]"
var/mutable_appearance/base_overlay = mutable_appearance(icon, "ethdisco_base")
base_overlay.appearance_flags = RESET_COLOR
- add_overlay(base_overlay)
+ . += base_overlay
diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm
index 16db8231e2a5..995890827d1e 100644
--- a/code/game/objects/items/flamethrower.dm
+++ b/code/game/objects/items/flamethrower.dm
@@ -54,15 +54,14 @@
igniter.flamethrower_process(location)
-/obj/item/flamethrower/update_icon(updates=ALL)
+/obj/item/flamethrower/update_overlays()
. = ..()
- cut_overlays()
if(igniter)
- add_overlay("+igniter[status]")
+ . += "+igniter[status]"
if(ptank)
- add_overlay("+ptank")
+ . += "+ptank"
if(lit)
- add_overlay("+lit")
+ . += "+lit"
item_state = "flamethrower_1"
else
item_state = "flamethrower_0"
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index 05f9080ae1c9..bf0a765fc311 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -266,7 +266,7 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/restraints/legcuffs/beartrap/update_icon(updates=ALL)
+/obj/item/restraints/legcuffs/beartrap/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][armed]"
diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm
index 10cd08ea8e55..553178a463ac 100644
--- a/code/game/objects/items/holy_weapons.dm
+++ b/code/game/objects/items/holy_weapons.dm
@@ -513,7 +513,7 @@
playsound(user, 'sound/items/sheath.ogg', 25, TRUE)
update_appearance(UPDATE_ICON)
-/obj/item/nullrod/dualsword/update_icon(updates=ALL)
+/obj/item/nullrod/dualsword/update_icon_state()
. = ..()
item_state = swords ? "fulldual" : "emptydual"
icon_state = item_state
diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm
index c033174d2c63..ed27fd0b054a 100644
--- a/code/game/objects/items/hot_potato.dm
+++ b/code/game/objects/items/hot_potato.dm
@@ -157,7 +157,7 @@
colorize(null)
active = FALSE
-/obj/item/hot_potato/update_icon(updates=ALL)
+/obj/item/hot_potato/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)]" + "[active ? "_active" : ""]"
diff --git a/code/game/objects/items/hourglass.dm b/code/game/objects/items/hourglass.dm
index 4e1eefb28c8b..f19defba2757 100644
--- a/code/game/objects/items/hourglass.dm
+++ b/code/game/objects/items/hourglass.dm
@@ -29,7 +29,7 @@
to_chat(user,span_notice("You stop the [src].")) //Sand magically flows back because that's more convinient to use.
stop()
-/obj/item/hourglass/update_icon(updates=ALL)
+/obj/item/hourglass/update_icon_state()
. = ..()
if(timing_id)
icon_state = "hourglass_active"
diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm
index 6e90966b932a..d9f86a626614 100644
--- a/code/game/objects/items/inducer.dm
+++ b/code/game/objects/items/inducer.dm
@@ -194,14 +194,13 @@
if(opened)
. += span_notice("Its battery compartment is open.")
-/obj/item/inducer/update_icon(updates=ALL)
+/obj/item/inducer/update_overlays()
. = ..()
- cut_overlays()
if(opened)
if(!cell)
- add_overlay("inducer-nobat")
+ . += "inducer-nobat"
else
- add_overlay("inducer-bat")
+ . += "inducer-bat"
/obj/item/inducer/sci
icon_state = "inducer-sci"
diff --git a/code/game/objects/items/laser_level.dm b/code/game/objects/items/laser_level.dm
index e2632c042721..12c163ac72b0 100644
--- a/code/game/objects/items/laser_level.dm
+++ b/code/game/objects/items/laser_level.dm
@@ -29,10 +29,9 @@
update_appearance(UPDATE_ICON)
update_overlay(user)
-/obj/item/laserlevel/update_icon(updates=ALL)
+/obj/item/laserlevel/update_overlays()
. = ..()
- cut_overlays()
- add_overlay("[initial(icon_state)][lightlevel]")
+ . += "[initial(icon_state)][lightlevel]"
/obj/item/laserlevel/proc/update_overlay(mob/user)
user.clear_fullscreen("laser",0)
diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm
index e8066981d2e9..c25aaaaeadb7 100644
--- a/code/game/objects/items/mail.dm
+++ b/code/game/objects/items/mail.dm
@@ -217,7 +217,7 @@
desc = "A certified post crate from CentCom."
icon_state = "mail"
-/obj/structure/closet/crate/mail/update_icon(updates=ALL)
+/obj/structure/closet/crate/mail/update_icon_state()
. = ..()
if(opened)
icon_state = "[initial(icon_state)]open"
diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm
index 4d6f64e9e3cd..af4075932534 100644
--- a/code/game/objects/items/pinpointer.dm
+++ b/code/game/objects/items/pinpointer.dm
@@ -54,30 +54,29 @@
/obj/item/pinpointer/proc/scan_for_target()
return
-/obj/item/pinpointer/update_icon(updates=ALL)
+/obj/item/pinpointer/update_overlays()
. = ..()
- cut_overlays()
if(!active)
return
if(!target)
- add_overlay("pinon[alert ? "alert" : ""]null")
+ . += "pinon[alert ? "alert" : ""]null"
return
var/turf/here = get_turf_global(src) // yogs - replace get_turf with get_turf_global
var/turf/there = get_turf_global(target) // yogs - replace get_turf with get_turf_global
if(here.z != there.z)
- add_overlay("pinon[alert ? "alert" : ""]null")
+ . += "pinon[alert ? "alert" : ""]null"
return
if(get_dist_euclidian(here,there) <= minimum_range)
- add_overlay("pinon[alert ? "alert" : ""]direct")
+ . += "pinon[alert ? "alert" : ""]direct"
else
setDir(get_dir(here, there))
switch(get_dist(here, there))
if(1 to 8)
- add_overlay("pinon[alert ? "alert" : "close"]")
+ . += "pinon[alert ? "alert" : "close"]"
if(9 to 16)
- add_overlay("pinon[alert ? "alert" : "medium"]")
+ . += "pinon[alert ? "alert" : "medium"]"
if(16 to INFINITY)
- add_overlay("pinon[alert ? "alert" : "far"]")
+ . += "pinon[alert ? "alert" : "far"]"
/obj/item/pinpointer/crew // A replacement for the old crew monitoring consoles
name = "crew pinpointer"
diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm
index a878d06733c1..90ee810c3345 100644
--- a/code/game/objects/items/pneumaticCannon.dm
+++ b/code/game/objects/items/pneumaticCannon.dm
@@ -252,12 +252,11 @@
tank = thetank
update_appearance(UPDATE_ICON)
-/obj/item/pneumatic_cannon/update_icon(updates=ALL)
+/obj/item/pneumatic_cannon/update_overlays()
. = ..()
- cut_overlays()
if(!tank)
return
- add_overlay(tank.icon_state)
+ . += tank.icon_state
/obj/item/pneumatic_cannon/proc/fill_with_type(type, amount)
if(!ispath(type, /obj) && !ispath(type, /mob))
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index aa76df7536e7..1cc2cec7b237 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -192,7 +192,7 @@
embedded_flash.emp_act(severity)
update_appearance(UPDATE_ICON)
-/obj/item/shield/riot/flash/update_icon(updates=ALL)
+/obj/item/shield/riot/flash/update_icon_state()
. = ..()
if(!embedded_flash || embedded_flash.burnt_out)
icon_state = "riot"
diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm
index 97688897e5e4..9da50a34615f 100644
--- a/code/game/objects/items/singularityhammer.dm
+++ b/code/game/objects/items/singularityhammer.dm
@@ -30,7 +30,7 @@
charged++
return
-/obj/item/twohanded/singularityhammer/update_icon(updates=ALL) //Currently only here to fuck with the on-mob icons.
+/obj/item/twohanded/singularityhammer/update_icon_state() //Currently only here to fuck with the on-mob icons.
icon_state = "singhammer[wielded]"
return
@@ -119,6 +119,6 @@
else
shock(hit_atom)
-/obj/item/twohanded/mjollnir/update_icon(updates=ALL) //Currently only here to fuck with the on-mob icons.
+/obj/item/twohanded/mjollnir/update_icon_state() //Currently only here to fuck with the on-mob icons.
icon_state = "mjollnir[wielded]"
return
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index d59da31c60c6..4679f40530b6 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -102,7 +102,7 @@
STOP_PROCESSING(SSobj, src) // no more charge? stop checking for discharge
-/obj/item/melee/baton/update_icon(updates=ALL)
+/obj/item/melee/baton/update_icon_state()
. = ..()
if(status)
icon_state = "[initial(icon_state)]_active"
diff --git a/code/game/objects/items/supermatter_delaminator.dm b/code/game/objects/items/supermatter_delaminator.dm
index 9ae2374228f8..368b366bc4e2 100644
--- a/code/game/objects/items/supermatter_delaminator.dm
+++ b/code/game/objects/items/supermatter_delaminator.dm
@@ -138,7 +138,7 @@
seal()
to_chat(user, span_warning("[user] seals the [src]."))
-/obj/item/antinoblium_container/update_icon(updates=ALL)
+/obj/item/antinoblium_container/update_icon_state()
. = ..()
if(sealed)
icon_state = "antinoblium_container_sealed"
@@ -161,7 +161,7 @@
QDEL_NULL(shard)
return ..()
-/obj/item/hemostat/antinoblium/update_icon(updates=ALL)
+/obj/item/hemostat/antinoblium/update_icon_state()
. = ..()
if(shard)
icon_state = "antinoblium_tongs_loaded"
diff --git a/code/game/objects/items/syndicateReverseCard.dm b/code/game/objects/items/syndicateReverseCard.dm
index 0ea8f9ab93e8..0b6b33eb017a 100644
--- a/code/game/objects/items/syndicateReverseCard.dm
+++ b/code/game/objects/items/syndicateReverseCard.dm
@@ -14,11 +14,10 @@
name = "[cardColor] Reverse"
icon_state = "sc_[cardColor] Reverse_uno"
-/obj/item/syndicateReverseCard/update_icon(updates=ALL)
+/obj/item/syndicateReverseCard/update_overlays()
. = ..()
- if (used)
- cut_overlays()
- add_overlay(image('icons/obj/toy.dmi', icon_state = "reverse_overlay"))
+ if(used)
+ . += image('icons/obj/toy.dmi', icon_state = "reverse_overlay")
/obj/item/syndicateReverseCard/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(!(attack_type == PROJECTILE_ATTACK))
diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm
index 69b6092b201e..5b0fc36a9f7a 100644
--- a/code/game/objects/items/theft_tools.dm
+++ b/code/game/objects/items/theft_tools.dm
@@ -223,7 +223,7 @@
QDEL_NULL(sliver)
return ..()
-/obj/item/hemostat/supermatter/update_icon(updates=ALL)
+/obj/item/hemostat/supermatter/update_icon_state()
. = ..()
if(sliver)
icon_state = "supermatter_tongs_loaded"
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index a37bb98c1219..0bb57cb68396 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -104,7 +104,7 @@
icon_state = "burst"
qdel(src)
-/obj/item/toy/balloon/update_icon(updates=ALL)
+/obj/item/toy/balloon/update_icon_state()
. = ..()
if(src.reagents.total_volume >= 1)
icon_state = "waterballoon"
@@ -240,9 +240,9 @@
materials = list(/datum/material/iron=10, /datum/material/glass=10)
var/amount_left = 7
-/obj/item/toy/ammo/gun/update_icon(updates=ALL)
+/obj/item/toy/ammo/gun/update_icon_state()
. = ..()
- src.icon_state = text("357OLD-[]", src.amount_left)
+ icon_state = text("357OLD-[]", amount_left)
/obj/item/toy/ammo/gun/examine(mob/user)
. = ..()
@@ -410,7 +410,7 @@
icon_state = "vxtvul_hammer_pirate0-0"
update_appearance(UPDATE_ICON)
-/obj/item/twohanded/vxtvulhammer/toy/update_icon(updates=ALL)
+/obj/item/twohanded/vxtvulhammer/toy/update_icon_state()
. = ..()
if(!pirated)
icon_state = "vxtvul_hammer_pirate[wielded]-[supercharged]"
@@ -809,7 +809,7 @@
drawsize=clamp(drawsize,1,min(cards.len,10))
draw_card(L,drawsize)
-/obj/item/toy/cards/deck/update_icon(updates=ALL)
+/obj/item/toy/cards/deck/update_icon_state()
. = ..()
if(cards.len > 26)
icon_state = "deck_[deckstyle]_full"
@@ -982,20 +982,21 @@
. = ..()
. += "This hand has [currenthand.len] cards in it."
-/obj/item/toy/cards/cardhand/update_icon(updates=ALL)
+/obj/item/toy/cards/cardhand/update_icon_state()
. = ..()
- if(src.currenthand.len > 4)
- src.icon_state = "[deckstyle]_hand5"
+ if(currenthand.len > 4)
+ icon_state = "[deckstyle]_hand5"
else
- src.icon_state = "[deckstyle]_hand[currenthand.len]"
- //radial menu stuff
- cut_overlays()
+ icon_state = "[deckstyle]_hand[currenthand.len]"
+
+/obj/item/toy/cards/cardhand/update_overlays()
+ . = ..()
var/overlay_cards = currenthand.len
var/k = overlay_cards == 2 ? 1 : overlay_cards - 2
for(var/i = k; i <= overlay_cards; i++)
var/card_overlay = image(icon=src.icon,icon_state="sc_[currenthand[i]]_[deckstyle]",pixel_x=(1-i+k)*3,pixel_y=(1-i+k)*3)
- add_overlay(card_overlay)
+ . += card_overlay
/obj/item/toy/cards/singlecard
name = "card"
@@ -1147,7 +1148,7 @@
cards += "Wildcard"
cards += "Wild Draw Four"
-/obj/item/toy/cards/deck/uno/update_icon(updates=ALL)
+/obj/item/toy/cards/deck/uno/update_icon_state()
. = ..()
if(cards.len > 54)
icon_state = "deck_[deckstyle]_full"
@@ -1688,7 +1689,7 @@ obj/item/toy/turn_tracker
book_open = !book_open
update_appearance(UPDATE_ICON)
-/obj/item/toy/eldritch_book/update_icon(updates=ALL)
+/obj/item/toy/eldritch_book/update_icon_state()
. = ..()
icon_state = book_open ? "book_open" : "book"
diff --git a/code/modules/religion/religion_structures.dm b/code/modules/religion/religion_structures.dm
index 86e92e4b4d23..8a0879a510bd 100644
--- a/code/modules/religion/religion_structures.dm
+++ b/code/modules/religion/religion_structures.dm
@@ -68,7 +68,7 @@
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), time_between_uses)
-/obj/structure/holyfountain/update_icon(updates=ALL)
+/obj/structure/holyfountain/update_icon_state()
. = ..()
if(last_process + time_between_uses > world.time)
icon_state = "fountain"
From a56ad40079a35ef8651b8fb3da9b73fd1e40cc97 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 02:57:20 -0400
Subject: [PATCH 13/50] compile
---
code/game/machinery/doors/brigdoors.dm | 2 +-
code/game/objects/items/credit_holochip.dm | 5 +----
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index 927f8d8b0971..83cf0ff55639 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -340,7 +340,7 @@
return
if(maptext)
maptext = ""
- . += mutable_appearance('icons/obj/status_display.dmi', state)
+ . += mutable_appearance('icons/obj/status_display.dmi', "ai_bsod")
//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display
diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm
index 61352b428502..d5602eba6f80 100644
--- a/code/game/objects/items/credit_holochip.dm
+++ b/code/game/objects/items/credit_holochip.dm
@@ -22,7 +22,7 @@
/obj/item/holochip/get_item_credit_value()
return credits
-/obj/item/holochip/update_icon_state()
+/obj/item/holochip/update_icon(updates=ALL)
. = ..()
name = "\improper [credits] credit holochip"
var/rounded_credits = credits
@@ -38,9 +38,6 @@
if(1000000000 to INFINITY)
icon_state = "holochip_giga"
rounded_credits = round(rounded_credits * 0.000000001)
-
-/obj/item/holochip/update_overlays()
- . = ..()
var/overlay_color = "#914792"
switch(rounded_credits)
if(0 to 4)
From 3ae6c3d8434ca89acad4937f826bd9f65fa38984 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 16:36:54 -0400
Subject: [PATCH 14/50] push my work so far
---
code/game/objects/items/devices/PDA/PDA.dm | 13 ++--
code/game/objects/items/devices/aicard.dm | 17 +++--
code/game/objects/items/devices/flashlight.dm | 22 +++---
.../objects/items/devices/geiger_counter.dm | 6 +-
.../objects/items/devices/lightreplacer.dm | 2 +-
code/game/objects/items/devices/megaphone.dm | 5 +-
code/game/objects/items/devices/multitool.dm | 2 +-
code/game/objects/items/devices/powersink.dm | 2 +-
.../objects/items/devices/quantum_keycard.dm | 2 +-
.../objects/items/devices/taperecorder.dm | 2 +-
.../objects/items/devices/transfer_valve.dm | 12 ++--
.../granters/martial_arts/plasma_fist.dm | 19 +++--
.../granters/martial_arts/sleeping_carp.dm | 18 +++--
code/game/objects/items/grenades/plastic.dm | 2 +-
.../objects/items/implants/implantchair.dm | 9 +--
code/game/objects/items/implants/implanter.dm | 2 +-
.../game/objects/items/implants/implantpad.dm | 2 +-
code/game/objects/items/melee/misc.dm | 5 +-
code/game/objects/items/robot/robot_items.dm | 4 +-
code/game/objects/items/robot/robot_parts.dm | 15 ++--
.../objects/items/robot/robot_upgrades.dm | 5 +-
.../objects/items/stacks/license_plates.dm | 2 +-
code/game/objects/items/stacks/medical.dm | 6 +-
code/game/objects/items/stacks/rods.dm | 2 +-
code/game/objects/items/stacks/stack.dm | 4 +-
code/game/objects/items/stacks/tickets.dm | 2 +-
code/game/objects/items/storage/bags.dm | 10 +--
code/game/objects/items/storage/belt.dm | 5 +-
code/game/objects/items/storage/boxes.dm | 7 +-
code/game/objects/items/storage/fancy.dm | 70 +++++++++----------
code/game/objects/items/storage/toolbox.dm | 5 +-
code/game/objects/items/storage/wallets.dm | 9 ++-
code/game/objects/items/tanks/jetpack.dm | 14 ++--
33 files changed, 164 insertions(+), 138 deletions(-)
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 219fe8d1b084..51edcb5d3e2f 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -197,27 +197,26 @@ GLOBAL_LIST_EMPTY(PDAs)
return TRUE
return FALSE
-/obj/item/pda/update_icon(updates=ALL)
+/obj/item/pda/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/overlay = new()
overlay.pixel_x = overlays_x_offset
if(id)
overlay.icon_state = "id_overlay"
- add_overlay(new /mutable_appearance(overlay))
+ . += new /mutable_appearance(overlay)
if(inserted_item)
overlay.icon_state = "insert_overlay"
- add_overlay(new /mutable_appearance(overlay))
+ . += new /mutable_appearance(overlay)
if(light_on)
overlay.icon_state = "light_overlay"
- add_overlay(new /mutable_appearance(overlay))
+ . += new /mutable_appearance(overlay)
if(pai)
if(pai.pai)
overlay.icon_state = "pai_overlay"
- add_overlay(new /mutable_appearance(overlay))
+ . += new /mutable_appearance(overlay)
else
overlay.icon_state = "pai_off_overlay"
- add_overlay(new /mutable_appearance(overlay))
+ . += new /mutable_appearance(overlay)
/obj/item/pda/MouseDrop(mob/over, src_location, over_location)
var/mob/M = usr
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index de7373a868ba..46ff45536454 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -40,20 +40,27 @@
log_combat(user, AI, "carded", src)
update_appearance(UPDATE_ICON) //Whatever happened, update the card's state (icon, name) to match.
-/obj/item/aicard/update_icon(updates=ALL)
+/obj/item/aicard/update_name(updates)
. = ..()
- cut_overlays()
if(AI)
name = "[initial(name)] - [AI.name]"
+ else
+ name = initial(name)
+
+/obj/item/aicard/update_overlays()
+ . = ..()
+ if(AI && !AI.control_disabled)
+ . += "[initial(icon_state)]-on"
+
+/obj/item/aicard/update_icon_state()
+ . = ..()
+ if(AI)
if(AI.stat == DEAD)
icon_state = "[initial(icon_state)]-404"
else
icon_state = "[initial(icon_state)]-full"
- if(!AI.control_disabled)
- add_overlay("[initial(icon_state)]-on")
AI.cancel_camera()
else
- name = initial(name)
icon_state = initial(icon_state)
/obj/item/aicard/ui_state(mob/user)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index b3c923b9524a..e880044dcf34 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -538,21 +538,27 @@
/obj/item/flashlight/glowstick/update_icon(updates=ALL)
. = ..()
- item_state = "glowstick"
- cut_overlays()
if(fuel <= 0)
- icon_state = "glowstick-empty"
- cut_overlays()
set_light_on(FALSE)
else if(on)
+ set_light_on(TRUE)
+
+/obj/item/flashlight/glowstick/update_overlays()
+ . = ..()
+ if(on)
var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow")
glowstick_overlay.color = color
- add_overlay(glowstick_overlay)
- item_state = "glowstick-on"
- set_light_on(TRUE)
+ . += glowstick_overlay
+
+/obj/item/flashlight/glowstick/update_icon_state()
+ . = ..()
+ item_state = "glowstick" //item state
+ if(fuel <= 0)
+ icon_state = "glowstick-empty"
+ else if(on)
+ item_state = "glowstick-on" //item state
else
icon_state = "glowstick"
- cut_overlays()
/obj/item/flashlight/glowstick/attack_self(mob/user)
if(fuel <= 0)
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index dda2a31f9e74..215a06b610be 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -78,14 +78,14 @@
. += span_notice("The last radiation amount detected was [last_tick_amount]")
-/obj/item/geiger_counter/update_icon(updates=ALL)
+/obj/item/geiger_counter/update_icon_state()
. = ..()
if(!scanning)
icon_state = "geiger_off"
- return 1
+ return
if(obj_flags & EMAGGED)
icon_state = "geiger_on_emag"
- return 1
+ return
switch(radiation_count)
if(-INFINITY to RAD_LEVEL_NORMAL)
icon_state = "geiger_on_1"
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 24eb9a93e843..4c550782183d 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -152,7 +152,7 @@
ReplaceLight(target, user)
to_chat(user, status_string())
-/obj/item/lightreplacer/update_icon(updates=ALL)
+/obj/item/lightreplacer/update_icon_state()
. = ..()
icon_state = "lightreplacer[(obj_flags & EMAGGED ? 1 : 0)]"
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 1a2fddb5c0ea..7e06311398d4 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -46,15 +46,14 @@
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), recharge_time)
return TRUE
-/obj/item/megaphone/update_icon(updates=ALL)
+/obj/item/megaphone/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/base_overlay
if(last_used > world.time)
base_overlay = mutable_appearance(icon, "megaphone_recharging")
else
base_overlay = mutable_appearance(icon, "megaphone_charged")
- add_overlay(base_overlay)
+ . += base_overlay
/obj/item/megaphone/proc/handle_speech(mob/living/carbon/user, list/speech_args)
if (user.get_active_held_item() == src)
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 5eda5888dd8e..7f47eed73f26 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -77,7 +77,7 @@
if(hud_on)
remove_hud(user)
-/obj/item/multitool/ai_detect/update_icon(updates=ALL)
+/obj/item/multitool/ai_detect/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][detect_state]"
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index 561d58433616..7135a929bc4e 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -26,7 +26,7 @@
var/obj/structure/cable/attached // the attached cable
-/obj/item/powersink/update_icon(updates=ALL)
+/obj/item/powersink/update_icon_state()
. = ..()
icon_state = "powersink[mode == OPERATING]"
diff --git a/code/game/objects/items/devices/quantum_keycard.dm b/code/game/objects/items/devices/quantum_keycard.dm
index 92e1ff5deb01..a31246a01542 100644
--- a/code/game/objects/items/devices/quantum_keycard.dm
+++ b/code/game/objects/items/devices/quantum_keycard.dm
@@ -25,7 +25,7 @@
to_chat(user, span_notice("The keycard beeps twice and disconnects the quantum link."))
qpad = null
-/obj/item/quantum_keycard/update_icon(updates=ALL)
+/obj/item/quantum_keycard/update_icon_state()
. = ..()
if(qpad)
icon_state = "quantum_keycard_on"
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 272cf3ddf1ba..cafa41b6cf9a 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -103,7 +103,7 @@
eject(usr)
-/obj/item/taperecorder/update_icon(updates=ALL)
+/obj/item/taperecorder/update_icon_state()
. = ..()
if(!mytape)
icon_state = "taperecorder_empty"
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index f41f32d3a7b0..8848dd0e2f28 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -96,17 +96,17 @@
/obj/item/transfer_valve/proc/toggle_off()
toggle = TRUE
-/obj/item/transfer_valve/update_icon(updates=ALL)
+/obj/item/transfer_valve/update_icon_state()
. = ..()
- cut_overlays()
-
if(!tank_one && !tank_two && !attached_device)
icon_state = "valve_1"
return
icon_state = "valve"
+/obj/item/transfer_valve/update_overlays()
+ . = ..()
if(tank_one)
- add_overlay("[tank_one.icon_state]")
+ . += "[tank_one.icon_state]"
if(tank_two)
var/mutable_appearance/J = mutable_appearance(icon, icon_state = "[tank_two.icon_state]")
var/matrix/T = matrix()
@@ -116,11 +116,11 @@
else
underlays = null
if(attached_device)
- add_overlay("device")
+ . += "device"
if(istype(attached_device, /obj/item/assembly/infra))
var/obj/item/assembly/infra/sensor = attached_device
if(sensor.on && sensor.visible)
- add_overlay("proxy_beam")
+ . += "proxy_beam"
/obj/item/transfer_valve/proc/merge_gases(datum/gas_mixture/target, change_volume = TRUE)
var/target_self = FALSE
diff --git a/code/game/objects/items/granters/martial_arts/plasma_fist.dm b/code/game/objects/items/granters/martial_arts/plasma_fist.dm
index 856e5ea66376..6b6da336c4de 100644
--- a/code/game/objects/items/granters/martial_arts/plasma_fist.dm
+++ b/code/game/objects/items/granters/martial_arts/plasma_fist.dm
@@ -18,19 +18,30 @@
/obj/item/book/granter/martial/plasma_fist/on_reading_finished(mob/living/carbon/user)
. = ..()
- update_appearance(UPDATE_ICON)
+ update_appearance()
-/obj/item/book/granter/martial/plasma_fist/update_icon(updates=ALL)
+/obj/item/book/granter/martial/plasma_fist/update_name(updates)
. = ..()
if(uses <= 0)
name = "empty scroll"
- desc = "It's completely blank."
- icon_state = "blankscroll"
else
name = initial(name)
+
+/obj/item/book/granter/martial/plasma_fist/update_desc(updates)
+ . = ..()
+ if(uses <= 0)
+ desc = "It's completely blank."
+ else
desc = initial(desc)
+
+/obj/item/book/granter/martial/plasma_fist/update_icon_state()
+ . = ..()
+ if(uses <= 0)
+ icon_state = "blankscroll"
+ else
icon_state = initial(icon_state)
+
/*/obj/item/book/granter/martial/plasma_fist/nobomb
martial = /datum/martial_art/plasma_fist/nobomb
*/
diff --git a/code/game/objects/items/granters/martial_arts/sleeping_carp.dm b/code/game/objects/items/granters/martial_arts/sleeping_carp.dm
index 5f8a32215505..0858bb834de3 100644
--- a/code/game/objects/items/granters/martial_arts/sleeping_carp.dm
+++ b/code/game/objects/items/granters/martial_arts/sleeping_carp.dm
@@ -21,15 +21,25 @@
/obj/item/book/granter/martial/carp/on_reading_finished(mob/living/carbon/user)
. = ..()
- update_appearance(UPDATE_ICON)
+ update_appearance()
-/obj/item/book/granter/martial/carp/update_icon(updates)
+/obj/item/book/granter/martial/carp/update_name(updates)
. = ..()
if(!uses)
name = "empty scroll"
- desc = "It's completely blank."
- icon_state = "blankscroll"
else
name = initial(name)
+
+/obj/item/book/granter/martial/carp/update_desc(updates)
+ . = ..()
+ if(!uses)
+ desc = "It's completely blank."
+ else
desc = initial(desc)
+
+/obj/item/book/granter/martial/carp/update_icon_state()
+ . = ..()
+ if(!uses)
+ icon_state = "blankscroll"
+ else
icon_state = initial(icon_state)
diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm
index 38bf7e2bd3d7..04edfd4d7ab9 100644
--- a/code/game/objects/items/grenades/plastic.dm
+++ b/code/game/objects/items/grenades/plastic.dm
@@ -167,7 +167,7 @@
user.gib(1, 1)
qdel(src)
-/obj/item/grenade/plastic/update_icon(updates=ALL)
+/obj/item/grenade/plastic/update_icon_state()
. = ..()
if(nadeassembly)
icon_state = "[item_state]1"
diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm
index 7d9be4626039..df97c796fc88 100644
--- a/code/game/objects/items/implants/implantchair.dm
+++ b/code/game/objects/items/implants/implantchair.dm
@@ -99,17 +99,18 @@
visible_message(span_warning("[M] has been implanted by [src]."))
return TRUE
-/obj/machinery/implantchair/update_icon(updates=ALL)
+/obj/machinery/implantchair/update_icon_state()
. = ..()
icon_state = initial(icon_state)
if(state_open)
icon_state += "_open"
if(occupant)
icon_state += "_occupied"
+
+/obj/machinery/implantchair/update_overlays()
+ . = ..()
if(ready)
- add_overlay("ready")
- else
- cut_overlays()
+ . += "ready"
/obj/machinery/implantchair/proc/replenish()
if(ready_implants < max_implants)
diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm
index 4efe3267bfe4..7d02ebbdb4fb 100644
--- a/code/game/objects/items/implants/implanter.dm
+++ b/code/game/objects/items/implants/implanter.dm
@@ -15,7 +15,7 @@
var/imp_type = null
-/obj/item/implanter/update_icon(updates=ALL)
+/obj/item/implanter/update_icon_state()
. = ..()
if(imp)
icon_state = "implanter1"
diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm
index 7969f898eead..a2d6659f7981 100644
--- a/code/game/objects/items/implants/implantpad.dm
+++ b/code/game/objects/items/implants/implantpad.dm
@@ -11,7 +11,7 @@
w_class = WEIGHT_CLASS_SMALL
var/obj/item/implantcase/case = null
-/obj/item/implantpad/update_icon(updates=ALL)
+/obj/item/implantpad/update_icon_state()
. = ..()
icon_state = "implantpad-[!QDELETED(case)]"
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 98a08193b6f3..795f7a26cb9f 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -737,12 +737,11 @@
held_sausage = null
update_appearance(UPDATE_ICON)
-/obj/item/melee/roastingstick/update_icon(updates=ALL)
+/obj/item/melee/roastingstick/update_overlays()
. = ..()
- cut_overlays()
if (held_sausage)
var/mutable_appearance/sausage = mutable_appearance(icon, "roastingstick_sausage")
- add_overlay(sausage)
+ . += sausage
/obj/item/melee/roastingstick/proc/extend(user)
to_chat(user, "You extend [src].")
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index caf5a990c7ee..865d6704136a 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -177,7 +177,7 @@
var/static/list/charge_machines = typecacheof(list(/obj/machinery/cell_charger, /obj/machinery/recharger, /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port))
var/static/list/charge_items = typecacheof(list(/obj/item/stock_parts/cell, /obj/item/gun/energy))
-/obj/item/borg/charger/update_icon(updates=ALL)
+/obj/item/borg/charger/update_icon_state()
. = ..()
icon_state = "charger_[mode]"
@@ -608,7 +608,7 @@
update_appearance(UPDATE_ICON)
to_chat(user, span_boldnotice("You [active? "activate":"deactivate"] [src]."))
-/obj/item/borg/projectile_dampen/update_icon(updates=ALL)
+/obj/item/borg/projectile_dampen/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][active]"
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index bba7cf456488..e336c45e4fce 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -51,21 +51,20 @@
chest.wired = TRUE
chest.cell = new /obj/item/stock_parts/cell/high/plus(chest)
-/obj/item/robot_suit/update_icon(updates=ALL)
+/obj/item/robot_suit/update_overlays()
. = ..()
- cut_overlays()
if(l_arm)
- add_overlay("[l_arm.icon_state]+o")
+ . += "[l_arm.icon_state]+o"
if(r_arm)
- add_overlay("[r_arm.icon_state]+o")
+ . += "[r_arm.icon_state]+o"
if(chest)
- add_overlay("[chest.icon_state]+o")
+ . += "[chest.icon_state]+o"
if(l_leg)
- add_overlay("[l_leg.icon_state]+o")
+ . += "[l_leg.icon_state]+o"
if(r_leg)
- add_overlay("[r_leg.icon_state]+o")
+ . += "[r_leg.icon_state]+o"
if(head)
- add_overlay("[head.icon_state]+o")
+ . += "[head.icon_state]+o"
/obj/item/robot_suit/proc/check_completion()
if(src.l_arm && src.r_arm)
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index bf77acf0a988..9ce8a8d008d6 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -454,12 +454,11 @@
STOP_PROCESSING(SSobj, src)
update_appearance(UPDATE_ICON)
-/obj/item/borg/upgrade/selfrepair/update_icon(updates=ALL)
+/obj/item/borg/upgrade/selfrepair/update_icon_state()
. = ..()
if(cyborg)
icon_state = "selfrepair_[on ? "on" : "off"]"
- for(var/X in actions)
- var/datum/action/A = X
+ for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
else
icon_state = "cyborg_upgrade5"
diff --git a/code/game/objects/items/stacks/license_plates.dm b/code/game/objects/items/stacks/license_plates.dm
index 8c9b3b94e31f..ece53770f9fa 100644
--- a/code/game/objects/items/stacks/license_plates.dm
+++ b/code/game/objects/items/stacks/license_plates.dm
@@ -23,7 +23,7 @@
merge_type = /obj/item/stack/license_plates/filled
///Override to allow for variations
-/obj/item/stack/license_plates/filled/update_icon(updates=ALL)
+/obj/item/stack/license_plates/filled/update_icon_state()
. = ..()
if(novariants)
return
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 11083bcbfd47..ae2d4fe26b62 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -362,10 +362,10 @@
is_open = FALSE
update_appearance(UPDATE_ICON)
-/obj/item/stack/medical/mesh/update_icon(updates=ALL)
+/obj/item/stack/medical/mesh/update_icon_state()
. = ..()
if(is_open)
- return ..()
+ return
icon_state = "regen_mesh_closed"
/obj/item/stack/medical/mesh/heal(mob/living/M, mob/user)
@@ -418,7 +418,7 @@
flesh_regeneration = 3.5
grind_results = list(/datum/reagent/consumable/aloejuice = 1)
-/obj/item/stack/medical/mesh/advanced/update_icon(updates=ALL)
+/obj/item/stack/medical/mesh/advanced/update_icon_state()
. = ..()
if(is_open)
return
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index d096c3a2a055..8f16951dd3a2 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
recipes = GLOB.rod_recipes
update_appearance(UPDATE_ICON)
-/obj/item/stack/rods/update_icon(updates=ALL)
+/obj/item/stack/rods/update_icon_state()
. = ..()
var/amount = get_amount()
if((amount <= 5) && (amount > 0))
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 6eaab252f8c7..74258fa79e39 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -74,10 +74,10 @@
else
w_class = full_w_class
-/obj/item/stack/update_icon(updates=ALL)
+/obj/item/stack/update_icon_state()
. = ..()
if(novariants)
- return ..()
+ return
if(amount <= (max_amount * (1/3)))
icon_state = initial(icon_state)
else if (amount <= (max_amount * (2/3)))
diff --git a/code/game/objects/items/stacks/tickets.dm b/code/game/objects/items/stacks/tickets.dm
index 02f0faebb2ad..3b36bf43f4db 100644
--- a/code/game/objects/items/stacks/tickets.dm
+++ b/code/game/objects/items/stacks/tickets.dm
@@ -12,7 +12,7 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/stack/arcadeticket/update_icon(updates=ALL)
+/obj/item/stack/arcadeticket/update_icon_state()
. = ..()
var/amount = get_amount()
if((amount >= 12) && (amount > 0))
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index 71ecddb82d21..80edf3c998ad 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -55,7 +55,7 @@
playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1)
return (TOXLOSS)
-/obj/item/storage/bag/trash/update_icon(updates=ALL)
+/obj/item/storage/bag/trash/update_icon_state()
. = ..()
//yogs start
if(icon_state == "[initial(icon_state)]_broken")
@@ -67,7 +67,8 @@
icon_state = "[initial(icon_state)]1"
else if(contents.len < 21)
icon_state = "[initial(icon_state)]2"
- else icon_state = "[initial(icon_state)]3"
+ else
+ icon_state = "[initial(icon_state)]3"
/obj/item/storage/bag/trash/cyborg
insertable = FALSE
@@ -385,11 +386,10 @@
M.Paralyze(40)
update_appearance(UPDATE_ICON)
-/obj/item/storage/bag/tray/update_icon(updates=ALL)
+/obj/item/storage/bag/tray/update_overlays()
. = ..()
- cut_overlays()
for(var/obj/item/I in contents)
- add_overlay(new /mutable_appearance(I))
+ . += new /mutable_appearance(I)
/obj/item/storage/bag/tray/Entered()
. = ..()
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index e8b99a0ffb88..0bbd2b60ea96 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -17,13 +17,12 @@
user.visible_message(span_suicide("[user] begins belting [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
return BRUTELOSS
-/obj/item/storage/belt/update_icon(updates=ALL)
+/obj/item/storage/belt/update_overlays()
. = ..()
- cut_overlays()
if(content_overlays)
for(var/obj/item/I in contents)
var/mutable_appearance/M = I.get_belt_overlay()
- add_overlay(M)
+ . += M
/obj/item/storage/belt/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index ab28b67f6e74..3a648bcf24f4 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -49,11 +49,10 @@
user.visible_message(span_suicide("[user] attempts to put [user.p_their()] head into \the [src], but realizes [user.p_their()] has no head!"))
return SHAME
-/obj/item/storage/box/update_icon(updates=ALL)
+/obj/item/storage/box/update_overlays()
. = ..()
if(illustration)
- cut_overlays()
- add_overlay(illustration)
+ . += illustration
/obj/item/storage/box/attack_self(mob/user)
..()
@@ -984,7 +983,7 @@
foldable = null
var/design = NODESIGN
-/obj/item/storage/box/papersack/update_icon(updates=ALL)
+/obj/item/storage/box/papersack/update_icon_state()
. = ..()
if(contents.len == 0)
icon_state = "[item_state]"
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 01f501ddebdc..974649eb50e8 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -29,7 +29,7 @@
for(var/i = 1 to STR.max_items)
new spawn_type(src)
-/obj/item/storage/box/fancy/update_icon(updates=ALL)
+/obj/item/storage/box/fancy/update_icon_state()
. = ..()
if(fancy_open)
icon_state = "[icon_type]box[contents.len]"
@@ -197,31 +197,28 @@
else
to_chat(user, span_notice("There are no [icon_type]s left in the pack."))
-/obj/item/storage/box/fancy/cigarettes/update_icon(updates=ALL)
+/obj/item/storage/box/fancy/cigarettes/update_overlays()
. = ..()
- if(fancy_open || !contents.len)
- cut_overlays()
- if(!contents.len)
- icon_state = "[initial(icon_state)]_empty"
- else
- icon_state = initial(icon_state)
- add_overlay("[icon_state]_open")
- var/cig_position = 1
- for(var/C in contents)
- var/mutable_appearance/inserted_overlay = mutable_appearance(icon)
-
- if(istype(C, /obj/item/lighter/greyscale))
- inserted_overlay.icon_state = "lighter_in"
- else if(istype(C, /obj/item/lighter))
- inserted_overlay.icon_state = "zippo_in"
- else
- inserted_overlay.icon_state = "cigarette"
-
- inserted_overlay.icon_state = "[inserted_overlay.icon_state]_[cig_position]"
- add_overlay(inserted_overlay)
- cig_position++
+ if(!fancy_open && contents.len)
+ return
+ if(!contents.len)
+ icon_state = "[initial(icon_state)]_empty"
else
- cut_overlays()
+ icon_state = initial(icon_state)
+ . += "[icon_state]_open"
+ var/cig_position = 1
+
+ for(var/C in contents)
+ var/mutable_appearance/inserted_overlay = mutable_appearance(icon)
+ if(istype(C, /obj/item/lighter/greyscale))
+ inserted_overlay.icon_state = "lighter_in"
+ else if(istype(C, /obj/item/lighter))
+ inserted_overlay.icon_state = "zippo_in"
+ else
+ inserted_overlay.icon_state = "cigarette"
+ inserted_overlay.icon_state = "[inserted_overlay.icon_state]_[cig_position]"
+ . += inserted_overlay
+ cig_position++
/obj/item/storage/box/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!ismob(M))
@@ -378,11 +375,10 @@
for(var/i in 1 to 10)
new /obj/item/rollingpaper(src)
-/obj/item/storage/box/fancy/rollingpapers/update_icon(updates=ALL)
+/obj/item/storage/box/fancy/rollingpapers/update_overlays()
. = ..()
- cut_overlays()
if(!contents.len)
- add_overlay("[icon_state]_empty")
+ . += "[icon_state]_empty"
/////////////
//CIGAR BOX//
@@ -407,21 +403,23 @@
for(var/i in 1 to 5)
new /obj/item/clothing/mask/cigarette/cigar(src)
-/obj/item/storage/box/fancy/cigarettes/cigars/update_icon(updates=ALL)
+/obj/item/storage/box/fancy/cigarettes/cigars/update_icon_state()
. = ..()
- cut_overlays()
if(fancy_open)
icon_state = "[initial(icon_state)]_open"
-
- var/cigar_position = 1 //generate sprites for cigars in the box
- for(var/obj/item/clothing/mask/cigarette/cigar/smokes in contents)
- var/mutable_appearance/cigar_overlay = mutable_appearance(icon, "[smokes.icon_off]_[cigar_position]")
- add_overlay(cigar_overlay)
- cigar_position++
-
else
icon_state = "[initial(icon_state)]"
+/obj/item/storage/box/fancy/cigarettes/cigars/update_overlays()
+ . = ..()
+ if(!fancy_open)
+ return
+ var/cigar_position = 1 //generate sprites for cigars in the box
+ for(var/obj/item/clothing/mask/cigarette/cigar/smokes in contents)
+ var/mutable_appearance/cigar_overlay = mutable_appearance(icon, "[smokes.icon_off]_[cigar_position]")
+ . += cigar_overlay
+ cigar_position++
+
/obj/item/storage/box/fancy/cigarettes/cigars/cohiba
name = "\improper Cohiba Robusto cigar case"
desc = "A case of imported Cohiba cigars, renowned for their strong flavor. The warning label states that the cigar is extremely potent."
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index 3dbc8072f82a..2e49805d3f78 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -30,11 +30,10 @@
latches = "triple_latch"
update_appearance(UPDATE_ICON)
-/obj/item/storage/toolbox/update_icon(updates=ALL)
+/obj/item/storage/toolbox/update_overlays()
. = ..()
- cut_overlays()
if(has_latches)
- add_overlay(latches)
+ . += latches
/obj/item/storage/toolbox/suicide_act(mob/user)
diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm
index 3190b821b880..ec0e96cd02a6 100644
--- a/code/game/objects/items/storage/wallets.dm
+++ b/code/game/objects/items/storage/wallets.dm
@@ -61,13 +61,12 @@
. = ..()
refreshID()
-/obj/item/storage/wallet/update_icon(updates=ALL)
+/obj/item/storage/wallet/update_icon_state()
. = ..()
- var/new_state = "wallet"
if(front_id)
- new_state = "wallet_[front_id.icon_state]"
- if(new_state != icon_state) //avoid so many icon state changes.
- icon_state = new_state
+ icon_state = "wallet_[front_id.icon_state]"
+ return
+ icon_state = "wallet"
/obj/item/storage/wallet/GetID()
return front_id
diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm
index 6eb3436d6007..53ead5abe5ef 100644
--- a/code/game/objects/items/tanks/jetpack.dm
+++ b/code/game/objects/items/tanks/jetpack.dm
@@ -60,15 +60,17 @@
if(full_speed)
user.add_movespeed_modifier(MOVESPEED_ID_JETPACK, priority=100, multiplicative_slowdown=jetspeed, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK)
-/obj/item/tank/jetpack/update_icon(updates=ALL)
+/obj/item/tank/jetpack/update_icon_state()
. = ..()
- icon_state = initial(icon_state)
if(!classic && on) //does the jetpack have its own on sprite?
icon_state = "[initial(icon_state)]-on"
- else //or does it use the classic overlay
- cut_overlays()
- if(on)
- add_overlay("on_overlay")
+ else
+ icon_state = initial(icon_state)
+
+/obj/item/tank/jetpack/update_overlays()
+ . = ..()
+ if(classic && on)
+ . += "on_overlay"
/obj/item/tank/jetpack/proc/turn_off(mob/user)
on = FALSE
From ea3050958d6eafb305f701acd718e41546baa777 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 17:02:39 -0400
Subject: [PATCH 15/50] goes back on things I broke
---
code/game/machinery/doors/airlock.dm | 187 ++++++++++++---------
code/game/objects/items/credit_holochip.dm | 5 +-
code/modules/power/apc.dm | 2 +-
3 files changed, 108 insertions(+), 86 deletions(-)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index ba0f0f41f2ec..839940874d01 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -606,7 +606,7 @@
else
return FALSE
-/obj/machinery/door/airlock/update_icon(updates=ALL, state=0, override=FALSE)
+/obj/machinery/door/airlock/update_icon(updates=ALL, state=0, override=0)
if(operating && !override)
return
@@ -626,99 +626,118 @@
if(AIRLOCK_DENY, AIRLOCK_OPENING, AIRLOCK_CLOSING, AIRLOCK_EMAG)
icon_state = "nonexistenticonstate" //MADNESS
-/obj/machinery/door/airlock/update_overlays()
- . = ..()
-
- var/frame_state
- var/light_state
- switch(airlock_state)
- if(AIRLOCK_CLOSED)
- frame_state = AIRLOCK_FRAME_CLOSED
- if(locked)
- light_state = AIRLOCK_LIGHT_BOLTS
- else if(emergency)
- light_state = AIRLOCK_LIGHT_EMERGENCY
- if(AIRLOCK_DENY)
- frame_state = AIRLOCK_FRAME_CLOSED
- light_state = AIRLOCK_LIGHT_DENIED
- if(AIRLOCK_EMAG)
- frame_state = AIRLOCK_FRAME_CLOSED
- if(AIRLOCK_CLOSING)
- frame_state = AIRLOCK_FRAME_CLOSING
- light_state = AIRLOCK_LIGHT_CLOSING
- if(AIRLOCK_OPEN)
- frame_state = AIRLOCK_FRAME_OPEN
- if(AIRLOCK_OPENING)
- frame_state = AIRLOCK_FRAME_OPENING
- light_state = AIRLOCK_LIGHT_OPENING
-
- . += get_airlock_overlay(frame_state, icon)
+/obj/machinery/door/airlock/proc/set_side_overlays(obj/effect/overlay/airlock_part/base, show_lights = FALSE)
+ var/side = base.side_id
+ base.icon = icon
+ base.cut_overlays()
if(airlock_material)
- . += get_airlock_overlay("[airlock_material]_[frame_state]", overlays_file)
+ base.add_overlay(get_airlock_overlay("[airlock_material]_[side]", overlays_file))
else
- . += get_airlock_overlay("fill_[frame_state]", icon)
+ base.add_overlay(get_airlock_overlay("fill_[side]", icon))
+ if(panel_open && panel_attachment == side)
+ if(security_level)
+ base.add_overlay(get_airlock_overlay("panel_closed_protected", overlays_file))
+ else
+ base.add_overlay(get_airlock_overlay("panel_closed", overlays_file))
+ if(show_lights && lights && hasPower())
+ base.add_overlay(get_airlock_overlay("lights_[side]", overlays_file))
- if(lights && hasPower())
- . += get_airlock_overlay("lights_[light_state]", overlays_file)
+ if(note && note_attachment == side)
+ var/notetype = note_type()
+ base.add_overlay(get_airlock_overlay(notetype, note_overlay_file))
- if(panel_open)
- . += get_airlock_overlay("panel_[frame_state][security_level ? "_protected" : null]", overlays_file)
- if(frame_state == AIRLOCK_FRAME_CLOSED && welded)
- . += get_airlock_overlay("welded", overlays_file)
+/obj/machinery/door/airlock/update_overlays()
+ . = ..()
+ for(var/obj/effect/overlay/airlock_part/part as anything in part_overlays)
+ set_side_overlays(part, airlock_state == AIRLOCK_CLOSING || airlock_state == AIRLOCK_OPENING)
+ if(part.aperture_angle)
+ var/matrix/T
+ if(airlock_state == AIRLOCK_OPEN || airlock_state == AIRLOCK_OPENING || airlock_state == AIRLOCK_CLOSING)
+ T = matrix()
+ T.Translate(-part.open_px,-part.open_py)
+ T.Turn(part.aperture_angle)
+ T.Translate(part.open_px,part.open_py)
+ switch(airlock_state)
+ if(AIRLOCK_CLOSED, AIRLOCK_DENY, AIRLOCK_EMAG)
+ part.transform = matrix()
+ if(AIRLOCK_OPEN)
+ part.transform = T
+ if(AIRLOCK_CLOSING)
+ part.transform = T
+ animate(part, transform = T, time = 0.5 SECONDS - part.move_end_time, flags = ANIMATION_LINEAR_TRANSFORM)
+ animate(transform = matrix(), time = part.move_end_time - part.move_start_time, flags = ANIMATION_LINEAR_TRANSFORM)
+ if(AIRLOCK_OPENING)
+ part.transform = matrix()
+ animate(part, transform = matrix(), time = part.move_start_time, flags = ANIMATION_LINEAR_TRANSFORM)
+ animate(transform = T, time = part.move_end_time - part.move_start_time, flags = ANIMATION_LINEAR_TRANSFORM)
+ else
+ switch(airlock_state)
+ if(AIRLOCK_CLOSED, AIRLOCK_DENY, AIRLOCK_EMAG)
+ part.pixel_x = 0
+ part.pixel_y = 0
+ if(AIRLOCK_OPEN)
+ part.pixel_x = part.open_px
+ part.pixel_y = part.open_py
+ if(AIRLOCK_CLOSING)
+ part.pixel_x = part.open_px
+ part.pixel_y = part.open_py
+ animate(part, pixel_x = part.open_px, pixel_y = part.open_py, time = 0.5 SECONDS - part.move_end_time)
+ animate(pixel_x = 0, pixel_y = 0, time = part.move_end_time - part.move_start_time)
+ if(AIRLOCK_OPENING)
+ part.pixel_x = 0
+ part.pixel_y = 0
+ animate(part, pixel_x = 0, pixel_y = 0, time = part.move_start_time)
+ animate(pixel_x = part.open_px, pixel_y = part.open_py, time = part.move_end_time - part.move_start_time)
+
+ SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
+ SSvis_overlays.add_vis_overlay(src, overlays_file, "frame", FLOAT_LAYER, FLOAT_PLANE, dir)
- if(airlock_state == AIRLOCK_EMAG)
- . += get_airlock_overlay("sparks", overlays_file)
+ switch(airlock_state)
+ if(AIRLOCK_CLOSED)
+ if(lights && hasPower())
+ if(locked)
+ SSvis_overlays.add_vis_overlay(src, overlays_file, "lights_bolts", FLOAT_LAYER, FLOAT_PLANE, dir)
+ else if(emergency)
+ SSvis_overlays.add_vis_overlay(src, overlays_file, "lights_emergency", FLOAT_LAYER, FLOAT_PLANE, dir)
+ if(welded)
+ SSvis_overlays.add_vis_overlay(src, overlays_file, "welded", FLOAT_LAYER, FLOAT_PLANE, dir)
+ if(obj_integrity
Date: Wed, 12 Jul 2023 18:02:20 -0400
Subject: [PATCH 16/50] a
---
code/__DEFINES/flags.dm | 4 ++
code/game/objects/items/tanks/tanks.dm | 7 ++-
code/game/objects/items/tools/screwdriver.dm | 5 +-
code/game/objects/items/tools/weldingtool.dm | 23 ++++-----
code/game/objects/items/tools/wirecutters.dm | 5 +-
code/game/objects/items/twohanded.dm | 1 +
code/game/objects/structures/aliens.dm | 2 +-
code/game/objects/structures/artstuff.dm | 16 +++----
code/game/objects/structures/bedsheet_bin.dm | 2 +-
.../structures/crates_lockers/closets.dm | 44 ++++++++---------
.../structures/crates_lockers/crates.dm | 7 +--
code/game/objects/structures/displaycase.dm | 3 +-
code/game/objects/structures/divine.dm | 2 +-
code/game/objects/structures/door_assembly.dm | 9 ++--
code/game/objects/structures/extinguisher.dm | 2 +-
code/game/objects/structures/false_walls.dm | 3 +-
code/game/objects/structures/fireaxe.dm | 47 +++++++++----------
code/game/objects/structures/fireplace.dm | 15 +++---
code/game/objects/structures/guncase.dm | 9 ++--
code/game/objects/structures/headpike.dm | 11 +++--
code/game/objects/structures/holosign.dm | 2 +-
code/game/objects/structures/janicart.dm | 24 +++++-----
code/game/objects/structures/ladders.dm | 7 +--
code/game/objects/structures/life_candle.dm | 2 +-
code/game/objects/structures/mineral_doors.dm | 2 +-
code/game/objects/structures/mop_bucket.dm | 7 ++-
code/game/objects/structures/morgue.dm | 4 +-
code/game/objects/structures/safe.dm | 2 +-
code/game/objects/structures/shower.dm | 5 +-
code/game/objects/structures/stairs.dm | 2 +-
.../game/objects/structures/tank_dispenser.dm | 11 ++---
code/game/objects/structures/watercloset.dm | 4 +-
.../objects/structures/windoor_assembly.dm | 2 +-
code/game/objects/structures/window.dm | 23 ++++++---
34 files changed, 157 insertions(+), 157 deletions(-)
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 04d435f54ddb..d04a6c5c5a82 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -81,6 +81,10 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define UPDATE_ICON_STATE (1<<2)
/// Update the atom's overlays
#define UPDATE_OVERLAYS (1<<3)
+/// Update the atom's greyscaling
+#define UPDATE_GREYSCALE (1<<4)
+/// Update the atom's smoothing. (More accurately, queue it for an update)
+#define UPDATE_SMOOTHING (1<<5)
/// Update the atom's icon
#define UPDATE_ICON (UPDATE_ICON_STATE|UPDATE_OVERLAYS)
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 05e38a20e687..951f8a27fb6a 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -313,13 +313,12 @@
// ---------- Procs below are for tanks that are used exclusively in 1-tank bombs ----------
-/obj/item/tank/update_icon(updates=ALL)
+/obj/item/tank/update_overlays()
. = ..()
- cut_overlays()
if(tank_assembly)
- add_overlay(tank_assembly.icon_state)
+ . += tank_assembly.icon_state
copy_overlays(tank_assembly)
- add_overlay("bomb_assembly")
+ . += "bomb_assembly"
/obj/item/tank/wrench_act(mob/living/user, obj/item/I)
if(tank_assembly)
diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm
index 4cbba3c3c472..2db3040fec34 100644
--- a/code/game/objects/items/tools/screwdriver.dm
+++ b/code/game/objects/items/tools/screwdriver.dm
@@ -48,14 +48,13 @@
if(prob(75))
pixel_y = rand(0, 16)
-/obj/item/screwdriver/update_icon(updates=ALL)
+/obj/item/screwdriver/update_overlays()
. = ..()
if(!random_color) //icon override
return
- cut_overlays()
var/mutable_appearance/base_overlay = mutable_appearance(icon, "screwdriver_screwybits")
base_overlay.appearance_flags = RESET_COLOR
- add_overlay(base_overlay)
+ . += base_overlay
/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file)
. = list()
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 5b901dee2655..1a3b98762402 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -48,24 +48,21 @@
reagents.add_reagent(/datum/reagent/fuel, max_fuel)
update_appearance(UPDATE_ICON)
-
-/obj/item/weldingtool/proc/update_torch()
- if(welding)
- add_overlay("[initial(icon_state)]-on")
- item_state = "[initial(item_state)]1"
- else
- item_state = "[initial(item_state)]"
-
-
-/obj/item/weldingtool/update_icon(updates=ALL)
+/obj/item/weldingtool/update_overlays()
. = ..()
- cut_overlays()
if(change_icons)
var/ratio = get_fuel() / max_fuel
ratio = CEILING(ratio*4, 1) * 25
- add_overlay("[initial(icon_state)][ratio]")
- update_torch()
+ . += "[initial(icon_state)][ratio]"
+ if(welding)
+ . += "[initial(icon_state)]-on"
+/obj/item/weldingtool/update_icon_state()
+ . = ..()
+ if(welding)
+ item_state = "[initial(item_state)]1"
+ else
+ item_state = "[initial(item_state)]"
/obj/item/weldingtool/process(delta_time)
switch(welding)
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index cb01578e97b2..71ef647c6171 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -42,14 +42,13 @@
add_atom_colour(wirecutter_colors[our_color], FIXED_COLOUR_PRIORITY)
update_appearance(UPDATE_ICON)
-/obj/item/wirecutters/update_icon(updates=ALL)
+/obj/item/wirecutters/update_overlays()
. = ..()
if(!random_color) //icon override
return
- cut_overlays()
var/mutable_appearance/base_overlay = mutable_appearance(icon, "cutters_cutty_thingy")
base_overlay.appearance_flags = RESET_COLOR
- add_overlay(base_overlay)
+ . += base_overlay
/obj/item/wirecutters/attack(mob/living/carbon/C, mob/user)
if(istype(C) && C.handcuffed && istype(C.handcuffed, /obj/item/restraints/handcuffs/cable))
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index a3d59a6fb1d1..f64b9c69dac9 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -287,6 +287,7 @@
force_wielded = 18
/obj/item/twohanded/fireaxe/metal_h2_axe/update_icon(updates=ALL) //Currently only here to fuck with the on-mob icons.
+ . = ..()
icon_state = "metalh2_axe[wielded]"
return
diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm
index 620c9f0a80fd..7b301ddadc60 100644
--- a/code/game/objects/structures/aliens.dm
+++ b/code/game/objects/structures/aliens.dm
@@ -238,7 +238,7 @@
if(status == BURST)
obj_integrity = integrity_failure
-/obj/structure/alien/egg/update_icon(updates=ALL)
+/obj/structure/alien/egg/update_icon_state()
. = ..()
switch(status)
if(GROWING)
diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm
index 2586deeda6f9..ae769d5ddf8f 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -132,20 +132,19 @@
generate_proper_overlay()
try_rename(user)
-/obj/item/canvas/update_icon(updates=ALL)
+/obj/item/canvas/update_overlays()
. = ..()
- cut_overlays()
if(!icon_generated)
if(used)
var/mutable_appearance/detail = mutable_appearance(icon,"[icon_state]wip")
detail.pixel_x = 1
detail.pixel_y = 1
- add_overlay(detail)
+ . += detail
else
var/mutable_appearance/detail = mutable_appearance(generated_icon)
detail.pixel_x = 1
detail.pixel_y = 1
- add_overlay(detail)
+ . += detail
/obj/item/canvas/proc/generate_proper_overlay()
if(icon_generated)
@@ -297,7 +296,7 @@
if(C.painting_name == initial(C.painting_name))
C.try_rename(user)
-/obj/structure/sign/painting/update_icon(updates=ALL)
+/obj/structure/sign/painting/update_icon_state()
. = ..()
if(C && C.generated_icon)
@@ -305,16 +304,17 @@
else
icon_state = "frame-empty"
- cut_overlays()
+/obj/structure/sign/painting/update_overlays()
+ . = ..()
if(C && C.generated_icon)
var/mutable_appearance/MA = mutable_appearance(C.generated_icon)
MA.pixel_x = C.framed_offset_x
MA.pixel_y = C.framed_offset_y
- add_overlay(MA)
+ . += MA
var/mutable_appearance/frame = mutable_appearance(C.icon,"[C.icon_state]frame")
frame.pixel_x = C.framed_offset_x - 1
frame.pixel_y = C.framed_offset_y - 1
- add_overlay(frame)
+ . += frame
/**
* Loads a painting from SSpersistence. Called globally by said subsystem when it inits
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 5c5cebf9683f..0368ea11cc23 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -350,7 +350,7 @@ LINEN BINS
. += "There are [amount] bed sheets in the bin."
-/obj/structure/bedsheetbin/update_icon(updates=ALL)
+/obj/structure/bedsheetbin/update_icon_state()
. = ..()
switch(amount)
if(0)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index b0e91c7bd1af..d20a88cf3c18 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -78,31 +78,31 @@ GLOBAL_LIST_EMPTY(lockers)
GLOB.lockers -= src
return ..()
-/obj/structure/closet/update_icon(updates=ALL)
+/obj/structure/closet/update_overlays()
. = ..()
- cut_overlays()
- if(!opened)
- layer = OBJ_LAYER
- if(!is_animating_door)
- if(icon_door)
- add_overlay("[icon_door]_door")
- else
- add_overlay("[icon_state]_door")
- if(welded)
- add_overlay(icon_welded)
- if(secure && !broken)
- if(locked)
- add_overlay("locked")
- else
- add_overlay("unlocked")
-
- else
+ if(opened)
layer = BELOW_OBJ_LAYER
- if(!is_animating_door)
- if(icon_door_override)
- add_overlay("[icon_door]_open")
+ if(is_animating_door)
+ return
+ if(icon_door_override)
+ . += "[icon_door]_open"
+ else
+ . += "[icon_state]_open"
+ return
+
+ layer = OBJ_LAYER
+ if(!is_animating_door)
+ if(icon_door)
+ . += "[icon_door]_door"
+ else
+ . += "[icon_state]_door"
+ if(welded)
+ . += icon_welded
+ if(secure && !broken)
+ if(locked)
+ . += "locked"
else
- add_overlay("[icon_state]_open")
+ . += "unlocked"
/obj/structure/closet/proc/animate_door(closing = FALSE)
if(!door_anim_time)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 7993fdc36118..9162f6c2e6fd 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -35,13 +35,14 @@
if(!locatedcrate.opened) //otherwise, if the located crate is closed, allow entering
return TRUE
-/obj/structure/closet/crate/update_icon(updates=ALL)
+/obj/structure/closet/crate/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][opened ? "open" : ""]"
- cut_overlays()
+/obj/structure/closet/crate/update_overlays()
+ . = ..()
if(manifest)
- add_overlay("manifest")
+ . += "manifest"
/obj/structure/closet/crate/attack_hand(mob/user)
. = ..()
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 1d8475e52b77..e63ce8f2dc56 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -98,8 +98,7 @@
var/icon/S = getFlatIcon(showpiece)
S.Scale(17,17)
I.Blend(S,ICON_UNDERLAY,8,8)
- src.icon = I
- return
+ icon = I
/obj/structure/displaycase/attackby(obj/item/W, mob/user, params)
if(W.GetID() && !broken && openable)
diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm
index ee7ea814b8a8..a8d9d31e8380 100644
--- a/code/game/objects/structures/divine.dm
+++ b/code/game/objects/structures/divine.dm
@@ -44,7 +44,7 @@
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), time_between_uses)
-/obj/structure/healingfountain/update_icon(updates=ALL)
+/obj/structure/healingfountain/update_icon_state()
. = ..()
if(last_process + time_between_uses > world.time)
icon_state = "fountain"
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index a3e2addb7676..26ffaa271b51 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -260,14 +260,13 @@
return ..()
update_appearance()
-/obj/structure/door_assembly/update_icon(updates=ALL)
+/obj/structure/door_assembly/update_overlays()
. = ..()
- cut_overlays()
if(!glass)
- add_overlay(get_airlock_overlay("fill_construction", icon))
+ . += get_airlock_overlay("fill_construction", icon)
else if(glass)
- add_overlay(get_airlock_overlay("glass_construction", overlays_file))
- add_overlay(get_airlock_overlay("panel_c[state+1]", overlays_file))
+ . += get_airlock_overlay("glass_construction", overlays_file)
+ . += get_airlock_overlay("panel_c[state+1]", overlays_file)
/obj/structure/door_assembly/update_name(updates=ALL)
. = ..()
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index 4c3e74295a34..0717cf5c51ed 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -120,7 +120,7 @@
opened = !opened
update_appearance(UPDATE_ICON)
-/obj/structure/extinguisher_cabinet/update_icon(updates=ALL)
+/obj/structure/extinguisher_cabinet/update_icon_state()
. = ..()
if(!opened)
icon_state = "extinguisher_closed"
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index 97c5303a09d6..874b1a6c51a8 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -70,7 +70,8 @@
update_appearance(UPDATE_ICON)
air_update_turf(TRUE)
-/obj/structure/falsewall/update_icon(updates=ALL)//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open
+/obj/structure/falsewall/update_icon_state()
+ . = ..()
if(opening)
if(density)
icon_state = "fwall_opening"
diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm
index 2c7453df1cdd..a36e98b7b8e4 100644
--- a/code/game/objects/structures/fireaxe.dm
+++ b/code/game/objects/structures/fireaxe.dm
@@ -194,35 +194,34 @@
toggle_open()//yogs - consolidates opening code
return
-/obj/structure/fireaxecabinet/update_icon(updates=ALL)
+/obj/structure/fireaxecabinet/update_overlays()
. = ..()
- cut_overlays()
if(fireaxe)
- add_overlay("axe")
+ . += "axe"
if(spareid)
- add_overlay("card")
+ . += "card"
if(olreliable)
- add_overlay("rod")
- if(!open)
- var/hp_percent = obj_integrity/max_integrity * 100
- if(broken)
- add_overlay("glass4")
- else
- switch(hp_percent)
- if(-INFINITY to 40)
- add_overlay("glass3")
- if(40 to 60)
- add_overlay("glass2")
- if(60 to 80)
- add_overlay("glass1")
- if(80 to INFINITY)
- add_overlay("glass")
- if(locked)
- add_overlay("locked")
- else
- add_overlay("unlocked")
+ . += "rod"
+ if(open)
+ . += "glass_raised"
+ return
+ var/hp_percent = obj_integrity/max_integrity * 100
+ if(broken)
+ . += "glass4"
+ else
+ switch(hp_percent)
+ if(-INFINITY to 40)
+ . += "glass3"
+ if(40 to 60)
+ . += "glass2"
+ if(60 to 80)
+ . += "glass1"
+ if(80 to INFINITY)
+ . += "glass"
+ if(locked)
+ . += "locked"
else
- add_overlay("glass_raised")
+ . += "unlocked"
//yogs NOTICE - toggle_lock() function MIRRORED to yogstation/code/game/objects/structure/fireaxe.dm
//changes made to the below function will have no effect
diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm
index 16511808dffd..ae050322af49 100644
--- a/code/game/objects/structures/fireplace.dm
+++ b/code/game/objects/structures/fireplace.dm
@@ -69,22 +69,21 @@
else
. = ..()
-/obj/structure/fireplace/update_icon(updates=ALL)
+/obj/structure/fireplace/update_overlays()
. = ..()
- cut_overlays()
if(lit)
switch(burn_time_remaining())
if(0 to 500)
- add_overlay("fireplace_fire0")
+ . += "fireplace_fire0"
if(500 to 1000)
- add_overlay("fireplace_fire1")
+ . += "fireplace_fire1"
if(1000 to 1500)
- add_overlay("fireplace_fire2")
+ . += "fireplace_fire2"
if(1500 to 2000)
- add_overlay("fireplace_fire3")
+ . += "fireplace_fire3"
if(2000 to MAXIMUM_BURN_TIMER)
- add_overlay("fireplace_fire4")
- add_overlay("fireplace_glow")
+ . += "fireplace_fire4"
+ . += "fireplace_glow"
/obj/structure/fireplace/proc/adjust_light()
if(!lit)
diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm
index a18b95f09b25..5f457d0d66c4 100644
--- a/code/game/objects/structures/guncase.dm
+++ b/code/game/objects/structures/guncase.dm
@@ -22,18 +22,17 @@
update_appearance(UPDATE_ICON)
return ..()
-/obj/structure/guncase/update_icon(updates=ALL)
+/obj/structure/guncase/update_overlays()
. = ..()
- cut_overlays()
if(case_type && LAZYLEN(contents))
var/mutable_appearance/gun_overlay = mutable_appearance(icon, case_type)
for(var/i in 1 to contents.len)
gun_overlay.pixel_x = 3 * (i - 1)
- add_overlay(gun_overlay)
+ . += gun_overlay
if(open)
- add_overlay("[icon_state]_open")
+ . += "[icon_state]_open"
else
- add_overlay("[icon_state]_door")
+ . += "[icon_state]_door"
/obj/structure/guncase/attackby(obj/item/I, mob/user, params)
if(iscyborg(user) || isalien(user))
diff --git a/code/game/objects/structures/headpike.dm b/code/game/objects/structures/headpike.dm
index f41dcb984f2a..7aeaefa09634 100644
--- a/code/game/objects/structures/headpike.dm
+++ b/code/game/objects/structures/headpike.dm
@@ -38,14 +38,15 @@
. = ..()
pixel_x = rand(-8, 8)
-/obj/structure/headpike/update_icon(updates=ALL)
+/obj/structure/headpike/update_overlays()
. = ..()
var/obj/item/bodypart/head/H = locate() in contents
+ if(!H)
+ return
var/mutable_appearance/MA = new()
- if(H)
- MA.copy_overlays(H)
- MA.pixel_y = 12
- add_overlay(H)
+ MA.copy_overlays(H)
+ MA.pixel_y = 12
+ . += MA
/obj/structure/headpike/attack_hand(mob/user)
. = ..()
diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm
index 4ea0b0d19792..21e4f2ba4dfd 100644
--- a/code/game/objects/structures/holosign.dm
+++ b/code/game/objects/structures/holosign.dm
@@ -215,7 +215,7 @@
/obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
playsound(loc, 'sound/weapons/egloves.ogg', 80, 1)
-/obj/structure/holobed/update_icon(updates=ALL)
+/obj/structure/holobed/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][stasis ? "" : "_off"]"
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index b88b37271265..1a3387d984cb 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -223,27 +223,25 @@
return FALSE
return TRUE
-/obj/structure/janitorialcart/update_icon(updates=ALL)
+/obj/structure/janitorialcart/update_overlays()
. = ..()
- cut_overlays()
if(mybag)
- add_overlay("cart_garbage")
+ . += "cart_garbage"
if(mymop)
- add_overlay("cart_mop")
+ . += "cart_mop"
if(myspray)
- add_overlay("cart_spray")
+ . += "cart_spray"
if(myreplacer)
- add_overlay("cart_replacer")
+ . += "cart_replacer"
if(myremover)
- add_overlay("cart_remover")
+ . += "cart_remover"
if(myswatter)
- add_overlay("cart_swatter")
+ . += "cart_swatter"
if(mylight)
- add_overlay("cart_light")
+ . += "cart_light"
if(signs)
- add_overlay("cart_sign[signs]")
+ . += "cart_sign[signs]"
if(reagents.total_volume > 0)
- add_overlay("cart_water")
+ . += "cart_water"
if(mybroom)
- add_overlay("cart_broom")
-
+ . += "cart_broom"
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 34a5273dde71..dc6068ac6514 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -55,18 +55,15 @@
down.update_appearance(UPDATE_ICON)
up = down = null
-/obj/structure/ladder/update_icon(updates=ALL)
+/obj/structure/ladder/update_icon_state()
. = ..()
if(up && down)
icon_state = "ladder11"
-
else if(up)
icon_state = "ladder10"
-
else if(down)
icon_state = "ladder01"
-
- else //wtf make your ladders properly assholes
+ else //wtf make your ladders properly assholes
icon_state = "ladder00"
/obj/structure/ladder/singularity_pull()
diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm
index 29da139fcb06..64f9770d18ee 100644
--- a/code/game/objects/structures/life_candle.dm
+++ b/code/game/objects/structures/life_candle.dm
@@ -46,7 +46,7 @@
STOP_PROCESSING(SSobj, src)
set_light(0)
-/obj/structure/life_candle/update_icon(updates=ALL)
+/obj/structure/life_candle/update_icon_state()
. = ..()
if(linked_minds.len)
icon_state = icon_state_active
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index 5032b7177460..67204afc2eeb 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -119,7 +119,7 @@
update_appearance(UPDATE_ICON)
isSwitchingStates = FALSE
-/obj/structure/mineral_door/update_icon(updates=ALL)
+/obj/structure/mineral_door/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][door_opened ? "open":""]"
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
index fdfe4ab452d1..6ba389ed11e7 100644
--- a/code/game/objects/structures/mop_bucket.dm
+++ b/code/game/objects/structures/mop_bucket.dm
@@ -39,10 +39,9 @@
return
return ..()
-/obj/structure/mopbucket/update_icon(updates=ALL)
+/obj/structure/mopbucket/update_overlays()
. = ..()
- cut_overlays()
if(reagents.total_volume > 0)
- add_overlay("mopbucket_water")
+ . += "mopbucket_water"
if(ourmop)
- add_overlay("mopbucket_mop")
+ . += "mopbucket_mop"
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 7d608bc59114..045bb3fbc9ff 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -172,7 +172,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
beeper = !beeper
to_chat(user, span_notice("You turn the speaker function [beeper ? "on" : "off"]."))
-/obj/structure/bodycontainer/morgue/update_icon(updates=ALL)
+/obj/structure/bodycontainer/morgue/update_icon_state()
. = ..()
if (!connected || connected.loc != src) // Open or tray is gone.
icon_state = "morgue0"
@@ -233,7 +233,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
connected = new /obj/structure/tray/c_tray(src)
connected.connected = src
-/obj/structure/bodycontainer/crematorium/update_icon(updates=ALL)
+/obj/structure/bodycontainer/crematorium/update_icon_state()
. = ..()
if(!connected || connected.loc != src)
icon_state = "crema0"
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index 8d305e0addac..132df55d8472 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -56,7 +56,7 @@ FLOOR SAFES
space += I.w_class
I.forceMove(src)
-/obj/structure/safe/update_icon(updates=ALL)
+/obj/structure/safe/update_icon_state()
. = ..()
if(open)
icon_state = "[initial(icon_state)]-open"
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 3656fe55525e..e40e4ccbb9cd 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -69,11 +69,10 @@
. = ..()
. += span_notice("You can alt-click to change the temperature.")
-/obj/machinery/shower/update_icon(updates=ALL)
+/obj/machinery/shower/update_overlays()
. = ..()
- cut_overlays()
if(on)
- add_overlay(mutable_appearance('icons/obj/watercloset.dmi', "water", ABOVE_MOB_LAYER))
+ . += mutable_appearance('icons/obj/watercloset.dmi', "water", ABOVE_MOB_LAYER)
/obj/machinery/shower/proc/handle_mist()
// If there is no mist, and the shower was turned on (on a non-freezing temp): make mist in 5 seconds
diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm
index bc91cd528b12..94f420f3facd 100644
--- a/code/game/objects/structures/stairs.dm
+++ b/code/game/objects/structures/stairs.dm
@@ -54,7 +54,7 @@
return FALSE
return ..()
-/obj/structure/stairs/update_icon(updates=ALL)
+/obj/structure/stairs/update_icon_state()
. = ..()
if(isTerminator())
icon_state = "stairs_t"
diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm
index 9ccfc3f65880..0f7c71213efb 100644
--- a/code/game/objects/structures/tank_dispenser.dm
+++ b/code/game/objects/structures/tank_dispenser.dm
@@ -25,19 +25,18 @@
new /obj/item/tank/internals/plasma(src)
update_appearance(UPDATE_ICON)
-/obj/structure/tank_dispenser/update_icon(updates=ALL)
+/obj/structure/tank_dispenser/update_overlays()
. = ..()
- cut_overlays()
switch(oxygentanks)
if(1 to 3)
- add_overlay("oxygen-[oxygentanks]")
+ . += "oxygen-[oxygentanks]"
if(4 to TANK_DISPENSER_CAPACITY)
- add_overlay("oxygen-4")
+ . += "oxygen-4"
switch(plasmatanks)
if(1 to 4)
- add_overlay("plasma-[plasmatanks]")
+ . += "plasma-[plasmatanks]"
if(5 to TANK_DISPENSER_CAPACITY)
- add_overlay("plasma-5")
+ . += "plasma-5"
/obj/structure/tank_dispenser/attack_ai(mob/user)
. = ..()
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index fd6a4fc82d11..d722f58b6d44 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -70,7 +70,7 @@
update_appearance(UPDATE_ICON)
-/obj/structure/toilet/update_icon(updates=ALL)
+/obj/structure/toilet/update_icon_state()
. = ..()
icon_state = "toilet[open][cistern]"
@@ -394,7 +394,7 @@
open = !open
update_appearance(UPDATE_ICON)
-/obj/structure/curtain/update_icon(updates=ALL)
+/obj/structure/curtain/update_icon_state()
. = ..()
if(!open)
icon_state = "closed"
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 1b65c2095d05..5f5c415a1589 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -47,7 +47,7 @@
setDir(ini_dir)
move_update_air(T)
-/obj/structure/windoor_assembly/update_icon(updates=ALL)
+/obj/structure/windoor_assembly/update_icon_state()
. = ..()
icon_state = "[facing]_[secure ? "secure_" : ""]windoor_assembly[state]"
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 5c306ddcd2d7..763856851ebb 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -331,7 +331,7 @@
queue_smooth_neighbors(src)
//merges adjacent full-tile windows into one
-/obj/structure/window/update_icon(updates=ALL)
+/obj/structure/window/update_overlays()
. = ..()
if(!QDELETED(src))
if(!fulltile)
@@ -347,7 +347,7 @@
if(ratio > 75)
return
crack_overlay = mutable_appearance('icons/obj/structures.dmi', "damage[ratio]", -(layer+0.1))
- add_overlay(crack_overlay)
+ . += crack_overlay
/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
@@ -902,18 +902,30 @@
user.visible_message(span_danger("[user] tears a hole in [src]."))
update_appearance(UPDATE_ICON)
-/obj/structure/window/paperframe/update_icon(updates=ALL)
+/obj/structure/window/paperframe/update_overlays()
. = ..()
if(obj_integrity < max_integrity)
cut_overlay(paper)
- add_overlay(torn)
+ . += torn
set_opacity(FALSE)
else
cut_overlay(torn)
- add_overlay(paper)
+ . += paper
set_opacity(TRUE)
queue_smooth(src)
+/obj/structure/window/paperframe/update_appearance(updates)
+ . = ..()
+ set_opacity(obj_integrity >= max_integrity)
+
+/obj/structure/window/paperframe/update_icon(updates=ALL)
+ . = ..()
+ if((updates & UPDATE_SMOOTHING) && (smooth & (SMOOTH_TRUE)))
+ queue_smooth(src)
+
+/obj/structure/window/paperframe/update_overlays()
+ . = ..()
+ . += (obj_integrity < max_integrity) ? torn : paper
/obj/structure/window/paperframe/attackby(obj/item/W, mob/user)
if(W.is_hot())
@@ -962,7 +974,6 @@
density = TRUE
open = FALSE
opacity = TRUE
-
else
icon_state = "curtain_open"
layer = SIGN_LAYER
From f9721518948f7c9c5cbf48172d65745b7d8d0587 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 19:47:31 -0400
Subject: [PATCH 17/50] goes through like 80 more cases
---
code/game/objects/items/mail.dm | 6 ++--
.../closets/bluespace_locker.dm | 15 ++++----
.../crates_lockers/closets/bodybag.dm | 10 +++---
.../structures/crates_lockers/crates/bins.dm | 9 +++--
.../crates_lockers/crates/critter.dm | 9 +++--
.../crates_lockers/crates/secure.dm | 8 ++---
.../structures/signs/signs_interactive.dm | 7 ++--
.../transit_tubes/transit_tube_cargo_pod.dm | 2 +-
.../transit_tubes/transit_tube_pod.dm | 2 +-
code/game/turfs/simulated/floor.dm | 1 -
.../turfs/simulated/floor/mineral_floor.dm | 6 ++--
code/game/turfs/simulated/floor/plating.dm | 2 +-
code/game/turfs/simulated/minerals.dm | 4 +--
code/game/turfs/space/transit.dm | 2 +-
.../abductor/equipment/abduction_gear.dm | 2 +-
.../abductor/machinery/experiment.dm | 2 +-
.../antagonists/blob/structures/_blob.dm | 2 +-
.../antagonists/blob/structures/core.dm | 7 ++--
.../antagonists/blob/structures/node.dm | 7 ++--
.../antagonists/blob/structures/shield.dm | 2 +-
.../structures/bloodsucker_crypt.dm | 24 ++++++-------
code/modules/antagonists/cult/cult_items.dm | 4 +--
.../antagonists/cult/cult_structures.dm | 12 ++++---
code/modules/assembly/flash.dm | 30 ++++++++++------
code/modules/assembly/holder.dm | 17 +++++-----
code/modules/assembly/infrared.dm | 13 +++----
code/modules/assembly/mousetrap.dm | 7 ++--
code/modules/assembly/proximity.dm | 12 ++++---
code/modules/assembly/signaler.dm | 2 +-
code/modules/assembly/timer.dm | 11 +++---
.../atmospherics/machinery/airalarm.dm | 2 +-
.../components/binary_devices/circulator.dm | 5 ++-
.../machinery/components/fusion/hfr_parts.dm | 4 +--
.../gas_recipe_machines/crystallizer.dm | 5 ---
.../components/trinary_devices/filter.dm | 5 ++-
.../components/trinary_devices/mixer.dm | 5 ++-
.../components/unary_devices/cryo.dm | 29 ++++++++--------
.../components/unary_devices/thermomachine.dm | 9 +++--
.../atmospherics/machinery/other/miner.dm | 7 ++--
.../machinery/pipes/heat_exchange/manifold.dm | 7 ++--
.../pipes/heat_exchange/manifold4w.dm | 7 ++--
.../atmospherics/machinery/pipes/manifold.dm | 7 ++--
.../machinery/pipes/manifold4w.dm | 7 ++--
.../atmospherics/machinery/portable/pump.dm | 10 +++---
.../machinery/portable/scrubber.dm | 12 ++++---
code/modules/awaymissions/gateway.dm | 6 ++--
code/modules/buildmode/buttons.dm | 2 +-
code/modules/cargo/gondolapod.dm | 2 +-
code/modules/cargo/supplypod.dm | 10 ------
code/modules/cargo/supplypod_beacon.dm | 9 +++--
code/modules/clothing/ears/_ears.dm | 2 +-
code/modules/clothing/glasses/_glasses.dm | 1 +
.../clothing/glasses/engine_goggles.dm | 2 +-
code/modules/clothing/head/collectable.dm | 1 +
code/modules/clothing/head/hardhat.dm | 7 ++--
code/modules/clothing/head/helmet.dm | 2 +-
code/modules/clothing/head/misc_special.dm | 22 +++++++-----
code/modules/clothing/neck/bodycamera.dm | 2 +-
code/modules/clothing/shoes/bananashoes.dm | 2 +-
code/modules/clothing/spacesuits/hardsuit.dm | 2 +-
code/modules/clothing/spacesuits/plasmamen.dm | 1 +
code/modules/events/pirates.dm | 2 +-
code/modules/flufftext/Hallucination.dm | 2 +-
.../food_and_drinks/drinks/drinks/bottle.dm | 7 ++--
.../food_and_drinks/food/customizables.dm | 10 +++---
.../food_and_drinks/food/snacks_pastry.dm | 20 +++++++----
.../kitchen_machinery/gibber.dm | 11 +++---
.../kitchen_machinery/griddle.dm | 2 +-
.../kitchen_machinery/grill.dm | 2 +-
.../kitchen_machinery/microwave.dm | 2 +-
.../food_and_drinks/kitchen_machinery/oven.dm | 3 +-
.../kitchen_machinery/smartfridge.dm | 9 +++--
code/modules/food_and_drinks/pizzabox.dm | 34 +++++++++++--------
code/modules/games/cas.dm | 4 +--
code/modules/goals/station_goals/shield.dm | 2 +-
code/modules/holodeck/items.dm | 2 +-
code/modules/holodeck/turfs.dm | 2 +-
.../hydroponics/beekeeping/honeycomb.dm | 5 ++-
code/modules/hydroponics/biogenerator.dm | 2 +-
code/modules/hydroponics/fermenting_barrel.dm | 2 +-
code/modules/hydroponics/gene_modder.dm | 17 +++++-----
code/modules/library/lib_items.dm | 2 +-
code/modules/mapping/minimap.dm | 5 ++-
.../modules/mining/equipment/explorer_gear.dm | 5 ++-
.../mining/equipment/kinetic_crusher.dm | 4 +--
.../mining/equipment/marker_beacons.dm | 4 +--
.../mining/equipment/regenerative_core.dm | 10 +++---
code/modules/mining/equipment/survival_pod.dm | 8 ++---
code/modules/mining/lavaland/ash_flora.dm | 12 ++++---
code/modules/mining/machine_redemption.dm | 2 +-
code/modules/mining/machine_vending.dm | 2 +-
code/modules/mining/ores_coins.dm | 11 +++---
code/modules/power/apc.dm | 26 +++++++-------
93 files changed, 333 insertions(+), 329 deletions(-)
diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm
index c25aaaaeadb7..37d8230b04b1 100644
--- a/code/game/objects/items/mail.dm
+++ b/code/game/objects/items/mail.dm
@@ -73,7 +73,7 @@
stamps += list("stamp_[rand(2, 6)]")
update_appearance(UPDATE_ICON)
-/obj/item/mail/update_icon(updates=ALL)
+/obj/item/mail/update_overlays()
. = ..()
var/bonus_stamp_offset = 0
for(var/stamp in stamps)
@@ -84,7 +84,7 @@
pixel_y = stamp_offset_y + bonus_stamp_offset
)
stamp_image.appearance_flags |= RESET_COLOR
- add_overlay(stamp_image)
+ . += stamp_image
bonus_stamp_offset -= 5
if(postmarked == TRUE)
@@ -95,7 +95,7 @@
pixel_y = stamp_offset_y + rand(bonus_stamp_offset + 3, 1)
)
postmark_image.appearance_flags |= RESET_COLOR
- add_overlay(postmark_image)
+ . += postmark_image
/obj/item/mail/attackby(obj/item/W, mob/user, params)
// Destination tagging
diff --git a/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm b/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm
index 56d8c9e08cf4..07592148e1dc 100644
--- a/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm
+++ b/code/game/objects/structures/crates_lockers/closets/bluespace_locker.dm
@@ -87,9 +87,8 @@
else
return ..()
-/obj/structure/closet/bluespace/internal/update_icon(updates=ALL)
+/obj/structure/closet/bluespace/internal/update_overlays()
. = ..()
- cut_overlays()
var/obj/structure/closet/other = get_other_locker()
if(!other)
other = src
@@ -98,20 +97,20 @@
var/mutable_appearance/masking_icon = mutable_appearance(other.icon, other.icon_state)
masking_icon.blend_mode = BLEND_MULTIPLY
masked_icon.add_overlay(masking_icon)
- //add_overlay(image('yogstation/icons/obj/closet.dmi', "bluespace_locker_frame"))
- add_overlay(masked_icon)
+ //. += image('yogstation/icons/obj/closet.dmi', "bluespace_locker_frame")
+ . += masked_icon
if(!opened)
layer = OBJ_LAYER
if(other.icon_door)
- add_overlay(image(other.icon, "[other.icon_door]_door"))
+ . += image(other.icon, "[other.icon_door]_door")
else
- add_overlay(image(other.icon, "[other.icon_state]_door"))
+ . += image(other.icon, "[other.icon_state]_door")
else
layer = BELOW_OBJ_LAYER
if(other.icon_door_override)
- add_overlay(image(other.icon, "[other.icon_door]_open"))
+ . += image(other.icon, "[other.icon_door]_open")
else
- add_overlay(image(other.icon, "[other.icon_state]_open"))
+ . += image(other.icon, "[other.icon_state]_open")
/obj/structure/closet/bluespace/external/onTransitZ(old_z,new_z)
var/obj/structure/closet/O = get_other_locker()
diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
index dd9a8aead137..63fdda6bd680 100644
--- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm
+++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
@@ -48,10 +48,10 @@
tagged = 0
update_appearance(UPDATE_ICON)
-/obj/structure/closet/body_bag/update_icon(updates=ALL)
+/obj/structure/closet/body_bag/update_overlays()
. = ..()
if (tagged)
- add_overlay("bodybag_label")
+ . += "bodybag_label"
/obj/structure/closet/body_bag/close()
if(..())
@@ -190,7 +190,7 @@
to_chat(the_folder, span_warning("You wrestle with [src], but it won't fold while its straps are fastened."))
return ..()
-/obj/structure/closet/body_bag/environmental/prisoner/update_icon(updates=ALL)
+/obj/structure/closet/body_bag/environmental/prisoner/update_icon_state()
. = ..()
if(sinched)
icon_state = initial(icon_state) + "_sinched"
@@ -292,11 +292,11 @@
breakout_time = 8 MINUTES
sinch_time = 4 SECONDS
-/obj/structure/closet/body_bag/environmental/prisoner/syndicate/update_icon(updates=ALL)
+/obj/structure/closet/body_bag/environmental/prisoner/syndicate/update_overlays()
. = ..()
var/obj/item/bodybag/environmental/prisoner/syndicate/inner_bag = foldedbag_instance
if(sinched && inner_bag && inner_bag.killing)
- add_overlay("kill_flash")
+ . += "kill_flash"
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm
index 2107df71268d..c5e9d9c2fc8e 100644
--- a/code/game/objects/structures/crates_lockers/crates/bins.dm
+++ b/code/game/objects/structures/crates_lockers/crates/bins.dm
@@ -12,15 +12,14 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/structure/closet/crate/bin/update_icon(updates=ALL)
+/obj/structure/closet/crate/bin/update_overlays()
. = ..()
- cut_overlays()
if(contents.len == 0)
- add_overlay("largebing")
+ . += "largebing"
else if(contents.len >= storage_capacity)
- add_overlay("largebinr")
+ . += "largebinr"
else
- add_overlay("largebino")
+ . += "largebino"
/obj/structure/closet/crate/bin/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/storage/bag/trash))
diff --git a/code/game/objects/structures/crates_lockers/crates/critter.dm b/code/game/objects/structures/crates_lockers/crates/critter.dm
index 7b0f479a7510..9040f304ed62 100644
--- a/code/game/objects/structures/crates_lockers/crates/critter.dm
+++ b/code/game/objects/structures/crates_lockers/crates/critter.dm
@@ -21,15 +21,14 @@
return ..()
-/obj/structure/closet/crate/critter/update_icon(updates=ALL)
+/obj/structure/closet/crate/critter/update_overlays()
. = ..()
- cut_overlays()
if(opened)
- add_overlay("crittercrate_door_open")
+ . += "crittercrate_door_open"
else
- add_overlay("crittercrate_door")
+ . += "crittercrate_door"
if(manifest)
- add_overlay("manifest")
+ . += "manifest"
/obj/structure/closet/crate/critter/return_air()
if(tank)
diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm
index 37003268a607..603b108ddf96 100644
--- a/code/game/objects/structures/crates_lockers/crates/secure.dm
+++ b/code/game/objects/structures/crates_lockers/crates/secure.dm
@@ -13,14 +13,14 @@
return 0
. = ..()
-/obj/structure/closet/crate/secure/update_icon(updates=ALL)
+/obj/structure/closet/crate/secure/update_overlays()
. = ..()
if(broken)
- add_overlay("securecrateemag")
+ . += "securecrateemag"
else if(locked)
- add_overlay("securecrater")
+ . += "securecrater"
else
- add_overlay("securecrateg")
+ . += "securecrateg"
/obj/structure/closet/crate/secure/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
if(prob(tamperproof) && damage_amount >= DAMAGE_PRECISION)
diff --git a/code/game/objects/structures/signs/signs_interactive.dm b/code/game/objects/structures/signs/signs_interactive.dm
index 5934bc9b63d4..2d7b63f40534 100644
--- a/code/game/objects/structures/signs/signs_interactive.dm
+++ b/code/game/objects/structures/signs/signs_interactive.dm
@@ -20,19 +20,18 @@ GLOBAL_LIST_EMPTY(map_delamination_counters)
since_last = min(new_count, 99)
update_appearance(UPDATE_ICON)
-/obj/structure/sign/delamination_counter/update_icon(updates=ALL)
+/obj/structure/sign/delamination_counter/update_overlays()
. = ..()
- cut_overlays()
var/ones = since_last % 10
var/mutable_appearance/ones_overlay = mutable_appearance('icons/obj/decals.dmi', "days_[ones]")
ones_overlay.pixel_x = 4
- add_overlay(ones_overlay)
+ . += ones_overlay
var/tens = (since_last / 10) % 10
var/mutable_appearance/tens_overlay = mutable_appearance('icons/obj/decals.dmi', "days_[tens]")
tens_overlay.pixel_x = -5
- add_overlay(tens_overlay)
+ . += tens_overlay
/obj/structure/sign/delamination_counter/examine(mob/user)
. = ..()
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm
index 1e6b5a6575f5..27c0a7b53171 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_cargo_pod.dm
@@ -4,7 +4,7 @@
cargo = TRUE
name = "transit tube cargo pod"
-/obj/structure/transit_tube_pod/cargo/update_icon(updates=ALL)
+/obj/structure/transit_tube_pod/cargo/update_icon_state()
. = ..()
if(contents.len)
icon_state = "pod_cargo_occupied"
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
index 67c13c99e0f6..843b93e57cc0 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
@@ -19,7 +19,7 @@
empty_pod()
return ..()
-/obj/structure/transit_tube_pod/update_icon(updates=ALL)
+/obj/structure/transit_tube_pod/update_icon_state()
. = ..()
if(contents.len)
icon_state = "pod_occupied"
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index d2c354833aa7..a54d1a2e43f7 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -118,7 +118,6 @@
/turf/open/floor/update_icon(updates=ALL)
. = ..()
update_visuals()
- return 1
/turf/open/floor/attack_paw(mob/user)
return attack_hand(user)
diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm
index b6e340a7e304..503b36b3dc14 100644
--- a/code/game/turfs/simulated/floor/mineral_floor.dm
+++ b/code/game/turfs/simulated/floor/mineral_floor.dm
@@ -23,12 +23,12 @@
icons = typelist("icons", icons)
-/turf/open/floor/mineral/update_icon(updates=ALL)
+/turf/open/floor/mineral/update_icon_state()
. = ..()
if(!.)
- return 0
+ return
if(!broken && !burnt)
- if( !(icon_state in icons) )
+ if(!(icon_state in icons))
icon_state = initial(icon_state)
//PLASMA
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index 8940fca47bce..5fdd9fa14468 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -44,7 +44,7 @@
else
icon_plating = initial(icon_state)
-/turf/open/floor/plating/update_icon(updates=ALL)
+/turf/open/floor/plating/update_icon_state()
. = ..()
if(!.)
return
diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm
index 45c84de560fc..0bdf3d8c713f 100644
--- a/code/game/turfs/simulated/minerals.dm
+++ b/code/game/turfs/simulated/minerals.dm
@@ -95,14 +95,14 @@
else
update_appearance(UPDATE_ICON)
-/turf/closed/mineral/update_icon(updates=ALL)
+/turf/closed/mineral/update_overlays()
. = ..()
if(hardness != initial(hardness))
var/mutable_appearance/cracks = mutable_appearance('icons/turf/mining.dmi',"rock_cracks",ON_EDGED_TURF_LAYER)
var/matrix/M = new
M.Translate(4,4)
cracks.transform = M
- add_overlay(cracks)
+ . += cracks
/turf/closed/mineral/attack_animal(mob/living/simple_animal/user)
diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm
index 7b5274c70453..39d0c255272a 100644
--- a/code/game/turfs/space/transit.dm
+++ b/code/game/turfs/space/transit.dm
@@ -67,7 +67,7 @@
/turf/open/space/transit/east
dir = EAST
-/turf/open/space/transit/update_icon(updates=ALL)
+/turf/open/space/transit/update_icon_state()
. = ..()
icon_state = "speedspace_ns_[get_transit_state(src)]"
transform = turn(matrix(), get_transit_angle(src))
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 018b0a87cce5..45b84db7b344 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -445,7 +445,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
to_chat(usr, span_notice("You switch the baton to [txt] mode."))
update_appearance(UPDATE_ICON)
-/obj/item/abductor/baton/update_icon(updates=ALL)
+/obj/item/abductor/baton/update_icon_state()
. = ..()
switch(mode)
if(BATON_STUN)
diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm
index 4dc494e2c95c..9c29c3516d5b 100644
--- a/code/modules/antagonists/abductor/machinery/experiment.dm
+++ b/code/modules/antagonists/abductor/machinery/experiment.dm
@@ -183,7 +183,7 @@
SSjob.SendToLateJoin(H, FALSE)
return
-/obj/machinery/abductor/experiment/update_icon(updates=ALL)
+/obj/machinery/abductor/experiment/update_icon_state()
. = ..()
if(state_open)
icon_state = "experiment-open"
diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm
index 90b542580003..6e4eea32a376 100644
--- a/code/modules/antagonists/blob/structures/_blob.dm
+++ b/code/modules/antagonists/blob/structures/_blob.dm
@@ -344,7 +344,7 @@
return "Currently weak to brute damage."
return "N/A"
-/obj/structure/blob/normal/update_icon(updates=ALL)
+/obj/structure/blob/normal/update_appearance(updates=ALL)
. = ..()
if(obj_integrity <= 15)
icon_state = "blob_damaged"
diff --git a/code/modules/antagonists/blob/structures/core.dm b/code/modules/antagonists/blob/structures/core.dm
index 7c260ae5f88e..b44dbc46ceb7 100644
--- a/code/modules/antagonists/blob/structures/core.dm
+++ b/code/modules/antagonists/blob/structures/core.dm
@@ -25,15 +25,14 @@
/obj/structure/blob/core/scannerreport()
return "Directs the blob's expansion, gradually expands, and sustains nearby blob spores and blobbernauts."
-/obj/structure/blob/core/update_icon(updates=ALL)
+/obj/structure/blob/core/update_overlays()
. = ..()
- cut_overlays()
color = null
var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob")
if(overmind)
blob_overlay.color = overmind.blobstrain.color
- add_overlay(blob_overlay)
- add_overlay(mutable_appearance('icons/mob/blob.dmi', "blob_core_overlay"))
+ . += blob_overlay
+ . += mutable_appearance('icons/mob/blob.dmi', "blob_core_overlay")
/obj/structure/blob/core/Destroy()
GLOB.blob_cores -= src
diff --git a/code/modules/antagonists/blob/structures/node.dm b/code/modules/antagonists/blob/structures/node.dm
index b0a4cf4093b9..1d7c6113800c 100644
--- a/code/modules/antagonists/blob/structures/node.dm
+++ b/code/modules/antagonists/blob/structures/node.dm
@@ -18,15 +18,14 @@
/obj/structure/blob/node/scannerreport()
return "Gradually expands and sustains nearby blob spores and blobbernauts."
-/obj/structure/blob/node/update_icon(updates=ALL)
+/obj/structure/blob/node/update_overlays()
. = ..()
- cut_overlays()
color = null
var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob")
if(overmind)
blob_overlay.color = overmind.blobstrain.color
- add_overlay(blob_overlay)
- add_overlay(mutable_appearance('icons/mob/blob.dmi', "blob_node_overlay"))
+ . += blob_overlay
+ . += mutable_appearance('icons/mob/blob.dmi', "blob_node_overlay")
/obj/structure/blob/node/Destroy()
GLOB.blob_nodes -= src
diff --git a/code/modules/antagonists/blob/structures/shield.dm b/code/modules/antagonists/blob/structures/shield.dm
index 0d84e70c206f..72af84d66556 100644
--- a/code/modules/antagonists/blob/structures/shield.dm
+++ b/code/modules/antagonists/blob/structures/shield.dm
@@ -19,7 +19,7 @@
/obj/structure/blob/shield/core
point_return = 0
-/obj/structure/blob/shield/update_icon(updates=ALL)
+/obj/structure/blob/shield/update_appearance(updates=ALL)
. = ..()
if(obj_integrity < max_integrity * 0.5)
icon_state = "[initial(icon_state)]_damaged"
diff --git a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
index 43b02245d487..dc97c45bdeb4 100644
--- a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
+++ b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_crypt.dm
@@ -395,16 +395,15 @@
. = ..()
anchored = FALSE
-/obj/structure/bloodsucker/moldingstone/update_icon(updates=ALL)
+/obj/structure/bloodsucker/moldingstone/update_overlays()
. = ..()
- cut_overlays()
switch(metal)
if(1 to 5)
- add_overlay("metal")
+ . += "metal"
if(6 to 20)
- add_overlay("metal_2")
+ . += "metal_2"
if(21 to 50)
- add_overlay("metal_3")
+ . += "metal_3"
/obj/structure/bloodsucker/moldingstone/attackby(obj/item/I, mob/user, params)
if(!anchored)
@@ -811,18 +810,17 @@
update_appearance(UPDATE_ICON)
#undef MEATLIMIT
-/obj/structure/bloodsucker/vassalrack/update_icon(updates=ALL)
+/obj/structure/bloodsucker/vassalrack/update_overlays()
. = ..()
- cut_overlays()
if(bigmeat)
- add_overlay("bigmeat_[bigmeat]")
+ . += "bigmeat_[bigmeat]"
if(intermeat)
- add_overlay("mediummeat_[intermeat]")
- add_overlay("smallmeat_[intermeat]")
+ . += "mediummeat_[intermeat]"
+ . += "smallmeat_[intermeat]"
if(mediummeat)
- add_overlay("mediummeat_[mediummeat + intermeat]")
+ . += "mediummeat_[mediummeat + intermeat]"
if(smallmeat)
- add_overlay("smallmeat_[smallmeat + intermeat]")
+ . += "smallmeat_[smallmeat + intermeat]"
/obj/structure/bloodsucker/vassalrack/CtrlClick(mob/user)
if(!anchored)
@@ -1185,7 +1183,7 @@
STOP_PROCESSING(SSobj, src)
return ..()
-/obj/structure/bloodsucker/candelabrum/update_icon(updates=ALL)
+/obj/structure/bloodsucker/candelabrum/update_icon_state()
. = ..()
icon_state = "candelabrum[lit ? "_lit" : ""]"
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index e432d48eb1e7..1ae73e4be031 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -384,7 +384,7 @@
max = 40
prefix = "darkened"
-/obj/item/sharpener/cult/update_icon(updates=ALL)
+/obj/item/sharpener/cult/update_icon_state()
. = ..()
icon_state = "cult_sharpener[used ? "_used" : ""]"
@@ -691,7 +691,7 @@ GLOBAL_VAR_INIT(curselimit, 0)
qdel(spear_act)
..()
-/obj/item/twohanded/cult_spear/update_icon(updates=ALL)
+/obj/item/twohanded/cult_spear/update_icon_state()
. = ..()
icon_state = "bloodspear[wielded]"
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index 359c3d9674e5..4edd5c65cc2b 100644
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ b/code/modules/antagonists/cult/cult_structures.dm
@@ -312,7 +312,7 @@
new /obj/effect/decal/cleanable/ash(loc)
..()
-/obj/structure/destructible/cult/pillar/update_icon(updates=ALL)
+/obj/structure/destructible/cult/pillar/update_icon_state()
. = ..()
icon_state = "pillar[alt ? "alt": ""]2"
if (obj_integrity < max_integrity/3)
@@ -471,17 +471,19 @@
else
T.narsie_act(TRUE, TRUE)
-/obj/structure/destructible/cult/bloodstone/update_icon(updates=ALL)
+/obj/structure/destructible/cult/bloodstone/update_icon_state()
. = ..()
icon_state = "bloodstone-[current_fullness]"
- cut_overlays()
+
+/obj/structure/destructible/cult/bloodstone/update_overlays()
+ . = ..()
var/image/I_base = image('icons/obj/cult_64x64.dmi',"bloodstone-base")
I_base.appearance_flags |= RESET_COLOR//we don't want the stone to pulse
overlays += I_base
if (obj_integrity <= max_integrity/3)
- add_overlay("bloodstone_damage2")
+ . += "bloodstone_damage2"
else if (obj_integrity <= 2*max_integrity/3)
- add_overlay("bloodstone_damage1")
+ . += "bloodstone_damage1"
set_light(3+current_fullness, 2+current_fullness)
/obj/structure/destructible/cult/bloodstone/proc/set_animate()
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 712374081f32..37f0bc3776fb 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -15,6 +15,8 @@
light_power = FLASH_LIGHT_POWER
light_on = FALSE
fryable = TRUE
+ /// Whether we currently have the flashing overlay.
+ var/flashing = FALSE
///flicked when we flash
var/flashing_overlay = "flash-f"
///Number of times the flash has been used.
@@ -46,18 +48,24 @@
return FIRELOSS
/obj/item/assembly/flash/update_icon(updates=ALL, flash = FALSE)
- cut_overlays()
- attached_overlays = list()
+ . = ..()
+ flashing = flash
if(burnt_out)
- add_overlay("flashburnt")
- attached_overlays += "flashburnt"
item_state = "flashburnt"
if(flash)
- add_overlay(flashing_overlay)
- attached_overlays += flashing_overlay
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_icon)), 5)
if(holder)
- holder.update_appearance(UPDATE_ICON)
+ holder.update_icon(updates)
+
+/obj/item/assembly/flash/update_overlays()
+ . = ..()
+ attached_overlays = list()
+ if(burnt_out)
+ . += "flashburnt"
+ attached_overlays += "flashburnt"
+ if(flashing)
+ . += flashing_overlay
+ attached_overlays += flashing_overlay
/obj/item/assembly/flash/proc/clown_check(mob/living/carbon/human/user)
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
@@ -68,7 +76,7 @@
/obj/item/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something.
if(!burnt_out)
burnt_out = TRUE
- update_appearance(UPDATE_ICON)
+ update_icon(ALL, FALSE)
if(ismob(loc))
var/mob/M = loc
M.visible_message(span_danger("[src] burns out!"),span_userdanger("[src] burns out!"))
@@ -120,7 +128,7 @@
addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE)
times_used++
flash_recharge()
- update_icon(flash = TRUE)
+ update_icon(ALL, flash = TRUE)
if(user && !clown_check(user))
return FALSE
return TRUE
@@ -173,7 +181,7 @@
var/mob/living/silicon/robot/R = M
if(!R.sensor_protection)
log_combat(user, R, "flashed", src)
- update_icon(flash = TRUE)
+ update_icon(ALL, flash = TRUE)
R.Paralyze(rand(80,120))
R.set_confusion_if_lower(5 SECONDS * CONFUSION_STACK_MAX_MULTIPLIER)
R.flash_act(affect_silicon = 1)
@@ -294,7 +302,7 @@
addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE)
addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd)
playsound(src, 'sound/weapons/flash.ogg', 100, TRUE)
- update_icon(flash = TRUE)
+ update_icon(ALL, flash = TRUE)
return TRUE
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index 397f279023e3..834443155c56 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -40,32 +40,31 @@
a_right = A
A.holder_movement()
-/obj/item/assembly_holder/update_icon(updates=ALL)
+/obj/item/assembly_holder/update_overlays()
. = ..()
- cut_overlays()
if(a_left)
- add_overlay("[a_left.icon_state]_left")
+ . += "[a_left.icon_state]_left"
for(var/O in a_left.attached_overlays)
// yogs start - signaller colors
if(istext(O))
- add_overlay("[O]_l")
+ . += "[O]_l"
else
var/mutable_appearance/A = new(O)
A.icon_state = "[A.icon_state]_l"
- add_overlay(A)
+ . += A
// yogs end
if(a_right)
if(a_right.is_position_sensitive)
- add_overlay("[a_right.icon_state]_right")
+ . += "[a_right.icon_state]_right"
for(var/O in a_right.attached_overlays)
// yogs start - signaller colors
if(istext(O))
- add_overlay("[O]_r")
+ . += "[O]_r"
else
var/mutable_appearance/A = new(O)
A.icon_state = "[A.icon_state]_r"
- add_overlay(A)
+ . += A
// yogs end
else
var/mutable_appearance/right = mutable_appearance(icon, "[a_right.icon_state]_left")
@@ -79,7 +78,7 @@
A.icon_state = "[A.icon_state]_l"
right.add_overlay(A)
// yogs end
- add_overlay(right)
+ . += right
if(master)
master.update_appearance(UPDATE_ICON)
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index 72b732ed6f49..77ce1dd11cc8 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -52,18 +52,19 @@
/obj/item/assembly/infra/update_icon(updates=ALL)
. = ..()
- cut_overlays()
+ if(holder)
+ holder.update_icon(updates)
+
+/obj/item/assembly/infra/update_overlays()
+ . = ..()
attached_overlays = list()
if(on)
- add_overlay("infrared_on")
+ . += "infrared_on"
attached_overlays += "infrared_on"
if(visible && secured)
- add_overlay("infrared_visible")
+ . += "infrared_visible"
attached_overlays += "infrared_visible"
- if(holder)
- holder.update_appearance(UPDATE_ICON)
-
/obj/item/assembly/infra/dropped()
. = ..()
if(holder)
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 0d55516b4364..cd2eb6972683 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -26,13 +26,16 @@
playsound(src, 'sound/weapons/handcuffs.ogg', 30, TRUE, -3)
/obj/item/assembly/mousetrap/update_icon(updates=ALL)
+ . = ..()
+ if(holder)
+ holder.update_icon(updates)
+
+/obj/item/assembly/mousetrap/update_icon_state()
. = ..()
if(armed)
icon_state = "mousetraparmed"
else
icon_state = "mousetrap"
- if(holder)
- holder.update_appearance(UPDATE_ICON)
/obj/item/assembly/mousetrap/proc/triggered(mob/target, type = "feet")
if(!armed)
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 498cc4743f4c..99210ec08aee 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -94,16 +94,18 @@
/obj/item/assembly/prox_sensor/update_icon(updates=ALL)
. = ..()
- cut_overlays()
+ if(holder)
+ holder.update_icon(updates)
+
+/obj/item/assembly/prox_sensor/update_overlays()
+ . = ..()
attached_overlays = list()
if(timing)
- add_overlay("prox_timing")
+ . += "prox_timing"
attached_overlays += "prox_timing"
if(scanning)
- add_overlay("prox_scanning")
+ . += "prox_scanning"
attached_overlays += "prox_scanning"
- if(holder)
- holder.update_appearance(UPDATE_ICON)
/obj/item/assembly/prox_sensor/ui_status(mob/user)
if(is_secured(user))
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 48887ddd4630..feaf6030757e 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -47,7 +47,7 @@
/obj/item/assembly/signaler/update_icon(updates=ALL)
. = ..()
if(holder)
- holder.update_appearance(UPDATE_ICON)
+ holder.update_icon(updates)
/obj/item/assembly/signaler/ui_status(mob/user)
if(is_secured(user))
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 3c2153084960..5a81ad77623f 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -75,16 +75,17 @@
timer_end()
time = saved_time
-
/obj/item/assembly/timer/update_icon(updates=ALL)
. = ..()
- cut_overlays()
+ if(holder)
+ holder.update_icon(updates)
+
+/obj/item/assembly/timer/update_overlays()
+ . = ..()
attached_overlays = list()
if(timing)
- add_overlay("timer_timing")
+ . += "timer_timing"
attached_overlays += "timer_timing"
- if(holder)
- holder.update_appearance(UPDATE_ICON)
/obj/item/assembly/timer/ui_status(mob/user)
if(is_secured(user))
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index c1d4ed3203ea..93b23a573536 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -630,7 +630,7 @@
"set_internal_pressure" = 0
), signal_source)
-/obj/machinery/airalarm/update_icon(updates=ALL)
+/obj/machinery/airalarm/update_icon_state()
. = ..()
if(panel_open)
switch(buildstage)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
index f3f385d3384f..9c9a7203f343 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
@@ -79,9 +79,8 @@
..()
update_icon_nopipes()
-/obj/machinery/atmospherics/components/binary/circulator/update_icon(updates=ALL)
+/obj/machinery/atmospherics/components/binary/circulator/update_overlays()
. = ..()
- cut_overlays()
if(anchored)
for(var/direction in GLOB.cardinals)
@@ -93,7 +92,7 @@
if(node)
cap = getpipeimage(icon, "cap", direction, node.pipe_color, piping_layer = piping_layer)
- add_overlay(cap)
+ . += cap
/obj/machinery/atmospherics/components/binary/circulator/update_icon_nopipes()
cut_overlays()
diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
index 2910d03bad60..ce247b40dc3e 100644
--- a/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
+++ b/code/modules/atmospherics/machinery/components/fusion/hfr_parts.dm
@@ -72,7 +72,7 @@
node.addMember(src)
SSair.add_to_rebuild_queue(src)
-/obj/machinery/atmospherics/components/unary/hypertorus/update_icon(updates=ALL)
+/obj/machinery/atmospherics/components/unary/hypertorus/update_icon_state()
. = ..()
if(panel_open)
icon_state = icon_state_open
@@ -154,7 +154,7 @@
return
return ..()
-/obj/machinery/hypertorus/update_icon(updates=ALL)
+/obj/machinery/hypertorus/update_icon_state()
. = ..()
if(panel_open)
icon_state = icon_state_open
diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
index 3961f1aedf44..6c50495de769 100644
--- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
+++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm
@@ -94,11 +94,6 @@
else
icon_state = "[base_icon]-off"
-/obj/machinery/atmospherics/components/binary/crystallizer/update_icon(updates=ALL)
- . = ..()
- update_icon_state()
- update_overlays()
-
/obj/machinery/atmospherics/components/binary/crystallizer/AltClick(mob/user)
if(!can_interact(user))
return
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
index 87a2029bf595..077d38c368b5 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
@@ -44,9 +44,8 @@
SSradio.remove_object(src,frequency)
return ..()
-/obj/machinery/atmospherics/components/trinary/filter/update_icon(updates=ALL)
+/obj/machinery/atmospherics/components/trinary/filter/update_overlays()
. = ..()
- cut_overlays()
for(var/direction in GLOB.cardinals)
if(!(direction & initialize_directions))
continue
@@ -58,7 +57,7 @@
else
cap = getpipeimage(icon, "cap", direction, piping_layer = piping_layer, trinary = TRUE)
- add_overlay(cap)
+ . += cap
/obj/machinery/atmospherics/components/trinary/filter/update_icon_nopipes()
var/on_state = on && nodes[1] && nodes[2] && nodes[3] && is_operational()
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index 9e9be0dd2f06..8863b9431f49 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -31,9 +31,8 @@
update_appearance(UPDATE_ICON)
return ..()
-/obj/machinery/atmospherics/components/trinary/mixer/update_icon(updates=ALL)
+/obj/machinery/atmospherics/components/trinary/mixer/update_overlays()
. = ..()
- cut_overlays()
for(var/direction in GLOB.cardinals)
if(!(direction & initialize_directions))
continue
@@ -45,7 +44,7 @@
else
cap = getpipeimage(icon, "cap", direction, piping_layer = piping_layer, trinary = TRUE)
- add_overlay(cap)
+ . += cap
/obj/machinery/atmospherics/components/trinary/mixer/update_icon_nopipes()
var/on_state = on && nodes[1] && nodes[2] && nodes[3] && is_operational()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 015b1cfad79d..e3ac0838bb39 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -102,16 +102,21 @@
beaker.forceMove(drop_location())
beaker = null
-/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon(updates=ALL)
+/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon_state()
. = ..()
- cut_overlays()
-
- if(panel_open)
- add_overlay("pod-panel")
-
if(state_open)
icon_state = "pod-open"
return
+ if(on && is_operational())
+ icon_state = "pod-on"
+ else
+ icon_state = "pod-off"
+
+/obj/machinery/atmospherics/components/unary/cryo_cell/update_overlays()
+ . = ..()
+
+ if(panel_open)
+ . += "pod-panel"
if(occupant)
var/image/occupant_overlay
@@ -139,20 +144,16 @@
occupant_overlay.pixel_y = 22
if(on && !running_anim && is_operational())
- icon_state = "pod-on"
running_anim = TRUE
run_anim(TRUE, occupant_overlay)
else
- icon_state = "pod-off"
- add_overlay(occupant_overlay)
- add_overlay("cover-off")
+ . += occupant_overlay
+ . += "cover-off"
else if(on && is_operational())
- icon_state = "pod-on"
- add_overlay("cover-on")
+ . += "cover-on"
else
- icon_state = "pod-off"
- add_overlay("cover-off")
+ . += "cover-off"
/obj/machinery/atmospherics/components/unary/cryo_cell/proc/run_anim(anim_up, image/occupant_overlay)
if(!on || !occupant || !is_operational())
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index d8ac5b453adc..bec6967939dd 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -39,10 +39,8 @@
B += M.rating
heat_capacity = 5000 * ((B - 1) ** 2)
-/obj/machinery/atmospherics/components/unary/thermomachine/update_icon(updates=ALL)
+/obj/machinery/atmospherics/components/unary/thermomachine/update_icon_state()
. = ..()
- cut_overlays()
-
if(panel_open)
icon_state = icon_state_open
else if(on && is_operational())
@@ -50,8 +48,9 @@
else
icon_state = icon_state_off
- add_overlay(getpipeimage(icon, "pipe", dir, , piping_layer))
-
+/obj/machinery/atmospherics/components/unary/thermomachine/update_overlays()
+ . = ..()
+ . += getpipeimage(icon, "pipe", dir, , piping_layer)
/obj/machinery/atmospherics/components/unary/thermomachine/update_icon_nopipes()
cut_overlays()
diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm
index 886c83ceccc1..2a6a583ab6de 100644
--- a/code/modules/atmospherics/machinery/other/miner.dm
+++ b/code/modules/atmospherics/machinery/other/miner.dm
@@ -108,15 +108,14 @@
return TRUE
return FALSE
-/obj/machinery/atmospherics/miner/update_icon(updates=ALL)
+/obj/machinery/atmospherics/miner/update_overlays()
. = ..()
- cut_overlays()
if(broken)
- add_overlay("broken")
+ . += "broken"
else if(active)
var/mutable_appearance/on_overlay = mutable_appearance(icon, "on")
on_overlay.color = overlay_color
- add_overlay(on_overlay)
+ . += on_overlay
/obj/machinery/atmospherics/miner/process(delta_time)
update_power()
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm
index 8f81fafd0ff2..a2d057a2f360 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm
@@ -26,17 +26,16 @@
initialize_directions = NORTH|SOUTH|EAST|WEST
initialize_directions &= ~dir
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_icon(updates=ALL)
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_overlays()
. = ..()
- cut_overlays()
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
- add_overlay(center)
+ . += center
//Add non-broken pieces
for(var/i in 1 to device_type)
if(nodes[i])
- add_overlay( getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i])) )
+ . += getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i]))
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm
index 0379be8fe355..a47421f1a1f2 100644
--- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm
+++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm
@@ -24,17 +24,16 @@
/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/SetInitDirections()
initialize_directions = initial(initialize_directions)
-/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_icon(updates=ALL)
+/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_overlays()
. = ..()
- cut_overlays()
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
- add_overlay(center)
+ . += center
//Add non-broken pieces
for(var/i in 1 to device_type)
if(nodes[i])
- add_overlay( getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i])) )
+ . += getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i]))
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm
index 3ecdaa8246e3..5d9ed0976564 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold.dm
@@ -35,18 +35,17 @@
initialize_directions = NORTH|SOUTH|EAST|WEST
initialize_directions &= ~dir
-/obj/machinery/atmospherics/pipe/manifold/update_icon(updates=ALL)
+/obj/machinery/atmospherics/pipe/manifold/update_overlays()
. = ..()
- cut_overlays()
if(!center)
center = mutable_appearance(icon, "manifold_center")
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
- add_overlay(center)
+ . += center
//Add non-broken pieces
for(var/i in 1 to device_type)
if(nodes[i])
- add_overlay( getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i])) )
+ . += getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i]))
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
index 73030a5698fa..4a88990fa1c8 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
@@ -29,18 +29,17 @@
/obj/machinery/atmospherics/pipe/manifold4w/SetInitDirections()
initialize_directions = initial(initialize_directions)
-/obj/machinery/atmospherics/pipe/manifold4w/update_icon(updates=ALL)
+/obj/machinery/atmospherics/pipe/manifold4w/update_overlays()
. = ..()
- cut_overlays()
if(!center)
center = mutable_appearance(icon, "manifold_center")
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
- add_overlay(center)
+ . += center
//Add non-broken pieces
for(var/i in 1 to device_type)
if(nodes[i])
- add_overlay( getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i])) )
+ . += getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i]))
update_layer()
update_alpha()
diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm
index d0bf6f63f115..b2224cf9cad8 100644
--- a/code/modules/atmospherics/machinery/portable/pump.dm
+++ b/code/modules/atmospherics/machinery/portable/pump.dm
@@ -29,15 +29,17 @@
QDEL_NULL(pump)
return ..()
-/obj/machinery/portable_atmospherics/pump/update_icon(updates=ALL)
+/obj/machinery/portable_atmospherics/pump/update_icon_state()
. = ..()
icon_state = "psiphon:[on]"
- cut_overlays()
+/obj/machinery/portable_atmospherics/pump/update_overlays()
+ . = ..()
+
if(holding)
- add_overlay("siphon-open")
+ . += "siphon-open"
if(connected_port)
- add_overlay("siphon-connector")
+ . += "siphon-connector"
/obj/machinery/portable_atmospherics/pump/process_atmos()
..()
diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm
index 6277805c345e..f0d132d6fe71 100644
--- a/code/modules/atmospherics/machinery/portable/scrubber.dm
+++ b/code/modules/atmospherics/machinery/portable/scrubber.dm
@@ -36,15 +36,17 @@
air_update_turf()
return ..()
-/obj/machinery/portable_atmospherics/scrubber/update_icon(updates=ALL)
+/obj/machinery/portable_atmospherics/scrubber/update_icon_state()
. = ..()
icon_state = "pscrubber:[on]"
- cut_overlays()
+/obj/machinery/portable_atmospherics/scrubber/update_overlays()
+ . = ..()
+
if(holding)
- add_overlay("scrubber-open")
+ . += "scrubber-open"
if(connected_port)
- add_overlay("scrubber-connector")
+ . += "scrubber-connector"
/obj/machinery/portable_atmospherics/scrubber/process_atmos()
..()
@@ -150,7 +152,7 @@
/obj/machinery/portable_atmospherics/scrubber/huge/movable
movable = TRUE
-/obj/machinery/portable_atmospherics/scrubber/huge/update_icon(updates=ALL)
+/obj/machinery/portable_atmospherics/scrubber/huge/update_icon_state()
. = ..()
icon_state = "scrubber:[on]"
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index 278eb22ed8d5..30b91578560f 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -53,7 +53,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
ready = TRUE
return ready
-/obj/machinery/gateway/update_icon(updates=ALL)
+/obj/machinery/gateway/update_icon_state()
. = ..()
if(active)
icon_state = "on"
@@ -101,7 +101,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
var/obj/machinery/gateway/centeraway/awaygate = null
can_link = TRUE
-/obj/machinery/gateway/centerstation/update_icon(updates=ALL)
+/obj/machinery/gateway/centerstation/update_icon_state()
. = ..()
if(active)
icon_state = "oncenter"
@@ -185,7 +185,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
stationgate = locate(/obj/machinery/gateway/centerstation)
-/obj/machinery/gateway/centeraway/update_icon(updates=ALL)
+/obj/machinery/gateway/centeraway/update_icon_state()
. = ..()
if(active)
icon_state = "oncenter"
diff --git a/code/modules/buildmode/buttons.dm b/code/modules/buildmode/buttons.dm
index d88410fc43f5..8468962b9c38 100644
--- a/code/modules/buildmode/buttons.dm
+++ b/code/modules/buildmode/buttons.dm
@@ -27,7 +27,7 @@
update_appearance(UPDATE_ICON)
return 1
-/atom/movable/screen/buildmode/mode/update_icon(updates=ALL)
+/atom/movable/screen/buildmode/mode/update_icon_state()
. = ..()
if(bd && bd.mode)
icon_state = bd.mode.get_button_iconstate()
diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm
index dd3242739b63..adc2988f5594 100644
--- a/code/modules/cargo/gondolapod.dm
+++ b/code/modules/cargo/gondolapod.dm
@@ -29,7 +29,7 @@
name = linked_pod.name
. = ..()
-/mob/living/simple_animal/pet/gondola/gondolapod/update_icon(updates=ALL)
+/mob/living/simple_animal/pet/gondola/gondolapod/update_icon_state()
. = ..()
if(opened)
icon_state = "gondolapod_open"
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index 7f5de005e982..5b2f619a0f2f 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -125,16 +125,6 @@
transform = matrix()
update_appearance(UPDATE_ICON)
-/obj/structure/closet/supplypod/update_icon(updates=ALL)
- . = ..()
- var/list/new_overlays = update_overlays()
- if(managed_overlays)
- cut_overlay(managed_overlays)
- managed_overlays = null
- if(length(new_overlays))
- managed_overlays = new_overlays
- add_overlay(new_overlays)
-
/obj/structure/closet/supplypod/update_overlays()
. = ..()
if(style == STYLE_INVISIBLE)
diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm
index d19a4cd254de..51df38fca249 100644
--- a/code/modules/cargo/supplypod_beacon.dm
+++ b/code/modules/cargo/supplypod_beacon.dm
@@ -31,15 +31,14 @@
ready = FALSE
update_appearance(UPDATE_ICON)
-/obj/item/supplypod_beacon/update_icon(updates=ALL)
+/obj/item/supplypod_beacon/update_overlays()
. = ..()
- cut_overlays()
if (launched)
- add_overlay("sp_green")
+ . += "sp_green"
else if (ready)
- add_overlay("sp_yellow")
+ . += "sp_yellow"
else if (linked)
- add_overlay("sp_orange")
+ . += "sp_orange"
/obj/item/supplypod_beacon/proc/endLaunch()
launched = FALSE
diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm
index a4a9742044f4..fb4da9b676de 100644
--- a/code/modules/clothing/ears/_ears.dm
+++ b/code/modules/clothing/ears/_ears.dm
@@ -37,7 +37,7 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/clothing/ears/headphones/update_icon(updates=ALL)
+/obj/item/clothing/ears/headphones/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)]_[headphones_on? "on" : "off"]"
item_state = "[initial(item_state)]_[headphones_on? "on" : "off"]"
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 4dbaf236f073..2bae346ca5d9 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -343,6 +343,7 @@
..()
/obj/item/clothing/glasses/blindfold/white/update_icon(mob/living/carbon/human/user)
+ . = ..()
if(ishuman(user) && !colored_before)
add_atom_colour("#[user.eye_color]", FIXED_COLOUR_PRIORITY)
colored_before = TRUE
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 63126f58f413..1f39b7aeed4c 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -114,7 +114,7 @@
pic = new('icons/turf/overlays.dmi', place, "redOverlay", AREA_LAYER)
flick_overlay(pic, list(user.client), 8)
-/obj/item/clothing/glasses/meson/engine/update_icon(updates=ALL)
+/obj/item/clothing/glasses/meson/engine/update_icon_state()
. = ..()
icon_state = "trayson-[mode]"
update_mob()
diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm
index a7af38a5fdce..0a334fe88549 100644
--- a/code/modules/clothing/head/collectable.dm
+++ b/code/modules/clothing/head/collectable.dm
@@ -110,6 +110,7 @@
..()
/obj/item/clothing/head/collectable/kitty/update_icon(mob/living/carbon/human/user)
+ . = ..()
if(ishuman(user))
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index f58d3c79c4c6..8cc94e149024 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -33,7 +33,7 @@
turn_off(user)
update_appearance(UPDATE_ICON)
-/obj/item/clothing/head/hardhat/update_icon(updates=ALL)
+/obj/item/clothing/head/hardhat/update_icon_state()
. = ..()
icon_state = "hardhat[on]_[hat_type]"
item_state = "hardhat[on]_[hat_type]"
@@ -156,11 +156,10 @@
if(!up)
. += mutable_appearance(mob_overlay_icon, "weldvisor")
-/obj/item/clothing/head/hardhat/weldhat/update_icon(updates=ALL)
+/obj/item/clothing/head/hardhat/weldhat/update_overlays()
. = ..()
- cut_overlays()
if(!up)
- add_overlay("weldvisor")
+ . += "weldvisor"
/obj/item/clothing/head/hardhat/weldhat/orange
icon_state = "hardhat0_orange"
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index bd04b6b9a7c0..a7e0c64a943f 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -368,7 +368,7 @@
//LightToggle
-/obj/item/clothing/head/helmet/update_icon(updates=ALL)
+/obj/item/clothing/head/helmet/update_icon_state()
. = ..()
var/state = "[initial(icon_state)]"
if(attached_light)
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 34ba105110a2..7db8c1207658 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -151,6 +151,7 @@
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
+ . = ..()
if(ishuman(user))
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
@@ -209,18 +210,23 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/clothing/head/wig/update_icon(updates=ALL)
+/obj/item/clothing/head/wig/update_icon_state()
. = ..()
- cut_overlays()
icon_state = ""
var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style]
+ if(S)
+ return
+ icon_state = "pwig"
+
+/obj/item/clothing/head/wig/update_overlays()
+ . = ..()
+ var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style]
if(!S)
- icon_state = "pwig"
- else
- var/mutable_appearance/M = mutable_appearance(S.icon,S.icon_state)
- M.appearance_flags |= RESET_COLOR
- M.color = hair_color
- add_overlay(M)
+ return
+ var/mutable_appearance/M = mutable_appearance(S.icon,S.icon_state)
+ M.appearance_flags |= RESET_COLOR
+ M.color = hair_color
+ . += M
/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, file2use)
. = list()
diff --git a/code/modules/clothing/neck/bodycamera.dm b/code/modules/clothing/neck/bodycamera.dm
index 511acab4d9cf..3cd85f30beb1 100644
--- a/code/modules/clothing/neck/bodycamera.dm
+++ b/code/modules/clothing/neck/bodycamera.dm
@@ -54,7 +54,7 @@
bodcam.status = TRUE
update_appearance(UPDATE_ICON)
-/obj/item/clothing/neck/bodycam/update_icon(updates=ALL)
+/obj/item/clothing/neck/bodycam/update_icon_state()
. = ..()
var/suffix = "off"
if(bodcam.status)
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index d3d7b4c12f0d..e083a186bc28 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -55,7 +55,7 @@
else
to_chat(user, span_warning("You need bananium to turn the prototype shoes on!"))
-/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon(updates=ALL)
+/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon_state()
. = ..()
if(on)
icon_state = "clown_prototype_on"
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index e8edd0bad877..94b27351710c 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -305,7 +305,7 @@
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
visor_flags = STOPSPRESSUREDAMAGE
-/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon(updates=ALL)
+/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon_state()
. = ..()
icon_state = "hardsuit[on]-[hardsuit_type]"
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index c18680d16148..b88d73e5aefa 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -81,6 +81,7 @@
update_appearance(UPDATE_ICON)
/obj/item/clothing/head/helmet/space/plasmaman/update_icon(mob/living/carbon/human/user)
+ . = ..()
if(!user)
return
user.cut_overlay(helmet_mob_overlay)
diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm
index 0832da7b7b52..077c1c192479 100644
--- a/code/modules/events/pirates.dm
+++ b/code/modules/events/pirates.dm
@@ -195,7 +195,7 @@
active = FALSE
STOP_PROCESSING(SSobj,src)
-/obj/machinery/shuttle_scrambler/update_icon(updates=ALL)
+/obj/machinery/shuttle_scrambler/update_icon_state()
. = ..()
if(active)
icon_state = "dominator-blue"
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index b42eae418de3..a05e5acfd46a 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -115,7 +115,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
if(target.client)
target.client.images |= current_image
-/obj/effect/hallucination/simple/update_icon(new_state,new_icon,new_px=0,new_py=0)
+/obj/effect/hallucination/simple/update_icon(updates=ALL, new_state, new_icon, new_px=0, new_py=0)
image_state = new_state
if(new_icon)
image_icon = new_icon
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 549ecd66acf5..b76deccada55 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -25,9 +25,8 @@
/obj/item/reagent_containers/food/drinks/bottle/on_reagent_change(changetype)
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/food/drinks/bottle/update_icon(updates=ALL)
+/obj/item/reagent_containers/food/drinks/bottle/update_overlays()
. = ..()
- cut_overlays()
if(reagents.total_volume)
var/fill_name = icon_state
@@ -41,9 +40,9 @@
filling.icon_state = "[fill_name][fill_icon_thresholds[i]]"
filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
+ . += filling
- add_overlay("[initial(icon_state)]shine")
+ . += "[initial(icon_state)]shine"
/obj/item/reagent_containers/food/drinks/bottle/small
name = "small glass bottle"
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index ed3cbdbc0ae4..b883c0814cb5 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -350,14 +350,16 @@
..()
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/bowl/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/bowl/update_overlays()
. = ..()
- cut_overlays()
if(reagents && reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/obj/food/soupsalad.dmi', "fullbowl")
filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
- else
+ . += filling
+
+/obj/item/reagent_containers/glass/bowl/update_icon_state()
+ . = ..()
+ if(!reagents || !reagents.total_volume)
icon_state = "bowl"
#undef INGREDIENTS_FILL
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 5454355f9fd3..41dfc8d6394c 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -674,14 +674,20 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/food/snacks/pancakes/update_icon(updates=ALL)
- . = ..()
- if(contents.len)
- name = "stack of pancakes"
- else
- name = initial(name)
+/obj/item/reagent_containers/food/snacks/pancakes/update_name()
+ name = contents.len ? "stack of pancakes" : initial(name)
+ return ..()
+
+/obj/item/reagent_containers/food/snacks/pancakes/update_icon(updates = ALL)
+ if(!(updates & UPDATE_OVERLAYS))
+ return ..()
+
+ updates &= ~UPDATE_OVERLAYS
+ . = ..() // Don't update overlays. We're doing that here
+
if(contents.len < LAZYLEN(overlays))
- overlays-=overlays[overlays.len]
+ overlays -= overlays[overlays.len]
+ . |= UPDATE_OVERLAYS
/obj/item/reagent_containers/food/snacks/pancakes/examine(mob/user)
var/ingredients_listed = ""
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 5b478fa3728e..c1e1ae5f61f9 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -38,19 +38,18 @@
if(M.rating >= 2)
. += "Gibber has been upgraded to process inorganic materials."
-/obj/machinery/gibber/update_icon(updates=ALL)
+/obj/machinery/gibber/update_overlays()
. = ..()
- cut_overlays()
if (dirty)
- add_overlay("grbloody")
+ . += "grbloody"
if(stat & (NOPOWER|BROKEN))
return
if (!occupant)
- add_overlay("grjam")
+ . += "grjam"
else if (operating)
- add_overlay("gruse")
+ . += "gruse"
else
- add_overlay("gridle")
+ . += "gridle"
/obj/machinery/gibber/attack_paw(mob/user)
return attack_hand(user)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
index 3af46ad12fbf..d0997899ad18 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm
@@ -106,7 +106,7 @@
if(prob(10))
visible_message("[griddled_item] doesn't seem to be doing too great on the [src]!")
-/obj/machinery/griddle/update_icon(updates=ALL)
+/obj/machinery/griddle/update_icon_state()
. = ..()
if(panel_open)
icon_state = "griddle[variant]_o"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
index 29a62c32cc1b..33cec170c196 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
@@ -20,7 +20,7 @@
. = ..()
grill_loop = new(list(src), FALSE)
-/obj/machinery/grill/update_icon(updates=ALL)
+/obj/machinery/grill/update_icon_state()
. = ..()
if(grilled_item)
icon_state = "grill"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index 78c4e814ff54..26eaa4c74366 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -87,7 +87,7 @@
"- Capacity: [max_n_of_items] items.\n"+\
span_notice("- Cook time reduced by [(efficiency - 1) * 25]%.")
-/obj/machinery/microwave/update_icon(updates=ALL)
+/obj/machinery/microwave/update_icon_state()
. = ..()
if(broken)
icon_state = "mwb"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
index 79e2f187b7af..319c402f3226 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
@@ -42,9 +42,8 @@
QDEL_NULL(particles)
. = ..()
-/obj/machinery/oven/update_icon(updates=ALL)
+/obj/machinery/oven/update_icon_state()
. = ..()
- update_overlays()
if(panel_open)
icon_state = "oven_o"
return ..()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index db10bf105bac..bf9da2bf7bd9 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -149,7 +149,7 @@
update_appearance(UPDATE_ICON)
..(damage_flag)
-/obj/machinery/smartfridge/update_icon(updates=ALL)
+/obj/machinery/smartfridge/update_icon_state()
. = ..()
var/startstate = initial(icon_state)
if(stat & BROKEN)
@@ -477,13 +477,12 @@
..()
update_appearance(UPDATE_ICON)
-/obj/machinery/smartfridge/drying_rack/update_icon(updates=ALL)
+/obj/machinery/smartfridge/drying_rack/update_overlays()
. = ..()
- cut_overlays()
if(drying)
- add_overlay("drying_rack_drying")
+ . += "drying_rack_drying"
if(contents.len)
- add_overlay("drying_rack_filled")
+ . += "drying_rack_filled"
/obj/machinery/smartfridge/drying_rack/process()
..()
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index ec6c318fa731..40e0ca66fa31 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -38,9 +38,8 @@
unprocess()
return ..()
-/obj/item/pizzabox/update_icon(updates=ALL)
+/obj/item/pizzabox/update_desc(updates)
. = ..()
- // Description
desc = initial(desc)
if(open)
if(pizza)
@@ -58,34 +57,41 @@
if(box.boxtag != "")
desc = "[desc] The [boxes.len ? "top box" : "box"]'s tag reads: [box.boxtag]"
- // Icon/Overlays
- cut_overlays()
- if(open)
+/obj/item/pizzabox/update_icon_state()
+ . = ..()
+ if(!open)
+ icon_state = "pizzabox"
+ return
+ if(pizza)
+ icon_state = "pizzabox_messy"
+ else if(bomb)
+ bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]"
+ else
icon_state = "pizzabox_open"
+
+/obj/item/pizzabox/update_overlays()
+ . = ..()
+ if(open)
if(pizza)
- icon_state = "pizzabox_messy"
var/mutable_appearance/pizza_overlay = mutable_appearance(pizza.icon, pizza.icon_state)
pizza_overlay.pixel_y = -3
- add_overlay(pizza_overlay)
+ . += pizza_overlay
if(bomb)
- bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]"
var/mutable_appearance/bomb_overlay = mutable_appearance(bomb.icon, bomb.icon_state)
bomb_overlay.pixel_y = 5
- add_overlay(bomb_overlay)
+ . += bomb_overlay
else
- icon_state = "pizzabox"
var/current_offset = 3
- for(var/V in boxes)
- var/obj/item/pizzabox/P = V
+ for(var/obj/item/pizzabox/P as anything in boxes)
var/mutable_appearance/box_overlay = mutable_appearance(P.icon, P.icon_state)
box_overlay.pixel_y = current_offset
- add_overlay(box_overlay)
+ . += box_overlay
current_offset += 3
var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src
if(box.boxtag != "")
var/mutable_appearance/tag_overlay = mutable_appearance(icon, "pizzabox_tag")
tag_overlay.pixel_y = boxes.len * 3
- add_overlay(tag_overlay)
+ . += tag_overlay
/obj/item/pizzabox/worn_overlays(isinhands, icon_file)
. = list()
diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm
index 7e4f55ac5625..339b69433c67 100644
--- a/code/modules/games/cas.dm
+++ b/code/modules/games/cas.dm
@@ -95,7 +95,7 @@
qdel(SC)
update_appearance(UPDATE_ICON)
-/obj/item/toy/cards/deck/cas/update_icon(updates=ALL)
+/obj/item/toy/cards/deck/cas/update_icon_state()
. = ..()
if(cards.len < 26)
icon_state = "deck_[deckstyle]_low"
@@ -137,7 +137,7 @@
return
Flip()
-/obj/item/toy/cards/singlecard/cas/update_icon(updates=ALL)
+/obj/item/toy/cards/singlecard/cas/update_icon_state()
. = ..()
if(flipped)
icon_state = "[card_face]_flipped"
diff --git a/code/modules/goals/station_goals/shield.dm b/code/modules/goals/station_goals/shield.dm
index 08e2b455144b..bbdc0c018aaa 100644
--- a/code/modules/goals/station_goals/shield.dm
+++ b/code/modules/goals/station_goals/shield.dm
@@ -118,7 +118,7 @@
anchored = FALSE
update_appearance(UPDATE_ICON)
-/obj/machinery/satellite/update_icon(updates=ALL)
+/obj/machinery/satellite/update_icon_state()
. = ..()
icon_state = active ? "sat_active" : "sat_inactive"
diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm
index a9852f65155e..c2fbe0a7d693 100644
--- a/code/modules/holodeck/items.dm
+++ b/code/modules/holodeck/items.dm
@@ -199,7 +199,7 @@
if(numbuttons == numready)
begin_event()
-/obj/machinery/readybutton/update_icon(updates=ALL)
+/obj/machinery/readybutton/update_icon_state()
. = ..()
if(ready)
icon_state = "auth_on"
diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm
index 7cab5a48b863..1ac4884134ef 100644
--- a/code/modules/holodeck/turfs.dm
+++ b/code/modules/holodeck/turfs.dm
@@ -122,7 +122,7 @@
/turf/open/floor/holofloor/carpet/update_icon(updates=ALL)
. = ..()
if(!.)
- return 0
+ return FALSE
if(intact)
queue_smooth(src)
diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm
index 4b2432474af6..7ed0c265abe1 100644
--- a/code/modules/hydroponics/beekeeping/honeycomb.dm
+++ b/code/modules/hydroponics/beekeeping/honeycomb.dm
@@ -20,14 +20,13 @@
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/honeycomb/update_icon(updates=ALL)
+/obj/item/reagent_containers/honeycomb/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/honey_overlay = mutable_appearance(icon, /datum/reagent/consumable/honey)
if(honey_color)
honey_overlay.icon_state = "greyscale_honey"
honey_overlay.color = honey_color
- add_overlay(honey_overlay)
+ . += honey_overlay
/obj/item/reagent_containers/honeycomb/proc/set_reagent(reagent)
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index c919ccbc2295..09784f69b812 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -65,7 +65,7 @@
/obj/machinery/biogenerator/on_reagent_change(changetype) //When the reagents change, change the icon as well.
update_appearance(UPDATE_ICON)
-/obj/machinery/biogenerator/update_icon(updates=ALL)
+/obj/machinery/biogenerator/update_icon_state()
. = ..()
if(panel_open)
icon_state = "biogen-empty-o"
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index d2f943866f10..dae9aecdbe9c 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -65,7 +65,7 @@
to_chat(user, span_notice("You close [src], letting you draw from its tap."))
update_appearance(UPDATE_ICON)
-/obj/structure/fermenting_barrel/update_icon(updates=ALL)
+/obj/structure/fermenting_barrel/update_icon_state()
. = ..()
if(open)
icon_state = "barrel_open"
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 731969a2e981..3e359763d439 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -55,19 +55,21 @@
min_wchance = 0
min_wrate = 0
-/obj/machinery/plantgenes/update_icon(updates=ALL)
+/obj/machinery/plantgenes/update_icon_state()
. = ..()
- cut_overlays()
if((stat & (BROKEN|NOPOWER)))
icon_state = "dnamod-off"
else
icon_state = "dnamod"
+
+/obj/machinery/plantgenes/update_overlays()
+ . = ..()
if(seed)
- add_overlay("dnamod-dna")
+ . += "dnamod-dna"
if(disk)
- add_overlay("dnamod-disk")
+ . += "dnamod-disk"
if(panel_open)
- add_overlay("dnamod-open")
+ . += "dnamod-open"
/obj/machinery/plantgenes/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "dnamod", "dnamod", I))
@@ -439,11 +441,10 @@
src.pixel_x = rand(-5, 5)
src.pixel_y = rand(-5, 5)
-/obj/item/disk/plantgene/update_icon(updates=ALL)
+/obj/item/disk/plantgene/update_overlays()
. = ..()
- cut_overlays()
if(gene)
- add_overlay("datadisk_gene")
+ . += "datadisk_gene"
/obj/item/disk/plantgene/update_name(updates=ALL)
. = ..()
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index aba47d985c6e..0fa649ac58f1 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -139,7 +139,7 @@
qdel(src)
-/obj/structure/bookcase/update_icon(updates=ALL)
+/obj/structure/bookcase/update_icon_state()
. = ..()
if(contents.len < 5)
icon_state = "book-[contents.len]"
diff --git a/code/modules/mapping/minimap.dm b/code/modules/mapping/minimap.dm
index 169c9e1c09f8..d802961f84b9 100644
--- a/code/modules/mapping/minimap.dm
+++ b/code/modules/mapping/minimap.dm
@@ -107,15 +107,14 @@
minimaps += SSmapping.station_minimaps
update_appearance(UPDATE_ICON)
-/obj/item/map/update_icon(updates=ALL)
+/obj/item/map/update_overlays()
. = ..()
- cut_overlays()
var/datum/minimap/map = minimaps[1]
if(!map) return
var/image/I = image(map.overlay_icon)
I.pixel_x = 8
I.pixel_y = 8
- add_overlay(I)
+ . += I
/obj/item/map/interact(mob/user)
if(!in_range(user, src) && !isobserver(user))
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 6ab45101d717..fef73a241e6e 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -126,12 +126,11 @@
AddComponent(/datum/component/spraycan_paintable)
update_appearance(UPDATE_ICON)
-/obj/item/clothing/head/helmet/space/hostile_environment/update_icon(updates=ALL)
+/obj/item/clothing/head/helmet/space/hostile_environment/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/glass_overlay = mutable_appearance(icon, "hostile_env_glass")
glass_overlay.appearance_flags = RESET_COLOR
- add_overlay(glass_overlay)
+ . += glass_overlay
/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands)
. = ..()
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index c80649adfa1a..8d3bf20498c9 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -28,7 +28,7 @@
var/detonation_damage = 50
var/backstab_bonus = 30
-/obj/item/twohanded/kinetic_crusher/update_icon(updates=ALL) //Updates the sprite for in-hand and on-mob.
+/obj/item/twohanded/kinetic_crusher/update_icon_state() //Updates the sprite for in-hand and on-mob.
icon_state = "mining_hammer[wielded]"
return
@@ -508,7 +508,7 @@
..()
-/obj/item/twohanded/kinetic_crusher/mega/update_icon(updates=ALL)
+/obj/item/twohanded/kinetic_crusher/mega/update_icon_state()
. = ..()
icon_state = "magmite_crusher[wielded]"
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index d55e11f59ac9..6092c14a996d 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -40,7 +40,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
. += "Use in-hand to place a [singular_name].\n"+\
"Alt-click to select a color. Current color is [picked_color]."
-/obj/item/stack/marker_beacon/update_icon(updates=ALL)
+/obj/item/stack/marker_beacon/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][lowertext(picked_color)]"
@@ -97,7 +97,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
. = ..()
. += span_notice("Alt-click to select a color. Current color is [picked_color].")
-/obj/structure/marker_beacon/update_icon(updates=ALL)
+/obj/structure/marker_beacon/update_icon_state()
. = ..()
while(!picked_color || !GLOB.marker_beacon_colors[picked_color])
picked_color = pick(GLOB.marker_beacon_colors)
diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm
index 796b0832b7e5..9d37497ef21f 100644
--- a/code/modules/mining/equipment/regenerative_core.dm
+++ b/code/modules/mining/equipment/regenerative_core.dm
@@ -136,15 +136,17 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/organ/regenerative_core/update_icon(updates=ALL)
+/obj/item/organ/regenerative_core/update_icon_state()
. = ..()
icon_state = inert ? "legion_soul_inert" : "legion_soul"
- cut_overlays()
- if(!inert && !preserved)
- add_overlay("legion_soul_crackle")
for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
+/obj/item/organ/regenerative_core/update_overlays()
+ . = ..()
+ if(!inert && !preserved)
+ . += "legion_soul_crackle"
+
/obj/item/organ/regenerative_core/legion/go_inert()
..()
desc = "[src] has become inert. It has decayed, and is completely useless."
diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index c5288c48e6c0..aca65db28b05 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -138,12 +138,10 @@
icon = 'icons/obj/lavaland/survival_pod.dmi'
icon_state = "sleeper"
-/obj/machinery/sleeper/survival_pod/update_icon(updates=ALL)
+/obj/machinery/sleeper/survival_pod/update_overlays()
. = ..()
- if(state_open)
- cut_overlays()
- else
- add_overlay("sleeper_cover")
+ if(!state_open)
+ . += "sleeper_cover"
//Lifeform Stasis Unit
/obj/machinery/stasis/survival_pod
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index 6e317d5ca45e..9b0e1fbec3df 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -300,15 +300,17 @@
icon = 'icons/obj/lavaland/ash_flora.dmi'
icon_state = "mushroom_bowl"
-/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon_state()
+ . = ..()
+ if(!reagents || !reagents.total_volume)
+ icon_state = "mushroom_bowl"
+
+/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_overlays()
. = ..()
- cut_overlays()
if(reagents && reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/obj/lavaland/ash_flora.dmi', "fullbowl")
filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
- else
- icon_state = "mushroom_bowl"
+ . += filling
/obj/item/reagent_containers/glass/bowl/mushroom_bowl/attackby(obj/item/I,mob/user, params)
if(istype(I, /obj/item/reagent_containers/food/snacks))
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index 8e5b02716e28..0d1a714d2c28 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -345,7 +345,7 @@
do_sparks(5, TRUE, src)
..()
-/obj/machinery/mineral/ore_redemption/update_icon(updates=ALL)
+/obj/machinery/mineral/ore_redemption/update_icon_state()
. = ..()
if(powered())
icon_state = initial(icon_state)
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index ecf2607a0c45..199f179584a3 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -105,7 +105,7 @@
var/datum/data/mining_equipment/M = p
GLOB.vending_products[M.equipment_path] = 1
-/obj/machinery/mineral/equipment_vendor/update_icon(updates=ALL)
+/obj/machinery/mineral/equipment_vendor/update_icon_state()
. = ..()
if(powered())
icon_state = initial(icon_state)
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 2543ca87517e..c76af3e8265d 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -22,26 +22,24 @@
var/list/stack_overlays
var/edible = FALSE //can a preternis eat it for some funny effect?
-/obj/item/stack/ore/update_icon(updates=ALL)
+/obj/item/stack/ore/update_overlays()
. = ..()
var/difference = min(ORESTACK_OVERLAYS_MAX, amount) - (LAZYLEN(stack_overlays)+1)
if(difference == 0)
return
else if(difference < 0 && LAZYLEN(stack_overlays)) //amount < stack_overlays, remove excess.
- cut_overlays()
if (LAZYLEN(stack_overlays)-difference <= 0)
stack_overlays = null;
else
stack_overlays.len += difference
else if(difference > 0) //amount > stack_overlays, add some.
- cut_overlays()
for(var/i in 1 to difference)
var/mutable_appearance/newore = mutable_appearance(icon, icon_state)
newore.pixel_x = rand(-8,8)
newore.pixel_y = rand(-8,8)
LAZYADD(stack_overlays, newore)
if (stack_overlays)
- add_overlay(stack_overlays)
+ . += stack_overlays
/obj/item/stack/ore/welder_act(mob/living/user, obj/item/I)
if(!refined_type)
@@ -635,12 +633,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
if(antag > 1)
. += span_info("But they told me I could only have one at a time...")
-/obj/item/coinstack/update_icon(updates=ALL)
+/obj/item/coinstack/update_overlays()
. = ..()
- cut_overlays()
for(var/i in 1 to length(coins))
var/obj/item/coin/C = coins[i]
- src.add_overlay(image(icon = C.icon,icon_state = C.coin_stack_icon_state, pixel_y = (i-1)*2))
+ . += image(icon = C.icon,icon_state = C.coin_stack_icon_state, pixel_y = (i-1)*2)
/obj/item/coinstack/attack_hand(mob/user) ///take a coin off the top of the stack
remove_from_stack(user)
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index e7a9e8e6f6b3..9e19800e8442 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -205,7 +205,7 @@
operating = FALSE
name = "[area.name] APC"
stat |= MAINT
- src.update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(update)), 5)
/obj/machinery/power/apc/Destroy()
@@ -322,19 +322,18 @@
cell = best_cell
W.play_rped_sound()
+#define APC_UPDATE_STATE (1<<0)
+#define APC_UPDATE_OVERLAYS (1<<1)
// update the APC icon to show the three base states
// also add overlays for indicator lights
/obj/machinery/power/apc/update_icon(updates=ALL)
. = ..()
- var/update = check_updates() //returns 0 if no need to update icons.
- // 1 if we need to update the icon_state
- // 2 if we need to update the overlays
- if(!update)
- icon_update_needed = FALSE
+ updates=check_updates()
+ if(!updates)
return
- if(update & 1) // Updating the icon state
+ if(updates & APC_UPDATE_STATE) // Updating the icon state
if(update_state & UPSTATE_ALLGOOD)
icon_state = "apc0"
else if(update_state & (UPSTATE_OPENED1|UPSTATE_OPENED2))
@@ -361,7 +360,7 @@
if(!(update_state & UPSTATE_ALLGOOD))
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
- if(update & 2)
+ if(updates & APC_UPDATE_OVERLAYS)
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
if(!(stat & (BROKEN|MAINT)) && update_state & UPSTATE_ALLGOOD)
SSvis_overlays.add_vis_overlay(src, icon, "apcox-[locked]", layer, plane, dir)
@@ -454,15 +453,18 @@
update_overlay |= APC_UPOVERLAY_ENVIRON2
- var/results = 0
+ var/results = NONE
if(last_update_state == update_state && last_update_overlay == update_overlay)
- return 0
+ return results
if(last_update_state != update_state)
- results += 1
+ results ^= APC_UPDATE_STATE
if(last_update_overlay != update_overlay)
- results += 2
+ results ^= APC_UPDATE_OVERLAYS
return results
+#undef APC_UPDATE_STATE
+#undef APC_UPDATE_OVERLAYS
+
// Used in process so it doesn't update the icon too much
/obj/machinery/power/apc/proc/queue_icon_update()
icon_update_needed = TRUE
From e38ea581d14e634d4307cd542203bba324a2bdd8 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 21:05:18 -0400
Subject: [PATCH 18/50] going through more update icons
---
code/modules/NTNet/relays.dm | 8 +++--
.../antagonists/blob/structures/_blob.dm | 1 +
.../machinery/pipes/layermanifold.dm | 2 +-
code/modules/flufftext/Hallucination.dm | 1 +
.../food_and_drinks/food/snacks_pastry.dm | 13 +------
.../mining/lavaland/necropolis_chests.dm | 15 +++++---
code/modules/mob/living/brain/MMI.dm | 9 +++--
code/modules/mob/living/brain/posibrain.dm | 2 +-
.../silicon/ai/decentralized/ai_data_core.dm | 3 +-
.../ai/decentralized/server_cabinet.dm | 13 ++++---
.../mob/living/simple_animal/bot/atmosbot.dm | 2 +-
.../mob/living/simple_animal/bot/bot.dm | 2 +-
.../living/simple_animal/bot/construction.dm | 2 +-
.../mob/living/simple_animal/bot/firebot.dm | 2 +-
.../mob/living/simple_animal/bot/floorbot.dm | 2 +-
.../mob/living/simple_animal/bot/medbot.dm | 10 +++---
.../mob/living/simple_animal/bot/mulebot.dm | 8 +++--
.../mob/living/simple_animal/bot/secbot.dm | 3 +-
.../simple_animal/friendly/spiderbot.dm | 2 +-
.../hostile/megafauna/colossus.dm | 5 +--
.../computers/item/tablet/tablet.dm | 2 +-
code/modules/paperwork/carbonpaper.dm | 2 +-
code/modules/paperwork/clipboard.dm | 5 ++-
code/modules/paperwork/filingcabinet.dm | 5 ++-
code/modules/paperwork/folders.dm | 5 ++-
code/modules/paperwork/inspector_booth.dm | 2 +-
code/modules/paperwork/paper.dm | 4 +--
code/modules/paperwork/paper_bundle.dm | 7 ++--
code/modules/paperwork/paper_cutter.dm | 10 +++---
code/modules/paperwork/paperbin.dm | 8 +++--
code/modules/paperwork/paperplane.dm | 5 ++-
code/modules/paperwork/papershredder.dm | 27 ++++++++-------
code/modules/paperwork/ticketmachine.dm | 21 ++++++------
code/modules/photography/photos/frame.dm | 10 +++---
code/modules/plumbing/ducts.dm | 5 +--
code/modules/power/cable.dm | 7 +++-
code/modules/power/cell.dm | 8 ++---
code/modules/power/generator.dm | 34 ++++++++++---------
code/modules/power/gravitygenerator.dm | 2 +-
code/modules/power/port_gen.dm | 2 +-
code/modules/power/singularity/collector.dm | 7 ++--
code/modules/power/singularity/emitter.dm | 2 +-
.../power/singularity/field_generator.dm | 9 +++--
code/modules/power/singularity/generator.dm | 21 +++++++-----
.../particle_accelerator.dm | 2 +-
.../particle_accelerator/particle_control.dm | 4 +--
code/modules/power/smes.dm | 19 +++++------
code/modules/power/solar.dm | 16 ++++-----
.../projectiles/ammunition/_ammunition.dm | 5 ++-
.../projectiles/ammunition/reusable/arrow.dm | 19 +++++------
.../projectiles/ammunition/reusable/foam.dm | 2 +-
.../projectiles/attachments/_attachment.dm | 2 +-
.../boxes_magazines/_box_magazine.dm | 14 +++++---
.../boxes_magazines/external/grenade.dm | 2 +-
.../boxes_magazines/external/lmg.dm | 2 +-
.../boxes_magazines/external/pistol.dm | 8 ++---
.../boxes_magazines/external/rechargable.dm | 22 ++++++------
.../boxes_magazines/external/rifle.dm | 10 +++---
.../boxes_magazines/external/shotgun.dm | 2 +-
.../boxes_magazines/external/smg.dm | 10 +++---
.../boxes_magazines/external/sniper.dm | 2 +-
.../boxes_magazines/external/toy.dm | 6 ++--
code/modules/projectiles/guns/ballistic.dm | 30 +++++++++-------
.../projectiles/guns/ballistic/automatic.dm | 20 +++++------
.../modules/projectiles/guns/ballistic/bow.dm | 26 ++++++++------
.../guns/ballistic/laser_gatling.dm | 2 +-
.../projectiles/guns/ballistic/minigun.dm | 2 +-
.../projectiles/guns/ballistic/rifle.dm | 4 +--
.../projectiles/guns/ballistic/shotgun.dm | 2 +-
.../modules/projectiles/guns/ballistic/toy.dm | 16 ++++-----
code/modules/projectiles/guns/energy.dm | 4 +--
.../projectiles/guns/energy/dueling.dm | 5 ++-
72 files changed, 293 insertions(+), 280 deletions(-)
diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm
index ccfdb6b73a3f..777ea33d6d4c 100644
--- a/code/modules/NTNet/relays.dm
+++ b/code/modules/NTNet/relays.dm
@@ -32,12 +32,14 @@
return FALSE
return TRUE
-/obj/machinery/ntnet_relay/update_icon(updates=ALL)
+/obj/machinery/ntnet_relay/update_overlays()
. = ..()
- cut_overlays()
if(is_operational())
var/mutable_appearance/on_overlay = mutable_appearance(icon, "[initial(icon_state)]_on")
- add_overlay(on_overlay)
+ . += on_overlay
+
+/obj/machinery/ntnet_relay/update_icon_state()
+ . = ..()
if(panel_open)
icon_state = "[initial(icon_state)]_o"
else
diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm
index 6e4eea32a376..4dc3b9db4892 100644
--- a/code/modules/antagonists/blob/structures/_blob.dm
+++ b/code/modules/antagonists/blob/structures/_blob.dm
@@ -83,6 +83,7 @@
. = . || (mover.pass_flags & PASSBLOB)
/obj/structure/blob/update_icon(updates=ALL) //Updates color based on overmind color if we have an overmind.
+ . = ..()
if(overmind)
add_atom_colour(overmind.blobstrain.color, FIXED_COLOUR_PRIORITY)
else
diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm
index 14b95da4d789..e0af1acdaeda 100644
--- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm
@@ -43,7 +43,7 @@
return front_nodes + back_nodes + nodes
/obj/machinery/atmospherics/pipe/layer_manifold/update_icon(updates=ALL) //HEAVILY WIP FOR UPDATE ICONS!!
- cut_overlays()
+ . = ..()
layer = initial(layer) + (PIPING_LAYER_MAX * PIPING_LAYER_LCHANGE) //This is above everything else.
for(var/node in front_nodes)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index a05e5acfd46a..70cf206a0b17 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -116,6 +116,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
target.client.images |= current_image
/obj/effect/hallucination/simple/update_icon(updates=ALL, new_state, new_icon, new_px=0, new_py=0)
+ . = ..()
image_state = new_state
if(new_icon)
image_icon = new_icon
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 41dfc8d6394c..85b3f53dacdc 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -715,7 +715,7 @@
bitecount = originalBites
/obj/item/reagent_containers/food/snacks/pancakes/attackby(obj/item/I, mob/living/user, params)
- if(istype(I, /obj/item/reagent_containers/food/snacks/pancakes/))
+ if(istype(I, /obj/item/reagent_containers/food/snacks/pancakes))
var/obj/item/reagent_containers/food/snacks/pancakes/P = I
if((contents.len >= PANCAKE_MAX_STACK) || ((P.contents.len + contents.len) > PANCAKE_MAX_STACK) || (reagents.total_volume >= volume))
to_chat(user, span_warning("You can't add that many pancakes to [src]!"))
@@ -740,17 +740,6 @@
return O.attackby(I, user, params)
..()
-/obj/item/reagent_containers/food/snacks/pancakes/update_icon(updates = ALL)
- if(!(updates & UPDATE_OVERLAYS))
- return ..()
-
- updates &= ~UPDATE_OVERLAYS
- . = ..() // Don't update overlays. We're doing that here
-
- if(contents.len < LAZYLEN(overlays))
- overlays -= overlays[overlays.len]
- . |= UPDATE_OVERLAYS
-
/obj/item/reagent_containers/food/snacks/pancakes/attack(mob/M, mob/user, def_zone, stacked = TRUE)
if(user.a_intent == INTENT_HARM || !contents.len || !stacked)
return ..()
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index e371d42e9f3c..ca7fca0747f4 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -683,15 +683,20 @@ GLOBAL_LIST_EMPTY(aide_list)
desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'."
list_reagents = list(/datum/reagent/flightpotion = 5)
-/obj/item/reagent_containers/glass/bottle/potion/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/bottle/potion/update_desc(updates)
. = ..()
if(reagents.total_volume)
- icon_state = initial(icon_state)
desc = initial(desc)
else
- icon_state = "[initial(icon_state)]_empty"
desc = "An ornate red bottle, with an \"S\" embossed into the underside."
+/obj/item/reagent_containers/glass/bottle/potion/update_icon_state()
+ . = ..()
+ if(reagents.total_volume)
+ icon_state = initial(icon_state)
+ else
+ icon_state = "[initial(icon_state)]_empty"
+
/datum/reagent/flightpotion
name = "Flight Potion"
description = "Strange mutagenic compound of unknown origins."
@@ -1505,7 +1510,7 @@ GLOBAL_LIST_EMPTY(aide_list)
chaser_speed = max(chaser_speed + health_percent, 0.5) //one tenth of a second faster for each missing 10% of health
blast_range -= round(health_percent * 10) //one additional range for each missing 10% of health
-/obj/item/hierophant_club/update_icon(updates=ALL)
+/obj/item/hierophant_club/update_icon_state()
. = ..()
icon_state = "hierophant_club[timer <= world.time ? "_ready":""][(beacon && !QDELETED(beacon)) ? "":"_beacon"]"
item_state = icon_state
@@ -1745,7 +1750,7 @@ GLOBAL_LIST_EMPTY(aide_list)
var/fauna_damage_type = BRUTE
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
-/obj/item/twohanded/bonespear/stalwartpike/update_icon(updates=ALL)
+/obj/item/twohanded/bonespear/stalwartpike/update_icon_state()
. = ..()
if(wielded)
icon_state = "stalwart_spear1"
diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm
index 7ad4cbe455a8..f527d66bd968 100644
--- a/code/modules/mob/living/brain/MMI.dm
+++ b/code/modules/mob/living/brain/MMI.dm
@@ -24,7 +24,7 @@
Unless you are slaved as a silicon, you retain crew/antagonist/etc status and should behave as such.\n\
Being placed in a mech does not slave you to any laws."
-/obj/item/mmi/update_icon(updates=ALL)
+/obj/item/mmi/update_icon_state()
. = ..()
if(!brain)
icon_state = "mmi_off"
@@ -35,10 +35,13 @@
else
icon_state = "mmi_brain"
braintype = "Cyborg"
+
+/obj/item/mmi/update_overlays()
+ . = ..()
if(brainmob && brainmob.stat != DEAD)
- add_overlay("mmi_alive")
+ . += "mmi_alive"
else
- add_overlay("mmi_dead")
+ . += "mmi_dead"
/obj/item/mmi/Initialize(mapload)
. = ..()
diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm
index ac45319e64c0..9cbd0c449b68 100644
--- a/code/modules/mob/living/brain/posibrain.dm
+++ b/code/modules/mob/living/brain/posibrain.dm
@@ -210,7 +210,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
return
-/obj/item/mmi/posibrain/update_icon(updates=ALL)
+/obj/item/mmi/posibrain/update_icon_state()
. = ..()
if(searching)
icon_state = "[initial(icon_state)]-searching"
diff --git a/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm b/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm
index d4189f8b325f..30d79f578e14 100644
--- a/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm
+++ b/code/modules/mob/living/silicon/ai/decentralized/ai_data_core.dm
@@ -214,9 +214,8 @@ GLOBAL_VAR_INIT(primary_data_core, null)
if(AI.eyeobj)
AI.eyeobj.forceMove(get_turf(src))
-/obj/machinery/ai/data_core/update_icon(updates=ALL)
+/obj/machinery/ai/data_core/update_icon_state()
. = ..()
- cut_overlays()
if(!(stat & (BROKEN|EMPED)) && has_power())
if(!valid_data_core())
diff --git a/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm b/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm
index 4396b205b52f..64b2fca5cd33 100644
--- a/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm
+++ b/code/modules/mob/living/silicon/ai/decentralized/server_cabinet.dm
@@ -96,27 +96,26 @@ GLOBAL_LIST_EMPTY(server_cabinets)
GLOB.ai_os.update_hardware()
-/obj/machinery/ai/server_cabinet/update_icon(updates=ALL)
+/obj/machinery/ai/server_cabinet/update_overlays()
. = ..()
- cut_overlays()
if(installed_racks.len > 0)
var/mutable_appearance/top_overlay = mutable_appearance(icon, "expansion_bus_top")
- add_overlay(top_overlay)
+ . += top_overlay
if(installed_racks.len > 1)
var/mutable_appearance/bottom_overlay = mutable_appearance(icon, "expansion_bus_bottom")
- add_overlay(bottom_overlay)
+ . += bottom_overlay
if(!(stat & (BROKEN|NOPOWER|EMPED)))
var/mutable_appearance/on_overlay = mutable_appearance(icon, "expansion_bus_on")
- add_overlay(on_overlay)
+ . += on_overlay
if(!valid_ticks)
return
if(installed_racks.len > 0)
var/mutable_appearance/on_top_overlay = mutable_appearance(icon, "expansion_bus_top_on")
- add_overlay(on_top_overlay)
+ . += on_top_overlay
if(installed_racks.len > 1)
var/mutable_appearance/on_bottom_overlay = mutable_appearance(icon, "expansion_bus_bottom_on")
- add_overlay(on_bottom_overlay)
+ . += on_bottom_overlay
/obj/machinery/ai/server_cabinet/attackby(obj/item/W, mob/living/user, params)
if(istype(W, /obj/item/server_rack))
diff --git a/code/modules/mob/living/simple_animal/bot/atmosbot.dm b/code/modules/mob/living/simple_animal/bot/atmosbot.dm
index e86f67e520c6..d1aff575409a 100644
--- a/code/modules/mob/living/simple_animal/bot/atmosbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/atmosbot.dm
@@ -196,7 +196,7 @@
update_controls()
update_appearance(UPDATE_ICON)
-/mob/living/simple_animal/bot/atmosbot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/atmosbot/update_icon_state()
. = ..()
icon_state = "atmosbot[on][on?"_[action]":""]"
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index a0e812ba5d71..80e0cd8feb40 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -855,7 +855,7 @@ Pass a positive integer as an argument to override a bot's default speed.
ejectpai(usr)
update_controls()
-/mob/living/simple_animal/bot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][on]"
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index 095aa366d125..bc3adbab0a85 100644
--- a/code/modules/mob/living/simple_animal/bot/construction.dm
+++ b/code/modules/mob/living/simple_animal/bot/construction.dm
@@ -214,7 +214,7 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/bot_assembly/floorbot/update_icon(updates=ALL)
+/obj/item/bot_assembly/floorbot/update_appearance(updates=ALL)
. = ..()
switch(build_step)
if(ASSEMBLY_FIRST_STEP)
diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm
index 8997b576225c..f23f711e00b6 100644
--- a/code/modules/mob/living/simple_animal/bot/firebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/firebot.dm
@@ -286,7 +286,7 @@
flick("firebot1_use", user)
internal_ext.afterattack(target, user, null)
-/mob/living/simple_animal/bot/firebot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/firebot/update_icon_state()
. = ..()
if(!on)
icon_state = "firebot0"
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index 76995a260562..2313094685e2 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -359,7 +359,7 @@
anchored = FALSE
target = null
-/mob/living/simple_animal/bot/floorbot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/floorbot/update_icon_state()
. = ..()
icon_state = "[toolbox_color]floorbot[on]"
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index d8c165849627..e38f4bd6c3bd 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -91,11 +91,8 @@
treatment_tox_avoid = null
treatment_tox = /datum/reagent/toxin/sodium_thiopental
-/mob/living/simple_animal/bot/medbot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/medbot/update_icon_state()
. = ..()
- cut_overlays()
- if(skin)
- add_overlay("medskin_[skin]")
if(!on)
icon_state = "medibot0"
return
@@ -110,6 +107,11 @@
else
icon_state = "medibot1"
+/mob/living/simple_animal/bot/medbot/update_overlays()
+ . = ..()
+ if(skin)
+ . += "medskin_[skin]"
+
/mob/living/simple_animal/bot/medbot/Initialize(mapload, new_skin)
. = ..()
var/datum/job/doctor/J = new /datum/job/doctor
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 6d79cced7647..c9aa2c2700d5 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -124,18 +124,20 @@
flick("mulebot-emagged", src)
playsound(src, "sparks", 100, 0)
-/mob/living/simple_animal/bot/mulebot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/mulebot/update_icon_state()
. = ..()
if(open)
icon_state="mulebot-hatch"
else
icon_state = "mulebot[wires.is_cut(WIRE_AVOIDANCE)]"
- cut_overlays()
+
+/mob/living/simple_animal/bot/mulebot/update_overlays()
+ . = ..()
if(load && !ismob(load))//buckling handles the mob offsets
load.pixel_y = initial(load.pixel_y) + 9
if(load.layer < layer)
load.layer = layer + 0.01
- add_overlay(load)
+ . += load
/mob/living/simple_animal/bot/mulebot/ex_act(severity)
unload(0)
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index 64d869412897..c92b01854abf 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -83,11 +83,10 @@
if(prob(5))
russian = TRUE // imported from Russia
-/mob/living/simple_animal/bot/secbot/update_icon(updates=ALL)
+/mob/living/simple_animal/bot/secbot/update_icon_state()
. = ..()
if(mode == BOT_HUNT)
icon_state = "[initial(icon_state)]-c"
- return
/mob/living/simple_animal/bot/secbot/turn_off()
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
index b4fc54249ac2..a276f50f18a7 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
@@ -131,7 +131,7 @@
if(!QDELETED(src) && stat != DEAD)
death()
-/mob/living/simple_animal/spiderbot/update_icon(updates=ALL)
+/mob/living/simple_animal/spiderbot/update_icon_state()
. = ..()
if(mmi)
if(istype(mmi, /obj/item/mmi/posibrain))
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index 96773a5aae98..1c43b1b77d97 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -300,10 +300,6 @@ Difficulty: Very Hard
var/list/stored_items = list()
var/list/blacklist = list()
-/obj/machinery/smartfridge/black_box/update_icon(updates=ALL)
- . = ..()
- return
-
/obj/machinery/smartfridge/black_box/accept_check(obj/item/O)
if(!istype(O))
return FALSE
@@ -313,6 +309,7 @@ Difficulty: Very Hard
return TRUE
/obj/machinery/smartfridge/black_box/Initialize(mapload)
+ AddElement(/datum/element/update_icon_blocker)
. = ..()
var/static/obj/machinery/smartfridge/black_box/current
if(current && current != src)
diff --git a/code/modules/modular_computers/computers/item/tablet/tablet.dm b/code/modules/modular_computers/computers/item/tablet/tablet.dm
index 83fda287c284..f372b776d531 100644
--- a/code/modules/modular_computers/computers/item/tablet/tablet.dm
+++ b/code/modules/modular_computers/computers/item/tablet/tablet.dm
@@ -60,7 +60,7 @@
else
return ..()
-/obj/item/modular_computer/tablet/update_icon(updates=ALL)
+/obj/item/modular_computer/tablet/update_icon_state()
. = ..()
if (!isnull(variants))
if(!finish_color)
diff --git a/code/modules/paperwork/carbonpaper.dm b/code/modules/paperwork/carbonpaper.dm
index 90ee059e81d3..4ef391075ba4 100644
--- a/code/modules/paperwork/carbonpaper.dm
+++ b/code/modules/paperwork/carbonpaper.dm
@@ -7,7 +7,7 @@
var/iscopy = FALSE
-/obj/item/paper/carbon/update_icon(updates=ALL)
+/obj/item/paper/carbon/update_icon_state()
. = ..()
if(iscopy)
if(written.len)
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 4e33a34ad1d7..e29c311c70f6 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -25,9 +25,8 @@
QDEL_NULL(toppaper) //let movable/Destroy handle the rest
return ..()
-/obj/item/clipboard/update_icon(updates=ALL)
+/obj/item/clipboard/update_overlays()
. = ..()
- cut_overlays()
var/list/dat = list()
if(toppaper)
dat += toppaper.icon_state
@@ -35,7 +34,7 @@
if(haspen)
dat += "clipboard_pen"
dat += "clipboard_over"
- add_overlay(dat)
+ . += dat
/obj/item/clipboard/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index ce787e343c1e..bf9c5688377b 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -60,12 +60,11 @@
icon_state = "coloredcabinet_frame"
name = "colored cabinet"
-/obj/structure/filingcabinet/colored/update_icon(updates=ALL)
+/obj/structure/filingcabinet/colored/update_overlays()
. = ..()
- cut_overlays()
var/mutable_appearance/cab = mutable_appearance(icon, "coloredcabinet_trim")
cab.color = colour
- add_overlay(cab)
+ . += cab
/obj/structure/filingcabinet/Initialize(mapload)
. = ..()
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 0ee702fa4e55..ae42022663ac 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -28,11 +28,10 @@
icon_state = "folder_white"
-/obj/item/folder/update_icon(updates=ALL)
+/obj/item/folder/update_overlays()
. = ..()
- cut_overlays()
if(contents.len)
- add_overlay("folder_paper")
+ . += "folder_paper"
/obj/item/folder/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/paperwork/inspector_booth.dm b/code/modules/paperwork/inspector_booth.dm
index 5f48396efb58..6c553e82c9fa 100644
--- a/code/modules/paperwork/inspector_booth.dm
+++ b/code/modules/paperwork/inspector_booth.dm
@@ -57,7 +57,7 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/machinery/inspector_booth/update_icon(updates=ALL)
+/obj/machinery/inspector_booth/update_icon_state()
. = ..()
if (stat & NOPOWER)
icon_state = "booth_off"
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index af9533845905..5746bdac9e60 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -79,8 +79,8 @@
update_appearance(UPDATE_ICON)
-/obj/item/paper/update_icon(updates=ALL)
-
+/obj/item/paper/update_icon_state()
+ . = ..()
if(resistance_flags & ON_FIRE)
icon_state = "paper_onfire"
return
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 3c95e72e33d5..c9a1d7e0e80c 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -205,9 +205,8 @@
/obj/item/paper_bundle/AltClick(mob/living/user)
unbundle()
-/obj/item/paper_bundle/update_icon(updates=ALL)
+/obj/item/paper_bundle/update_overlays()
. = ..()
- cut_overlays()
var/obj/item/paper/P = src[1]
icon_state = P.icon_state
overlays = P.overlays
@@ -229,12 +228,12 @@
var/datum/picture/picture2 = PR.picture
img = picture2.picture_icon
photo = 1
- add_overlay(img)
+ . += img
if(i>1)
desc = "[i] papers clipped to each other."
else
desc = "A single sheet of paper."
if(photo)
desc += "\nThere is a photo attached to it."
- add_overlay(image('icons/obj/bureaucracy.dmi', icon_state= "clip"))
+ . += image('icons/obj/bureaucracy.dmi', icon_state= "clip")
return
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index 8fc213ddfa14..6479e517e712 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -33,14 +33,14 @@
playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1)
return (BRUTELOSS)
-
-/obj/item/papercutter/update_icon(updates=ALL)
+/obj/item/papercutter/update_icon_state()
. = ..()
- cut_overlays()
icon_state = (storedcutter ? "[initial(icon_state)]-cutter" : "[initial(icon_state)]")
- if(storedpaper)
- add_overlay("paper")
+/obj/item/papercutter/update_overlays()
+ . = ..()
+ if(storedpaper)
+ . += "paper"
/obj/item/papercutter/attackby(obj/item/P, mob/user, params)
if(istype(P, /obj/item/paper) && !storedpaper)
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index fa60d1cbb2be..5224bf678d83 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -131,15 +131,17 @@
else
. += "It doesn't contain anything."
-/obj/item/paper_bin/update_icon(updates=ALL)
+/obj/item/paper_bin/update_icon_state()
. = ..()
if(total_paper < 1)
icon_state = "paper_bin0"
else
icon_state = "[initial(icon_state)]"
- cut_overlays()
+
+/obj/item/paper_bin/update_overlays()
+ . = ..()
if(bin_pen)
- add_overlay(mutable_appearance(bin_pen.icon, bin_pen.icon_state))
+ . += mutable_appearance(bin_pen.icon, bin_pen.icon_state)
/obj/item/paper_bin/construction
name = "construction paper bin"
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 68955ea225b9..84115fc68f1f 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -52,13 +52,12 @@
sleep(1 SECONDS)
return (BRUTELOSS)
-/obj/item/paperplane/update_icon(updates=ALL)
+/obj/item/paperplane/update_overlays()
. = ..()
- cut_overlays()
var/list/stamped = internalPaper.stamped
if(stamped)
for(var/S in stamped)
- add_overlay("paperplane_[S]")
+ . += "paperplane_[S]"
/obj/item/paperplane/attack_self(mob/user)
to_chat(user, span_notice("You unfold [src]."))
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 7e1334feb002..d176edb1d1c0 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -118,20 +118,21 @@
/obj/machinery/papershredder/AltClick(mob/living/user)
emptypaper()
-/obj/machinery/papershredder/update_icon(updates=ALL)
+/obj/machinery/papershredder/update_icon_state()
. = ..()
- if(paperamount == 0)
- icon_state = "papershredder0"
- if(paperamount == 1||paperamount == 2)
- icon_state = "papershredder1"
- if(paperamount == 3||paperamount == 4)
- icon_state = "papershredder2"
- if(paperamount == 5||paperamount == 6)
- icon_state = "papershredder3"
- if(paperamount == 7||paperamount == 8)
- icon_state = "papershredder4"
- if(paperamount == 9||paperamount == 10)
- icon_state = "papershredder5"
+ switch(paperamount) //cant we just use round(paperamount, 2)
+ if(0)
+ icon_state = "papershredder0"
+ if(1, 2)
+ icon_state = "papershredder1"
+ if(3, 4)
+ icon_state = "papershredder2"
+ if(5, 6)
+ icon_state = "papershredder3"
+ if(7, 8)
+ icon_state = "papershredder4"
+ if(9, 10)
+ icon_state = "papershredder5"
/obj/item/shreddedpaper
name = "shredded paper"
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 081c0f11d821..7c77eaaee889 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -20,16 +20,18 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/machinery/ticket_machine/update_icon(updates=ALL)
+/obj/machinery/ticket_machine/update_overlays()
. = ..()
var/Temp = screenNum //This whole thing breaks down a 3 digit number into 3 seperate digits, aka "69" becomes "0","6" and "9"
var/Digit1 = round(Temp%10)//The remainder of any number/10 is always that number's rightmost digit
var/Digit2 = round(((Temp-Digit1)*0.1)%10) //Same idea, but divided by ten, to find the middle digit
var/Digit3 = round(((Temp-Digit1-Digit2*10)*0.01)%10)//Same as above. Despite the weird notation these will only ever output integers, don't worry.
- cut_overlays()//this clears the overlays, so they don't start stacking on each other
- add_overlay(image('icons/obj/bureaucracy_overlays.dmi',icon_state = "machine_first_[Digit1]"))
- add_overlay(image('icons/obj/bureaucracy_overlays.dmi',icon_state = "machine_second_[Digit2]"))
- add_overlay(image('icons/obj/bureaucracy_overlays.dmi',icon_state = "machine_third_[Digit3]"))
+ . += image('icons/obj/bureaucracy_overlays.dmi',icon_state = "machine_first_[Digit1]")
+ . += image('icons/obj/bureaucracy_overlays.dmi',icon_state = "machine_second_[Digit2]")
+ . += image('icons/obj/bureaucracy_overlays.dmi',icon_state = "machine_third_[Digit3]")
+
+/obj/machinery/ticket_machine/update_icon_state()
+ . = ..()
switch(currentNum) //Gives you an idea of how many tickets are left
if(0 to 200)
icon_state = "ticketmachine_100"
@@ -145,16 +147,15 @@
var/obj/machinery/ticket_machine/source
var/ticket_number
-/obj/item/ticket_machine_ticket/update_icon(updates=ALL)
+/obj/item/ticket_machine_ticket/update_overlays()
. = ..()
var/Temp = ticket_number //this stuff is a repeat from the other update_icon, but with new image files and the like
var/Digit1 = round(Temp%10)
var/Digit2 = round(((Temp-Digit1)*0.1)%10)
var/Digit3 = round(((Temp-Digit1-Digit2*10)*0.01)%10)
- cut_overlays()//this clears the overlays, so they don't start stacking on each other
- add_overlay(image('icons/obj/bureaucracy_overlays.dmi',icon_state = "ticket_first_[Digit1]"))
- add_overlay(image('icons/obj/bureaucracy_overlays.dmi',icon_state = "ticket_second_[Digit2]"))
- add_overlay(image('icons/obj/bureaucracy_overlays.dmi',icon_state = "ticket_third_[Digit3]"))
+ . += image('icons/obj/bureaucracy_overlays.dmi',icon_state = "ticket_first_[Digit1]")
+ . += image('icons/obj/bureaucracy_overlays.dmi',icon_state = "ticket_second_[Digit2]")
+ . += image('icons/obj/bureaucracy_overlays.dmi',icon_state = "ticket_third_[Digit3]")
if(resistance_flags & ON_FIRE)
icon_state = "ticket_onfire"
diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm
index 366a074bb070..69f74f858e37 100644
--- a/code/modules/photography/photos/frame.dm
+++ b/code/modules/photography/photos/frame.dm
@@ -44,11 +44,10 @@
else
return ..()
-/obj/item/wallframe/picture/update_icon(updates=ALL)
+/obj/item/wallframe/picture/update_overlays()
. = ..()
- cut_overlays()
if(displayed)
- add_overlay(image(displayed))
+ . += image(displayed)
/obj/item/wallframe/picture/after_attach(obj/O)
..()
@@ -149,11 +148,10 @@
if(framed)
framed.show(user)
-/obj/structure/sign/picture_frame/update_icon(updates=ALL)
+/obj/structure/sign/picture_frame/update_overlays()
. = ..()
- cut_overlays()
if(framed)
- add_overlay(image(framed))
+ . += image(framed)
/obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
diff --git a/code/modules/plumbing/ducts.dm b/code/modules/plumbing/ducts.dm
index 2a3c099c9f8a..94d793dc5bde 100644
--- a/code/modules/plumbing/ducts.dm
+++ b/code/modules/plumbing/ducts.dm
@@ -160,7 +160,8 @@ All the important duct code:
adjacents += D
return adjacents
-/obj/machinery/duct/update_icon(updates=ALL) //setting connects isnt a parameter because sometimes we make more than one change, overwrite it completely or just add it to the bitfield
+/obj/machinery/duct/update_icon_state() //setting connects isnt a parameter because sometimes we make more than one change, overwrite it completely or just add it to the bitfield
+ . = ..()
var/temp_icon = initial(icon_state)
for(var/D in GLOB.cardinals)
if(D & connects)
@@ -262,7 +263,7 @@ All the important duct code:
dumb = TRUE
-/obj/machinery/duct/multilayered/update_icon(updates=ALL)
+/obj/machinery/duct/multilayered/update_icon_state()
. = ..()
icon_state = initial(icon_state)
if((connects & NORTH) || (connects & SOUTH))
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index f05e5bcabc19..ce635ab77d2c 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -563,12 +563,17 @@ By design, d1 is the smallest direction and d2 is the highest
return
return ..()
-/obj/item/stack/cable_coil/update_icon(updates=ALL)
+/obj/item/stack/cable_coil/update_icon_state()
. = ..()
if(novariants)
return
icon_state = "[initial(item_state)][amount < 3 ? amount : ""]"
item_state = "coil_[cable_color]"
+
+/obj/item/stack/cable_coil/update_name(updates)
+ . = ..()
+ if(novariants)
+ return
name = "cable [amount < 3 ? "piece" : "coil"]"
/obj/item/stack/cable_coil/attack_hand(mob/user)
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 5861cbfc158e..4bb016a68bca 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -96,17 +96,17 @@
else
return PROCESS_KILL
-/obj/item/stock_parts/cell/update_icon(updates=ALL)
+/obj/item/stock_parts/cell/update_overlays()
. = ..()
cut_overlays()
if(grown_battery)
- add_overlay(image('icons/obj/power.dmi',"grown_wires"))
+ . += image('icons/obj/power.dmi',"grown_wires")
if(charge < 0.01)
return
else if(charge/maxcharge >=0.995)
- add_overlay("cell-o2")
+ . += "cell-o2"
else
- add_overlay("cell-o1")
+ . += "cell-o1"
/obj/item/stock_parts/cell/proc/percent() // return % charge of cell
return 100*charge/maxcharge
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 0ede6cc0d48c..5fdb7e9646cf 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -31,30 +31,32 @@
SSair.atmos_machinery -= src
return ..()
-/obj/machinery/power/generator/update_icon(updates=ALL)
+/obj/machinery/power/generator/update_icon_state()
. = ..()
- cut_overlays()
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
-
if(stat & (BROKEN))
icon_state = "teg-broken"
return
- if(hot_circ && cold_circ)
- icon_state = "teg-assembled"
- else
+ if(!hot_circ || !cold_circ)
icon_state = "teg-unassembled"
+ return
+ icon_state = "teg-assembled"
+
+/obj/machinery/power/generator/update_overlays()
+ . = ..()
+ SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
+ if(stat & (BROKEN))
+ return
+
+ if(!hot_circ || !cold_circ)
if(panel_open)
- add_overlay("teg-panel")
+ . += "teg-panel"
return
-
if(!powernet)
- add_overlay("teg-nogrid")
- if(stat & (NOPOWER))
- return
- else
- var/L = min(round(lastgenlev/100000),11)
- if(L != 0)
- SSvis_overlays.add_vis_overlay(src, icon, "teg-op[L]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
+ . += "teg-nogrid"
+
+ var/L = min(round(lastgenlev/100000), 11)
+ if(L != 0)
+ SSvis_overlays.add_vis_overlay(src, icon, "teg-op[L]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
#define GENRATE 800 // generator output coefficient from Q
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index 1187b3e45c18..ef18ec4231a3 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -43,7 +43,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(tesla_flags & TESLA_MACHINE_EXPLOSIVE)
qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over
-/obj/machinery/gravity_generator/update_icon(updates=ALL)
+/obj/machinery/gravity_generator/update_icon_state()
. = ..()
icon_state = "[get_status()]_[sprite_number]"
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 1326d1652960..95601ccc3b3a 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -53,7 +53,7 @@
update_appearance(UPDATE_ICON)
soundloop.start()
-/obj/machinery/power/port_gen/update_icon(updates=ALL)
+/obj/machinery/power/port_gen/update_icon_state()
. = ..()
icon_state = "[base_icon]_[active]"
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index d957f631aa5f..0e3bc6ba00d4 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -301,15 +301,14 @@
if(loaded_tank && active && collectable_radiation && pulse_strength > RAD_COLLECTOR_EFFICIENCY)
stored_power += (pulse_strength-RAD_COLLECTOR_EFFICIENCY)*RAD_COLLECTOR_COEFFICIENT*(machine_tier+power_bonus)
-/obj/machinery/power/rad_collector/update_icon(updates=ALL)
+/obj/machinery/power/rad_collector/update_overlays()
. = ..()
- cut_overlays()
if(loaded_tank)
- add_overlay("ptank")
+ . += "ptank"
if(stat & (NOPOWER|BROKEN))
return
if(active)
- add_overlay("on")
+ . += "on"
//honestly this should be balanced
/obj/machinery/power/rad_collector/RefreshParts()
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 5103c8778bfa..645516266611 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -120,7 +120,7 @@
QDEL_NULL(sparks)
return ..()
-/obj/machinery/power/emitter/update_icon(updates=ALL)
+/obj/machinery/power/emitter/update_icon_state()
. = ..()
if(active && powernet)
icon_state = avail(active_power_usage) ? icon_state_on : icon_state_underpowered
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index ac51fc4f09bb..1e08b665a030 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -44,15 +44,14 @@ field_generator power level display
var/list/obj/machinery/field/generator/connected_gens
var/clean_up = 0
-/obj/machinery/field/generator/update_icon(updates=ALL)
+/obj/machinery/field/generator/update_overlays()
. = ..()
- cut_overlays()
if(warming_up)
- add_overlay("+a[warming_up]")
+ . += "+a[warming_up]"
if(LAZYLEN(fields))
- add_overlay("+on")
+ . += "+on"
if(power_level)
- add_overlay("+p[power_level]")
+ . += "+p[power_level]"
/obj/machinery/field/generator/Initialize(mapload)
diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm
index 162f1775d5e6..79c67b3cf459 100644
--- a/code/modules/power/singularity/generator.dm
+++ b/code/modules/power/singularity/generator.dm
@@ -22,16 +22,19 @@
default_unfasten_wrench(user, W, 0)
else
return ..()
+
/obj/machinery/the_singularitygen/update_icon(updates=ALL, power)
- if(power)
- if(power>150)
- animate(src, icon_state = "[initial(icon_state)]_3", 10)
- else if(power>100)
- animate(src, icon_state = "[initial(icon_state)]_2", 10)
- else if(power>50)
- animate(src, icon_state = "[initial(icon_state)]_1", 10)
- else
- animate(src, icon_state = initial(icon_state), 10)
+ . = ..()
+ if(!power)
+ return
+ if(power>150)
+ animate(src, icon_state = "[initial(icon_state)]_3", 10)
+ else if(power>100)
+ animate(src, icon_state = "[initial(icon_state)]_2", 10)
+ else if(power>50)
+ animate(src, icon_state = "[initial(icon_state)]_1", 10)
+ else
+ animate(src, icon_state = initial(icon_state), 10)
/obj/machinery/the_singularitygen/process(delta_time)
if(energy > 0)
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 87ea3f5140f4..37674f5e5a38 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -121,7 +121,7 @@
investigate_log("was moved whilst active; it powered down.", INVESTIGATE_SINGULO)
-/obj/structure/particle_accelerator/update_icon(updates=ALL)
+/obj/structure/particle_accelerator/update_icon_state()
. = ..()
switch(construction_state)
if(PA_CONSTRUCTION_UNSECURED,PA_CONSTRUCTION_UNWIRED)
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index 4bc467ac7b80..d023e9a83afe 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -62,10 +62,10 @@
active = FALSE
connected_parts.Cut()
-/obj/machinery/particle_accelerator/control_box/update_icon(updates=ALL)
+/obj/machinery/particle_accelerator/control_box/update_icon_state()
. = ..()
if(active)
- icon_state = "control_boxp[strength]" //yogs- fix sprite not updating (note that /tg/ PA power 2 sprite is incomplete)
+ icon_state = "control_boxp[strength]" //yogs- fix sprite not updating (note that /tg/ PA power 2 sprite is incomplete)
else
if(use_power)
if(assembled)
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index db39cc10dfc2..ba8c60ddc4ee 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -205,29 +205,26 @@
obj_break()
-/obj/machinery/power/smes/update_icon(updates=ALL)
+/obj/machinery/power/smes/update_overlays()
. = ..()
- cut_overlays()
if(stat & BROKEN)
return
-
if(panel_open)
return
if(outputting)
- add_overlay("smes-out1")
+ . += "smes-out1"
else
- add_overlay("smes-out0")
+ . += "smes-out0"
if(inputting)
- add_overlay("smes-inp1")
- else
- if(input_attempt)
- add_overlay("smes-inp0")
+ . += "smes-inp1"
+ else if(input_attempt)
+ . += "smes-inp0"
var/clevel = chargedisplay()
- if(clevel>0)
- add_overlay("smes-og[clevel]")
+ if(clevel > 0)
+ . += "smes-og[clevel]"
/obj/machinery/power/smes/proc/chargedisplay()
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 954026a7986b..1e754aca78f3 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -113,14 +113,13 @@
new /obj/item/shard(src.loc)
qdel(src)
-/obj/machinery/power/solar/update_icon(updates=ALL)
+/obj/machinery/power/solar/update_overlays()
. = ..()
- cut_overlays()
var/matrix/turner = matrix()
turner.Turn(azimuth_current)
panelstructure.transform = turner
paneloverlay.transform = turner
- add_overlay(list(paneloverlay, panelstructure))
+ . += list(paneloverlay, panelstructure)
/obj/machinery/power/solar/proc/queue_turn(azimuth)
needs_to_turn = TRUE
@@ -372,17 +371,16 @@
if(!T.control) //i.e unconnected
T.set_control(src)
-/obj/machinery/power/solar_control/update_icon(updates=ALL)
+/obj/machinery/power/solar_control/update_overlays()
. = ..()
- cut_overlays()
if(stat & NOPOWER)
- add_overlay("[icon_keyboard]_off")
+ . += "[icon_keyboard]_off"
return
- add_overlay(icon_keyboard)
+ . += icon_keyboard
if(stat & BROKEN)
- add_overlay("[icon_state]_broken")
+ . += "[icon_state]_broken"
else
- add_overlay(icon_screen)
+ . += icon_screen
/obj/machinery/power/solar_control/ui_interact(mob/user, datum/tgui/ui)
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index a3fe5743d607..bc64d3c9fa66 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -35,9 +35,12 @@
setDir(pick(GLOB.alldirs))
update_appearance(UPDATE_ICON)
-/obj/item/ammo_casing/update_icon(updates=ALL)
+/obj/item/ammo_casing/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][BB && !CHECK_BITFIELD(casing_flags, CASINGFLAG_NO_LIVE_SPRITE) ? "-live" : ""]"
+
+/obj/item/ammo_casing/update_desc(updates=ALL)
+ . = ..()
desc = "[initial(desc)][!BB && !CHECK_BITFIELD(casing_flags, CASINGFLAG_NO_LIVE_SPRITE) ? " This one is spent." : ""]"
//proc to magically refill a casing with a new projectile
diff --git a/code/modules/projectiles/ammunition/reusable/arrow.dm b/code/modules/projectiles/ammunition/reusable/arrow.dm
index 20af263e22e2..ed6259c15279 100644
--- a/code/modules/projectiles/ammunition/reusable/arrow.dm
+++ b/code/modules/projectiles/ammunition/reusable/arrow.dm
@@ -40,21 +40,20 @@
if(LAZYLEN(new_parts))
CheckParts(new_parts)
-/obj/item/ammo_casing/reusable/arrow/update_icon(force_update)
+/obj/item/ammo_casing/reusable/arrow/update_overlays()
..()
- cut_overlays()
if(istype(explosive))
- add_overlay(mutable_appearance(icon, "arrow_explosive[explosive.active ? "_active" : ""]"), TRUE)
+ . += mutable_appearance(icon, "arrow_explosive[explosive.active ? "_active" : ""]")
if(istype(bola))
- add_overlay(mutable_appearance(icon, "arrow_bola"), TRUE)
+ . += mutable_appearance(icon, "arrow_bola")
if(istype(syringe))
- add_overlay(mutable_appearance(icon, "arrow_syringe"), TRUE)
+ . += mutable_appearance(icon, "arrow_syringe")
if(syringe.reagents && syringe.reagents.total_volume)
var/image/filling_overlay = mutable_appearance(icon, "arrow_syringe[clamp(round((syringe.reagents.total_volume / syringe.volume * 15),5), 1, 15)]")
filling_overlay.color = mix_color_from_reagents(syringe.reagents.reagent_list)
- add_overlay(filling_overlay)
+ . += filling_overlay
if(flaming)
- add_overlay(mutable_appearance(icon, "arrow_fire"), TRUE)
+ . += mutable_appearance(icon, "arrow_fire")
/obj/item/ammo_casing/reusable/arrow/examine(mob/user)
. = ..()
@@ -442,10 +441,10 @@
update_appearance(UPDATE_ICON)
..()
-/obj/item/ammo_casing/reusable/arrow/singulo/update_icon(force_update)
- ..()
+/obj/item/ammo_casing/reusable/arrow/singulo/update_overlays()
+ . = ..()
if(istype(shard))
- add_overlay(mutable_appearance(icon, "[icon_state]_[shard.icon_state]"), TRUE)
+ . += mutable_appearance(icon, "[icon_state]_[shard.icon_state]")
/// Handles the special effect of the singulo arrow, called by the projectile on hit
/obj/item/ammo_casing/reusable/arrow/singulo/proc/shard_effect()
diff --git a/code/modules/projectiles/ammunition/reusable/foam.dm b/code/modules/projectiles/ammunition/reusable/foam.dm
index 1da10cfbfa7d..7217f9ffb3e2 100644
--- a/code/modules/projectiles/ammunition/reusable/foam.dm
+++ b/code/modules/projectiles/ammunition/reusable/foam.dm
@@ -10,7 +10,7 @@
var/modified = FALSE
var/obj/item/pen/pen
-/obj/item/ammo_casing/reusable/foam_dart/update_icon(updates=ALL)
+/obj/item/ammo_casing/reusable/foam_dart/update_icon_state()
. = ..()
if (modified)
icon_state = "foamdart_empty"
diff --git a/code/modules/projectiles/attachments/_attachment.dm b/code/modules/projectiles/attachments/_attachment.dm
index 9f96b0f2b493..af3387b7eba2 100644
--- a/code/modules/projectiles/attachments/_attachment.dm
+++ b/code/modules/projectiles/attachments/_attachment.dm
@@ -35,7 +35,7 @@
/// See code/modules/projectiles/attachments/laser_sight.dm for example.
var/list/actions_list = list()
-/obj/item/attachment/update_icon(updates=ALL)
+/obj/item/attachment/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][is_on ? "_on" : ""]"
attached_gun?.update_attachments()
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index 25bc1eed9047..043487930dd0 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -170,6 +170,13 @@
update_appearance(UPDATE_ICON)
/obj/item/ammo_box/update_icon(updates=ALL)
+ . = ..()
+ for(var/material in bullet_cost)
+ var/material_amount = bullet_cost[material]
+ material_amount = (material_amount*stored_ammo.len) + base_cost[material]
+ materials[material] = material_amount
+
+/obj/item/ammo_box/update_icon_state()
. = ..()
var/rounds_left = stored_ammo.len
switch(multiple_sprites)
@@ -177,11 +184,10 @@
icon_state = "[initial(icon_state)]-[rounds_left]"
if(AMMO_BOX_FULL_EMPTY)
icon_state = "[initial(icon_state)]-[rounds_left ? "[max_ammo]" : "0"]"
+
+/obj/item/ammo_box/update_desc(updates=ALL)
+ . = ..()
desc = "[initial(desc)] There [(rounds_left == 1) ? "is" : "are"] [rounds_left] round\s left!"
- for (var/material in bullet_cost)
- var/material_amount = bullet_cost[material]
- material_amount = (material_amount*stored_ammo.len) + base_cost[material]
- materials[material] = material_amount
///Count of number of bullets in the magazine
/obj/item/ammo_box/magazine/proc/ammo_count(countempties = TRUE)
diff --git a/code/modules/projectiles/boxes_magazines/external/grenade.dm b/code/modules/projectiles/boxes_magazines/external/grenade.dm
index afb3043a122e..f669a80805a9 100644
--- a/code/modules/projectiles/boxes_magazines/external/grenade.dm
+++ b/code/modules/projectiles/boxes_magazines/external/grenade.dm
@@ -5,7 +5,7 @@
caliber = "75"
max_ammo = 8
-/obj/item/ammo_box/magazine/m75/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m75/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "75-8"
diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm
index 9a9cef3e80e4..f7a2879a9412 100644
--- a/code/modules/projectiles/boxes_magazines/external/lmg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm
@@ -32,6 +32,6 @@
ammo_type = /obj/item/ammo_casing/mm712x82/inc
sprite_designation = "I"
-/obj/item/ammo_box/magazine/mm712x82/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/mm712x82/update_icon_state()
. = ..()
icon_state = "a762[sprite_designation]-[round(ammo_count(),10)]"
diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm
index 8cf74d43c8bc..42d5651532f3 100644
--- a/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -64,7 +64,7 @@
caliber = ".45"
max_ammo = 8
-/obj/item/ammo_box/magazine/m45/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m45/update_icon_state()
. = ..()
if (ammo_count() >= 8)
icon_state = "45-8"
@@ -81,7 +81,7 @@
caliber = "9mm"
max_ammo = 15
-/obj/item/ammo_box/magazine/pistolm9mm/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/pistolm9mm/update_icon_state()
. = ..()
icon_state = "9x19p-[ammo_count() ? "10" : "0"]"
@@ -95,7 +95,7 @@
caliber = ".50ae"
max_ammo = 7
-/obj/item/ammo_box/magazine/m50/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m50/update_icon_state()
. = ..()
if (ammo_count() >= 7)
icon_state = "50ae-7"
@@ -112,7 +112,7 @@
caliber = "38"
max_ammo = 8
-/obj/item/ammo_box/magazine/v38/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/v38/update_icon_state()
. = ..()
if (ammo_count() >= 8)
icon_state = "v38[sprite_designation]-8"
diff --git a/code/modules/projectiles/boxes_magazines/external/rechargable.dm b/code/modules/projectiles/boxes_magazines/external/rechargable.dm
index a7760f29dcc0..41ebe99338fe 100644
--- a/code/modules/projectiles/boxes_magazines/external/rechargable.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rechargable.dm
@@ -8,16 +8,18 @@
caliber = LASER
max_ammo = 20
-/obj/item/ammo_box/magazine/recharge/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/recharge/update_desc(updates=ALL)
. = ..()
desc = "[initial(desc)] It has [stored_ammo.len] shot\s left."
- cut_overlays()
+
+/obj/item/ammo_box/magazine/recharge/update_overlays()
+ . = ..()
var/cur_ammo = ammo_count()
if(cur_ammo)
if(cur_ammo >= max_ammo)
- add_overlay("[icon_state]_o_full")
+ . += "[icon_state]_o_full"
else
- add_overlay("[icon_state]_o_mid")
+ . += "[icon_state]_o_mid"
/obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets"
@@ -28,10 +30,9 @@
icon = 'icons/obj/guns/grimdark.dmi'
icon_state = "lasgunmag"
desc = "A rechargeable, detachable battery that serves as a magazine for las weaponry."
-
-/obj/item/ammo_box/magazine/recharge/lasgun/update_icon(updates=ALL)
+
+/obj/item/ammo_box/magazine/recharge/lasgun/update_icon_state()
. = ..()
- desc = "[initial(desc)] It has [stored_ammo.len] shot\s left."
if(ammo_count())
icon_state = "[initial(icon_state)]"
else
@@ -135,15 +136,14 @@
icon_state = "powerpack_small-l"
max_ammo = 8
-/obj/item/ammo_box/magazine/recharge/ntusp/laser/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/recharge/ntusp/laser/update_overlays()
. = ..()
- cut_overlays()
var/cur_ammo = ammo_count()
if(cur_ammo)
if(cur_ammo >= max_ammo)
- add_overlay("powerpack_small_o_full")
+ . += "powerpack_small_o_full"
else
- add_overlay("powerpack_small_o_mid")
+ . += "powerpack_small_o_mid"
/obj/item/ammo_box/magazine/recharge/ntusp/laser/empty
start_empty = TRUE
diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm
index c92d7bb0bda8..d8ab658bc0a0 100644
--- a/code/modules/projectiles/boxes_magazines/external/rifle.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm
@@ -8,7 +8,7 @@
caliber = ".45"
max_ammo = 10
-/obj/item/ammo_box/magazine/m10mm/rifle/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m10mm/rifle/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "75-8"
@@ -25,7 +25,7 @@
caliber = "a556"
max_ammo = 30
-/obj/item/ammo_box/magazine/m556/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m556/update_icon_state()
. = ..()
icon_state = "5.56m[sprite_designation]-[round(ammo_count(),5)]"
@@ -55,7 +55,7 @@
caliber = "a556"
max_ammo = 30
-/obj/item/ammo_box/magazine/r556/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/r556/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "arg556[sprite_designation]"
@@ -96,7 +96,7 @@
caliber = "m308"
max_ammo = 15
-/obj/item/ammo_box/magazine/m308/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m308/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "m308[sprite_designation]"
@@ -130,7 +130,7 @@
caliber = "a762"
max_ammo = 11
-/obj/item/ammo_box/magazine/ks762/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/ks762/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "ks762[sprite_designation]"
diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
index 188f37e76d7c..a7445adb6ae6 100644
--- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm
+++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
@@ -10,7 +10,7 @@
max_ammo = 8
sprite_designation = "b"
-/obj/item/ammo_box/magazine/m12g/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/m12g/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "m12g[sprite_designation]-8"
diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm
index 258e2fdd4508..4255afba672a 100644
--- a/code/modules/projectiles/boxes_magazines/external/smg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/smg.dm
@@ -8,7 +8,7 @@
caliber = "4.6x30mm"
max_ammo = 20
-/obj/item/ammo_box/magazine/wt550m9/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/wt550m9/update_icon_state()
. = ..()
..()
switch(ammo_count())
@@ -76,7 +76,7 @@
sprite_designation = "B"
max_ammo = 10
-/obj/item/ammo_box/magazine/wt550m9/wt_airburst/update_icon(updates=ALL) // Snowflake code snowflake code
+/obj/item/ammo_box/magazine/wt550m9/wt_airburst/update_icon_state() // Snowflake code snowflake code //gun code in general be like
..()
switch(ammo_count())
if(9 to 11) //Considers the extra bullet in the chamber
@@ -102,7 +102,7 @@
caliber = "9mm"
max_ammo = 32
-/obj/item/ammo_box/magazine/uzim9mm/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/uzim9mm/update_icon_state()
. = ..()
icon_state = "uzi9mm-[round(ammo_count(),4)]"
@@ -116,7 +116,7 @@
caliber = "9mm"
max_ammo = 21
-/obj/item/ammo_box/magazine/smgm9mm/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/smgm9mm/update_icon_state()
. = ..()
icon_state = "smg9mm[sprite_designation]-[ammo_count() ? "42" : "0"]"
@@ -146,7 +146,7 @@
caliber = ".45"
max_ammo = 24
-/obj/item/ammo_box/magazine/smgm45/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/smgm45/update_icon_state()
. = ..()
icon_state = "c20r45[sprite_designation]-[round(ammo_count(),2)]"
diff --git a/code/modules/projectiles/boxes_magazines/external/sniper.dm b/code/modules/projectiles/boxes_magazines/external/sniper.dm
index 82a20aca5fdf..3bdaf440940d 100644
--- a/code/modules/projectiles/boxes_magazines/external/sniper.dm
+++ b/code/modules/projectiles/boxes_magazines/external/sniper.dm
@@ -9,7 +9,7 @@
max_ammo = 6
caliber = ".50bmg"
-/obj/item/ammo_box/magazine/sniper_rounds/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/sniper_rounds/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "[initial(icon_state)]-ammo"
diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm
index f6fb0b078a72..118f05bb51fd 100644
--- a/code/modules/projectiles/boxes_magazines/external/toy.dm
+++ b/code/modules/projectiles/boxes_magazines/external/toy.dm
@@ -9,7 +9,7 @@
ammo_type = /obj/item/ammo_casing/reusable/foam_dart
max_ammo = 20
-/obj/item/ammo_box/magazine/toy/smg/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/toy/smg/update_icon_state()
. = ..()
if(ammo_count())
icon_state = "smg9mm-42"
@@ -35,7 +35,7 @@
ammo_type = /obj/item/ammo_casing/reusable/foam_dart
max_ammo = 20
-/obj/item/ammo_box/magazine/toy/smgm45/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/toy/smgm45/update_icon_state()
. = ..()
icon_state = "c20r45-[round(ammo_count(),2)]"
@@ -50,7 +50,7 @@
ammo_type = /obj/item/ammo_casing/reusable/foam_dart
max_ammo = 50
-/obj/item/ammo_box/magazine/toy/m762/update_icon(updates=ALL)
+/obj/item/ammo_box/magazine/toy/m762/update_icon_state()
. = ..()
icon_state = "a762-[round(ammo_count(),10)]"
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 24fd47509c72..bff3ce2a8dea 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -188,32 +188,36 @@
update_appearance(UPDATE_ICON)
-/obj/item/gun/ballistic/update_icon(updates=ALL)
- . = ..()
- if (QDELETED(src))
+/obj/item/gun/ballistic/update_icon_state()
+ if(QDELETED(src))
return
+ . = ..()
if(current_skin)
icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]"
else
icon_state = "[initial(icon_state)][sawn_off ? "_sawn" : ""]"
- cut_overlays()
+
+/obj/item/gun/ballistic/update_overlays()
+ if(QDELETED(src))
+ return
+ . = ..()
if (bolt_type == BOLT_TYPE_LOCKING)
- add_overlay("[icon_state]_bolt[bolt_locked ? "_locked" : ""]")
+ . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]"
if (bolt_type == BOLT_TYPE_OPEN && bolt_locked)
- add_overlay("[icon_state]_bolt")
+ . += "[icon_state]_bolt"
if (suppressed)
- add_overlay("[icon_state]_[suppressed.icon_state]")
+ . += "[icon_state]_[suppressed.icon_state]"
if (enloudened)
- add_overlay("[icon_state]_[enloudened.icon_state]")
+ . += "[icon_state]_[enloudened.icon_state]"
if(!chambered && empty_indicator)
- add_overlay("[icon_state]_empty")
+ . += "[icon_state]_empty"
if (magazine)
if (special_mags)
- add_overlay("[icon_state]_mag_[initial(magazine.icon_state)]")
+ . += "[icon_state]_mag_[initial(magazine.icon_state)]"
if (!magazine.ammo_count())
- add_overlay("[icon_state]_mag_empty")
+ . += "[icon_state]_mag_empty"
else
- add_overlay("[icon_state]_mag")
+ . += "[icon_state]_mag"
var/capacity_number = 0
switch(get_ammo() / magazine.max_ammo)
if(0.2 to 0.39)
@@ -227,7 +231,7 @@
if(1.0)
capacity_number = 100
if (capacity_number)
- add_overlay("[icon_state]_mag_[capacity_number]")
+ . += "[icon_state]_mag_[capacity_number]"
/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE)
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index b9111b829bdf..33b7e3622ad8 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -27,13 +27,12 @@
/obj/item/gun/ballistic/automatic/proto/unrestricted
pin = /obj/item/firing_pin
-/obj/item/gun/ballistic/automatic/update_icon(updates=ALL)
+/obj/item/gun/ballistic/automatic/update_overlays()
. = ..()
- ..()
if(!select)
- add_overlay("[initial(icon_state)]_semi")
+ . += "[initial(icon_state)]_semi"
if(select == 1)
- add_overlay("[initial(icon_state)]_burst")
+ . += "[initial(icon_state)]_burst"
/obj/item/gun/ballistic/automatic/ui_action_click(mob/user, actiontype)
if(istype(actiontype, /datum/action/item_action/toggle_firemode))
@@ -158,16 +157,15 @@
else
..()
-/obj/item/gun/ballistic/automatic/m90/update_icon(updates=ALL)
+/obj/item/gun/ballistic/automatic/m90/update_overlays()
. = ..()
switch(select)
if(0)
- add_overlay("[initial(icon_state)]_semi")
+ . += "[initial(icon_state)]_semi"
if(1)
- add_overlay("[initial(icon_state)]_burst")
+ . += "[initial(icon_state)]_burst"
if(2)
- add_overlay("[initial(icon_state)]_gren")
- return
+ . += "[initial(icon_state)]_gren"
/obj/item/gun/ballistic/automatic/m90/burst_select()
var/mob/living/carbon/human/user = usr
@@ -266,9 +264,9 @@
update_appearance(UPDATE_ICON)
-/obj/item/gun/ballistic/automatic/l6_saw/update_icon(updates=ALL)
+/obj/item/gun/ballistic/automatic/l6_saw/update_overlays()
. = ..()
- add_overlay("l6_door_[cover_open ? "open" : "closed"]")
+ . += "l6_door_[cover_open ? "open" : "closed"]"
/obj/item/gun/ballistic/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params)
diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm
index 1c3c687a6c5d..dcd7b05d0abe 100644
--- a/code/modules/projectiles/guns/ballistic/bow.dm
+++ b/code/modules/projectiles/guns/ballistic/bow.dm
@@ -133,14 +133,13 @@
update_slowdown()
update_appearance(UPDATE_ICON)
-/obj/item/gun/ballistic/bow/update_icon(updates=ALL)
+/obj/item/gun/ballistic/bow/update_overlays()
. = ..()
- cut_overlay(arrow_overlay, TRUE)
icon_state = "[initial(icon_state)][chambered ? "_firing" : ""]"
if(get_ammo())
var/obj/item/ammo_casing/reusable/arrow/energy/E = magazine.get_round(TRUE)
arrow_overlay = mutable_appearance(icon, "[initial(E.item_state)][chambered ? "_firing" : ""]")
- add_overlay(arrow_overlay, TRUE)
+ . += arrow_overlay, TRUE
/obj/item/gun/ballistic/bow/proc/update_slowdown()
if(chambered || drawing)
@@ -452,27 +451,32 @@
if(TIMER_COOLDOWN_CHECK(src, "arrow_recharge"))
. += span_warning("It is currently recharging!")
-/obj/item/gun/ballistic/bow/energy/update_icon(updates=ALL)
+/obj/item/gun/ballistic/bow/energy/update_icon_state()
. = ..()
cut_overlay(arrow_overlay, TRUE)
if(folded)
icon_state = "[initial(icon_state)]_folded"
item_state = "[initial(item_state)]_folded"
- else
+ else if(get_ammo())
+ item_state = "[item_state]_[E.icon_state]"
icon_state = initial(icon_state)
+ else
item_state = initial(item_state)
-
- if(get_ammo())
- var/obj/item/ammo_casing/reusable/arrow/energy/E = magazine.get_round(TRUE)
- arrow_overlay = mutable_appearance(icon, "[initial(E.icon_state)][chambered ? "_firing" : ""]")
- add_overlay(arrow_overlay, TRUE)
- item_state = "[item_state]_[E.icon_state]"
+ icon_state = initial(icon_state)
if(ismob(loc))
var/mob/M = loc
M.update_inv_hands()
+/obj/item/gun/ballistic/bow/energy/update_overlays()
+ . = ..()
+ if(folded || !get_ammo())
+ return
+ var/obj/item/ammo_casing/reusable/arrow/energy/E = magazine.get_round(TRUE)
+ arrow_overlay = mutable_appearance(icon, "[initial(E.icon_state)][chambered ? "_firing" : ""]")
+ . += arrow_overlay
+
/obj/item/gun/ballistic/bow/energy/shoot_live_shot(mob/living/user, pointblank, atom/pbtarget, message)
if(folded)
to_chat(user, span_notice("You must unfold [src] before firing it!"))
diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
index a10caeb86e66..8b3e4384d831 100644
--- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm
+++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
@@ -81,7 +81,7 @@
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
-/obj/item/minigunpack/update_icon(updates=ALL)
+/obj/item/minigunpack/update_icon_state()
. = ..()
if(armed)
icon_state = "notholstered"
diff --git a/code/modules/projectiles/guns/ballistic/minigun.dm b/code/modules/projectiles/guns/ballistic/minigun.dm
index 2fe3991bc177..6c8172a7b0bd 100644
--- a/code/modules/projectiles/guns/ballistic/minigun.dm
+++ b/code/modules/projectiles/guns/ballistic/minigun.dm
@@ -81,7 +81,7 @@
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
-/obj/item/minigunbackpack/update_icon(updates=ALL)
+/obj/item/minigunbackpack/update_icon_state()
. = ..()
if(armed)
icon_state = "notholstered"
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index e5e68eacca93..49dec5a1cc9b 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -15,9 +15,9 @@
bolt_drop_sound = "sound/weapons/mosinboltin.ogg"
tac_reloads = FALSE
-obj/item/gun/ballistic/rifle/update_icon(updates=ALL)
+obj/item/gun/ballistic/rifle/update_overlays()
. = ..()
- add_overlay("[icon_state]_bolt[bolt_locked ? "_locked" : ""]")
+ . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]"
obj/item/gun/ballistic/rifle/rack(mob/user = null)
if (bolt_locked == FALSE)
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index c768a5e14483..17448eff59d1 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -232,7 +232,7 @@
else
to_chat(user, span_warning("You need at least ten lengths of cable if you want to make a sling!"))
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/update_icon(updates=ALL)
+/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/update_icon_state()
. = ..()
if(slung)
icon_state = "ishotgunsling"
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index e2146c4b0eb2..0ee56ca1ece5 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -13,9 +13,9 @@
item_flags = NONE
casing_ejector = FALSE
-/obj/item/gun/ballistic/automatic/toy/update_icon(updates=ALL)
+/obj/item/gun/ballistic/automatic/toy/update_overlays()
. = ..()
- add_overlay("[icon_state]_toy")
+ . += "[icon_state]_toy"
/obj/item/gun/ballistic/automatic/toy/unrestricted
pin = /obj/item/firing_pin
@@ -56,9 +56,9 @@
casing_ejector = FALSE
can_suppress = FALSE
-/obj/item/gun/ballistic/shotgun/toy/update_icon(updates=ALL)
+/obj/item/gun/ballistic/shotgun/toy/update_overlays()
. = ..()
- add_overlay("[icon_state]_toy")
+ . += "[icon_state]_toy"
/obj/item/gun/ballistic/shotgun/toy/unrestricted
pin = /obj/item/firing_pin
@@ -90,9 +90,9 @@
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot
mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot
-/obj/item/gun/ballistic/automatic/c20r/toy/update_icon(updates=ALL)
+/obj/item/gun/ballistic/automatic/c20r/toy/update_overlays()
. = ..()
- add_overlay("[icon_state]_toy")
+ . += "[icon_state]_toy"
/obj/item/gun/ballistic/automatic/l6_saw/toy //This is the syndicate variant with syndicate firing pin and riot darts.
name = "donksoft LMG"
@@ -110,6 +110,6 @@
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot
mag_type = /obj/item/ammo_box/magazine/toy/m762/riot
-/obj/item/gun/ballistic/automatic/l6_saw/toy/update_icon(updates=ALL)
+/obj/item/gun/ballistic/automatic/l6_saw/toy/update_overlays()
. = ..()
- add_overlay("[icon_state]_toy")
+ . += "[icon_state]_toy"
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 83a610fb535d..f43bcab96b3c 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -159,10 +159,10 @@
update_appearance(UPDATE_ICON)
return
-/obj/item/gun/energy/update_icon(force_update)
+/obj/item/gun/energy/update_overlays()
if(QDELETED(src))
return
- ..()
+ . = ..()
if(!automatic_charge_overlays)
return
var/ratio = CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1)
diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm
index 2cee2778a9df..2cc685eee4ff 100644
--- a/code/modules/projectiles/guns/energy/dueling.dm
+++ b/code/modules/projectiles/guns/energy/dueling.dm
@@ -175,12 +175,11 @@
to_chat(user,span_notice("You switch [src] setting to [setting] mode."))
update_appearance(UPDATE_ICON)
-/obj/item/gun/energy/dueling/update_icon(force_update)
+/obj/item/gun/energy/dueling/update_overlays()
. = ..()
if(setting_overlay)
- cut_overlay(setting_overlay)
setting_overlay.icon_state = setting_iconstate()
- add_overlay(setting_overlay)
+ . += setting_overlay
/obj/item/gun/energy/dueling/Destroy()
. = ..()
From 5dcb5dc5bf60402d465a2684ca1f888c42b2822f Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 23:21:01 -0400
Subject: [PATCH 19/50] compile again
---
code/modules/projectiles/boxes_magazines/_box_magazine.dm | 1 +
code/modules/projectiles/guns/ballistic/bow.dm | 4 ++--
code/modules/projectiles/guns/energy.dm | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index 043487930dd0..1ebb4d8d772b 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -187,6 +187,7 @@
/obj/item/ammo_box/update_desc(updates=ALL)
. = ..()
+ var/rounds_left = stored_ammo.len
desc = "[initial(desc)] There [(rounds_left == 1) ? "is" : "are"] [rounds_left] round\s left!"
///Count of number of bullets in the magazine
diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm
index dcd7b05d0abe..13d4d4c7424b 100644
--- a/code/modules/projectiles/guns/ballistic/bow.dm
+++ b/code/modules/projectiles/guns/ballistic/bow.dm
@@ -139,7 +139,7 @@
if(get_ammo())
var/obj/item/ammo_casing/reusable/arrow/energy/E = magazine.get_round(TRUE)
arrow_overlay = mutable_appearance(icon, "[initial(E.item_state)][chambered ? "_firing" : ""]")
- . += arrow_overlay, TRUE
+ . += arrow_overlay
/obj/item/gun/ballistic/bow/proc/update_slowdown()
if(chambered || drawing)
@@ -459,7 +459,6 @@
icon_state = "[initial(icon_state)]_folded"
item_state = "[initial(item_state)]_folded"
else if(get_ammo())
- item_state = "[item_state]_[E.icon_state]"
icon_state = initial(icon_state)
else
item_state = initial(item_state)
@@ -474,6 +473,7 @@
if(folded || !get_ammo())
return
var/obj/item/ammo_casing/reusable/arrow/energy/E = magazine.get_round(TRUE)
+ item_state = "[item_state]_[E.icon_state]"
arrow_overlay = mutable_appearance(icon, "[initial(E.icon_state)][chambered ? "_firing" : ""]")
. += arrow_overlay
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index f43bcab96b3c..56c99af8d539 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -166,7 +166,7 @@
if(!automatic_charge_overlays)
return
var/ratio = CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1)
- if(ratio == old_ratio && !force_update)
+ if(ratio == old_ratio)
return
old_ratio = ratio
cut_overlays()
From 91f56fe4f16a2eb371f52f847c86053e017e6e03 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Wed, 12 Jul 2023 23:50:42 -0400
Subject: [PATCH 20/50] thank you tattax
---
code/_onclick/hud/human.dm | 4 ----
1 file changed, 4 deletions(-)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index bab8f6134faf..0a12a8a649da 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -109,7 +109,6 @@
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(src)
@@ -270,13 +269,11 @@
throw_icon = new /atom/movable/screen/throw_catch(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(src)
rest_icon.icon = ui_style
rest_icon.screen_loc = ui_above_movement
- rest_icon.hud = src
static_inventory += rest_icon
healths = new /atom/movable/screen/healths(src)
@@ -292,7 +289,6 @@
pull_icon.icon = ui_style
pull_icon.update_appearance(UPDATE_ICON)
pull_icon.screen_loc = ui_above_intent
- pull_icon.hud = src
static_inventory += pull_icon
devilsouldisplay = new /atom/movable/screen/devil/soul_counter(src)
From 1cbbabcad1cab9db3bd0722d3da608aa633f73cd Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Thu, 13 Jul 2023 00:32:27 -0400
Subject: [PATCH 21/50] Goes through the remaining update icon
---
code/game/objects/items/credit_holochip.dm | 2 +-
code/game/objects/items/devices/aicard.dm | 2 +-
.../granters/martial_arts/plasma_fist.dm | 4 +-
.../granters/martial_arts/sleeping_carp.dm | 4 +-
code/modules/VR/vr_sleeper.dm | 2 +-
code/modules/food_and_drinks/pizzabox.dm | 2 +-
.../mining/lavaland/necropolis_chests.dm | 2 +-
code/modules/mob/mob_defines.dm | 2 +-
code/modules/power/apc.dm | 5 +-
code/modules/power/cable.dm | 2 +-
.../projectiles/guns/energy/energy_gun.dm | 4 +-
.../guns/energy/kinetic_accelerator.dm | 6 +-
.../projectiles/guns/energy/special.dm | 6 +-
code/modules/projectiles/guns/magic/wand.dm | 2 +-
.../projectiles/guns/misc/beam_rifle.dm | 7 +-
.../projectiles/guns/misc/syringe_gun.dm | 4 +-
.../chemistry/machinery/chem_dispenser.dm | 7 +-
.../chemistry/machinery/chem_heater.dm | 2 +-
.../chemistry/machinery/chem_master.dm | 8 +-
.../reagents/chemistry/machinery/pandemic.dm | 12 ++-
.../chemistry/machinery/reagentgrinder.dm | 3 +-
.../chemistry/machinery/smoke_machine.dm | 2 +-
.../reagents/reagent_containers/blood_pack.dm | 5 +-
.../reagents/reagent_containers/bottle.dm | 40 ++++----
.../reagents/reagent_containers/dropper.dm | 5 +-
.../reagents/reagent_containers/glass.dm | 92 +++++++++----------
.../reagents/reagent_containers/hypospray.dm | 44 ++++-----
.../reagents/reagent_containers/syringes.dm | 8 +-
code/modules/recycling/conveyor2.dm | 8 +-
code/modules/recycling/disposal/bin.dm | 11 +--
.../recycling/disposal/construction.dm | 2 +-
code/modules/research/destructive_analyzer.dm | 2 +-
code/modules/research/experimentor.dm | 4 +-
.../research/nanites/nanite_chamber.dm | 11 +--
.../modules/research/nanites/nanite_remote.dm | 7 +-
.../research/nanites/public_chamber.dm | 30 +++---
code/modules/research/server.dm | 2 +-
.../security_levels/level_interface.dm | 14 +--
code/modules/shuttle/manipulator.dm | 16 ++--
.../shuttle/spaceship_navigation_beacon.dm | 2 +-
code/modules/shuttle/special.dm | 2 +-
code/modules/surgery/anesthesia_machine.dm | 9 +-
code/modules/surgery/organs/appendix.dm | 16 +++-
code/modules/surgery/organs/augments_chest.dm | 10 +-
code/modules/surgery/organs/heart.dm | 2 +-
code/modules/surgery/organs/tongue.dm | 4 +-
code/modules/vehicles/pimpin_ride.dm | 7 +-
code/modules/vending/_vending.dm | 11 ++-
.../code/game/gamemodes/gangs/dominator.dm | 33 ++++---
.../code/game/gamemodes/gangs/gangtool.dm | 5 +-
yogstation/code/game/objects/items/brace.dm | 5 +-
.../code/game/objects/items/fishing/rods.dm | 2 +-
.../game/objects/items/holotool/holotool.dm | 2 +-
.../code/game/objects/items/sharpener.dm | 4 +-
.../game/objects/structures/toilet_bong.dm | 5 +-
yogstation/code/modules/assembly/signaler.dm | 5 +-
.../code/modules/clothing/head/helmet.dm | 2 +-
.../living/simple_animal/friendly/chocobo.dm | 7 +-
.../hostile/retaliate/king_of_goats.dm | 2 +-
yogstation/code/modules/power/validhunter.dm | 2 +-
.../reagents/reagent_containers/hypospray.dm | 4 +-
.../recycling/disposal/pipe_sorting.dm | 5 +-
yogstation/code/modules/spacepods/spacepod.dm | 36 ++++----
.../code/modules/xenoarch/loot/gigadrill.dm | 2 +-
yogstation/code/modules/xenoarch/loot/guns.dm | 2 -
65 files changed, 286 insertions(+), 291 deletions(-)
diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm
index aedfc1d9d25d..5d1cc2e0deb9 100644
--- a/code/game/objects/items/credit_holochip.dm
+++ b/code/game/objects/items/credit_holochip.dm
@@ -22,7 +22,7 @@
/obj/item/holochip/get_item_credit_value()
return credits
-/obj/item/holochip/update_name(updates)
+/obj/item/holochip/update_name(updates=ALL)
. = ..()
name = "\improper [credits] credit holochip"
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index 46ff45536454..7b6ddd77e54b 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -40,7 +40,7 @@
log_combat(user, AI, "carded", src)
update_appearance(UPDATE_ICON) //Whatever happened, update the card's state (icon, name) to match.
-/obj/item/aicard/update_name(updates)
+/obj/item/aicard/update_name(updates=ALL)
. = ..()
if(AI)
name = "[initial(name)] - [AI.name]"
diff --git a/code/game/objects/items/granters/martial_arts/plasma_fist.dm b/code/game/objects/items/granters/martial_arts/plasma_fist.dm
index 6b6da336c4de..5b1ab695aa59 100644
--- a/code/game/objects/items/granters/martial_arts/plasma_fist.dm
+++ b/code/game/objects/items/granters/martial_arts/plasma_fist.dm
@@ -20,14 +20,14 @@
. = ..()
update_appearance()
-/obj/item/book/granter/martial/plasma_fist/update_name(updates)
+/obj/item/book/granter/martial/plasma_fist/update_name(updates=ALL)
. = ..()
if(uses <= 0)
name = "empty scroll"
else
name = initial(name)
-/obj/item/book/granter/martial/plasma_fist/update_desc(updates)
+/obj/item/book/granter/martial/plasma_fist/update_desc(updates=ALL)
. = ..()
if(uses <= 0)
desc = "It's completely blank."
diff --git a/code/game/objects/items/granters/martial_arts/sleeping_carp.dm b/code/game/objects/items/granters/martial_arts/sleeping_carp.dm
index 0858bb834de3..f3f404299f59 100644
--- a/code/game/objects/items/granters/martial_arts/sleeping_carp.dm
+++ b/code/game/objects/items/granters/martial_arts/sleeping_carp.dm
@@ -23,14 +23,14 @@
. = ..()
update_appearance()
-/obj/item/book/granter/martial/carp/update_name(updates)
+/obj/item/book/granter/martial/carp/update_name(updates=ALL)
. = ..()
if(!uses)
name = "empty scroll"
else
name = initial(name)
-/obj/item/book/granter/martial/carp/update_desc(updates)
+/obj/item/book/granter/martial/carp/update_desc(updates=ALL)
. = ..()
if(!uses)
desc = "It's completely blank."
diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm
index e2f9eab725c0..8b5a342b8abd 100644
--- a/code/modules/VR/vr_sleeper.dm
+++ b/code/modules/VR/vr_sleeper.dm
@@ -61,7 +61,7 @@
sparks.start()
addtimer(CALLBACK(src, PROC_REF(emagNotify)), 150)
-/obj/machinery/vr_sleeper/update_icon(updates=ALL)
+/obj/machinery/vr_sleeper/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][state_open ? "-open" : ""]"
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index 40e0ca66fa31..5c701880fac8 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -38,7 +38,7 @@
unprocess()
return ..()
-/obj/item/pizzabox/update_desc(updates)
+/obj/item/pizzabox/update_desc(updates=ALL)
. = ..()
desc = initial(desc)
if(open)
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index bf5022477d6b..3bebd07549cb 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -683,7 +683,7 @@ GLOBAL_LIST_EMPTY(aide_list)
desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'."
list_reagents = list(/datum/reagent/flightpotion = 5)
-/obj/item/reagent_containers/glass/bottle/potion/update_desc(updates)
+/obj/item/reagent_containers/glass/bottle/potion/update_desc(updates=ALL)
. = ..()
if(reagents.total_volume)
desc = initial(desc)
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index b3ba9df0a698..a2b7f3eec7b4 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -51,7 +51,7 @@
*/
/// The zone this mob is currently targeting
- var/zone_selected = null
+ var/zone_selected = BODY_ZONE_CHEST
var/computer_id = null
var/list/logging = list()
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 11ae3e9403e1..9037a751b00f 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -206,7 +206,6 @@
operating = FALSE
name = "[area.name] APC"
stat |= MAINT
- update_appearance(UPDATE_ICON)
addtimer(CALLBACK(src, PROC_REF(update)), 5)
/obj/machinery/power/apc/Destroy()
@@ -251,7 +250,7 @@
cell = new cell_type
cell.charge = start_charge * cell.maxcharge / 100 // (convert percentage to actual value)
- var/area/A = src.loc.loc
+ var/area/A = get_area(loc)
//if area isn't specified use current
if(areastring)
@@ -330,7 +329,7 @@
// also add overlays for indicator lights
/obj/machinery/power/apc/update_icon(updates=ALL)
. = ..()
- updates=check_updates()
+ updates = check_updates()
if(!updates)
return
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index ce635ab77d2c..e36e23e24337 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -570,7 +570,7 @@ By design, d1 is the smallest direction and d2 is the highest
icon_state = "[initial(item_state)][amount < 3 ? amount : ""]"
item_state = "coil_[cable_color]"
-/obj/item/stack/cable_coil/update_name(updates)
+/obj/item/stack/cable_coil/update_name(updates=ALL)
. = ..()
if(novariants)
return
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index 5608cc521927..852661f666ec 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -30,10 +30,10 @@
set_gun_light(new /obj/item/flashlight/seclite(src))
return ..()
-/obj/item/gun/energy/e_gun/mini/update_icon(updates=ALL)
+/obj/item/gun/energy/e_gun/mini/update_overlays()
. = ..()
if(gun_light && gun_light.on)
- add_overlay("mini-light")
+ . += "mini-light"
/obj/item/gun/energy/e_gun/stun
name = "tactical energy gun"
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index 4d2b76bd91e5..5cad3d3cc066 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -145,12 +145,10 @@
update_appearance(UPDATE_ICON)
overheat = FALSE
-/obj/item/gun/energy/kinetic_accelerator/update_icon(updates=ALL)
+/obj/item/gun/energy/kinetic_accelerator/update_overlays()
. = ..()
if(!can_shoot())
- add_overlay("[icon_state]_empty")
- else
- cut_overlays()
+ . += "[icon_state]_empty"
/obj/item/gun/energy/kinetic_accelerator/mega
name = "mega proto-kinetic accelerator"
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index abb300488e82..20b241f38e6d 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -34,11 +34,11 @@
pin = null
ammo_x_offset = 1
-/obj/item/gun/energy/decloner/update_icon(updates=ALL)
+/obj/item/gun/energy/decloner/update_overlays()
. = ..()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
if(!QDELETED(cell) && (cell.charge > shot.e_cost))
- add_overlay("decloner_spin")
+ . += "decloner_spin"
/obj/item/gun/energy/decloner/unrestricted
pin = /obj/item/firing_pin
@@ -303,7 +303,7 @@
desc = "A projector that emits high density quantum-coupled bluespace beams. This one seems to be modified to go through glass."
ammo_type = list(/obj/item/ammo_casing/energy/wormhole/upgraded, /obj/item/ammo_casing/energy/wormhole/orange/upgraded)
-/obj/item/gun/energy/wormhole_projector/update_icon(updates=ALL)
+/obj/item/gun/energy/wormhole_projector/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][select]"
item_state = icon_state
diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm
index efb9ba6b73fd..f463f48c872a 100644
--- a/code/modules/projectiles/guns/magic/wand.dm
+++ b/code/modules/projectiles/guns/magic/wand.dm
@@ -21,7 +21,7 @@
. = ..()
. += "Has [charges] charge\s remaining."
-/obj/item/gun/magic/wand/update_icon(updates=ALL)
+/obj/item/gun/magic/wand/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][charges ? "" : "-drained"]"
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index c02bdb51d2ca..c6ddd4e87055 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -148,14 +148,13 @@
current_zoom_x = 0
current_zoom_y = 0
-/obj/item/gun/energy/beam_rifle/update_icon(updates=ALL)
+/obj/item/gun/energy/beam_rifle/update_overlays()
. = ..()
- cut_overlays()
var/obj/item/ammo_casing/energy/primary_ammo = ammo_type[1]
if(!QDELETED(cell) && (cell.charge >= primary_ammo.e_cost))
- add_overlay(charged_overlay)
+ . += charged_overlay
else
- add_overlay(drained_overlay)
+ . += drained_overlay
/obj/item/gun/energy/beam_rifle/attack_self(mob/user)
projectile_setting_pierce = !projectile_setting_pierce
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index ccd49172f967..009f7232810f 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -78,12 +78,12 @@
to_chat(user, span_warning("[src] cannot hold more syringes!"))
return FALSE
-/obj/item/gun/syringe/update_icon(updates=ALL)
+/obj/item/gun/syringe/update_overlays()
. = ..()
if(!has_syringe_overlay)
return
var/syringe_count = syringes.len
- add_overlay("[initial(icon_state)]_[syringe_count ? clamp(syringe_count, 1, initial(max_syringes)) : "empty"]")
+ . += "[initial(icon_state)]_[syringe_count ? clamp(syringe_count, 1, initial(max_syringes)) : "empty"]"
/obj/item/gun/syringe/rapidsyringe
name = "rapid syringe gun"
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 6b6f210a6cc6..630ab409c3b7 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -145,16 +145,15 @@
if(working_state)
flick(working_state,src)
-/obj/machinery/chem_dispenser/update_icon(updates=ALL)
+/obj/machinery/chem_dispenser/update_overlays()
. = ..()
- cut_overlays()
icon_state = "[(nopower_state && !powered()) ? nopower_state : initial(icon_state)]"
if(has_panel_overlay && panel_open)
- add_overlay(mutable_appearance(icon, "[initial(icon_state)]_panel-o"))
+ . += mutable_appearance(icon, "[initial(icon_state)]_panel-o")
if(beaker)
beaker_overlay = display_beaker()
- add_overlay(beaker_overlay)
+ . += beaker_overlay
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index aa9ec700c085..b3011d3cb8d8 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -23,7 +23,7 @@
beaker = null
update_appearance(UPDATE_ICON)
-/obj/machinery/chem_heater/update_icon(updates=ALL)
+/obj/machinery/chem_heater/update_icon_state()
. = ..()
icon_state = "mixer[beaker ? 1 : 0][on ? "a" : "b"]"
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 4ee34c6b780f..468fc2593c1d 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -69,11 +69,13 @@
else if(A == bottle)
bottle = null
-/obj/machinery/chem_master/update_icon(updates=ALL)
+/obj/machinery/chem_master/update_overlays()
. = ..()
- cut_overlays()
if (stat & BROKEN)
- add_overlay("waitlight")
+ . += "waitlight"
+
+/obj/machinery/chem_master/update_icon_state()
+ . = ..()
if(beaker)
icon_state = "mixer1"
else
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index 99188da75ac4..a3f76dc58395 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -125,17 +125,19 @@
update_appearance(UPDATE_ICON)
playsound(src, 'sound/machines/ping.ogg', 30, TRUE)
-/obj/machinery/computer/pandemic/update_icon(updates=ALL)
+/obj/machinery/computer/pandemic/update_icon_state()
. = ..()
if(stat & BROKEN)
icon_state = (beaker ? "mixer1_b" : "mixer0_b")
return
-
icon_state = "mixer[(beaker) ? "1" : "0"][powered() ? "" : "_nopower"]"
+
+/obj/machinery/computer/pandemic/update_overlays()
+ . = ..()
+ if(stat & BROKEN)
+ return
if(wait)
- add_overlay("waitlight")
- else
- cut_overlays()
+ . += "waitlight"
/obj/machinery/computer/pandemic/proc/eject_beaker()
if(beaker)
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 5ae36d4ea595..59513d3e86d7 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -99,12 +99,11 @@
AM.forceMove(drop_location())
holdingitems = list()
-/obj/machinery/reagentgrinder/update_icon(updates=ALL)
+/obj/machinery/reagentgrinder/update_icon_state()
. = ..()
if(!container)
icon_state = "juicer"
return
-
if(istype(container, /obj/item/reagent_containers/glass/mixbowl))
icon_state = "juicer_bowl"
else
diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm
index 4d1e8d696ea2..baa3ad4c796d 100644
--- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm
+++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm
@@ -36,7 +36,7 @@
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
reagents.maximum_volume += REAGENTS_BASE_VOLUME * B.rating
-/obj/machinery/smoke_machine/update_icon(updates=ALL)
+/obj/machinery/smoke_machine/update_icon_state()
. = ..()
if((!is_operational()) || (!on) || (reagents.total_volume == 0))
if (panel_open)
diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index faa875420502..e3643b8016dd 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -78,16 +78,15 @@
else
name = "blood pack"
-/obj/item/reagent_containers/blood/update_icon(updates=ALL)
+/obj/item/reagent_containers/blood/update_overlays()
. = ..()
- cut_overlays()
var/v = min(round(reagents.total_volume / volume * 10), 10)
if(v > 0)
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "bloodpack1")
filling.icon_state = "bloodpack[v]"
filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
+ . += filling
/obj/item/reagent_containers/blood/random
icon_state = "random_bloodpack"
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index f6af3528dfc8..279950f7505d 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -20,29 +20,29 @@
/obj/item/reagent_containers/glass/bottle/on_reagent_change(changetype)
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/bottle/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/bottle/update_overlays()
. = ..()
- cut_overlays()
if(!filling_icon_state)
filling_icon_state = icon_state
- if(reagents.total_volume)
- var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[filling_icon_state]-10")
-
- var/percent = round((reagents.total_volume / volume) * 100)
- switch(percent)
- if(0 to 9)
- filling.icon_state = "[filling_icon_state]-10"
- if(10 to 29)
- filling.icon_state = "[filling_icon_state]25"
- if(30 to 49)
- filling.icon_state = "[filling_icon_state]50"
- if(50 to 69)
- filling.icon_state = "[filling_icon_state]75"
- if(70 to INFINITY)
- filling.icon_state = "[filling_icon_state]100"
-
- filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
+ if(!reagents.total_volume)
+ return
+ var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[filling_icon_state]-10")
+
+ var/percent = round((reagents.total_volume / volume) * 100)
+ switch(percent)
+ if(0 to 9)
+ filling.icon_state = "[filling_icon_state]-10"
+ if(10 to 29)
+ filling.icon_state = "[filling_icon_state]25"
+ if(30 to 49)
+ filling.icon_state = "[filling_icon_state]50"
+ if(50 to 69)
+ filling.icon_state = "[filling_icon_state]75"
+ if(70 to INFINITY)
+ filling.icon_state = "[filling_icon_state]100"
+
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ . += filling
/obj/item/reagent_containers/glass/bottle/epinephrine
name = "epinephrine bottle"
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index f98c021dc380..95fc24b7c089 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -100,10 +100,9 @@
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/dropper/update_icon(updates=ALL)
+/obj/item/reagent_containers/dropper/update_overlays()
. = ..()
- cut_overlays()
if(reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "dropper")
filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
+ . += filling
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 6bc66948106e..e9b44fa45d48 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -127,32 +127,31 @@
/obj/item/reagent_containers/glass/beaker/on_reagent_change(changetype)
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/beaker/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/beaker/update_overlays()
. = ..()
- cut_overlays()
-
- if(reagents.total_volume)
- var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]10")
-
- var/percent = round((reagents.total_volume / volume) * 100)
- switch(percent)
- if(0 to 9)
- filling.icon_state = "[icon_state]-10"
- if(10 to 24)
- filling.icon_state = "[icon_state]10"
- if(25 to 49)
- filling.icon_state = "[icon_state]25"
- if(50 to 74)
- filling.icon_state = "[icon_state]50"
- if(75 to 79)
- filling.icon_state = "[icon_state]75"
- if(80 to 90)
- filling.icon_state = "[icon_state]80"
- if(91 to INFINITY)
- filling.icon_state = "[icon_state]100"
-
- filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
+ if(!reagents.total_volume)
+ return
+ var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]10")
+
+ var/percent = round((reagents.total_volume / volume) * 100)
+ switch(percent)
+ if(0 to 9)
+ filling.icon_state = "[icon_state]-10"
+ if(10 to 24)
+ filling.icon_state = "[icon_state]10"
+ if(25 to 49)
+ filling.icon_state = "[icon_state]25"
+ if(50 to 74)
+ filling.icon_state = "[icon_state]50"
+ if(75 to 79)
+ filling.icon_state = "[icon_state]75"
+ if(80 to 90)
+ filling.icon_state = "[icon_state]80"
+ if(91 to INFINITY)
+ filling.icon_state = "[icon_state]100"
+
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ . += filling
/obj/item/reagent_containers/glass/beaker/jar
name = "honey jar"
@@ -178,7 +177,7 @@
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,60,120)
-/obj/item/reagent_containers/glass/beaker/plastic/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/beaker/plastic/update_icon_state()
icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states
. = ..()
icon_state = "beakerwhite"
@@ -425,28 +424,27 @@
..()
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/glass/mixbowl/update_icon(updates=ALL)
+/obj/item/reagent_containers/glass/mixbowl/update_overlays()
. = ..()
- cut_overlays()
-
- if(reagents.total_volume)
- var/mutable_appearance/filling = mutable_appearance('yogstation/icons/obj/reagentfillings.dmi', "[icon_state]11")
-
- var/percent = round((reagents.total_volume / volume) * 100)
- switch(percent)
- if(0 to 9)
- filling.icon_state = "[icon_state]0"
- if(10 to 24)
- filling.icon_state = "[icon_state]10"
- if(25 to 49)
- filling.icon_state = "[icon_state]25"
- if(50 to 74)
- filling.icon_state = "[icon_state]50"
- if(75 to INFINITY)
- filling.icon_state = "[icon_state]75"
-
- filling.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling)
+ if(!reagents.total_volume)
+ return
+ var/mutable_appearance/filling = mutable_appearance('yogstation/icons/obj/reagentfillings.dmi', "[icon_state]11")
+
+ var/percent = round((reagents.total_volume / volume) * 100)
+ switch(percent)
+ if(0 to 9)
+ filling.icon_state = "[icon_state]0"
+ if(10 to 24)
+ filling.icon_state = "[icon_state]10"
+ if(25 to 49)
+ filling.icon_state = "[icon_state]25"
+ if(50 to 74)
+ filling.icon_state = "[icon_state]50"
+ if(75 to INFINITY)
+ filling.icon_state = "[icon_state]75"
+
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ . += filling
/obj/item/reagent_containers/glass/urn
name = "urn"
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 928a79e5f310..8843183d70da 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -136,7 +136,7 @@
reagents.add_reagent_list(list_reagents)
update_appearance(UPDATE_ICON)
-/obj/item/reagent_containers/autoinjector/medipen/update_icon(updates=ALL)
+/obj/item/reagent_containers/autoinjector/medipen/update_icon_state()
. = ..()
if(reagents.total_volume > 0)
icon_state = initial(icon_state)
@@ -309,29 +309,31 @@
/obj/item/hypospray/update_icon(updates=ALL)
. = ..()
- cut_overlays()
if(ismob(loc))
var/mob/M = loc
M.update_inv_hands()
- if(container?.reagents?.total_volume)
- var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]-10")
-
- var/percent = round((container.reagents.total_volume / container.volume) * 100)
- switch(percent)
- if(0 to 9)
- filling.icon_state = "[icon_state]-10"
- if(10 to 29)
- filling.icon_state = "[icon_state]25"
- if(30 to 49)
- filling.icon_state = "[icon_state]50"
- if(50 to 69)
- filling.icon_state = "[icon_state]75"
- if(70 to INFINITY)
- filling.icon_state = "[icon_state]100"
-
- filling.color = mix_color_from_reagents(container.reagents.reagent_list)
- add_overlay(filling)
- return
+
+/obj/item/hypospray/update_overlays()
+ . = ..()
+ if(!container?.reagents?.total_volume)
+ return
+ var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]-10")
+
+ var/percent = round((container.reagents.total_volume / container.volume) * 100)
+ switch(percent)
+ if(0 to 9)
+ filling.icon_state = "[icon_state]-10"
+ if(10 to 29)
+ filling.icon_state = "[icon_state]25"
+ if(30 to 49)
+ filling.icon_state = "[icon_state]50"
+ if(50 to 69)
+ filling.icon_state = "[icon_state]75"
+ if(70 to INFINITY)
+ filling.icon_state = "[icon_state]100"
+
+ filling.color = mix_color_from_reagents(container.reagents.reagent_list)
+ . += filling
/obj/item/hypospray/examine(mob/user)
. = ..()
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 56638d4daa75..52f7d7da604e 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -167,16 +167,14 @@
mode = SYRINGE_DRAW
update_appearance(UPDATE_ICON)
-
-/obj/item/reagent_containers/syringe/update_icon(updates=ALL)
+/obj/item/reagent_containers/syringe/update_overlays()
. = ..()
- cut_overlays()
var/rounded_vol
if(reagents && reagents.total_volume)
rounded_vol = clamp(round((reagents.total_volume / volume * 15),5), 1, 15)
var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]")
filling_overlay.color = mix_color_from_reagents(reagents.reagent_list)
- add_overlay(filling_overlay)
+ . += filling_overlay
else
rounded_vol = 0
icon_state = "[rounded_vol]"
@@ -189,7 +187,7 @@
injoverlay = "draw"
if (SYRINGE_INJECT)
injoverlay = "inject"
- add_overlay(injoverlay)
+ . += injoverlay
M.update_inv_hands()
/obj/item/reagent_containers/syringe/proc/embed_inject(target, mob/living/carbon/human/embedde, obj/item/bodypart/part)
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index f086721ca978..fad188faca75 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -121,7 +121,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
movedir = backwards
update()
-/obj/machinery/conveyor/update_icon(updates=ALL)
+/obj/machinery/conveyor/update_icon_state()
. = ..()
if(!operating)
icon_state = "conveyor[inverted ? "-0" : "0"]"
@@ -272,14 +272,14 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
// update the icon depending on the position
-/obj/machinery/conveyor_switch/update_icon(updates=ALL)
+/obj/machinery/conveyor_switch/update_icon_state()
. = ..()
- if(position<0)
+ if(position < 0)
if(invert_icon)
icon_state = "switch-fwd"
else
icon_state = "switch-rev"
- else if(position>0)
+ else if(position > 0)
if(invert_icon)
icon_state = "switch-rev"
else
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index 4c75601b77da..38031365e711 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -360,9 +360,8 @@
pressure_charging = TRUE
update_appearance(UPDATE_ICON)
-/obj/machinery/disposal/bin/update_icon(updates=ALL)
+/obj/machinery/disposal/bin/update_overlays()
. = ..()
- cut_overlays()
if(stat & BROKEN)
pressure_charging = FALSE
flush = FALSE
@@ -370,7 +369,7 @@
//flush handle
if(flush)
- add_overlay("dispover-handle")
+ . += "dispover-handle"
//only handle is shown if no power
if(stat & NOPOWER || panel_open)
@@ -378,13 +377,13 @@
//check for items in disposal - occupied light
if(contents.len > 0)
- add_overlay("dispover-full")
+ . += "dispover-full"
//charging and ready light
if(pressure_charging)
- add_overlay("dispover-charge")
+ . += "dispover-charge"
else if(full_pressure)
- add_overlay("dispover-ready")
+ . += "dispover-ready"
/obj/machinery/disposal/bin/proc/do_flush()
set waitfor = FALSE
diff --git a/code/modules/recycling/disposal/construction.dm b/code/modules/recycling/disposal/construction.dm
index 92cae2b0e2b3..42d680720e3f 100644
--- a/code/modules/recycling/disposal/construction.dm
+++ b/code/modules/recycling/disposal/construction.dm
@@ -40,7 +40,7 @@
setDir(old_dir) //pipes changing direction when moved is just annoying and buggy
// update iconstate and dpdir due to dir and type
-/obj/structure/disposalconstruct/update_icon(updates=ALL)
+/obj/structure/disposalconstruct/update_icon_state()
. = ..()
icon_state = initial(pipe_type.icon_state)
if(is_pipe())
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 52fab6f808f7..c2ce73940991 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -51,7 +51,7 @@ Note: Must be placed within 3 tiles of the R&D Console
update_appearance(UPDATE_ICON)
reset_busy()
-/obj/machinery/rnd/destructive_analyzer/update_icon(updates=ALL)
+/obj/machinery/rnd/destructive_analyzer/update_icon_state()
. = ..()
if(loaded_item)
icon_state = "d_analyzer_l"
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 5272c537cc39..d4e18bc08cf1 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -568,9 +568,9 @@
if(autoexperiment)
do_experiment()
-/obj/machinery/rnd/experimentor/update_icon(updates=ALL)
+/obj/machinery/rnd/experimentor/update_icon_state()
. = ..()
- icon_state = "h_lathe"
+ icon_state = initial(icon_state)
/obj/machinery/rnd/experimentor/proc/warn_admins(user, ReactionName)
var/turf/T = get_turf(user)
diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm
index 3417d9bd7866..f7dec9341ae9 100644
--- a/code/modules/research/nanites/nanite_chamber.dm
+++ b/code/modules/research/nanites/nanite_chamber.dm
@@ -104,20 +104,19 @@
return
SEND_SIGNAL(occupant, COMSIG_NANITE_DELETE)
-/obj/machinery/nanite_chamber/update_icon(updates=ALL)
+/obj/machinery/nanite_chamber/update_overlays()
. = ..()
- cut_overlays()
if((stat & MAINT) || panel_open)
- add_overlay("maint")
+ . += "maint"
else if(!(stat & (NOPOWER|BROKEN)))
if(busy || locked)
- add_overlay("red")
+ . += "red"
if(locked)
- add_overlay("bolted")
+ . += "bolted"
else
- add_overlay("green")
+ . += "green"
//running and someone in there
if(occupant)
diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm
index 92b15e85dd10..842afaa2ec7e 100644
--- a/code/modules/research/nanites/nanite_remote.dm
+++ b/code/modules/research/nanites/nanite_remote.dm
@@ -46,13 +46,12 @@
locked = FALSE
update_appearance(UPDATE_ICON)
-/obj/item/nanite_remote/update_icon(updates=ALL)
+/obj/item/nanite_remote/update_overlays()
. = ..()
- cut_overlays()
if(obj_flags & EMAGGED)
- add_overlay("nanite_remote_emagged")
+ . += "nanite_remote_emagged"
if(locked)
- add_overlay("nanite_remote_locked")
+ . += "nanite_remote_locked"
/obj/item/nanite_remote/afterattack(atom/target, mob/user, etc)
switch(mode)
diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm
index 6f99898c52d8..a90708d6f12e 100644
--- a/code/modules/research/nanites/public_chamber.dm
+++ b/code/modules/research/nanites/public_chamber.dm
@@ -60,33 +60,29 @@
log_combat(attacker, occupant, "injected", null, "with nanites via [src]")
occupant.AddComponent(/datum/component/nanites, 75, cloud_id)
-/obj/machinery/public_nanite_chamber/update_icon(updates=ALL)
+/obj/machinery/public_nanite_chamber/update_overlays()
. = ..()
- cut_overlays()
if((stat & MAINT) || panel_open)
- add_overlay("maint")
+ . += "maint"
else if(!(stat & (NOPOWER|BROKEN)))
if(busy || locked)
- add_overlay("red")
+ . += "red"
if(locked)
- add_overlay("bolted")
+ . += "bolted"
else
- add_overlay("green")
+ . += "green"
-
-
- //running and someone in there
- if(occupant)
- if(busy)
- icon_state = busy_icon_state
- else
- icon_state = initial(icon_state)+ "_occupied"
+/obj/machinery/public_nanite_chamber/update_icon_state()
+ . = ..()
+ if(!occupant)
+ icon_state = initial(icon_state)+ (state_open ? "_open" : "")
return
-
- //running
- icon_state = initial(icon_state)+ (state_open ? "_open" : "")
+ if(busy)
+ icon_state = busy_icon_state
+ else
+ icon_state = initial(icon_state)+ "_occupied"
/obj/machinery/public_nanite_chamber/proc/toggle_open(mob/user)
if(panel_open)
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index cb12b4782fdf..ed8f1453ab1f 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -39,7 +39,7 @@
tot_rating += SP.rating
heat_gen /= max(1, tot_rating)
-/obj/machinery/rnd/server/update_icon(updates=ALL)
+/obj/machinery/rnd/server/update_icon_state()
. = ..()
if(panel_open)
icon_state = "server_t"
diff --git a/code/modules/security_levels/level_interface.dm b/code/modules/security_levels/level_interface.dm
index e89777c2c3d0..b41b9cec3191 100644
--- a/code/modules/security_levels/level_interface.dm
+++ b/code/modules/security_levels/level_interface.dm
@@ -37,19 +37,21 @@
else
set_light_on(TRUE)
+/obj/machinery/level_interface/update_overlays()
+ . = ..()
switch(GLOB.security_level)
if(SEC_LEVEL_GREEN)
- add_overlay("alert-level-green")
+ . += "alert-level-green"
if(SEC_LEVEL_BLUE)
- add_overlay("alert-level-blue")
+ . += "alert-level-blue"
if(SEC_LEVEL_RED)
- add_overlay("alert-level-red")
+ . += "alert-level-red"
if(SEC_LEVEL_GAMMA)
- add_overlay("alert-level-gamma")
+ . += "alert-level-gamma"
if(SEC_LEVEL_EPSILON)
- add_overlay("alert-level-epsilon")
+ . += "alert-level-epsilon"
if(SEC_LEVEL_DELTA)
- add_overlay("alert-level-delta")
+ . += "alert-level-delta"
/obj/machinery/level_interface/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm
index 68cddd114902..600290de1082 100644
--- a/code/modules/shuttle/manipulator.dm
+++ b/code/modules/shuttle/manipulator.dm
@@ -12,11 +12,11 @@
density = TRUE
-/obj/machinery/shuttle_manipulator/update_icon(updates=ALL)
- cut_overlays()
- var/mutable_appearance/hologram_projection = mutable_appearance(icon, "hologram_on")
- hologram_projection.pixel_y = 22
- var/mutable_appearance/hologram_ship = mutable_appearance(icon, "hologram_whiteship")
- hologram_ship.pixel_y = 27
- add_overlay(hologram_projection)
- add_overlay(hologram_ship)
+/obj/machinery/shuttle_manipulator/update_overlays()
+ . = ..()
+ var/mutable_appearance/hologram_projection = mutable_appearance(icon, "hologram_on")
+ hologram_projection.pixel_y = 22
+ var/mutable_appearance/hologram_ship = mutable_appearance(icon, "hologram_whiteship")
+ hologram_ship.pixel_y = 27
+ . += hologram_projection
+ . += hologram_ship
diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm
index 72845a00d2af..ce10314952b8 100644
--- a/code/modules/shuttle/spaceship_navigation_beacon.dm
+++ b/code/modules/shuttle/spaceship_navigation_beacon.dm
@@ -29,7 +29,7 @@ obj/machinery/spaceship_navigation_beacon/emp_act()
return ..()
// update the icon_state
-/obj/machinery/spaceship_navigation_beacon/update_icon(updates=ALL)
+/obj/machinery/spaceship_navigation_beacon/update_icon_state()
. = ..()
if(powered())
icon_state = "core"
diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index 481727b56fdf..b91f9320e89b 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -21,7 +21,7 @@
desc = "Oh no, not again."
update_appearance(UPDATE_ICON)
-/obj/machinery/power/emitter/energycannon/magical/update_icon(updates=ALL)
+/obj/machinery/power/emitter/energycannon/magical/update_icon_state()
. = ..()
if(active)
icon_state = icon_state_on
diff --git a/code/modules/surgery/anesthesia_machine.dm b/code/modules/surgery/anesthesia_machine.dm
index 7e2b43103905..af386474096c 100644
--- a/code/modules/surgery/anesthesia_machine.dm
+++ b/code/modules/surgery/anesthesia_machine.dm
@@ -22,15 +22,14 @@
attached_tank = T
update_appearance(UPDATE_ICON)
-/obj/machinery/anesthetic_machine/update_icon(updates=ALL)
+/obj/machinery/anesthetic_machine/update_overlays()
. = ..()
- cut_overlays()
if(mask_out)
- add_overlay("mask_off")
+ . += "mask_off"
else
- add_overlay("mask_on")
+ . += "mask_on"
if(attached_tank)
- add_overlay("tank_on")
+ . += "tank_on"
/obj/machinery/anesthetic_machine/attack_hand(mob/living/user)
diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm
index fb75ab289b8b..10419ae5496d 100644
--- a/code/modules/surgery/organs/appendix.dm
+++ b/code/modules/surgery/organs/appendix.dm
@@ -10,15 +10,20 @@
now_fixed = span_info("The pain in your abdomen has subsided.")
var/inflamed
-/obj/item/organ/appendix/update_icon(updates=ALL)
+/obj/item/organ/appendix/update_name(updates=ALL)
. = ..()
if(inflamed)
- icon_state = "appendixinflamed"
name = "inflamed appendix"
else
- icon_state = "appendix"
name = "appendix"
+/obj/item/organ/appendix/update_icon_state()
+ . = ..()
+ if(inflamed)
+ icon_state = "appendixinflamed"
+ else
+ icon_state = "appendix"
+
/obj/item/organ/appendix/on_life()
..()
if(!(organ_flags & ORGAN_FAILING))
@@ -66,10 +71,13 @@
inflamed = FALSE
M.emote("chuckle") //you really think that will stop me?
+/obj/item/organ/appendix/cybernetic/update_name(updates=ALL)
+ . = ..()
+ name = "cybernetic appendix"
+
/obj/item/organ/appendix/cybernetic/update_icon(updates=ALL)
. = ..()
icon_state = "implant-filter"
- name = "cybernetic appendix"
/obj/item/organ/appendix/cybernetic/emp_act(severity)
. = ..()
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index 7ef1b2c2dfb0..4c33ca221569 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -171,14 +171,13 @@
on = FALSE
update_appearance(UPDATE_ICON)
-/obj/item/organ/cyberimp/chest/thrusters/update_icon(updates=ALL)
+/obj/item/organ/cyberimp/chest/thrusters/update_icon_state()
. = ..()
if(on)
icon_state = "imp_jetpack-on"
else
icon_state = "imp_jetpack"
- for(var/X in actions)
- var/datum/action/A = X
+ for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
/obj/item/organ/cyberimp/chest/thrusters/proc/move_react()
@@ -278,14 +277,13 @@
to_chat(owner, span_notice("You turn your spinal implant [on? "on" : "off"]."))
update_appearance(UPDATE_ICON)
-/obj/item/organ/cyberimp/chest/spinalspeed/update_icon(updates=ALL)
+/obj/item/organ/cyberimp/chest/spinalspeed/update_icon_state()
. = ..()
if(on)
icon_state = "imp_spinal-on"
else
icon_state = "imp_spinal"
- for(var/X in actions)
- var/datum/action/A = X
+ for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
/obj/item/organ/cyberimp/chest/spinalspeed/proc/move_react()//afterimage
diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm
index 232e54c414fd..254362eb145d 100644
--- a/code/modules/surgery/organs/heart.dm
+++ b/code/modules/surgery/organs/heart.dm
@@ -26,7 +26,7 @@
icon_base = icon_state
update_appearance(UPDATE_ICON)
-/obj/item/organ/heart/update_icon(updates=ALL)
+/obj/item/organ/heart/update_icon_state()
. = ..()
if(beating)
icon_state = "[icon_base]-on"
diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 3072fd086576..0f8bf96bd7c6 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -39,10 +39,10 @@
. = ..()
languages_possible = languages_possible_base
-/obj/item/organ/tongue/update_icon(updates=ALL)
+/obj/item/organ/tongue/update_overlays()
. = ..()
if(honked) // This tongue has a bike horn inside of it. Let's draw it
- add_overlay("honked")
+ . += "honked"
/obj/item/organ/tongue/proc/handle_speech(datum/source, list/speech_args)
if(honked) // you have a bike horn inside of your tongue. Time to honk
diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm
index ccb053ab2df5..3535b1958a9d 100644
--- a/code/modules/vehicles/pimpin_ride.dm
+++ b/code/modules/vehicles/pimpin_ride.dm
@@ -55,13 +55,12 @@
else
return ..()
-/obj/vehicle/ridden/janicart/update_icon(updates=ALL)
+/obj/vehicle/ridden/janicart/update_overlays()
. = ..()
- cut_overlays()
if(mybag)
- add_overlay("cart_garbage")
+ . += "cart_garbage"
if(floorbuffer)
- add_overlay("cart_buffer")
+ . += "cart_buffer"
/obj/vehicle/ridden/janicart/attack_hand(mob/user)
. = ..()
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index b5fc379ea7b7..124bb3aa9431 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -266,15 +266,16 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
else
..()
-/obj/machinery/vending/update_icon(updates=ALL)
+/obj/machinery/vending/update_icon_state()
. = ..()
if(stat & BROKEN)
icon_state = "[initial(icon_state)]-broken"
+ return
+
+ if(powered())
+ icon_state = initial(icon_state)
else
- if(powered())
- icon_state = initial(icon_state)
- else
- icon_state = "[initial(icon_state)]-off"
+ icon_state = "[initial(icon_state)]-off"
/obj/machinery/vending/obj_break(damage_flag)
diff --git a/yogstation/code/game/gamemodes/gangs/dominator.dm b/yogstation/code/game/gamemodes/gangs/dominator.dm
index 70c95dfa0a18..7f1c896a0522 100644
--- a/yogstation/code/game/gamemodes/gangs/dominator.dm
+++ b/yogstation/code/game/gamemodes/gangs/dominator.dm
@@ -54,22 +54,27 @@
/obj/machinery/dominator/tesla_act()
qdel(src)
-/obj/machinery/dominator/update_icon(updates=ALL)
+/obj/machinery/dominator/update_overlays()
. = ..()
- cut_overlays()
- if(!(stat & BROKEN))
- icon_state = "dominator-active"
- if(operating)
- var/mutable_appearance/dominator_overlay = mutable_appearance('icons/obj/machines/dominator.dmi', "dominator-overlay")
- if(gang)
- dominator_overlay.color = gang.color
- add_overlay(dominator_overlay)
- else
- icon_state = "dominator"
- if(obj_integrity/max_integrity < 0.66)
- add_overlay("damage")
- else
+ if(stat & BROKEN)
+ return
+ if(operating)
+ var/mutable_appearance/dominator_overlay = mutable_appearance('icons/obj/machines/dominator.dmi', "dominator-overlay")
+ if(gang)
+ dominator_overlay.color = gang.color
+ . += dominator_overlay
+ if(obj_integrity/max_integrity < 0.66)
+ . += "damage"
+
+/obj/machinery/dominator/update_icon_state()
+ . = ..()
+ if(stat & BROKEN)
icon_state = "dominator-broken"
+ return
+ if(!operating)
+ icon_state = "dominator"
+ return
+ icon_state = "dominator-active"
/obj/machinery/dominator/examine(mob/user)
. = ..()
diff --git a/yogstation/code/game/gamemodes/gangs/gangtool.dm b/yogstation/code/game/gamemodes/gangs/gangtool.dm
index b56084988d8c..f35fd60a665f 100644
--- a/yogstation/code/game/gamemodes/gangs/gangtool.dm
+++ b/yogstation/code/game/gamemodes/gangs/gangtool.dm
@@ -138,13 +138,12 @@
recall(usr)
attack_self(usr)
-/obj/item/gangtool/update_icon(updates=ALL)
+/obj/item/gangtool/update_overlays()
. = ..()
- overlays.Cut()
var/image/I = new(icon, "[icon_state]-overlay")
if(gang)
I.color = gang.color
- overlays.Add(I)
+ . += I
/obj/item/gangtool/proc/ping_gang(mob/user)
if(!can_use(user))
diff --git a/yogstation/code/game/objects/items/brace.dm b/yogstation/code/game/objects/items/brace.dm
index 3ee9a380db36..55dfcbf15379 100644
--- a/yogstation/code/game/objects/items/brace.dm
+++ b/yogstation/code/game/objects/items/brace.dm
@@ -23,11 +23,10 @@
var/obj/machinery/door/airlock/placed_on
var/cover_open = FALSE
-/obj/structure/deployed_brace/update_icon(updates=ALL)
+/obj/structure/deployed_brace/update_overlays()
. = ..()
- cut_overlays()
if(cover_open)
- add_overlay("cover_open")
+ . += "cover_open"
/obj/structure/deployed_brace/examine(mob/user)
. = ..()
diff --git a/yogstation/code/game/objects/items/fishing/rods.dm b/yogstation/code/game/objects/items/fishing/rods.dm
index 27269e1a76a9..b979e654c32a 100644
--- a/yogstation/code/game/objects/items/fishing/rods.dm
+++ b/yogstation/code/game/objects/items/fishing/rods.dm
@@ -209,7 +209,7 @@
update_appearance(UPDATE_ICON)
user.regenerate_icons()
-/obj/item/twohanded/fishingrod/collapsible/update_icon(updates=ALL)
+/obj/item/twohanded/fishingrod/collapsible/update_icon_state()
. = ..()
item_state = opened ? "fishing_rod" : ""
icon_state = "[rod_icon_state][opened ? "" : "_c"]"
diff --git a/yogstation/code/game/objects/items/holotool/holotool.dm b/yogstation/code/game/objects/items/holotool/holotool.dm
index 586c9d8c4cf9..e8f16d8de0cb 100644
--- a/yogstation/code/game/objects/items/holotool/holotool.dm
+++ b/yogstation/code/game/objects/items/holotool/holotool.dm
@@ -118,7 +118,7 @@
icon_state = "holotool"
set_light(0)
- for(var/datum/action/A in actions)
+ for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
/obj/item/holotool/proc/check_menu(mob/living/user)
diff --git a/yogstation/code/game/objects/items/sharpener.dm b/yogstation/code/game/objects/items/sharpener.dm
index 21b29989213c..57b1c2547a3f 100644
--- a/yogstation/code/game/objects/items/sharpener.dm
+++ b/yogstation/code/game/objects/items/sharpener.dm
@@ -1,2 +1,2 @@
-/obj/item/sharpener/update_icon(updates=ALL)
- icon_state = "[initial(icon_state)]_used"
+/obj/item/sharpener/update_icon_state()
+ icon_state = "[initial(icon_state)]_used"
diff --git a/yogstation/code/game/objects/structures/toilet_bong.dm b/yogstation/code/game/objects/structures/toilet_bong.dm
index d3cf8f48e681..0fbe6ca10f13 100644
--- a/yogstation/code/game/objects/structures/toilet_bong.dm
+++ b/yogstation/code/game/objects/structures/toilet_bong.dm
@@ -20,11 +20,10 @@
weed_overlay = mutable_appearance('yogstation/icons/obj/watercloset.dmi', "weed")
START_PROCESSING(SSobj, src)
-/obj/structure/toilet_bong/update_icon(updates=ALL)
+/obj/structure/toilet_bong/update_overlays()
. = ..()
- cut_overlays()
if (LAZYLEN(contents))
- add_overlay(weed_overlay)
+ . += weed_overlay
/obj/structure/toilet_bong/attack_hand(mob/user)
. = ..()
diff --git a/yogstation/code/modules/assembly/signaler.dm b/yogstation/code/modules/assembly/signaler.dm
index 641a92617de9..9d66c4c819be 100644
--- a/yogstation/code/modules/assembly/signaler.dm
+++ b/yogstation/code/modules/assembly/signaler.dm
@@ -7,14 +7,13 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/assembly/signaler/update_icon(updates=ALL)
+/obj/item/assembly/signaler/update_overlays()
. = ..()
if(label_color)
- cut_overlays()
attached_overlays = list()
var/mutable_appearance/A = mutable_appearance('yogstation/icons/obj/assemblies/new_assemblies.dmi', "signaller_color")
A.color = label_color
- add_overlay(A)
+ . += A
attached_overlays += A
return ..()
diff --git a/yogstation/code/modules/clothing/head/helmet.dm b/yogstation/code/modules/clothing/head/helmet.dm
index cd6a8274bdde..0c55cc0756d5 100644
--- a/yogstation/code/modules/clothing/head/helmet.dm
+++ b/yogstation/code/modules/clothing/head/helmet.dm
@@ -5,7 +5,7 @@
. = ..()
initial_state = "[initial(icon_state)]"
-/obj/item/clothing/head/helmet/update_icon(updates=ALL)
+/obj/item/clothing/head/helmet/update_icon_state()
. = ..()
var/state = "[initial_state]"
if(attached_light)
diff --git a/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm b/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm
index 2bbcdae0b009..d4ad2323a2d4 100644
--- a/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm
+++ b/yogstation/code/modules/mob/living/simple_animal/friendly/chocobo.dm
@@ -55,16 +55,15 @@
can_buckle = initial(can_buckle)
update_appearance(UPDATE_ICON)
-/mob/living/simple_animal/chocobo/update_icon(updates=ALL)
+/mob/living/simple_animal/chocobo/update_overlays()
. = ..()
if(!random_color) //icon override
return
- cut_overlays()
if(stat == DEAD)
var/mutable_appearance/base_overlay = mutable_appearance(icon, "chocobo_limbs_dead")
base_overlay.appearance_flags = RESET_COLOR
- add_overlay(base_overlay)
+ . += base_overlay
else
var/mutable_appearance/base_overlay = mutable_appearance(icon, "chocobo_limbs")
base_overlay.appearance_flags = RESET_COLOR
- add_overlay(base_overlay)
+ . += base_overlay
diff --git a/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm b/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm
index 739e4ca17dee..6872cab8cb93 100644
--- a/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm
+++ b/yogstation/code/modules/mob/living/simple_animal/hostile/retaliate/king_of_goats.dm
@@ -260,7 +260,7 @@ Difficulty: Insanely Hard
visible_message(span_cult("\The [src]' wounds close with a flash, and when he emerges, he's even larger than before!"))
-/mob/living/simple_animal/hostile/retaliate/goat/king/phase2/update_icon(updates=ALL)
+/mob/living/simple_animal/hostile/retaliate/goat/king/phase2/update_icon_state()
. = ..()
var/matrix/M = new
if(phase3)
diff --git a/yogstation/code/modules/power/validhunter.dm b/yogstation/code/modules/power/validhunter.dm
index 82fdb2b7a994..8bbf585d4db2 100644
--- a/yogstation/code/modules/power/validhunter.dm
+++ b/yogstation/code/modules/power/validhunter.dm
@@ -15,7 +15,7 @@
connect_to_network()
return ..()
-/obj/machinery/power/validhunter_engine/update_icon(updates=ALL)
+/obj/machinery/power/validhunter_engine/update_icon_state()
. = ..()
if(operating)
icon_state = "throw_me_in_the_trash_and_feed_my_remains_to_the_devil_operating"
diff --git a/yogstation/code/modules/reagents/reagent_containers/hypospray.dm b/yogstation/code/modules/reagents/reagent_containers/hypospray.dm
index b79f04419b6a..bdacdabff9cd 100644
--- a/yogstation/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/yogstation/code/modules/reagents/reagent_containers/hypospray.dm
@@ -23,7 +23,7 @@
amount_per_transfer_from_this = 25
list_reagents = list(/datum/reagent/medicine/stimulants = 75)
-/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/update_icon(updates=ALL)
+/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/update_icon_state()
. = ..()
if(reagents.total_volume > 25)
icon_state = initial(icon_state)
@@ -46,7 +46,7 @@
var/enlightenment = pick(strings(REDPILL_FILE, "redpill_questions"))
to_chat(M, span_notice("[enlightenment]"))
-/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/redpill/update_icon(updates=ALL)
+/obj/item/reagent_containers/autoinjector/medipen/stimpack/large/redpill/update_icon_state()
. = ..()
if(reagents.total_volume > 25)
icon_state = initial(icon_state)
diff --git a/yogstation/code/modules/recycling/disposal/pipe_sorting.dm b/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
index 20a58d062755..e66d58d8b4b7 100644
--- a/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
+++ b/yogstation/code/modules/recycling/disposal/pipe_sorting.dm
@@ -27,11 +27,10 @@
if(!wires.is_cut(WIRE_SORT_SCAN))
sort_scan = TRUE
-/obj/structure/disposalpipe/sorting/update_icon(updates=ALL)
+/obj/structure/disposalpipe/sorting/update_overlays()
. = ..()
- cut_overlays()
if(panel_open)
- add_overlay(image('yogstation/icons/obj/atmospherics/pipes/disposal.dmi', "[icon_state]-open"))
+ . += image('yogstation/icons/obj/atmospherics/pipes/disposal.dmi', "[icon_state]-open")
/obj/structure/disposalpipe/sorting/screwdriver_act(mob/living/user, obj/item/I)
panel_open = !panel_open
diff --git a/yogstation/code/modules/spacepods/spacepod.dm b/yogstation/code/modules/spacepods/spacepod.dm
index b908f9d68ceb..6fae6028cfc5 100644
--- a/yogstation/code/modules/spacepods/spacepod.dm
+++ b/yogstation/code/modules/spacepods/spacepod.dm
@@ -396,21 +396,13 @@ GLOBAL_LIST_INIT(spacepods_list, list())
// there here's your frame pieces back, happy?
qdel(src)
-/obj/spacepod/update_icon(updates=ALL)
+/obj/spacepod/update_icon_state()
. = ..()
- cut_overlays()
if(construction_state != SPACEPOD_ARMOR_WELDED)
icon = 'goon/icons/obj/spacepods/construction_2x2.dmi'
icon_state = "pod_[construction_state]"
- if(pod_armor && construction_state >= SPACEPOD_ARMOR_LOOSE)
- var/mutable_appearance/masked_armor = mutable_appearance(icon = 'goon/icons/obj/spacepods/construction_2x2.dmi', icon_state = "armor_mask")
- var/mutable_appearance/armor = mutable_appearance(pod_armor.pod_icon, pod_armor.pod_icon_state)
- armor.blend_mode = BLEND_MULTIPLY
- masked_armor.overlays = list(armor)
- masked_armor.appearance_flags = KEEP_TOGETHER
- add_overlay(masked_armor)
return
-
+
if(pod_armor)
icon = pod_armor.pod_icon
icon_state = pod_armor.pod_icon_state
@@ -418,13 +410,25 @@ GLOBAL_LIST_INIT(spacepods_list, list())
icon = 'goon/icons/obj/spacepods/2x2.dmi'
icon_state = initial(icon_state)
+/obj/spacepod/update_overlays()
+ . = ..()
+ if(construction_state != SPACEPOD_ARMOR_WELDED)
+ if(pod_armor && construction_state >= SPACEPOD_ARMOR_LOOSE)
+ var/mutable_appearance/masked_armor = mutable_appearance(icon = 'goon/icons/obj/spacepods/construction_2x2.dmi', icon_state = "armor_mask")
+ var/mutable_appearance/armor = mutable_appearance(pod_armor.pod_icon, pod_armor.pod_icon_state)
+ armor.blend_mode = BLEND_MULTIPLY
+ masked_armor.overlays = list(armor)
+ masked_armor.appearance_flags = KEEP_TOGETHER
+ . += masked_armor
+ return
+
if(obj_integrity <= max_integrity / 2)
- add_overlay(image(icon='goon/icons/obj/spacepods/2x2.dmi', icon_state="pod_damage"))
+ . += image(icon='goon/icons/obj/spacepods/2x2.dmi', icon_state="pod_damage")
if(obj_integrity <= max_integrity / 4)
- add_overlay(image(icon='goon/icons/obj/spacepods/2x2.dmi', icon_state="pod_fire"))
+ . += image(icon='goon/icons/obj/spacepods/2x2.dmi', icon_state="pod_fire")
if(weapon && weapon.overlay_icon_state)
- add_overlay(image(icon=weapon.overlay_icon,icon_state=weapon.overlay_icon_state))
+ . += image(icon=weapon.overlay_icon,icon_state=weapon.overlay_icon_state)
light_color = icon_light_color[icon_state] || LIGHT_COLOR_WHITE
@@ -457,13 +461,13 @@ GLOBAL_LIST_INIT(spacepods_list, list())
var/left_thrust = left_thrusts[cdir]
var/right_thrust = right_thrusts[cdir]
if(left_thrust)
- add_overlay(image(icon = 'yogstation/icons/obj/spacepods/2x2.dmi', icon_state = "rcs_left", dir = cdir))
+ . += image(icon = 'yogstation/icons/obj/spacepods/2x2.dmi', icon_state = "rcs_left", dir = cdir)
if(right_thrust)
- add_overlay(image(icon = 'yogstation/icons/obj/spacepods/2x2.dmi', icon_state = "rcs_right", dir = cdir))
+ . += image(icon = 'yogstation/icons/obj/spacepods/2x2.dmi', icon_state = "rcs_right", dir = cdir)
if(back_thrust)
var/image/I = image(icon = 'yogstation/icons/obj/spacepods/2x2.dmi', icon_state = "thrust")
I.transform = matrix(1, 0, 0, 0, 1, -32)
- add_overlay(I)
+ . += I
/obj/spacepod/MouseDrop_T(atom/movable/A, mob/living/user)
if(user == pilot || (user in passengers) || construction_state != SPACEPOD_ARMOR_WELDED)
diff --git a/yogstation/code/modules/xenoarch/loot/gigadrill.dm b/yogstation/code/modules/xenoarch/loot/gigadrill.dm
index 22d6bbbe1298..5d108ab2308c 100644
--- a/yogstation/code/modules/xenoarch/loot/gigadrill.dm
+++ b/yogstation/code/modules/xenoarch/loot/gigadrill.dm
@@ -19,7 +19,7 @@
. = ..()
update_appearance(UPDATE_ICON)
-/obj/vehicle/ridden/gigadrill/update_icon(updates=ALL)
+/obj/vehicle/ridden/gigadrill/update_icon_state()
. = ..()
if(occupant_amount())
icon_state = "gigadrill_mov"
diff --git a/yogstation/code/modules/xenoarch/loot/guns.dm b/yogstation/code/modules/xenoarch/loot/guns.dm
index 5c59228e29a1..ad43c9b83fe0 100644
--- a/yogstation/code/modules/xenoarch/loot/guns.dm
+++ b/yogstation/code/modules/xenoarch/loot/guns.dm
@@ -42,9 +42,7 @@
if(chargesound != oldsound)
playsound(src, chargesound, 100)
-
addtimer(CALLBACK(src, PROC_REF(playsound), src, chargesound, 75), 0.1 SECONDS)
- return
/obj/item/gun/energy/polarstar/spur
name = "Spur"
From 3190446c1db6be3776ef0ba86e28ad0e2ced3f57 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Thu, 13 Jul 2023 00:41:02 -0400
Subject: [PATCH 22/50] fix CI cries
---
code/game/objects/items/airlock_painter.dm | 1 +
code/game/objects/items/robot/robot_items.dm | 6 +++---
code/game/objects/items/singularityhammer.dm | 4 ++--
code/game/objects/items/twohanded.dm | 2 +-
code/modules/food_and_drinks/food/customizables.dm | 1 -
code/modules/food_and_drinks/food/snacks.dm | 4 ++--
code/modules/mining/equipment/kinetic_crusher.dm | 2 +-
yogstation/code/game/objects/items/sharpener.dm | 1 +
.../code/modules/atmospherics/machinery/pipes/bluespace.dm | 1 +
yogstation/code/modules/xenoarch/loot/guns.dm | 1 +
10 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm
index a77b02287e75..75238af1df16 100644
--- a/code/game/objects/items/airlock_painter.dm
+++ b/code/game/objects/items/airlock_painter.dm
@@ -51,6 +51,7 @@
ink = new initial_ink_type(src)
/obj/item/airlock_painter/update_icon()
+ . = ..()
var/base = initial(icon_state)
if(!istype(ink))
icon_state = "[base]_none"
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index a2948eaff5c5..3c2f4729fdaa 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -860,13 +860,13 @@
. = ..()
/// Resets overlays and adds a overlay if there is a held item.
-/obj/item/gripper/update_icon(updates)
- cut_overlays()
+/obj/item/gripper/update_overlays()
+ . = ..()
if(wrapped)
var/mutable_appearance/wrapped_appearance = mutable_appearance(wrapped.icon, wrapped.icon_state)
// Shrinking it to 0.8 makes it a bit ugly, but this makes it obvious it is a held item.
wrapped_appearance.transform = matrix(0.8,0,0,0,0.8,0)
- add_overlay(wrapped_appearance)
+ . += wrapped_appearance
// Make it clear what we can do with it.
/obj/item/gripper/examine(mob/user)
diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm
index 9da50a34615f..d4569690ecdf 100644
--- a/code/game/objects/items/singularityhammer.dm
+++ b/code/game/objects/items/singularityhammer.dm
@@ -31,8 +31,8 @@
return
/obj/item/twohanded/singularityhammer/update_icon_state() //Currently only here to fuck with the on-mob icons.
+ . = ..()
icon_state = "singhammer[wielded]"
- return
/obj/item/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder)
for(var/atom/X in orange(5,pull))
@@ -120,5 +120,5 @@
shock(hit_atom)
/obj/item/twohanded/mjollnir/update_icon_state() //Currently only here to fuck with the on-mob icons.
+ . = ..()
icon_state = "mjollnir[wielded]"
- return
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 66e6735932b7..9dad7e549220 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -252,8 +252,8 @@
AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools
/obj/item/twohanded/fireaxe/update_icon(updates=ALL) //Currently only here to fuck with the on-mob icons.
+ . = ..()
icon_state = "fireaxe[wielded]"
- return
/obj/item/twohanded/fireaxe/suicide_act(mob/user)
user.visible_message(span_suicide("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!"))
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index b883c0814cb5..8b0557367eee 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -61,7 +61,6 @@
/obj/item/reagent_containers/food/snacks/customizable/proc/update_snack_name(obj/item/reagent_containers/food/snacks/S)
- . = ..()
for(var/obj/item/I in ingredients)
if(!istype(S, I.type))
customname = "custom"
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index da42e7a4dd74..6e7bce38d3ff 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -258,14 +258,14 @@ All foods are distributed among various categories. Use common sense.
return
/obj/item/reagent_containers/food/snacks/proc/update_snack_overlays(obj/item/reagent_containers/food/snacks/S)
- . = ..()
+ cut_overlays()
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
if(S.filling_color == "#FFFFFF")
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
else
filling.color = S.filling_color
- . += filling
+ add_overlay(filling)
// initialize_cooked_food() is called when microwaving the food
/obj/item/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency = 1)
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 8d3bf20498c9..1bc51eabc4a9 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -29,8 +29,8 @@
var/backstab_bonus = 30
/obj/item/twohanded/kinetic_crusher/update_icon_state() //Updates the sprite for in-hand and on-mob.
+ . = ..()
icon_state = "mining_hammer[wielded]"
- return
/obj/item/twohanded/kinetic_crusher/Initialize(mapload)
. = ..()
diff --git a/yogstation/code/game/objects/items/sharpener.dm b/yogstation/code/game/objects/items/sharpener.dm
index 57b1c2547a3f..c92bd58f8142 100644
--- a/yogstation/code/game/objects/items/sharpener.dm
+++ b/yogstation/code/game/objects/items/sharpener.dm
@@ -1,2 +1,3 @@
/obj/item/sharpener/update_icon_state()
+ . = ..()
icon_state = "[initial(icon_state)]_used"
diff --git a/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm b/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm
index b6d6712def5c..9f9bc36031cc 100644
--- a/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm
+++ b/yogstation/code/modules/atmospherics/machinery/pipes/bluespace.dm
@@ -50,6 +50,7 @@ GLOBAL_LIST_EMPTY(bluespace_pipe_networks)
update_appearance(UPDATE_ICON)
/obj/machinery/atmospherics/pipe/bluespace/update_icon(showpipe)
+ . = ..()
underlays.Cut()
var/turf/T = loc
diff --git a/yogstation/code/modules/xenoarch/loot/guns.dm b/yogstation/code/modules/xenoarch/loot/guns.dm
index ad43c9b83fe0..f074e45e1256 100644
--- a/yogstation/code/modules/xenoarch/loot/guns.dm
+++ b/yogstation/code/modules/xenoarch/loot/guns.dm
@@ -18,6 +18,7 @@
playsound(src, 'yogstation/sound/weapons/spur_spawn.ogg')
/obj/item/gun/energy/polarstar/update_icon(force_update)
+ . = ..()
var/maxcharge = cell.maxcharge
var/charge = cell.charge
From 66468d389eb9fe899cce5f83a4e6405bbda01b8b Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Sat, 15 Jul 2023 22:28:21 -0400
Subject: [PATCH 23/50] Fixes cigs, canisters and guncases
---
.../lavaland_surface_animal_hospital.dmm | 2 +-
.../lavaland_surface_biodome_winter.dmm | 2 +-
.../lavaland_surface_gas_station.dmm | 2 +-
.../lavaland_surface_russianbunker.dmm | 2 +-
.../LavaRuins/lavaland_surface_seed_vault.dmm | 8 +-
.../lavaland_surface_syndicate_base1.dmm | 20 +-
_maps/RandomRuins/SpaceRuins/crashedship.dmm | 2 +-
_maps/RandomRuins/SpaceRuins/gameroom.dmm | 2 +-
_maps/RandomRuins/SpaceRuins/oldAIsat.dmm | 2 +-
_maps/RandomRuins/SpaceRuins/oldstation.dmm | 2 +-
.../SpaceRuins/pubby_monastery.dmm | 6 +-
_maps/RandomRuins/SpaceRuins/spacehotel.dmm | 2 +-
.../StationRuins/BoxStation/bar_arcade.dmm | 2 +-
.../StationRuins/BoxStation/bar_box.dmm | 2 +-
.../StationRuins/BoxStation/bar_casino.dmm | 2 +-
.../StationRuins/BoxStation/bar_citadel.dmm | 2 +-
.../StationRuins/BoxStation/bar_clock.dmm | 2 +-
.../StationRuins/BoxStation/bar_conveyor.dmm | 2 +-
.../StationRuins/BoxStation/bar_diner.dmm | 2 +-
.../StationRuins/BoxStation/bar_disco.dmm | 2 +-
.../StationRuins/BoxStation/bar_grassy.dmm | 2 +-
.../StationRuins/BoxStation/bar_irish.dmm | 2 +-
.../StationRuins/BoxStation/bar_purple.dmm | 2 +-
.../StationRuins/BoxStation/bar_spacious.dmm | 2 +-
.../StationRuins/BoxStation/bar_trek.dmm | 2 +-
.../maint/10x10/10x10_pubbybar.dmm | 2 +-
.../maint/10x10/10x10_snakefighter.dmm | 2 +-
.../StationRuins/maint/3x3/3x3_boxwindow.dmm | 2 +-
.../StationRuins/maint/3x3/3x3_donut.dmm | 2 +-
.../maint/3x3/3x3_pubbyclutter1.dmm | 2 +-
.../maint/5x3/5x3_yogsmaintdet.dmm | 2 +-
.../maint/5x4/5x4_deltadetective.dmm | 4 +-
.../StationRuins/maint/5x4/5x4_pass.dmm | 2 +-
_maps/RandomZLevels/TheBeach.dmm | 2 +-
_maps/RandomZLevels/VR/snowdin_VR.dmm | 2 +-
_maps/RandomZLevels/VR/syndicate_trainer.dmm | 4 +-
_maps/RandomZLevels/VR/vrhub.dmm | 4 +-
_maps/RandomZLevels/moonoutpost19.dmm | 4 +-
_maps/RandomZLevels/research.dmm | 4 +-
_maps/RandomZLevels/snowdin.dmm | 2 +-
_maps/RandomZLevels/undergroundoutpost45.dmm | 6 +-
.../AsteroidStation/AsteroidStation.dmm | 30 +--
_maps/map_files/GaxStation/GaxStation.dmm | 10 +-
_maps/map_files/YogStation/YogStation.dmm | 20 +-
_maps/map_files/Yogsmeta/Yogsmeta.dmm | 28 +--
_maps/map_files/debug/multiz.dmm | 4 +-
_maps/map_files/generic/CentCom.dmm | 44 ++--
_maps/shuttles/emergency_bar.dmm | 6 +-
_maps/shuttles/emergency_delta.dmm | 2 +-
_maps/shuttles/emergency_discoinferno.dmm | 2 +-
_maps/shuttles/emergency_donut.dmm | 4 +-
_maps/shuttles/emergency_kilo.dmm | 2 +-
_maps/shuttles/emergency_luxury.dmm | 2 +-
_maps/shuttles/emergency_meta.dmm | 2 +-
_maps/shuttles/emergency_mini.dmm | 2 +-
_maps/shuttles/emergency_omega.dmm | 2 +-
_maps/shuttles/emergency_rollerdome.dmm | 2 +-
_maps/shuttles/emergency_russiafightpit.dmm | 2 +-
_maps/shuttles/emergency_transtar.dmm | 2 +-
_maps/shuttles/hunter_russian.dmm | 2 +-
_maps/shuttles/infiltrator_basic.dmm | 2 +-
_maps/shuttles/pirate_default.dmm | 14 +-
_maps/shuttles/ruin_pirate_cutter.dmm | 2 +-
_maps/shuttles/whiteship_3.dmm | 2 +-
_maps/shuttles/whiteship_4.dmm | 2 +-
_maps/shuttles/whiteship_miner.dmm | 4 +-
_maps/templates/shelter_3.dmm | 6 +-
code/__DEFINES/inventory.dm | 4 +-
code/__DEFINES/lighting.dm | 8 +
code/__DEFINES/maths.dm | 2 +-
code/__HELPERS/lighting.dm | 13 ++
code/_globalvars/lists/maintenance_loot.dm | 2 +-
code/datums/traits/good.dm | 2 +-
code/datums/traits/negative.dm | 18 +-
code/game/objects/items/holy_armours.dm | 6 +-
.../items/stacks/sheets/sheet_types.dm | 8 +-
code/game/objects/items/storage/belt.dm | 4 +-
code/game/objects/items/storage/fancy.dm | 197 +++++++++---------
.../game/objects/items/storage/uplink_kits.dm | 10 +-
.../crates_lockers/closets/job_closets.dm | 4 +-
.../crates_lockers/closets/secure/freezer.dm | 4 +-
code/game/objects/structures/guncase.dm | 7 +-
.../machinery/portable/canister.dm | 131 ++++--------
code/modules/cargo/bounties/assistant.dm | 2 +-
code/modules/cargo/packs.dm | 6 +-
code/modules/clothing/outfits/occupying.dm | 2 +-
code/modules/clothing/suits/chaplainsuits.dm | 4 +-
code/modules/clothing/suits/jobs.dm | 4 +-
code/modules/clothing/suits/miscellaneous.dm | 20 +-
code/modules/events/holiday/vday.dm | 2 +-
.../research/designs/biogenerator_designs.dm | 2 +-
.../xenobiology/crossbreeding/industrial.dm | 4 +-
code/modules/uplink/uplink_items.dm | 4 +-
code/modules/vending/cigarette.dm | 52 ++---
code/modules/vending/security.dm | 2 +-
code/modules/vending/wardrobes.dm | 2 +-
yogstation.dme | 1 +
.../_globalvars/lists/maintenance_loot.dm | 44 ++--
.../modules/clothing/suits/miscellaneous.dm | 6 +-
.../code/modules/jobs/job_types/clerk.dm | 4 +-
100 files changed, 443 insertions(+), 462 deletions(-)
create mode 100644 code/__HELPERS/lighting.dm
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
index 525013d9a402..614ad6f2687a 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
@@ -418,7 +418,7 @@
/area/ruin/powered/animal_hospital)
"bf" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes/dromedaryco,
+/obj/item/storage/fancy/cigarettes/dromedaryco,
/obj/item/storage/box/matches,
/turf/open/floor/plating,
/area/ruin/powered/animal_hospital)
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
index d9045b172bbf..f898880d6f3a 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
@@ -403,7 +403,7 @@
/area/ruin/powered/snow_biodome)
"QK" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes/cigpack_carp,
+/obj/item/storage/fancy/cigarettes/cigpack_carp,
/turf/open/floor/pod/dark,
/area/ruin/powered/snow_biodome)
"QN" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_gas_station.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_gas_station.dmm
index b2c2a59d847d..f1ad88e9d389 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_gas_station.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_gas_station.dmm
@@ -377,7 +377,7 @@
/area/ruin/powered/gasstation)
"sY" = (
/obj/machinery/vending/cigarette{
- products = list(/obj/item/storage/box/fancy/cigarettes = 3, /obj/item/storage/box/fancy/cigarettes/cigpack_uplift = 2, /obj/item/storage/box/fancy/cigarettes/cigpack_robust = 1, /obj/item/storage/box/fancy/cigarettes/cigpack_carp = 0, /obj/item/storage/box/fancy/cigarettes/cigpack_midori = 0, /obj/item/storage/box/matches = 4, /obj/item/lighter/greyscale = 1, /obj/item/storage/box/fancy/rollingpapers = 3)
+ products = list(/obj/item/storage/fancy/cigarettes = 3, /obj/item/storage/fancy/cigarettes/cigpack_uplift = 2, /obj/item/storage/fancy/cigarettes/cigpack_robust = 1, /obj/item/storage/fancy/cigarettes/cigpack_carp = 0, /obj/item/storage/fancy/cigarettes/cigpack_midori = 0, /obj/item/storage/box/matches = 4, /obj/item/lighter/greyscale = 1, /obj/item/storage/fancy/rollingpapers = 3)
},
/turf/open/floor/plasteel/white,
/area/ruin/powered/gasstation)
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_russianbunker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_russianbunker.dmm
index 01389f9c7d8d..152899714d8f 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_russianbunker.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_russianbunker.dmm
@@ -258,7 +258,7 @@
"aU" = (
/obj/machinery/light,
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/wood,
/area/ruin/unpowered/russianbunker)
"aX" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
index 501e9a62dfc9..67cdcb220be7 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
@@ -15,10 +15,10 @@
/obj/structure/table/wood,
/obj/item/lighter,
/obj/item/lighter,
-/obj/item/storage/box/fancy/rollingpapers,
-/obj/item/storage/box/fancy/rollingpapers,
-/obj/item/storage/box/fancy/rollingpapers,
-/obj/item/storage/box/fancy/rollingpapers,
+/obj/item/storage/fancy/rollingpapers,
+/obj/item/storage/fancy/rollingpapers,
+/obj/item/storage/fancy/rollingpapers,
+/obj/item/storage/fancy/rollingpapers,
/turf/open/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"e" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
index f7b1265db9f3..c7fc3cb512d0 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
@@ -1700,7 +1700,7 @@
/obj/item/reagent_containers/glass/beaker/cryoxadone,
/obj/item/reagent_containers/glass/beaker/cryoxadone,
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/siding/blue{
dir = 9
},
@@ -2159,7 +2159,7 @@
},
/obj/item/storage/toolbox/syndicate,
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/mineral/plastitanium,
/area/ruin/powered/syndicate_lava_base/telecomms)
"jc" = (
@@ -5772,14 +5772,14 @@
},
/obj/item/storage/toolbox/mechanical,
/obj/effect/turf_decal/tile/neutral/fourcorners,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/item/vending_refill/sovietsoda,
/turf/open/floor/plasteel/dark,
/area/ruin/powered/syndicate_lava_base/cargo)
diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm
index f18cb8193311..9e17af871595 100644
--- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm
+++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm
@@ -2419,7 +2419,7 @@
/area/awaymission/BMPship/Aft)
"hq" = (
/obj/item/storage/box/matches,
-/obj/item/storage/box/fancy/cigarettes/dromedaryco,
+/obj/item/storage/fancy/cigarettes/dromedaryco,
/turf/open/floor/plating,
/area/awaymission/BMPship/Aft)
"hr" = (
diff --git a/_maps/RandomRuins/SpaceRuins/gameroom.dmm b/_maps/RandomRuins/SpaceRuins/gameroom.dmm
index 647583848262..e146bce6fedc 100644
--- a/_maps/RandomRuins/SpaceRuins/gameroom.dmm
+++ b/_maps/RandomRuins/SpaceRuins/gameroom.dmm
@@ -744,7 +744,7 @@
/area/ruin/space/has_grav/powered/gaming)
"HV" = (
/obj/machinery/vending/gifts{
- products = list(/obj/item/toy/heartballoon = 3, /obj/item/toy/toyballoon = 3, /obj/item/toy/gun/toyglock = 3, /obj/item/toy/gun/toyflaregun = 3, /obj/item/toy/toygrenade = 15, /obj/item/toy/plush/teddybear = 5, /obj/item/toy/plush/stuffedmonkey = 5, /obj/item/toy/plush/flowerbunch = 5, /obj/item/camera_film = 30, /obj/item/storage/photo_album = 5, /obj/item/storage/photobook = 5, /obj/item/hourglass = 2, /obj/item/toy/frisbee = 2, /obj/item/toy/boomerang = 2, /obj/item/storage/bag/photo = 5, /obj/item/toy/plush/bubbleplush = 2, /obj/item/toy/plush/plushvar = 2, /obj/item/toy/plush/narplush = 2, /obj/item/toy/plush/lizardplushie = 2, /obj/item/toy/plush/snakeplushie = 2, /obj/item/toy/plush/nukeplushie = 2, /obj/item/toy/plush/slimeplushie = 2, /obj/item/toy/plush/inorixplushie = 2, /obj/item/toy/plush/beeplushie = 2, /obj/item/instrument/accordion = 1, /obj/item/instrument/eguitar = 1, /obj/item/instrument/glockenspiel = 1, /obj/item/instrument/harmonica = 1, /obj/item/instrument/recorder = 1, /obj/item/instrument/saxophone = 1, /obj/item/instrument/trombone = 1, /obj/item/instrument/trumpet = 1, /obj/item/instrument/piano_synth = 1, /obj/item/instrument/banjo = 1, /obj/item/storage/backpack = 4, /obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 1, /obj/item/reagent_containers/pill/epinephrine = 1, /obj/item/reagent_containers/glass/beaker/large = 2, /obj/item/flashlight = 3, /obj/item/flashlight/flare = 1, /obj/item/storage/toolbox/mechanical = 1, /obj/item/stack/cable_coil/random = 4, /obj/item/pda = 8, /obj/item/cartridge/engineering = 2, /obj/item/cartridge/atmos = 2, /obj/item/cartridge/medical = 2, /obj/item/cartridge/chemistry = 2, /obj/item/cartridge/janitor = 2, /obj/item/cartridge/lawyer = 2, /obj/item/cartridge/curator = 2, /obj/item/cartridge/roboticist = 2, /obj/item/cartridge/quartermaster = 2, /obj/item/storage/box/fancy/candle_box = 2, /obj/item/storage/crayons = 2)
+ products = list(/obj/item/toy/heartballoon = 3, /obj/item/toy/toyballoon = 3, /obj/item/toy/gun/toyglock = 3, /obj/item/toy/gun/toyflaregun = 3, /obj/item/toy/toygrenade = 15, /obj/item/toy/plush/teddybear = 5, /obj/item/toy/plush/stuffedmonkey = 5, /obj/item/toy/plush/flowerbunch = 5, /obj/item/camera_film = 30, /obj/item/storage/photo_album = 5, /obj/item/storage/photobook = 5, /obj/item/hourglass = 2, /obj/item/toy/frisbee = 2, /obj/item/toy/boomerang = 2, /obj/item/storage/bag/photo = 5, /obj/item/toy/plush/bubbleplush = 2, /obj/item/toy/plush/plushvar = 2, /obj/item/toy/plush/narplush = 2, /obj/item/toy/plush/lizardplushie = 2, /obj/item/toy/plush/snakeplushie = 2, /obj/item/toy/plush/nukeplushie = 2, /obj/item/toy/plush/slimeplushie = 2, /obj/item/toy/plush/inorixplushie = 2, /obj/item/toy/plush/beeplushie = 2, /obj/item/instrument/accordion = 1, /obj/item/instrument/eguitar = 1, /obj/item/instrument/glockenspiel = 1, /obj/item/instrument/harmonica = 1, /obj/item/instrument/recorder = 1, /obj/item/instrument/saxophone = 1, /obj/item/instrument/trombone = 1, /obj/item/instrument/trumpet = 1, /obj/item/instrument/piano_synth = 1, /obj/item/instrument/banjo = 1, /obj/item/storage/backpack = 4, /obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 1, /obj/item/reagent_containers/pill/epinephrine = 1, /obj/item/reagent_containers/glass/beaker/large = 2, /obj/item/flashlight = 3, /obj/item/flashlight/flare = 1, /obj/item/storage/toolbox/mechanical = 1, /obj/item/stack/cable_coil/random = 4, /obj/item/pda = 8, /obj/item/cartridge/engineering = 2, /obj/item/cartridge/atmos = 2, /obj/item/cartridge/medical = 2, /obj/item/cartridge/chemistry = 2, /obj/item/cartridge/janitor = 2, /obj/item/cartridge/lawyer = 2, /obj/item/cartridge/curator = 2, /obj/item/cartridge/roboticist = 2, /obj/item/cartridge/quartermaster = 2, /obj/item/storage/fancy/candle_box = 2, /obj/item/storage/crayons = 2)
},
/obj/machinery/light{
dir = 8
diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm
index 04299debb6e6..2b2eea4d3c0d 100644
--- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm
+++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm
@@ -283,7 +283,7 @@
/area/tcommsat/oldaisat)
"aZ" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/turf/open/floor/plasteel/airless,
/area/tcommsat/oldaisat)
"ba" = (
diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm
index b4224844470b..a2c9ada59526 100644
--- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm
+++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm
@@ -6389,7 +6389,7 @@
"Fj" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_y = 3
},
/turf/open/floor/plasteel,
diff --git a/_maps/RandomRuins/SpaceRuins/pubby_monastery.dmm b/_maps/RandomRuins/SpaceRuins/pubby_monastery.dmm
index e11acf100bd8..5b1b52cecd7c 100644
--- a/_maps/RandomRuins/SpaceRuins/pubby_monastery.dmm
+++ b/_maps/RandomRuins/SpaceRuins/pubby_monastery.dmm
@@ -290,7 +290,7 @@
/area/ruin/space/has_grav/monastery)
"dF" = (
/obj/structure/table/wood/fancy,
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/obj/machinery/light/small,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/monastery)
@@ -1627,7 +1627,7 @@
/area/ruin/space/has_grav/monastery)
"uP" = (
/obj/structure/table/wood/fancy,
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/turf/open/floor/carpet,
/area/ruin/space/has_grav/monastery/library)
"uX" = (
@@ -1669,7 +1669,7 @@
/area/hydroponics/garden/monastery)
"vs" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/obj/structure/table/wood,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/monastery)
diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
index 4acd93bb0e3f..2dd6ed0b679f 100644
--- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
@@ -3976,7 +3976,7 @@
/area/ruin/space/has_grav/hotel/security)
"kA" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/hotel/security)
"kB" = (
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_arcade.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_arcade.dmm
index 2d959b4a81d1..8f08f7aad883 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_arcade.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_arcade.dmm
@@ -892,7 +892,7 @@
/area/crew_quarters/bar)
"Px" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_box.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_box.dmm
index d320e380cdde..2117bf436e8d 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_box.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_box.dmm
@@ -718,7 +718,7 @@
/area/crew_quarters/kitchen)
"bT" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_casino.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_casino.dmm
index 35986d7ec2aa..5f2788da0dea 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_casino.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_casino.dmm
@@ -930,7 +930,7 @@
id = "kitchen";
name = "kitchen shutters"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_citadel.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_citadel.dmm
index 773706f5a768..c77d2da9969b 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_citadel.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_citadel.dmm
@@ -1387,7 +1387,7 @@
id = "kitchen";
name = "kitchen shutters"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
dir = 1
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_clock.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_clock.dmm
index b036c235a50a..d019e7d27b13 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_clock.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_clock.dmm
@@ -445,7 +445,7 @@
/turf/open/floor/bronze/reebe,
/area/crew_quarters/bar)
"oO" = (
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm
index 2735a6065c16..bbc2d9ce3a17 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm
@@ -1146,7 +1146,7 @@
id = "kitchen";
name = "kitchen shutters"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_diner.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_diner.dmm
index 9ee93a5c40a4..5319ea420ab6 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_diner.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_diner.dmm
@@ -1157,7 +1157,7 @@
id = "kitchen";
name = "kitchen shutters"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_disco.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_disco.dmm
index 1e4aa6aeed3f..de6b47d1c6e8 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_disco.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_disco.dmm
@@ -782,7 +782,7 @@
id = "kitchen";
name = "kitchen shutters"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_grassy.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_grassy.dmm
index 853a9247efa0..06373c458dbf 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_grassy.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_grassy.dmm
@@ -430,7 +430,7 @@
id = "kitchen";
name = "kitchen shutters"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_irish.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_irish.dmm
index 010b8e9f10ac..2e46a7c7a720 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_irish.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_irish.dmm
@@ -1678,7 +1678,7 @@
/area/crew_quarters/bar)
"FU" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_purple.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_purple.dmm
index ceb16098146c..aff65547036f 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_purple.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_purple.dmm
@@ -1264,7 +1264,7 @@
/obj/structure/table/reinforced{
color = "purple"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm
index d890017f279d..955edf73ab76 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm
@@ -1018,7 +1018,7 @@
/area/crew_quarters/bar)
"FR" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
diff --git a/_maps/RandomRuins/StationRuins/BoxStation/bar_trek.dmm b/_maps/RandomRuins/StationRuins/BoxStation/bar_trek.dmm
index 9d9702621ac2..94bdf170e787 100644
--- a/_maps/RandomRuins/StationRuins/BoxStation/bar_trek.dmm
+++ b/_maps/RandomRuins/StationRuins/BoxStation/bar_trek.dmm
@@ -1197,7 +1197,7 @@
/area/crew_quarters/bar)
"Nw" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
diff --git a/_maps/RandomRuins/StationRuins/maint/10x10/10x10_pubbybar.dmm b/_maps/RandomRuins/StationRuins/maint/10x10/10x10_pubbybar.dmm
index ea8d90af4c26..36eb9b50c538 100644
--- a/_maps/RandomRuins/StationRuins/maint/10x10/10x10_pubbybar.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/10x10/10x10_pubbybar.dmm
@@ -204,7 +204,7 @@
"J" = (
/obj/structure/table,
/obj/item/stack/spacecash/c20,
-/obj/item/storage/box/fancy/cigarettes/cigars,
+/obj/item/storage/fancy/cigarettes/cigars,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
diff --git a/_maps/RandomRuins/StationRuins/maint/10x10/10x10_snakefighter.dmm b/_maps/RandomRuins/StationRuins/maint/10x10/10x10_snakefighter.dmm
index 9dd2f7a567a8..4fa5e0a7d3ec 100644
--- a/_maps/RandomRuins/StationRuins/maint/10x10/10x10_snakefighter.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/10x10/10x10_snakefighter.dmm
@@ -258,7 +258,7 @@
/turf/open/floor/plating,
/area/template_noop)
"V" = (
-/obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims,
+/obj/item/storage/fancy/cigarettes/cigpack_shadyjims,
/turf/open/floor/wood,
/area/template_noop)
"W" = (
diff --git a/_maps/RandomRuins/StationRuins/maint/3x3/3x3_boxwindow.dmm b/_maps/RandomRuins/StationRuins/maint/3x3/3x3_boxwindow.dmm
index 7dc6f3085a8a..cee1eb880c8f 100644
--- a/_maps/RandomRuins/StationRuins/maint/3x3/3x3_boxwindow.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/3x3/3x3_boxwindow.dmm
@@ -37,7 +37,7 @@
/area/template_noop)
"F" = (
/obj/item/storage/box/matches,
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/obj/structure/table_frame,
/turf/open/floor/plating{
icon_state = "platingdmg2"
diff --git a/_maps/RandomRuins/StationRuins/maint/3x3/3x3_donut.dmm b/_maps/RandomRuins/StationRuins/maint/3x3/3x3_donut.dmm
index e6f624095691..30cc3ae17d55 100644
--- a/_maps/RandomRuins/StationRuins/maint/3x3/3x3_donut.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/3x3/3x3_donut.dmm
@@ -50,7 +50,7 @@
/area/template_noop)
"K" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = -2;
pixel_y = 5
},
diff --git a/_maps/RandomRuins/StationRuins/maint/3x3/3x3_pubbyclutter1.dmm b/_maps/RandomRuins/StationRuins/maint/3x3/3x3_pubbyclutter1.dmm
index d6fb2e5bf939..f4f784eaa755 100644
--- a/_maps/RandomRuins/StationRuins/maint/3x3/3x3_pubbyclutter1.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/3x3/3x3_pubbyclutter1.dmm
@@ -31,7 +31,7 @@
/turf/open/floor/plating,
/area/template_noop)
"A" = (
-/obj/item/storage/box/fancy/cigarettes/cigpack_robustgold,
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
/obj/structure/table_frame,
/turf/open/floor/plating,
/area/template_noop)
diff --git a/_maps/RandomRuins/StationRuins/maint/5x3/5x3_yogsmaintdet.dmm b/_maps/RandomRuins/StationRuins/maint/5x3/5x3_yogsmaintdet.dmm
index 0b7c2a39dba6..fb914c81bf46 100644
--- a/_maps/RandomRuins/StationRuins/maint/5x3/5x3_yogsmaintdet.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/5x3/5x3_yogsmaintdet.dmm
@@ -42,7 +42,7 @@
/area/maintenance/aft)
"Z" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigpack_uplift,
+/obj/item/storage/fancy/cigarettes/cigpack_uplift,
/obj/item/cigbutt,
/turf/open/floor/wood,
/area/maintenance/aft)
diff --git a/_maps/RandomRuins/StationRuins/maint/5x4/5x4_deltadetective.dmm b/_maps/RandomRuins/StationRuins/maint/5x4/5x4_deltadetective.dmm
index e1f32fd311a0..e58043ebb7d1 100644
--- a/_maps/RandomRuins/StationRuins/maint/5x4/5x4_deltadetective.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/5x4/5x4_deltadetective.dmm
@@ -50,8 +50,8 @@
/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/pen,
-/obj/item/storage/box/fancy/cigarettes/cigpack_carp,
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes/cigpack_carp,
+/obj/item/storage/fancy/cigarettes,
/turf/open/floor/carpet/red,
/area/template_noop)
"n" = (
diff --git a/_maps/RandomRuins/StationRuins/maint/5x4/5x4_pass.dmm b/_maps/RandomRuins/StationRuins/maint/5x4/5x4_pass.dmm
index 94b3881a33bb..914c69dce424 100644
--- a/_maps/RandomRuins/StationRuins/maint/5x4/5x4_pass.dmm
+++ b/_maps/RandomRuins/StationRuins/maint/5x4/5x4_pass.dmm
@@ -36,7 +36,7 @@
/area/template_noop)
"T" = (
/obj/structure/chair,
-/obj/item/storage/box/fancy/cigarettes/cigpack_uplift,
+/obj/item/storage/fancy/cigarettes/cigpack_uplift,
/turf/open/floor/plating,
/area/template_noop)
diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm
index 460c387e26ee..a5f6ac34ac20 100644
--- a/_maps/RandomZLevels/TheBeach.dmm
+++ b/_maps/RandomZLevels/TheBeach.dmm
@@ -849,7 +849,7 @@
/obj/structure/closet/secure_closet/freezer/kitchen{
req_access = list(25)
},
-/obj/item/storage/box/fancy/egg_box,
+/obj/item/storage/fancy/egg_box,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/flour,
diff --git a/_maps/RandomZLevels/VR/snowdin_VR.dmm b/_maps/RandomZLevels/VR/snowdin_VR.dmm
index 08bb1e8c5566..a11ea4463d80 100644
--- a/_maps/RandomZLevels/VR/snowdin_VR.dmm
+++ b/_maps/RandomZLevels/VR/snowdin_VR.dmm
@@ -2553,7 +2553,7 @@
/area/awaymission/snowdin/post/messhall)
"fO" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
diff --git a/_maps/RandomZLevels/VR/syndicate_trainer.dmm b/_maps/RandomZLevels/VR/syndicate_trainer.dmm
index 1fc1b4328a38..2d97de497a31 100644
--- a/_maps/RandomZLevels/VR/syndicate_trainer.dmm
+++ b/_maps/RandomZLevels/VR/syndicate_trainer.dmm
@@ -448,7 +448,7 @@
/area/awaymission/centcomAway/hangar)
"cK" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/mineral/titanium/yellow,
/area/awaymission/centcomAway/hangar)
"cL" = (
@@ -617,7 +617,7 @@
/area/awaymission/centcomAway/hangar)
"dC" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/indestructible,
/area/awaymission/centcomAway/cafe)
"dE" = (
diff --git a/_maps/RandomZLevels/VR/vrhub.dmm b/_maps/RandomZLevels/VR/vrhub.dmm
index 0c21c794f44e..2e2b54f95c2d 100644
--- a/_maps/RandomZLevels/VR/vrhub.dmm
+++ b/_maps/RandomZLevels/VR/vrhub.dmm
@@ -1324,7 +1324,7 @@
/area/awaymission/vr/syndicate)
"qD" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/indestructible,
/area/awaymission/vr/syndicate)
"qF" = (
@@ -1935,7 +1935,7 @@
/area/awaymission/vr/hub)
"Bp" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/mineral/titanium/yellow,
/area/awaymission/vr/syndicate)
"Bq" = (
diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm
index 8971737f2c1e..5a725be75640 100644
--- a/_maps/RandomZLevels/moonoutpost19.dmm
+++ b/_maps/RandomZLevels/moonoutpost19.dmm
@@ -5968,7 +5968,7 @@
/area/awaymission/moonoutpost19/arrivals)
"lH" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes/dromedaryco,
+/obj/item/storage/fancy/cigarettes/dromedaryco,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
@@ -6219,7 +6219,7 @@
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
-/obj/item/storage/box/fancy/egg_box,
+/obj/item/storage/fancy/egg_box,
/turf/open/floor/plasteel/showroomfloor{
heat_capacity = 1e+006;
temperature = 273.15
diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm
index a41f693aecc1..08ced079adc5 100644
--- a/_maps/RandomZLevels/research.dmm
+++ b/_maps/RandomZLevels/research.dmm
@@ -2910,7 +2910,7 @@
/area/awaymission/research/interior/security)
"gb" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -5704,7 +5704,7 @@
/area/awaymission/research/interior/medbay)
"lx" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes/dromedaryco,
+/obj/item/storage/fancy/cigarettes/dromedaryco,
/obj/effect/turf_decal/tile/blue{
dir = 1
},
diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm
index 89f7750cd8e1..69a2ac9a86c6 100644
--- a/_maps/RandomZLevels/snowdin.dmm
+++ b/_maps/RandomZLevels/snowdin.dmm
@@ -2570,7 +2570,7 @@
/area/awaymission/snowdin/post/messhall)
"fO" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm
index c887b018a1c6..6018b157064b 100644
--- a/_maps/RandomZLevels/undergroundoutpost45.dmm
+++ b/_maps/RandomZLevels/undergroundoutpost45.dmm
@@ -498,7 +498,7 @@
/area/awaymission/undergroundoutpost45/central)
"bo" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes{
+/obj/item/storage/fancy/cigarettes{
pixel_y = 2
},
/obj/item/lighter{
@@ -1781,7 +1781,7 @@
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
-/obj/item/storage/box/fancy/egg_box,
+/obj/item/storage/fancy/egg_box,
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/secure_closet/freezer{
locked = 0;
@@ -13020,7 +13020,7 @@
/area/awaymission/undergroundoutpost45/mining)
"xb" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/cigarettes{
+/obj/item/storage/fancy/cigarettes{
pixel_x = -2
},
/obj/item/lighter{
diff --git a/_maps/map_files/AsteroidStation/AsteroidStation.dmm b/_maps/map_files/AsteroidStation/AsteroidStation.dmm
index b2272d5e7ca9..7897169e1248 100644
--- a/_maps/map_files/AsteroidStation/AsteroidStation.dmm
+++ b/_maps/map_files/AsteroidStation/AsteroidStation.dmm
@@ -369,7 +369,7 @@
/obj/structure/bed,
/obj/item/bedsheet/red,
/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/box/fancy/cigarettes/cigpack_syndicate,
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
/turf/open/floor/wood,
/area/ruin/space/has_grav/listeningstation)
"ady" = (
@@ -402,7 +402,7 @@
/area/science/test_area)
"adL" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/wood,
/area/vacant_room)
"adP" = (
@@ -1395,7 +1395,7 @@
/area/science/research)
"amm" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/item/coin/silver,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
@@ -6570,7 +6570,7 @@
/area/medical/patients_rooms/room_b)
"bkf" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigpack_robustgold,
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
/turf/open/floor/carpet/blue,
/area/bridge/meeting_room)
"bkh" = (
@@ -13351,7 +13351,7 @@
pixel_x = 24
},
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
},
@@ -18197,7 +18197,7 @@
/area/medical/chemistry)
"fgb" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = -2;
pixel_y = 10
},
@@ -22192,7 +22192,7 @@
/area/maintenance/department/tcoms)
"gyp" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"gyr" = (
@@ -22300,7 +22300,7 @@
/obj/item/bedsheet/red,
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/russian,
-/obj/item/storage/box/fancy/cigarettes/cigpack_cannabis,
+/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
/turf/open/floor/wood,
/area/ruin/space/has_grav/listeningstation)
"gzO" = (
@@ -28626,7 +28626,7 @@
pixel_y = 5
},
/obj/item/restraints/handcuffs/cable/zipties,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel/dark,
/area/bridge)
"iEo" = (
@@ -33007,7 +33007,7 @@
/area/hallway/primary/fore)
"jWJ" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/carpet/blue,
/area/bridge/meeting_room)
"jXf" = (
@@ -53293,11 +53293,11 @@
/area/maintenance/port)
"qAZ" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba{
+/obj/item/storage/fancy/cigarettes/cigars/cohiba{
pixel_x = 2;
pixel_y = 3
},
-/obj/item/storage/box/fancy/cigarettes/cigars/havana{
+/obj/item/storage/fancy/cigarettes/cigars/havana{
pixel_x = -3;
pixel_y = 9
},
@@ -56127,9 +56127,9 @@
/area/maintenance/starboard/aft)
"rwo" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/candle_box,
-/obj/item/storage/box/fancy/candle_box,
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/obj/item/storage/crayons,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/wood,
diff --git a/_maps/map_files/GaxStation/GaxStation.dmm b/_maps/map_files/GaxStation/GaxStation.dmm
index a834d08a2ceb..3aed26e0562c 100644
--- a/_maps/map_files/GaxStation/GaxStation.dmm
+++ b/_maps/map_files/GaxStation/GaxStation.dmm
@@ -12273,7 +12273,7 @@
pixel_x = 8;
pixel_y = 4
},
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = -5;
pixel_y = -6
},
@@ -23685,7 +23685,7 @@
dir = 8
},
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel/dark,
/area/bridge)
"lEP" = (
@@ -41074,7 +41074,7 @@
/obj/structure/chair{
dir = 4
},
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/turf/open/floor/plating,
/area/maintenance/department/eva)
"ujT" = (
@@ -45521,7 +45521,7 @@
/area/engine/engineering)
"wsU" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/light_switch{
pixel_x = 24
},
@@ -47198,7 +47198,7 @@
/area/hallway/primary/central)
"xjw" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = -5;
pixel_y = 6
},
diff --git a/_maps/map_files/YogStation/YogStation.dmm b/_maps/map_files/YogStation/YogStation.dmm
index c3323cb1ba26..a8a3e333944a 100644
--- a/_maps/map_files/YogStation/YogStation.dmm
+++ b/_maps/map_files/YogStation/YogStation.dmm
@@ -4422,7 +4422,7 @@
pixel_x = 6;
pixel_y = -4
},
-/obj/item/storage/box/fancy/cigarettes/cigpack_robust{
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
pixel_x = 12;
pixel_y = 7
},
@@ -7587,7 +7587,7 @@
/area/tcommsat/server)
"bch" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/captain)
"bcn" = (
@@ -14211,7 +14211,7 @@
/area/hallway/secondary/entry)
"cmV" = (
/obj/structure/chair,
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cna" = (
@@ -18932,7 +18932,7 @@
/area/construction/mining/aux_base)
"dRK" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes{
+/obj/item/storage/fancy/cigarettes{
pixel_y = 2
},
/obj/item/lighter/greyscale{
@@ -22895,7 +22895,7 @@
pixel_x = 2;
pixel_y = -2
},
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = -2;
pixel_y = 10
},
@@ -27513,7 +27513,7 @@
/area/medical/medbay/lobby)
"hcu" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/heart_box{
+/obj/item/storage/fancy/heart_box{
pixel_x = 15;
pixel_y = -1
},
@@ -38694,7 +38694,7 @@
/area/storage/tech)
"lqw" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = 4;
pixel_y = -3
},
@@ -39051,7 +39051,7 @@
pixel_x = -8;
pixel_y = 2
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/trimline/secred/filled/line/lower{
dir = 9
},
@@ -51495,7 +51495,7 @@
/turf/open/floor/plasteel,
/area/security/prison)
"qmf" = (
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/structure/table,
/obj/structure/cable{
icon_state = "2-8"
@@ -67449,7 +67449,7 @@
/area/engine/engineering)
"wts" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes{
+/obj/item/storage/fancy/cigarettes{
pixel_x = -5;
pixel_y = 6
},
diff --git a/_maps/map_files/Yogsmeta/Yogsmeta.dmm b/_maps/map_files/Yogsmeta/Yogsmeta.dmm
index 088d84539dcc..2622203df19d 100644
--- a/_maps/map_files/Yogsmeta/Yogsmeta.dmm
+++ b/_maps/map_files/Yogsmeta/Yogsmeta.dmm
@@ -757,7 +757,7 @@
/obj/item/taperecorder{
pixel_x = -3
},
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/obj/item/assembly/flash/handheld,
/obj/item/reagent_containers/spray/pepper,
/obj/effect/turf_decal/tile/red{
@@ -781,7 +781,7 @@
pixel_x = -24
},
/obj/structure/rack,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/item/gun/energy/e_gun/dragnet,
/obj/item/gun/energy/e_gun/dragnet,
/obj/effect/turf_decal/tile/neutral{
@@ -5688,7 +5688,7 @@
"apS" = (
/obj/structure/table,
/obj/item/folder/red,
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/obj/item/clothing/mask/gas/sechailer,
/turf/open/floor/plasteel,
/area/security/main)
@@ -7933,7 +7933,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/item/storage/box/fancy/candle_box{
+/obj/item/storage/fancy/candle_box{
pixel_y = 5
},
/obj/structure/table/wood,
@@ -16989,7 +16989,7 @@
dir = 8
},
/obj/structure/rack,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/item/storage/box/donkpockets,
/obj/machinery/airalarm{
dir = 8;
@@ -19010,7 +19010,7 @@
icon_state = "0-4"
},
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
"aUJ" = (
@@ -22275,7 +22275,7 @@
/turf/open/floor/plasteel,
/area/security/checkpoint/customs)
"bdc" = (
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/structure/table/glass,
/obj/machinery/firealarm{
dir = 8;
@@ -23097,7 +23097,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain/private)
"bff" = (
@@ -25689,7 +25689,7 @@
/area/bridge)
"bkJ" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "Serving Hatch"
@@ -45658,8 +45658,8 @@
name = "memorial board";
pixel_y = 32
},
-/obj/item/storage/box/fancy/candle_box,
-/obj/item/storage/box/fancy/candle_box{
+/obj/item/storage/fancy/candle_box,
+/obj/item/storage/fancy/candle_box{
pixel_x = -2;
pixel_y = 2
},
@@ -66177,7 +66177,7 @@
icon_state = "minibar";
name = "skeletal minibar"
},
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/turf/open/floor/engine/cult,
/area/library)
"nXM" = (
@@ -70812,7 +70812,7 @@
/obj/item/gps{
gpstag = "QM0"
},
-/obj/item/storage/box/fancy/cigarettes/cigars{
+/obj/item/storage/fancy/cigarettes/cigars{
pixel_y = 4
},
/obj/item/lighter,
@@ -81800,7 +81800,7 @@
/area/crew_quarters/theatre)
"xTA" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes,
+/obj/item/storage/fancy/cigarettes,
/obj/item/clothing/glasses/sunglasses,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
/turf/open/floor/carpet,
diff --git a/_maps/map_files/debug/multiz.dmm b/_maps/map_files/debug/multiz.dmm
index 2704a71d5dc1..022e0cc76fc2 100644
--- a/_maps/map_files/debug/multiz.dmm
+++ b/_maps/map_files/debug/multiz.dmm
@@ -881,14 +881,14 @@
/area/hallway/secondary/entry)
"cI" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel{
dir = 8
},
/area/hallway/secondary/entry)
"cJ" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel{
dir = 10
},
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index fb099fd2fdb3..a7695af74b5c 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -3273,7 +3273,7 @@
/area/centcom/control)
"aiz" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/control)
@@ -6303,7 +6303,7 @@
/area/centcom/ferry)
"aoD" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/carpet/green,
/area/centcom/ferry)
"aoE" = (
@@ -6686,7 +6686,7 @@
/area/centcom/control)
"apn" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -6807,7 +6807,7 @@
/area/centcom/control)
"apu" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/light,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -8796,7 +8796,7 @@
/area/holodeck/rec_center/spacechess)
"atc" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigars/havana,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
/turf/open/floor/plasteel,
/area/centcom/testchamber)
"atd" = (
@@ -9006,7 +9006,7 @@
/turf/open/floor/carpet/green,
/area/centcom/ferry)
"atB" = (
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/structure/table/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/carpet/green,
@@ -10160,7 +10160,7 @@
/area/centcom/control)
"avK" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -11666,7 +11666,7 @@
/area/syndicate_mothership/control)
"ayY" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -12877,7 +12877,7 @@
/area/space)
"aBx" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -13088,7 +13088,7 @@
"aBN" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/door/window/brigdoor{
base_state = "rightsecure";
dir = 1;
@@ -14101,7 +14101,7 @@
"aDt" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/structure/window/reinforced{
dir = 4
},
@@ -16605,13 +16605,13 @@
/turf/open/floor/plasteel/dark,
/area/tdome/tdomeobserve)
"aIe" = (
-/obj/item/storage/box/fancy/cigarettes/cigars{
+/obj/item/storage/fancy/cigarettes/cigars{
pixel_y = 6
},
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba{
+/obj/item/storage/fancy/cigarettes/cigars/cohiba{
pixel_y = 3
},
-/obj/item/storage/box/fancy/cigarettes/cigars/havana,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
/obj/structure/table/wood,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -17930,7 +17930,7 @@
/area/tdome/tdomeadmin)
"aKx" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -18390,7 +18390,7 @@
dir = 8
},
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/obj/item/hand_labeler,
/turf/open/floor/holofloor{
icon_state = "darkfull"
@@ -19289,9 +19289,9 @@
/obj/item/vending_refill/autodrobe,
/obj/item/stack/sheet/paperframes/fifty,
/obj/item/stack/sheet/paperframes/fifty,
-/obj/item/storage/box/fancy/candle_box,
-/obj/item/storage/box/fancy/candle_box,
-/obj/item/storage/box/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
+/obj/item/storage/fancy/candle_box,
/obj/item/storage/box/lights/mixed,
/turf/open/floor/wood,
/area/centcom/holding)
@@ -22606,7 +22606,7 @@
/area/centcom/testchamber)
"aTT" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel,
/area/centcom/supplypod)
"aTU" = (
@@ -25635,7 +25635,7 @@
/area/brazil)
"bfK" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = 12;
pixel_y = 7
},
@@ -25840,7 +25840,7 @@
/area/centcom/testchamber)
"fpM" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba{
+/obj/item/storage/fancy/cigarettes/cigars/cohiba{
pixel_y = 3
},
/obj/effect/spawner/lootdrop/donkpockets{
diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm
index 90762a9dd9aa..43f47cb4a814 100644
--- a/_maps/shuttles/emergency_bar.dmm
+++ b/_maps/shuttles/emergency_bar.dmm
@@ -40,7 +40,7 @@
/area/shuttle/escape)
"ai" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigars/havana,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
/obj/item/lighter{
pixel_x = -4;
pixel_y = 6
@@ -596,7 +596,7 @@
/area/shuttle/escape)
"bJ" = (
/obj/structure/table/wood/bar,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"bK" = (
@@ -618,7 +618,7 @@
/obj/structure/table,
/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/storage/box/fancy/cigarettes/cigars/havana,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm
index 641d335aca49..cf16f1abf94e 100644
--- a/_maps/shuttles/emergency_delta.dmm
+++ b/_maps/shuttles/emergency_delta.dmm
@@ -1094,7 +1094,7 @@
/area/shuttle/escape)
"cd" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
diff --git a/_maps/shuttles/emergency_discoinferno.dmm b/_maps/shuttles/emergency_discoinferno.dmm
index c868a4b526c5..3ce2293de3f2 100644
--- a/_maps/shuttles/emergency_discoinferno.dmm
+++ b/_maps/shuttles/emergency_discoinferno.dmm
@@ -26,7 +26,7 @@
/area/shuttle/escape)
"g" = (
/obj/structure/table/wood,
-/obj/item/storage/box/fancy/cigarettes/cigars/havana,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
/obj/item/lighter{
pixel_x = -4;
pixel_y = 6
diff --git a/_maps/shuttles/emergency_donut.dmm b/_maps/shuttles/emergency_donut.dmm
index 2298ddba9de3..506ba56e6d9f 100644
--- a/_maps/shuttles/emergency_donut.dmm
+++ b/_maps/shuttles/emergency_donut.dmm
@@ -92,7 +92,7 @@
/area/shuttle/escape)
"as" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"at" = (
@@ -202,7 +202,7 @@
/area/shuttle/escape)
"aI" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/item/book/manual/wiki/security_space_law,
/obj/item/storage/box/handcuffs,
/turf/open/floor/mineral/plastitanium/red/brig,
diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm
index 5d2844f4e6aa..994d7033e3cb 100644
--- a/_maps/shuttles/emergency_kilo.dmm
+++ b/_maps/shuttles/emergency_kilo.dmm
@@ -304,7 +304,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"aG" = (
diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm
index 039ecffa6c10..499db62f610f 100644
--- a/_maps/shuttles/emergency_luxury.dmm
+++ b/_maps/shuttles/emergency_luxury.dmm
@@ -77,7 +77,7 @@
/area/shuttle/escape/luxury)
"dD" = (
/obj/structure/table/wood/fancy/black,
-/obj/item/storage/box/fancy/cigarettes/cigars/havana{
+/obj/item/storage/fancy/cigarettes/cigars/havana{
pixel_x = 4;
pixel_y = 4
},
diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm
index 8c1f76cbde39..3a27d3376aeb 100644
--- a/_maps/shuttles/emergency_meta.dmm
+++ b/_maps/shuttles/emergency_meta.dmm
@@ -235,7 +235,7 @@
/area/shuttle/escape)
"aw" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ax" = (
diff --git a/_maps/shuttles/emergency_mini.dmm b/_maps/shuttles/emergency_mini.dmm
index eaaa99806343..2542dc3587fb 100644
--- a/_maps/shuttles/emergency_mini.dmm
+++ b/_maps/shuttles/emergency_mini.dmm
@@ -813,7 +813,7 @@
/area/shuttle/escape)
"Ug" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"Uh" = (
diff --git a/_maps/shuttles/emergency_omega.dmm b/_maps/shuttles/emergency_omega.dmm
index 6483937d2b38..9740fe91746b 100644
--- a/_maps/shuttles/emergency_omega.dmm
+++ b/_maps/shuttles/emergency_omega.dmm
@@ -161,7 +161,7 @@
/area/shuttle/escape)
"ap" = (
/obj/structure/table/reinforced,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/light{
dir = 4
},
diff --git a/_maps/shuttles/emergency_rollerdome.dmm b/_maps/shuttles/emergency_rollerdome.dmm
index 1bf3204c6a70..c82af014fd83 100644
--- a/_maps/shuttles/emergency_rollerdome.dmm
+++ b/_maps/shuttles/emergency_rollerdome.dmm
@@ -166,7 +166,7 @@
pixel_x = -4;
pixel_y = 6
},
-/obj/item/storage/box/fancy/cigarettes/cigars/havana,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
/turf/open/floor/wood,
/area/shuttle/escape)
"wn" = (
diff --git a/_maps/shuttles/emergency_russiafightpit.dmm b/_maps/shuttles/emergency_russiafightpit.dmm
index 4f3623a37ceb..11ae04f65b78 100644
--- a/_maps/shuttles/emergency_russiafightpit.dmm
+++ b/_maps/shuttles/emergency_russiafightpit.dmm
@@ -57,7 +57,7 @@
/area/shuttle/escape)
"am" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba,
+/obj/item/storage/fancy/cigarettes/cigars/cohiba,
/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka{
pixel_x = 5;
pixel_y = 18
diff --git a/_maps/shuttles/emergency_transtar.dmm b/_maps/shuttles/emergency_transtar.dmm
index 24c36a767bf6..d81ff9873254 100644
--- a/_maps/shuttles/emergency_transtar.dmm
+++ b/_maps/shuttles/emergency_transtar.dmm
@@ -281,7 +281,7 @@
"rY" = (
/obj/structure/table/reinforced,
/obj/machinery/light,
-/obj/item/storage/box/fancy/cigarettes/cigpack_robust,
+/obj/item/storage/fancy/cigarettes/cigpack_robust,
/turf/open/floor/carpet,
/area/shuttle/escape)
"sp" = (
diff --git a/_maps/shuttles/hunter_russian.dmm b/_maps/shuttles/hunter_russian.dmm
index 279961ae49a6..5c4d481ae461 100644
--- a/_maps/shuttles/hunter_russian.dmm
+++ b/_maps/shuttles/hunter_russian.dmm
@@ -100,7 +100,7 @@
/area/shuttle/hunter)
"s" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba{
+/obj/item/storage/fancy/cigarettes/cigars/cohiba{
pixel_y = 6
},
/turf/open/floor/mineral/plastitanium,
diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm
index 1ecc20c4c220..bd848012dabc 100644
--- a/_maps/shuttles/infiltrator_basic.dmm
+++ b/_maps/shuttles/infiltrator_basic.dmm
@@ -126,7 +126,7 @@
/obj/machinery/status_display/ai{
pixel_x = 32
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/machinery/light{
dir = 4
},
diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm
index 9b74590832ab..47d0e5d7d4ba 100644
--- a/_maps/shuttles/pirate_default.dmm
+++ b/_maps/shuttles/pirate_default.dmm
@@ -1091,7 +1091,7 @@
locked = 0;
name = "fridge"
},
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/item/reagent_containers/food/snacks/cookie,
/obj/item/reagent_containers/food/snacks/cookie{
pixel_x = -6;
@@ -1263,25 +1263,25 @@
"Yj" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
-/obj/item/storage/box/fancy/cigarettes{
+/obj/item/storage/fancy/cigarettes{
pixel_x = 2;
pixel_y = 6
},
-/obj/item/storage/box/fancy/cigarettes/cigpack_carp{
+/obj/item/storage/fancy/cigarettes/cigpack_carp{
pixel_x = 10;
pixel_y = 6
},
-/obj/item/storage/box/fancy/cigarettes/cigpack_robust{
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
pixel_x = 2
},
-/obj/item/storage/box/fancy/cigarettes/cigpack_midori{
+/obj/item/storage/fancy/cigarettes/cigpack_midori{
pixel_x = 10
},
-/obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims{
+/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{
pixel_x = 2;
pixel_y = -6
},
-/obj/item/storage/box/fancy/cigarettes/cigpack_uplift{
+/obj/item/storage/fancy/cigarettes/cigpack_uplift{
pixel_x = 10;
pixel_y = -6
},
diff --git a/_maps/shuttles/ruin_pirate_cutter.dmm b/_maps/shuttles/ruin_pirate_cutter.dmm
index 07266625458e..7570ff1fc97a 100644
--- a/_maps/shuttles/ruin_pirate_cutter.dmm
+++ b/_maps/shuttles/ruin_pirate_cutter.dmm
@@ -567,7 +567,7 @@
/area/shuttle/caravan/pirate)
"qC" = (
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_y = 18
},
/obj/item/storage/box/donkpockets{
diff --git a/_maps/shuttles/whiteship_3.dmm b/_maps/shuttles/whiteship_3.dmm
index 29d6807798b5..1ff39ce07afb 100644
--- a/_maps/shuttles/whiteship_3.dmm
+++ b/_maps/shuttles/whiteship_3.dmm
@@ -486,7 +486,7 @@
"bK" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
diff --git a/_maps/shuttles/whiteship_4.dmm b/_maps/shuttles/whiteship_4.dmm
index 1bc8a03668a4..5036275297d7 100644
--- a/_maps/shuttles/whiteship_4.dmm
+++ b/_maps/shuttles/whiteship_4.dmm
@@ -1446,7 +1446,7 @@
"uM" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box{
+/obj/item/storage/fancy/donut_box{
pixel_x = -11;
pixel_y = 3
},
diff --git a/_maps/shuttles/whiteship_miner.dmm b/_maps/shuttles/whiteship_miner.dmm
index 5babcbdae153..327837a6f8bf 100644
--- a/_maps/shuttles/whiteship_miner.dmm
+++ b/_maps/shuttles/whiteship_miner.dmm
@@ -549,7 +549,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/item/storage/box/fancy/egg_box{
+/obj/item/storage/fancy/egg_box{
pixel_y = 5
},
/turf/open/floor/plasteel/showroomfloor,
@@ -1269,7 +1269,7 @@
"Sd" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/structure/table,
-/obj/item/storage/box/fancy/donut_box,
+/obj/item/storage/fancy/donut_box,
/turf/open/floor/carpet/black,
/area/shuttle/abandoned)
"Sg" = (
diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm
index 80d5ecee13e7..41281f5fe7f5 100644
--- a/_maps/templates/shelter_3.dmm
+++ b/_maps/templates/shelter_3.dmm
@@ -240,11 +240,11 @@
/area/survivalpod)
"S" = (
/obj/structure/table/wood/fancy/black,
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba,
-/obj/item/storage/box/fancy/cigarettes/cigars/havana{
+/obj/item/storage/fancy/cigarettes/cigars/cohiba,
+/obj/item/storage/fancy/cigarettes/cigars/havana{
pixel_y = 5
},
-/obj/item/storage/box/fancy/cigarettes/cigars{
+/obj/item/storage/fancy/cigarettes/cigars{
pixel_y = 10
},
/turf/open/floor/pod/dark,
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index dc3241e3b02a..543f51b78113 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -176,7 +176,7 @@ GLOBAL_LIST_INIT(detective_vest_allowed, typecacheof(list(
/obj/item/melee/classic_baton,
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
- /obj/item/storage/box/fancy/cigarettes,
+ /obj/item/storage/fancy/cigarettes,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
/obj/item/tank/internals/ipc_coolant)))
@@ -200,7 +200,7 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list(
/obj/item/ammo_box,
/obj/item/ammo_casing,
/obj/item/flashlight,
- /obj/item/storage/box/fancy/cigarettes,
+ /obj/item/storage/fancy/cigarettes,
/obj/item/gun/ballistic,
/obj/item/gun/energy,
/obj/item/lighter,
diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm
index 18f3e09c7a6c..64ff6755cc67 100644
--- a/code/__DEFINES/lighting.dm
+++ b/code/__DEFINES/lighting.dm
@@ -85,6 +85,14 @@
/// Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
#define EMISSIVE_BLOCK_UNIQUE 2
+/// The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with [EM_BLOCK_COLOR].
+#define EMISSIVE_COLOR list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 1,1,1,0)
+/// A globaly cached version of [EMISSIVE_COLOR] for quick access.
+GLOBAL_LIST_INIT(emissive_color, EMISSIVE_COLOR)
+/// A set of appearance flags applied to all emissive and emissive blocker overlays.
+/// KEEP_APART to prevent parent hooking, KEEP_TOGETHER for children, and we reset the color and alpha of our parent so nothing gets overriden
+#define EMISSIVE_APPEARANCE_FLAGS (KEEP_APART|KEEP_TOGETHER|RESET_COLOR|RESET_ALPHA)
+
/// Returns the red part of a #RRGGBB hex sequence as number
#define GETREDPART(hexa) hex2num(copytext(hexa, 2, 4))
diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm
index 7b6991ecf0c9..74cf20faa8eb 100644
--- a/code/__DEFINES/maths.dm
+++ b/code/__DEFINES/maths.dm
@@ -5,7 +5,7 @@
#define NUM_E 2.71828183
#define PI 3.1416
-#define INFINITY 1e31 //closer then enough
+#define INFINITY 1e31 //closer then enough
#define SHORT_REAL_LIMIT 16777216
diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm
new file mode 100644
index 000000000000..6a56d65ae016
--- /dev/null
+++ b/code/__HELPERS/lighting.dm
@@ -0,0 +1,13 @@
+/// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR].
+/proc/emissive_appearance(icon, icon_state = "", atom/offset_spokesman, layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE, offset_const)
+ // Note: alpha doesn't "do" anything, since it's overriden by the color set shortly after
+ // Consider removing it someday? (I wonder if we made emissives blend right we could make alpha actually matter. dreams man, dreams)
+ var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, offset_spokesman, EMISSIVE_PLANE, 255, appearance_flags | EMISSIVE_APPEARANCE_FLAGS, offset_const)
+ appearance.color = GLOB.emissive_color
+
+ //Test to make sure emissives with broken or missing icon states are created
+// if(PERFORM_ALL_TESTS(focus_only/invalid_emissives))
+// if(icon_state && !icon_exists(icon, icon_state, scream = FALSE)) //Scream set to False so we can have a custom stack_trace
+// stack_trace("An emissive appearance was added with non-existant icon_state \"[icon_state]\" in [icon]!")
+
+ return appearance
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index af626e6dd69e..b7d46bc48474 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -94,7 +94,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/box/donkpockets/donkpockethonk = 1,
/obj/item/storage/box/lights/mixed = 3,
/obj/item/storage/box/hug/medical = 1,
- /obj/item/storage/box/fancy/cigarettes/dromedaryco = 1,
+ /obj/item/storage/fancy/cigarettes/dromedaryco = 1,
/obj/item/storage/toolbox/mechanical = 1,
/obj/item/screwdriver = 3,
/obj/item/tank/internals/emergency_oxygen = 2,
diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm
index 973f0e0542fc..9a9e378c6530 100644
--- a/code/datums/traits/good.dm
+++ b/code/datums/traits/good.dm
@@ -214,7 +214,7 @@
/datum/quirk/spiritual/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
- H.equip_to_slot_or_del(new /obj/item/storage/box/fancy/candle_box(H), ITEM_SLOT_BACKPACK)
+ H.equip_to_slot_or_del(new /obj/item/storage/fancy/candle_box(H), ITEM_SLOT_BACKPACK)
H.equip_to_slot_or_del(new /obj/item/storage/box/matches(H), ITEM_SLOT_BACKPACK)
/datum/quirk/toxic_tastes
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index d978e9d53f8c..e348a55931f3 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -592,14 +592,14 @@
accessory_type = /obj/item/lighter/greyscale
/datum/quirk/junkie/smoker/on_spawn()
- drug_container_type = pick(/obj/item/storage/box/fancy/cigarettes,
- /obj/item/storage/box/fancy/cigarettes/cigpack_midori,
- /obj/item/storage/box/fancy/cigarettes/cigpack_uplift,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robust,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robustgold,
- /obj/item/storage/box/fancy/cigarettes/cigpack_carp,
- /obj/item/storage/box/fancy/cigarettes/cigars,
- /obj/item/storage/box/fancy/cigarettes/cigars/havana)
+ drug_container_type = pick(/obj/item/storage/fancy/cigarettes,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust,
+ /obj/item/storage/fancy/cigarettes/cigpack_robustgold,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp,
+ /obj/item/storage/fancy/cigarettes/cigars,
+ /obj/item/storage/fancy/cigarettes/cigars/havana)
. = ..()
/datum/quirk/junkie/smoker/announce_drugs()
@@ -611,7 +611,7 @@
var/mob/living/carbon/human/H = quirk_holder
var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_MASK)
if (istype(I, /obj/item/clothing/mask/cigarette))
- var/obj/item/storage/box/fancy/cigarettes/C = drug_instance
+ var/obj/item/storage/fancy/cigarettes/C = drug_instance
if(istype(I, C.spawn_type))
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "wrong_cigs")
return
diff --git a/code/game/objects/items/holy_armours.dm b/code/game/objects/items/holy_armours.dm
index 25eff601d2a4..d9124b65e11d 100644
--- a/code/game/objects/items/holy_armours.dm
+++ b/code/game/objects/items/holy_armours.dm
@@ -44,7 +44,7 @@
item_state = "knight_templar"
armor = list(MELEE = 60, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 40, BIO = 2, RAD = 0, FIRE = 0, ACID = 50) //Medieval armor was exceptional against melee weaponry and shrapnel, as highlighted by breastplate usage during the Napoleonic Wars, but suffered against ballistics
slowdown = 0.3 //Have you ever worn full plate armor before
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/box/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
blocks_shove_knockdown = FALSE
/obj/item/clothing/head/helmet/chaplain
@@ -155,7 +155,7 @@
item_state = "chaplain_hoodie"
armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/box/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
hoodtype = /obj/item/clothing/head/hooded/chaplain_hood
/obj/item/clothing/head/hooded/chaplain_hood
@@ -201,7 +201,7 @@
clothing_flags = null
armor = list(MELEE = 25, BULLET = 10, LASER = 15, ENERGY = 10, BOMB = 15, BIO = 30, RAD = 30, FIRE = 70, ACID = 50) //Crappier version of the standard armor
slowdown = 0.25 //No sir you are NOT a space marine you are in CHUNKY power armor
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/box/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/darktemplar
/obj/item/clothing/suit/space/hardsuit/darktemplar/chap
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 9a50840866fc..51c111dd47dc 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -513,10 +513,10 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
new /datum/stack_recipe("donk-pockets pizza box", /obj/item/storage/box/donkpockets/donkpocketpizza), \
new /datum/stack_recipe("donk-pockets teriyaki box", /obj/item/storage/box/donkpockets/donkpocketteriyaki), \
new /datum/stack_recipe("donk-pockets spicy box", /obj/item/storage/box/donkpockets/donkpocketspicy), \
- new /datum/stack_recipe("donut box", /obj/item/storage/box/fancy/donut_box), \
- new /datum/stack_recipe("egg box", /obj/item/storage/box/fancy/egg_box), \
+ new /datum/stack_recipe("donut box", /obj/item/storage/fancy/donut_box), \
+ new /datum/stack_recipe("egg box", /obj/item/storage/fancy/egg_box), \
new /datum/stack_recipe("monkey cube box", /obj/item/storage/box/monkeycubes), \
- new /datum/stack_recipe("nugget box", /obj/item/storage/box/fancy/nugget_box), \
+ new /datum/stack_recipe("nugget box", /obj/item/storage/fancy/nugget_box), \
null, \
new /datum/stack_recipe("bean bag ammo box", /obj/item/storage/box/beanbag), \
@@ -538,7 +538,7 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
new /datum/stack_recipe("syringe box", /obj/item/storage/box/syringes), \
null, \
- new /datum/stack_recipe("candle box", /obj/item/storage/box/fancy/candle_box), \
+ new /datum/stack_recipe("candle box", /obj/item/storage/fancy/candle_box), \
new /datum/stack_recipe("disk box", /obj/item/storage/box/disks), \
new /datum/stack_recipe("light bulbs box", /obj/item/storage/box/lights/bulbs), \
new /datum/stack_recipe("light tubes box", /obj/item/storage/box/lights/tubes), \
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 0bbd2b60ea96..66b1e2b1013c 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -249,7 +249,7 @@
/obj/item/reagent_containers/syringe,
/obj/item/reagent_containers/medspray,
/obj/item/lighter,
- /obj/item/storage/box/fancy/cigarettes,
+ /obj/item/storage/fancy/cigarettes,
/obj/item/storage/pill_bottle,
/obj/item/stack/medical,
/obj/item/flashlight/pen,
@@ -423,7 +423,7 @@
/obj/item/stack/sheet/sinew,
/obj/item/stack/sheet/bone,
/obj/item/lighter,
- /obj/item/storage/box/fancy/cigarettes,
+ /obj/item/storage/fancy/cigarettes,
/obj/item/reagent_containers/food/drinks/bottle,
/obj/item/stack/medical,
/obj/item/kitchen/knife,
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 974649eb50e8..316290eed81e 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -14,7 +14,7 @@
* Heart Shaped Box w/ Chocolates
*/
-/obj/item/storage/box/fancy
+/obj/item/storage/fancy
icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6"
name = "donut box"
@@ -24,19 +24,19 @@
var/spawn_type = null
var/fancy_open = FALSE
-/obj/item/storage/box/fancy/PopulateContents()
+/obj/item/storage/fancy/PopulateContents()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
for(var/i = 1 to STR.max_items)
new spawn_type(src)
-/obj/item/storage/box/fancy/update_icon_state()
+/obj/item/storage/fancy/update_icon_state()
. = ..()
if(fancy_open)
icon_state = "[icon_type]box[contents.len]"
else
icon_state = "[icon_type]box"
-/obj/item/storage/box/fancy/examine(mob/user)
+/obj/item/storage/fancy/examine(mob/user)
. = ..()
if(fancy_open)
if(length(contents) == 1)
@@ -44,17 +44,17 @@
else
. += "There are [contents.len <= 0 ? "no" : "[contents.len]"] [icon_type]s left."
-/obj/item/storage/box/fancy/attack_self(mob/user)
+/obj/item/storage/fancy/attack_self(mob/user)
fancy_open = !fancy_open
update_appearance(UPDATE_ICON)
. = ..()
-/obj/item/storage/box/fancy/Exited()
+/obj/item/storage/fancy/Exited()
. = ..()
fancy_open = TRUE
update_appearance(UPDATE_ICON)
-/obj/item/storage/box/fancy/Entered()
+/obj/item/storage/fancy/Entered()
. = ..()
fancy_open = TRUE
update_appearance(UPDATE_ICON)
@@ -63,7 +63,7 @@
* Donut Box
*/
-/obj/item/storage/box/fancy/donut_box
+/obj/item/storage/fancy/donut_box
icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6"
icon_type = "donut"
@@ -71,17 +71,17 @@
spawn_type = /obj/item/reagent_containers/food/snacks/donut
fancy_open = TRUE
-/obj/item/storage/box/fancy/donut_box/Initialize(mapload)
+/obj/item/storage/fancy/donut_box/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 6
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/donut))
-/obj/item/storage/box/fancy/donut_box/PopulateContents()
+/obj/item/storage/fancy/donut_box/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/reagent_containers/food/snacks/donut(src)
-/obj/item/storage/box/fancy/donut_box/deadly
+/obj/item/storage/fancy/donut_box/deadly
icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6"
icon_type = "donut"
@@ -89,13 +89,13 @@
spawn_type = /obj/item/reagent_containers/food/snacks/donut/deadly
fancy_open = TRUE
-/obj/item/storage/box/fancy/donut_box/Initialize(mapload)
+/obj/item/storage/fancy/donut_box/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 6
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/donut))
-/obj/item/storage/box/fancy/donut_box/deadly/PopulateContents()
+/obj/item/storage/fancy/donut_box/deadly/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/reagent_containers/food/snacks/donut/deadly(src)
@@ -104,7 +104,7 @@
* Egg Box
*/
-/obj/item/storage/box/fancy/egg_box
+/obj/item/storage/fancy/egg_box
icon = 'icons/obj/food/containers.dmi'
item_state = "eggbox"
icon_state = "eggbox"
@@ -115,13 +115,13 @@
desc = "A carton for containing eggs."
spawn_type = /obj/item/reagent_containers/food/snacks/egg
-/obj/item/storage/box/fancy/egg_box/Initialize(mapload)
+/obj/item/storage/fancy/egg_box/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 12
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/egg))
-/obj/item/storage/box/fancy/egg_box/PopulateContents()
+/obj/item/storage/fancy/egg_box/PopulateContents()
for(var/i in 1 to 12)
new /obj/item/reagent_containers/food/snacks/egg(src)
@@ -129,7 +129,7 @@
* Candle Box
*/
-/obj/item/storage/box/fancy/candle_box
+/obj/item/storage/fancy/candle_box
name = "candle pack"
desc = "A pack of red candles."
icon = 'icons/obj/candle.dmi'
@@ -141,16 +141,16 @@
spawn_type = /obj/item/candle
fancy_open = TRUE
-/obj/item/storage/box/fancy/candle_box/attack_self(mob_user)
+/obj/item/storage/fancy/candle_box/attack_self(mob_user)
. = ..()
update_appearance(UPDATE_ICON)
-/obj/item/storage/box/fancy/candle_box/Initialize(mapload)
+/obj/item/storage/fancy/candle_box/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 5
-/obj/item/storage/box/fancy/candle_box/PopulateContents()
+/obj/item/storage/fancy/candle_box/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/candle(src)
@@ -158,7 +158,7 @@
////////////
//CIG PACK//
////////////
-/obj/item/storage/box/fancy/cigarettes
+/obj/item/storage/fancy/cigarettes
name = "\improper Space Cigarettes packet"
desc = "The most popular brand of cigarettes, sponsors of the Space Olympics."
icon = 'icons/obj/cigarettes.dmi'
@@ -170,22 +170,24 @@
icon_type = "cigarette"
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
age_restricted = TRUE
+ ///Do we not have our own handling for cig overlays?
+ var/display_cigs = TRUE
-/obj/item/storage/box/fancy/cigarettes/Initialize(mapload)
+/obj/item/storage/fancy/cigarettes/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 6
STR.set_holdable(list(/obj/item/clothing/mask/cigarette, /obj/item/lighter))
-/obj/item/storage/box/fancy/cigarettes/PopulateContents()
+/obj/item/storage/fancy/cigarettes/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette(src)
-/obj/item/storage/box/fancy/cigarettes/examine(mob/user)
+/obj/item/storage/fancy/cigarettes/examine(mob/user)
. = ..()
. += span_notice("Alt-click to extract contents.")
-/obj/item/storage/box/fancy/cigarettes/AltClick(mob/living/carbon/user)
+/obj/item/storage/fancy/cigarettes/AltClick(mob/living/carbon/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
var/obj/item/clothing/mask/cigarette/W = locate(/obj/item/clothing/mask/cigarette) in contents
@@ -197,30 +199,35 @@
else
to_chat(user, span_notice("There are no [icon_type]s left in the pack."))
-/obj/item/storage/box/fancy/cigarettes/update_overlays()
+/obj/item/storage/fancy/cigarettes/update_icon_state()
. = ..()
- if(!fancy_open && contents.len)
+ icon_state = "[initial(icon_state)][contents.len ? null : "_empty"]"
+
+/obj/item/storage/fancy/cigarettes/update_overlays()
+ . = ..()
+ if(!fancy_open && !contents.len)
return
- if(!contents.len)
- icon_state = "[initial(icon_state)]_empty"
- else
- icon_state = initial(icon_state)
- . += "[icon_state]_open"
- var/cig_position = 1
-
- for(var/C in contents)
- var/mutable_appearance/inserted_overlay = mutable_appearance(icon)
- if(istype(C, /obj/item/lighter/greyscale))
- inserted_overlay.icon_state = "lighter_in"
- else if(istype(C, /obj/item/lighter))
- inserted_overlay.icon_state = "zippo_in"
- else
- inserted_overlay.icon_state = "cigarette"
- inserted_overlay.icon_state = "[inserted_overlay.icon_state]_[cig_position]"
- . += inserted_overlay
- cig_position++
-
-/obj/item/storage/box/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+
+ . += "[icon_state]_open"
+
+ if(!display_cigs)
+ return
+
+ var/cig_position = 1
+ for(var/C in contents)
+ var/use_icon_state = ""
+
+ if(istype(C, /obj/item/lighter/greyscale))
+ use_icon_state = "lighter_in"
+ else if(istype(C, /obj/item/lighter))
+ use_icon_state = "zippo_in"
+ else
+ use_icon_state = "cigarette"
+
+ . += "[use_icon_state]_[cig_position]"
+ cig_position++
+
+/obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!ismob(M))
return
var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents
@@ -236,127 +243,127 @@
else
to_chat(user, span_notice("There are no [icon_type]s left in the pack."))
-/obj/item/storage/box/fancy/cigarettes/dromedaryco
+/obj/item/storage/fancy/cigarettes/dromedaryco
name = "\improper DromedaryCo packet"
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
icon_state = "dromedary"
spawn_type = /obj/item/clothing/mask/cigarette/dromedary
-/obj/item/storage/box/fancy/cigarettes/dromedaryco/PopulateContents()
+/obj/item/storage/fancy/cigarettes/dromedaryco/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/dromedary(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_uplift
+/obj/item/storage/fancy/cigarettes/cigpack_uplift
name = "\improper Uplift Smooth packet"
desc = "Your favorite brand, now menthol flavored."
icon_state = "uplift"
spawn_type = /obj/item/clothing/mask/cigarette/uplift
-/obj/item/storage/box/fancy/cigarettes/cigpack_uplift/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_uplift/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/uplift(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_robust
+/obj/item/storage/fancy/cigarettes/cigpack_robust
name = "\improper Robust packet"
desc = "Smoked by the robust."
icon_state = "robust"
spawn_type = /obj/item/clothing/mask/cigarette/robust
-/obj/item/storage/box/fancy/cigarettes/cigpack_robust/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_robust/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/robust(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_robustgold
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold
name = "\improper Robust Gold packet"
desc = "Smoked by the truly robust."
icon_state = "robustg"
spawn_type = /obj/item/clothing/mask/cigarette/robustgold
-/obj/item/storage/box/fancy/cigarettes/cigpack_robustgold/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/robustgold(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_carp
+/obj/item/storage/fancy/cigarettes/cigpack_carp
name = "\improper Carp Classic packet"
desc = "Since 2313."
icon_state = "carp"
spawn_type = /obj/item/clothing/mask/cigarette/carp
-/obj/item/storage/box/fancy/cigarettes/cigpack_carp/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_carp/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/carp(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_syndicate
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate
name = "cigarette packet"
desc = "An obscure brand of cigarettes."
icon_state = "syndie"
spawn_type = /obj/item/clothing/mask/cigarette/syndicate
-/obj/item/storage/box/fancy/cigarettes/cigpack_syndicate/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/syndicate(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_midori
+/obj/item/storage/fancy/cigarettes/cigpack_midori
name = "\improper Midori Tabako packet"
desc = "You can't understand the runes, but the packet smells funny."
icon_state = "midori"
spawn_type = /obj/item/clothing/mask/cigarette/rollie/nicotine
-/obj/item/storage/box/fancy/cigarettes/cigpack_midori/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_midori/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/rollie/nicotine(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims
+/obj/item/storage/fancy/cigarettes/cigpack_shadyjims
name = "\improper Shady Jim's Super Slims packet"
desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!"
icon_state = "shadyjim"
spawn_type = /obj/item/clothing/mask/cigarette/shadyjims
-/obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_shadyjims/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/shadyjims(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_xeno
+/obj/item/storage/fancy/cigarettes/cigpack_xeno
name = "\improper Xeno Filtered packet"
desc = "Loaded with 100% pure slime. And also nicotine."
icon_state = "slime"
spawn_type = /obj/item/clothing/mask/cigarette/xeno
-/obj/item/storage/box/fancy/cigarettes/cigpack_xeno/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_xeno/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/xeno(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_nonico
+/obj/item/storage/fancy/cigarettes/cigpack_nonico
name = "nicotine-free cigarette packet"
desc = "A dull-looking pack of cigarettes."
icon_state = "nonico"
spawn_type = /obj/item/clothing/mask/cigarette/nonico
-/obj/item/storage/box/fancy/cigarettes/cigpack_nonico/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_nonico/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/nonico(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_cannabis
+/obj/item/storage/fancy/cigarettes/cigpack_cannabis
name = "\improper Freak Brothers' Special packet"
desc = "A label on the packaging reads, \"Endorsed by Phineas, Freddy and Franklin.\""
icon_state = "midori"
spawn_type = /obj/item/clothing/mask/cigarette/rollie/cannabis
-/obj/item/storage/box/fancy/cigarettes/cigpack_cannabis/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_cannabis/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/rollie/cannabis(src)
-/obj/item/storage/box/fancy/cigarettes/cigpack_mindbreaker
+/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker
name = "\improper Leary's Delight packet"
desc = "Banned in over 36 galaxies."
icon_state = "shadyjim"
spawn_type = /obj/item/clothing/mask/cigarette/rollie/mindbreaker
-/obj/item/storage/box/fancy/cigarettes/cigpack_mindbreaker/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/clothing/mask/cigarette/rollie/mindbreaker(src)
-/obj/item/storage/box/fancy/rollingpapers
+/obj/item/storage/fancy/rollingpapers
name = "rolling paper pack"
desc = "A pack of Nanotrasen brand rolling papers."
w_class = WEIGHT_CLASS_TINY
@@ -365,17 +372,17 @@
icon_type = "rolling paper"
spawn_type = /obj/item/rollingpaper
-/obj/item/storage/box/fancy/rollingpapers/Initialize(mapload)
+/obj/item/storage/fancy/rollingpapers/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 10
STR.set_holdable(list(/obj/item/rollingpaper))
-/obj/item/storage/box/fancy/rollingpapers/PopulateContents()
+/obj/item/storage/fancy/rollingpapers/PopulateContents()
for(var/i in 1 to 10)
new /obj/item/rollingpaper(src)
-/obj/item/storage/box/fancy/rollingpapers/update_overlays()
+/obj/item/storage/fancy/rollingpapers/update_overlays()
. = ..()
if(!contents.len)
. += "[icon_state]_empty"
@@ -384,7 +391,7 @@
//CIGAR BOX//
/////////////
-/obj/item/storage/box/fancy/cigarettes/cigars
+/obj/item/storage/fancy/cigarettes/cigars
name = "\improper premium cigar case"
desc = "A case of premium cigars. Very expensive."
icon = 'icons/obj/cigarettes.dmi'
@@ -392,51 +399,49 @@
w_class = WEIGHT_CLASS_NORMAL
icon_type = "premium cigar"
spawn_type = /obj/item/clothing/mask/cigarette/cigar
+ display_cigs = FALSE
-/obj/item/storage/box/fancy/cigarettes/cigars/Initialize(mapload)
+/obj/item/storage/fancy/cigarettes/cigars/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 5
STR.set_holdable(list(/obj/item/clothing/mask/cigarette/cigar))
-/obj/item/storage/box/fancy/cigarettes/cigars/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigars/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/clothing/mask/cigarette/cigar(src)
-/obj/item/storage/box/fancy/cigarettes/cigars/update_icon_state()
+/obj/item/storage/fancy/cigarettes/cigars/update_icon_state()
. = ..()
- if(fancy_open)
- icon_state = "[initial(icon_state)]_open"
- else
- icon_state = "[initial(icon_state)]"
+ //reset any changes the parent call may have made
+ icon_state = initial(icon_state)
-/obj/item/storage/box/fancy/cigarettes/cigars/update_overlays()
+/obj/item/storage/fancy/cigarettes/cigars/update_overlays()
. = ..()
if(!fancy_open)
return
var/cigar_position = 1 //generate sprites for cigars in the box
for(var/obj/item/clothing/mask/cigarette/cigar/smokes in contents)
- var/mutable_appearance/cigar_overlay = mutable_appearance(icon, "[smokes.icon_off]_[cigar_position]")
- . += cigar_overlay
+ . += "[smokes.icon_off]_[cigar_position]"
cigar_position++
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba
+/obj/item/storage/fancy/cigarettes/cigars/cohiba
name = "\improper Cohiba Robusto cigar case"
desc = "A case of imported Cohiba cigars, renowned for their strong flavor. The warning label states that the cigar is extremely potent."
icon_state = "cohibacase"
spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba
-/obj/item/storage/box/fancy/cigarettes/cigars/cohiba/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigars/cohiba/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/clothing/mask/cigarette/cigar/cohiba(src)
-/obj/item/storage/box/fancy/cigarettes/cigars/havana
+/obj/item/storage/fancy/cigarettes/cigars/havana
name = "\improper premium Havanian cigar case"
desc = "A case of classy Havanian cigars."
icon_state = "cohibacase"
spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana
-/obj/item/storage/box/fancy/cigarettes/cigars/havana/PopulateContents()
+/obj/item/storage/fancy/cigarettes/cigars/havana/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/clothing/mask/cigarette/cigar/havana(src)
@@ -444,7 +449,7 @@
* Heart Shaped Box w/ Chocolates
*/
-/obj/item/storage/box/fancy/heart_box
+/obj/item/storage/fancy/heart_box
name = "heart-shaped box"
desc = "A heart-shaped box for holding tiny chocolates."
icon = 'icons/obj/food/containers.dmi'
@@ -455,20 +460,20 @@
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
spawn_type = /obj/item/reagent_containers/food/snacks/tinychocolate
-/obj/item/storage/box/fancy/heart_box/Initialize(mapload)
+/obj/item/storage/fancy/heart_box/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 8
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/tinychocolate))
-/obj/item/storage/box/fancy/heart_box/PopulateContents()
+/obj/item/storage/fancy/heart_box/PopulateContents()
for(var/i in 1 to 8)
new /obj/item/reagent_containers/food/snacks/tinychocolate(src)
//////////////
//NUGGET BOX//
//////////////
-/obj/item/storage/box/fancy/nugget_box
+/obj/item/storage/fancy/nugget_box
name = "nugget box"
desc = "A cardboard box used for holding chicken nuggies."
icon = 'icons/obj/food/containers.dmi'
@@ -477,12 +482,12 @@
icon_type = "nugget"
spawn_type = /obj/item/reagent_containers/food/snacks/nugget
-/obj/item/storage/box/fancy/nugget_box/Initialize(mapload)
+/obj/item/storage/fancy/nugget_box/Initialize(mapload)
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 6
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/nugget))
-/obj/item/storage/box/fancy/nugget_box/PopulateContents()
+/obj/item/storage/fancy/nugget_box/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/reagent_containers/food/snacks/nugget(src)
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index fb3a9c9a02eb..d1aa8a4d394b 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -44,7 +44,7 @@
new /obj/item/encryptionkey/syndicate(src) //2 TC
new /obj/item/reagent_containers/syringe/mulligan(src) //4 TC
new /obj/item/switchblade/backstab(src) //3 TC
- new /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate (src) //2 TC (for now)
+ new /obj/item/storage/fancy/cigarettes/cigpack_syndicate (src) //2 TC (for now)
new /obj/item/flashlight/emp(src) //2 TC
new /obj/item/chameleon(src) //7 TC
new /obj/item/card/emag(src) //6 TC
@@ -149,7 +149,7 @@
new /obj/item/gun/ballistic/automatic/toy/pistol/riot(src) //1 TC, not a tranq pistol but it's something
new /obj/item/kitchen/knife/combat/survival(src) //Simple miner knife, in flavor. Maybe-maybe 1 TC, but basically free
new /obj/item/implanter/stealth(src) //Just a box. 8 TC
- new /obj/item/storage/box/fancy/cigarettes/cigars(src) //It's no Phantom Cigar, but it'll still be badass
+ new /obj/item/storage/fancy/cigarettes/cigars(src) //It's no Phantom Cigar, but it'll still be badass
new /obj/item/lighter(src) //Need to light the cigar
if("oddjob") //Total TC value of 26ish TC
@@ -266,7 +266,7 @@
new /obj/item/clothing/suit/yogs/pinksweater(src) //close enough
new /obj/item/guardiancreator/tech(src) //15 TC
new /obj/item/stand_arrow/boss(src) //priceless, but if it had to get a price it'd be ~45 for 3 holoparasite injectors and ~21 3 mindslave implants. although its difficult to conceal and the holoparasites are random.
- new /obj/item/storage/box/fancy/donut_box(src) //d o n u t s
+ new /obj/item/storage/fancy/donut_box(src) //d o n u t s
new /obj/item/reagent_containers/glass/bottle/drugs(src)
new /obj/item/slimecross/stabilized/green(src) //secret identity
@@ -391,7 +391,7 @@
new /obj/item/clothing/under/chameleon/syndicate(src)
new /obj/item/clothing/mask/chameleon/syndicate(src)
new /obj/item/card/id/syndicate(src)
- new /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate(src)
+ new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/lighter(src)
/obj/item/storage/box/syndicate/contract_kit/PopulateContents()
@@ -492,7 +492,7 @@
new /obj/item/clothing/under/plasmaman/chameleon/syndicate(src)
new /obj/item/clothing/mask/chameleon/syndicate(src)
new /obj/item/card/id/syndicate(src)
- new /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate(src)
+ new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/lighter(src)
/obj/item/storage/box/syndie_kit
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index e666028ff9e5..451203112aff 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -104,8 +104,8 @@
new /obj/item/clothing/head/nun_hood(src)
new /obj/item/clothing/suit/chaplainsuit/holidaypriest(src)
new /obj/item/storage/backpack/cultpack(src)
- new /obj/item/storage/box/fancy/candle_box(src)
- new /obj/item/storage/box/fancy/candle_box(src)
+ new /obj/item/storage/fancy/candle_box(src)
+ new /obj/item/storage/fancy/candle_box(src)
return
/obj/structure/closet/wardrobe/red
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
index f23a15cbc9d4..ef7890fed0c1 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
@@ -57,7 +57,7 @@
for(var/i = 0, i < 5, i++)
new /obj/item/reagent_containers/food/condiment/soymilk(src)
for(var/i = 0, i < 2, i++)
- new /obj/item/storage/box/fancy/egg_box(src)
+ new /obj/item/storage/fancy/egg_box(src)
/obj/structure/closet/secure_closet/freezer/kitchen/mining
req_access = list()
@@ -88,7 +88,7 @@
for(var/i = 0, i < 5, i++)
new /obj/item/reagent_containers/food/condiment/soymilk(src)
for(var/i = 0, i < 3, i++)
- new /obj/item/storage/box/fancy/egg_box(src)
+ new /obj/item/storage/fancy/egg_box(src)
/obj/structure/closet/secure_closet/freezer/fridge/open
req_access = null
diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm
index 5f457d0d66c4..6d969b87dd78 100644
--- a/code/game/objects/structures/guncase.dm
+++ b/code/game/objects/structures/guncase.dm
@@ -28,11 +28,8 @@
var/mutable_appearance/gun_overlay = mutable_appearance(icon, case_type)
for(var/i in 1 to contents.len)
gun_overlay.pixel_x = 3 * (i - 1)
- . += gun_overlay
- if(open)
- . += "[icon_state]_open"
- else
- . += "[icon_state]_door"
+ . += new /mutable_appearance(gun_overlay)
+ . += "[icon_state]_[open ? "open" : "door"]"
/obj/structure/guncase/attackby(obj/item/I, mob/user, params)
if(iscyborg(user) || isalien(user))
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index fb6227a91a20..afe15de749c9 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -37,7 +37,6 @@
var/restricted = FALSE
req_access = list()
- var/update = 0
//list of canister types for relabeling
var/static/list/label2types = list(
"generic" = /obj/machinery/portable_atmospherics/canister/generic,
@@ -293,138 +292,96 @@
air_contents.set_moles(/datum/gas/oxygen, (O2STANDARD * maximum_pressure * filled) * air_contents.return_volume() / (R_IDEAL_GAS_EQUATION * air_contents.return_temperature()))
air_contents.set_moles(/datum/gas/nitrogen, (N2STANDARD * maximum_pressure * filled) * air_contents.return_volume() / (R_IDEAL_GAS_EQUATION * air_contents.return_temperature()))
-#define CANISTER_UPDATE_HOLDING (1<<0)
-#define CANISTER_UPDATE_CONNECTED (1<<1)
-#define CANISTER_UPDATE_OPEN (1<<2)
-#define CANISTER_UPDATE_EMPTY (1<<3)
-#define CANISTER_UPDATE_PRESSURE_0 (1<<4)
-#define CANISTER_UPDATE_PRESSURE_1 (1<<5)
-#define CANISTER_UPDATE_PRESSURE_2 (1<<6)
-#define CANISTER_UPDATE_PRESSURE_3 (1<<7)
-#define CANISTER_UPDATE_PRESSURE_4 (1<<8)
-#define CANISTER_UPDATE_PRESSURE_5 (1<<9)
-#define CANISTER_UPDATE_FULL (1<<10)
-#define CANISTER_UPDATE_FUSION (1<<11)
-#define CANISTER_LIGHT_RANGE 0.4
-#define CANISTER_LIGHT_POWER 0.5
-
-/obj/machinery/portable_atmospherics/canister/update_icon(updates=ALL)
+/obj/machinery/portable_atmospherics/canister/update_icon_state()
+ if(stat & BROKEN)
+ icon_state = "[initial(icon_state)]-1"
+ return ..()
+
+/obj/machinery/portable_atmospherics/canister/update_overlays()
. = ..()
if(stat & BROKEN)
- cut_overlays()
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
- if(!findtext(icon_state,"-1")) //A wise man once said, if it's already broke, don't break it more.
- icon_state = "[icon_state]-1"
return
-
- var/last_update = update
- update = 0
-
+ if(valve_open)
+ . += "can-open"
if(holding)
- update |= CANISTER_UPDATE_HOLDING
+ . += "can-tank"
if(connected_port)
- update |= CANISTER_UPDATE_CONNECTED
- if(valve_open)
- update |= CANISTER_UPDATE_OPEN
- if(!air_contents)
- update |= CANISTER_UPDATE_EMPTY
- else
- var/pressure = air_contents.return_pressure()
- if(pressure < 10)
- update |= CANISTER_UPDATE_EMPTY
- else if(pressure < ONE_ATMOSPHERE)
- update |= CANISTER_UPDATE_PRESSURE_0
- else if(pressure < 5 * ONE_ATMOSPHERE)
- update |= CANISTER_UPDATE_PRESSURE_1
- else if(pressure < 10 * ONE_ATMOSPHERE)
- update |= CANISTER_UPDATE_PRESSURE_2
- else if(pressure < 20 * ONE_ATMOSPHERE)
- update |= CANISTER_UPDATE_PRESSURE_3
- else if(pressure < 30 * ONE_ATMOSPHERE)
- update |= CANISTER_UPDATE_PRESSURE_4
- else if(pressure < 40 * ONE_ATMOSPHERE) //pressure pump max
- update |= CANISTER_UPDATE_PRESSURE_5
- else if(pressure < 9100) //volume pump max
- update |= CANISTER_UPDATE_FULL
- else
- update |= CANISTER_UPDATE_FUSION
-
- if(update == last_update)
- return
-
- cut_overlays()
- SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
+ . += "can-connector"
- if(update & CANISTER_UPDATE_OPEN)
- add_overlay("can-open")
- if(update & CANISTER_UPDATE_HOLDING)
- add_overlay("can-tank")
- if(update & CANISTER_UPDATE_CONNECTED)
- add_overlay("can-connector")
+ var/light_state = get_pressure_state(air_contents.return_pressure())
+ if(light_state) //happens when pressure is below 10kpa which means no light
+ . += mutable_appearance(icon, light_state)
+ . += emissive_appearance(icon, "[light_state]-light", src, alpha = src.alpha)
- if(update & CANISTER_UPDATE_PRESSURE_0)
+/*
+ if(pressure < ONE_ATMOSPHERE)
SSvis_overlays.add_vis_overlay(src, icon, "can-o0", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o0", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_RED_LIGHT)
- else if(update & CANISTER_UPDATE_PRESSURE_1)
+ else if(pressure < 5 * ONE_ATMOSPHERE)
SSvis_overlays.add_vis_overlay(src, icon, "can-o1", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o1", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_RED_LIGHT)
- else if(update & CANISTER_UPDATE_PRESSURE_2)
+ else if(pressure < 10 * ONE_ATMOSPHERE)
SSvis_overlays.add_vis_overlay(src, icon, "can-o2", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o2", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_ORANGE)
- else if(update & CANISTER_UPDATE_PRESSURE_3)
+ else if(pressure < 20 * ONE_ATMOSPHERE)
SSvis_overlays.add_vis_overlay(src, icon, "can-o3", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o3", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_ORANGE)
- else if(update & CANISTER_UPDATE_PRESSURE_4)
+ else if(pressure < 30 * ONE_ATMOSPHERE)
SSvis_overlays.add_vis_overlay(src, icon, "can-o4", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o4", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_YELLOW)
- else if(update & CANISTER_UPDATE_PRESSURE_5)
+ else if(pressure < 40 * ONE_ATMOSPHERE) //pressure pump max
SSvis_overlays.add_vis_overlay(src, icon, "can-o5", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o5", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_LIME)
- else if(update & CANISTER_UPDATE_FULL)
+ else if(pressure < 9100) //volume pump max
SSvis_overlays.add_vis_overlay(src, icon, "can-o6", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-o6", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_GREEN)
- else if(update & CANISTER_UPDATE_FUSION)
+ else if(pressure < 9100)
SSvis_overlays.add_vis_overlay(src, icon, "can-oF", layer, plane, dir)
SSvis_overlays.add_vis_overlay(src, icon, "can-oF", layer, EMISSIVE_PLANE, dir)
set_light_on(TRUE)
set_light_range_power_color(2, 2, COLOR_WHITE)
else
set_light_on(FALSE)
-
-#undef CANISTER_UPDATE_HOLDING
-#undef CANISTER_UPDATE_CONNECTED
-#undef CANISTER_UPDATE_OPEN
-#undef CANISTER_UPDATE_EMPTY
-#undef CANISTER_UPDATE_PRESSURE_0
-#undef CANISTER_UPDATE_PRESSURE_1
-#undef CANISTER_UPDATE_PRESSURE_2
-#undef CANISTER_UPDATE_PRESSURE_3
-#undef CANISTER_UPDATE_PRESSURE_4
-#undef CANISTER_UPDATE_PRESSURE_5
-#undef CANISTER_UPDATE_FULL
-#undef CANISTER_UPDATE_FUSION
-#undef CANISTER_LIGHT_RANGE
-#undef CANISTER_LIGHT_POWER
+*/
+
+///return the icon_state component for the canister's indicator light based on its current pressure reading
+/obj/machinery/portable_atmospherics/canister/proc/get_pressure_state(air_pressure)
+ switch(air_pressure)
+ if((9100) to INFINITY)
+ return "can-oF"
+ if((40 * ONE_ATMOSPHERE) to (9100)) //volume pump max
+ return "can-o6"
+ if((30 * ONE_ATMOSPHERE) to (40 * ONE_ATMOSPHERE))
+ return "can-o5"
+ if((20 * ONE_ATMOSPHERE) to (30 * ONE_ATMOSPHERE))
+ return "can-o4"
+ if((10 * ONE_ATMOSPHERE) to (20 * ONE_ATMOSPHERE))
+ return "can-o3"
+ if((5 * ONE_ATMOSPHERE) to (10 * ONE_ATMOSPHERE))
+ return "can-o2"
+ if((10) to (5 * ONE_ATMOSPHERE))
+ return "can-o1"
+ else
+ return "can-o1"
/obj/machinery/portable_atmospherics/canister/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > temperature_resistance)
take_damage(5, BURN, 0)
-
/obj/machinery/portable_atmospherics/canister/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(stat & BROKEN))
diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm
index 4462ce93d07e..080eaaea724a 100644
--- a/code/modules/cargo/bounties/assistant.dm
+++ b/code/modules/cargo/bounties/assistant.dm
@@ -143,7 +143,7 @@
name = "Shady Jim's"
description = "There's an irate officer at CentCom demanding that he receive a box of Shady Jim's cigarettes. Please ship one. He's starting to make threats."
reward = 500
- wanted_types = list(/obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims)
+ wanted_types = list(/obj/item/storage/fancy/cigarettes/cigpack_shadyjims)
/datum/bounty/item/assistant/potted_plants
name = "Potted Plants"
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 85d8e5566b6f..32d40865f650 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -2181,7 +2181,7 @@
/obj/item/reagent_containers/food/condiment/saltshaker,
/obj/item/reagent_containers/food/condiment/peppermill,
/obj/item/reagent_containers/food/condiment/cinnamon, // Yogs -- Adds cinnamon shakers to this crate
- /obj/item/storage/box/fancy/egg_box,
+ /obj/item/storage/fancy/egg_box,
/obj/item/reagent_containers/food/condiment/enzyme,
/obj/item/reagent_containers/food/condiment/sugar,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
@@ -2605,8 +2605,8 @@
/obj/item/toy/cards/deck/syndicate,
/obj/item/reagent_containers/food/drinks/bottle/absinthe,
/obj/item/clothing/under/syndicate/tacticool,
- /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate,
- /obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims,
+ /obj/item/storage/fancy/cigarettes/cigpack_syndicate,
+ /obj/item/storage/fancy/cigarettes/cigpack_shadyjims,
/obj/item/clothing/mask/gas/syndicate,
/obj/item/clothing/neck/necklace/dope,
/obj/item/vending_refill/donksoft)
diff --git a/code/modules/clothing/outfits/occupying.dm b/code/modules/clothing/outfits/occupying.dm
index 2370855f22f7..ef8804a3df3b 100644
--- a/code/modules/clothing/outfits/occupying.dm
+++ b/code/modules/clothing/outfits/occupying.dm
@@ -74,7 +74,7 @@
back = /obj/item/melee/baton/cattleprod/tactical
head = /obj/item/clothing/head/helmet/sec/occupying
l_pocket = /obj/item/reagent_containers/food/drinks/beer
- r_pocket = /obj/item/storage/box/fancy/cigarettes
+ r_pocket = /obj/item/storage/fancy/cigarettes
id = /obj/item/card/id/ert/occupying
implants = list(/obj/item/implant/mindshield)
diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm
index 24fa4ed3b42b..3548cea0c382 100644
--- a/code/modules/clothing/suits/chaplainsuits.dm
+++ b/code/modules/clothing/suits/chaplainsuits.dm
@@ -1,10 +1,10 @@
//Chaplain Suit Subtypes
//If any new staple chaplain items get added, put them in these lists
/obj/item/clothing/suit/chaplainsuit
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/box/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
/obj/item/clothing/suit/hooded/chaplainsuit
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/box/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
//Suits
/obj/item/clothing/suit/chaplainsuit/holidaypriest
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 4db872de4d04..40f43834bcb6 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -20,7 +20,7 @@
item_state = "bio_suit"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEJUMPSUIT
- allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/box/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
+ allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
//Chef
/obj/item/clothing/suit/toggle/chef
@@ -68,7 +68,7 @@
/obj/item/clothing/suit/det_suit/civilian/Initialize(mapload)
. = ..()
//Same permissions as the leather jacket/leather overcoat, because you know, trench coat
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio)
/obj/item/clothing/suit/det_suit/civilian/grey
name = "grey trenchcoat"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 762ab684f9a0..fb4e94c5b823 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -87,7 +87,7 @@
icon_state = "judge"
item_state = "judge"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- allowed = list(/obj/item/storage/box/fancy/cigarettes, /obj/item/stack/spacecash)
+ allowed = list(/obj/item/storage/fancy/cigarettes, /obj/item/stack/spacecash)
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/suit/buns
@@ -136,7 +136,7 @@
item_state = "imperium_monk"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDESHOES|HIDEJUMPSUIT
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/box/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen)
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen)
/obj/item/clothing/suit/chickensuit
@@ -428,7 +428,7 @@
desc = "Aviators not included."
icon_state = "bomberjacket"
item_state = "brownjsuit"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
@@ -440,7 +440,7 @@
item_state = "hostrench"
resistance_flags = NONE
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio)
/obj/item/clothing/suit/jacket/leather/overcoat
name = "leather overcoat"
@@ -470,7 +470,7 @@
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
icon_state = "militaryjacket"
item_state = "militaryjacket"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
/obj/item/clothing/suit/jacket/letterman
name = "letterman jacket"
@@ -558,7 +558,7 @@
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
/obj/item/clothing/head/hooded/winterhood
name = "winter hood"
@@ -658,7 +658,7 @@
name = "science winter coat"
icon_state = "coatscience"
item_state = "coatscience"
- allowed = list(/obj/item/analyzer, /obj/item/multitool/tricorder, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/autoinjector, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
+ allowed = list(/obj/item/analyzer, /obj/item/multitool/tricorder, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/autoinjector, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant)
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/science
@@ -689,7 +689,7 @@
icon_state = "coatengineer"
item_state = "coatengineer"
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 20, FIRE = 30, ACID = 45)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/extinguisher/mini)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/extinguisher/mini)
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering
/obj/item/clothing/head/hooded/winterhood/engineering
@@ -728,7 +728,7 @@
name = "hydroponics winter coat"
icon_state = "coathydro"
item_state = "coathydro"
- allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants, /obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter)
+ allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants, /obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro
/obj/item/clothing/head/hooded/winterhood/hydro
@@ -747,7 +747,7 @@
name = "mining winter coat"
icon_state = "coatminer"
item_state = "coatminer"
- allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter)
+ allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/miner
diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm
index 4481de9b7d76..6e3649a80208 100644
--- a/code/modules/events/holiday/vday.dm
+++ b/code/modules/events/holiday/vday.dm
@@ -19,7 +19,7 @@
H.put_in_hands(new /obj/item/valentine)
var/obj/item/storage/backpack/b = locate() in H.contents
new /obj/item/reagent_containers/food/snacks/candyheart(b)
- new /obj/item/storage/box/fancy/heart_box(b)
+ new /obj/item/storage/fancy/heart_box(b)
var/list/valentines = list()
for(var/mob/living/M in GLOB.player_list)
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index e393517e71ae..54d8b8778027 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -191,7 +191,7 @@
id = "rollingpapers"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 50)
- build_path = /obj/item/storage/box/fancy/rollingpapers
+ build_path = /obj/item/storage/fancy/rollingpapers
category = list("initial", "Organic Materials")
/datum/design/cloth
diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm
index 6f7ca1f79e7b..ca376fae8663 100644
--- a/code/modules/research/xenobiology/crossbreeding/industrial.dm
+++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm
@@ -180,13 +180,13 @@ Industrial extracts:
colour = "black"
effect_desc = "Produces slime brand regenerative cigarettes."
plasmarequired = 6
- itempath = /obj/item/storage/box/fancy/cigarettes/cigpack_xeno
+ itempath = /obj/item/storage/fancy/cigarettes/cigpack_xeno
/obj/item/slimecross/industrial/lightpink
colour = "light pink"
effect_desc = "Produces heart shaped boxes that have candies in them."
plasmarequired = 3
- itempath = /obj/item/storage/box/fancy/heart_box
+ itempath = /obj/item/storage/fancy/heart_box
/obj/item/slimecross/industrial/adamantine
colour = "adamantine"
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 34c5236f33bf..3192b6272408 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -2383,7 +2383,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
name = "Box of Singulonuts"
desc = "A box with six Waffle Co. brand Singulonuts. Banned in four sectors for their sheer calorie content. \
Caution: Product known to the safety board of Nanotrasen to increase risks of stomach cancer and cause instant obesity. \ Disguised as a regular box of regular donuts."
- item = /obj/item/storage/box/fancy/donut_box/deadly
+ item = /obj/item/storage/fancy/donut_box/deadly
cost = 6
manufacturer = /datum/corporation/traitor/waffleco
restricted_roles = list("Assistant", "Cook", "Clerk")
@@ -2675,7 +2675,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/badass/syndiecigs
name = "Syndicate Smokes"
desc = "Strong flavor, dense smoke, infused with omnizine."
- item = /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate
+ item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate
cost = 2
manufacturer = /datum/corporation/traitor/donkco
illegal_tech = FALSE
diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm
index 40be780e6992..e86c6985e87d 100644
--- a/code/modules/vending/cigarette.dm
+++ b/code/modules/vending/cigarette.dm
@@ -4,52 +4,52 @@
product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!"
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
icon_state = "cigs"
- products = list(/obj/item/storage/box/fancy/cigarettes = 5,
- /obj/item/storage/box/fancy/cigarettes/cigpack_uplift = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robust = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_carp = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_midori = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_nonico = 3,
+ products = list(/obj/item/storage/fancy/cigarettes = 5,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_nonico = 3,
/obj/item/storage/box/matches = 10,
/obj/item/lighter/greyscale = 4,
- /obj/item/storage/box/fancy/rollingpapers = 5)
+ /obj/item/storage/fancy/rollingpapers = 5)
contraband = list(/obj/item/clothing/mask/vape = 5)
- premium = list(/obj/item/storage/box/fancy/cigarettes/cigpack_robustgold = 3,
+ premium = list(/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3,
/obj/item/lighter = 3,
- /obj/item/storage/box/fancy/cigarettes/cigars = 1,
- /obj/item/storage/box/fancy/cigarettes/cigars/havana = 1,
- /obj/item/storage/box/fancy/cigarettes/cigars/cohiba = 1)
+ /obj/item/storage/fancy/cigarettes/cigars = 1,
+ /obj/item/storage/fancy/cigarettes/cigars/havana = 1,
+ /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1)
refill_canister = /obj/item/vending_refill/cigarette
default_price = 10
extra_price = 50
payment_department = ACCOUNT_SRV
/obj/machinery/vending/cigarette/syndicate
- products = list(/obj/item/storage/box/fancy/cigarettes/cigpack_syndicate = 7,
- /obj/item/storage/box/fancy/cigarettes/cigpack_uplift = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robust = 2,
- /obj/item/storage/box/fancy/cigarettes/cigpack_carp = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_nonico = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_midori = 1,
+ products = list(/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 7,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust = 2,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_nonico = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori = 1,
/obj/item/storage/box/matches = 10,
/obj/item/lighter/greyscale = 4,
- /obj/item/storage/box/fancy/rollingpapers = 5)
+ /obj/item/storage/fancy/rollingpapers = 5)
/obj/machinery/vending/cigarette/beach //Used in the lavaland_biodome_beach.dmm ruin
name = "\improper ShadyCigs Ultra"
desc = "Now with extra premium products!"
product_ads = "Probably not bad for you!;Dope will get you through times of no money better than money will get you through times of no dope!;It's good for you!"
product_slogans = "Turn on, tune in, drop out!;Better living through chemistry!;Toke!;Don't forget to keep a smile on your lips and a song in your heart!"
- products = list(/obj/item/storage/box/fancy/cigarettes = 5,
- /obj/item/storage/box/fancy/cigarettes/cigpack_uplift = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robust = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_carp = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_midori = 3,
- /obj/item/storage/box/fancy/cigarettes/cigpack_cannabis = 5,
+ products = list(/obj/item/storage/fancy/cigarettes = 5,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_cannabis = 5,
/obj/item/storage/box/matches = 10,
/obj/item/lighter/greyscale = 4,
- /obj/item/storage/box/fancy/rollingpapers = 5)
- premium = list(/obj/item/storage/box/fancy/cigarettes/cigpack_mindbreaker = 5,
+ /obj/item/storage/fancy/rollingpapers = 5)
+ premium = list(/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker = 5,
/obj/item/clothing/mask/vape = 5,
/obj/item/lighter = 3)
diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm
index 4a07e936eef3..e48049a9ba60 100644
--- a/code/modules/vending/security.dm
+++ b/code/modules/vending/security.dm
@@ -16,7 +16,7 @@
/obj/item/flashlight/seclite = 4,
/obj/item/restraints/legcuffs/bola/energy = 7)
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,
- /obj/item/storage/box/fancy/donut_box = 2)
+ /obj/item/storage/fancy/donut_box = 2)
premium = list(/obj/item/storage/belt/security/webbing = 5,
/obj/item/coin/antagtoken = 1,
/obj/item/clothing/head/helmet/warhelmet = 5,
diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm
index 3443fd4bb88c..75b83965918c 100644
--- a/code/modules/vending/wardrobes.dm
+++ b/code/modules/vending/wardrobes.dm
@@ -427,7 +427,7 @@
/obj/item/clothing/suit/hooded/caretakercloak = 1,
/obj/item/clothing/suit/yogs/monkrobes = 1,
/obj/item/clothing/suit/hooded/amech = 2,
- /obj/item/storage/box/fancy/candle_box = 2,
+ /obj/item/storage/fancy/candle_box = 2,
/obj/item/clothing/head/kippah = 3,
/obj/item/clothing/suit/chaplainsuit/whiterobe = 1,
/obj/item/clothing/head/taqiyahwhite = 1,
diff --git a/yogstation.dme b/yogstation.dme
index 6a1d5318bfdd..f54955d7e33b 100644
--- a/yogstation.dme
+++ b/yogstation.dme
@@ -209,6 +209,7 @@
#include "code\__HELPERS\icon_smoothing.dm"
#include "code\__HELPERS\icons.dm"
#include "code\__HELPERS\level_traits.dm"
+#include "code\__HELPERS\lighting.dm"
#include "code\__HELPERS\maths.dm"
#include "code\__HELPERS\matrices.dm"
#include "code\__HELPERS\mobs.dm"
diff --git a/yogstation/code/_globalvars/lists/maintenance_loot.dm b/yogstation/code/_globalvars/lists/maintenance_loot.dm
index 5ba0c6e5010c..11e4a88eee66 100644
--- a/yogstation/code/_globalvars/lists/maintenance_loot.dm
+++ b/yogstation/code/_globalvars/lists/maintenance_loot.dm
@@ -232,22 +232,22 @@ GLOBAL_LIST_INIT(maintenance_loot_traditional,list(
/obj/item/stack/sheet/rglass/fifty = W_RARE,
/obj/item/stack/sheet/ruinous_metal = W_MYTHICAL,
/obj/item/stack/sheet/runed_metal = W_MYTHICAL,
- /obj/item/storage/box/fancy/cigarettes = W_ESSENTIAL,
- /obj/item/storage/box/fancy/cigarettes/cigars = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigars/cohiba = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigars/havana = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_cannabis = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_carp = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_midori = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_mindbreaker = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_nonico = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robust = W_ESSENTIAL,
- /obj/item/storage/box/fancy/cigarettes/cigpack_robustgold = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_shadyjims = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/cigpack_uplift = W_ESSENTIAL,
- /obj/item/storage/box/fancy/cigarettes/cigpack_xeno = W_UNCOMMON,
- /obj/item/storage/box/fancy/cigarettes/dromedaryco = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes = W_ESSENTIAL,
+ /obj/item/storage/fancy/cigarettes/cigars = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigars/cohiba = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigars/havana = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_cannabis = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_nonico = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust = W_ESSENTIAL,
+ /obj/item/storage/fancy/cigarettes/cigpack_robustgold = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_syndicate = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = W_ESSENTIAL,
+ /obj/item/storage/fancy/cigarettes/cigpack_xeno = W_UNCOMMON,
+ /obj/item/storage/fancy/cigarettes/dromedaryco = W_UNCOMMON,
/obj/item/a_gift = W_ESSENTIAL,
/obj/item/airlock_painter = W_COMMON,
/obj/item/ammo_box/foambox = W_UNCOMMON,
@@ -368,7 +368,7 @@ GLOBAL_LIST_INIT(maintenance_loot_traditional,list(
/obj/item/storage/box/disks = W_RARE,
/obj/item/storage/box/disks_nanite = W_RARE,
/obj/item/storage/box/disks_plantgene = W_RARE,
- /obj/item/storage/box/fancy/candle_box = W_RARE,
+ /obj/item/storage/fancy/candle_box = W_RARE,
/obj/item/storage/box/fountainpens = W_RARE,
/obj/item/storage/box/matches = W_UNCOMMON,
/obj/item/storage/box/official_posters = W_RARE,
@@ -454,9 +454,9 @@ GLOBAL_LIST_INIT(maintenance_loot_traditional,list(
/obj/item/storage/box/donkpockets/donkpocketpizza = W_ESSENTIAL,
/obj/item/storage/box/donkpockets/donkpocketspicy = W_ESSENTIAL,
/obj/item/storage/box/donkpockets/donkpocketteriyaki = W_ESSENTIAL,
- /obj/item/storage/box/fancy/donut_box = W_RARE,
- /obj/item/storage/box/fancy/egg_box = W_MYTHICAL,
- /obj/item/storage/box/fancy/heart_box = W_RARE,
+ /obj/item/storage/fancy/donut_box = W_RARE,
+ /obj/item/storage/fancy/egg_box = W_MYTHICAL,
+ /obj/item/storage/fancy/heart_box = W_RARE,
/obj/item/storage/box/ingredients/wildcard = W_RARE,
/obj/item/storage/box/mre = W_ESSENTIAL,
/obj/item/storage/box/mre/menu2 = W_RARE,
@@ -515,7 +515,7 @@ GLOBAL_LIST_INIT(maintenance_loot_makeshift,list(
/obj/item/storage/belt/military/snack = W_RARE,
/obj/item/storage/belt/utility/makeshift = W_UNCOMMON,
/obj/item/storage/book/bible/booze = W_UNCOMMON,
- /obj/item/storage/box/fancy/rollingpapers = W_RARE,
+ /obj/item/storage/fancy/rollingpapers = W_RARE,
/obj/item/storage/box/hug = W_RARE,
/obj/item/tank/jetpack/improvised = W_MYTHICAL,
/obj/item/twohanded/rcl/ghetto = W_MYTHICAL,
@@ -1014,7 +1014,7 @@ GLOBAL_LIST_INIT(maintenance_loot_serious,list(
/obj/item/storage/belt/military/assault = W_MYTHICAL,
/obj/item/storage/belt/multi = W_MYTHICAL,
/obj/item/storage/box/donkpockets/donkpocketgondola = W_LEGENDARY,
- /obj/item/storage/box/fancy/donut_box/deadly = W_MYTHICAL,
+ /obj/item/storage/fancy/donut_box/deadly = W_MYTHICAL,
/obj/item/storage/box/flashbangs = W_MYTHICAL,
/obj/item/storage/box/flashes = W_RARE,
/obj/item/storage/box/gorillacubes = W_LEGENDARY,
diff --git a/yogstation/code/modules/clothing/suits/miscellaneous.dm b/yogstation/code/modules/clothing/suits/miscellaneous.dm
index 4bd350392f00..a2a8e270b9ed 100644
--- a/yogstation/code/modules/clothing/suits/miscellaneous.dm
+++ b/yogstation/code/modules/clothing/suits/miscellaneous.dm
@@ -173,21 +173,21 @@
desc = "Aviators not included. Now in dark blue!"
icon_state = "navymiljacket"
item_state = "navymiljacket"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
/obj/item/clothing/suit/yogs/desertmiljacket
name = "desert military jacket"
desc = "Aviators not included. Now in dark brown!"
icon_state = "desertmiljacket"
item_state = "desertmiljacket"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
/obj/item/clothing/suit/yogs/denimjacket
name = "denim jacket"
desc = "A bit scratchy but pretty cool looking."
icon_state = "denim_jacket"
item_state = "denim_jacket"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/box/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/tank/internals/ipc_coolant, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
/obj/item/clothing/suit/hooded/fiendcowl
mob_overlay_icon = 'yogstation/icons/mob/clothing/suit/suit.dmi'
diff --git a/yogstation/code/modules/jobs/job_types/clerk.dm b/yogstation/code/modules/jobs/job_types/clerk.dm
index c57b7640125a..9ba5a203c724 100644
--- a/yogstation/code/modules/jobs/job_types/clerk.dm
+++ b/yogstation/code/modules/jobs/job_types/clerk.dm
@@ -29,8 +29,8 @@
/obj/item/circuitboard/computer/slot_machine = 15,
/obj/item/twohanded/dualsaber/toy = 10,
/obj/item/toy/windupToolbox = 10,
- /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate = 5,
- /obj/item/storage/box/fancy/heart_box = 5,
+ /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 5,
+ /obj/item/storage/fancy/heart_box = 5,
/obj/item/lipstick/random = 5,
/obj/item/skub = 2, //pro skub have taken over the mail
/obj/item/stack/ore/bluespace_crystal/refined/nt = 1
From e9eeb8de21ebc6ee09a6f396ccff859a57d53461 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Sat, 15 Jul 2023 23:10:16 -0400
Subject: [PATCH 24/50] Fixes airlock unres sides
---
code/__HELPERS/lighting.dm | 2 +-
code/game/machinery/doors/airlock.dm | 50 +++++++-----------
icons/obj/doors/airlocks/station/overlays.dmi | Bin 8966 -> 8989 bytes
yogstation.dme | 4 +-
4 files changed, 23 insertions(+), 33 deletions(-)
diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm
index 6a56d65ae016..f7730324ef67 100644
--- a/code/__HELPERS/lighting.dm
+++ b/code/__HELPERS/lighting.dm
@@ -2,7 +2,7 @@
/proc/emissive_appearance(icon, icon_state = "", atom/offset_spokesman, layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE, offset_const)
// Note: alpha doesn't "do" anything, since it's overriden by the color set shortly after
// Consider removing it someday? (I wonder if we made emissives blend right we could make alpha actually matter. dreams man, dreams)
- var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, offset_spokesman, EMISSIVE_PLANE, 255, appearance_flags | EMISSIVE_APPEARANCE_FLAGS, offset_const)
+ var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, /*offset_spokesman, */EMISSIVE_PLANE, 255, appearance_flags | EMISSIVE_APPEARANCE_FLAGS/*, offset_const*/)
appearance.color = GLOB.emissive_color
//Test to make sure emissives with broken or missing icon states are created
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index c25316d9753b..b7069f638451 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -737,7 +737,26 @@
if(AIRLOCK_OPENING)
if(lights && hasPower())
SSvis_overlays.add_vis_overlay(src, overlays_file, "lights_opening", FLOAT_LAYER, FLOAT_PLANE, dir)
- check_unres()
+
+ if(hasPower() && unres_sides)
+ for(var/heading in list(NORTH,SOUTH,EAST,WEST))
+ if(!(unres_sides & heading))
+ continue
+ var/mutable_appearance/floorlight = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_[heading]", FLOAT_LAYER, ABOVE_LIGHTING_PLANE)
+ switch (heading)
+ if (NORTH)
+ floorlight.pixel_x = 0
+ floorlight.pixel_y = 32
+ if (SOUTH)
+ floorlight.pixel_x = 0
+ floorlight.pixel_y = -32
+ if (EAST)
+ floorlight.pixel_x = 32
+ floorlight.pixel_y = 0
+ if (WEST)
+ floorlight.pixel_x = -32
+ floorlight.pixel_y = 0
+ . += floorlight
/proc/get_airlock_overlay(icon_state, icon_file)
var/obj/machinery/door/airlock/A
@@ -747,35 +766,6 @@
if((!(. = airlock_overlays[iconkey])))
. = airlock_overlays[iconkey] = mutable_appearance(icon_file, icon_state)
-/obj/machinery/door/airlock/proc/check_unres() //unrestricted sides. This overlay indicates which directions the player can access even without an ID
- if(hasPower() && unres_sides)
- if(unres_sides & NORTH)
- var/image/I = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_n")
- I.appearance_flags |= KEEP_APART
- I.pixel_y = 32
- set_light(l_range = 2, l_power = 1)
- add_overlay(I)
- if(unres_sides & SOUTH)
- var/image/I = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_s")
- I.appearance_flags |= KEEP_APART
- I.pixel_y = -32
- set_light(l_range = 2, l_power = 1)
- add_overlay(I)
- if(unres_sides & EAST)
- var/image/I = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_e")
- I.appearance_flags |= KEEP_APART
- I.pixel_x = 32
- set_light(l_range = 2, l_power = 1)
- add_overlay(I)
- if(unres_sides & WEST)
- var/image/I = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_w")
- I.appearance_flags |= KEEP_APART
- I.pixel_x = -32
- set_light(l_range = 2, l_power = 1)
- add_overlay(I)
- else
- set_light(0)
-
/obj/machinery/door/airlock/do_animate(animation)
switch(animation)
if("opening")
diff --git a/icons/obj/doors/airlocks/station/overlays.dmi b/icons/obj/doors/airlocks/station/overlays.dmi
index e61be04cc5f7ea23cf24ec72cde8540179305e19..923f653dd92a051afa277e46d01afc32ec4c7c65 100644
GIT binary patch
literal 8989
zcmbt)XH-+$+HMeOf)v>biVy_FLWxL|8jzwisnQ|zUK9io2q2({fQU#31JZl%1`wo3
z@1b|3calI7lDpVv?>o-<&KYOiZ`>alNmkxD*LutIyk#a#^XcP@7p`3Zfj}3PpD1X9
zKxF1;FKSBQ%3F&JHQ1se}5cZcUM9o$?&An%l-SXI}S`;6~U`*-=qzva{9
zzKl_)$Tw)d%oRfy_I6(Zqxo~YfqHS2mCey+=?Tg2YfUJ@iHJ1VpK$---)s<;wCZ<&
z>H8d9n7bejw&Qb<9lPiWjXO`)e-{!=Pj!nk`>S_4PX&I^t6i*@!W@?Knu)5EEV{j=eD>u+5%0H3
zm`Noijmibl)+XWz1E)>ceJKO6x}q?WxemjM%`cAKL}g
zk>_WLsKRp)h!do&AgAk{
zvOVMG%!W-}-G?X|W!{?5zB!b?*&Z(Y+<4`~Lx;AF3TJHm5U-XhnXJA&==B)HRn0xq;_0WK(Uy@0BlPmIhT+ydQO1OsiTt1PfO4
zgP;j;6e1B>snaB6;0@Na_l^@Kt%hNg5LAJ=+k1srH7GbzUv^O!bu
zNyI0DPj{U&YVzLUMi@NcF8x^ugBN^Jc3*o%eb|f>O^9WV>erzjUggkx?y9;s2b&ZR
zSo*qFD5Aq@xu)D^J|Ap~j^xOow>@kKlgmA;{oVDES|=gS(X{S*zwNHrEJ-HYwDuXa
zm5q1+yBQIgcIn1rmz9|&jBxHL0&ttQ*fsQY_O%TiXb-xo&bFNQV_V|j*qN*u@tIw7
zF&nCW2j!Bh0pFMk-A6Uf?zuQpJlBi6G~-KE_4UU_-9>bs1{{CipL_}CKxwl3VUy(_
zTL}^a-G=p6Q+080>6$#OTb{c0`n&4vsqwDm1DFHL&vHqFU_G4JC)^0C5ZHpsJNZKcr=CxC@e$s~
zRcCij8-Xh_fla9hjjA-2tcq4Ys3R0?lNb908@>Je0d;A6jO2{^U7T$kPxPm$=s^C;
zIan5<#8aki88zeH+Je47vdVWaeFC%!Fdpl-Kl`qzY}6ewEBDiS^7pehj>eG*nWrf_
z^hp(5zidHxPu<(mOfzGIHkJvL4h@hoe+Veb$%jrWU4Be47
zjNa6eRv0tNXKseu2!f8b*_7xl*lWnGJ{)$k`qvQp0EhaF4>V!7gZj24LM|UgSy{&nTfI`NzQQu^?!_*rsceOth8JL~f_F*k-MxX*
zYzPlS^wru?+eZ=5=_SzDb{Zh&Ny&)BVtzU!ffgR?~&xF201@CinsWe>I#=0=Q
zcA3iHI>_}~L6UZeF>zBAH?+}npy*Eo{IBCyX@3YC{bOF_o%jdHZaJ&16|~#BV(pJ1
z;+$`03-I)0d@Tj@XIgc*X9s&%ZNj=KOS!i?-aH_Fikb_mA)6WqzS6&7zaUP}3UWqm
zJeC6mR#BUSG#`P;123Ip1$|*`2Bn37C_%T*-v`~f5lAK*77K3I@gdb>;RLQ?thVo*
zj#(oU?
z&sFGs0=NUTU^Bxe2;$^BH%Cks<`Ugc3S)kh-7Z}-x>#9TL|#kZq_GuXfD|ju=G8h
zx|E)pnr=T|eEH>m-BTkJ6W{iVn-yeM#*e}Lw)ad0YxUleZ`>O#?r$sw
z7=Zh`a!anR-RjWFlpCue>o|)XB*A5?Z7MXHVQJ7$
zsC_BXuHtHRXTky7qZWHxTcxk0$)KOrZt(~(qw@QSSpTz2^}8~^+~x$hxM(s))Bj%H
zA5?nd*m>=Sv(n?o-0-jv=c#IS;A13|2$-fXyJIfS>^oezwL|M$nCI36cUYOA_)YCC
z)dWPaR@MXpKMPlD%_NVh@k}~B=SdSHlbhanlmyo
zu9II)8yp;b0^_z^C`;*M^_<5AGeGB7+o@WrZFI;%-ww$fQNz=1rr%{T5#NnJ0qskT#vJOw97gQEBM
zUu<)LIKPZjkp1tR@EUXCFVY_hqLDnX)
z$maU3&U#+-J|In2d&cx#GYgOn$jH+CI(A7SL
z5*8S^xm4x8dv5B@?O@yVqqZS`Tu9xN6f>#cA2!~sFB#rNn0P@$XMM5ytqePa)pyBs
zpW2U43jt>cq~MLyJoPtP6?%=3o!gSn9H)Xnt^--B@p{Azkq;e9Iv&F;I$_0M^9Wln
zXY4LT09V2fQE{f&tRI065pyL;PTRNE05vVX*%p~q{<&Jy&8=ka6%eAzFVTJph}7AX
zwT+X~LA<-eyMPlw3p+pyZR%RrUKzU4!ghQ@2t7U!J}@z{j)%vIc6yvltoO>yx(pZY
zU0Y(v{rv&STHFw!q&_VR!l#v#^rP?|qEDEZR?BDcd7d+R*Ossazm0rp>UUJ&3AuHX
zW-aeQuFc($CX=nLtuLWq|M41~)MdLIXzbcX-Az@}Hwl>Mi~jtBis92blO0pUBwfT`
zrU)u-&<683j%_FwRP$5MQ(lMqn{fDU3Bvk?fVKOFZ^OJDf;anD++)Irev=w6AprGP
zlP;ny>lv~*x{!BJ`gU82wb9Yhivt6iC%B(KL$;=B`p1;r|*gV^q0K;i((7YJ?Z{Sg@XYH6k!)7>uu
ztqN8I$EZ3?IsF38=5hu=N?EN{+HOt!huhmcs#Mz0_-+wD@aWBYpT1s``tbk}>^_W~
z*HSQY-%0v+Qny6mW;}lc#okBLhGqQ#67~Svv`2CBtEP#6TgR5PISJ61)a!Z3gC_4s
zjVCJ8@i_lRiV3IRLv6$s^xNTm&%yZ*25MFWqo}&y<@B348(J%}>roKo{0SoJ)QE^`
zB7~c$Cc>$#r8we&Dn>zJc|Do}wh?eN`1s(U8-gdk_|ivtmuu1FU0C~Z6^F;R4SPGf
zo2UJpH^5p73PkjdTUSjJn*XeT$$wc#)WLt_;yM864uS^zZk2VmGC;4tCZ4RqX)Umn
zSCy_Uq5OJUzZY8U-Fcswc=h!bsws|CT6@QB&NKd|+GVfN0HPD^rKv_!e}CDVH;B??
z$0tu8Ld80Ro5T;;qq72p#4xV)oLmQ;r>{sOC3uFQ_G9&sH2&^ykHC&@8qnip?zxj$
z6qt~u2WMkVCX4#`Q3-d6Ch?>r;LG5kmQ@GIXVYz}x)+6;JKcE|-Vp`HZtnQa-ClLJ
z?>(s2h}=(}WN_>*FU?|LB??!5l=i(TD9RJ6@BvOU>@h#Tfj%91JmEhGA@-V);2#&2rL`z|(rrz^IHb
zXI^nB_fCFd#hX`=EZ*nZIici}t9tpLj_VK0RUP4ew0SOx@%dT^9
zh&Hmd?Be=p#38W8X>Y4rb9h{Elaxrqj@{cQH(6pW4}uvWWAM@!8`VE98bc@8oMNge
zn4CB#qHRzH5H>J8?fDJO`Ct@w;wA{xnr0Yvx=aj}l1C+}vEYfdZr+5#ug8
zAIu=L2PZ)S_sl7$0}ogG|D^tXuIr#X7L@<9HVh%&uZ(~Co561h^D|1ssp;i|0CQYw
z&7{xH@uKAb@;mT-{_iZXTXfkPT(zNx$1C{`=C12Qs6z+(0~-!?UKC9xTMNi|ZT0;4
zTIWpIrKB87T(gPkX@kO1?1RM4j{P|eGnqAl)S68GXwlCSGhs*EAZ-ixk&*d7--B3heGdCE1S?RhIUTM-~ZHAD|573~r`&
zTcgCWsQ-I=vNICbEc5%Zegi6roX~{C_L13sV{n^sB>l!uge&zb`O3Wy@duY)%vrzd
zaD5ZdRl6K9Nj7AjS^itq0l4?(*ah(>AHYVB
zA=FU=RHb)_ya{U?;_(1o>u&rwx$r%^Vjoz7SB*zps0Z$6B7k+xYC5c7iA;*b41E|{
zza2g)J^leSmc>Ne*JeFhb+1!qidN8%3S$Y08#Vn>-KP?;>;btZ!nToh+2%oppS9EF
z^Z=%(!`#?8BbRkN6d#lrK&5Rwi(1^P6#%Z$jP6vZm+og-S0-^-=n0xcU+{8MCDku6OKfhaAOG
z!$B;?kd(2)UFV}oi_#-mV+gTq%m|KRuo*<*W1^$am`&b;xgQU-~}jDgB3#Ih#+Z7Au&=u17S&v>>$f
zMP
zA@U%7Cvmn3iuBWxxYjtCG?L19FZecx^Y|6#wI3ly-HBI$fgMeo9Wc?0{QopJne0FH
z3FLvF6THYv^@XqT^Thl*Ks$@_($dnlKfRf!1#{{#^2Fou-M8C?k$#GC?Jo7%>Ir0_
zvPe6GI#0}Jm8`CKE>*UOl3qi-KV?PYOXM@MfqF7<;`zq5($j#i-7D6vu20?TQt0UE
zRUSVMMHCqt0-_ez3IIX%2&z&q&cx!~5X5?Y?1spYJRtE$xMEeLVn*XwLaVS|uV)wK
z8_Lp(9}QvzC0i^1BdhvGA+KT28T7UF^ok0d&%ZKzdVBMn?_5JywO`LJlW4i#$VEm4
zEO6>Q$8K~Z_gO`f4+p8SQHIHIQd30qN+iz6ihkID-GX5rIJWRkqewB#Y2T{Qh7ZH-
zKQ;{}y?vBEJ~2_ZWmjkNbaB5n`i1=n>RN@~i~(Qumh!~%f#*hYu|rHVxk0$z{L~Y?
zGNY``n~2WTlxY>?6+g>3I+2*f-mE|pBunVO@Q!q2FG&3V3*o<$xwc2bz;t`a5Y&K0o
zQqtxWhyL7a+lFis>^ZyNMP!PEr{jd@a093ChEt?rhU=PL^Ca0c3UwQZJPG9ZXlM~K
zBoEkJeKay6DvIr{b%6n&UeAjArKpZ)W+CBimfdFX(Tyz4JAX(@O2(h6Ww03IO4C_B
z2Hn@usc>B*X9ZP;__Le`*`E!=|J{oJHZT8w5K&(1|3C*agQWI=6Z}_;s=rD$)*eSr
zF+=I|>471ffK^A|^{p_4OkZ=^o6uWaHI#bcAj-hcf3`)McU~6nPCs97*9fLH$B>Z+
zs!DMnl9C(88y*I@Sh(UW-9DWS^lQ^Ox!x-1_lE)v9NXh&69#_AN&(F`7gVmls
zr8L~-2@Vc!cWU97?1uTCzN*Lq48|xpr|R#8JL`?_GKEnY(YC&}Q-pod7tiTNZ`hwVO?@
z_gSuaeB~^;a#$Cg5zQwo11LA>jKcpV%q&+d?18hQ
zE>V<7C4!w!@M=7Vu%L~s*lFKgqvM
z)OU{tU>l*ihq
zoan%9x}2w3hOT!rlQ(FbiiXyYo_-CPrxp%`NhCs_uN)&RXI||jklMGyz^E52V^sPS
zz2hEjvga8KWf|nB{^wMvcp;njZ9?P?RD`r~>n^-cly=xa%Q%h94|f`q%0il34?6T*
z>r8GkS{E&5$t!pFu#XL}9S%3_9Tx(@-vHA@4unxkQ}w)G+tPlX#10Q{Y;dn_?|8*E
zRJvWp7@JQ(l_G@v@r(
z8JxgOCHbtx2bjnmZ%bEfyLC12qb&JD0DOHk3qXM#AQ0~>*6Aa952;!l5lA^tjf-S`
zp?~~TK*iXu8C|$QW44MfJoE@+l}#ff08RET!vWD{<-(i_;v(TU82J$5f}OSbGbZwri@RIi_tEf)S>qg
z(&9Z<9iPpiABRK^J!j*tTT6rNd4P<~-1rgA<|@u?EiIgL|7*QWgjIX*xf!aIdY9*|
zV;Y$D$xIhu-?M`BydeW9NjXhu{;u-^KI;*lBOnln
zRrP_AHV8y#cJMjO1Uz|do~91`fWdU1c_>-ATe{h~c-T2Rfj~Zq=-5uD8i`{Ko$WeG
zF3P0?l=o)uG*fmVD?nDb;yRrb~Q;24M7`Ta*u;ptj=>_o(0bmSLt7`hM*
zUFi+(x|>p(^O<69tiGR3>ur>LJ!o3%Al}wcU?V#nf860`VJfi}ZsPh=SY_um&BXT6
z6Li<^nQ3zU6X$oS8FLbgiVEl8Vd9>91bS@X>-RpV4TTGv-DGRt&&D?nC~^p&VSerV
zNTW`p_~A2NL$v0ZCtfyofx|a1Ca?t$y~pxo&-FAzZZ|&v!g{`1`$@=io7xtsooDn5Iol-n=Izc}Zfj
z8A(o%%%hy~L`6pEn;0Ivm-&*bhr+L2W@@cyhxt8uL(LtJt2R}!+aFV>-YPPJKxaX!
zN{YHZiA$r-4!q=~*)?%xgD)5G+JY_Li4DqUOVBXo#KI#ZOBbw;eR;qp6S#{RWX7l3
z!j#Xg$Uo@We1owwCyso{JSyFMXw(PntMO=R|69PJv^z=GkWkm7U-AMA3PSrGf2BrE
zk|0+x>fuN1)PBja-{+51eJo&uAV6-eaGre>b8R2tpO}C|oMCHj8XS!GNk^=cRXJ4S
za)gYlT5h1`Aryi-wpI5od?BQ?5;Lofe9G5qId3CH60;PJCMxJgi#EFcl*9p!gC^wKQ7rrDtud#LCa|5{5*0
zm*2+nsfo4@w)E{HeQc_81hw8Y4fLQa^EYETo_@yVt6%8*iijsd-P@mMy{%8^9>|YC
ztLM_*NSWbkgpJ8i?ggEc-7WKdVbfgSgxEtj&WDFBV_(KnU-jo7BV}sA_aqSXleseV
zIi9toqohp8%Y$zG`x`#NY
zdsZLgveo_|)p^85nM>jP-3@t{yWZ)$8j$Mb-g`XjK1Om}{w0mMKTlOQKb}teA;xT3=%f*hRFy?Tmcr{y;N`Vi(a0J|Do
zsa6~{W8S(tIjOTWdmB=Mx4s*pFfxgok>4LL(@mg*J|k}7Vx-JafJ@g%&Nk!@%CP<<
z?WJh-_B~m|iUY205qIhvH%HXtd0C!a%nQ&Vs597$iWK&IQojVWB$)dU)6j^yn^#KH&HvE>H}6H7K>N<@)4h
zEMjEu7J>r@&BW$j&b3N-sQr;Y8)i5keqWL#Mt^oB`Zoo#^Agyyi^6E|q7X8^SB2ea=knK*BdwgX;;cYHC{J-^
zulDEB0{KOo)A1s3t2*g4G%%Kt6#jehbekD_zD(Vg{JI>Kxd{BSbnb
zVd*eE$MWN>9MIs@X8f6Ifg)y`g1&?QBztc_i&onz0;8GwNpnQdS
z=AoiNt7NS1k+#^t!atp_0|n$A-sj5Oy7)OmdoSE~>S1nZ(>D*z*Q8#3y1~Y#W6#b9
zsflZO2?9{9VX=rBVp9VJq#R;3L*sLW{jjLz-ulB60jyv!Co?lMDhG)~wpPOTA{@a(
zq}q;*JwlvG1)KqPxQ4|vTG2=h0Q|-vf9ZN)=$SZPan24|6iin2Ftd$|%Oev7n8*As
z3gT1kLoqJ*;zoz@7UHTRu|9i;7ezvK?ftuVOx8-EZo0RS${qWvCJ8$mV+WXSC1i2Z
z!6z9{aUIegS-N9a(g6dM`{~?saxk$XG+^q
z)1~dUqd?xv)r1R1EI2xwR`_jbBtRXXEGd^GxbTHk$NBovkQKT`Rul3fu11#zYAh$9i0YZc|s1vYlui_IGDQE;TqmL
zA)6}AytfZ$gG4$4nV(+`y%@AAEyRy()v4VO5LoY9tuP`=?|nME=HrL=>?PG|`cj4m
z!;6vCrYy4zKjtT^5AyGZw6WsI-m_i&6MvaA3sUm(Vp_}LZ$g`*_ddVB@uJ5Ee*K?4
z!RMVD(snE&8hbjedjz5$PjdzZJ(l?xJ6k0q{$pu)+J;%_xP@0*r**;l6r8Mz*z@Ax
zP~}3iEs>lp#mD3$Dma5!f7;vwn@dSb9-mhgd_IhEl$4aT*r(!vsmYAeFq^-Y(m2N6
z9%s#VBs-}_ylpubWuaBGe@3?)F^Kn|4flkXgAZ}NQJH>84>C*p?3+#^?8+XqXZQoR2B2X!xm?Gy`;%@#|%`Sf=R&i_9%JP5=Dy71qV
zz~7tbDx7-Z<5N=NOpqsm8=-o&wYBv>fBsA-PEJmK_Vfq5E=B^_%XIX2pgm$WBfkaF
zSlQTGa*WFhhuJxNVL#Hr92oygkU$>*Z|&beU
zVH#MFfiAsIV@J}5>5s`|s$T*nK7!}TDtW*)h#(%0D3
z6smm@a5|X|84=;a_B=pEMMXd^EXZLPqd}>}q;neXy1=@#!SL@=W(>Li60^JRYz|uD
z%ksg&!G{&UOtUO`LOQCcEi|@CbDqQhj_Y>>aMOwb#eG)QS1%4?G{L>
zp`oGB7ZmX57dyj$$HadR!r#dH?@e?SV%-0XQyQe>hODg7nKNgM$||8avGXLXXJcdI
zg}EQlzPg1Uln|S}+`e#oP&u!p{st-SJ}PHrs7Nh+86c9>%TNnaA;w>4xWdaA{Uc7t
z&Qw>9VZy2Dd3&ajCcqO`09~MS!hTz_bENT9cxpJ(GN5|ecBaRsua1vxZPmA4C+KED
zuk1_PAL_St2p<~uFNHsr4)9(a$<*EmqxX+0eI32t{`8lPBb7Eu~?MY7n%O<(*w-5KP^qj$X9zXs1LE5(UPFPIRQ99up-lS40=zADbi
zTq1b1Km4^;l32dcpyQ+obdZ&o&(Yp!hCk+rN>__43yZ$^@!!W-TXV(l(`K9&lu06?
z4l-HV8#}q}Y7To|J9xUND2}8u78ZnM*SE0#-XUsA#fp5hGeJy1;C!$b$az#LdcY_X
zr6eNsBW_8O^qQA0`xZSvH}_S9=2%nHgD)4O-Z>6qxY4r@nL8)S)~Iex;E7Y
zLtZO!b#vc<)MjI4llB&
zX&8$YD14+us&L^$;tSippwU69r;l$~L}cXUVg}H}$(E-zbOEgY0VX-MG{3oXlV8_B
zw)_k(au|p1WzZe^^8v&z0wH(wPymw(2sbh6P3U)``{VKGsHm0#o4Y^3l->PcdSWup;2bKB6x>9d(wdN1Qxp
zZ7>{c?Pw@LpVQr|rC_|cyd38zFRrlLjr2=mMDi=R=Rsvo(4PC#$~yLS+f&XJs9H~^
zlx=L;nogx{uLy}jHVYch+C>m@KR}l*%$4=;N<4N?Hz~9q4&-);L~PeWRFqD?@*xhO
zD@T{ZbNLCTmrf4hik(Y5CchRBco;^nBpZ0$4jFr~hq?zIqaZ!6bDxb|+tYVPV~uW*
z5viV8B=gTR53x-)D|(rZM-P=~qQs29Q}07hA{)P2e-+;nx>c63F4ZgT|K3cNKgA%v
z9J5#^&dQ_?OtaqzDz1n_4}^q$5GH+oGJKlBC8?~uoKo2w82aFI8u8VB+vbeYeH=4s
zEKcpb>{KsTRf;rjNbTHsnedkRH|q;ydx9P}m=<4cZFv!#3kvTgw|1&KZ>?GLTED_^
z`QMSw+OjBFmgJFkrKekbm7L6P>fDJxr>vCNYT#^>PQ>(ZRhb^x>-u97_P#9V50$Wq
zSM9s~z+#R05!>bj`2|4*DM}dN#07o7&;`H#I=QTtPIdCMTWK-eUP^*zl3Xxj;LB3x
zR3xw7XOzi_9>SarAiDgjV|lUJeIHIq%v8FMO3_lUQ@d?sDu(*_?A>V^GIkr7zC12F
zi?bJgiImqD?gsa4NDkuV=NDsRV-qumKp-gi-WK=XyNa_51lLABPx5qZO2RTpn4Q0r
zmP0{|yj49I*&2&wXdiC;9X6`?E1OpM=jLZ1FtBY9?<2*GY3uah_$z$RC}4&Cyyf9l
zH_iK!*Mtk+Hf&3;Y)IrnxnvpEcDvIgV_TbzpjmB27_pD5{A
zOybHqrE#9mip34Nj*cHNkvMI}dCIhMm2s!JxJneQV-4~AH~q4#23If*T#N+_<+{KT
zl9ggSMjYXG5vD|WoDt4^w9>&`Bw%u_{-P|cam}=uM#cHZLb2ASblk|s>CA~292_s~
zea29`5XAPUiv9K0$|}C}f_ra5Z=lRSUqztzjC_qlT=(+Bet`HP5Mb+~x#O-+4-V%Qh
zg{SMLr%z9{-(HCc%B;!R?eupvu^29H?PLoTtgG?|Au5k|bn>l_=OX>?KVLJSX;{|a
zR8l&KU&^lMo?;hQRTz7rm2u4cy`|}SW`Fq9ZNlE}tE#T=&h(a2<55vj53~f%;j8v;
za|5jCMa?ayVjPG4(6rGNM6nNmuPUbwvZY(c+ks2sdwpD0nUkrQ?4yRe0TbT$pu1RbKbqdSKz93vjKB{;j-Sx(dGZlR2GQn5G&>0g~gFj<++CjA6wf?!0Zg1mM%g>hC&z}FWE?0y-r33qGs;TxxG367=SU_1frtTsCj9pZG%uZZ2hPqc
zmR3V^`oi@b4Zl@zBlWhK9{YQF=^>~aDSNk)sc(q{ttu%`Qj_yrk;EiZf9$~UP1A^J
z!Zu}a1kyQuB$B<74Ir>50D&bO-w9`mh)&=}eI+klLx?!Q<%4Z0?g97GSg(Dv`z
z@qJfH@K#Ue{!3>+nKjGyA@QUZNIZfV8J9C$Rl@Eee(<}*?U&Y%j@w>sFQAP0#)qE5
z6gU=Z+qap;8FX*XraEaSvqW!6Ly{LFhnO+LIS5gksZ>uP7+$boO>6XpZ=v}5<9+WF
zDDW)>a2fKUXX{!PXXFROX5i{!%CQ^1JKBmyPvxFpF_sV{>k@aRT~9>8PZmu3kw|7scE`NV}(Dx%#YNHh0SSrcxX)9
zWYE*T^!Uii7fE=d7du}q)*9ltebcK*X@3n52VJ~XCjUsp)CJZA5VTC6T4^Upsyn3E
zDLrHdvGw_J!I%lVz$XPJhuX%?7%vzJc}#Mo@ePED`;j=0G<1P+f_)dH>EV&o`#mWo
zVQg`6GXs`+QcRINfiBl>+UXBh(NKUX`UJ@bD6f4o12zsL;G><%JS)8Vp`#-OAWmUp
zgutA9g{OPz$nZ3^qtoP?{lKuA)Wh`TOZH?l;X}_*D%*`}=3S`PX(1)0<9xaUJA9<6bfq^vTSsZ1
zz~fn^Nb2{|dj~V#>ZzAsGI98`J!d<2%5{)5%r&G+kKzFn)SgdyG)I4r
z4Gk0p(~8*qV~F*ln{?Uj!AYZh@@g
z#LtG;y`0Ndn<(CtKBa9R;+s%eH=3~miJFvhu&~9bvv$Gn9Bm-++Dp2!*45{xf&w;L
zM06Tuu|NiBq~Wr^qO8Bb+48(7v9PlNr|NOa#UBtgjdJwvV;j|VC$z@OV(&Kn5z(VH
z7XZh0BFG0^djvOo(eU|%j1Kn3x$#pT0IG@CN8B=c2)q9P43%s3t2`||QE%yhef)N+
z5Saz+VN;*A)ho$A>#Kd|v5sc714!>igD+NywTmxy#&D4R`uPOUP6m8P@$&4gb%jf0
z@4pZ%_9=xf1z;TGtgRgj5dy)LvN!LYk;A{!9>sV9n<(C}?!1q1SVqpeF?t_n7`>kk
zz~wJj{&A!^LOI3-DmV(sV^TY~$fvu=j-tK#4
z1EpffQSPLa880mFG1m&GO`A-FaaKs)+tFZGU+#}|!*_feERW72x`uX=)FMd}5qK8!
zUJ~C2b2Fg(FRC}L>+rrC%BjJ+dcUziEq;Y}N#7-&81kZA_~J>3S}yjdWocdxV6Oa3
zFS4ePhJUh){n6WX4YJHp>D4XI3a~_w;<}UnP)J=NS@neHHE?k$QLijFvMoTm7CHXf
z(P2=iwnS^lrONj;a3Wkx!%ErWiqn}HoYP4TQ|v)o_e4WP;df{WK1;hpa)Wu|gI%v!
zgwZzEz#RmtP*qs0{|A_dtQz%+>erd_L?4Yav569yk-|)Ru1An#)--|!8E#(QqlE!d#J+fVT$XbgxP1+0Sn%l5$>HH)6h#Epsw&HWU6L*G_sn?1
z>*FXoGNp*5-3;iE;3{a~^Qmo_9_q!zsTI{JLBif=27}xb({>nAtsQGP^K^PU0{CPY
zkk(+C2*{lmDu)Jx+4DXzgIuKC`14qQeueLT)N{OUxC_erHV;+=1)zN{Oa7nN27tKQ
zhO4C2@9exN0xvESiH5tWZR$ej4X{dS-4>DwMrAqu;iB-tF12esqI>7QXTZ9?E`!z^Y3x1j`37
zGciq3$OKf@)7vV5u
zXlSm!N8W+R*nWOf%4~`6J8+O0$TbyDP*)jgSB8R1R5n^#$as*NlW~C0Z_6lhpnki4gRo9WTcZGBBm6aU0ggcdc2oE
z!V5kJ6p4pOe4DOPA7Ly{`@nMSz%jz36#!fJ*)
z>E|YTeNp78;}NzPcdNxArLB!wtI>vUe(IPe#+$H25Ie7K`XbOdRYeUBs=vMUar4^&v&;57X8s0&H&LS~%4h08_kXBPl9?mt|$$Qss
za^<r!A`pp}T4Wyrc~#Y<
zk3B8l76tTmyQb-)Nqo7C!fp5u!}1h^`pLD-*QL;nj;BB!<@
zV!*e4IVYr_uSSMh|NPc5;|fUL>qOul&{d2#%J)nMsYrwn`m-Mx1Wf0U0F+}c0@_$d
zpeN5p;YK32-+aC}suhbKjkZgF+AMl5bwUMXm~pbQU10eLA&k+^4(HT#Qfu`V!6q@~
zL>>FN0CY5<#U10=5mVIiEhsq^xCosd2_X+n
zTM@HzvM*Q7nH(UqCkw4*j|w=v7g+BSwxL!$b>i5uZ?sWTVmms^oE8Ma=>DmLD{DwQ
zRrch-4^~Q3tH5;2$?ge}so;9d~n*kqR-wJT-
zQ`f2}wW&j#3Iu@>uCu-HtY@AoGwj`X}3M8)j^0a4&WCxzHVyHkF#TIf?E-Phjv+N_;~xW65V
zjR7NV|gqR-Qtv#y@^*aa8uvw`+c
xmjSmQhJWhSyTmcy6`
Date: Sat, 15 Jul 2023 23:20:36 -0400
Subject: [PATCH 25/50] Fixes the flash
---
code/modules/assembly/flash.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 37f0bc3776fb..045045811f27 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -48,8 +48,8 @@
return FIRELOSS
/obj/item/assembly/flash/update_icon(updates=ALL, flash = FALSE)
- . = ..()
flashing = flash
+ . = ..()
if(burnt_out)
item_state = "flashburnt"
if(flash)
From 04ade08174e38b3158559996dac8b586787f44e9 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Sun, 16 Jul 2023 01:24:54 -0400
Subject: [PATCH 26/50] Fixes cryo cells
---
.../components/unary_devices/cryo.dm | 38 +++++++++----------
1 file changed, 17 insertions(+), 21 deletions(-)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index e3ac0838bb39..9a50e0b9df1e 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -103,14 +103,8 @@
beaker = null
/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon_state()
- . = ..()
- if(state_open)
- icon_state = "pod-open"
- return
- if(on && is_operational())
- icon_state = "pod-on"
- else
- icon_state = "pod-off"
+ icon_state = (state_open) ? "pod-open" : ((on && is_operational()) ? "pod-on" : "pod-off")
+ return ..()
/obj/machinery/atmospherics/components/unary/cryo_cell/update_overlays()
. = ..()
@@ -119,26 +113,26 @@
. += "pod-panel"
if(occupant)
- var/image/occupant_overlay
+ var/mutable_appearance/occupant_overlay
if(ismonkey(occupant)) // Monkey
- occupant_overlay = image(CRYOMOBS, "monkey")
+ occupant_overlay = mutable_appearance(CRYOMOBS, "monkey")
else if(isalienadult(occupant))
if(isalienroyal(occupant)) // Queen and prae
- occupant_overlay = image(CRYOMOBS, "alienq")
+ occupant_overlay = mutable_appearance(CRYOMOBS, "alienq")
else if(isalienhunter(occupant)) // Hunter
- occupant_overlay = image(CRYOMOBS, "alienh")
+ occupant_overlay = mutable_appearance(CRYOMOBS, "alienh")
else if(isaliensentinel(occupant)) // Sentinel
- occupant_overlay = image(CRYOMOBS, "aliens")
+ occupant_overlay = mutable_appearance(CRYOMOBS, "aliens")
else // Drone or other
- occupant_overlay = image(CRYOMOBS, "aliend")
+ occupant_overlay = mutable_appearance(CRYOMOBS, "aliend")
else if(ishuman(occupant) || islarva(occupant) || (isanimal(occupant) && !ismegafauna(occupant))) // Mobs that are smaller than cryotube
- occupant_overlay = image(occupant.icon, occupant.icon_state)
+ occupant_overlay = mutable_appearance(occupant.icon, occupant.icon_state)
occupant_overlay.copy_overlays(occupant)
else
- occupant_overlay = image(CRYOMOBS, "generic")
+ occupant_overlay = mutable_appearance(CRYOMOBS, "generic")
occupant_overlay.dir = SOUTH
occupant_overlay.pixel_y = 22
@@ -152,14 +146,16 @@
else if(on && is_operational())
. += "cover-on"
- else
- . += "cover-off"
-/obj/machinery/atmospherics/components/unary/cryo_cell/proc/run_anim(anim_up, image/occupant_overlay)
- if(!on || !occupant || !is_operational())
+/obj/machinery/atmospherics/components/unary/cryo_cell/proc/run_anim(anim_up, mutable_appearance/occupant_overlay)
+ cut_overlays()
+ if(!occupant)
running_anim = FALSE
return
- cut_overlays()
+ if(!on || !is_operational())
+ running_anim = FALSE
+ add_overlay(occupant_overlay) //so they don't turn invisible
+ return
if(occupant_overlay.pixel_y != 23) // Same effect as occupant_overlay.pixel_y == 22 || occupant_overlay.pixel_y == 24
anim_up = occupant_overlay.pixel_y == 22 // Same effect as if(occupant_overlay.pixel_y == 22) anim_up = TRUE ; if(occupant_overlay.pixel_y == 24) anim_up = FALSE
if(anim_up)
From 1acba9cd21cdc6167cac485c52dd78b3deabd890 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Sun, 16 Jul 2023 02:24:19 -0400
Subject: [PATCH 27/50] gun fix
---
.../machinery/portable/canister.dm | 47 +--------------
code/modules/projectiles/guns/energy.dm | 59 +++++++++++--------
.../projectiles/guns/energy/energy_gun.dm | 1 -
3 files changed, 37 insertions(+), 70 deletions(-)
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index afe15de749c9..a49fb01bf977 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -308,56 +308,11 @@
if(connected_port)
. += "can-connector"
- var/light_state = get_pressure_state(air_contents.return_pressure())
+ var/light_state = get_pressure_state(air_contents?.return_pressure())
if(light_state) //happens when pressure is below 10kpa which means no light
. += mutable_appearance(icon, light_state)
. += emissive_appearance(icon, "[light_state]-light", src, alpha = src.alpha)
-/*
- if(pressure < ONE_ATMOSPHERE)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o0", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o0", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_RED_LIGHT)
- else if(pressure < 5 * ONE_ATMOSPHERE)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o1", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o1", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_RED_LIGHT)
- else if(pressure < 10 * ONE_ATMOSPHERE)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o2", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o2", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_ORANGE)
- else if(pressure < 20 * ONE_ATMOSPHERE)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o3", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o3", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_ORANGE)
- else if(pressure < 30 * ONE_ATMOSPHERE)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o4", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o4", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_YELLOW)
- else if(pressure < 40 * ONE_ATMOSPHERE) //pressure pump max
- SSvis_overlays.add_vis_overlay(src, icon, "can-o5", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o5", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_LIME)
- else if(pressure < 9100) //volume pump max
- SSvis_overlays.add_vis_overlay(src, icon, "can-o6", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-o6", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(CANISTER_LIGHT_RANGE, CANISTER_LIGHT_POWER, COLOR_GREEN)
- else if(pressure < 9100)
- SSvis_overlays.add_vis_overlay(src, icon, "can-oF", layer, plane, dir)
- SSvis_overlays.add_vis_overlay(src, icon, "can-oF", layer, EMISSIVE_PLANE, dir)
- set_light_on(TRUE)
- set_light_range_power_color(2, 2, COLOR_WHITE)
- else
- set_light_on(FALSE)
-*/
-
///return the icon_state component for the canister's indicator light based on its current pressure reading
/obj/machinery/portable_atmospherics/canister/proc/get_pressure_state(air_pressure)
switch(air_pressure)
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 56c99af8d539..9ae0c3a0c2ef 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -10,11 +10,10 @@
var/list/ammo_type = list(/obj/item/ammo_casing/energy)
var/select = 1 //The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next.
var/can_charge = TRUE //Can it be charged in a recharger?
- var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_appearance(UPDATE_ICON)?
+ var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_overlays?
var/charge_sections = 4
ammo_x_offset = 2
var/shaded_charge = FALSE //if this gun uses a stateful charge bar for more detail
- var/old_ratio = 0 // stores the gun's previous ammo "ratio" to see if it needs an updated icon
var/selfcharge = 0
var/charge_timer = 0
var/charge_delay = 8
@@ -159,41 +158,55 @@
update_appearance(UPDATE_ICON)
return
-/obj/item/gun/energy/update_overlays()
+/obj/item/gun/energy/update_icon(updates=ALL)
if(QDELETED(src))
return
- . = ..()
- if(!automatic_charge_overlays)
- return
- var/ratio = CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1)
- if(ratio == old_ratio)
- return
- old_ratio = ratio
- cut_overlays()
+ var/ratio = get_charge_ratio()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
var/iconState = "[icon_state]_charge"
var/itemState = null
if(!initial(item_state))
itemState = icon_state
if (modifystate)
- add_overlay("[icon_state]_[shot.select_name]")
iconState += "_[shot.select_name]"
if(itemState)
itemState += "[shot.select_name]"
- if(cell.charge < shot.e_cost)
- add_overlay("[icon_state]_empty")
- else
- if(!shaded_charge)
- var/mutable_appearance/charge_overlay = mutable_appearance(icon, iconState)
- for(var/i = ratio, i >= 1, i--)
- charge_overlay.pixel_x = ammo_x_offset * (i - 1)
- charge_overlay.pixel_y = ammo_y_offset * (i - 1)
- add_overlay(charge_overlay)
- else
- add_overlay("[icon_state]_charge[ratio]")
if(itemState)
itemState += "[ratio]"
item_state = itemState
+ return ..()
+
+/obj/item/gun/energy/update_overlays()
+ if(QDELETED(src))
+ return
+ . = ..()
+ if(!automatic_charge_overlays)
+ return
+
+ var/overlay_icon_state = "[icon_state]_charge"
+ if(modifystate)
+ var/obj/item/ammo_casing/energy/shot = ammo_type[select]
+ . += "[icon_state]_[initial(shot.select_name)]"
+ overlay_icon_state += "_[initial(shot.select_name)]"
+
+ var/ratio = get_charge_ratio()
+ var/obj/item/ammo_casing/energy/shot = ammo_type[select]
+ if(cell.charge < shot.e_cost)
+ . += "[icon_state]_empty"
+ return
+ if(shaded_charge)
+ . += "[icon_state]_charge[ratio]"
+ return
+ var/mutable_appearance/charge_overlay = mutable_appearance(icon, overlay_icon_state)
+ for(var/i = ratio, i >= 1, i--)
+ charge_overlay.pixel_x = ammo_x_offset * (i - 1)
+ charge_overlay.pixel_y = ammo_y_offset * (i - 1)
+ . += charge_overlay
+
+///Used by update_icon_state() and update_overlays()
+/obj/item/gun/energy/proc/get_charge_ratio()
+ return can_shoot() ? CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0
+ // Sets the ratio to 0 if the gun doesn't have enough charge to fire, or if its power cell is removed.
/obj/item/gun/energy/suicide_act(mob/living/user)
if (istype(user) && can_shoot() && can_trigger_gun(user) && user.get_bodypart(BODY_ZONE_HEAD))
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index 852661f666ec..d1a0c5bc2bc1 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -143,7 +143,6 @@
pin = null
can_charge = FALSE
ammo_x_offset = 1
- old_ratio = 1
ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/xray, /obj/item/ammo_casing/energy/anoxia) //a lot of firemodes so it's really an ADVANCED egun
dead_cell = TRUE //Fuel not included, you will have to get irradiated to shoot this gun
From 92ce4492816e3d164d2d6ef7e113ef192cf4ee55 Mon Sep 17 00:00:00 2001
From: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Sun, 16 Jul 2023 06:23:21 -0400
Subject: [PATCH 28/50] Egun fixes
---
code/_onclick/drag_drop.dm | 3 -
.../projectiles/attachments/_attachment.dm | 5 +-
code/modules/projectiles/gun.dm | 93 +++++++-----------
code/modules/projectiles/guns/energy.dm | 9 +-
.../projectiles/guns/energy/energy_gun.dm | 11 +--
code/modules/projectiles/guns/energy/laser.dm | 1 +
.../projectiles/guns/energy/special.dm | 3 +
.../chemistry/machinery/chem_dispenser.dm | 12 +--
icons/obj/guns/energy.dmi | Bin 43976 -> 44040 bytes
icons/obj/guns/flashlights.dmi | Bin 457 -> 660 bytes
.../code/game/objects/items/cards_ids.dm | 78 +++++++--------
11 files changed, 98 insertions(+), 117 deletions(-)
diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm
index df3b9cb5279c..33cab77cfe05 100644
--- a/code/_onclick/drag_drop.dm
+++ b/code/_onclick/drag_drop.dm
@@ -181,9 +181,6 @@
var/canMouseDown = FALSE
var/syndicate = FALSE // Does this item have syndicate only functionality via hud buttons? Needs to be in this scope to encompass all Chameleon items - Hopek
-/obj/item/gun
- var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds
-
/obj/item/gun/CanItemAutoclick(object, location, params)
. = automatic
diff --git a/code/modules/projectiles/attachments/_attachment.dm b/code/modules/projectiles/attachments/_attachment.dm
index af3387b7eba2..48ea3dbdc41f 100644
--- a/code/modules/projectiles/attachments/_attachment.dm
+++ b/code/modules/projectiles/attachments/_attachment.dm
@@ -38,7 +38,6 @@
/obj/item/attachment/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][is_on ? "_on" : ""]"
- attached_gun?.update_attachments()
/obj/item/attachment/Destroy()
if(attached_gun)
@@ -61,7 +60,7 @@
pickup_user(user)
G.attachment_flags |= attachment_type
G.current_attachments += src
- G.update_attachments()
+ G.update_appearance(UPDATE_ICON)
forceMove(G)
if(user)
@@ -84,7 +83,7 @@
drop_user(user)
G.attachment_flags ^= attachment_type
G.current_attachments -= src
- G.update_attachments()
+ G.update_appearance(UPDATE_ICON)
if(user)
user.put_in_hands(src)
else
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index cb928bdf0c5c..32c274b670a5 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -20,7 +20,9 @@
attack_verb = list("struck", "hit", "bashed")
cryo_preserve = TRUE
fryable = TRUE
+ appearance_flags = TILE_BOUND|PIXEL_SCALE|LONG_GLIDE|KEEP_TOGETHER
+ var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds
var/fire_sound = "gunshot"
var/vary_fire_sound = TRUE
var/fire_sound_volume = 50
@@ -54,12 +56,10 @@
var/can_flashlight = FALSE //if a flashlight can be added or removed if it already has one.
var/obj/item/flashlight/seclite/gun_light
- var/mutable_appearance/flashlight_overlay
- var/datum/action/item_action/toggle_gunlight/alight
+ var/datum/action/item_action/toggle_gunlight/gunlight_toggle
var/can_bayonet = FALSE //if a bayonet can be added or removed if it already has one.
var/obj/item/kitchen/knife/bayonet
- var/mutable_appearance/knife_overlay
var/knife_x_offset = 0
var/knife_y_offset = 0
@@ -67,7 +67,6 @@
var/max_attachments = 0 // How many attachments can this gun hold, recommend not going over 5
var/list/current_attachments = list()
- var/list/attachment_overlays = list()
var/attachment_flags = 0
var/attachment_actions = list()
@@ -86,6 +85,8 @@
var/list/obj/effect/projectile/tracer/current_tracers
+ var/gunlight_state = "flight"
+
/obj/item/gun/Initialize(mapload)
. = ..()
if(pin)
@@ -93,8 +94,6 @@
pin = null
else
pin = new pin(src)
- if(gun_light)
- alight = new(src)
current_tracers = list()
build_zooming()
@@ -480,15 +479,12 @@
if(!can_flashlight)
return ..()
var/obj/item/flashlight/seclite/S = I
- if(!gun_light)
- if(!user.transferItemToLoc(I, src))
- return
- to_chat(user, span_notice("You click [S] into place on [src]."))
- set_gun_light(S)
- update_gunlight()
- alight = new(src)
- if(loc == user)
- alight.Grant(user)
+ if(gun_light)
+ return
+ if(!user.transferItemToLoc(I, src))
+ return
+ to_chat(user, span_notice("You click [S] into place on [src]."))
+ set_gun_light(S)
else if(istype(I, /obj/item/kitchen/knife))
var/obj/item/kitchen/knife/K = I
if(!can_bayonet || !K.bayonet || bayonet) //ensure the gun has an attachment point available, and that the knife is compatible with it.
@@ -497,14 +493,7 @@
return
to_chat(user, span_notice("You attach [K] to [src]'s bayonet lug."))
bayonet = K
- var/state = "bayonet" //Generic state.
- if(bayonet.icon_state in icon_states('icons/obj/guns/bayonets.dmi')) //Snowflake state?
- state = bayonet.icon_state
- var/icon/bayonet_icons = 'icons/obj/guns/bayonets.dmi'
- knife_overlay = mutable_appearance(bayonet_icons, state)
- knife_overlay.pixel_x = knife_x_offset
- knife_overlay.pixel_y = knife_y_offset
- add_overlay(knife_overlay, TRUE)
+ update_appearance(UPDATE_ICON)
else
return ..()
@@ -563,9 +552,7 @@
if(!bayonet)
return
bayonet = null
- if(knife_overlay)
- cut_overlay(knife_overlay, TRUE)
- knife_overlay = null
+ update_appearance(UPDATE_ICON)
return TRUE
/obj/item/gun/proc/clear_gunlight()
@@ -573,9 +560,7 @@
return
var/obj/item/flashlight/seclite/removed_light = gun_light
set_gun_light(null)
- update_gunlight()
removed_light.update_brightness()
- QDEL_NULL(alight)
return TRUE
///Called when gun_light value changes.
@@ -588,14 +573,19 @@
gun_light.set_light_flags(gun_light.light_flags | LIGHT_ATTACHED)
if(gun_light.loc != src)
gun_light.forceMove(src)
+ gunlight_toggle = new(src)
+ add_item_action(gunlight_toggle)
else if(.)
var/obj/item/flashlight/seclite/old_gun_light = .
old_gun_light.set_light_flags(old_gun_light.light_flags & ~LIGHT_ATTACHED)
if(old_gun_light.loc == src)
old_gun_light.forceMove(get_turf(src))
+ remove_item_action(gunlight_toggle)
+ gunlight_toggle = null
+ update_appearance(UPDATE_ICON)
/obj/item/gun/ui_action_click(mob/user, actiontype)
- if(istype(actiontype, alight))
+ if(istype(actiontype, gunlight_toggle))
toggle_gunlight()
else
..()
@@ -610,40 +600,33 @@
to_chat(user, span_notice("You toggle the gunlight [gun_light.on ? "on":"off"]."))
playsound(user, 'sound/weapons/empty.ogg', 100, TRUE)
- update_gunlight()
+ update_appearance(UPDATE_ICON)
-/obj/item/gun/proc/update_gunlight()
+/obj/item/gun/update_overlays()
+ . = ..()
if(gun_light)
- cut_overlay(flashlight_overlay, TRUE)
- var/state = "flight[gun_light.on? "_on":""]" //Generic state.
- if(gun_light.icon_state in icon_states('icons/obj/guns/flashlights.dmi')) //Snowflake state?
- state = gun_light.icon_state
- flashlight_overlay = mutable_appearance('icons/obj/guns/flashlights.dmi', state)
+ var/mutable_appearance/flashlight_overlay = mutable_appearance('icons/obj/guns/flashlights.dmi', "[gunlight_state][gun_light.on? "_on":""]")
flashlight_overlay.pixel_x = flight_x_offset
flashlight_overlay.pixel_y = flight_y_offset
- add_overlay(flashlight_overlay, TRUE)
- else
- cut_overlay(flashlight_overlay, TRUE)
- flashlight_overlay = null
- update_appearance(UPDATE_ICON)
- for(var/X in actions)
- var/datum/action/A = X
- A.build_all_button_icons()
-
-/obj/item/gun/proc/update_attachments()
- for(var/mutable_appearance/M in attachment_overlays)
- cut_overlay(M, TRUE)
- attachment_overlays = list()
-
+ . += flashlight_overlay
+
+ if(bayonet)
+ var/state = "bayonet" //Generic state.
+ if(bayonet.icon_state in icon_states('icons/obj/guns/bayonets.dmi')) //Snowflake state?
+ state = bayonet.icon_state
+ var/icon/bayonet_icons = 'icons/obj/guns/bayonets.dmi'
+ var/mutable_appearance/knife_overlay = mutable_appearance(bayonet_icons, state)
+ knife_overlay.pixel_x = knife_x_offset
+ knife_overlay.pixel_y = knife_y_offset
+ . += knife_overlay
+
var/att_position = 0
- for(var/obj/item/attachment/A in current_attachments)
+ for(var/obj/item/attachment/A as anything in current_attachments)
var/mutable_appearance/M = mutable_appearance('icons/obj/guns/attachment.dmi', "[A.icon_state]_a")
M.pixel_x = att_position * 6
- add_overlay(M, TRUE)
- attachment_overlays += M
- att_position += 1
+ . += M
+ att_position++
- update_appearance(UPDATE_ICON)
for(var/datum/action/A as anything in actions)
A.build_all_button_icons()
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 9ae0c3a0c2ef..3c5dcb0bd8e6 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -161,6 +161,7 @@
/obj/item/gun/energy/update_icon(updates=ALL)
if(QDELETED(src))
return
+ . = ..()
var/ratio = get_charge_ratio()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
var/iconState = "[icon_state]_charge"
@@ -174,7 +175,6 @@
if(itemState)
itemState += "[ratio]"
item_state = itemState
- return ..()
/obj/item/gun/energy/update_overlays()
if(QDELETED(src))
@@ -186,14 +186,13 @@
var/overlay_icon_state = "[icon_state]_charge"
if(modifystate)
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
+ if(cell.charge < shot.e_cost)
+ . += "[icon_state]_empty"
+ return
. += "[icon_state]_[initial(shot.select_name)]"
overlay_icon_state += "_[initial(shot.select_name)]"
var/ratio = get_charge_ratio()
- var/obj/item/ammo_casing/energy/shot = ammo_type[select]
- if(cell.charge < shot.e_cost)
- . += "[icon_state]_empty"
- return
if(shaded_charge)
. += "[icon_state]_charge[ratio]"
return
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index d1a0c5bc2bc1..27864f3d24dc 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -25,15 +25,14 @@
ammo_x_offset = 2
charge_sections = 3
can_flashlight = FALSE // Can't attach or detach the flashlight, and override it's icon update
+ gunlight_state = "mini-light"
+ flight_x_offset = 19
+ flight_y_offset = 13
/obj/item/gun/energy/e_gun/mini/Initialize(mapload)
- set_gun_light(new /obj/item/flashlight/seclite(src))
- return ..()
-
-/obj/item/gun/energy/e_gun/mini/update_overlays()
. = ..()
- if(gun_light && gun_light.on)
- . += "mini-light"
+ var/obj/item/flashlight/seclite/new_seclite = new()
+ set_gun_light(new_seclite)
/obj/item/gun/energy/e_gun/stun
name = "tactical energy gun"
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 35eea472bb4d..fab652d3eff5 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -51,6 +51,7 @@
item_state = LASER
desc = "An industrial-grade heavy-duty laser rifle with a modified laser lens to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theoretically infinite use."
ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser)
+ shaded_charge = FALSE
/obj/item/gun/energy/laser/cyborg
can_charge = FALSE
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 20b241f38e6d..5a9bca598c5a 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -409,6 +409,9 @@
desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit."
ammo_type = list(/obj/item/ammo_casing/energy/instakill)
force = 60
+ charge_sections = 5
+ ammo_x_offset = 2
+ shaded_charge = FALSE
/obj/item/gun/energy/laser/instakill/red
desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a red design."
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 630ab409c3b7..1888d3fb269e 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -143,20 +143,20 @@
/obj/machinery/chem_dispenser/proc/work_animation()
if(working_state)
- flick(working_state,src)
+ flick(working_state, src)
-/obj/machinery/chem_dispenser/update_overlays()
+/obj/machinery/chem_dispenser/update_icon_state()
. = ..()
icon_state = "[(nopower_state && !powered()) ? nopower_state : initial(icon_state)]"
+
+/obj/machinery/chem_dispenser/update_overlays()
+ . = ..()
if(has_panel_overlay && panel_open)
. += mutable_appearance(icon, "[initial(icon_state)]_panel-o")
-
if(beaker)
beaker_overlay = display_beaker()
. += beaker_overlay
-
-
/obj/machinery/chem_dispenser/emag_act(mob/user)
if(obj_flags & EMAGGED)
to_chat(user, span_warning("[src] has no functional safeties to emag."))
@@ -493,7 +493,7 @@
if(WEST)
b_o.pixel_x = -5
b_o.pixel_y = rand(-5, 7)
- else//SOUTH
+ if(SOUTH)
b_o.pixel_y = -7
b_o.pixel_x = rand(-9, 9)
return b_o
diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi
index 306dd202208d92a6d1d5c5aad0992ae094bee757..3864cddaccac524b6056d92054a2ad7fc37d5858 100644
GIT binary patch
delta 24886
zcmb?@byQVv_vaxbq(w<7N$Hf5P6b4|OGIf9X}BB^1eBESMx>E$knV;{BO=`mm$-BI
zzVG{+-&!;C&&;?M+_la}hjbylS`w)Gx?
zzz7G|L(>`odyB?}&DvPpJ@g>wMxw`KhvJTk-E*yIslV@4nQ^u4ehry9oQ;U&a5GHq
zpY1K(ps>WIQS6IG=O_#a!qwOA2*UMCHK5_O)MISI`uWn?v6DxHlPipCGMS9TbGajq
zfVey3`ku$IW!_JUBQW^WLIu65bv>1Z?z-)pKvtO>TJ|~2b2MrucS4_pvUQDmCb4+w
zNz3)>tvdEdO@mWIk}9eD-wM{teVv-#l6YB;+-KCZquh;D6wC^VgC7=+J3jrEDTbLg
zVEr@c<>l~;qeXx1N>}~`Ct90`Tnd9I6+PwpiA^i_1F~n
zg(hMwJ-$KQx4;DISC$H3P?le_QF$4o8O~Mwl}2
z#=3*(a$qxOJ~s%nrDm9`Ok}Y^O&4jpZBS4UCh(g%0RRZ{M5odP9n!cH2d+B03TWuE
zecGp(b22meD8ldubu=}>7~K}1rjo|7QWeTZ3gUK9Q`)*GbaT9urYjW1l-e~$CNfSp
zsYr?dNex#{ytp1$C3^TU;N-+PMa-+(Fs$H}4AC1h&S%y2e&jmIR#9FuH-W{aE!_
z*%)NKYnic!!?C0c9)0J}@M#~1lZVOME|kl?*hv+#_=*p_8%$yZr%H?p*-B4Fw~3zl
zc-NsW)VmbAb_$AF6OOk$+e(R@6tlOOxsH-jHppM#F8pOmD4(siUgTVJi|sGv4Cmg|
z-V$Z2Du@?NfHt`?Usth!plL=@``q5TZWDwH0RUO~y3ffroM6GzrCmW(qV1PIW-Kfa
zm;BREs_4qjOa)jlfFh4Ymvh9A;@hQ?M9alRuxM=jmE2~rQJ7VOTF5aYE1zAqN=5he
z`jL`gg*kDgv(}@hL5=!SoA%$c62I4YE5Y7dz_Q9RfFKPG6u@|Ku@CWmFv*Ni+5O6t
z0?4q5=M-8HcpzGjvZ9KLDc1cb(KzgIhX#obT(Eo)#0RgPAEtM;_^YXkeI8J1dGkBc
z?`|s@*z^IBvoiERPk(=Vu2TGn^_=TYQyG+=FaOrlD}=N3
zH`BZ#s$T7lX1)x5m_-PwL$&D5aepy0HS}X$+?k3@h>Vdw9BF*9o}!^^#cn_e(V*!1T7p#2}Fia6i?`n0sY<
zJ!C@EAgoPFPX3gd?;0N{vlu4axUvXtYD0k=NhmoDZ(tePByc2_7?$PHk}e(xlE3*_`g+fU$PK5SnXCU
zColiCaC7s5Uu$E|Ph4=AD=>jI~i_*LoHO`k#3#Z#~6yQ;8)a}icVBLQ6Rnqg55t)~o#j5GzeNKB72F}$MpM^~~-}iGZ
z3|wp$^a!n1-GAwJ9NxvZ_wvq0SNdYvSlHP+@`;&8az3m$Wt((;_6J?~O#%qj-F|wJ
z|!OW!1IkNZOQNaqs6
zVNh-PPWp!l-;L+{R@`E|w%4|VfzJL+G=Z5FQe+~O0humnlkj?^z!W^mRz`8l4Emv#
zQ7j-qgyGTUhk?+q89Yss?OV9MiH-M-KF+1i(y7B$9Ib`^eZWpRcnZ<1@{(J{q~TmgIMntyBcI)g>Wrn2gOE1;{8(`zz{tWn^qAGCYW7y
z+cTumAu((}x^pGb#ywkb;}zOayfs#GvL7Xn*!%tjyipG?<81ogLRu3AK8OIvQg
z&zvIzej$Ri+_FatIK6I9KbJqZ9HEW1&Mo$-?g?n&1PrQef5kl2;C?^!_^0(G>!dh+
z@#*KM#3HbTiPCbEE2GKnb#+v<*$I1?AZ3RBl27sJf^BQNNFeau2%PWx^SPmlxHO=-
z0q?aP=+H8S*n9Td?=uQ8RJ*zHi0{#0kukHCCPA?Wr)Og=p$8Gwn>q8jBr1`_h@4pL
zI`2!~iHV3bA!At#BUxKduc8@!w>c9Fv?=ZO4N{(N;sEe(C-@v>cbK
zbS2MM8aD)Ct4NK8IY29C-`=_bdU@p3?zu7OCa-Y=xr3yw!WUY~vfkc}Zy;s5ofO)(
zT8nl)&&H>A47tqmVLTb85D=5HE;b=v8%$=@i0m^&g=?hLHH3)M!i47FyvhbMHlNi5uGJ
z`O%SdU#5)qwvUP`raYfHx7Gz7W2#iH@IY-tCWQ`F*LtL<)zXZK@m?7`Q9w8A(E6+>c(D3n`Ztbb~CH7VwZ
zAUnOF?53*Eccz@P}gX-!Xc!kX@|$y{O1R)ZcDHrYB5h*4vxV_alDJCN6Y})
z!N3@;clyVk+oqBcOkk}tM7-X96Cb5w4H(D_Vc2byn?!pDZQJe1&*OY98{
zcF_x5C#Pn&5OLr_zcx>mSVAo>?^Wv8((_wP$4>43rLU1qKFg!IT`a-Znk;oA{`mm%SEru`29z12q7oCo
zeENi1xO)g59*THm!Z)3@w`uE!bei=ifAF
zl@odILB8L#zzr7pHAq@cQ>q(px)JLu+x?TpBUs#4PaF%L+zJuYE(sI6oX1iymlI*UdvqWaV*0TN2y~o6
zQx??Lhk{;dEZrdZP5+5AtnD8Eukq!-g_kb7;ZH>a{I`3uHZVxK0fg^sSJgn-<>lo+
z%~Jj`@Fg0NoC54I{q(!gmh*i60ZPNJ!KZx!Ds|%}K}*86_V&;EOp5>d+sGqF1N`aB
z&+8xNYS0f459{x4Q;uvnu}&8MCs^_&1gPG@NDyD(ENJ;K&Xl%4nCz+ckW9C^8bFj~6zp+L!QycD-QTwvEr0ij=GVsq2idg~@u
z9mr<3JKpDX^z*R=O;Xtw@uNo;=SC(_-fw*azPJg@EY(LZs^&9mL(grmaah``%%&0h
z=C7)bazk@NcxtOtd4As3xg#C4`sq|cFST+>DIx4dW}%JdFj?iVnQ^NN1NbumkykFG
z_ne_bZ-AIn%-#ioEUruCHr>)>XgLmVKl;@`!g{kr5LR}$@Al`HL^!cPontwY1A!a`
zUy*SGimw8pdmgP9T_K&HQKxj=y2)BxNr;H(GZew}dGvv@y(TgDja!sykd~ZaK>`2{
z#wM18`3Lk9yXrqR9-Qglx;;!2#xLa*Q*&PvdU;D!X!|jb2r4%`Lzuy
zt6RXf0PHsd+2?ep&Lm^wutGvfd$Yq1wM_GJ3
zs(uQ7Yce;7<6%PGz3u1sk?^t-fz*$-|X^i@(L6r(5=@uGgJQl(s;9ldBfq_4JJm
z%flKA`k&BFfs6!B1NJa7z`FtD1AhMs`d(N4=QQ-k4;CUqLf@&;?H$hMFiJsr(@kWc
zg>y$Nsri=R^P89C+}Wc)l7&CMt7|8?RB@sUqDl99{@Ckmhe*_Q2LPORrilWHG5n0s
ze18Tx&ei0+j4cXnwgAQ0u?YxBsYG2h_k6BzUr(NLj3P&ey$>-*a;_+Bm3lkTZeUb#
z0Jl{aZq8%zPZQ&MJ+m#Pv-MHn1=h7pdq_kfc&YQK|5mkUKU^aItR{Ob{O?;pAS9&>
z*^fYK#uvJmRkl#Y0*=C0V4qhsCN7}7Zk@CA`U*<^H=me+yW?Lkow|IDeWpR+D^D`N
zIY!B~O$CKk(YUOf95xphS4>O{t;1jl;M+K62W?yXtik6-MH5vD~Q
zCrF0tO1c}EgOoX#Mgh2W(&NWQPT4G4p;IeoYs>EB+y?|56bRNJb>vz
zf}i%BaSA``_TpT2Om}pDc!dib?*8tLlAC6YvC~QyUV{rGqlLtDGCz+AFB&Rp8Hn@&
zTBB9Pt*VeS74Jt|K=AMSIvM~)DL~SLgKIWC^tH?gO-el*IiQUmL1k+7i6TiH#KkbG
z!x(THDvB9XxVqN&j4IE-HCcDMu8`sPV
z8A08@2iZA|wiNf;52ePUwZ$YjzRqHz-B
zf)#RK?>UB*DAN2it#RC9v;eX&BP0DAk$>MuELtU(Jw0I9EAqy{kvbcK6tUF6Jpo0ke0&^I
z&dRTfjfY*7T2n1h0huIV^W89Xzjg)R(98RYzW2{ZO`fN1lZ86p($fiOXlNh_uT%_+
zYb?&?snV?exw>3WM+4-;DDJg-(}{mv3zbpU}p@r3#S4@j|3H7zb1s-
zTx@ji^DoWi2r)L|I8Tv&i_uapdjjj_jHa4z>l(WurBMd
zjJ&kEy7~xY;e|L{K<9N4ca`=)P-rXvLzq?b{Z~|pdoZ_j73*^(!7p>c8Oy>2pWMNZ
zryfsL?qYa)I*sk&2|oemqlXV$;UFAt-@w4!?JYQDWK@r$;S1$^f0CcRsO@h^F2@5z
znn#Izd;s}m6A;{p|jdI
z`3{Hs5E&V?%8##pXua(p^VWN!lEA>i(qq;1MW7)h`AucFO3LCz`GyE+UN?r!7PEiC
zeneE*6SvyA^uVf(fu>R?d+ii$1}Uuc9jE19auEXT%6eb)#9#VCj4E5
zi0g~;k2umlerSU-O{AQl;p?-*<75Ab2m<{o>(9sQ!v=T~dh*gh28g@`24qyB%&z(y
zbHj!z49+zO+ah58kt3le17ka`X`85L$2Os$ejz1=0?^htPw!n{9z)((#6ux-H}x}=
zSD})KZw@5#m8I@DLlDQyoPO72r4uC=j%~C26=joKgr*ZWSlyfp*}=;PO?)dB9=QFx
z#7xSBaUN9Le5InEHvW0XGb_OJpAEH7BfUwcFUkR5f?1Pa3LeybMxl@#A?GoaD-$+X
zvtPXh8pa@>t9%gJuU_+zt@;L8B$}V!+O0%th(cV#dZH&IJzBoe&9~}fiHqUQd8aFh
z{r<7r8t@|h&X>2U3GXaEOs%grLyES}T)uZ=GrbX9Goa226ff8T3vEKsW6&YL4Th@ZZA%jflXnV@Q(rZ)lj#7`{$ix4y!D
z$Wu&F-CVMt$il#XzKU=bKqlq?K$;NX23T+=K2N){Hb9n%A>HS%ShAFvuC+mTl>56bTh1Bi1($%)vTU<;9Dr4la}v$&~m$|HEGRlyVPv--s61bYJ*Ag1yG$SHN0G@%8c9S)iTl-`Oe~A@KHjiBZGa
zNdlBX$##cRefZl$l%UK6$$>8HwanyQxYeVOsyfBY+j|+era*tQ8Ha$71v8>z{9Zr#v$2?lIN{GTI#
zv_gvv2(^6p@Zq$P<8Zn}#830?Ex`2f57>zckZ`29VqOCPE$~8CN>e{4y1%+^Anvj|
zgoLBu;25gqM@-DD7fg~QQb#R|ei&5^As6t5CANOrz&TN3@HnchC+|a&LIYO+Y~z9+ba9$%
zS*lRmVBZN1W15myU@*SnlKm!q3prBbEsd7?1G9Op0A?{e
zGo%g9m5BlLE`?nj@l(o@=D8=Pc9c~b#)afJ1$h4|uU41iuyp6-cMm2uM*D241|$Am
zcHLbkGZov+2T9fx{;M1u{0CDEAnfKJt4IB(Jj28L2Y?J9jLrO~8pcv1|G&6U^BgCN
zP`Z-#xl^^fxuSXA+h-HPW2w>@KnA-eu0ImVpZEd_n%vg-@k!
zIIAv_S8>{N5nW9T6WnGcyb`0Mqiv%I2t)u{p$E?B@pl&M_mrLYfm+IBb;tS~@FN8~Bs`qN&E+oD
z@!TQvJm0dYGD_lB0u8Nvva+)~Pyf7u-umkntrzfh+28#+yB<>e!u>hBvLgM(QKMjI
z{)RnJf(l6AF5KVsI#EF6QocM18|9L=CU}LXtEm~Y@WTEEaawS5te%dTfWKPO3Q!o*
zo?R{o0SmQ_U)7}cHV62@u6{qGSdQN}Fx@CykF~3~z2Te!!?|1F@P@>3bH!sc019^6
z7WO{kU%!6cSvUY^WlzCZj}p;zKftO;zdk#K_K
z#)R4up8<^wpe1)7=ng_ml%6B@GU{aR^wS1w(#FRNw3o5jUz-8Z9->R}D8eNN!Yca_8AVF~jQu{D+%Kjfp8R6!jSz&@L3
z=z2e=e1FbBPAs3&+8eJYK5LD9gp!
zxO94fJc-NvG1C3{k661e=h9Aljpuzb1Sw!{6J~X`GrSDU%q!Uu;%$7x&$DCDFhJba
zMvr4_+cxQ27ik8u(S_Y5q@Rfg>n`%}C!5O_a?ogJv8h2F8Ii3J;i?2qD!>Y{?(~g?
zg(bPY;o`cM_hF?A3l~@OEPDULYG+3E1~|#MwD(5=wgq>)NqQrUjtP*Ct6Rr_69uvH
zV{2?W_dguI!KioJ|Dt0~ve^X&sSt{~+QaqMz!xuv(%WN@2Ek9GkpX#K$?&Q}f>u=t
zYK7hdKbF2GvpfsozX|E-5%XigI#;f{zgJfL+X~mrnhXRT^kXYX8#B=cJS-_qzMudp
zEKkva#%KGdtW|=1eB*uIH<1_gK*o52U!V9D0R#Q&1V=&(ZR@8;4Y8md$Lvyvy0eb)
zaElYF!jg*Ae(w#@#E?hFaNG&A#3SVXSC5`khqUg4T{k2Ff%t)7r41Z^cb1eEO|s$a
zUhP5&6-5O^#Fs5bejN*HZartHe!
z>=o*m4{NBJb>yXsaHtNX88N~-edYdl6?*)_6zm4!QfW1g5zl4P1!eK3{1k=PY?G$k
z(=L*BW8h9G!EdzRxIj804=Drwr(BnYot{?RUQ=y~X0g85SjGGGqTqpFqKHL(nSjZi
zf|^Jwrb}MoOcl#+Pc0r;j^e^Y9I`fQwl6jhKFAL0
zWNrxW#K!iD|NOQ01>%Bb8(`^ThxAc!1Ib+T3_I|Wa{$zdZ~6pZYcjSvuK2kA%1Bo?
z!TpUTt&ie0QM3WdeiAJGP2cUQ3I^hAHzY=5MtdJ8B8B6VXp)P>l2@x?oV}n*;N<#i
zqAn8Bk>&~C-qju3ibW&RAlj>N+j*A{Sk0o|WCYWV7`{-eHVZ=Bw7cia%+MBL=L<>6
z2}D4s04V;l?k(wp{Q6^)<0Gp0fqt}OHg}zy-%ue*3XBwJu@#<1h@I)?E-uwLm{`or
z%^B#~FVt6+Uq^t~GD3V(cq%63pJGS>z;bHf5yvh8OgV<4H(ld8rBUB`HEewO!sND|zHxQg9O0;a=@RU9W+!Lf0ykrfP^w;dKtMoH2=C0j
z{1{i;;hnG8-4SQuHWmJ~K*OaJzq+d(4%eA+J^Ulbu3H8Gj99BBO
z@nr&WrQW=G;(5OF1+w9{@7`tEz)Ln}tJvrr=o@|z3p2rb7eMg150gQv|GP47U^&eBXYl^(e1&TT=+_jydBstAYo=^
zmX%*4EYbJvGLioSzlbwViTafv@9}Cd)PJb7wGwMdoFS`f{b6>#lE1EvAwJsiJRZ(N+|7U}68|n$cL-
z@|Mx&=~R{+PGK~J_gU0@={NZ^x=nc?zo;}IPYEG@zM__>dQcxkQ&m&RYZpvEK
z0{+UUA8*>%`7ejFvP}Sd?-tU9hSOh_q-$pI
zlA5xuNdgo=4iwVZ`|wUVol`&l7BM*7FY|3^sn1tVK>a%KWozbMs88q7e}TS()nP1cL~klf42uJ#93
z(wxSP!FNYdVy*ddE%_xC@(XiX>uR28<{-$t?s&QRYU7(`07PG)R8vzEsX9sb@njdj
zd`p@JeL^BHtoO;wi~l{(j5D&i$q32ZF4y4^N;G!UkuO1bqWJ+WBG=&%@93pq;>p-4hen
zQRYXp5*eCsI@V3qsn<(m*Jhvd1tzXhR$0}~VLOL
zJtQS%E9Ka?kNF<5R=D@O$9wwdu$u;rTVVq79AUx1SRI|6%g`0Do7BYH5Bi+n6BBjY
z>o8Bqi-}v4;eeSIsat1C3};nNx(T7z`P_IKK~;H~@{?%8T1ONgpEVON2#G8g+3Y{{
zz08S>Qg`)%8>A?+X8CQ1HeJ*yfhFQx7LW*m9QUP#ZY!$!`P+x&H)Dz|(iHX0vJ`?e
zA?HKs5+*gE^QJlq0Ffv<{&a@8EPt!$tO`+yg}ud}#v#rIG&xWn1H8PvF%2|qSy_+E
zX1K(If}}B4a0I{>m03&gY__Ht^9$(E<@%+mHdZ$^jIw^947TXl7Ls
zUWD8hCxo&+tY&(Gsa8&v$pM8lvO6a@g`
zB}Ov8Xx6iTPY^+p!n~Ik4m?e#WA0A*I11qz&jX_`P+;mn4(_Xk*c}$qzSKJaLnU5D
z@(#yn??i|`SJhXc;ifJd6Ql@hGv(e`+d5W<*4RI1LVi=1E0d866}5dRU>Za=PgmYT;TZ?*XZVB2T!vu+~x6lf%1xq!y(aq7UIz6=ld!=wjEeN
z>+i7!S~i>K>>ls?nHDCVjzfGUj1psxB5uSaLY~jC&hrt6m_dfs@jJ`KHZ*w2QY!)v
zRFKyuX@r6pP{wpdrM&sj@42L~pZ*XUQ?`lD*RLaWAKw@LNN3dI0VVR+OHqC#UFsnR
z;ee?NW)24qyqkroRt}@g{YIY(Fl?B97`}$mFBWBNL2MhsZ^DbIj4$?*xZ3m=>aQ=_
z+t1?u(GV&Cm7|!z*GmWh>^uAW_wC=cHR(7W9v%V2HDy+FEXv%!K@^B)`C3=^N6Lv`
zIgYfH6zEsJ2jM7CJN+kO)h?t_^0Ba!tTB2uuqOK3Hae2>Q*+9**3nKKj+M`>`JxqT(pzY!l1
z9c<>Yrl1~;mC<;0_zW;~NeOVU`Lt?iS?Wct#$+7(m-K9DR~%cy@KA?v5te_x?bBrqrR1#&k#wrD)w$U8Y5EVhhE5K*rI2oF>9v
zQV`GqoIlRr_Kgsp^fz2I7_?+vGrMisoZb}notymG+{6Y!(4w~Z#}6zhN!P7-7uLQ%
zW}JQFNN$>j-SUK^_Zsi#>R!XiXHbzX?DKXp=pxSdA)IVFn?QW}Cl%d!{Hm3J!?K?j
z=9z4?eAx0Xylu!=IOJmH&%iZ9>hs{~L7LudIzeXQ8YLGt$kZuZ_<|?{au1V)K4eY4
zJ_*}~?<$w=`0E`nKEzh&d-t2*(v1yRTUHZCixQGa!nKlRhpR0$O^bcCygPrWELW@Z
zP^t@IjJN;|t6&Rl6tHQQyO82b`5bQmdly5q-kmv7#RtUk%9LJ7{nU`Ey
zbNk(V3mdHfB`&IM1Ltb)QEXEz$JOGc;uE6YkvVud)3^krMHu!Bzh<_lb=&bvACpi|
zS8a2ws>vpjhB$VE8V(9a^cK;66&?$*w2C7`h#(HJe<})EA17+m*H_mifryE`W>K}jVX0XHe6Hhd*Q$#PBx5mZQ`mfMt1
zX7uvYiL`*CcXL?z&W2tjzzva3%*anGIu_OxD7fFx*+{#jcRx*h?ol2&{%XXR=nuu?
zJ5*})QxFX~Q->Xu^N5rr=I>|DBW5T2`!Xl}po`}+=y8d0c#|e(`K07`&}w`Cq~p8h
zc{wd`Ac9S0x*t*$;MlAAj7mWz@CmbO8ap80iuK_U#KVZx{}t+S9NUwAo|+0wuX}5C
zR6gbFNMiPmfurme)9YC$a_J<~K=deohytkYfCZIDi)3Tdo2~-%cf>;K|4=!`6}Ru-
z5i0`t`Tsj<5QHxMf1nZmw`Y7;$0*uGrjgtsWec(S#s2~VOLC;qrp`ds5S?4QR;bfs
z3U!|gl4*;q;lW$i1}R>;2<
z=I(|J+2a4iKr;5AuoSd(q+v>sV1}!~apW8y+IsqL%7{_dj)1}C&;lWrx*Ou`D
z;`2C-PN|A_3erD7)4!)ju>n~)J*_)=n?5n-X4z^RbOjY|j)!B6d6>O|iDgg$TiB&jwa+8pTxInO`2y;)<$HvBfuC|+FwUCtbEjM}hj%lsSp|hE*xwAb&!cu3*!<%8zut~NC
z+T9_vH`ZLX?U#x$X$mmCa)O`sktDaTW-Irw?;WtYC-6ocR4l;!Lx>FoOR|qCY%F9s
zyl=fj2_eM+z|ryXx8!sJ6B-)87iwGGFEzdg%-4HpcnpuObdT14Ft4rS+1KOnGvQz
zQaY{ot4A)<6vdFrQp8~t5NWJ!!ELEHh6cRm0a(5lJx82w2SIDar4o6#3{SYxa1U3A^2!HGIF`W9JB@_*i0yz;Q4RT9EzMrAwJ&4-<4r%NYQ6hc|
z*1ghxH9b9$dsq?-F$OR~
zzXwOo_V=xBchqG)0erhB3*9eQ<3AuytQv0WU3b6M)(X9~u$b8$ud>mBIPRE11T^w3
zJ~xgR2WE`cafylfF?xD>?jKJdG#rD!1pK7{Nt|r8=#O%@nD1ce5?0wJx|UPtM`QA!
zT>h}mGxIR0~IN~EY`E<3NL2iqtz-YPy>o~|(=7|8q9pAQn`t*sAm^iy)-kvv+
zyQ>}TOJ^r{XPD#@Y03$SXl*CNcG1=Cbd3cB<6Q!aAhdV=qQ2?@#FnqiO
znH#Z8?odU?FFuGy*$%n~UH)RuDk(0(5ylZy&CP)Cb>s7fU5GHKEv$1lC=j*;IFpS_
z>FJ;!zbLlok0TSbPk|1t#BFUGm#)f5{8m4BqNXVZdq3^!sjM8z$;2eDNX+zt{pR4)
zC$EI=iZ2B{w+=rLIa|)~|n|Ga|_-T&Is(ZBW;zCQ^ay;a!E%*@EYGm*Dun7E|NQwAFwn_bO{Su#s#?P*^`QUh8(Wj@Q%}bA
z{@-SVNBBw#7z0KKaLl(e_dDvZpWM_tX6XT3*{c68PZ$wz4Soq`y@|mY6o6ru7&mQ2
zVG~tNLCiqNKj-WnL)s2Vk(Q?5Aa9D&(Bh7g3*P<$b>n?uPa0QG1vxlWc%-5r8ZSc!
zqppexQT;Q`MBclY+!p}F_2muwo}>-0j$Ar?@Ea6j{t$i{!OBi;<~Jk495n7U!%s*-
z{WI}}_~0kG`Zsn%nrwr5=X_x+el*?2MVGsNp~2q-F1j3_3MiTdtrgnMRhv485T1XF
zjHLBE*)S7Gtm_!XMT5%Dmpd#a&2?id!c0KSVHv{v&s;{)3Vea!>F{h@R8TYp{P7OYed{0
z#E*dhdEMcD3t_W@T@|Oj5rW_izt?1HxF7Y%VR^^CV*i!SK1BiCy}a1w91L5+@!b}`
z?Ck8YO2q%YoRx@g*LpBX#S%Q-4^NYf1-SDJm)wO6vVpEQPbFmVI06CLhDn
zYb-fJmd+wxt)nE1xD*_mpVuUBp#WcB=DF%Ny8oPe^;&(na8<=!3VRhohV{7-&(*Y^B}2K#@!uyUXm3H{By
zOz^KVIZkHsFpbKhkfcybN><4;oT4SJqsx-tYHCfsuVd60d;TK}TAou^l{HK`=I2U!xo=DA9b;Gews
zaC$TS6zfr;Esdo_@#q7H$g48qJ(FCzsgWi7YR^LJ=$EvhLNKYTavM03lUZ*^H`lSg
za$ewhm@9tTKmHzl;GXxza!?Y}8IiO#4Zq3IU_8adS`X%FJ^?qXwz>HAfz0yydJuuc
z_3P(XI~9#hNrckJTH%*R$98CL$z`+Dml@)xDDth=0}wZ@u)nw0kKarm9z>YM!Ef>?
znad4dV(RlhPXk0ih%~C*v?aj%ATBx@?ftj1rgj=NT>anmcpEbn%=GU9CZJ@mQozK8
z@kk1`g|><-B`+^OEBEn@xw)1NG#sO~I`ck#QkXJ4rpsnJ9yyBAdNm#K=s#Qnh+!!g
zgiqyoeeq%WCGk6MvH*xdPz94!gniFUDE(kA^BK(jQoylR$SEfd4Oz5Gp(|6+L`?7(
zo+5}aAh;XVv6LtZVUQ<7cI1cugSqv31nk>cU;;Q%Q9~
zX+6nhhR@AdI`M-iU8WymPm79K@w=b?!;5<
z`Sa(jj7iW~!pO*owU!VQEi{j}^HV!N=YJ-4UvCRbn_2ImWQbtXUX6=~rxmIpE&ZvS
z+PB?e?gskz4H^yf|K;09Aq*sl!|L4+eqo{jOFmZ|P(S_gUf%hcc3jh`XNsuXkbU~a
z#RUdcCN0=O#gBf>sG?)XZ{i|ww9I;UFj}eJ|73moV!TJ=3CXgtvR~Y{Qeir}C+6Po
zRp=cg%y6_B8MXA6I5CTAYire+SRkp7HHMM%by*vDdWwAV_c!BBq}TIo68^+!()~8+
zT+lSGjNi<9li-B_r6d_HFtFCYv_u2^E{YM-2ls9Dn$M1p3(Lg9rz@?Z?f>?C`;)fV
zw7k2C?Vzd}bR}T7`1t(#oRWb8*q@Ub&DUVQKI-Q>I65kbK@IBrNqR3Qr{C3+&2KXLk5cvu_
zX&FELILyn(2dS$VEUKB$YrH|B6&0m~0A<#ih49)uHwS)b*Y}vB$6M1SUql<(F!u`|1GZ`9#T&}%a?bBAuKBQ64lgL{6`if^1@`Ck@kAN
zx18~IR=rKBO{14XL$2HXLLu1}#=V?L+En1Hbm44V^R>T!X(7@dDKzHzXJy3&8tHuq
z)$wv>W^_PCSs5Y3hW%%4=AzdugF3TB#|wv63S*I}F66>>@gGhSJdE~@#UfL4hs*=9
z@(F|%+&kDiF$7|{=GZE!s_N{??~G;##cqDvMmat(u(nQ|iBe-}1s`AD4_B0f
z#F~n&E+au^vCSAOpeT{b0XSCA@5Y^n+#t3~wJlsWCJRX+5`7FDqIF8gL2Fy(rl+Gg
z%=|_BEYu72h1y4fOB(0+=1_M%`R1|k96CNW9N^$o{Nss|eB-tE97~`w#j`5vYB4C*
z-o;X;8wlBh%PtLpcj$cLI!c9N!1=+!Yur$1bbV}W>|q7{pc-WHV}BkL5s(lS{FS+f
ziHU|{vDQy6FsfQMN>DW#p-1B1;Y*eyAA=`>+8W1U;2fu+!fw)hH}arXy+2n|IvYVo
zp>7zO0DUDnBh$b!sOj>XDlEWKsR!}s&*uo_JqRNPDG=cU@u9(b_=0^s@kug~N8u91
zoXrq=$97VTs|&fe4M=LdZ{L#(ln?f!4t!_kN7Wk$S13(#cMi0pBJf
ze!pn%h51(H)PH4%(lXy+-duK|oUBO9lBK5oY-c8$lIKl8B$G15_mq^!?pN{WuUM{n
zdAmT%iO!f;Z^+I0MN&DIi0%|0_vK1hSomUH0{P-tF1U+9ZgA2L2+;nT
z%$P6D>a)ysAioiD-AQm-&&qMzUyKAR=8#Br9ff&zSWnPm?6LCqLxD76gpkMCwyn#26lMN2YsWyz
zP+!Ag;nVR7k^ukk3ongX_TI3XH#0!euM~Yo4-KEWy|HOd5kpg_;H=tnWyleiM$^V)
z&(@FAeAXt1MOTHVu-5OCoQpkPo)$1cN?~Q>S09|cL3&r2l>D)r{zmx6*s`^tw~Py!
zJqK-#4r$p8%_@I8dSVh4;l{Y}7GKwcV1+3_lR60GTaNCN8kfV$@9zn+>(6I;8y-J(
z`Xq<06^jhQN?(gF#%4roC;=9M12fIg+<1ozH#Rh&Mj^!8Yy7I{Wwc!Il^HrTj166=
zmxIj3^S{Q)3KUwQSZbN{`vq)E10u!ciJ#_|Ry7x3*bc4ZbpD`fpNPp3KLzg~cIaz7
zBMAoC<1@@XA)BgK0%#=l!qTC7!l=WHVtI2U>K`^qBH(BN#{#S_Z@QHTo+9kig9V&F2DqDbGvKOF6x^-ATimC#Ana}v
z5LdK7f|)@!6q`KL>h4LMA78wfJq3Fh{zoa-84g$1wT}{#=p=e4qQ$6DqD4!PgcLoD
zsL>PMU=E2Oi7s9A2%?K#2hlr0bfQKNMj!L-d7k(EetdtwbIn}Lo-=#zwRSmst##jv
z--?1(QnRUd+F4n$<;LSZoO;`Z*zhaHGLBhx)9{sXI9h
z6{+opwi{O>10JX12X$M)$s>FA1V2I)SgwgFIb8rqGFh8IEoJ6I%lY&@t$)s`x9JM2
zW)!oL(O4Ex`aG6~P>eIp-`qZHZ2mL}YmiJRBK+bxP&|5l#K(d3md8?i8#y0WM1VM9
z%>tc!sZQI%bmIT1dgEj}jUXL}c;sxxonx0k
z%&^a?9ZeMkx3}6&7MZJ-sR?{P%3@p^FTPFvw?l;X+|C{i^$^9g;M2V+n>@68vz7OB
z{*mIJ{vnO9PH#xc013D+?eBkkOc2o|S^EIgdzMGIi9dkg{{KHnT0;B(FKq2?%3q&j
zXzA!BZ>*g?*S{vT7(zQUoX5s#I&xi?6?J@$XDqdfC;^<)(LYpgHAVl52zKmbP!oMT
zQDIUv?9~Uyg-)T>!o9N`F^d6peH{T*KcXEw7zjQ6dHz$@r3+voJRF;KvaJJ$&Obi~
zE)#^wzLG^xl(2KC=Cp&2BL}M<6tarCMhA^*)s02=YBrY0fuu5^3TfjBRw9oJhiSn4
z1udZ^H`TgTk5GhIt1nBR3Te*%yl
zV-pfq^`~v=VDVC3RyF1^58lI&m=xq>ZpyRovW-
z{nuaL`)nwqJ?jPTp2-`BmvMr0PdecJ)ctg6CzYT{mHP6^0o;sZpv;kqw{`CF)c0%i
z$?Xrq%L`=bxn6{XYxn9g_)Je;B#89togTYNFg$2K;54x@h5`9xLYPCH7`x4Ysv8F`
zRL2u;4jMIg9)gv`M>$ViCIEJu60=mVK;~i}R4v%D*ZD$#-2&9#wrd|0C(#=*xb3c((EMf&~Jd
zxITpqW>(tM!=_ysnoS=z-CUDA~gjLGufX<1W43ojF^~
z0{3}#QHT$>UNB29TfiDU;khG$hSR<>?qwhFzBeGu)K5`L3fI@Q*(Oj>Uj1jyr8_>q
z*D8_ym4k_oz1A5QRi@~4>*bUfFg0>17GWT?Qycqm+!QifPi{8?lcY|IM&98|B-D+~I?D^P
zEZ8MiG9D2YNnJ477nh}C`qHCfY?pKGcvEl7Ws=i%EM1q1%|W7SM8&1iAa4kC!3C30a{N=k|Wpz5EU1nkf#gOFHrNV^vl
zV^;MUnDW=3lkv!kP%KGG_7&UePISo!GeEA3pH=VIZxF&ww(;5b)Zv)2qa`u_N0a{k
z7Z}R$s*-zLG5-GxXNOd`B|O;hMAD{}7&aw0Y)
zFcn$3C6kMGh6L@-(u;cTawxGBk0hhP&V1{C<&jM=vp8@~eT#*8%)1A_Ss9m_w@5
zlWk9ex0L{MXJTX&02s{d+|I5p4ZE*cuWA7NYwPLJ0^tS_lL-NHnFInp4)GEZ=rdFk
zN
zlHq(tImylg9_PT9G#l6UK7)uP$gO80c-qvbGF^bUM~#n|
zR#B$JpIRZt$|*2F+XuM0rkJ-MBf&DT?wP2h61evlKVH3Gk+o7oGn4$BSeSbz>p7X7
zg<~nSpP{s|HxIuykxI8n9W`x_?{H-FmQcH|zAkaz>*Cukv9Yq8kLFBX>sC`~5-6p7
zpwYkh@2hyZKr#4_-?7Il7Q6PA$p%|qqpCa|wx=~y~e(1UU|
zOpDRuNe~gHWo6F|5jwVo!q-%2%U5w`HLd+|3e;WoI_wYGE<-6@R+`hQT)Px2q4%4q
z1hXF#Ll6FJkXo*eR{1xQ<|6B-X0ba<<&tg+rYH%a9*8u
z4%fHUip2QL39>OO*oZ^p72<~%-sbCZL2wyoNxkb+{QJvZf!n@?&s%lh=nn;8aO)_T
z{Yo|o^tm7>v@(tOnh*L1{x~OOf@D}R;F9gyTVNxT&M;?zVAqe0$?Dj+xMwvriV<8Y
zQ?q!5K17kFlWwldDrG}Dz$+8_X#dw~N_F2O5TG;iOAsamMy
z3UWKesEt}eKi(36RPF5Sa*ie4(yn)%E4fl{?ZARjFr5bYJ1+D=>OJJ!gs0`L&op22
z%k#h3UEidwfM$Be$R3d6?wDM5vsPKQK<9mb7e02G|BI|=;1M_fmvVK)2c`Rd^7BQ?
zdwH^Y*Wys0!V2OuG>w&g>MG1PVVXmcg{13pruV{jyoR>wQ@NT(405}yT?arXlaE$(AV$#T?#y|a`zzi
z10N*2!=Yz&<9mb5FoR5TDEg-xXB|XC)mV>ze(nSMan%jD&%)%pAqsxlzr*{*4gNB$
z({^?}|E%$q7&7?bTn$G+T)A_QovzjcY}>*P3i+x3}6|I)B`{
z?Y`snDG=H|FK;}$AH*@~6P3wY;J%%$Wpb~@;vDquiU&GYeTNg_Ha5KGFCr*-^N+c(
zkkIu!J#NR29wOzy*pDA!q1%ZH1~#tKVuZht3k6a#=T3Az?%}}fQG6>+%Z8|GJ{KJw
zk^Nk+Lcn=<|1R&phcHKoY$KCpLX(q?&4pL55W-4k+rIgj5krd3@2@XGzO!>`bmsU{
zcdz;8fq|UU^EcA+t-uVF2sqGxlhCEp%SbYWZAB}*GN3e_hc9*e*VpAS_oa=Tg$xyU
z;^<}JN9R@-H(Cl_s6z=Uz`o~y!YJcJ0;(wZ_~5)V+Lt%zpuGi_lb>#
z<;9uTjN03zxqGK4H$&d|Y?GeKj_eH$=kUF3Q>xt8ZQ1g|=}eYbn3is`H!)>*ptb*lS+r2h3(W>-Kf)2JR*eO@V(}?nh}P
z`5bnXFt~3rnNKsA*Xk=)}40f&HLH6_?3Ck(o
zWK`GD3O7_8gB^36T6}i%QjZ{P)0SJBZhliaqFd!B51Q4#fb`(DO|hK7!-
zSTC=$(cxP<2V)h}f-?2Q0}0sb3F!-awaB3LZ>>f6+6Tlze24HH?CBl@i2|VXYipC?C
z$UE-doC(#i{V>cseEpBlxY-(~M)opoc2|))H
zdgF9XRcR~x?NhFJ2JS8tG*F`r+t{svcSkgQU75~U1W-wD$sfue-T_76oc%7rj
z**H%!9sWpRLeeUv$s|QE#*OdG+248=LCL10^&iyE7Iat=UT(}CUM7iCM
zkp#MkFemxY3Z+8;ia
zmFHR_or)CEC%%9{A~G8p&d&1tUh~V(q8gJQoy{bKiHL*bPV=n~jvVeJOb;H6y0_Do
zw_Uxu_T8p@Jl}MO>96WUA`~QH-2y?ZtgPa|SWrB`kobDGP=>8f!<$NLC#@4k(zlT8O71g{;d_S|p*ADT|-i
zUv5gGsgQ^%@*f*Td3Z-^eHbp&bbH5hdOL%>;b8WDhsXAD^$PCO`!~FeZp&eur;`vQ
ztEB-!XfaVzXnua407e5hp+MG)J>F2NA{>w1XkdENG1;9{lTod*r%m4&k1^#zNjEm6X8!&RC1)wQ0f6P1tax~2kzA282qklg>wjVUQx~z&$b9xJw
z48|>d`{2i{kFyf8vt^uf$wufACG>TYLIaNUW*;2-$XOVaL{CQ9XZ`!f%Z?-5@jf_}
zzSh-$;K_-|sQsq6-`I8WV5clY%*+IIg#A}Jh0nB;L
z5_W-E5o-*(-9;uuerHF1T&SOooT~BKW=-VEisO%nTDGt#_9vrcq@#Pn23?TrcDLaqxIVJ?iTl6$;D5*pV$YQbD+q>AgGbg6<9IzOQ#fYMQ>2SK67Fj
zQxBe$=S<0JP%B{$6B#jBX$|pCH=K{rN)=X=suP&x*|E
zm49I)CIOL4eSQ5P00jYnIYL-ZRFslQl#yNJS~R#hF3`Whs-dx2o6=lkJ*CSA=|TO6
z%USK`Ivj82Y<=QfNxE}cHQLM>`69o-`N1NQRCG}{$zFHx)%Di;-lS&PFzQEbx7F_=
zjlzzq6r9~08_O32*2XH;$0{DZEqU4`?BKhbcYunft3BR-GUmNI^Kbvl23UHd6dr{;
z?3b`44cI73ci1qyKg>CbW+lIAiaxy&N%95Wr)vH*L~}K1W9Z`%^-fTsKqpx4WKRhB
z1UMd6=y#p2yFE$kWBg{rFff>5a_%KB0G9!9l%SAMaJ!A;ppfPsnyxev%m;2ekth5d
zkG~N+Mm1FIQ!Uk+%G!^j>h8D@cO?tfnkFWmgTW9O*YDXX?oR}eo;focaF?lw^Uh*-hh!5|to?d#
zB;5fHHU9j_!v%h{vo-Y6|9X$E4qZD1qcC~>w{ODi#~aCnjHzq#y{{s*(mk_BovykX
zU%H)qc$vpdb|ISP(Q#QG$5Ev{95_5u4E9k|Qt`^A9KQp{UI;bi8lHs%ixWzZIc*S-
zhE&ai$EOe%1m-fiILLpF3z&0k_VM-gk5d~M7&K)1bDyW6c)I<7r)$yb7N|e7ma5wO
z#9a9%YVF@)2;_D1@DoXk+O?4IrStk6aGbhJb2W7~3^7Swm<0E`7TB#3_Lbk5I`fLv
z{A!RX*1+Ibol6e?zD|jNwK*#D&SBv{kJ6hiS5O$6z5S_kt>hxkql@6)u#?{JBk;FN+y81h<3wuAgru=4c^>4gx}dh
zchs+IXpD$GZ%Dz4(VCb4B8iU?R)<#x?0S=~eAP?N4=7!bLDX!iC6up+FO{MBCQ7Hu
zE%sdhb3z36K)zNCSBqEth}r2*11Hw2KmvlJBS8XBbFm_-P%gJg@E
z5N1tZs+mriy2$4)Bjm)|tv`IvR1s0gyO=?~ntAhH;)DfzCBFGz5Ud5Ogcx
zalZAnq2b}7As)F2F1m88=G3W`V)7f&Vb?Z&><$ARU8$BNYb0l2lW`M&KU)*WumLZ!
zl(z5U%2LX}BY5)hZe6}IY`^L@TC7RQE(e(HYeBTcfSD(VK!gFT^rugs*vrpRpE_uBP
zPZ=Cq=ZGjPuA(fBk<~{8epb3xWMier5(L%N)xiW(J_y?88j5Uyj9DML?I<}FnGJI;
z#_^|CRk6y*$N+q43*aR`J>0eh*x|<3R&u3;fRuO?ugf^wr!$3}{c{>OUH81$AQ8&D
zyuW;ZSK&^~FOo3Fde_in!WHIXZ*bBnp>|cRt@$8~W2vx`IcOD1*$o*Q84)Sifk7Ul
zj2@5HE0>9vB#4
zFbJ%_h8fLyVt>%9xwkpoFBL(pX`sb8{@G{Qj35gVGk|N)nqs^Th=Ty*J2fGi1|SK4
zj+^lErg>XJ>0*~bn*fY`fsrw-q~wCy**8q^0-s1u#V@O(3MwSj_v=?UghW0R6}s#6
z{$+Uh*bAbFDt;bPRyH=CkjFAlWC#FxX=&*cqXLVmF<^$I-FXCR&CboeRe8R+7R(g=
zyJq7XGg=xNUl_^6SKI+<-TY4jIoH~j!Ixz8w~ZQmupZZ&!NQ^UF9;7`Hfsp3PVs}npN8Q7sC}ZEi0iSZm{IEP$$C;av
z!+MALtJ6-O5Mj`@IPaj+VNlP)u)p)s^;en1Ai=sm{VD5gaZSR0F{*IVrK7U8F!_qN
z_&vw|`%Fo}!Sbgb-+ovq`g|jstVLJ{#Ay%HlNKo8O^{_Q9}S;tHheNoqkds`!S77e
z4Ug&ydq-DrE0S}PR02H86rI-ih-l%k%oQ9ZZISbFf-UB~$6Lz5^_I>e9e&I8GW^u6
zAf*TUNs9J>g$8|QMXnbwA*c5<%d#AtB6Yd3sv(k3u55Kyo(uzziQ{k6PQP93Dx@mN
zqkL}vS~_L6-AA$^+;cJhS;NrcYUQ2$>8DloK`Eq$>nFOf#IZyX(|!_{)r#WCvZ00t
z?{9jOys+?2@lc-W`ADt#l3U>pqtE;sH8|7H4!(h743>vlQAA@>y75nioBc{)hqm@Q
z2IFQZU_l{ks5$sjLCd9wDtN{cJ$zTlR)PMb;cutgJZFv?uZwGAZQ}$oTPkQ?_l3o-
zT9g+OwYbPK+<6|OxEPS0yK#YXzPQ^zH~H)AZrsH2;o_nA<@WK#Y|q87y~|_q)MXo-
zmx+x9dArEs2${$ASE8?*^UVsaz(#y$-tjeVW@Z40`tl`>rc@1vq6}T|QWjTM=sMk-
z3w_g)f(01%)`eX8yd9a5s;PI`Q6^wo!id-e;|0%!W`Z3{n^{P=WimPZGOt_FYoSro
z9Rskdumj@8w3|E%l23Z=3^-7G#o2iCc1D&{#RiF$~L#$j@UW;sUE(^p^-bT^x4cRA~r$8w*KHwUAc
ziocZ~T;!y(LUy91rG4a!bp1d#mi&=*l>g=Y;MU`8BZussN%}1@JKv%*(H~Q3X-C2J
zUk`Um)hotKp5knYN&0qK37c)l@pL!O6MVh@4B&s=PUPA54HSVMUmZ`~(jH!*{=@rh
zPo)36U75&bbV8|1Lw{sjC$^7|ekG6lWZP1NhNyhVD&}rh@i@$qzf;Qft}FKmLzdTS
z&z)Xql_W$&6;tSuNLb6nz<}i?>7P>^0C&HU)c5jK@oaJLoO6lo>fjG)w?H5ssgj8a
z^NUpJqOQB3Nf4P_{tF7gYBrPL==gYPb15yMY^^UT4(?NUynvnBS%gu`EDhBU<``~-p7-`?V+1g>PoENc-67LFM+DW)>M3wIxFPTq0
zmh!uL1pgvODMu{7`ucIBsInT0m|pBDy{JPB@Z)ty#KF-~OESabA7Ad7s#LQ8y=&VI
zMFt={@W}7iPHW50$#Q2x%Z^_mZ!jlse9j|Doff1ToYH>)!G0HQdkKPa_$ |