From c46e21595b92bf66a17200f71de2d9fb4db9c475 Mon Sep 17 00:00:00 2001 From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com> Date: Mon, 3 Mar 2025 06:02:54 +0800 Subject: [PATCH] Storage Fix 2, Featuring Maths (#20535) I had to unironically bust out my pen and paper for this bullshit and magnifying tool to actually check if things were pixel perfect. - bugfix: "Fixes storage box alignment and storage space UI to use better maths." - qol: "Tweaks IDs, IDs and firing pins now rotate 90 degrees when in storage for easier clickability." - bugfix: "Fixes Item Tooltip toggle message." - bugfix: "Fixes roundstart items in storage not showing item outlines." Fixes #20529 --------- Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com> Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> --- code/controllers/subsystems/job.dm | 5 +- code/game/jobs/job/captain.dm | 6 +- code/game/jobs/job/civilian.dm | 2 +- code/game/jobs/job/engineering.dm | 2 +- code/game/jobs/job/hra.dm | 4 +- code/game/jobs/job/medical.dm | 2 +- code/game/jobs/job/science.dm | 2 +- code/game/jobs/job/security.dm | 2 +- code/game/objects/items/weapons/cards_ids.dm | 69 ++++++++++++------ .../objects/items/weapons/storage/storage.dm | 42 ++++++----- code/game/objects/items/weapons/tools.dm | 1 + code/modules/client/preferences_toggles.dm | 2 +- code/modules/projectiles/pins.dm | 21 +++++- html/changelogs/wezzy_Storage-Fixes2.yml | 61 ++++++++++++++++ icons/obj/card.dmi | Bin 18289 -> 17614 bytes 15 files changed, 163 insertions(+), 58 deletions(-) create mode 100644 html/changelogs/wezzy_Storage-Fixes2.yml diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm index 0ec1b53e373..4db9b5a10e7 100644 --- a/code/controllers/subsystems/job.dm +++ b/code/controllers/subsystems/job.dm @@ -771,7 +771,7 @@ SUBSYSTEM_DEF(jobs) log_loadout("EIS/([H]): [items.len] items.") var/obj/item/storage/B = locate() in H if (B) - for (var/thing in items) + for(var/thing in items) to_chat(H, SPAN_NOTICE("Placing \the [thing] in your [B.name]!")) var/datum/gear/G = GLOB.gear_datums[thing] var/metadata @@ -782,7 +782,8 @@ SUBSYSTEM_DEF(jobs) metadata = list() G.spawn_item(B, metadata, H) log_loadout("EIS/([H]): placed [thing] in [B].") - + for(var/obj/item/I in B.contents) + I.in_storage = TRUE else to_chat(H, SPAN_DANGER("Failed to locate a storage object on your mob, either you spawned with no arms and no backpack or this is a bug.")) log_loadout("EIS/([H]): unable to equip; no storage.") diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 9ec35412b33..bc37272235d 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -34,7 +34,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca shoes = /obj/item/clothing/shoes/laceup/brown head = /obj/item/clothing/head/caphat/scc glasses = /obj/item/clothing/glasses/sunglasses - id = /obj/item/card/id/scc/gold/captain + id = /obj/item/card/id/gold headset = /obj/item/device/radio/headset/heads/captain bowman = /obj/item/device/radio/headset/heads/captain/alt @@ -117,7 +117,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca head = /obj/item/clothing/head/caphat/xo uniform = /obj/item/clothing/under/rank/xo shoes = /obj/item/clothing/shoes/laceup/brown - id = /obj/item/card/id/scc/silver + id = /obj/item/card/id/silver headset = /obj/item/device/radio/headset/heads/xo bowman = /obj/item/device/radio/headset/heads/xo/alt @@ -169,7 +169,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca head = /obj/item/clothing/head/caphat/bridge_crew uniform = /obj/item/clothing/under/rank/bridge_crew shoes = /obj/item/clothing/shoes/laceup - id = /obj/item/card/id/scc/bridge + id = /obj/item/card/id/silver headset = /obj/item/device/radio/headset/headset_com bowman = /obj/item/device/radio/headset/headset_com/alt diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index c207ec51cb8..eda95e2d7b1 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -368,7 +368,7 @@ uniform = /obj/item/clothing/under/rank/operations_manager shoes = /obj/item/clothing/shoes/sneakers/brown - id = /obj/item/card/id/scc/silver + id = /obj/item/card/id/silver l_hand = /obj/item/clipboard glasses = /obj/item/clothing/glasses/sunglasses diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index c9e3f50ab28..72cbc876a6d 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -40,7 +40,7 @@ uniform = /obj/item/clothing/under/rank/chief_engineer head = /obj/item/clothing/head/hardhat/white belt = /obj/item/storage/belt/utility/ce - id = /obj/item/card/id/scc/silver + id = /obj/item/card/id/silver shoes = null r_pocket = /obj/item/device/t_scanner diff --git a/code/game/jobs/job/hra.dm b/code/game/jobs/job/hra.dm index ddc9b50dd2c..fed103e82fb 100644 --- a/code/game/jobs/job/hra.dm +++ b/code/game/jobs/job/hra.dm @@ -48,9 +48,7 @@ l_pocket = /obj/item/reagent_containers/spray/pepper r_pocket = /obj/item/device/taperecorder/cciaa l_hand = /obj/item/storage/lockbox/cciaa - id = /obj/item/card/id/scc/gold - - + id = /obj/item/card/id/gold backpack_contents = list( /obj/item/modular_computer/laptop/preset/command = 1, diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 3fca603208b..489118bea2f 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -39,7 +39,7 @@ suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo suit_store = /obj/item/device/flashlight/pen shoes = /obj/item/clothing/shoes/sneakers/brown - id = /obj/item/card/id/scc/silver + id = /obj/item/card/id/silver l_hand = /obj/item/storage/firstaid/adv headset = /obj/item/device/radio/headset/heads/cmo diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index e80a1b888b4..e83fb3711c3 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -41,7 +41,7 @@ uniform = /obj/item/clothing/under/rank/research_director suit = /obj/item/clothing/suit/storage/toggle/labcoat/science shoes = /obj/item/clothing/shoes/sneakers/brown - id = /obj/item/card/id/scc/silver + id = /obj/item/card/id/silver l_hand = /obj/item/clipboard headset = /obj/item/device/radio/headset/heads/rd diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 44f9fc93f3b..c80d7ebc0a2 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -40,7 +40,7 @@ uniform = /obj/item/clothing/under/rank/head_of_security head = /obj/item/clothing/head/hos - id = /obj/item/card/id/scc/silver + id = /obj/item/card/id/silver shoes = null glasses = /obj/item/clothing/glasses/sunglasses/sechud/head diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 0130de6c6a8..c391ff424b0 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -26,6 +26,29 @@ drop_sound = 'sound/items/drop/card.ogg' pickup_sound = 'sound/items/pickup/card.ogg' +/obj/item/card/Initialize() + . = ..() + update_icon() + +/obj/item/card/pickup(mob/user) + ..() + update_icon() + +/obj/item/card/dropped(mob/user) + ..() + update_icon() + +/obj/item/card/attack_hand() + ..() + update_icon() + +/obj/item/card/update_icon() + var/matrix/tf = matrix() + if(istype(loc, /obj/item/storage)) + tf.Turn(-90) //Vertical for storing compactly + tf.Translate(-1, 0) //Could do this with pixel_x but let's just update the appearance once. + transform = tf + /obj/item/card/data name = "data disk" desc = "A disk of data." @@ -391,32 +414,12 @@ access = get_all_station_access() | get_all_centcom_access() ..() -// SCC ID cards - -/obj/item/card/id/scc - desc = "A high-tech holocard displaying the credentials of a SCC employee." - icon_state = "bridge_card" - -/obj/item/card/id/scc/bridge - desc = "A high-tech holocard displaying the lowly credentials of a SCC bridge crewman." - icon_state = "bridge_card" - -/obj/item/card/id/scc/silver - desc = "A high-tech holocard displaying the credentials of a SCC command member." - icon_state = "command_card" - -/obj/item/card/id/scc/gold - desc = "A high-tech holocard displaying the intimidating credentials of a SCC employee." - icon_state = "captain_card" - -/obj/item/card/id/scc/gold/captain - desc = "A high-tech holocard displaying the commanding credentials of a SCC captain." - icon_state = "captain_card" - /obj/item/card/id/captains_spare name = "captain's spare identification card" desc = "A captain's spare identification card." - icon_state = "captain_card" + icon_state = "gold" + item_state = "gold_id" + overlay_state = "gold" registered_name = "Captain" assignment = "Captain" @@ -478,12 +481,15 @@ /obj/item/card/id/ccia name = "\improper CentCom. Internal Affairs identification card" - desc = "A high-tech holocard displaying the blood-chilling credentials of an Internal Affairs agent." + desc = "A synthleather ID displaying the blood-chilling credentials of an Internal Affairs agent." icon_state = "ccia" overlay_state = "ccia" drop_sound = /singleton/sound_category/generic_drop_sound pickup_sound = /singleton/sound_category/generic_pickup_sound +/obj/item/card/id/ccia/update_icon() + return + /obj/item/card/id/ccia/id_flash(var/mob/user) var/add_text = "Done with prejudice and professionalism, [user.get_pronoun("he")] means business." var/blind_add_text = "Done with prejudice and professionalism, you mean business." @@ -557,6 +563,9 @@ icon_state = "pmc_card" overlay_state = "pmc_card" +/obj/item/card/distress/ap_eridani/update_icon() + return + /obj/item/card/id/distress/ap_eridani/New() access = get_distress_access() ..() @@ -591,6 +600,9 @@ icon_state = "idris_card" overlay_state = "idris_card" +/obj/item/card/id/idris/update_icon() + return + /obj/item/card/id/idris/sec icon_state = "idrissec_card" overlay_state = "idrissec_card" @@ -601,18 +613,27 @@ icon_state = "iru_card" overlay_state = "iru_card" +/obj/item/card/id/iru/update_icon() + return + /obj/item/card/id/pmc name = "\improper PMCG identification card" desc = "A high-tech holobadge, identifying the owner as a contractor from one of the many PMCs from the Private Military Contracting Group." icon_state = "pmc_card" overlay_state = "pmc_card" +/obj/item/card/id/pmc/update_icon() + return + /obj/item/card/id/zeng_hu name = "\improper Zeng-Hu Pharmaceuticals identification card" desc = "A synthleather card, belonging to one of the highly skilled members of Zeng-Hu." icon_state = "zhu_card" overlay_state = "zhu_card" +/obj/item/card/zeng_hu/update_icon() + return + /obj/item/card/id/hephaestus name = "\improper Hephaestus Industries identification card" desc = "A metal-backed card, belonging to the powerful Hephaestus Industries." diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index f51d4f53ef9..c7a453bcb95 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -357,11 +357,11 @@ /obj/item/storage/proc/slot_orient_objs(var/rows, var/cols, var/list/obj/item/display_contents) var/cx = 4 var/cy = 2+rows - src.boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" + src.boxes.screen_loc = "4:12,2:16 to [4+cols]:16,[2+rows]:16" if(display_contents_with_number) for(var/datum/numbered_display/ND in display_contents) - ND.sample_object.screen_loc = "[cx]:16,[cy]:16" + ND.sample_object.screen_loc = "[cx]:12,[cy]:16" ND.sample_object.maptext = SMALL_FONTS(7, "[(ND.number > 1)? "[ND.number]" : ""]") ND.sample_object.hud_layerise() if(display_contents_initials) @@ -377,14 +377,14 @@ cy-- else for(var/obj/O in contents) - O.screen_loc = "[cx]:16,[cy]:16" + O.screen_loc = "[cx]:12,[cy]:16" O.maptext = "" O.hud_layerise() cx++ if (cx > (4+cols)) cx = 4 cy-- - closer.screen_loc = "[4+cols+1]:16,2:16" + closer.screen_loc = "[4+cols+1]:12,2:16" /obj/item/storage/proc/handle_name_initials(var/sample_name) var/name_initials = "" @@ -395,32 +395,33 @@ /obj/item/storage/proc/space_orient_objs(list/obj/item/display_contents, defer_overlays = FALSE) - // Don't touch these numbers. This works on literal pixel measurements. Unless you want to fix this shit. - var/baseline_max_storage_space = DEFAULT_BACKPACK_STORAGE //should be equal to default backpack capacity + // Don't touch these numbers. This works on literal pixel measurements. Unless you want to fix this shit or change the sprites. var/storage_cap_width = 2 //length of sprite for start and end of the box representing total storage space var/stored_cap_width = 4 //length of sprite for start and end of the box representing the stored item - var/storage_width = min(round(DEFAULT_BACKPACK_STORAGE*8*max_storage_space/baseline_max_storage_space ,1) , DEFAULT_BACKPACK_STORAGE*10) //length of sprite for the box representing total storage space + var/storage_width = (1+stored_cap_width*2)*max_storage_space - 1 //length of sprite for the box representing total storage space, -1px. because no spacing on left for first item. storage_start.ClearOverlays() var/matrix/M = matrix() - M.Scale((storage_width-storage_cap_width*2+11)/32,1) + M.Scale(storage_width / 32,1) storage_continue.transform = M - storage_start.screen_loc = "4:16,2:16" - storage_continue.screen_loc = "4:[round(storage_cap_width+(storage_width-storage_cap_width*2)/2+6)],2:16" - storage_end.screen_loc = "4:[27+storage_width-storage_cap_width],2:16" + storage_start.screen_loc = "4:12,2:16" + storage_continue.screen_loc = "4:[12 - 16 + round((storage_width + storage_cap_width*2) / 2, 1)],2:16" // -16 to center the sprite, since we're 32x32 + storage_end.screen_loc = "4:[12 + storage_cap_width + storage_width],2:16" var/startpoint = 0 - var/endpoint = 1 + var/stored_width = 0 + var/endpoint = 0 - storage_cap_width - 1 storage_start.vis_contents = list() QDEL_LIST(storage_screens) storage_screens = list() for(var/obj/item/O in contents) - startpoint = endpoint + 1 - endpoint = startpoint + storage_width * O.get_storage_cost()/max_storage_space + startpoint = endpoint + stored_cap_width + 1 + stored_width = (9*O.get_storage_cost()-9) + endpoint = startpoint + stored_width + stored_cap_width var/atom/movable/screen/storage/background/stored_start = new /atom/movable/screen/storage/background(null, O, "stored_start") var/matrix/M_start = matrix() @@ -429,26 +430,26 @@ var/atom/movable/screen/storage/background/stored_continue = new /atom/movable/screen/storage/background(null, O, "stored_continue") var/matrix/M_continue = matrix() - M_continue.Scale((endpoint-startpoint-stored_cap_width*2)/32,1) - M_continue.Translate(startpoint+stored_cap_width+(endpoint-startpoint-stored_cap_width*2)/2 - 16,0) + M_continue.Scale(stored_width / 32, 1) + M_continue.Translate(startpoint - 16 + ((stored_width + stored_cap_width*2) / 2), 0) // -16 to center the sprite, since we're 32x32 stored_continue.transform = M_continue var/atom/movable/screen/storage/background/stored_end = new /atom/movable/screen/storage/background(null, O, "stored_end") var/matrix/M_end = matrix() - M_end.Translate(endpoint-stored_cap_width, 0) + M_end.Translate(endpoint, 0) stored_end.transform = M_end storage_screens += list(stored_start, stored_continue, stored_end) storage_start.add_vis_contents(list(stored_start, stored_continue, stored_end)) - O.screen_loc = "4:[round((startpoint+endpoint)/2)],2:16" + O.screen_loc = "4:[startpoint + round(stored_width/2)],2:16" O.maptext = "" O.hud_layerise() if (!defer_overlays) storage_start.UpdateOverlays() - closer.screen_loc = "4:[storage_width+27],2:16" + closer.screen_loc = "4:[12+storage_width+storage_cap_width*2],2:16" return /datum/numbered_display @@ -829,6 +830,9 @@ fill() + for(var/obj/item/I in contents) + I.in_storage = TRUE + if(!allow_quick_empty) verbs -= /obj/item/storage/verb/quick_empty diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index cea66904cb5..efa282696c8 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -156,6 +156,7 @@ if(build_from_parts) color = pick(color_options) AddOverlays(overlay_image(icon, "[initial(icon_state)]_[worn_overlay]", flags=RESET_COLOR)) + update_icon() /obj/item/wirecutters/update_icon() var/matrix/tf = matrix() diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index d7d0f82aae6..5bda4ac9659 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -181,4 +181,4 @@ prefs.toggles_secondary ^= HIDE_ITEM_TOOLTIPS prefs.save_preferences() - to_chat(src, SPAN_NOTICE("Item outlines are now [prefs.toggles_secondary & HIDE_ITEM_TOOLTIPS ? "disabled" : "enabled"].")) + to_chat(src, SPAN_NOTICE("Item tooltips are now [prefs.toggles_secondary & HIDE_ITEM_TOOLTIPS ? "disabled" : "enabled"].")) diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index ee03c771a8c..6d09a777696 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -29,11 +29,30 @@ Firing pins as a rule can't be removed without replacing them, blame a really sh .=..() if(istype(loc, /obj/item/gun)) gun = loc + update_icon() + +/obj/item/device/firing_pin/pickup(mob/user) + ..() + update_icon() + +/obj/item/device/firing_pin/dropped(mob/user) + ..() + update_icon() + +/obj/item/device/firing_pin/attack_hand() + ..() + update_icon() + +/obj/item/firing_pin/update_icon() + var/matrix/tf = matrix() + if(istype(loc, /obj/item/storage)) + tf.Turn(-90) //Vertical for storing compactly + tf.Translate(-1, 0) //Could do this with pixel_x but let's just update the appearance once. + transform = tf /obj/item/device/firing_pin/proc/examine_info() // Part of what allows people to see what firing mode their wireless control pin is in. Returns nothing here if there's no wireless-control firing pin. return - /obj/item/device/firing_pin/afterattack(atom/target, mob/user, proximity_flag) if(proximity_flag) if(istype(target, /obj/item/gun)) diff --git a/html/changelogs/wezzy_Storage-Fixes2.yml b/html/changelogs/wezzy_Storage-Fixes2.yml new file mode 100644 index 00000000000..de2b06462cf --- /dev/null +++ b/html/changelogs/wezzy_Storage-Fixes2.yml @@ -0,0 +1,61 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: Wowzewow (Wezzy) + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixes storage box alignment and storage space UI to use better maths." + - qol: "Tweaks IDs, IDs and firing pins now rotate 90 degrees when in storage for easier clickability." + - bugfix: "Fixes Item Tooltip toggle message." + - bugfix: "Fixes roundstart items in storage not showing item outlines." diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 525630da1834d825fc5fe27bc5600440d2865f81..466da046c5a897af14796787b57ffdfca3938777 100644 GIT binary patch literal 17614 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 literal 18289 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