diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 73827f37ae5..8a8ab3f76cf 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -124,8 +124,6 @@ for(var/datum/action/actions_removed as anything in actions) actions_removed.Remove(user) - for(var/datum/camerachunk/camerachunks_gone as anything in eyeobj.visibleCameraChunks) - camerachunks_gone.remove(eyeobj) eyeobj.assign_user(null) current_user = null diff --git a/code/modules/mob/eye/camera/camera.dm b/code/modules/mob/eye/camera/camera.dm index cff3d1e14d1..58019f73859 100644 --- a/code/modules/mob/eye/camera/camera.dm +++ b/code/modules/mob/eye/camera/camera.dm @@ -22,11 +22,15 @@ GLOB.camera_eyes += src /mob/eye/camera/Destroy() - for(var/datum/camerachunk/chunk in visibleCameraChunks) - chunk.remove(src) + clear_camera_chunks() GLOB.camera_eyes -= src return ..() +/// Clears us from any visible camera chunks. +/mob/eye/camera/proc/clear_camera_chunks() + for(var/datum/camerachunk/chunk in visibleCameraChunks) + chunk.remove(src) + /** * Getter proc for getting the current user's client. * diff --git a/code/modules/mob/eye/camera/remote.dm b/code/modules/mob/eye/camera/remote.dm index 08fc09fd37c..9c0b544d4c6 100644 --- a/code/modules/mob/eye/camera/remote.dm +++ b/code/modules/mob/eye/camera/remote.dm @@ -60,6 +60,7 @@ var/client/old_user_client = GetViewerClient() if(user_image && old_user_client) old_user_client.images -= user_image + clear_camera_chunks() user_ref = WEAKREF(new_user) //The user_ref can still be null!