diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 1c0163e3b43..2e9f5797ef1 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -6110,7 +6110,7 @@ "cnz" = (/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "cnA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/wall,/area/crew_quarters/sleep) "cnB" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 8; req_access_txt = "24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos/control) -"cnC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/atmos/control) +"cnC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/atmos/control) "cnD" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/xenobiology) "cnE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cnF" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/toxins/xenobiology) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 690ac0e5c5b..2e748d40b7b 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -20,3 +20,6 @@ var/global/list/machines = list() var/global/list/processing_power_items = list() //items that ask to be called every cycle var/global/list/rcd_list = list() //list of Rapid Construction Devices. +var/global/list/apcs = list() +var/global/list/air_alarms = list() +var/global/list/power_monitors = list() \ No newline at end of file diff --git a/code/datums/cache/air_alarm.dm b/code/datums/cache/air_alarm.dm index 07caea0f3ad..83b2e8246e5 100644 --- a/code/datums/cache/air_alarm.dm +++ b/code/datums/cache/air_alarm.dm @@ -14,7 +14,7 @@ var/global/datum/repository/air_alarm/air_alarm_repository = new() if(ticker && ticker.current_state < GAME_STATE_PLAYING && istype(passed_alarm)) // Generating the list for the first time as the game hasn't started - no need to run through the machines list everything every time alarms[++alarms.len] = passed_alarm.get_nano_data_console() else - for(var/obj/machinery/alarm/alarm in sortAtom((monitored_alarms ? monitored_alarms : machines))) + for(var/obj/machinery/alarm/alarm in (monitored_alarms ? monitored_alarms : air_alarms)) if(!monitored_alarms && alarm.z != ZLEVEL_STATION && alarm.z != ZLEVEL_ASTEROID) continue alarms[++alarms.len] = alarm.get_nano_data_console() diff --git a/code/datums/cache/powermonitor.dm b/code/datums/cache/powermonitor.dm index a99b380a13d..e269ddc8afe 100644 --- a/code/datums/cache/powermonitor.dm +++ b/code/datums/cache/powermonitor.dm @@ -11,7 +11,7 @@ var/global/datum/repository/powermonitor/powermonitor_repository = new() if(!refresh) return cache_entry.data - for(var/obj/machinery/computer/monitor/pMon in machines) + for(var/obj/machinery/computer/monitor/pMon in power_monitors) if( !(pMon.stat & (NOPOWER|BROKEN)) ) pMonData[++pMonData.len] = list ("Name" = pMon.name, "ref" = "\ref[pMon]") diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index f9f13d4f907..5d6c2ff7730 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -183,6 +183,9 @@ /obj/machinery/alarm/New(var/loc, var/dir, var/building = 0) ..() + air_alarms += src + air_alarms = sortAtom(air_alarms) + wires = new(src) if(building) @@ -202,11 +205,9 @@ first_run() /obj/machinery/alarm/Destroy() + air_alarms -= src if(radio_controller) radio_controller.remove_object(src, frequency) - - if (src in machines) // So the cache can properly update - removeAtProcessing() air_alarm_repository.update_cache(src) return ..() diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index 55cf68c3234..0676ca917c8 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -13,6 +13,8 @@ /obj/machinery/computer/monitor/New() ..() + power_monitors += src + sortAtom(power_monitors) power_monitor = new(src) powermonitor_repository.update_cache() @@ -21,8 +23,7 @@ powernet = find_powernet() /obj/machinery/computer/monitor/Destroy() - if (src in machines) // So the cache can properly update - removeAtProcessing() + power_monitors -= src powermonitor_repository.update_cache() return ..() diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 99385ee5ff6..a9a07026a5d 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -131,7 +131,7 @@ usr.loc = M.loc feedback_add_details("admin_verb","GK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/sendmob(var/mob/M in sortmobs()) +/client/proc/sendmob(var/mob/M in mob_list) set category = "Admin" set name = "Send Mob" diff --git a/code/modules/computer3/computers/message.dm b/code/modules/computer3/computers/message.dm index 3eab3f59269..10870c9973e 100644 --- a/code/modules/computer3/computers/message.dm +++ b/code/modules/computer3/computers/message.dm @@ -371,7 +371,7 @@ if(!P.owner || P.toff || P.hidden) continue sendPDAs += P if(PDAs && PDAs.len > 0) - customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortAtom(sendPDAs) + customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sendPDAs else customrecepient = null diff --git a/code/modules/events/money_spam.dm b/code/modules/events/money_spam.dm index 198b483ee10..2bafc9f3cc9 100644 --- a/code/modules/events/money_spam.dm +++ b/code/modules/events/money_spam.dm @@ -29,7 +29,7 @@ // /obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "") var/obj/item/device/pda/P var/list/viables = list() - for(var/obj/item/device/pda/check_pda in sortAtom(PDAs)) + for(var/obj/item/device/pda/check_pda in PDAs) if (!check_pda.owner||check_pda.toff||check_pda == src||check_pda.hidden) continue viables.Add(check_pda) diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index 9cba0094d4d..4e04e619c44 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -149,7 +149,7 @@ var/pdas[0] if(!user.pda.toff) - for(var/obj/item/device/pda/P in sortAtom(PDAs)) + for(var/obj/item/device/pda/P in PDAs) if(!P.owner || P.toff || P == user.pda || P.hidden) continue var/pda[0] pda["name"] = "[P]" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 07c0ea13e8d..c2ee9dbf733 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -115,6 +115,8 @@ /obj/machinery/power/apc/New(turf/loc, var/ndir, var/building=0) ..() + apcs += src + sortAtom(apcs) wires = new(src) var/tmp/obj/item/weapon/stock_parts/cell/tmp_cell = new standard_max_charge = tmp_cell.maxcharge @@ -143,6 +145,7 @@ src.update() /obj/machinery/power/apc/Destroy() + apcs -= src if(malfai && operating) if (ticker.mode.config_tag == "malfunction") if (src.z == ZLEVEL_STATION)