From 1e3073668713e4d6f880b87c70c871f2f5b6cdb4 Mon Sep 17 00:00:00 2001 From: BeebBeebBoob Date: Tue, 28 Jan 2025 17:07:49 +0300 Subject: [PATCH] =?UTF-8?q?add:=20=D0=93=D0=BE=D0=BB=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D0=BF=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _maps/map_files/Delta/delta.dmm | 106 ++++- _maps/map_files/celestation/celestation.dmm | 175 ++++++-- _maps/map_files/cerestation/cerestation.dmm | 223 ++++++++-- _maps/map_files/cyberiad/cyberiad.dmm | 84 +++- _maps/map_files/debug/multiz_test.dmm | 19 +- _maps/map_files/event/Station/coldcolony.dmm | 78 ++-- _maps/map_files/event/Station/delta_old.dmm | 6 +- .../map_files/event/Station/towerstation.dmm | 70 +++- _maps/map_files/nova/nova.dmm | 300 ++++++++++--- code/__DEFINES/holomaps.dm | 44 ++ code/__DEFINES/subsystems.dm | 2 +- code/__DEFINES/traits/declarations.dm | 3 + code/_globalvars/lists/holomaps.dm | 21 + code/controllers/subsystem/holomap.dm | 192 +++++++++ code/game/area/areas.dm | 5 + code/game/area/areas/depot-areas.dm | 1 + code/game/area/areas/mining.dm | 2 + code/game/area/areas/syndicate_base.dm | 1 + code/game/area/ss13_areas.dm | 299 +++++-------- code/game/machinery/firealarm.dm | 7 +- code/modules/holomaps/datum.dm | 102 +++++ code/modules/holomaps/hud.dm | 72 ++++ code/modules/holomaps/machinery.dm | 396 ++++++++++++++++++ .../lavalandruin_code/necropolis_lavalend.dm | 1 + code/modules/ruins/ruin_areas.dm | 1 + icons/misc/480x480.dmi | Bin 1702 -> 136234 bytes icons/misc/64x64.dmi | Bin 0 -> 34749 bytes icons/misc/8x8.dmi | Bin 0 -> 880 bytes icons/obj/stationmap.dmi | Bin 0 -> 3010 bytes paradise.dme | 6 + sound/effects/holomap_close.ogg | Bin 0 -> 7451 bytes sound/effects/holomap_open.ogg | Bin 0 -> 7458 bytes 32 files changed, 1813 insertions(+), 403 deletions(-) create mode 100644 code/__DEFINES/holomaps.dm create mode 100644 code/_globalvars/lists/holomaps.dm create mode 100644 code/controllers/subsystem/holomap.dm create mode 100644 code/modules/holomaps/datum.dm create mode 100644 code/modules/holomaps/hud.dm create mode 100644 code/modules/holomaps/machinery.dm create mode 100644 icons/misc/64x64.dmi create mode 100644 icons/misc/8x8.dmi create mode 100644 icons/obj/stationmap.dmi create mode 100644 sound/effects/holomap_close.ogg create mode 100644 sound/effects/holomap_open.ogg diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index 28ef2cc9376..eaba878e5b2 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -1369,6 +1369,7 @@ }, /obj/structure/closet/emcloset, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurple" @@ -18552,6 +18553,13 @@ icon_state = "green" }, /area/hallway/secondary/exit) +"cfY" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue" + }, +/area/medical/medbay) "cga" = ( /obj/machinery/atmospherics/unary/portables_connector, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -20270,6 +20278,7 @@ pixel_x = 32; pixel_y = 32 }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -28018,6 +28027,7 @@ network = list("Engineering","SS13"); pixel_y = -22 }, +/obj/machinery/station_map/engineering/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "yellow" @@ -50700,6 +50710,13 @@ }, /turf/simulated/floor/wood/fancy/light, /area/crew_quarters/courtroom) +"gwB" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutralcorner" + }, +/area/hallway/primary/fore) "gwH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -62636,6 +62653,12 @@ icon_state = "bar" }, /area/maintenance/tourist) +"jnj" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/crew_quarters/locker) "jnn" = ( /obj/structure/cable{ icon_state = "2-4" @@ -63306,6 +63329,7 @@ dir = 1 }, /obj/item/twohanded/required/kirbyplants, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/carpet, /area/crew_quarters/serviceyard) "juf" = ( @@ -65786,6 +65810,13 @@ /obj/effect/spawner/random_spawners/rodent, /turf/simulated/floor/plating, /area/maintenance/asmaint2) +"jZW" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central/south) "jZY" = ( /obj/item/storage/fancy/cigarettes/cigpack_robust, /obj/item/lighter, @@ -75066,6 +75097,13 @@ /obj/structure/window/reinforced, /turf/simulated/floor/carpet/arcade, /area/crew_quarters/fitness) +"msK" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/hallway/primary/port) "msV" = ( /obj/structure/table/wood, /obj/item/pen/multi{ @@ -80853,6 +80891,13 @@ /obj/item/storage/belt/utility, /turf/simulated/floor/bluegrid, /area/tcommsat/chamber) +"nIg" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/quartermaster/storage) "nIm" = ( /obj/machinery/light, /turf/simulated/floor/plasteel{ @@ -84528,6 +84573,10 @@ icon_state = "neutralfull" }, /area/hallway/primary/port/west) +"oAE" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/shuttle, +/area/shuttle/arrival/station) "oAM" = ( /obj/structure/cable{ icon_state = "1-8" @@ -108318,9 +108367,12 @@ /turf/simulated/floor/engine, /area/toxins/mixing) "tVr" = ( -/obj/machinery/status_display, -/turf/simulated/wall, -/area/engineering/break_room) +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "red" + }, +/area/security/main) "tVu" = ( /obj/structure/cable{ icon_state = "1-2" @@ -111956,12 +112008,10 @@ }, /area/maintenance/asmaint4) "uMU" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, /obj/structure/chair{ dir = 4 }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "green" @@ -119733,6 +119783,13 @@ icon_state = "grimy" }, /area/library) +"wEv" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/bridge/vip) "wEA" = ( /obj/structure/rack, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -120610,6 +120667,12 @@ /obj/structure/cable, /turf/simulated/floor/carpet, /area/crew_quarters/captain/bedroom) +"wOP" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central/west) "wPi" = ( /obj/structure/table/reinforced, /obj/item/clothing/gloves/color/fyellow, @@ -121350,6 +121413,13 @@ icon_state = "red" }, /area/security/customs) +"wYO" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central/east) "wYX" = ( /obj/structure/chair/comfy/black, /obj/effect/landmark/start/nanotrasen_rep, @@ -150144,7 +150214,7 @@ kLP rZU sMk bPK -tVr +lsT uOE pqZ cTM @@ -156577,7 +156647,7 @@ wRT bxh qcL ygK -wyy +msK bYj eTP hne @@ -160436,7 +160506,7 @@ nzZ igj ktI fyj -eJR +wOP umX gtP eJR @@ -160961,7 +161031,7 @@ ukJ dwM kJL lRu -wrB +wEv csK sMv iOJ @@ -163948,7 +164018,7 @@ aaq awU bqf bqf -ahC +oAE ahC ayi nlE @@ -165007,7 +165077,7 @@ jeY bBG bEN qDz -cwd +gwB cwd tav ktz @@ -165081,7 +165151,7 @@ mgf sYX qEU jPB -rSJ +jZW bAN cIU slb @@ -169181,7 +169251,7 @@ dDv lij deo grv -wML +wYO dPX cBw pJV @@ -169891,7 +169961,7 @@ uki ujm bFK dmq -daa +nIg ric eZs uAf @@ -172820,7 +172890,7 @@ jfK hqS bvF xYg -xYg +cfY oRe xYg xFU @@ -177676,7 +177746,7 @@ gjh gnf oPP iFR -nRC +jnj lov lNM ovP @@ -181247,7 +181317,7 @@ ePU wCH niy lhS -vcX +tVr iHp uZU xFL diff --git a/_maps/map_files/celestation/celestation.dmm b/_maps/map_files/celestation/celestation.dmm index 6b451b344ae..e2170a34625 100644 --- a/_maps/map_files/celestation/celestation.dmm +++ b/_maps/map_files/celestation/celestation.dmm @@ -844,6 +844,13 @@ icon_state = "solarpanel" }, /area/solar/west) +"aii" = ( +/obj/item/twohanded/required/kirbyplants, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple" + }, +/area/toxins/hallway) "aij" = ( /obj/machinery/optable, /obj/item/storage/firstaid/machine, @@ -4272,6 +4279,7 @@ }, /area/maintenance/cele/servise) "aJD" = ( +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "navybluealt" @@ -5339,6 +5347,9 @@ dir = 4 }, /obj/machinery/quantumpad/cere/cargo_security, +/obj/item/radio/intercom{ + pixel_y = 28 + }, /turf/simulated/floor/plasteel{ icon_state = "darkredfull" }, @@ -22501,6 +22512,13 @@ icon_state = "whitepurple" }, /area/toxins/xenobiology) +"cXq" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "navybluealt" + }, +/area/teleporter/quantum/medbay) "cXu" = ( /obj/machinery/door/airlock/public/glass{ name = "Central Access" @@ -24590,6 +24608,13 @@ }, /turf/simulated/floor/plating, /area/security/permabrig) +"dpr" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/hallway/primary/central/north) "dpt" = ( /turf/simulated/floor/plasteel{ dir = 9; @@ -26410,10 +26435,8 @@ }, /area/medical/medbay) "dGk" = ( -/obj/item/radio/intercom{ - pixel_y = 28 - }, /obj/machinery/camera/autoname, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "navybluealt" @@ -27046,6 +27069,7 @@ /obj/structure/railing/corner{ dir = 1 }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitegreen" @@ -30377,9 +30401,6 @@ }, /area/security/permabrig) "evh" = ( -/obj/machinery/status_display{ - pixel_y = -32 - }, /obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel{ icon_state = "whiteyellow" @@ -30710,6 +30731,7 @@ pixel_y = 32 }, /obj/machinery/quantumpad/cere/engineering_comand2, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "darkbluefull" @@ -43281,6 +43303,7 @@ }, /area/hallway/primary/port) "gQX" = ( +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "navybluealt" @@ -43345,7 +43368,7 @@ }, /area/turret_protected/aisat_interior) "gRS" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurple" @@ -45246,6 +45269,7 @@ }, /area/toxins/hallway) "hlG" = ( +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "neutral" @@ -45526,6 +45550,12 @@ "hom" = ( /turf/simulated/wall/r_wall, /area/ntrep) +"hon" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/wood/fancy/light{ + color = "gray" + }, +/area/crew_quarters/bar/atrium) "hoq" = ( /turf/simulated/floor/plasteel{ dir = 5; @@ -48950,6 +48980,7 @@ /turf/simulated/floor/plating, /area/hallway/spacebridge/cargocom) "hXS" = ( +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -51548,6 +51579,11 @@ dir = 1 }, /obj/machinery/quantumpad/cere/security_science, +/obj/machinery/firealarm{ + dir = 8; + name = "west fire alarm"; + pixel_x = -24 + }, /turf/simulated/floor/plasteel{ icon_state = "darkpurplefull" }, @@ -52336,6 +52372,7 @@ dir = 6 }, /obj/machinery/quantumpad/cere/servise_comand2, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "darkbluefull" @@ -59343,6 +59380,13 @@ icon_state = "darkblue" }, /area/medical/surgery/north) +"kag" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkbrown" + }, +/area/quartermaster/storage) "kal" = ( /obj/structure/railing{ dir = 8 @@ -61272,6 +61316,11 @@ /area/crew_quarters/theatre) "ktd" = ( /obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + name = "south fire alarm"; + pixel_y = -24 + }, /turf/simulated/floor/plasteel{ icon_state = "navybluealt" }, @@ -62285,6 +62334,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -62446,6 +62496,9 @@ /area/turret_protected/ai) "kDz" = ( /obj/item/twohanded/required/kirbyplants, +/obj/item/radio/intercom{ + pixel_x = 28 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "whiteyellow" @@ -66190,6 +66243,7 @@ }, /area/assembly/chargebay) "lrl" = ( +/obj/machinery/station_map/engineering/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" @@ -70761,9 +70815,7 @@ }, /area/security/permabrig) "mlS" = ( -/obj/machinery/firealarm{ - pixel_y = 26 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "navybluealt" @@ -72244,10 +72296,8 @@ }, /area/security/permahallway) "mBM" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "red" @@ -72468,6 +72518,7 @@ dir = 4; network = list("SS13","CE") }, +/obj/machinery/station_map/engineering/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkyellow" @@ -75085,6 +75136,13 @@ icon_state = "neutralfull" }, /area/hallway/secondary/entry/south) +"nel" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "red" + }, +/area/hallway/secondary/entry/south) "neA" = ( /obj/machinery/door/window/northleft{ req_access = list(55) @@ -75355,6 +75413,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/wood/fancy/light, /area/library/game_zone) "ngP" = ( @@ -76531,9 +76590,6 @@ /turf/simulated/floor/plating, /area/aisat/atmospherics) "nsl" = ( -/obj/machinery/firealarm{ - pixel_y = 26 - }, /obj/machinery/light{ dir = 1 }, @@ -82558,6 +82614,12 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/wood/fancy/light, /area/lawoffice) +"oDG" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "blue" + }, +/area/hallway/primary/fore) "oDK" = ( /obj/structure/lattice, /obj/structure/transit_tube/crossing, @@ -99448,6 +99510,13 @@ /obj/structure/lattice/catwalk, /turf/space/openspace, /area/space) +"rOI" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "purple" + }, +/area/medical/research) "rON" = ( /obj/machinery/light/small{ dir = 1 @@ -99495,6 +99564,9 @@ /area/medical/reception) "rOW" = ( /obj/item/twohanded/required/kirbyplants, +/obj/item/radio/intercom{ + pixel_y = 28 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "navybluealt" @@ -103426,14 +103498,12 @@ /turf/simulated/floor/plating, /area/chapel/office) "sEi" = ( -/obj/item/radio/intercom{ - pixel_x = 28 - }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "whiteyellow" + dir = 8; + icon_state = "neutral" }, -/area/hallway/primary/central) +/area/crew_quarters/serviceyard) "sEm" = ( /turf/simulated/mineral/ancient, /area/hallway/spacebridge/engmed) @@ -110582,9 +110652,7 @@ /turf/simulated/floor/plasteel, /area/janitor) "tTh" = ( -/obj/item/radio/intercom{ - pixel_y = 28 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "navybluealt" @@ -118548,6 +118616,13 @@ icon_state = "tranquillite" }, /area/mimeoffice) +"vwf" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple" + }, +/area/medical/research/shallway) "vwo" = ( /obj/machinery/light{ dir = 1 @@ -118573,6 +118648,7 @@ /turf/simulated/floor/plasteel, /area/maintenance/electrical_shop) "vwI" = ( +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "neutral" @@ -120219,6 +120295,7 @@ /obj/machinery/camera/autoname{ dir = 4 }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -120645,6 +120722,7 @@ }, /area/crew_quarters/fitness) "vRd" = ( +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -121835,6 +121913,13 @@ icon_state = "whiteyellow" }, /area/medical/chemistry) +"wdw" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutralcorner" + }, +/area/hallway/primary/starboard/north) "wdA" = ( /obj/structure/cable/orange{ icon_state = "4-8" @@ -124124,6 +124209,9 @@ /obj/machinery/camera/autoname{ dir = 1 }, +/obj/machinery/status_display{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "whiteyellow" }, @@ -130556,13 +130644,12 @@ /turf/simulated/floor/plating, /area/maintenance/engineering) "xIW" = ( -/obj/machinery/status_display{ - pixel_y = -32 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "whiteyellow" + dir = 1; + icon_state = "darkred" }, -/area/hallway/primary/central) +/area/security/main) "xIX" = ( /obj/structure/railing, /obj/item/flag/command, @@ -146248,7 +146335,7 @@ mSg sQc uXh wNS -vbw +vwf btS jRO cUT @@ -212756,7 +212843,7 @@ jMc waa lUq wLr -uLv +sEi eVI vKV esf @@ -215121,7 +215208,7 @@ vtv pOz svN gQu -wWO +aii lUn tmG aFO @@ -216494,7 +216581,7 @@ tYG wHf wHf ffK -cSP +xIW dkk kud ree @@ -217614,7 +217701,7 @@ ahR fTO uzE mjD -ska +hon aHZ fVX fVX @@ -221538,7 +221625,7 @@ qjn nxQ fEJ cXm -mRY +rOI spH ipI jHE @@ -231782,7 +231869,7 @@ xbf tJg lLU nJE -xIW +nEn bgc lrl rCz @@ -232499,7 +232586,7 @@ rhK pfc bOA tzJ -jwW +dpr tFF uZJ oun @@ -234000,7 +234087,7 @@ hFt uqB rBb btn -tNm +oDG lxg kkS kkS @@ -235121,7 +235208,7 @@ kDz sNk hLT xfU -sEi +cYF cYF gxL rxJ @@ -242872,7 +242959,7 @@ jVG nbM jVG jVG -egs +nel tNA iPu vmi @@ -246392,7 +246479,7 @@ hpJ euW mDQ pms -fOe +cXq ntU wEh fOe @@ -250429,7 +250516,7 @@ xvn yeT qOm mwF -mwF +kag iZE iNe hvU @@ -250755,7 +250842,7 @@ ocg xMz dvP aFt -tXd +wdw jQg oCD uEe diff --git a/_maps/map_files/cerestation/cerestation.dmm b/_maps/map_files/cerestation/cerestation.dmm index 6c1aacb38df..1d08601a6dc 100644 --- a/_maps/map_files/cerestation/cerestation.dmm +++ b/_maps/map_files/cerestation/cerestation.dmm @@ -2832,6 +2832,12 @@ /obj/machinery/computer/communications, /turf/simulated/floor/wood/fancy/oak, /area/crew_quarters/captain) +"ayw" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple" + }, +/area/toxins/hallway) "ayy" = ( /obj/structure/closet/secure_closet/miner, /turf/simulated/floor/plasteel{ @@ -3674,6 +3680,9 @@ /obj/machinery/light{ dir = 1 }, +/obj/item/radio/intercom{ + pixel_y = 26 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkbrown" @@ -4306,9 +4315,7 @@ /turf/simulated/wall, /area/maintenance/engineering) "aKJ" = ( -/obj/item/radio/intercom{ - pixel_x = -28 - }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkbrown" @@ -4514,7 +4521,6 @@ }, /area/security/warden) "aMR" = ( -/obj/machinery/ai_status_display, /turf/simulated/wall, /area/security/brig) "aMS" = ( @@ -10891,11 +10897,8 @@ dir = 4; network = list("SS13","CE") }, -/obj/machinery/newscaster{ - dir = 4; - pixel_x = -28 - }, /obj/machinery/atmospherics/pipe/simple/visible, +/obj/machinery/station_map/engineering/directional/west, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -11917,6 +11920,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/segment, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whiteblue" @@ -20514,6 +20518,10 @@ icon_state = "darkblue" }, /area/medical/surgery/north) +"cHU" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/shuttle, +/area/shuttle/arrival/station) "cHX" = ( /obj/structure/chair/stool, /mob/living/simple_animal/butterfly, @@ -23291,11 +23299,7 @@ }, /area/hallway/spacebridge/scidock) "cYD" = ( -/obj/machinery/light, -/obj/item/radio/intercom{ - dir = 1; - pixel_y = -29 - }, +/obj/machinery/station_map/directional/south, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -24739,6 +24743,9 @@ /obj/item/radio/intercom{ pixel_x = -28 }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "darkbrown" @@ -24756,12 +24763,10 @@ }, /area/teleporter/quantum/cargo) "dkK" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "darkbrown" @@ -28162,6 +28167,13 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel/white, /area/toxins/hallway) +"dZI" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/hallway/primary/fore/east) "dZM" = ( /obj/machinery/door/poddoor/preopen{ id_tag = "engineeringlockdown"; @@ -29234,6 +29246,13 @@ "esK" = ( /turf/simulated/wall/r_wall, /area/hallway/secondary/entry) +"esQ" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/aft/west) "esU" = ( /obj/machinery/photocopier, /turf/simulated/floor/wood/fancy/light, @@ -29290,11 +29309,9 @@ /turf/simulated/floor/plating, /area/maintenance/fpmaint) "eud" = ( -/obj/machinery/status_display{ - layer = 4 - }, +/obj/machinery/ai_status_display, /turf/simulated/wall, -/area/hydroponics) +/area/security/interrogation) "eut" = ( /obj/machinery/door/airlock/security/glass{ id = "process"; @@ -31023,6 +31040,10 @@ name = "Portable Scrubber Connector" }, /obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/newscaster{ + dir = 4; + pixel_x = -28 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -37369,6 +37390,16 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating/asteroid/ancient, /area/maintenance/engineering) +"gWo" = ( +/obj/structure/cable/orange{ + icon_state = "4-8" + }, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/hallway/primary/port/east) "gWs" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/orange{ @@ -37397,6 +37428,13 @@ }, /turf/simulated/floor/wood/fancy/cherry, /area/quartermaster/office) +"gWG" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/fore/west) "gWR" = ( /obj/item/reagent_containers/food/snacks/grown/banana{ pixel_x = -1; @@ -38290,8 +38328,10 @@ }, /area/quartermaster/qm) "hkn" = ( -/obj/machinery/light{ - dir = 8 +/obj/machinery/station_map/directional/west, +/obj/machinery/camera{ + c_tag = "Brig Main Hall West 2"; + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -42814,6 +42854,15 @@ icon_state = "yellow" }, /area/hallway/primary/central) +"iys" = ( +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/hallway/primary/fore) "iyz" = ( /obj/machinery/light, /obj/structure/cable{ @@ -49102,6 +49151,13 @@ }, /turf/simulated/floor/glass/reinforced, /area/maintenance/fsmaint3) +"knt" = ( +/obj/machinery/station_map/engineering/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkyellow" + }, +/area/engineering/break_room) "knD" = ( /turf/simulated/floor/plasteel/airless{ icon_state = "solarpanel" @@ -54232,6 +54288,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/maintenance/fsmaint3) +"lMc" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel, +/area/crew_quarters/locker) "lMf" = ( /obj/structure/table, /obj/item/cultivator, @@ -55026,6 +55086,12 @@ icon_state = "neutral" }, /area/hallway/primary/central) +"lWr" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/hallway/primary/fore/west) "lWT" = ( /turf/simulated/wall, /area/hallway/secondary/garden) @@ -59501,6 +59567,15 @@ }, /turf/simulated/floor/engine/o2, /area/atmos) +"nkU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/starboard/south) "nle" = ( /obj/structure/girder, /obj/structure/grille, @@ -64537,6 +64612,13 @@ }, /turf/simulated/floor/plating, /area/hallway/primary/port/east) +"oDy" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/turret_protected/aisat_interior) "oDz" = ( /obj/machinery/camera{ c_tag = "Medical SMES"; @@ -65265,6 +65347,19 @@ icon_state = "white" }, /area/toxins/mixing) +"oPd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutral" + }, +/area/hallway/primary/port/south) "oPr" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -74362,6 +74457,7 @@ /area/hallway/primary/aft/west) "rrT" = ( /obj/structure/disposalpipe/segment, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "blue" @@ -74974,6 +75070,14 @@ icon_state = "blue" }, /area/hallway/primary/fore) +"rAT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutral" + }, +/area/hallway/secondary/entry/north) "rAV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -78205,6 +78309,16 @@ icon_state = "asteroidplating" }, /area/quartermaster/office) +"svi" = ( +/obj/structure/cable/orange{ + icon_state = "1-2" + }, +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/port/south) "svk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -82578,6 +82692,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "darkgreen" @@ -84431,6 +84546,15 @@ icon_state = "neutral" }, /area/hallway/primary/central) +"umU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + icon_state = "neutralfull" + }, +/area/hallway/secondary/exit) "umV" = ( /obj/machinery/door/airlock/maintenance{ name = "Fore Asteroid Maintenance Access"; @@ -84834,9 +84958,8 @@ dir = 4; pixel_x = -24 }, -/obj/machinery/camera{ - c_tag = "Brig Main Hall West 2"; - dir = 4 +/obj/machinery/light{ + dir = 8 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -84944,6 +85067,13 @@ }, /turf/simulated/floor/plasteel/white, /area/toxins/xenobiology) +"uvg" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/port/north) "uvp" = ( /obj/machinery/camera{ c_tag = "SM East"; @@ -93717,6 +93847,7 @@ }, /area/maintenance/apmaint2) "xaI" = ( +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "darkpurple" @@ -113237,7 +113368,7 @@ xrZ xrZ xrZ xrZ -xrZ +eud bsG dxo wIG @@ -114032,7 +114163,7 @@ dID mtw iKl oQL -pjO +gWG jho fLz xfq @@ -114058,7 +114189,7 @@ qxR vyy fhI dYb -efz +uvg oBl efz pCw @@ -114083,7 +114214,7 @@ efz ggp xAB mit -gTC +svi uEp gTC lEW @@ -114136,7 +114267,7 @@ qZI lXC qZI fgq -qZI +esQ ixN uRf hgL @@ -114622,7 +114753,7 @@ sgM sNt sgM sgM -poP +oPd akd kPY xem @@ -114879,7 +115010,7 @@ tWL cMy lJR uQa -eud +btd bZj lZN lZN @@ -116460,7 +116591,7 @@ uMr uMr mqz cuD -wmq +ayw hwB hwB xnx @@ -118695,7 +118826,7 @@ rEg kDV tfK bEM -tmw +gWo jBM nko rZl @@ -121998,7 +122129,7 @@ kzf kzf kZP chV -iVn +lWr dzk anv hKH @@ -123261,7 +123392,7 @@ gHf kXu aqC bgD -qSK +lMc btY qSK qSK @@ -128937,7 +129068,7 @@ fxB vzX pXH vuY -pok +iys gzv gzv gzv @@ -130222,7 +130353,7 @@ lqC uuv xCd vuY -pok +tPr gzv qKH eXA @@ -135925,7 +136056,7 @@ bRs jiO pTV jiO -bRs +knt soV cxf dPc @@ -137418,7 +137549,7 @@ dkd aKp qSe vuY -pok +cYD aKp hna ier @@ -139076,7 +139207,7 @@ uSP uSP uSP uSP -iQu +cHU xbJ lQB kjb @@ -140994,7 +141125,7 @@ gcR aXd gms oyt -kQa +oDy aNW kQa bwG @@ -142602,7 +142733,7 @@ sMA vfk qUp kNa -vfk +nkU iHd fdV ppR @@ -143167,7 +143298,7 @@ eJl eJl eJl qcH -eJl +rAT eJl oTv eJl @@ -147964,7 +148095,7 @@ rSB mDL kGJ sNv -lGx +dZI ivo lGx lGx @@ -149588,7 +149719,7 @@ ceQ lvj qpe cdT -bTq +umU jvl ceO ceO diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 15134615a45..9701623eff1 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -2556,9 +2556,7 @@ pixel_x = -32; pixel_y = 32 }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel, /area/security/main) "amd" = ( @@ -13474,10 +13472,7 @@ /turf/simulated/wall, /area/storage/primary) "aUt" = ( -/obj/structure/extinguisher_cabinet{ - name = "north extinguisher cabinet"; - pixel_y = 30 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "aUu" = ( @@ -14252,6 +14247,21 @@ icon_state = "dark" }, /area/medical/morgue) +"aWS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + name = "south extinguisher cabinet"; + pixel_y = -30 + }, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/hallway/secondary/entry) "aWT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -40491,6 +40501,7 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/station_map/engineering/directional/west, /turf/simulated/floor/plasteel, /area/engineering/controlroom) "cAN" = ( @@ -53096,6 +53107,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel, /area/hallway/primary/central/ne) "dld" = ( @@ -55553,6 +55565,11 @@ }, /turf/simulated/floor/plating, /area/maintenance/asmaint) +"dwN" = ( +/obj/machinery/light, +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/shuttle, +/area/shuttle/arrival/station) "dwW" = ( /obj/machinery/door_control{ id = "kitchenhall"; @@ -61003,6 +61020,13 @@ icon_state = "whitebluecorner" }, /area/medical/surgery/north) +"gWJ" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "browncorner" + }, +/area/hallway/primary/central/sw) "gWM" = ( /obj/machinery/camera{ c_tag = "East Primary Hallway 5"; @@ -62044,6 +62068,13 @@ icon_state = "cafeteria" }, /area/medical/research/restroom) +"hFV" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitehall" + }, +/area/medical/research) "hGr" = ( /obj/structure/cable{ icon_state = "1-2" @@ -66865,6 +66896,10 @@ icon_state = "dark" }, /area/turret_protected/ai_upload) +"kTi" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/hallway/primary/starboard/east) "kTu" = ( /obj/structure/largecrate, /obj/effect/decal/cleanable/dust, @@ -68624,6 +68659,13 @@ icon_state = "whitegreenfull" }, /area/medical/virology/lab) +"lZT" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "redcorner" + }, +/area/security/lobby) "lZV" = ( /obj/item/radio/intercom{ name = "north station intercom (General)"; @@ -69333,6 +69375,7 @@ /obj/machinery/camera{ c_tag = "Central Primary Hallway South" }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel, /area/hallway/primary/central/south) "mxB" = ( @@ -69744,6 +69787,10 @@ }, /turf/simulated/floor/wood, /area/crew_quarters/captain) +"mJX" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/crew_quarters/dorms) "mKg" = ( /obj/machinery/door/airlock/security/glass{ name = "Armory"; @@ -86490,6 +86537,13 @@ }, /turf/simulated/floor/plasteel, /area/maintenance/atmospherics) +"xoz" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "yellowcorner" + }, +/area/hallway/primary/aft) "xoJ" = ( /obj/item/restraints/handcuffs/cable/cyan, /obj/effect/decal/remains/human, @@ -98036,7 +98090,7 @@ cCu aYZ aYZ aYZ -bcN +dwN beh aSd aSd @@ -101377,7 +101431,7 @@ aWc lFU bge bcX -bgu +aWS aMs aMs aMs @@ -111429,7 +111483,7 @@ sdq tPq tPq wZO -tPq +gWJ tPq cbL tPq @@ -112735,7 +112789,7 @@ czN kyC uTI cNS -cFa +xoz pjs tcA cKb @@ -115487,7 +115541,7 @@ cZE avW bei cZE -cZE +lZT aAO aCj aDj @@ -123209,7 +123263,7 @@ aJx aKL aMH aFI -aJA +mJX aVw aSL lYa @@ -130688,7 +130742,7 @@ dmN byU dqC bau -bwv +kTi bFr bwv bEA @@ -132765,7 +132819,7 @@ cdC ceK uKx cjL -clg +hFV clW qTP coA diff --git a/_maps/map_files/debug/multiz_test.dmm b/_maps/map_files/debug/multiz_test.dmm index 8fb4258f870..125f3aa81a2 100644 --- a/_maps/map_files/debug/multiz_test.dmm +++ b/_maps/map_files/debug/multiz_test.dmm @@ -444,6 +444,15 @@ }, /turf/simulated/floor/plasteel, /area/construction/hallway) +"mj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1 + }, +/area/hallway/primary/central) "mH" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -784,6 +793,12 @@ }, /turf/simulated/floor/plasteel, /area/hallway/primary/central) +"uT" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1 + }, +/area/construction/hallway) "uY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -21263,7 +21278,7 @@ oS wV ZZ Os -rW +mj Sj Sj Bb @@ -86799,7 +86814,7 @@ DC DC nE YU -Ly +uT wl wl YU diff --git a/_maps/map_files/event/Station/coldcolony.dmm b/_maps/map_files/event/Station/coldcolony.dmm index c53dab38334..4242930539c 100644 --- a/_maps/map_files/event/Station/coldcolony.dmm +++ b/_maps/map_files/event/Station/coldcolony.dmm @@ -2893,10 +2893,7 @@ }, /area/coldcolony/ruin/miningbar) "bcW" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -26 - }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -3230,9 +3227,7 @@ /area/coldcolony/ruin/sm_lab) "bkd" = ( /obj/effect/decal/warning_stripes/yellow/hollow, -/obj/machinery/light{ - dir = 1 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel, /area/quartermaster/office) "bke" = ( @@ -11561,6 +11556,7 @@ "eqe" = ( /obj/effect/decal/warning_stripes/yellow/hollow, /obj/vehicle/ridden/snowmobile/key, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel, /area/medical/research) "eqg" = ( @@ -12254,9 +12250,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkred" @@ -18468,6 +18462,9 @@ /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/dispenser/oxygen, /obj/effect/decal/warning_stripes/northwest, +/obj/machinery/computer/guestpass{ + pixel_y = 28 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -21607,9 +21604,7 @@ }, /area/toxins/lab) "inF" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -28 - }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plating, /area/medical/sleeper) "inG" = ( @@ -22774,6 +22769,9 @@ /obj/machinery/light{ dir = 8 }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -28 + }, /turf/simulated/floor/plasteel/white, /area/medical/sleeper) "iJD" = ( @@ -23657,6 +23655,17 @@ icon_state = "neutralfull" }, /area/quartermaster/storage) +"jcb" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-25"; + tag = "icon-plant-25" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/simulated/floor/plasteel, +/area/hallway/primary/central/se) "jcy" = ( /obj/structure/table/reinforced, /obj/item/folder/red, @@ -28886,6 +28895,7 @@ /area/security/prison/cell_block/A) "kVY" = ( /obj/effect/decal/snow/sand/edge, +/obj/machinery/station_map/directional/south, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -33248,6 +33258,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkblue" @@ -42463,6 +42474,12 @@ /obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, /area/crew_quarters/kitchen) +"qji" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "neutralfull" + }, +/area/crew_quarters/sleep) "qjm" = ( /obj/effect/baseturf_helper/asteroid, /turf/simulated/floor/plasteel{ @@ -47144,9 +47161,7 @@ }, /area/bridge/meeting_room) "rQn" = ( -/obj/machinery/computer/guestpass{ - pixel_y = 28 - }, +/obj/machinery/station_map/engineering/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "yellow" @@ -54778,6 +54793,7 @@ /area/bridge/vip) "uOT" = ( /obj/effect/landmark/tiles/damageturf, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -56244,6 +56260,9 @@ pixel_x = -22; pixel_y = 24 }, +/obj/machinery/light{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/quartermaster/office) "vpW" = ( @@ -57421,6 +57440,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -58875,6 +58895,15 @@ }, /turf/simulated/floor/plating, /area/maintenance/garden) +"wkD" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, +/obj/vehicle/ridden/snowmobile/key, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 26 + }, +/turf/simulated/floor/plasteel, +/area/security/lobby) "wkH" = ( /obj/structure/closet/crate/engineering, /obj/item/stack/sheet/metal{ @@ -60745,6 +60774,10 @@ "wUJ" = ( /turf/simulated/wall/rust, /area/maintenance/fsmaint2) +"wUN" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/wood/fancy/birch, +/area/bridge/checkpoint/south) "wUX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/landmark/start/scientist, @@ -62954,10 +62987,7 @@ /area/coldcolony/ruin/sm_chamber) "xJS" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -103247,7 +103277,7 @@ pzy oQY oQY oQY -xqL +qji wku mzF iNa @@ -107215,7 +107245,7 @@ eYu mNa rwj wvl -eYu +jcb twC pLS wja @@ -117140,7 +117170,7 @@ nmQ xTS rVT rEA -xJj +wkD bWt rSb rSb @@ -124137,7 +124167,7 @@ rSb rSb rSb mYX -mKl +wUN oPk gvW tcx diff --git a/_maps/map_files/event/Station/delta_old.dmm b/_maps/map_files/event/Station/delta_old.dmm index 5981bbb8556..3e47c7a2aaf 100644 --- a/_maps/map_files/event/Station/delta_old.dmm +++ b/_maps/map_files/event/Station/delta_old.dmm @@ -106616,6 +106616,10 @@ }, /turf/simulated/floor/plating, /area/bridge/meeting_room) +"vIK" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/shuttle, +/area/shuttle/arrival/station) "vJn" = ( /turf/simulated/floor/plasteel{ dir = 4; @@ -153482,7 +153486,7 @@ aaa awU aMt aMt -aRN +vIK aRN ayi nlE diff --git a/_maps/map_files/event/Station/towerstation.dmm b/_maps/map_files/event/Station/towerstation.dmm index c737bee27ea..6ffc5f5192d 100644 --- a/_maps/map_files/event/Station/towerstation.dmm +++ b/_maps/map_files/event/Station/towerstation.dmm @@ -2051,6 +2051,10 @@ }, /turf/simulated/floor/plasteel, /area/crew_quarters/bar/atrium) +"bnN" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/hallway/primary/starboard) "boT" = ( /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) @@ -2880,6 +2884,10 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/lawoffice) +"bRT" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/hallway/secondary/exit) "bSd" = ( /obj/effect/landmark/start/doctor, /turf/simulated/floor/plasteel{ @@ -7164,6 +7172,10 @@ icon_state = "whiteblue" }, /area/medical/medbay) +"eOW" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/medical/medbay) "ePS" = ( /obj/effect/turf_decal/delivery, /obj/structure/window/reinforced{ @@ -7519,6 +7531,16 @@ }, /turf/simulated/floor/plasteel/dark, /area/hallway/primary/central) +"fbw" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/hallway/primary/aft) "fbE" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -11036,6 +11058,11 @@ }, /turf/simulated/floor/engine/vacuum, /area/atmos) +"hfO" = ( +/obj/machinery/camera/autoname, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/crew_quarters/dorms) "hgz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -13526,6 +13553,10 @@ /obj/structure/cable, /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) +"iJe" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/crew_quarters/bar/atrium) "iJx" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/delivery, @@ -19109,6 +19140,10 @@ }, /turf/simulated/floor/plating/airless, /area/toxins/test_area) +"mmO" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/medical/research) "mmX" = ( /obj/machinery/door/airlock/atmos{ name = "Atmospherics Access"; @@ -20350,6 +20385,13 @@ icon_state = "whiteblue" }, /area/medical/sleeper) +"ncm" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel/dark, +/area/hallway/secondary/entry) "ncD" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp, @@ -28241,6 +28283,10 @@ }, /turf/simulated/floor/plasteel, /area/security/main) +"skG" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/engineering/break_room) "sla" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -34849,6 +34895,10 @@ }, /turf/simulated/floor/plasteel, /area/medical/medbay) +"wrc" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel, +/area/hallway/primary/central) "wri" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -69755,7 +69805,7 @@ wBh bap mKS alT -ifb +fbw oxq oNw mBm @@ -132721,7 +132771,7 @@ oNy oNy oNy xOC -guh +ncm jnG fvr xOC @@ -200570,7 +200620,7 @@ mma mma mma jXL -uJh +iJe uJh uJh jXL @@ -266106,7 +266156,7 @@ oQA oQA oQA gWA -sEB +hfO rUg rUg gWA @@ -333698,7 +333748,7 @@ jar jar jar lNH -xgF +eOW xgF hQl lNH @@ -399234,7 +399284,7 @@ iZj iZj iZj ptv -fKq +mmO fKq gAH ptv @@ -464770,7 +464820,7 @@ oVX oVX oVX riC -tbt +skG tbt jjQ riC @@ -530306,7 +530356,7 @@ iHe iHe iHe sYJ -sUW +bnN sUW sIR sYJ @@ -595842,7 +595892,7 @@ uJV uJV uJV pIt -mBa +wrc mBa pLN pIt @@ -661378,7 +661428,7 @@ pZj pZj pZj nKk -azd +bRT azd tCb nKk diff --git a/_maps/map_files/nova/nova.dmm b/_maps/map_files/nova/nova.dmm index 7ce967f4285..6a803c2b465 100644 --- a/_maps/map_files/nova/nova.dmm +++ b/_maps/map_files/nova/nova.dmm @@ -1801,6 +1801,13 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/asmaint2) +"ano" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/hallway/primary/central/second/east) "anp" = ( /obj/structure/cable{ d1 = 4; @@ -6158,7 +6165,7 @@ }, /area/crew_quarters/fitness) "aTa" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -12123,6 +12130,12 @@ /obj/machinery/light/small, /turf/simulated/floor/plating, /area/maintenance/asmaint3) +"bKo" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "yellowcorner" + }, +/area/hallway/primary/starboard) "bKt" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ @@ -18065,6 +18078,14 @@ /obj/effect/spawner/random_spawners/rodent, /turf/simulated/floor/plating, /area/maintenance/fpmaint) +"cCT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutral" + }, +/area/crew_quarters/serviceyard) "cDa" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -32432,9 +32453,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel/dark, /area/maintenance/starboardaux) "eHZ" = ( @@ -32529,6 +32548,14 @@ icon_state = "neutralfull" }, /area/crew_quarters/serviceyard) +"eII" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTH)" + }, +/area/medical/research) "eIM" = ( /obj/structure/cable{ icon_state = "0-2" @@ -41934,6 +41961,7 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "green" @@ -44734,6 +44762,13 @@ /obj/structure/flora/ausbushes/hell, /turf/simulated/floor/grass, /area/hydroponics) +"gvD" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/hallway/primary/central/second/south) "gvF" = ( /obj/structure/cable{ icon_state = "1-2" @@ -45431,6 +45466,13 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/fsmaint3) +"gCv" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "red" + }, +/area/hallway/primary/central/second/west) "gCw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -46355,6 +46397,13 @@ icon_state = "tranquillite" }, /area/crew_quarters/kitchen) +"gIP" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/central/sw) "gIS" = ( /obj/structure/chair/comfy/red, /obj/effect/turf_decal/siding/wood{ @@ -49282,9 +49331,6 @@ /turf/simulated/floor/plating, /area/maintenance/apmaint) "hfq" = ( -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/camera{ @@ -58766,6 +58812,7 @@ /turf/simulated/floor/plating, /area/maintenance/xenozoo) "iBD" = ( +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "darkred" @@ -59393,11 +59440,6 @@ }, /area/atmos) "iHr" = ( -/obj/item/radio/intercom{ - dir = 1; - name = "Station Intercom (General)"; - pixel_y = -29 - }, /obj/effect/decal/warning_stripes/south, /obj/machinery/light, /obj/effect/decal/warning_stripes/north, @@ -60848,6 +60890,13 @@ }, /turf/simulated/floor/plating, /area/teleporter/abandoned) +"iUC" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/hallway/primary/central/second/east) "iUG" = ( /obj/effect/spawner/window/reinforced/polarized{ id = "qm" @@ -61690,6 +61739,13 @@ icon_state = "neutral" }, /area/hallway/primary/central/sw) +"jaZ" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "red" + }, +/area/security/processing) "jbe" = ( /obj/machinery/door/poddoor/preopen{ id_tag = "BridgeLockdown"; @@ -70616,6 +70672,7 @@ pixel_y = -10; pixel_x = -6 }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -73269,6 +73326,9 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/security/permabrig) +"kNF" = ( +/turf/simulated/wall/r_wall, +/area/hallway/primary/central/second/north) "kNH" = ( /obj/effect/decal/novastation{ icon_state = "NStation5" @@ -73842,6 +73902,17 @@ "kRZ" = ( /turf/simulated/wall/r_wall, /area/engineering/engine/monitor) +"kSh" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/obj/effect/turf_decal/number/number_1{ + dir = 1; + pixel_y = -15 + }, +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel/dark, +/area/maintenance/starboardaux) "kSp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -75604,6 +75675,10 @@ dir = 8 }, /obj/machinery/vending/cigarette, +/obj/machinery/alarm{ + dir = 8; + pixel_x = 24 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -81131,6 +81206,7 @@ }, /area/security/range) "lYk" = ( +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" @@ -85875,6 +85951,7 @@ /obj/effect/turf_decal/arrows/white{ dir = 4 }, +/obj/machinery/station_map/engineering/directional/north, /turf/simulated/floor/plasteel/dark, /area/engineering/controlroom) "mJo" = ( @@ -88775,6 +88852,14 @@ icon_state = "dark" }, /area/crew_quarters/fitness) +"ncd" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/sleeper) "ncg" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Reception"; @@ -103092,6 +103177,15 @@ icon_state = "whiteblue" }, /area/medical/medbay) +"phW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + dir = 1 + }, +/area/hallway/secondary/exit) "pia" = ( /obj/item/beach_ball/holoball, /obj/effect/decal/cleanable/dirt, @@ -104779,6 +104873,7 @@ c_tag = "Briefing Room North"; network = list("SS13","Security") }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "red" @@ -106642,6 +106737,13 @@ icon_state = "white" }, /area/medical/cmo) +"pIu" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/crew_quarters/serviceyard) "pIv" = ( /turf/simulated/floor/plasteel{ dir = 4; @@ -108840,6 +108942,13 @@ icon_state = "neutralfull" }, /area/bridge/checkpoint/north) +"pXU" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/crew_quarters/locker) "pXY" = ( /turf/simulated/floor/wood/dark, /area/crew_quarters/bar) @@ -109674,6 +109783,14 @@ }, /turf/simulated/floor/wood, /area/security/detectives_office) +"qdL" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/medical/research/nhallway) "qel" = ( /turf/simulated/floor/wood, /area/library) @@ -110010,6 +110127,12 @@ }, /turf/simulated/floor/plasteel, /area/storage/eva) +"qgA" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + icon_state = "red" + }, +/area/security/lobby) "qgB" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery/red, @@ -111518,6 +111641,13 @@ icon_state = "darkgreenfull" }, /area/crew_quarters/fitness) +"qtx" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "arrival" + }, +/area/hallway/secondary/entry) "qtz" = ( /obj/machinery/atmospherics/binary/pump/on{ desc = "Отправляет дыхательную смесь из трубы распространяться по станции через вентиляции"; @@ -113994,6 +114124,16 @@ /obj/structure/mecha_wreckage/durand, /turf/simulated/floor/mech_bay_recharge_floor, /area/maintenance/secpost) +"qLZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkbluealt" + }, +/area/hallway/primary/command/west) "qMc" = ( /obj/machinery/door/airlock/public/glass, /obj/machinery/door/firedoor, @@ -114045,6 +114185,13 @@ icon_state = "whitehall" }, /area/toxins/xenobiology) +"qMz" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "purple" + }, +/area/hallway/primary/central/ne) "qMA" = ( /obj/structure/cable{ icon_state = "1-8" @@ -116766,6 +116913,7 @@ pixel_y = -10; pixel_x = 6 }, +/obj/machinery/station_map/directional/south, /turf/simulated/floor/plasteel{ icon_state = "blue" }, @@ -119812,6 +119960,13 @@ icon_state = "yellowcorner" }, /area/hallway/primary/starboard) +"rDU" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkbluealt" + }, +/area/hallway/primary/command/east) "rDX" = ( /obj/structure/computerframe, /turf/simulated/floor/plasteel{ @@ -120203,6 +120358,7 @@ c_tag = "Rec Room Second Floor South"; dir = 8 }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -126457,6 +126613,13 @@ /obj/item/pen, /turf/simulated/floor/carpet, /area/library) +"sAE" = ( +/obj/machinery/station_map/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/hallway/primary/central/south) "sAJ" = ( /obj/effect/decal/warning_stripes/east, /obj/structure/disposalpipe/segment, @@ -136333,10 +136496,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/item/radio/intercom{ - pixel_x = -32; - pixel_y = -10 - }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ icon_state = "blue"; dir = 8 @@ -138592,9 +138752,7 @@ }, /area/engineering/engine) "ujr" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, +/obj/machinery/station_map/directional/north, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "blue" @@ -138875,6 +139033,13 @@ tag = "icon-redfull (NORTHWEST)" }, /area/security/seceqstorage) +"umj" = ( +/obj/machinery/station_map/directional/east, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "purple" + }, +/area/hallway/primary/fore) "ump" = ( /obj/structure/window/reinforced{ dir = 4 @@ -144032,13 +144197,11 @@ /area/engineering/mechanic_workshop/hangar) "vat" = ( /obj/structure/disposalpipe/segment, -/obj/item/radio/intercom{ - pixel_x = -28 - }, /obj/effect/turf_decal{ dir = 8; icon_state = "golden_stripes" }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -144150,6 +144313,13 @@ icon_state = "arrival" }, /area/hallway/secondary/entry) +"vbw" = ( +/obj/machinery/station_map/engineering/directional/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/engineering/break_room) "vbx" = ( /obj/effect/decal/warning_stripes/northwest, /turf/simulated/floor/plasteel{ @@ -146501,6 +146671,13 @@ "vvd" = ( /turf/simulated/wall/r_wall, /area/security/medbay) +"vvg" = ( +/obj/machinery/station_map/directional/south, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/crew_quarters/serviceyard) "vvh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -146731,6 +146908,13 @@ }, /turf/simulated/floor/plating, /area/maintenance/asmaint6) +"vwP" = ( +/obj/machinery/station_map/directional/west, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutral" + }, +/area/hallway/primary/central/east) "vwU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -150915,10 +151099,7 @@ /turf/simulated/floor/carpet/green, /area/library/game_zone) "wdn" = ( -/obj/machinery/alarm{ - dir = 4; - pixel_x = -24 - }, +/obj/machinery/station_map/directional/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" @@ -152708,6 +152889,9 @@ "wqd" = ( /obj/machinery/vending/cola, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/alarm{ + pixel_y = 25 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "yellow" @@ -160183,6 +160367,14 @@ icon_state = "darkred" }, /area/security/securearmory) +"xwv" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "blue" + }, +/area/hallway/primary/central/north) "xwA" = ( /obj/effect/decal/warning_stripes/west, /obj/item/storage/box/handcuffs{ @@ -162393,6 +162585,7 @@ /obj/structure/cable/multiz{ color = "#dd1010" }, +/obj/machinery/station_map/directional/south, /turf/simulated/floor/plasteel{ icon_state = "darkbluealt" }, @@ -163582,6 +163775,7 @@ codes_txt = "patrol;next_patrol=A13"; location = "A12" }, +/obj/machinery/station_map/directional/east, /turf/simulated/floor/plasteel, /area/hallway/secondary/entry/commercial) "xUQ" = ( @@ -189033,7 +189227,7 @@ cLB dAF pAQ pAQ -pAQ +gIP aPz aFM gOM @@ -191573,7 +191767,7 @@ wtk buZ ujr nMR -fZf +xwv iZj tkq tkq @@ -193349,7 +193543,7 @@ pIU ktw ktw hiA -mUb +ncd gPo mUb hiA @@ -195636,7 +195830,7 @@ qhK qhK qhK gRG -ndp +qtx jpO rOV rOV @@ -195993,7 +196187,7 @@ trv tFs gTu wuT -trv +pIu qax trv eIG @@ -197078,7 +197272,7 @@ gOD rEb vLY rAv -sLX +phW jfI eIe rSe @@ -197459,7 +197653,7 @@ yjx yjx vPS fnb -vPS +umj dcU tQT cQX @@ -197554,7 +197748,7 @@ mQB fuX fuX fCh -fuX +cCT dKf fuX gWk @@ -198027,7 +198221,7 @@ tkq tkq tkq dTS -hOz +sAE tlq iBU aHe @@ -200284,7 +200478,7 @@ ozY aTF sWV oBy -oBy +qdL btg oBy dPO @@ -203202,7 +203396,7 @@ pvC vhN xiM lKe -gDr +pXU bNw bNw bNw @@ -204938,7 +205132,7 @@ obz hgS oQW xZx -uiv +qMz sVx uiv uiv @@ -204965,7 +205159,7 @@ gkC gkC gkC ofu -gkC +vwP fEk eBs oSR @@ -205436,7 +205630,7 @@ ldn adj xls ofz -yed +eII uRC lfG wcH @@ -210607,7 +210801,7 @@ wEQ dVE iIz bib -rDT +bKo fsD eIe eIe @@ -213427,7 +213621,7 @@ glz vKy dQc kRZ -dle +vbw gvG cYL txc @@ -250955,7 +251149,7 @@ gmn bGl yal dlD -uZW +jaZ pTl meh aor @@ -255060,7 +255254,7 @@ cGn rWc ber ber -ber +gCv lnx xKW ber @@ -257144,7 +257338,7 @@ arE lFo ivW ugJ -pvk +qgA bXo aeK xyr @@ -257593,7 +257787,7 @@ lQO pYg ozQ ozQ -jHf +qLZ gdL gUm phJ @@ -262017,7 +262211,7 @@ jdY huc iHr gJw -kLy +gvD jRJ nll nto @@ -262766,7 +262960,7 @@ epy epy ltz xMZ -ots +kNF kdb eGq oAW @@ -263578,7 +263772,7 @@ wHT mHW gdl axQ -qki +vvg aJc gVY gVY @@ -267873,7 +268067,7 @@ pTU pTU pTU pTU -jtl +rDU eeN cUU lcY @@ -270216,7 +270410,7 @@ pTU nOX iiT pTU -ajv +ano wbv ith uMt @@ -271017,7 +271211,7 @@ dMD dMD dMD dMD -dMD +iUC dMD rCn xfV @@ -289011,7 +289205,7 @@ irM ylG irM irM -raq +kSh xhu ufU wIl diff --git a/code/__DEFINES/holomaps.dm b/code/__DEFINES/holomaps.dm new file mode 100644 index 00000000000..ff0a8fee5cc --- /dev/null +++ b/code/__DEFINES/holomaps.dm @@ -0,0 +1,44 @@ +// Constants and standard colors for the holomap + +/// Icon file to start with when drawing holomaps (to get a 480x480 canvas). +#define HOLOMAP_ICON 'icons/misc/480x480.dmi' +/// Pixel width & height of the holomap icon. Used for auto-centering etc. +#define HOLOMAP_ICON_SIZE 480 +#define ui_holomap "CENTER-7,CENTER-7" // Screen location of the holomap "hud" + +#define HOLOMAP_EXTRA_STATIONMAP "stationmapformatted" +#define HOLOMAP_EXTRA_STATIONMAPAREAS "stationareas" +#define HOLOMAP_EXTRA_STATIONMAPSMALL "stationmapsmall" + +// Holomap colors +#define HOLOMAP_OBSTACLE "#FFFFFFDD" // Color of walls and barriers +#define HOLOMAP_SOFT_OBSTACLE "#ffffff54" // Color of weak, climbable, or see-through barriers that aren't fulltile windows. +#define HOLOMAP_PATH "#66666699" // Color of floors +#define HOLOMAP_ROCK "#66666644" // Color of mineral walls +#define HOLOMAP_HOLOFIER "#0096bb" // Whole map is multiplied by this to give it a green holoish look + +#define HOLOMAP_AREACOLOR_SHIELD_1 rgb(0, 119, 255, 64) +#define HOLOMAP_AREACOLOR_SHIELD_2 rgb(0, 255, 255, 64) + +#define HOLOMAP_AREACOLOR_COMMAND "#3434d499" +#define HOLOMAP_AREACOLOR_SECURITY "#AE121299" +#define HOLOMAP_AREACOLOR_MEDICAL "#447bc299" +#define HOLOMAP_AREACOLOR_SCIENCE "#A154A699" +#define HOLOMAP_AREACOLOR_ENGINEERING "#F1C23199" +#define HOLOMAP_AREACOLOR_CARGO "#e06f0099" +#define HOLOMAP_AREACOLOR_HALLWAYS "#b9b9b999" +#define HOLOMAP_AREACOLOR_MAINTENANCE "#5e5e5e99" +#define HOLOMAP_AREACOLOR_ARRIVALS "#6464ff99" +#define HOLOMAP_AREACOLOR_ESCAPE "#ff585899" +#define HOLOMAP_AREACOLOR_DORMS "#bfff8399" +#define HOLOMAP_AREACOLOR_SERVICE "#3ab33699" +#define HOLOMAP_AREACOLOR_HANGAR "#2681a599" +//#define HOLOMAP_AREACOLOR_MUNITION "#CC889999" + +#define HOLOMAP_LEGEND_X 64 +#define HOLOMAP_LEGEND_Y 96 + +#define HOLOMAP_LEGEND_WIDTH 64 + +#define HOLOMAP_CENTER_X round((HOLOMAP_ICON_SIZE - world.maxx) / 2) +#define HOLOMAP_CENTER_Y round((HOLOMAP_ICON_SIZE - world.maxy) / 2) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 2e06c7645f1..c36af3f007c 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -89,7 +89,7 @@ #define INIT_ORDER_DEFAULT 0 #define INIT_ORDER_AIR -1 #define INIT_ORDER_SUN -2 -#define INIT_ORDER_MINIMAP -3 +#define INIT_ORDER_HOLOMAP -3 #define INIT_ORDER_ASSETS -4 #define INIT_ORDER_ICON_SMOOTHING -5 #define INIT_ORDER_OVERLAY -6 diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index cb221f1cc21..8ae82400445 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -44,6 +44,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_CHASM_STOPPED "chasm_stopped" ///Lava will be safe to cross while it has this trait. #define TRAIT_LAVA_STOPPED "lava_stopped" +/// If a trait is considered as having "coverage" by a meteor shield. +#define TRAIT_COVERED_BY_METEOR_SHIELD "covered_by_meteor_shield" //mob traits #define TRAIT_GODMODE "godmode" @@ -297,3 +299,4 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_BLOB_ZOMBIFIED "blob_zombified" #define TRAIT_BEING_OFFERED "offered" + diff --git a/code/_globalvars/lists/holomaps.dm b/code/_globalvars/lists/holomaps.dm new file mode 100644 index 00000000000..995f1e0e804 --- /dev/null +++ b/code/_globalvars/lists/holomaps.dm @@ -0,0 +1,21 @@ +/// A list of fire alarms on the station, separated by Z. Used cause there are a lot of fire alarms on any given station Z. +GLOBAL_LIST_EMPTY(station_fire_alarms) + +GLOBAL_LIST_EMPTY(holomap_default_legend) + +/// Used in generating area preview icons. +GLOBAL_LIST_INIT(holomap_color_to_name, list( + HOLOMAP_AREACOLOR_COMMAND = "Command", + HOLOMAP_AREACOLOR_SECURITY = "Security", + HOLOMAP_AREACOLOR_MEDICAL = "Medical", + HOLOMAP_AREACOLOR_SCIENCE = "Science", + HOLOMAP_AREACOLOR_ENGINEERING = "Engineering", + HOLOMAP_AREACOLOR_CARGO = "Cargo", + HOLOMAP_AREACOLOR_HALLWAYS = "Hallways", + HOLOMAP_AREACOLOR_MAINTENANCE = "Maintenance", + HOLOMAP_AREACOLOR_ARRIVALS = "Arrivals", + HOLOMAP_AREACOLOR_ESCAPE = "Departures", + HOLOMAP_AREACOLOR_DORMS = "Recreation", + HOLOMAP_AREACOLOR_SERVICE = "Service", + HOLOMAP_AREACOLOR_HANGAR = "Hangar", +)) diff --git a/code/controllers/subsystem/holomap.dm b/code/controllers/subsystem/holomap.dm new file mode 100644 index 00000000000..fbea714bb13 --- /dev/null +++ b/code/controllers/subsystem/holomap.dm @@ -0,0 +1,192 @@ +/// Turfs that will be colored as HOLOMAP_ROCK +#define IS_ROCK(tile) (istype(tile, /turf/simulated/mineral) && tile.density) +/// Turfs that will be colored as HOLOMAP_OBSTACLE +#define IS_OBSTACLE(tile) (istype(tile, /turf/simulated/wall) || (locate(/obj/structure/window) in tile)) +/// Turfs that will be colored as HOLOMAP_SOFT_OBSTACLE +#define IS_SOFT_OBSTACLE(tile) ((locate(/obj/structure/grille) in tile) || (locate(/obj/structure/lattice) in tile)) +/// Turfs that will be colored as HOLOMAP_PATH +#define IS_PATH(tile) istype(tile, /turf/simulated/floor) +/// Turfs that contain a Z transition, like ladders and stairs. They show with special animations on the map. +#define HAS_Z_TRANSITION(tile) ((locate(/obj/structure/ladder) in tile) || (locate(/obj/structure/stairs) in tile)) + +// Holo-Minimaps Generation Subsystem handles initialization of the holo minimaps. + +SUBSYSTEM_DEF(holomaps) + name = "Holomaps" + init_order = INIT_ORDER_HOLOMAP + flags = SS_NO_FIRE + + var/static/list/valid_map_indexes = list() + var/static/list/holomaps = list() + var/static/list/extra_holomaps = list() + var/static/list/station_holomaps = list() + var/static/list/holomap_z_transitions = list() + var/static/list/list/holomap_position_to_name = list() + +/datum/controller/subsystem/holomaps/Recover() + flags |= SS_NO_INIT // Make extra sure we don't initialize twice. + +/datum/controller/subsystem/holomaps/Initialize(timeofday) + if (generate_holomaps()) + return SS_INIT_SUCCESS + return SS_INIT_FAILURE + +// Holomap generation. + +/// Generates all the holo minimaps, initializing it all nicely, probably. +/datum/controller/subsystem/holomaps/proc/generate_holomaps() + . = TRUE + // Starting over if we're running midround (it runs real fast, so that's possible) + holomaps.Cut() + extra_holomaps.Cut() + for(var/z in levels_by_trait(STATION_LEVEL)) + if(!generate_holomap(z)) + . = FALSE + + if(!generate_default_holomap_legend()) + . = FALSE + + return . + +/datum/controller/subsystem/holomaps/proc/generate_default_holomap_legend() + for(var/department_color in GLOB.holomap_color_to_name) + var/image/marker_icon = image('icons/misc/8x8.dmi', "area_legend") + var/icon/marker_color_overlay = icon('icons/misc/8x8.dmi', "area_legend") + marker_color_overlay.DrawBox(department_color, 1, 1, 8, 8) // Get the whole icon + marker_icon.add_overlay(marker_color_overlay) + GLOB.holomap_default_legend[GLOB.holomap_color_to_name[department_color]] = list( + "icon" = marker_icon, + "markers" = list(), + ) + + return TRUE + +/// Generates the base holomap and the area holomap, before passing the latter to setup_station_map to tidy it up for viewing. +/datum/controller/subsystem/holomaps/proc/generate_holomap(var/z_level = 1) + // Sanity checks - Better to generate a helpful error message now than have DrawBox() runtime + var/icon/canvas = icon(HOLOMAP_ICON, "blank") + var/icon/area_canvas = icon(HOLOMAP_ICON, "blank") + LAZYINITLIST(SSholomaps.holomap_z_transitions["[z_level]"]) + var/list/z_transition_positions = SSholomaps.holomap_z_transitions["[z_level]"] + + var/list/position_to_name = list() + if(world.maxx > canvas.Width()) + stack_trace("Minimap for z=[z_level] : world.maxx ([world.maxx]) must be <= [canvas.Width()]") + if(world.maxy > canvas.Height()) + stack_trace("Minimap for z=[z_level] : world.maxy ([world.maxy]) must be <= [canvas.Height()]") + + for(var/x = 1 to world.maxx) + for(var/y = 1 to world.maxy) + var/turf/T = locate(x, y, z_level) + var/offset_x = HOLOMAP_CENTER_X + x + var/offset_y = HOLOMAP_CENTER_Y + y + var/area/turf_area = get_area(T) + + if(!T || !turf_area.holomap_should_draw) + continue + + if(turf_area.holomap_color) + area_canvas.DrawBox(turf_area.holomap_color, offset_x, offset_y) + position_to_name["[offset_x]:[offset_y]"] = turf_area.holomap_color == HOLOMAP_AREACOLOR_MAINTENANCE ? "Maintenance" : turf_area.name + + if(IS_ROCK(T)) + canvas.DrawBox(HOLOMAP_ROCK, offset_x, offset_y) + + else if(IS_OBSTACLE(T)) + canvas.DrawBox(HOLOMAP_OBSTACLE, offset_x, offset_y) + + else if(IS_SOFT_OBSTACLE(T)) + canvas.DrawBox(HOLOMAP_SOFT_OBSTACLE, offset_x, offset_y) + + else if(IS_PATH(T)) + canvas.DrawBox(HOLOMAP_PATH, offset_x, offset_y) + + var/z_transition_obj = HAS_Z_TRANSITION(T) + if(!z_transition_obj) + continue + + var/image/image_to_use + + if(istype(z_transition_obj, /obj/structure/stairs)) + if(!z_transition_positions["Stairs Up"]) + z_transition_positions["Stairs Up"] = list("icon" = image('icons/misc/8x8.dmi', "stairs"), "markers" = list()) + + image_to_use = image('icons/misc/8x8.dmi', "stairs") + image_to_use.pixel_x = offset_x + image_to_use.pixel_y = offset_y + + z_transition_positions["Stairs Up"]["markers"] += image_to_use + + var/turf/checking = get_step_multiz(get_turf(z_transition_obj), UP) + if(!istype(checking)) + continue + + var/list/transitions = SSholomaps.holomap_z_transitions["[checking.z]"] + if(!transitions) + transitions = list() + SSholomaps.holomap_z_transitions["[checking.z]"] = transitions + + image_to_use = image('icons/misc/8x8.dmi', "stairs_down") + image_to_use.pixel_x = checking.x + HOLOMAP_CENTER_X + image_to_use.pixel_y = checking.y + HOLOMAP_CENTER_Y + + if(!transitions["Stairs Down"]) + transitions["Stairs Down"] = list("icon" = image('icons/misc/8x8.dmi', "stairs_down"), "markers" = list()) + + transitions["Stairs Down"]["markers"] += image_to_use + continue + + if(!z_transition_positions["Ladders"]) + z_transition_positions["Ladders"] = list("icon" = image('icons/misc/8x8.dmi', "ladder"), "markers" = list()) + + image_to_use = image('icons/misc/8x8.dmi', "ladder") + image_to_use.pixel_x = offset_x + image_to_use.pixel_y = offset_y + + z_transition_positions["Ladders"]["markers"] += image_to_use + + // Check sleeping after each row to avoid *completely* destroying the server + CHECK_TICK + + valid_map_indexes += z_level + holomaps["[z_level]"] = canvas + holomap_position_to_name["[z_level]"] = position_to_name + return setup_station_map(area_canvas, z_level) + + +/// Draws the station area overlay. Required to be run if you want the map to be viewable on a station map viewer. +/// Takes the area canvas, and the Z-level value. +/datum/controller/subsystem/holomaps/proc/setup_station_map(icon/canvas, z_level) + // Save this nice area-colored canvas in case we want to layer it or something I guess + extra_holomaps["[HOLOMAP_EXTRA_STATIONMAPAREAS]_[z_level]"] = canvas + + var/icon/map_base = icon(holomaps["[z_level]"]) + map_base.Blend(HOLOMAP_HOLOFIER, ICON_MULTIPLY) + + // Generate the full sized map by blending the base and areas onto the backdrop + var/icon/big_map = icon(HOLOMAP_ICON, "stationmap") + big_map.Blend(map_base, ICON_OVERLAY) + big_map.Blend(canvas, ICON_OVERLAY) + extra_holomaps["[HOLOMAP_EXTRA_STATIONMAP]_[z_level]"] = big_map + + // Generate the "small" map (I presume for putting on wall map things?) + var/icon/small_map = icon(HOLOMAP_ICON, "blank") + small_map.Blend(map_base, ICON_OVERLAY) + small_map.Blend(canvas, ICON_OVERLAY) + small_map.Scale(40, 40) + small_map.Crop(5, 5, 36, 36) + + // And rotate it in every direction of course! + var/icon/actual_small_map = icon(small_map) + actual_small_map.Insert(new_icon = small_map, dir = NORTH) + actual_small_map.Insert(new_icon = turn(small_map, 90), dir = EAST) + actual_small_map.Insert(new_icon = turn(small_map, 180), dir = SOUTH) + actual_small_map.Insert(new_icon = turn(small_map, 270), dir = WEST) + extra_holomaps["[HOLOMAP_EXTRA_STATIONMAPSMALL]_[z_level]"] = actual_small_map + return TRUE + +#undef IS_ROCK +#undef IS_OBSTACLE +#undef IS_SOFT_OBSTACLE +#undef IS_PATH +#undef HAS_Z_TRANSITION diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 306481baf3d..28db7c5e111 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -97,6 +97,11 @@ var/area_flags = BLOBS_ALLOWED + /// Color of this area on holomaps. + var/holomap_color = null + /// Whether the turfs in the area should be drawn onto the "base" holomap. + var/holomap_should_draw = TRUE + /area/New(loc, ...) // This interacts with the map loader, so it needs to be set immediately // rather than waiting for atoms to initialize. diff --git a/code/game/area/areas/depot-areas.dm b/code/game/area/areas/depot-areas.dm index 40ee49953ac..3c36771a6c0 100644 --- a/code/game/area/areas/depot-areas.dm +++ b/code/game/area/areas/depot-areas.dm @@ -4,6 +4,7 @@ icon_state = "dark" tele_proof = 1 area_flags = NONE + holomap_should_draw = FALSE /area/syndicate_depot/core icon_state = "red" diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 77a6ff31241..c3c0b2fb3a8 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -39,6 +39,7 @@ sound_environment = SOUND_AREA_ASTEROID min_ambience_cooldown = 70 SECONDS max_ambience_cooldown = 220 SECONDS + holomap_should_draw = FALSE /area/mine/unexplored/cere sound_environment = SOUND_AREA_ASTEROID @@ -146,6 +147,7 @@ min_ambience_cooldown = 70 SECONDS max_ambience_cooldown = 220 SECONDS area_flags = NONE + holomap_should_draw = FALSE /area/lavaland/underground name = "Lavaland Caves" diff --git a/code/game/area/areas/syndicate_base.dm b/code/game/area/areas/syndicate_base.dm index 2f910c3ee2d..9d3dd0d280c 100644 --- a/code/game/area/areas/syndicate_base.dm +++ b/code/game/area/areas/syndicate_base.dm @@ -1,5 +1,6 @@ /area/syndicate/unpowered has_gravity = STANDARD_GRAVITY + holomap_should_draw = FALSE /area/syndicate/unpowered/syndicate_space_base diff --git a/code/game/area/ss13_areas.dm b/code/game/area/ss13_areas.dm index 95f46988bc2..df796473cab 100644 --- a/code/game/area/ss13_areas.dm +++ b/code/game/area/ss13_areas.dm @@ -14,9 +14,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station Numbers in the order will be used to indicate the direction of the sector This applies to all STANDARD station areas -1 West-North 2 North 3 East-North -4 West 5 Central 6 East -7 West-South 9 South 10 East-South +1 West-North 2 North 3 East-North +4 West 5 Central 6 East +7 West-South 9 South 10 East-South */ /*-----------------------------------------------------------------------------*/ @@ -92,13 +92,13 @@ This applies to all STANDARD station areas has_gravity = STANDARD_GRAVITY static_lighting = TRUE sound_environment = SOUND_ENVIRONMENT_ROOM + holomap_should_draw = FALSE /area/shuttle/arrival name = "Arrival Shuttle" -/* -/area/shuttle/arrival/pre_game //dont have this, but at once... - icon_state = "shuttle2" -*/ + holomap_should_draw = TRUE + holomap_color = HOLOMAP_AREACOLOR_ARRIVALS + /area/shuttle/arrival/station icon_state = "shuttle" @@ -439,11 +439,11 @@ This applies to all STANDARD station areas base_lighting_alpha = 255 -/area/airtunnel1/ // referenced in airtunnel.dm:759 +/area/airtunnel1/ // referenced in airtunnel.dm:759 -/area/dummy/ // Referenced in engine.dm:261 +/area/dummy/ // Referenced in engine.dm:261 -/area/start // will be unused once kurper gets his login interface patch done +/area/start // will be unused once kurper gets his login interface patch done name = "start area" icon_state = "start" requires_power = FALSE @@ -820,6 +820,7 @@ This applies to all STANDARD station areas name = "Atmospherics" icon_state = "atmos" sound_environment = SOUND_AREA_LARGE_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/atmos/control name = "Atmospherics Control Room" @@ -839,6 +840,7 @@ This applies to all STANDARD station areas ambientsounds = MAINTENANCE_SOUNDS valid_territory = FALSE sound_environment = SOUND_AREA_TUNNEL_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/maintenance/ai name = "AI Maintenance" @@ -1138,6 +1140,7 @@ This applies to all STANDARD station areas /area/hallway valid_territory = FALSE //too many areas with similar/same names, also not very interesting summon spots sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/hallway/primary/fore name = "North Primary Hallway" @@ -1302,6 +1305,8 @@ This applies to all STANDARD station areas /area/hallway/secondary/entry name = "Arrivals Hallway" icon_state = "entry" + holomap_color = HOLOMAP_AREACOLOR_ARRIVALS + /area/hallway/secondary/entry/eastarrival name = "Arrival Shuttle East Hallway" @@ -1330,6 +1335,7 @@ This applies to all STANDARD station areas icon_state = "bridge" ambientsounds = list('sound/ambience/signal.ogg') sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/bridge/meeting_room name = "Heads of Staff Meeting Room" @@ -1339,6 +1345,7 @@ This applies to all STANDARD station areas /area/bridge/vip name = "VIP Area" icon_state = "meeting" + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/crew_quarters sound_environment = SOUND_AREA_SMALL_SOFTFLOOR @@ -1347,6 +1354,7 @@ This applies to all STANDARD station areas name = "Captain's Office" icon_state = "captain" sound_environment = SOUND_AREA_WOODFLOOR + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/crew_quarters/captain/bedroom name = "Captain's Bedroom" @@ -1359,42 +1367,52 @@ This applies to all STANDARD station areas /area/crew_quarters/heads/hop name = "Head of Personnel's Quarters" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/crew_quarters/heads/hor name = "Research Director's Quarters" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/crew_quarters/heads/chief name = "Chief Engineer's Quarters" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/crew_quarters/heads/hos name = "Head of Security's Quarters" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/crew_quarters/heads/cmo name = "Chief Medical Officer's Quarters" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_MEDICAL /area/crew_quarters/courtroom name = "Courtroom" icon_state = "courtroom" + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/crew_quarters/heads name = "Head of Personnel's Office" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/crew_quarters/hor name = "Research Director's Office" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/crew_quarters/hos name = "Head of Security's Office" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/crew_quarters/chief name = "Chief Engineer's Office" icon_state = "head_quarters" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/mint name = "Mint" @@ -1413,10 +1431,12 @@ This applies to all STANDARD station areas /area/ntrep name = "Nanotrasen Representative's Office" icon_state = "ntrep" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/blueshield name = "Blueshield's Office" icon_state = "blueshield" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/centcomdocks name = "Central Command Docks" @@ -1425,6 +1445,7 @@ This applies to all STANDARD station areas /area/bridge/checkpoint name = "Command Checkpoint" icon_state = "bridge" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/bridge/checkpoint/north name = "North Command Checkpoint" @@ -1439,6 +1460,7 @@ This applies to all STANDARD station areas name = "Dormitories" icon_state = "Sleep" sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_DORMS /area/crew_quarters/serviceyard name = "Service Yard" @@ -1475,6 +1497,7 @@ This applies to all STANDARD station areas name = "Arrivals Toilets" icon_state = "toilet" sound_environment = SOUND_AREA_SMALL_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_ARRIVALS /area/crew_quarters/sleep name = "Dormitories" @@ -1520,6 +1543,7 @@ This applies to all STANDARD station areas /area/crew_quarters/trading name = "Abandoned Tradiders Room" icon_state = "blue" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/crew_quarters/arcade name = "Arcade" @@ -1528,15 +1552,18 @@ This applies to all STANDARD station areas /area/crew_quarters/cafeteria name = "Cafeteria" icon_state = "cafeteria" + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/crew_quarters/kitchen name = "Kitchen" icon_state = "kitchen" + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/crew_quarters/bar name = "Bar" icon_state = "barstation" sound_environment = SOUND_AREA_WOODFLOOR + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/crew_quarters/bar/atrium name = "Atrium" @@ -1546,15 +1573,18 @@ This applies to all STANDARD station areas name = "Theatre" icon_state = "Theatre" sound_environment = SOUND_AREA_WOODFLOOR + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/crew_quarters/mrchangs name = "Mr Chang's" icon_state = "Theatre" + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/library name = "Library" icon_state = "library" sound_environment = SOUND_AREA_LARGE_SOFTFLOOR + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/library/game_zone name = "Library Games Room" @@ -1564,6 +1594,7 @@ This applies to all STANDARD station areas icon_state = "chapel" ambientsounds = HOLY_SOUNDS is_haunted = TRUE + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/chapel/main name = "Chapel" @@ -1581,30 +1612,38 @@ This applies to all STANDARD station areas /area/escapepodbay name = "Escape Shuttle Hallway Podbay" icon_state = "escape" + holomap_color = HOLOMAP_AREACOLOR_HANGAR /area/lawoffice name = "Law Office" icon_state = "law" sound_environment = SOUND_AREA_SMALL_SOFTFLOOR + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/magistrateoffice name = "Magistrate's Office" icon_state = "magistrate" sound_environment = SOUND_AREA_SMALL_SOFTFLOOR + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/clownoffice name = "Clown's Office" icon_state = "clown_office" sound_environment = SOUND_ENVIRONMENT_PADDED_CELL + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/clownoffice/secret name = "Top Secret Clown HQ" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/mimeoffice name = "Mime's Office" icon_state = "mime_office" + holomap_color = HOLOMAP_AREACOLOR_SERVICE // CIVILIAN +/area/civilian + holomap_color = HOLOMAP_AREACOLOR_DORMS /area/civilian/vacantoffice name = "Vacant Office" @@ -1622,12 +1661,17 @@ This applies to all STANDARD station areas name = "Pet Store" icon_state = "pet_store" +/area/civilian/vacantoffice2 + name = "Vacant Office" + icon_state = "security" + /area/holodeck name = "Holodeck" icon_state = "Holodeck" static_lighting = FALSE base_lighting_color = COLOR_WHITE base_lighting_alpha = 255 + holomap_color = HOLOMAP_AREACOLOR_DORMS /area/holodeck/alphadeck name = "Holodeck Alpha" @@ -1680,49 +1724,11 @@ This applies to all STANDARD station areas /area/holodeck/source_knightarena name = "Holodeck - Knight Arena" - -//Embassies -/area/embassy/ - name = "Embassy Hallway" - -/area/embassy/tajaran - name = "Tajaran Embassy" - icon_state = "tajaran" - -/area/embassy/skrell - name = "Skrell Embassy" - icon_state = "skrell" - -/area/embassy/unathi - name = "Unathi Embassy" - icon_state = "unathi" - -/area/embassy/kidan - name = "Kidan Embassy" - icon_state = "kidan" - -/area/embassy/diona - name = "Diona Embassy" - icon_state = "diona" - -/area/embassy/slime - name = "Slime Person Embassy" - icon_state = "slime" - -/area/embassy/grey - name = "Grey Embassy" - icon_state = "grey" - -/area/embassy/vox - name = "Vox Embassy" - icon_state = "vox" - - - //Engineering /area/engineering ambientsounds = ENGINEERING_SOUNDS sound_environment = SOUND_AREA_LARGE_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/engineering/engine/smes name = "Engineering SMES" @@ -1769,6 +1775,7 @@ This applies to all STANDARD station areas /area/engineering/mechanic_workshop name = "Mechanic Workshop" icon_state = "engine" + holomap_color = HOLOMAP_AREACOLOR_HANGAR /area/engineering/mechanic_workshop/expedition name = "Hangar Expedition" @@ -1830,30 +1837,40 @@ This applies to all STANDARD station areas /area/maintenance/auxsolarport name = "North-West Solar Maintenance" icon_state = "SolarcontrolA" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/maintenance/north_solars name = "North Solar Maintenance" icon_state = "SolarcontrolA" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/maintenance/starboardaux name = "East Solar Maintenance" icon_state = "SolarcontrolS" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/maintenance/starboardsolar name = "South-East Solar Maintenance" icon_state = "SolarcontrolS" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/maintenance/portsolar name = "South-West Solar Maintenance" icon_state = "SolarcontrolP" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/maintenance/auxsolarstarboard name = "North-East Solar Maintenance" icon_state = "SolarcontrolA" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/maintenance/west_solars name = "West Solar Maintenance" icon_state = "SolarcontrolA" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING + +/area/assembly + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/assembly/chargebay name = "Mech Bay" @@ -1880,14 +1897,19 @@ This applies to all STANDARD station areas name = "Teleporter" icon_state = "teleporter" ambientsounds = ENGINEERING_SOUNDS + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/teleporter/research name = "Robotics Teleporter" /area/teleporter/abandoned - name = "Abandoned Teleporter" - icon_state = "teleporter" - ambientsounds = ENGINEERING_SOUNDS + name = "Abandoned Teleporter" + icon_state = "teleporter" + ambientsounds = ENGINEERING_SOUNDS + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE + +/area/teleporter/quantum + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/teleporter/quantum/security name = "Security Quantum Pad" @@ -1917,20 +1939,14 @@ This applies to all STANDARD station areas name = "Gateway" icon_state = "teleporter" ambientsounds = ENGINEERING_SOUNDS + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/AIsattele name = "Unknown Teleporter" icon_state = "teleporter" ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/signal.ogg') area_flags = UNIQUE_AREA - -/area/toxins/explab - name = "E.X.P.E.R.I-MENTOR Lab" - icon_state = "toxmisc" - -/area/toxins/explab_chamber - name = "E.X.P.E.R.I-MENTOR Chamber" - icon_state = "toxmisc" + holomap_color = HOLOMAP_AREACOLOR_COMMAND //MedBay @@ -1939,6 +1955,7 @@ This applies to all STANDARD station areas sound_environment = SOUND_AREA_STANDARD_STATION min_ambience_cooldown = 90 SECONDS max_ambience_cooldown = 180 SECONDS + holomap_color = HOLOMAP_AREACOLOR_MEDICAL /area/medical/medbay name = "Medbay" @@ -2014,6 +2031,7 @@ This applies to all STANDARD station areas /area/medical/research name = "Research Division" icon_state = "research" + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/medical/research/nhallway name = "RnD North Hallway" @@ -2027,10 +2045,6 @@ This applies to all STANDARD station areas name = "RnD Restroom" icon_state = "research" -/area/medical/research_shuttle_dock - name = "Research Shuttle Dock" - icon_state = "medresearch" - /area/medical/virology name = "Virology" icon_state = "virology" @@ -2099,6 +2113,7 @@ This applies to all STANDARD station areas /area/security ambientsounds = HIGHSEC_SOUNDS sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/security/main name = "Security Office" @@ -2300,24 +2315,17 @@ This applies to all STANDARD station areas name = "Security Post - Science" icon_state = "checkpoint1" -/area/civilian/vacantoffice2 - name = "Vacant Office" - icon_state = "security" - /area/quartermaster name = "Quartermasters" icon_state = "quart" sound_environment = SOUND_AREA_STANDARD_STATION - -///////////WORK IN PROGRESS////////// + holomap_color = HOLOMAP_AREACOLOR_CARGO /area/quartermaster/sorting name = "Delivery Office" icon_state = "quartstorage" sound_environment = SOUND_AREA_STANDARD_STATION -////////////WORK IN PROGRESS////////// - /area/quartermaster/office name = "Cargo Office" icon_state = "quartoffice" @@ -2355,11 +2363,13 @@ This applies to all STANDARD station areas name = "Custodial Closet" icon_state = "janitor" sound_environment = SOUND_AREA_SMALL_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/hydroponics name = "Hydroponics" icon_state = "hydro" sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_SERVICE /area/maintenance/garden name = "Old Garden" @@ -2386,6 +2396,8 @@ This applies to all STANDARD station areas /area/toxins sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_SCIENCE + /area/toxins/lab name = "Research and Development" icon_state = "toxlab" @@ -2398,10 +2410,6 @@ This applies to all STANDARD station areas name = "Research Director's Office" icon_state = "head_quarters" -/area/toxins/supermatter - name = "Supermatter Lab" - icon_state = "toxlab" - /area/toxins/xenobiology name = "Xenobiology Lab" icon_state = "toxmix" @@ -2455,11 +2463,21 @@ This applies to all STANDARD station areas /area/toxins/sm_test_chamber name = "Supermatter Testing Lab" icon_state = "toxtest" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE + +/area/toxins/explab + name = "E.X.P.E.R.I-MENTOR Lab" + icon_state = "toxmisc" + +/area/toxins/explab_chamber + name = "E.X.P.E.R.I-MENTOR Chamber" + icon_state = "toxmisc" //Storage /area/storage sound_environment = SOUND_AREA_STANDARD_STATION + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/storage/tools name = "Auxiliary Tool Storage" @@ -2485,38 +2503,33 @@ This applies to all STANDARD station areas name = "EVA Storage" icon_state = "eva" ambientsounds = HIGHSEC_SOUNDS + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/storage/secure name = "Secure Storage" icon_state = "storage" ambientsounds = HIGHSEC_SOUNDS + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/storage/emergency name = "East Emergency Storage" icon_state = "emergencystorage" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/storage/emergency2 name = "West Emergency Storage" icon_state = "emergencystorage" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/storage/tech name = "Technical Storage" icon_state = "auxstorage" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/storage/office name = "Office Supplies" icon_state = "office_supplies" - -// ENGIE OUTPOST - -/area/engiestation - name = "Engineering Outpost" - icon_state = "construction" - has_gravity = STANDARD_GRAVITY - -/area/engiestation/solars - name = "Engineering Outpost Solars" - icon_state = "panelsP" + holomap_color = HOLOMAP_AREACOLOR_DORMS //DJSTATION @@ -2695,98 +2708,26 @@ This applies to all STANDARD station areas icon_state = "yellow" ambientsounds = ENGINEERING_SOUNDS sound_environment = SOUND_AREA_STANDARD_STATION - -/area/mining_construction - name = "Auxillary Base Construction" - icon_state = "yellow" - -/area/construction/supplyshuttle - name = "Supply Shuttle" - icon_state = "yellow" - -/area/construction/quarters - name = "Engineer's Quarters" - icon_state = "yellow" - -/area/construction/qmaint - name = "Maintenance" - icon_state = "yellow" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/construction/hallway name = "Hallway" icon_state = "yellow" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/construction/solars name = "Solar Panels" icon_state = "yellow" -/area/construction/solarscontrol - name = "Solar Panel Control" - icon_state = "yellow" - -/area/construction/Storage - name = "Construction Site Storage" - icon_state = "yellow" - - //GAYBAR /area/secret/gaybar name = "Dance Bar" icon_state = "dancebar" - -//Traitor Station -/area/traitor - name = "Syndicate Base" - icon_state = "syndie_hall" - report_alerts = FALSE - has_gravity = STANDARD_GRAVITY - area_flags = NONE - -/area/traitor/rnd - name = "Syndicate Research and Development" - icon_state = "syndie_rnd" - -/area/traitor/chem - name = "Syndicate Chemistry" - icon_state = "syndie_chem" - -/area/traitor/tox - name = "Syndicate Toxins" - icon_state = "syndie_tox" - -/area/traitor/atmos - name = "Syndicate Atmos" - icon_state = "syndie_atmo" - -/area/traitor/inter - name = "Syndicate Interrogation" - icon_state = "syndie_inter" - -/area/traitor/radio - name = "Syndicate Eavesdropping Booth" - icon_state = "syndie_radio" - -/area/traitor/surgery - name = "Syndicate Surgery Theatre" - icon_state = "syndie_surgery" - -/area/traitor/hall - name = "Syndicate Station" - icon_state = "syndie_hall" - -/area/traitor/kitchen - name = "Syndicate Kitchen" - icon_state = "syndie_kitchen" - -/area/traitor/empty - name = "Syndicate Project Room" - icon_state = "syndie_empty" - - //AI -/area/turret_protected/ +/area/turret_protected ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/turret_protected/ai_upload name = "AI Upload Chamber" @@ -2810,6 +2751,7 @@ This applies to all STANDARD station areas /area/aisat name = "AI Satellite Hallway" icon_state = "yellow" + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/aisat/aihallway name = "AI Satellite Exterior Hallway" @@ -2835,35 +2777,12 @@ This applies to all STANDARD station areas /area/turret_protected/aisat_interior/secondary name = "AI Satellite Secondary Antechamber" -//Misc - -/area/wreck/ai - name = "AI Chamber" - icon_state = "ai" - -/area/wreck/main - name = "Wreck" - icon_state = "storage" - -/area/wreck/engineering - name = "Power Room" - icon_state = "engine" - -/area/wreck/bridge - name = "Bridge" - icon_state = "bridge" - -/area/generic - name = "Unknown" - icon_state = "storage" - - - // Telecommunications Satellite /area/tcommsat ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg', 'sound/ambience/ambitech.ogg',\ 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg') + holomap_color = HOLOMAP_AREACOLOR_COMMAND /area/tcommsat/chamber name = "Telecoms Central Compartment" @@ -2916,6 +2835,7 @@ This applies to all STANDARD station areas ambientsounds = AWAY_MISSION_SOUNDS sound_environment = SOUND_ENVIRONMENT_ROOM area_flags = NONE + /area/awaymission/example name = "Strange Station" icon_state = "away" @@ -2944,6 +2864,7 @@ This applies to all STANDARD station areas has_gravity = STANDARD_GRAVITY report_alerts = FALSE area_flags = NONE + holomap_should_draw = FALSE /area/moonoutpost19/mo19arrivals name = "MO19 Arrivals" @@ -2993,6 +2914,7 @@ This applies to all STANDARD station areas power_light = FALSE outdoors = TRUE has_gravity = STANDARD_GRAVITY + holomap_should_draw = FALSE /area/ae13/medbay name = "medbay" @@ -3030,6 +2952,7 @@ This applies to all STANDARD station areas report_alerts = FALSE has_gravity = STANDARD_GRAVITY area_flags = NONE + holomap_should_draw = FALSE /area/awaycontent/a1 icon_state = "awaycontent1" @@ -3150,6 +3073,7 @@ GLOBAL_LIST_INIT(centcom_areas, list( report_alerts = FALSE has_gravity = STANDARD_GRAVITY area_flags = NONE + holomap_should_draw = FALSE /area/special_event/alpha name = "Special event area Alpha" @@ -3287,6 +3211,7 @@ GLOBAL_LIST_INIT(centcom_areas, list( /area/coldcolony name = "coldcolony" icon_state = "unknown" + holomap_should_draw = FALSE /area/coldcolony/morgue name = "Morgue" diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 1d53f2711df..00bfe021367 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -34,8 +34,7 @@ GLOBAL_LIST_EMPTY(firealarms) /// Used to prevent pulling spam by same persons var/last_time_pulled - -/obj/machinery/firealarm/New(location, direction, building) +/obj/machinery/firealarm/Initialize(mapload, direction, building) . = ..() GLOB.firealarms += src @@ -46,6 +45,9 @@ GLOBAL_LIST_EMPTY(firealarms) setDir(direction) set_pixel_offsets_from_dir(26, -26, 26, -26) + if(istype(get_area(src), /area)) + LAZYADD(GLOB.station_fire_alarms["[z]"], src) + myArea = get_area(src) LAZYADD(myArea.firealarms, src) update_fire_light() @@ -54,6 +56,7 @@ GLOBAL_LIST_EMPTY(firealarms) /obj/machinery/firealarm/Destroy() GLOB.firealarms -= src + LAZYREMOVE(GLOB.station_fire_alarms["[z]"], src) LAZYREMOVE(myArea.firealarms, src) return ..() diff --git a/code/modules/holomaps/datum.dm b/code/modules/holomaps/datum.dm new file mode 100644 index 00000000000..e9151e407e4 --- /dev/null +++ b/code/modules/holomaps/datum.dm @@ -0,0 +1,102 @@ +// Simple datum to keep track of a running holomap. Each machine capable of displaying the holomap will have one. +/datum/station_holomap + var/image/base_map + var/image/cursor + + var/list/overlay_data = list() + var/list/disabled_overlays = list() + var/total_legend_y + + /// This set to TRUE when the station map is initialized on a zLevel that doesn't have its own icon formatted for use by station holomaps. + var/bogus = TRUE + var/turf/location_turf + var/map_z + +/datum/station_holomap/New() + . = ..() + cursor = image('icons/misc/8x8.dmi', "you") + +/datum/station_holomap/proc/initialize_holomap(turf/T, current_z_level, mob/user = null, reinit_base_map = FALSE, extra_overlays = list()) + bogus = FALSE + location_turf = T + map_z = current_z_level + + if(!("[HOLOMAP_EXTRA_STATIONMAP]_[map_z]" in SSholomaps.extra_holomaps)) + initialize_holomap_bogus() + return + + if(!base_map || reinit_base_map) + base_map = image(SSholomaps.extra_holomaps["[HOLOMAP_EXTRA_STATIONMAP]_[map_z]"]) + + if(isAI(user) || isAIEye(user)) + var/turf/eye_turf = get_turf(user?.client?.eye) + if(eye_turf) + location_turf = eye_turf + + update_map(extra_overlays) + +/datum/station_holomap/proc/generate_legend(list/overlays_to_use = list()) + var/legend_y = HOLOMAP_LEGEND_Y + for(var/list/overlay_name as anything in overlays_to_use) + var/image/overlay_icon = overlays_to_use[overlay_name]["icon"] + + overlay_icon.pixel_x = HOLOMAP_LEGEND_X + overlay_icon.pixel_y = legend_y + overlay_icon.maptext = MAPTEXT("[overlay_name]") + overlay_icon.maptext_x = 10 + overlay_icon.maptext_width = 64 + base_map.add_overlay(overlay_icon) + + if(length(overlays_to_use[overlay_name]["markers"])) + overlay_data["[round(legend_y / 10)]"] = overlay_name + + if(overlay_name in disabled_overlays) + var/image/disabled_marker = image('icons/misc/8x8.dmi', "legend_cross") + disabled_marker.pixel_x = HOLOMAP_LEGEND_X + disabled_marker.pixel_y = legend_y + base_map.add_overlay(disabled_marker) + + legend_y += 10 + + total_legend_y = legend_y + +/// Updates the map with the provided overlays, with any, removing any overlays it already had that aren't the cursor or legend. +/// If there is no turf, then it doesn't add the cursor or legend back. +/// Make sure to set the pixel x and y of your overlays, or they'll render in the far bottom left. +/datum/station_holomap/proc/update_map(list/overlays_to_use = list()) + base_map.cut_overlays() + + if(bogus) + var/image/legend = image('icons/misc/64x64.dmi', "notfound") + legend.pixel_x = 192 + legend.pixel_y = 224 + base_map.add_overlay(legend) + return + + if(location_turf && location_turf.z == map_z && check_level_trait(location_turf.z, STATION_LEVEL)) + cursor.pixel_x = location_turf.x - 3 + HOLOMAP_CENTER_X + cursor.pixel_y = location_turf.y - 3 + HOLOMAP_CENTER_Y + + base_map.add_overlay(cursor) + overlays_to_use["You are here"] = list( + "icon" = image('icons/misc/8x8.dmi', "you"), + "markers" = list() + ) + + for(var/overlay as anything in overlays_to_use) + if(overlay in disabled_overlays) + continue + + for(var/image/map_layer in overlays_to_use[overlay]["markers"]) + base_map.add_overlay(map_layer) + + generate_legend(overlays_to_use) + +/datum/station_holomap/proc/reset_map() + disabled_overlays = list() + +/datum/station_holomap/proc/initialize_holomap_bogus() + bogus = TRUE + base_map = image('icons/misc/480x480.dmi', "stationmap") + + update_map() diff --git a/code/modules/holomaps/hud.dm b/code/modules/holomaps/hud.dm new file mode 100644 index 00000000000..55a06f57cf5 --- /dev/null +++ b/code/modules/holomaps/hud.dm @@ -0,0 +1,72 @@ +/datum/hud + var/atom/movable/screen/holomap/holomap + +/datum/hud/New(mob/owner) + . = ..() + + holomap = new /atom/movable/screen/holomap() + holomap.name = "holomap" + holomap.icon = null + holomap.screen_loc = ui_holomap + holomap.mouse_opacity = MOUSE_OPACITY_ICON + + +/atom/movable/screen/holomap + /// The owner. Used to get z-level data. + var/obj/machinery/station_map/used_station_map + var/image/used_base_map + +/atom/movable/screen/holomap/Click(location, control, params) + . = ..() + if(!used_station_map) + return + + if(LAZYACCESS(params2list(params), RIGHT_CLICK)) + used_station_map.close_map() + return + + var/list/modifiers = params2list(params) + var/icon_x = text2num(LAZYACCESS(modifiers, "icon-x")) + var/icon_y = text2num(LAZYACCESS(modifiers, "icon-y")) + + if(icon_x < HOLOMAP_LEGEND_X || icon_x > HOLOMAP_LEGEND_X + HOLOMAP_LEGEND_WIDTH || icon_y < HOLOMAP_LEGEND_Y || icon_y > used_station_map.holomap_datum.total_legend_y) + return + + var/selected_entry = round(icon_y / 10, 1) - 1 // Always round for a whole number, and subtract one cause I have no fucking idea what I'm doing + var/list/overlay_data = used_station_map.holomap_datum.overlay_data + + if(!("[selected_entry]" in overlay_data)) + return + + var/list/disabled_overlays = used_station_map.holomap_datum.disabled_overlays + + if(overlay_data["[selected_entry]"] in disabled_overlays) + disabled_overlays -= overlay_data["[selected_entry]"] + else + disabled_overlays += overlay_data["[selected_entry]"] + + used_station_map.holomap_datum.update_map(used_station_map.handle_overlays()) + +/atom/movable/screen/holomap/MouseEntered(location, control, params) + . = ..() + MouseMove(location, control, params) + +/atom/movable/screen/holomap/MouseMove(location, control, params) + if(!used_station_map) + return + + var/list/modifiers = params2list(params) + var/icon_x = text2num(LAZYACCESS(modifiers, "icon-x")) + var/icon_y = text2num(LAZYACCESS(modifiers, "icon-y")) + var/list/position_to_name = SSholomaps.holomap_position_to_name["[used_station_map.current_z_level]"] + + if(!position_to_name || !usr.hud_used) + return + + var/text_for_screentip = position_to_name["[icon_x]:[icon_y]"] + + used_base_map.maptext = MAPTEXT_TINY_UNICODE("[text_for_screentip]") + used_base_map.maptext_x = icon_x + used_base_map.maptext_y = icon_y + used_base_map.maptext_width = 96 + used_base_map.maptext_height = 96 diff --git a/code/modules/holomaps/machinery.dm b/code/modules/holomaps/machinery.dm new file mode 100644 index 00000000000..8fb1577b698 --- /dev/null +++ b/code/modules/holomaps/machinery.dm @@ -0,0 +1,396 @@ +#define HOLOMAP_LOW_LIGHT 1, 2 +#define HOLOMAP_HIGH_LIGHT 2, 3 +#define HOLOMAP_LIGHT_OFF 0 + +// Wall mounted holomap of the station +// Credit to polaris for the code which this current map was originally based off of, and credit to VG for making it in the first place. + +/obj/machinery/station_map + name = "\improper station holomap" + desc = "A virtual map of the surrounding station." + icon = 'icons/obj/stationmap.dmi' + icon_state = "station_map" + layer = ABOVE_WINDOW_LAYER + use_power = IDLE_POWER_USE + idle_power_usage = 16 + active_power_usage = 128 + light_color = HOLOMAP_HOLOFIER + anchored = TRUE + + /// The mob beholding this marvel. + var/mob/watching_mob + /// The image that can be seen in-world. + var/image/small_station_map + /// The little "map" floor painting. + var/image/floor_markings + + // zLevel which the map is a map for. Change this to have mapload holomaps look at other zlevels. + var/current_z_level + + /// The various images and icons for the map are stored in here, as well as the actual big map itself. + var/datum/station_holomap/holomap_datum + +/obj/machinery/station_map/Initialize() + if(!current_z_level) + current_z_level = loc.z + SSholomaps.station_holomaps += src + floor_markings = image('icons/obj/stationmap.dmi', "decal_station_map") + floor_markings.dir = src.dir + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/machine/station_map(null) + component_parts += new /obj/item/stock_parts/scanning_module(null) + component_parts += new /obj/item/stock_parts/scanning_module(null) + component_parts += new /obj/item/stock_parts/scanning_module(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/station_map/LateInitialize() + . = ..() + if(SSholomaps.initialized) + setup_holomap() + +/obj/machinery/station_map/Destroy() + SSholomaps.station_holomaps -= src + close_map() + QDEL_NULL(holomap_datum) + . = ..() + +/obj/machinery/station_map/proc/setup_holomap() + holomap_datum = new() + var/turf/current_turf = get_turf(src) + + holomap_datum.initialize_holomap(current_turf, current_z_level, reinit_base_map = TRUE, extra_overlays = handle_overlays()) + + + update_icon() + +/obj/machinery/station_map/attack_hand(mob/user) + if(user == watching_mob) + close_map(user) + return + + if(watching_mob && watching_mob != user) + to_chat(user, span_warning("Someone else is currently watching the holomap.")) + return + + open_map(user) + +/// Tries to open the map for the given mob. Returns FALSE if it doesn't meet the criteria, TRUE if the map successfully opened with no runtimes. +/obj/machinery/station_map/proc/open_map(mob/user) + if(!anchored || (stat & (NOPOWER | BROKEN)) || !user?.client || panel_open || user.hud_used.holomap.used_station_map) + return FALSE + + if(!holomap_datum) + setup_holomap() + if(!holomap_datum) + // Something is very wrong if we have to un-fuck ourselves here. + stack_trace("Holomap at [COORD(src)] couldn't setup holomap_datum.") + to_chat(user, span_warning("[src] glitches out and shows a message:\"ERROR: NTOS is not responding.\"")) + return + + holomap_datum.update_map(handle_overlays()) + + var/datum/hud/human/user_hud = user.hud_used + holomap_datum.base_map.loc = user_hud.holomap // Put the image on the holomap hud + holomap_datum.base_map.alpha = 0 // Set to transparent so we can fade in + + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_position) + + playsound(src, 'sound/effects/holomap_open.ogg', 125) + animate(holomap_datum.base_map, alpha = 255, time = 5, easing = LINEAR_EASING) + icon_state = "station_map_active" + set_light(HOLOMAP_HIGH_LIGHT) + + user.hud_used.holomap.used_station_map = src + user.hud_used.holomap.used_base_map = holomap_datum.base_map + user.hud_used.holomap.mouse_opacity = MOUSE_OPACITY_ICON + user.client.screen |= user.hud_used.holomap + user.client.images |= holomap_datum.base_map + + watching_mob = user + use_power = ACTIVE_POWER_USE + + if(holomap_datum.bogus) + to_chat(user, span_warning("The holomap failed to initialize. This area of space cannot be mapped.")) + else + to_chat(user, span_warning("A hologram of the station appears before your eyes.")) + + return TRUE + +/obj/machinery/station_map/attack_ai(mob/living/silicon/robot/user) + attack_hand(user) + +/obj/machinery/station_map/attack_robot(mob/user) + attack_hand(user) + +/obj/machinery/station_map/process() + if((stat & (NOPOWER | BROKEN)) || !anchored) + close_map() + +/obj/machinery/station_map/proc/check_position() + SIGNAL_HANDLER + + if(!watching_mob || (watching_mob.loc != loc) || (dir != watching_mob.dir)) + close_map() + +/obj/machinery/station_map/proc/close_map() + if(!watching_mob) + return + + UnregisterSignal(watching_mob, COMSIG_MOVABLE_MOVED) + playsound(src, 'sound/effects/holomap_close.ogg', 125) + icon_state = initial(icon_state) + if(watching_mob?.client) + animate(holomap_datum.base_map, alpha = 0, time = 5, easing = LINEAR_EASING) + spawn(5) //we give it time to fade out + watching_mob.client?.screen -= watching_mob.hud_used.holomap + watching_mob.client?.images -= holomap_datum.base_map + watching_mob.hud_used.holomap.used_station_map = null + watching_mob.hud_used.holomap.used_base_map = null + watching_mob = null + set_light(HOLOMAP_LOW_LIGHT) + + use_power = IDLE_POWER_USE + holomap_datum.reset_map() + +/obj/machinery/station_map/power_change() + . = ..() + update_icon() + + if(stat & NOPOWER) + set_light(HOLOMAP_LIGHT_OFF) + else + set_light(HOLOMAP_LOW_LIGHT) + +/obj/machinery/station_map/proc/set_broken() + stat |= BROKEN + update_icon() + +/obj/machinery/station_map/update_icon() + . = ..() + if(!holomap_datum) + return //Not yet. + + cut_overlays() + if(stat & BROKEN) + icon_state = "station_map_broken" + else if(panel_open) + icon_state = "station_map_opened" + else if((stat & NOPOWER) || !anchored) + icon_state = "station_map_off" + else + icon_state = initial(icon_state) + + if(!holomap_datum.bogus) + small_station_map = image(SSholomaps.extra_holomaps["[HOLOMAP_EXTRA_STATIONMAPSMALL]_[current_z_level]"], dir = src.dir) + add_overlay(small_station_map) + + // Put the little "map" overlay down where it looks nice + if(floor_markings) + floor_markings.dir = src.dir + floor_markings.pixel_x = -src.pixel_x + floor_markings.pixel_y = -src.pixel_y + add_overlay(floor_markings) + +/obj/machinery/station_map/screwdriver_act(mob/living/user, obj/item/tool) + if(!default_deconstruction_screwdriver(user, "station_map_opened", "station_map_off", tool)) + return FALSE + + close_map() + update_icon() + + if(!panel_open) + setup_holomap() + + return TRUE + +/obj/machinery/station_map/multitool_act(mob/living/user, obj/item/tool) + if(!panel_open) + to_chat(user, span_warning("You need to open the panel to change the [src]'[p_s()] settings!")) + return FALSE + if(!SSholomaps.valid_map_indexes.len > 1) + to_chat(user, span_warning("There are no other maps available for [src]!")) + return FALSE + + tool.play_tool_sound(user, 50) + var/current_index = SSholomaps.valid_map_indexes.Find(current_z_level) + if(current_index >= SSholomaps.valid_map_indexes.len) + current_z_level = SSholomaps.valid_map_indexes[1] + else + current_z_level = SSholomaps.valid_map_indexes[current_index + 1] + + to_chat(user, span_info("You set the [src]'[p_s()] database index to [current_z_level].")) + return TRUE + +/obj/machinery/station_map/crowbar_act(mob/living/user, obj/item/tool) + return default_deconstruction_crowbar(user, tool) + +/obj/machinery/station_map/wrench_act(mob/living/user, obj/item/tool) + tool.play_tool_sound(user, 50) + if(!panel_open) + set_anchored(!anchored) + return TRUE + rotate_map(-90) + return TRUE + +/// Rotates the map machine by the given amount of degrees. See byond's builtin `turn` for more info. +/obj/machinery/station_map/proc/rotate_map(direction) + dir = turn(dir, direction) + switch(dir) + if(NORTH) + pixel_x = 0 + pixel_y = 32 + if(SOUTH) + pixel_x = 0 + pixel_y = -32 + if(EAST) + pixel_x = 32 + pixel_y = 0 + if(WEST) + pixel_x = -32 + pixel_y = 0 + + update_icon() // Required to refresh the small map icon. + +/obj/machinery/station_map/emp_act(severity) + if(severity == EMP_LIGHT && !prob(50)) + return + + do_sparks(8, TRUE, src) + set_broken() + +/obj/machinery/station_map/proc/handle_overlays() + // Each entry in this list contains the text for the legend, and the icon and icon_state use. Null or non-existent icon_state ignore hiding logic. + // If an entry contains an icon, + var/list/legend = list() + GLOB.holomap_default_legend + + var/list/z_transitions = SSholomaps.holomap_z_transitions["[current_z_level]"] + if(length(z_transitions)) + legend += z_transitions + + /* with meteor shields refactor + if(length(GLOB.meteor_shielded_turfs)) + var/icon/canvas = icon(HOLOMAP_ICON, "blank") + var/z_has_coverage = FALSE + for(var/turf/open/shielded_turf as anything in GLOB.meteor_shielded_turfs) + if(shielded_turf?.z != current_z_level) + continue + var/offset_x = HOLOMAP_CENTER_X + shielded_turf.x + var/offset_y = HOLOMAP_CENTER_Y + shielded_turf.y + var/color = ((offset_x ^ offset_y) % 2 == 0) ? HOLOMAP_AREACOLOR_SHIELD_1 : HOLOMAP_AREACOLOR_SHIELD_2 + canvas.DrawBox(color, offset_x, offset_y) + z_has_coverage = TRUE + if(z_has_coverage) + legend["Meteor Shield"] = list("icon" = image('icons/misc/8x8.dmi', icon_state = "meteor_shield"), "markers" = list(image(canvas))) + */ + return legend + +/obj/machinery/station_map/engineering + name = "\improper engineering station map" + icon_state = "station_map_engi" + +/obj/machinery/station_map/engineering/Initialize(mapload) + REGISTER_REQUIRED_MAP_ITEM(1, INFINITY) + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/machine/station_map/engineering(null) + component_parts += new /obj/item/stock_parts/scanning_module(null) + component_parts += new /obj/item/stock_parts/scanning_module(null) + component_parts += new /obj/item/stock_parts/scanning_module(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/stack/ore/bluespace_crystal/artificial(null) + +/obj/machinery/station_map/engineering/attack_hand(mob/user) + . = ..() + if(.) + holomap_datum.update_map(handle_overlays()) + +/obj/machinery/station_map/engineering/handle_overlays() + var/list/extra_overlays = ..() + if(holomap_datum.bogus) + return extra_overlays + + var/list/fire_alarms = list() + for(var/obj/machinery/firealarm/alarm as anything in GLOB.station_fire_alarms["[current_z_level]"]) + if(alarm?.z == current_z_level && alarm?.myArea?.fire) + var/image/alarm_icon = image('icons/misc/8x8.dmi', icon_state = "fire_marker") + alarm_icon.pixel_x = alarm.x + HOLOMAP_CENTER_X - 1 + alarm_icon.pixel_y = alarm.y + HOLOMAP_CENTER_Y + fire_alarms += alarm_icon + + if(length(fire_alarms)) + extra_overlays["Fire Alarms"] = list("icon" = image('icons/misc/8x8.dmi', icon_state = "fire_marker"), "markers" = fire_alarms) + + /* + var/list/air_alarms = list() + for(var/obj/machinery/airalarm/air_alarm in GLOB.machines) + var/area/alarms = get_area(air_alarm) + if(air_alarm?.z == current_z_level && alarms?.atmosalm) //Altered it to fire_alam since we don't have an area variable on air_alarms + var/image/alarm_icon = image('icons/misc/8x8.dmi', "atmos_marker") + alarm_icon.pixel_x = air_alarm.x + HOLOMAP_CENTER_X - 1 + alarm_icon.pixel_y = air_alarm.y + HOLOMAP_CENTER_Y + air_alarms += alarm_icon + + if(length(air_alarms)) + extra_overlays["Air Alarms"] = list("icon" = image('icons/misc/8x8.dmi', "atmos_marker"), "markers" = air_alarms) + */ + + return extra_overlays + +/obj/item/circuitboard/machine/station_map + name = "Station Map" + build_path = /obj/machinery/station_map/directional/north + origin_tech = "programming=2;engineering=2" + req_components = list(/obj/item/stock_parts/scanning_module = 3, /obj/item/stock_parts/micro_laser = 4) + +/obj/item/circuitboard/machine/station_map/engineering + name = "Engineering Station Map" + desc = "A virtual map of the surrounding station. Also shows any active fire and atmos alarms." + build_path = /obj/machinery/station_map/engineering/directional/north + origin_tech = "programming=3;engineering=5" + req_components = list(/obj/item/stock_parts/scanning_module = 3, /obj/item/stock_parts/micro_laser = 4, /obj/item/stack/ore/bluespace_crystal = 1) + +// Directional Ones for Mapping // +/obj/machinery/station_map/directional/north + dir = NORTH + pixel_y = 32 + +/obj/machinery/station_map/directional/south + dir = SOUTH + pixel_y = -32 + +/obj/machinery/station_map/directional/west + dir = WEST + pixel_x = -32 + +/obj/machinery/station_map/directional/east + dir = EAST + pixel_x = 32 + +/obj/machinery/station_map/engineering/directional/north + dir = NORTH + pixel_y = 32 + +/obj/machinery/station_map/engineering/directional/south + dir = SOUTH + pixel_y = -32 + +/obj/machinery/station_map/engineering/directional/west + dir = WEST + pixel_x = -32 + +/obj/machinery/station_map/engineering/directional/east + dir = EAST + pixel_x = 32 + +#undef HOLOMAP_LOW_LIGHT +#undef HOLOMAP_HIGH_LIGHT +#undef HOLOMAP_LIGHT_OFF diff --git a/code/modules/ruins/lavalandruin_code/necropolis_lavalend.dm b/code/modules/ruins/lavalandruin_code/necropolis_lavalend.dm index 9adbd143819..cdb57063f3a 100644 --- a/code/modules/ruins/lavalandruin_code/necropolis_lavalend.dm +++ b/code/modules/ruins/lavalandruin_code/necropolis_lavalend.dm @@ -2,6 +2,7 @@ name = "Necropolis" icon_state = "cave" tele_proof = TRUE + holomap_should_draw = FALSE /obj/effect/landmark/map_loader/lavaland_room icon = 'icons/misc/Testing/turf_analysis.dmi' diff --git a/code/modules/ruins/ruin_areas.dm b/code/modules/ruins/ruin_areas.dm index 7a6ce119091..e2dadb76746 100644 --- a/code/modules/ruins/ruin_areas.dm +++ b/code/modules/ruins/ruin_areas.dm @@ -8,6 +8,7 @@ static_lighting = TRUE ambientsounds = RUINS_SOUNDS sound_environment = SOUND_ENVIRONMENT_STONEROOM + holomap_should_draw = FALSE /area/ruin/space area_flags = NONE diff --git a/icons/misc/480x480.dmi b/icons/misc/480x480.dmi index 9c974c1c242f434731095c5e5d46741ba10939aa..0883988331aa114a560340fefef23ba84c2a7d68 100644 GIT binary patch literal 136234 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
L71@ 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%0AHWkr?k2o5G4z? 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 literal 1702 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|=9Be?5+AI5}0;%k(kcbkO)Z*l#%z~24{5%GR ziaEhy1x2ObzXTV2{Q5-8TUYDcne)LLLJck&KX{~b-beE!L!nN?oSrLZzVrxbtly!s zQAPAbn30jLhpw03S?$0_k9BcFpb#;0PhZ*nINMAg*>cdh7 z2G(z$E{-7;x87de$je~B!Lrf))PXnm4~Q+?=)U8b)?_}04_7BMFz`r#kU;_n9cW+# zA_itQ5Q0dIWI0HnU=Np(AqPni=xGAt_mLu}%7Bs~kUbBTfM=EwC^uS446>47$M#nf XINt8$xL*ydco;lg{an^LB{Ts5ecD4N diff --git a/icons/misc/64x64.dmi b/icons/misc/64x64.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9d34be2fa51b45500855f056fd881a45a24ca96f GIT binary patch literal 34749 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

