diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 78941d83428..f25b5e6c255 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -462,8 +462,7 @@
name = "Diskette Box"
icon_state = "disk_kit"
-/obj/item/weapon/storage/box/disks/New()
- ..()
+/obj/item/weapon/storage/box/disks/fill()
new /obj/item/weapon/disk/data(src)
new /obj/item/weapon/disk/data(src)
new /obj/item/weapon/disk/data(src)
diff --git a/code/game/mecha/equipment/tracking_beacon.dm b/code/game/mecha/equipment/tracking_beacon.dm
index dc97eb88d1b..42ab1239500 100644
--- a/code/game/mecha/equipment/tracking_beacon.dm
+++ b/code/game/mecha/equipment/tracking_beacon.dm
@@ -136,8 +136,7 @@
/obj/item/weapon/storage/box/mechabeacons
name = "Exosuit Control Beacons"
-/obj/item/weapon/storage/box/mechabeacons/New()
- ..()
+/obj/item/weapon/storage/box/mechabeacons/fill()
new /obj/item/mecha_parts/mecha_tracking/control(src)
new /obj/item/mecha_parts/mecha_tracking/control(src)
new /obj/item/mecha_parts/mecha_tracking/control(src)
diff --git a/code/game/objects/items/contraband.dm b/code/game/objects/items/contraband.dm
index cc67c595176..3d3f6645063 100644
--- a/code/game/objects/items/contraband.dm
+++ b/code/game/objects/items/contraband.dm
@@ -5,7 +5,7 @@
name = "bottle of Happy pills"
desc = "Highly illegal drug. When you want to see the rainbow."
-/obj/item/weapon/storage/pill_bottle/happy/New()
+/obj/item/weapon/storage/pill_bottle/happy/fill()
..()
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
@@ -19,7 +19,7 @@
name = "bottle of Zoom pills"
desc = "Highly illegal drug. Trade brain for speed."
-/obj/item/weapon/storage/pill_bottle/zoom/New()
+/obj/item/weapon/storage/pill_bottle/zoom/fill()
..()
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 114aabf3f8d..57181fef64c 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -55,7 +55,7 @@
)
-/obj/item/weapon/storage/belt/utility/full/New()
+/obj/item/weapon/storage/belt/utility/full/fill()
..()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
@@ -65,7 +65,7 @@
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
-/obj/item/weapon/storage/belt/utility/atmostech/New()
+/obj/item/weapon/storage/belt/utility/atmostech/fill()
..()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
@@ -154,7 +154,7 @@
/obj/item/device/soulstone
)
-/obj/item/weapon/storage/belt/soulstone/full/New()
+/obj/item/weapon/storage/belt/soulstone/full/fill()
..()
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
@@ -245,7 +245,7 @@
/obj/item/weapon/gun/energy/wand
)
-/obj/item/weapon/storage/belt/wands/full/New()
+/obj/item/weapon/storage/belt/wands/full/fill()
..()
new /obj/item/weapon/gun/energy/wand/fire(src)
new /obj/item/weapon/gun/energy/wand/polymorph(src)
diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index 8a29fdefa8f..b313ee3cd7b 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -13,7 +13,7 @@
desc = "To be applied to the head repeatedly."
icon_state ="bible"
-/obj/item/weapon/storage/bible/booze/New()
+/obj/item/weapon/storage/bible/booze/fill()
..()
new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src)
new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src)
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 0a20c8a3448..d7f0755fe6d 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -26,10 +26,10 @@
icon_state = "box"
item_state = "syringe_kit"
var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
- var/maxHealth = 20//health is already defined
+ var/maxHealth = 20 //health is already defined
-/obj/item/weapon/storage/box/New()
- ..()
+/obj/item/weapon/storage/box/Initialize()
+ . = ..()
health = maxHealth
/obj/item/weapon/storage/box/proc/damage(var/severity)
@@ -40,7 +40,6 @@
if (health <= 0)
qdel(src)
-
/obj/item/weapon/storage/box/attack_generic(var/mob/user)
if (istype(user, /mob/living))
@@ -67,7 +66,6 @@
damage(damage)
..()
-
/obj/item/weapon/storage/box/examine(var/mob/user)
..()
if (health < maxHealth)
@@ -103,21 +101,22 @@
/obj/item/weapon/storage/box/survival
autodrobe_no_remove = 1
-/obj/item/weapon/storage/box/survival/New()
+/obj/item/weapon/storage/box/survival/fill()
..()
new /obj/item/clothing/mask/breath( src )
new /obj/item/weapon/tank/emergency_oxygen(src)
for(var/obj/item/thing in contents)
thing.autodrobe_no_remove = 1
-/obj/item/weapon/storage/box/vox/New()
+/obj/item/weapon/storage/box/vox/fill()
..()
new /obj/item/clothing/mask/breath( src )
new /obj/item/weapon/tank/emergency_nitrogen( src )
/obj/item/weapon/storage/box/engineer
autodrobe_no_remove = 1
-/obj/item/weapon/storage/box/engineer/New()
+
+/obj/item/weapon/storage/box/engineer/fill()
..()
new /obj/item/clothing/mask/breath( src )
new /obj/item/weapon/tank/emergency_oxygen/engi( src )
@@ -129,7 +128,7 @@
desc = "Contains sterile gloves."
icon_state = "latex"
-/obj/item/weapon/storage/box/gloves/New()
+/obj/item/weapon/storage/box/gloves/fill()
..()
new /obj/item/clothing/gloves/latex(src)
new /obj/item/clothing/gloves/latex(src)
@@ -144,7 +143,7 @@
desc = "This box contains masks of sterility."
icon_state = "sterile"
-/obj/item/weapon/storage/box/masks/New()
+/obj/item/weapon/storage/box/masks/fill()
..()
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/mask/surgical(src)
@@ -174,7 +173,7 @@
desc = "A box full of compressed gas cartridges."
icon_state = "syringe"
-/obj/item/weapon/storage/box/syringes/New()
+/obj/item/weapon/storage/box/syringes/fill()
..()
new /obj/item/weapon/syringe_cartridge( src )
new /obj/item/weapon/syringe_cartridge( src )
@@ -189,7 +188,7 @@
name = "box of beakers"
icon_state = "beaker"
-/obj/item/weapon/storage/box/beakers/New()
+/obj/item/weapon/storage/box/beakers/fill()
..()
new /obj/item/weapon/reagent_containers/glass/beaker( src )
new /obj/item/weapon/reagent_containers/glass/beaker( src )
@@ -203,7 +202,7 @@
name = "box of DNA injectors"
desc = "This box contains injectors it seems."
-/obj/item/weapon/storage/box/injectors/New()
+/obj/item/weapon/storage/box/injectors/fill()
..()
new /obj/item/weapon/dnainjector/h2m(src)
new /obj/item/weapon/dnainjector/h2m(src)
@@ -216,7 +215,7 @@
name = "box of blank shells"
desc = "It has a picture of a gun and several warning symbols on the front."
-/obj/item/weapon/storage/box/blanks/New()
+/obj/item/weapon/storage/box/blanks/fill()
..()
new /obj/item/ammo_casing/shotgun/blank(src)
new /obj/item/ammo_casing/shotgun/blank(src)
@@ -230,7 +229,7 @@
name = "box of beanbag shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/beanbags/New()
+/obj/item/weapon/storage/box/beanbags/fill()
..()
new /obj/item/ammo_casing/shotgun/beanbag(src)
new /obj/item/ammo_casing/shotgun/beanbag(src)
@@ -244,7 +243,7 @@
name = "box of shotgun slugs"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/shotgunammo/New()
+/obj/item/weapon/storage/box/shotgunammo/fill()
..()
new /obj/item/ammo_casing/shotgun(src)
new /obj/item/ammo_casing/shotgun(src)
@@ -258,7 +257,7 @@
name = "box of shotgun shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/shotgunshells/New()
+/obj/item/weapon/storage/box/shotgunshells/fill()
..()
new /obj/item/ammo_casing/shotgun/pellet(src)
new /obj/item/ammo_casing/shotgun/pellet(src)
@@ -272,7 +271,7 @@
name = "box of illumination shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/flashshells/New()
+/obj/item/weapon/storage/box/flashshells/fill()
..()
new /obj/item/ammo_casing/shotgun/flash(src)
new /obj/item/ammo_casing/shotgun/flash(src)
@@ -286,7 +285,7 @@
name = "box of stun shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/stunshells/New()
+/obj/item/weapon/storage/box/stunshells/fill()
..()
new /obj/item/ammo_casing/shotgun/stunshell(src)
new /obj/item/ammo_casing/shotgun/stunshell(src)
@@ -300,7 +299,7 @@
name = "box of practice shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/practiceshells/New()
+/obj/item/weapon/storage/box/practiceshells/fill()
..()
new /obj/item/ammo_casing/shotgun/practice(src)
new /obj/item/ammo_casing/shotgun/practice(src)
@@ -314,7 +313,7 @@
name = "box of 14.5mm shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
-/obj/item/weapon/storage/box/sniperammo/New()
+/obj/item/weapon/storage/box/sniperammo/fill()
..()
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
@@ -329,7 +328,7 @@
desc = "A box containing 7 antipersonnel flashbang grenades.
WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/flashbangs/New()
+/obj/item/weapon/storage/box/flashbangs/fill()
..()
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/grenade/flashbang(src)
@@ -344,7 +343,7 @@
desc = "A box containing 7 tear gas grenades. A gas mask is printed on the label.
WARNING: Exposure carries risk of serious injury or death. Keep away from persons with lung conditions."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/teargas/New()
+/obj/item/weapon/storage/box/teargas/fill()
..()
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
@@ -358,7 +357,7 @@
desc = "A box full of smoke grenades, used by special law enforcement teams and military organisations. Provides cover, confusion, and distraction."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/smokebombs/New()
+/obj/item/weapon/storage/box/smokebombs/fill()
..()
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/weapon/grenade/smokebomb(src)
@@ -373,7 +372,7 @@
desc = "A box containing 5 military grade EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/emps/New()
+/obj/item/weapon/storage/box/emps/fill()
..()
new /obj/item/weapon/grenade/empgrenade(src)
new /obj/item/weapon/grenade/empgrenade(src)
@@ -386,7 +385,7 @@
desc = "A box containing 5 smoke bombs."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/smokes/New()
+/obj/item/weapon/storage/box/smokes/fill()
..()
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/weapon/grenade/smokebomb(src)
@@ -399,7 +398,7 @@
desc = "A box containing 5 experimental photon disruption grenades."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/anti_photons/New()
+/obj/item/weapon/storage/box/anti_photons/fill()
..()
new /obj/item/weapon/grenade/anti_photon(src)
new /obj/item/weapon/grenade/anti_photon(src)
@@ -412,7 +411,7 @@
desc = "A box containing 5 military grade fragmentation grenades.
WARNING: Live explosives. Misuse may result in serious injury or death."
icon_state = "flashbang"
-/obj/item/weapon/storage/box/frags/New()
+/obj/item/weapon/storage/box/frags/fill()
..()
new /obj/item/weapon/grenade/frag(src)
new /obj/item/weapon/grenade/frag(src)
@@ -425,7 +424,7 @@
desc = "Box full of scum-bag tracking utensils."
icon_state = "implant"
-/obj/item/weapon/storage/box/trackimp/New()
+/obj/item/weapon/storage/box/trackimp/fill()
..()
new /obj/item/weapon/implantcase/tracking(src)
new /obj/item/weapon/implantcase/tracking(src)
@@ -440,7 +439,7 @@
desc = "Box of stuff used to implant chemicals."
icon_state = "implant"
-/obj/item/weapon/storage/box/chemimp/New()
+/obj/item/weapon/storage/box/chemimp/fill()
..()
new /obj/item/weapon/implantcase/chem(src)
new /obj/item/weapon/implantcase/chem(src)
@@ -455,7 +454,7 @@
desc = "This box contains nerd glasses."
icon_state = "glasses"
-/obj/item/weapon/storage/box/rxglasses/New()
+/obj/item/weapon/storage/box/rxglasses/fill()
..()
new /obj/item/clothing/glasses/regular(src)
new /obj/item/clothing/glasses/regular(src)
@@ -469,7 +468,7 @@
name = "box of drinking glasses"
desc = "It has a picture of drinking glasses on it."
-/obj/item/weapon/storage/box/drinkingglasses/New()
+/obj/item/weapon/storage/box/drinkingglasses/fill()
..()
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
@@ -484,7 +483,7 @@
icon_state = "implant"
item_state = "syringe_kit"
-/obj/item/weapon/storage/box/cdeathalarm_kit/New()
+/obj/item/weapon/storage/box/cdeathalarm_kit/fill()
..()
new /obj/item/weapon/implanter(src)
new /obj/item/weapon/implantcase/death_alarm(src)
@@ -498,7 +497,7 @@
name = "box of condiment bottles"
desc = "It has a large ketchup smear on it."
-/obj/item/weapon/storage/box/condimentbottles/New()
+/obj/item/weapon/storage/box/condimentbottles/fill()
..()
new /obj/item/weapon/reagent_containers/food/condiment(src)
new /obj/item/weapon/reagent_containers/food/condiment(src)
@@ -511,7 +510,7 @@
name = "box of paper cups"
desc = "It has pictures of paper cups on the front."
-/obj/item/weapon/storage/box/cups/New()
+/obj/item/weapon/storage/box/cups/fill()
..()
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
@@ -526,7 +525,7 @@
desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes."
icon_state = "donk_kit"
-/obj/item/weapon/storage/box/donkpockets/New()
+/obj/item/weapon/storage/box/donkpockets/fill()
..()
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
@@ -540,7 +539,7 @@
desc = "Instructions: Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes."
icon_state = "donk_kit"
-/obj/item/weapon/storage/box/sinpockets/New()
+/obj/item/weapon/storage/box/sinpockets/fill()
..()
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
@@ -556,7 +555,7 @@
icon_state = "monkeycubebox"
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube)
-/obj/item/weapon/storage/box/monkeycubes/New()
+/obj/item/weapon/storage/box/monkeycubes/fill()
..()
if(src.type == /obj/item/weapon/storage/box/monkeycubes)
for(var/i = 1; i <= 5; i++)
@@ -566,7 +565,7 @@
name = "farwa cube box"
desc = "Drymate brand farwa cubes, shipped from Adhomai. Just add water!"
-/obj/item/weapon/storage/box/monkeycubes/farwacubes/New()
+/obj/item/weapon/storage/box/monkeycubes/farwacubes/fill()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube(src)
@@ -575,7 +574,7 @@
name = "stok cube box"
desc = "Drymate brand stok cubes, shipped from Moghes. Just add water!"
-/obj/item/weapon/storage/box/monkeycubes/stokcubes/New()
+/obj/item/weapon/storage/box/monkeycubes/stokcubes/fill()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube(src)
@@ -584,7 +583,7 @@
name = "neaera cube box"
desc = "Drymate brand neaera cubes, shipped from Jargon 4. Just add water!"
-/obj/item/weapon/storage/box/monkeycubes/neaeracubes/New()
+/obj/item/weapon/storage/box/monkeycubes/neaeracubes/fill()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube(src)
@@ -594,7 +593,7 @@
desc = "Has so many empty IDs."
icon_state = "id"
-/obj/item/weapon/storage/box/ids/New()
+/obj/item/weapon/storage/box/ids/fill()
..()
new /obj/item/weapon/card/id(src)
new /obj/item/weapon/card/id(src)
@@ -609,7 +608,7 @@
desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security."
icon_state = "pda"
-/obj/item/weapon/storage/box/seccarts/New()
+/obj/item/weapon/storage/box/seccarts/fill()
..()
new /obj/item/weapon/cartridge/security(src)
new /obj/item/weapon/cartridge/security(src)
@@ -624,7 +623,7 @@
desc = "A box full of handcuffs."
icon_state = "handcuff"
-/obj/item/weapon/storage/box/handcuffs/New()
+/obj/item/weapon/storage/box/handcuffs/fill()
..()
new /obj/item/weapon/handcuffs(src)
new /obj/item/weapon/handcuffs(src)
@@ -639,7 +638,7 @@
desc = "A box full of zipties."
icon_state = "handcuff"
-/obj/item/weapon/storage/box/handcuffs/New()
+/obj/item/weapon/storage/box/handcuffs/fill()
..()
new /obj/item/weapon/handcuffs/ziptie(src)
new /obj/item/weapon/handcuffs/ziptie(src)
@@ -654,7 +653,7 @@
desc = "WARNING: Keep out of reach of children."
icon_state = "mousetraps"
-/obj/item/weapon/storage/box/mousetraps/New()
+/obj/item/weapon/storage/box/mousetraps/fill()
..()
new /obj/item/device/assembly/mousetrap( src )
new /obj/item/device/assembly/mousetrap( src )
@@ -667,7 +666,7 @@
name = "box of pill bottles"
desc = "It has pictures of pill bottles on its front."
-/obj/item/weapon/storage/box/pillbottles/New()
+/obj/item/weapon/storage/box/pillbottles/fill()
..()
new /obj/item/weapon/storage/pill_bottle( src )
new /obj/item/weapon/storage/pill_bottle( src )
@@ -681,7 +680,7 @@
name = "box of spray bottles"
desc = "It has pictures of spray bottles on its front."
-/obj/item/weapon/storage/box/spraybottles/New()
+/obj/item/weapon/storage/box/spraybottles/fill()
..()
new /obj/item/weapon/reagent_containers/spray( src )
new /obj/item/weapon/reagent_containers/spray( src )
@@ -698,7 +697,7 @@
icon_state = "spbox"
can_hold = list(/obj/item/toy/snappop)
-/obj/item/weapon/storage/box/snappops/New()
+/obj/item/weapon/storage/box/snappops/fill()
..()
for(var/i=1; i <= 8; i++)
new /obj/item/toy/snappop(src)
@@ -713,7 +712,7 @@
slot_flags = SLOT_BELT
can_hold = list(/obj/item/weapon/flame/match)
-/obj/item/weapon/storage/box/matches/New()
+/obj/item/weapon/storage/box/matches/fill()
..()
for(var/i=1; i <= 10; i++)
new /obj/item/weapon/flame/match(src)
@@ -732,7 +731,7 @@
desc = "Contains autoinjectors."
icon_state = "syringe"
-/obj/item/weapon/storage/box/autoinjectors/New()
+/obj/item/weapon/storage/box/autoinjectors/fill()
..()
for (var/i; i < 7; i++)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src)
@@ -745,34 +744,34 @@
item_state = "syringe_kit"
use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
-/obj/item/weapon/storage/box/lights/New()
- ..()
+/obj/item/weapon/storage/box/lights/Initialize() // TODO-STORAGE: Initialize()?
+ . = ..()
make_exact_fit()
-/obj/item/weapon/storage/box/lights/bulbs/New()
+/obj/item/weapon/storage/box/lights/bulbs/fill()
+ ..()
for(var/i = 0; i < 21; i++)
new /obj/item/weapon/light/bulb(src)
- ..()
/obj/item/weapon/storage/box/lights/tubes
name = "box of replacement tubes"
icon_state = "lighttube"
-/obj/item/weapon/storage/box/lights/tubes/New()
+/obj/item/weapon/storage/box/lights/tubes/fill()
+ ..()
for(var/i = 0; i < 21; i++)
new /obj/item/weapon/light/tube(src)
- ..()
/obj/item/weapon/storage/box/lights/mixed
name = "box of replacement lights"
icon_state = "lightmixed"
-/obj/item/weapon/storage/box/lights/mixed/New()
+/obj/item/weapon/storage/box/lights/mixed/fill()
+ ..()
for(var/i = 0; i < 14; i++)
new /obj/item/weapon/light/tube(src)
for(var/i = 0; i < 7; i++)
new /obj/item/weapon/light/bulb(src)
- ..()
/obj/item/weapon/storage/box/freezer
name = "portable freezer"
@@ -789,26 +788,27 @@
name = "kitchen supplies"
desc = "Contains an assortment of utensils and containers useful in the preparation of food and drinks."
-/obj/item/weapon/storage/box/kitchen/New()
+/obj/item/weapon/storage/box/kitchen/fill()
new /obj/item/weapon/material/knife(src)//Should always have a knife
- var/list/utensils = list(/obj/item/weapon/material/kitchen/rollingpin,
-/obj/item/weapon/reagent_containers/glass/beaker,
-/obj/item/weapon/material/kitchen/utensil/fork,
-/obj/item/weapon/reagent_containers/food/condiment/enzyme,
-/obj/item/weapon/material/kitchen/utensil/spoon,
-/obj/item/weapon/material/kitchen/utensil/knife,
-/obj/item/weapon/reagent_containers/food/drinks/shaker)
+ var/list/utensils = list(
+ /obj/item/weapon/material/kitchen/rollingpin,
+ /obj/item/weapon/reagent_containers/glass/beaker,
+ /obj/item/weapon/material/kitchen/utensil/fork,
+ /obj/item/weapon/reagent_containers/food/condiment/enzyme,
+ /obj/item/weapon/material/kitchen/utensil/spoon,
+ /obj/item/weapon/material/kitchen/utensil/knife,
+ /obj/item/weapon/reagent_containers/food/drinks/shaker
+ )
for (var/i = 0,i<6,i++)
var/type = pick(utensils)
new type(src)
- ..()
/obj/item/weapon/storage/box/snack
name = "rations box"
desc = "Contains a random assortment of preserved foods. Guaranteed to remain edible* in room-temperature longterm storage for centuries!"
-/obj/item/weapon/storage/box/snack/New()
+/obj/item/weapon/storage/box/snack/fill()
var/list/snacks = list(
/obj/item/weapon/reagent_containers/food/snacks/koisbar,
/obj/item/weapon/reagent_containers/food/snacks/candy,
@@ -835,14 +835,12 @@
for (var/i = 0,i<7,i++)
var/type = pick(snacks)
new type(src)
- ..()
/obj/item/weapon/storage/box/stims
name = "stimpack value kit"
desc = "A box with several stimpack medipens for the economical miner."
icon_state = "syringe"
-/obj/item/weapon/storage/box/stims/New()
- ..()
+/obj/item/weapon/storage/box/stims/fill()
for(var/i in 1 to 4)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack(src)
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 0436d47366c..7ebaed65e25 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -52,11 +52,9 @@
/obj/item/weapon/reagent_containers/food/snacks/boiledegg
)
-/obj/item/weapon/storage/fancy/egg_box/New()
- ..()
+/obj/item/weapon/storage/fancy/egg_box/fill()
for(var/i=1; i <= storage_slots; i++)
new /obj/item/weapon/reagent_containers/food/snacks/egg(src)
- return
/*
* Candle Box
@@ -73,11 +71,9 @@
slot_flags = SLOT_BELT
max_storage_space = 5
-/obj/item/weapon/storage/fancy/candle_box/New()
- ..()
+/obj/item/weapon/storage/fancy/candle_box/fill()
for(var/i=1; i <= 5; i++)
new /obj/item/weapon/flame/candle(src)
- return
/*
* Crayon Box
@@ -94,7 +90,7 @@
/obj/item/weapon/pen/crayon
)
-/obj/item/weapon/storage/fancy/crayons/New()
+/obj/item/weapon/storage/fancy/crayons/fill()
..()
new /obj/item/weapon/pen/crayon/red(src)
new /obj/item/weapon/pen/crayon/orange(src)
@@ -137,16 +133,17 @@
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter)
icon_type = "cigarette"
-/obj/item/weapon/storage/fancy/cigarettes/New()
- ..()
+/obj/item/weapon/storage/fancy/cigarettes/Initialize()
+ . = ..()
flags |= NOREACT
+ create_reagents(15 * storage_slots) //so people can inject cigarettes without opening a packet, now with being able to inject the whole one
+
+/obj/item/weapon/storage/fancy/cigarettes/fill()
for(var/i = 1 to storage_slots)
new /obj/item/clothing/mask/smokable/cigarette(src)
- create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one
/obj/item/weapon/storage/fancy/cigarettes/update_icon()
icon_state = "[initial(icon_state)][contents.len]"
- return
/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location)
var/obj/item/clothing/mask/smokable/cigarette/C = W
@@ -181,7 +178,7 @@
icon_state = "Bpacket"
item_state = "Bpacket" //Doesn't have an inhand state, but neither does dromedary, so, ya know..
- New()
+ fill()
..()
fill_cigarre_package(src,list("fuel" = 15))
@@ -198,12 +195,15 @@
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar)
icon_type = "cigar"
-/obj/item/weapon/storage/fancy/cigar/New()
- ..()
+/obj/item/weapon/storage/fancy/cigar/Initialize()
+ . = ..()
flags |= NOREACT
+ create_reagents(15 * storage_slots)
+
+/obj/item/weapon/storage/fancy/cigar/fill()
+ ..()
for(var/i = 1 to storage_slots)
new /obj/item/clothing/mask/smokable/cigarette/cigar(src)
- create_reagents(15 * storage_slots)
/obj/item/weapon/storage/fancy/cigar/update_icon()
icon_state = "[initial(icon_state)][contents.len]"
@@ -243,11 +243,10 @@
can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial)
-/obj/item/weapon/storage/fancy/vials/New()
+/obj/item/weapon/storage/fancy/vials/fill()
..()
for(var/i=1; i <= storage_slots; i++)
new /obj/item/weapon/reagent_containers/glass/beaker/vial(src)
- return
/obj/item/weapon/storage/lockbox/vials
name = "secure vial storage box"
@@ -261,9 +260,9 @@
storage_slots = 6
req_access = list(access_virology)
-/obj/item/weapon/storage/lockbox/vials/New()
- ..()
- update_icon()
+/obj/item/weapon/storage/lockbox/vials/Initialize()
+ . = ..()
+ queue_icon_update()
/obj/item/weapon/storage/lockbox/vials/update_icon(var/itemremoved = 0)
var/total_contents = src.contents.len - itemremoved
diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm
index 51d00cf1db5..cf499e7a5d4 100644
--- a/code/game/objects/items/weapons/storage/firstaid.dm
+++ b/code/game/objects/items/weapons/storage/firstaid.dm
@@ -22,7 +22,7 @@
icon_state = "ointment"
item_state = "firstaid-ointment"
- New()
+ fill()
..()
if (empty) return
@@ -41,7 +41,7 @@
/obj/item/weapon/storage/firstaid/regular
icon_state = "firstaid"
- New()
+ fill()
..()
if (empty) return
new /obj/item/stack/medical/bruise_pack(src)
@@ -59,7 +59,7 @@
icon_state = "antitoxin"
item_state = "firstaid-toxin"
- New()
+ fill()
..()
if (empty) return
@@ -80,7 +80,7 @@
icon_state = "o2"
item_state = "firstaid-o2"
- New()
+ fill()
..()
if (empty) return
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
@@ -98,7 +98,7 @@
icon_state = "advfirstaid"
item_state = "firstaid-advanced"
-/obj/item/weapon/storage/firstaid/adv/New()
+/obj/item/weapon/storage/firstaid/adv/fill()
..()
if (empty) return
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
@@ -116,7 +116,7 @@
icon_state = "bezerk"
item_state = "firstaid-advanced"
-/obj/item/weapon/storage/firstaid/combat/New()
+/obj/item/weapon/storage/firstaid/combat/fill()
..()
if (empty) return
new /obj/item/weapon/storage/pill_bottle/bicaridine(src)
@@ -134,7 +134,7 @@
icon_state = "purplefirstaid"
item_state = "firstaid-advanced"
-/obj/item/weapon/storage/firstaid/surgery/New()
+/obj/item/weapon/storage/firstaid/surgery/fill()
..()
if (empty) return
new /obj/item/weapon/bonesetter(src)
@@ -155,7 +155,7 @@
desc = "A NanoTrasen care package for moderately injured miners."
icon_state = "brute"
-/obj/item/weapon/storage/firstaid/brute/New()
+/obj/item/weapon/storage/firstaid/brute/fill()
..()
if (empty) return
new /obj/item/stack/medical/bruise_pack(src)
@@ -186,7 +186,7 @@
name = "bottle of Dylovene pills"
desc = "Contains pills used to counter toxins."
- New()
+ fill()
..()
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
@@ -200,7 +200,7 @@
name = "bottle of Bicaridine pills"
desc = "Contains pills used to stabilize the severely injured."
-/obj/item/weapon/storage/pill_bottle/bicaridine/New()
+/obj/item/weapon/storage/pill_bottle/bicaridine/fill()
..()
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
@@ -214,7 +214,7 @@
name = "bottle of Dexalin Plus pills"
desc = "Contains pills used to treat extreme cases of oxygen deprivation."
-/obj/item/weapon/storage/pill_bottle/dexalin_plus/New()
+/obj/item/weapon/storage/pill_bottle/dexalin_plus/fill()
..()
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
@@ -228,7 +228,7 @@
name = "bottle of Dermaline pills"
desc = "Contains pills used to treat burn wounds."
-/obj/item/weapon/storage/pill_bottle/dermaline/New()
+/obj/item/weapon/storage/pill_bottle/dermaline/fill()
..()
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
@@ -242,7 +242,7 @@
name = "bottle of Dylovene pills"
desc = "Contains pills used to treat toxic substances in the blood."
-/obj/item/weapon/storage/pill_bottle/dylovene/New()
+/obj/item/weapon/storage/pill_bottle/dylovene/fill()
..()
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
@@ -256,7 +256,7 @@
name = "bottle of Inaprovaline pills"
desc = "Contains pills used to stabilize patients."
- New()
+ fill()
..()
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
@@ -270,7 +270,7 @@
name = "bottle of kelotane pills"
desc = "Contains pills used to treat burns."
- New()
+ fill()
..()
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
@@ -284,7 +284,7 @@
name = "bottle of Spaceacillin pills"
desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space."
-/obj/item/weapon/storage/pill_bottle/spaceacillin/New()
+/obj/item/weapon/storage/pill_bottle/spaceacillin/fill()
..()
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
@@ -298,7 +298,7 @@
name = "bottle of Tramadol pills"
desc = "Contains pills used to relieve pain."
- New()
+ fill()
..()
new /obj/item/weapon/reagent_containers/pill/tramadol( src )
new /obj/item/weapon/reagent_containers/pill/tramadol( src )
@@ -312,7 +312,7 @@
name = "bottle of Citalopram pills"
desc = "Contains pills used to stabilize a patient's mood."
- New()
+ fill()
..()
new /obj/item/weapon/reagent_containers/pill/citalopram( src )
new /obj/item/weapon/reagent_containers/pill/citalopram( src )
@@ -320,4 +320,4 @@
new /obj/item/weapon/reagent_containers/pill/citalopram( src )
new /obj/item/weapon/reagent_containers/pill/citalopram( src )
new /obj/item/weapon/reagent_containers/pill/citalopram( src )
- new /obj/item/weapon/reagent_containers/pill/citalopram( src )
\ No newline at end of file
+ new /obj/item/weapon/reagent_containers/pill/citalopram( src )
diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm
index f215deb0cf6..b3c2403fd64 100644
--- a/code/game/objects/items/weapons/storage/lockbox.dm
+++ b/code/game/objects/items/weapons/storage/lockbox.dm
@@ -112,7 +112,7 @@
icon_closed = "medalbox"
icon_broken = "medalbox+b"
-/obj/item/weapon/storage/lockbox/medal/New()
+/obj/item/weapon/storage/lockbox/medal/fill()
..()
new /obj/item/clothing/accessory/medal/conduct(src)
new /obj/item/clothing/accessory/medal/conduct(src)
diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm
index 2e02e4232e7..c83c3f9f775 100644
--- a/code/game/objects/items/weapons/storage/misc.dm
+++ b/code/game/objects/items/weapons/storage/misc.dm
@@ -19,12 +19,11 @@
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut)
foldable = /obj/item/stack/material/cardboard
-/obj/item/weapon/storage/box/donut/New()
+/obj/item/weapon/storage/box/donut/fill()
..()
for(var/i=1; i <= startswith; i++)
new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src)
update_icon()
- return
/obj/item/weapon/storage/box/donut/update_icon()
cut_overlays()
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 155e7936151..66e0f051747 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -9,9 +9,9 @@
name = "storage"
icon = 'icons/obj/storage.dmi'
w_class = 3
- var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else)
- var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set)
- var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage
+ var/list/can_hold = list() //List of objects which this item can store (if set, it can't store anything else)
+ var/list/cant_hold = list() //List of objects which this item can't store (in effect only if can_hold isn't set)
+ var/list/is_seeing //List of mobs which are currently seeing the contents of this item's storage
var/max_w_class = 3 //Max size of objects that this object can store (in effect only if can_hold isn't set)
var/max_storage_space = 8 //The sum of the storage costs of all the items in this storage item.
var/storage_slots = null //The number of storage slots in this container.
@@ -32,20 +32,14 @@
/obj/item/weapon/storage/Destroy()
close_all()
- qdel(boxes)
- qdel(src.storage_start)
- qdel(src.storage_continue)
- qdel(src.storage_end)
- qdel(src.stored_start)
- qdel(src.stored_continue)
- qdel(src.stored_end)
- qdel(closer)
- while (contents.len)
- var/thing = contents[contents.len]
- contents.len--
-
- qdel(thing)
-
+ QDEL_NULL(boxes)
+ QDEL_NULL(storage_start)
+ QDEL_NULL(storage_continue)
+ QDEL_NULL(storage_end)
+ QDEL_NULL(stored_start)
+ QDEL_NULL(stored_continue)
+ QDEL_NULL(stored_end)
+ QDEL_NULL(closer)
return ..()
/obj/item/weapon/storage/MouseDrop(obj/over_object as obj)
@@ -107,40 +101,41 @@
return
if(user.s_active)
user.s_active.hide_from(user)
- user.client.screen -= src.boxes
- user.client.screen -= src.storage_start
- user.client.screen -= src.storage_continue
- user.client.screen -= src.storage_end
- user.client.screen -= src.closer
- user.client.screen -= src.contents
- user.client.screen += src.closer
- user.client.screen += src.contents
+ user.client.screen -= boxes
+ user.client.screen -= storage_start
+ user.client.screen -= storage_continue
+ user.client.screen -= storage_end
+ user.client.screen -= closer
+ user.client.screen -= contents
+ user.client.screen += closer
+ user.client.screen += contents
if(storage_slots)
- user.client.screen += src.boxes
+ user.client.screen += boxes
else
- user.client.screen += src.storage_start
- user.client.screen += src.storage_continue
- user.client.screen += src.storage_end
+ user.client.screen += storage_start
+ user.client.screen += storage_continue
+ user.client.screen += storage_end
user.s_active = src
- is_seeing |= user
+ LAZYADD(is_seeing, user)
return
/obj/item/weapon/storage/proc/hide_from(mob/user as mob)
if(!user.client)
return
- user.client.screen -= src.boxes
- user.client.screen -= src.storage_start
- user.client.screen -= src.storage_continue
- user.client.screen -= src.storage_end
- user.client.screen -= src.closer
- user.client.screen -= src.contents
+ user.client.screen -= boxes
+ user.client.screen -= storage_start
+ user.client.screen -= storage_continue
+ user.client.screen -= storage_end
+ user.client.screen -= closer
+ user.client.screen -= contents
if(user.s_active == src)
user.s_active = null
- is_seeing -= user
+
+ LAZYREMOVE(is_seeing, user)
/obj/item/weapon/storage/proc/open(mob/user as mob)
- if (src.use_sound)
+ if (use_sound)
playsound(src.loc, src.use_sound, 50, 1, -5)
orient2hud(user)
@@ -149,7 +144,7 @@
show_to(user)
/obj/item/weapon/storage/proc/close(mob/user as mob)
- src.hide_from(user)
+ hide_from(user)
user.s_active = null
return
@@ -164,7 +159,7 @@
if(M.s_active == src && M.client)
cansee |= M
else
- is_seeing -= M
+ LAZYREMOVE(is_seeing, M)
return cansee
//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right.
@@ -207,7 +202,7 @@
if (cx > (4+cols))
cx = 4
cy--
- src.closer.screen_loc = "[4+cols+1]:16,2:16"
+ closer.screen_loc = "[4+cols+1]:16,2:16"
return
/obj/item/weapon/storage/proc/space_orient_objs(var/list/obj/item/display_contents)
@@ -221,11 +216,11 @@
var/matrix/M = matrix()
M.Scale((storage_width-storage_cap_width*2+3)/32,1)
- src.storage_continue.transform = M
+ storage_continue.transform = M
- src.storage_start.screen_loc = "4:16,2:16"
- src.storage_continue.screen_loc = "4:[storage_cap_width+(storage_width-storage_cap_width*2)/2+2],2:16"
- src.storage_end.screen_loc = "4:[19+storage_width-storage_cap_width],2:16"
+ storage_start.screen_loc = "4:16,2:16"
+ storage_continue.screen_loc = "4:[storage_cap_width+(storage_width-storage_cap_width*2)/2+2],2:16"
+ storage_end.screen_loc = "4:[19+storage_width-storage_cap_width],2:16"
var/startpoint = 0
var/endpoint = 1
@@ -241,18 +236,18 @@
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_end.Translate(endpoint-stored_cap_width,0)
- src.stored_start.transform = M_start
- src.stored_continue.transform = M_continue
- src.stored_end.transform = M_end
- storage_start.overlays += src.stored_start
- storage_start.overlays += src.stored_continue
- storage_start.overlays += src.stored_end
+ stored_start.transform = M_start
+ stored_continue.transform = M_continue
+ stored_end.transform = M_end
+ storage_start.overlays += stored_start
+ storage_start.overlays += stored_continue
+ storage_start.overlays += stored_end
O.screen_loc = "4:[round((startpoint+endpoint)/2)+2],2:16"
O.maptext = ""
O.layer = 20
- src.closer.screen_loc = "4:[storage_width+19],2:16"
+ closer.screen_loc = "4:[storage_width+19],2:16"
return
/datum/numbered_display
@@ -514,68 +509,75 @@
CHECK_TICK
-/obj/item/weapon/storage/proc/post_init()
+/obj/item/weapon/storage/LateInitialize()
var/total_storage_space = 0
for(var/obj/item/I in contents)
total_storage_space += I.get_storage_cost()
max_storage_space = max(total_storage_space,max_storage_space) //prevents spawned containers from being too small for their contents
-/obj/item/weapon/storage/New()
+// Override this to fill the storage object with stuff.
+/obj/item/weapon/storage/proc/fill()
+ return
+
+/obj/item/weapon/storage/Initialize()
..()
- if(allow_quick_empty)
- verbs += /obj/item/weapon/storage/verb/quick_empty
- else
+
+ fill()
+
+ if(!allow_quick_empty)
verbs -= /obj/item/weapon/storage/verb/quick_empty
- if(allow_quick_gather)
- verbs += /obj/item/weapon/storage/verb/toggle_gathering_mode
- else
+ if(!allow_quick_gather)
verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode
- addtimer(CALLBACK(src, .proc/post_init), 5)
+ boxes = new /obj/screen/storage
+ boxes.name = "storage"
+ boxes.master = src
+ boxes.icon_state = "block"
+ boxes.screen_loc = "7,7 to 10,8"
+ boxes.layer = 19
- src.boxes = new /obj/screen/storage
- src.boxes.name = "storage"
- src.boxes.master = src
- src.boxes.icon_state = "block"
- src.boxes.screen_loc = "7,7 to 10,8"
- src.boxes.layer = 19
+ storage_start = new /obj/screen/storage
+ storage_start.name = "storage"
+ storage_start.master = src
+ storage_start.icon_state = "storage_start"
+ storage_start.screen_loc = "7,7 to 10,8"
+ storage_start.layer = 19
- src.storage_start = new /obj/screen/storage
- src.storage_start.name = "storage"
- src.storage_start.master = src
- src.storage_start.icon_state = "storage_start"
- src.storage_start.screen_loc = "7,7 to 10,8"
- src.storage_start.layer = 19
- src.storage_continue = new /obj/screen/storage
- src.storage_continue.name = "storage"
- src.storage_continue.master = src
- src.storage_continue.icon_state = "storage_continue"
- src.storage_continue.screen_loc = "7,7 to 10,8"
- src.storage_continue.layer = 19
- src.storage_end = new /obj/screen/storage
- src.storage_end.name = "storage"
- src.storage_end.master = src
- src.storage_end.icon_state = "storage_end"
- src.storage_end.screen_loc = "7,7 to 10,8"
- src.storage_end.layer = 19
+ storage_continue = new /obj/screen/storage
+ storage_continue.name = "storage"
+ storage_continue.master = src
+ storage_continue.icon_state = "storage_continue"
+ storage_continue.screen_loc = "7,7 to 10,8"
+ storage_continue.layer = 19
- src.stored_start = new /obj //we just need these to hold the icon
- src.stored_start.icon_state = "stored_start"
- src.stored_start.layer = 19
- src.stored_continue = new /obj
- src.stored_continue.icon_state = "stored_continue"
- src.stored_continue.layer = 19
- src.stored_end = new /obj
- src.stored_end.icon_state = "stored_end"
- src.stored_end.layer = 19
+ storage_end = new /obj/screen/storage
+ storage_end.name = "storage"
+ storage_end.master = src
+ storage_end.icon_state = "storage_end"
+ storage_end.screen_loc = "7,7 to 10,8"
+ storage_end.layer = 19
- src.closer = new /obj/screen/close
- src.closer.master = src
- src.closer.icon_state = "x"
- src.closer.layer = 20
+ stored_start = new /obj //we just need these to hold the icon
+ stored_start.icon_state = "stored_start"
+ stored_start.layer = 19
+
+ stored_continue = new /obj
+ stored_continue.icon_state = "stored_continue"
+ stored_continue.layer = 19
+
+ stored_end = new /obj
+ stored_end.icon_state = "stored_end"
+ stored_end.layer = 19
+
+ closer = new /obj/screen/close
+ closer.master = src
+ closer.icon_state = "x"
+ closer.layer = 20
orient2hud()
+ return INITIALIZE_HINT_LATELOAD
+
/obj/item/weapon/storage/emp_act(severity)
if(!istype(src.loc, /mob/living))
for(var/obj/O in contents)
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index 00699d16b43..6f651bfb915 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -16,7 +16,7 @@
attack_verb = list("robusted")
var/stunhit = 0
-/obj/item/weapon/storage/toolbox/Initialize(mapload)
+/obj/item/weapon/storage/toolbox/Initialize()
. = ..()
update_force()
@@ -25,8 +25,7 @@
icon_state = "red"
item_state = "toolbox_red"
- Initialize()
- . = ..()
+ fill()
new /obj/item/weapon/crowbar/red(src)
new /obj/item/weapon/extinguisher/mini(src)
if(prob(50))
@@ -40,8 +39,7 @@
icon_state = "blue"
item_state = "toolbox_blue"
- Initialize()
- . = ..()
+ fill()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
@@ -54,8 +52,7 @@
icon_state = "yellow"
item_state = "toolbox_yellow"
- Initialize()
- . = ..()
+ fill()
var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wirecutters(src)
@@ -75,8 +72,7 @@
origin_tech = list(TECH_COMBAT = 1, TECH_ILLEGAL = 1)
force = 7.0
- Initialize()
- . = ..()
+ fill()
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
@@ -120,7 +116,7 @@
max_storage_space = 8
var/filled = FALSE
-/obj/item/weapon/storage/toolbox/lunchbox/New()
+/obj/item/weapon/storage/toolbox/lunchbox/fill()
..()
if(filled)
var/list/lunches = lunchables_lunches()
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index 53eb5a70792..5c359b3204b 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -80,7 +80,7 @@
/obj/item/weapon/storage/box/syndie_kit/imp_freedom
name = "boxed freedom implant (with injector)"
-/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New()
+/obj/item/weapon/storage/box/syndie_kit/imp_freedom/fill()
..()
var/obj/item/weapon/implanter/O = new(src)
O.imp = new /obj/item/weapon/implant/freedom(O)
@@ -90,15 +90,14 @@
/obj/item/weapon/storage/box/syndie_kit/imp_compress
name = "box (C)"
-/obj/item/weapon/storage/box/syndie_kit/imp_compress/New()
+/obj/item/weapon/storage/box/syndie_kit/imp_compress/fill()
new /obj/item/weapon/implanter/compressed(src)
..()
- return
/obj/item/weapon/storage/box/syndie_kit/imp_explosive
name = "box (E)"
-/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New()
+/obj/item/weapon/storage/box/syndie_kit/imp_explosive/fill()
new /obj/item/weapon/implanter/explosive(src)
..()
return
@@ -106,7 +105,7 @@
/obj/item/weapon/storage/box/syndie_kit/imp_uplink
name = "boxed uplink implant (with injector)"
-/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New()
+/obj/item/weapon/storage/box/syndie_kit/imp_uplink/fill()
..()
var/obj/item/weapon/implanter/O = new(src)
O.imp = new /obj/item/weapon/implant/uplink(O)
@@ -116,19 +115,19 @@
/obj/item/weapon/storage/box/syndie_kit/space
name = "boxed space suit and helmet"
-/obj/item/weapon/storage/box/syndie_kit/space/New()
+/obj/item/weapon/storage/box/syndie_kit/space/fill()
..()
new /obj/item/clothing/suit/space/syndicate(src)
new /obj/item/clothing/head/helmet/space/syndicate(src)
new /obj/item/clothing/mask/gas/syndicate(src)
new /obj/item/weapon/tank/emergency_oxygen/double(src)
- return
+
/obj/item/weapon/storage/box/syndie_kit/chameleon
name = "chameleon kit"
desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately."
-/obj/item/weapon/storage/box/syndie_kit/chameleon/New()
+/obj/item/weapon/storage/box/syndie_kit/chameleon/fill()
..()
new /obj/item/clothing/under/chameleon(src)
new /obj/item/clothing/head/chameleon(src)
@@ -144,7 +143,7 @@
name = "clerical kit"
desc = "Comes with all you need to fake paperwork. Assumes you have passed basic writing lessons."
-/obj/item/weapon/storage/box/syndie_kit/clerical/New()
+/obj/item/weapon/storage/box/syndie_kit/clerical/fill()
..()
new /obj/item/weapon/stamp/chameleon(src)
new /obj/item/weapon/pen/chameleon(src)
@@ -156,7 +155,7 @@
name = "spy kit"
desc = "For when you want to conduct voyeurism from afar."
-/obj/item/weapon/storage/box/syndie_kit/spy/New()
+/obj/item/weapon/storage/box/syndie_kit/spy/fill()
..()
new /obj/item/device/spy_bug(src)
new /obj/item/device/spy_bug(src)
@@ -170,7 +169,7 @@
name = "\improper Smooth operator"
desc = "9mm with silencer kit."
-/obj/item/weapon/storage/box/syndie_kit/g9mm/New()
+/obj/item/weapon/storage/box/syndie_kit/g9mm/fill()
..()
new /obj/item/weapon/gun/projectile/pistol(src)
new /obj/item/weapon/silencer(src)
@@ -179,7 +178,7 @@
name = "toxin kit"
desc = "An apple will not be enough to keep the doctor away after this."
-/obj/item/weapon/storage/box/syndie_kit/toxin/New()
+/obj/item/weapon/storage/box/syndie_kit/toxin/fill()
..()
new /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin(src)
new /obj/item/weapon/reagent_containers/syringe(src)
@@ -188,7 +187,7 @@
name = "\improper Tricky smokes"
desc = "Comes with the following brands of cigarettes, in this order: 2xFlash, 2xSmoke, 1xMindBreaker, 1xTricordrazine. Avoid mixing them up."
-/obj/item/weapon/storage/box/syndie_kit/cigarette/New()
+/obj/item/weapon/storage/box/syndie_kit/cigarette/fill()
..()
var/obj/item/weapon/storage/fancy/cigarettes/pack
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
@@ -229,7 +228,7 @@
name = "Electrowarfare and Voice Synthesiser kit"
desc = "Kit for confounding organic and synthetic entities alike."
-/obj/item/weapon/storage/box/syndie_kit/ewar_voice/New()
+/obj/item/weapon/storage/box/syndie_kit/ewar_voice/fill()
..()
new /obj/item/rig_module/electrowarfare_suite(src)
new /obj/item/rig_module/voice(src)
@@ -240,9 +239,7 @@
desc = "An ominous briefcase that has the unmistakeable smell of old, stale, cigarette smoke, and gives those who look at it a bad feeling."
-
-
-/obj/item/weapon/storage/secure/briefcase/money/New()
+/obj/item/weapon/storage/secure/briefcase/money/fill()
..()
new /obj/item/weapon/spacecash/c1000(src)
new /obj/item/weapon/spacecash/c1000(src)
@@ -254,5 +251,3 @@
new /obj/item/weapon/spacecash/c1000(src)
new /obj/item/weapon/spacecash/c1000(src)
new /obj/item/weapon/spacecash/c1000(src)
-
-
diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm
index 86b0738f286..2e25f34f26f 100644
--- a/code/game/objects/items/weapons/storage/wallets.dm
+++ b/code/game/objects/items/weapons/storage/wallets.dm
@@ -84,18 +84,40 @@
else
return ..()
-/obj/item/weapon/storage/wallet/random/New()
+/obj/item/weapon/storage/wallet/random/fill()
..()
- var/item1_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500)
+ var/item1_type = pick( \
+ /obj/item/weapon/spacecash/c10, \
+ /obj/item/weapon/spacecash/c100, \
+ /obj/item/weapon/spacecash/c1000, \
+ /obj/item/weapon/spacecash/c20, \
+ /obj/item/weapon/spacecash/c200, \
+ /obj/item/weapon/spacecash/c50, \
+ /obj/item/weapon/spacecash/c500 \
+ )
var/item2_type
if(prob(50))
- item2_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500)
- var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron )
+ item2_type = pick( \
+ /obj/item/weapon/spacecash/c10, \
+ /obj/item/weapon/spacecash/c100, \
+ /obj/item/weapon/spacecash/c1000, \
+ /obj/item/weapon/spacecash/c20, \
+ /obj/item/weapon/spacecash/c200, \
+ /obj/item/weapon/spacecash/c50, \
+ /obj/item/weapon/spacecash/c500 \
+ )
+ var/item3_type = pick( \
+ /obj/item/weapon/coin/silver, \
+ /obj/item/weapon/coin/silver, \
+ /obj/item/weapon/coin/gold, \
+ /obj/item/weapon/coin/iron, \
+ /obj/item/weapon/coin/iron, \
+ /obj/item/weapon/coin/iron \
+ )
- spawn(2)
- if(item1_type)
- new item1_type(src)
- if(item2_type)
- new item2_type(src)
- if(item3_type)
- new item3_type(src)
+ if(item1_type)
+ new item1_type(src)
+ if(item2_type)
+ new item2_type(src)
+ if(item3_type)
+ new item3_type(src)
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 4b5cc4e6b57..a253738887e 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -199,7 +199,7 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
-/obj/item/weapon/storage/backpack/chameleon/New()
+/obj/item/weapon/storage/backpack/chameleon/fill()
..()
if(!clothing_choices)
var/blocked = list(src.type, /obj/item/weapon/storage/backpack/satchel/withwallet)
diff --git a/code/modules/detectivework/tools/crimekit.dm b/code/modules/detectivework/tools/crimekit.dm
index 1cb4836da1b..fa808047b53 100644
--- a/code/modules/detectivework/tools/crimekit.dm
+++ b/code/modules/detectivework/tools/crimekit.dm
@@ -9,11 +9,11 @@
max_storage_space = 35
contained_sprite = 1
-/obj/item/weapon/storage/briefcase/crimekit/New()
+/obj/item/weapon/storage/briefcase/crimekit/fill()
..()
new /obj/item/weapon/storage/box/swabs(src)
new /obj/item/weapon/storage/box/fingerprints(src)
new /obj/item/weapon/reagent_containers/spray/luminol(src)
new /obj/item/device/uv_light(src)
new /obj/item/weapon/forensics/sample_kit(src)
- new /obj/item/weapon/forensics/sample_kit/powder(src)
\ No newline at end of file
+ new /obj/item/weapon/forensics/sample_kit/powder(src)
diff --git a/code/modules/detectivework/tools/storage.dm b/code/modules/detectivework/tools/storage.dm
index ff671a01b10..e16af1f722e 100644
--- a/code/modules/detectivework/tools/storage.dm
+++ b/code/modules/detectivework/tools/storage.dm
@@ -6,7 +6,7 @@
can_hold = list(/obj/item/weapon/forensics/swab)
storage_slots = 14
-/obj/item/weapon/storage/box/swabs/New()
+/obj/item/weapon/storage/box/swabs/fill()
..()
for(var/i=0;i