From f046ebe584ce12e6e3c71d68742253db43b4e243 Mon Sep 17 00:00:00 2001
From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com>
Date: Wed, 12 Mar 2025 17:12:27 +0800
Subject: [PATCH] Borg Bag Fixes and Refactors (#20578)
Fixes #19603
Fixes #20558
- bugfix: "Fixes plant bags - now uses storage_slot system, along with
other bag subtypes."
- bugfix: "Borgs can interact with tables again."
- refactor: "Refactors make_exact_fit to be a binary variable."
- refactor: "Refactors storage items to use make_exact_fit instead of
arbitrary max_storage_space values."
- refactor: "Refactors storage items to use defines for storage space."
- bugfix: "Fixes monkey cube boxes having superfluous overlay."
- rscadd: "Updates the progress bar toggle message."
- qol: "Objects that rotated 90 degrees in storage no longer rotate in
storage slots."
---
code/__DEFINES/inventory.dm | 8 ++-
code/defines/obj/weapon.dm | 8 +--
code/game/objects/items.dm | 3 +-
code/game/objects/items/vaurca.dm | 2 +-
code/game/objects/items/weapons/cards_ids.dm | 3 +-
.../objects/items/weapons/storage/backpack.dm | 20 ++----
.../objects/items/weapons/storage/bags.dm | 20 ++++--
.../objects/items/weapons/storage/belt.dm | 2 +-
.../objects/items/weapons/storage/boxes.dm | 42 +++++-------
.../items/weapons/storage/briefcase.dm | 2 +-
.../objects/items/weapons/storage/fancy.dm | 8 +--
.../items/weapons/storage/field_ration.dm | 2 +-
.../objects/items/weapons/storage/firstaid.dm | 5 +-
.../items/weapons/storage/laundry_basket.dm | 8 +--
.../items/weapons/storage/med_pouch.dm | 2 +-
.../objects/items/weapons/storage/misc.dm | 22 ++-----
.../game/objects/items/weapons/storage/mre.dm | 2 +-
.../items/weapons/storage/pill_bottle.dm | 6 +-
.../objects/items/weapons/storage/secure.dm | 2 +-
.../items/weapons/storage/stickersheets.dm | 2 +-
.../objects/items/weapons/storage/storage.dm | 21 ++++--
code/game/objects/items/weapons/tools.dm | 10 +--
code/modules/cciaa/cciaa_items.dm | 2 +-
code/modules/client/preferences_toggles.dm | 5 +-
.../clothing/under/accessories/storage.dm | 6 +-
code/modules/customitems/item_defines.dm | 2 +-
code/modules/detectivework/tools/crimekit.dm | 2 +-
code/modules/hydroponics/grown.dm | 1 +
code/modules/hydroponics/grown_inedible.dm | 1 +
code/modules/hydroponics/seed_packets.dm | 1 +
code/modules/hydroponics/trays/tray_tools.dm | 5 +-
.../integrated_electronics/core/tools.dm | 5 +-
.../projectiles/guns/launcher/pneumatic.dm | 2 +-
code/modules/projectiles/pins.dm | 3 +-
.../food/snacks/cultural/vaurca.dm | 2 +-
.../food/snacks/processed.dm | 8 +--
.../xenoarchaeology/tools/tools_pickaxe.dm | 4 +-
code/modules/tables/interactions.dm | 6 +-
html/changelogs/wezzy_borg-bag-fixes.yml | 65 +++++++++++++++++++
39 files changed, 183 insertions(+), 137 deletions(-)
create mode 100644 html/changelogs/wezzy_borg-bag-fixes.yml
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index 02ae001efeb..fd6a7de37bf 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -22,6 +22,8 @@
//in exchange for being limited in the w_class of items that will fit
#define BASE_STORAGE_CAPACITY(w_class) (7*(w_class-1))
-#define DEFAULT_BACKPACK_STORAGE BASE_STORAGE_CAPACITY(5)
-#define DEFAULT_LARGEBOX_STORAGE BASE_STORAGE_CAPACITY(4)
-#define DEFAULT_BOX_STORAGE BASE_STORAGE_CAPACITY(3)
+#define DEFAULT_HOLDING_STORAGE BASE_STORAGE_CAPACITY(9)
+#define DEFAULT_DUFFELBAG_STORAGE BASE_STORAGE_CAPACITY(6)
+#define DEFAULT_BACKPACK_STORAGE BASE_STORAGE_CAPACITY(5)
+#define DEFAULT_LARGEBOX_STORAGE BASE_STORAGE_CAPACITY(4)
+#define DEFAULT_BOX_STORAGE BASE_STORAGE_CAPACITY(3)
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 6777559bcb7..f4d19f47a97 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -526,11 +526,11 @@
w_class = WEIGHT_CLASS_HUGE
can_hold = list(/obj/item/stock_parts,/obj/item/reagent_containers/glass/beaker)
storage_slots = 50
- use_to_pickup = 1
- allow_quick_gather = 1
- allow_quick_empty = 1
+ use_to_pickup = TRUE
+ allow_quick_gather = TRUE
+ allow_quick_empty = TRUE
collection_mode = 1
- display_contents_with_number = 1
+ display_contents_with_number = TRUE
max_w_class = WEIGHT_CLASS_NORMAL
max_storage_space = 100
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 3b8eeb77616..e51d897264f 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -19,6 +19,8 @@
var/storage_cost
+ var/storage_slot_sort_by_name = FALSE
+
///Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
var/worn_x_dimension = 32
@@ -223,7 +225,6 @@
///Used to override hardcoded clothing dmis in human clothing pr
var/icon_override
-
var/charge_failure_message = " cannot be recharged."
var/held_maptext
diff --git a/code/game/objects/items/vaurca.dm b/code/game/objects/items/vaurca.dm
index 29ebade9bfb..b849c9e4e3b 100644
--- a/code/game/objects/items/vaurca.dm
+++ b/code/game/objects/items/vaurca.dm
@@ -149,11 +149,11 @@
use_sound = 'sound/items/storage/wrapper.ogg'
open_sound = /singleton/sound_category/rip_sound
open_message = "You tear open the bag, breaking the vacuum seal."
+ make_exact_fit = TRUE
/obj/item/storage/box/fancy/vkrexi_swollen_organ/fill()
new /obj/item/reagent_containers/food/drinks/bottle/skyemok(src)
. = ..()
- make_exact_fit()
/obj/item/storage/box/fancy/vkrexi_swollen_organ/attack_self(mob/user)
open(user)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index c391ff424b0..058a698756d 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -44,7 +44,8 @@
/obj/item/card/update_icon()
var/matrix/tf = matrix()
- if(istype(loc, /obj/item/storage))
+ var/obj/item/storage/S = loc
+ if(istype(S, /obj/item/storage) && !S.storage_slots)
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
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 2265d1c6909..1e909c3ea76 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -140,7 +140,7 @@
icon_state = "holdingpack"
item_state = "holdingpack"
max_w_class = WEIGHT_CLASS_BULKY
- max_storage_space = 56
+ max_storage_space = DEFAULT_HOLDING_STORAGE
storage_cost = 29
empty_delay = 0.8 SECOND
@@ -157,15 +157,6 @@
return 1
return ..()
-/obj/item/storage/backpack/santabag
- name = "\improper Santa's gift bag"
- desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!"
- icon_state = "giftbag0"
- item_state = "giftbag"
- w_class = WEIGHT_CLASS_BULKY
- max_storage_space = 200 // can store a ton of shit!
- empty_delay = 1 SECOND
-
/obj/item/storage/backpack/cultpack
name = "trophy rack"
desc = "It's useful for both carrying extra gear and proudly declaring your insanity."
@@ -395,7 +386,7 @@
icon = 'icons/obj/unathi_items.dmi'
icon_state = "hegemony_satchel"
item_state = "hegemony_satchel"
- max_storage_space = 32
+ max_storage_space = DEFAULT_DUFFELBAG_STORAGE
allow_quick_empty = FALSE // Pouches 'n shit.
/obj/item/storage/backpack/satchel/eng
@@ -563,7 +554,7 @@
w_class = WEIGHT_CLASS_HUGE // to avoid recursive backpacks
slot_flags = SLOT_BACK
max_w_class = WEIGHT_CLASS_NORMAL
- max_storage_space = 20
+ max_storage_space = DEFAULT_LARGEBOX_STORAGE
build_from_parts = TRUE
worn_overlay = "overlay"
@@ -580,7 +571,6 @@
desc = "A small, fashionable bag typically worn over the shoulder."
icon_state = "purse"
item_state = "purse"
- max_storage_space = 16
straps = FALSE
// Duffel Bags
@@ -592,7 +582,7 @@
icon_state = "duffel"
item_state = "duffel"
slowdown = 1
- max_storage_space = 38
+ max_storage_space = DEFAULT_DUFFELBAG_STORAGE
straps = TRUE
/obj/item/storage/backpack/duffel/cap
@@ -926,7 +916,7 @@
contained_sprite = FALSE
w_class = WEIGHT_CLASS_HUGE
slot_flags = SLOT_BACK
- max_storage_space = 12
+ max_storage_space = DEFAULT_BOX_STORAGE
canremove = FALSE
species_restricted = list(BODYTYPE_VAURCA_BREEDER)
sprite_sheets = list(BODYTYPE_VAURCA_BREEDER = 'icons/mob/species/breeder/back.dmi')
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index c6f8db6b713..d7313d6db9b 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -18,10 +18,11 @@
// Generic non-item
/obj/item/storage/bag
- allow_quick_gather = 1
- allow_quick_empty = 1
- display_contents_with_number = 0 // UNStABLE AS FuCK, turn on when it stops crashing clients
- use_to_pickup = 1
+ allow_quick_gather = TRUE
+ allow_quick_empty = TRUE
+ display_contents_with_number = TRUE
+ use_to_pickup = TRUE
+ storage_slots = 7
slot_flags = SLOT_BELT
var/use_deferred = TRUE
icon = 'icons/obj/storage/bags.dmi'
@@ -40,7 +41,8 @@
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_SMALL
- max_storage_space = 56
+ storage_slots = 50
+ max_storage_space = DEFAULT_HOLDING_STORAGE
can_hold = null // any
cant_hold = list(/obj/item/disk/nuclear)
drop_sound = 'sound/items/drop/wrapper.ogg'
@@ -106,6 +108,7 @@
desc = "It's a very flimsy, very noisy alternative to a bag."
icon_state = "plasticbag"
item_state = "plasticbag"
+ storage_slots = null
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_SMALL
can_hold = null // any
@@ -122,11 +125,15 @@
desc = "For storing your stems, seeds, buds, and any other illicit substances."
icon_state = "plantbag"
item_state = "plantbag"
+ storage_slots = 50
max_storage_space = 100
max_w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_SMALL
can_hold = list(/obj/item/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/grown)
+/obj/item/storage/bag/plants/full
+ starts_with = list(/obj/random_produce/box = 50)
+
// -----------------------------
// Sheet Snatcher
// -----------------------------
@@ -142,7 +149,7 @@
w_class = WEIGHT_CLASS_NORMAL
storage_slots = 7
- allow_quick_empty = 1 // this function is superceded
+ allow_quick_empty = TRUE // this function is superceded
use_deferred = FALSE
/obj/item/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W as obj, stop_messages = 0)
@@ -303,7 +310,6 @@
name = "book bag"
desc = "A bag for books."
icon_state = "bookbag"
- storage_slots = 7
max_storage_space = 200
max_w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 4215679b180..ca0c62c9447 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -423,7 +423,7 @@
item_state = "militarybelt"
storage_slots = 9 //same as a combat belt now
max_w_class = WEIGHT_CLASS_NORMAL
- max_storage_space = 28
+ max_storage_space = DEFAULT_BACKPACK_STORAGE
can_hold = list(
/obj/item/grenade,
/obj/item/handcuffs,
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index f4c85830a6e..3b716ef5028 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -454,10 +454,7 @@
name = "box of tethering devices"
desc = "A box containing eight electro-tethers, used primarily to keep track of partners during expeditions."
starts_with = list(/obj/item/tethering_device = 8)
-
-/obj/item/storage/box/tethers/fill()
- ..()
- make_exact_fit()
+ make_exact_fit = TRUE
/obj/item/storage/box/teargas
name = "box of pepperspray grenades"
@@ -609,7 +606,7 @@
/obj/item/storage/box/janitorgloves
name = "janitorial gloves box"
desc = "A box full of janitorial gloves of all shapes and sizes."
- max_storage_space = 4
+ make_exact_fit = TRUE
can_hold = list(
/obj/item/clothing/gloves/janitor
)
@@ -626,10 +623,10 @@
desc_extended = "The manufacture of a cubed animal produces subjects that are similar but have marked differences compared to their ordinary cousins. Higher brain functions are all but destroyed \
and the life expectancy of the cubed animal is greatly reduced, with most expiring only a few days after introduction with water."
icon_state = "monkeycubebox"
+ illustration = null
can_hold = list(/obj/item/reagent_containers/food/snacks/monkeycube)
starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped = 5)
-
/obj/item/storage/box/monkeycubes/farwacubes
name = "farwa cube box"
desc = "Drymate brand farwa cubes, shipped from Adhomai. Just add water!"
@@ -716,11 +713,8 @@
name = "box of replacement bulbs"
illustration = "light"
desc = "This box is shaped on the inside so that only light tubes and bulbs fit."
- use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
-
-/obj/item/storage/box/lights/Initialize() // TODO-STORAGE: Initialize()?
- . = ..()
- make_exact_fit()
+ use_to_pickup = TRUE // for picking up broken bulbs, not that most people will try
+ make_exact_fit = TRUE
/obj/item/storage/box/lights/bulbs
starts_with = list(/obj/item/light/bulb = 21)
@@ -918,10 +912,7 @@
icon_state = "largebox"
illustration = "fruit"
starts_with = list(/obj/random_produce/box = 15)
-
-/obj/item/storage/box/produce/fill()
- . = ..()
- make_exact_fit()
+ make_exact_fit = TRUE
/obj/item/storage/box/candy
@@ -929,6 +920,7 @@
desc = "A large box of assorted small candy."
icon_state = "largebox"
illustration = "writing_large"
+ make_exact_fit = TRUE
/obj/item/storage/box/candy/fill()
var/list/assorted_list = list(
@@ -948,8 +940,6 @@
var/chosen_candy = pickweight(assorted_list)
new chosen_candy(src)
- make_exact_fit()
-
/obj/item/storage/box/crabmeat
name = "box of crab legs"
@@ -1072,7 +1062,7 @@
illustration = null
icon_state = "sharpsbox"
use_sound = 'sound/items/storage/briefcase.ogg'
- max_storage_space = 20
+ max_storage_space = DEFAULT_LARGEBOX_STORAGE
chewable = FALSE
foldable = null
@@ -1084,7 +1074,7 @@
/obj/item/storage/box/aggression
desc_antag = "This box contains various implants that will make their owners increasingly aggressive."
illustration = "implant"
- max_storage_space = 12
+ max_storage_space = DEFAULT_BOX_STORAGE
starts_with = list(/obj/item/implantcase/aggression = 6, /obj/item/implanter = 1, /obj/item/implantpad = 1)
/obj/item/storage/box/encryption_key
@@ -1213,7 +1203,7 @@
icon_state = "largebox"
illustration = "flare"
foldable = FALSE
- max_storage_space = 12
+ max_storage_space = DEFAULT_BOX_STORAGE
can_hold = list(
/obj/item/device/flashlight/flare
)
@@ -1228,7 +1218,7 @@
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_NORMAL
foldable = FALSE
- max_storage_space = 16
+ max_storage_space = DEFAULT_BOX_STORAGE
can_hold = list(
/obj/item/device/magnetic_lock
)
@@ -1241,7 +1231,7 @@
name = "power cell box"
desc = "A box full of power cells."
foldable = FALSE
- max_storage_space = 6
+ make_exact_fit = TRUE
can_hold = list(
/obj/item/cell
)
@@ -1281,19 +1271,17 @@
desc = "A box of advanced formula chemical tablets designed by Idris Incorporated."
desc_extended = "A new generation of cleaning chemicals, according to Idris at least. The instructions on the box reads: \"Dissolve tablet fully in container of water\". A warning label mentions that you should not consume the tablets nor drink the mixture after dissolving them."
illustration = "soapbucket"
- max_storage_space = 16
starts_with = list(
/obj/item/reagent_containers/pill/cleaner_tablet = 16
)
+ make_exact_fit = TRUE
/obj/item/storage/box/led_collars
name = "box of LED collars"
desc = "A box containing eight LED collars, usually worn around the neck of the voidsuit."
starts_with = list(/obj/item/clothing/accessory/led_collar = 8)
+ make_exact_fit = TRUE
-/obj/item/storage/box/led_collars/fill()
- ..()
- make_exact_fit()
/obj/item/storage/box/traps/punji
name = "box of punji traps"
desc = "A box containing 5 punji traps."
@@ -1328,7 +1316,7 @@
drop_sound = 'sound/items/drop/metal_pot.ogg'
pickup_sound = 'sound/items/drop/metal_pot.ogg'
contained_sprite = TRUE
- max_storage_space = 1
+ make_exact_fit = TRUE
can_hold = list(
/obj/item/reagent_containers/food/snacks/grown/konyang_tea
)
diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm
index 10124048450..cfe741dc45c 100644
--- a/code/game/objects/items/weapons/storage/briefcase.dm
+++ b/code/game/objects/items/weapons/storage/briefcase.dm
@@ -11,7 +11,7 @@
throw_range = 4
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_NORMAL
- max_storage_space = 16
+ max_storage_space = DEFAULT_LARGEBOX_STORAGE
use_sound = 'sound/items/storage/briefcase.ogg'
drop_sound = 'sound/items/drop/backpack.ogg'
pickup_sound = 'sound/items/pickup/backpack.ogg'
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index ce40310ab30..51de635827c 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -95,6 +95,7 @@
center_of_mass = list("x" = 16,"y" = 9)
can_hold = list(/obj/item/reagent_containers/food/snacks/donut)
starts_with = list(/obj/item/reagent_containers/food/snacks/donut/normal = 6)
+ max_storage_space = DEFAULT_BOX_STORAGE
storage_slots = 6
icon_overlays = FALSE
foldable = /obj/item/stack/material/cardboard
@@ -110,7 +111,6 @@
/obj/item/storage/box/fancy/donut/empty
starts_with = null
- max_storage_space = 12
/*
* Egg Box
@@ -455,7 +455,7 @@
pickup_sound = 'sound/items/pickup/toolbox.ogg'
max_w_class = WEIGHT_CLASS_SMALL
can_hold = list(/obj/item/reagent_containers/glass/beaker/vial)
- max_storage_space = 12 //The sum of the w_classes of all the items in this storage item.
+ make_exact_fit = TRUE
storage_slots = 6
req_access = list(ACCESS_VIROLOGY)
@@ -756,7 +756,7 @@
pickup_sound = 'sound/items/pickup/bottle.ogg'
storage_type = "glass"
storage_slots = 20
- max_storage_space = 20
+ max_storage_space = DEFAULT_LARGEBOX_STORAGE
can_hold = list(
/obj/item/reagent_containers/food/snacks/cakepopselection
)
@@ -827,7 +827,7 @@
icon_type = "chocolate praline"
contained_sprite = TRUE
storage_slots = 10
- max_storage_space = 10
+ make_exact_fit = TRUE
drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
can_hold = list(
diff --git a/code/game/objects/items/weapons/storage/field_ration.dm b/code/game/objects/items/weapons/storage/field_ration.dm
index af6e3a69eb7..d7c590c4ab1 100644
--- a/code/game/objects/items/weapons/storage/field_ration.dm
+++ b/code/game/objects/items/weapons/storage/field_ration.dm
@@ -7,12 +7,12 @@
modern rations are issued to all branches of the Republic's military. Native field meals are composed of salt-cured Fatshouters's meat, bread and Victory Gin, while imported ones \
are commonly found in the form of LiquidFood rations, a less than popular alternative manufactured by NanoTrasen."
var/preset_ration //if the package comes with one in particular, not a random
+ make_exact_fit = TRUE
/obj/item/storage/field_ration/fill()
..()
new /obj/item/material/kitchen/utensil/spoon(src)
create_ration()
- make_exact_fit()
/obj/item/storage/field_ration/proc/create_ration()
var/selected_ration = preset_ration
diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm
index 6853de332e0..c5c542ca996 100644
--- a/code/game/objects/items/weapons/storage/firstaid.dm
+++ b/code/game/objects/items/weapons/storage/firstaid.dm
@@ -188,10 +188,7 @@
/obj/item/stack/medical/advanced/bruise_pack = 1,
/obj/item/reagent_containers/inhaler/soporific = 2
)
-
-/obj/item/storage/firstaid/surgery/fill()
- . = ..()
- make_exact_fit()
+ make_exact_fit = TRUE
/obj/item/storage/firstaid/trauma
name = "trauma first-aid kit"
diff --git a/code/game/objects/items/weapons/storage/laundry_basket.dm b/code/game/objects/items/weapons/storage/laundry_basket.dm
index 988d65ece6b..c4723023327 100644
--- a/code/game/objects/items/weapons/storage/laundry_basket.dm
+++ b/code/game/objects/items/weapons/storage/laundry_basket.dm
@@ -12,11 +12,11 @@
w_class = WEIGHT_CLASS_HUGE
max_w_class = WEIGHT_CLASS_BULKY
- max_storage_space = 25 //20 for clothes + a bit of additional space for non-clothing items that were worn on body
+ max_storage_space = DEFAULT_BACKPACK_STORAGE
storage_slots = 14
- use_to_pickup = 1
- allow_quick_empty = 1
- allow_quick_gather = 1
+ use_to_pickup = TRUE
+ allow_quick_empty = TRUE
+ allow_quick_gather = TRUE
collection_mode = 1
var/linked
diff --git a/code/game/objects/items/weapons/storage/med_pouch.dm b/code/game/objects/items/weapons/storage/med_pouch.dm
index dc34261a966..559f704f1a5 100644
--- a/code/game/objects/items/weapons/storage/med_pouch.dm
+++ b/code/game/objects/items/weapons/storage/med_pouch.dm
@@ -28,11 +28,11 @@ Single Use Emergency Pouches
icon_overlays = FALSE
closable = FALSE
var/injury_type = "generic"
+ make_exact_fit = TRUE
/obj/item/storage/box/fancy/med_pouch/Initialize()
. = ..()
name = "emergency [injury_type] pouch"
- make_exact_fit()
for(var/obj/item/reagent_containers/pill/P in contents)
P.color = color
diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm
index 408941832c0..b81fad9cfc7 100644
--- a/code/game/objects/items/weapons/storage/misc.dm
+++ b/code/game/objects/items/weapons/storage/misc.dm
@@ -67,15 +67,11 @@
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
w_class = WEIGHT_CLASS_TINY
- max_storage_space = 10
+ make_exact_fit = TRUE
throwforce = 2
slot_flags = SLOT_BELT
starts_with = list(/obj/item/paper/cig = 10)
-
-/obj/item/storage/box/fancy/cigpaper/Initialize()
- . = ..()
-
- make_exact_fit()
+ make_exact_fit = TRUE
/obj/item/storage/box/fancy/cigpaper/update_icon()
. = ..()
@@ -99,11 +95,7 @@
drop_sound = 'sound/items/drop/gloves.ogg'
pickup_sound = 'sound/items/pickup/gloves.ogg'
use_sound = 'sound/items/storage/wrapper.ogg'
-
-/obj/item/storage/cigfilter/Initialize(mapload, defer_shrinkwrap)
- . = ..()
-
- make_exact_fit()
+ make_exact_fit = TRUE
/obj/item/storage/box/fancy/cigpaper/fine
name = "\improper Trident cigarette paper"
@@ -131,11 +123,7 @@
throwforce = 2
slot_flags = SLOT_BELT
starts_with = list(/obj/item/clothing/mask/chewable/tobacco = 6)
-
-/obj/item/storage/chewables/Initialize(mapload, defer_shrinkwrap)
- . = ..()
-
- make_exact_fit()
+ make_exact_fit = TRUE
/obj/item/storage/chewables/tobacco/bad
name = "can of Rredouane Cuts chewing tobacco"
@@ -154,7 +142,6 @@
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/generic = 6)
- storage_slots = 6
/obj/item/storage/chewables/tobacco/fine
name = "tin of Taba-Kamu chewing tobacco"
@@ -206,7 +193,6 @@
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
w_class = WEIGHT_CLASS_TINY
- max_storage_space = 8
drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
use_sound = 'sound/items/storage/box.ogg'
diff --git a/code/game/objects/items/weapons/storage/mre.dm b/code/game/objects/items/weapons/storage/mre.dm
index 8d562af5250..b1a96990286 100644
--- a/code/game/objects/items/weapons/storage/mre.dm
+++ b/code/game/objects/items/weapons/storage/mre.dm
@@ -26,11 +26,11 @@ MRE Stuff
/obj/item/reagent_containers/food/condiment/small/packet/capsaicin = 1,
/obj/item/material/kitchen/utensil/fork/plastic = 1
)
+ make_exact_fit = TRUE
/obj/item/storage/box/fancy/mre/fill()
new main_meal(src)
. = ..()
- make_exact_fit()
/obj/item/storage/mre/attack_self(mob/user)
open(user)
diff --git a/code/game/objects/items/weapons/storage/pill_bottle.dm b/code/game/objects/items/weapons/storage/pill_bottle.dm
index d796d4d503c..f03c4fc29f6 100644
--- a/code/game/objects/items/weapons/storage/pill_bottle.dm
+++ b/code/game/objects/items/weapons/storage/pill_bottle.dm
@@ -8,12 +8,12 @@
center_of_mass = list("x" = 16,"y" = 12)
w_class = WEIGHT_CLASS_SMALL
can_hold = list(/obj/item/reagent_containers/pill,/obj/item/stack/dice,/obj/item/paper)
- allow_quick_gather = 1
- use_to_pickup = 1
+ allow_quick_gather = TRUE
+ use_to_pickup = TRUE
use_sound = 'sound/items/storage/pillbottle.ogg'
drop_sound = 'sound/items/drop/pillbottle.ogg'
pickup_sound = 'sound/items/pickup/pillbottle.ogg'
- max_storage_space = 16
+ max_storage_space = DEFAULT_BOX_STORAGE
/obj/item/storage/pill_bottle/attack_self(mob/living/user)
if(user.get_inactive_hand())
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index e92a50ae4eb..cce402709f0 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -25,7 +25,7 @@ ABSTRACT_TYPE(/obj/item/storage/secure)
var/open = 0
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_NORMAL
- max_storage_space = 16
+ max_storage_space = DEFAULT_BOX_STORAGE
use_sound = 'sound/items/storage/briefcase.ogg'
/obj/item/storage/secure/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
diff --git a/code/game/objects/items/weapons/storage/stickersheets.dm b/code/game/objects/items/weapons/storage/stickersheets.dm
index 079c92ad973..0610c07cd08 100644
--- a/code/game/objects/items/weapons/storage/stickersheets.dm
+++ b/code/game/objects/items/weapons/storage/stickersheets.dm
@@ -11,7 +11,7 @@
throw_range = 2
w_class = WEIGHT_CLASS_SMALL
max_w_class = WEIGHT_CLASS_TINY
- max_storage_space = 12
+ max_storage_space = DEFAULT_BOX_STORAGE
can_hold = list(
/obj/item/sticker
)
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index c7a453bcb95..62a5e7584e3 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -84,6 +84,8 @@
///Boolean, whether or not we should have the squish animation when inserting and removing objects
var/animated = TRUE
+ var/make_exact_fit = FALSE
+
/obj/item/storage/Destroy()
close_all()
QDEL_NULL(boxes)
@@ -398,7 +400,7 @@
// 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 = (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.
+ var/storage_width = min(((1+stored_cap_width*2)*max_storage_space - 1),((1+stored_cap_width*2)*DEFAULT_DUFFELBAG_STORAGE - 1)) //length of sprite for the box representing total storage space, -1px. because no spacing on left for first item.
storage_start.ClearOverlays()
@@ -442,7 +444,7 @@
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:[startpoint + round(stored_width/2)],2:16"
+ O.screen_loc = "4:[round(startpoint + round(stored_width/2))],2:16"
O.maptext = ""
O.hud_layerise()
@@ -473,11 +475,16 @@
numbered_contents = list()
adjusted_contents = 0
for(var/obj/item/I in contents)
- var/found = 0
+ var/found = FALSE
for(var/datum/numbered_display/ND in numbered_contents)
- if(ND.sample_object.type == I.type)
+ if(ND.sample_object.storage_slot_sort_by_name)
+ if(ND.sample_object.name == I.name)
+ ND.number++
+ found = TRUE
+ break
+ else if(ND.sample_object.type == I.type)
ND.number++
- found = 1
+ found = TRUE
break
if(!found)
adjusted_contents++
@@ -700,7 +707,6 @@
if (user.s_active)
user.s_active.show_to(user)
- // who knows what the fuck this does
if (istype(src, /obj/item/storage/box/fancy))
update_icon(1)
else
@@ -830,6 +836,9 @@
fill()
+ if(make_exact_fit)
+ make_exact_fit()
+
for(var/obj/item/I in contents)
I.in_storage = TRUE
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index efa282696c8..3f9763d365d 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -79,9 +79,10 @@
/obj/item/screwdriver/update_icon()
var/matrix/tf = matrix()
- if(istype(loc, /obj/item/storage))
+ var/obj/item/storage/S = loc
+ if(istype(S, /obj/item/storage) && !S.storage_slots)
tf.Turn(-90) //Vertical for storing compactly
- tf.Translate(-3,0) //Could do this with pixel_x but let's just update the appearance once.
+ tf.Translate(-1, 0) //Could do this with pixel_x but let's just update the appearance once.
transform = tf
/obj/item/screwdriver/get_belt_overlay()
@@ -160,9 +161,10 @@
/obj/item/wirecutters/update_icon()
var/matrix/tf = matrix()
- if(istype(loc, /obj/item/storage))
+ var/obj/item/storage/S = loc
+ if(istype(S, /obj/item/storage) && !S.storage_slots)
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.
+ tf.Translate(-1, 0) //Could do this with pixel_x but let's just update the appearance once.
transform = tf
/obj/item/wirecutters/get_belt_overlay()
diff --git a/code/modules/cciaa/cciaa_items.dm b/code/modules/cciaa/cciaa_items.dm
index 7f5eba21a24..a621a000ded 100644
--- a/code/modules/cciaa/cciaa_items.dm
+++ b/code/modules/cciaa/cciaa_items.dm
@@ -359,7 +359,7 @@
name = "CCIA agent briefcase"
desc = "A smart looking briefcase with an SCC logo on the side."
storage_slots = 8
- max_storage_space = 16
+ max_storage_space = DEFAULT_LARGEBOX_STORAGE
/obj/item/storage/lockbox/cciaa/bssb
name = "BSSB agent briefcase"
diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm
index 97055d985ab..2308f7d1008 100644
--- a/code/modules/client/preferences_toggles.dm
+++ b/code/modules/client/preferences_toggles.dm
@@ -151,10 +151,7 @@
prefs.toggles_secondary ^= PROGRESS_BARS
prefs.save_preferences()
- if (prefs.toggles_secondary & PROGRESS_BARS)
- to_chat(src, "You will now see progress bars on delayed actions.")
- else
- to_chat(src, "You will no longer see progress bars on delayed actions.")
+ to_chat(src, SPAN_NOTICE("Progress bars are now [prefs.toggles_secondary & PROGRESS_BARS ? "enabled" : "disabled"]."))
/client/verb/toggle_floating_messages()
set name = "Toggle Floating Messages"
diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm
index a5854b77574..47773985549 100644
--- a/code/modules/clothing/under/accessories/storage.dm
+++ b/code/modules/clothing/under/accessories/storage.dm
@@ -11,7 +11,7 @@
. = ..()
hold = new/obj/item/storage/internal(src)
hold.storage_slots = slots
- hold.max_storage_space = 12
+ hold.max_storage_space = DEFAULT_BOX_STORAGE
hold.max_w_class = WEIGHT_CLASS_SMALL
/obj/item/clothing/accessory/storage/attack_hand(mob/user as mob)
@@ -183,7 +183,7 @@
/obj/item/clothing/accessory/storage/knifeharness/Initialize()
. = ..()
- hold.max_storage_space = 4
+ hold.max_storage_space = BASE_STORAGE_COST(WEIGHT_CLASS_NORMAL)
hold.can_hold = list(
/obj/item/material/hatchet/unathiknife,
/obj/item/material/kitchen/utensil/knife,
@@ -203,7 +203,7 @@
/obj/item/clothing/accessory/storage/bayonet/Initialize()
. = ..()
- hold.max_storage_space = 4
+ hold.max_storage_space = BASE_STORAGE_COST(WEIGHT_CLASS_NORMAL)
hold.max_w_class = WEIGHT_CLASS_NORMAL
hold.can_hold = list(
/obj/item/material/knife/bayonet
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 7740c4db21c..61ae1d8cac4 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -533,12 +533,12 @@ All custom items with worn sprites must follow the contained sprite system: http
icon_state = "thea_teabox"
foldable = null
can_hold = list(/obj/item/reagent_containers/glass/beaker/teapot/fluff/thea_teapot, /obj/item/reagent_containers/food/drinks/fluff/thea_teacup)
+ make_exact_fit = TRUE
/obj/item/storage/box/fluff/thea_teabox/fill()
new /obj/item/reagent_containers/glass/beaker/teapot/fluff/thea_teapot(src)
for(var/i in 1 to 4)
new /obj/item/reagent_containers/food/drinks/fluff/thea_teacup(src)
- make_exact_fit()
/obj/item/fluff/fraseq_journal //Fraseq's Journal of Mysteries - Quorrdash Fraseq - kingoftheping
name = "leather journal"
diff --git a/code/modules/detectivework/tools/crimekit.dm b/code/modules/detectivework/tools/crimekit.dm
index 43483a08fac..3b8fef0a5f5 100644
--- a/code/modules/detectivework/tools/crimekit.dm
+++ b/code/modules/detectivework/tools/crimekit.dm
@@ -6,7 +6,7 @@
icon_state = "case"
item_state = "case"
storage_slots = 14
- max_storage_space = 35
+ max_storage_space = DEFAULT_DUFFELBAG_STORAGE
contained_sprite = 1
use_sound = 'sound/items/storage/toolbox.ogg'
drop_sound = 'sound/items/drop/toolbox.ogg'
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index e1aa557917e..feed1d20dc3 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -9,6 +9,7 @@
drop_sound = 'sound/items/drop/herb.ogg'
pickup_sound = 'sound/items/pickup/herb.ogg'
+ storage_slot_sort_by_name = TRUE
var/plantname
var/datum/seed/seed
var/potency = -1
diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm
index adae5eb0b26..9f399ded2e4 100644
--- a/code/modules/hydroponics/grown_inedible.dm
+++ b/code/modules/hydroponics/grown_inedible.dm
@@ -9,6 +9,7 @@
slot_l_hand_str = 'icons/mob/items/lefthand_grown.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_grown.dmi',
)
+ storage_slot_sort_by_name = TRUE
var/plantname
var/potency = 1
diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm
index f939471e75c..072a1d7a677 100644
--- a/code/modules/hydroponics/seed_packets.dm
+++ b/code/modules/hydroponics/seed_packets.dm
@@ -7,6 +7,7 @@ GLOBAL_LIST_EMPTY(plant_seed_sprites)
icon_state = "random"
w_class = WEIGHT_CLASS_SMALL
+ storage_slot_sort_by_name = TRUE
var/seed_type
var/datum/seed/seed
var/modified = 0
diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm
index 831bd6407e1..4e7379bb7d0 100644
--- a/code/modules/hydroponics/trays/tray_tools.dm
+++ b/code/modules/hydroponics/trays/tray_tools.dm
@@ -15,9 +15,10 @@
/obj/item/wirecutters/clippers/update_icon()
var/matrix/tf = matrix()
- if(istype(loc, /obj/item/storage))
+ var/obj/item/storage/S = loc
+ if(istype(S, /obj/item/storage) && !S.storage_slots)
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.
+ tf.Translate(-1, 0) //Could do this with pixel_x but let's just update the appearance once.
transform = tf
/obj/item/device/analyzer/plant_analyzer
diff --git a/code/modules/integrated_electronics/core/tools.dm b/code/modules/integrated_electronics/core/tools.dm
index 381d3abe7ad..a0828b5be74 100644
--- a/code/modules/integrated_electronics/core/tools.dm
+++ b/code/modules/integrated_electronics/core/tools.dm
@@ -231,6 +231,7 @@
/obj/item/screwdriver,
/obj/item/device/multitool
)
+ make_exact_fit = TRUE
/obj/item/storage/bag/circuits/basic/fill()
new /obj/item/storage/bag/circuits/mini/arithmetic(src)
@@ -251,7 +252,6 @@
new /obj/item/device/multitool(src)
new /obj/item/screwdriver(src)
new /obj/item/crowbar(src)
- make_exact_fit()
/obj/item/storage/bag/circuits/all/fill()
..()
@@ -276,7 +276,6 @@
new /obj/item/device/integrated_electronics/wirer(src)
new /obj/item/device/integrated_electronics/debugger(src)
new /obj/item/crowbar(src)
- make_exact_fit()
/obj/item/storage/bag/circuits/mini
name = "circuit box"
@@ -298,8 +297,6 @@
for (var/i in 1 to 4)
new IC.type(src)
- make_exact_fit()
-
/obj/item/storage/bag/circuits/mini/arithmetic
name = "arithmetic circuit box"
desc = "Warning: Contains math."
diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm
index de7d2f55829..455a4a032b6 100644
--- a/code/modules/projectiles/guns/launcher/pneumatic.dm
+++ b/code/modules/projectiles/guns/launcher/pneumatic.dm
@@ -14,7 +14,7 @@
var/fire_pressure // Used in fire checks/pressure checks.
var/max_w_class = WEIGHT_CLASS_NORMAL // Hopper intake size.
- var/max_storage_space = 20 // Total internal storage size.
+ var/max_storage_space = DEFAULT_LARGEBOX_STORAGE // Total internal storage size.
var/obj/item/tank/tank = null // Tank of gas for use in firing the cannon.
var/obj/item/storage/item_storage
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 6d09a777696..22c390e84df 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -45,7 +45,8 @@ Firing pins as a rule can't be removed without replacing them, blame a really sh
/obj/item/firing_pin/update_icon()
var/matrix/tf = matrix()
- if(istype(loc, /obj/item/storage))
+ var/obj/item/storage/S = loc
+ if(istype(S, /obj/item/storage) && !S.storage_slots)
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
diff --git a/code/modules/reagents/reagent_containers/food/snacks/cultural/vaurca.dm b/code/modules/reagents/reagent_containers/food/snacks/cultural/vaurca.dm
index 36b0ad10193..6ce9c55aaad 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/cultural/vaurca.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/cultural/vaurca.dm
@@ -151,7 +151,7 @@
storage_type = "packaging"
starts_with = list(/obj/item/reagent_containers/food/snacks/vkrexitaffy = 6)
can_hold = list(/obj/item/reagent_containers/food/snacks/vkrexitaffy)
- max_storage_space = 6
+ make_exact_fit = TRUE
use_sound = 'sound/items/storage/wrapper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
diff --git a/code/modules/reagents/reagent_containers/food/snacks/processed.dm b/code/modules/reagents/reagent_containers/food/snacks/processed.dm
index db44d1cce0c..7aa0ef6cd1e 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/processed.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/processed.dm
@@ -383,7 +383,7 @@
storage_type = "packaging"
starts_with = list(/obj/item/reagent_containers/food/snacks/cookiesnack = 6)
can_hold = list(/obj/item/reagent_containers/food/snacks/cookiesnack)
- max_storage_space = 6
+ make_exact_fit = TRUE
use_sound = 'sound/items/storage/wrapper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
@@ -417,7 +417,7 @@
w_class = WEIGHT_CLASS_TINY
starts_with = list(/obj/item/clothing/mask/chewable/candy/gum = 5)
can_hold = list(/obj/item/clothing/mask/chewable/candy/gum, /obj/item/trash/spitgum)
- max_storage_space = 5
+ make_exact_fit = TRUE
use_sound = 'sound/items/storage/wrapper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
@@ -456,7 +456,7 @@
w_class = WEIGHT_CLASS_TINY
starts_with = list(/obj/item/reagent_containers/food/snacks/mint/admints = 6)
can_hold = list(/obj/item/reagent_containers/food/snacks/mint/admints)
- max_storage_space = 6
+ make_exact_fit = TRUE
use_sound = 'sound/items/storage/wrapper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
@@ -809,7 +809,7 @@
storage_type = "packaging"
starts_with = list(/obj/item/reagent_containers/food/snacks/foy = 6)
can_hold = list(/obj/item/reagent_containers/food/snacks/foy)
- max_storage_space = 6
+ make_exact_fit = TRUE
use_sound = 'sound/items/storage/wrapper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm
index 86f8105023f..73031f95c40 100644
--- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm
+++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm
@@ -172,9 +172,9 @@
/obj/item/pickaxe/four_pick,\
/obj/item/pickaxe/five_pick,\
/obj/item/pickaxe/six_pick)
- max_storage_space = 18
+ make_exact_fit = TRUE
max_w_class = WEIGHT_CLASS_NORMAL
- use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
+ use_to_pickup = TRUE // for picking up broken bulbs, not that most people will try
/obj/item/storage/box/excavation/fill()
..()
diff --git a/code/modules/tables/interactions.dm b/code/modules/tables/interactions.dm
index 56a7caf74d1..557fed5e661 100644
--- a/code/modules/tables/interactions.dm
+++ b/code/modules/tables/interactions.dm
@@ -239,9 +239,6 @@
to_chat(user, SPAN_WARNING("You need a better grip to do that!"))
return
- if(!attacking_item.dropsafety())
- return
-
if(reinforced && attacking_item.isscrewdriver())
remove_reinforced(attacking_item, user)
if(!reinforced)
@@ -340,6 +337,9 @@
health = maxhealth
visible_message("[user] repairs \the [src].", SPAN_NOTICE("You repair \the [src]."))
+ if(!attacking_item.dropsafety())
+ return
+
// Placing stuff on tables
if(user.unEquip(attacking_item, 0, loc)) //Loc is intentional here so we don't forceMove() items into oblivion
user.make_item_drop_sound(attacking_item)
diff --git a/html/changelogs/wezzy_borg-bag-fixes.yml b/html/changelogs/wezzy_borg-bag-fixes.yml
new file mode 100644
index 00000000000..4ed17fd6041
--- /dev/null
+++ b/html/changelogs/wezzy_borg-bag-fixes.yml
@@ -0,0 +1,65 @@
+################################
+# 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 plant bags - now uses storage_slot system, along with other bag subtypes."
+ - bugfix: "Borgs can interact with tables again."
+ - refactor: "Refactors make_exact_fit to be a binary variable."
+ - refactor: "Refactors storage items to use make_exact_fit instead of arbitrary max_storage_space values."
+ - refactor: "Refactors storage items to use defines for storage space."
+ - bugfix: "Fixes monkey cube boxes having superfluous overlay."
+ - rscadd: "Updates the progress bar toggle message."
+ - qol: "Objects that rotated 90 degrees in storage no longer rotate in storage slots."