From 6df09381bd631a0e6c37b1254fa870e7309a75fe Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sun, 30 Jan 2022 13:53:33 -0300 Subject: [PATCH 01/14] Update overlays.dm --- code/controllers/subsystem/overlays.dm | 39 +++++++++----------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/code/controllers/subsystem/overlays.dm b/code/controllers/subsystem/overlays.dm index 74b60783c3..f7b1be0fcf 100644 --- a/code/controllers/subsystem/overlays.dm +++ b/code/controllers/subsystem/overlays.dm @@ -7,12 +7,8 @@ SUBSYSTEM_DEF(overlays) var/list/queue var/list/stats - var/list/overlay_icon_state_caches - var/list/overlay_icon_cache /datum/controller/subsystem/overlays/PreInit() - overlay_icon_state_caches = list() - overlay_icon_cache = list() queue = list() stats = list() @@ -32,8 +28,6 @@ SUBSYSTEM_DEF(overlays) /datum/controller/subsystem/overlays/Recover() - overlay_icon_state_caches = SSoverlays.overlay_icon_state_caches - overlay_icon_cache = SSoverlays.overlay_icon_cache queue = SSoverlays.queue @@ -65,36 +59,21 @@ SUBSYSTEM_DEF(overlays) break else CHECK_TICK - if (count) queue.Cut(1,count+1) count = 0 + /proc/iconstate2appearance(icon, iconstate) var/static/image/stringbro = new() - var/list/icon_states_cache = SSoverlays.overlay_icon_state_caches - var/list/cached_icon = icon_states_cache[icon] - if (cached_icon) - var/cached_appearance = cached_icon["[iconstate]"] - if (cached_appearance) - return cached_appearance stringbro.icon = icon stringbro.icon_state = iconstate - if (!cached_icon) //not using the macro to save an associated lookup - cached_icon = list() - icon_states_cache[icon] = cached_icon - var/cached_appearance = stringbro.appearance - cached_icon["[iconstate]"] = cached_appearance - return cached_appearance + return stringbro.appearance /proc/icon2appearance(icon) var/static/image/iconbro = new() - var/list/icon_cache = SSoverlays.overlay_icon_cache - . = icon_cache[icon] - if (!.) - iconbro.icon = icon - . = iconbro.appearance - icon_cache[icon] = . + iconbro.icon = icon + return iconbro.appearance /atom/proc/build_appearance_list(old_overlays) var/static/image/appearance_bro = new() @@ -105,6 +84,14 @@ SUBSYSTEM_DEF(overlays) if(!overlay) continue if (istext(overlay)) +#ifdef UNIT_TESTS + // This is too expensive to run normally but running it during CI is a good test + var/list/icon_states_available = icon_states(icon) + if(!(overlay in icon_states_available)) + var/icon_file = "[icon]" || "Unknown Generated Icon" + stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].") + continue +#endif new_overlays += iconstate2appearance(icon, overlay) else if(isicon(overlay)) new_overlays += icon2appearance(overlay) @@ -164,7 +151,7 @@ SUBSYSTEM_DEF(overlays) if(NOT_QUEUED_ALREADY && fa_len != a_len) QUEUE_FOR_COMPILE -/atom/proc/copy_overlays(atom/other, cut_old) //copys our_overlays from another atom +/atom/proc/copy_overlays(atom/other, cut_old) //copys our_overlays from another atom if(!other) if(cut_old) cut_overlays() From 4797a49914c7435157e1c23f901ddc802f45a0c6 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Tue, 1 Feb 2022 14:04:50 -0300 Subject: [PATCH 02/14] Update files --- code/game/machinery/computer/camera.dm | 1 + code/game/machinery/slotmachine.dm | 1 + code/game/objects/items/storage/boxes.dm | 1 + .../antagonists/abductor/machinery/camera.dm | 1 + icons/obj/monitors.dmi | Bin 15106 -> 15689 bytes 5 files changed, 4 insertions(+) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index a62d2cd102..97ebec1bca 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -252,6 +252,7 @@ desc = "Used for watching an empty arena." icon = 'icons/obj/stationobjs.dmi' icon_state = "telescreen" + icon_keyboard = null layer = SIGN_LAYER network = list("thunder") density = FALSE diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 1fadad168e..bdbd1df305 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -19,6 +19,7 @@ desc = "Gambling for the antisocial." icon = 'icons/obj/economy.dmi' icon_state = "slots1" + icon_keyboard = null density = TRUE use_power = IDLE_POWER_USE idle_power_usage = 50 diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index ea40b49c5f..1124b811c2 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -631,6 +631,7 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "matchbox" item_state = "zippo" + illustration = null w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT custom_price = PRICE_REALLY_CHEAP diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm index 9e0a2b46b1..29404eb24e 100644 --- a/code/modules/antagonists/abductor/machinery/camera.dm +++ b/code/modules/antagonists/abductor/machinery/camera.dm @@ -13,6 +13,7 @@ icon = 'icons/obj/abductor.dmi' icon_state = "camera" + icon_keyboard = null resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/machinery/computer/camera_advanced/abductor/CreateEye() diff --git a/icons/obj/monitors.dmi b/icons/obj/monitors.dmi index 580d78900d00e9e4203dbe0285ee570cecea7702..fdffb346ea1d0336a8bd7491bdf50ed9c63fa606 100644 GIT binary patch literal 15689 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 literal 15106 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

