This commit is contained in:
Aurorablade
2017-05-29 00:31:15 -04:00
parent 7d431e18e0
commit 88d97c87d8
2 changed files with 24 additions and 14 deletions
+14 -10
View File
@@ -39,14 +39,18 @@
//cleans up ALL references :)
/datum/holocall/Destroy()
if(!qdeleted(user))
user.reset_perspective()
if(user.client)
for(var/datum/camerachunk/chunk in eye.visibleCameraChunks)
chunk.remove(eye)
user.remote_control = null
user = null
QDEL_NULL(eye)
user.reset_perspective()
user = null
hologram.HC = null
hologram = null
calling_holopad.outgoing_call = null
if(hologram)
hologram.HC = null
hologram = null
for(var/I in dialed_holopads)
var/obj/machinery/hologram/holopad/H = I
@@ -54,12 +58,14 @@
dialed_holopads.Cut()
if(calling_holopad)
calling_holopad.outgoing_call = null
calling_holopad.SetLightsAndPower()
calling_holopad = null
if(connected_holopad)
connected_holopad.SetLightsAndPower()
connected_holopad = null
return ..()
//Gracefully disconnects a holopad `H` from a call. Pads not in the call are ignored. Notifies participants of the disconnection
@@ -76,7 +82,7 @@
//Forcefully disconnects a holopad `H` from a call. Pads not in the call are ignored.
/datum/holocall/proc/ConnectionFailure(obj/machinery/hologram/holopad/H, graceful = FALSE)
if(H == connected_holopad || H == calling_holopad)
if(!graceful)
if(!graceful && H != calling_holopad)
calling_holopad.atom_say("Connection failure.")
qdel(src)
return
@@ -142,9 +148,7 @@
. = !qdeleted(user) && !user.incapacitated() && !qdeleted(calling_holopad) && !(calling_holopad.stat & NOPOWER) && user.loc == calling_holopad.loc
if(.)
if(connected_holopad)
. = !qdeleted(connected_holopad) && !(connected_holopad.stat & NOPOWER)
else
if(!connected_holopad)
. = world.time < (call_start_time + HOLOPAD_MAX_DIAL_TIME)
if(!.)
calling_holopad.atom_say("No answer recieved.")