&ccUOap+wWRMOn}$&j+Xm@jY5c&B9l1N|=B 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 I1!&0s0#PKO_y7O^ literal 0 HcmV?d00001 diff --git a/icons/misc/8x8.dmi b/icons/misc/8x8.dmi new file mode 100644 index 0000000000000000000000000000000000000000..8e98b1dbe56ba5be69a9e39edc0f3a3debcd7d58 GIT binary patch literal 880 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 Eg1>^R;{X5v literal 0 HcmV?d00001 diff --git a/paradise.dme b/paradise.dme index ad31208117a..5a69fcdb257 100644 --- a/paradise.dme +++ b/paradise.dme @@ -73,6 +73,7 @@ #include "code\__DEFINES\generators.dm" #include "code\__DEFINES\genetics.dm" #include "code\__DEFINES\gravity.dm" +#include "code\__DEFINES\holomaps.dm" #include "code\__DEFINES\hud.dm" #include "code\__DEFINES\hydroponics.dm" #include "code\__DEFINES\icon_smoothing.dm" @@ -247,6 +248,7 @@ #include "code\_globalvars\bitfields\sight.dm" #include "code\_globalvars\lists\flavor_misc.dm" #include "code\_globalvars\lists\fortunes.dm" +#include "code\_globalvars\lists\holomaps.dm" #include "code\_globalvars\lists\keybindings.dm" #include "code\_globalvars\lists\misc.dm" #include "code\_globalvars\lists\mobs.dm" @@ -334,6 +336,7 @@ #include "code\controllers\subsystem\game_events.dm" #include "code\controllers\subsystem\garbage.dm" #include "code\controllers\subsystem\ghost_spawns.dm" +#include "code\controllers\subsystem\holomap.dm" #include "code\controllers\subsystem\http.dm" #include "code\controllers\subsystem\icon_smooth.dm" #include "code\controllers\subsystem\idlenpcpool.dm" @@ -2246,6 +2249,9 @@ #include "code\modules\holiday\christmas.dm" #include "code\modules\holiday\holiday.dm" #include "code\modules\holiday\new_year.dm" +#include "code\modules\holomaps\datum.dm" +#include "code\modules\holomaps\hud.dm" +#include "code\modules\holomaps\machinery.dm" #include "code\modules\hydroponics\biogenerator.dm" #include "code\modules\hydroponics\fermenting_barrel.dm" #include "code\modules\hydroponics\gene_modder.dm" diff --git a/sound/effects/holomap_close.ogg b/sound/effects/holomap_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0b28da96079859f088078d57b5c20b0840ee7a5d GIT binary patch literal 7451 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 literal 0 HcmV?d00001