_Cj 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 LHIzyonFs$5mBC<} From 91045350e500b0aa1247c745a50d9aa8805988ea Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 22:01:03 -0300 Subject: [PATCH 03/14] overlay stuff --- code/__DEFINES/_flags/_flags.dm | 28 +- code/__DEFINES/overlays.dm | 24 ++ code/__DEFINES/subsystems.dm | 19 -- code/__HELPERS/custom_holoforms.dm | 1 - code/__HELPERS/icons.dm | 1 - code/_compile_options.dm | 4 - code/_globalvars/bitfields.dm | 1 - code/controllers/subsystem/overlays.dm | 291 ++++++++++-------- code/datums/holocall.dm | 1 - code/modules/admin/verbs/mapping.dm | 1 - code/modules/admin/verbs/one_click_antag.dm | 1 - .../antagonists/_common/antag_datum.dm | 1 - code/modules/flufftext/Hallucination.dm | 1 - .../mob/dead/new_player/preferences_setup.dm | 1 - icons/Testing/greyscale_error.dmi | Bin 0 -> 870 bytes tgstation.dme | 1 + 16 files changed, 202 insertions(+), 174 deletions(-) create mode 100644 code/__DEFINES/overlays.dm create mode 100644 icons/Testing/greyscale_error.dmi diff --git a/code/__DEFINES/_flags/_flags.dm b/code/__DEFINES/_flags/_flags.dm index cd38c9ad5b..8ffbde37af 100644 --- a/code/__DEFINES/_flags/_flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -26,32 +26,30 @@ GLOBAL_LIST_INIT(bitflags, list( //FLAGS BITMASK ///This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. -#define HEAR_1 (1<<3) +#define HEAR_1 (1<<0) ///Projectiles will use default chance-based ricochet handling on things with this. -#define DEFAULT_RICOCHET_1 (1<<4) +#define DEFAULT_RICOCHET_1 (1<<1) ///Conducts electricity (metal etc.). -#define CONDUCT_1 (1<<5) +#define CONDUCT_1 (1<<2) ///For machines and structures that should not break into parts, eg, holodeck stuff. -#define NODECONSTRUCT_1 (1<<7) -///Atom queued to SSoverlay. -#define OVERLAY_QUEUED_1 (1<<8) +#define NODECONSTRUCT_1 (1<<3) ///Item has priority to check when entering or leaving. -#define ON_BORDER_1 (1<<9) +#define ON_BORDER_1 (1<<4) ///Whether or not this atom shows screentips when hovered over -#define NO_SCREENTIPS_1 (1<<10) +#define NO_SCREENTIPS_1 (1<<5) ///Prevent clicking things below it on the same turf eg. doors/ fulltile windows. -#define PREVENT_CLICK_UNDER_1 (1<<11) -#define HOLOGRAM_1 (1<<12) +#define PREVENT_CLICK_UNDER_1 (1<<6) +#define HOLOGRAM_1 (1<<7) ///Prevents mobs from getting chainshocked by teslas and the supermatter. -#define SHOCKED_1 (1<<13) +#define SHOCKED_1 (1<<8) ///Whether /atom/Initialize() has already run for the object. -#define INITIALIZED_1 (1<<14) +#define INITIALIZED_1 (1<<9) ///was this spawned by an admin? used for stat tracking stuff. -#define ADMIN_SPAWNED_1 (1<<15) +#define ADMIN_SPAWNED_1 (1<<10) /// should not get harmed if this gets caught by an explosion? -#define PREVENT_CONTENTS_EXPLOSION_1 (1<<16) +#define PREVENT_CONTENTS_EXPLOSION_1 (1<<11) /// Early returns mob.face_atom() -#define BLOCK_FACE_ATOM_1 (1<<17) +#define BLOCK_FACE_ATOM_1 (1<<12) //turf-only flags #define NOJAUNT_1 (1<<0) diff --git a/code/__DEFINES/overlays.dm b/code/__DEFINES/overlays.dm new file mode 100644 index 0000000000..3e5959a680 --- /dev/null +++ b/code/__DEFINES/overlays.dm @@ -0,0 +1,24 @@ +// A reasonable number of maximum overlays an object needs +// If you think you need more, rethink it +#define MAX_ATOM_OVERLAYS 100 + +/// Checks if an atom has reached the overlay limit, and make a loud error if it does. +#define VALIDATE_OVERLAY_LIMIT(changed_on) \ + if(length(changed_on.overlays) >= MAX_ATOM_OVERLAYS) { \ + var/text_lays = overlays2text(changed_on.overlays); \ + stack_trace("Too many overlays on [changed_on.type] - [length(changed_on.overlays)], refusing to update and cutting.\ + \n What follows is a printout of all existing overlays at the time of the overflow \n[text_lays]"); \ + changed_on.overlays.Cut(); \ + changed_on.add_overlay(mutable_appearance('icons/testing/greyscale_error.dmi')); \ + } \ + +/// Performs any operations that ought to run after an appearance change +/* #define POST_OVERLAY_CHANGE(changed_on) \ + if(alternate_appearances) { \ + for(var/I in changed_on.alternate_appearances){\ + var/datum/atom_hud/alternate_appearance/AA = changed_on.alternate_appearances[I];\ + if(AA.transfer_overlays){\ + AA.copy_overlays(changed_on, TRUE);\ + }\ + } \ + } */ diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 49bad31a60..a66ec3ca61 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -228,25 +228,6 @@ #define SSMOBS_DT (SSmobs.wait/10) #define SSOBJ_DT (SSobj.wait/10) -//! ## Overlays subsystem - -///Compile all the overlays for an atom from the cache lists -// |= on overlays is not actually guaranteed to not add same appearances but we're optimistically using it anyway. -#define COMPILE_OVERLAYS(A)\ - do {\ - var/list/ad = A.add_overlays;\ - var/list/rm = A.remove_overlays;\ - if(LAZYLEN(rm)){\ - A.overlays -= rm;\ - rm.Cut();\ - }\ - if(LAZYLEN(ad)){\ - A.overlays |= ad;\ - ad.Cut();\ - }\ - A.flags_1 &= ~OVERLAY_QUEUED_1;\ - } while(FALSE) - /** Create a new timer and add it to the queue. * Arguments: diff --git a/code/__HELPERS/custom_holoforms.dm b/code/__HELPERS/custom_holoforms.dm index 87f3bfbe8b..4761c1f160 100644 --- a/code/__HELPERS/custom_holoforms.dm +++ b/code/__HELPERS/custom_holoforms.dm @@ -25,7 +25,6 @@ var/icon/combined = new for(var/d in GLOB.cardinals) mannequin.setDir(d) - COMPILE_OVERLAYS(mannequin) CHECK_TICK var/icon/capture = getFlatIcon(mannequin) CHECK_TICK diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index eb0aa448d3..e5aff01eef 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1065,7 +1065,6 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") - COMPILE_OVERLAYS(body) for(var/D in showDirs) var/icon/partial = getFlatIcon(body, defdir = D, no_anim = no_anim) out_icon.Insert(partial,dir=D) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index aef0022c4f..1ed2075537 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -79,10 +79,6 @@ #define CBT #endif -// A reasonable number of maximum overlays an object needs -// If you think you need more, rethink it -#define MAX_ATOM_OVERLAYS 100 - #if !defined(CBT) && !defined(SPACEMAN_DMM) #warn Building with Dream Maker is no longer supported and will result in errors. #warn In order to build, run BUILD.bat in the root directory. diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index d16c24be44..e4ac2fe140 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -164,7 +164,6 @@ DEFINE_BITFIELD(flags_1, list( "NO_LAVA_GEN_1" = NO_LAVA_GEN_1, "NO_RUINS_1" = NO_RUINS_1, "NO_SCREENTIPS_1" = NO_SCREENTIPS_1, - "OVERLAY_QUEUED_1" = OVERLAY_QUEUED_1, "ON_BORDER_1" = ON_BORDER_1, "PREVENT_CLICK_UNDER_1" = PREVENT_CLICK_UNDER_1, "PREVENT_CONTENTS_EXPLOSION_1" = PREVENT_CONTENTS_EXPLOSION_1, diff --git a/code/controllers/subsystem/overlays.dm b/code/controllers/subsystem/overlays.dm index f7b1be0fcf..d5712273ea 100644 --- a/code/controllers/subsystem/overlays.dm +++ b/code/controllers/subsystem/overlays.dm @@ -1,68 +1,30 @@ SUBSYSTEM_DEF(overlays) name = "Overlay" - flags = SS_TICKER - wait = 1 - priority = FIRE_PRIORITY_OVERLAYS - init_order = INIT_ORDER_OVERLAY - - var/list/queue + flags = SS_NO_FIRE|SS_NO_INIT var/list/stats /datum/controller/subsystem/overlays/PreInit() - queue = list() stats = list() -/datum/controller/subsystem/overlays/Initialize() - initialized = TRUE - fire(mc_check = FALSE) - return ..() - - -/datum/controller/subsystem/overlays/stat_entry(msg) - msg = "Ov:[length(queue)]" - return ..() - - /datum/controller/subsystem/overlays/Shutdown() text2file(render_stats(stats), "[GLOB.log_directory]/overlay.log") - /datum/controller/subsystem/overlays/Recover() - queue = SSoverlays.queue - - -/datum/controller/subsystem/overlays/fire(resumed = FALSE, mc_check = TRUE) - var/list/queue = src.queue - var/static/count = 0 - if (count) - var/c = count - count = 0 //so if we runtime on the Cut, we don't try again. - queue.Cut(1,c+1) - - for (var/thing in queue) - count++ - if(thing) - var/atom/A = thing - if(A.overlays.len >= MAX_ATOM_OVERLAYS) - //Break it real GOOD - stack_trace("Too many overlays on [A.type] - [A.overlays.len], refusing to update and cutting") - A.overlays.Cut() - continue - STAT_START_STOPWATCH - COMPILE_OVERLAYS(A) - UNSETEMPTY(A.add_overlays) - UNSETEMPTY(A.remove_overlays) - STAT_STOP_STOPWATCH - STAT_LOG_ENTRY(stats, A.type) - if(mc_check) - if(MC_TICK_CHECK) - break - else - CHECK_TICK - if (count) - queue.Cut(1,count+1) - count = 0 + stats = SSoverlays.stats +/// Converts an overlay list into text for debug printing +/// Of note: overlays aren't actually mutable appearances, they're just appearances +/// Don't have access to that type tho, so this is the best you're gonna get +/proc/overlays2text(list/overlays) + var/list/unique_overlays = list() + // As anything because we're basically doing type coerrsion, rather then actually filtering for mutable apperances + for(var/mutable_appearance/overlay as anything in overlays) + var/key = "[overlay.icon]-[overlay.icon_state]-[overlay.dir]" + unique_overlays[key] += 1 + var/list/output_text = list() + for(var/key in unique_overlays) + output_text += "([key]) = [unique_overlays[key]]" + return output_text.Join("\n") /proc/iconstate2appearance(icon, iconstate) var/static/image/stringbro = new() @@ -75,81 +37,54 @@ SUBSYSTEM_DEF(overlays) iconbro.icon = icon return iconbro.appearance -/atom/proc/build_appearance_list(old_overlays) - var/static/image/appearance_bro = new() - var/list/new_overlays = list() - if (!islist(old_overlays)) - old_overlays = list(old_overlays) - for (var/overlay in old_overlays) +/atom/proc/build_appearance_list(list/build_overlays) + if (!islist(build_overlays)) + build_overlays = list(build_overlays) + for (var/overlay in build_overlays) if(!overlay) + build_overlays -= overlay continue if (istext(overlay)) -#ifdef UNIT_TESTS - // This is too expensive to run normally but running it during CI is a good test - var/list/icon_states_available = icon_states(icon) - if(!(overlay in icon_states_available)) - var/icon_file = "[icon]" || "Unknown Generated Icon" - stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].") - continue -#endif - new_overlays += iconstate2appearance(icon, overlay) + // This is too expensive to run normally but running it during CI is a good test - Unexistant test + /* if (PERFORM_ALL_TESTS(focus_only/invalid_overlays)) + var/list/icon_states_available = icon_states(icon) + if(!(overlay in icon_states_available)) + var/icon_file = "[icon]" || "Unknown Generated Icon" + stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].") + continue */ + + var/index = build_overlays.Find(overlay) + build_overlays[index] = iconstate2appearance(icon, overlay) else if(isicon(overlay)) - new_overlays += icon2appearance(overlay) - else - if(isloc(overlay)) - var/atom/A = overlay - if (A.flags_1 & OVERLAY_QUEUED_1) - COMPILE_OVERLAYS(A) - appearance_bro.appearance = overlay //this works for images and atoms too! - if(!ispath(overlay)) - var/image/I = overlay - appearance_bro.dir = I.dir - new_overlays += appearance_bro.appearance - return new_overlays + var/index = build_overlays.Find(overlay) + build_overlays[index] = icon2appearance(overlay) + return build_overlays -#define NOT_QUEUED_ALREADY (!(flags_1 & OVERLAY_QUEUED_1)) -#define QUEUE_FOR_COMPILE flags_1 |= OVERLAY_QUEUED_1; SSoverlays.queue += src; /atom/proc/cut_overlays() - LAZYINITLIST(remove_overlays) - remove_overlays = overlays.Copy() - add_overlays = null + STAT_START_STOPWATCH + overlays = null +// POST_OVERLAY_CHANGE(src) + STAT_STOP_STOPWATCH + STAT_LOG_ENTRY(SSoverlays.stats, type) - //If not already queued for work and there are overlays to remove - if(NOT_QUEUED_ALREADY && remove_overlays.len) - QUEUE_FOR_COMPILE - -/atom/proc/cut_overlay(list/overlays) +/atom/proc/cut_overlay(list/remove_overlays) if(!overlays) return - overlays = build_appearance_list(overlays) - LAZYINITLIST(add_overlays) - LAZYINITLIST(remove_overlays) - var/a_len = add_overlays.len - var/r_len = remove_overlays.len - remove_overlays += overlays - add_overlays -= overlays + STAT_START_STOPWATCH + overlays -= build_appearance_list(remove_overlays) +// POST_OVERLAY_CHANGE(src) + STAT_STOP_STOPWATCH + STAT_LOG_ENTRY(SSoverlays.stats, type) - var/fa_len = add_overlays.len - var/fr_len = remove_overlays.len - - //If not already queued and there is work to be done - if(NOT_QUEUED_ALREADY && (fa_len != a_len || fr_len != r_len )) - QUEUE_FOR_COMPILE - UNSETEMPTY(add_overlays) - -/atom/proc/add_overlay(list/overlays) +/atom/proc/add_overlay(list/add_overlays) if(!overlays) return - - overlays = build_appearance_list(overlays) - - LAZYINITLIST(add_overlays) //always initialized after this point - var/a_len = add_overlays.len - - add_overlays += overlays - var/fa_len = add_overlays.len - if(NOT_QUEUED_ALREADY && fa_len != a_len) - QUEUE_FOR_COMPILE + STAT_START_STOPWATCH + overlays += build_appearance_list(add_overlays) + VALIDATE_OVERLAY_LIMIT(src) +// POST_OVERLAY_CHANGE(src) + STAT_STOP_STOPWATCH + STAT_LOG_ENTRY(SSoverlays.stats, type) /atom/proc/copy_overlays(atom/other, cut_old) //copys our_overlays from another atom if(!other) @@ -157,18 +92,23 @@ SUBSYSTEM_DEF(overlays) cut_overlays() return + STAT_START_STOPWATCH var/list/cached_other = other.overlays.Copy() - if(cached_other) - if(cut_old || !LAZYLEN(overlays)) - remove_overlays = overlays - add_overlays = cached_other - if(NOT_QUEUED_ALREADY) - QUEUE_FOR_COMPILE - else if(cut_old) - cut_overlays() - -#undef NOT_QUEUED_ALREADY -#undef QUEUE_FOR_COMPILE + if(cut_old) + if(cached_other) + overlays = cached_other + else + overlays = null + VALIDATE_OVERLAY_LIMIT(src) +// POST_OVERLAY_CHANGE(src) + STAT_STOP_STOPWATCH + STAT_LOG_ENTRY(SSoverlays.stats, type) + else if(cached_other) + overlays += cached_other + VALIDATE_OVERLAY_LIMIT(src) +// POST_OVERLAY_CHANGE(src) + STAT_STOP_STOPWATCH + STAT_LOG_ENTRY(SSoverlays.stats, type) //TODO: Better solution for these? /image/proc/add_overlay(x) @@ -194,3 +134,100 @@ SUBSYSTEM_DEF(overlays) overlays |= cached_other else if(cut_old) cut_overlays() + +// Debug procs + +/atom + /// List of overlay "keys" (info about the appearance) -> mutable versions of static appearances + /// Drawn from the overlays list + var/list/realized_overlays + /// List of underlay "keys" (info about the appearance) -> mutable versions of static appearances + /// Drawn from the underlays list + var/list/realized_underlays + +/image + /// List of overlay "keys" (info about the appearance) -> mutable versions of static appearances + /// Drawn from the overlays list + var/list/realized_overlays + /// List of underlay "keys" (info about the appearance) -> mutable versions of static appearances + /// Drawn from the underlays list + var/list/realized_underlays + +/// Takes the atoms's existing overlays and underlays, and makes them mutable so they can be properly vv'd in the realized_overlays/underlays list +/atom/proc/realize_overlays() + realized_overlays = realize_appearance_queue(overlays) + realized_underlays = realize_appearance_queue(underlays) + +/// Takes the image's existing overlays, and makes them mutable so they can be properly vv'd in the realized_overlays list +/image/proc/realize_overlays() + realized_overlays = realize_appearance_queue(overlays) + realized_underlays = realize_appearance_queue(underlays) + +/// Takes a list of appearnces, makes them mutable so they can be properly vv'd and inspected +/proc/realize_appearance_queue(list/appearances) + var/list/real_appearances = list() + var/list/queue = appearances.Copy() + var/queue_index = 0 + while(queue_index < length(queue)) + queue_index++ + // If it's not a command, we assert that it's an appearance + var/mutable_appearance/appearance = queue[queue_index] + if(!appearance) // Who fucking adds nulls to their sublists god you people are the worst + continue + + var/mutable_appearance/new_appearance = new /mutable_appearance() + new_appearance.appearance = appearance + var/key = "[appearance.icon]-[appearance.icon_state]-[appearance.plane]-[appearance.layer]-[appearance.dir]-[appearance.color]" + var/tmp_key = key + var/appearance_indx = 1 + while(real_appearances[tmp_key]) + tmp_key = "[key]-[appearance_indx]" + appearance_indx++ + + real_appearances[tmp_key] = new_appearance + var/add_index = queue_index + // Now check its children + for(var/mutable_appearance/child_appearance as anything in appearance.overlays) + add_index++ + queue.Insert(add_index, child_appearance) + for(var/mutable_appearance/child_appearance as anything in appearance.underlays) + add_index++ + queue.Insert(add_index, child_appearance) + return real_appearances + +/// Takes two appearances as args, prints out, logs, and returns a text representation of their differences +/// Including suboverlays +/proc/diff_appearances(mutable_appearance/first, mutable_appearance/second, iter = 0) + var/list/diffs = list() + var/list/firstdeet = first.vars + var/list/seconddeet = second.vars + var/diff_found = FALSE + for(var/name in first.vars) + var/firstv = firstdeet[name] + var/secondv = seconddeet[name] + if(firstv ~= secondv) + continue + if((islist(firstv) || islist(secondv)) && length(firstv) == 0 && length(secondv) == 0) + continue + if(name == "vars") // Go away + continue + if(name == "_listen_lookup") // This is just gonna happen with marked datums, don't care + continue + if(name == "overlays") + first.realize_overlays() + second.realize_overlays() + var/overlays_differ = FALSE + for(var/i in 1 to length(first.realized_overlays)) + if(diff_appearances(first.realized_overlays[i], second.realized_overlays[i], iter + 1)) + overlays_differ = TRUE + + if(!overlays_differ) + continue + + diff_found = TRUE + diffs += "Diffs detected at [name]: First ([firstv]), Second ([secondv])" + + var/text = "Depth of: [iter]\n\t[diffs.Join("\n\t")]" + message_admins(text) + log_world(text) + return diff_found diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index aeb810cfdd..bb033c10c9 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -317,7 +317,6 @@ if(outfit_type) mannequin.equipOutfit(outfit_type,TRUE) mannequin.setDir(SOUTH) - COMPILE_OVERLAYS(mannequin) . = image(mannequin) unset_busy_human_dummy("HOLODISK_PRESET") diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 89c0e0210e..9e570608f2 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -307,7 +307,6 @@ GLOBAL_VAR_INIT(say_disabled, FALSE) qdel(I) randomize_human(D) JB.equip(D, TRUE, FALSE) - COMPILE_OVERLAYS(D) var/icon/I = icon(getFlatIcon(D), frame = 1) final.Insert(I, JB.title) qdel(D) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index e7fc2c3f94..292c0564b0 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -314,7 +314,6 @@ equipAntagOnDummy(mannequin, ert) - COMPILE_OVERLAYS(mannequin) CHECK_TICK var/icon/preview_icon = icon('icons/effects/effects.dmi', "nothing") preview_icon.Scale(48+32, 16+32) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 136a4c6e69..9f3556dbb6 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -391,7 +391,6 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/proc/render_preview_outfit(datum/outfit/outfit, mob/living/carbon/human/dummy) dummy = dummy || new /mob/living/carbon/human/dummy/consistent dummy.equipOutfit(outfit, visualsOnly = TRUE) - COMPILE_OVERLAYS(dummy) var/icon = getFlatIcon(dummy) // We don't want to qdel the dummy right away, since its items haven't initialized yet. diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 479a80b0f6..d7d53ba691 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -1342,7 +1342,6 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/datum/preferences/prefs = C.client.prefs var/mob/living/carbon/human/dummy/M = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_HALLUCINATION) prefs.copy_to(M) - COMPILE_OVERLAYS(M) CHECK_TICK image = image(M,C) unset_busy_human_dummy(DUMMY_HUMAN_SLOT_HALLUCINATION) diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index a978e541bf..aaa5e04c0e 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -70,7 +70,6 @@ mannequin.regenerate_icons() - COMPILE_OVERLAYS(mannequin) parent.show_character_previews(new /mutable_appearance(mannequin)) unset_busy_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES) diff --git a/icons/Testing/greyscale_error.dmi b/icons/Testing/greyscale_error.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6c781a70ad1911fce8b0f3984aaca861a1038738 GIT binary patch literal 870 zcmV-s1DX7ZP)9u}?;3$YmzvmO?09~hG% z7?U3uv>_P62?v)21)UQRp&S;ZAsfXP5y&4H$t4`6Bpu2p9=XmN)&Kwi0d!JMQvg8b z*k%9#0CIX%Sad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP10006xNkl?7D%Cspu{n+pxID)}$wKrBq8&$eCMr0x^M3$)4w)4x4pL!dZ@(WnWY(lP zNQadJ04_Dm6Tqd0IRSWdJZ@qdEh2e;O&hEZUO<9jYbN% zY&1Nec*g8#2%z~pW=CTJoK8IQ!1>H$1SnOOrOmiV_Iohwx>BtPcBTx|xYHqBSl44a66QoQGr05t&016uQ*&jK_6=rKS75CD__Bme4e@wewIeN=w@|=sJ8olKzea>9_robM6Vg`VM;z}9w}IKw5MZf4K;VAokq2h`17o_bvl$P`{t1R%H-=X9 z2Mj!H2B-G@Z{H7_0N`nVz&{(_^Id=*0ONs${vZM*00BU>qCYUhAqqeMkO%xB=K2E! z_yj2&;uM(e58^dG1o(k#Y-vS*fIyt*f!Y3G`%iiMV`|%O^p?BiIWP1F474-A4S=Wp w!BEl=a3zhBl9ufchN22aSiz$D>JPH<2U%87S-(@z>Hq)$07*qoM6N<$g7ai&ssI20 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index b2aa6b767e..06a91c87d0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -90,6 +90,7 @@ #include "code\__DEFINES\movespeed_modification.dm" #include "code\__DEFINES\nanites.dm" #include "code\__DEFINES\networks.dm" +#include "code\__DEFINES\overlays.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" #include "code\__DEFINES\plumbing.dm" From e40960a3a251f54af421074bd5c35694246e6845 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 22:18:43 -0300 Subject: [PATCH 04/14] sadly necessary --- code/controllers/subsystem/overlays.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/controllers/subsystem/overlays.dm b/code/controllers/subsystem/overlays.dm index d5712273ea..1284664ce5 100644 --- a/code/controllers/subsystem/overlays.dm +++ b/code/controllers/subsystem/overlays.dm @@ -45,14 +45,14 @@ SUBSYSTEM_DEF(overlays) build_overlays -= overlay continue if (istext(overlay)) - // This is too expensive to run normally but running it during CI is a good test - Unexistant test - /* if (PERFORM_ALL_TESTS(focus_only/invalid_overlays)) - var/list/icon_states_available = icon_states(icon) - if(!(overlay in icon_states_available)) - var/icon_file = "[icon]" || "Unknown Generated Icon" - stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].") - continue */ - +#ifdef UNIT_TESTS + // This is too expensive to run normally but running it during CI is a good test + var/list/icon_states_available = icon_states(icon) + if(!(overlay in icon_states_available)) + var/icon_file = "[icon]" || "Unknown Generated Icon" + stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].") + continue +#endif var/index = build_overlays.Find(overlay) build_overlays[index] = iconstate2appearance(icon, overlay) else if(isicon(overlay)) From 4af0628c8b10ccf0126a072be6b8db39b6b11b1d Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 22:36:44 -0300 Subject: [PATCH 05/14] woo --- code/game/machinery/computer/arcade.dm | 2 +- code/game/machinery/computer/camera.dm | 2 +- code/game/machinery/computer/pod.dm | 4 ++-- code/modules/mining/aux_base.dm | 1 + .../projectiles/guns/energy/energy_gun.dm | 1 + .../reagents/chemistry/machinery/pandemic.dm | 1 + icons/obj/storage.dmi | Bin 74107 -> 68471 bytes 7 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 276c1796b3..625886611a 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( name = "random arcade" desc = "random arcade machine" icon_state = "arcade" - icon_keyboard = "no_keyboard" + icon_keyboard = null icon_screen = "invaders" light_color = LIGHT_COLOR_GREEN var/list/prize_override diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 5aa41a8be0..97d2f3bab4 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -209,7 +209,7 @@ name = "security camera monitor" desc = "An old TV hooked into the station's camera network." icon_state = "television" - icon_keyboard = "no_keyboard" + icon_keyboard = null icon_screen = "detective_tv" pass_flags = PASSTABLE diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index a7071ac72e..54b515f74c 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -138,13 +138,13 @@ name = "\improper DoorMex control console" icon_state = "oldcomp" icon_screen = "library" - icon_keyboard = "no_keyboard" + icon_keyboard = null // /obj/machinery/computer/pod/old/mass_driver_controller // name = "\improper Mass Driver Controller" // icon = 'icons/obj/airlock_machines.dmi' // icon_state = "airlock_control_standby" -// icon_keyboard = "no_keyboard" +// icon_keyboard = null // density = FALSE // /obj/machinery/computer/pod/old/mass_driver_controller/toxinsdriver diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 14545f9570..78314ee6b6 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -15,6 +15,7 @@ name = "auxillary base management console" icon = 'icons/obj/terminals.dmi' icon_state = "dorm_available" + icon_keyboard = null var/shuttleId = "colony_drop" desc = "Allows a deployable expedition base to be dropped from the station to a designated mining location. It can also \ interface with the mining shuttle at the landing site if a mobile beacon is also deployed." diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index a34e0f6f12..7be279bc87 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -78,6 +78,7 @@ lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap) + modifystate = FALSE can_flashlight = 0 ammo_x_offset = 1 diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 6991aeef43..7ae4aae5fc 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -7,6 +7,7 @@ density = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "mixer0" + icon_keyboard = null use_power = TRUE idle_power_usage = 20 resistance_flags = ACID_PROOF diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 3204b36cc5b5d12ccc45a32298a6053ce8695997..d4f1eb71ee33047cf892863dc56b24970ee5dfd6 100644 GIT binary patch literal 68471 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%0DEwxsMG0YwpG^*=%6wT|E)|qEMCZO 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

^DKS&I1ObR+p5c}|59`7pFTztG>oNS7pG%Ok1D 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

?sKCV+v9mZ5iDPv3C**VXi%npg$ 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 From a60aa98413f9969994469be862d31abae49643d7 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 22:50:41 -0300 Subject: [PATCH 06/14] terrible --- code/game/machinery/computer/_computer.dm | 25 ++++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 6b1d28fcba..19d6688ee8 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -43,18 +43,23 @@ /obj/machinery/computer/update_overlays() . = ..() SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) - if(stat & NOPOWER) - . += "[icon_keyboard]_off" - return - . += icon_keyboard + if(icon_keyboard) + if(stat & NOPOWER) + . += "[icon_keyboard]_off" + else + . += icon_keyboard - // This whole block lets screens ignore lighting and be visible even in the darkest room - // We can't do this for many things that emit light unfortunately because it layers over things that would be on top of it - var/overlay_state = icon_screen if(stat & BROKEN) - overlay_state = "[icon_state]_broken" - . += mutable_appearance(icon, overlay_state) - . += emissive_appearance(icon, overlay_state) + . += mutable_appearance(icon, "[icon_state]_broken") + return // If we don't do this broken computers glow in the dark. + + if(stat & NOPOWER) // Your screen can't be on if you've got no damn charge + return + + // This lets screens ignore lighting and be visible even in the darkest room + if(icon_screen) + . += mutable_appearance(icon, icon_screen) + . += emissive_appearance(icon, icon_screen) /obj/machinery/computer/power_change() ..() From ccbf3dc0ddb19c6ebeb3ea33c2a691dec5e88720 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 22:57:00 -0300 Subject: [PATCH 07/14] closet dor --- code/game/objects/structures/crates_lockers/closets.dm | 3 ++- .../objects/structures/crates_lockers/closets/cardboardbox.dm | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 0176abd505..a713ddfbf4 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -76,7 +76,8 @@ . += "[icon_door_override ? icon_door : icon_state]_open" return - . += "[icon_door || icon_state]_door" + if(icon_door) + . += "[icon_door || icon_state]_door" if(welded) . += icon_welded diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 14d28b17d3..fc0b7c96c8 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -3,6 +3,7 @@ name = "large cardboard box" desc = "Just a box..." icon_state = "cardboard" + icon_door = null mob_storage_capacity = 1 resistance_flags = FLAMMABLE max_integrity = 70 From 09ec69830fb58401751026d684409f4fbf2e9c8f Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 23:00:59 -0300 Subject: [PATCH 08/14] synd --- code/modules/shuttle/syndicate.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 794f2bcd44..d6d934530c 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -45,6 +45,7 @@ desc = "Controls the drop pod's launch system." icon = 'icons/obj/terminals.dmi' icon_state = "dorm_available" + icon_keyboard = null light_color = LIGHT_COLOR_BLUE req_access = list(ACCESS_SYNDICATE) shuttleId = "steel_rain" From 5aa8ada82d2259daaa89eb60a42756fad3aadd32 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 23:07:57 -0300 Subject: [PATCH 09/14] dice sides --- icons/obj/dice.dmi | Bin 3905 -> 7814 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index 1d6601aa310086c4f994d9e506720c40ff531268..8b8b5d2a61f25f06fcb9d1e3512c0e03b710d94a 100644 GIT binary patch literal 7814 zcmbt(cTiJbw|1xr9RcYr3Syxu9U(NO7e%Copfo}05Rej(s)BR@X#u5|fJlcVfFdYO zL5R`<(g`87Py<|k_nSNO&D{IV{pNlDIA`XpbJjj*pS9PspY^O)=B9cqjQorM0D#3n zU-v!$K&AQ50ir**45pM+o?j$~Jg^SXb@6xdbN2~w_x1t+g7e;Fb(wyaW!D}4W~EDP zeS%Y%6>cefSPnd5^IE^6!DY@dyDwL9$yW=}Y#rhOcT*h=nZ7OJkW}V+7E+DIcYvfH}hE3rB zjmwp*{#17WqF2SlE^9tFa&Z0GuP-e1>auK4>PI2I$@3F`ZpO>YLVxvRl}AL2dASi#>-%e4n|n8Ic(~lDsV;wev9Z4XA@>*dXj(q8K2a@thMW2+T9-OSv`#_WdfAYL zX7hVaH!9bSQvrNjqS4gO=8?>dDOyxFuWHis$DEE+9&4Wd`ud5~*-I7E=<&R#ige#d zqCG55`exkV|Z9t7tRrr7HUBp{ ztNaz4HOZsfAX=wd)yGaE>aJaQZmJ9j=c+plz0ZH4s{r$#%NSz&SO8}(*(l}^; zKzWjK5M?yD?yE;XjZE{}EXCh;ah*P(86~lfXmp1ZfxFbx0?l=A>_?N2=9?%6zcE%R*(Q3u&E4z~xj6 z*8xP|UpM1kmv$0m>Z533%9JM0N!PE5d`_iiNa4KQrZLv5uN&5!1DS1F&ZJuzv77S+ z3p=875?xoO^RHe+?1i*K>pW%Wgv4w>8tqKg4|^s7;sdF@shEY5X}2>X&N%XKpUDcku2f)yXn(XIStX)%;&1d7lwst6*k>u`KtRI7cf9 z7D)b0i978wRu*$DYrTGgh0kb=qfh7q8i-}i;pn{aZ2K`%wJHCwfz>d!su%L@h{L&l z*$N&RFh<4L3O$hJ%iw9HS^xP#uP%eNE@M-%TP!2AsH9~_oRSL}8|t$>8Com8pt0E0 zKK^uBLX47uX7QPgB5|3Opqe9C7kl8M4aNzv&zOu2TX}44)x^qS7*l@m1L;T$3Z41J zmRSP^9;nK~UH|E`!`iNumqfFk%O#*=>yXSFAyFur${uG{MN<`EZ!k7&3(OwpZ96(k zFNYi*<-R^E^TIL37dkXGAOC^GZ(mnut$Q?-r{a1ZnVvw^i%qLkKT)uk1~-)G{1i|P z1ho$2B7(}rb=iW$DRubJ&`RP(nVO3HZooCdVo0kHk_lzMU>3FV;)jWei5AFk#eH7_ zysDZP8R8njZLP6Y^g@5rQexZf1z9Oim{)3&B6cuQJI?^%c(}$U!j2fLSW5Iy|L(*jonUgbIz$v%-cq+DMud@lg1HK3f9HPsz|YpN9o!4K2)+`*RWj`SwUxP?87)Qx|r)owGL9 zz+zs&j1zh}Ob%q0CbTb2?$ly^?59X$X4BKFWR94*Ro^rZ7D(zb>yHx2sWZvMF7d2= zyd}{Ghg?!tL~n9}%evR^Tt=NG0BFq>)M#A}A^nKdgI%j2#Fq;(&uD1P<)&Gm zi~@`=Q~o|2b#MeAQd82|B^zgYf<4ah{H0j!BP+&909Ek0|Ev@>dt@_66EJh>Up9Db zeqh-O*WnxKMScNR7IrnC49mO|dDpaq6lv)2I(^U~`4M-*@8;^kkUdT zqkImx1C&lT#!jxaX^M5SLRPoGo4km1h*-W8ZLvz*D;VTF_e!t8Z#(CFbD8Pk{aX&( zQPi}W+YfT9Ua!+=8Q9YlD^AFV%1B9*;y!#QaP$acbm}>?AkS3q5B_% z^(j4bM{ksZwxU_2d*|8^IoDTDGvF^Ye5R?s*JrX1xB#;+@&iyU>zI0TSZ_+en{S_F zDwHW1Qw|7egQKs*p*&0V@G&9B2{lM@l>mO?#8TUzlP&87~P%CmdmDlf%B4KsLC^%W1r9f726aiarEHG%Y4WoWfS9QXV8@1^D36+!*cWF*yTM^`IpKo}sb8i<_9(xwLP1g)2pjh8 z4uG+n*~T%xFb*lrfTcW=k!4Sf$&1N{BVu5P#ZnsDdR?`yq^wjWT2XUxZJD!dYMTGz z7ykkz_z@G4u#Fy`TVOtly5>R}J*=5eMA3~>O{Cxj{c`ssCh?-!{@?VxSV zLLA09qh3Z`ll3dnId~)N3`hNDmyE4;Gfcb+(p-oWLM*aJy?kE^5cHo)r3-zhSWzXh zh6@U3Xv91Cmf5Hf%eq{Mr!muX-^qSz+U#%pP82&Ogr9$3RTRl0H#SuPe#wbJ@f(!8 zQY!7Eli$f4Q4rH3eDAI9*Nlr3v8~nl%dGM^ zA<;GD`j_mEzl1I(d!3paaGn)m5~KEj6>L` zx4BDkI2rYIfp;rEQlWyNH}-X(2WIB0K#&K~09~&q<==b}{81rk{UIsxbMc09bayub z6osx(*y)5s{mSh7E+AgMW|+`FZ9Y6B@PSse_hWp&-7t(Z z59{@Zj-oZ5S42a5DQ#0=@6_O~srK+F%Mu$ENVjlKB5qH4q+uO#-I`HbHUgwss0}}O zs{>kMq5?h8)Fy6ZVcbrMf6VBz8jm^QJXdl3L{L|lDBy+k?|eK&Bm`F0JVsch-6<;d zj(y6%mHL;n15WO*AW?n5V96y-zl=keOG?r3ecad)4?aXR75#bd`-JKpKyAm}m>BGg%Hd4|~ z(r3p=#@~+~df17~Wtp9)CYVJ*<+qKFxtX60TiO-McJwt__IqxlkGf@GD}Wa-zsCyB zWkCY|sSo}QN;9@wq7Rr--biA49g#s!#bQ&jI@aRU?0u<^H*4(N22#LX_i-0ueqM;w zWDNje>h=O@9|h2grub^rHO5U5c1|z1Oa*N~)&m8ORa@1;)_m|N0N+DJ%0wBqYs6M$ zYAA>Mga7&SG#oymu}Dy?W5ovh;#P^i=3V!F+zTNDw8k5nweTSLS0pj^Z7yWixl*c; z946&d9wOj4`Z9Ta>~Ssh#Lt5*?pIdG`Qkx|IOv71_1etuDcB9z02>2?_8jnO>x4-) z?Zd-TWuWs%nm#%fv~BObK)_l$^!m$@rAo|6)P4UM9(ih< zCKhQQ=V;&PL#K3gE+ zxg?`esBjOv%(0WzVeva^vN&krr)za5lfz_hZ65L`pR-0(axxa$JcEp2_*4SRKABPM zx~Zl$!U&o3Sk{{&|6yWw{_VSSg=gWn27{*WIHuh&D5|C?_;^x1`V&W_pYp(E|Ev&o zopM?vE!E8-R;=iP;l{#>O^1V5#5iU(Nv`%h{)y?*=9v?7452wyRM(SIJ%1uwk=%On7;-&a4t+5A z;D%C!C|Slm_2|CUKWy;%IU6KS98C;&^KOToRc!!D3KMu7GFuSL_Txd}_&{b2-0*i^ z`&aV{yhgy4*95sI;Z`!;lD~ou=?DHZ3c(crNvb0USnq5-<|zhpR(|rlFA%tLpL-*M z`|E64|1t7yuf~mepOSGKa~*$w|7sfQ$c|ZA-hYQn{dYcAQ;Fen?|Hk-qv);Z+8LQd z(1W$6cz@gO+^~?~aX3qm3&-Pp!;@iBi-&q18oNc0Vj(B1Jvk2kspo!M>+Z2Saq|2O zSd(_8i#Y7B@D#q$a5MIo!!?u6rTB&zCGBojjf2_0%`ecqBSsasXR5B`n?G6mIjVnv zZgR8oJ^2zEpNmIMaM1ppm~J2F18yuI>OBr2^V_fBYLovodB(5eBOp5yPrbAA)o>EW zH9jNcZ}+K9^;asQ@qaWyrMl512_^h9>1QV<0XhVl)8yp>0sAaxc0-(m5rZ3_E zOx@MF>5e_XR`f`(+=}qGf@0^oyMi7ahp2d?TJJ{7wwT=43SQ~F>!jGE-pmglVKKC7 zSsInckBNQffrf3xpfOBAT~SMIh|_S1(dn;WF-t%7kk{gnDJAxq?6>!RUuMiz zM0>qAPPnlF2t2w$wNGNxaOV$|&#CBbp!*9=u3;EDTRK!&dJ7@mwBVl3SxLATO{$Y4 zDIF8>O(M%%E}r=Y>hwi1NP1*i=P0Xehl6T&i;j62mcystmIf8kT(GnEA}Q-&UTUrkT3{Lu zIr>TS8i(EN7D*s9s#VL=UiPNRsMt829M5sOEBs``2G6Zg#xi4ZTLuTM3$}U8_Bsat zvus!1``I*S3{v_n?V}v9@;PaZZA}m{t}ckdC%`E0`Nn>8E6#OV%#qurvA0v%&j*YM z-&VQRW+mePLnfY{P;xxF<2Q}h*fp;X?59Kiu3x;k)5V5R25F@}WXH(Op``<`u4md- z-DblQd{G<-{$P#(=+8+5(T5ySscg}ybr$u5W}nS6{rELzJIl{poaZ*vOPDwi?!Qtu z+l#`p+T-#Zq?HLt9%qjAM_uuzdZ3yFj6F=$$hS_2?2W8mU?&akysVOr{j?2$(#h6z{oHaT zr}6hAmIy^BWT>>V43$KFVfY`1I5o{yNeHrdpXJHTHzFR4L;W{@gVW4`PtrxFTK!Gf z5&L+^XxQ1Yp11?&hG6(E?3}0{i^X@w;0&zcgmK3t^}V{+r=&ihcE9k9&V&*oVOr+2 zOF!xReQop1AY_m!_?r-zBdR+Ps5>?s}7Vb)zRb zq;XIdz9AW2{^l9b__fzTa}c1o;?ohC7opv4rm9*r3Aht{3_A!pY&Co!7`Z0_(H$Vw zR%S4Eg*X9`4w;@WIDFc;3`oo$A&20AN!Y`_8OM))E`F1M(TPowMg%$zIf61RZRYoD z6Ee?gBbs?hOg}F1FidP(_3rJTOa9hl(%$JKaWx+{5#L!{^Z8jI4<;kdNsam*skZyu8Hoo4`|Kho%GY@CujC~P$N<$K&au_rBvAU=si8?IiGYU1yZE&KfOji5#LmWacgK2W=_O{j z;ygjvqmm*;pV`@{xY?H%fH`ATldiO52yW#O2`#TYgrSxO)uqs=#ca*cTj?FkGn9Vm zonB%t$BEd>$TPh}0y*Rx*-(u**f zlss#c6jxXmZJwoS$!!pWOk>X|Ij>VEj~eEUZXR@tf#TUnfdU>oBOX4v*^KBO$%;Gv<#wmmT!sEr?_7XisV2fa6_LiaFxzUps;iF{**+%9#PuJ z>dLDCamskLjqO&1YT&x{&SF)q>22D5$g-d|x8~UO4S=0()4SBmz#L99L9bHg6BJ+2 zp7JM;`O3fKWhlI$mDFpNJF1tg7^F_AQz?vC#1Ha~sVuL!8|}zl_wp zeIF~~QMb_t@k?W8VG1DhM;O0=q_;p&?jhynwJ!1q)s^$w42R-O%!`RBtP&O6nieUw zVdZOBFHS!Y&vr_s-W>6be^&uyk)sJ|%$AbzmNSc3cHjA}Bz(&s55et13LEDIK28{` z!Xs^b=8CO>6?3jYn01cU)qFhhcmvk5ntktXrnFku(h|dvhuITh5;+&vP0E0ssgm=< z=X;Z7`o3ZE_ITIs+@Wf5{$?d0MnORvt}2JazjNIpSj6+xil_xvxB7I6`G01?0n7Mq zC9!GCqSU)A5HsvClPBt-^kw%$_BtTS--ru)21iRu*grnwlXe2GkfxEo`_dA&b+jxP z2F|JQ%eFf)i>CX#$!B}b`Is$e4AL6YF+VSz#n83(fGZN8qgYcHFc{iEi>g?Jbf5Aw$-vhorbFQ_Osd_McGvz8?|3%i7y~5Ly{{e z7%mAF<^qfuF`vMdH>fu9@ZeH6&otzfVN_du#SVv_rRb_gc5+ZksYR7d>w-%882 z<(%;wk0zG##-++EI;^-8Q$RSg_FIf**wIS7O}@M$Lk81qLj*XER7F?~F0kZ^ghA_z z=hl7a2fkX8g!Y5}JYRligxKcv-|FGX6;flBwJ1%zMHoLR3Op%Au0)~&~@p}_LA0_vbZ5h(HP&?kKhM~1Fp$}EtD z?b)>L_R+-~@LVS8mKyNJkT;>GSusP6B5u3~>L<=ui!Aw(oGOmoy=j<@+A&qfHqwz$ zktC-eM8J!m^72YbR^(_-2~){|d^M$PY8mUg&VgK|;oG}EbY5X(7Xfa6j;lhXh%Ru` z8JiBtxgbJ~-Juky@RB8w_MM8q>!ag6qSgwFfTE=JjBl?{*HH`b$*8I96wBJj$QY5x ztCgqe2Lg)EWMw)wqxj^XqzJOP@e2sd3tHKzqR}vo4Y+HU@s$I>gNjlT?LCS7fct`H zCSv?C%{e2Jm#GSGgxwGXcw1hKY@YHn`ph7a=Qxgn+Sx0G?yWn9+tbiQ7F$kJ8U8j{ w$wwTmp1;n%(p^Bb2q-%IoBsc5Uy#p?j%5*=(R-%n{bhi`9aCMDwqw+P0AniVDF6Tf literal 3905 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 K^P{?b=zjp Date: Fri, 12 Apr 2024 23:14:08 -0300 Subject: [PATCH 10/14] if ratio'd --- code/game/objects/items/RCD.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 6d5ab1cdce..61641e1d49 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -558,8 +558,9 @@ RLD . = ..() 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]") + if(ratio) + cut_overlays() //To prevent infinite stacking of overlays + add_overlay("[icon_state]_charge[ratio]") /obj/item/construction/rcd/Initialize(mapload) . = ..() From 8b5bb50a7a5512cd9a30308da474f389456bd57b Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 23:29:18 -0300 Subject: [PATCH 11/14] defib --- code/game/objects/items/defib.dm | 64 +++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 4df3accb67..a154b8a638 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -19,6 +19,8 @@ var/on = FALSE //if the paddles are equipped (1) or on the defib (0) var/safety = TRUE //if you can zap people with the defibs on harm mode var/powered = FALSE //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise + /// If the cell can be removed via screwdriver + var/cell_removable = TRUE var/obj/item/shockpaddles/paddles var/obj/item/stock_parts/cell/cell var/combat = FALSE //if true, revive through hardsuits, allow for combat shocking, and tint paddles syndicate colors @@ -29,6 +31,16 @@ var/timedeath = 10 var/disarm_shock_time = 10 var/always_emagged = FALSE + /// The icon state for the paddle overlay, not applied if null + var/paddle_state = "defibunit-paddles" + /// The icon state for the powered on overlay, not applied if null + var/powered_state = "defibunit-powered" + /// The icon state for the charge bar overlay, not applied if null + var/charge_state = "defibunit-charge" + /// The icon state for the missing cell overlay, not applied if null + var/nocell_state = "defibunit-nocell" + /// The icon state for the emagged overlay, not applied if null + var/emagged_state = "defibunit-emagged" /obj/item/defibrillator/get_cell() return cell @@ -56,18 +68,19 @@ /obj/item/defibrillator/update_overlays() . = ..() - if(!on) - . += "[initial(icon_state)]-paddles" - if(powered) - . += "[initial(icon_state)]-powered" - if(!QDELETED(cell)) + + if(!on && paddle_state) + . += paddle_state + if(powered && powered_state) + . += powered_state + if(!QDELETED(cell) && charge_state) var/ratio = cell.charge / cell.maxcharge ratio = CEILING(ratio*4, 1) * 25 - add_overlay("[initial(icon_state)]-charge[ratio]") - if(!cell) - . += "[initial(icon_state)]-nocell" - if(!safety) - . += "[initial(icon_state)]-emagged" + . += "[charge_state][ratio]" + if(!cell && nocell_state) + . += "[nocell_state]" + if(!safety && emagged_state) + . += emagged_state /obj/item/defibrillator/CheckParts(list/parts_list) ..() @@ -103,6 +116,18 @@ var/atom/movable/screen/inventory/hand/H = over_object M.putItemFromInventoryInHandIfPossible(src, H.held_index) +/obj/item/defibrillator/screwdriver_act(mob/living/user, obj/item/tool) + if(!cell || !cell_removable) + return FALSE + + cell.update_appearance() + cell.forceMove(get_turf(src)) + balloon_alert(user, "removed [cell]") + cell = null + tool.play_tool_sound(src, 50) + update_power() + return TRUE + /obj/item/defibrillator/attackby(obj/item/W, mob/user, params) if(W == paddles) toggle_paddles() @@ -120,13 +145,6 @@ to_chat(user, "You install a cell in [src].") update_power() - else if(W.tool_behaviour == TOOL_SCREWDRIVER) - if(cell) - cell.update_icon() - cell.forceMove(get_turf(src)) - cell = null - to_chat(user, "You remove the cell from [src].") - update_power() else return ..() @@ -236,6 +254,11 @@ item_state = "defibcompact" w_class = WEIGHT_CLASS_NORMAL slot_flags = ITEM_SLOT_BELT + paddle_state = "defibcompact-paddles" + powered_state = "defibcompact-powered" + charge_state = "defibcompact-charge" + nocell_state = "defibcompact-nocell" + emagged_state = "defibcompact-emagged" /obj/item/defibrillator/compact/item_action_slot_check(slot, mob/user, datum/action/A) if(slot == user.getBeltSlot()) @@ -254,6 +277,13 @@ always_emagged = TRUE disarm_shock_time = 0 cell = /obj/item/stock_parts/cell/infinite + paddles = /obj/item/shockpaddles/syndicate + paddle_state = "defibcombat-paddles" + powered_state = null + emagged_state = null + +/obj/item/defibrillator/compact/combat/loaded + cell_removable = FALSE // Don't let people just have an infinite power cell /obj/item/defibrillator/compact/combat/loaded/attackby(obj/item/W, mob/user, params) if(W == paddles) From 6b1e0b300a9616fb503307089c1ebd84aaeb52f2 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 23:33:43 -0300 Subject: [PATCH 12/14] fudge --- icons/obj/dice.dmi | Bin 7814 -> 7814 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index 8b8b5d2a61f25f06fcb9d1e3512c0e03b710d94a..aecdbde71c614b4ac5aa1d8c777177f014f26ac4 100644 GIT binary patch delta 401 zcmV;C0dD?=J%&AyI)AZF!$1&3Yx^s#qz>A-7&r4+Pxgg&oGSf?X`NW>KiMIuh>p~I&588^dWZrG#|#PnL>J8 zwRfwsXyY)ZgUaGEG}kac|3Nk)kR#BRKsAAG2?VxtMi?SNqJMw}i2@=d3aF4MAVZ>% z4x4*Kc|<)hRiXGyeKGmP^cOQg%mFbA#5@o)LCggd0f3;8kcI@<*6I z8ifAV{9-`<)W);#z{dfEwQ70AtM5`vC%b%xE;6b--i(!1o3Zk@)}6^E!3J=b8b5p+ vIR~6r$nv%eSzdS{%TZm(a$Fbk-`&^E;k2Lcus^`8-USg&1ux{YyaCD_LFBTT From 36bc86cf9c5a28f53ded475ff8dbe25586016b2f Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 12 Apr 2024 23:44:29 -0300 Subject: [PATCH 13/14] guns... potat --- code/modules/power/cell.dm | 6 ++++-- code/modules/projectiles/guns/ballistic/automatic.dm | 1 + code/modules/projectiles/guns/energy/energy_gun.dm | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 51710affc0..bf8899e5d5 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -20,7 +20,8 @@ var/chargerate = 100 //how much power is given every tick in a recharger var/self_recharge = 0 //does it self recharge, over time, or not? var/ratingdesc = TRUE - var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it. + ///If it's a grown that acts as a battery, add a wire overlay to it. + var/grown_battery = FALSE rad_flags = RAD_NO_CONTAMINATE // Prevent the same cheese as with the stock parts /obj/item/stock_parts/cell/get_cell() @@ -61,7 +62,8 @@ /obj/item/stock_parts/cell/update_overlays() . = ..() if(grown_battery) - . += image('icons/obj/power.dmi',"grown_wires") + . += image('icons/obj/power.dmi', "grown_wires") + return if(charge < 0.01) return else if(charge/maxcharge >=0.995) diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 0bb1c3cada..f0285a5ad9 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -220,6 +220,7 @@ can_suppress = FALSE burst_size = 3 burst_shot_delay = 1 + automatic_burst_overlay = FALSE // Bulldog shotgun // diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 7be279bc87..4fd0220ee3 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -45,6 +45,8 @@ desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) icon_state = "decloner" + //You have no icons for energy types, you're a decloner + modifystate = FALSE /obj/item/gun/energy/e_gun/hos name = "\improper X-01 MultiPhase Energy Gun" From a26145f77d72ee18c13424a03cdb2340e21e4f03 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sat, 13 Apr 2024 00:10:57 -0300 Subject: [PATCH 14/14] refactor this crap later, i hate tg --- code/__DEFINES/_flags/_flags.dm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/code/__DEFINES/_flags/_flags.dm b/code/__DEFINES/_flags/_flags.dm index 8ffbde37af..265f4e14db 100644 --- a/code/__DEFINES/_flags/_flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -26,30 +26,30 @@ GLOBAL_LIST_INIT(bitflags, list( //FLAGS BITMASK ///This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. -#define HEAR_1 (1<<0) +#define HEAR_1 (1<<3) ///Projectiles will use default chance-based ricochet handling on things with this. -#define DEFAULT_RICOCHET_1 (1<<1) +#define DEFAULT_RICOCHET_1 (1<<4) ///Conducts electricity (metal etc.). -#define CONDUCT_1 (1<<2) +#define CONDUCT_1 (1<<5) ///For machines and structures that should not break into parts, eg, holodeck stuff. -#define NODECONSTRUCT_1 (1<<3) +#define NODECONSTRUCT_1 (1<<7) ///Item has priority to check when entering or leaving. -#define ON_BORDER_1 (1<<4) +#define ON_BORDER_1 (1<<9) ///Whether or not this atom shows screentips when hovered over -#define NO_SCREENTIPS_1 (1<<5) +#define NO_SCREENTIPS_1 (1<<10) ///Prevent clicking things below it on the same turf eg. doors/ fulltile windows. -#define PREVENT_CLICK_UNDER_1 (1<<6) -#define HOLOGRAM_1 (1<<7) +#define PREVENT_CLICK_UNDER_1 (1<<11) +#define HOLOGRAM_1 (1<<12) ///Prevents mobs from getting chainshocked by teslas and the supermatter. -#define SHOCKED_1 (1<<8) +#define SHOCKED_1 (1<<13) ///Whether /atom/Initialize() has already run for the object. -#define INITIALIZED_1 (1<<9) +#define INITIALIZED_1 (1<<14) ///was this spawned by an admin? used for stat tracking stuff. -#define ADMIN_SPAWNED_1 (1<<10) +#define ADMIN_SPAWNED_1 (1<<15) /// should not get harmed if this gets caught by an explosion? -#define PREVENT_CONTENTS_EXPLOSION_1 (1<<11) +#define PREVENT_CONTENTS_EXPLOSION_1 (1<<16) /// Early returns mob.face_atom() -#define BLOCK_FACE_ATOM_1 (1<<12) +#define BLOCK_FACE_ATOM_1 (1<<17) //turf-only flags #define NOJAUNT_1 (1<<0)