From c39c929db79a9d8ade9ee473cb8ef9498461d94d Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sat, 18 Apr 2015 18:18:11 +0200 Subject: [PATCH] Adds a PDA cartridge ejection verb. The most requested feature. --- code/game/objects/items/devices/PDA/PDA.dm | 35 +++++++++++++++------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 59c57369431..794499fa37a 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -617,16 +617,7 @@ var/global/list/obj/item/device/pda/PDAs = list() ownrank = id.rank name = "PDA-[owner] ([ownjob])" if("Eject")//Ejects the cart, only done from hub. - if (!isnull(cartridge)) - var/turf/T = loc - if(ismob(T)) - T = T.loc - cartridge.loc = T - mode = 0 - scanmode = 0 - if (cartridge.radio) - cartridge.radio.hostpda = null - cartridge = null + verb_remove_cartridge() //MENU FUNCTIONS=================================== @@ -1120,6 +1111,30 @@ var/global/list/obj/item/device/pda/PDAs = list() else usr << "You cannot do this while restrained." +/obj/item/device/pda/verb/verb_remove_cartridge() + set category = "Object" + set name = "Remove cartridge" + set src in usr + + if(issilicon(usr)) + return + + if (can_use(usr) && !isnull(cartridge)) + var/turf/T = get_turf(src) + cartridge.loc = T + if (ismob(loc)) + var/mob/M = loc + M.put_in_hands(cartridge) + else + cartridge.loc = get_turf(src) + mode = 0 + scanmode = 0 + if (cartridge.radio) + cartridge.radio.hostpda = null + cartridge = null + usr << "You remove \the [cartridge] from the [name]." + else + usr << "You cannot do this while restrained." /obj/item/device/pda/proc/id_check(mob/user as mob, choice as num)//To check for IDs; 1 for in-pda use, 2 for out of pda use. if(choice == 1)