From d0e9eedd25e9906db05f8c55062d6ecc918be497 Mon Sep 17 00:00:00 2001 From: ComicIronic Date: Sun, 12 Apr 2015 00:56:43 +0100 Subject: [PATCH 1/3] drop_item and click code. drop_item now has a first arg, which is the item to drop. Hand processing now uses drop_item properly, which fixes #3874, #3796. Also fixes #3486. --- baystation12.dme | 5 -- code/ATMOSPHERICS/hvac/chiller.dm | 2 +- code/ATMOSPHERICS/hvac/spaceheater.dm | 4 +- code/ATMOSPHERICS/pipe/pipe_dispenser.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 2 +- .../Cael_Aislinn/Rust/fuel_injector.dm | 2 +- code/WorkInProgress/Chinsky/ashtray.dm | 2 +- code/WorkInProgress/Mini/ATM.dm | 4 +- code/WorkInProgress/kilakk/fax.dm | 6 +- .../pomf/spacepods/spacepods.dm | 4 +- code/_onclick/cyborg.dm | 4 +- code/_onclick/telekinesis.dm | 2 +- .../datums/diseases/advance/symptoms/cough.dm | 2 +- code/datums/diseases/wizarditis.dm | 3 +- .../helper_datums/construction_datum.dm | 6 +- code/datums/wires/wires.dm | 2 +- code/defines/obj.dm | 2 +- code/defines/obj/weapon.dm | 9 ++- code/game/dna/dna_modifier.dm | 4 +- code/game/gamemodes/endgame/xmas/snowman.dm | 4 +- code/game/gamemodes/events/ninja_equipment.dm | 9 ++- code/game/gamemodes/nuclear/nuclearbomb.dm | 4 +- code/game/machinery/OpTable.dm | 4 +- .../atmoalter/portable_atmospherics.dm | 2 +- code/game/machinery/bees_apiary.dm | 4 +- code/game/machinery/bioprinter.dm | 4 +- code/game/machinery/bots/cleanbot.dm | 2 +- code/game/machinery/bots/ed209bot.dm | 12 ++-- code/game/machinery/bots/farmbot.dm | 2 +- code/game/machinery/bots/medbot.dm | 6 +- code/game/machinery/bots/mulebot.dm | 4 +- code/game/machinery/bots/secbot.dm | 6 +- code/game/machinery/camera/camera_assembly.dm | 2 +- code/game/machinery/cell_charger.dm | 2 +- code/game/machinery/cloning.dm | 2 +- .../machinery/computer/HolodeckControl.dm | 2 +- code/game/machinery/computer/ai_core.dm | 4 +- .../game/machinery/computer/buildandrepair.dm | 2 +- code/game/machinery/computer/card.dm | 8 +-- code/game/machinery/computer/cloning.dm | 2 +- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/pda_terminal.dm | 4 +- code/game/machinery/computer/security.dm | 4 +- code/game/machinery/constructable_frame.dm | 4 +- code/game/machinery/cryo.dm | 2 +- code/game/machinery/defibcharger.dm | 2 +- .../embedded_controller_base.dm | 2 +- code/game/machinery/floodlight.dm | 2 +- code/game/machinery/gashapon.dm | 2 +- code/game/machinery/iv_drip.dm | 2 +- .../machinery/kitchen/chickenprocessor.dm | 6 +- code/game/machinery/kitchen/microwave.dm | 3 +- code/game/machinery/kitchen/monkeyrecycler.dm | 2 +- code/game/machinery/kitchen/processor.dm | 4 +- .../game/machinery/kitchen/snackbarmachine.dm | 2 +- code/game/machinery/mommi_spawner.dm | 2 +- code/game/machinery/newscaster.dm | 2 +- code/game/machinery/pdapainter.dm | 2 +- code/game/machinery/recharger.dm | 2 +- code/game/machinery/rechargestation.dm | 2 +- code/game/machinery/seed_extractor.dm | 4 +- code/game/machinery/suit_storage_unit.dm | 10 +-- .../telecomms/machine_interactions.dm | 2 +- .../machinery/telecomms/traffic_control.dm | 2 +- code/game/machinery/teleporter.dm | 2 +- code/game/machinery/vending.dm | 6 +- code/game/machinery/washing_machine.dm | 4 +- code/game/mecha/mecha.dm | 4 +- code/game/objects/closets/walllocker.dm | 2 +- code/game/objects/items/devices/PDA/PDA.dm | 10 +-- code/game/objects/items/devices/camera_bug.dm | 2 +- code/game/objects/items/devices/deskbell.dm | 2 +- .../objects/items/devices/lightreplacer.dm | 4 +- .../objects/items/devices/radio/cyborg.dm | 2 +- .../objects/items/devices/radio/headset.dm | 4 +- .../objects/items/devices/transfer_valve.dm | 4 +- code/game/objects/items/robot/robot_parts.dm | 22 +++---- .../weapons/ai_modules/planning_frame.dm | 2 +- .../objects/items/weapons/airlock_painter.dm | 2 +- .../objects/items/weapons/cigs_lighters.dm | 2 +- code/game/objects/items/weapons/dice.dm | 2 +- code/game/objects/items/weapons/explosives.dm | 2 +- .../objects/items/weapons/extinguisher.dm | 2 +- .../objects/items/weapons/flamethrower.dm | 4 +- .../objects/items/weapons/gift_wrappaper.dm | 4 +- .../items/weapons/grenades/chem_grenade.dm | 9 ++- .../objects/items/weapons/grenades/grenade.dm | 2 +- .../items/weapons/implants/implantpad.dm | 2 +- code/game/objects/items/weapons/paiwire.dm | 2 +- .../items/weapons/storage/briefcase.dm | 2 +- code/game/objects/items/weapons/stunbaton.dm | 2 +- code/game/objects/items/weapons/switchtool.dm | 2 +- .../objects/items/weapons/table_rack_parts.dm | 10 +-- code/game/objects/structures/bedsheet_bin.dm | 6 +- code/game/objects/structures/coatrack.dm | 4 +- .../structures/crates_lockers/closets.dm | 5 +- .../crates_lockers/closets/fireaxe.dm | 2 +- .../structures/crates_lockers/crates.dm | 4 +- code/game/objects/structures/displaycase.dm | 4 +- code/game/objects/structures/door_assembly.dm | 2 +- code/game/objects/structures/extinguisher.dm | 2 +- code/game/objects/structures/flora.dm | 2 +- code/game/objects/structures/girders.dm | 2 +- code/game/objects/structures/janicart.dm | 4 +- code/game/objects/structures/noticeboard.dm | 2 +- code/game/objects/structures/safe.dm | 2 +- .../structures/stool_bed_chair_nest/chairs.dm | 2 +- code/game/objects/structures/tables_racks.dm | 9 +-- .../game/objects/structures/tank_dispenser.dm | 4 +- code/game/objects/structures/target_stake.dm | 2 +- code/game/objects/structures/watercloset.dm | 2 +- .../objects/structures/windoor_assembly.dm | 2 +- code/game/turfs/simulated/floor.dm | 2 +- code/modules/Economy/Accounts.dm | 4 +- code/modules/assembly/bomb.dm | 2 +- code/modules/clothing/clothing.dm | 2 +- code/modules/clothing/gloves/stungloves.dm | 2 +- .../clothing/under/accessories/accessory.dm | 2 +- code/modules/detectivework/detective_work.dm | 4 +- code/modules/detectivework/evidence.dm | 7 +- code/modules/food/cooking_machines.dm | 2 +- code/modules/food/customizables.dm | 4 +- code/modules/food/icecreamvat.dm | 2 +- code/modules/hydroponics/grown_inedible.dm | 6 +- code/modules/hydroponics/hydro_tray.dm | 6 +- code/modules/hydroponics/seed_machines.dm | 4 +- code/modules/library/lib_items.dm | 10 +-- code/modules/library/lib_machines.dm | 4 +- code/modules/mining/equipment_locker.dm | 8 +-- code/modules/mining/money_bag.dm | 2 +- code/modules/mob/inventory.dm | 65 +++++-------------- .../carbon/alien/humanoid/update_icons.dm | 3 +- code/modules/mob/living/carbon/brain/MMI.dm | 5 +- code/modules/mob/living/carbon/brain/MaMI.dm | 3 +- code/modules/mob/living/carbon/give.dm | 2 +- .../mob/living/carbon/human/human_damage.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 4 +- .../mob/living/carbon/human/update_icons.dm | 12 ++-- .../mob/living/carbon/monkey/inventory.dm | 10 +-- .../mob/living/carbon/monkey/monkey.dm | 8 +-- .../mob/living/carbon/monkey/update_icons.dm | 9 +-- .../modules/mob/living/silicon/mommi/death.dm | 4 +- .../mob/living/silicon/mommi/inventory.dm | 14 +--- .../modules/mob/living/silicon/mommi/mommi.dm | 23 +++---- .../modules/mob/living/silicon/robot/robot.dm | 16 ++--- code/modules/mob/living/silicon/silicon.dm | 9 --- .../living/simple_animal/friendly/corgi.dm | 8 +-- .../simple_animal/friendly/farm_animals.dm | 2 +- .../simple_animal/friendly/spiderbot.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 6 +- code/modules/mob/living/simple_animal/vox.dm | 4 +- code/modules/mob/mob.dm | 5 +- code/modules/mob/mob_grab.dm | 3 +- code/modules/organs/organ_external.dm | 4 +- code/modules/paperwork/clipboard.dm | 4 +- code/modules/paperwork/filingcabinet.dm | 2 +- code/modules/paperwork/folders.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/paperbin.dm | 2 +- code/modules/paperwork/photocopier.dm | 6 +- code/modules/paperwork/photography.dm | 2 +- code/modules/power/apc.dm | 2 +- code/modules/power/lighting.dm | 2 +- code/modules/power/singularity/collector.dm | 2 +- code/modules/power/solar.dm | 2 +- code/modules/projectiles/ammunition.dm | 2 +- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/guns/projectile.dm | 8 +-- .../projectiles/guns/projectile/bow.dm | 5 +- .../projectiles/guns/projectile/pneumatic.dm | 2 +- .../projectiles/guns/projectile/revolver.dm | 2 +- code/modules/reagents/Chemistry-Machinery.dm | 10 +-- code/modules/reagents/dartgun.dm | 4 +- code/modules/reagents/grenade_launcher.dm | 2 +- .../reagent_containers/food/snacks.dm | 6 +- code/modules/reagents/reagent_dispenser.dm | 2 +- code/modules/reagents/syringe_gun.dm | 2 +- code/modules/recycling/conveyor2.dm | 2 +- code/modules/recycling/disposal.dm | 21 ++---- code/modules/research/destructive_analyzer.dm | 2 +- code/modules/research/rdconsole.dm | 2 +- .../artifact/artifact_communication.dm | 3 +- .../machinery/analysis_base.dm | 5 +- .../machinery/artifact_harvester.dm | 2 +- .../tools/ano_device_battery.dm | 2 +- .../xenoarchaeology/tools/bunsen_burner.dm | 2 +- .../tools/suspension_generator.dm | 4 +- code/modules/telesci/bscrystal.dm | 2 +- code/modules/telesci/telesci_computer.dm | 2 +- code/modules/virus2/analyser.dm | 2 +- code/modules/virus2/centrifuge.dm | 2 +- code/modules/virus2/curer.dm | 2 +- code/modules/virus2/diseasesplicer.dm | 2 +- code/modules/virus2/dishincubator.dm | 4 +- code/modules/virus2/isolator.dm | 2 +- 195 files changed, 372 insertions(+), 468 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 8972c6f32c0..2f4e5882d64 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1506,11 +1506,6 @@ #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_dnaswitch.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_emp.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_forcefield.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasco2.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasnitro.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasoxy.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasplasma.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gassleeping.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_goodfeeling.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heal.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heat.dm" diff --git a/code/ATMOSPHERICS/hvac/chiller.dm b/code/ATMOSPHERICS/hvac/chiller.dm index cb1e8115529..0e4af4c1e82 100644 --- a/code/ATMOSPHERICS/hvac/chiller.dm +++ b/code/ATMOSPHERICS/hvac/chiller.dm @@ -80,7 +80,7 @@ if(panel_open && !cell) var/obj/item/weapon/cell/C = usr.get_active_hand() if(istype(C)) - usr.drop_item(src) + usr.drop_item(C, src) cell = C C.add_fingerprint(usr) diff --git a/code/ATMOSPHERICS/hvac/spaceheater.dm b/code/ATMOSPHERICS/hvac/spaceheater.dm index 8c7ae14bb48..8934b3f1edb 100644 --- a/code/ATMOSPHERICS/hvac/spaceheater.dm +++ b/code/ATMOSPHERICS/hvac/spaceheater.dm @@ -59,7 +59,7 @@ // insert cell var/obj/item/weapon/cell/C = usr.get_active_hand() if(istype(C)) - user.drop_item(src) + user.drop_item(C, src) cell = C C.add_fingerprint(usr) @@ -142,7 +142,7 @@ if(panel_open && !cell) var/obj/item/weapon/cell/C = usr.get_active_hand() if(istype(C)) - usr.drop_item(src) + usr.drop_item(C, src) cell = C C.add_fingerprint(usr) diff --git a/code/ATMOSPHERICS/pipe/pipe_dispenser.dm b/code/ATMOSPHERICS/pipe/pipe_dispenser.dm index 1cf93b2b95d..f60992a1e56 100644 --- a/code/ATMOSPHERICS/pipe/pipe_dispenser.dm +++ b/code/ATMOSPHERICS/pipe/pipe_dispenser.dm @@ -126,7 +126,7 @@ src.add_fingerprint(usr) if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor)) usr << "\blue You put [W] back to [src]." - user.drop_item() + user.drop_item(W, src) if(istype(W, /obj/item/pipe)) returnToPool(W) else diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index 3ce9334ef9d..120e16b7159 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -18,7 +18,7 @@ user << "\red There is already a fuel rod assembly in there!" else cur_assembly = I - user.drop_item(src) + user.drop_item(I, src) icon_state = "port1" user << "\blue You insert [I] into [src]. Touch the panel again to insert [I] into the injector." diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm index 6b850fd0174..aeb368f88a4 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm @@ -74,7 +74,7 @@ if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly) if(emergency_insert_ready) cur_assembly = W - user.drop_item(src) + user.drop_item(W, src) emergency_insert_ready = 0 return diff --git a/code/WorkInProgress/Chinsky/ashtray.dm b/code/WorkInProgress/Chinsky/ashtray.dm index 82a4f1ca436..c3530c8cd8b 100644 --- a/code/WorkInProgress/Chinsky/ashtray.dm +++ b/code/WorkInProgress/Chinsky/ashtray.dm @@ -22,7 +22,7 @@ if (contents.len >= max_butts) user << "This ashtray is full." return - user.drop_item(src) + user.drop_item(W, src) var/obj/item/clothing/mask/cigarette/cig = W if(istype(cig, /obj/item/weapon/cigbutt)) user << "You drop the [cig] into [src]." diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm index 1274bfa6b89..4461114d248 100644 --- a/code/WorkInProgress/Mini/ATM.dm +++ b/code/WorkInProgress/Mini/ATM.dm @@ -91,7 +91,7 @@ log transactions if(istype(I, /obj/item/weapon/card)) var/obj/item/weapon/card/id/idcard = I if(!held_card) - usr.drop_item(src) + usr.drop_item(idcard, src) held_card = idcard if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number) authenticated_account = null @@ -366,7 +366,7 @@ log transactions else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item(src) + usr.drop_item(I, src) held_card = I if("logout") authenticated_account = null diff --git a/code/WorkInProgress/kilakk/fax.dm b/code/WorkInProgress/kilakk/fax.dm index d4455955847..6cb600b9057 100644 --- a/code/WorkInProgress/kilakk/fax.dm +++ b/code/WorkInProgress/kilakk/fax.dm @@ -141,7 +141,7 @@ var/list/alldepartments = list("Central Command") else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item(src) + usr.drop_item(I, src) scan = I authenticated = 0 @@ -166,7 +166,7 @@ var/list/alldepartments = list("Central Command") if(istype(O, /obj/item/weapon/paper)) if(!tofax) - user.drop_item(src) + user.drop_item(O, src) tofax = O user << "You insert the paper into \the [src]." flick("faxsend", src) @@ -178,7 +178,7 @@ var/list/alldepartments = list("Central Command") var/obj/item/weapon/card/id/idcard = O if(!scan) - usr.drop_item(src) + usr.drop_item(idcard, src) scan = idcard else if(istype(O, /obj/item/weapon/wrench)) diff --git a/code/WorkInProgress/pomf/spacepods/spacepods.dm b/code/WorkInProgress/pomf/spacepods/spacepods.dm index c9d93f460d7..a77ab0f72a9 100644 --- a/code/WorkInProgress/pomf/spacepods/spacepods.dm +++ b/code/WorkInProgress/pomf/spacepods/spacepods.dm @@ -121,7 +121,7 @@ if(battery) user << "The pod already has a battery." return - user.drop_item(src) + user.drop_item(W, src) battery = W return if(istype(W, /obj/item/device/spacepod_equipment)) @@ -136,7 +136,7 @@ return else user << "You insert \the [W] into the equipment system." - user.drop_item(equipment_system) + user.drop_item(W, equipment_system) equipment_system.weapon_system = W equipment_system.weapon_system.my_atom = src new/obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system(src, equipment_system.weapon_system.verb_name, equipment_system.weapon_system.verb_desc) //Yes, it has to be referenced like that. W.verb_name/desc doesn't compile. diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 5c9c8dc41f0..7160ac05821 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -73,7 +73,7 @@ var/resolved = W.preattack(A, src, 1, params) if(!resolved) - resolved = A.attackby(W,src) + resolved = A.attackby(W,src,params) if(ismob(A) || istype(A, /obj/mecha) || istype(W, /obj/item/weapon/grab)) delayNextAttack(10) if(!resolved && A && W) @@ -93,7 +93,7 @@ */ var/resolved = W.preattack(A, src, 1, params) if(!resolved) - resolved = A.attackby(W,src) + resolved = A.attackby(W,src,params) if(ismob(A) || istype(A, /obj/mecha)) delayNextAttack(10) if(!resolved && A && W) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 0c69bce667c..169d0dcb3b9 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -76,7 +76,7 @@ var/const/tk_maxrange = 15 dropped(mob/user as mob) - if(focus && user && loc != user && loc != user.loc) // drop_item() gets called when you tk-attack a table/closet with an item + if(focus && user && loc != user && loc != user.loc) // drop_item(null, ) gets called when you tk-attack a table/closet with an item if(focus.Adjacent(loc)) focus.loc = loc diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index ad36d3300e5..299e25b5d40 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -35,5 +35,5 @@ BONUS M.emote("cough") var/obj/item/I = M.get_active_hand() if(I && I.w_class < 3) - M.drop_item() + M.drop_item(I) return \ No newline at end of file diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index ebba6f645f4..9c48d6e6dda 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -82,7 +82,8 @@ STI KALY - blind var/mob/living/carbon/H = affected_mob if(prob(chance)) if(!istype(H.r_hand, /obj/item/weapon/staff)) - H.drop_r_hand() + if(H.r_hand) //no need to drop if we aren't holding anything + H.drop_item(H.r_hand) H.put_in_r_hand( new /obj/item/weapon/staff(H) ) return return diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm index 3e23d508504..56b8cb5f8e4 100644 --- a/code/datums/helper_datums/construction_datum.dm +++ b/code/datums/helper_datums/construction_datum.dm @@ -168,8 +168,7 @@ else var/atom_name = used_atom.name if(permanence || (Co_KEEP in given_step)) - user.drop_item(holder) - used_atom.loc = holder + user.drop_item(used_atom, holder) used_atoms.Add(list("[steps.Find(given_step)]" = used_atom)) else qdel(used_atom) @@ -334,8 +333,7 @@ else var/atom_name = used_atom.name if(permanence || (Co_KEEP in given_step)) - user.drop_item(holder) - used_atom.loc = holder + user.drop_item(used_atom, holder) if(!("[index][diff == FORWARD ? "+" : "-"]" in used_atoms)) used_atoms.Add(list("[index][diff == FORWARD ? "+" : "-"]" = list())) used_atoms["[index][diff == FORWARD ? "+" : "-"]"] += used_atom diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index c57b6fdefdf..3cbae7b31a3 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -141,7 +141,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown", // Attach else if(istype(I, /obj/item/device/assembly/signaler)) - L.drop_item() + L.drop_item(I) Attach(colour, I) else L << "You need a remote signaller!" diff --git a/code/defines/obj.dm b/code/defines/obj.dm index b564a10d051..87a9b2cb576 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -306,7 +306,7 @@ var/global/list/PDA_Manifest = list() siemens_coefficient = 1 /obj/item/weapon/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob) - user.drop_item() + user.drop_item(src) src.throw_at(target, throw_range, throw_speed) /obj/effect/stop diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 36c41d8d811..1679f275c32 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -222,7 +222,7 @@ if((M_CLUMSY in H.mutations) && prob(50)) H <<"\red You smack yourself in the face while swinging the [src]!" H.Stun(2) - H.drop_item() + H.drop_item(src) return if (!thrown_from && usr) //if something hasn't set it already (like a mech does when it launches) thrown_from = usr //then the user must have thrown it @@ -374,14 +374,14 @@ if(I.w_class) //if it has a defined weight if(I.w_class == 2.0 || I.w_class == 3.0) //just one is too specific, so don't change this if(weight1 == null) - user.drop_item(src) + user.drop_item(I, src) weight1 = I user.show_message("You tie [weight1] to the [src].") update_icon() //del(I) return if(weight2 == null) //just in case - user.drop_item(src) + user.drop_item(I, src) weight2 = I user.show_message("You tie [weight2] to the [src].") update_icon() @@ -429,8 +429,7 @@ IED = null return if(2,3) - user.drop_item(src) - I.loc = src + user.drop_item(I, src) var/turf/bombturf = get_turf(src) var/area/A = get_area(bombturf) var/log_str = "[key_name(usr)]? has rigged a beartrap with an IED at [A.name] (JMP)." diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index d7c0d55be00..c83c5fca45c 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -211,7 +211,7 @@ return beaker = item - user.drop_item(src) + user.drop_item(beaker, src) user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!") return if(istype(item, /obj/item/weapon/grab)) //sanity checks, you chucklefucks @@ -343,7 +343,7 @@ ..() if (istype(O, /obj/item/weapon/disk/data)) //INSERT SOME diskS if (!src.disk) - user.drop_item(src) + user.drop_item(O, src) src.disk = O user << "You insert [O]." nanomanager.update_uis(src) // update all UIs attached to src() diff --git a/code/game/gamemodes/endgame/xmas/snowman.dm b/code/game/gamemodes/endgame/xmas/snowman.dm index 2f75d65459e..27ea7549834 100644 --- a/code/game/gamemodes/endgame/xmas/snowman.dm +++ b/code/game/gamemodes/endgame/xmas/snowman.dm @@ -73,7 +73,7 @@ /mob/living/simple_animal/hostile/retaliate/snowman/attackby(var/obj/item/W, var/mob/user) if(!carrot && istype(W, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot)) visible_message("[user] puts \a [W] on \the [src]'s nose.") - user.drop_item(src) + user.drop_item(W, src) carrot = W overlays += "snowman_carrot" speak -= "Would you happen to have a carrot for my nose?" @@ -88,7 +88,7 @@ hat = null else speak += "I feel so dandy!" - user.drop_item(src) + user.drop_item(W, src) hat = W overlays += image('icons/mob/head.dmi', hat.icon_state) diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 3138de8e2a0..38b6caf53eb 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -814,7 +814,7 @@ ________________________________________________________________________________ U << "ERROR: Remote access channel disabled." return//Return individually so that ..() can run properly at the end of the proc. else if(istype(I, /obj/item/device/paicard) && !pai)//If it's a pai card. - U:drop_item(src) + U.drop_item(I, src) pai = I U << "You slot \the [I] into \the [src]." updateUsrDialog() @@ -839,7 +839,7 @@ ________________________________________________________________________________ if(I:maxcharge>cell.maxcharge&&n_gloves&&n_gloves.candrain) U << "Higher maximum capacity detected.\nUpgrading..." if (n_gloves&&n_gloves.candrain&&do_after(U,s_delay)) - U.drop_item(src) + U.drop_item(I, src) I:charge = min(I:charge+cell.charge, I:maxcharge) var/obj/item/weapon/cell/old_cell = cell old_cell.charge = 0 @@ -918,10 +918,9 @@ ________________________________________________________________________________ else return 1 if(2) if(istype(U.get_active_hand(), /obj/item/weapon/melee/energy/blade)) - U.drop_item() + U.drop_item(U.get_active_hand()) if(istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - U.swap_hand() - U.drop_item() + U.drop_item(U.get_inactive_hand()) return 0 /obj/item/clothing/suit/space/space_ninja/examine(mob/user) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index de82ac75f11..73cbd0ea4bc 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -38,7 +38,7 @@ var/bomb_set /obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob) if (src.extended) if (istype(O, /obj/item/weapon/disk/nuclear)) - usr.drop_item(src) + usr.drop_item(O, src) src.auth = O src.add_fingerprint(user) return @@ -188,7 +188,7 @@ var/bomb_set else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/disk/nuclear)) - usr.drop_item(src) + usr.drop_item(I, src) src.auth = I if (src.auth) if (href_list["type"]) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 2f5772b7ad2..b3db5284892 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -79,7 +79,7 @@ if ((( istype(O, /obj/item/weapon) ) || user.get_active_hand() == O)) - user.drop_item() + user.drop_item(O) if (O.loc != src.loc) step(O, get_dir(O, src)) return @@ -170,5 +170,5 @@ del(W) return if(isrobot(user)) return - user.drop_item(src.loc) + user.drop_item(W, src.loc) return \ No newline at end of file diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 6c3b7c6bb5c..600995a4ef5 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -88,7 +88,7 @@ if (src.holding) return var/obj/item/weapon/tank/T = W - user.drop_item(src) + user.drop_item(T, src) src.holding = T update_icon() return diff --git a/code/game/machinery/bees_apiary.dm b/code/game/machinery/bees_apiary.dm index f82c268db4c..a15a3d3922f 100644 --- a/code/game/machinery/bees_apiary.dm +++ b/code/game/machinery/bees_apiary.dm @@ -54,14 +54,14 @@ else health = 10 nutrilevel += 10 - user.drop_item() + user.drop_item(O) qdel(O) user << "\blue You carefully insert the queen into [src], she gets busy making a hive." bees_in_hive = 0 else if(istype(O, /obj/item/beezeez)) beezeez += 100 nutrilevel += 10 - user.drop_item() + user.drop_item(O) if(health > 0) user << "\blue You insert [O] into [src]. A relaxed humming appears to pick up." else diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index 4cba70b8d45..c8d1418f255 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -92,7 +92,7 @@ else if(!prints_prosthetics && istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat)) visible_message("\The [src] processes \the [W].") stored_matter += 50 - user.drop_item() + user.drop_item(W) qdel(W) return // Steel for matter. @@ -100,7 +100,7 @@ var/obj/item/stack/sheet/metal/M = W visible_message("\The [src] processes \the [W].") stored_matter += M.amount * 10 - user.drop_item() + user.drop_item(M) returnToPool(M) return else if(istype(W, /obj/item/weapon/wrench)) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index db82e601ce6..4b7784ec5c3 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -342,7 +342,7 @@ text("[src.oddbutton ? "Yes" : "No" /obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob) ..() if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) - user.drop_item() + user.drop_item(W) qdel(W) var/turf/T = get_turf(src.loc) var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index bfd72a047c2..b035bee527e 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -934,7 +934,7 @@ Auto Patrol: []"}, switch(build_step) if(0,1) if( istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the robot leg to [src]." @@ -952,7 +952,7 @@ Auto Patrol: []"}, else if( istype(W, /obj/item/clothing/suit/bluetag) ) lasercolor = "b" if( lasercolor || istype(W, /obj/item/clothing/suit/armor/vest) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the armor to [src]." @@ -969,7 +969,7 @@ Auto Patrol: []"}, user << "You welded the vest to [src]." if(4) if( istype(W, /obj/item/clothing/head/helmet) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the helmet to [src]." @@ -979,7 +979,7 @@ Auto Patrol: []"}, if(5) if( isprox(W) ) - user.drop_item() + user.drop_item(W) qdel(W) build_step++ user << "You add the prox sensor to [src]." @@ -1019,7 +1019,7 @@ Auto Patrol: []"}, user << "You add [W] to [src]." src.item_state = "[lasercolor]ed209_taser" src.icon_state = "[lasercolor]ed209_taser" - user.drop_item() + user.drop_item(W) qdel(W) if(8) @@ -1039,7 +1039,7 @@ Auto Patrol: []"}, user << "You complete the ED-209." var/turf/T = get_turf(src) new /obj/machinery/bot/ed209(T,created_name,lasercolor) - user.drop_item() + user.drop_item(W) qdel(W) user.drop_from_inventory(src) qdel(src) diff --git a/code/game/machinery/bots/farmbot.dm b/code/game/machinery/bots/farmbot.dm index f963304556a..e895f1d4749 100644 --- a/code/game/machinery/bots/farmbot.dm +++ b/code/game/machinery/bots/farmbot.dm @@ -174,7 +174,7 @@ if ( get_total_ferts() >= Max_Fertilizers ) user << "The fertilizer storage is full!" return - user.drop_item(src) + user.drop_item(W, src) user << "You insert [W]." flick("farmbot_hatch",src) src.updateUsrDialog() diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 33798592686..2b526567c9f 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -214,7 +214,7 @@ user << "There is already a beaker loaded." return - user.drop_item(src) + user.drop_item(W, src) src.reagent_glass = W user << "You insert [W]." src.updateUsrDialog() @@ -589,7 +589,7 @@ switch(build_step) if(0) if(istype(W, /obj/item/device/healthanalyzer)) - user.drop_item() + user.drop_item(W) qdel(W) src.build_step++ user << "You add the health sensor to [src]." @@ -598,7 +598,7 @@ if(1) if(isprox(W)) - user.drop_item() + user.drop_item(W) qdel(W) src.build_step++ user << "You complete the Medibot! Beep boop." diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index c75f44221ed..4ae02ddb307 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -122,7 +122,7 @@ var/global/mulebot_count = 0 else if(istype(I,/obj/item/weapon/cell) && open && !cell) var/obj/item/weapon/cell/C = I - user.drop_item(src) + user.drop_item(C, src) cell = C updateDialog() else if(istype(I,/obj/item/weapon/screwdriver)) @@ -302,7 +302,7 @@ var/global/mulebot_count = 0 if(open && !cell) var/obj/item/weapon/cell/C = usr.get_active_hand() if(istype(C)) - usr.drop_item(src) + usr.drop_item(C, src) cell = C C.add_fingerprint(usr) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index b94df494f13..555116b4624 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -817,7 +817,7 @@ Auto Patrol: []"}, user << "You weld a hole in [src]!" else if(isprox(W) && (src.build_step == 1)) - user.drop_item() + user.drop_item(W) src.build_step++ user << "You add the prox sensor to [src]!" src.overlays += image('icons/obj/aibots.dmi', "hs_eye") @@ -825,7 +825,7 @@ Auto Patrol: []"}, qdel(W) else if(((istype(W, /obj/item/robot_parts/l_arm)) || (istype(W, /obj/item/robot_parts/r_arm))) && (src.build_step == 2)) - user.drop_item() + user.drop_item(W) src.build_step++ user << "You add the robot arm to [src]!" src.name = "helmet/signaler/prox sensor/robot arm assembly" @@ -833,7 +833,7 @@ Auto Patrol: []"}, qdel(W) else if((istype(W, /obj/item/weapon/melee/baton)) && (src.build_step >= 3)) - user.drop_item() + user.drop_item(W) src.build_step++ user << "You complete the Securitron! Beep boop." var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index e05c08905b6..ff4d54b37fb 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -122,7 +122,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.drop_item(src) + user.drop_item(W, src) return // Taking out upgrades diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index e146cdd9626..66db8f8cb3f 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -78,7 +78,7 @@ user << "[src] blinks red as you try to insert the cell!" return - user.drop_item(src) + user.drop_item(W, src) charging = W user.visible_message("[user] inserts a cell into [src].", "You insert a cell into [src].") chargelevel = -1 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index f6f70f2d095..9f03c98516d 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -340,7 +340,7 @@ else if (istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat)) user << "\The [src] processes \the [W]." biomass += 50 - user.drop_item() + user.drop_item(W) qdel(W) return else diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 8c17edb6712..ee2928abd47 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -516,7 +516,7 @@ qdel(W) return else if (istype(W, /obj/item) && get_dist(src,user)<2) - user.drop_item(src.loc) + user.drop_item(W, src.loc) visible_message("\blue [user] dunks [W] into the [src]!", 3) return diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index bbeed870d32..cd42cd7b239 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -45,7 +45,7 @@ user << "You place the circuit board inside the frame." icon_state = "1" circuit = P - user.drop_item(src) + user.drop_item(P, src) if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) user << "You screw the circuit board into place." @@ -137,7 +137,7 @@ ticker.mode.remove_cultist(P:brainmob.mind, 1) ticker.mode.remove_revolutionary(P:brainmob.mind, 1) - user.drop_item(src) + user.drop_item(P, src) brain = P usr << "Added [P]." icon_state = "3b" diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index f91b8f3b2b1..5d700573003 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -316,7 +316,7 @@ user << "You place the circuit board inside the frame." src.icon_state = "1" src.circuit = P - user.drop_item(src) + user.drop_item(B, src) else user << "This frame does not accept circuit boards of this type!" return 1 diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 2dabc09ec0e..2c06f9a7564 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -92,10 +92,10 @@ return ..() if(!scan && access_change_ids in id_card.access) - user.drop_item(src) + user.drop_item(id_card, src) scan = id_card else if(!modify) - user.drop_item(src) + user.drop_item(id_card, src) modify = id_card nanomanager.update_uis(src) @@ -197,7 +197,7 @@ else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item(src) + usr.drop_item(I, src) modify = I if ("scan") @@ -213,7 +213,7 @@ else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item(src) + usr.drop_item(I, src) scan = I if("access") diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 897059d6ea7..f814107a91e 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -61,7 +61,7 @@ /obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES if (!src.diskette) - user.drop_item(src) + user.drop_item(W, src) src.diskette = W user << "You insert [W]." src.updateUsrDialog() diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 05e3c4ccf92..ca5ed087ccb 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -160,7 +160,7 @@ else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item(src) + usr.drop_item(I, src) src.scan = I else if (href_list["logout"]) src.authenticated = null diff --git a/code/game/machinery/computer/pda_terminal.dm b/code/game/machinery/computer/pda_terminal.dm index 05e3518127c..0af228dd5c0 100644 --- a/code/game/machinery/computer/pda_terminal.dm +++ b/code/game/machinery/computer/pda_terminal.dm @@ -65,7 +65,7 @@ return ..() if(!pda_device) - user.drop_item(src) + user.drop_item(user_pda, src) pda_device = user_pda update_icon() @@ -130,7 +130,7 @@ else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/device/pda)) - usr.drop_item(src) + usr.drop_item(I, src) pda_device = I update_icon() diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 7bb5ff5ce48..de04075d94e 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -26,7 +26,7 @@ /obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob) if(istype(O, /obj/item/weapon/card/id) && !scan) - usr.drop_item(src) + usr.drop_item(O, src) scan = O user << "You insert [O]." ..() @@ -239,7 +239,7 @@ What a mess.*/ else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item(src) + usr.drop_item(I, src) scan = I if("Log Out") diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 5ac56676468..1211d991232 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -79,7 +79,7 @@ playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) user << "You add the circuit board to the frame." circuit = P - user.drop_item(src) + user.drop_item(B, src) icon_state = "box_2" build_state = 3 components = list() @@ -183,7 +183,7 @@ break else user << "You do not have enough [P]!" - user.drop_item(src) + user.drop_item(P, src) components += P req_components[I]-- update_desc() diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index c0f6aac53dd..b613b62fb5a 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -262,7 +262,7 @@ user << "A beaker is already loaded into the machine." return beaker = G - user.drop_item(src) + user.drop_item(G, src) user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!") if(..()) return diff --git a/code/game/machinery/defibcharger.dm b/code/game/machinery/defibcharger.dm index ec0fc1077cc..9b3f7a95350 100644 --- a/code/game/machinery/defibcharger.dm +++ b/code/game/machinery/defibcharger.dm @@ -107,7 +107,7 @@ obj/machinery/recharger/defibcharger/wallcharger/attackby(obj/item/weapon/G as o if(a.power_equip == 0) user << "[src] blinks red as you try to insert [D]!" return - user.drop_item(src) + user.drop_item(G, src) charging = G use_power = 2 update_icon() diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index f25693971dc..b07a97c29bc 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -49,7 +49,7 @@ usr << "You begin to insert \the [C] into \the [src]." if(do_after(user, 10)) usr << "\blue You secure \the [C]!" - user.drop_item(src) + user.drop_item(C, src) _circuitboard=C playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) build++ diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 5a195db28c0..ff441d3d65a 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -75,7 +75,7 @@ if(cell) user << "There is a power cell already installed." else - user.drop_item(src) + user.drop_item(W, src) cell = W user << "You insert the power cell." updateicon() diff --git a/code/game/machinery/gashapon.dm b/code/game/machinery/gashapon.dm index 5d452a88454..610fce5ac3c 100644 --- a/code/game/machinery/gashapon.dm +++ b/code/game/machinery/gashapon.dm @@ -11,7 +11,7 @@ /obj/machinery/gashapon/attackby(var/obj/O as obj, var/mob/user as mob) if (istype(O, /obj/item/weapon/coin/)) - user.drop_item(src) + user.drop_item(O, src) user.visible_message("[user] puts a coin into [src] and turns the knob.", "You put a coin into [src] and turn the knob.") src.visible_message("[src] clicks softly.") sleep(rand(10,15)) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 73272d6a5b1..619fe1f3c05 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -72,7 +72,7 @@ user << "There is already a reagent container loaded!" return - user.drop_item(src) + user.drop_item(W, src) src.beaker = W user << "You attach \the [W] to \the [src]." src.update_icon() diff --git a/code/game/machinery/kitchen/chickenprocessor.dm b/code/game/machinery/kitchen/chickenprocessor.dm index fd0c0b565a1..a2bb1e50de6 100644 --- a/code/game/machinery/kitchen/chickenprocessor.dm +++ b/code/game/machinery/kitchen/chickenprocessor.dm @@ -37,7 +37,7 @@ var/grabbed = G.affecting if(istype(grabbed, /mob/living/simple_animal/chicken)) var/mob/living/simple_animal/chicken/target = grabbed - user.drop_item() + user.drop_item(G) del(target) user << "[emagged ? "Bkaww!" : "You stuff the chicken in the machine."]" playsound(get_turf(src), 'sound/machines/ya_dun_clucked.ogg', 50, 1) @@ -47,7 +47,7 @@ else if(istype(grabbed, /mob/living/simple_animal/chick)) var/mob/living/simple_animal/chick/target = grabbed - user.drop_item() + user.drop_item(G) del(target) user << "[emagged ? "Bkaww!" : "You stuff the chick in the machine, you monster."]" playsound(get_turf(src), 'sound/machines/ya_dun_clucked.ogg', 50, 1) @@ -61,7 +61,7 @@ if(emagged) user << "Bwak! Bwak! Bwak!" playsound(get_turf(src), 'sound/machines/ya_dun_clucked.ogg', 50, 1) - user.drop_item() + user.drop_item(G) target.canmove = 0 target.icon = null target.invisibility = 101 diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index e3d70e09901..bec60616ab7 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -173,8 +173,7 @@ "You add one of [O] to \the [src].") else // user.before_take_item(O) //This just causes problems so far as I can tell. -Pete - user.drop_item(src) - contents += O + user.drop_item(O, src) user.visible_message( \ "[user] has added \the [O] to \the [src].", \ "You add \the [O] to \the [src].") diff --git a/code/game/machinery/kitchen/monkeyrecycler.dm b/code/game/machinery/kitchen/monkeyrecycler.dm index 4921b176321..a39139a1b99 100644 --- a/code/game/machinery/kitchen/monkeyrecycler.dm +++ b/code/game/machinery/kitchen/monkeyrecycler.dm @@ -43,7 +43,7 @@ if(target.wear_mask || target.l_hand || target.r_hand || target.back || target.uniform || target.hat) user << "The monkey may not have abiotic items on." else - user.drop_item() + user.drop_item(G) del(target) user << "You stuff the monkey in the machine." playsound(get_turf(src), 'sound/machines/juicer.ogg', 50, 1) diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index e2c463b438c..4a9274a103b 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -160,9 +160,9 @@ user.visible_message("[user] puts [what] into [src].", \ "You put [what] into the [src].") if(what == user.get_active_hand()) - user.drop_item(src) + user.drop_item(what, src) else - user.drop_item() + user.drop_item(O) what.loc = src return diff --git a/code/game/machinery/kitchen/snackbarmachine.dm b/code/game/machinery/kitchen/snackbarmachine.dm index 6f87b5a5114..b42561dd409 100644 --- a/code/game/machinery/kitchen/snackbarmachine.dm +++ b/code/game/machinery/kitchen/snackbarmachine.dm @@ -76,7 +76,7 @@ user << "A beaker is already loaded into the machine." return src.beaker = B - user.drop_item(src) + user.drop_item(B, src) user << "You add the beaker to the machine!" src.updateUsrDialog() update_icon() diff --git a/code/game/machinery/mommi_spawner.dm b/code/game/machinery/mommi_spawner.dm index dfb65ce059b..c9298559858 100644 --- a/code/game/machinery/mommi_spawner.dm +++ b/code/game/machinery/mommi_spawner.dm @@ -133,7 +133,7 @@ building=1 update_icon() - user.drop_item(src) + user.drop_item(O, src) mmi.icon = null mmi.invisibility = 101 spawn(50) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 3319c1cafb9..9e35ea3d2b6 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -932,7 +932,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co photo = null if(istype(user.get_active_hand(), /obj/item/weapon/photo)) photo = user.get_active_hand() - user.drop_item(src) + user.drop_item(photo, src) diff --git a/code/game/machinery/pdapainter.dm b/code/game/machinery/pdapainter.dm index f6f9e5897f1..4f8da1eaf0c 100644 --- a/code/game/machinery/pdapainter.dm +++ b/code/game/machinery/pdapainter.dm @@ -91,7 +91,7 @@ Feel free to do whatever with this if you think it lacks. else var/obj/item/device/pda/P = O if(istype(P)) - user.drop_item(src) + user.drop_item(P, src) storedpda = P //P.add_fingerprint(usr) update_icon() diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index d88eca077be..854dee09060 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -33,7 +33,7 @@ return if (istype(G, /obj/item/weapon/gun/energy/staff)) return - user.drop_item(src) + user.drop_item(G, src) charging = G use_power = 2 update_icon() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 4ef0279ca5d..d2838388de5 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -105,7 +105,7 @@ /obj/machinery/recharge_station/attackby(var/obj/item/W, var/mob/living/user) if(is_type_in_list(W, acceptable_upgradeables)) if(!(locate(W.type) in upgrade_holder)) - user.drop_item(src) + user.drop_item(W, src) upgrade_holder.Add(W) user << "You add \the [W] to \the [src]." return diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm index 59db8b75a05..7c53adb1107 100644 --- a/code/game/machinery/seed_extractor.dm +++ b/code/game/machinery/seed_extractor.dm @@ -60,7 +60,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.drop_item() + user.drop_item(O) var/datum/seed/new_seed_type if(istype(O, /obj/item/weapon/grown)) @@ -93,7 +93,7 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob var/obj/item/F = O if(F.nonplant_seed_type) user << "You extract some seeds from the [F.name]." - user.drop_item() + user.drop_item(O) var/t_amount = 0 var/t_max = rand(1,4) while(t_amount < t_max) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index aecfa216506..5dd4de3be83 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -241,7 +241,7 @@ /obj/machinery/suit_storage_unit/Topic(href, href_list) //I fucking HATE this proc if(..()) return 1 - else + else usr.set_machine(src) if (href_list["toggleUV"]) src.toggleUV(usr) @@ -631,7 +631,7 @@ user << "The unit already contains a suit." return user << "You load the [S.name] into the storage compartment." - user.drop_item(src) + user.drop_item(S, src) src.SUIT = S src.update_icon() src.updateUsrDialog() @@ -644,7 +644,7 @@ user << "The unit already contains a helmet." return user << "You load the [H.name] into the storage compartment." - user.drop_item(src) + user.drop_item(H, src) src.HELMET = H src.update_icon() src.updateUsrDialog() @@ -657,7 +657,7 @@ user << "The unit already contains a mask." return user << "You load the [M.name] into the storage compartment." - user.drop_item(src) + user.drop_item(M, src) src.MASK = M src.update_icon() src.updateUsrDialog() @@ -670,7 +670,7 @@ user << "The unit already contains shoes." return user << "You load \the [M.name] into the storage compartment." - user.drop_item(src) + user.drop_item(M, src) src.BOOTS = M src.update_icon() src.updateUsrDialog() diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 96c175522bd..3a1babbb7df 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -52,7 +52,7 @@ user << "You insert the cables." A.amount -= 5 if(A.amount <= 0) - user.drop_item() + user.drop_item(A) returnToPool(A) construct_op -- stat &= ~BROKEN // the machine's not borked anymore! diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index de205ceb420..a96a9acd4fb 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -185,7 +185,7 @@ var/obj/item/weapon/card/id/I = C.get_active_hand() if(istype(I)) if(check_access(I)) - C.drop_item(src) + C.drop_item(I, src) auth = I create_log("has logged in.", usr) else diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index c1a4110ab3b..b1c30dddb62 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -39,7 +39,7 @@ if(istype(L, /obj/effect/landmark/) && istype(L.loc, /turf)) usr << "You insert the coordinates into the machine." usr << "A message flashes across the screen reminding the traveller that the nuclear authentication disk is to remain on the station at all times." - user.drop_item() + user.drop_item(I) qdel(I) /* FUCK YOU diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index a20425e79a0..3a817a83091 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -306,7 +306,7 @@ return else if(istype(W, /obj/item/weapon/coin) && premium.len > 0) if (isnull(coin)) - user.drop_item(src) + user.drop_item(W, src) coin = W user << "You insert a coin into [src]." else @@ -315,7 +315,7 @@ return else if(istype(W, /obj/item/voucher)) if(can_accept_voucher(W, user)) - user.drop_item(src) + user.drop_item(W, src) user << "You insert [W] into [src]." return voucher_act(W, user) else @@ -1020,7 +1020,7 @@ usr << "You begin to insert \the [C] into \the [src]." if(do_after(user, 10)) usr << "You secure \the [C]!" - user.drop_item(src) + user.drop_item(C, src) _circuitboard=C playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) build++ diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index b80ec2da282..61c765b15e3 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -216,7 +216,7 @@ else if(istype(W,/obj/item/toy/crayon) ||istype(W,/obj/item/weapon/stamp)) if( wash_state in list( 1, 3, 6 ) ) if(!crayon) - user.drop_item(src) + user.drop_item(W, src) crayon = W else if(istype(W,/obj/item/weapon/grab)) if( (wash_state == 1) && hacked) @@ -275,7 +275,7 @@ if(contents.len < 5) if ( wash_state in list(1, 3) ) - user.drop_item(src) + user.drop_item(W, src) wash_state = 3 else user << "\blue You can't put the item in right now." diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index f0480a8886a..c688ab36e62 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -665,7 +665,7 @@ var/obj/item/mecha_parts/mecha_equipment/E = W spawn() if(E.can_attach(src)) - user.drop_item() + user.drop_item(W) E.attach(src) user.visible_message("[user] attaches [W] to [src]", "You attach [W] to [src]") else @@ -731,7 +731,7 @@ if(state==4) if(!src.cell) user << "You install the powercell" - user.drop_item(src) + user.drop_item(W, src) src.cell = W src.log_message("Powercell installed") else diff --git a/code/game/objects/closets/walllocker.dm b/code/game/objects/closets/walllocker.dm index 058e8c0237e..b64f7a8eebe 100644 --- a/code/game/objects/closets/walllocker.dm +++ b/code/game/objects/closets/walllocker.dm @@ -94,7 +94,7 @@ usr << "You put \the [G] in \the [src]." defib = G update_icon() - user.drop_item(src) + user.drop_item(G, src) return return diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index a112e25a67e..a3e14162345 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1500,13 +1500,13 @@ var/global/list/obj/item/device/pda/PDAs = list() else var/obj/item/I = user.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - user.drop_item(src) + user.drop_item(I, src) id = I else var/obj/item/weapon/card/I = user.get_active_hand() if (istype(I, /obj/item/weapon/card/id) && I:registered_name) var/obj/old_id = id - user.drop_item(src) + user.drop_item(I, src) id = I user.put_in_hands(old_id) return @@ -1516,7 +1516,7 @@ var/global/list/obj/item/device/pda/PDAs = list() ..() if(istype(C, /obj/item/weapon/cartridge) && !cartridge) cartridge = C - user.drop_item(src) + user.drop_item(C, src) user << "You insert [cartridge] into [src]." if(cartridge.radio) cartridge.radio.hostpda = src @@ -1541,7 +1541,7 @@ var/global/list/obj/item/device/pda/PDAs = list() return //Return in case of failed check or when successful. updateSelfDialog()//For the non-input related code. else if(istype(C, /obj/item/device/paicard) && !src.pai) - user.drop_item(src) + user.drop_item(C, src) pai = C user << "You slot \the [C] into [src]." updateUsrDialog() @@ -1550,7 +1550,7 @@ var/global/list/obj/item/device/pda/PDAs = list() if(O) user << "There is already a pen in \the [src]." else - user.drop_item(src) + user.drop_item(C, src) user << "You slide \the [C] into \the [src]." return diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 9adecf3776f..612bffc8e4d 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -31,7 +31,7 @@ user << "\The [I] is too small for \the [src]" return 0 user << "You stealthily place \the [src] onto \the [A]" - user.drop_item(A) + user.drop_item(src, A) active = 1 camera_bugs += src return 1 diff --git a/code/game/objects/items/devices/deskbell.dm b/code/game/objects/items/devices/deskbell.dm index 62b86b10a91..5c408f8b6fd 100644 --- a/code/game/objects/items/devices/deskbell.dm +++ b/code/game/objects/items/devices/deskbell.dm @@ -320,7 +320,7 @@ code = 0 else code = S.code - user.drop_item() + user.drop_item(W) del(W) has_signaler = 1 update_icon() diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 8b2cd1f5f0e..ec362b2f462 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -85,7 +85,7 @@ return G.amount = remaining if(!G.amount) - user.drop_item() + user.drop_item(G) del(G) AddUses(increment) user << "You insert a piece of glass into the [src.name]. You have [uses] lights remaining." @@ -97,7 +97,7 @@ if(uses < max_uses) AddUses(1) user << "You insert the [L.name] into the [src.name]. You have [uses] lights remaining." - user.drop_item() + user.drop_item(L) del(L) return else diff --git a/code/game/objects/items/devices/radio/cyborg.dm b/code/game/objects/items/devices/radio/cyborg.dm index 2053c9b44aa..003b6772d39 100644 --- a/code/game/objects/items/devices/radio/cyborg.dm +++ b/code/game/objects/items/devices/radio/cyborg.dm @@ -42,7 +42,7 @@ if (!isnull(keyslot)) user << "The radio can't hold another key!" else - user.drop_item(src) + user.drop_item(W, src) insert_key(W) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 9f925717eb2..f62028fa73f 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -268,11 +268,11 @@ return if(!keyslot1) - user.drop_item(src) + user.drop_item(W, src) keyslot1 = W else - user.drop_item(src) + user.drop_item(W, src) keyslot2 = W diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index c45a41278ac..d4375281f11 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -23,11 +23,11 @@ if(!tank_one) tank_one = item - user.drop_item(src) + user.drop_item(item, src) user << "You attach the tank to the transfer valve." else if(!tank_two) tank_two = item - user.drop_item(src) + user.drop_item(item, src) user << "You attach the tank to the transfer valve." update_icon() diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 3d5ee06181d..5a808f2a007 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -114,32 +114,32 @@ qdel(src) if(istype(W, /obj/item/robot_parts/l_leg)) if(src.l_leg) return - user.drop_item(src) + user.drop_item(W, src) src.l_leg = W src.updateicon() if(istype(W, /obj/item/robot_parts/r_leg)) if(src.r_leg) return - user.drop_item(src) + user.drop_item(W, src) src.r_leg = W src.updateicon() if(istype(W, /obj/item/robot_parts/l_arm)) if(src.l_arm) return - user.drop_item(src) + user.drop_item(W, src) src.l_arm = W src.updateicon() if(istype(W, /obj/item/robot_parts/r_arm)) if(src.r_arm) return - user.drop_item(src) + user.drop_item(W, src) src.r_arm = W src.updateicon() if(istype(W, /obj/item/robot_parts/chest)) if(src.chest) return if(W:wires && W:cell) - user.drop_item(src) + user.drop_item(W, src) src.chest = W src.updateicon() else if(!W:wires) @@ -150,7 +150,7 @@ if(istype(W, /obj/item/robot_parts/head)) if(src.head) return if(W:flash2 && W:flash1) - user.drop_item(src) + user.drop_item(W, src) src.head = W src.updateicon() else @@ -199,7 +199,7 @@ if(!O) return - user.drop_item() + user.drop_item(W) O.mmi = W O.invisibility = 0 @@ -248,7 +248,7 @@ user << "You have already inserted a cell!" return else - user.drop_item(src) + user.drop_item(W, src) src.cell = W user << "You insert the cell!" if(istype(W, /obj/item/stack/cable_coil)) @@ -269,17 +269,17 @@ user << "You have already inserted the eyes!" return else if(src.flash1) - user.drop_item(src) + user.drop_item(W, src) src.flash2 = W user << "You insert the flash into the eye socket!" else - user.drop_item(src) + user.drop_item(W, src) src.flash1 = W user << "You insert the flash into the eye socket!" else if(istype(W, /obj/item/weapon/stock_parts/manipulator)) user << "You install some manipulators and modify the head, creating a functional spider-bot!" new /mob/living/simple_animal/spiderbot(get_turf(loc)) - user.drop_item() + user.drop_item(W) del(W) del(src) return diff --git a/code/game/objects/items/weapons/ai_modules/planning_frame.dm b/code/game/objects/items/weapons/ai_modules/planning_frame.dm index 6dfb9ca6470..f7acaffcd1a 100644 --- a/code/game/objects/items/weapons/ai_modules/planning_frame.dm +++ b/code/game/objects/items/weapons/ai_modules/planning_frame.dm @@ -54,7 +54,7 @@ return if(!module.upload(src.laws,src,user)) return - //user.drop_item() + //user.drop_item(null, ) //module.loc=src modules += module.copy() // Instead of a reference user << "You insert \the [module] into \the [src], and the device reads the module's contents." diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm index 07f4588fb50..de36b02a496 100644 --- a/code/game/objects/items/weapons/airlock_painter.dm +++ b/code/game/objects/items/weapons/airlock_painter.dm @@ -61,7 +61,7 @@ if(ink) user << "\the [name] already contains \a [ink]." return - user.drop_item(src) + user.drop_item(W, src) user << "You install \the [W] into \the [name]." ink = W playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index c4bea0d8662..c7fec1a6a1b 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -180,7 +180,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM new src.type_butt(location) processing_objects.Remove(src) user << "Half of the [name] dissolves with a nasty fizzle." - user.drop_item() + user.drop_item(src) qdel(src) return var/transfered = glass.reagents.trans_to(src, chem_volume) diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 9c23df29bf5..f603f7f88e1 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -100,7 +100,7 @@ if(result == 1) user << "Rocks fall, you die." user.gib() - user.drop_item(src.loc) + user.drop_item(src) else triggered = 1 visible_message("You hear a quiet click.") diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index bfb3dfab8ff..4558a73ddd2 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -74,7 +74,7 @@ user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!") if(do_after(user, 50) && in_range(user, target)) - user.drop_item() + user.drop_item(src) src.target = target loc = null if (ismob(target)) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index aabe4fec354..a92ad964bc1 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -94,7 +94,7 @@ if(isrobot(user) && !isMoMMI(user)) // MoMMI's can but borgs can't user << "You're a robot. No." return - user.drop_item(src) + user.drop_item(W, src) user << "You cram \the [W] into the nozzle of \the [src]." message_admins("[user]/[user.ckey] has crammed \a [W] into a [src].") diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 53e9024b795..38b4ff04ca5 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -99,7 +99,7 @@ var/obj/item/device/assembly/igniter/I = W if(I.secured) return if(igniter) return - user.drop_item(src) + user.drop_item(I, src) igniter = I update_icon() return @@ -108,7 +108,7 @@ if(ptank) user << "There appears to already be a plasma tank loaded in [src]!" return - user.drop_item(src) + user.drop_item(W, src) ptank = W update_icon() return diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index f4c503a9e56..d56e6a55d5c 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -32,7 +32,7 @@ w_class = W /obj/item/weapon/gift/attack_self(mob/user as mob) - user.drop_item() + user.drop_item(src) if(gift) user.put_in_active_hand(gift) gift.add_fingerprint(user) @@ -340,7 +340,7 @@ return src.amount -= a_used - user.drop_item() + user.drop_item(null, ) var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc ) G.size = W.w_class G.w_class = G.size + 1 diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index feaebb1132e..25255e89acb 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -103,7 +103,7 @@ user << " This type of grenade cannot hold more than one slime core." else user << " You add \the [W] to the assembly." - user.drop_item(src) + user.drop_item(W, src) beakers += W E = W inserted_cores++ @@ -111,8 +111,7 @@ name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]" else if(W.reagents.total_volume) user << " You add \the [W] to the assembly." - user.drop_item() - W.loc = src + user.drop_item(W, src) beakers += W stage = 1 name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]" @@ -297,7 +296,7 @@ obj/item/weapon/grenade/chem_grenade/exgrenade/attackby(obj/item/weapon/W as obj user << " You cannot fit more than two slime cores in this grenade." else user << " You add \the [W] to the assembly." - user.drop_item(src) + user.drop_item(W, src) beakers += W if (E == null)//E = first slime extract, C = second slime extract E = W @@ -308,7 +307,7 @@ obj/item/weapon/grenade/chem_grenade/exgrenade/attackby(obj/item/weapon/W as obj name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]" else if(W.reagents.total_volume) user << " You add \the [W] to the assembly." - user.drop_item(src) + user.drop_item(W, src) beakers += W stage = 1 name = "unsecured EX grenade with [beakers.len] containers[detonator?" and detonator":""]" diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 7a871fc82a7..3b93eccb752 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -37,7 +37,7 @@ prime() return user.dir = get_dir(user, target) - user.drop_item() + user.drop_item(null, ) var/t = (isturf(target) ? target : target.loc) walk_towards(src, t, 3) return*/ diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm index cc6eb303a45..ab225dafa52 100644 --- a/code/game/objects/items/weapons/implants/implantpad.dm +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -42,7 +42,7 @@ ..() if(istype(C, /obj/item/weapon/implantcase)) if(!( src.case )) - user.drop_item(src) + user.drop_item(C, src) src.case = C else return diff --git a/code/game/objects/items/weapons/paiwire.dm b/code/game/objects/items/weapons/paiwire.dm index 3a726771584..35ebee86759 100644 --- a/code/game/objects/items/weapons/paiwire.dm +++ b/code/game/objects/items/weapons/paiwire.dm @@ -2,7 +2,7 @@ if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera)) user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.") if(user && user.get_active_hand() == src) - user.drop_item(M) + user.drop_item(src, M) src.machine = M else user.visible_message("[user] dumbly fumbles to find a place on [M] to plug in [src].", "There aren't any ports on [M] that match the jack belonging to [src].") diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index 4c965dc5519..37658894284 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -104,7 +104,7 @@ bottom_open = 0 else if(bottom_open && item.w_class <= 3.0) stored_item = item - user.drop_item() + user.drop_item(item) max_w_class = 3.0 - stored_item.w_class item.loc = null //null space here we go - to stop it showing up in the briefcase user << "You place \the [item] into the false bottom of the briefcase." diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index bc79486ea10..fdd6f309f0b 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -62,7 +62,7 @@ /obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user) if(istype(W, /obj/item/weapon/cell)) if(!bcell) - user.drop_item(src) + user.drop_item(W, src) bcell = W user << "You install a cell in [src]." update_icon() diff --git a/code/game/objects/items/weapons/switchtool.dm b/code/game/objects/items/weapons/switchtool.dm index 660ce613d58..7ca4fd326ec 100644 --- a/code/game/objects/items/weapons/switchtool.dm +++ b/code/game/objects/items/weapons/switchtool.dm @@ -97,7 +97,7 @@ return else stored_modules[module] = used_item - user.drop_item(src) + user.drop_item(used_item, src) user << "You successfully load \the [used_item] into \the [src]'s [get_module_name(module)] slot." return 1 diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm index 0750b4a80b2..6edc66f4b32 100644 --- a/code/game/objects/items/weapons/table_rack_parts.dm +++ b/code/game/objects/items/weapons/table_rack_parts.dm @@ -29,7 +29,7 @@ /obj/item/weapon/table_parts/attack_self(mob/user as mob) new /obj/structure/table( user.loc ) - user.drop_item() + user.drop_item(src) del(src) return @@ -46,7 +46,7 @@ /obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob) new /obj/structure/table/reinforced( user.loc ) - user.drop_item() + user.drop_item(src) del(src) return @@ -70,7 +70,7 @@ /obj/item/weapon/table_parts/wood/attack_self(mob/user as mob) new /obj/structure/table/woodentable( user.loc ) - user.drop_item() + user.drop_item(src) del(src) return @@ -87,7 +87,7 @@ /obj/item/weapon/table_parts/wood/poker/attack_self(mob/user as mob) new /obj/structure/table/woodentable/poker( user.loc ) - user.drop_item() + user.drop_item(src) del(src) return @@ -107,6 +107,6 @@ /obj/item/weapon/rack_parts/attack_self(mob/user as mob) var/obj/structure/rack/R = new /obj/structure/rack( user.loc ) R.add_fingerprint(user) - user.drop_item() + user.drop_item(src) del(src) return \ No newline at end of file diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 682f5a33bf8..910e109c6f7 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -47,7 +47,7 @@ LINEN BINS //todo: sharp thing code/game/objects/objs.dm /obj/item/weapon/bedsheet/attack_self(mob/user as mob) - user.drop_item() + user.drop_item(src) if(layer == initial(layer)) layer = 5 else @@ -157,12 +157,12 @@ LINEN BINS /obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/weapon/bedsheet)) - user.drop_item(src) + user.drop_item(I, src) sheets.Add(I) amount++ user << "You put [I] in [src]." else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. - user.drop_item(src) + user.drop_item(I, src) hidden = I user << "You hide [I] among the sheets." diff --git a/code/game/objects/structures/coatrack.dm b/code/game/objects/structures/coatrack.dm index d7116bc6cf0..1b9ab221020 100644 --- a/code/game/objects/structures/coatrack.dm +++ b/code/game/objects/structures/coatrack.dm @@ -37,14 +37,14 @@ if (istype(C, /obj/item/clothing/suit/storage/det_suit) && !suit) user << "You place your [C] on the [src]" playsound(get_turf(src), "rustle", 50, 1, -5) - user.drop_item(src) + user.drop_item(C, src) suit = C update_icon() else if (istype(C, /obj/item/clothing/head/det_hat) && !hat) user << "You place your [C] on the [src]" playsound(get_turf(src), "rustle", 50, 1, -5) - user.drop_item(src) + user.drop_item(C, src) hat = C update_icon() diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 9f76e221e98..fdb3e204198 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -284,10 +284,7 @@ del(src) return - if(isrobot(user)) - return - - user.drop_item(src.loc) + user.drop_item(W, src.loc) else if(istype(W, /obj/item/weapon/packageWrap)) return diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index 58e7e490adf..37a9cad3f4e 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -80,7 +80,7 @@ user << "Unwield [F] first!" return fireaxe = O - user.drop_item(src) + user.drop_item(F, src) visible_message("[user] places [F] back into [src].", \ "You place [F] back into [src].") update_icon() diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 87ecb362d8c..94b38439b15 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -461,14 +461,14 @@ user << "[src] is already rigged!" return user << "You rig [src]." - user.drop_item() + user.drop_item(W) del(W) rigged = 1 return else if(istype(W, /obj/item/device/radio/electropack)) if(rigged) user << "You attach [W] to [src]." - user.drop_item(src.loc) + user.drop_item(W, src.loc) return else if(istype(W, /obj/item/weapon/wirecutters)) if(rigged) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index cc90c15662e..046a4d03c1a 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -11,7 +11,7 @@ switch(state) if(0) if(istype(W, /obj/item/weapon/circuitboard/airlock) && W:icon_state != "door_electronics_smoked") - user.drop_item(src) + user.drop_item(W, src) circuit=W state++ playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1) @@ -222,7 +222,7 @@ user << "It's locked, you can't put anything into it." else if(!occupant) user << "You insert \the [W] into \the [src], and it floats as the hoverfield activates." - user.drop_item(src) + user.drop_item(W, src) occupant=W update_icon() diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index a275f8ffa6d..62abe8a9484 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -222,7 +222,7 @@ busy = 1 playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.") - user.drop_item(src) + user.drop_item(W, src) if(do_after(user, 40)) if(!src) return diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 26a90b8f093..5c1e4ad03a0 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -14,7 +14,7 @@ return if(istype(O, /obj/item/weapon/extinguisher)) if(!has_extinguisher && opened) - user.drop_item(src) + user.drop_item(O, src) has_extinguisher = O user << "You place [O] in [src]." else diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index c63979ec9fa..6afde3e1d44 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -91,7 +91,7 @@ user << "There is already something in the pot." else full = I - user.drop_item(src) + user.drop_item(I, src) full.loc = src user.visible_message("[user] stuffs something into the pot.","You stuff \the [full] into the [src].") diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 61e55d8a73d..90715e809bb 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -250,7 +250,7 @@ else if(istype(W, /obj/item/pipe)) var/obj/item/pipe/P = W if(P.pipe_type in list(0, 1, 5)) //Simple pipes, simple bends, and simple manifolds. - user.drop_item(src.loc) + user.drop_item(P, src.loc) user.visible_message("[user] fits \the [P] into \the [src]", \ "You fit \the [P] into \the [src]") else diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 01d8d004963..919e7ac3eea 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -43,7 +43,7 @@ /obj/structure/stool/bed/chair/vehicle/janicart/attackby(obj/item/W, mob/user) ..() if(istype(W, /obj/item/mecha_parts/janicart_upgrade) && !upgraded && !destroyed) - user.drop_item() + user.drop_item(W) del(W) user << "You upgrade the Pussy Wagon." upgraded = 1 @@ -51,7 +51,7 @@ icon_state = "pussywagon_upgraded" else if(istype(W, /obj/item/weapon/storage/bag/trash)) user << "You hook the trashbag onto the pimpin' ride." - user.drop_item(src) + user.drop_item(W, src) mybag = W /obj/structure/stool/bed/chair/vehicle/janicart/mop_act(obj/item/weapon/mop/M, mob/user) diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index f6ee82006c9..bc60c43d022 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -22,7 +22,7 @@ if(notices < 5) O.add_fingerprint(user) add_fingerprint(user) - user.drop_item(src) + user.drop_item(O,src) notices++ icon_state = "nboard0[notices]" //update sprite user << "You pin the paper to the noticeboard." diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 96397976a2a..318ae2516e1 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -151,7 +151,7 @@ FLOOR SAFES if(open) if(I.w_class + space <= maxspace) space += I.w_class - user.drop_item(src) + user.drop_item(I, src) user << "You put [I] in [src]." updateUsrDialog() return diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 5ab4794ca4c..d523bb76d2f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -19,7 +19,7 @@ if(!SK.status) user << "[SK] is not ready to be attached!" return - user.drop_item() + user.drop_item(W) var/obj/structure/stool/bed/chair/e_chair/E = new /obj/structure/stool/bed/chair/e_chair(src.loc) playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) E.dir = dir diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 967b350567d..4c61dfe2722 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -363,9 +363,6 @@ destroy() return - if(isrobot(user)) - return - if(istype(W, /obj/item/weapon/melee/energy/blade)) var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) @@ -376,7 +373,7 @@ O.show_message("\blue The [src] was sliced apart by [user]!", 1, "\red You hear [src] coming apart.", 2) destroy() - if(user.drop_item(src.loc)) + if(user.drop_item(W, src.loc)) if(W.loc == src.loc && params_list.len) var/clamp_x = clicked.Width() / 2 var/clamp_y = clicked.Height() / 2 @@ -612,7 +609,7 @@ return if(isrobot(user)) return - user.drop_item() + user.drop_item(O) if (O.loc != src.loc) step(O, get_dir(O, src)) return @@ -625,7 +622,7 @@ return if(isrobot(user)) return - user.drop_item(src.loc) + user.drop_item(W, src.loc) return 1 /obj/structure/rack/meteorhit(obj/O as obj) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 92fbcec299c..f3a4ea713b1 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -55,7 +55,7 @@ /obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic)) if(oxygentanks < 10) - user.drop_item(src) + user.drop_item(I, src) oxytanks.Add(I) oxygentanks++ user << "You put [I] in [src]." @@ -65,7 +65,7 @@ return if(istype(I, /obj/item/weapon/tank/plasma)) if(plasmatanks < 10) - user.drop_item(src) + user.drop_item(I, src) platanks.Add(I) plasmatanks++ user << "You put [I] in [src]." diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index 27dc912d8e9..9784da2f427 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -27,7 +27,7 @@ if(istype(W, /obj/item/target)) density = 0 W.density = 1 - user.drop_item(src.loc) + user.drop_item(W, src.loc) W.layer = 3.1 pinned_target = W user << "You slide the target into the stake." diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index e52b95b8147..d0595bbbd8b 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -84,7 +84,7 @@ if(w_items + I.w_class > 5) user << "The cistern is full." return - user.drop_item(src) + user.drop_item(I, src) w_items += I.w_class user << "You carefully place \the [I] into the cistern." return diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 145a7afa550..5dd4c2e699f 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -173,7 +173,7 @@ obj/structure/windoor_assembly/Destroy() if(do_after(user, 40)) if(!src) return - user.drop_item(src) + user.drop_item(W, src) user << "You've installed the airlock electronics!" src.name = "Near finished Windoor Assembly" src.electronics = W diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 268c07782de..5be17b9bd38 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -436,7 +436,7 @@ turf/simulated/floor/proc/update_icon() if(is_light_floor()) var/obj/item/stack/tile/light/T = floor_tile if(T.state) - user.drop_item() + user.drop_item(C) del(C) T.state = C //fixing it by bashing it with a light bulb, fun eh? update_icon() diff --git a/code/modules/Economy/Accounts.dm b/code/modules/Economy/Accounts.dm index 72d3da0a2c9..0e048d925a9 100644 --- a/code/modules/Economy/Accounts.dm +++ b/code/modules/Economy/Accounts.dm @@ -292,7 +292,7 @@ var/global/list/all_money_accounts = list() emag(user) return if(!held_card) - usr.drop_item(src) + usr.drop_item(O, src) held_card = idcard if(access_cent_captain in idcard.access) @@ -365,7 +365,7 @@ var/global/list/all_money_accounts = list() return if (istype(I, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/C = I - usr.drop_item(src) + usr.drop_item(C, src) held_card = C if(access_level < 3) if(access_cent_captain in C.access) diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 3fccb997f39..73aa1324b8e 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -94,7 +94,7 @@ var/obj/item/device/onetankbomb/R = new /obj/item/device/onetankbomb(loc) - M.drop_item() //Remove the assembly from your hands + M.drop_item(S) //Remove the assembly from your hands M.remove_from_mob(src) //Remove the tank from your character,in case you were holding it M.put_in_hands(R) //Equips the bomb if possible, or puts it on the floor. diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 13cbb2f71a8..2ec5deaf29f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -298,7 +298,7 @@ BLIND // can't see anything if(istype(I, /obj/item/clothing/accessory)) var/obj/item/clothing/accessory/A = I if(can_attach_accessory(A)) - user.drop_item(src) + user.drop_item(I, src) accessories.Add(A) A.on_attached(src, user) if(istype(loc, /mob/living/carbon/human)) diff --git a/code/modules/clothing/gloves/stungloves.dm b/code/modules/clothing/gloves/stungloves.dm index c55242665d1..ac1b30df93e 100644 --- a/code/modules/clothing/gloves/stungloves.dm +++ b/code/modules/clothing/gloves/stungloves.dm @@ -21,7 +21,7 @@ if(!wired) user << "[src] need to be wired first." else if(!cell) - user.drop_item(src) + user.drop_item(W, src) cell = W user << "You attach a cell to [src]." update_icon() diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 72e6bdec74c..f8e2c35c086 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -28,7 +28,7 @@ return has_suit = S if(user) - user.drop_item(has_suit) + user.drop_item(S, has_suit) user << "You attach [src] to [has_suit]." src.add_fingerprint(user) else diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 64c473ad124..9dff09eda5b 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -168,7 +168,7 @@ obj/machinery/computer/forensic_scanning I.icon_state = "evidenceobj" else scanning = I - M.drop_item(src) + M.drop_item(I, src) else usr << "Invalid Object Rejected." if("card") //Processing a fingerprint card. @@ -186,7 +186,7 @@ obj/machinery/computer/forensic_scanning card.loc = src.loc card = null return - M.drop_item(src) + M.drop_item(I, src) process_card() else usr << "\red Invalid Object Rejected." diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 0f0158c00f8..0513cebba8a 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -35,12 +35,7 @@ var/obj/item/weapon/storage/U = I.loc user.client.screen -= I U.contents.Remove(I) - else if(user.l_hand == I) //in a hand - user.drop_l_hand() - else if(user.r_hand == I) //in a hand - user.drop_r_hand() - else - return + user.drop_item(I) user.visible_message("[user] puts [I] into [src]", "You put [I] inside [src].",\ "You hear a rustle as someone puts something into a plastic bag.") diff --git a/code/modules/food/cooking_machines.dm b/code/modules/food/cooking_machines.dm index daf2c33fca9..5feabb73f8b 100644 --- a/code/modules/food/cooking_machines.dm +++ b/code/modules/food/cooking_machines.dm @@ -169,7 +169,7 @@ var/global/ingredientLimit = 10 return if(. == "valid") if(src.foodChoices) . = src.foodChoices[(input("Select production.") in src.foodChoices)] - user.drop_item(src) + user.drop_item(I, src) src.ingredient = I spawn() src.cook(.) user << "You add the [I.name] to the [src.name]." diff --git a/code/modules/food/customizables.dm b/code/modules/food/customizables.dm index 831242df9aa..fe8cdd5219c 100644 --- a/code/modules/food/customizables.dm +++ b/code/modules/food/customizables.dm @@ -85,7 +85,7 @@ user << "How about no." else if(istype(I,/obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = I - user.drop_item(src) + user.drop_item(I, src) src.ingredients += S S.reagents.trans_to(src,S.reagents.total_volume) src.update() @@ -286,7 +286,7 @@ else if(istype(I,/obj/item/weapon/reagent_containers/food/snacks)) if(src.ingredients.len < src.ingMax) var/obj/item/weapon/reagent_containers/food/snacks/S = I - user.drop_item(src) + user.drop_item(I, src) user << "You add the [S.name] to the [src.name]." S.reagents.trans_to(src,S.reagents.total_volume) src.ingredients += S diff --git a/code/modules/food/icecreamvat.dm b/code/modules/food/icecreamvat.dm index 3491940ef50..da5166ca5a0 100644 --- a/code/modules/food/icecreamvat.dm +++ b/code/modules/food/icecreamvat.dm @@ -33,7 +33,7 @@ /obj/machinery/cooking/icemachine/takeIngredient(var/obj/item/I,mob/user) if(istype(I,/obj/item/weapon/reagent_containers/glass)) if(!src.beaker) - user.drop_item(src) + user.drop_item(I, src) src.beaker = I . = 1 user << "You add the [I.name] to the [src.name]." diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm index 92637164185..99558d5015f 100644 --- a/code/modules/hydroponics/grown_inedible.dm +++ b/code/modules/hydroponics/grown_inedible.dm @@ -123,7 +123,7 @@ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) else usr << "All the leaves have fallen off the nettle from violent whacking." - user.drop_item() + user.drop_item(src) qdel(src) /obj/item/weapon/grown/nettle/changePotency(newValue) //-QualityVan @@ -192,7 +192,7 @@ else user << "All the leaves have fallen off the deathnettle from violent whacking." - user.drop_item() + user.drop_item(src) qdel(src) /obj/item/weapon/grown/deathnettle/changePotency(newValue) //-QualityVan @@ -215,6 +215,6 @@ if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchen/utensil/knife/large) || istype(W, /obj/item/weapon/kitchen/utensil/knife/large/ritual)) user << "You use [W] to fashion a pipe out of the corn cob!" new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc) - user.drop_item() + user.drop_item(src) qdel(src) return diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index 7cb1067cff5..cfc45afc778 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -649,7 +649,7 @@ if(!seed) var/obj/item/seeds/S = O - user.drop_item() + user.drop_item(S) if(!S.seed) user << "The packet seems to be empty. You throw it away." @@ -707,7 +707,7 @@ else if ( istype(O, /obj/item/weapon/plantspray) ) var/obj/item/weapon/plantspray/spray = O - user.drop_item() + user.drop_item(spray) toxins += spray.toxicity pestlevel -= spray.pest_kill_str weedlevel -= spray.weed_kill_str @@ -733,7 +733,7 @@ if(seed) user << "[src] is already occupied!" else - user.drop_item() + user.drop_item(O) qdel(O) var/obj/machinery/apiary/A = new(src.loc) diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm index 61d60777dad..eabee7081fd 100644 --- a/code/modules/hydroponics/seed_machines.dm +++ b/code/modules/hydroponics/seed_machines.dm @@ -92,7 +92,7 @@ if(S.seed && S.seed.immutable > 0) user << "That seed is not compatible with our genetics technology." else - user.drop_item(src) + user.drop_item(S, src) seed = W user << "You load [W] into [src]." return @@ -113,7 +113,7 @@ user << "That disk does not have any gene data loaded." return - user.drop_item(src) + user.drop_item(W, src) loaded_disk = W user << "You load [W] into [src]." diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index b4a9298ef63..8cd461dca12 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -34,16 +34,16 @@ /obj/structure/bookcase/attackby(obj/O as obj, mob/user as mob) if(istype(O, /obj/item/weapon/book)) - user.drop_item(src) + user.drop_item(O, src) update_icon() else if(istype(O, /obj/item/weapon/tome)) - user.drop_item(src) + user.drop_item(O, src) update_icon() else if(istype(O, /obj/item/weapon/spellbook)) - user.drop_item(src) + user.drop_item(O, src) update_icon() else if(istype(O, /obj/item/weapon/storage/bible)) - user.drop_item(src) + user.drop_item(O, src) update_icon() else if(istype(O, /obj/item/weapon/wrench)) user << " Now disassembling bookcase" @@ -213,7 +213,7 @@ if(carved) if(!store) if(W.w_class < 3) - user.drop_item(src) + user.drop_item(W, src) store = W user << "You put [W] in [title]." return diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 79ac11deaf6..e9e5b6c2b9f 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -136,7 +136,7 @@ var/global/list/library_section_names = list("Any", "Fiction", "Non-Fiction", "A /obj/machinery/libraryscanner/attackby(var/obj/O as obj, var/mob/user as mob) if(istype(O, /obj/item/weapon/book)) - user.drop_item(src) + user.drop_item(O, src) else return ..() @@ -191,7 +191,7 @@ var/global/list/library_section_names = list("Any", "Fiction", "Non-Fiction", "A /obj/machinery/bookbinder/attackby(var/obj/O as obj, var/mob/user as mob) if(istype(O, /obj/item/weapon/paper) || istype(O, /obj/item/weapon/paper/nano)) - user.drop_item(src) + user.drop_item(O, src) user.visible_message("[user] loads some paper into [src].", "You load some paper into [src].") src.visible_message("[src] begins to hum as it warms up its printing drums.") sleep(rand(200,400)) diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index a6e63b06735..d908976523a 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -39,7 +39,7 @@ return var/obj/item/weapon/card/id/I = usr.get_active_hand() if(istype(I)) - usr.drop_item(src) + usr.drop_item(I, src) inserted_id = I /obj/machinery/mineral/ore_redemption/proc/process_sheet(var/obj/item/weapon/ore/O) @@ -140,7 +140,7 @@ else if(href_list["choice"] == "insert") var/obj/item/weapon/card/id/I = usr.get_active_hand() if(istype(I)) - usr.drop_item(src) + usr.drop_item(I, src) inserted_id = I else usr << "No valid ID." @@ -259,7 +259,7 @@ else if(href_list["choice"] == "insert") var/obj/item/weapon/card/id/I = usr.get_active_hand() if(istype(I)) - usr.drop_item(src) + usr.drop_item(I, src) inserted_id = I else usr << "No valid ID." if(href_list["purchase"]) @@ -291,7 +291,7 @@ if(istype(W,/obj/item/weapon/card/id)) var/obj/item/weapon/card/id/I = usr.get_active_hand() if(istype(I)) - usr.drop_item(src) + usr.drop_item(I, src) inserted_id = I return ..() diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 2262dc77dcb..2da76d0fee2 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -37,7 +37,7 @@ if (istype(W, /obj/item/weapon/coin)) var/obj/item/weapon/coin/C = W user << "\blue You add the [C.name] into the bag." - usr.drop_item(src) + usr.drop_item(W, src) if (istype(W, /obj/item/weapon/moneybag)) var/obj/item/weapon/moneybag/C = W for (var/obj/O in C.contents) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 95667c0d735..8d085876ce3 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -130,61 +130,30 @@ return 1 return 0 +//Drops the item in our hand - you can specify an item and a location to drop to +/mob/proc/drop_item(var/obj/item/to_drop, var/atom/Target) + if(!to_drop) //if we're not told to drop something specific + to_drop = get_active_hand() //drop what we're currently holding -//Drops the item in our left hand -/mob/proc/drop_l_hand(var/atom/Target) - if(l_hand) - if(client) client.screen -= l_hand - l_hand.layer = initial(l_hand.layer) + if(!to_drop) //still nothing to drop? + return 0 //bail - if(Target) l_hand.loc = Target - else l_hand.loc = loc + if(!Target) + Target = src.loc - var/turf/T = get_turf(l_hand) - if(isturf(T) && l_hand.loc == T) - T.Entered(l_hand) + remove_from_mob(to_drop) //clean out any refs - l_hand.dropped(src) - if(l_hand) - l_hand.layer = initial(l_hand.layer) - l_hand = null - update_inv_l_hand() + to_drop.forceMove(Target) //calls the Entered procs + + to_drop.dropped(src) + + if(to_drop && to_drop.loc) return 1 return 0 -//Drops the item in our right hand -/mob/proc/drop_r_hand(var/atom/Target) - if(r_hand) - if(client) client.screen -= r_hand - r_hand.layer = initial(r_hand.layer) - - if(Target) r_hand.loc = Target - else r_hand.loc = loc - - var/turf/T = get_turf(r_hand) - if(istype(T) && r_hand.loc == T) - T.Entered(r_hand) - - r_hand.dropped(src) - if(r_hand) - r_hand.layer = initial(r_hand.layer) - r_hand = null - update_inv_r_hand() - return 1 - return 0 - -//Drops the item in our active hand. -/mob/proc/drop_item(var/atom/Target) - if(hand) return drop_l_hand(Target) - else return drop_r_hand(Target) - - - - - - - - +/mob/proc/drop_hands(var/atom/Target) //drops both items + drop_item(get_active_hand(), Target) + drop_item(get_inactive_hand(), Target) //TODO: phase out this proc /mob/proc/before_take_item(var/obj/item/W) //TODO: what is this? diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 5aebc880117..ee48a458b22 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -79,8 +79,7 @@ wear_suit.screen_loc = ui_alien_oclothing if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) drop_from_inventory(handcuffed) - drop_r_hand() - drop_l_hand() + drop_hands() overlays_lying[X_SUIT_LAYER] = lying overlays_standing[X_SUIT_LAYER] = standing diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 5a52bd6a44f..327f12de4a8 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -90,8 +90,7 @@ user << "Why are you sticking robot legs on an empty [src], you idiot?" return TRUE contents += O - user.drop_item() - O.loc=src + user.drop_item(O, src) user << "You successfully add \the [O] to the contraption," return TRUE else if(cc==mommi_assembly_parts[t]) @@ -116,7 +115,7 @@ dead_mob_list -= brainmob//Update dem lists living_mob_list += brainmob - user.drop_item() + user.drop_item(O) del(O) name = "Man-Machine Interface: [brainmob.real_name]" diff --git a/code/modules/mob/living/carbon/brain/MaMI.dm b/code/modules/mob/living/carbon/brain/MaMI.dm index 6d615964a9a..f1ec1a5a5f0 100644 --- a/code/modules/mob/living/carbon/brain/MaMI.dm +++ b/code/modules/mob/living/carbon/brain/MaMI.dm @@ -24,8 +24,7 @@ src.brainmob << "As a synthetic intelligence, you answer to all crewmembers, as well as the AI." src.brainmob << "Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm." - user.drop_item() - posibrain.loc = src + user.drop_item(posibrain, src) name = "Machine-Man Interface: [brainmob.real_name]" icon_state = "mami_full" diff --git a/code/modules/mob/living/carbon/give.dm b/code/modules/mob/living/carbon/give.dm index 988b8b4d29a..82e11e5c5e1 100644 --- a/code/modules/mob/living/carbon/give.dm +++ b/code/modules/mob/living/carbon/give.dm @@ -37,7 +37,7 @@ user << "Their hands are full." return else - user.drop_item() + user.drop_item(I) src.put_in_hands(I) I.loc = src I.layer = 20 diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index ed92dc67c02..f87a80425f1 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -317,7 +317,7 @@ This function restores all organs. W.add_blood(src) if(ismob(W.loc)) var/mob/living/H = W.loc - H.drop_item() + H.drop_item(W, src) W.loc = src */ if(istype(used_weapon,/obj/item/projectile/bullet)) //We don't want to use the actual projectile item, so we spawn some shrapnel. diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index b18791728f4..f602decaaea 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1292,12 +1292,12 @@ var/global/list/organ_damage_overlays = list( spawn() animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1) animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 1, loop = -1, easing = BOUNCE_EASING) - + pixel_x_diff = rand(-amplitude, amplitude) pixel_y_diff = rand(-amplitude, amplitude) animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1) animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 1, loop = -1, easing = BOUNCE_EASING) - + pixel_x_diff = rand(-amplitude, amplitude) pixel_y_diff = rand(-amplitude, amplitude) animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 13aba183ab7..c83ba43efe3 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -806,8 +806,7 @@ var/global/list/damage_icon_parts = list() if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) ) drop_from_inventory(handcuffed) - drop_l_hand() - drop_r_hand() + drop_hands() var/obj/item/I = wear_suit if(species.name in I.species_fit) //Allows clothes to display differently for multiple species @@ -902,8 +901,7 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/update_inv_handcuffed(var/update_icons=1) overlays -= obj_overlays[HANDCUFF_LAYER] if(handcuffed) - drop_r_hand() - drop_l_hand() + drop_hands() stop_pulling() //TODO: should be handled elsewhere var/obj/Overlays/O = obj_overlays[HANDCUFF_LAYER] O.icon = 'icons/mob/mob.dmi' @@ -948,7 +946,8 @@ var/global/list/damage_icon_parts = list() overlays += O obj_overlays[R_HAND_LAYER] = O //overlays_standing[R_HAND_LAYER] = image("icon" = t_inhand_state, "icon_state" = "[t_state]") - if (handcuffed) drop_r_hand() + if (handcuffed) + drop_item(r_hand) //else //overlays_standing[R_HAND_LAYER] = null if(update_icons) update_icons() @@ -967,7 +966,8 @@ var/global/list/damage_icon_parts = list() overlays += O obj_overlays[L_HAND_LAYER] = O //overlays_standing[L_HAND_LAYER] = image("icon" = t_inhand_state, "icon_state" = "[t_state]") - if (handcuffed) drop_l_hand() + if (handcuffed) + drop_item(l_hand) //else //overlays_standing[L_HAND_LAYER] = null if(update_icons) update_icons() diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm index ab26e37f574..052e16db8bd 100644 --- a/code/modules/mob/living/carbon/monkey/inventory.dm +++ b/code/modules/mob/living/carbon/monkey/inventory.dm @@ -89,7 +89,7 @@ W.add_fingerprint(source) else if (istype(item, /obj/item/clothing/mask)) - source.drop_item() + source.drop_item(item) loc = target item.layer = 20 target.wear_mask = item @@ -107,7 +107,7 @@ W.add_fingerprint(source) else if (istype(item, /obj/item)) - source.drop_item() + source.drop_item(item) loc = target item.layer = 20 target.l_hand = item @@ -127,7 +127,7 @@ W.add_fingerprint(source) else if (istype(item, /obj/item)) - source.drop_item() + source.drop_item(item) loc = target item.layer = 20 target.r_hand = item @@ -147,7 +147,7 @@ W.add_fingerprint(source) else if ((istype(item, /obj/item) && item.slot_flags & SLOT_BACK )) - source.drop_item() + source.drop_item(item) loc = target item.layer = 20 target.back = item @@ -165,7 +165,7 @@ W.add_fingerprint(source) else if (istype(item, /obj/item/weapon/handcuffs)) - source.drop_item() + source.drop_item(item) target.handcuffed = item item.loc = target if("internal") diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 6a828727807..d69ac186199 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -185,10 +185,9 @@ oldhat = hat hat = null hat = H - usr.drop_item() - hat.loc = src + usr.drop_item(hat, src) regenerate_icons() - if (hat) + if (oldhat) usr.put_in_hands(oldhat) else if(hat) @@ -204,8 +203,7 @@ olduniform = uniform uniform = null uniform = C - usr.drop_item() - uniform.loc = src + usr.drop_item(uniform, src) regenerate_icons() if (olduniform) usr.put_in_hands(olduniform) diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index 4b800820e06..255c951791c 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -81,7 +81,8 @@ if(!t_state) t_state = r_hand.icon_state overlays_standing[M_R_HAND_LAYER] = image("icon" = t_inhand_states, "icon_state" = t_state) r_hand.screen_loc = ui_rhand - if (handcuffed) drop_r_hand() + if (handcuffed) + drop_item(r_hand) else overlays_standing[M_R_HAND_LAYER] = null if(update_icons) update_icons() @@ -94,7 +95,8 @@ if(!t_state) t_state = l_hand.icon_state overlays_standing[M_L_HAND_LAYER] = image("icon" = t_inhand_state, "icon_state" = t_state) l_hand.screen_loc = ui_lhand - if (handcuffed) drop_l_hand() + if (handcuffed) + drop_item(l_hand) else overlays_standing[M_L_HAND_LAYER] = null if(update_icons) update_icons() @@ -111,8 +113,7 @@ /mob/living/carbon/monkey/update_inv_handcuffed(var/update_icons=1) if(handcuffed) - drop_r_hand() - drop_l_hand() + drop_hands() stop_pulling() overlays_standing[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff1") else diff --git a/code/modules/mob/living/silicon/mommi/death.dm b/code/modules/mob/living/silicon/mommi/death.dm index d393fc02a80..00b38cb332c 100644 --- a/code/modules/mob/living/silicon/mommi/death.dm +++ b/code/modules/mob/living/silicon/mommi/death.dm @@ -20,9 +20,7 @@ var/obj/item/found = locate(tool_state) in src.module.modules if(!found && tool_state != src.module.emag) var/obj/item/TS = tool_state - drop_item() - if(TS && TS.loc) - TS.loc = src.loc + drop_item(TS) spawn(15) if(animation) del(animation) if(src) del(src) diff --git a/code/modules/mob/living/silicon/mommi/inventory.dm b/code/modules/mob/living/silicon/mommi/inventory.dm index 4603e79d778..3ee9183d17b 100644 --- a/code/modules/mob/living/silicon/mommi/inventory.dm +++ b/code/modules/mob/living/silicon/mommi/inventory.dm @@ -36,9 +36,7 @@ //var/obj/item/found = locate(tool_state) in src.module.modules var/obj/item/TS = tool_state if(!is_in_modules(tool_state)) - drop_item() - if(TS && TS.loc) - TS.loc = src.loc + drop_item(TS) else TS.loc = src.module contents -= tool_state @@ -100,7 +98,7 @@ return drop_item() return 0 -/mob/living/silicon/robot/mommi/drop_item(var/atom/Target) +/mob/living/silicon/robot/mommi/drop_item(var/obj/item/to_drop, var/atom/Target) if(tool_state) //var/obj/item/found = locate(tool_state) in src.module.modules if(is_in_modules(tool_state)) @@ -137,9 +135,7 @@ return if((module_active in src.contents) && !(module_active in src.module.modules) && (module_active != src.module.emag)) TS = tool_state - drop_item() - if(TS && TS.loc) - TS.loc = get_turf(src) + drop_item(TS) if(sight_state == module_active) TS = sight_state if(istype(sight_state,/obj/item/borg/sight)) @@ -155,8 +151,6 @@ TS = tool_state if(!is_in_modules(TS)) drop_item() - if(TS && TS.loc) - TS.loc = get_turf(src) if(istype(tool_state,/obj/item/borg/sight)) sight_mode &= ~tool_state:sight_mode if (client) @@ -216,8 +210,6 @@ var/obj/item/TS=tool_state if(!is_in_modules(TS)) drop_item() - if(TS && TS.loc) - TS.loc = get_turf(src) if(istype(tool_state,/obj/item/borg/sight)) sight_mode &= ~tool_state:sight_mode if (client) diff --git a/code/modules/mob/living/silicon/mommi/mommi.dm b/code/modules/mob/living/silicon/mommi/mommi.dm index 8e8f1a3a6ae..573ceb936cf 100644 --- a/code/modules/mob/living/silicon/mommi/mommi.dm +++ b/code/modules/mob/living/silicon/mommi/mommi.dm @@ -210,7 +210,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1 else if(cell) user << "There is a power cell already installed." else - user.drop_item(src) + user.drop_item(W, src) cell = W user << "You insert the power cell." // chargecount = 0 @@ -257,20 +257,20 @@ They can only use one tool at a time, they can't choose modules, and they have 1 else if(istype(W, /obj/item/borg/upgrade/)) var/obj/item/borg/upgrade/U = W if(!opened) - usr << "You must access the borgs internals!" + user << "You must access the borgs internals!" else if(!src.module && U.require_module) - usr << "The borg must choose a module before he can be upgraded!" + user << "The borg must choose a module before he can be upgraded!" else if(U.locked) - usr << "The upgrade is locked and cannot be used yet!" + user << "The upgrade is locked and cannot be used yet!" else if(istype(U, /obj/item/borg/upgrade/reset)) - usr << "No." + user << "No." return if(U.action(src)) - usr << "You apply the upgrade to [src]!" - usr.drop_item(src) + user << "You apply the upgrade to [src]!" + user.drop_item(U, src) else - usr << "Upgrade error!" + user << "Upgrade error!" else if(istype(W, /obj/item/device/camera_bug)) help_shake_act(user) @@ -309,18 +309,15 @@ They can only use one tool at a time, they can't choose modules, and they have 1 var/obj/item/found = locate(tool_state) in src.module.modules if(!found) var/obj/item/TS = tool_state - drop_item() + drop_item(TS) if(TS && TS.loc) - TS.loc = src.loc visible_message("\red [src]'s robotic arm loses grip on what it was holding") return if(randn <= 50)//MoMMI's robot arm is stronger than a human's, but not by much var/obj/item/found = locate(tool_state) in src.module.modules if(!found) var/obj/item/TS = tool_state - drop_item() - if(TS && TS.loc) - TS.loc = src.loc + drop_item(TS) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) visible_message("\red [user] has disarmed [src]!") else diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e16bfa08e8f..b5179c4dccf 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -727,7 +727,7 @@ C.installed = 1 C.wrapped = W C.install() - user.drop_item() + user.drop_item(W) W.loc = null usr << "You install the [W.name]." @@ -818,7 +818,7 @@ else if(cell) user << "There is a power cell already installed." else - user.drop_item(src) + user.drop_item(W, src) cell = W user << "You insert the power cell." @@ -866,17 +866,17 @@ else if(istype(W, /obj/item/borg/upgrade/)) var/obj/item/borg/upgrade/U = W if(!opened) - usr << "You must access the borgs internals!" + user << "You must access the borgs internals!" else if(!src.module && U.require_module) - usr << "The borg must choose a module before he can be upgraded!" + user << "The borg must choose a module before he can be upgraded!" else if(U.locked) - usr << "The upgrade is locked and cannot be used yet!" + user << "The upgrade is locked and cannot be used yet!" else if(U.action(src)) - usr << "You apply the upgrade to [src]!" - usr.drop_item(src) + user << "You apply the upgrade to [src]!" + user.drop_item(U, src) else - usr << "Upgrade error!" + user << "Upgrade error!" else if(istype(W, /obj/item/device/camera_bug)) help_shake_act(user) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index ba7ddbedeaa..0888b3edd6a 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -103,15 +103,6 @@ for(var/i = 1; i < alarm_types_clear.len; i++) alarm_types_clear[i] = 0 -/mob/living/silicon/drop_item() - return - -/mob/living/silicon/drop_l_hand() - return - -/mob/living/silicon/drop_r_hand() - return - /mob/living/silicon/emp_act(severity) if(flags & INVULNERABLE) return diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index edba67476a1..acaaad92a96 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -174,7 +174,7 @@ if( ! ( item_to_add.type in allowed_types ) ) usr << "You set [item_to_add] on [src]'s back, but \he shakes it off!" - usr.drop_item(get_turf(src)) + usr.drop_item(item_to_add, get_turf(src)) if(prob(25)) step_rand(item_to_add) if (ckey == null) @@ -183,7 +183,7 @@ sleep(1) return - usr.drop_item(src) + usr.drop_item(item_to_add, src) src.inventory_back = item_to_add regenerate_icons() @@ -344,7 +344,7 @@ usr.visible_message("[usr] puts [item_to_add] on [real_name]'s head. [src] looks at [usr] and barks once.", "You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags \his tail once and barks.", "You hear a friendly-sounding bark.") - usr.drop_item(src) + usr.drop_item(item_to_add, src) else item_to_add.loc = src src.inventory_head = item_to_add @@ -352,7 +352,7 @@ else usr << "You set [item_to_add] on [src]'s head, but \he shakes it off!" - usr.drop_item(src) + usr.drop_item(item_to_add, src.loc) if(prob(25)) step_rand(item_to_add) if (ckey == null) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index e04a3e7f36c..e454e9dc925 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -234,7 +234,7 @@ var/global/chicken_count = 0 if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/wheat)) //feedin' dem chickens if(!stat && eggsleft < 8) user.visible_message("\blue [user] feeds [O] to [name]! It clucks happily.","\blue You feed [O] to [name]! It clucks happily.") - user.drop_item() + user.drop_item(O) qdel(O) eggsleft += rand(1, 4) //world << eggsleft diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 6dfb9d3d089..f6514099483 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -71,7 +71,7 @@ user << "\blue You install [O] in [src]!" - user.drop_item(src) + user.drop_item(O, src) src.mmi = O src.transfer_personality(O) src.update_icon() diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index e243464612e..fe8424ca722 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -228,7 +228,7 @@ var/obj/item/device/radio/headset/headset_to_add = item_to_add - usr.drop_item(src) + usr.drop_item(headset_to_add, src) src.ears = headset_to_add usr << "You fit the headset onto [src]." @@ -317,8 +317,8 @@ icon_state = "parrot_fly" drop_held_item(0) else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) //Poly wants a cracker. - del(O) - user.drop_item() + user.drop_item(O) + qdel(O) if(health < maxHealth) adjustBruteLoss(-10) user << "\blue [src] eagerly devours the cracker." diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm index 8c54a231c55..7383a0fc729 100644 --- a/code/modules/mob/living/simple_animal/vox.dm +++ b/code/modules/mob/living/simple_animal/vox.dm @@ -114,7 +114,7 @@ /mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) if(istype(O,/obj/item/vox/armalis_armour)) - user.drop_item(src) + user.drop_item(O, src) armour = O speed = 1 maxHealth += 200 @@ -123,7 +123,7 @@ regenerate_icons() return if(istype(O,/obj/item/vox/armalis_amp)) - user.drop_item(src) + user.drop_item(O, src) amp = O visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].") regenerate_icons() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 21c75245ee0..f72778522ff 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -294,7 +294,7 @@ if(EQUIP_FAILACTION_DROP) W.loc=get_turf(src) // I think. return - drop_item() + drop_item(W) if(!(put_in_active_hand(wearing))) equip_to_slot(wearing, slot, redraw_mob) switch(act_on_fail) @@ -1221,8 +1221,7 @@ var/list/slot_equipment_priority = list( \ if(ishuman(src)) layer = 3.9 density = 0 - drop_l_hand() - drop_r_hand() + drop_hands() else if(ishuman(src)) layer = 4 diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 79124f1b3db..4b767089820 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -79,8 +79,7 @@ allow_upgrade = 0 if(state == GRAB_AGGRESSIVE) var/h = affecting.hand - affecting.drop_l_hand() - affecting.drop_r_hand() + affecting.drop_hands() affecting.hand = h for(var/obj/item/weapon/grab/G in affecting.grabbed_by) if(G == src) continue diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index db7f0ff1558..5321a269b52 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -802,7 +802,7 @@ Note that amputating the affected organ does in fact remove the infection from t return if(is_broken()) - owner.u_equip(c_hand) + owner.drop_item(c_hand) var/emote_scream = pick("screams in pain and", "lets out a sharp cry and", "cries out and") owner.emote("me", 1, "[(owner.species && owner.species.flags & NO_PAIN) ? "" : emote_scream ] drops what they were holding in their [hand_name]!") if(is_malfunctioning()) @@ -824,7 +824,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_item() + H.drop_item(W) W.loc = owner /**************************************************** diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index f06afb42db8..0cee6afe816 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -46,7 +46,7 @@ /obj/item/weapon/clipboard/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo)) - user.drop_item(src) + user.drop_item(W, src) if(istype(W, /obj/item/weapon/paper)) toppaper = W user << "You clip the [W] onto \the [src]." @@ -97,7 +97,7 @@ if(!haspen) if(istype(usr.get_active_hand(), /obj/item/weapon/pen)) var/obj/item/weapon/pen/W = usr.get_active_hand() - usr.drop_item(src) + usr.drop_item(W, src) haspen = W usr << "You slot the pen into \the [src]." diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index ff6ec357781..8157d829fd7 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -36,7 +36,7 @@ /obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob) if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo)) user << "You put [P] in [src]." - user.drop_item(src) + user.drop_item(P, src) icon_state = "[initial(icon_state)]-open" sleep(5) icon_state = initial(icon_state) diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 3ae9515013c..c087871f361 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -33,7 +33,7 @@ /obj/item/weapon/folder/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo)) - user.drop_item(src) + user.drop_item(W, src) user << "You put the [W] into \the [src]." update_icon() else if(istype(W, /obj/item/weapon/pen)) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 1da3a3adac0..e0dd3cc8c1c 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -286,7 +286,7 @@ user << "This paper already has a photo attached." return img = P - user.drop_item(src) + user.drop_item(P, src) user << "You attach the photo to the piece of paper." add_fingerprint(user) return diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index f746d094725..859c2631d04 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -70,7 +70,7 @@ if(!istype(i)) return - user.drop_item(src) + user.drop_item(i, src) user << "You put [i] in [src]." papers.Add(i) amount++ diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 16b6aad6150..3e93e3f5bcc 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -267,7 +267,7 @@ copying = 0 if(istype(O, /obj/item/weapon/paper)) if(copier_empty()) - user.drop_item(src) + user.drop_item(O, src) copy = O user << "You insert [O] into [src]." flick("bigscanner1", src) @@ -276,7 +276,7 @@ user << "There is already something in [src]." else if(istype(O, /obj/item/weapon/photo)) if(copier_empty()) - user.drop_item(src) + user.drop_item(O, src) photocopy = O user << "You insert [O] into [src]." flick("bigscanner1", src) @@ -285,7 +285,7 @@ user << "There is already something in [src]." else if(istype(O, /obj/item/device/toner)) if(toner <= 0) - user.drop_item() + user.drop_item(O) qdel(O) toner = 40 user << "You insert [O] into [src]." diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 6572b9558d4..7c68ecf1893 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -157,7 +157,7 @@ user << "[src] still has some film in it!" return user << "You insert [I] into [src]." - user.drop_item() + user.drop_item(I) qdel(I) pictures_left = pictures_max icon_state = icon_on diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index e1428dfb098..6c89673a127 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -390,7 +390,7 @@ if (stat & MAINT) user << "\red There is no connector for your power cell." return - user.drop_item(src) + user.drop_item(W, src) cell = W user.visible_message(\ "\red [user.name] has inserted the power cell to [src.name]!",\ diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index d7cce5125cf..6593a04d1b3 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -310,7 +310,7 @@ on = has_power() update() - user.drop_item() //drop the item to update overlays and such + user.drop_item(L) //drop the item to update overlays and such qdel(L) if(on && rigged) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 6db328d0ae6..8f655640a30 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -69,7 +69,7 @@ var/global/list/rad_collectors = list() if(src.P) user << "A plasma tank is already loaded." return 1 - user.drop_item(src) + user.drop_item(W, src) src.P = W update_icons() else if(istype(W, /obj/item/weapon/crowbar)) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 9f3c6c0d811..73119ce7a3c 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -82,7 +82,7 @@ var/list/solars_list = list() if(!tracker) if(istype(W, /obj/item/weapon/tracker_electronics)) tracker = 1 - user.drop_item() + user.drop_item(W) qdel(W) user.visible_message("[user] inserts the electronics into [src].", \ "You insert the electronics into [src].") diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 113304c3a2f..4daf13ede24 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -72,7 +72,7 @@ accepted = 1 if(AC.BB && accepted && stored_ammo.len < max_ammo) stored_ammo += AC - user.drop_item(src) + user.drop_item(A, src) user << "You successfully load the [src] with \the [AC]" update_icon() else if(!AC.BB) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 4d21d070643..d65dd60e612 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -77,7 +77,7 @@ if ((M_CLUMSY in M.mutations) && prob(50)) M << "[src] blows up in your face." M.take_organ_damage(0,20) - M.drop_item() + M.drop_item(src) qdel(src) return diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index ef5b4119487..7bc208b3319 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -37,7 +37,7 @@ /obj/item/weapon/gun/projectile/proc/LoadMag(var/obj/item/ammo_storage/magazine/AM, var/mob/user) if(istype(AM, text2path(mag_type)) && !stored_magazine) if(user) - user.drop_item(src) + user.drop_item(AM, src) usr << "You load the magazine into \the [src]." stored_magazine = AM chamber_round() @@ -113,7 +113,7 @@ if(user.l_hand != src && user.r_hand != src) //if we're not in his hands user << "You'll need [src] in your hands to do that." return - user.drop_item(src) //put the silencer into the gun + user.drop_item(A, src) //put the silencer into the gun user << "You screw [A] onto [src]." silenced = A //dodgy? w_class = 3 @@ -140,11 +140,11 @@ //message_admins("Loading the [src], with [AC], [AC.caliber] and [caliber.len]") //Enable this for testing if(AC.BB && caliber[AC.caliber]) // a used bullet can't be fired twice if(load_method == MAGAZINE && !chambered) - user.drop_item(src) + user.drop_item(AC, src) chambered = AC num_loaded++ else if(getAmmo() < max_shells) - user.drop_item(src) + user.drop_item(AC, src) loaded += AC num_loaded++ diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index 608f3e42730..5a7106cff26 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -59,7 +59,7 @@ /obj/item/weapon/crossbow/attackby(obj/item/W as obj, mob/user as mob) if(!arrow) if (istype(W,/obj/item/weapon/arrow)) - user.drop_item(src) + user.drop_item(W, src) arrow = W user.visible_message("[user] slides [arrow] into [src].","You slide [arrow] into [src].") icon_state = "crossbow-nocked" @@ -82,8 +82,7 @@ if(istype(W, /obj/item/weapon/cell)) if(!cell) - user.drop_item() - W.loc = src + user.drop_item(W, src) cell = W user << "You jam [cell] into [src] and wire it to the firing coil." if(arrow) diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm index 5bed942b379..71f2872ddcc 100644 --- a/code/modules/projectiles/guns/projectile/pneumatic.dm +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -51,7 +51,7 @@ /obj/item/weapon/storage/pneumatic/attackby(obj/item/W as obj, mob/user as mob) if(!tank && istype(W,/obj/item/weapon/tank)) - user.drop_item(src.tank_container) + user.drop_item(W, src.tank_container) 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.") icon_state = "pneumatic-tank" diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index d2f5056c2f3..baaacb2fc58 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -16,7 +16,7 @@ if(istype(AC, /obj/item/ammo_casing/a357) && !perfect && prob(70 - (getAmmo() * 10))) //minimum probability of 10, maximum of 60 M << "[src] blows up in your face." M.take_organ_damage(0,20) - M.drop_item() + M.drop_item(src) qdel(src) return 0 return 1 diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 26cf64754b4..4c6fe331f72 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -243,7 +243,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY return else if(!panel_open) src.beaker = D - user.drop_item(src) + user.drop_item(D, src) user << "You add the beaker to the machine!" nanomanager.update_uis(src) // update all UIs attached to src return 1 @@ -388,7 +388,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY user << "A beaker is already loaded into the machine." return src.beaker = B - user.drop_item(src) + user.drop_item(B, src) user << "You add the beaker to the machine!" src.updateUsrDialog() update_icon() @@ -401,7 +401,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY return src.loaded_pill_bottle = B - user.drop_item(src) + user.drop_item(B, src) user << "You add the pill bottle into the dispenser slot!" src.updateUsrDialog() return 1 @@ -965,7 +965,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY return src.beaker = I - user.drop_item(src) + user.drop_item(I, src) user << "You add the beaker to the machine!" src.updateUsrDialog() icon_state = "mixer1" @@ -1105,7 +1105,7 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY return 0 else src.beaker = O - user.drop_item(src) + user.drop_item(O, src) update_icon() src.updateUsrDialog() return 1 diff --git a/code/modules/reagents/dartgun.dm b/code/modules/reagents/dartgun.dm index 6453776d46c..6c37407babb 100644 --- a/code/modules/reagents/dartgun.dm +++ b/code/modules/reagents/dartgun.dm @@ -84,7 +84,7 @@ user << "There's already a cartridge in [src]." return 0 - user.drop_item(src) + user.drop_item(D, src) cartridge = D user << "You slot [D] into [src]." update_icon() @@ -97,7 +97,7 @@ user << "[src] already has [max_beakers] vials in it - another one isn't going to fit!" return var/obj/item/weapon/reagent_containers/glass/beaker/B = I - user.drop_item(src) + user.drop_item(B, src) beakers += B user << "You slot [B] into [src]." src.updateUsrDialog() diff --git a/code/modules/reagents/grenade_launcher.dm b/code/modules/reagents/grenade_launcher.dm index 2562d140e2d..be4755ba141 100644 --- a/code/modules/reagents/grenade_launcher.dm +++ b/code/modules/reagents/grenade_launcher.dm @@ -27,7 +27,7 @@ if((istype(I, /obj/item/weapon/grenade))) if(grenades.len < max_grenades) - user.drop_item(src) + user.drop_item(I, src) grenades += I user << "You load the [I.name] into the [src.name]." user << "[grenades.len] / [max_grenades] grenades loaded." diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 6c78bec65ec..b4d9771673d 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -165,7 +165,7 @@ if(!iscarbon(user)) return 0 user << "You slip [W] inside [src]." - user.drop_item(src) + user.drop_item(W, src) add_fingerprint(user) contents += W return 1 //No afterattack here @@ -2675,7 +2675,7 @@ boxestoadd += i if( (boxes.len+1) + boxestoadd.len <= 5 ) - user.drop_item(src) + user.drop_item(I, src) box.boxes = list() // Clear the box boxes so we don't have boxes inside boxes. - Xzibit src.boxes.Add( boxestoadd ) @@ -2694,7 +2694,7 @@ if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/)) // Long ass fucking object name if(src.pizza) user << "[src] already has a pizza in it." else if(src.open) - user.drop_item(src) + user.drop_item(I, src) src.pizza = I src.update_icon() user << "You put [I] in [src]." diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 610cb5d29e7..9c01a1c5dd3 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -128,7 +128,7 @@ log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") rig = W - user.drop_item(src) + user.drop_item(W, src) var/icon/test = getFlatIcon(W) test.Shift(NORTH,1) diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm index eba8b234660..3004e1455d3 100644 --- a/code/modules/reagents/syringe_gun.dm +++ b/code/modules/reagents/syringe_gun.dm @@ -26,7 +26,7 @@ var/obj/item/weapon/reagent_containers/syringe/S = I if(S.mode != 2)//SYRINGE_BROKEN in syringes.dm if(syringes.len < max_syringes) - user.drop_item(src) + user.drop_item(I, src) syringes += I user << "You put the syringe in [src]." user << "[syringes.len] / [max_syringes] syringes." diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index e0071048a7e..a8fb73c09cc 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -191,7 +191,7 @@ if(istype(W, /obj/item/device/multitool)) update_multitool_menu(user) return 1 - user.drop_item(src.loc) + user.drop_item(W, src.loc) return 0 /obj/machinery/conveyor/multitool_menu(var/mob/user,var/obj/item/device/multitool/P) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index a4d1cac5fa3..d58f9ba3a73 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -128,7 +128,7 @@ var/obj/item/weapon/storage/bag/B = I if(B.contents.len == 0) user << " You throw away the empty [B]." - user.drop_item(src) + user.drop_item(I, src) return user << " You empty the [B]." for(var/obj/item/O in B.contents) @@ -157,23 +157,10 @@ return if(!I) return - if(!isMoMMI(user)) - user.drop_item() - else - var/mob/living/silicon/robot/mommi/M = user - if(is_type_in_list(I,M.module.modules)) - user << "\red You can't throw away what's attached to you." - return - else - M.drop_item() - if(I) - I.loc = src - user << "You place \the [I] into the [src]." - for(var/mob/M in viewers(src)) - if(M == user) - continue - M.show_message("[user.name] places \the [I] into the [src].", 3) + if(user.drop_item(I, src)) + + user.visible_message("[user.name] places \the [I] into the [src].", "You place \the [I] into the [src].") update() diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 176bf6f968e..bd1a21a550e 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -81,7 +81,7 @@ Note: Must be placed within 3 tiles of the R&D Console return*/ busy = 1 loaded_item = O - user.drop_item(src) + user.drop_item(O, src) user << "\blue You add the [O.name] to the machine!" flick("d_analyzer_la", src) spawn(10) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index cc4c134474b..99e9e09214a 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -172,7 +172,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else user << "\red Machine cannot accept disks in that format." return - user.drop_item(src) + user.drop_item(D, src) user << "\blue You add the disk to the machine!" src.updateUsrDialog() return diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm b/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm index 14f15520982..86fb364d74e 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_communication.dm @@ -15,8 +15,7 @@ /obj/machinery/communication/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/commstone)) if((W in allstones) && remaining < 6) - user.drop_item(src) - W.loc = src + user.drop_item(W, src) user << "You place one of the strange stones back onto the ancient device, it snaps into place." ..() diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm index 48200ed36bb..1f5649a0fcf 100644 --- a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm +++ b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm @@ -137,7 +137,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) user << "\red You must remove the [held_container] first." else user << "\blue You put the [W] into the [src]." - user.drop_item(src) + user.drop_item(W, src) held_container = W updateDialog() @@ -147,8 +147,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) user << "\red You must remove the [fuel_container] first." else user << "\blue You put the [fuel_container] into the [src]." - user.drop_item(W) - fuel_container.loc = src + user.drop_item(W, src) fuel_container = W updateDialog()*/ else diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm index f3f1a848098..3e247bd4764 100644 --- a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm +++ b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm @@ -25,7 +25,7 @@ if(istype(I,/obj/item/weapon/anobattery)) if(!inserted_battery) user << "\blue You insert [I] into [src]." - user.drop_item(src) + user.drop_item(I, src) src.inserted_battery = I updateDialog() else diff --git a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm index 9e7f0792937..3f59e63dfe5 100644 --- a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm +++ b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm @@ -40,7 +40,7 @@ if(istype(I, /obj/item/weapon/anobattery)) if(!inserted_battery) user << "\blue You insert the battery." - user.drop_item(src) + user.drop_item(I, src) inserted_battery = I UpdateSprite() else diff --git a/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm index 87b5a57e147..7021f8709d0 100644 --- a/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm +++ b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm @@ -15,7 +15,7 @@ if(held_container) user << "\red You must remove the [held_container] first." else - user.drop_item(src) + user.drop_item(W, src) held_container = W user << "\blue You put the [held_container] onto the [src]." var/image/I = image("icon"=W, "layer"=FLOAT_LAYER) diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 38aa7018dcb..81732ae32e8 100644 --- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -131,7 +131,7 @@ else if(href_list["insertcard"]) var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card)) - usr.drop_item(src) + usr.drop_item(I, src) auth_card = I if(attempt_unlock(I)) usr << "You insert [I], the console flashes \'Access granted.\'" @@ -215,7 +215,7 @@ if(cell) user << "There is a power cell already installed." else - user.drop_item(src) + user.drop_item(W, src) cell = W user << "You insert the power cell." if(anchored) diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index ac7e565a099..4b62f5cbe8f 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -16,7 +16,7 @@ /obj/item/bluespace_crystal/attack_self(var/mob/user) blink_mob(user) - user.drop_item() + user.drop_item(src) user.visible_message("[user] crushes the [src]!") qdel(src) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index 6f7e97ad86f..79221f6680f 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -62,7 +62,7 @@ user << "\The [name] blinks red as you try to insert the cell!" return - user.drop_item(src) + user.drop_item(W, src) cell = W user.visible_message("[user] inserts a cell into the [src].", "You insert a cell into the [src].") update_icon() diff --git a/code/modules/virus2/analyser.dm b/code/modules/virus2/analyser.dm index 795cee3292f..5c24f8c5ecc 100644 --- a/code/modules/virus2/analyser.dm +++ b/code/modules/virus2/analyser.dm @@ -32,7 +32,7 @@ var/mob/living/carbon/c = user if(!dish) dish = I - c.drop_item(src) + c.drop_item(I, src) for(var/mob/M in viewers(src)) if(M == user) continue M.show_message("\blue [user.name] inserts the [dish.name] in the [src.name]", 3) diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm index ff2475918aa..89011b6afd1 100644 --- a/code/modules/virus2/centrifuge.dm +++ b/code/modules/virus2/centrifuge.dm @@ -19,7 +19,7 @@ var/mob/living/carbon/C = user if(!sample) sample = I - C.drop_item(src) + C.drop_item(I, src) attack_hand(user) diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index e0e655798ce..76fc9a52d66 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -14,7 +14,7 @@ var/mob/living/carbon/C = user if(!container) container = I - C.drop_item(src) + C.drop_item(I, src) if(istype(I,/obj/item/weapon/virusdish)) if(virusing) user << "The pathogen materializer is still recharging.." diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm index 7503e390afc..0a782247445 100644 --- a/code/modules/virus2/diseasesplicer.dm +++ b/code/modules/virus2/diseasesplicer.dm @@ -23,7 +23,7 @@ if(!dish) dish = I - c.drop_item(src) + c.drop_item(I, src) if(istype(I,/obj/item/weapon/diseasedisk)) user << "You upload the contents of the disk into the buffer" memorybank = I:effect diff --git a/code/modules/virus2/dishincubator.dm b/code/modules/virus2/dishincubator.dm index 9b952627301..8e582d9767f 100644 --- a/code/modules/virus2/dishincubator.dm +++ b/code/modules/virus2/dishincubator.dm @@ -50,7 +50,7 @@ return src.beaker = B - user.drop_item(src) + user.drop_item(B, src) if(istype(B,/obj/item/weapon/reagent_containers/syringe)) user << "You add the syringe to the machine!" src.updateUsrDialog() @@ -64,7 +64,7 @@ return src.dish = B - user.drop_item(src) + user.drop_item(B, src) if(istype(B,/obj/item/weapon/virusdish)) user << "You add the dish to the machine!" src.updateUsrDialog() diff --git a/code/modules/virus2/isolator.dm b/code/modules/virus2/isolator.dm index de801ffc8a4..408c9873447 100644 --- a/code/modules/virus2/isolator.dm +++ b/code/modules/virus2/isolator.dm @@ -19,7 +19,7 @@ return src.beaker = B - user.drop_item(src) + user.drop_item(B, src) if(istype(B,/obj/item/weapon/reagent_containers/syringe)) user << "You add the syringe to the machine!" src.updateUsrDialog() From 744b5a01a6dda0d0705b9b0beb2dd652ef85d693 Mon Sep 17 00:00:00 2001 From: ComicIronic Date: Sun, 12 Apr 2015 11:35:38 +0100 Subject: [PATCH 2/3] Fix DME. --- baystation12.dme | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/baystation12.dme b/baystation12.dme index 2f4e5882d64..8972c6f32c0 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1506,6 +1506,11 @@ #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_dnaswitch.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_emp.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_forcefield.dm" +#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasco2.dm" +#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasnitro.dm" +#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasoxy.dm" +#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasplasma.dm" +#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gassleeping.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_goodfeeling.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heal.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heat.dm" From c6a0ff6cdd57ad739958320eff6dcb0529c2021d Mon Sep 17 00:00:00 2001 From: ComicIronic Date: Sun, 12 Apr 2015 11:38:54 +0100 Subject: [PATCH 3/3] Readd silicon behaviour. --- code/modules/mob/living/silicon/silicon.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 0888b3edd6a..867f7aab8b0 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -103,6 +103,9 @@ for(var/i = 1; i < alarm_types_clear.len; i++) alarm_types_clear[i] = 0 +/mob/living/silicon/drop_item() + return + /mob/living/silicon/emp_act(severity) if(flags & INVULNERABLE) return