mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
soft refs
This commit is contained in:
+18
-13
@@ -169,11 +169,12 @@
|
||||
poweralm = state
|
||||
if(istype(source)) //Only report power alarms on the z-level where the source is located.
|
||||
for(var/thing in cameras)
|
||||
var/obj/machinery/camera/C = thing
|
||||
if(state == 1)
|
||||
C.network -= "Power Alarms"
|
||||
else
|
||||
C.network |= "Power Alarms"
|
||||
var/obj/machinery/camera/C = locateUID(thing)
|
||||
if(!QDELETED(C))
|
||||
if(state == 1)
|
||||
C.network -= "Power Alarms"
|
||||
else
|
||||
C.network |= "Power Alarms"
|
||||
|
||||
for(var/item in GLOB.silicon_mob_list)
|
||||
var/mob/living/silicon/aiPlayer = item
|
||||
@@ -206,8 +207,9 @@
|
||||
if(danger_level == ATMOS_ALARM_DANGER)
|
||||
|
||||
for(var/thing in cameras)
|
||||
var/obj/machinery/camera/C = thing
|
||||
C.network |= "Atmosphere Alarms"
|
||||
var/obj/machinery/camera/C = locateUID(thing)
|
||||
if(!QDELETED(C))
|
||||
C.network |= "Atmosphere Alarms"
|
||||
|
||||
for(var/item in GLOB.silicon_mob_list)
|
||||
var/mob/living/silicon/aiPlayer = item
|
||||
@@ -221,8 +223,9 @@
|
||||
|
||||
else if(atmosalm == ATMOS_ALARM_DANGER)
|
||||
for(var/thing in cameras)
|
||||
var/obj/machinery/camera/C = thing
|
||||
C.network -= "Atmosphere Alarms"
|
||||
var/obj/machinery/camera/C = locateUID(thing)
|
||||
if(!QDELETED(C))
|
||||
C.network -= "Atmosphere Alarms"
|
||||
for(var/item in GLOB.silicon_mob_list)
|
||||
var/mob/living/silicon/aiPlayer = item
|
||||
aiPlayer.cancelAlarm("Atmosphere", src, source)
|
||||
@@ -277,8 +280,9 @@
|
||||
F.update_icon()
|
||||
|
||||
for(var/thing in cameras)
|
||||
var/obj/machinery/camera/C = thing
|
||||
C.network |= "Fire Alarms"
|
||||
var/obj/machinery/camera/C = locateUID(thing)
|
||||
if(!QDELETED(C))
|
||||
C.network |= "Fire Alarms"
|
||||
|
||||
for(var/item in GLOB.alert_consoles)
|
||||
var/obj/machinery/computer/station_alert/a = item
|
||||
@@ -309,8 +313,9 @@
|
||||
F.update_icon()
|
||||
|
||||
for(var/thing in cameras)
|
||||
var/obj/machinery/camera/C = thing
|
||||
C.network -= "Fire Alarms"
|
||||
var/obj/machinery/camera/C = locateUID(thing)
|
||||
if(!QDELETED(C))
|
||||
C.network -= "Fire Alarms"
|
||||
|
||||
for(var/item in GLOB.silicon_mob_list)
|
||||
var/mob/living/silicon/aiPlayer = item
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
GLOB.cameranet.addCamera(src)
|
||||
if(isturf(loc))
|
||||
myArea = get_area(src)
|
||||
LAZYADD(myArea.cameras, src)
|
||||
LAZYADD(myArea.cameras, UID())
|
||||
if(is_station_level(z) && prob(3) && !start_active)
|
||||
toggle_cam(null, FALSE)
|
||||
wires.CutAll()
|
||||
@@ -67,7 +67,7 @@
|
||||
GLOB.cameranet.removeCamera(src) //Will handle removal from the camera network and the chunks, so we don't need to worry about that
|
||||
GLOB.cameranet.cameras -= src
|
||||
if(isarea(myArea))
|
||||
LAZYREMOVE(myArea.cameras, src)
|
||||
LAZYREMOVE(myArea.cameras, UID())
|
||||
var/area/ai_monitored/A = get_area(src)
|
||||
if(istype(A))
|
||||
A.motioncameras -= src
|
||||
@@ -295,14 +295,14 @@
|
||||
GLOB.cameranet.addCamera(src)
|
||||
if(isturf(loc))
|
||||
myArea = get_area(src)
|
||||
LAZYADD(myArea.cameras, src)
|
||||
LAZYADD(myArea.cameras, UID())
|
||||
else
|
||||
myArea = null
|
||||
else
|
||||
set_light(0)
|
||||
GLOB.cameranet.removeCamera(src)
|
||||
if(isarea(myArea))
|
||||
LAZYREMOVE(myArea.cameras, src)
|
||||
LAZYREMOVE(myArea.cameras, UID())
|
||||
GLOB.cameranet.updateChunk(x, y, z)
|
||||
var/change_msg = "deactivates"
|
||||
if(status)
|
||||
@@ -333,7 +333,7 @@
|
||||
/obj/machinery/camera/proc/triggerCameraAlarm()
|
||||
alarm_on = TRUE
|
||||
for(var/mob/living/silicon/S in GLOB.silicon_mob_list)
|
||||
S.triggerAlarm("Camera", get_area(src), list(src), src)
|
||||
S.triggerAlarm("Camera", get_area(src), list(UID()), src)
|
||||
|
||||
/obj/machinery/camera/proc/cancelCameraAlarm()
|
||||
alarm_on = FALSE
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
return FALSE
|
||||
for(var/mob/living/silicon/aiPlayer in GLOB.player_list)
|
||||
if(status)
|
||||
aiPlayer.triggerAlarm("Motion", get_area(src), list(src), src)
|
||||
aiPlayer.triggerAlarm("Motion", get_area(src), list(UID()), src)
|
||||
visible_message("<span class='warning'>A red light flashes on the [src]!</span>")
|
||||
detectTime = -1
|
||||
return TRUE
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
return data
|
||||
|
||||
/obj/machinery/computer/station_alert/proc/triggerAlarm(class, area/A, O, obj/alarmsource)
|
||||
/obj/machinery/computer/station_alert/proc/triggerAlarm(class, area/A, list/O, obj/alarmsource)
|
||||
if(alarmsource.z != z)
|
||||
return
|
||||
if(stat & (BROKEN))
|
||||
@@ -58,18 +58,10 @@
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/sources = alarm[3]
|
||||
if(!(alarmsource in sources))
|
||||
sources += alarmsource
|
||||
if(!(alarmsource.UID() in sources))
|
||||
sources += alarmsource.UID()
|
||||
return TRUE
|
||||
var/obj/machinery/camera/C = null
|
||||
var/list/CL = null
|
||||
if(O && islist(O))
|
||||
CL = O
|
||||
if(CL.len == 1)
|
||||
C = CL[1]
|
||||
else if(O && istype(O, /obj/machinery/camera))
|
||||
C = O
|
||||
L[A.name] = list(A, (C ? C : O), list(alarmsource))
|
||||
L[A.name] = list(get_area_name(A, TRUE), O, list(alarmsource.UID()))
|
||||
update_icon()
|
||||
return TRUE
|
||||
|
||||
@@ -83,8 +75,8 @@
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/srcs = alarm[3]
|
||||
if(origin in srcs)
|
||||
srcs -= origin
|
||||
if(origin.UID() in srcs)
|
||||
srcs -= origin.UID()
|
||||
if(srcs.len == 0)
|
||||
cleared = TRUE
|
||||
L -= I
|
||||
|
||||
@@ -250,20 +250,19 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
if(L.len)
|
||||
for(var/alarm in L)
|
||||
var/list/alm = L[alarm]
|
||||
var/area/A = alm[1]
|
||||
var/area_name = alm[1]
|
||||
var/C = alm[2]
|
||||
var/list/sources = alm[3]
|
||||
dat += "<NOBR>"
|
||||
if(C && istype(C, /list))
|
||||
if(C && islist(C))
|
||||
var/dat2 = ""
|
||||
for(var/obj/machinery/camera/I in C)
|
||||
dat2 += text("[]<A HREF=?src=[UID()];switchcamera=[I.UID()]>[]</A>", (dat2=="") ? "" : " | ", I.c_tag)
|
||||
dat += text("-- [] ([])", A.name, (dat2!="") ? dat2 : "No Camera")
|
||||
else if(C && istype(C, /obj/machinery/camera))
|
||||
var/obj/machinery/camera/Ctmp = C
|
||||
dat += text("-- [] (<A HREF=?src=[UID()];switchcamera=[Ctmp.UID()]>[]</A>)", A.name, Ctmp.c_tag)
|
||||
for(var/thing in C)
|
||||
var/obj/machinery/camera/I = locateUID(thing)
|
||||
if(!QDELETED(I))
|
||||
dat2 += text("[]<A HREF=?src=[UID()];switchcamera=[thing]>[]</A>", (dat2 == "") ? "" : " | ", I.c_tag)
|
||||
dat += text("-- [] ([])", area_name, (dat2 != "") ? dat2 : "No Camera")
|
||||
else
|
||||
dat += text("-- [] (No Camera)", A.name)
|
||||
dat += text("-- [] (No Camera)", area_name)
|
||||
if(sources.len > 1)
|
||||
dat += text("- [] sources", sources.len)
|
||||
dat += "</NOBR><BR>\n"
|
||||
@@ -819,7 +818,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
|
||||
Bot.call_bot(src, waypoint)
|
||||
|
||||
/mob/living/silicon/ai/triggerAlarm(class, area/A, O, obj/alarmsource)
|
||||
/mob/living/silicon/ai/triggerAlarm(class, area/A, list/O, obj/alarmsource)
|
||||
if(alarmsource.z != z)
|
||||
return
|
||||
if(stat == DEAD)
|
||||
@@ -829,27 +828,22 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/sources = alarm[3]
|
||||
if(!(alarmsource in sources))
|
||||
sources += alarmsource
|
||||
if(!(alarmsource.UID() in sources))
|
||||
sources += alarmsource.UID()
|
||||
return TRUE
|
||||
var/obj/machinery/camera/C = null
|
||||
var/list/CL = null
|
||||
if(O && islist(O))
|
||||
CL = O
|
||||
if(CL.len == 1)
|
||||
C = CL[1]
|
||||
else if(O && istype(O, /obj/machinery/camera))
|
||||
C = O
|
||||
L[A.name] = list(A, (C ? C : O), list(alarmsource))
|
||||
L[A.name] = list(get_area_name(A, TRUE), O, list(alarmsource.UID()))
|
||||
if(O)
|
||||
if(C && C.can_use())
|
||||
queueAlarm("--- [class] alarm detected in [A.name]! (<A HREF=?src=[UID()];switchcamera=[C.UID()]>[C.c_tag]</A>)", class)
|
||||
else if(CL && CL.len)
|
||||
var/obj/machinery/camera/C = locateUID(O[1])
|
||||
if(O.len == 1 && !QDELETED(C) && C.can_use())
|
||||
queueAlarm("--- [class] alarm detected in [A.name]! (<A HREF=?src=[UID()];switchcamera=[O[1]]>[C.c_tag]</A>)", class)
|
||||
else if(O && O.len)
|
||||
var/foo = 0
|
||||
var/dat2 = ""
|
||||
for(var/obj/machinery/camera/I in CL)
|
||||
dat2 += text("[]<A HREF=?src=[UID()];switchcamera=[I.UID()]>[]</A>", (!foo) ? "" : " | ", I.c_tag) //I'm not fixing this shit...
|
||||
foo = 1
|
||||
for(var/thing in O)
|
||||
var/obj/machinery/camera/I = locateUID(thing)
|
||||
if(!QDELETED(I))
|
||||
dat2 += text("[]<A HREF=?src=[UID()];switchcamera=[thing]>[]</A>", (!foo) ? "" : " | ", I.c_tag) //I'm not fixing this shit...
|
||||
foo = 1
|
||||
queueAlarm(text ("--- [] alarm detected in []! ([])", class, A.name, dat2), class)
|
||||
else
|
||||
queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, A.name), class)
|
||||
@@ -866,8 +860,8 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/srcs = alarm[3]
|
||||
if(origin in srcs)
|
||||
srcs -= origin
|
||||
if(origin.UID() in srcs)
|
||||
srcs -= origin.UID()
|
||||
if(srcs.len == 0)
|
||||
cleared = TRUE
|
||||
L -= I
|
||||
@@ -882,7 +876,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
if(!tracking)
|
||||
cameraFollow = null
|
||||
|
||||
if(!C || stat == DEAD) //C.can_use())
|
||||
if(!C || QDELETED(C) || stat == DEAD) //C.can_use())
|
||||
return FALSE
|
||||
|
||||
if(!eyeobj)
|
||||
|
||||
@@ -557,9 +557,9 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
|
||||
if(L.len)
|
||||
for(var/alarm in L)
|
||||
var/list/alm = L[alarm]
|
||||
var/area/A = alm[1]
|
||||
var/area_name = alm[1]
|
||||
dat += "<NOBR>"
|
||||
dat += text("-- [A.name]")
|
||||
dat += text("-- [area_name]")
|
||||
dat += "</NOBR><BR>\n"
|
||||
else
|
||||
dat += "-- All Systems Nominal<BR>\n"
|
||||
@@ -630,7 +630,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
|
||||
/mob/living/silicon/robot/InCritical()
|
||||
return low_power_mode
|
||||
|
||||
/mob/living/silicon/robot/triggerAlarm(class, area/A, O, obj/alarmsource)
|
||||
/mob/living/silicon/robot/triggerAlarm(class, area/A, list/O, obj/alarmsource)
|
||||
if(alarmsource.z != z)
|
||||
return
|
||||
if(stat == DEAD)
|
||||
@@ -640,18 +640,10 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/sources = alarm[3]
|
||||
if(!(alarmsource in sources))
|
||||
sources += alarmsource
|
||||
if(!(alarmsource.UID() in sources))
|
||||
sources += alarmsource.UID()
|
||||
return TRUE
|
||||
var/obj/machinery/camera/C = null
|
||||
var/list/CL = null
|
||||
if(O && islist(O))
|
||||
CL = O
|
||||
if(CL.len == 1)
|
||||
C = CL[1]
|
||||
else if(O && istype(O, /obj/machinery/camera))
|
||||
C = O
|
||||
L[A.name] = list(A, (C ? C : O), list(alarmsource))
|
||||
L[A.name] = list(get_area_name(A, TRUE), O, list(alarmsource.UID()))
|
||||
queueAlarm(text("--- [class] alarm detected in [A.name]!"), class)
|
||||
return TRUE
|
||||
|
||||
@@ -662,8 +654,8 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/srcs = alarm[3]
|
||||
if(origin in srcs)
|
||||
srcs -= origin
|
||||
if(origin.UID() in srcs)
|
||||
srcs -= origin.UID()
|
||||
if(srcs.len == 0)
|
||||
cleared = 1
|
||||
L -= I
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
return data
|
||||
|
||||
/datum/computer_file/program/alarm_monitor/proc/triggerAlarm(class, area/A, O, obj/alarmsource)
|
||||
/datum/computer_file/program/alarm_monitor/proc/triggerAlarm(class, area/A, list/O, obj/alarmsource)
|
||||
if(is_station_level(source.z))
|
||||
if(!(A.type in GLOB.the_station_areas))
|
||||
return
|
||||
@@ -51,18 +51,10 @@
|
||||
if(I == A.name)
|
||||
var/list/alarm = L[I]
|
||||
var/list/sources = alarm[3]
|
||||
if(!(alarmsource in sources))
|
||||
sources += alarmsource
|
||||
if(!(alarmsource.UID() in sources))
|
||||
sources += alarmsource.UID()
|
||||
return TRUE
|
||||
var/obj/machinery/camera/C = null
|
||||
var/list/CL = null
|
||||
if(O && islist(O))
|
||||
CL = O
|
||||
if(CL.len == 1)
|
||||
C = CL[1]
|
||||
else if(O && istype(O, /obj/machinery/camera))
|
||||
C = O
|
||||
L[A.name] = list(A, (C ? C : O), list(alarmsource))
|
||||
L[A.name] = list(get_area_name(A, TRUE), O, list(alarmsource.UID()))
|
||||
update_alarm_display()
|
||||
return TRUE
|
||||
|
||||
@@ -78,8 +70,8 @@
|
||||
if(!arealevelalarm) // the traditional behaviour
|
||||
var/list/alarm = L[I]
|
||||
var/list/srcs = alarm[3]
|
||||
if(origin in srcs)
|
||||
srcs -= origin
|
||||
if(origin.UID() in srcs)
|
||||
srcs -= origin.UID()
|
||||
if(srcs.len == 0)
|
||||
cleared = 1
|
||||
L -= I
|
||||
|
||||
Reference in New Issue
Block a user