diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index cdb8e7d15e..fb5a2e754c 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -391,7 +391,7 @@
switch(href_list["common"])
if("undress")
for(var/obj/item/W in current)
- current.removeItem(W, force = 1)
+ current.drop_from_inventory(W)
if("takeuplink")
take_uplink()
memory = null//Remove any memory they may have had.
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index f35257a6a4..39c91afbed 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -100,7 +100,7 @@
user.visible_message("[user] has unsheathed \a [concealed_blade] from \his [src]!", "You unsheathe \the [concealed_blade] from \the [src].")
// Calling drop/put in hands to properly call item drop/pickup procs
playsound(user.loc, 'sound/weapons/flipblade.ogg', 50, 1)
- user.removeItem(src)
+ user.drop_from_inventory(src)
user.put_in_hands(concealed_blade)
user.put_in_hands(src)
user.update_inv_l_hand(0)
@@ -112,7 +112,8 @@
/obj/item/weapon/cane/concealed/attackby(var/obj/item/weapon/material/butterfly/W, var/mob/user)
if(!src.concealed_blade && istype(W))
user.visible_message("[user] has sheathed \a [W] into \his [src]!", "You sheathe \the [W] into \the [src].")
- user.removeItem(W, src)
+ user.drop_from_inventory(W)
+ W.loc = src
src.concealed_blade = W
update_icon()
else
diff --git a/code/game/antagonist/antagonist_equip.dm b/code/game/antagonist/antagonist_equip.dm
index 9eea323584..2f4bc6da3a 100644
--- a/code/game/antagonist/antagonist_equip.dm
+++ b/code/game/antagonist/antagonist_equip.dm
@@ -6,7 +6,8 @@
// This could use work.
if(flags & ANTAG_CLEAR_EQUIPMENT)
for(var/obj/item/thing in player.contents)
- if(player.removeItem(thing, force = 1))
+ player.drop_from_inventory(thing)
+ if(thing.loc != player)
qdel(thing)
return 1
diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm
index 8eee626d2b..45e852551d 100644
--- a/code/game/dna/genes/monkey.dm
+++ b/code/game/dna/genes/monkey.dm
@@ -22,7 +22,7 @@
for(var/obj/item/W in (H.contents-implants))
if (W==H.w_uniform) // will be teared
continue
- H.removeItem(W, force = 1)
+ H.drop_from_inventory(W)
M.transforming = 1
M.canmove = 0
M.icon = null
@@ -90,7 +90,7 @@
W.loc = null
if(!connected)
for(var/obj/item/W in (Mo.contents-implants))
- Mo.removeItem(W, force = 1)
+ Mo.drop_from_inventory(W)
M.transforming = 1
M.canmove = 0
M.icon = null
diff --git a/code/game/gamemodes/changeling/powers/armblade.dm b/code/game/gamemodes/changeling/powers/armblade.dm
index 38981ddd6c..7ab1cdda3b 100644
--- a/code/game/gamemodes/changeling/powers/armblade.dm
+++ b/code/game/gamemodes/changeling/powers/armblade.dm
@@ -79,7 +79,7 @@
organ.implants -= src
host.pinned -= src
host.embedded -= src
- host.removeItem(src, force = 1)
+ host.drop_from_inventory(src)
spawn(1)
if(src)
qdel(src)
\ No newline at end of file
diff --git a/code/game/gamemodes/changeling/powers/lesser_form.dm b/code/game/gamemodes/changeling/powers/lesser_form.dm
index cd487c0dc3..f2742490f6 100644
--- a/code/game/gamemodes/changeling/powers/lesser_form.dm
+++ b/code/game/gamemodes/changeling/powers/lesser_form.dm
@@ -78,7 +78,7 @@
qdel(animation)
for(var/obj/item/W in src)
- C.removeItem(W, force = 1)
+ C.drop_from_inventory(W)
var/mob/living/carbon/human/O = new /mob/living/carbon/human( src )
if (C.dna.GetUIState(DNA_UI_GENDER))
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index c8c44b825f..4ecef5449a 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -830,11 +830,11 @@ var/list/sacrificed = list()
return
cultist.buckled = null
if (cultist.handcuffed)
- cultist.removeItem(cultist.handcuffed, force = 1)
+ cultist.drop_from_inventory(cultist.handcuffed)
if (cultist.legcuffed)
- cultist.removeItem(cultist.legcuffed, force = 1)
+ cultist.drop_from_inventory(cultist.legcuffed)
if (istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle))
- cultist.removeItem(cultist.wear_mask, force = 1)
+ cultist.drop_from_inventory(cultist.wear_mask)
if(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded)
cultist.loc:welded = 0
if(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked)
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm
index 5ed25c44af..c25e3c5567 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm
@@ -93,7 +93,7 @@
playsound(src, 'sound/effects/supermatter.ogg', 50, 1)
- user.removeItem(W, force = 1)
+ user.drop_from_inventory(W)
Consume(W)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 8650bc8658..051223d6fe 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -198,7 +198,8 @@
var/obj/item/stack/stack = eating
stack.use(max(1, round(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials.
else
- user.deleteItem(O)
+ user.remove_from_mob(O)
+ qdel(O)
updateUsrDialog()
return
diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm
index bd3f2bb8e0..8122d49b33 100644
--- a/code/game/machinery/biogenerator.dm
+++ b/code/game/machinery/biogenerator.dm
@@ -55,7 +55,8 @@
if(beaker)
user << "]The [src] is already loaded."
else
- user.removeItem(O, src)
+ user.remove_from_mob(O)
+ O.loc = src
beaker = O
updateUsrDialog()
else if(processing)
@@ -86,7 +87,8 @@
if(i >= 10)
user << "\The [src] is full! Activate it."
else
- user.removeItem(O, src)
+ user.remove_from_mob(O)
+ O.loc = src
user << "You put \the [O] in \the [src]"
update_icon()
return
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index f6c72d1b8b..e35b0953fe 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -127,7 +127,8 @@
if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already.
user << "You attach \the [W] into the assembly inner circuits."
upgrades += W
- user.removeItem(W, src)
+ user.remove_from_mob(W)
+ W.loc = src
return
// Taking out upgrades
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index 7b72962eb8..3bc9a17fce 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -59,9 +59,13 @@
if(!istype(id_card))
return ..()
- if(!scan && (access_change_ids in id_card.access) && user.removeItem(id_card, src))
+ if(!scan && (access_change_ids in id_card.access) && user.unEquip(id_card))
+ user.drop_item()
+ id_card.forceMove(src)
scan = id_card
- else if(!modify && user.removeItem(id_card, src))
+ else if(!modify)
+ user.drop_item()
+ id_card.forceMove(src)
modify = id_card
nanomanager.update_uis(src)
@@ -153,7 +157,8 @@
modify = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
+ I.forceMove(src)
modify = I
if ("scan")
diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index 30d12b0b50..f0b763ed99 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -61,6 +61,7 @@
..()
uid = "[rand(100,999)]-G[rand(10,99)]"
+
/obj/machinery/computer/guestpass/attackby(obj/I, mob/user)
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
user << "You start disconnecting the monitor."
@@ -82,7 +83,8 @@
qdel(src)
return
if(istype(I, /obj/item/weapon/card/id))
- if(!giver && user.removeItem(I, src))
+ if(!giver && user.unEquip(I))
+ I.forceMove(src)
giver = I
updateUsrDialog()
else if(giver)
@@ -175,7 +177,8 @@
accesses.Cut()
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
+ I.loc = src
giver = I
updateUsrDialog()
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index b0d55165bd..3eee7615b3 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -36,7 +36,8 @@
return
/obj/machinery/computer/med_data/attackby(var/obj/item/O, var/mob/user)
- if(istype(O, /obj/item/weapon/card/id) && !scan && user.removeItem(O, src))
+ if(istype(O, /obj/item/weapon/card/id) && !scan && user.unEquip(O))
+ O.loc = src
scan = O
user << "You insert \the [O]."
else
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index fb8c05aeba..2624c4ff28 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -248,7 +248,8 @@ What a mess.*/
scan = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
+ I.loc = src
scan = I
if("Log Out")
diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm
index fd2f34cc9c..1fa38c4a71 100644
--- a/code/game/machinery/computer/skills.dm
+++ b/code/game/machinery/computer/skills.dm
@@ -25,7 +25,8 @@
var/order = 1 // -1 = Descending - 1 = Ascending
/obj/machinery/computer/skills/attackby(obj/item/O as obj, var/mob/user)
- if(istype(O, /obj/item/weapon/card/id) && !scan && user.removeItem(O, src))
+ if(istype(O, /obj/item/weapon/card/id) && !scan && user.unEquip(O))
+ O.loc = src
scan = O
user << "You insert [O]."
else
@@ -184,7 +185,8 @@ What a mess.*/
scan = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
+ I.loc = src
scan = I
if("Log Out")
diff --git a/code/game/machinery/computer3/computers/HolodeckControl.dm b/code/game/machinery/computer3/computers/HolodeckControl.dm
index fefbbfcf7d..fc781430c4 100644
--- a/code/game/machinery/computer3/computers/HolodeckControl.dm
+++ b/code/game/machinery/computer3/computers/HolodeckControl.dm
@@ -154,7 +154,7 @@
if(isobj(obj))
var/mob/M = obj.loc
if(ismob(M))
- M.removeItem(obj)
+ M.remove_from_mob(obj)
M.update_icons() //so their overlays update
if(!silent)
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index ac88f1644b..f336ad310e 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -386,7 +386,8 @@
/obj/machinery/cryopod/proc/despawn_occupant()
//Drop all items into the pod.
for(var/obj/item/W in occupant)
- occupant.removeItem(W, src, force = 1)
+ occupant.drop_from_inventory(W)
+ W.forceMove(src)
if(W.contents.len) //Make sure we catch anything not handled by qdel() on the items.
for(var/obj/item/O in W.contents)
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index dfc8fa6652..100135d389 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -128,7 +128,9 @@
"You add one of [O] to \the [src].")
return
else
- user.removeItem(O, src)
+ // user.remove_from_mob(O) //This just causes problems so far as I can tell. -Pete
+ user.drop_item()
+ O.loc = src
user.visible_message( \
"\The [user] has added \the [O] to \the [src].", \
"You add \the [O] to \the [src].")
diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm
index dced74de6d..ac13a52bc4 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -218,7 +218,8 @@
user << "\The [src] is full."
return 1
else
- user.removeItem(O, src)
+ user.remove_from_mob(O)
+ O.loc = src
if(item_quants[O.name])
item_quants[O.name]++
else
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 1daf18b0a5..3a08a681d2 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -311,7 +311,7 @@ Buildable meters
/obj/item/pipe/afterattack(turf/simulated/floor/target, mob/user, proximity)
if(!proximity) return
if(istype(target))
- user.removeItem(src, target)
+ user.drop_from_inventory(src, target)
else
return ..()
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index c60ae723d5..6e20801680 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -746,7 +746,7 @@ var/list/turret_icons
if(isrobot(user))
return
var/obj/item/weapon/gun/energy/E = I //typecasts the item to an energy gun
- if(!user.removeItem(I))
+ if(!user.unEquip(I))
user << "\the [I] is stuck to your hand, you cannot put it in \the [src]"
return
installation = I.type //installation becomes I.type
@@ -767,7 +767,7 @@ var/list/turret_icons
if(4)
if(isprox(I))
build_step = 5
- if(!user.removeItem(I))
+ if(!user.unEquip(I))
user << "\the [I] is stuck to your hand, you cannot put it in \the [src]"
return
user << "You add the prox sensor to the turret."
diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm
index be7b340b72..e9a2081fb2 100644
--- a/code/game/machinery/seed_extractor.dm
+++ b/code/game/machinery/seed_extractor.dm
@@ -11,7 +11,7 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob
// Fruits and vegetables.
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O, /obj/item/weapon/grown))
- user.removeItem(O)
+ user.remove_from_mob(O)
var/datum/seed/new_seed_type
if(istype(O, /obj/item/weapon/grown))
diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm
index 6abebf8c2c..7efa498d09 100644
--- a/code/game/machinery/supplybeacon.dm
+++ b/code/game/machinery/supplybeacon.dm
@@ -17,7 +17,8 @@
return
var/obj/S = new deploy_path(get_turf(user))
user.visible_message("\The [user] deploys \the [S].")
- user.deleteItem(src)
+ user.unEquip(src)
+ qdel(src)
/obj/machinery/power/supply_beacon
name = "supply beacon"
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index b2924ac805..33d5aecddb 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -260,7 +260,8 @@
cashmoney.worth -= currently_vending.price
if(cashmoney.worth <= 0)
- usr.deleteItem(cashmoney)
+ usr.drop_from_inventory(cashmoney)
+ qdel(cashmoney)
else
cashmoney.update_icon()
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 6057747df0..b742b8a14b 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -794,7 +794,8 @@
return
else if(istype(W, /obj/item/mecha_parts/mecha_tracking))
- user.removeItem(W, src)
+ user.drop_from_inventory(W)
+ W.forceMove(src)
user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src]")
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 2493e29609..2934e5d68d 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -85,7 +85,7 @@
/obj/item/Destroy()
if(ismob(loc))
var/mob/m = loc
- m.removeItem(src, force = 1)
+ m.drop_from_inventory(src)
m.update_inv_r_hand()
m.update_inv_l_hand()
src.loc = null
@@ -178,7 +178,7 @@
src.throwing = 0
if (src.loc == user)
- if(!user.removeItem(src))
+ if(!user.unEquip(src))
return
else
if(isliving(src.loc))
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 33c505ea92..a3db6b15a1 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -1152,13 +1152,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
return 1
else
var/obj/item/I = user.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && user.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && user.unEquip(I))
+ I.loc = src
id = I
return 1
else
var/obj/item/weapon/card/I = user.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && I:registered_name && user.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && I:registered_name && user.unEquip(I))
var/obj/old_id = id
+ I.loc = src
id = I
user.put_in_hands(old_id)
return 1
diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm
index 88fad1d056..025196b218 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -23,7 +23,8 @@
if(!parts)
user << "This kit has no parts for this modification left."
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
return
var/allowed = 0
@@ -58,7 +59,8 @@
parts &= ~MODKIT_SUIT
if(!parts)
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
/obj/item/device/modkit/examine(mob/user)
..(user)
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index db373754bd..5b769ed803 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -27,11 +27,13 @@
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user )
A.icon = 'icons/obj/assemblies.dmi'
- user.removeItem(W, A)
+ user.drop_from_inventory(W)
+ W.loc = A
W.master = A
A.part1 = W
- user.removeItem(src, A)
+ user.drop_from_inventory(src)
+ loc = A
master = A
A.part2 = src
diff --git a/code/game/objects/items/devices/telecrystal.dm b/code/game/objects/items/devices/telecrystal.dm
index 02654c3b7c..aa7b633590 100644
--- a/code/game/objects/items/devices/telecrystal.dm
+++ b/code/game/objects/items/devices/telecrystal.dm
@@ -15,6 +15,7 @@ For new antags, make sure to add "player.mind.accept_tcrystals = 1" if you want
/obj/item/device/telecrystal/attack_self(mob/user as mob)
if(user.mind.accept_tcrystals) //Checks to see if antag type allows for tcrystals
user.mind.tcrystals += 1
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
return
\ No newline at end of file
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index d268e2f204..88b53bd342 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -47,8 +47,9 @@
if(attached_device)
user << "There is already an device attached to the valve, remove it first."
return
- user.removeItem(A, src)
+ user.remove_from_mob(item)
attached_device = A
+ A.loc = src
user << "You attach the [item] to the valve controls and secure it."
A.holder = src
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm
index 0a88d7890f..54062ff853 100644
--- a/code/game/objects/items/glassjar.dm
+++ b/code/game/objects/items/glassjar.dm
@@ -72,7 +72,8 @@
return
var/obj/item/weapon/spacecash/S = W
user.visible_message("[user] puts [S.worth] [S.worth > 1 ? "thalers" : "thaler"] into \the [src].")
- user.removeItem(S, src)
+ user.drop_from_inventory(S)
+ S.loc = src
update_icon()
/obj/item/glass_jar/update_icon() // Also updates name and desc
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index bf7c6eeccf..3ccf1fb3a9 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -19,7 +19,7 @@
if(!istype(user))
var/mob/living/temp = user
if(istype(temp))
- temp.removeItem(src, force = 1)
+ temp.drop_from_inventory(src)
qdel(src)
return
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index e19ee4bd8f..11c312048d 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -118,7 +118,7 @@
B.loc = get_turf(src)
user << "You armed the robot frame."
if (user.get_inactive_hand()==src)
- user.removeItem(src)
+ user.remove_from_mob(src)
user.put_in_inactive_hand(B)
qdel(src)
else
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index a99684c73b..83ce6d3f49 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -187,7 +187,7 @@
amount -= used
if (amount <= 0)
if(usr)
- usr.removeItem(src)
+ usr.remove_from_mob(src)
qdel(src) //should be safe to qdel immediately since if someone is still using this stack it will persist for a little while longer
return 1
else
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index a7738cd329..80080220e9 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -51,7 +51,8 @@
if((stored_matter + 10) > 30)
user << "The RCD can't hold any more matter-units."
return
- user.deleteItem(W)
+ user.drop_from_inventory(W)
+ qdel(W)
stored_matter += 10
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user << "The RCD now holds [stored_matter]/30 matter-units."
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index d951333ec9..4772063b4c 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -156,7 +156,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/mob/living/M = loc
if (!nomessage)
M << "Your [name] goes out."
- M.removeItem(src) //un-equip it so the overlays can update
+ M.remove_from_mob(src) //un-equip it so the overlays can update
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 5e2cb1946d..484c185a14 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -93,7 +93,7 @@
spawn(0)//this prevents the collapse of space-time continuum
if (user)
- user.removeItem(src, force = 1)
+ user.drop_from_inventory(src)
qdel(src)
return uses
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index c1292ba9d1..73c198c8ab 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -109,7 +109,7 @@
if(!ispath(gift_type,/obj/item)) return
var/obj/item/I = new gift_type(M)
- M.removeItem(src)
+ M.remove_from_mob(src)
M.put_in_hands(I)
I.add_fingerprint(M)
qdel(src)
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 0535045848..f87f0fa830 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -59,7 +59,8 @@
path = 1
user << "You add [W] to the metal casing."
playsound(src.loc, 'sound/items/Screwdriver2.ogg', 25, -3)
- user.removeItem(det, src)
+ user.remove_from_mob(det)
+ det.loc = src
detonator = det
if(istimer(detonator.a_left))
var/obj/item/device/assembly/timer/T = detonator.a_left
@@ -175,7 +176,7 @@
if(istype(loc, /mob/living/carbon)) //drop dat grenade if it goes off in your hand
var/mob/living/carbon/C = loc
- C.removeItem(src)
+ C.drop_from_inventory(src)
C.throw_mode_off()
invisibility = INVISIBILITY_MAXIMUM //Why am i doing this?
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index 4b43cc2601..1868827b5b 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -81,7 +81,7 @@
if(dispenser)
cuffs = new(get_turf(user))
else
- user.removeItem(cuffs)
+ user.drop_from_inventory(cuffs)
cuffs.loc = target
target.handcuffed = cuffs
target.update_inv_handcuffed()
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index 8011d25859..4f168556d2 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -126,7 +126,7 @@
c.scanned = A
if(istype(A.loc,/mob/living/carbon/human))
var/mob/living/carbon/human/H = A.loc
- H.removeItem(A)
+ H.remove_from_mob(A)
else if(istype(A.loc,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = A.loc
S.remove_from_storage(A)
diff --git a/code/game/objects/items/weapons/improvised_components.dm b/code/game/objects/items/weapons/improvised_components.dm
index 505e6bd995..af4e528b70 100644
--- a/code/game/objects/items/weapons/improvised_components.dm
+++ b/code/game/objects/items/weapons/improvised_components.dm
@@ -62,7 +62,9 @@
finished = new /obj/item/weapon/melee/baton/cattleprod(get_turf(user))
user << "You fasten the wirecutters to the top of the rod with the cable, prongs outward."
if(finished)
- user.deleteItem(src)
- user.deleteItem(I)
+ user.drop_from_inventory(src)
+ user.drop_from_inventory(I)
+ qdel(I)
+ qdel(src)
user.put_in_hands(finished)
update_icon(user)
diff --git a/code/game/objects/items/weapons/material/ashtray.dm b/code/game/objects/items/weapons/material/ashtray.dm
index 0dc0953888..d5e7cd67bb 100644
--- a/code/game/objects/items/weapons/material/ashtray.dm
+++ b/code/game/objects/items/weapons/material/ashtray.dm
@@ -50,7 +50,8 @@ var/global/list/ashtray_cache = list()
if (contents.len >= max_butts)
user << "\The [src] is full."
return
- user.removeItem(W, src)
+ user.remove_from_mob(W)
+ W.loc = src
if (istype(W,/obj/item/clothing/mask/smokable/cigarette))
var/obj/item/clothing/mask/smokable/cigarette/cig = W
diff --git a/code/game/objects/items/weapons/material/material_weapons.dm b/code/game/objects/items/weapons/material/material_weapons.dm
index b7d4907f61..18181df6b0 100644
--- a/code/game/objects/items/weapons/material/material_weapons.dm
+++ b/code/game/objects/items/weapons/material/material_weapons.dm
@@ -83,7 +83,7 @@
T.visible_message("\The [src] [material.destruction_desc]!")
if(istype(loc, /mob/living))
var/mob/living/M = loc
- M.removeItem(src, force = 1)
+ M.drop_from_inventory(src)
playsound(src, "shatter", 70, 1)
if(!consumed && drops_debris) material.place_shard(T)
qdel(src)
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index 297361d546..ac8da3d835 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -207,7 +207,7 @@
..()
/obj/item/weapon/melee/energy/blade/attack_self(mob/user as mob)
- user.removeItem(src, force = 1)
+ user.drop_from_inventory(src)
spawn(1) if(src) qdel(src)
/obj/item/weapon/melee/energy/blade/dropped()
@@ -225,5 +225,5 @@
organ.implants -= src
host.pinned -= src
host.embedded -= src
- host.removeItem(src, force = 1)
+ host.drop_from_inventory(src)
spawn(1) if(src) qdel(src)
diff --git a/code/game/objects/items/weapons/mop_deploy.dm b/code/game/objects/items/weapons/mop_deploy.dm
index 6658a50a1f..e50f82966b 100644
--- a/code/game/objects/items/weapons/mop_deploy.dm
+++ b/code/game/objects/items/weapons/mop_deploy.dm
@@ -52,7 +52,7 @@
..()
/obj/item/weapon/mop_deploy/attack_self(mob/user as mob)
- user.removeItem(src, force = 1)
+ user.drop_from_inventory(src)
spawn(1) if(src) del(src)
/obj/item/weapon/mop_deploy/dropped()
@@ -70,5 +70,5 @@
organ.implants -= src
host.pinned -= src
host.embedded -= src
- host.removeItem(src, force = 1)
+ host.drop_from_inventory(src)
spawn(1) if(src) del(src)
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 8c5f8dbd8a..476bf1a67e 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -153,7 +153,7 @@
break
if(!inserted || !S.amount)
- usr.removeItem(S)
+ usr.remove_from_mob(S)
usr.update_icons() //update our overlays
if (usr.client && usr.s_active != src)
usr.client.screen -= S
diff --git a/code/game/objects/items/weapons/storage/laundry_basket.dm b/code/game/objects/items/weapons/storage/laundry_basket.dm
index ab8ca23c9b..ffb4867ca6 100644
--- a/code/game/objects/items/weapons/storage/laundry_basket.dm
+++ b/code/game/objects/items/weapons/storage/laundry_basket.dm
@@ -82,6 +82,6 @@
use_to_pickup = 0
/obj/item/weapon/storage/laundry_basket/offhand/dropped(mob/user as mob)
- user.removeItem(linked, force = 1)
+ user.drop_from_inventory(linked)
return
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index aaea243a7e..7dcc429d27 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -69,7 +69,7 @@
if (( usr.restrained() ) || ( usr.stat ))
return
- if ((src.loc == usr) && !usr.removeItem(src))
+ if ((src.loc == usr) && !usr.unEquip(src))
return
switch(over_object.name)
@@ -347,7 +347,7 @@
/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
if(!istype(W)) return 0
if(usr)
- usr.removeItem(W)
+ usr.remove_from_mob(W)
usr.update_icons() //update our overlays
W.loc = src
W.on_enter_storage(src)
diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm
index b51e28162d..c10e83511f 100644
--- a/code/game/objects/items/weapons/tanks/tank_types.dm
+++ b/code/game/objects/items/weapons/tanks/tank_types.dm
@@ -104,7 +104,8 @@
if ((!F.status)||(F.ptank)) return
src.master = F
F.ptank = src
- user.removeItem(src, F)
+ user.remove_from_mob(src)
+ src.loc = F
return
/*
diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm
index 4ad7d11851..0eea22ea52 100644
--- a/code/game/objects/items/weapons/tape.dm
+++ b/code/game/objects/items/weapons/tape.dm
@@ -62,7 +62,8 @@
else if(user.zone_sel.selecting == "r_hand" || user.zone_sel.selecting == "l_hand")
var/obj/item/weapon/handcuffs/cable/tape/T = new(user)
if(!T.place_handcuffs(H, user))
- user.deleteItem(T)
+ user.unEquip(T)
+ qdel(T)
else
return ..()
return 1
@@ -70,7 +71,7 @@
/obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user)
if(!istype(W, /obj/item/weapon/paper))
return
- user.removeItem(W)
+ user.drop_from_inventory(W)
var/obj/item/weapon/ducttape/tape = new(get_turf(src))
tape.attach(W)
user.put_in_hands(tape)
@@ -106,7 +107,7 @@
user << "You remove \the [initial(name)] from [stuck]."
- user.removeItem(src)
+ user.drop_from_inventory(src)
stuck.forceMove(get_turf(src))
user.put_in_hands(stuck)
stuck = null
@@ -128,7 +129,8 @@
user << "You cannot reach that from here." // can only place stuck papers in cardinal directions, to
return // reduce papers around corners issue.
- user.removeItem(src, source_turf)
+ user.drop_from_inventory(src)
+ forceMove(source_turf)
if(params)
var/list/mouse_control = params2list(params)
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index fe1e62caa0..a79d6575e5 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -195,12 +195,12 @@
if (user.client)
user.client.screen -= src
if (user.r_hand == src)
- user.removeItem(src)
+ user.remove_from_mob(src)
else
- user.removeItem(src)
+ user.remove_from_mob(src)
src.master = F
src.layer = initial(src.layer)
- user.removeItem(src)
+ user.remove_from_mob(src)
if (user.client)
user.client.screen -= src
src.loc = F
diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm
index 783a9f515d..9c355356b3 100644
--- a/code/game/objects/items/weapons/traps.dm
+++ b/code/game/objects/items/weapons/traps.dm
@@ -36,7 +36,7 @@
)
deployed = 1
- user.removeItem(src)
+ user.drop_from_inventory(src)
update_icon()
anchored = 1
diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm
index 0050c8ca94..625af060db 100644
--- a/code/game/objects/structures/coathanger.dm
+++ b/code/game/objects/structures/coathanger.dm
@@ -21,7 +21,7 @@
if (can_hang && !coat)
user.visible_message("[user] hangs [W] on \the [src].", "You hang [W] on the \the [src]")
coat = W
- user.removeItem(coat, src)
+ user.drop_from_inventory(coat, src)
update_icon()
else
user << "You cannot hang [W] on [src]"
diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
index f338b760fb..13a567ca75 100644
--- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
@@ -66,7 +66,8 @@
user << "Unwield the axe first."
return
fireaxe = O
- user.removeItem(O, src)
+ user.remove_from_mob(O)
+ src.contents += O
user << "You place the fire axe back in the [src.name]."
update_icon()
else
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index 9af8021d44..dcc0270abc 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -27,7 +27,8 @@
return
if(istype(O, /obj/item/weapon/extinguisher))
if(!has_extinguisher && opened)
- user.removeItem(O, src)
+ user.remove_from_mob(O)
+ contents += O
has_extinguisher = O
user << "You place [O] in [src]."
else
diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm
index 8dbc65edbc..174634e3cb 100644
--- a/code/game/objects/structures/noticeboard.dm
+++ b/code/game/objects/structures/noticeboard.dm
@@ -33,7 +33,8 @@
if(notices < 5)
O.add_fingerprint(user)
add_fingerprint(user)
- user.removeItem(O, src)
+ user.drop_from_inventory(O)
+ O.loc = src
notices++
icon_state = "nboard0[notices]" //update sprite
user << "You pin the paper to the noticeboard."
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index f933bff418..73914e113c 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -96,7 +96,9 @@
user << "\The [src] is already padded."
return
var/obj/item/stack/C = W
- if(C.get_amount() < 1)
+ if(C.get_amount() < 1) // How??
+ user.drop_from_inventory(C)
+ qdel(C)
return
var/padding_type //This is awful but it needs to be like this until tiles are given a material var.
if(istype(W,/obj/item/stack/tile/carpet))
@@ -110,7 +112,8 @@
return
C.use(1)
if(!istype(src.loc, /turf))
- user.removeItem(src, get_turf(src))
+ user.drop_from_inventory(src)
+ src.loc = get_turf(src)
user << "You add padding to \the [src]."
add_padding(padding_type)
return
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index a579ceab8e..e4840bedc6 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -72,7 +72,7 @@ var/global/list/stool_cache = list() //haha stool
/obj/item/weapon/stool/attack(mob/M as mob, mob/user as mob)
if (prob(5) && istype(M,/mob/living))
user.visible_message("[user] breaks [src] over [M]'s back!")
- user.removeItem(src)
+ user.remove_from_mob(src)
dismantle()
qdel(src)
var/mob/living/T = M
@@ -112,7 +112,9 @@ var/global/list/stool_cache = list() //haha stool
user << "\The [src] is already padded."
return
var/obj/item/stack/C = W
- if(C.get_amount() < 1)
+ if(C.get_amount() < 1) // How??
+ user.drop_from_inventory(C)
+ qdel(C)
return
var/padding_type //This is awful but it needs to be like this until tiles are given a material var.
if(istype(W,/obj/item/stack/tile/carpet))
@@ -126,7 +128,8 @@ var/global/list/stool_cache = list() //haha stool
return
C.use(1)
if(!istype(src.loc, /turf))
- user.removeItem(src, get_turf(src))
+ user.drop_from_inventory(src)
+ src.loc = get_turf(src)
user << "You add padding to \the [src]."
add_padding(padding_type)
return
diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm
index 4996be0469..68b10ccf7a 100644
--- a/code/game/objects/structures/target_stake.dm
+++ b/code/game/objects/structures/target_stake.dm
@@ -27,7 +27,8 @@
if(istype(W, /obj/item/target))
density = 0
W.density = 1
- user.removeItem(W, loc)
+ user.remove_from_mob(W)
+ W.loc = loc
W.layer = 3.1
pinned_target = W
user << "You slide the target into the stake."
diff --git a/code/modules/admin/secrets/admin_secrets/prison_warp.dm b/code/modules/admin/secrets/admin_secrets/prison_warp.dm
index 9a9d3e2d09..eec85c2f04 100644
--- a/code/modules/admin/secrets/admin_secrets/prison_warp.dm
+++ b/code/modules/admin/secrets/admin_secrets/prison_warp.dm
@@ -27,7 +27,7 @@
if(istype(W, /obj/item/organ/external))
continue
//don't strip organs
- H.removeItem(W)
+ H.drop_from_inventory(W)
//teleport person to cell
H.loc = pick(prisonwarp)
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(H), slot_w_uniform)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 970ded7c96..99b3f7a2f4 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -973,7 +973,7 @@
//strip their stuff and stick it in the crate
for(var/obj/item/I in M)
- M.removeItem(I, locker)
+ M.drop_from_inventory(I, locker)
M.update_icons()
//so they black out before warping
@@ -1006,7 +1006,7 @@
return
for(var/obj/item/I in M)
- M.removeItem(I, force = 1)
+ M.drop_from_inventory(I)
M.Paralyse(5)
sleep(5)
@@ -1031,7 +1031,7 @@
return
for(var/obj/item/I in M)
- M.removeItem(I, force = 1)
+ M.drop_from_inventory(I)
M.Paralyse(5)
sleep(5)
@@ -1078,7 +1078,7 @@
return
for(var/obj/item/I in M)
- M.removeItem(I, force = 1)
+ M.drop_from_inventory(I)
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/observer = M
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 6fa7ef43a6..b21abd7e30 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -426,7 +426,7 @@
for (var/obj/item/I in M)
if (istype(I, /obj/item/weapon/implant))
continue
- M.removeItem(I)
+ M.drop_from_inventory(I)
if(I.loc != M)
qdel(I)
switch(dresscode)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 96acc58fce..5d8db9c072 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -10,7 +10,7 @@
return
for(var/obj/item/W in M)
- M.removeItem(W, force = 1)
+ M.drop_from_inventory(W)
log_admin("[key_name(usr)] made [key_name(M)] drop everything!")
message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!", 1)
@@ -28,7 +28,7 @@
return
//strip their stuff before they teleport into a cell :downs:
for(var/obj/item/W in M)
- M.removeItem(W, force = 1)
+ M.drop_from_inventory(W)
//teleport person to cell
M.Paralyse(5)
sleep(5) //so they black out before warping
diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm
index 558c3222dc..a78126bedc 100644
--- a/code/modules/assembly/bomb.dm
+++ b/code/modules/assembly/bomb.dm
@@ -86,7 +86,7 @@
var/obj/item/device/onetankbomb/R = new /obj/item/device/onetankbomb(loc)
M.drop_item() //Remove the assembly from your hands
- M.removeItem(src) //Remove the tank from your character,in case you were holding it
+ M.remove_from_mob(src) //Remove the tank from your character,in case you were holding it
M.put_in_hands(R) //Equips the bomb if possible, or puts it on the floor.
R.bombassembly = S //Tell the bomb about its assembly part
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index 724e1be9ee..021216f218 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -36,8 +36,8 @@
if((!isassembly(D))||(!isassembly(D2))) return 0
if((D:secured)||(D2:secured)) return 0
if(user)
- user.removeItem(D)
- user.removeItem(D2)
+ user.remove_from_mob(D)
+ user.remove_from_mob(D2)
D:holder = src
D2:holder = src
D.loc = src
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 7721253643..88ef03dda2 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -432,7 +432,8 @@
if(holding)
user << "\The [src] is already holding \a [holding]."
return
- user.removeItem(I, src)
+ user.unEquip(I)
+ I.forceMove(src)
holding = I
user.visible_message("\The [user] shoves \the [I] into \the [src].")
verbs |= /obj/item/clothing/shoes/proc/draw_knife
@@ -631,7 +632,7 @@
if (( usr.restrained() ) || ( usr.stat ))
return
- if (!usr.removeItem(src))
+ if (!usr.unEquip(src))
return
switch(over_object.name)
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 441763988b..b94cb78da5 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -43,7 +43,8 @@
user << "You are unable to wear \the [src] as \the [H.shoes] are in the way."
shoes = null
return 0
- H.removeItem(shoes, src) //Remove the old shoes so you can put on the magboots.
+ H.drop_from_inventory(shoes) //Remove the old shoes so you can put on the magboots.
+ shoes.forceMove(src)
if(!..())
if(shoes) //Put the old shoes back on if the check fails.
diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm
index b959400466..3e8cb36a6c 100644
--- a/code/modules/clothing/spacesuits/rig/modules/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm
@@ -55,7 +55,8 @@
return 0
user << "You slot \the [input_device] into the suit module."
- user.deleteItem(input_device)
+ user.drop_from_inventory(input_device)
+ qdel(input_device)
accepted_item.charges++
return 1
@@ -203,7 +204,8 @@
return
for(var/obj/item/weapon/melee/energy/blade/blade in M.contents)
- M.deleteItem(blade)
+ M.drop_from_inventory(blade)
+ qdel(blade)
/obj/item/rig_module/fabricator
diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm
index d9ff8bb7d6..11d551ace0 100644
--- a/code/modules/clothing/spacesuits/rig/modules/computer.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm
@@ -208,7 +208,8 @@
else
return 0
else
- user.removeItem(ai, src)
+ user.drop_from_inventory(ai)
+ ai.forceMove(src)
ai_card = ai
ai_mob << "You have been transferred to \the [holder]'s [src]."
user << "You load [ai_mob] into \the [holder]'s [src]."
diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm
index 764c07cf9e..8ee748e04a 100644
--- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm
@@ -200,6 +200,6 @@
return
explosion(get_turf(src), explosion_values[1], explosion_values[2], explosion_values[3], explosion_values[4])
if(holder && holder.wearer)
- holder.wearer.removeItem(src)
+ holder.wearer.drop_from_inventory(src)
qdel(holder)
qdel(src)
diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm
index da346e57b9..679a822aec 100644
--- a/code/modules/clothing/spacesuits/rig/modules/utility.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm
@@ -458,7 +458,8 @@
return
for(var/obj/item/weapon/mop_deploy/blade in M.contents)
- M.deleteItem(blade)
+ M.drop_from_inventory(blade)
+ del(blade)
//Space Cleaner Launcher
@@ -500,7 +501,8 @@
return 0
user << "You slot \the [input_device] into the suit module."
- user.deleteItem(input_device)
+ user.drop_from_inventory(input_device)
+ del(input_device)
accepted_item.charges++
return 1
diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index dd3395211e..ba50f29cf5 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -157,7 +157,7 @@
for(var/obj/item/piece in list(gloves,boots,helmet,chest))
var/mob/living/M = piece.loc
if(istype(M))
- M.removeItem(piece)
+ M.drop_from_inventory(piece)
qdel(piece)
processing_objects -= src
qdel(wires)
@@ -307,7 +307,7 @@
if(piece.loc != src && !(wearer && piece.loc == wearer))
if(istype(piece.loc, /mob/living))
M = piece.loc
- M.removeItem(piece)
+ M.unEquip(piece)
piece.forceMove(src)
if(!istype(wearer) || loc != wearer || wearer.back != src || canremove || !cell || cell.charge <= 0)
@@ -562,7 +562,7 @@
M.visible_message("[M] starts putting on \the [src]...", "You start putting on \the [src]...")
if(!do_after(M,seal_delay))
if(M && M.back == src)
- if(!M.removeItem(src))
+ if(!M.unEquip(src))
return
src.forceMove(get_turf(src))
return
@@ -620,7 +620,7 @@
if(use_obj && check_slot == use_obj)
H << "Your [use_obj.name] [use_obj.gender == PLURAL ? "retract" : "retracts"] swiftly."
use_obj.canremove = 1
- holder.removeItem(use_obj)
+ holder.drop_from_inventory(use_obj)
use_obj.forceMove(get_turf(src))
use_obj.dropped()
use_obj.canremove = 0
@@ -653,23 +653,27 @@
if(sealed)
if(H.head)
var/obj/item/garbage = H.head
- H.deleteItem(garbage)
+ H.drop_from_inventory(garbage)
H.head = null
+ qdel(garbage)
if(H.gloves)
var/obj/item/garbage = H.gloves
- H.deleteItem(garbage)
+ H.drop_from_inventory(garbage)
H.gloves = null
+ qdel(garbage)
if(H.shoes)
var/obj/item/garbage = H.shoes
- H.deleteItem(garbage)
+ H.drop_from_inventory(garbage)
H.shoes = null
+ qdel(garbage)
if(H.wear_suit)
var/obj/item/garbage = H.wear_suit
- H.deleteItem(garbage)
+ H.drop_from_inventory(garbage)
H.wear_suit = null
+ qdel(garbage)
for(var/piece in list("helmet","gauntlets","chest","boots"))
toggle_piece(piece, H, ONLY_DEPLOY)
diff --git a/code/modules/clothing/spacesuits/rig/rig_attackby.dm b/code/modules/clothing/spacesuits/rig/rig_attackby.dm
index 33003c124a..cda9d51796 100644
--- a/code/modules/clothing/spacesuits/rig/rig_attackby.dm
+++ b/code/modules/clothing/spacesuits/rig/rig_attackby.dm
@@ -56,7 +56,7 @@
user << "\The [src] already has a tank installed."
return
- if(!user.removeItem(W)) return
+ if(!user.unEquip(W)) return
air_supply = W
W.forceMove(src)
user << "You slot [W] into [src] and tighten the connecting valve."
@@ -84,7 +84,7 @@
return
if(!user || !W)
return
- if(!user.removeItem(mod)) return
+ if(!user.unEquip(mod)) return
user << "You install \the [mod] into \the [src]."
installed_modules |= mod
mod.forceMove(src)
@@ -94,7 +94,7 @@
else if(!cell && istype(W,/obj/item/weapon/cell))
- if(!user.removeItem(W)) return
+ if(!user.unEquip(W)) return
user << "You jack \the [W] into \the [src]'s battery mount."
W.forceMove(src)
src.cell = W
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index 222fc67f3a..6632e9a86b 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -125,28 +125,24 @@
H = helmet.loc
if(istype(H))
if(helmet && H.head == helmet)
- H.removeItem(helmet, src)
+ H.drop_from_inventory(helmet)
+ helmet.forceMove(src)
if(boots)
boots.canremove = 1
H = boots.loc
if(istype(H))
if(boots && H.shoes == boots)
- H.removeItem(boots, src)
+ H.drop_from_inventory(boots)
+ boots.forceMove(src)
if(tank)
tank.canremove = 1
- H = tank.loc
- if(istype(H))
- if(tank && H.s_store == tank)
- H.removeItem(tank, src)
+ tank.forceMove(src)
if(cooler)
cooler.canremove = 1
- H = cooler.loc
- if(istype(H))
- if(cooler && H.s_store == cooler)
- H.removeItem(cooler, src)
+ cooler.forceMove(src)
/obj/item/clothing/suit/space/void/verb/toggle_helmet()
@@ -169,7 +165,8 @@
if(H.head == helmet)
H << "You retract your suit helmet."
helmet.canremove = 1
- H.removeItem(helmet, src)
+ H.drop_from_inventory(helmet)
+ helmet.forceMove(src)
else
if(H.head)
H << "You cannot deploy your helmet while wearing \the [H.head]."
@@ -207,7 +204,7 @@
cooler = null
H << "You press the emergency release, ejecting \the [removing] from your suit."
removing.canremove = 1
- H.removeItem(removing)
+ H.drop_from_inventory(removing)
/obj/item/clothing/suit/space/void/attackby(obj/item/W as obj, mob/user as mob)
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index 8ac1373d27..d9aa9bbd3d 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -32,7 +32,7 @@
suittoggled = 0
if(ishuman(hood.loc))
var/mob/living/carbon/H = hood.loc
- H.removeItem(hood, force = 1)
+ H.unEquip(hood, 1)
H.update_inv_wear_suit()
hood.loc = src
diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm
index 1ea459df51..9ba4ffa5e3 100644
--- a/code/modules/clothing/under/accessories/holster.dm
+++ b/code/modules/clothing/under/accessories/holster.dm
@@ -17,7 +17,8 @@
if(istype(user))
user.stop_aiming(no_message=1)
holstered = I
- user.removeItem(holstered, src)
+ user.drop_from_inventory(holstered)
+ holstered.loc = src
holstered.add_fingerprint(user)
w_class = max(w_class, holstered.w_class)
user.visible_message("[user] holsters \the [holstered].", "You holster \the [holstered].")
diff --git a/code/modules/detectivework/microscope/dnascanner.dm b/code/modules/detectivework/microscope/dnascanner.dm
index 946f6d390f..b3c2874014 100644
--- a/code/modules/detectivework/microscope/dnascanner.dm
+++ b/code/modules/detectivework/microscope/dnascanner.dm
@@ -43,8 +43,9 @@
var/obj/item/weapon/forensics/swab/swab = W
if(istype(swab) && swab.is_used())
- user.removeItem(swab, src)
+ user.unEquip(W)
src.bloodsamp = swab
+ swab.loc = src
user << "You insert \the [W] into \the [src]."
else
user << "\The [src] only accepts used swabs."
diff --git a/code/modules/detectivework/microscope/microscope.dm b/code/modules/detectivework/microscope/microscope.dm
index 9217e7627e..3bc596fb57 100644
--- a/code/modules/detectivework/microscope/microscope.dm
+++ b/code/modules/detectivework/microscope/microscope.dm
@@ -18,7 +18,8 @@
if(istype(W, /obj/item/weapon/forensics/swab)|| istype(W, /obj/item/weapon/sample/fibers) || istype(W, /obj/item/weapon/sample/print))
user << "You insert \the [W] into the microscope."
- user.removeItem(W, src)
+ user.unEquip(W)
+ W.forceMove(src)
sample = W
update_icon()
return
diff --git a/code/modules/detectivework/tools/evidencebag.dm b/code/modules/detectivework/tools/evidencebag.dm
index cc663bbae8..6aa4bdf99f 100644
--- a/code/modules/detectivework/tools/evidencebag.dm
+++ b/code/modules/detectivework/tools/evidencebag.dm
@@ -32,7 +32,7 @@
user.client.screen -= I
U.contents.Remove(I)
else if(user.item_is_in_hands(I))
- user.removeItem(I)
+ user.drop_from_inventory(I)
else
return
diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm
index 7849596d42..6887ef1fba 100644
--- a/code/modules/detectivework/tools/rag.dm
+++ b/code/modules/detectivework/tools/rag.dm
@@ -40,7 +40,7 @@
/obj/item/weapon/reagent_containers/glass/rag/attack_self(mob/user as mob)
if(on_fire)
user.visible_message("\The [user] stamps out [src].", "You stamp out [src].")
- user.removeItem(src)
+ user.unEquip(src)
extinguish()
else
remove_contents(user)
diff --git a/code/modules/detectivework/tools/sample_kits.dm b/code/modules/detectivework/tools/sample_kits.dm
index eb8738d395..fa5c7312a8 100644
--- a/code/modules/detectivework/tools/sample_kits.dm
+++ b/code/modules/detectivework/tools/sample_kits.dm
@@ -42,7 +42,7 @@
/obj/item/weapon/sample/attackby(var/obj/O, var/mob/user)
if(O.type == src.type)
- user.removeItem(O)
+ user.unEquip(O)
if(merge_evidence(O, user))
qdel(O)
return 1
diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm
index 4051bf9588..1229cee322 100644
--- a/code/modules/economy/cash.dm
+++ b/code/modules/economy/cash.dm
@@ -21,11 +21,13 @@
if(istype(W, /obj/item/weapon/spacecash/ewallet)) return 0
var/obj/item/weapon/spacecash/SC = W
+
SC.adjust_worth(src.worth)
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/h_user = user
- h_user.removeItem(src)
- h_user.removeItem(SC)
+
+ h_user.drop_from_inventory(src)
+ h_user.drop_from_inventory(SC)
h_user.put_in_hands(SC)
user << "You combine the Thalers to a bundle of [SC.worth] Thalers."
qdel(src)
@@ -77,6 +79,7 @@
/obj/item/weapon/spacecash/attack_self()
var/amount = input(usr, "How many Thalers do you want to take? (0 to [src.worth])", "Take Money", 20) as num
amount = round(Clamp(amount, 0, src.worth))
+
if(!amount)
return
@@ -135,6 +138,7 @@
proc/spawn_money(var/sum, spawnloc, mob/living/carbon/human/human_user as mob)
var/obj/item/weapon/spacecash/SC = new (spawnloc)
+
SC.set_worth(sum)
if (ishuman(human_user) && !human_user.get_active_hand())
human_user.put_in_hands(SC)
diff --git a/code/modules/economy/cash_register.dm b/code/modules/economy/cash_register.dm
index 3129c20489..109572ffc0 100644
--- a/code/modules/economy/cash_register.dm
+++ b/code/modules/economy/cash_register.dm
@@ -182,7 +182,7 @@
overlays |= "register_cash"
if(ishuman(user))
var/mob/living/carbon/human/H = user
- H.removeItem(SC)
+ H.drop_from_inventory(SC)
qdel(SC)
else
scan_cash(SC)
@@ -335,7 +335,7 @@
if(!SC.worth)
if(ishuman(SC.loc))
var/mob/living/carbon/human/H = SC.loc
- H.removeItem(SC)
+ H.drop_from_inventory(SC)
qdel(SC)
cash_stored += transaction_amount
diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm
index 6bbd4e64e8..1b353e3407 100644
--- a/code/modules/games/cards.dm
+++ b/code/modules/games/cards.dm
@@ -146,7 +146,8 @@
for(var/datum/playingcard/P in cards)
H.cards += P
H.concealed = src.concealed
- user.deleteItem(src)
+ user.drop_from_inventory(src,user.loc)
+ qdel(src)
H.update_icon()
return
..()
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index 53a070e64a..4c0d0a755e 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -211,7 +211,7 @@
if(isobj(obj))
var/mob/M = obj.loc
if(ismob(M))
- M.removeItem(obj)
+ M.remove_from_mob(obj)
M.update_icons() //so their overlays update
if(!silent)
diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm
index a9d589d841..5cd5458b4a 100644
--- a/code/modules/hydroponics/beekeeping/beehive.dm
+++ b/code/modules/hydroponics/beekeeping/beehive.dm
@@ -67,7 +67,8 @@
++frames
user.visible_message("[user] loads \the [I] into \the [src].", "You load \the [I] into \the [src].")
update_icon()
- user.deleteItem(I)
+ user.drop_from_inventory(I)
+ qdel(I)
return
else if(istype(I, /obj/item/bee_pack))
var/obj/item/bee_pack/B = I
@@ -228,7 +229,8 @@
if(do_after(user, 30))
user.visible_message("[user] constructs a beehive.", "You construct a beehive.")
new /obj/machinery/beehive(get_turf(user))
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
return
/obj/item/stack/wax
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 7c17c58467..608398a039 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -288,7 +288,7 @@
if(prob(35))
if(user)
user << "\The [src] has fallen to bits."
- user.removeItem(src)
+ user.drop_from_inventory(src)
qdel(src)
add_fingerprint(user)
diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm
index f731a28f72..015ab88ccb 100644
--- a/code/modules/hydroponics/seed_machines.dm
+++ b/code/modules/hydroponics/seed_machines.dm
@@ -88,7 +88,8 @@
if(S.seed && S.seed.get_trait(TRAIT_IMMUTABLE) > 0)
user << "That seed is not compatible with our genetics technology."
else
- user.removeItem(W, src)
+ user.drop_from_inventory(W)
+ W.loc = src
seed = W
user << "You load [W] into [src]."
return
@@ -113,7 +114,8 @@
user << "That disk does not have any gene data loaded."
return
- user.removeItem(W, src)
+ user.drop_from_inventory(W)
+ W.loc = src
loaded_disk = W
user << "You load [W] into [src]."
diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm
index de183d475d..448173104b 100644
--- a/code/modules/hydroponics/seed_storage.dm
+++ b/code/modules/hydroponics/seed_storage.dm
@@ -225,7 +225,7 @@
/obj/machinery/seed_storage/proc/add(var/obj/item/seeds/O as obj)
if (istype(O.loc, /mob))
var/mob/user = O.loc
- user.removeItem(O)
+ user.remove_from_mob(O)
else if(istype(O.loc,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = O.loc
S.remove_from_storage(O, src)
diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm
index 3e1cfc73e8..cfafd90ea2 100644
--- a/code/modules/hydroponics/trays/tray.dm
+++ b/code/modules/hydroponics/trays/tray.dm
@@ -475,7 +475,7 @@
if(!seed)
var/obj/item/seeds/S = O
- user.removeItem(O)
+ user.remove_from_mob(O)
if(!S.seed)
user << "The packet seems to be empty. You throw it away."
@@ -520,7 +520,7 @@
else if ( istype(O, /obj/item/weapon/plantspray) )
var/obj/item/weapon/plantspray/spray = O
- user.removeItem(O)
+ user.remove_from_mob(O)
toxins += spray.toxicity
pestlevel -= spray.pest_kill_str
weedlevel -= spray.weed_kill_str
diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm
index f3a8d4ea4d..ce365bbde2 100644
--- a/code/modules/mining/satchel_ore_boxdm.dm
+++ b/code/modules/mining/satchel_ore_boxdm.dm
@@ -12,7 +12,8 @@
/obj/structure/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/ore))
- user.removeItem(W, src)
+ user.remove_from_mob(W)
+ src.contents += W
if (istype(W, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = W
S.hide_from(usr)
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index d2009d4904..9d979787c5 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -24,6 +24,7 @@ var/list/slot_equipment_priority = list( \
//This proc is called whenever someone clicks an inventory ui slot.
/mob/proc/attack_ui(var/slot)
var/obj/item/W = get_active_hand()
+
var/obj/item/E = get_equipped_item(slot)
if (istype(E))
if(istype(W))
@@ -50,8 +51,10 @@ var/list/slot_equipment_priority = list( \
if(!W.mob_can_equip(src, slot))
if(del_on_fail)
qdel(W)
- else if(!disable_warning)
- src << "\red You are unable to equip that." //Only print if del_on_fail is false
+
+ else
+ if(!disable_warning)
+ src << "\red You are unable to equip that." //Only print if del_on_fail is false
return 0
equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail.
@@ -121,6 +124,22 @@ var/list/slot_equipment_priority = list( \
W.dropped()
return 0
+// Removes an item from inventory and places it in the target atom.
+// If canremove or other conditions need to be checked then use unEquip instead.
+/mob/proc/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
+
+ if(W)
+ if(!Target)
+ Target = loc
+
+ remove_from_mob(W)
+ if(!(W && W.loc)) return 1 // self destroying objects (tk, grabs)
+
+ W.forceMove(Target)
+ update_icons()
+ return 1
+ return 0
+
//Drops the item in our left hand
/mob/proc/drop_l_hand(var/atom/Target)
return 0
@@ -165,36 +184,28 @@ var/list/slot_equipment_priority = list( \
break
return slot
-/mob/proc/removeItem(var/obj/item/I, var/atom/T = loc, var/force = 0)
- if(!I) // Nothing to remove, so we succeed.
- return 1
- if(!force && !src.canUnEquip(I))
- return 0
-
- u_equip(I)
- if(src.client)
- src.client.screen -= I
-
- I.layer = initial(I.layer)
- I.screen_loc = null
-
- I.dropped(src)
-
- if(I && I.loc) // Some items self-delete
- I.forceMove(T)
+//This differs from remove_from_mob() in that it checks if the item can be unequipped first.
+/mob/proc/unEquip(obj/item/I, force = 0) //Force overrides NODROP for things like wizarditis and admin undress.
+ if(!(force || canUnEquip(I)))
+ return
+ drop_from_inventory(I)
return 1
-/mob/proc/deleteItem(var/obj/item/I)
- u_equip(I)
- if(src.client)
- src.client.screen -= I
- I.screen_loc = null
+//Attemps to remove an object on a mob.
+/mob/proc/remove_from_mob(var/obj/O)
+ src.u_equip(O)
+ if (src.client)
+ src.client.screen -= O
+ O.layer = initial(O.layer)
+ O.screen_loc = null
+ if(istype(O, /obj/item))
+ var/obj/item/I = O
+ I.forceMove(src.loc)
+ I.dropped(src)
+ return 1
- I.dropped(src)
- if(I && I.loc)
- qdel(I)
//Returns the item equipped to the specified slot, if any.
/mob/proc/get_equipped_item(var/slot)
diff --git a/code/modules/mob/living/bot/cleanbot.dm b/code/modules/mob/living/bot/cleanbot.dm
index 21e8b6a2dc..60a431aad3 100644
--- a/code/modules/mob/living/bot/cleanbot.dm
+++ b/code/modules/mob/living/bot/cleanbot.dm
@@ -189,7 +189,8 @@
var/mob/living/bot/cleanbot/A = new /mob/living/bot/cleanbot(T)
A.name = created_name
user << "You add the robot arm to the bucket and sensor assembly. Beep boop!"
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
else if(istype(O, /obj/item/weapon/pen))
var/t = sanitizeSafe(input(user, "Enter new robot name", name, created_name), MAX_NAME_LEN)
diff --git a/code/modules/mob/living/bot/ed209bot.dm b/code/modules/mob/living/bot/ed209bot.dm
index 96d9397c7e..3c50432025 100644
--- a/code/modules/mob/living/bot/ed209bot.dm
+++ b/code/modules/mob/living/bot/ed209bot.dm
@@ -185,5 +185,7 @@
user << "You complete the ED-209."
var/turf/T = get_turf(src)
new /mob/living/bot/secbot/ed209(T,created_name,lasercolor)
+ user.drop_item()
qdel(W)
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
diff --git a/code/modules/mob/living/bot/farmbot.dm b/code/modules/mob/living/bot/farmbot.dm
index 613a551f6a..e623f58be8 100644
--- a/code/modules/mob/living/bot/farmbot.dm
+++ b/code/modules/mob/living/bot/farmbot.dm
@@ -22,6 +22,7 @@
var/obj/structure/reagent_dispensers/watertank/tank
+
/mob/living/bot/farmbot/New(var/newloc, var/newTank)
..(newloc)
if(!newTank)
@@ -29,6 +30,7 @@
tank = newTank
tank.forceMove(src)
+
/mob/living/bot/farmbot/attack_hand(var/mob/user as mob)
. = ..()
if(.)
@@ -105,10 +107,13 @@
else
icon_state = "farmbot[on]"
+
/mob/living/bot/farmbot/handleRegular()
if(emagged && prob(1))
flick("farmbot_broke", src)
+
+
/mob/living/bot/farmbot/handleAdjacentTarget()
UnarmedAttack(target)
@@ -148,11 +153,13 @@
/mob/living/bot/farmbot/UnarmedAttack(var/atom/A, var/proximity)
if(!..())
return
+
if(busy)
return
if(istype(A, /obj/machinery/portable_atmospherics/hydroponics))
var/obj/machinery/portable_atmospherics/hydroponics/T = A
+
var/t = confirmTarget(T)
switch(t)
if(0)
@@ -161,6 +168,7 @@
action = "water" // Needs a better one
update_icons()
visible_message("[src] starts [T.dead? "removing the plant from" : "harvesting"] \the [A].")
+
busy = 1
if(do_after(src, 30))
visible_message("[src] [T.dead? "removes the plant from" : "harvests"] \the [A].")
@@ -169,6 +177,7 @@
action = "water"
update_icons()
visible_message("[src] starts watering \the [A].")
+
busy = 1
if(do_after(src, 30))
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
@@ -178,6 +187,7 @@
action = "hoe"
update_icons()
visible_message("[src] starts uprooting the weeds in \the [A].")
+
busy = 1
if(do_after(src, 30))
visible_message("[src] uproots the weeds in \the [A].")
@@ -186,10 +196,13 @@
action = "fertile"
update_icons()
visible_message("[src] starts fertilizing \the [A].")
+
busy = 1
if(do_after(src, 30))
+
visible_message("[src] fertilizes \the [A].")
T.reagents.add_reagent("ammonia", 10)
+
busy = 0
action = ""
update_icons()
@@ -200,19 +213,23 @@
action = "water"
update_icons()
visible_message("[src] starts refilling its tank from \the [A].")
+
busy = 1
while(do_after(src, 10) && tank.reagents.total_volume < tank.reagents.maximum_volume)
tank.reagents.add_reagent("water", 10)
if(prob(5))
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
+
busy = 0
action = ""
update_icons()
visible_message("[src] finishes refilling its tank.")
else if(emagged && ishuman(A))
var/action = pick("weed", "water")
+
busy = 1
spawn(50) // Some delay
+
busy = 0
switch(action)
if("weed")
@@ -225,6 +242,7 @@
A.attack_generic(src, 5, t)
if("water")
flick("farmbot_water", src)
+
visible_message("[src] splashes [A] with water!")
tank.reagents.splash(A, 100)
@@ -249,6 +267,7 @@
qdel(src)
return
+
/mob/living/bot/farmbot/confirmTarget(var/atom/targ)
if(!..())
return 0
@@ -296,6 +315,7 @@
var/obj/tank
w_class = 3.0
+
/obj/item/weapon/farmbot_arm_assembly/New(var/newloc, var/theTank)
..(newloc)
if(!theTank) // If an admin spawned it, it won't have a watertank it, so lets make one for em!
@@ -309,8 +329,11 @@
..()
return
+
user << "You add the robot arm to [src]."
- user.deleteItem(S)
+
+ user.drop_from_inventory(S)
+ qdel(S)
new /obj/item/weapon/farmbot_arm_assembly(loc, src)
@@ -320,26 +343,35 @@
build_step++
user << "You add the plant analyzer to [src]."
name = "farmbot assembly"
- user.deleteItem(W)
+
+ user.remove_from_mob(W)
+ qdel(W)
else if((istype(W, /obj/item/weapon/reagent_containers/glass/bucket)) && (build_step == 1))
build_step++
user << "You add a bucket to [src]."
name = "farmbot assembly with bucket"
- user.deleteItem(W)
+
+ user.remove_from_mob(W)
+ qdel(W)
else if((istype(W, /obj/item/weapon/material/minihoe)) && (build_step == 2))
build_step++
user << "You add a minihoe to [src]."
name = "farmbot assembly with bucket and minihoe"
- user.deleteItem(W)
+
+ user.remove_from_mob(W)
+ qdel(W)
else if((isprox(W)) && (build_step == 3))
build_step++
user << "You complete the Farmbot! Beep boop."
+
var/mob/living/bot/farmbot/S = new /mob/living/bot/farmbot(get_turf(src), tank)
S.name = created_name
- user.deleteItem(W)
+
+ user.remove_from_mob(W)
+ qdel(W)
qdel(src)
else if(istype(W, /obj/item/weapon/pen))
diff --git a/code/modules/mob/living/bot/floorbot.dm b/code/modules/mob/living/bot/floorbot.dm
index 3865569987..cb29717886 100644
--- a/code/modules/mob/living/bot/floorbot.dm
+++ b/code/modules/mob/living/bot/floorbot.dm
@@ -289,7 +289,8 @@
var/obj/item/weapon/toolbox_tiles/B = new /obj/item/weapon/toolbox_tiles
user.put_in_hands(B)
user << "You add the tiles into the empty toolbox. They protrude from the top."
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
else
user << "You need 10 floor tiles for a floorbot."
return
@@ -314,7 +315,8 @@
B.created_name = created_name
user.put_in_hands(B)
user << "You add the sensor to the toolbox and tiles!"
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
else if (istype(W, /obj/item/weapon/pen))
var/t = sanitizeSafe(input(user, "Enter new robot name", name, created_name), MAX_NAME_LEN)
if(!t)
@@ -343,7 +345,8 @@
var/mob/living/bot/floorbot/A = new /mob/living/bot/floorbot(T)
A.name = created_name
user << "You add the robot arm to the odd looking toolbox assembly! Boop beep!"
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
else if(istype(W, /obj/item/weapon/pen))
var/t = sanitizeSafe(input(user, "Enter new robot name", name, created_name), MAX_NAME_LEN)
if(!t)
diff --git a/code/modules/mob/living/bot/medbot.dm b/code/modules/mob/living/bot/medbot.dm
index a8530cd9ce..e4d39b5afe 100644
--- a/code/modules/mob/living/bot/medbot.dm
+++ b/code/modules/mob/living/bot/medbot.dm
@@ -283,7 +283,8 @@
qdel(S)
user.put_in_hands(A)
user << "You add the robot arm to the first aid kit."
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
/obj/item/weapon/firstaid_arm_assembly
name = "first aid/robot arm assembly"
@@ -330,4 +331,5 @@
var/mob/living/bot/medbot/S = new /mob/living/bot/medbot(T)
S.skin = skin
S.name = created_name
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm
index 83f26ea550..ea80efca7e 100644
--- a/code/modules/mob/living/bot/secbot.dm
+++ b/code/modules/mob/living/bot/secbot.dm
@@ -228,7 +228,8 @@
var/obj/item/weapon/secbot_assembly/A = new /obj/item/weapon/secbot_assembly
user.put_in_hands(A)
user << "You add the signaler to the helmet."
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
else
return
diff --git a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm
index 2fb5a8a0e6..9bf9e62dfb 100644
--- a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm
+++ b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm
@@ -16,7 +16,7 @@
if(hat)
user << "\The [src] is already wearing \the [hat]."
return
- user.removeItem(W)
+ user.unEquip(W)
wear_hat(W)
user.visible_message("\The [user] puts \the [W] on \the [src].")
return
diff --git a/code/modules/mob/living/carbon/alien/progression.dm b/code/modules/mob/living/carbon/alien/progression.dm
index 2ab2fed934..54c7f9a969 100644
--- a/code/modules/mob/living/carbon/alien/progression.dm
+++ b/code/modules/mob/living/carbon/alien/progression.dm
@@ -34,7 +34,7 @@
adult.key = src.key
for (var/obj/item/W in src.contents)
- src.removeItem(W, force = 1)
+ src.drop_from_inventory(W)
for(var/datum/language/L in languages)
adult.add_language(L.name)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 6898ff39e6..6b9cbf0258 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -327,7 +327,8 @@
if(!item) return //Grab processing has a chance of returning null
- src.removeItem(item, loc)
+ src.remove_from_mob(item)
+ item.loc = src.loc
//actually throw it!
if (item)
diff --git a/code/modules/mob/living/carbon/give.dm b/code/modules/mob/living/carbon/give.dm
index 6745c11bb2..14c8efbbad 100644
--- a/code/modules/mob/living/carbon/give.dm
+++ b/code/modules/mob/living/carbon/give.dm
@@ -37,6 +37,6 @@
src << "Their hands are full."
return
- if(src.removeItem(I))
+ if(src.unEquip(I))
target.put_in_hands(I) // If this fails it will just end up on the floor, but that's fitting for things like dionaea.
target.visible_message("\The [src] handed \the [I] to \the [target].")
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 391e541709..368cad0ff7 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -11,7 +11,7 @@
sleep(1)
for(var/obj/item/I in src)
- removeItem(I)
+ drop_from_inventory(I)
I.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/I.w_class))
..(species.gibbed_anim)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 111868089b..74d8b54a93 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1348,10 +1348,10 @@
S << "[U] pops your [current_limb.joint] back in!"
current_limb.undislocate()
-/mob/living/carbon/human/removeItem(var/obj/item/I, var/atom/T = loc, var/force = 0)
- if(I in src.organs)
- return 0
- return ..()
+/mob/living/carbon/human/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
+ if(W in organs)
+ return
+ ..()
/mob/living/carbon/human/reset_view(atom/A, update_hud = 1)
..()
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index a38e516acf..56a47f918b 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -281,7 +281,7 @@
//Actually disarm them
for(var/obj/item/I in holding)
if(I)
- removeItem(I)
+ drop_from_inventory(I)
visible_message("[M] has disarmed [src]!")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
return
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 105d7be9bd..1c09c04c70 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -56,7 +56,7 @@ emp_act
if(c_hand && (stun_amount || agony_amount > 10))
msg_admin_attack("[src.name] ([src.ckey]) was disarmed by a stun effect")
- removeItem(c_hand)
+ drop_from_inventory(c_hand)
if (affected.status & ORGAN_ROBOT)
emote("me", 1, "drops what they were holding, their [affected.name] malfunctioning!")
else
diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm
index 8f7e40602d..e87fd83dd4 100644
--- a/code/modules/mob/living/carbon/human/human_organs.dm
+++ b/code/modules/mob/living/carbon/human/human_organs.dm
@@ -117,7 +117,7 @@
var/obj/item/organ/external/E = get_organ(limb_tag)
if(!E)
visible_message("Lacking a functioning left hand, \the [src] drops \the [l_hand].")
- removeItem(l_hand)
+ drop_from_inventory(l_hand)
break
if(r_hand)
@@ -125,7 +125,7 @@
var/obj/item/organ/external/E = get_organ(limb_tag)
if(!E)
visible_message("Lacking a functioning right hand, \the [src] drops \the [r_hand].")
- removeItem(r_hand)
+ drop_from_inventory(r_hand)
break
// Check again...
@@ -141,11 +141,11 @@
if(HAND_LEFT, ARM_LEFT)
if(!l_hand)
continue
- removeItem(l_hand)
+ drop_from_inventory(l_hand)
if(HAND_RIGHT, ARM_RIGHT)
if(!r_hand)
continue
- removeItem(r_hand)
+ drop_from_inventory(r_hand)
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
emote("me", 1, "[(E.can_feel_pain()) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
@@ -155,11 +155,11 @@
if(HAND_LEFT, ARM_LEFT)
if(!l_hand)
continue
- removeItem(l_hand)
+ drop_from_inventory(l_hand)
if(HAND_RIGHT, ARM_RIGHT)
if(!r_hand)
continue
- removeItem(r_hand)
+ drop_from_inventory(r_hand)
emote("me", 1, "drops what they were holding, their [E.name] malfunctioning!")
diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm
index 852d46c6cc..48b668a501 100644
--- a/code/modules/mob/living/carbon/human/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/human_powers.dm
@@ -139,7 +139,7 @@
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
visible_message("\The [src] quivers slightly, then splits apart with a wet slithering noise.")
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 077574596d..4cbde15ff1 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -85,18 +85,18 @@ This saves us from having to call add_fingerprint() any time something is put in
if (W == wear_suit)
if(s_store)
- removeItem(s_store)
+ drop_from_inventory(s_store)
wear_suit = null
update_inv_wear_suit()
else if (W == w_uniform)
if (r_store)
- removeItem(r_store)
+ drop_from_inventory(r_store)
if (l_store)
- removeItem(l_store)
+ drop_from_inventory(l_store)
if (wear_id)
- removeItem(wear_id)
+ drop_from_inventory(wear_id)
if (belt)
- removeItem(belt)
+ drop_from_inventory(belt)
w_uniform = null
update_inv_w_uniform()
else if (W == gloves)
@@ -289,7 +289,7 @@ This saves us from having to call add_fingerprint() any time something is put in
update_inv_s_store(redraw_mob)
if(slot_in_backpack)
if(src.get_active_hand() == W)
- src.removeItem(W)
+ src.remove_from_mob(W)
W.loc = src.back
if(slot_tie)
var/obj/item/clothing/under/uniform = src.w_uniform
diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm
index 8e116f443a..26efe8ee90 100644
--- a/code/modules/mob/living/carbon/human/stripping.dm
+++ b/code/modules/mob/living/carbon/human/stripping.dm
@@ -82,8 +82,8 @@
if(stripping)
admin_attack_log(user, src, "Attempted to remove \a [target_slot]", "Target of an attempt to remove \a [target_slot].", "attempted to remove \a [target_slot] from")
- removeItem(target_slot)
- else if(user.removeItem(held))
+ unEquip(target_slot)
+ else if(user.unEquip(held))
equip_to_slot_if_possible(held, text2num(slot_to_strip), 0, 1, 1)
if(held.loc != src)
user.put_in_hands(held)
@@ -94,9 +94,9 @@
user << "\The [src] has nothing in their pockets."
return
if(r_store)
- removeItem(r_store)
+ unEquip(r_store)
if(l_store)
- removeItem(l_store)
+ unEquip(l_store)
visible_message("\The [user] empties \the [src]'s pockets!")
// Modify the current target sensor level.
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index e080091927..b073f8ccf6 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -748,7 +748,7 @@ var/global/list/damage_icon_parts = list()
standing.color = wear_suit.color
if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) )
- removeItem(handcuffed, force = 1)
+ drop_from_inventory(handcuffed)
drop_l_hand()
drop_r_hand()
diff --git a/code/modules/mob/living/carbon/resist.dm b/code/modules/mob/living/carbon/resist.dm
index 06501b92b0..8b6f722718 100644
--- a/code/modules/mob/living/carbon/resist.dm
+++ b/code/modules/mob/living/carbon/resist.dm
@@ -66,7 +66,7 @@
"\The [src] manages to remove \the [handcuffed]!",
"You successfully remove \the [handcuffed]."
)
- removeItem(handcuffed)
+ drop_from_inventory(handcuffed)
/mob/living/carbon/proc/escape_legcuffs()
if(!canClick())
@@ -101,7 +101,7 @@
"You successfully remove \the [legcuffed]."
)
- removeItem(legcuffed)
+ drop_from_inventory(legcuffed)
legcuffed = null
update_inv_legcuffed()
diff --git a/code/modules/mob/living/inventory.dm b/code/modules/mob/living/inventory.dm
index 76c9a5f8d0..c1aa244d55 100644
--- a/code/modules/mob/living/inventory.dm
+++ b/code/modules/mob/living/inventory.dm
@@ -38,11 +38,11 @@
//Drops the item in our left hand
/mob/living/drop_l_hand(var/atom/Target)
- return removeItem(l_hand, Target)
+ return drop_from_inventory(l_hand, Target)
//Drops the item in our right hand
/mob/living/drop_r_hand(var/atom/Target)
- return removeItem(r_hand, Target)
+ return drop_from_inventory(r_hand, Target)
/mob/living/proc/hands_are_full()
return (r_hand && l_hand)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index a3e2eae189..b3fa6e43ea 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -393,11 +393,11 @@ default behaviour is:
var/mob/living/carbon/C = src
if (C.handcuffed && !initial(C.handcuffed))
- C.removeItem(C.handcuffed)
+ C.drop_from_inventory(C.handcuffed)
C.handcuffed = initial(C.handcuffed)
if (C.legcuffed && !initial(C.legcuffed))
- C.removeItem(C.legcuffed)
+ C.drop_from_inventory(C.legcuffed)
C.legcuffed = initial(C.legcuffed)
BITSET(hud_updateflag, HEALTH_HUD)
BITSET(hud_updateflag, STATUS_HUD)
@@ -595,7 +595,7 @@ default behaviour is:
var/mob/M = H.loc //Get our mob holder (if any).
if(istype(M))
- M.removeItem(H)
+ M.drop_from_inventory(H)
M << "\The [H] wriggles out of your grip!"
src << "You wriggle out of \the [M]'s grip!"
@@ -771,10 +771,10 @@ default behaviour is:
/mob/living/proc/slip(var/slipped_on,stun_duration=8)
return 0
-/mob/living/carbon/removeItem(var/obj/item/I, var/atom/T = loc, var/force = 0)
- if(I in src.internal_organs)
- return 0
- return ..()
+/mob/living/carbon/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
+ if(W in internal_organs)
+ return
+ ..()
/mob/living/touch_map_edge()
@@ -895,8 +895,8 @@ default behaviour is:
if(lying)
density = 0
- if(l_hand) removeItem(l_hand)
- if(r_hand) removeItem(r_hand)
+ if(l_hand) unEquip(l_hand)
+ if(r_hand) unEquip(r_hand)
else
density = initial(density)
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index a8c0e18f30..2ba3d40a17 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -268,7 +268,7 @@
affecting.implants -= card
H.visible_message("\The [src] explodes out of \the [H]'s [affecting.name] in shower of gore!")
break
- holder.removeItem(card)
+ holder.drop_from_inventory(card)
else if(istype(card.loc,/obj/item/device/pda))
var/obj/item/device/pda/holder = card.loc
holder.pai = null
@@ -386,7 +386,7 @@
if(istype(H))
var/mob/living/M = H.loc
if(istype(M))
- M.removeItem(H)
+ M.drop_from_inventory(H)
H.loc = get_turf(src)
src.loc = get_turf(H)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm
index e92cc389a5..8c0ec04900 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone.dm
@@ -145,7 +145,7 @@ var/list/mob_hat_cache = list()
if(hat)
user << "\The [src] is already wearing \the [hat]."
return
- user.removeItem(W)
+ user.unEquip(W)
wear_hat(W)
user.visible_message("\The [user] puts \the [W] on \the [src].")
return
diff --git a/code/modules/mob/living/simple_animal/constructs/soulstone.dm b/code/modules/mob/living/simple_animal/constructs/soulstone.dm
index 722d6c1550..54fd738279 100644
--- a/code/modules/mob/living/simple_animal/constructs/soulstone.dm
+++ b/code/modules/mob/living/simple_animal/constructs/soulstone.dm
@@ -118,7 +118,7 @@
return
for(var/obj/item/W in T)
- T.removeItem(W)
+ T.drop_from_inventory(W)
new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton
T.invisibility = 101
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index b999ec6840..8b9271a40c 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -607,8 +607,9 @@
stolen_item = C.r_hand
if(stolen_item)
- C.removeItem(stolen_item, src)
+ C.remove_from_mob(stolen_item)
held_item = stolen_item
+ stolen_item.loc = src
visible_message("[src] grabs the [held_item] out of [C]'s hand!", "\blue You snag the [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.")
return held_item
diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm
index 63aabf3d2b..5158a7f3d0 100644
--- a/code/modules/mob/mob_grab_specials.dm
+++ b/code/modules/mob/mob_grab_specials.dm
@@ -106,7 +106,9 @@
target.attack_log += text("\[[time_stamp()]\] Headbutted by [attacker.name] ([attacker.ckey])")
msg_admin_attack("[key_name(attacker)] has headbutted [key_name(target)]")
- attacker.deleteItem(src)
+ attacker.drop_from_inventory(src)
+ src.loc = null
+ qdel(src)
return
/obj/item/weapon/grab/proc/dislocate(mob/living/carbon/human/target, mob/living/attacker, var/target_zone)
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 3986b4df65..ca8d1bffe1 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -4,7 +4,7 @@
for(var/obj/item/W in src)
if (W==w_uniform) // will be torn
continue
- removeItem(W, force = 1)
+ drop_from_inventory(W)
regenerate_icons()
transforming = 1
canmove = 0
@@ -31,7 +31,7 @@
return
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
set_species(species.primitive_form)
dna.SetSEState(MONKEYBLOCK,1)
dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF)
@@ -57,7 +57,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
transforming = 1
canmove = 0
icon = null
@@ -113,7 +113,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
regenerate_icons()
transforming = 1
canmove = 0
@@ -165,7 +165,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
regenerate_icons()
transforming = 1
canmove = 0
@@ -199,7 +199,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
regenerate_icons()
transforming = 1
canmove = 0
@@ -228,7 +228,7 @@
if(transforming)
return
for(var/obj/item/W in src)
- removeItem(W, force = 1)
+ drop_from_inventory(W)
regenerate_icons()
transforming = 1
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index 70a9398ae2..44376e9110 100644
--- a/code/modules/organs/organ.dm
+++ b/code/modules/organs/organ.dm
@@ -323,7 +323,7 @@ var/list/organ_cache = list()
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in reagents.reagent_list
blood_splatter(src,B,1)
- user.removeItem(src)
+ user.drop_from_inventory(src)
var/obj/item/weapon/reagent_containers/food/snacks/organ/O = new(get_turf(src))
O.name = name
O.icon = icon
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index d351ca9cdd..cebd834a24 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -833,12 +833,12 @@ Note that amputating the affected organ does in fact remove the infection from t
holder.visible_message(\
"\The [holder.handcuffed.name] falls off of [holder.name].",\
"\The [holder.handcuffed.name] falls off you.")
- holder.removeItem(holder.handcuffed, force = 1)
+ holder.drop_from_inventory(holder.handcuffed)
if (holder.legcuffed && body_part in list(FOOT_LEFT, FOOT_RIGHT, LEG_LEFT, LEG_RIGHT))
holder.visible_message(\
"\The [holder.legcuffed.name] falls off of [holder.name].",\
"\The [holder.legcuffed.name] falls off you.")
- holder.removeItem(holder.legcuffed, force = 1)
+ holder.drop_from_inventory(holder.legcuffed)
/obj/item/organ/external/proc/bandage()
var/rval = 0
@@ -1005,7 +1005,7 @@ Note that amputating the affected organ does in fact remove the infection from t
W.add_blood(owner)
if(ismob(W.loc))
var/mob/living/H = W.loc
- H.removeItem(W)
+ H.drop_from_inventory(W)
W.loc = owner
/obj/item/organ/external/removed(var/mob/living/user, var/ignore_children = 0)
diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm
index 723ca8856f..04544035c0 100644
--- a/code/modules/organs/subtypes/machine.dm
+++ b/code/modules/organs/subtypes/machine.dm
@@ -75,7 +75,7 @@
var/mob/living/holder_mob = loc
if(istype(holder_mob))
- holder_mob.removeItem(src)
+ holder_mob.drop_from_inventory(src)
qdel(src)
/obj/item/organ/internal/mmi_holder/posibrain
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index 98ace8da31..a0f515ac13 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -122,7 +122,8 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
scan = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
+ if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
+ I.loc = src
scan = I
authenticated = 0
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 9ca7d1f031..bb4a9d1a23 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -307,7 +307,7 @@
"You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.")
if(user.get_inactive_hand() == src)
- user.removeItem(src)
+ user.drop_from_inventory(src)
new /obj/effect/decal/cleanable/ash(src.loc)
qdel(src)
@@ -415,23 +415,23 @@
B.name = name
else if (P.name != "paper" && P.name != "photo")
B.name = P.name
- user.removeItem(P)
+ user.drop_from_inventory(P)
if (istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/h_user = user
if (h_user.r_hand == src)
- h_user.removeItem(src)
+ h_user.drop_from_inventory(src)
h_user.put_in_r_hand(B)
else if (h_user.l_hand == src)
- h_user.removeItem(src)
+ h_user.drop_from_inventory(src)
h_user.put_in_l_hand(B)
else if (h_user.l_store == src)
- h_user.removeItem(src)
+ h_user.drop_from_inventory(src)
B.loc = h_user
B.layer = 20
h_user.l_store = B
h_user.update_inv_pockets()
else if (h_user.r_store == src)
- h_user.removeItem(src)
+ h_user.drop_from_inventory(src)
B.loc = h_user
B.layer = 20
h_user.r_store = B
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index d6aaec0936..53110bed0f 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -34,7 +34,7 @@
// merging bundles
else if(istype(W, /obj/item/weapon/paper_bundle))
- user.removeItem(W)
+ user.drop_from_inventory(W)
for(var/obj/O in W)
O.loc = src
O.add_fingerprint(usr)
@@ -61,7 +61,8 @@
else if(istype(sheet, /obj/item/weapon/photo))
user << "You add [(sheet.name == "photo") ? "the photo" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]."
- user.removeItem(sheet, src)
+ user.drop_from_inventory(sheet)
+ sheet.loc = src
pages.Insert(index, sheet)
@@ -84,7 +85,7 @@
"You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.")
if(user.get_inactive_hand() == src)
- user.removeItem(src)
+ user.drop_from_inventory(src)
new /obj/effect/decal/cleanable/ash(src.loc)
qdel(src)
@@ -167,7 +168,7 @@
if(pages.len <= 1)
var/obj/item/weapon/paper/P = src[1]
- usr.removeItem(src)
+ usr.drop_from_inventory(src)
usr.put_in_hands(P)
qdel(src)
@@ -205,7 +206,8 @@
O.loc = usr.loc
O.layer = initial(O.layer)
O.add_fingerprint(usr)
- usr.deleteItem(src)
+ usr.drop_from_inventory(src)
+ qdel(src)
return
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 96daf90c99..37cfdaa86b 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -31,7 +31,8 @@
user << "\The [src] is full; please empty it before you continue."
return
paperamount += paper_result
- user.deleteItem(W)
+ user.drop_from_inventory(W)
+ qdel(W)
playsound(src.loc, 'sound/items/pshred.ogg', 75, 1)
if(paperamount > max_paper)
user <<"\The [src] was too full, and shredded paper goes everywhere!"
@@ -118,7 +119,7 @@
/obj/item/weapon/shreddedp/proc/FireBurn()
var/mob/living/M = loc
if(istype(M))
- M.removeItem(src)
+ M.drop_from_inventory(src)
PoolOrNew(/obj/effect/decal/cleanable/ash,get_turf(src))
qdel(src)
diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm
index 26e3651c4d..8c7af58346 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -158,7 +158,8 @@
user << "\red There is already a [fueljar] inside!"
return
fueljar = W
- user.removeItem(W, src)
+ user.remove_from_mob(W)
+ W.loc = src
user.update_icons()
user.visible_message("[user.name] loads an [W.name] into the [src.name].", \
"You load an [W.name].", \
diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm
index 9a7d5d14ac..219ebff141 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -108,7 +108,8 @@
if(stored_ammo.len >= max_ammo)
user << "[src] is full!"
return
- user.removeItem(C, src)
+ user.remove_from_mob(C)
+ C.loc = src
stored_ammo.Insert(1, C) //add to the head of the list
update_icon()
diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm
index 1ab6b5bcac..407b70d20a 100644
--- a/code/modules/projectiles/guns/launcher/crossbow.dm
+++ b/code/modules/projectiles/guns/launcher/crossbow.dm
@@ -136,7 +136,7 @@
/obj/item/weapon/gun/launcher/crossbow/attackby(obj/item/W as obj, mob/user as mob)
if(!bolt)
if (istype(W,/obj/item/weapon/arrow))
- user.removeItem(W, src)
+ user.drop_from_inventory(W, src)
bolt = W
user.visible_message("[user] slides [bolt] into [src].","You slide [bolt] into [src].")
update_icon()
diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm
index fe05453df0..547dc702cf 100644
--- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm
@@ -47,7 +47,8 @@
if(grenades.len >= max_grenades)
user << "[src] is full."
return
- user.removeItem(G, src)
+ user.remove_from_mob(G)
+ G.loc = src
grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump
user.visible_message("[user] inserts \a [G] into [src].", "You insert \a [G] into [src].")
return
@@ -105,7 +106,8 @@
if(chambered)
user << "[src] is already loaded."
return
- user.removeItem(G, src)
+ user.remove_from_mob(G)
+ G.loc = src
chambered = G
user.visible_message("[user] load \a [G] into [src].", "You load \a [G] into [src].")
return
diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm
index efe0175d9b..b20e9521e6 100644
--- a/code/modules/projectiles/guns/launcher/pneumatic.dm
+++ b/code/modules/projectiles/guns/launcher/pneumatic.dm
@@ -65,7 +65,7 @@
/obj/item/weapon/gun/launcher/pneumatic/attackby(obj/item/W as obj, mob/user as mob)
if(!tank && istype(W,/obj/item/weapon/tank))
- user.removeItem(W, src)
+ user.drop_from_inventory(W, src)
tank = W
user.visible_message("[user] jams [W] into [src]'s valve and twists it closed.","You jam [W] into [src]'s valve and twist it closed.")
update_icon()
@@ -161,7 +161,8 @@
/obj/item/weapon/cannonframe/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/pipe))
if(buildstate == 0)
- user.deleteItem(W)
+ user.drop_from_inventory(W)
+ qdel(W)
user << "You secure the piping inside the frame."
buildstate++
update_icon()
@@ -178,7 +179,8 @@
return
else if(istype(W,/obj/item/device/transfer_valve))
if(buildstate == 4)
- user.deleteItem(W)
+ user.drop_from_inventory(W)
+ qdel(W)
user << "You install the transfer valve and connect it to the piping."
buildstate++
update_icon()
diff --git a/code/modules/projectiles/guns/launcher/syringe_gun.dm b/code/modules/projectiles/guns/launcher/syringe_gun.dm
index 8f5f204788..07cb48d784 100644
--- a/code/modules/projectiles/guns/launcher/syringe_gun.dm
+++ b/code/modules/projectiles/guns/launcher/syringe_gun.dm
@@ -22,7 +22,8 @@
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
syringe = I
user << "You carefully insert [syringe] into [src]."
- user.removeItem(syringe, src)
+ user.remove_from_mob(syringe)
+ syringe.loc = src
sharp = 1
name = "syringe dart"
update_icon()
@@ -122,7 +123,8 @@
if(darts.len >= max_darts)
user << "[src] is full!"
return
- user.removeItem(C, src)
+ user.remove_from_mob(C)
+ C.loc = src
darts += C //add to the end
user.visible_message("[user] inserts \a [C] into [src].", "You insert \a [C] into [src].")
else
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index d61a02d30e..d032cb3848 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -104,7 +104,8 @@
if(ammo_magazine)
user << "[src] already has a magazine loaded." //already a magazine here
return
- user.removeItem(AM, src)
+ user.remove_from_mob(AM)
+ AM.loc = src
ammo_magazine = AM
user.visible_message("[user] inserts [AM] into [src].", "You insert [AM] into [src].")
playsound(src.loc, 'sound/weapons/flipblade.ogg', 50, 1)
@@ -133,7 +134,8 @@
user << "[src] is full."
return
- user.removeItem(C, src)
+ user.remove_from_mob(C)
+ C.loc = src
loaded.Insert(1, C) //add to the head of the list
user.visible_message("[user] inserts \a [C] into [src].", "You insert \a [C] into [src].")
playsound(src.loc, 'sound/weapons/empty.ogg', 50, 1)
diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm
index dfddd67882..9fcc709ba0 100644
--- a/code/modules/projectiles/projectile/change.dm
+++ b/code/modules/projectiles/projectile/change.dm
@@ -25,7 +25,7 @@
if(istype(W, /obj/item/weapon/implant)) //TODO: Carn. give implants a dropped() or something
qdel(W)
continue
- M.removeItem(W, force = 1)
+ M.drop_from_inventory(W)
var/mob/living/new_mob
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index c1f2dc0ddf..d69bd5a13c 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -393,7 +393,8 @@
user << "\The [O] is not suitable for blending."
return 1
- user.removeItem(O, src)
+ user.remove_from_mob(O)
+ O.loc = src
holdingitems += O
src.updateUsrDialog()
return 0
diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm
index 060a4ecfcb..06c6bbb8eb 100644
--- a/code/modules/reagents/dispenser/dispenser2.dm
+++ b/code/modules/reagents/dispenser/dispenser2.dm
@@ -50,7 +50,7 @@
return
if(user)
- user.removeItem(C)
+ user.drop_from_inventory(C)
user << "You add \the [C] to \the [src]."
C.loc = src
@@ -103,7 +103,8 @@
return
container = RC
- user.removeItem(RC, src)
+ user.drop_from_inventory(RC)
+ RC.loc = src
user << "You set \the [RC] on \the [src]."
nanomanager.update_uis(src) // update all UIs attached to src
diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm
index 396a35e1ec..c53d91675b 100644
--- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm
@@ -49,7 +49,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(var/newloc, atom/against = null)
if(ismob(loc))
var/mob/M = loc
- M.removeItem(src)
+ M.drop_from_inventory(src)
//Creates a shattering noise and replaces the bottle with a broken_bottle
var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(newloc)
@@ -110,9 +110,10 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/insert_rag(obj/item/weapon/reagent_containers/glass/rag/R, mob/user)
if(!isGlass || rag) return
- if(user.removeItem(R, src))
+ if(user.unEquip(R))
user << "You stuff [R] into [src]."
rag = R
+ rag.forceMove(src)
flags &= ~OPENCONTAINER
update_icon()
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 77d542d695..3041ec9957 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -19,7 +19,7 @@
if(!usr) return
if(!reagents.total_volume)
M.visible_message("[M] finishes eating \the [src].","You finish eating \the [src].")
- usr.removeItem(src) //so icons update :[
+ usr.drop_from_inventory(src) //so icons update :[
if(trash)
if(ispath(trash,/obj/item))
@@ -36,7 +36,8 @@
/obj/item/weapon/reagent_containers/food/snacks/attack(mob/M as mob, mob/user as mob, def_zone)
if(!reagents.total_volume)
user << "None of [src] left!"
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
return 0
if(istype(M, /mob/living/carbon))
@@ -163,8 +164,10 @@
return
user << "\red You slip [W] inside [src]."
- user.removeItem(W, src)
+ user.remove_from_mob(W)
+ W.dropped(user)
add_fingerprint(user)
+ contents += W
return
if (has_edge(W))
@@ -487,7 +490,8 @@
return
user << "You crack \the [src] into \the [O]."
reagents.trans_to(O, reagents.total_volume)
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
..()
@@ -1622,7 +1626,7 @@
H.name = H.real_name
if(ismob(loc))
var/mob/M = loc
- M.removeItem(src)
+ M.unEquip(src)
qdel(src)
return 1
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 1a9484ea3e..a5903e744d 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -226,7 +226,8 @@
user << "You add [D] to [src]."
qdel(D)
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
- user.deleteItem(src)
+ user.drop_from_inventory(src)
+ qdel(src)
return
else if(istype(D, /obj/item/weapon/mop))
if(reagents.total_volume < 1)
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index e0dc0fc9f6..7fc7707c28 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -31,7 +31,7 @@
return
M << "You swallow \the [src]."
- M.removeItem(src) //icon update
+ M.drop_from_inventory(src) //icon update
if(reagents.total_volume)
reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST)
qdel(src)
@@ -53,7 +53,7 @@
if(!do_mob(user, M))
return
- user.removeItem(src) //icon update
+ user.drop_from_inventory(src) //icon update
user.visible_message("[user] forces [M] to swallow \the [src].")
var/contained = reagentlist()
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 9b4b697f9c..741e9eccdd 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -243,7 +243,8 @@
if (target != user && H.getarmor(target_zone, "melee") > 5 && prob(50))
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red [user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1)
- user.deleteItem(src)
+ user.remove_from_mob(src)
+ qdel(src)
user.attack_log += "\[[time_stamp()]\] Attacked [target.name] ([target.ckey]) with \the [src] (INTENT: HARM)."
target.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: HARM)."
diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm
index 822037d40d..822bc8da7c 100644
--- a/code/modules/spells/spellbook.dm
+++ b/code/modules/spells/spellbook.dm
@@ -421,7 +421,7 @@
magichead.canremove = 0 //curses!
magichead.flags_inv = null //so you can still see their face
magichead.voicechange = 1 //NEEEEIIGHH
- user.removeItem(user.wear_mask)
+ user.drop_from_inventory(user.wear_mask)
user.equip_to_slot_if_possible(magichead, slot_wear_mask, 1, 1)
qdel(src)
else
diff --git a/code/modules/spells/targeted/equip/equip.dm b/code/modules/spells/targeted/equip/equip.dm
index 692a25fd35..735daf78e8 100644
--- a/code/modules/spells/targeted/equip/equip.dm
+++ b/code/modules/spells/targeted/equip/equip.dm
@@ -19,7 +19,7 @@
var/obj/item/old_item = L.get_equipped_item(slot_id)
L.equip_to_slot(new_item, slot_id)
if(old_item)
- L.removeItem(old_item)
+ L.remove_from_mob(old_item)
if(delete_old)
qdel(old_item)
else
@@ -33,7 +33,8 @@
for(var/obj/item/to_remove in summoned_items)
if(istype(to_remove.loc, /mob))
var/mob/M = to_remove.loc
- M.deleteItem(to_remove)
+ M.remove_from_mob(to_remove)
+ qdel(to_remove)
/spell/targeted/equip_item/proc/summon_item(var/newtype)
return new newtype
diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm
index e313b21196..4e80282daa 100644
--- a/code/modules/supermatter/supermatter.dm
+++ b/code/modules/supermatter/supermatter.dm
@@ -342,7 +342,7 @@
"You touch \the [W] to \the [src] when everything suddenly goes silent.\"\n\The [W] flashes into dust as you flinch away from \the [src].",\
"Everything suddenly goes silent.")
- user.removeItem(W)
+ user.drop_from_inventory(W)
Consume(W)
user.apply_effect(150, IRRADIATE)
diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm
index 352dd9232d..aee13ede83 100644
--- a/code/modules/surgery/limb_reattach.dm
+++ b/code/modules/surgery/limb_reattach.dm
@@ -30,7 +30,7 @@
var/obj/item/organ/external/E = tool
user.visible_message("[user] has attached [target]'s [E.name] to the [E.amputation_point].>", \
"You have attached [target]'s [E.name] to the [E.amputation_point].")
- user.removeItem(E)
+ user.drop_from_inventory(E)
E.replaced(target)
E.loc = target
target.update_body()
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index aee6e667e7..9b7b006759 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -278,7 +278,7 @@
"You have transplanted \the [tool] into [target]'s [affected.name].")
var/obj/item/organ/O = tool
if(istype(O))
- user.removeItem(O)
+ user.remove_from_mob(O)
O.replaced(target,affected)
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm
index 941ae30c13..037eb933b2 100644
--- a/code/modules/surgery/robotics.dm
+++ b/code/modules/surgery/robotics.dm
@@ -417,7 +417,8 @@
var/obj/item/device/mmi/M = tool
var/obj/item/organ/internal/mmi_holder/holder = new(target, 1)
target.internal_organs_by_name["brain"] = holder
- user.removeItem(tool, holder)
+ user.drop_from_inventory(tool)
+ tool.loc = holder
holder.stored_mmi = tool
holder.update_from_mmi()
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index 634c2bbc59..ddc56dad3f 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -237,7 +237,8 @@
if(!istype(C))
return
- H.removeItem(C, src)
+ H.drop_from_inventory(C)
+ C.forceMove(src)
cell = C
powercheck()
usr << "You install [C] in [src]."