Merge pull request #2091 from Fox-McCloud/destroy-them-all

Fixes up a few Destroys
This commit is contained in:
TheDZD
2015-09-18 22:30:49 -04:00
28 changed files with 155 additions and 98 deletions
@@ -25,7 +25,16 @@
if(ks2type)
keyslot2 = new ks2type(src)
recalculateChannels(1)
/obj/item/device/radio/headset/Destroy()
if(keyslot1)
qdel(keyslot1)
if(keyslot2)
qdel(keyslot2)
keyslot1 = null
keyslot2 = null
return ..()
/obj/item/device/radio/headset/list_channels(var/mob/user)
return list_secure_channels()
@@ -326,7 +335,7 @@
user.drop_item()
W.loc = src
keyslot2 = W
recalculateChannels()
return
@@ -69,6 +69,17 @@ var/global/list/default_medbay_channels = list(
internal_channels = default_internal_channels.Copy()
/obj/item/device/radio/Destroy()
qdel(wires)
wires = null
if(radio_controller)
radio_controller.remove_object(src, frequency)
for (var/ch_name in channels)
radio_controller.remove_object(src, radiochannels[ch_name])
patch_link = null
return ..()
/obj/item/device/radio/initialize()
if(frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ)
frequency = sanitize_frequency(frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
@@ -13,16 +13,13 @@
var/playsleepseconds = 0
var/obj/item/device/tape/mytape
var/open_panel = 0
var/datum/wires/taperecorder/wires = null
var/canprint = 1
/obj/item/device/taperecorder/New()
wires = new(src)
mytape = new /obj/item/device/tape/random(src)
update_icon()
/obj/item/device/taperecorder/examine(mob/user)
if(..(user, 1))
user << "The wire panel is [open_panel ? "opened" : "closed"]."
@@ -35,14 +32,6 @@
mytape = I
user << "<span class='notice'>You insert [I] into [src].</span>"
update_icon()
else if(istype(I, /obj/item/weapon/screwdriver))
open_panel = !open_panel
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
if(open_panel)
wires.Interact(user)
else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler))
wires.Interact(user)
/obj/item/device/taperecorder/proc/eject(mob/user)
if(mytape)
@@ -118,8 +107,6 @@
return
if(playing)
return
if(!wires.get_record())
return
if(mytape.used_capacity < mytape.max_capacity)
usr << "<span class='notice'>Recording started.</span>"
@@ -132,8 +119,6 @@
for(used, used < max)
if(recording == 0)
break
if(!wires.get_record())
break
mytape.used_capacity++
used++
sleep(10)
@@ -175,8 +160,6 @@
return
if(playing)
return
if(!wires.get_play())
return
playing = 1
update_icon()
@@ -186,8 +169,6 @@
for(var/i = 1, used < max, sleep(10 * playsleepseconds))
if(!mytape)
break
if(!wires.get_play())
break
if(playing == 0)
break
if(mytape.storedinfo.len < i)
@@ -250,7 +231,6 @@
//empty tape recorders
/obj/item/device/taperecorder/empty/New()
wires = new(src)
return
@@ -17,6 +17,12 @@
wires = new(src)
..()
/obj/item/weapon/c4/Destroy()
qdel(wires)
wires = null
target = null
return ..()
/obj/item/weapon/c4/suicide_act(var/mob/user)
. = (BRUTELOSS)
viewers(user) << "<span class='suicide'>[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!</span>"
@@ -13,6 +13,10 @@
src.smoke = new /datum/effect/effect/system/bad_smoke_spread
src.smoke.attach(src)
Destroy()
qdel(smoke)
return ..()
prime()
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
src.smoke.set_up(10, 0, usr.loc)