diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index fb5a2e754c9..cdb8e7d15ec 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.drop_from_inventory(W)
+ current.removeItem(W, force = 1)
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 39c91afbedd..f35257a6a46 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.drop_from_inventory(src)
+ user.removeItem(src)
user.put_in_hands(concealed_blade)
user.put_in_hands(src)
user.update_inv_l_hand(0)
@@ -112,8 +112,7 @@
/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.drop_from_inventory(W)
- W.loc = src
+ user.removeItem(W, 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 2f4bc6da3a5..9eea323584c 100644
--- a/code/game/antagonist/antagonist_equip.dm
+++ b/code/game/antagonist/antagonist_equip.dm
@@ -6,8 +6,7 @@
// This could use work.
if(flags & ANTAG_CLEAR_EQUIPMENT)
for(var/obj/item/thing in player.contents)
- player.drop_from_inventory(thing)
- if(thing.loc != player)
+ if(player.removeItem(thing, force = 1))
qdel(thing)
return 1
diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm
index 45e852551d9..8eee626d2bb 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.drop_from_inventory(W)
+ H.removeItem(W, force = 1)
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.drop_from_inventory(W)
+ Mo.removeItem(W, force = 1)
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 7ab1cdda3b7..38981ddd6cc 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.drop_from_inventory(src)
+ host.removeItem(src, force = 1)
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 f2742490f66..cd487c0dc3f 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.drop_from_inventory(W)
+ C.removeItem(W, force = 1)
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 4ecef5449a0..c8c44b825f3 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.drop_from_inventory(cultist.handcuffed)
+ cultist.removeItem(cultist.handcuffed, force = 1)
if (cultist.legcuffed)
- cultist.drop_from_inventory(cultist.legcuffed)
+ cultist.removeItem(cultist.legcuffed, force = 1)
if (istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle))
- cultist.drop_from_inventory(cultist.wear_mask)
+ cultist.removeItem(cultist.wear_mask, force = 1)
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 c25e3c55674..5ed25c44aff 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.drop_from_inventory(W)
+ user.removeItem(W, force = 1)
Consume(W)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 14512fb8391..d2f3c215a3c 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -196,8 +196,7 @@
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.remove_from_mob(O)
- qdel(O)
+ user.deleteItem(O)
updateUsrDialog()
return
diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm
index 04a0e87c348..f5b437521a0 100644
--- a/code/game/machinery/biogenerator.dm
+++ b/code/game/machinery/biogenerator.dm
@@ -52,8 +52,7 @@
if(beaker)
user << "]The [src] is already loaded."
else
- user.remove_from_mob(O)
- O.loc = src
+ user.removeItem(O, src)
beaker = O
updateUsrDialog()
else if(processing)
@@ -84,8 +83,7 @@
if(i >= 10)
user << "\The [src] is full! Activate it."
else
- user.remove_from_mob(O)
- O.loc = src
+ user.removeItem(O, 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 e35b0953fec..f6c72d1b8bd 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -127,8 +127,7 @@
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.remove_from_mob(W)
- W.loc = src
+ user.removeItem(W, src)
return
// Taking out upgrades
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index 3bc9a17fce0..7b72962eb8f 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -59,13 +59,9 @@
if(!istype(id_card))
return ..()
- if(!scan && (access_change_ids in id_card.access) && user.unEquip(id_card))
- user.drop_item()
- id_card.forceMove(src)
+ if(!scan && (access_change_ids in id_card.access) && user.removeItem(id_card, src))
scan = id_card
- else if(!modify)
- user.drop_item()
- id_card.forceMove(src)
+ else if(!modify && user.removeItem(id_card, src))
modify = id_card
nanomanager.update_uis(src)
@@ -157,8 +153,7 @@
modify = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
- I.forceMove(src)
+ if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
modify = I
if ("scan")
diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index cb07d373a8a..30d12b0b507 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -82,8 +82,7 @@
qdel(src)
return
if(istype(I, /obj/item/weapon/card/id))
- if(!giver && user.unEquip(I))
- I.loc = src
+ if(!giver && user.removeItem(I, src))
giver = I
updateUsrDialog()
else if(giver)
@@ -176,8 +175,7 @@
accesses.Cut()
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
- I.loc = src
+ if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
giver = I
updateUsrDialog()
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 3eee7615b37..b0d55165bdf 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -36,8 +36,7 @@
return
/obj/machinery/computer/med_data/attackby(var/obj/item/O, var/mob/user)
- if(istype(O, /obj/item/weapon/card/id) && !scan && user.unEquip(O))
- O.loc = src
+ if(istype(O, /obj/item/weapon/card/id) && !scan && user.removeItem(O, 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 2624c4ff287..fb8c05aeba7 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -248,8 +248,7 @@ What a mess.*/
scan = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
- I.loc = src
+ if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
scan = I
if("Log Out")
diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm
index 1fa38c4a719..fd2f34cc9c0 100644
--- a/code/game/machinery/computer/skills.dm
+++ b/code/game/machinery/computer/skills.dm
@@ -25,8 +25,7 @@
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.unEquip(O))
- O.loc = src
+ if(istype(O, /obj/item/weapon/card/id) && !scan && user.removeItem(O, src))
scan = O
user << "You insert [O]."
else
@@ -185,8 +184,7 @@ What a mess.*/
scan = null
else
var/obj/item/I = usr.get_active_hand()
- if (istype(I, /obj/item/weapon/card/id) && usr.unEquip(I))
- I.loc = src
+ if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, 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 fc781430c40..fefbbfcf7d8 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.remove_from_mob(obj)
+ M.removeItem(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 f336ad310e7..ac88f1644bb 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -386,8 +386,7 @@
/obj/machinery/cryopod/proc/despawn_occupant()
//Drop all items into the pod.
for(var/obj/item/W in occupant)
- occupant.drop_from_inventory(W)
- W.forceMove(src)
+ occupant.removeItem(W, src, force = 1)
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 e4b36b94027..bb92f2c4b07 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -126,9 +126,7 @@
"You add one of [O] to \the [src].")
return
else
- // user.remove_from_mob(O) //This just causes problems so far as I can tell. -Pete
- user.drop_item()
- O.loc = src
+ user.removeItem(O, 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 ac13a52bc41..dced74de6de 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -218,8 +218,7 @@
user << "\The [src] is full."
return 1
else
- user.remove_from_mob(O)
- O.loc = src
+ user.removeItem(O, 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 3a08a681d26..1daf18b0a51 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.drop_from_inventory(src, target)
+ user.removeItem(src, target)
else
return ..()
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 6e20801680c..c60ae723d5c 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.unEquip(I))
+ if(!user.removeItem(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.unEquip(I))
+ if(!user.removeItem(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 e9a2081fb2d..be7b340b720 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.remove_from_mob(O)
+ user.removeItem(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 7efa498d09b..6abebf8c2cc 100644
--- a/code/game/machinery/supplybeacon.dm
+++ b/code/game/machinery/supplybeacon.dm
@@ -17,8 +17,7 @@
return
var/obj/S = new deploy_path(get_turf(user))
user.visible_message("\The [user] deploys \the [S].")
- user.unEquip(src)
- qdel(src)
+ user.deleteItem(src)
/obj/machinery/power/supply_beacon
name = "supply beacon"
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index fdc5786a499..ca060ca80f8 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -273,8 +273,7 @@
cashmoney.worth -= currently_vending.price
if(cashmoney.worth <= 0)
- usr.drop_from_inventory(cashmoney)
- qdel(cashmoney)
+ usr.deleteItem(cashmoney)
else
cashmoney.update_icon()
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index b742b8a14b2..6057747df0f 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -794,8 +794,7 @@
return
else if(istype(W, /obj/item/mecha_parts/mecha_tracking))
- user.drop_from_inventory(W)
- W.forceMove(src)
+ user.removeItem(W, 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 2934e5d68d7..2493e296099 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.drop_from_inventory(src)
+ m.removeItem(src, force = 1)
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.unEquip(src))
+ if(!user.removeItem(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 a3db6b15a16..33c505ea92b 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -1152,15 +1152,13 @@ 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.unEquip(I))
- I.loc = src
+ if (istype(I, /obj/item/weapon/card/id) && user.removeItem(I, 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.unEquip(I))
+ if (istype(I, /obj/item/weapon/card/id) && I:registered_name && user.removeItem(I, src))
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 025196b2188..88fad1d0566 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -23,8 +23,7 @@
if(!parts)
user << "This kit has no parts for this modification left."
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
return
var/allowed = 0
@@ -59,8 +58,7 @@
parts &= ~MODKIT_SUIT
if(!parts)
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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 5b769ed8034..db373754bdf 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -27,13 +27,11 @@
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user )
A.icon = 'icons/obj/assemblies.dmi'
- user.drop_from_inventory(W)
- W.loc = A
+ user.removeItem(W, A)
W.master = A
A.part1 = W
- user.drop_from_inventory(src)
- loc = A
+ user.removeItem(src, 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 aa7b6335903..02654c3b7c7 100644
--- a/code/game/objects/items/devices/telecrystal.dm
+++ b/code/game/objects/items/devices/telecrystal.dm
@@ -15,7 +15,6 @@ 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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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 88b53bd342d..d268e2f2045 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -47,9 +47,8 @@
if(attached_device)
user << "There is already an device attached to the valve, remove it first."
return
- user.remove_from_mob(item)
+ user.removeItem(A, src)
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 54062ff8530..0a88d7890ff 100644
--- a/code/game/objects/items/glassjar.dm
+++ b/code/game/objects/items/glassjar.dm
@@ -72,8 +72,7 @@
return
var/obj/item/weapon/spacecash/S = W
user.visible_message("[user] puts [S.worth] [S.worth > 1 ? "thalers" : "thaler"] into \the [src].")
- user.drop_from_inventory(S)
- S.loc = src
+ user.removeItem(S, 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 3ccf1fb3a96..bf7c6eeccfb 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.drop_from_inventory(src)
+ temp.removeItem(src, force = 1)
qdel(src)
return
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 11c312048db..e19ee4bd8f6 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.remove_from_mob(src)
+ user.removeItem(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 83ce6d3f49f..a99684c73b9 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.remove_from_mob(src)
+ usr.removeItem(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 80080220e92..a7738cd3295 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -51,8 +51,7 @@
if((stored_matter + 10) > 30)
user << "The RCD can't hold any more matter-units."
return
- user.drop_from_inventory(W)
- qdel(W)
+ user.deleteItem(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 4772063b4c7..d951333ec92 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.remove_from_mob(src) //un-equip it so the overlays can update
+ M.removeItem(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 484c185a14a..5e2cb1946d4 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.drop_from_inventory(src)
+ user.removeItem(src, force = 1)
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 73c198c8ab6..c1292ba9d15 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.remove_from_mob(src)
+ M.removeItem(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 f87f0fa8305..05350458489 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -59,8 +59,7 @@
path = 1
user << "You add [W] to the metal casing."
playsound(src.loc, 'sound/items/Screwdriver2.ogg', 25, -3)
- user.remove_from_mob(det)
- det.loc = src
+ user.removeItem(det, src)
detonator = det
if(istimer(detonator.a_left))
var/obj/item/device/assembly/timer/T = detonator.a_left
@@ -176,7 +175,7 @@
if(istype(loc, /mob/living/carbon)) //drop dat grenade if it goes off in your hand
var/mob/living/carbon/C = loc
- C.drop_from_inventory(src)
+ C.removeItem(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 1868827b5b9..4b43cc26018 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.drop_from_inventory(cuffs)
+ user.removeItem(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 4f168556d28..8011d258591 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.remove_from_mob(A)
+ H.removeItem(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 af4e528b709..505e6bd9950 100644
--- a/code/game/objects/items/weapons/improvised_components.dm
+++ b/code/game/objects/items/weapons/improvised_components.dm
@@ -62,9 +62,7 @@
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.drop_from_inventory(src)
- user.drop_from_inventory(I)
- qdel(I)
- qdel(src)
+ user.deleteItem(src)
+ user.deleteItem(I)
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 d5e7cd67bb7..0dc09538883 100644
--- a/code/game/objects/items/weapons/material/ashtray.dm
+++ b/code/game/objects/items/weapons/material/ashtray.dm
@@ -50,8 +50,7 @@ var/global/list/ashtray_cache = list()
if (contents.len >= max_butts)
user << "\The [src] is full."
return
- user.remove_from_mob(W)
- W.loc = src
+ user.removeItem(W, 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 18181df6b07..b7d4907f619 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.drop_from_inventory(src)
+ M.removeItem(src, force = 1)
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 ac8da3d835c..297361d546a 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.drop_from_inventory(src)
+ user.removeItem(src, force = 1)
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.drop_from_inventory(src)
+ host.removeItem(src, force = 1)
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 e50f82966bf..6658a50a1fe 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.drop_from_inventory(src)
+ user.removeItem(src, force = 1)
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.drop_from_inventory(src)
+ host.removeItem(src, force = 1)
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 476bf1a67eb..8c5f8dbd8ae 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.remove_from_mob(S)
+ usr.removeItem(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 ffb4867ca68..ab8ca23c9bf 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.drop_from_inventory(linked)
+ user.removeItem(linked, force = 1)
return
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 7dcc429d27b..aaea243a7e4 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.unEquip(src))
+ if ((src.loc == usr) && !usr.removeItem(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.remove_from_mob(W)
+ usr.removeItem(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 c10e83511f8..b51e28162db 100644
--- a/code/game/objects/items/weapons/tanks/tank_types.dm
+++ b/code/game/objects/items/weapons/tanks/tank_types.dm
@@ -104,8 +104,7 @@
if ((!F.status)||(F.ptank)) return
src.master = F
F.ptank = src
- user.remove_from_mob(src)
- src.loc = F
+ user.removeItem(src, F)
return
/*
diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm
index 0eea22ea52d..4ad7d118513 100644
--- a/code/game/objects/items/weapons/tape.dm
+++ b/code/game/objects/items/weapons/tape.dm
@@ -62,8 +62,7 @@
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.unEquip(T)
- qdel(T)
+ user.deleteItem(T)
else
return ..()
return 1
@@ -71,7 +70,7 @@
/obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user)
if(!istype(W, /obj/item/weapon/paper))
return
- user.drop_from_inventory(W)
+ user.removeItem(W)
var/obj/item/weapon/ducttape/tape = new(get_turf(src))
tape.attach(W)
user.put_in_hands(tape)
@@ -107,7 +106,7 @@
user << "You remove \the [initial(name)] from [stuck]."
- user.drop_from_inventory(src)
+ user.removeItem(src)
stuck.forceMove(get_turf(src))
user.put_in_hands(stuck)
stuck = null
@@ -129,8 +128,7 @@
user << "You cannot reach that from here." // can only place stuck papers in cardinal directions, to
return // reduce papers around corners issue.
- user.drop_from_inventory(src)
- forceMove(source_turf)
+ user.removeItem(src, 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 a79d6575e5e..fe1e62caa02 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.remove_from_mob(src)
+ user.removeItem(src)
else
- user.remove_from_mob(src)
+ user.removeItem(src)
src.master = F
src.layer = initial(src.layer)
- user.remove_from_mob(src)
+ user.removeItem(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 9c355356b39..783a9f515d4 100644
--- a/code/game/objects/items/weapons/traps.dm
+++ b/code/game/objects/items/weapons/traps.dm
@@ -36,7 +36,7 @@
)
deployed = 1
- user.drop_from_inventory(src)
+ user.removeItem(src)
update_icon()
anchored = 1
diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm
index 625af060db7..0050c8ca940 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.drop_from_inventory(coat, src)
+ user.removeItem(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 13a567ca758..f338b760fb5 100644
--- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
@@ -66,8 +66,7 @@
user << "Unwield the axe first."
return
fireaxe = O
- user.remove_from_mob(O)
- src.contents += O
+ user.removeItem(O, src)
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 dcc0270abc4..9af8021d44e 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -27,8 +27,7 @@
return
if(istype(O, /obj/item/weapon/extinguisher))
if(!has_extinguisher && opened)
- user.remove_from_mob(O)
- contents += O
+ user.removeItem(O, src)
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 174634e3cb9..8dbc65edbc1 100644
--- a/code/game/objects/structures/noticeboard.dm
+++ b/code/game/objects/structures/noticeboard.dm
@@ -33,8 +33,7 @@
if(notices < 5)
O.add_fingerprint(user)
add_fingerprint(user)
- user.drop_from_inventory(O)
- O.loc = src
+ user.removeItem(O, 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 73914e113cc..f933bff418c 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -96,9 +96,7 @@
user << "\The [src] is already padded."
return
var/obj/item/stack/C = W
- if(C.get_amount() < 1) // How??
- user.drop_from_inventory(C)
- qdel(C)
+ if(C.get_amount() < 1)
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))
@@ -112,8 +110,7 @@
return
C.use(1)
if(!istype(src.loc, /turf))
- user.drop_from_inventory(src)
- src.loc = get_turf(src)
+ user.removeItem(src, 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 e4840bedc63..a579ceab8e8 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.remove_from_mob(src)
+ user.removeItem(src)
dismantle()
qdel(src)
var/mob/living/T = M
@@ -112,9 +112,7 @@ 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) // How??
- user.drop_from_inventory(C)
- qdel(C)
+ if(C.get_amount() < 1)
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))
@@ -128,8 +126,7 @@ var/global/list/stool_cache = list() //haha stool
return
C.use(1)
if(!istype(src.loc, /turf))
- user.drop_from_inventory(src)
- src.loc = get_turf(src)
+ user.removeItem(src, 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 68b10ccf7a4..4996be04691 100644
--- a/code/game/objects/structures/target_stake.dm
+++ b/code/game/objects/structures/target_stake.dm
@@ -27,8 +27,7 @@
if(istype(W, /obj/item/target))
density = 0
W.density = 1
- user.remove_from_mob(W)
- W.loc = loc
+ user.removeItem(W, 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 eec85c2f04b..9a9d3e2d098 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.drop_from_inventory(W)
+ H.removeItem(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 99b3f7a2f43..970ded7c961 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.drop_from_inventory(I, locker)
+ M.removeItem(I, locker)
M.update_icons()
//so they black out before warping
@@ -1006,7 +1006,7 @@
return
for(var/obj/item/I in M)
- M.drop_from_inventory(I)
+ M.removeItem(I, force = 1)
M.Paralyse(5)
sleep(5)
@@ -1031,7 +1031,7 @@
return
for(var/obj/item/I in M)
- M.drop_from_inventory(I)
+ M.removeItem(I, force = 1)
M.Paralyse(5)
sleep(5)
@@ -1078,7 +1078,7 @@
return
for(var/obj/item/I in M)
- M.drop_from_inventory(I)
+ M.removeItem(I, force = 1)
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 b21abd7e301..6fa7ef43a68 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.drop_from_inventory(I)
+ M.removeItem(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 5d8db9c0729..96acc58fce9 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.drop_from_inventory(W)
+ M.removeItem(W, force = 1)
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.drop_from_inventory(W)
+ M.removeItem(W, force = 1)
//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 a78126bedc5..558c3222dc1 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.remove_from_mob(src) //Remove the tank from your character,in case you were holding it
+ M.removeItem(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 021216f2181..724e1be9ee7 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.remove_from_mob(D)
- user.remove_from_mob(D2)
+ user.removeItem(D)
+ user.removeItem(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 88ef03dda2d..7721253643a 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -432,8 +432,7 @@
if(holding)
user << "\The [src] is already holding \a [holding]."
return
- user.unEquip(I)
- I.forceMove(src)
+ user.removeItem(I, src)
holding = I
user.visible_message("\The [user] shoves \the [I] into \the [src].")
verbs |= /obj/item/clothing/shoes/proc/draw_knife
@@ -632,7 +631,7 @@
if (( usr.restrained() ) || ( usr.stat ))
return
- if (!usr.unEquip(src))
+ if (!usr.removeItem(src))
return
switch(over_object.name)
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index b94cb78da5c..441763988b9 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -43,8 +43,7 @@
user << "You are unable to wear \the [src] as \the [H.shoes] are in the way."
shoes = null
return 0
- H.drop_from_inventory(shoes) //Remove the old shoes so you can put on the magboots.
- shoes.forceMove(src)
+ H.removeItem(shoes, src) //Remove the old shoes so you can put on the magboots.
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 3e8cb36a6c1..b9594004669 100644
--- a/code/modules/clothing/spacesuits/rig/modules/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm
@@ -55,8 +55,7 @@
return 0
user << "You slot \the [input_device] into the suit module."
- user.drop_from_inventory(input_device)
- qdel(input_device)
+ user.deleteItem(input_device)
accepted_item.charges++
return 1
@@ -204,8 +203,7 @@
return
for(var/obj/item/weapon/melee/energy/blade/blade in M.contents)
- M.drop_from_inventory(blade)
- qdel(blade)
+ M.deleteItem(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 11d551ace00..d9ff8bb7d6b 100644
--- a/code/modules/clothing/spacesuits/rig/modules/computer.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm
@@ -208,8 +208,7 @@
else
return 0
else
- user.drop_from_inventory(ai)
- ai.forceMove(src)
+ user.removeItem(ai, 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 8ee748e04a3..764c07cf9ea 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.drop_from_inventory(src)
+ holder.wearer.removeItem(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 679a822aec8..da346e57b90 100644
--- a/code/modules/clothing/spacesuits/rig/modules/utility.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm
@@ -458,8 +458,7 @@
return
for(var/obj/item/weapon/mop_deploy/blade in M.contents)
- M.drop_from_inventory(blade)
- del(blade)
+ M.deleteItem(blade)
//Space Cleaner Launcher
@@ -501,8 +500,7 @@
return 0
user << "You slot \the [input_device] into the suit module."
- user.drop_from_inventory(input_device)
- del(input_device)
+ user.deleteItem(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 7db3dd1dc11..218c9b81e63 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.drop_from_inventory(piece)
+ M.removeItem(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.unEquip(piece)
+ M.removeItem(piece)
piece.forceMove(src)
if(!istype(wearer) || loc != wearer || wearer.back != src || canremove || !cell || cell.charge <= 0)
@@ -560,7 +560,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.unEquip(src))
+ if(!M.removeItem(src))
return
src.forceMove(get_turf(src))
return
@@ -618,7 +618,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.drop_from_inventory(use_obj)
+ holder.removeItem(use_obj)
use_obj.forceMove(get_turf(src))
use_obj.dropped()
use_obj.canremove = 0
@@ -651,27 +651,23 @@
if(sealed)
if(H.head)
var/obj/item/garbage = H.head
- H.drop_from_inventory(garbage)
+ H.deleteItem(garbage)
H.head = null
- qdel(garbage)
if(H.gloves)
var/obj/item/garbage = H.gloves
- H.drop_from_inventory(garbage)
+ H.deleteItem(garbage)
H.gloves = null
- qdel(garbage)
if(H.shoes)
var/obj/item/garbage = H.shoes
- H.drop_from_inventory(garbage)
+ H.deleteItem(garbage)
H.shoes = null
- qdel(garbage)
if(H.wear_suit)
var/obj/item/garbage = H.wear_suit
- H.drop_from_inventory(garbage)
+ H.deleteItem(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 cda9d51796a..33003c124af 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.unEquip(W)) return
+ if(!user.removeItem(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.unEquip(mod)) return
+ if(!user.removeItem(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.unEquip(W)) return
+ if(!user.removeItem(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 04f74d164e3..2e963fdadbf 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -121,16 +121,14 @@
H = helmet.loc
if(istype(H))
if(helmet && H.head == helmet)
- H.drop_from_inventory(helmet)
- helmet.forceMove(src)
+ H.removeItem(helmet, src)
if(boots)
boots.canremove = 1
H = boots.loc
if(istype(H))
if(boots && H.shoes == boots)
- H.drop_from_inventory(boots)
- boots.forceMove(src)
+ H.removeItem(boots, src)
if(tank)
tank.canremove = 1
@@ -161,8 +159,7 @@
if(H.head == helmet)
H << "You retract your suit helmet."
helmet.canremove = 1
- H.drop_from_inventory(helmet)
- helmet.forceMove(src)
+ H.removeItem(helmet, src)
else
if(H.head)
H << "You cannot deploy your helmet while wearing \the [H.head]."
@@ -200,7 +197,7 @@
cooler = null
H << "You press the emergency release, ejecting \the [removing] from your suit."
removing.canremove = 1
- H.drop_from_inventory(removing)
+ H.removeItem(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 d9aa9bbd3d3..8ac1373d27a 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.unEquip(hood, 1)
+ H.removeItem(hood, force = 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 9ba4ffa5e34..1ea459df513 100644
--- a/code/modules/clothing/under/accessories/holster.dm
+++ b/code/modules/clothing/under/accessories/holster.dm
@@ -17,8 +17,7 @@
if(istype(user))
user.stop_aiming(no_message=1)
holstered = I
- user.drop_from_inventory(holstered)
- holstered.loc = src
+ user.removeItem(holstered, 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 4b3cafea50b..a2904ba1552 100644
--- a/code/modules/detectivework/microscope/dnascanner.dm
+++ b/code/modules/detectivework/microscope/dnascanner.dm
@@ -27,9 +27,8 @@
var/obj/item/weapon/forensics/swab/swab = W
if(istype(swab) && swab.is_used())
- user.unEquip(W)
+ user.removeItem(swab, src)
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 3bc596fb576..9217e7627ee 100644
--- a/code/modules/detectivework/microscope/microscope.dm
+++ b/code/modules/detectivework/microscope/microscope.dm
@@ -18,8 +18,7 @@
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.unEquip(W)
- W.forceMove(src)
+ user.removeItem(W, src)
sample = W
update_icon()
return
diff --git a/code/modules/detectivework/tools/evidencebag.dm b/code/modules/detectivework/tools/evidencebag.dm
index 6aa4bdf99fb..cc663bbae8d 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.drop_from_inventory(I)
+ user.removeItem(I)
else
return
diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm
index 6887ef1fbaf..7849596d429 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.unEquip(src)
+ user.removeItem(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 fa5c7312a8f..eb8738d3952 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.unEquip(O)
+ user.removeItem(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 f18eac3b9dd..4051bf95881 100644
--- a/code/modules/economy/cash.dm
+++ b/code/modules/economy/cash.dm
@@ -24,8 +24,8 @@
SC.adjust_worth(src.worth)
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/h_user = user
- h_user.drop_from_inventory(src)
- h_user.drop_from_inventory(SC)
+ h_user.removeItem(src)
+ h_user.removeItem(SC)
h_user.put_in_hands(SC)
user << "You combine the Thalers to a bundle of [SC.worth] Thalers."
qdel(src)
diff --git a/code/modules/economy/cash_register.dm b/code/modules/economy/cash_register.dm
index 109572ffc0a..3129c20489f 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.drop_from_inventory(SC)
+ H.removeItem(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.drop_from_inventory(SC)
+ H.removeItem(SC)
qdel(SC)
cash_stored += transaction_amount
diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm
index 1b353e34071..6bbd4e64e82 100644
--- a/code/modules/games/cards.dm
+++ b/code/modules/games/cards.dm
@@ -146,8 +146,7 @@
for(var/datum/playingcard/P in cards)
H.cards += P
H.concealed = src.concealed
- user.drop_from_inventory(src,user.loc)
- qdel(src)
+ user.deleteItem(src)
H.update_icon()
return
..()
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index 4c0d0a755e6..53a070e64ad 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.remove_from_mob(obj)
+ M.removeItem(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 5cd5458b4a7..a9d589d8410 100644
--- a/code/modules/hydroponics/beekeeping/beehive.dm
+++ b/code/modules/hydroponics/beekeeping/beehive.dm
@@ -67,8 +67,7 @@
++frames
user.visible_message("[user] loads \the [I] into \the [src].", "You load \the [I] into \the [src].")
update_icon()
- user.drop_from_inventory(I)
- qdel(I)
+ user.deleteItem(I)
return
else if(istype(I, /obj/item/bee_pack))
var/obj/item/bee_pack/B = I
@@ -229,8 +228,7 @@
if(do_after(user, 30))
user.visible_message("[user] constructs a beehive.", "You construct a beehive.")
new /obj/machinery/beehive(get_turf(user))
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
return
/obj/item/stack/wax
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 608398a039c..7c17c584670 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.drop_from_inventory(src)
+ user.removeItem(src)
qdel(src)
add_fingerprint(user)
diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm
index 015ab88ccbf..f731a28f722 100644
--- a/code/modules/hydroponics/seed_machines.dm
+++ b/code/modules/hydroponics/seed_machines.dm
@@ -88,8 +88,7 @@
if(S.seed && S.seed.get_trait(TRAIT_IMMUTABLE) > 0)
user << "That seed is not compatible with our genetics technology."
else
- user.drop_from_inventory(W)
- W.loc = src
+ user.removeItem(W, src)
seed = W
user << "You load [W] into [src]."
return
@@ -114,8 +113,7 @@
user << "That disk does not have any gene data loaded."
return
- user.drop_from_inventory(W)
- W.loc = src
+ user.removeItem(W, 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 448173104be..de183d475dc 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.remove_from_mob(O)
+ user.removeItem(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 cfafd90ea21..3e1cfc73e83 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.remove_from_mob(O)
+ user.removeItem(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.remove_from_mob(O)
+ user.removeItem(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 ce365bbde27..f3a8d4ea4d6 100644
--- a/code/modules/mining/satchel_ore_boxdm.dm
+++ b/code/modules/mining/satchel_ore_boxdm.dm
@@ -12,8 +12,7 @@
/obj/structure/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/ore))
- user.remove_from_mob(W)
- src.contents += W
+ user.removeItem(W, src)
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 d5fde7978df..e0108ffa01c 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -44,9 +44,8 @@ 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.
@@ -116,22 +115,6 @@ 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
@@ -176,26 +159,34 @@ var/list/slot_equipment_priority = list( \
break
return slot
-//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)
+/mob/proc/removeItem(var/obj/item/I, var/atom/T = loc, var/force = 0)
+ 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)
+
return 1
-//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
+/mob/proc/deleteItem(var/obj/item/I)
+ u_equip(I)
+ if(src.client)
+ src.client.screen -= I
+ I.screen_loc = null
+
+ 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 60a431aad30..21e8b6a2dcd 100644
--- a/code/modules/mob/living/bot/cleanbot.dm
+++ b/code/modules/mob/living/bot/cleanbot.dm
@@ -189,8 +189,7 @@
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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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 3c50432025d..96d9397c7ed 100644
--- a/code/modules/mob/living/bot/ed209bot.dm
+++ b/code/modules/mob/living/bot/ed209bot.dm
@@ -185,7 +185,5 @@
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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
diff --git a/code/modules/mob/living/bot/farmbot.dm b/code/modules/mob/living/bot/farmbot.dm
index 1187d16b5fd..613a551f6a7 100644
--- a/code/modules/mob/living/bot/farmbot.dm
+++ b/code/modules/mob/living/bot/farmbot.dm
@@ -310,8 +310,7 @@
return
user << "You add the robot arm to [src]."
- user.drop_from_inventory(S)
- qdel(S)
+ user.deleteItem(S)
new /obj/item/weapon/farmbot_arm_assembly(loc, src)
@@ -321,30 +320,26 @@
build_step++
user << "You add the plant analyzer to [src]."
name = "farmbot assembly"
- user.remove_from_mob(W)
- qdel(W)
+ user.deleteItem(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.remove_from_mob(W)
- qdel(W)
+ user.deleteItem(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.remove_from_mob(W)
- qdel(W)
+ user.deleteItem(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.remove_from_mob(W)
- qdel(W)
+ user.deleteItem(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 cb297178868..38655699879 100644
--- a/code/modules/mob/living/bot/floorbot.dm
+++ b/code/modules/mob/living/bot/floorbot.dm
@@ -289,8 +289,7 @@
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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
else
user << "You need 10 floor tiles for a floorbot."
return
@@ -315,8 +314,7 @@
B.created_name = created_name
user.put_in_hands(B)
user << "You add the sensor to the toolbox and tiles!"
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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)
@@ -345,8 +343,7 @@
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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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 e4d39b5afe1..a8530cd9ce9 100644
--- a/code/modules/mob/living/bot/medbot.dm
+++ b/code/modules/mob/living/bot/medbot.dm
@@ -283,8 +283,7 @@
qdel(S)
user.put_in_hands(A)
user << "You add the robot arm to the first aid kit."
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
/obj/item/weapon/firstaid_arm_assembly
name = "first aid/robot arm assembly"
@@ -331,5 +330,4 @@
var/mob/living/bot/medbot/S = new /mob/living/bot/medbot(T)
S.skin = skin
S.name = created_name
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm
index ea80efca7e1..83f26ea550c 100644
--- a/code/modules/mob/living/bot/secbot.dm
+++ b/code/modules/mob/living/bot/secbot.dm
@@ -228,8 +228,7 @@
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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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 9bf9e62dfb9..2fb5a8a0e64 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.unEquip(W)
+ user.removeItem(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 54c7f9a9692..2ab2fed934d 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.drop_from_inventory(W)
+ src.removeItem(W, force = 1)
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 6b9cbf02589..6898ff39e61 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -327,8 +327,7 @@
if(!item) return //Grab processing has a chance of returning null
- src.remove_from_mob(item)
- item.loc = src.loc
+ src.removeItem(item, 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 14c8efbbadd..6745c11bb20 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.unEquip(I))
+ if(src.removeItem(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 368cad0ff7d..391e5417091 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)
- drop_from_inventory(I)
+ removeItem(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 74d8b54a930..111868089bf 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/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
- if(W in organs)
- return
- ..()
+/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/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 56a47f918b3..a38e516acf8 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)
- drop_from_inventory(I)
+ removeItem(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 1c09c04c709..105d7be9bd2 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")
- drop_from_inventory(c_hand)
+ removeItem(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 e87fd83dd4b..8f7e40602dd 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].")
- drop_from_inventory(l_hand)
+ removeItem(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].")
- drop_from_inventory(r_hand)
+ removeItem(r_hand)
break
// Check again...
@@ -141,11 +141,11 @@
if(HAND_LEFT, ARM_LEFT)
if(!l_hand)
continue
- drop_from_inventory(l_hand)
+ removeItem(l_hand)
if(HAND_RIGHT, ARM_RIGHT)
if(!r_hand)
continue
- drop_from_inventory(r_hand)
+ removeItem(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
- drop_from_inventory(l_hand)
+ removeItem(l_hand)
if(HAND_RIGHT, ARM_RIGHT)
if(!r_hand)
continue
- drop_from_inventory(r_hand)
+ removeItem(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 48b668a5015..852d46c6cc0 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)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
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 42262b8c93c..77aff853aea 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)
- drop_from_inventory(s_store)
+ removeItem(s_store)
wear_suit = null
update_inv_wear_suit()
else if (W == w_uniform)
if (r_store)
- drop_from_inventory(r_store)
+ removeItem(r_store)
if (l_store)
- drop_from_inventory(l_store)
+ removeItem(l_store)
if (wear_id)
- drop_from_inventory(wear_id)
+ removeItem(wear_id)
if (belt)
- drop_from_inventory(belt)
+ removeItem(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.remove_from_mob(W)
+ src.removeItem(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 26efe8ee90f..8e116f443a9 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")
- unEquip(target_slot)
- else if(user.unEquip(held))
+ removeItem(target_slot)
+ else if(user.removeItem(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)
- unEquip(r_store)
+ removeItem(r_store)
if(l_store)
- unEquip(l_store)
+ removeItem(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 6d5c3a56234..ef4ed66599a 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) )
- drop_from_inventory(handcuffed)
+ removeItem(handcuffed, force = 1)
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 8b6f7227187..06501b92b0e 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]."
)
- drop_from_inventory(handcuffed)
+ removeItem(handcuffed)
/mob/living/carbon/proc/escape_legcuffs()
if(!canClick())
@@ -101,7 +101,7 @@
"You successfully remove \the [legcuffed]."
)
- drop_from_inventory(legcuffed)
+ removeItem(legcuffed)
legcuffed = null
update_inv_legcuffed()
diff --git a/code/modules/mob/living/inventory.dm b/code/modules/mob/living/inventory.dm
index c1aa244d550..76c9a5f8d0a 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 drop_from_inventory(l_hand, Target)
+ return removeItem(l_hand, Target)
//Drops the item in our right hand
/mob/living/drop_r_hand(var/atom/Target)
- return drop_from_inventory(r_hand, Target)
+ return removeItem(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 b3fa6e43ea6..a3e2eae1897 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.drop_from_inventory(C.handcuffed)
+ C.removeItem(C.handcuffed)
C.handcuffed = initial(C.handcuffed)
if (C.legcuffed && !initial(C.legcuffed))
- C.drop_from_inventory(C.legcuffed)
+ C.removeItem(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.drop_from_inventory(H)
+ M.removeItem(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/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
- if(W in internal_organs)
- return
- ..()
+/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/touch_map_edge()
@@ -895,8 +895,8 @@ default behaviour is:
if(lying)
density = 0
- if(l_hand) unEquip(l_hand)
- if(r_hand) unEquip(r_hand)
+ if(l_hand) removeItem(l_hand)
+ if(r_hand) removeItem(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 587daf649e2..e05ec237849 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -265,7 +265,7 @@
affecting.implants -= card
H.visible_message("\The [src] explodes out of \the [H]'s [affecting.name] in shower of gore!")
break
- holder.drop_from_inventory(card)
+ holder.removeItem(card)
else if(istype(card.loc,/obj/item/device/pda))
var/obj/item/device/pda/holder = card.loc
holder.pai = null
@@ -383,7 +383,7 @@
if(istype(H))
var/mob/living/M = H.loc
if(istype(M))
- M.drop_from_inventory(H)
+ M.removeItem(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 8c0ec04900e..e92cc389a50 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.unEquip(W)
+ user.removeItem(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 54fd7382791..722d6c1550b 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.drop_from_inventory(W)
+ T.removeItem(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 8b9271a40c3..b999ec68401 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -607,9 +607,8 @@
stolen_item = C.r_hand
if(stolen_item)
- C.remove_from_mob(stolen_item)
+ C.removeItem(stolen_item, src)
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 64a98985cfc..a5c45c79fb8 100644
--- a/code/modules/mob/mob_grab_specials.dm
+++ b/code/modules/mob/mob_grab_specials.dm
@@ -106,9 +106,7 @@
target.attack_log += text("\[[time_stamp()]\] Headbutted by [attacker.name] ([attacker.ckey])")
msg_admin_attack("[key_name(attacker)] has headbutted [key_name(target)]")
- attacker.drop_from_inventory(src)
- src.loc = null
- qdel(src)
+ attacker.deleteItem(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 ca8d1bffe1a..3986b4df65d 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
- drop_from_inventory(W)
+ removeItem(W, force = 1)
regenerate_icons()
transforming = 1
canmove = 0
@@ -31,7 +31,7 @@
return
for(var/obj/item/W in src)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
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)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
transforming = 1
canmove = 0
icon = null
@@ -113,7 +113,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
regenerate_icons()
transforming = 1
canmove = 0
@@ -165,7 +165,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
regenerate_icons()
transforming = 1
canmove = 0
@@ -199,7 +199,7 @@
if (transforming)
return
for(var/obj/item/W in src)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
regenerate_icons()
transforming = 1
canmove = 0
@@ -228,7 +228,7 @@
if(transforming)
return
for(var/obj/item/W in src)
- drop_from_inventory(W)
+ removeItem(W, force = 1)
regenerate_icons()
transforming = 1
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index 44376e91108..70a9398ae23 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.drop_from_inventory(src)
+ user.removeItem(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 cebd834a24f..d351ca9cdd0 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.drop_from_inventory(holder.handcuffed)
+ holder.removeItem(holder.handcuffed, force = 1)
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.drop_from_inventory(holder.legcuffed)
+ holder.removeItem(holder.legcuffed, force = 1)
/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.drop_from_inventory(W)
+ H.removeItem(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 04544035c08..723ca8856fc 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.drop_from_inventory(src)
+ holder_mob.removeItem(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 dc7ec847772..6862e16c615 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -113,8 +113,7 @@ 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.unEquip(I))
- I.loc = src
+ if (istype(I, /obj/item/weapon/card/id) && usr.removeItem(I, src))
scan = I
authenticated = 0
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index bb4a9d1a23f..9ca7d1f0317 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.drop_from_inventory(src)
+ user.removeItem(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.drop_from_inventory(P)
+ user.removeItem(P)
if (istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/h_user = user
if (h_user.r_hand == src)
- h_user.drop_from_inventory(src)
+ h_user.removeItem(src)
h_user.put_in_r_hand(B)
else if (h_user.l_hand == src)
- h_user.drop_from_inventory(src)
+ h_user.removeItem(src)
h_user.put_in_l_hand(B)
else if (h_user.l_store == src)
- h_user.drop_from_inventory(src)
+ h_user.removeItem(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.drop_from_inventory(src)
+ h_user.removeItem(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 53110bed0fa..d6aaec0936c 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.drop_from_inventory(W)
+ user.removeItem(W)
for(var/obj/O in W)
O.loc = src
O.add_fingerprint(usr)
@@ -61,8 +61,7 @@
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.drop_from_inventory(sheet)
- sheet.loc = src
+ user.removeItem(sheet, src)
pages.Insert(index, sheet)
@@ -85,7 +84,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.drop_from_inventory(src)
+ user.removeItem(src)
new /obj/effect/decal/cleanable/ash(src.loc)
qdel(src)
@@ -168,7 +167,7 @@
if(pages.len <= 1)
var/obj/item/weapon/paper/P = src[1]
- usr.drop_from_inventory(src)
+ usr.removeItem(src)
usr.put_in_hands(P)
qdel(src)
@@ -206,8 +205,7 @@
O.loc = usr.loc
O.layer = initial(O.layer)
O.add_fingerprint(usr)
- usr.drop_from_inventory(src)
- qdel(src)
+ usr.deleteItem(src)
return
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 37cfdaa86b1..96daf90c992 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -31,8 +31,7 @@
user << "\The [src] is full; please empty it before you continue."
return
paperamount += paper_result
- user.drop_from_inventory(W)
- qdel(W)
+ user.deleteItem(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!"
@@ -119,7 +118,7 @@
/obj/item/weapon/shreddedp/proc/FireBurn()
var/mob/living/M = loc
if(istype(M))
- M.drop_from_inventory(src)
+ M.removeItem(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 8c7af58346e..26e3651c4d6 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -158,8 +158,7 @@
user << "\red There is already a [fueljar] inside!"
return
fueljar = W
- user.remove_from_mob(W)
- W.loc = src
+ user.removeItem(W, 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 219ebff1410..9a7d5d14ac2 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -108,8 +108,7 @@
if(stored_ammo.len >= max_ammo)
user << "[src] is full!"
return
- user.remove_from_mob(C)
- C.loc = src
+ user.removeItem(C, 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 407b70d20a1..1ab6b5bcacd 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.drop_from_inventory(W, src)
+ user.removeItem(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 547dc702cf7..fe05453df0a 100644
--- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm
@@ -47,8 +47,7 @@
if(grenades.len >= max_grenades)
user << "[src] is full."
return
- user.remove_from_mob(G)
- G.loc = src
+ user.removeItem(G, 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
@@ -106,8 +105,7 @@
if(chambered)
user << "[src] is already loaded."
return
- user.remove_from_mob(G)
- G.loc = src
+ user.removeItem(G, 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 b20e9521e60..efe0175d9bc 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.drop_from_inventory(W, src)
+ user.removeItem(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,8 +161,7 @@
/obj/item/weapon/cannonframe/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/pipe))
if(buildstate == 0)
- user.drop_from_inventory(W)
- qdel(W)
+ user.deleteItem(W)
user << "You secure the piping inside the frame."
buildstate++
update_icon()
@@ -179,8 +178,7 @@
return
else if(istype(W,/obj/item/device/transfer_valve))
if(buildstate == 4)
- user.drop_from_inventory(W)
- qdel(W)
+ user.deleteItem(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 07cb48d784e..8f5f2047885 100644
--- a/code/modules/projectiles/guns/launcher/syringe_gun.dm
+++ b/code/modules/projectiles/guns/launcher/syringe_gun.dm
@@ -22,8 +22,7 @@
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
syringe = I
user << "You carefully insert [syringe] into [src]."
- user.remove_from_mob(syringe)
- syringe.loc = src
+ user.removeItem(syringe, src)
sharp = 1
name = "syringe dart"
update_icon()
@@ -123,8 +122,7 @@
if(darts.len >= max_darts)
user << "[src] is full!"
return
- user.remove_from_mob(C)
- C.loc = src
+ user.removeItem(C, 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 d032cb38483..d61a02d30e6 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -104,8 +104,7 @@
if(ammo_magazine)
user << "[src] already has a magazine loaded." //already a magazine here
return
- user.remove_from_mob(AM)
- AM.loc = src
+ user.removeItem(AM, 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)
@@ -134,8 +133,7 @@
user << "[src] is full."
return
- user.remove_from_mob(C)
- C.loc = src
+ user.removeItem(C, 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 9fcc709ba05..dfddd67882d 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.drop_from_inventory(W)
+ M.removeItem(W, force = 1)
var/mob/living/new_mob
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index d69bd5a13c4..c1f2dc0ddf2 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -393,8 +393,7 @@
user << "\The [O] is not suitable for blending."
return 1
- user.remove_from_mob(O)
- O.loc = src
+ user.removeItem(O, src)
holdingitems += O
src.updateUsrDialog()
return 0
diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm
index 06c6bbb8eb7..060a4ecfcb2 100644
--- a/code/modules/reagents/dispenser/dispenser2.dm
+++ b/code/modules/reagents/dispenser/dispenser2.dm
@@ -50,7 +50,7 @@
return
if(user)
- user.drop_from_inventory(C)
+ user.removeItem(C)
user << "You add \the [C] to \the [src]."
C.loc = src
@@ -103,8 +103,7 @@
return
container = RC
- user.drop_from_inventory(RC)
- RC.loc = src
+ user.removeItem(RC, 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 c53d91675bf..396a35e1ec5 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.drop_from_inventory(src)
+ M.removeItem(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,10 +110,9 @@
/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.unEquip(R))
+ if(user.removeItem(R, src))
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 5bde55f24dc..cfe34198de0 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.drop_from_inventory(src) //so icons update :[
+ usr.removeItem(src) //so icons update :[
if(trash)
if(ispath(trash,/obj/item))
@@ -36,8 +36,7 @@
/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.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
return 0
if(istype(M, /mob/living/carbon))
@@ -164,10 +163,8 @@
return
user << "\red You slip [W] inside [src]."
- user.remove_from_mob(W)
- W.dropped(user)
+ user.removeItem(W, src)
add_fingerprint(user)
- contents += W
return
if (has_edge(W))
@@ -490,8 +487,7 @@
return
user << "You crack \the [src] into \the [O]."
reagents.trans_to(O, reagents.total_volume)
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(src)
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
..()
@@ -1626,7 +1622,7 @@
H.name = H.real_name
if(ismob(loc))
var/mob/M = loc
- M.unEquip(src)
+ M.removeItem(src)
qdel(src)
return 1
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index a5903e744d8..1a9484ea3eb 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -226,8 +226,7 @@
user << "You add [D] to [src]."
qdel(D)
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
- user.drop_from_inventory(src)
- qdel(src)
+ user.deleteItem(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 7fc7707c28b..e0dc0fc9f6b 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.drop_from_inventory(src) //icon update
+ M.removeItem(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.drop_from_inventory(src) //icon update
+ user.removeItem(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 741e9eccdd7..9b4b697f9c0 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -243,8 +243,7 @@
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.remove_from_mob(src)
- qdel(src)
+ user.deleteItem(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 822bc8da7cf..822037d40d8 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.drop_from_inventory(user.wear_mask)
+ user.removeItem(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 735daf78e8f..692a25fd359 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.remove_from_mob(old_item)
+ L.removeItem(old_item)
if(delete_old)
qdel(old_item)
else
@@ -33,8 +33,7 @@
for(var/obj/item/to_remove in summoned_items)
if(istype(to_remove.loc, /mob))
var/mob/M = to_remove.loc
- M.remove_from_mob(to_remove)
- qdel(to_remove)
+ M.deleteItem(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 4e80282daa7..e313b211965 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.drop_from_inventory(W)
+ user.removeItem(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 aee13ede832..352dd9232d0 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.drop_from_inventory(E)
+ user.removeItem(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 9b7b0067598..aee6e667e77 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.remove_from_mob(O)
+ user.removeItem(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 96ff090b366..1cd0bacef5e 100644
--- a/code/modules/surgery/robotics.dm
+++ b/code/modules/surgery/robotics.dm
@@ -417,8 +417,7 @@
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.drop_from_inventory(tool)
- tool.loc = holder
+ user.removeItem(tool, holder)
holder.stored_mmi = tool
holder.update_from_mmi()
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index ddc56dad3f6..634c2bbc595 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -237,8 +237,7 @@
if(!istype(C))
return
- H.drop_from_inventory(C)
- C.forceMove(src)
+ H.removeItem(C, src)
cell = C
powercheck()
usr << "You install [C] in [src]."