diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index 636f114de78..5b236d4baa9 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -3,7 +3,7 @@ var/list/motionTargets = list() var/detectTime = 0 var/area/ai_monitored/area_motion = null - var/alarm_delay = 100 // Don't forget, there's another 10 seconds in queueAlarm() + var/alarm_delay = 100 /obj/machinery/camera/process() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 7aec194ddac..31e53150081 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -43,6 +43,8 @@ networks["ERT"] = list(access_cent_specops_commander,access_cent_commander) networks["CentCom"] = list(access_cent_security,access_cent_commander) networks["Thunderdome"] = list(access_cent_thunder,access_cent_commander) + + ..() /obj/machinery/computer/security/attack_ai(var/mob/user as mob) return attack_hand(user) @@ -157,6 +159,7 @@ else src.network += net break + invalidateCameraCache() nanomanager.update_uis(src) else . = ..() diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index a084b572d74..be2e2f85614 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -70,6 +70,7 @@ user << "A no server error appears on the screen." /obj/machinery/computer/message_monitor/update_icon() + ..() if(stat & (NOPOWER|BROKEN)) return if(emag || hacking) @@ -77,9 +78,8 @@ else icon_screen = normal_icon - ..() - /obj/machinery/computer/message_monitor/initialize() + ..() //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. if(!linkedServer) if(message_servers && message_servers.len > 0) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index d7657f44cc6..8f032a3147f 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -8,8 +8,7 @@ var/list/alarms_to_clear = list() var/list/hud_list[10] var/list/speech_synthesizer_langs = list() //which languages can be vocalized by the speech synthesizer - var/list/alarm_types_show = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0) - var/list/alarm_types_clear = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0) + var/list/alarm_handlers = list() // List of alarm handlers this silicon is registered to var/designation = "" var/obj/item/device/camera/siliconcam/aiCamera = null //photography //Used in say.dm, allows for pAIs to have different say flavor text, as well as silicons, although the latter is not implemented. @@ -33,7 +32,7 @@ init_subsystems() /mob/living/silicon/Destroy() - for(var/datum/alarm_handler/AH in alarm_manager.all_handlers) + for(var/datum/alarm_handler/AH in alarm_handlers) AH.unregister(src) return ..() diff --git a/code/modules/mob/living/silicon/subsystems.dm b/code/modules/mob/living/silicon/subsystems.dm index d39e502491b..9d018b35b4f 100644 --- a/code/modules/mob/living/silicon/subsystems.dm +++ b/code/modules/mob/living/silicon/subsystems.dm @@ -40,6 +40,7 @@ for(var/datum/alarm_handler/AH in register_to) AH.register(src, /mob/living/silicon/proc/receive_alarm) queued_alarms[AH] = list() // Makes sure alarms remain listed in consistent order + alarm_handlers |= AH /******************** * Alarm Monitor * diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 972cf959d04..f7541926aaa 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -235,6 +235,9 @@ return /obj/machinery/disposal/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + if(!air_contents) // I'm totally blaming Pete for you Donkie, because this is really shitty + return + var/data[0] var/pressure = 100 * air_contents.return_pressure() / (SEND_PRESSURE) @@ -741,6 +744,9 @@ proc/expel(var/obj/structure/disposalholder/H, var/turf/T, var/direction) + if(!T) + return + var/turf/target if(T.density) // dense ouput turf, so stop holder