From 6b70d69ab0bf890bb9945adf4953d5204d4254bd Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Tue, 29 Jan 2019 12:17:30 -0800 Subject: [PATCH 01/42] gitingore stuff --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 571ce538e82..8048f55a678 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,7 @@ data/ *.db stddef.dm .atom-build.json -*.vscode/* \ No newline at end of file +*.vscode/* +tools/midi2piano/midi2piano/obj/x86/Debug/midi2piano.csprojAssemblyReference.cache +tools/midi2piano/midi2piano/obj/x86/Debug/midi2piano.csproj.CoreCompileInputs.cache +tools/midi2piano/midi2piano/obj/x86/Debug/project.razor.json From 45a1920cd4bbee53479dcd9d86ebf1af57d817d6 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Wed, 13 Feb 2019 12:58:21 -0800 Subject: [PATCH 02/42] Badda Boomba --- .../objects/items/weapons/storage/bags.dm | 2 +- .../research/xenobiology/xenobio_camera.dm | 47 ++++++++++++++++++ icons/mob/actions/actions.dmi | Bin 83395 -> 91134 bytes 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 26309f885fa..d2cd53c5960 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -486,5 +486,5 @@ storage_slots = 25 max_combined_w_class = 200 w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/slime_extract,/obj/item/reagent_containers/food/snacks/monkeycube,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/blood,/obj/item/reagent_containers/hypospray/autoinjector) + can_hold = list(/obj/item/slime_extract,/obj/item/reagent_containers/food/snacks/monkeycube,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/blood,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/slimepotion/mutator) burn_state = FLAMMABLE diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 29a3cd26600..1ebd7f14c61 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -26,10 +26,12 @@ var/datum/action/innate/slime_pick_up/slime_up_action = new var/datum/action/innate/feed_slime/feed_slime_action = new var/datum/action/innate/monkey_recycle/monkey_recycle_action = new + var/datum/action/innate/mutate_slime/mutate_slime_action = new var/list/stored_slimes = list() var/max_slimes = 5 var/monkeys = 0 + var/mutators = 0 icon_screen = "slime_comp" icon_keyboard = "rd_key" @@ -62,6 +64,11 @@ monkey_recycle_action.target = src monkey_recycle_action.Grant(user) actions += monkey_recycle_action + + if(mutate_slime_action) + mutate_slime_action.target = src + mutate_slime_action.Grant(user) + actions += mutate_slime_action /obj/machinery/computer/camera_advanced/xenobio/attack_hand(mob/user) @@ -76,6 +83,12 @@ user.drop_item() qdel(O) return + else if (istype(O, /obj/item/slimepotion/mutator)) + mutators++ + to_chat(user, "You feed [O] to [src]. It now has [mutators] slime mutation potions stored.") + user.drop_item() + qdel(O) + return else if(istype(O, /obj/item/storage/bag)) var/obj/item/storage/P = O var/loaded = 0 @@ -86,6 +99,15 @@ qdel(MC) if(loaded) to_chat(user, "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.") + loaded = 0 + + for(var/obj/item/slimepotion/mutator/M in P.contents) + loaded = 1 + mutators++ + P.remove_from_storage(M) + qdel(M) + if(loaded) + to_chat(user, "You fill [src] with the slime mutation potions stored in [O]. [src] now has [mutators] slime mutation potions stored.") return ..() @@ -170,5 +192,30 @@ M.visible_message("[M] vanishes as [M.p_theyre()] reclaimed for recycling!") X.monkeys = round(X.monkeys + 0.2,0.1) qdel(M) + else + to_chat(owner, "Target is not near a camera. Cannot proceed.") + +/datum/action/innate/mutate_slime + name = "Mutate Slimes" + button_icon_state = "mutate_slimes" + +/datum/action/innate/mutate_slime/Activate() + if(!target || !ishuman(owner)) + return + var/mob/living/carbon/human/C = owner + var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = target + + if(cameranet.checkTurfVis(remote_eye.loc)) + for(var/mob/living/carbon/slime/S in remote_eye.loc) + if(X.mutators) + var/obj/item/slimepotion/mutator/M = new /obj/item/slimepotion/mutator + if(!M.attack(S, owner)) + X.mutators-- + to_chat(owner, "[X] now has [X.mutators] slime mutation potions left.") + else + qdel(M) + else + //to_chat(ownder, "The console contains 0 slime mutators!") Leaving this out because the monkey feeder thing doesn't have one of these if you don't have any monkeys left. else to_chat(owner, "Target is not near a camera. Cannot proceed.") \ No newline at end of file diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index 08e645c5c9bf69f34b5cb700cfd0963b20b102e2..999e80761e50f624cfaf20f8af5f8743e4c4f919 100644 GIT binary patch literal 91134 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

u2=(9gmKFi&_kKA!l@xRwg>%9{3b)T|qxULbk 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%0AI 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 L47I8>?BV|dHRQ_e literal 83395 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 FV1g|#N<9Do From f2bb266550244eeea44ec55dc3e8ffaa1278d7d1 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Wed, 13 Feb 2019 13:10:46 -0800 Subject: [PATCH 03/42] woops didnt mean to chagne gitignore in PR --- .gitignore | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 8048f55a678..571ce538e82 100644 --- a/.gitignore +++ b/.gitignore @@ -20,7 +20,4 @@ data/ *.db stddef.dm .atom-build.json -*.vscode/* -tools/midi2piano/midi2piano/obj/x86/Debug/midi2piano.csprojAssemblyReference.cache -tools/midi2piano/midi2piano/obj/x86/Debug/midi2piano.csproj.CoreCompileInputs.cache -tools/midi2piano/midi2piano/obj/x86/Debug/project.razor.json +*.vscode/* \ No newline at end of file From ce7f61a89286122726ff9f259871e63c44293c65 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Thu, 14 Feb 2019 12:35:57 -0800 Subject: [PATCH 04/42] Changed it to match TG (Fox's Request) --- .../objects/items/weapons/storage/bags.dm | 2 +- .../research/xenobiology/xenobio_camera.dm | 71 ++++++++---------- icons/mob/actions/actions.dmi | Bin 91134 -> 91133 bytes 3 files changed, 33 insertions(+), 40 deletions(-) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index d2cd53c5960..26309f885fa 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -486,5 +486,5 @@ storage_slots = 25 max_combined_w_class = 200 w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/slime_extract,/obj/item/reagent_containers/food/snacks/monkeycube,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/blood,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/slimepotion/mutator) + can_hold = list(/obj/item/slime_extract,/obj/item/reagent_containers/food/snacks/monkeycube,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/blood,/obj/item/reagent_containers/hypospray/autoinjector) burn_state = FLAMMABLE diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 1ebd7f14c61..d9fd5265e3e 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -26,12 +26,12 @@ var/datum/action/innate/slime_pick_up/slime_up_action = new var/datum/action/innate/feed_slime/feed_slime_action = new var/datum/action/innate/monkey_recycle/monkey_recycle_action = new - var/datum/action/innate/mutate_slime/mutate_slime_action = new + var/datum/action/innate/transfer_potion/transfer_potion_action = new var/list/stored_slimes = list() var/max_slimes = 5 var/monkeys = 0 - var/mutators = 0 + var/obj/item/slimepotion/current_potion icon_screen = "slime_comp" icon_keyboard = "rd_key" @@ -65,10 +65,10 @@ monkey_recycle_action.Grant(user) actions += monkey_recycle_action - if(mutate_slime_action) - mutate_slime_action.target = src - mutate_slime_action.Grant(user) - actions += mutate_slime_action + if(transfer_potion_action) + transfer_potion_action.target = src + transfer_potion_action.Grant(user) + actions += transfer_potion_action /obj/machinery/computer/camera_advanced/xenobio/attack_hand(mob/user) @@ -78,17 +78,20 @@ /obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube)) - monkeys++ - to_chat(user, "You feed [O] to [src]. It now has [monkeys] monkey cubes stored.") - user.drop_item() - qdel(O) - return - else if (istype(O, /obj/item/slimepotion/mutator)) - mutators++ - to_chat(user, "You feed [O] to [src]. It now has [mutators] slime mutation potions stored.") - user.drop_item() - qdel(O) - return + if(user.drop_item()) + monkeys++ + to_chat(user, "You feed [O] to [src]. It now has [monkeys] monkey cubes stored.") + qdel(O) + return + else if (istype(O, /obj/item/slimepotion)) + var/replaced = FALSE + if(user.drop_item()) + if(!QDELETED(current_potion)) + current_potion.forceMove(drop_location()) + replaced = TRUE + current_potion = O + to_chat(user, "You load [O] in the console's potion slot[replaced ? ", replacing the one that was there before" : ""].") + return else if(istype(O, /obj/item/storage/bag)) var/obj/item/storage/P = O var/loaded = 0 @@ -99,15 +102,6 @@ qdel(MC) if(loaded) to_chat(user, "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.") - loaded = 0 - - for(var/obj/item/slimepotion/mutator/M in P.contents) - loaded = 1 - mutators++ - P.remove_from_storage(M) - qdel(M) - if(loaded) - to_chat(user, "You fill [src] with the slime mutation potions stored in [O]. [src] now has [mutators] slime mutation potions stored.") return ..() @@ -195,27 +189,26 @@ else to_chat(owner, "Target is not near a camera. Cannot proceed.") -/datum/action/innate/mutate_slime - name = "Mutate Slimes" - button_icon_state = "mutate_slimes" +/datum/action/innate/transfer_potion + name = "Transfer Potion" + button_icon_state = "transfer_potion" -/datum/action/innate/mutate_slime/Activate() +/datum/action/innate/transfer_potion/Activate() if(!target || !ishuman(owner)) return + var/mob/living/carbon/human/C = owner var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control var/obj/machinery/computer/camera_advanced/xenobio/X = target + if(QDELETED(X.current_potion)) + to_chat(owner, "No potion loaded.") + return + if(cameranet.checkTurfVis(remote_eye.loc)) for(var/mob/living/carbon/slime/S in remote_eye.loc) - if(X.mutators) - var/obj/item/slimepotion/mutator/M = new /obj/item/slimepotion/mutator - if(!M.attack(S, owner)) - X.mutators-- - to_chat(owner, "[X] now has [X.mutators] slime mutation potions left.") - else - qdel(M) - else - //to_chat(ownder, "The console contains 0 slime mutators!") Leaving this out because the monkey feeder thing doesn't have one of these if you don't have any monkeys left. + if(!QDELETED(X.current_potion)) + X.current_potion.attack(S, C) + break else to_chat(owner, "Target is not near a camera. Cannot proceed.") \ No newline at end of file diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index 999e80761e50f624cfaf20f8af5f8743e4c4f919..fdc89eb09a6579ebcf8649fcd551691ad41cb247 100644 GIT binary patch delta 1187 zcmV;U1YG<6#|8bz1&|~G!I33Ke@K1v+ugrkzJB|$`~3aec4e)S)9!xv>7V!8%|TrA zyZhb858I7rS$sSFQyVqj-S6JeBthEI%w*a3<;`~EMC3vkF2x#qC4ahem~CJCe~ff6qcwVt?Ze{T6v5-2Ev zQUh7#3fpZ;sm`n*e(+KYLZ>8N0yV%P)p8o&j)`=9rfD%0gdx!JOg)T!`U^D~G8`q2 zPdzQB77k$y2C{ooW8MQsgCL#^lJ-N&<`CF6S=mIys?9NW;B}#HcS@2>ka=v9W4Xp` zLeAw6IyJ8Zczzb;2?7IEe;;J=<5Ml1xQR7Zj~RxUaKju6wQ(RnJ4@kdL&8y^3v=50cy;5+ndeNvsx%5yGo2#sBz<5=yLPcElo+H0jT!EIur2er^T!kivYp*KvUtF`k;2>)_Dme$5=0BlO5gBvZ^U-vebonqoQwF4esD z+E{OJ+;0+a5v&T1Y`yuJbHulDqQPAhPgT-_TYnaypN(QW7B-W1pdPxA%t+C7p=kLL z6FjFs_}sq~K(c5`z_==MMU0VEc5@)0tX;D6(}OJOk~6lWIxF z^C0DzS2hsqm;y*Dji*e{=1lCN$@uw5T3DA3L}W=Vcc3DTIq`9#@ho)7!ErLH$rcOJMaU~`IkRa@@wtg+ufHRpLd_X41e4H4-cz(ZIVE`5-9QFQ0s}if994SC4qtx zC^e8(uCU#vlA;VGP z_|(&4YT*#ZU?96UHRe5FGzj9!AZb6OYz~2Kla)6g3M!+9LqIk z6LKzp(5ZPP!1J>xPY@WWfBGPcAD?RB#7(TRddx7)gd65qsErf(8TUPmufiFYWH~t@ zJ;IWQe*N401;?xf-+IXb-$&8>z!rDoDts8jGOmA1ARXUePYtNPP<;`5G%HK0L-K(- zP*V0O+wm0%viO!HjSKQKX==+FhkT?(>{V=|e30b+kRS;-N^j*j#001Lmu06>8$DCzlWAKtSkMFC50nzxq557p#WW!Xd!L`9v?u$A$#Q z32z*@WCg4@Y8|lJW6VInHKkOejMrUR#-IBj<sY*mz3PDleQ z;wtv5e&j`&tiG`Nf6sY+UK>(2u8vr%lv!e-JA^g|bt8ELvM6fHku zg6HxFpZk{rC>Bi#7*|EEh%vItZVm*rwQJVKk4D+Pf6|M+FbaFp&GRd#dtG+jjW6iV z1GT%CH6JcsAb-o=1I?H;Q*y0bq5f)Gj746Vwud%nwS2hEzr|DK>SeyV#0#RpwX)ir zYSRwn{5j-&15Vmx77NVqpPse32ke1aND0eswufeHj&WT4s;Bb03x7?%(##cj*=1!l zUYw-Ge>4T&_ZNzpkjc$SGARK+#GKf`w4!#Ei)Pm?Fb#}R^KbK;PuINM=NWiDIH{I& zJP%Tid1V8!jwyho(s;`BY|g|UnvBCo(!#oQAR|j^xdR<(%!!W^jc1`t4vv#qB?sW1 z6lvDaS;z0^xdT7&oaUOQ28nz%4&Uy+{P?{44gCGv_J71FAO Date: Thu, 14 Feb 2019 18:31:22 -0800 Subject: [PATCH 05/42] Hotkeys + slime scanner + hell yea --- code/__DEFINES/components.dm | 10 +- .../research/xenobiology/xenobio_camera.dm | 189 +++++++++++++++++- icons/mob/actions/actions.dmi | Bin 91133 -> 92627 bytes 3 files changed, 196 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 87b9094b47e..02b36614cb5 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -274,4 +274,12 @@ //Ouch my toes! #define CALTROP_BYPASS_SHOES 1 -#define CALTROP_IGNORE_WALKERS 2 \ No newline at end of file +#define CALTROP_IGNORE_WALKERS 2 + +//Xenobio hotkeys +#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" //from slime CtrlClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" //from slime AltClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" //from slime ShiftClickOn(): (/mob) +#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" //from turf ShiftClickOn(): (/mob) +#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob) +#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob) \ No newline at end of file diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index d9fd5265e3e..36535ee1e6b 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -27,11 +27,14 @@ var/datum/action/innate/feed_slime/feed_slime_action = new var/datum/action/innate/monkey_recycle/monkey_recycle_action = new var/datum/action/innate/transfer_potion/transfer_potion_action = new + var/datum/action/innate/hotkey_help/hotkey_help_action = new + var/datum/action/innate/slime_scan/slime_scan_action = new var/list/stored_slimes = list() var/max_slimes = 5 var/monkeys = 0 var/obj/item/slimepotion/current_potion + var/obj/item/slime_scanner/scanner = new /obj/item/slime_scanner icon_screen = "slime_comp" icon_keyboard = "rd_key" @@ -69,7 +72,32 @@ transfer_potion_action.target = src transfer_potion_action.Grant(user) actions += transfer_potion_action + + if(hotkey_help_action) + hotkey_help_action.target = src + hotkey_help_action.Grant(user) + actions += hotkey_help_action + + if(slime_scan_action) + slime_scan_action.target = src + slime_scan_action.Grant(user) + actions += slime_scan_action + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, .proc/XenoSlimeClickCtrl) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, .proc/XenoSlimeClickAlt) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, .proc/XenoSlimeClickShift) + RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, .proc/XenoTurfClickShift) + RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, .proc/XenoTurfClickCtrl) + RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl) + +/obj/machinery/computer/camera_advanced/xenobio/remove_eye_control(mob/living/user) + UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL) + UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT) + UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT) + UnregisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT) + UnregisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL) + UnregisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL) + ..() /obj/machinery/computer/camera_advanced/xenobio/attack_hand(mob/user) if(!ishuman(user)) //AIs using it might be weird @@ -191,7 +219,7 @@ /datum/action/innate/transfer_potion name = "Transfer Potion" - button_icon_state = "transfer_potion" + button_icon_state = "slime_potion" /datum/action/innate/transfer_potion/Activate() if(!target || !ishuman(owner)) @@ -211,4 +239,161 @@ X.current_potion.attack(S, C) break else - to_chat(owner, "Target is not near a camera. Cannot proceed.") \ No newline at end of file + to_chat(owner, "Target is not near a camera. Cannot proceed.") + +/datum/action/innate/hotkey_help + name = "Hotkey Help" + button_icon_state = "hotkey_help" + +/datum/action/innate/hotkey_help/Activate() + if(!target || !isliving(owner)) + return + to_chat(owner, "Click shortcuts:") + to_chat(owner, "Shift-click a slime to pick it up, or the floor to drop all held slimes.") + to_chat(owner, "Ctrl-click a slime to scan it.") + to_chat(owner, "Alt-click a slime to feed it a potion.") + to_chat(owner, "Ctrl-click or a dead monkey to recycle it, or the floor to place a new monkey.") + +/datum/action/innate/slime_scan + name = "Scan Slime" + button_icon_state = "slime_scan" + +/datum/action/innate/slime_scan/Activate() + if(!target || !isliving(owner)) + return + var/mob/living/C = owner + var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = target + + if(cameranet.checkTurfVis(remote_eye.loc)) + for(var/mob/living/carbon/slime/S in remote_eye.loc) + X.scanner.attack(S, C) + else + to_chat(owner, "Target is not near a camera. Cannot proceed.") + +// +// Alternate clicks for slime, monkey and open turf if using a xenobio console + +// Scans slime +/mob/living/carbon/slime/CtrlClick(mob/user) + SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_CTRL, src) + ..() + +//Feeds a potion to slime +/mob/living/carbon/slime/AltClick(mob/user) + SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_ALT, src) + ..() + +//Picks up slime +/mob/living/carbon/slime/ShiftClick(mob/user) + SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_SHIFT, src) + ..() + +//Place slimes +/turf/simulated/ShiftClick(mob/user) + SEND_SIGNAL(user, COMSIG_XENO_TURF_CLICK_SHIFT, src) + ..() + +//Place monkey +/turf/simulated/CtrlClick(mob/user) + SEND_SIGNAL(user, COMSIG_XENO_TURF_CLICK_CTRL, src) + ..() + +//Pick up monkey +/mob/living/carbon/monkey/CtrlClick(mob/user) + SEND_SIGNAL(user, COMSIG_XENO_MONKEY_CLICK_CTRL, src) + ..() + +// Scans slime +/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickCtrl(mob/living/user, mob/living/carbon/slime/S) + if(!cameranet.checkTurfVis(S.loc)) + to_chat(user, "Target is not near a camera. Cannot proceed.") + return + var/mob/living/C = user + var/mob/camera/aiEye/remote/xenobio/E = C.remote_control + var/area/mobarea = get_area(S.loc) + if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible) + scanner.attack(S, C) + +//Feeds a potion to slime +/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/carbon/slime/S) + if(!cameranet.checkTurfVis(S.loc)) + to_chat(user, "Target is not near a camera. Cannot proceed.") + return + var/mob/living/C = user + var/mob/camera/aiEye/remote/xenobio/E = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin + var/area/mobarea = get_area(S.loc) + if(QDELETED(X.current_potion)) + to_chat(C, "No potion loaded.") + return + if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible) + X.current_potion.attack(S, C) + +//Picks up slime +/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickShift(mob/living/user, mob/living/carbon/slime/S) + if(!cameranet.checkTurfVis(S.loc)) + to_chat(user, "Target is not near a camera. Cannot proceed.") + return + var/mob/living/C = user + var/mob/camera/aiEye/remote/xenobio/E = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin + var/area/mobarea = get_area(S.loc) + if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible) + if(X.stored_slimes.len >= X.max_slimes) + return + if(!S.ckey) + if(S.buckled) + S.buckled.unbuckle_mob() + S.Feedstop() + S.visible_message("[S] vanishes in a flash of light!") + S.forceMove(X) + X.stored_slimes += S + +//Place slimes +/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickShift(mob/living/user, turf/T) + if(!cameranet.checkTurfVis(T)) + to_chat(user, "Target is not near a camera. Cannot proceed.") + return + var/mob/living/C = user + var/mob/camera/aiEye/remote/xenobio/E = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin + var/area/turfarea = get_area(T) + if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) + for(var/mob/living/carbon/slime/S in X.stored_slimes) + S.forceMove(T) + S.visible_message("[S] warps in!") + X.stored_slimes -= S + +//Place monkey +/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickCtrl(mob/living/user, turf/T) + if(!cameranet.checkTurfVis(T)) + to_chat(user, "Target is not near a camera. Cannot proceed.") + return + var/mob/living/C = user + var/mob/camera/aiEye/remote/xenobio/E = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin + var/area/turfarea = get_area(T) + + if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) + if(X.monkeys >= 1) + var/mob/living/carbon/human/monkey/food = new /mob/living/carbon/human/monkey(E.loc) + food.LAssailant = C + X.monkeys -- + to_chat(user, "[X] now has [X.monkeys] monkeys left.") + +//Pick up monkey +/obj/machinery/computer/camera_advanced/xenobio/proc/XenoMonkeyClickCtrl(mob/living/user, mob/living/carbon/monkey/M) + if(!cameranet.checkTurfVis(M.loc)) + to_chat(user, "Target is not near a camera. Cannot proceed.") + return + var/mob/living/C = user + var/mob/camera/aiEye/remote/xenobio/E = C.remote_control + var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin + var/area/mobarea = get_area(M.loc) + + if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible) + if(issmall(M) && M.stat) + M.visible_message("[M] vanishes as [M.p_theyre()] reclaimed for recycling!") + X.monkeys = round(X.monkeys + 0.2,0.1) + qdel(M) diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index fdc89eb09a6579ebcf8649fcd551691ad41cb247..d21323c80b1e697376d761ab9ae13ec647215c29 100644 GIT binary patch delta 13114 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 Date: Fri, 15 Feb 2019 19:47:45 -0800 Subject: [PATCH 06/42] Added slime type to slimepotion --- .../reagents/chemistry/recipes/slime_extracts.dm | 8 ++++---- .../research/xenobiology/xenobio_camera.dm | 4 ++-- code/modules/research/xenobiology/xenobiology.dm | 16 ++++++++-------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index aa457938afc..afbc94a9455 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -250,7 +250,7 @@ /datum/chemical_reaction/slimestabilizer/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/stabilizer/P = new /obj/item/slimepotion/stabilizer + var/obj/item/slimepotion/slime/stabilizer/P = new /obj/item/slimepotion/slime/stabilizer P.forceMove(get_turf(holder.my_atom)) //Dark Blue @@ -380,7 +380,7 @@ /datum/chemical_reaction/slimepsteroid/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/steroid/P = new /obj/item/slimepotion/steroid + var/obj/item/slimepotion/slime/steroid/P = new /obj/item/slimepotion/slime/steroid P.forceMove(get_turf(holder.my_atom)) /datum/chemical_reaction/slimejam @@ -423,7 +423,7 @@ /datum/chemical_reaction/slimemutator/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/mutator/P = new /obj/item/slimepotion/mutator + var/obj/item/slimepotion/slime/mutator/P = new /obj/item/slimepotion/slime/mutator P.forceMove(get_turf(holder.my_atom)) /datum/chemical_reaction/slimebloodlust @@ -469,7 +469,7 @@ /datum/chemical_reaction/docility/on_reaction(datum/reagents/holder) feedback_add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/docility/P = new /obj/item/slimepotion/docility + var/obj/item/slimepotion/slime/docility/P = new /obj/item/slimepotion/slime/docility P.forceMove(get_turf(holder.my_atom)) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 36535ee1e6b..c11ae3f4d4c 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -33,7 +33,7 @@ var/list/stored_slimes = list() var/max_slimes = 5 var/monkeys = 0 - var/obj/item/slimepotion/current_potion + var/obj/item/slimepotion/slime/current_potion var/obj/item/slime_scanner/scanner = new /obj/item/slime_scanner icon_screen = "slime_comp" @@ -111,7 +111,7 @@ to_chat(user, "You feed [O] to [src]. It now has [monkeys] monkey cubes stored.") qdel(O) return - else if (istype(O, /obj/item/slimepotion)) + else if (istype(O, /obj/item/slimepotion/slime)) var/replaced = FALSE if(user.drop_item()) if(!QDELETED(current_potion)) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index d8c167989d2..eb0753e5152 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -132,14 +132,14 @@ to_chat(user, "You cannot transfer [src] to [target]! It appears the potion must be given directly to a slime to absorb.") // le fluff faec return -/obj/item/slimepotion/docility +/obj/item/slimepotion/slime/docility name = "docility potion" desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame." icon = 'icons/obj/chemical.dmi' icon_state = "bottle19" var/being_used = 0 -/obj/item/slimepotion/docility/attack(mob/living/carbon/slime/M, mob/user) +/obj/item/slimepotion/slime/docility/attack(mob/living/carbon/slime/M, mob/user) if(!isslime(M)) to_chat(user, "The potion only works on slimes!") return @@ -260,13 +260,13 @@ SM.name = "[SM.name] as [user.real_name]" qdel(src) -/obj/item/slimepotion/steroid +/obj/item/slimepotion/slime/steroid name = "slime steroid" desc = "A potent chemical mix that will cause a baby slime to generate more extract." icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" -/obj/item/slimepotion/steroid/attack(mob/living/carbon/slime/M, mob/user) +/obj/item/slimepotion/slime/steroid/attack(mob/living/carbon/slime/M, mob/user) if(!isslime(M))//If target is not a slime. to_chat(user, "The steroid only works on baby slimes!") return ..() @@ -290,13 +290,13 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle17" -/obj/item/slimepotion/stabilizer +/obj/item/slimepotion/slime/stabilizer name = "slime stabilizer" desc = "A potent chemical mix that will reduce the chance of a slime mutating." icon = 'icons/obj/chemical.dmi' icon_state = "bottle15" -/obj/item/slimepotion/stabilizer/attack(mob/living/carbon/slime/M, mob/user) +/obj/item/slimepotion/slime/stabilizer/attack(mob/living/carbon/slime/M, mob/user) if(!isslime(M)) to_chat(user, "The stabilizer only works on slimes!") return ..() @@ -311,13 +311,13 @@ M.mutation_chance = Clamp(M.mutation_chance-15,0,100) qdel(src) -/obj/item/slimepotion/mutator +/obj/item/slimepotion/slime/mutator name = "slime mutator" desc = "A potent chemical mix that will increase the chance of a slime mutating." icon = 'icons/obj/chemical.dmi' icon_state = "bottle3" -/obj/item/slimepotion/mutator/attack(mob/living/carbon/slime/M, mob/user) +/obj/item/slimepotion/slime/mutator/attack(mob/living/carbon/slime/M, mob/user) if(!isslime(M)) to_chat(user, "The mutator only works on slimes!") return ..() From 2c6dcf94fe021d56278ef6a7ad1e69d71d11456c Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sat, 16 Feb 2019 08:55:07 -0800 Subject: [PATCH 07/42] Monkey Recycler Linking --- .../kitchen_machinery/monkeyrecycler.dm | 40 ++++++++++++------- .../research/xenobiology/xenobio_camera.dm | 37 ++++++++++++++--- 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 8fe5d2cf4d8..13da698baa1 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -14,6 +14,7 @@ var/cube_production = 1 var/cycle_through = 0 var/obj/item/reagent_containers/food/snacks/monkeycube/cube_type = /obj/item/reagent_containers/food/snacks/monkeycube + var/list/connected = list() /obj/machinery/monkey_recycler/New() ..() @@ -22,6 +23,11 @@ component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/stock_parts/matter_bin(null) RefreshParts() + +/obj/machinery/monkey_recycler/Destroy() + for(var/obj/machinery/computer/camera_advanced/xenobio/console in connected) + console.connected_recycler = null + return ..() /obj/machinery/monkey_recycler/RefreshParts() var/req_grind = 5 @@ -47,21 +53,25 @@ default_deconstruction_crowbar(O) if(istype(O, /obj/item/multitool)) - cycle_through++ - switch(cycle_through) - if(1) - cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/farwacube - if(2) - cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/wolpincube - if(3) - cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/stokcube - if(4) - cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/neaeracube - if(5) - cube_type = /obj/item/reagent_containers/food/snacks/monkeycube - cycle_through = 0 - to_chat(user, "You change the monkeycube type to [initial(cube_type.name)].") - + if(!panel_open) + cycle_through++ + switch(cycle_through) + if(1) + cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/farwacube + if(2) + cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/wolpincube + if(3) + cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/stokcube + if(4) + cube_type = /obj/item/reagent_containers/food/snacks/monkeycube/neaeracube + if(5) + cube_type = /obj/item/reagent_containers/food/snacks/monkeycube + cycle_through = 0 + to_chat(user, "You change the monkeycube type to [initial(cube_type.name)].") + else + var/obj/item/multitool/M = O + M.buffer = src + to_chat(user, "You save the data in the [O.name]'s buffer.") if(stat != 0) //NOPOWER etc return if(istype(O, /obj/item/grab)) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index c11ae3f4d4c..6311e64ae4f 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -35,6 +35,7 @@ var/monkeys = 0 var/obj/item/slimepotion/slime/current_potion var/obj/item/slime_scanner/scanner = new /obj/item/slime_scanner + var/obj/machinery/monkey_recycler/connected_recycler icon_screen = "slime_comp" icon_keyboard = "rd_key" @@ -46,6 +47,16 @@ eyeobj.icon = 'icons/obj/abductor.dmi' eyeobj.icon_state = "camera_target" +/obj/machinery/computer/camera_advanced/xenobio/Destroy() + stored_slimes = null + qdel(current_potion) + qdel(scanner) + for(var/i in contents) + var/mob/living/simple_animal/slime/S = i + if(istype(S)) + S.forceMove(drop_location()) + return ..() + /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/carbon/user) ..() if(slime_up_action) @@ -114,7 +125,7 @@ else if (istype(O, /obj/item/slimepotion/slime)) var/replaced = FALSE if(user.drop_item()) - if(!QDELETED(current_potion)) + if(current_potion) current_potion.forceMove(drop_location()) replaced = TRUE current_potion = O @@ -131,6 +142,13 @@ if(loaded) to_chat(user, "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.") return + else if (istype(O, /obj/item/multitool)) + var/obj/item/multitool/I = O + if (istype(I.buffer, /obj/machinery/monkey_recycler)) + to_chat(user, "You link [src] with [I.buffer] in [I] buffer.") + connected_recycler = I.buffer + connected_recycler.connected += src + return ..() /datum/action/innate/slime_place @@ -207,12 +225,17 @@ var/mob/living/carbon/human/C = owner var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control var/obj/machinery/computer/camera_advanced/xenobio/X = target - + var/obj/machinery/monkey_recycler/recycler = X.connected_recycler + + if(!recycler) + to_chat(owner, "There is no connected monkey recycler. Use a multitool to link one.") + return if(cameranet.checkTurfVis(remote_eye.loc)) for(var/mob/living/carbon/human/M in remote_eye.loc) if(issmall(M) && M.stat) M.visible_message("[M] vanishes as [M.p_theyre()] reclaimed for recycling!") - X.monkeys = round(X.monkeys + 0.2,0.1) + recycler.use_power(500) + X.monkeys = round(X.monkeys + recycler.cube_production/recycler.required_grind, 0.1) qdel(M) else to_chat(owner, "Target is not near a camera. Cannot proceed.") @@ -391,9 +414,13 @@ var/mob/camera/aiEye/remote/xenobio/E = C.remote_control var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin var/area/mobarea = get_area(M.loc) - + var/obj/machinery/monkey_recycler/recycler = X.connected_recycler + if(!recycler) + to_chat(C, "There is no connected monkey recycler. Use a multitool to link one.") + return if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible) if(issmall(M) && M.stat) M.visible_message("[M] vanishes as [M.p_theyre()] reclaimed for recycling!") - X.monkeys = round(X.monkeys + 0.2,0.1) + recycler.use_power(500) + X.monkeys = round(X.monkeys + recycler.cube_production/recycler.required_grind, 0.1) qdel(M) From 93c81d6675bd3f0286089f5003fe98c1a232c970 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sat, 16 Feb 2019 09:29:19 -0800 Subject: [PATCH 08/42] Woops --- code/modules/research/xenobiology/xenobio_camera.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 6311e64ae4f..80e83182598 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -125,7 +125,7 @@ else if (istype(O, /obj/item/slimepotion/slime)) var/replaced = FALSE if(user.drop_item()) - if(current_potion) + if(!QDELETED(current_potion)) current_potion.forceMove(drop_location()) replaced = TRUE current_potion = O From 51bb708c5bbd1e8f9abac7930c7b0c44f65f2bc6 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sat, 16 Feb 2019 09:31:50 -0800 Subject: [PATCH 09/42] woops --- code/modules/research/xenobiology/xenobio_camera.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 80e83182598..941673be184 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -52,7 +52,7 @@ qdel(current_potion) qdel(scanner) for(var/i in contents) - var/mob/living/simple_animal/slime/S = i + var/mob/living/carbon/slime/S = i if(istype(S)) S.forceMove(drop_location()) return ..() From 888c0ad018ce8fc17ec33fa41b55ea6842cc1bb2 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sat, 16 Feb 2019 14:52:17 -0800 Subject: [PATCH 10/42] Fox's Requested Changes --- code/modules/research/xenobiology/xenobio_camera.dm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 941673be184..aa240c7c17a 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -48,13 +48,11 @@ eyeobj.icon_state = "camera_target" /obj/machinery/computer/camera_advanced/xenobio/Destroy() - stored_slimes = null - qdel(current_potion) + QDEL_NULL(current_potion) qdel(scanner) - for(var/i in contents) - var/mob/living/carbon/slime/S = i - if(istype(S)) - S.forceMove(drop_location()) + for(var/mob/living/carbon/slime/S in stored_slimes) + S.forceMove(drop_location()) + stored_slimes.Cut() return ..() /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/carbon/user) From 9c11d73532647a5c98557c799af93f0ca19659f0 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Tue, 26 Feb 2019 12:47:50 -0800 Subject: [PATCH 11/42] Fat Fox Changes --- .../kitchen_machinery/monkeyrecycler.dm | 9 ++- .../research/xenobiology/xenobio_camera.dm | 74 +++++++++++-------- 2 files changed, 50 insertions(+), 33 deletions(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 13da698baa1..fa4d8392665 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -1,3 +1,5 @@ +GLOBAL_LIST_EMPTY(monkey_recyclers) + /obj/machinery/monkey_recycler name = "Monkey Recycler" desc = "A machine used for recycling dead monkeys into monkey cubes." @@ -22,9 +24,12 @@ component_parts += new /obj/item/circuitboard/monkey_recycler(null) component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/stock_parts/matter_bin(null) + GLOB.monkey_recyclers += src RefreshParts() - + /obj/machinery/monkey_recycler/Destroy() + if(src in GLOB.monkey_recyclers) + GLOB.monkey_recyclers -= src for(var/obj/machinery/computer/camera_advanced/xenobio/console in connected) console.connected_recycler = null return ..() @@ -71,7 +76,7 @@ else var/obj/item/multitool/M = O M.buffer = src - to_chat(user, "You save the data in the [O.name]'s buffer.") + to_chat(user, "You log [src] in the [M]'s buffer.") if(stat != 0) //NOPOWER etc return if(istype(O, /obj/item/grab)) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index aa240c7c17a..9c054dcfb64 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -26,9 +26,9 @@ var/datum/action/innate/slime_pick_up/slime_up_action = new var/datum/action/innate/feed_slime/feed_slime_action = new var/datum/action/innate/monkey_recycle/monkey_recycle_action = new - var/datum/action/innate/transfer_potion/transfer_potion_action = new - var/datum/action/innate/hotkey_help/hotkey_help_action = new - var/datum/action/innate/slime_scan/slime_scan_action = new + var/datum/action/innate/feed_potion/potion_action = new + var/datum/action/innate/hotkey_help/hotkey_help = new + var/datum/action/innate/slime_scan/scan_action = new var/list/stored_slimes = list() var/max_slimes = 5 @@ -47,6 +47,12 @@ eyeobj.icon = 'icons/obj/abductor.dmi' eyeobj.icon_state = "camera_target" +/obj/machinery/computer.camera_advanced/xenobio/New() + for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) + if(get_area(recycler.loc) == get_area(loc)) + connected_recycler = recycler + connected_recycler.connected += src + /obj/machinery/computer/camera_advanced/xenobio/Destroy() QDEL_NULL(current_potion) qdel(scanner) @@ -57,40 +63,41 @@ /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/carbon/user) ..() + if(slime_up_action) slime_up_action.target = src slime_up_action.Grant(user) actions += slime_up_action - + if(slime_place_action) slime_place_action.target = src slime_place_action.Grant(user) actions += slime_place_action - + if(feed_slime_action) feed_slime_action.target = src feed_slime_action.Grant(user) actions += feed_slime_action - + if(monkey_recycle_action) monkey_recycle_action.target = src monkey_recycle_action.Grant(user) actions += monkey_recycle_action + + if(scan_action) + scan_action.target = src + scan_action.Grant(user) + actions += scan_action + + if(potion_action) + potion_action.target = src + potion_action.Grant(user) + actions += potion_action - if(transfer_potion_action) - transfer_potion_action.target = src - transfer_potion_action.Grant(user) - actions += transfer_potion_action - - if(hotkey_help_action) - hotkey_help_action.target = src - hotkey_help_action.Grant(user) - actions += hotkey_help_action - - if(slime_scan_action) - slime_scan_action.target = src - slime_scan_action.Grant(user) - actions += slime_scan_action + if(hotkey_help) + hotkey_help.target = src + hotkey_help.Grant(user) + actions += hotkey_help RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, .proc/XenoSlimeClickCtrl) RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, .proc/XenoSlimeClickAlt) @@ -99,6 +106,12 @@ RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, .proc/XenoTurfClickCtrl) RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl) + if(!connected_recycler) + for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) + if(get_area(recycler.loc) == get_area(loc)) + connected_recycler = recycler + connected_recycler.connected += src + /obj/machinery/computer/camera_advanced/xenobio/remove_eye_control(mob/living/user) UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL) UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT) @@ -120,7 +133,7 @@ to_chat(user, "You feed [O] to [src]. It now has [monkeys] monkey cubes stored.") qdel(O) return - else if (istype(O, /obj/item/slimepotion/slime)) + else if(istype(O, /obj/item/slimepotion/slime)) var/replaced = FALSE if(user.drop_item()) if(!QDELETED(current_potion)) @@ -140,14 +153,14 @@ if(loaded) to_chat(user, "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.") return - else if (istype(O, /obj/item/multitool)) - var/obj/item/multitool/I = O + ..() + +/obj/machinery/computer/camera_advanced/xenobio/multitool_act(mob/living/user, obj/item/multitool/I) if (istype(I.buffer, /obj/machinery/monkey_recycler)) to_chat(user, "You link [src] with [I.buffer] in [I] buffer.") connected_recycler = I.buffer connected_recycler.connected += src - return - ..() + return TRUE /datum/action/innate/slime_place name = "Place Slimes" @@ -238,11 +251,11 @@ else to_chat(owner, "Target is not near a camera. Cannot proceed.") -/datum/action/innate/transfer_potion +/datum/action/innate/feed_potion name = "Transfer Potion" button_icon_state = "slime_potion" -/datum/action/innate/transfer_potion/Activate() +/datum/action/innate/feed_potion/Activate() if(!target || !ishuman(owner)) return @@ -256,9 +269,8 @@ if(cameranet.checkTurfVis(remote_eye.loc)) for(var/mob/living/carbon/slime/S in remote_eye.loc) - if(!QDELETED(X.current_potion)) - X.current_potion.attack(S, C) - break + X.current_potion.attack(S, C) + break else to_chat(owner, "Target is not near a camera. Cannot proceed.") @@ -398,7 +410,7 @@ if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) if(X.monkeys >= 1) - var/mob/living/carbon/human/monkey/food = new /mob/living/carbon/human/monkey(E.loc) + var/mob/living/carbon/human/monkey/food = new /mob/living/carbon/human/monkey(T) food.LAssailant = C X.monkeys -- to_chat(user, "[X] now has [X.monkeys] monkeys left.") From 5eab54441ea5bb3e46273514f8b99e2522ff88d2 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Tue, 26 Feb 2019 12:49:23 -0800 Subject: [PATCH 12/42] Missed something --- code/modules/research/xenobiology/xenobio_camera.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 9c054dcfb64..45bb181aeab 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -413,6 +413,7 @@ var/mob/living/carbon/human/monkey/food = new /mob/living/carbon/human/monkey(T) food.LAssailant = C X.monkeys -- + X.monkeys = round(X.monkeys, 0.1) to_chat(user, "[X] now has [X.monkeys] monkeys left.") //Pick up monkey From 0cb0341899f18e736a83cd7d1c7023d9a04260cb Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Wed, 27 Feb 2019 14:57:31 -0800 Subject: [PATCH 13/42] fixes --- code/modules/research/xenobiology/xenobio_camera.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 45bb181aeab..3f187224f19 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -153,14 +153,14 @@ if(loaded) to_chat(user, "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.") return - ..() - -/obj/machinery/computer/camera_advanced/xenobio/multitool_act(mob/living/user, obj/item/multitool/I) - if (istype(I.buffer, /obj/machinery/monkey_recycler)) + else if(ismultitool(O)) + var/obj/item/multitool/I = O + if(istype(I.buffer, /obj/machinery/monkey_recycler)) to_chat(user, "You link [src] with [I.buffer] in [I] buffer.") connected_recycler = I.buffer connected_recycler.connected += src - return TRUE + return + ..() /datum/action/innate/slime_place name = "Place Slimes" From 3d55a1e109fc7be34b0aa9f3986ebfb883ec9bd5 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Fri, 1 Mar 2019 09:18:05 -0800 Subject: [PATCH 14/42] Added slime_scan() --- code/game/objects/items/devices/scanners.dm | 3 +++ code/modules/research/xenobiology/xenobio_camera.dm | 7 ++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index dd214c7a673..9c9ad45e9ba 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -526,6 +526,9 @@ REAGENT SCANNER materials = list(MAT_METAL=30, MAT_GLASS=20) /obj/item/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob) + slime_scan(M, user) + +/proc/slime_scan(mob/living/simple_animal/slime/M, mob/living/user) if(!isslime(M)) user.show_message("This device can only scan slimes!", 1) return diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 3f187224f19..76e2692e4d0 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -34,7 +34,6 @@ var/max_slimes = 5 var/monkeys = 0 var/obj/item/slimepotion/slime/current_potion - var/obj/item/slime_scanner/scanner = new /obj/item/slime_scanner var/obj/machinery/monkey_recycler/connected_recycler icon_screen = "slime_comp" @@ -55,7 +54,6 @@ /obj/machinery/computer/camera_advanced/xenobio/Destroy() QDEL_NULL(current_potion) - qdel(scanner) for(var/mob/living/carbon/slime/S in stored_slimes) S.forceMove(drop_location()) stored_slimes.Cut() @@ -296,11 +294,10 @@ return var/mob/living/C = owner var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control - var/obj/machinery/computer/camera_advanced/xenobio/X = target if(cameranet.checkTurfVis(remote_eye.loc)) for(var/mob/living/carbon/slime/S in remote_eye.loc) - X.scanner.attack(S, C) + slime_scan(S, C) else to_chat(owner, "Target is not near a camera. Cannot proceed.") @@ -346,7 +343,7 @@ var/mob/camera/aiEye/remote/xenobio/E = C.remote_control var/area/mobarea = get_area(S.loc) if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible) - scanner.attack(S, C) + slime_scan(S, C) //Feeds a potion to slime /obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/carbon/slime/S) From c569c70ed68d6bfb17b563cfe75bdb89ef764aa7 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sat, 2 Mar 2019 08:53:05 -0800 Subject: [PATCH 15/42] Fox Changes --- code/game/objects/items/devices/scanners.dm | 2 +- .../kitchen_machinery/monkeyrecycler.dm | 3 +- .../research/xenobiology/xenobio_camera.dm | 52 +++++++++---------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 9c9ad45e9ba..8ad7fae6d2d 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -528,7 +528,7 @@ REAGENT SCANNER /obj/item/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob) slime_scan(M, user) -/proc/slime_scan(mob/living/simple_animal/slime/M, mob/living/user) +/proc/slime_scan(mob/living/carbon/slime/M, mob/living/user) if(!isslime(M)) user.show_message("This device can only scan slimes!", 1) return diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index fa4d8392665..1b8f61bb7bf 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -28,8 +28,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) RefreshParts() /obj/machinery/monkey_recycler/Destroy() - if(src in GLOB.monkey_recyclers) - GLOB.monkey_recyclers -= src + GLOB.monkey_recyclers -= src for(var/obj/machinery/computer/camera_advanced/xenobio/console in connected) console.connected_recycler = null return ..() diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 76e2692e4d0..eea44f20082 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -26,9 +26,9 @@ var/datum/action/innate/slime_pick_up/slime_up_action = new var/datum/action/innate/feed_slime/feed_slime_action = new var/datum/action/innate/monkey_recycle/monkey_recycle_action = new + var/datum/action/innate/slime_scan/scan_action = new var/datum/action/innate/feed_potion/potion_action = new var/datum/action/innate/hotkey_help/hotkey_help = new - var/datum/action/innate/slime_scan/scan_action = new var/list/stored_slimes = list() var/max_slimes = 5 @@ -39,14 +39,7 @@ icon_screen = "slime_comp" icon_keyboard = "rd_key" -/obj/machinery/computer/camera_advanced/xenobio/CreateEye() - eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src)) - eyeobj.origin = src - eyeobj.visible_icon = 1 - eyeobj.icon = 'icons/obj/abductor.dmi' - eyeobj.icon_state = "camera_target" - -/obj/machinery/computer.camera_advanced/xenobio/New() +/obj/machinery/camera_advanced/xenobio/New() for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) if(get_area(recycler.loc) == get_area(loc)) connected_recycler = recycler @@ -59,6 +52,13 @@ stored_slimes.Cut() return ..() +/obj/machinery/computer/camera_advanced/xenobio/CreateEye() + eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src)) + eyeobj.origin = src + eyeobj.visible_icon = 1 + eyeobj.icon = 'icons/obj/abductor.dmi' + eyeobj.icon_state = "camera_target" + /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/carbon/user) ..() @@ -249,8 +249,24 @@ else to_chat(owner, "Target is not near a camera. Cannot proceed.") +/datum/action/innate/slime_scan + name = "Scan Slime" + button_icon_state = "slime_scan" + +/datum/action/innate/slime_scan/Activate() + if(!target || !isliving(owner)) + return + var/mob/living/C = owner + var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control + + if(cameranet.checkTurfVis(remote_eye.loc)) + for(var/mob/living/carbon/slime/S in remote_eye.loc) + slime_scan(S, C) + else + to_chat(owner, "Target is not near a camera. Cannot proceed.") + /datum/action/innate/feed_potion - name = "Transfer Potion" + name = "Apply Potion" button_icon_state = "slime_potion" /datum/action/innate/feed_potion/Activate() @@ -285,22 +301,6 @@ to_chat(owner, "Alt-click a slime to feed it a potion.") to_chat(owner, "Ctrl-click or a dead monkey to recycle it, or the floor to place a new monkey.") -/datum/action/innate/slime_scan - name = "Scan Slime" - button_icon_state = "slime_scan" - -/datum/action/innate/slime_scan/Activate() - if(!target || !isliving(owner)) - return - var/mob/living/C = owner - var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control - - if(cameranet.checkTurfVis(remote_eye.loc)) - for(var/mob/living/carbon/slime/S in remote_eye.loc) - slime_scan(S, C) - else - to_chat(owner, "Target is not near a camera. Cannot proceed.") - // // Alternate clicks for slime, monkey and open turf if using a xenobio console From 74ef3c0c88e6fa73cfab0a2ef4bb031ab4095380 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sat, 2 Mar 2019 08:56:07 -0800 Subject: [PATCH 16/42] woops --- code/modules/research/xenobiology/xenobio_camera.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index eea44f20082..4af98593bbd 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -39,7 +39,7 @@ icon_screen = "slime_comp" icon_keyboard = "rd_key" -/obj/machinery/camera_advanced/xenobio/New() +/obj/machinery/computer/camera_advanced/xenobio/New() for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) if(get_area(recycler.loc) == get_area(loc)) connected_recycler = recycler From 006a1197c3d4440dc6a8763867b50813098bd106 Mon Sep 17 00:00:00 2001 From: Jazz23 Date: Sun, 3 Mar 2019 07:17:45 -0800 Subject: [PATCH 17/42] Calls Parent on New --- code/modules/research/xenobiology/xenobio_camera.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 4af98593bbd..b695ca3a1b4 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -40,6 +40,7 @@ icon_keyboard = "rd_key" /obj/machinery/computer/camera_advanced/xenobio/New() + ..() for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) if(get_area(recycler.loc) == get_area(loc)) connected_recycler = recycler From 8bef0cd2e2a1354b5c097376aff092bbb246258d Mon Sep 17 00:00:00 2001 From: AffectedArc07 Date: Sat, 23 Feb 2019 21:10:35 +0000 Subject: [PATCH 18/42] Adds in cell management console --- _maps/map_files/cyberiad/cyberiad.dmm | 9 +- code/__HELPERS/time.dm | 4 + code/game/machinery/computer/brigcells.dm | 61 + .../game/machinery/computer/buildandrepair.dm | 3 + code/game/machinery/computer/prisoner.dm | 2 +- code/game/machinery/doors/brigdoors.dm | 15 +- .../research/designs/comp_board_designs.dm | 10 + icons/obj/computer.dmi | Bin 51647 -> 51914 bytes nano/templates/brig_cells.tmpl | 34 + paradise.dme | 4777 +++++++++-------- 10 files changed, 2521 insertions(+), 2394 deletions(-) create mode 100644 code/game/machinery/computer/brigcells.dm create mode 100644 nano/templates/brig_cells.tmpl diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 579e69c9762..e84e748a047 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -2151,6 +2151,7 @@ }, /area/shuttle/syndicate_sit) "aey" = ( +/obj/machinery/computer/brigcells, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "darkred" @@ -6056,13 +6057,14 @@ /turf/simulated/floor/plasteel, /area/security/permabrig) "akN" = ( -/obj/item/twohanded/required/kirbyplants, /obj/machinery/newscaster{ pixel_y = 30 }, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = 32 }, +/obj/structure/closet/secure_closet/hos, +/obj/item/reagent_containers/food/drinks/flask/barflask, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -7070,8 +7072,6 @@ /turf/simulated/floor/plating, /area/security/permabrig) "amt" = ( -/obj/structure/closet/secure_closet/hos, -/obj/item/reagent_containers/food/drinks/flask/barflask, /obj/machinery/requests_console{ announcementConsole = 1; department = "Head of Security's Desk"; @@ -7080,6 +7080,7 @@ pixel_x = 30; pixel_y = 0 }, +/obj/machinery/computer/brigcells, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -8160,7 +8161,7 @@ }, /area/security/evidence) "aom" = ( -/obj/machinery/computer/station_alert/all, +/obj/machinery/computer/brigcells, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "darkred" diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index d36fd9449d4..54fd47a220d 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -102,6 +102,10 @@ proc/isDay(var/month, var/day) var/numMinutes = (seconds - numSeconds) / 60 return "[numMinutes] [numMinutes > 1 ? "minutes" : "minute"] and [numSeconds] seconds." +//Take a value in seconds and makes it display like a clock +/proc/seconds_to_clock(var/seconds as num) + return "[add_zero(num2text((seconds / 60) % 60), 2)]:[add_zero(num2text(seconds % 60), 2)]" + //Takes a value of time in deciseconds. //Returns a text value of that number in hours, minutes, or seconds. /proc/DisplayTimeText(time_value) diff --git a/code/game/machinery/computer/brigcells.dm b/code/game/machinery/computer/brigcells.dm new file mode 100644 index 00000000000..acd44d3e240 --- /dev/null +++ b/code/game/machinery/computer/brigcells.dm @@ -0,0 +1,61 @@ +/obj/machinery/computer/brigcells + name = "cell management computer" + desc = "Used to manage prison cells." + icon_keyboard = "security_key" + icon_screen = "cell_monitor" + use_power = IDLE_POWER_USE + idle_power_usage = 250 + active_power_usage = 500 + circuit = /obj/item/circuitboard/brigcells + light_color = LIGHT_COLOR_DARKRED + req_access = list(access_brig) + +/obj/machinery/computer/brigcells/attack_ai(mob/user) + attack_hand(user) + ui_interact(user) + +/obj/machinery/computer/brigcells/attack_hand(mob/user) + add_fingerprint(user) + if(stat & (BROKEN|NOPOWER)) + return + if(!allowed(user)) + to_chat(user, "Access denied.") + return + ui_interact(user) + +/obj/machinery/computer/brigcells/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "brig_cells.tmpl", "Brig Cell Management", 1000, 400) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/computer/brigcells/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state) + var/data[0] + var/list/timers = list() + /*"Detainee [logname] has been incarcerated for [seconds_to_time(timetoset / 10)] for the charges of, '[logcharges]'. \ + Arresting Officer: [usr.name].[R ? "" : " Detainee record not found, manual record update required."]"*/ + for(var/obj/machinery/door_timer/T in world) + var/timer = list() + timer["cell_id"] = T.name + timer["occupant"] = T.occupant + timer["crimes"] = T.crimes + timer["brigged_by"] = T.officer + if(T.time == 0) + timer["background"] = "'background-color:#007f47'" + else + timer["background"] = "'background-color:#890E26'" + //timer["time_set"] = seconds_to_clock(T.timetoset) + timer["time_set"] = seconds_to_clock(T.time / 10) + timer["time_left"] = seconds_to_clock(T.timeleft()) + timer["ref"] = "\ref[T]" + timers[++timers.len] += timer + timers = sortByKey(timers, "cell_id") + data["cells"] = timers + return data + +/obj/machinery/computer/brigcells/Topic(href, href_list) + if(href_list["release"]) + var/obj/machinery/door_timer/T = locate(href_list["release"]) + T.timer_end() + T.Radio.autosay("Timer stopped manually from a cell management console.", T.name, "Security", list(z)) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 9060833d585..2b294db78c9 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -219,6 +219,9 @@ /obj/item/circuitboard/prisoner name = "Circuit board (Prisoner Management)" build_path = /obj/machinery/computer/prisoner +/obj/item/circuitboard/brigcells + name = "Circuit board (Brig Cell Control)" + build_path = /obj/machinery/computer/brigcells // RD console circuits, so that {de,re}constructing one of the special consoles doesn't ruin everything forever diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index ea684d9596b..672ebed32e4 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/prisoner - name = "prisoner management console" + name = "implant management console" icon = 'icons/obj/computer.dmi' icon_keyboard = "security_key" icon_screen = "explosive" diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index df20e6fcf37..fe67dfdc7f7 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -31,6 +31,10 @@ maptext_height = 26 maptext_width = 32 maptext_y = -1 + var/occupant = "None" + var/crimes = "None" + var/time = 0 + var/officer = "None" /obj/machinery/door_timer/proc/print_report() var/logname = input(usr, "Name of the guilty?","[id] log name") @@ -38,6 +42,10 @@ if(!logname || !logcharges) return 0 + occupant = logname + crimes = logcharges + time = timetoset + officer = usr.name for(var/obj/machinery/computer/prisoner/C in GLOB.prisoncomputer_list) var/obj/item/paper/P = new /obj/item/paper(C.loc) @@ -121,6 +129,7 @@ if(timing) if(timeleft() <= 0) Radio.autosay("Timer has expired. Releasing prisoner.", name, "Security", list(z)) + occupant = "None" timer_end() // open doors, reset timer, clear status screen timing = 0 . = PROCESS_KILL @@ -181,7 +190,11 @@ if(stat & (NOPOWER|BROKEN)) return 0 - // Reset releasetime + // Reset vars + occupant = "None" + crimes = "None" + time = 0 + officer = "None" releasetime = 0 printed = 0 if(prisoner) diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 57da7142b7c..a10ee67362d 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -209,6 +209,16 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000) + build_path = /obj/item/circuitboard/brigcells + category = list("Computer Boards") + +/datum/design/brigcells + name = "Console Board (Brig Cell Management Console)" + desc = "Allows for the construction of circuit boards used to build a brig cell management console." + id = "brigcells" + req_tech = list("programming" = 2) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000) build_path = /obj/item/circuitboard/prisoner category = list("Computer Boards") diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index c51b8d7050bfdf0ca185e4d2993b579e6539a62c..ac416274ebecedaabe4fdce9cfca596080d906e6 100644 GIT binary patch delta 9184 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 diff --git a/nano/templates/brig_cells.tmpl b/nano/templates/brig_cells.tmpl new file mode 100644 index 00000000000..652c8926378 --- /dev/null +++ b/nano/templates/brig_cells.tmpl @@ -0,0 +1,34 @@ + +

+ + + + + + + + + + + + + + + {{for data.cells}} + + + + + + + + + + {{/for}} + +
CellOccupantCrimesBrigged ByTime Brigged ForTime LeftRelease
{{:value.cell_id}}{{:value.occupant}}{{:value.crimes}}{{:value.brigged_by}}{{:value.time_set}}{{:value.time_left}}{{:helper.link('Release', null, {'release' : value.ref}, null, 'infoButton')}}
+
+
\ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 094e49a99f0..cb42e2f4997 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1,2388 +1,2389 @@ -// DM Environment file for paradise.dme. -// All manual changes should be made outside the BEGIN_ and END_ blocks. - // New source code should be placed in .dm files: choose File/New --> Code File. -// BEGIN_INTERNALS -// END_INTERNALS -// BEGIN_FILE_DIR -#define FILE_DIR . -// END_FILE_DIR -// BEGIN_PREFERENCES -#define DEBUG -// END_PREFERENCES -// BEGIN_INCLUDE -#include "_maps\__MAP_DEFINES.dm" -#include "_maps\cyberiad.dm" -#include "code\_compile_options.dm" -#include "code\hub.dm" -#include "code\world.dm" -#include "code\__DEFINES\_globals.dm" -#include "code\__DEFINES\_readme.dm" -#include "code\__DEFINES\admin.dm" -#include "code\__DEFINES\antagonists.dm" -#include "code\__DEFINES\atmospherics.dm" -#include "code\__DEFINES\bots.dm" -#include "code\__DEFINES\callbacks.dm" -#include "code\__DEFINES\clothing.dm" -#include "code\__DEFINES\combat.dm" -#include "code\__DEFINES\components.dm" -#include "code\__DEFINES\construction.dm" -#include "code\__DEFINES\contracts.dm" -#include "code\__DEFINES\crafting.dm" -#include "code\__DEFINES\error_handler.dm" -#include "code\__DEFINES\flags.dm" -#include "code\__DEFINES\game.dm" -#include "code\__DEFINES\gamemode.dm" -#include "code\__DEFINES\genetics.dm" -#include "code\__DEFINES\hud.dm" -#include "code\__DEFINES\hydroponics.dm" -#include "code\__DEFINES\inventory.dm" -#include "code\__DEFINES\is_helpers.dm" -#include "code\__DEFINES\language.dm" -#include "code\__DEFINES\layers.dm" -#include "code\__DEFINES\lighting.dm" -#include "code\__DEFINES\machines.dm" -#include "code\__DEFINES\math.dm" -#include "code\__DEFINES\MC.dm" -#include "code\__DEFINES\misc.dm" -#include "code\__DEFINES\mobs.dm" -#include "code\__DEFINES\move_force.dm" -#include "code\__DEFINES\pda.dm" -#include "code\__DEFINES\pipes.dm" -#include "code\__DEFINES\preferences.dm" -#include "code\__DEFINES\process_scheduler.dm" -#include "code\__DEFINES\qdel.dm" -#include "code\__DEFINES\reagents.dm" -#include "code\__DEFINES\role_preferences.dm" -#include "code\__DEFINES\rolebans.dm" -#include "code\__DEFINES\shuttle.dm" -#include "code\__DEFINES\sight.dm" -#include "code\__DEFINES\snpc.dm" -#include "code\__DEFINES\sound.dm" -#include "code\__DEFINES\stat.dm" -#include "code\__DEFINES\station_goals.dm" -#include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\subsystems.dm" -#include "code\__DEFINES\tick.dm" -#include "code\__DEFINES\typeids.dm" -#include "code\__DEFINES\vv.dm" -#include "code\__DEFINES\zlevel.dm" -#include "code\__HELPERS\_logging.dm" -#include "code\__HELPERS\_string_lists.dm" -#include "code\__HELPERS\AnimationLibrary.dm" -#include "code\__HELPERS\cmp.dm" -#include "code\__HELPERS\constants.dm" -#include "code\__HELPERS\experimental.dm" -#include "code\__HELPERS\files.dm" -#include "code\__HELPERS\game.dm" -#include "code\__HELPERS\global_lists.dm" -#include "code\__HELPERS\icon_smoothing.dm" -#include "code\__HELPERS\icons.dm" -#include "code\__HELPERS\lists.dm" -#include "code\__HELPERS\maths.dm" -#include "code\__HELPERS\matrices.dm" -#include "code\__HELPERS\mobs.dm" -#include "code\__HELPERS\names.dm" -#include "code\__HELPERS\pronouns.dm" -#include "code\__HELPERS\qdel.dm" -#include "code\__HELPERS\sanitize_values.dm" -#include "code\__HELPERS\text.dm" -#include "code\__HELPERS\time.dm" -#include "code\__HELPERS\type2type.dm" -#include "code\__HELPERS\unique_ids.dm" -#include "code\__HELPERS\unsorted.dm" -#include "code\__HELPERS\sorts\__main.dm" -#include "code\__HELPERS\sorts\InsertSort.dm" -#include "code\__HELPERS\sorts\MergeSort.dm" -#include "code\__HELPERS\sorts\TimSort.dm" -#include "code\_DATASTRUCTURES\heap.dm" -#include "code\_DATASTRUCTURES\stacks.dm" -#include "code\_globalvars\configuration.dm" -#include "code\_globalvars\database.dm" -#include "code\_globalvars\game_modes.dm" -#include "code\_globalvars\genetics.dm" -#include "code\_globalvars\logging.dm" -#include "code\_globalvars\mapping.dm" -#include "code\_globalvars\misc.dm" -#include "code\_globalvars\station.dm" -#include "code\_globalvars\unused.dm" -#include "code\_globalvars\lists\flavor_misc.dm" -#include "code\_globalvars\lists\fortunes.dm" -#include "code\_globalvars\lists\misc.dm" -#include "code\_globalvars\lists\mobs.dm" -#include "code\_globalvars\lists\names.dm" -#include "code\_globalvars\lists\objects.dm" -#include "code\_globalvars\lists\reagents.dm" -#include "code\_globalvars\lists\typecache.dm" -#include "code\_onclick\adjacent.dm" -#include "code\_onclick\ai.dm" -#include "code\_onclick\click.dm" -#include "code\_onclick\click_override.dm" -#include "code\_onclick\cyborg.dm" -#include "code\_onclick\drag_drop.dm" -#include "code\_onclick\item_attack.dm" -#include "code\_onclick\observer.dm" -#include "code\_onclick\other_mobs.dm" -#include "code\_onclick\overmind.dm" -#include "code\_onclick\rig.dm" -#include "code\_onclick\telekinesis.dm" -#include "code\_onclick\hud\_defines.dm" -#include "code\_onclick\hud\action_button.dm" -#include "code\_onclick\hud\ai.dm" -#include "code\_onclick\hud\alert.dm" -#include "code\_onclick\hud\alien.dm" -#include "code\_onclick\hud\alien_larva.dm" -#include "code\_onclick\hud\bot.dm" -#include "code\_onclick\hud\constructs.dm" -#include "code\_onclick\hud\devil.dm" -#include "code\_onclick\hud\fullscreen.dm" -#include "code\_onclick\hud\guardian.dm" -#include "code\_onclick\hud\hud.dm" -#include "code\_onclick\hud\human.dm" -#include "code\_onclick\hud\monkey.dm" -#include "code\_onclick\hud\movable_screen_objects.dm" -#include "code\_onclick\hud\other_mobs.dm" -#include "code\_onclick\hud\picture_in_picture.dm" -#include "code\_onclick\hud\radial.dm" -#include "code\_onclick\hud\robot.dm" -#include "code\_onclick\hud\screen_objects.dm" -#include "code\_onclick\hud\swarmer.dm" -#include "code\ATMOSPHERICS\atmospherics.dm" -#include "code\ATMOSPHERICS\datum_icon_manager.dm" -#include "code\ATMOSPHERICS\datum_pipeline.dm" -#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm" -#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm" -#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm" -#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm" -#include "code\ATMOSPHERICS\components\binary_devices\pump.dm" -#include "code\ATMOSPHERICS\components\binary_devices\valve.dm" -#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm" -#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm" -#include "code\ATMOSPHERICS\components\omni_devices\filter.dm" -#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm" -#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\tvalve.dm" -#include "code\ATMOSPHERICS\components\unary_devices\cold_sink.dm" -#include "code\ATMOSPHERICS\components\unary_devices\generator_input.dm" -#include "code\ATMOSPHERICS\components\unary_devices\heat_exchanger.dm" -#include "code\ATMOSPHERICS\components\unary_devices\heat_source.dm" -#include "code\ATMOSPHERICS\components\unary_devices\outlet_injector.dm" -#include "code\ATMOSPHERICS\components\unary_devices\oxygen_generator.dm" -#include "code\ATMOSPHERICS\components\unary_devices\passive_vent.dm" -#include "code\ATMOSPHERICS\components\unary_devices\portables_connector.dm" -#include "code\ATMOSPHERICS\components\unary_devices\tank.dm" -#include "code\ATMOSPHERICS\components\unary_devices\thermal_plate.dm" -#include "code\ATMOSPHERICS\components\unary_devices\unary_base.dm" -#include "code\ATMOSPHERICS\components\unary_devices\vent_pump.dm" -#include "code\ATMOSPHERICS\components\unary_devices\vent_scrubber.dm" -#include "code\ATMOSPHERICS\pipes\cap.dm" -#include "code\ATMOSPHERICS\pipes\manifold.dm" -#include "code\ATMOSPHERICS\pipes\manifold4w.dm" -#include "code\ATMOSPHERICS\pipes\pipe.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_he.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_hidden.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_insulated.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_visible.dm" -#include "code\controllers\communications.dm" -#include "code\controllers\configuration.dm" -#include "code\controllers\controller.dm" -#include "code\controllers\failsafe.dm" -#include "code\controllers\globals.dm" -#include "code\controllers\hooks-defs.dm" -#include "code\controllers\hooks.dm" -#include "code\controllers\master.dm" -#include "code\controllers\master_controller.dm" -#include "code\controllers\subsystem.dm" -#include "code\controllers\verbs.dm" -#include "code\controllers\voting.dm" -#include "code\controllers\Processes\alarm.dm" -#include "code\controllers\Processes\event.dm" -#include "code\controllers\Processes\fast_process.dm" -#include "code\controllers\Processes\lighting.dm" -#include "code\controllers\Processes\npcai.dm" -#include "code\controllers\Processes\obj.dm" -#include "code\controllers\Processes\ticker.dm" -#include "code\controllers\ProcessScheduler\core\process.dm" -#include "code\controllers\ProcessScheduler\core\processScheduler.dm" -#include "code\controllers\subsystem\air.dm" -#include "code\controllers\subsystem\assets.dm" -#include "code\controllers\subsystem\atoms.dm" -#include "code\controllers\subsystem\fires.dm" -#include "code\controllers\subsystem\garbage.dm" -#include "code\controllers\subsystem\icon_smooth.dm" -#include "code\controllers\subsystem\machinery.dm" -#include "code\controllers\subsystem\mobs.dm" -#include "code\controllers\subsystem\nano_mob_hunter.dm" -#include "code\controllers\subsystem\nanoui.dm" -#include "code\controllers\subsystem\nightshift.dm" -#include "code\controllers\subsystem\npcai.dm" -#include "code\controllers\subsystem\npcpool.dm" -#include "code\controllers\subsystem\overlays.dm" -#include "code\controllers\subsystem\shuttles.dm" -#include "code\controllers\subsystem\spacedrift.dm" -#include "code\controllers\subsystem\sun.dm" -#include "code\controllers\subsystem\throwing.dm" -#include "code\controllers\subsystem\tickets.dm" -#include "code\controllers\subsystem\timer.dm" -#include "code\controllers\subsystem\weather.dm" -#include "code\controllers\subsystem\processing\processing.dm" -#include "code\datums\action.dm" -#include "code\datums\ai_law_sets.dm" -#include "code\datums\ai_laws.dm" -#include "code\datums\beam.dm" -#include "code\datums\browser.dm" -#include "code\datums\callback.dm" -#include "code\datums\click_intercept.dm" -#include "code\datums\datacore.dm" -#include "code\datums\datum.dm" -#include "code\datums\datumvars.dm" -#include "code\datums\gas_mixture.dm" -#include "code\datums\holocall.dm" -#include "code\datums\hud.dm" -#include "code\datums\mind.dm" -#include "code\datums\mixed.dm" -#include "code\datums\mutable_appearance.dm" -#include "code\datums\periodic_news.dm" -#include "code\datums\pipe_datums.dm" -#include "code\datums\progressbar.dm" -#include "code\datums\recipe.dm" -#include "code\datums\ruins.dm" -#include "code\datums\shuttles.dm" -#include "code\datums\soullink.dm" -#include "code\datums\spawners_menu.dm" -#include "code\datums\spell.dm" -#include "code\datums\statclick.dm" -#include "code\datums\supplypacks.dm" -#include "code\datums\uplink_item.dm" -#include "code\datums\vision_override.dm" -#include "code\datums\vr.dm" -#include "code\datums\cache\air_alarm.dm" -#include "code\datums\cache\apc.dm" -#include "code\datums\cache\cache.dm" -#include "code\datums\cache\crew.dm" -#include "code\datums\cache\powermonitor.dm" -#include "code\datums\components\_component.dm" -#include "code\datums\components\ducttape.dm" -#include "code\datums\components\jestosterone.dm" -#include "code\datums\components\material_container.dm" -#include "code\datums\components\squeak.dm" -#include "code\datums\diseases\_disease.dm" -#include "code\datums\diseases\_MobProcs.dm" -#include "code\datums\diseases\anxiety.dm" -#include "code\datums\diseases\appendicitis.dm" -#include "code\datums\diseases\beesease.dm" -#include "code\datums\diseases\berserker.dm" -#include "code\datums\diseases\brainrot.dm" -#include "code\datums\diseases\cold.dm" -#include "code\datums\diseases\cold9.dm" -#include "code\datums\diseases\fake_gbs.dm" -#include "code\datums\diseases\flu.dm" -#include "code\datums\diseases\fluspanish.dm" -#include "code\datums\diseases\food_poisoning.dm" -#include "code\datums\diseases\gbs.dm" -#include "code\datums\diseases\kingstons.dm" -#include "code\datums\diseases\kuru.dm" -#include "code\datums\diseases\lycancoughy.dm" -#include "code\datums\diseases\magnitis.dm" -#include "code\datums\diseases\pierrot_throat.dm" -#include "code\datums\diseases\retrovirus.dm" -#include "code\datums\diseases\rhumba_beat.dm" -#include "code\datums\diseases\transformation.dm" -#include "code\datums\diseases\tuberculosis.dm" -#include "code\datums\diseases\vampire.dm" -#include "code\datums\diseases\wizarditis.dm" -#include "code\datums\diseases\advance\advance.dm" -#include "code\datums\diseases\advance\presets.dm" -#include "code\datums\diseases\advance\symptoms\beard.dm" -#include "code\datums\diseases\advance\symptoms\choking.dm" -#include "code\datums\diseases\advance\symptoms\confusion.dm" -#include "code\datums\diseases\advance\symptoms\cough.dm" -#include "code\datums\diseases\advance\symptoms\damage_converter.dm" -#include "code\datums\diseases\advance\symptoms\deafness.dm" -#include "code\datums\diseases\advance\symptoms\dizzy.dm" -#include "code\datums\diseases\advance\symptoms\fever.dm" -#include "code\datums\diseases\advance\symptoms\fire.dm" -#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" -#include "code\datums\diseases\advance\symptoms\hallucigen.dm" -#include "code\datums\diseases\advance\symptoms\headache.dm" -#include "code\datums\diseases\advance\symptoms\heal.dm" -#include "code\datums\diseases\advance\symptoms\itching.dm" -#include "code\datums\diseases\advance\symptoms\oxygen.dm" -#include "code\datums\diseases\advance\symptoms\sensory.dm" -#include "code\datums\diseases\advance\symptoms\shedding.dm" -#include "code\datums\diseases\advance\symptoms\shivering.dm" -#include "code\datums\diseases\advance\symptoms\skin.dm" -#include "code\datums\diseases\advance\symptoms\sneeze.dm" -#include "code\datums\diseases\advance\symptoms\symptoms.dm" -#include "code\datums\diseases\advance\symptoms\viral.dm" -#include "code\datums\diseases\advance\symptoms\vision.dm" -#include "code\datums\diseases\advance\symptoms\voice_change.dm" -#include "code\datums\diseases\advance\symptoms\vomit.dm" -#include "code\datums\diseases\advance\symptoms\weakness.dm" -#include "code\datums\diseases\advance\symptoms\weight.dm" -#include "code\datums\diseases\advance\symptoms\youth.dm" -#include "code\datums\helper_datums\construction_datum.dm" -#include "code\datums\helper_datums\events.dm" -#include "code\datums\helper_datums\global_iterator.dm" -#include "code\datums\helper_datums\icon_snapshot.dm" -#include "code\datums\helper_datums\map_template.dm" -#include "code\datums\helper_datums\teleport.dm" -#include "code\datums\helper_datums\topic_input.dm" -#include "code\datums\looping_sounds\looping_sound.dm" -#include "code\datums\looping_sounds\machinery_sounds.dm" -#include "code\datums\looping_sounds\thermal_drill.dm" -#include "code\datums\looping_sounds\weather.dm" -#include "code\datums\outfits\outfit.dm" -#include "code\datums\outfits\outfit_admin.dm" -#include "code\datums\ruins\space.dm" -#include "code\datums\spells\area_teleport.dm" -#include "code\datums\spells\bloodcrawl.dm" -#include "code\datums\spells\chaplain.dm" -#include "code\datums\spells\charge.dm" -#include "code\datums\spells\cluwne.dm" -#include "code\datums\spells\conjure.dm" -#include "code\datums\spells\conjure_item.dm" -#include "code\datums\spells\construct_spells.dm" -#include "code\datums\spells\devil.dm" -#include "code\datums\spells\devil_boons.dm" -#include "code\datums\spells\dumbfire.dm" -#include "code\datums\spells\emplosion.dm" -#include "code\datums\spells\ethereal_jaunt.dm" -#include "code\datums\spells\explosion.dm" -#include "code\datums\spells\fake_gib.dm" -#include "code\datums\spells\genetic.dm" -#include "code\datums\spells\horsemask.dm" -#include "code\datums\spells\infinite_guns.dm" -#include "code\datums\spells\inflict_handler.dm" -#include "code\datums\spells\knock.dm" -#include "code\datums\spells\lichdom.dm" -#include "code\datums\spells\lightning.dm" -#include "code\datums\spells\magnet.dm" -#include "code\datums\spells\mime.dm" -#include "code\datums\spells\mind_transfer.dm" -#include "code\datums\spells\projectile.dm" -#include "code\datums\spells\rathens.dm" -#include "code\datums\spells\rod_form.dm" -#include "code\datums\spells\shapeshift.dm" -#include "code\datums\spells\summonitem.dm" -#include "code\datums\spells\touch_attacks.dm" -#include "code\datums\spells\trigger.dm" -#include "code\datums\spells\turf_teleport.dm" -#include "code\datums\spells\wizard.dm" -#include "code\datums\status_effects\buffs.dm" -#include "code\datums\status_effects\debuffs.dm" -#include "code\datums\status_effects\neutral.dm" -#include "code\datums\status_effects\status_effect.dm" -#include "code\datums\vr\level.dm" -#include "code\datums\weather\weather.dm" -#include "code\datums\weather\weather_types\ash_storm.dm" -#include "code\datums\weather\weather_types\floor_is_lava.dm" -#include "code\datums\weather\weather_types\radiation_storm.dm" -#include "code\datums\weather\weather_types\snow_storm.dm" -#include "code\datums\wires\airlock.dm" -#include "code\datums\wires\alarm.dm" -#include "code\datums\wires\apc.dm" -#include "code\datums\wires\autolathe.dm" -#include "code\datums\wires\camera.dm" -#include "code\datums\wires\explosive.dm" -#include "code\datums\wires\mulebot.dm" -#include "code\datums\wires\nuclearbomb.dm" -#include "code\datums\wires\particle_accelerator.dm" -#include "code\datums\wires\radio.dm" -#include "code\datums\wires\robot.dm" -#include "code\datums\wires\smartfridge.dm" -#include "code\datums\wires\suitstorage.dm" -#include "code\datums\wires\syndicatebomb.dm" -#include "code\datums\wires\tesla_coil.dm" -#include "code\datums\wires\vending.dm" -#include "code\datums\wires\wires.dm" -#include "code\defines\vox_sounds.dm" -#include "code\defines\procs\admin.dm" -#include "code\defines\procs\announce.dm" -#include "code\defines\procs\AStar.dm" -#include "code\defines\procs\dbcore.dm" -#include "code\defines\procs\radio.dm" -#include "code\defines\procs\records.dm" -#include "code\defines\procs\statistics.dm" -#include "code\game\alternate_appearance.dm" -#include "code\game\asteroid.dm" -#include "code\game\atoms.dm" -#include "code\game\atoms_movable.dm" -#include "code\game\data_huds.dm" -#include "code\game\shuttle_engines.dm" -#include "code\game\sound.dm" -#include "code\game\world.dm" -#include "code\game\area\ai_monitored.dm" -#include "code\game\area\areas.dm" -#include "code\game\area\depot-areas.dm" -#include "code\game\area\Dynamic areas.dm" -#include "code\game\area\Space Station 13 areas.dm" -#include "code\game\dna\dna2.dm" -#include "code\game\dna\dna2_domutcheck.dm" -#include "code\game\dna\dna2_helpers.dm" -#include "code\game\dna\dna_modifier.dm" -#include "code\game\dna\genes\disabilities.dm" -#include "code\game\dna\genes\gene.dm" -#include "code\game\dna\genes\goon_disabilities.dm" -#include "code\game\dna\genes\goon_powers.dm" -#include "code\game\dna\genes\monkey.dm" -#include "code\game\dna\genes\powers.dm" -#include "code\game\dna\genes\vg_disabilities.dm" -#include "code\game\dna\genes\vg_powers.dm" -#include "code\game\gamemodes\factions.dm" -#include "code\game\gamemodes\game_mode.dm" -#include "code\game\gamemodes\gameticker.dm" -#include "code\game\gamemodes\intercept_report.dm" -#include "code\game\gamemodes\objective.dm" -#include "code\game\gamemodes\scoreboard.dm" -#include "code\game\gamemodes\setupgame.dm" -#include "code\game\gamemodes\steal_items.dm" -#include "code\game\gamemodes\autotraitor\autotraitor.dm" -#include "code\game\gamemodes\blob\blob.dm" -#include "code\game\gamemodes\blob\blob_finish.dm" -#include "code\game\gamemodes\blob\blob_report.dm" -#include "code\game\gamemodes\blob\overmind.dm" -#include "code\game\gamemodes\blob\powers.dm" -#include "code\game\gamemodes\blob\theblob.dm" -#include "code\game\gamemodes\blob\blobs\blob_mobs.dm" -#include "code\game\gamemodes\blob\blobs\core.dm" -#include "code\game\gamemodes\blob\blobs\factory.dm" -#include "code\game\gamemodes\blob\blobs\node.dm" -#include "code\game\gamemodes\blob\blobs\resource.dm" -#include "code\game\gamemodes\blob\blobs\shield.dm" -#include "code\game\gamemodes\blob\blobs\storage.dm" -#include "code\game\gamemodes\changeling\changeling.dm" -#include "code\game\gamemodes\changeling\changeling_power.dm" -#include "code\game\gamemodes\changeling\evolution_menu.dm" -#include "code\game\gamemodes\changeling\traitor_chan.dm" -#include "code\game\gamemodes\changeling\powers\absorb.dm" -#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm" -#include "code\game\gamemodes\changeling\powers\biodegrade.dm" -#include "code\game\gamemodes\changeling\powers\chameleon_skin.dm" -#include "code\game\gamemodes\changeling\powers\digitalcamo.dm" -#include "code\game\gamemodes\changeling\powers\epinephrine.dm" -#include "code\game\gamemodes\changeling\powers\fakedeath.dm" -#include "code\game\gamemodes\changeling\powers\fleshmend.dm" -#include "code\game\gamemodes\changeling\powers\headcrab.dm" -#include "code\game\gamemodes\changeling\powers\hivemind.dm" -#include "code\game\gamemodes\changeling\powers\humanform.dm" -#include "code\game\gamemodes\changeling\powers\lesserform.dm" -#include "code\game\gamemodes\changeling\powers\linglink.dm" -#include "code\game\gamemodes\changeling\powers\mimic_voice.dm" -#include "code\game\gamemodes\changeling\powers\mutations.dm" -#include "code\game\gamemodes\changeling\powers\panacea.dm" -#include "code\game\gamemodes\changeling\powers\revive.dm" -#include "code\game\gamemodes\changeling\powers\shriek.dm" -#include "code\game\gamemodes\changeling\powers\spiders.dm" -#include "code\game\gamemodes\changeling\powers\strained_muscles.dm" -#include "code\game\gamemodes\changeling\powers\swap_form.dm" -#include "code\game\gamemodes\changeling\powers\tiny_prick.dm" -#include "code\game\gamemodes\changeling\powers\transform.dm" -#include "code\game\gamemodes\cult\cult.dm" -#include "code\game\gamemodes\cult\cult_comms.dm" -#include "code\game\gamemodes\cult\cult_datums.dm" -#include "code\game\gamemodes\cult\cult_items.dm" -#include "code\game\gamemodes\cult\cult_objectives.dm" -#include "code\game\gamemodes\cult\cult_structures.dm" -#include "code\game\gamemodes\cult\ritual.dm" -#include "code\game\gamemodes\cult\runes.dm" -#include "code\game\gamemodes\cult\talisman.dm" -#include "code\game\gamemodes\devil\devil.dm" -#include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\devilinfo.dm" -#include "code\game\gamemodes\devil\game_mode.dm" -#include "code\game\gamemodes\devil\objectives.dm" -#include "code\game\gamemodes\devil\contracts\friend.dm" -#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" -#include "code\game\gamemodes\devil\imp\imp.dm" -#include "code\game\gamemodes\devil\true_devil\_true_devil.dm" -#include "code\game\gamemodes\devil\true_devil\inventory.dm" -#include "code\game\gamemodes\extended\extended.dm" -#include "code\game\gamemodes\heist\heist.dm" -#include "code\game\gamemodes\malfunction\Malf_Modules.dm" -#include "code\game\gamemodes\meteor\meteor.dm" -#include "code\game\gamemodes\meteor\meteors.dm" -#include "code\game\gamemodes\miniantags\abduction\abductee_objectives.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction_gear.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction_outfits.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction_surgery.dm" -#include "code\game\gamemodes\miniantags\abduction\gland.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\camera.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\console.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm" -#include "code\game\gamemodes\miniantags\borer\borer.dm" -#include "code\game\gamemodes\miniantags\borer\borer_chemicals.dm" -#include "code\game\gamemodes\miniantags\borer\borer_event.dm" -#include "code\game\gamemodes\miniantags\borer\borer_html.dm" -#include "code\game\gamemodes\miniantags\bot_swarm\swarmer.dm" -#include "code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" -#include "code\game\gamemodes\miniantags\guardian\guardian.dm" -#include "code\game\gamemodes\miniantags\guardian\types\assassin.dm" -#include "code\game\gamemodes\miniantags\guardian\types\bomb.dm" -#include "code\game\gamemodes\miniantags\guardian\types\charger.dm" -#include "code\game\gamemodes\miniantags\guardian\types\fire.dm" -#include "code\game\gamemodes\miniantags\guardian\types\healer.dm" -#include "code\game\gamemodes\miniantags\guardian\types\lightning.dm" -#include "code\game\gamemodes\miniantags\guardian\types\protector.dm" -#include "code\game\gamemodes\miniantags\guardian\types\ranged.dm" -#include "code\game\gamemodes\miniantags\guardian\types\standard.dm" -#include "code\game\gamemodes\miniantags\morph\morph.dm" -#include "code\game\gamemodes\miniantags\morph\morph_event.dm" -#include "code\game\gamemodes\miniantags\revenant\revenant.dm" -#include "code\game\gamemodes\miniantags\revenant\revenant_abilities.dm" -#include "code\game\gamemodes\miniantags\revenant\revenant_spawn_event.dm" -#include "code\game\gamemodes\miniantags\sintouched\objectives.dm" -#include "code\game\gamemodes\miniantags\slaughter\bloodcrawl.dm" -#include "code\game\gamemodes\miniantags\slaughter\slaughter.dm" -#include "code\game\gamemodes\nations\nations.dm" -#include "code\game\gamemodes\nations\nationsdatums.dm" -#include "code\game\gamemodes\nations\nationsprocs.dm" -#include "code\game\gamemodes\nuclear\nuclear.dm" -#include "code\game\gamemodes\nuclear\nuclear_challenge.dm" -#include "code\game\gamemodes\nuclear\nuclearbomb.dm" -#include "code\game\gamemodes\nuclear\pinpointer.dm" -#include "code\game\gamemodes\revolution\revolution.dm" -#include "code\game\gamemodes\shadowling\ascendant_shadowling.dm" -#include "code\game\gamemodes\shadowling\shadowling.dm" -#include "code\game\gamemodes\shadowling\shadowling_abilities.dm" -#include "code\game\gamemodes\shadowling\shadowling_items.dm" -#include "code\game\gamemodes\shadowling\special_shadowling_abilities.dm" -#include "code\game\gamemodes\traitor\traitor.dm" -#include "code\game\gamemodes\vampire\traitor_vamp.dm" -#include "code\game\gamemodes\vampire\vampire.dm" -#include "code\game\gamemodes\vampire\vampire_powers.dm" -#include "code\game\gamemodes\wizard\artefact.dm" -#include "code\game\gamemodes\wizard\godhand.dm" -#include "code\game\gamemodes\wizard\raginmages.dm" -#include "code\game\gamemodes\wizard\rightandwrong.dm" -#include "code\game\gamemodes\wizard\soulstone.dm" -#include "code\game\gamemodes\wizard\spellbook.dm" -#include "code\game\gamemodes\wizard\wizard.dm" -#include "code\game\jobs\access.dm" -#include "code\game\jobs\job_controller.dm" -#include "code\game\jobs\job_exp.dm" -#include "code\game\jobs\job_objective.dm" -#include "code\game\jobs\job_scaling.dm" -#include "code\game\jobs\jobs.dm" -#include "code\game\jobs\whitelist.dm" -#include "code\game\jobs\job\central.dm" -#include "code\game\jobs\job\civilian.dm" -#include "code\game\jobs\job\engineering.dm" -#include "code\game\jobs\job\job.dm" -#include "code\game\jobs\job\medical.dm" -#include "code\game\jobs\job\science.dm" -#include "code\game\jobs\job\security.dm" -#include "code\game\jobs\job\silicon.dm" -#include "code\game\jobs\job\supervisor.dm" -#include "code\game\jobs\job\support.dm" -#include "code\game\jobs\job\support_chaplain.dm" -#include "code\game\jobs\job\syndicate.dm" -#include "code\game\jobs\job_objectives\science.dm" -#include "code\game\machinery\adv_med.dm" -#include "code\game\machinery\ai_slipper.dm" -#include "code\game\machinery\alarm.dm" -#include "code\game\machinery\atmo_control.dm" -#include "code\game\machinery\autolathe.dm" -#include "code\game\machinery\Beacon.dm" -#include "code\game\machinery\buttons.dm" -#include "code\game\machinery\cell_charger.dm" -#include "code\game\machinery\chiller.dm" -#include "code\game\machinery\cloning.dm" -#include "code\game\machinery\constructable_frame.dm" -#include "code\game\machinery\cryo.dm" -#include "code\game\machinery\cryopod.dm" -#include "code\game\machinery\dance_machine.dm" -#include "code\game\machinery\defib_mount.dm" -#include "code\game\machinery\deployable.dm" -#include "code\game\machinery\door_control.dm" -#include "code\game\machinery\doppler_array.dm" -#include "code\game\machinery\dye_generator.dm" -#include "code\game\machinery\firealarm.dm" -#include "code\game\machinery\flasher.dm" -#include "code\game\machinery\floodlight.dm" -#include "code\game\machinery\Freezer.dm" -#include "code\game\machinery\gameboard.dm" -#include "code\game\machinery\guestpass.dm" -#include "code\game\machinery\hologram.dm" -#include "code\game\machinery\holosign.dm" -#include "code\game\machinery\igniter.dm" -#include "code\game\machinery\iv_drip.dm" -#include "code\game\machinery\lightswitch.dm" -#include "code\game\machinery\machinery.dm" -#include "code\game\machinery\magnet.dm" -#include "code\game\machinery\mass_driver.dm" -#include "code\game\machinery\navbeacon.dm" -#include "code\game\machinery\newscaster.dm" -#include "code\game\machinery\OpTable.dm" -#include "code\game\machinery\overview.dm" -#include "code\game\machinery\PDApainter.dm" -#include "code\game\machinery\poolcontroller.dm" -#include "code\game\machinery\portable_tag_turret.dm" -#include "code\game\machinery\portable_turret.dm" -#include "code\game\machinery\quantum_pad.dm" -#include "code\game\machinery\recharger.dm" -#include "code\game\machinery\rechargestation.dm" -#include "code\game\machinery\recycler.dm" -#include "code\game\machinery\requests_console.dm" -#include "code\game\machinery\shieldgen.dm" -#include "code\game\machinery\Sleeper.dm" -#include "code\game\machinery\slotmachine.dm" -#include "code\game\machinery\snow_machine.dm" -#include "code\game\machinery\spaceheater.dm" -#include "code\game\machinery\status_display.dm" -#include "code\game\machinery\suit_storage_unit.dm" -#include "code\game\machinery\supply_display.dm" -#include "code\game\machinery\syndicatebeacon.dm" -#include "code\game\machinery\syndicatebomb.dm" -#include "code\game\machinery\teleporter.dm" -#include "code\game\machinery\transformer.dm" -#include "code\game\machinery\turntable.dm" -#include "code\game\machinery\turret_control.dm" -#include "code\game\machinery\vending.dm" -#include "code\game\machinery\washing_machine.dm" -#include "code\game\machinery\wishgranter.dm" -#include "code\game\machinery\atmoalter\area_atmos_computer.dm" -#include "code\game\machinery\atmoalter\canister.dm" -#include "code\game\machinery\atmoalter\meter.dm" -#include "code\game\machinery\atmoalter\portable_atmospherics.dm" -#include "code\game\machinery\atmoalter\pump.dm" -#include "code\game\machinery\atmoalter\scrubber.dm" -#include "code\game\machinery\atmoalter\zvent.dm" -#include "code\game\machinery\camera\camera.dm" -#include "code\game\machinery\camera\camera_assembly.dm" -#include "code\game\machinery\camera\motion.dm" -#include "code\game\machinery\camera\presets.dm" -#include "code\game\machinery\camera\tracking.dm" -#include "code\game\machinery\computer\ai_core.dm" -#include "code\game\machinery\computer\aifixer.dm" -#include "code\game\machinery\computer\arcade.dm" -#include "code\game\machinery\computer\atmos_alert.dm" -#include "code\game\machinery\computer\atmos_control.dm" -#include "code\game\machinery\computer\buildandrepair.dm" -#include "code\game\machinery\computer\camera.dm" -#include "code\game\machinery\computer\camera_advanced.dm" -#include "code\game\machinery\computer\card.dm" -#include "code\game\machinery\computer\cloning.dm" -#include "code\game\machinery\computer\communications.dm" -#include "code\game\machinery\computer\computer.dm" -#include "code\game\machinery\computer\crew.dm" -#include "code\game\machinery\computer\depot.dm" -#include "code\game\machinery\computer\HolodeckControl.dm" -#include "code\game\machinery\computer\honkputer.dm" -#include "code\game\machinery\computer\law.dm" -#include "code\game\machinery\computer\medical.dm" -#include "code\game\machinery\computer\message.dm" -#include "code\game\machinery\computer\Operating.dm" -#include "code\game\machinery\computer\pod.dm" -#include "code\game\machinery\computer\pod_tracking_console.dm" -#include "code\game\machinery\computer\power.dm" -#include "code\game\machinery\computer\prisoner.dm" -#include "code\game\machinery\computer\robot.dm" -#include "code\game\machinery\computer\salvage_ship.dm" -#include "code\game\machinery\computer\security.dm" -#include "code\game\machinery\computer\skills.dm" -#include "code\game\machinery\computer\specops_shuttle.dm" -#include "code\game\machinery\computer\station_alert.dm" -#include "code\game\machinery\computer\store.dm" -#include "code\game\machinery\computer\syndicate_specops_shuttle.dm" -#include "code\game\machinery\computer\vr_control.dm" -#include "code\game\machinery\doors\airlock.dm" -#include "code\game\machinery\doors\airlock_control.dm" -#include "code\game\machinery\doors\airlock_electronics.dm" -#include "code\game\machinery\doors\airlock_types.dm" -#include "code\game\machinery\doors\alarmlock.dm" -#include "code\game\machinery\doors\brigdoors.dm" -#include "code\game\machinery\doors\checkForMultipleDoors.dm" -#include "code\game\machinery\doors\door.dm" -#include "code\game\machinery\doors\firedoor.dm" -#include "code\game\machinery\doors\poddoor.dm" -#include "code\game\machinery\doors\shutters.dm" -#include "code\game\machinery\doors\spacepod.dm" -#include "code\game\machinery\doors\unpowered.dm" -#include "code\game\machinery\doors\windowdoor.dm" -#include "code\game\machinery\embedded_controller\airlock_controllers.dm" -#include "code\game\machinery\embedded_controller\airlock_program.dm" -#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" -#include "code\game\machinery\embedded_controller\embedded_program_base.dm" -#include "code\game\machinery\pipe\construction.dm" -#include "code\game\machinery\pipe\pipe_dispenser.dm" -#include "code\game\machinery\telecomms\broadcaster.dm" -#include "code\game\machinery\telecomms\logbrowser.dm" -#include "code\game\machinery\telecomms\machine_interactions.dm" -#include "code\game\machinery\telecomms\ntsl2.dm" -#include "code\game\machinery\telecomms\presets.dm" -#include "code\game\machinery\telecomms\telecomunications.dm" -#include "code\game\machinery\telecomms\telemonitor.dm" -#include "code\game\machinery\telecomms\traffic_control.dm" -#include "code\game\magic\Uristrunes.dm" -#include "code\game\mecha\mech_bay.dm" -#include "code\game\mecha\mech_fabricator.dm" -#include "code\game\mecha\mecha.dm" -#include "code\game\mecha\mecha_actions.dm" -#include "code\game\mecha\mecha_construction_paths.dm" -#include "code\game\mecha\mecha_control_console.dm" -#include "code\game\mecha\mecha_modkit.dm" -#include "code\game\mecha\mecha_parts.dm" -#include "code\game\mecha\mecha_topic.dm" -#include "code\game\mecha\mecha_wreckage.dm" -#include "code\game\mecha\paintkits.dm" -#include "code\game\mecha\combat\combat.dm" -#include "code\game\mecha\combat\durand.dm" -#include "code\game\mecha\combat\gygax.dm" -#include "code\game\mecha\combat\honker.dm" -#include "code\game\mecha\combat\marauder.dm" -#include "code\game\mecha\combat\phazon.dm" -#include "code\game\mecha\combat\reticence.dm" -#include "code\game\mecha\equipment\mecha_equipment.dm" -#include "code\game\mecha\equipment\tools\medical_tools.dm" -#include "code\game\mecha\equipment\tools\mining_tools.dm" -#include "code\game\mecha\equipment\tools\other_tools.dm" -#include "code\game\mecha\equipment\tools\work_tools.dm" -#include "code\game\mecha\equipment\weapons\weapons.dm" -#include "code\game\mecha\medical\medical.dm" -#include "code\game\mecha\medical\odysseus.dm" -#include "code\game\mecha\working\ripley.dm" -#include "code\game\mecha\working\working.dm" -#include "code\game\objects\buckling.dm" -#include "code\game\objects\empulse.dm" -#include "code\game\objects\explosion.dm" -#include "code\game\objects\items.dm" -#include "code\game\objects\obj_defense.dm" -#include "code\game\objects\objs.dm" -#include "code\game\objects\structures.dm" -#include "code\game\objects\effects\alien_acid.dm" -#include "code\game\objects\effects\anomalies.dm" -#include "code\game\objects\effects\bump_teleporter.dm" -#include "code\game\objects\effects\effects.dm" -#include "code\game\objects\effects\forcefields.dm" -#include "code\game\objects\effects\gibs.dm" -#include "code\game\objects\effects\glowshroom.dm" -#include "code\game\objects\effects\landmarks.dm" -#include "code\game\objects\effects\manifest.dm" -#include "code\game\objects\effects\mines.dm" -#include "code\game\objects\effects\misc.dm" -#include "code\game\objects\effects\overlays.dm" -#include "code\game\objects\effects\portals.dm" -#include "code\game\objects\effects\snowcloud.dm" -#include "code\game\objects\effects\spiders.dm" -#include "code\game\objects\effects\step_triggers.dm" -#include "code\game\objects\effects\decals\cleanable.dm" -#include "code\game\objects\effects\decals\contraband.dm" -#include "code\game\objects\effects\decals\crayon.dm" -#include "code\game\objects\effects\decals\misc.dm" -#include "code\game\objects\effects\decals\remains.dm" -#include "code\game\objects\effects\decals\warning_stripes.dm" -#include "code\game\objects\effects\decals\Cleanable\aliens.dm" -#include "code\game\objects\effects\decals\Cleanable\fuel.dm" -#include "code\game\objects\effects\decals\Cleanable\humans.dm" -#include "code\game\objects\effects\decals\Cleanable\misc.dm" -#include "code\game\objects\effects\decals\Cleanable\robots.dm" -#include "code\game\objects\effects\decals\Cleanable\tracks.dm" -#include "code\game\objects\effects\effect_system\effect_system.dm" -#include "code\game\objects\effects\effect_system\effects_explosion.dm" -#include "code\game\objects\effects\effect_system\effects_foam.dm" -#include "code\game\objects\effects\effect_system\effects_other.dm" -#include "code\game\objects\effects\effect_system\effects_smoke.dm" -#include "code\game\objects\effects\effect_system\effects_sparks.dm" -#include "code\game\objects\effects\effect_system\effects_water.dm" -#include "code\game\objects\effects\spawners\bombspawner.dm" -#include "code\game\objects\effects\spawners\gibspawner.dm" -#include "code\game\objects\effects\spawners\lootdrop.dm" -#include "code\game\objects\effects\spawners\random_barrier.dm" -#include "code\game\objects\effects\spawners\random_spawners.dm" -#include "code\game\objects\effects\spawners\vaultspawner.dm" -#include "code\game\objects\effects\spawners\windowspawner.dm" -#include "code\game\objects\effects\temporary_visuals\clockcult.dm" -#include "code\game\objects\effects\temporary_visuals\cult.dm" -#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" -#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" -#include "code\game\objects\items\ashtray.dm" -#include "code\game\objects\items\blueprints.dm" -#include "code\game\objects\items\bodybag.dm" -#include "code\game\objects\items\candle.dm" -#include "code\game\objects\items\cardboard_cutouts.dm" -#include "code\game\objects\items\changestone.dm" -#include "code\game\objects\items\contraband.dm" -#include "code\game\objects\items\control_wand.dm" -#include "code\game\objects\items\crayons.dm" -#include "code\game\objects\items\dehy_carp.dm" -#include "code\game\objects\items\documents.dm" -#include "code\game\objects\items\flag.dm" -#include "code\game\objects\items\latexballoon.dm" -#include "code\game\objects\items\misc.dm" -#include "code\game\objects\items\mixing_bowl.dm" -#include "code\game\objects\items\random_items.dm" -#include "code\game\objects\items\shooting_range.dm" -#include "code\game\objects\items\toys.dm" -#include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\devices\aicard.dm" -#include "code\game\objects\items\devices\autopsy.dm" -#include "code\game\objects\items\devices\camera_bug.dm" -#include "code\game\objects\items\devices\chameleonproj.dm" -#include "code\game\objects\items\devices\flash.dm" -#include "code\game\objects\items\devices\flashlight.dm" -#include "code\game\objects\items\devices\floor_painter.dm" -#include "code\game\objects\items\devices\instruments.dm" -#include "code\game\objects\items\devices\laserpointer.dm" -#include "code\game\objects\items\devices\lightreplacer.dm" -#include "code\game\objects\items\devices\machineprototype.dm" -#include "code\game\objects\items\devices\megaphone.dm" -#include "code\game\objects\items\devices\multitool.dm" -#include "code\game\objects\items\devices\paicard.dm" -#include "code\game\objects\items\devices\pipe_painter.dm" -#include "code\game\objects\items\devices\pizza_bomb.dm" -#include "code\game\objects\items\devices\powersink.dm" -#include "code\game\objects\items\devices\scanners.dm" -#include "code\game\objects\items\devices\sensor_device.dm" -#include "code\game\objects\items\devices\taperecorder.dm" -#include "code\game\objects\items\devices\thermal_drill.dm" -#include "code\game\objects\items\devices\traitordevices.dm" -#include "code\game\objects\items\devices\transfer_valve.dm" -#include "code\game\objects\items\devices\uplinks.dm" -#include "code\game\objects\items\devices\whistle.dm" -#include "code\game\objects\items\devices\radio\beacon.dm" -#include "code\game\objects\items\devices\radio\electropack.dm" -#include "code\game\objects\items\devices\radio\encryptionkey.dm" -#include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\intercom.dm" -#include "code\game\objects\items\devices\radio\radio.dm" -#include "code\game\objects\items\mountable_frames\air_alarm.dm" -#include "code\game\objects\items\mountable_frames\apc_frame.dm" -#include "code\game\objects\items\mountable_frames\buttons_switches.dm" -#include "code\game\objects\items\mountable_frames\extinguisher_frame.dm" -#include "code\game\objects\items\mountable_frames\fire_alarm.dm" -#include "code\game\objects\items\mountable_frames\frames.dm" -#include "code\game\objects\items\mountable_frames\intercom.dm" -#include "code\game\objects\items\mountable_frames\lights.dm" -#include "code\game\objects\items\mountable_frames\mountables.dm" -#include "code\game\objects\items\mountable_frames\newscaster_frame.dm" -#include "code\game\objects\items\robot\ai_upgrades.dm" -#include "code\game\objects\items\robot\robot_items.dm" -#include "code\game\objects\items\robot\robot_parts.dm" -#include "code\game\objects\items\robot\robot_upgrades.dm" -#include "code\game\objects\items\stacks\medical.dm" -#include "code\game\objects\items\stacks\nanopaste.dm" -#include "code\game\objects\items\stacks\rods.dm" -#include "code\game\objects\items\stacks\stack.dm" -#include "code\game\objects\items\stacks\stack_recipe.dm" -#include "code\game\objects\items\stacks\telecrystal.dm" -#include "code\game\objects\items\stacks\sheets\glass.dm" -#include "code\game\objects\items\stacks\sheets\leather.dm" -#include "code\game\objects\items\stacks\sheets\light.dm" -#include "code\game\objects\items\stacks\sheets\mineral.dm" -#include "code\game\objects\items\stacks\sheets\sheet_types.dm" -#include "code\game\objects\items\stacks\sheets\sheets.dm" -#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" -#include "code\game\objects\items\stacks\tiles\tile_types.dm" -#include "code\game\objects\items\weapons\AI_modules.dm" -#include "code\game\objects\items\weapons\alien_specific.dm" -#include "code\game\objects\items\weapons\bee_briefcase.dm" -#include "code\game\objects\items\weapons\cards_ids.dm" -#include "code\game\objects\items\weapons\cash.dm" -#include "code\game\objects\items\weapons\caution.dm" -#include "code\game\objects\items\weapons\chrono_eraser.dm" -#include "code\game\objects\items\weapons\cigs.dm" -#include "code\game\objects\items\weapons\clown_items.dm" -#include "code\game\objects\items\weapons\cosmetics.dm" -#include "code\game\objects\items\weapons\courtroom.dm" -#include "code\game\objects\items\weapons\defib.dm" -#include "code\game\objects\items\weapons\dice.dm" -#include "code\game\objects\items\weapons\disks.dm" -#include "code\game\objects\items\weapons\dna_injector.dm" -#include "code\game\objects\items\weapons\dnascrambler.dm" -#include "code\game\objects\items\weapons\explosives.dm" -#include "code\game\objects\items\weapons\extinguisher.dm" -#include "code\game\objects\items\weapons\fireworks.dm" -#include "code\game\objects\items\weapons\flamethrower.dm" -#include "code\game\objects\items\weapons\garrote.dm" -#include "code\game\objects\items\weapons\gift_wrappaper.dm" -#include "code\game\objects\items\weapons\handcuffs.dm" -#include "code\game\objects\items\weapons\highlander_swords.dm" -#include "code\game\objects\items\weapons\holosign.dm" -#include "code\game\objects\items\weapons\holy_weapons.dm" -#include "code\game\objects\items\weapons\kitchen.dm" -#include "code\game\objects\items\weapons\legcuffs.dm" -#include "code\game\objects\items\weapons\lighters.dm" -#include "code\game\objects\items\weapons\manuals.dm" -#include "code\game\objects\items\weapons\misc.dm" -#include "code\game\objects\items\weapons\mop.dm" -#include "code\game\objects\items\weapons\paint.dm" -#include "code\game\objects\items\weapons\paiwire.dm" -#include "code\game\objects\items\weapons\pneumaticCannon.dm" -#include "code\game\objects\items\weapons\powerfist.dm" -#include "code\game\objects\items\weapons\RCD.dm" -#include "code\game\objects\items\weapons\RCL.dm" -#include "code\game\objects\items\weapons\rpd.dm" -#include "code\game\objects\items\weapons\RSF.dm" -#include "code\game\objects\items\weapons\scissors.dm" -#include "code\game\objects\items\weapons\scrolls.dm" -#include "code\game\objects\items\weapons\shards.dm" -#include "code\game\objects\items\weapons\shields.dm" -#include "code\game\objects\items\weapons\signs.dm" -#include "code\game\objects\items\weapons\soap.dm" -#include "code\game\objects\items\weapons\staff.dm" -#include "code\game\objects\items\weapons\stock_parts.dm" -#include "code\game\objects\items\weapons\stunbaton.dm" -#include "code\game\objects\items\weapons\swords_axes_etc.dm" -#include "code\game\objects\items\weapons\tape.dm" -#include "code\game\objects\items\weapons\teleportation.dm" -#include "code\game\objects\items\weapons\teleprod.dm" -#include "code\game\objects\items\weapons\tools.dm" -#include "code\game\objects\items\weapons\twohanded.dm" -#include "code\game\objects\items\weapons\vending_items.dm" -#include "code\game\objects\items\weapons\weaponry.dm" -#include "code\game\objects\items\weapons\whetstone.dm" -#include "code\game\objects\items\weapons\grenades\atmosgrenade.dm" -#include "code\game\objects\items\weapons\grenades\bananade.dm" -#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" -#include "code\game\objects\items\weapons\grenades\clowngrenade.dm" -#include "code\game\objects\items\weapons\grenades\clusterbuster.dm" -#include "code\game\objects\items\weapons\grenades\confetti.dm" -#include "code\game\objects\items\weapons\grenades\custom_grenades.dm" -#include "code\game\objects\items\weapons\grenades\emgrenade.dm" -#include "code\game\objects\items\weapons\grenades\flashbang.dm" -#include "code\game\objects\items\weapons\grenades\frag.dm" -#include "code\game\objects\items\weapons\grenades\ghettobomb.dm" -#include "code\game\objects\items\weapons\grenades\grenade.dm" -#include "code\game\objects\items\weapons\grenades\smokebomb.dm" -#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" -#include "code\game\objects\items\weapons\grenades\syndieminibomb.dm" -#include "code\game\objects\items\weapons\implants\health.dm" -#include "code\game\objects\items\weapons\implants\implant.dm" -#include "code\game\objects\items\weapons\implants\implant_abductor.dm" -#include "code\game\objects\items\weapons\implants\implant_chem.dm" -#include "code\game\objects\items\weapons\implants\implant_death_alarm.dm" -#include "code\game\objects\items\weapons\implants\implant_explosive.dm" -#include "code\game\objects\items\weapons\implants\implant_freedom.dm" -#include "code\game\objects\items\weapons\implants\implant_krav_maga.dm" -#include "code\game\objects\items\weapons\implants\implant_mindshield.dm" -#include "code\game\objects\items\weapons\implants\implant_misc.dm" -#include "code\game\objects\items\weapons\implants\implant_storage.dm" -#include "code\game\objects\items\weapons\implants\implant_track.dm" -#include "code\game\objects\items\weapons\implants\implant_traitor.dm" -#include "code\game\objects\items\weapons\implants\implantcase.dm" -#include "code\game\objects\items\weapons\implants\implantchair.dm" -#include "code\game\objects\items\weapons\implants\implanter.dm" -#include "code\game\objects\items\weapons\implants\implantpad.dm" -#include "code\game\objects\items\weapons\implants\implantuplink.dm" -#include "code\game\objects\items\weapons\melee\energy.dm" -#include "code\game\objects\items\weapons\melee\misc.dm" -#include "code\game\objects\items\weapons\storage\artistic_toolbox.dm" -#include "code\game\objects\items\weapons\storage\backpack.dm" -#include "code\game\objects\items\weapons\storage\bags.dm" -#include "code\game\objects\items\weapons\storage\belt.dm" -#include "code\game\objects\items\weapons\storage\bible.dm" -#include "code\game\objects\items\weapons\storage\boxes.dm" -#include "code\game\objects\items\weapons\storage\briefcase.dm" -#include "code\game\objects\items\weapons\storage\fancy.dm" -#include "code\game\objects\items\weapons\storage\firstaid.dm" -#include "code\game\objects\items\weapons\storage\internal.dm" -#include "code\game\objects\items\weapons\storage\lockbox.dm" -#include "code\game\objects\items\weapons\storage\secure.dm" -#include "code\game\objects\items\weapons\storage\storage.dm" -#include "code\game\objects\items\weapons\storage\toolbox.dm" -#include "code\game\objects\items\weapons\storage\uplink_kits.dm" -#include "code\game\objects\items\weapons\storage\wallets.dm" -#include "code\game\objects\items\weapons\tanks\jetpack.dm" -#include "code\game\objects\items\weapons\tanks\tank_types.dm" -#include "code\game\objects\items\weapons\tanks\tanks.dm" -#include "code\game\objects\items\weapons\tanks\watertank.dm" -#include "code\game\objects\random\random.dm" -#include "code\game\objects\structures\aliens.dm" -#include "code\game\objects\structures\barsign.dm" -#include "code\game\objects\structures\bedsheet_bin.dm" -#include "code\game\objects\structures\coathanger.dm" -#include "code\game\objects\structures\curtains.dm" -#include "code\game\objects\structures\depot.dm" -#include "code\game\objects\structures\displaycase.dm" -#include "code\game\objects\structures\door_assembly.dm" -#include "code\game\objects\structures\door_assembly_types.dm" -#include "code\game\objects\structures\dresser.dm" -#include "code\game\objects\structures\electricchair.dm" -#include "code\game\objects\structures\engicart.dm" -#include "code\game\objects\structures\extinguisher.dm" -#include "code\game\objects\structures\false_walls.dm" -#include "code\game\objects\structures\flora.dm" -#include "code\game\objects\structures\foodcart.dm" -#include "code\game\objects\structures\girders.dm" -#include "code\game\objects\structures\grille.dm" -#include "code\game\objects\structures\guillotine.dm" -#include "code\game\objects\structures\holosign.dm" -#include "code\game\objects\structures\inflatable.dm" -#include "code\game\objects\structures\janicart.dm" -#include "code\game\objects\structures\kitchen_spike.dm" -#include "code\game\objects\structures\ladders.dm" -#include "code\game\objects\structures\lamarr_cage.dm" -#include "code\game\objects\structures\lattice.dm" -#include "code\game\objects\structures\mineral_doors.dm" -#include "code\game\objects\structures\mirror.dm" -#include "code\game\objects\structures\misc.dm" -#include "code\game\objects\structures\mop_bucket.dm" -#include "code\game\objects\structures\morgue.dm" -#include "code\game\objects\structures\musician.dm" -#include "code\game\objects\structures\noticeboard.dm" -#include "code\game\objects\structures\plasticflaps.dm" -#include "code\game\objects\structures\reflector.dm" -#include "code\game\objects\structures\safe.dm" -#include "code\game\objects\structures\signs.dm" -#include "code\game\objects\structures\spirit_board.dm" -#include "code\game\objects\structures\statues.dm" -#include "code\game\objects\structures\table_frames.dm" -#include "code\game\objects\structures\tables_racks.dm" -#include "code\game\objects\structures\tank_dispenser.dm" -#include "code\game\objects\structures\target_stake.dm" -#include "code\game\objects\structures\watercloset.dm" -#include "code\game\objects\structures\windoor_assembly.dm" -#include "code\game\objects\structures\window.dm" -#include "code\game\objects\structures\crates_lockers\closets.dm" -#include "code\game\objects\structures\crates_lockers\crates.dm" -#include "code\game\objects\structures\crates_lockers\crittercrate.dm" -#include "code\game\objects\structures\crates_lockers\largecrate.dm" -#include "code\game\objects\structures\crates_lockers\walllocker.dm" -#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" -#include "code\game\objects\structures\crates_lockers\closets\coffin.dm" -#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" -#include "code\game\objects\structures\crates_lockers\closets\fireaxe.dm" -#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" -#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" -#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" -#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" -#include "code\game\objects\structures\crates_lockers\closets\statue.dm" -#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" -#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\chaplain.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\depot.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\miscjobs.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" -#include "code\game\objects\structures\decor\decor.dm" -#include "code\game\objects\structures\decor\machinery\telecomms.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" -#include "code\game\objects\structures\transit_tubes\station.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" -#include "code\game\turfs\simulated.dm" -#include "code\game\turfs\turf.dm" -#include "code\game\turfs\unsimulated.dm" -#include "code\game\turfs\simulated\floor.dm" -#include "code\game\turfs\simulated\shuttle.dm" -#include "code\game\turfs\simulated\walls.dm" -#include "code\game\turfs\simulated\walls_mineral.dm" -#include "code\game\turfs\simulated\walls_misc.dm" -#include "code\game\turfs\simulated\walls_reinforced.dm" -#include "code\game\turfs\simulated\floor\fancy_floor.dm" -#include "code\game\turfs\simulated\floor\light_floor.dm" -#include "code\game\turfs\simulated\floor\mineral.dm" -#include "code\game\turfs\simulated\floor\misc_floor.dm" -#include "code\game\turfs\simulated\floor\plasteel_floor.dm" -#include "code\game\turfs\simulated\floor\plating.dm" -#include "code\game\turfs\space\space.dm" -#include "code\game\turfs\space\transit.dm" -#include "code\game\turfs\unsimulated\beach.dm" -#include "code\game\turfs\unsimulated\floor.dm" -#include "code\game\turfs\unsimulated\walls.dm" -#include "code\game\verbs\ooc.dm" -#include "code\game\verbs\suicide.dm" -#include "code\game\verbs\who.dm" -#include "code\js\byjax.dm" -#include "code\js\menus.dm" -#include "code\LINDA\LINDA_fire.dm" -#include "code\LINDA\LINDA_system.dm" -#include "code\LINDA\LINDA_turf_tile.dm" -#include "code\modules\admin\admin.dm" -#include "code\modules\admin\admin_investigate.dm" -#include "code\modules\admin\admin_memo.dm" -#include "code\modules\admin\admin_ranks.dm" -#include "code\modules\admin\admin_verbs.dm" -#include "code\modules\admin\banappearance.dm" -#include "code\modules\admin\banjob.dm" -#include "code\modules\admin\create_mob.dm" -#include "code\modules\admin\create_object.dm" -#include "code\modules\admin\create_poll.dm" -#include "code\modules\admin\create_turf.dm" -#include "code\modules\admin\holder2.dm" -#include "code\modules\admin\IsBanned.dm" -#include "code\modules\admin\machine_upgrade.dm" -#include "code\modules\admin\NewBan.dm" -#include "code\modules\admin\player_panel.dm" -#include "code\modules\admin\secrets.dm" -#include "code\modules\admin\sql_notes.dm" -#include "code\modules\admin\stickyban.dm" -#include "code\modules\admin\topic.dm" -#include "code\modules\admin\ToRban.dm" -#include "code\modules\admin\watchlist.dm" -#include "code\modules\admin\DB ban\functions.dm" -#include "code\modules\admin\permissionverbs\permissionedit.dm" -#include "code\modules\admin\tickets\adminticketsverbs.dm" -#include "code\modules\admin\verbs\adminhelp.dm" -#include "code\modules\admin\verbs\adminjump.dm" -#include "code\modules\admin\verbs\adminpm.dm" -#include "code\modules\admin\verbs\adminsay.dm" -#include "code\modules\admin\verbs\alt_check.dm" -#include "code\modules\admin\verbs\antag-ooc.dm" -#include "code\modules\admin\verbs\atmosdebug.dm" -#include "code\modules\admin\verbs\BrokenInhands.dm" -#include "code\modules\admin\verbs\cinematic.dm" -#include "code\modules\admin\verbs\custom_event.dm" -#include "code\modules\admin\verbs\deadsay.dm" -#include "code\modules\admin\verbs\debug.dm" -#include "code\modules\admin\verbs\diagnostics.dm" -#include "code\modules\admin\verbs\dice.dm" -#include "code\modules\admin\verbs\freeze.dm" -#include "code\modules\admin\verbs\getlogs.dm" -#include "code\modules\admin\verbs\gimmick_team.dm" -#include "code\modules\admin\verbs\honksquad.dm" -#include "code\modules\admin\verbs\infiltratorteam_syndicate.dm" -#include "code\modules\admin\verbs\map_template_loadverb.dm" -#include "code\modules\admin\verbs\mapping.dm" -#include "code\modules\admin\verbs\massmodvar.dm" -#include "code\modules\admin\verbs\modifyvariables.dm" -#include "code\modules\admin\verbs\one_click_antag.dm" -#include "code\modules\admin\verbs\onlyone.dm" -#include "code\modules\admin\verbs\onlyoneteam.dm" -#include "code\modules\admin\verbs\playsound.dm" -#include "code\modules\admin\verbs\possess.dm" -#include "code\modules\admin\verbs\pray.dm" -#include "code\modules\admin\verbs\randomverbs.dm" -#include "code\modules\admin\verbs\serialization.dm" -#include "code\modules\admin\verbs\space_transitions.dm" -#include "code\modules\admin\verbs\spawnfloorcluwne.dm" -#include "code\modules\admin\verbs\striketeam.dm" -#include "code\modules\admin\verbs\striketeam_syndicate.dm" -#include "code\modules\admin\verbs\ticklag.dm" -#include "code\modules\admin\verbs\toggledebugverbs.dm" -#include "code\modules\admin\verbs\tripAI.dm" -#include "code\modules\admin\verbs\vox_raiders.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" -#include "code\modules\admin\verbs\SDQL2\useful_procs.dm" -#include "code\modules\alarm\alarm.dm" -#include "code\modules\alarm\alarm_handler.dm" -#include "code\modules\alarm\atmosphere_alarm.dm" -#include "code\modules\alarm\burglar_alarm.dm" -#include "code\modules\alarm\camera_alarm.dm" -#include "code\modules\alarm\fire_alarm.dm" -#include "code\modules\alarm\motion_alarm.dm" -#include "code\modules\alarm\power_alarm.dm" -#include "code\modules\antagonists\_common\antag_datum.dm" -#include "code\modules\antagonists\_common\antag_helpers.dm" -#include "code\modules\antagonists\_common\antag_hud.dm" -#include "code\modules\antagonists\_common\antag_spawner.dm" -#include "code\modules\antagonists\_common\antag_team.dm" -#include "code\modules\antagonists\wishgranter\wishgranter.dm" -#include "code\modules\arcade\arcade_base.dm" -#include "code\modules\arcade\arcade_prize.dm" -#include "code\modules\arcade\claw_game.dm" -#include "code\modules\arcade\prize_counter.dm" -#include "code\modules\arcade\prize_datums.dm" -#include "code\modules\arcade\mob_hunt\battle_computer.dm" -#include "code\modules\arcade\mob_hunt\mob_avatar.dm" -#include "code\modules\arcade\mob_hunt\mob_cards.dm" -#include "code\modules\arcade\mob_hunt\mob_datums.dm" -#include "code\modules\arcade\mob_hunt\mob_type_datums.dm" -#include "code\modules\assembly\assembly.dm" -#include "code\modules\assembly\bomb.dm" -#include "code\modules\assembly\health.dm" -#include "code\modules\assembly\helpers.dm" -#include "code\modules\assembly\holder.dm" -#include "code\modules\assembly\igniter.dm" -#include "code\modules\assembly\infrared.dm" -#include "code\modules\assembly\mousetrap.dm" -#include "code\modules\assembly\proximity.dm" -#include "code\modules\assembly\shock_kit.dm" -#include "code\modules\assembly\signaler.dm" -#include "code\modules\assembly\timer.dm" -#include "code\modules\assembly\voice.dm" -#include "code\modules\atmos_automation\console.dm" -#include "code\modules\atmos_automation\statements.dm" -#include "code\modules\atmos_automation\implementation\digital_valves.dm" -#include "code\modules\atmos_automation\implementation\emitters.dm" -#include "code\modules\atmos_automation\implementation\injectors.dm" -#include "code\modules\atmos_automation\implementation\scrubbers.dm" -#include "code\modules\atmos_automation\implementation\sensors.dm" -#include "code\modules\atmos_automation\implementation\vent_pump.dm" -#include "code\modules\awaymissions\corpse.dm" -#include "code\modules\awaymissions\exile.dm" -#include "code\modules\awaymissions\gateway.dm" -#include "code\modules\awaymissions\loot.dm" -#include "code\modules\awaymissions\map_rng.dm" -#include "code\modules\awaymissions\pamphlet.dm" -#include "code\modules\awaymissions\snpc.dm" -#include "code\modules\awaymissions\trigger.dm" -#include "code\modules\awaymissions\zlevel.dm" -#include "code\modules\awaymissions\zvis.dm" -#include "code\modules\awaymissions\maploader\dmm_suite.dm" -#include "code\modules\awaymissions\maploader\reader.dm" -#include "code\modules\awaymissions\maploader\writer.dm" -#include "code\modules\awaymissions\mission_code\academy.dm" -#include "code\modules\awaymissions\mission_code\beach.dm" -#include "code\modules\awaymissions\mission_code\blackmarketpackers.dm" -#include "code\modules\awaymissions\mission_code\centcomAway.dm" -#include "code\modules\awaymissions\mission_code\challenge.dm" -#include "code\modules\awaymissions\mission_code\clownplanet.dm" -#include "code\modules\awaymissions\mission_code\evil_santa.dm" -#include "code\modules\awaymissions\mission_code\spacebattle.dm" -#include "code\modules\awaymissions\mission_code\spacehotel.dm" -#include "code\modules\awaymissions\mission_code\spacehotel_npcs.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" -#include "code\modules\awaymissions\mission_code\UO71-terrorspiders.dm" -#include "code\modules\awaymissions\mission_code\wildwest.dm" -#include "code\modules\awaymissions\mission_code\ghost_role_spawners\golems.dm" -#include "code\modules\awaymissions\mission_code\ghost_role_spawners\oldstation.dm" -#include "code\modules\awaymissions\mission_code\ruins\oldstation.dm" -#include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm" -#include "code\modules\buildmode\bm_mode.dm" -#include "code\modules\buildmode\buildmode.dm" -#include "code\modules\buildmode\buttons.dm" -#include "code\modules\buildmode\effects\line.dm" -#include "code\modules\buildmode\submodes\advanced.dm" -#include "code\modules\buildmode\submodes\area_edit.dm" -#include "code\modules\buildmode\submodes\atmos.dm" -#include "code\modules\buildmode\submodes\basic.dm" -#include "code\modules\buildmode\submodes\boom.dm" -#include "code\modules\buildmode\submodes\copy.dm" -#include "code\modules\buildmode\submodes\fill.dm" -#include "code\modules\buildmode\submodes\link.dm" -#include "code\modules\buildmode\submodes\mapgen.dm" -#include "code\modules\buildmode\submodes\save.dm" -#include "code\modules\buildmode\submodes\throwing.dm" -#include "code\modules\buildmode\submodes\variable_edit.dm" -#include "code\modules\busy_space\air_traffic.dm" -#include "code\modules\busy_space\loremaster.dm" -#include "code\modules\busy_space\organizations.dm" -#include "code\modules\client\asset_cache.dm" -#include "code\modules\client\client defines.dm" -#include "code\modules\client\client procs.dm" -#include "code\modules\client\message.dm" -#include "code\modules\client\view.dm" -#include "code\modules\client\preference\preferences.dm" -#include "code\modules\client\preference\preferences_mysql.dm" -#include "code\modules\client\preference\preferences_spawnpoints.dm" -#include "code\modules\client\preference\preferences_toggles.dm" -#include "code\modules\client\preference\loadout\gear_tweaks.dm" -#include "code\modules\client\preference\loadout\loadout.dm" -#include "code\modules\client\preference\loadout\loadout_accessories.dm" -#include "code\modules\client\preference\loadout\loadout_cosmetics.dm" -#include "code\modules\client\preference\loadout\loadout_donor.dm" -#include "code\modules\client\preference\loadout\loadout_general.dm" -#include "code\modules\client\preference\loadout\loadout_hat.dm" -#include "code\modules\client\preference\loadout\loadout_racial.dm" -#include "code\modules\client\preference\loadout\loadout_shoes.dm" -#include "code\modules\client\preference\loadout\loadout_suit.dm" -#include "code\modules\client\preference\loadout\loadout_uniform.dm" -#include "code\modules\clothing\clothing.dm" -#include "code\modules\clothing\ears\ears.dm" -#include "code\modules\clothing\glasses\glasses.dm" -#include "code\modules\clothing\glasses\hud.dm" -#include "code\modules\clothing\gloves\boxing.dm" -#include "code\modules\clothing\gloves\color.dm" -#include "code\modules\clothing\gloves\miscellaneous.dm" -#include "code\modules\clothing\gloves\rings.dm" -#include "code\modules\clothing\head\collectable.dm" -#include "code\modules\clothing\head\hardhat.dm" -#include "code\modules\clothing\head\helmet.dm" -#include "code\modules\clothing\head\jobs.dm" -#include "code\modules\clothing\head\misc.dm" -#include "code\modules\clothing\head\misc_special.dm" -#include "code\modules\clothing\head\soft_caps.dm" -#include "code\modules\clothing\masks\boxing.dm" -#include "code\modules\clothing\masks\breath.dm" -#include "code\modules\clothing\masks\gasmask.dm" -#include "code\modules\clothing\masks\miscellaneous.dm" -#include "code\modules\clothing\masks\voice.dm" -#include "code\modules\clothing\patreon\glasses.dm" -#include "code\modules\clothing\patreon\hats.dm" -#include "code\modules\clothing\shoes\colour.dm" -#include "code\modules\clothing\shoes\magboots.dm" -#include "code\modules\clothing\shoes\miscellaneous.dm" -#include "code\modules\clothing\spacesuits\alien.dm" -#include "code\modules\clothing\spacesuits\breaches.dm" -#include "code\modules\clothing\spacesuits\chronosuit.dm" -#include "code\modules\clothing\spacesuits\ert.dm" -#include "code\modules\clothing\spacesuits\hardsuit.dm" -#include "code\modules\clothing\spacesuits\miscellaneous.dm" -#include "code\modules\clothing\spacesuits\plasmamen.dm" -#include "code\modules\clothing\spacesuits\syndi.dm" -#include "code\modules\clothing\spacesuits\void.dm" -#include "code\modules\clothing\spacesuits\rig\rig.dm" -#include "code\modules\clothing\spacesuits\rig\rig_armormod.dm" -#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm" -#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm" -#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm" -#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm" -#include "code\modules\clothing\spacesuits\rig\modules\combat.dm" -#include "code\modules\clothing\spacesuits\rig\modules\computer.dm" -#include "code\modules\clothing\spacesuits\rig\modules\modules.dm" -#include "code\modules\clothing\spacesuits\rig\modules\ninja.dm" -#include "code\modules\clothing\spacesuits\rig\modules\utility.dm" -#include "code\modules\clothing\spacesuits\rig\modules\vision.dm" -#include "code\modules\clothing\spacesuits\rig\suits\alien.dm" -#include "code\modules\clothing\spacesuits\rig\suits\combat.dm" -#include "code\modules\clothing\spacesuits\rig\suits\ert_suits.dm" -#include "code\modules\clothing\spacesuits\rig\suits\light.dm" -#include "code\modules\clothing\spacesuits\rig\suits\merc.dm" -#include "code\modules\clothing\spacesuits\rig\suits\station.dm" -#include "code\modules\clothing\suits\alien.dm" -#include "code\modules\clothing\suits\armor.dm" -#include "code\modules\clothing\suits\bio.dm" -#include "code\modules\clothing\suits\hood.dm" -#include "code\modules\clothing\suits\jobs.dm" -#include "code\modules\clothing\suits\labcoat.dm" -#include "code\modules\clothing\suits\miscellaneous.dm" -#include "code\modules\clothing\suits\storage.dm" -#include "code\modules\clothing\suits\utility.dm" -#include "code\modules\clothing\suits\wiz_robe.dm" -#include "code\modules\clothing\under\chameleon.dm" -#include "code\modules\clothing\under\color.dm" -#include "code\modules\clothing\under\miscellaneous.dm" -#include "code\modules\clothing\under\oldstation_uni.dm" -#include "code\modules\clothing\under\pants.dm" -#include "code\modules\clothing\under\shorts.dm" -#include "code\modules\clothing\under\syndicate.dm" -#include "code\modules\clothing\under\accessories\accessory.dm" -#include "code\modules\clothing\under\accessories\armband.dm" -#include "code\modules\clothing\under\accessories\holster.dm" -#include "code\modules\clothing\under\accessories\storage.dm" -#include "code\modules\clothing\under\jobs\civilian.dm" -#include "code\modules\clothing\under\jobs\engineering.dm" -#include "code\modules\clothing\under\jobs\medsci.dm" -#include "code\modules\clothing\under\jobs\security.dm" -#include "code\modules\countdown\countdown.dm" -#include "code\modules\crafting\craft.dm" -#include "code\modules\crafting\guncrafting.dm" -#include "code\modules\crafting\recipes.dm" -#include "code\modules\customitems\item_defines.dm" -#include "code\modules\customitems\item_spawning.dm" -#include "code\modules\detective_work\detective_work.dm" -#include "code\modules\detective_work\evidence.dm" -#include "code\modules\detective_work\footprints_and_rag.dm" -#include "code\modules\detective_work\scanner.dm" -#include "code\modules\discord\accountlink.dm" -#include "code\modules\discord\notify.dm" -#include "code\modules\economy\Accounts.dm" -#include "code\modules\economy\Accounts_DB.dm" -#include "code\modules\economy\ATM.dm" -#include "code\modules\economy\Economy.dm" -#include "code\modules\economy\Economy_Events.dm" -#include "code\modules\economy\Economy_Events_Mundane.dm" -#include "code\modules\economy\Economy_TradeDestinations.dm" -#include "code\modules\economy\EFTPOS.dm" -#include "code\modules\economy\Job_Departments.dm" -#include "code\modules\economy\POS.dm" -#include "code\modules\economy\utils.dm" -#include "code\modules\error_handler\error_handler.dm" -#include "code\modules\error_handler\error_viewer.dm" -#include "code\modules\events\abductor.dm" -#include "code\modules\events\alien_infestation.dm" -#include "code\modules\events\anomaly.dm" -#include "code\modules\events\anomaly_bluespace.dm" -#include "code\modules\events\anomaly_flux.dm" -#include "code\modules\events\anomaly_grav.dm" -#include "code\modules\events\anomaly_pyro.dm" -#include "code\modules\events\anomaly_vortex.dm" -#include "code\modules\events\aurora_caelus.dm" -#include "code\modules\events\blob.dm" -#include "code\modules\events\brand_intelligence.dm" -#include "code\modules\events\carp_migration.dm" -#include "code\modules\events\communications_blackout.dm" -#include "code\modules\events\disease_outbreak.dm" -#include "code\modules\events\dust.dm" -#include "code\modules\events\electrical_storm.dm" -#include "code\modules\events\event.dm" -#include "code\modules\events\event_container.dm" -#include "code\modules\events\event_manager.dm" -#include "code\modules\events\false_alarm.dm" -#include "code\modules\events\floorcluwne.dm" -#include "code\modules\events\grid_check.dm" -#include "code\modules\events\immovable_rod.dm" -#include "code\modules\events\infestation.dm" -#include "code\modules\events\ion_storm.dm" -#include "code\modules\events\koi_mirgration.dm" -#include "code\modules\events\mass_hallucination.dm" -#include "code\modules\events\meaty_gore.dm" -#include "code\modules\events\meaty_ops.dm" -#include "code\modules\events\meaty_ores.dm" -#include "code\modules\events\meteors.dm" -#include "code\modules\events\money_hacker.dm" -#include "code\modules\events\money_lotto.dm" -#include "code\modules\events\money_spam.dm" -#include "code\modules\events\prison_break.dm" -#include "code\modules\events\radiation_storm.dm" -#include "code\modules\events\rogue_drones.dm" -#include "code\modules\events\sentience.dm" -#include "code\modules\events\slaughterevent.dm" -#include "code\modules\events\spacevine.dm" -#include "code\modules\events\spider_infestation.dm" -#include "code\modules\events\spider_terror.dm" -#include "code\modules\events\spontaneous_appendicitis.dm" -#include "code\modules\events\tear.dm" -#include "code\modules\events\tear_honk.dm" -#include "code\modules\events\traders.dm" -#include "code\modules\events\undead.dm" -#include "code\modules\events\vent_clog.dm" -#include "code\modules\events\wallrot.dm" -#include "code\modules\events\wormholes.dm" -#include "code\modules\examine\examine.dm" -#include "code\modules\examine\descriptions\atmospherics.dm" -#include "code\modules\examine\descriptions\engineering.dm" -#include "code\modules\examine\descriptions\medical.dm" -#include "code\modules\examine\descriptions\mobs.dm" -#include "code\modules\examine\descriptions\stacks.dm" -#include "code\modules\examine\descriptions\structures.dm" -#include "code\modules\examine\descriptions\turfs.dm" -#include "code\modules\examine\descriptions\weapons.dm" -#include "code\modules\ext_scripts\irc.dm" -#include "code\modules\ext_scripts\python.dm" -#include "code\modules\fancytitle\fancytitle.dm" -#include "code\modules\fish\fish_eggs.dm" -#include "code\modules\fish\fish_items.dm" -#include "code\modules\fish\fish_types.dm" -#include "code\modules\fish\fishtank.dm" -#include "code\modules\flufftext\Dreaming.dm" -#include "code\modules\flufftext\Hallucination.dm" -#include "code\modules\flufftext\TextFilters.dm" -#include "code\modules\food_and_drinks\food.dm" -#include "code\modules\food_and_drinks\drinks\drinks.dm" -#include "code\modules\food_and_drinks\drinks\bottler\bottler.dm" -#include "code\modules\food_and_drinks\drinks\bottler\bottler_recipes.dm" -#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" -#include "code\modules\food_and_drinks\drinks\drinks\cans.dm" -#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" -#include "code\modules\food_and_drinks\drinks\drinks\mugs.dm" -#include "code\modules\food_and_drinks\drinks\drinks\shotglass.dm" -#include "code\modules\food_and_drinks\food\condiment.dm" -#include "code\modules\food_and_drinks\food\customizables.dm" -#include "code\modules\food_and_drinks\food\snacks.dm" -#include "code\modules\food_and_drinks\food\foods\baked_goods.dm" -#include "code\modules\food_and_drinks\food\foods\bread.dm" -#include "code\modules\food_and_drinks\food\foods\candy.dm" -#include "code\modules\food_and_drinks\food\foods\desserts.dm" -#include "code\modules\food_and_drinks\food\foods\ethnic.dm" -#include "code\modules\food_and_drinks\food\foods\ingredients.dm" -#include "code\modules\food_and_drinks\food\foods\junkfood.dm" -#include "code\modules\food_and_drinks\food\foods\meat.dm" -#include "code\modules\food_and_drinks\food\foods\misc.dm" -#include "code\modules\food_and_drinks\food\foods\pasta.dm" -#include "code\modules\food_and_drinks\food\foods\pizza.dm" -#include "code\modules\food_and_drinks\food\foods\sandwiches.dm" -#include "code\modules\food_and_drinks\food\foods\seafood.dm" -#include "code\modules\food_and_drinks\food\foods\side_dishes.dm" -#include "code\modules\food_and_drinks\food\foods\soups.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\candy_maker.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\cereal_maker.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\cooker.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\food_grill.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\grill_new.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat_2.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\juicer.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" -#include "code\modules\food_and_drinks\recipes\recipes_candy.dm" -#include "code\modules\food_and_drinks\recipes\recipes_grill.dm" -#include "code\modules\food_and_drinks\recipes\recipes_microwave.dm" -#include "code\modules\food_and_drinks\recipes\recipes_oven.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_table.dm" -#include "code\modules\games\52card.dm" -#include "code\modules\games\cards.dm" -#include "code\modules\games\tarot.dm" -#include "code\modules\holiday\christmas.dm" -#include "code\modules\holiday\holiday.dm" -#include "code\modules\hydroponics\biogenerator.dm" -#include "code\modules\hydroponics\fermenting_barrel.dm" -#include "code\modules\hydroponics\gene_modder.dm" -#include "code\modules\hydroponics\grown.dm" -#include "code\modules\hydroponics\growninedible.dm" -#include "code\modules\hydroponics\hydroitemdefines.dm" -#include "code\modules\hydroponics\hydroponics.dm" -#include "code\modules\hydroponics\plant_genes.dm" -#include "code\modules\hydroponics\sample.dm" -#include "code\modules\hydroponics\seed_extractor.dm" -#include "code\modules\hydroponics\seeds.dm" -#include "code\modules\hydroponics\beekeeping\beebox.dm" -#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" -#include "code\modules\hydroponics\beekeeping\honey_frame.dm" -#include "code\modules\hydroponics\beekeeping\honeycomb.dm" -#include "code\modules\hydroponics\grown\ambrosia.dm" -#include "code\modules\hydroponics\grown\apple.dm" -#include "code\modules\hydroponics\grown\banana.dm" -#include "code\modules\hydroponics\grown\beans.dm" -#include "code\modules\hydroponics\grown\berries.dm" -#include "code\modules\hydroponics\grown\cannabis.dm" -#include "code\modules\hydroponics\grown\cereals.dm" -#include "code\modules\hydroponics\grown\chili.dm" -#include "code\modules\hydroponics\grown\citrus.dm" -#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" -#include "code\modules\hydroponics\grown\corn.dm" -#include "code\modules\hydroponics\grown\eggplant.dm" -#include "code\modules\hydroponics\grown\flowers.dm" -#include "code\modules\hydroponics\grown\grass_carpet.dm" -#include "code\modules\hydroponics\grown\herbals.dm" -#include "code\modules\hydroponics\grown\kudzu.dm" -#include "code\modules\hydroponics\grown\melon.dm" -#include "code\modules\hydroponics\grown\misc.dm" -#include "code\modules\hydroponics\grown\mushrooms.dm" -#include "code\modules\hydroponics\grown\nettle.dm" -#include "code\modules\hydroponics\grown\nymph.dm" -#include "code\modules\hydroponics\grown\onion.dm" -#include "code\modules\hydroponics\grown\peanut.dm" -#include "code\modules\hydroponics\grown\pineapple.dm" -#include "code\modules\hydroponics\grown\potato.dm" -#include "code\modules\hydroponics\grown\pumpkin.dm" -#include "code\modules\hydroponics\grown\random.dm" -#include "code\modules\hydroponics\grown\replicapod.dm" -#include "code\modules\hydroponics\grown\root.dm" -#include "code\modules\hydroponics\grown\tea_coffee.dm" -#include "code\modules\hydroponics\grown\tobacco.dm" -#include "code\modules\hydroponics\grown\tomato.dm" -#include "code\modules\hydroponics\grown\towercap.dm" -#include "code\modules\karma\karma.dm" -#include "code\modules\library\admin.dm" -#include "code\modules\library\codex_gigas.dm" -#include "code\modules\library\lib_items.dm" -#include "code\modules\library\lib_machines.dm" -#include "code\modules\library\lib_readme.dm" -#include "code\modules\library\computers\base.dm" -#include "code\modules\library\computers\checkout.dm" -#include "code\modules\library\computers\public.dm" -#include "code\modules\lighting\__lighting_docs.dm" -#include "code\modules\lighting\lighting_area.dm" -#include "code\modules\lighting\lighting_atom.dm" -#include "code\modules\lighting\lighting_corner.dm" -#include "code\modules\lighting\lighting_overlay.dm" -#include "code\modules\lighting\lighting_setup.dm" -#include "code\modules\lighting\lighting_source.dm" -#include "code\modules\lighting\lighting_turf.dm" -#include "code\modules\lighting\~lighting_undefs.dm" -#include "code\modules\logic\converter.dm" -#include "code\modules\logic\dual_input.dm" -#include "code\modules\logic\logic_base.dm" -#include "code\modules\logic\mono_input.dm" -#include "code\modules\map_fluff\cyberiad.dm" -#include "code\modules\map_fluff\delta.dm" -#include "code\modules\map_fluff\maps.dm" -#include "code\modules\map_fluff\metastation.dm" -#include "code\modules\martial_arts\adminfu.dm" -#include "code\modules\martial_arts\brawling.dm" -#include "code\modules\martial_arts\cqc.dm" -#include "code\modules\martial_arts\krav_maga.dm" -#include "code\modules\martial_arts\martial.dm" -#include "code\modules\martial_arts\mimejutsu.dm" -#include "code\modules\martial_arts\plasma_fist.dm" -#include "code\modules\martial_arts\sleeping_carp.dm" -#include "code\modules\martial_arts\wrestleing.dm" -#include "code\modules\mining\abandonedcrates.dm" -#include "code\modules\mining\coins.dm" -#include "code\modules\mining\equipment_locker.dm" -#include "code\modules\mining\machine_processing.dm" -#include "code\modules\mining\machine_stacking.dm" -#include "code\modules\mining\machine_unloading.dm" -#include "code\modules\mining\mine_areas.dm" -#include "code\modules\mining\mine_items.dm" -#include "code\modules\mining\mine_turfs.dm" -#include "code\modules\mining\minebot.dm" -#include "code\modules\mining\mint.dm" -#include "code\modules\mining\money_bag.dm" -#include "code\modules\mining\ore.dm" -#include "code\modules\mining\satchel_ore_boxdm.dm" -#include "code\modules\mining\shelters.dm" -#include "code\modules\mining\laborcamp\laborminerals.dm" -#include "code\modules\mining\laborcamp\laborshuttle.dm" -#include "code\modules\mining\laborcamp\laborstacker.dm" -#include "code\modules\mining\lavaland\ash_flora.dm" -#include "code\modules\mining\lavaland\necropolis_chests.dm" -#include "code\modules\mining\lavaland\loot\ashdragon_loot.dm" -#include "code\modules\mining\lavaland\loot\bubblegum_loot.dm" -#include "code\modules\mining\lavaland\loot\colossus_loot.dm" -#include "code\modules\mining\lavaland\loot\hierophant_loot.dm" -#include "code\modules\mining\lavaland\loot\legion_loot.dm" -#include "code\modules\mining\lavaland\loot\tendril_loot.dm" -#include "code\modules\mob\abilities.dm" -#include "code\modules\mob\death.dm" -#include "code\modules\mob\emote.dm" -#include "code\modules\mob\hear_say.dm" -#include "code\modules\mob\holder.dm" -#include "code\modules\mob\inventory.dm" -#include "code\modules\mob\language.dm" -#include "code\modules\mob\login.dm" -#include "code\modules\mob\logout.dm" -#include "code\modules\mob\mob.dm" -#include "code\modules\mob\mob_defines.dm" -#include "code\modules\mob\mob_grab.dm" -#include "code\modules\mob\mob_helpers.dm" -#include "code\modules\mob\mob_movement.dm" -#include "code\modules\mob\mob_transformation_simple.dm" -#include "code\modules\mob\say.dm" -#include "code\modules\mob\status_procs.dm" -#include "code\modules\mob\transform_procs.dm" -#include "code\modules\mob\typing_indicator.dm" -#include "code\modules\mob\update_icons.dm" -#include "code\modules\mob\update_status.dm" -#include "code\modules\mob\camera\camera.dm" -#include "code\modules\mob\dead\dead.dm" -#include "code\modules\mob\dead\death.dm" -#include "code\modules\mob\dead\observer\login.dm" -#include "code\modules\mob\dead\observer\logout.dm" -#include "code\modules\mob\dead\observer\observer.dm" -#include "code\modules\mob\dead\observer\say.dm" -#include "code\modules\mob\dead\observer\spells.dm" -#include "code\modules\mob\living\autohiss.dm" -#include "code\modules\mob\living\damage_procs.dm" -#include "code\modules\mob\living\death.dm" -#include "code\modules\mob\living\default_language.dm" -#include "code\modules\mob\living\life.dm" -#include "code\modules\mob\living\living.dm" -#include "code\modules\mob\living\living_defense.dm" -#include "code\modules\mob\living\living_defines.dm" -#include "code\modules\mob\living\login.dm" -#include "code\modules\mob\living\logout.dm" -#include "code\modules\mob\living\say.dm" -#include "code\modules\mob\living\stat_states.dm" -#include "code\modules\mob\living\status_procs.dm" -#include "code\modules\mob\living\update_status.dm" -#include "code\modules\mob\living\carbon\_defines.dm" -#include "code\modules\mob\living\carbon\carbon.dm" -#include "code\modules\mob\living\carbon\carbon_defense.dm" -#include "code\modules\mob\living\carbon\carbon_defines.dm" -#include "code\modules\mob\living\carbon\death.dm" -#include "code\modules\mob\living\carbon\give.dm" -#include "code\modules\mob\living\carbon\life.dm" -#include "code\modules\mob\living\carbon\superheroes.dm" -#include "code\modules\mob\living\carbon\update_icons.dm" -#include "code\modules\mob\living\carbon\update_status.dm" -#include "code\modules\mob\living\carbon\alien\alien.dm" -#include "code\modules\mob\living\carbon\alien\alien_defense.dm" -#include "code\modules\mob\living\carbon\alien\death.dm" -#include "code\modules\mob\living\carbon\alien\life.dm" -#include "code\modules\mob\living\carbon\alien\login.dm" -#include "code\modules\mob\living\carbon\alien\logout.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" -#include "code\modules\mob\living\carbon\alien\larva\emote.dm" -#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" -#include "code\modules\mob\living\carbon\alien\larva\life.dm" -#include "code\modules\mob\living\carbon\alien\larva\powers.dm" -#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" -#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" -#include "code\modules\mob\living\carbon\brain\brain.dm" -#include "code\modules\mob\living\carbon\brain\brain_item.dm" -#include "code\modules\mob\living\carbon\brain\death.dm" -#include "code\modules\mob\living\carbon\brain\emote.dm" -#include "code\modules\mob\living\carbon\brain\life.dm" -#include "code\modules\mob\living\carbon\brain\login.dm" -#include "code\modules\mob\living\carbon\brain\MMI.dm" -#include "code\modules\mob\living\carbon\brain\MMI_radio.dm" -#include "code\modules\mob\living\carbon\brain\robotic_brain.dm" -#include "code\modules\mob\living\carbon\brain\say.dm" -#include "code\modules\mob\living\carbon\brain\update_status.dm" -#include "code\modules\mob\living\carbon\human\appearance.dm" -#include "code\modules\mob\living\carbon\human\body_accessories.dm" -#include "code\modules\mob\living\carbon\human\death.dm" -#include "code\modules\mob\living\carbon\human\emote.dm" -#include "code\modules\mob\living\carbon\human\examine.dm" -#include "code\modules\mob\living\carbon\human\human.dm" -#include "code\modules\mob\living\carbon\human\human_damage.dm" -#include "code\modules\mob\living\carbon\human\human_defense.dm" -#include "code\modules\mob\living\carbon\human\human_defines.dm" -#include "code\modules\mob\living\carbon\human\human_movement.dm" -#include "code\modules\mob\living\carbon\human\human_organs.dm" -#include "code\modules\mob\living\carbon\human\inventory.dm" -#include "code\modules\mob\living\carbon\human\life.dm" -#include "code\modules\mob\living\carbon\human\login.dm" -#include "code\modules\mob\living\carbon\human\npcs.dm" -#include "code\modules\mob\living\carbon\human\say.dm" -#include "code\modules\mob\living\carbon\human\shock.dm" -#include "code\modules\mob\living\carbon\human\status_procs.dm" -#include "code\modules\mob\living\carbon\human\update_icons.dm" -#include "code\modules\mob\living\carbon\human\update_stat.dm" -#include "code\modules\mob\living\carbon\human\interactive\functions.dm" -#include "code\modules\mob\living\carbon\human\interactive\interactive.dm" -#include "code\modules\mob\living\carbon\human\interactive\prefabs.dm" -#include "code\modules\mob\living\carbon\human\species\_species.dm" -#include "code\modules\mob\living\carbon\human\species\abductor.dm" -#include "code\modules\mob\living\carbon\human\species\diona.dm" -#include "code\modules\mob\living\carbon\human\species\drask.dm" -#include "code\modules\mob\living\carbon\human\species\golem.dm" -#include "code\modules\mob\living\carbon\human\species\grey.dm" -#include "code\modules\mob\living\carbon\human\species\human.dm" -#include "code\modules\mob\living\carbon\human\species\kidan.dm" -#include "code\modules\mob\living\carbon\human\species\machine.dm" -#include "code\modules\mob\living\carbon\human\species\monkey.dm" -#include "code\modules\mob\living\carbon\human\species\nucleation.dm" -#include "code\modules\mob\living\carbon\human\species\plasmaman.dm" -#include "code\modules\mob\living\carbon\human\species\shadow.dm" -#include "code\modules\mob\living\carbon\human\species\shadowling.dm" -#include "code\modules\mob\living\carbon\human\species\skeleton.dm" -#include "code\modules\mob\living\carbon\human\species\skrell.dm" -#include "code\modules\mob\living\carbon\human\species\slime.dm" -#include "code\modules\mob\living\carbon\human\species\tajaran.dm" -#include "code\modules\mob\living\carbon\human\species\unathi.dm" -#include "code\modules\mob\living\carbon\human\species\vox.dm" -#include "code\modules\mob\living\carbon\human\species\vulpkanin.dm" -#include "code\modules\mob\living\carbon\human\species\wryn.dm" -#include "code\modules\mob\living\carbon\slime\death.dm" -#include "code\modules\mob\living\carbon\slime\emote.dm" -#include "code\modules\mob\living\carbon\slime\examine.dm" -#include "code\modules\mob\living\carbon\slime\life.dm" -#include "code\modules\mob\living\carbon\slime\powers.dm" -#include "code\modules\mob\living\carbon\slime\say.dm" -#include "code\modules\mob\living\carbon\slime\slime.dm" -#include "code\modules\mob\living\carbon\slime\subtypes.dm" -#include "code\modules\mob\living\carbon\slime\update_icons.dm" -#include "code\modules\mob\living\silicon\death.dm" -#include "code\modules\mob\living\silicon\emote.dm" -#include "code\modules\mob\living\silicon\laws.dm" -#include "code\modules\mob\living\silicon\login.dm" -#include "code\modules\mob\living\silicon\say.dm" -#include "code\modules\mob\living\silicon\silicon.dm" -#include "code\modules\mob\living\silicon\silicon_defense.dm" -#include "code\modules\mob\living\silicon\subsystems.dm" -#include "code\modules\mob\living\silicon\ai\ai.dm" -#include "code\modules\mob\living\silicon\ai\ai_defense.dm" -#include "code\modules\mob\living\silicon\ai\death.dm" -#include "code\modules\mob\living\silicon\ai\examine.dm" -#include "code\modules\mob\living\silicon\ai\latejoin.dm" -#include "code\modules\mob\living\silicon\ai\laws.dm" -#include "code\modules\mob\living\silicon\ai\life.dm" -#include "code\modules\mob\living\silicon\ai\login.dm" -#include "code\modules\mob\living\silicon\ai\logout.dm" -#include "code\modules\mob\living\silicon\ai\multicam.dm" -#include "code\modules\mob\living\silicon\ai\say.dm" -#include "code\modules\mob\living\silicon\ai\update_status.dm" -#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" -#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" -#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" -#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" -#include "code\modules\mob\living\silicon\decoy\death.dm" -#include "code\modules\mob\living\silicon\decoy\decoy.dm" -#include "code\modules\mob\living\silicon\decoy\life.dm" -#include "code\modules\mob\living\silicon\pai\death.dm" -#include "code\modules\mob\living\silicon\pai\emote.dm" -#include "code\modules\mob\living\silicon\pai\life.dm" -#include "code\modules\mob\living\silicon\pai\pai.dm" -#include "code\modules\mob\living\silicon\pai\personality.dm" -#include "code\modules\mob\living\silicon\pai\recruit.dm" -#include "code\modules\mob\living\silicon\pai\say.dm" -#include "code\modules\mob\living\silicon\pai\software.dm" -#include "code\modules\mob\living\silicon\pai\software_modules.dm" -#include "code\modules\mob\living\silicon\pai\update_status.dm" -#include "code\modules\mob\living\silicon\robot\component.dm" -#include "code\modules\mob\living\silicon\robot\death.dm" -#include "code\modules\mob\living\silicon\robot\emote.dm" -#include "code\modules\mob\living\silicon\robot\examine.dm" -#include "code\modules\mob\living\silicon\robot\inventory.dm" -#include "code\modules\mob\living\silicon\robot\laws.dm" -#include "code\modules\mob\living\silicon\robot\life.dm" -#include "code\modules\mob\living\silicon\robot\login.dm" -#include "code\modules\mob\living\silicon\robot\photos.dm" -#include "code\modules\mob\living\silicon\robot\robot.dm" -#include "code\modules\mob\living\silicon\robot\robot_damage.dm" -#include "code\modules\mob\living\silicon\robot\robot_defense.dm" -#include "code\modules\mob\living\silicon\robot\robot_items.dm" -#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm" -#include "code\modules\mob\living\silicon\robot\robot_modules.dm" -#include "code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "code\modules\mob\living\silicon\robot\syndicate.dm" -#include "code\modules\mob\living\silicon\robot\update_status.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" -#include "code\modules\mob\living\silicon\robot\drone\update_status.dm" -#include "code\modules\mob\living\simple_animal\animal_defense.dm" -#include "code\modules\mob\living\simple_animal\constructs.dm" -#include "code\modules\mob\living\simple_animal\corpse.dm" -#include "code\modules\mob\living\simple_animal\parrot.dm" -#include "code\modules\mob\living\simple_animal\pony.dm" -#include "code\modules\mob\living\simple_animal\posessed_object.dm" -#include "code\modules\mob\living\simple_animal\powers.dm" -#include "code\modules\mob\living\simple_animal\shade.dm" -#include "code\modules\mob\living\simple_animal\simple_animal.dm" -#include "code\modules\mob\living\simple_animal\spawner.dm" -#include "code\modules\mob\living\simple_animal\tribbles.dm" -#include "code\modules\mob\living\simple_animal\bot\bot.dm" -#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" -#include "code\modules\mob\living\simple_animal\bot\construction.dm" -#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" -#include "code\modules\mob\living\simple_animal\bot\emote.dm" -#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" -#include "code\modules\mob\living\simple_animal\bot\griefsky.dm" -#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" -#include "code\modules\mob\living\simple_animal\bot\medbot.dm" -#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" -#include "code\modules\mob\living\simple_animal\bot\secbot.dm" -#include "code\modules\mob\living\simple_animal\bot\syndicate.dm" -#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" -#include "code\modules\mob\living\simple_animal\friendly\cat.dm" -#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" -#include "code\modules\mob\living\simple_animal\friendly\corgi.dm" -#include "code\modules\mob\living\simple_animal\friendly\corgi_powers.dm" -#include "code\modules\mob\living\simple_animal\friendly\crab.dm" -#include "code\modules\mob\living\simple_animal\friendly\deer.dm" -#include "code\modules\mob\living\simple_animal\friendly\diona.dm" -#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" -#include "code\modules\mob\living\simple_animal\friendly\fox.dm" -#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" -#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" -#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" -#include "code\modules\mob\living\simple_animal\friendly\pet.dm" -#include "code\modules\mob\living\simple_animal\friendly\pug.dm" -#include "code\modules\mob\living\simple_animal\friendly\slime.dm" -#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" -#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm" -#include "code\modules\mob\living\simple_animal\hostile\alien.dm" -#include "code\modules\mob\living\simple_animal\hostile\bat.dm" -#include "code\modules\mob\living\simple_animal\hostile\bear.dm" -#include "code\modules\mob\living\simple_animal\hostile\bees.dm" -#include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\creature.dm" -#include "code\modules\mob\living\simple_animal\hostile\deathsquid.dm" -#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" -#include "code\modules\mob\living\simple_animal\hostile\feral_cat.dm" -#include "code\modules\mob\living\simple_animal\hostile\floorcluwne.dm" -#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" -#include "code\modules\mob\living\simple_animal\hostile\hellhound.dm" -#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" -#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" -#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle_animals.dm" -#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" -#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" -#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" -#include "code\modules\mob\living\simple_animal\hostile\russian.dm" -#include "code\modules\mob\living\simple_animal\hostile\spaceworms.dm" -#include "code\modules\mob\living\simple_animal\hostile\statue.dm" -#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" -#include "code\modules\mob\living\simple_animal\hostile\tree.dm" -#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" -#include "code\modules\mob\living\simple_animal\hostile\winter_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\goldgrub.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\hivelord.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\fish.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\kangaroo.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\pet.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\__defines.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\actions.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\black.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\brown.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\chem.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\empress.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\ghost.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\gray.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\green.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\hive.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\mother.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\prince.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\princess.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\purple.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\queen.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\red.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\reproduction.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_ai.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_spiders.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\white.dm" -#include "code\modules\mob\new_player\login.dm" -#include "code\modules\mob\new_player\logout.dm" -#include "code\modules\mob\new_player\new_player.dm" -#include "code\modules\mob\new_player\poll.dm" -#include "code\modules\mob\new_player\preferences_setup.dm" -#include "code\modules\mob\new_player\sprite_accessories\sprite_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\diona\diona_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\drask\drask_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\grey\grey_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\human\human_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\human\human_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\human\human_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_face.dm" -#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_optics.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\nucleation\nucleation_face.dm" -#include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_face.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_alt_heads.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_tail_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm" -#include "code\modules\modular_computers\laptop_vendor.dm" -#include "code\modules\modular_computers\computers\item\computer.dm" -#include "code\modules\modular_computers\computers\item\computer_components.dm" -#include "code\modules\modular_computers\computers\item\computer_damage.dm" -#include "code\modules\modular_computers\computers\item\computer_power.dm" -#include "code\modules\modular_computers\computers\item\computer_ui.dm" -#include "code\modules\modular_computers\computers\item\laptop.dm" -#include "code\modules\modular_computers\computers\item\laptop_presets.dm" -#include "code\modules\modular_computers\computers\item\processor.dm" -#include "code\modules\modular_computers\computers\item\tablet.dm" -#include "code\modules\modular_computers\computers\item\tablet_presets.dm" -#include "code\modules\modular_computers\computers\machinery\console_presets.dm" -#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" -#include "code\modules\modular_computers\computers\machinery\modular_console.dm" -#include "code\modules\modular_computers\file_system\computer_file.dm" -#include "code\modules\modular_computers\file_system\data.dm" -#include "code\modules\modular_computers\file_system\program.dm" -#include "code\modules\modular_computers\file_system\program_events.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" -#include "code\modules\modular_computers\file_system\programs\command\card.dm" -#include "code\modules\modular_computers\file_system\programs\command\comms.dm" -#include "code\modules\modular_computers\file_system\programs\engineering\alarm.dm" -#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\engineering\sm_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm" -#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" -#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" -#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" -#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" -#include "code\modules\modular_computers\file_system\programs\research\airestorer.dm" -#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm" -#include "code\modules\modular_computers\hardware\_hardware.dm" -#include "code\modules\modular_computers\hardware\ai_slot.dm" -#include "code\modules\modular_computers\hardware\battery_module.dm" -#include "code\modules\modular_computers\hardware\card_slot.dm" -#include "code\modules\modular_computers\hardware\CPU.dm" -#include "code\modules\modular_computers\hardware\hard_drive.dm" -#include "code\modules\modular_computers\hardware\network_card.dm" -#include "code\modules\modular_computers\hardware\portable_disk.dm" -#include "code\modules\modular_computers\hardware\printer.dm" -#include "code\modules\modular_computers\hardware\recharger.dm" -#include "code\modules\modular_computers\NTNet\NTNet.dm" -#include "code\modules\modular_computers\NTNet\NTNet_relay.dm" -#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" -#include "code\modules\nano\nanoexternal.dm" -#include "code\modules\nano\nanomapgen.dm" -#include "code\modules\nano\nanoui.dm" -#include "code\modules\nano\subsystem.dm" -#include "code\modules\nano\interaction\admin.dm" -#include "code\modules\nano\interaction\base.dm" -#include "code\modules\nano\interaction\conscious.dm" -#include "code\modules\nano\interaction\contained.dm" -#include "code\modules\nano\interaction\default.dm" -#include "code\modules\nano\interaction\ghost.dm" -#include "code\modules\nano\interaction\inventory.dm" -#include "code\modules\nano\interaction\inventory_deep.dm" -#include "code\modules\nano\interaction\not_incapacitated.dm" -#include "code\modules\nano\interaction\physical.dm" -#include "code\modules\nano\interaction\self.dm" -#include "code\modules\nano\interaction\zlevel.dm" -#include "code\modules\nano\modules\alarm_monitor.dm" -#include "code\modules\nano\modules\atmos_control.dm" -#include "code\modules\nano\modules\crew_monitor.dm" -#include "code\modules\nano\modules\ert_manager.dm" -#include "code\modules\nano\modules\human_appearance.dm" -#include "code\modules\nano\modules\law_manager.dm" -#include "code\modules\nano\modules\nano_module.dm" -#include "code\modules\nano\modules\power_monitor.dm" -#include "code\modules\ninja\energy_katana.dm" -#include "code\modules\ninja\suit\gloves.dm" -#include "code\modules\ninja\suit\head.dm" -#include "code\modules\ninja\suit\mask.dm" -#include "code\modules\ninja\suit\shoes.dm" -#include "code\modules\ninja\suit\suit.dm" -#include "code\modules\ninja\suit\suit_initialisation.dm" -#include "code\modules\paperwork\carbonpaper.dm" -#include "code\modules\paperwork\clipboard.dm" -#include "code\modules\paperwork\contract.dm" -#include "code\modules\paperwork\fax.dm" -#include "code\modules\paperwork\faxmachine.dm" -#include "code\modules\paperwork\filingcabinet.dm" -#include "code\modules\paperwork\folders.dm" -#include "code\modules\paperwork\frames.dm" -#include "code\modules\paperwork\handlabeler.dm" -#include "code\modules\paperwork\paper.dm" -#include "code\modules\paperwork\paper_bundle.dm" -#include "code\modules\paperwork\paperbin.dm" -#include "code\modules\paperwork\paperplane.dm" -#include "code\modules\paperwork\pen.dm" -#include "code\modules\paperwork\photocopier.dm" -#include "code\modules\paperwork\photography.dm" -#include "code\modules\paperwork\silicon_photography.dm" -#include "code\modules\paperwork\stamps.dm" -#include "code\modules\pda\ai.dm" -#include "code\modules\pda\app.dm" -#include "code\modules\pda\cart.dm" -#include "code\modules\pda\cart_apps.dm" -#include "code\modules\pda\core_apps.dm" -#include "code\modules\pda\messenger.dm" -#include "code\modules\pda\messenger_plugins.dm" -#include "code\modules\pda\mob_hunt_game_app.dm" -#include "code\modules\pda\PDA.dm" -#include "code\modules\pda\pdas.dm" -#include "code\modules\pda\radio.dm" -#include "code\modules\pda\utilities.dm" -#include "code\modules\persistence\persistence.dm" -#include "code\modules\power\apc.dm" -#include "code\modules\power\cable.dm" -#include "code\modules\power\cable_heavyduty.dm" -#include "code\modules\power\cable_logic.dm" -#include "code\modules\power\cell.dm" -#include "code\modules\power\engine.dm" -#include "code\modules\power\generator.dm" -#include "code\modules\power\gravitygenerator.dm" -#include "code\modules\power\lighting.dm" -#include "code\modules\power\port_gen.dm" -#include "code\modules\power\power.dm" -#include "code\modules\power\powernet.dm" -#include "code\modules\power\smes.dm" -#include "code\modules\power\solar.dm" -#include "code\modules\power\switch.dm" -#include "code\modules\power\terminal.dm" -#include "code\modules\power\tracker.dm" -#include "code\modules\power\treadmill.dm" -#include "code\modules\power\turbine.dm" -#include "code\modules\power\singularity\collector.dm" -#include "code\modules\power\singularity\containment_field.dm" -#include "code\modules\power\singularity\emitter.dm" -#include "code\modules\power\singularity\field_generator.dm" -#include "code\modules\power\singularity\generator.dm" -#include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" -#include "code\modules\power\singularity\singularity.dm" -#include "code\modules\power\singularity\particle_accelerator\particle.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_power.dm" -#include "code\modules\power\supermatter\supermatter.dm" -#include "code\modules\power\tesla\coil.dm" -#include "code\modules\power\tesla\energy_ball.dm" -#include "code\modules\power\tesla\generator.dm" -#include "code\modules\procedural_mapping\mapGenerator.dm" -#include "code\modules\procedural_mapping\mapGeneratorModule.dm" -#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" -#include "code\modules\procedural_mapping\mapGenerators\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" -#include "code\modules\projectiles\ammunition.dm" -#include "code\modules\projectiles\firing.dm" -#include "code\modules\projectiles\gun.dm" -#include "code\modules\projectiles\gun_attachments.dm" -#include "code\modules\projectiles\projectile.dm" -#include "code\modules\projectiles\ammunition\ammo_casings.dm" -#include "code\modules\projectiles\ammunition\boxes.dm" -#include "code\modules\projectiles\ammunition\energy.dm" -#include "code\modules\projectiles\ammunition\magazines.dm" -#include "code\modules\projectiles\ammunition\special.dm" -#include "code\modules\projectiles\guns\alien.dm" -#include "code\modules\projectiles\guns\dartgun.dm" -#include "code\modules\projectiles\guns\energy.dm" -#include "code\modules\projectiles\guns\grenade_launcher.dm" -#include "code\modules\projectiles\guns\magic.dm" -#include "code\modules\projectiles\guns\medbeam.dm" -#include "code\modules\projectiles\guns\mounted.dm" -#include "code\modules\projectiles\guns\projectile.dm" -#include "code\modules\projectiles\guns\rocket.dm" -#include "code\modules\projectiles\guns\syringe_gun.dm" -#include "code\modules\projectiles\guns\throw.dm" -#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" -#include "code\modules\projectiles\guns\energy\laser.dm" -#include "code\modules\projectiles\guns\energy\nuclear.dm" -#include "code\modules\projectiles\guns\energy\pulse.dm" -#include "code\modules\projectiles\guns\energy\special.dm" -#include "code\modules\projectiles\guns\energy\stun.dm" -#include "code\modules\projectiles\guns\energy\telegun.dm" -#include "code\modules\projectiles\guns\magic\staff.dm" -#include "code\modules\projectiles\guns\magic\wand.dm" -#include "code\modules\projectiles\guns\misc\blastcannon.dm" -#include "code\modules\projectiles\guns\projectile\automatic.dm" -#include "code\modules\projectiles\guns\projectile\bow.dm" -#include "code\modules\projectiles\guns\projectile\launchers.dm" -#include "code\modules\projectiles\guns\projectile\pistol.dm" -#include "code\modules\projectiles\guns\projectile\revolver.dm" -#include "code\modules\projectiles\guns\projectile\saw.dm" -#include "code\modules\projectiles\guns\projectile\shotgun.dm" -#include "code\modules\projectiles\guns\projectile\sniper.dm" -#include "code\modules\projectiles\guns\projectile\toy.dm" -#include "code\modules\projectiles\guns\throw\crossbow.dm" -#include "code\modules\projectiles\guns\throw\pielauncher.dm" -#include "code\modules\projectiles\projectile\beams.dm" -#include "code\modules\projectiles\projectile\bullets.dm" -#include "code\modules\projectiles\projectile\energy.dm" -#include "code\modules\projectiles\projectile\force.dm" -#include "code\modules\projectiles\projectile\magic.dm" -#include "code\modules\projectiles\projectile\reusable.dm" -#include "code\modules\projectiles\projectile\special.dm" -#include "code\modules\reagents\chem_splash.dm" -#include "code\modules\reagents\reagent_containers.dm" -#include "code\modules\reagents\reagent_dispenser.dm" -#include "code\modules\reagents\chemistry\colors.dm" -#include "code\modules\reagents\chemistry\holder.dm" -#include "code\modules\reagents\chemistry\readme.dm" -#include "code\modules\reagents\chemistry\reagents.dm" -#include "code\modules\reagents\chemistry\recipes.dm" -#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" -#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" -#include "code\modules\reagents\chemistry\machinery\chem_master.dm" -#include "code\modules\reagents\chemistry\machinery\pandemic.dm" -#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" -#include "code\modules\reagents\chemistry\reagents\admin.dm" -#include "code\modules\reagents\chemistry\reagents\alcohol.dm" -#include "code\modules\reagents\chemistry\reagents\blob.dm" -#include "code\modules\reagents\chemistry\reagents\disease.dm" -#include "code\modules\reagents\chemistry\reagents\drink_base.dm" -#include "code\modules\reagents\chemistry\reagents\drink_cold.dm" -#include "code\modules\reagents\chemistry\reagents\drinks.dm" -#include "code\modules\reagents\chemistry\reagents\drugs.dm" -#include "code\modules\reagents\chemistry\reagents\food.dm" -#include "code\modules\reagents\chemistry\reagents\medicine.dm" -#include "code\modules\reagents\chemistry\reagents\misc.dm" -#include "code\modules\reagents\chemistry\reagents\paint.dm" -#include "code\modules\reagents\chemistry\reagents\paradise_pop.dm" -#include "code\modules\reagents\chemistry\reagents\pyrotechnic.dm" -#include "code\modules\reagents\chemistry\reagents\toxins.dm" -#include "code\modules\reagents\chemistry\reagents\water.dm" -#include "code\modules\reagents\chemistry\recipes\drinks.dm" -#include "code\modules\reagents\chemistry\recipes\drugs.dm" -#include "code\modules\reagents\chemistry\recipes\food.dm" -#include "code\modules\reagents\chemistry\recipes\medicine.dm" -#include "code\modules\reagents\chemistry\recipes\others.dm" -#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" -#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" -#include "code\modules\reagents\chemistry\recipes\toxins.dm" -#include "code\modules\reagents\reagent_containers\borghydro.dm" -#include "code\modules\reagents\reagent_containers\bottle.dm" -#include "code\modules\reagents\reagent_containers\dropper.dm" -#include "code\modules\reagents\reagent_containers\glass_containers.dm" -#include "code\modules\reagents\reagent_containers\hypospray.dm" -#include "code\modules\reagents\reagent_containers\iv_bag.dm" -#include "code\modules\reagents\reagent_containers\patch.dm" -#include "code\modules\reagents\reagent_containers\pill.dm" -#include "code\modules\reagents\reagent_containers\spray.dm" -#include "code\modules\reagents\reagent_containers\syringes.dm" -#include "code\modules\recycling\belt-placer.dm" -#include "code\modules\recycling\conveyor2.dm" -#include "code\modules\recycling\disposal-construction.dm" -#include "code\modules\recycling\disposal.dm" -#include "code\modules\recycling\sortingmachinery.dm" -#include "code\modules\research\circuitprinter.dm" -#include "code\modules\research\designs.dm" -#include "code\modules\research\destructive_analyzer.dm" -#include "code\modules\research\experimentor.dm" -#include "code\modules\research\message_server.dm" -#include "code\modules\research\protolathe.dm" -#include "code\modules\research\rd-readme.dm" -#include "code\modules\research\rdconsole.dm" -#include "code\modules\research\rdmachines.dm" -#include "code\modules\research\research.dm" -#include "code\modules\research\server.dm" -#include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autolathe_designs.dm" -#include "code\modules\research\designs\biogenerator_designs.dm" -#include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs.dm" -#include "code\modules\research\designs\computer_part_designs.dm" -#include "code\modules\research\designs\equipment_designs.dm" -#include "code\modules\research\designs\janitorial_designs.dm" -#include "code\modules\research\designs\machine_designs.dm" -#include "code\modules\research\designs\mecha_designs.dm" -#include "code\modules\research\designs\mechfabricator_designs.dm" -#include "code\modules\research\designs\medical_designs.dm" -#include "code\modules\research\designs\mining_designs.dm" -#include "code\modules\research\designs\misc_designs.dm" -#include "code\modules\research\designs\power_designs.dm" -#include "code\modules\research\designs\smelting_designs.dm" -#include "code\modules\research\designs\spacepod_designs.dm" -#include "code\modules\research\designs\stock_parts_designs.dm" -#include "code\modules\research\designs\telecomms_designs.dm" -#include "code\modules\research\designs\weapon_designs.dm" -#include "code\modules\research\xenobiology\xenobio_camera.dm" -#include "code\modules\research\xenobiology\xenobiology.dm" -#include "code\modules\response_team\ert.dm" -#include "code\modules\response_team\ert_outfits.dm" -#include "code\modules\ruins\ruin_areas.dm" -#include "code\modules\security_levels\keycard authentication.dm" -#include "code\modules\security_levels\security levels.dm" -#include "code\modules\shuttle\assault_pod.dm" -#include "code\modules\shuttle\emergency.dm" -#include "code\modules\shuttle\ert.dm" -#include "code\modules\shuttle\navigation_computer.dm" -#include "code\modules\shuttle\on_move.dm" -#include "code\modules\shuttle\ripple.dm" -#include "code\modules\shuttle\shuttle.dm" -#include "code\modules\shuttle\shuttle_manipulator.dm" -#include "code\modules\shuttle\shuttle_rotate.dm" -#include "code\modules\shuttle\supply.dm" -#include "code\modules\shuttle\syndicate.dm" -#include "code\modules\shuttle\vox.dm" -#include "code\modules\space_management\heap_space_level.dm" -#include "code\modules\space_management\level_check.dm" -#include "code\modules\space_management\level_traits.dm" -#include "code\modules\space_management\space_chunk.dm" -#include "code\modules\space_management\space_level.dm" -#include "code\modules\space_management\space_transition.dm" -#include "code\modules\space_management\zlevel_manager.dm" -#include "code\modules\spacepods\construction.dm" -#include "code\modules\spacepods\equipment.dm" -#include "code\modules\spacepods\lock_buster.dm" -#include "code\modules\spacepods\parts.dm" -#include "code\modules\spacepods\spacepod.dm" -#include "code\modules\station_goals\bsa.dm" -#include "code\modules\station_goals\dna_vault.dm" -#include "code\modules\station_goals\shield.dm" -#include "code\modules\station_goals\station_goal.dm" -#include "code\modules\store\items.dm" -#include "code\modules\store\store.dm" -#include "code\modules\surgery\bones.dm" -#include "code\modules\surgery\cavity_implant.dm" -#include "code\modules\surgery\dental_implant.dm" -#include "code\modules\surgery\encased.dm" -#include "code\modules\surgery\generic.dm" -#include "code\modules\surgery\helpers.dm" -#include "code\modules\surgery\implant_removal.dm" -#include "code\modules\surgery\limb_augmentation.dm" -#include "code\modules\surgery\limb_reattach.dm" -#include "code\modules\surgery\organs_internal.dm" -#include "code\modules\surgery\other.dm" -#include "code\modules\surgery\plastic_surgery.dm" -#include "code\modules\surgery\remove_embedded_object.dm" -#include "code\modules\surgery\rig_removal.dm" -#include "code\modules\surgery\robotics.dm" -#include "code\modules\surgery\slime.dm" -#include "code\modules\surgery\surgery.dm" -#include "code\modules\surgery\tools.dm" -#include "code\modules\surgery\organs\augments_arms.dm" -#include "code\modules\surgery\organs\augments_eyes.dm" -#include "code\modules\surgery\organs\augments_internal.dm" -#include "code\modules\surgery\organs\autoimplanter.dm" -#include "code\modules\surgery\organs\blood.dm" -#include "code\modules\surgery\organs\body_egg.dm" -#include "code\modules\surgery\organs\ears.dm" -#include "code\modules\surgery\organs\eyes.dm" -#include "code\modules\surgery\organs\heart.dm" -#include "code\modules\surgery\organs\helpers.dm" -#include "code\modules\surgery\organs\kidneys.dm" -#include "code\modules\surgery\organs\liver.dm" -#include "code\modules\surgery\organs\lungs.dm" -#include "code\modules\surgery\organs\mmi_holder.dm" -#include "code\modules\surgery\organs\organ.dm" -#include "code\modules\surgery\organs\organ_external.dm" -#include "code\modules\surgery\organs\organ_icon.dm" -#include "code\modules\surgery\organs\organ_internal.dm" -#include "code\modules\surgery\organs\pain.dm" -#include "code\modules\surgery\organs\parasites.dm" -#include "code\modules\surgery\organs\robolimbs.dm" -#include "code\modules\surgery\organs\skeleton.dm" -#include "code\modules\surgery\organs\vocal_cords.dm" -#include "code\modules\surgery\organs\subtypes\abductor.dm" -#include "code\modules\surgery\organs\subtypes\diona.dm" -#include "code\modules\surgery\organs\subtypes\drask.dm" -#include "code\modules\surgery\organs\subtypes\grey.dm" -#include "code\modules\surgery\organs\subtypes\kidan.dm" -#include "code\modules\surgery\organs\subtypes\machine.dm" -#include "code\modules\surgery\organs\subtypes\nucleation.dm" -#include "code\modules\surgery\organs\subtypes\shadow.dm" -#include "code\modules\surgery\organs\subtypes\skrell.dm" -#include "code\modules\surgery\organs\subtypes\standard.dm" -#include "code\modules\surgery\organs\subtypes\tajaran.dm" -#include "code\modules\surgery\organs\subtypes\unathi.dm" -#include "code\modules\surgery\organs\subtypes\unbreakable.dm" -#include "code\modules\surgery\organs\subtypes\vox.dm" -#include "code\modules\surgery\organs\subtypes\vulpkanin.dm" -#include "code\modules\surgery\organs\subtypes\wryn.dm" -#include "code\modules\surgery\organs\subtypes\xenos.dm" -#include "code\modules\telesci\bscrystal.dm" -#include "code\modules\telesci\gps.dm" -#include "code\modules\telesci\telepad.dm" -#include "code\modules\telesci\telesci_computer.dm" -#include "code\modules\tooltip\tooltip.dm" -#include "code\modules\tram\tram.dm" -#include "code\modules\tram\tram_control_pad.dm" -#include "code\modules\tram\tram_floor.dm" -#include "code\modules\tram\tram_rail.dm" -#include "code\modules\tram\tram_wall.dm" -#include "code\modules\vehicle\ambulance.dm" -#include "code\modules\vehicle\atv.dm" -#include "code\modules\vehicle\janicart.dm" -#include "code\modules\vehicle\motorcycle.dm" -#include "code\modules\vehicle\secway.dm" -#include "code\modules\vehicle\snowmobile.dm" -#include "code\modules\vehicle\speedbike.dm" -#include "code\modules\vehicle\sportscar.dm" -#include "code\modules\vehicle\vehicle.dm" -#include "code\modules\vr\vr_avatar.dm" -#include "code\modules\vr\vr_controller.dm" -#include "code\modules\vr\vr_goggles.dm" -#include "code\modules\vr\vr_outfits.dm" -#include "goon\code\datums\browserOutput.dm" -#include "interface\interface.dm" -#include "interface\skin.dmf" -// END_INCLUDE +// DM Environment file for paradise.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. + // New source code should be placed in .dm files: choose File/New --> Code File. +// BEGIN_INTERNALS +// END_INTERNALS +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR +// BEGIN_PREFERENCES +#define DEBUG +// END_PREFERENCES +// BEGIN_INCLUDE +#include "_maps\__MAP_DEFINES.dm" +#include "_maps\cyberiad.dm" +#include "code\_compile_options.dm" +#include "code\hub.dm" +#include "code\world.dm" +#include "code\__DEFINES\_globals.dm" +#include "code\__DEFINES\_readme.dm" +#include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\antagonists.dm" +#include "code\__DEFINES\atmospherics.dm" +#include "code\__DEFINES\bots.dm" +#include "code\__DEFINES\callbacks.dm" +#include "code\__DEFINES\clothing.dm" +#include "code\__DEFINES\combat.dm" +#include "code\__DEFINES\components.dm" +#include "code\__DEFINES\construction.dm" +#include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\crafting.dm" +#include "code\__DEFINES\error_handler.dm" +#include "code\__DEFINES\flags.dm" +#include "code\__DEFINES\game.dm" +#include "code\__DEFINES\gamemode.dm" +#include "code\__DEFINES\genetics.dm" +#include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\hydroponics.dm" +#include "code\__DEFINES\inventory.dm" +#include "code\__DEFINES\is_helpers.dm" +#include "code\__DEFINES\language.dm" +#include "code\__DEFINES\layers.dm" +#include "code\__DEFINES\lighting.dm" +#include "code\__DEFINES\machines.dm" +#include "code\__DEFINES\math.dm" +#include "code\__DEFINES\MC.dm" +#include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mobs.dm" +#include "code\__DEFINES\move_force.dm" +#include "code\__DEFINES\pda.dm" +#include "code\__DEFINES\pipes.dm" +#include "code\__DEFINES\preferences.dm" +#include "code\__DEFINES\process_scheduler.dm" +#include "code\__DEFINES\qdel.dm" +#include "code\__DEFINES\reagents.dm" +#include "code\__DEFINES\role_preferences.dm" +#include "code\__DEFINES\rolebans.dm" +#include "code\__DEFINES\shuttle.dm" +#include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\snpc.dm" +#include "code\__DEFINES\sound.dm" +#include "code\__DEFINES\stat.dm" +#include "code\__DEFINES\station_goals.dm" +#include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\subsystems.dm" +#include "code\__DEFINES\tick.dm" +#include "code\__DEFINES\typeids.dm" +#include "code\__DEFINES\vv.dm" +#include "code\__DEFINES\zlevel.dm" +#include "code\__HELPERS\_logging.dm" +#include "code\__HELPERS\_string_lists.dm" +#include "code\__HELPERS\AnimationLibrary.dm" +#include "code\__HELPERS\cmp.dm" +#include "code\__HELPERS\constants.dm" +#include "code\__HELPERS\experimental.dm" +#include "code\__HELPERS\files.dm" +#include "code\__HELPERS\game.dm" +#include "code\__HELPERS\global_lists.dm" +#include "code\__HELPERS\icon_smoothing.dm" +#include "code\__HELPERS\icons.dm" +#include "code\__HELPERS\lists.dm" +#include "code\__HELPERS\maths.dm" +#include "code\__HELPERS\matrices.dm" +#include "code\__HELPERS\mobs.dm" +#include "code\__HELPERS\names.dm" +#include "code\__HELPERS\pronouns.dm" +#include "code\__HELPERS\qdel.dm" +#include "code\__HELPERS\sanitize_values.dm" +#include "code\__HELPERS\text.dm" +#include "code\__HELPERS\time.dm" +#include "code\__HELPERS\type2type.dm" +#include "code\__HELPERS\unique_ids.dm" +#include "code\__HELPERS\unsorted.dm" +#include "code\__HELPERS\sorts\__main.dm" +#include "code\__HELPERS\sorts\InsertSort.dm" +#include "code\__HELPERS\sorts\MergeSort.dm" +#include "code\__HELPERS\sorts\TimSort.dm" +#include "code\_DATASTRUCTURES\heap.dm" +#include "code\_DATASTRUCTURES\stacks.dm" +#include "code\_globalvars\configuration.dm" +#include "code\_globalvars\database.dm" +#include "code\_globalvars\game_modes.dm" +#include "code\_globalvars\genetics.dm" +#include "code\_globalvars\logging.dm" +#include "code\_globalvars\mapping.dm" +#include "code\_globalvars\misc.dm" +#include "code\_globalvars\station.dm" +#include "code\_globalvars\unused.dm" +#include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\fortunes.dm" +#include "code\_globalvars\lists\misc.dm" +#include "code\_globalvars\lists\mobs.dm" +#include "code\_globalvars\lists\names.dm" +#include "code\_globalvars\lists\objects.dm" +#include "code\_globalvars\lists\reagents.dm" +#include "code\_globalvars\lists\typecache.dm" +#include "code\_onclick\adjacent.dm" +#include "code\_onclick\ai.dm" +#include "code\_onclick\click.dm" +#include "code\_onclick\click_override.dm" +#include "code\_onclick\cyborg.dm" +#include "code\_onclick\drag_drop.dm" +#include "code\_onclick\item_attack.dm" +#include "code\_onclick\observer.dm" +#include "code\_onclick\other_mobs.dm" +#include "code\_onclick\overmind.dm" +#include "code\_onclick\rig.dm" +#include "code\_onclick\telekinesis.dm" +#include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\action_button.dm" +#include "code\_onclick\hud\ai.dm" +#include "code\_onclick\hud\alert.dm" +#include "code\_onclick\hud\alien.dm" +#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\bot.dm" +#include "code\_onclick\hud\constructs.dm" +#include "code\_onclick\hud\devil.dm" +#include "code\_onclick\hud\fullscreen.dm" +#include "code\_onclick\hud\guardian.dm" +#include "code\_onclick\hud\hud.dm" +#include "code\_onclick\hud\human.dm" +#include "code\_onclick\hud\monkey.dm" +#include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\other_mobs.dm" +#include "code\_onclick\hud\picture_in_picture.dm" +#include "code\_onclick\hud\radial.dm" +#include "code\_onclick\hud\robot.dm" +#include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\swarmer.dm" +#include "code\ATMOSPHERICS\atmospherics.dm" +#include "code\ATMOSPHERICS\datum_icon_manager.dm" +#include "code\ATMOSPHERICS\datum_pipeline.dm" +#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm" +#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm" +#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm" +#include "code\ATMOSPHERICS\components\binary_devices\pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\valve.dm" +#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm" +#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm" +#include "code\ATMOSPHERICS\components\omni_devices\filter.dm" +#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\tvalve.dm" +#include "code\ATMOSPHERICS\components\unary_devices\cold_sink.dm" +#include "code\ATMOSPHERICS\components\unary_devices\generator_input.dm" +#include "code\ATMOSPHERICS\components\unary_devices\heat_exchanger.dm" +#include "code\ATMOSPHERICS\components\unary_devices\heat_source.dm" +#include "code\ATMOSPHERICS\components\unary_devices\outlet_injector.dm" +#include "code\ATMOSPHERICS\components\unary_devices\oxygen_generator.dm" +#include "code\ATMOSPHERICS\components\unary_devices\passive_vent.dm" +#include "code\ATMOSPHERICS\components\unary_devices\portables_connector.dm" +#include "code\ATMOSPHERICS\components\unary_devices\tank.dm" +#include "code\ATMOSPHERICS\components\unary_devices\thermal_plate.dm" +#include "code\ATMOSPHERICS\components\unary_devices\unary_base.dm" +#include "code\ATMOSPHERICS\components\unary_devices\vent_pump.dm" +#include "code\ATMOSPHERICS\components\unary_devices\vent_scrubber.dm" +#include "code\ATMOSPHERICS\pipes\cap.dm" +#include "code\ATMOSPHERICS\pipes\manifold.dm" +#include "code\ATMOSPHERICS\pipes\manifold4w.dm" +#include "code\ATMOSPHERICS\pipes\pipe.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_he.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_hidden.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_insulated.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_visible.dm" +#include "code\controllers\communications.dm" +#include "code\controllers\configuration.dm" +#include "code\controllers\controller.dm" +#include "code\controllers\failsafe.dm" +#include "code\controllers\globals.dm" +#include "code\controllers\hooks-defs.dm" +#include "code\controllers\hooks.dm" +#include "code\controllers\master.dm" +#include "code\controllers\master_controller.dm" +#include "code\controllers\subsystem.dm" +#include "code\controllers\verbs.dm" +#include "code\controllers\voting.dm" +#include "code\controllers\Processes\alarm.dm" +#include "code\controllers\Processes\event.dm" +#include "code\controllers\Processes\fast_process.dm" +#include "code\controllers\Processes\lighting.dm" +#include "code\controllers\Processes\npcai.dm" +#include "code\controllers\Processes\obj.dm" +#include "code\controllers\Processes\ticker.dm" +#include "code\controllers\ProcessScheduler\core\process.dm" +#include "code\controllers\ProcessScheduler\core\processScheduler.dm" +#include "code\controllers\subsystem\air.dm" +#include "code\controllers\subsystem\assets.dm" +#include "code\controllers\subsystem\atoms.dm" +#include "code\controllers\subsystem\fires.dm" +#include "code\controllers\subsystem\garbage.dm" +#include "code\controllers\subsystem\icon_smooth.dm" +#include "code\controllers\subsystem\machinery.dm" +#include "code\controllers\subsystem\mobs.dm" +#include "code\controllers\subsystem\nano_mob_hunter.dm" +#include "code\controllers\subsystem\nanoui.dm" +#include "code\controllers\subsystem\nightshift.dm" +#include "code\controllers\subsystem\npcai.dm" +#include "code\controllers\subsystem\npcpool.dm" +#include "code\controllers\subsystem\overlays.dm" +#include "code\controllers\subsystem\shuttles.dm" +#include "code\controllers\subsystem\spacedrift.dm" +#include "code\controllers\subsystem\sun.dm" +#include "code\controllers\subsystem\throwing.dm" +#include "code\controllers\subsystem\tickets.dm" +#include "code\controllers\subsystem\timer.dm" +#include "code\controllers\subsystem\weather.dm" +#include "code\controllers\subsystem\processing\processing.dm" +#include "code\datums\action.dm" +#include "code\datums\ai_law_sets.dm" +#include "code\datums\ai_laws.dm" +#include "code\datums\beam.dm" +#include "code\datums\browser.dm" +#include "code\datums\callback.dm" +#include "code\datums\click_intercept.dm" +#include "code\datums\datacore.dm" +#include "code\datums\datum.dm" +#include "code\datums\datumvars.dm" +#include "code\datums\gas_mixture.dm" +#include "code\datums\holocall.dm" +#include "code\datums\hud.dm" +#include "code\datums\mind.dm" +#include "code\datums\mixed.dm" +#include "code\datums\mutable_appearance.dm" +#include "code\datums\periodic_news.dm" +#include "code\datums\pipe_datums.dm" +#include "code\datums\progressbar.dm" +#include "code\datums\recipe.dm" +#include "code\datums\ruins.dm" +#include "code\datums\shuttles.dm" +#include "code\datums\soullink.dm" +#include "code\datums\spawners_menu.dm" +#include "code\datums\spell.dm" +#include "code\datums\statclick.dm" +#include "code\datums\supplypacks.dm" +#include "code\datums\uplink_item.dm" +#include "code\datums\vision_override.dm" +#include "code\datums\vr.dm" +#include "code\datums\cache\air_alarm.dm" +#include "code\datums\cache\apc.dm" +#include "code\datums\cache\cache.dm" +#include "code\datums\cache\crew.dm" +#include "code\datums\cache\powermonitor.dm" +#include "code\datums\components\_component.dm" +#include "code\datums\components\ducttape.dm" +#include "code\datums\components\jestosterone.dm" +#include "code\datums\components\material_container.dm" +#include "code\datums\components\squeak.dm" +#include "code\datums\diseases\_disease.dm" +#include "code\datums\diseases\_MobProcs.dm" +#include "code\datums\diseases\anxiety.dm" +#include "code\datums\diseases\appendicitis.dm" +#include "code\datums\diseases\beesease.dm" +#include "code\datums\diseases\berserker.dm" +#include "code\datums\diseases\brainrot.dm" +#include "code\datums\diseases\cold.dm" +#include "code\datums\diseases\cold9.dm" +#include "code\datums\diseases\fake_gbs.dm" +#include "code\datums\diseases\flu.dm" +#include "code\datums\diseases\fluspanish.dm" +#include "code\datums\diseases\food_poisoning.dm" +#include "code\datums\diseases\gbs.dm" +#include "code\datums\diseases\kingstons.dm" +#include "code\datums\diseases\kuru.dm" +#include "code\datums\diseases\lycancoughy.dm" +#include "code\datums\diseases\magnitis.dm" +#include "code\datums\diseases\pierrot_throat.dm" +#include "code\datums\diseases\retrovirus.dm" +#include "code\datums\diseases\rhumba_beat.dm" +#include "code\datums\diseases\transformation.dm" +#include "code\datums\diseases\tuberculosis.dm" +#include "code\datums\diseases\vampire.dm" +#include "code\datums\diseases\wizarditis.dm" +#include "code\datums\diseases\advance\advance.dm" +#include "code\datums\diseases\advance\presets.dm" +#include "code\datums\diseases\advance\symptoms\beard.dm" +#include "code\datums\diseases\advance\symptoms\choking.dm" +#include "code\datums\diseases\advance\symptoms\confusion.dm" +#include "code\datums\diseases\advance\symptoms\cough.dm" +#include "code\datums\diseases\advance\symptoms\damage_converter.dm" +#include "code\datums\diseases\advance\symptoms\deafness.dm" +#include "code\datums\diseases\advance\symptoms\dizzy.dm" +#include "code\datums\diseases\advance\symptoms\fever.dm" +#include "code\datums\diseases\advance\symptoms\fire.dm" +#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" +#include "code\datums\diseases\advance\symptoms\hallucigen.dm" +#include "code\datums\diseases\advance\symptoms\headache.dm" +#include "code\datums\diseases\advance\symptoms\heal.dm" +#include "code\datums\diseases\advance\symptoms\itching.dm" +#include "code\datums\diseases\advance\symptoms\oxygen.dm" +#include "code\datums\diseases\advance\symptoms\sensory.dm" +#include "code\datums\diseases\advance\symptoms\shedding.dm" +#include "code\datums\diseases\advance\symptoms\shivering.dm" +#include "code\datums\diseases\advance\symptoms\skin.dm" +#include "code\datums\diseases\advance\symptoms\sneeze.dm" +#include "code\datums\diseases\advance\symptoms\symptoms.dm" +#include "code\datums\diseases\advance\symptoms\viral.dm" +#include "code\datums\diseases\advance\symptoms\vision.dm" +#include "code\datums\diseases\advance\symptoms\voice_change.dm" +#include "code\datums\diseases\advance\symptoms\vomit.dm" +#include "code\datums\diseases\advance\symptoms\weakness.dm" +#include "code\datums\diseases\advance\symptoms\weight.dm" +#include "code\datums\diseases\advance\symptoms\youth.dm" +#include "code\datums\helper_datums\construction_datum.dm" +#include "code\datums\helper_datums\events.dm" +#include "code\datums\helper_datums\global_iterator.dm" +#include "code\datums\helper_datums\icon_snapshot.dm" +#include "code\datums\helper_datums\map_template.dm" +#include "code\datums\helper_datums\teleport.dm" +#include "code\datums\helper_datums\topic_input.dm" +#include "code\datums\looping_sounds\looping_sound.dm" +#include "code\datums\looping_sounds\machinery_sounds.dm" +#include "code\datums\looping_sounds\thermal_drill.dm" +#include "code\datums\looping_sounds\weather.dm" +#include "code\datums\outfits\outfit.dm" +#include "code\datums\outfits\outfit_admin.dm" +#include "code\datums\ruins\space.dm" +#include "code\datums\spells\area_teleport.dm" +#include "code\datums\spells\bloodcrawl.dm" +#include "code\datums\spells\chaplain.dm" +#include "code\datums\spells\charge.dm" +#include "code\datums\spells\cluwne.dm" +#include "code\datums\spells\conjure.dm" +#include "code\datums\spells\conjure_item.dm" +#include "code\datums\spells\construct_spells.dm" +#include "code\datums\spells\devil.dm" +#include "code\datums\spells\devil_boons.dm" +#include "code\datums\spells\dumbfire.dm" +#include "code\datums\spells\emplosion.dm" +#include "code\datums\spells\ethereal_jaunt.dm" +#include "code\datums\spells\explosion.dm" +#include "code\datums\spells\fake_gib.dm" +#include "code\datums\spells\genetic.dm" +#include "code\datums\spells\horsemask.dm" +#include "code\datums\spells\infinite_guns.dm" +#include "code\datums\spells\inflict_handler.dm" +#include "code\datums\spells\knock.dm" +#include "code\datums\spells\lichdom.dm" +#include "code\datums\spells\lightning.dm" +#include "code\datums\spells\magnet.dm" +#include "code\datums\spells\mime.dm" +#include "code\datums\spells\mind_transfer.dm" +#include "code\datums\spells\projectile.dm" +#include "code\datums\spells\rathens.dm" +#include "code\datums\spells\rod_form.dm" +#include "code\datums\spells\shapeshift.dm" +#include "code\datums\spells\summonitem.dm" +#include "code\datums\spells\touch_attacks.dm" +#include "code\datums\spells\trigger.dm" +#include "code\datums\spells\turf_teleport.dm" +#include "code\datums\spells\wizard.dm" +#include "code\datums\status_effects\buffs.dm" +#include "code\datums\status_effects\debuffs.dm" +#include "code\datums\status_effects\neutral.dm" +#include "code\datums\status_effects\status_effect.dm" +#include "code\datums\vr\level.dm" +#include "code\datums\weather\weather.dm" +#include "code\datums\weather\weather_types\ash_storm.dm" +#include "code\datums\weather\weather_types\floor_is_lava.dm" +#include "code\datums\weather\weather_types\radiation_storm.dm" +#include "code\datums\weather\weather_types\snow_storm.dm" +#include "code\datums\wires\airlock.dm" +#include "code\datums\wires\alarm.dm" +#include "code\datums\wires\apc.dm" +#include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\camera.dm" +#include "code\datums\wires\explosive.dm" +#include "code\datums\wires\mulebot.dm" +#include "code\datums\wires\nuclearbomb.dm" +#include "code\datums\wires\particle_accelerator.dm" +#include "code\datums\wires\radio.dm" +#include "code\datums\wires\robot.dm" +#include "code\datums\wires\smartfridge.dm" +#include "code\datums\wires\suitstorage.dm" +#include "code\datums\wires\syndicatebomb.dm" +#include "code\datums\wires\tesla_coil.dm" +#include "code\datums\wires\vending.dm" +#include "code\datums\wires\wires.dm" +#include "code\defines\vox_sounds.dm" +#include "code\defines\procs\admin.dm" +#include "code\defines\procs\announce.dm" +#include "code\defines\procs\AStar.dm" +#include "code\defines\procs\dbcore.dm" +#include "code\defines\procs\radio.dm" +#include "code\defines\procs\records.dm" +#include "code\defines\procs\statistics.dm" +#include "code\game\alternate_appearance.dm" +#include "code\game\asteroid.dm" +#include "code\game\atoms.dm" +#include "code\game\atoms_movable.dm" +#include "code\game\data_huds.dm" +#include "code\game\shuttle_engines.dm" +#include "code\game\sound.dm" +#include "code\game\world.dm" +#include "code\game\area\ai_monitored.dm" +#include "code\game\area\areas.dm" +#include "code\game\area\depot-areas.dm" +#include "code\game\area\Dynamic areas.dm" +#include "code\game\area\Space Station 13 areas.dm" +#include "code\game\dna\dna2.dm" +#include "code\game\dna\dna2_domutcheck.dm" +#include "code\game\dna\dna2_helpers.dm" +#include "code\game\dna\dna_modifier.dm" +#include "code\game\dna\genes\disabilities.dm" +#include "code\game\dna\genes\gene.dm" +#include "code\game\dna\genes\goon_disabilities.dm" +#include "code\game\dna\genes\goon_powers.dm" +#include "code\game\dna\genes\monkey.dm" +#include "code\game\dna\genes\powers.dm" +#include "code\game\dna\genes\vg_disabilities.dm" +#include "code\game\dna\genes\vg_powers.dm" +#include "code\game\gamemodes\factions.dm" +#include "code\game\gamemodes\game_mode.dm" +#include "code\game\gamemodes\gameticker.dm" +#include "code\game\gamemodes\intercept_report.dm" +#include "code\game\gamemodes\objective.dm" +#include "code\game\gamemodes\scoreboard.dm" +#include "code\game\gamemodes\setupgame.dm" +#include "code\game\gamemodes\steal_items.dm" +#include "code\game\gamemodes\autotraitor\autotraitor.dm" +#include "code\game\gamemodes\blob\blob.dm" +#include "code\game\gamemodes\blob\blob_finish.dm" +#include "code\game\gamemodes\blob\blob_report.dm" +#include "code\game\gamemodes\blob\overmind.dm" +#include "code\game\gamemodes\blob\powers.dm" +#include "code\game\gamemodes\blob\theblob.dm" +#include "code\game\gamemodes\blob\blobs\blob_mobs.dm" +#include "code\game\gamemodes\blob\blobs\core.dm" +#include "code\game\gamemodes\blob\blobs\factory.dm" +#include "code\game\gamemodes\blob\blobs\node.dm" +#include "code\game\gamemodes\blob\blobs\resource.dm" +#include "code\game\gamemodes\blob\blobs\shield.dm" +#include "code\game\gamemodes\blob\blobs\storage.dm" +#include "code\game\gamemodes\changeling\changeling.dm" +#include "code\game\gamemodes\changeling\changeling_power.dm" +#include "code\game\gamemodes\changeling\evolution_menu.dm" +#include "code\game\gamemodes\changeling\traitor_chan.dm" +#include "code\game\gamemodes\changeling\powers\absorb.dm" +#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm" +#include "code\game\gamemodes\changeling\powers\biodegrade.dm" +#include "code\game\gamemodes\changeling\powers\chameleon_skin.dm" +#include "code\game\gamemodes\changeling\powers\digitalcamo.dm" +#include "code\game\gamemodes\changeling\powers\epinephrine.dm" +#include "code\game\gamemodes\changeling\powers\fakedeath.dm" +#include "code\game\gamemodes\changeling\powers\fleshmend.dm" +#include "code\game\gamemodes\changeling\powers\headcrab.dm" +#include "code\game\gamemodes\changeling\powers\hivemind.dm" +#include "code\game\gamemodes\changeling\powers\humanform.dm" +#include "code\game\gamemodes\changeling\powers\lesserform.dm" +#include "code\game\gamemodes\changeling\powers\linglink.dm" +#include "code\game\gamemodes\changeling\powers\mimic_voice.dm" +#include "code\game\gamemodes\changeling\powers\mutations.dm" +#include "code\game\gamemodes\changeling\powers\panacea.dm" +#include "code\game\gamemodes\changeling\powers\revive.dm" +#include "code\game\gamemodes\changeling\powers\shriek.dm" +#include "code\game\gamemodes\changeling\powers\spiders.dm" +#include "code\game\gamemodes\changeling\powers\strained_muscles.dm" +#include "code\game\gamemodes\changeling\powers\swap_form.dm" +#include "code\game\gamemodes\changeling\powers\tiny_prick.dm" +#include "code\game\gamemodes\changeling\powers\transform.dm" +#include "code\game\gamemodes\cult\cult.dm" +#include "code\game\gamemodes\cult\cult_comms.dm" +#include "code\game\gamemodes\cult\cult_datums.dm" +#include "code\game\gamemodes\cult\cult_items.dm" +#include "code\game\gamemodes\cult\cult_objectives.dm" +#include "code\game\gamemodes\cult\cult_structures.dm" +#include "code\game\gamemodes\cult\ritual.dm" +#include "code\game\gamemodes\cult\runes.dm" +#include "code\game\gamemodes\cult\talisman.dm" +#include "code\game\gamemodes\devil\devil.dm" +#include "code\game\gamemodes\devil\devil_game_mode.dm" +#include "code\game\gamemodes\devil\devilinfo.dm" +#include "code\game\gamemodes\devil\game_mode.dm" +#include "code\game\gamemodes\devil\objectives.dm" +#include "code\game\gamemodes\devil\contracts\friend.dm" +#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" +#include "code\game\gamemodes\devil\imp\imp.dm" +#include "code\game\gamemodes\devil\true_devil\_true_devil.dm" +#include "code\game\gamemodes\devil\true_devil\inventory.dm" +#include "code\game\gamemodes\extended\extended.dm" +#include "code\game\gamemodes\heist\heist.dm" +#include "code\game\gamemodes\malfunction\Malf_Modules.dm" +#include "code\game\gamemodes\meteor\meteor.dm" +#include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\miniantags\abduction\abductee_objectives.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_gear.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_outfits.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_surgery.dm" +#include "code\game\gamemodes\miniantags\abduction\gland.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\camera.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\console.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm" +#include "code\game\gamemodes\miniantags\borer\borer.dm" +#include "code\game\gamemodes\miniantags\borer\borer_chemicals.dm" +#include "code\game\gamemodes\miniantags\borer\borer_event.dm" +#include "code\game\gamemodes\miniantags\borer\borer_html.dm" +#include "code\game\gamemodes\miniantags\bot_swarm\swarmer.dm" +#include "code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" +#include "code\game\gamemodes\miniantags\guardian\guardian.dm" +#include "code\game\gamemodes\miniantags\guardian\types\assassin.dm" +#include "code\game\gamemodes\miniantags\guardian\types\bomb.dm" +#include "code\game\gamemodes\miniantags\guardian\types\charger.dm" +#include "code\game\gamemodes\miniantags\guardian\types\fire.dm" +#include "code\game\gamemodes\miniantags\guardian\types\healer.dm" +#include "code\game\gamemodes\miniantags\guardian\types\lightning.dm" +#include "code\game\gamemodes\miniantags\guardian\types\protector.dm" +#include "code\game\gamemodes\miniantags\guardian\types\ranged.dm" +#include "code\game\gamemodes\miniantags\guardian\types\standard.dm" +#include "code\game\gamemodes\miniantags\morph\morph.dm" +#include "code\game\gamemodes\miniantags\morph\morph_event.dm" +#include "code\game\gamemodes\miniantags\revenant\revenant.dm" +#include "code\game\gamemodes\miniantags\revenant\revenant_abilities.dm" +#include "code\game\gamemodes\miniantags\revenant\revenant_spawn_event.dm" +#include "code\game\gamemodes\miniantags\sintouched\objectives.dm" +#include "code\game\gamemodes\miniantags\slaughter\bloodcrawl.dm" +#include "code\game\gamemodes\miniantags\slaughter\slaughter.dm" +#include "code\game\gamemodes\nations\nations.dm" +#include "code\game\gamemodes\nations\nationsdatums.dm" +#include "code\game\gamemodes\nations\nationsprocs.dm" +#include "code\game\gamemodes\nuclear\nuclear.dm" +#include "code\game\gamemodes\nuclear\nuclear_challenge.dm" +#include "code\game\gamemodes\nuclear\nuclearbomb.dm" +#include "code\game\gamemodes\nuclear\pinpointer.dm" +#include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\shadowling\ascendant_shadowling.dm" +#include "code\game\gamemodes\shadowling\shadowling.dm" +#include "code\game\gamemodes\shadowling\shadowling_abilities.dm" +#include "code\game\gamemodes\shadowling\shadowling_items.dm" +#include "code\game\gamemodes\shadowling\special_shadowling_abilities.dm" +#include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\vampire\traitor_vamp.dm" +#include "code\game\gamemodes\vampire\vampire.dm" +#include "code\game\gamemodes\vampire\vampire_powers.dm" +#include "code\game\gamemodes\wizard\artefact.dm" +#include "code\game\gamemodes\wizard\godhand.dm" +#include "code\game\gamemodes\wizard\raginmages.dm" +#include "code\game\gamemodes\wizard\rightandwrong.dm" +#include "code\game\gamemodes\wizard\soulstone.dm" +#include "code\game\gamemodes\wizard\spellbook.dm" +#include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\jobs\access.dm" +#include "code\game\jobs\job_controller.dm" +#include "code\game\jobs\job_exp.dm" +#include "code\game\jobs\job_objective.dm" +#include "code\game\jobs\job_scaling.dm" +#include "code\game\jobs\jobs.dm" +#include "code\game\jobs\whitelist.dm" +#include "code\game\jobs\job\central.dm" +#include "code\game\jobs\job\civilian.dm" +#include "code\game\jobs\job\engineering.dm" +#include "code\game\jobs\job\job.dm" +#include "code\game\jobs\job\medical.dm" +#include "code\game\jobs\job\science.dm" +#include "code\game\jobs\job\security.dm" +#include "code\game\jobs\job\silicon.dm" +#include "code\game\jobs\job\supervisor.dm" +#include "code\game\jobs\job\support.dm" +#include "code\game\jobs\job\support_chaplain.dm" +#include "code\game\jobs\job\syndicate.dm" +#include "code\game\jobs\job_objectives\science.dm" +#include "code\game\machinery\adv_med.dm" +#include "code\game\machinery\ai_slipper.dm" +#include "code\game\machinery\alarm.dm" +#include "code\game\machinery\atmo_control.dm" +#include "code\game\machinery\autolathe.dm" +#include "code\game\machinery\Beacon.dm" +#include "code\game\machinery\buttons.dm" +#include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\chiller.dm" +#include "code\game\machinery\cloning.dm" +#include "code\game\machinery\constructable_frame.dm" +#include "code\game\machinery\cryo.dm" +#include "code\game\machinery\cryopod.dm" +#include "code\game\machinery\dance_machine.dm" +#include "code\game\machinery\defib_mount.dm" +#include "code\game\machinery\deployable.dm" +#include "code\game\machinery\door_control.dm" +#include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\dye_generator.dm" +#include "code\game\machinery\firealarm.dm" +#include "code\game\machinery\flasher.dm" +#include "code\game\machinery\floodlight.dm" +#include "code\game\machinery\Freezer.dm" +#include "code\game\machinery\gameboard.dm" +#include "code\game\machinery\guestpass.dm" +#include "code\game\machinery\hologram.dm" +#include "code\game\machinery\holosign.dm" +#include "code\game\machinery\igniter.dm" +#include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\lightswitch.dm" +#include "code\game\machinery\machinery.dm" +#include "code\game\machinery\magnet.dm" +#include "code\game\machinery\mass_driver.dm" +#include "code\game\machinery\navbeacon.dm" +#include "code\game\machinery\newscaster.dm" +#include "code\game\machinery\OpTable.dm" +#include "code\game\machinery\overview.dm" +#include "code\game\machinery\PDApainter.dm" +#include "code\game\machinery\poolcontroller.dm" +#include "code\game\machinery\portable_tag_turret.dm" +#include "code\game\machinery\portable_turret.dm" +#include "code\game\machinery\quantum_pad.dm" +#include "code\game\machinery\recharger.dm" +#include "code\game\machinery\rechargestation.dm" +#include "code\game\machinery\recycler.dm" +#include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\shieldgen.dm" +#include "code\game\machinery\Sleeper.dm" +#include "code\game\machinery\slotmachine.dm" +#include "code\game\machinery\snow_machine.dm" +#include "code\game\machinery\spaceheater.dm" +#include "code\game\machinery\status_display.dm" +#include "code\game\machinery\suit_storage_unit.dm" +#include "code\game\machinery\supply_display.dm" +#include "code\game\machinery\syndicatebeacon.dm" +#include "code\game\machinery\syndicatebomb.dm" +#include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\transformer.dm" +#include "code\game\machinery\turntable.dm" +#include "code\game\machinery\turret_control.dm" +#include "code\game\machinery\vending.dm" +#include "code\game\machinery\washing_machine.dm" +#include "code\game\machinery\wishgranter.dm" +#include "code\game\machinery\atmoalter\area_atmos_computer.dm" +#include "code\game\machinery\atmoalter\canister.dm" +#include "code\game\machinery\atmoalter\meter.dm" +#include "code\game\machinery\atmoalter\portable_atmospherics.dm" +#include "code\game\machinery\atmoalter\pump.dm" +#include "code\game\machinery\atmoalter\scrubber.dm" +#include "code\game\machinery\atmoalter\zvent.dm" +#include "code\game\machinery\camera\camera.dm" +#include "code\game\machinery\camera\camera_assembly.dm" +#include "code\game\machinery\camera\motion.dm" +#include "code\game\machinery\camera\presets.dm" +#include "code\game\machinery\camera\tracking.dm" +#include "code\game\machinery\computer\ai_core.dm" +#include "code\game\machinery\computer\aifixer.dm" +#include "code\game\machinery\computer\arcade.dm" +#include "code\game\machinery\computer\atmos_alert.dm" +#include "code\game\machinery\computer\atmos_control.dm" +#include "code\game\machinery\computer\brigcells.dm" +#include "code\game\machinery\computer\buildandrepair.dm" +#include "code\game\machinery\computer\camera.dm" +#include "code\game\machinery\computer\camera_advanced.dm" +#include "code\game\machinery\computer\card.dm" +#include "code\game\machinery\computer\cloning.dm" +#include "code\game\machinery\computer\communications.dm" +#include "code\game\machinery\computer\computer.dm" +#include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\depot.dm" +#include "code\game\machinery\computer\HolodeckControl.dm" +#include "code\game\machinery\computer\honkputer.dm" +#include "code\game\machinery\computer\law.dm" +#include "code\game\machinery\computer\medical.dm" +#include "code\game\machinery\computer\message.dm" +#include "code\game\machinery\computer\Operating.dm" +#include "code\game\machinery\computer\pod.dm" +#include "code\game\machinery\computer\pod_tracking_console.dm" +#include "code\game\machinery\computer\power.dm" +#include "code\game\machinery\computer\prisoner.dm" +#include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\salvage_ship.dm" +#include "code\game\machinery\computer\security.dm" +#include "code\game\machinery\computer\skills.dm" +#include "code\game\machinery\computer\specops_shuttle.dm" +#include "code\game\machinery\computer\station_alert.dm" +#include "code\game\machinery\computer\store.dm" +#include "code\game\machinery\computer\syndicate_specops_shuttle.dm" +#include "code\game\machinery\computer\vr_control.dm" +#include "code\game\machinery\doors\airlock.dm" +#include "code\game\machinery\doors\airlock_control.dm" +#include "code\game\machinery\doors\airlock_electronics.dm" +#include "code\game\machinery\doors\airlock_types.dm" +#include "code\game\machinery\doors\alarmlock.dm" +#include "code\game\machinery\doors\brigdoors.dm" +#include "code\game\machinery\doors\checkForMultipleDoors.dm" +#include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\poddoor.dm" +#include "code\game\machinery\doors\shutters.dm" +#include "code\game\machinery\doors\spacepod.dm" +#include "code\game\machinery\doors\unpowered.dm" +#include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\embedded_controller\airlock_controllers.dm" +#include "code\game\machinery\embedded_controller\airlock_program.dm" +#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" +#include "code\game\machinery\embedded_controller\embedded_program_base.dm" +#include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\pipe_dispenser.dm" +#include "code\game\machinery\telecomms\broadcaster.dm" +#include "code\game\machinery\telecomms\logbrowser.dm" +#include "code\game\machinery\telecomms\machine_interactions.dm" +#include "code\game\machinery\telecomms\ntsl2.dm" +#include "code\game\machinery\telecomms\presets.dm" +#include "code\game\machinery\telecomms\telecomunications.dm" +#include "code\game\machinery\telecomms\telemonitor.dm" +#include "code\game\machinery\telecomms\traffic_control.dm" +#include "code\game\magic\Uristrunes.dm" +#include "code\game\mecha\mech_bay.dm" +#include "code\game\mecha\mech_fabricator.dm" +#include "code\game\mecha\mecha.dm" +#include "code\game\mecha\mecha_actions.dm" +#include "code\game\mecha\mecha_construction_paths.dm" +#include "code\game\mecha\mecha_control_console.dm" +#include "code\game\mecha\mecha_modkit.dm" +#include "code\game\mecha\mecha_parts.dm" +#include "code\game\mecha\mecha_topic.dm" +#include "code\game\mecha\mecha_wreckage.dm" +#include "code\game\mecha\paintkits.dm" +#include "code\game\mecha\combat\combat.dm" +#include "code\game\mecha\combat\durand.dm" +#include "code\game\mecha\combat\gygax.dm" +#include "code\game\mecha\combat\honker.dm" +#include "code\game\mecha\combat\marauder.dm" +#include "code\game\mecha\combat\phazon.dm" +#include "code\game\mecha\combat\reticence.dm" +#include "code\game\mecha\equipment\mecha_equipment.dm" +#include "code\game\mecha\equipment\tools\medical_tools.dm" +#include "code\game\mecha\equipment\tools\mining_tools.dm" +#include "code\game\mecha\equipment\tools\other_tools.dm" +#include "code\game\mecha\equipment\tools\work_tools.dm" +#include "code\game\mecha\equipment\weapons\weapons.dm" +#include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\odysseus.dm" +#include "code\game\mecha\working\ripley.dm" +#include "code\game\mecha\working\working.dm" +#include "code\game\objects\buckling.dm" +#include "code\game\objects\empulse.dm" +#include "code\game\objects\explosion.dm" +#include "code\game\objects\items.dm" +#include "code\game\objects\obj_defense.dm" +#include "code\game\objects\objs.dm" +#include "code\game\objects\structures.dm" +#include "code\game\objects\effects\alien_acid.dm" +#include "code\game\objects\effects\anomalies.dm" +#include "code\game\objects\effects\bump_teleporter.dm" +#include "code\game\objects\effects\effects.dm" +#include "code\game\objects\effects\forcefields.dm" +#include "code\game\objects\effects\gibs.dm" +#include "code\game\objects\effects\glowshroom.dm" +#include "code\game\objects\effects\landmarks.dm" +#include "code\game\objects\effects\manifest.dm" +#include "code\game\objects\effects\mines.dm" +#include "code\game\objects\effects\misc.dm" +#include "code\game\objects\effects\overlays.dm" +#include "code\game\objects\effects\portals.dm" +#include "code\game\objects\effects\snowcloud.dm" +#include "code\game\objects\effects\spiders.dm" +#include "code\game\objects\effects\step_triggers.dm" +#include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\contraband.dm" +#include "code\game\objects\effects\decals\crayon.dm" +#include "code\game\objects\effects\decals\misc.dm" +#include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\warning_stripes.dm" +#include "code\game\objects\effects\decals\Cleanable\aliens.dm" +#include "code\game\objects\effects\decals\Cleanable\fuel.dm" +#include "code\game\objects\effects\decals\Cleanable\humans.dm" +#include "code\game\objects\effects\decals\Cleanable\misc.dm" +#include "code\game\objects\effects\decals\Cleanable\robots.dm" +#include "code\game\objects\effects\decals\Cleanable\tracks.dm" +#include "code\game\objects\effects\effect_system\effect_system.dm" +#include "code\game\objects\effects\effect_system\effects_explosion.dm" +#include "code\game\objects\effects\effect_system\effects_foam.dm" +#include "code\game\objects\effects\effect_system\effects_other.dm" +#include "code\game\objects\effects\effect_system\effects_smoke.dm" +#include "code\game\objects\effects\effect_system\effects_sparks.dm" +#include "code\game\objects\effects\effect_system\effects_water.dm" +#include "code\game\objects\effects\spawners\bombspawner.dm" +#include "code\game\objects\effects\spawners\gibspawner.dm" +#include "code\game\objects\effects\spawners\lootdrop.dm" +#include "code\game\objects\effects\spawners\random_barrier.dm" +#include "code\game\objects\effects\spawners\random_spawners.dm" +#include "code\game\objects\effects\spawners\vaultspawner.dm" +#include "code\game\objects\effects\spawners\windowspawner.dm" +#include "code\game\objects\effects\temporary_visuals\clockcult.dm" +#include "code\game\objects\effects\temporary_visuals\cult.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\items\ashtray.dm" +#include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\candle.dm" +#include "code\game\objects\items\cardboard_cutouts.dm" +#include "code\game\objects\items\changestone.dm" +#include "code\game\objects\items\contraband.dm" +#include "code\game\objects\items\control_wand.dm" +#include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\dehy_carp.dm" +#include "code\game\objects\items\documents.dm" +#include "code\game\objects\items\flag.dm" +#include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\misc.dm" +#include "code\game\objects\items\mixing_bowl.dm" +#include "code\game\objects\items\random_items.dm" +#include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\toys.dm" +#include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\autopsy.dm" +#include "code\game\objects\items\devices\camera_bug.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\flash.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\floor_painter.dm" +#include "code\game\objects\items\devices\instruments.dm" +#include "code\game\objects\items\devices\laserpointer.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\machineprototype.dm" +#include "code\game\objects\items\devices\megaphone.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\pizza_bomb.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\sensor_device.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\thermal_drill.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\uplinks.dm" +#include "code\game\objects\items\devices\whistle.dm" +#include "code\game\objects\items\devices\radio\beacon.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\mountable_frames\air_alarm.dm" +#include "code\game\objects\items\mountable_frames\apc_frame.dm" +#include "code\game\objects\items\mountable_frames\buttons_switches.dm" +#include "code\game\objects\items\mountable_frames\extinguisher_frame.dm" +#include "code\game\objects\items\mountable_frames\fire_alarm.dm" +#include "code\game\objects\items\mountable_frames\frames.dm" +#include "code\game\objects\items\mountable_frames\intercom.dm" +#include "code\game\objects\items\mountable_frames\lights.dm" +#include "code\game\objects\items\mountable_frames\mountables.dm" +#include "code\game\objects\items\mountable_frames\newscaster_frame.dm" +#include "code\game\objects\items\robot\ai_upgrades.dm" +#include "code\game\objects\items\robot\robot_items.dm" +#include "code\game\objects\items\robot\robot_parts.dm" +#include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\stacks\medical.dm" +#include "code\game\objects\items\stacks\nanopaste.dm" +#include "code\game\objects\items\stacks\rods.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\stack_recipe.dm" +#include "code\game\objects\items\stacks\telecrystal.dm" +#include "code\game\objects\items\stacks\sheets\glass.dm" +#include "code\game\objects\items\stacks\sheets\leather.dm" +#include "code\game\objects\items\stacks\sheets\light.dm" +#include "code\game\objects\items\stacks\sheets\mineral.dm" +#include "code\game\objects\items\stacks\sheets\sheet_types.dm" +#include "code\game\objects\items\stacks\sheets\sheets.dm" +#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" +#include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\weapons\AI_modules.dm" +#include "code\game\objects\items\weapons\alien_specific.dm" +#include "code\game\objects\items\weapons\bee_briefcase.dm" +#include "code\game\objects\items\weapons\cards_ids.dm" +#include "code\game\objects\items\weapons\cash.dm" +#include "code\game\objects\items\weapons\caution.dm" +#include "code\game\objects\items\weapons\chrono_eraser.dm" +#include "code\game\objects\items\weapons\cigs.dm" +#include "code\game\objects\items\weapons\clown_items.dm" +#include "code\game\objects\items\weapons\cosmetics.dm" +#include "code\game\objects\items\weapons\courtroom.dm" +#include "code\game\objects\items\weapons\defib.dm" +#include "code\game\objects\items\weapons\dice.dm" +#include "code\game\objects\items\weapons\disks.dm" +#include "code\game\objects\items\weapons\dna_injector.dm" +#include "code\game\objects\items\weapons\dnascrambler.dm" +#include "code\game\objects\items\weapons\explosives.dm" +#include "code\game\objects\items\weapons\extinguisher.dm" +#include "code\game\objects\items\weapons\fireworks.dm" +#include "code\game\objects\items\weapons\flamethrower.dm" +#include "code\game\objects\items\weapons\garrote.dm" +#include "code\game\objects\items\weapons\gift_wrappaper.dm" +#include "code\game\objects\items\weapons\handcuffs.dm" +#include "code\game\objects\items\weapons\highlander_swords.dm" +#include "code\game\objects\items\weapons\holosign.dm" +#include "code\game\objects\items\weapons\holy_weapons.dm" +#include "code\game\objects\items\weapons\kitchen.dm" +#include "code\game\objects\items\weapons\legcuffs.dm" +#include "code\game\objects\items\weapons\lighters.dm" +#include "code\game\objects\items\weapons\manuals.dm" +#include "code\game\objects\items\weapons\misc.dm" +#include "code\game\objects\items\weapons\mop.dm" +#include "code\game\objects\items\weapons\paint.dm" +#include "code\game\objects\items\weapons\paiwire.dm" +#include "code\game\objects\items\weapons\pneumaticCannon.dm" +#include "code\game\objects\items\weapons\powerfist.dm" +#include "code\game\objects\items\weapons\RCD.dm" +#include "code\game\objects\items\weapons\RCL.dm" +#include "code\game\objects\items\weapons\rpd.dm" +#include "code\game\objects\items\weapons\RSF.dm" +#include "code\game\objects\items\weapons\scissors.dm" +#include "code\game\objects\items\weapons\scrolls.dm" +#include "code\game\objects\items\weapons\shards.dm" +#include "code\game\objects\items\weapons\shields.dm" +#include "code\game\objects\items\weapons\signs.dm" +#include "code\game\objects\items\weapons\soap.dm" +#include "code\game\objects\items\weapons\staff.dm" +#include "code\game\objects\items\weapons\stock_parts.dm" +#include "code\game\objects\items\weapons\stunbaton.dm" +#include "code\game\objects\items\weapons\swords_axes_etc.dm" +#include "code\game\objects\items\weapons\tape.dm" +#include "code\game\objects\items\weapons\teleportation.dm" +#include "code\game\objects\items\weapons\teleprod.dm" +#include "code\game\objects\items\weapons\tools.dm" +#include "code\game\objects\items\weapons\twohanded.dm" +#include "code\game\objects\items\weapons\vending_items.dm" +#include "code\game\objects\items\weapons\weaponry.dm" +#include "code\game\objects\items\weapons\whetstone.dm" +#include "code\game\objects\items\weapons\grenades\atmosgrenade.dm" +#include "code\game\objects\items\weapons\grenades\bananade.dm" +#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" +#include "code\game\objects\items\weapons\grenades\clowngrenade.dm" +#include "code\game\objects\items\weapons\grenades\clusterbuster.dm" +#include "code\game\objects\items\weapons\grenades\confetti.dm" +#include "code\game\objects\items\weapons\grenades\custom_grenades.dm" +#include "code\game\objects\items\weapons\grenades\emgrenade.dm" +#include "code\game\objects\items\weapons\grenades\flashbang.dm" +#include "code\game\objects\items\weapons\grenades\frag.dm" +#include "code\game\objects\items\weapons\grenades\ghettobomb.dm" +#include "code\game\objects\items\weapons\grenades\grenade.dm" +#include "code\game\objects\items\weapons\grenades\smokebomb.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" +#include "code\game\objects\items\weapons\grenades\syndieminibomb.dm" +#include "code\game\objects\items\weapons\implants\health.dm" +#include "code\game\objects\items\weapons\implants\implant.dm" +#include "code\game\objects\items\weapons\implants\implant_abductor.dm" +#include "code\game\objects\items\weapons\implants\implant_chem.dm" +#include "code\game\objects\items\weapons\implants\implant_death_alarm.dm" +#include "code\game\objects\items\weapons\implants\implant_explosive.dm" +#include "code\game\objects\items\weapons\implants\implant_freedom.dm" +#include "code\game\objects\items\weapons\implants\implant_krav_maga.dm" +#include "code\game\objects\items\weapons\implants\implant_mindshield.dm" +#include "code\game\objects\items\weapons\implants\implant_misc.dm" +#include "code\game\objects\items\weapons\implants\implant_storage.dm" +#include "code\game\objects\items\weapons\implants\implant_track.dm" +#include "code\game\objects\items\weapons\implants\implant_traitor.dm" +#include "code\game\objects\items\weapons\implants\implantcase.dm" +#include "code\game\objects\items\weapons\implants\implantchair.dm" +#include "code\game\objects\items\weapons\implants\implanter.dm" +#include "code\game\objects\items\weapons\implants\implantpad.dm" +#include "code\game\objects\items\weapons\implants\implantuplink.dm" +#include "code\game\objects\items\weapons\melee\energy.dm" +#include "code\game\objects\items\weapons\melee\misc.dm" +#include "code\game\objects\items\weapons\storage\artistic_toolbox.dm" +#include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\bags.dm" +#include "code\game\objects\items\weapons\storage\belt.dm" +#include "code\game\objects\items\weapons\storage\bible.dm" +#include "code\game\objects\items\weapons\storage\boxes.dm" +#include "code\game\objects\items\weapons\storage\briefcase.dm" +#include "code\game\objects\items\weapons\storage\fancy.dm" +#include "code\game\objects\items\weapons\storage\firstaid.dm" +#include "code\game\objects\items\weapons\storage\internal.dm" +#include "code\game\objects\items\weapons\storage\lockbox.dm" +#include "code\game\objects\items\weapons\storage\secure.dm" +#include "code\game\objects\items\weapons\storage\storage.dm" +#include "code\game\objects\items\weapons\storage\toolbox.dm" +#include "code\game\objects\items\weapons\storage\uplink_kits.dm" +#include "code\game\objects\items\weapons\storage\wallets.dm" +#include "code\game\objects\items\weapons\tanks\jetpack.dm" +#include "code\game\objects\items\weapons\tanks\tank_types.dm" +#include "code\game\objects\items\weapons\tanks\tanks.dm" +#include "code\game\objects\items\weapons\tanks\watertank.dm" +#include "code\game\objects\random\random.dm" +#include "code\game\objects\structures\aliens.dm" +#include "code\game\objects\structures\barsign.dm" +#include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\coathanger.dm" +#include "code\game\objects\structures\curtains.dm" +#include "code\game\objects\structures\depot.dm" +#include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\door_assembly_types.dm" +#include "code\game\objects\structures\dresser.dm" +#include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\engicart.dm" +#include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\false_walls.dm" +#include "code\game\objects\structures\flora.dm" +#include "code\game\objects\structures\foodcart.dm" +#include "code\game\objects\structures\girders.dm" +#include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\guillotine.dm" +#include "code\game\objects\structures\holosign.dm" +#include "code\game\objects\structures\inflatable.dm" +#include "code\game\objects\structures\janicart.dm" +#include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\ladders.dm" +#include "code\game\objects\structures\lamarr_cage.dm" +#include "code\game\objects\structures\lattice.dm" +#include "code\game\objects\structures\mineral_doors.dm" +#include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\misc.dm" +#include "code\game\objects\structures\mop_bucket.dm" +#include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\musician.dm" +#include "code\game\objects\structures\noticeboard.dm" +#include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\reflector.dm" +#include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\signs.dm" +#include "code\game\objects\structures\spirit_board.dm" +#include "code\game\objects\structures\statues.dm" +#include "code\game\objects\structures\table_frames.dm" +#include "code\game\objects\structures\tables_racks.dm" +#include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\windoor_assembly.dm" +#include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\crates_lockers\closets.dm" +#include "code\game\objects\structures\crates_lockers\crates.dm" +#include "code\game\objects\structures\crates_lockers\crittercrate.dm" +#include "code\game\objects\structures\crates_lockers\largecrate.dm" +#include "code\game\objects\structures\crates_lockers\walllocker.dm" +#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" +#include "code\game\objects\structures\crates_lockers\closets\coffin.dm" +#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" +#include "code\game\objects\structures\crates_lockers\closets\fireaxe.dm" +#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" +#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" +#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" +#include "code\game\objects\structures\crates_lockers\closets\statue.dm" +#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\chaplain.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\depot.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\miscjobs.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\decor\decor.dm" +#include "code\game\objects\structures\decor\machinery\telecomms.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" +#include "code\game\objects\structures\transit_tubes\station.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" +#include "code\game\turfs\simulated.dm" +#include "code\game\turfs\turf.dm" +#include "code\game\turfs\unsimulated.dm" +#include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\shuttle.dm" +#include "code\game\turfs\simulated\walls.dm" +#include "code\game\turfs\simulated\walls_mineral.dm" +#include "code\game\turfs\simulated\walls_misc.dm" +#include "code\game\turfs\simulated\walls_reinforced.dm" +#include "code\game\turfs\simulated\floor\fancy_floor.dm" +#include "code\game\turfs\simulated\floor\light_floor.dm" +#include "code\game\turfs\simulated\floor\mineral.dm" +#include "code\game\turfs\simulated\floor\misc_floor.dm" +#include "code\game\turfs\simulated\floor\plasteel_floor.dm" +#include "code\game\turfs\simulated\floor\plating.dm" +#include "code\game\turfs\space\space.dm" +#include "code\game\turfs\space\transit.dm" +#include "code\game\turfs\unsimulated\beach.dm" +#include "code\game\turfs\unsimulated\floor.dm" +#include "code\game\turfs\unsimulated\walls.dm" +#include "code\game\verbs\ooc.dm" +#include "code\game\verbs\suicide.dm" +#include "code\game\verbs\who.dm" +#include "code\js\byjax.dm" +#include "code\js\menus.dm" +#include "code\LINDA\LINDA_fire.dm" +#include "code\LINDA\LINDA_system.dm" +#include "code\LINDA\LINDA_turf_tile.dm" +#include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_investigate.dm" +#include "code\modules\admin\admin_memo.dm" +#include "code\modules\admin\admin_ranks.dm" +#include "code\modules\admin\admin_verbs.dm" +#include "code\modules\admin\banappearance.dm" +#include "code\modules\admin\banjob.dm" +#include "code\modules\admin\create_mob.dm" +#include "code\modules\admin\create_object.dm" +#include "code\modules\admin\create_poll.dm" +#include "code\modules\admin\create_turf.dm" +#include "code\modules\admin\holder2.dm" +#include "code\modules\admin\IsBanned.dm" +#include "code\modules\admin\machine_upgrade.dm" +#include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\secrets.dm" +#include "code\modules\admin\sql_notes.dm" +#include "code\modules\admin\stickyban.dm" +#include "code\modules\admin\topic.dm" +#include "code\modules\admin\ToRban.dm" +#include "code\modules\admin\watchlist.dm" +#include "code\modules\admin\DB ban\functions.dm" +#include "code\modules\admin\permissionverbs\permissionedit.dm" +#include "code\modules\admin\tickets\adminticketsverbs.dm" +#include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminjump.dm" +#include "code\modules\admin\verbs\adminpm.dm" +#include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\alt_check.dm" +#include "code\modules\admin\verbs\antag-ooc.dm" +#include "code\modules\admin\verbs\atmosdebug.dm" +#include "code\modules\admin\verbs\BrokenInhands.dm" +#include "code\modules\admin\verbs\cinematic.dm" +#include "code\modules\admin\verbs\custom_event.dm" +#include "code\modules\admin\verbs\deadsay.dm" +#include "code\modules\admin\verbs\debug.dm" +#include "code\modules\admin\verbs\diagnostics.dm" +#include "code\modules\admin\verbs\dice.dm" +#include "code\modules\admin\verbs\freeze.dm" +#include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\gimmick_team.dm" +#include "code\modules\admin\verbs\honksquad.dm" +#include "code\modules\admin\verbs\infiltratorteam_syndicate.dm" +#include "code\modules\admin\verbs\map_template_loadverb.dm" +#include "code\modules\admin\verbs\mapping.dm" +#include "code\modules\admin\verbs\massmodvar.dm" +#include "code\modules\admin\verbs\modifyvariables.dm" +#include "code\modules\admin\verbs\one_click_antag.dm" +#include "code\modules\admin\verbs\onlyone.dm" +#include "code\modules\admin\verbs\onlyoneteam.dm" +#include "code\modules\admin\verbs\playsound.dm" +#include "code\modules\admin\verbs\possess.dm" +#include "code\modules\admin\verbs\pray.dm" +#include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\serialization.dm" +#include "code\modules\admin\verbs\space_transitions.dm" +#include "code\modules\admin\verbs\spawnfloorcluwne.dm" +#include "code\modules\admin\verbs\striketeam.dm" +#include "code\modules\admin\verbs\striketeam_syndicate.dm" +#include "code\modules\admin\verbs\ticklag.dm" +#include "code\modules\admin\verbs\toggledebugverbs.dm" +#include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\vox_raiders.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" +#include "code\modules\admin\verbs\SDQL2\useful_procs.dm" +#include "code\modules\alarm\alarm.dm" +#include "code\modules\alarm\alarm_handler.dm" +#include "code\modules\alarm\atmosphere_alarm.dm" +#include "code\modules\alarm\burglar_alarm.dm" +#include "code\modules\alarm\camera_alarm.dm" +#include "code\modules\alarm\fire_alarm.dm" +#include "code\modules\alarm\motion_alarm.dm" +#include "code\modules\alarm\power_alarm.dm" +#include "code\modules\antagonists\_common\antag_datum.dm" +#include "code\modules\antagonists\_common\antag_helpers.dm" +#include "code\modules\antagonists\_common\antag_hud.dm" +#include "code\modules\antagonists\_common\antag_spawner.dm" +#include "code\modules\antagonists\_common\antag_team.dm" +#include "code\modules\antagonists\wishgranter\wishgranter.dm" +#include "code\modules\arcade\arcade_base.dm" +#include "code\modules\arcade\arcade_prize.dm" +#include "code\modules\arcade\claw_game.dm" +#include "code\modules\arcade\prize_counter.dm" +#include "code\modules\arcade\prize_datums.dm" +#include "code\modules\arcade\mob_hunt\battle_computer.dm" +#include "code\modules\arcade\mob_hunt\mob_avatar.dm" +#include "code\modules\arcade\mob_hunt\mob_cards.dm" +#include "code\modules\arcade\mob_hunt\mob_datums.dm" +#include "code\modules\arcade\mob_hunt\mob_type_datums.dm" +#include "code\modules\assembly\assembly.dm" +#include "code\modules\assembly\bomb.dm" +#include "code\modules\assembly\health.dm" +#include "code\modules\assembly\helpers.dm" +#include "code\modules\assembly\holder.dm" +#include "code\modules\assembly\igniter.dm" +#include "code\modules\assembly\infrared.dm" +#include "code\modules\assembly\mousetrap.dm" +#include "code\modules\assembly\proximity.dm" +#include "code\modules\assembly\shock_kit.dm" +#include "code\modules\assembly\signaler.dm" +#include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" +#include "code\modules\atmos_automation\console.dm" +#include "code\modules\atmos_automation\statements.dm" +#include "code\modules\atmos_automation\implementation\digital_valves.dm" +#include "code\modules\atmos_automation\implementation\emitters.dm" +#include "code\modules\atmos_automation\implementation\injectors.dm" +#include "code\modules\atmos_automation\implementation\scrubbers.dm" +#include "code\modules\atmos_automation\implementation\sensors.dm" +#include "code\modules\atmos_automation\implementation\vent_pump.dm" +#include "code\modules\awaymissions\corpse.dm" +#include "code\modules\awaymissions\exile.dm" +#include "code\modules\awaymissions\gateway.dm" +#include "code\modules\awaymissions\loot.dm" +#include "code\modules\awaymissions\map_rng.dm" +#include "code\modules\awaymissions\pamphlet.dm" +#include "code\modules\awaymissions\snpc.dm" +#include "code\modules\awaymissions\trigger.dm" +#include "code\modules\awaymissions\zlevel.dm" +#include "code\modules\awaymissions\zvis.dm" +#include "code\modules\awaymissions\maploader\dmm_suite.dm" +#include "code\modules\awaymissions\maploader\reader.dm" +#include "code\modules\awaymissions\maploader\writer.dm" +#include "code\modules\awaymissions\mission_code\academy.dm" +#include "code\modules\awaymissions\mission_code\beach.dm" +#include "code\modules\awaymissions\mission_code\blackmarketpackers.dm" +#include "code\modules\awaymissions\mission_code\centcomAway.dm" +#include "code\modules\awaymissions\mission_code\challenge.dm" +#include "code\modules\awaymissions\mission_code\clownplanet.dm" +#include "code\modules\awaymissions\mission_code\evil_santa.dm" +#include "code\modules\awaymissions\mission_code\spacebattle.dm" +#include "code\modules\awaymissions\mission_code\spacehotel.dm" +#include "code\modules\awaymissions\mission_code\spacehotel_npcs.dm" +#include "code\modules\awaymissions\mission_code\stationCollision.dm" +#include "code\modules\awaymissions\mission_code\UO71-terrorspiders.dm" +#include "code\modules\awaymissions\mission_code\wildwest.dm" +#include "code\modules\awaymissions\mission_code\ghost_role_spawners\golems.dm" +#include "code\modules\awaymissions\mission_code\ghost_role_spawners\oldstation.dm" +#include "code\modules\awaymissions\mission_code\ruins\oldstation.dm" +#include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm" +#include "code\modules\buildmode\bm_mode.dm" +#include "code\modules\buildmode\buildmode.dm" +#include "code\modules\buildmode\buttons.dm" +#include "code\modules\buildmode\effects\line.dm" +#include "code\modules\buildmode\submodes\advanced.dm" +#include "code\modules\buildmode\submodes\area_edit.dm" +#include "code\modules\buildmode\submodes\atmos.dm" +#include "code\modules\buildmode\submodes\basic.dm" +#include "code\modules\buildmode\submodes\boom.dm" +#include "code\modules\buildmode\submodes\copy.dm" +#include "code\modules\buildmode\submodes\fill.dm" +#include "code\modules\buildmode\submodes\link.dm" +#include "code\modules\buildmode\submodes\mapgen.dm" +#include "code\modules\buildmode\submodes\save.dm" +#include "code\modules\buildmode\submodes\throwing.dm" +#include "code\modules\buildmode\submodes\variable_edit.dm" +#include "code\modules\busy_space\air_traffic.dm" +#include "code\modules\busy_space\loremaster.dm" +#include "code\modules\busy_space\organizations.dm" +#include "code\modules\client\asset_cache.dm" +#include "code\modules\client\client defines.dm" +#include "code\modules\client\client procs.dm" +#include "code\modules\client\message.dm" +#include "code\modules\client\view.dm" +#include "code\modules\client\preference\preferences.dm" +#include "code\modules\client\preference\preferences_mysql.dm" +#include "code\modules\client\preference\preferences_spawnpoints.dm" +#include "code\modules\client\preference\preferences_toggles.dm" +#include "code\modules\client\preference\loadout\gear_tweaks.dm" +#include "code\modules\client\preference\loadout\loadout.dm" +#include "code\modules\client\preference\loadout\loadout_accessories.dm" +#include "code\modules\client\preference\loadout\loadout_cosmetics.dm" +#include "code\modules\client\preference\loadout\loadout_donor.dm" +#include "code\modules\client\preference\loadout\loadout_general.dm" +#include "code\modules\client\preference\loadout\loadout_hat.dm" +#include "code\modules\client\preference\loadout\loadout_racial.dm" +#include "code\modules\client\preference\loadout\loadout_shoes.dm" +#include "code\modules\client\preference\loadout\loadout_suit.dm" +#include "code\modules\client\preference\loadout\loadout_uniform.dm" +#include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\ears\ears.dm" +#include "code\modules\clothing\glasses\glasses.dm" +#include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\gloves\boxing.dm" +#include "code\modules\clothing\gloves\color.dm" +#include "code\modules\clothing\gloves\miscellaneous.dm" +#include "code\modules\clothing\gloves\rings.dm" +#include "code\modules\clothing\head\collectable.dm" +#include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\helmet.dm" +#include "code\modules\clothing\head\jobs.dm" +#include "code\modules\clothing\head\misc.dm" +#include "code\modules\clothing\head\misc_special.dm" +#include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\masks\boxing.dm" +#include "code\modules\clothing\masks\breath.dm" +#include "code\modules\clothing\masks\gasmask.dm" +#include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\masks\voice.dm" +#include "code\modules\clothing\patreon\glasses.dm" +#include "code\modules\clothing\patreon\hats.dm" +#include "code\modules\clothing\shoes\colour.dm" +#include "code\modules\clothing\shoes\magboots.dm" +#include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\alien.dm" +#include "code\modules\clothing\spacesuits\breaches.dm" +#include "code\modules\clothing\spacesuits\chronosuit.dm" +#include "code\modules\clothing\spacesuits\ert.dm" +#include "code\modules\clothing\spacesuits\hardsuit.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\plasmamen.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\spacesuits\void.dm" +#include "code\modules\clothing\spacesuits\rig\rig.dm" +#include "code\modules\clothing\spacesuits\rig\rig_armormod.dm" +#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm" +#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm" +#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm" +#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm" +#include "code\modules\clothing\spacesuits\rig\modules\combat.dm" +#include "code\modules\clothing\spacesuits\rig\modules\computer.dm" +#include "code\modules\clothing\spacesuits\rig\modules\modules.dm" +#include "code\modules\clothing\spacesuits\rig\modules\ninja.dm" +#include "code\modules\clothing\spacesuits\rig\modules\utility.dm" +#include "code\modules\clothing\spacesuits\rig\modules\vision.dm" +#include "code\modules\clothing\spacesuits\rig\suits\alien.dm" +#include "code\modules\clothing\spacesuits\rig\suits\combat.dm" +#include "code\modules\clothing\spacesuits\rig\suits\ert_suits.dm" +#include "code\modules\clothing\spacesuits\rig\suits\light.dm" +#include "code\modules\clothing\spacesuits\rig\suits\merc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\station.dm" +#include "code\modules\clothing\suits\alien.dm" +#include "code\modules\clothing\suits\armor.dm" +#include "code\modules\clothing\suits\bio.dm" +#include "code\modules\clothing\suits\hood.dm" +#include "code\modules\clothing\suits\jobs.dm" +#include "code\modules\clothing\suits\labcoat.dm" +#include "code\modules\clothing\suits\miscellaneous.dm" +#include "code\modules\clothing\suits\storage.dm" +#include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\under\chameleon.dm" +#include "code\modules\clothing\under\color.dm" +#include "code\modules\clothing\under\miscellaneous.dm" +#include "code\modules\clothing\under\oldstation_uni.dm" +#include "code\modules\clothing\under\pants.dm" +#include "code\modules\clothing\under\shorts.dm" +#include "code\modules\clothing\under\syndicate.dm" +#include "code\modules\clothing\under\accessories\accessory.dm" +#include "code\modules\clothing\under\accessories\armband.dm" +#include "code\modules\clothing\under\accessories\holster.dm" +#include "code\modules\clothing\under\accessories\storage.dm" +#include "code\modules\clothing\under\jobs\civilian.dm" +#include "code\modules\clothing\under\jobs\engineering.dm" +#include "code\modules\clothing\under\jobs\medsci.dm" +#include "code\modules\clothing\under\jobs\security.dm" +#include "code\modules\countdown\countdown.dm" +#include "code\modules\crafting\craft.dm" +#include "code\modules\crafting\guncrafting.dm" +#include "code\modules\crafting\recipes.dm" +#include "code\modules\customitems\item_defines.dm" +#include "code\modules\customitems\item_spawning.dm" +#include "code\modules\detective_work\detective_work.dm" +#include "code\modules\detective_work\evidence.dm" +#include "code\modules\detective_work\footprints_and_rag.dm" +#include "code\modules\detective_work\scanner.dm" +#include "code\modules\discord\accountlink.dm" +#include "code\modules\discord\notify.dm" +#include "code\modules\economy\Accounts.dm" +#include "code\modules\economy\Accounts_DB.dm" +#include "code\modules\economy\ATM.dm" +#include "code\modules\economy\Economy.dm" +#include "code\modules\economy\Economy_Events.dm" +#include "code\modules\economy\Economy_Events_Mundane.dm" +#include "code\modules\economy\Economy_TradeDestinations.dm" +#include "code\modules\economy\EFTPOS.dm" +#include "code\modules\economy\Job_Departments.dm" +#include "code\modules\economy\POS.dm" +#include "code\modules\economy\utils.dm" +#include "code\modules\error_handler\error_handler.dm" +#include "code\modules\error_handler\error_viewer.dm" +#include "code\modules\events\abductor.dm" +#include "code\modules\events\alien_infestation.dm" +#include "code\modules\events\anomaly.dm" +#include "code\modules\events\anomaly_bluespace.dm" +#include "code\modules\events\anomaly_flux.dm" +#include "code\modules\events\anomaly_grav.dm" +#include "code\modules\events\anomaly_pyro.dm" +#include "code\modules\events\anomaly_vortex.dm" +#include "code\modules\events\aurora_caelus.dm" +#include "code\modules\events\blob.dm" +#include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\carp_migration.dm" +#include "code\modules\events\communications_blackout.dm" +#include "code\modules\events\disease_outbreak.dm" +#include "code\modules\events\dust.dm" +#include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\event.dm" +#include "code\modules\events\event_container.dm" +#include "code\modules\events\event_manager.dm" +#include "code\modules\events\false_alarm.dm" +#include "code\modules\events\floorcluwne.dm" +#include "code\modules\events\grid_check.dm" +#include "code\modules\events\immovable_rod.dm" +#include "code\modules\events\infestation.dm" +#include "code\modules\events\ion_storm.dm" +#include "code\modules\events\koi_mirgration.dm" +#include "code\modules\events\mass_hallucination.dm" +#include "code\modules\events\meaty_gore.dm" +#include "code\modules\events\meaty_ops.dm" +#include "code\modules\events\meaty_ores.dm" +#include "code\modules\events\meteors.dm" +#include "code\modules\events\money_hacker.dm" +#include "code\modules\events\money_lotto.dm" +#include "code\modules\events\money_spam.dm" +#include "code\modules\events\prison_break.dm" +#include "code\modules\events\radiation_storm.dm" +#include "code\modules\events\rogue_drones.dm" +#include "code\modules\events\sentience.dm" +#include "code\modules\events\slaughterevent.dm" +#include "code\modules\events\spacevine.dm" +#include "code\modules\events\spider_infestation.dm" +#include "code\modules\events\spider_terror.dm" +#include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\tear.dm" +#include "code\modules\events\tear_honk.dm" +#include "code\modules\events\traders.dm" +#include "code\modules\events\undead.dm" +#include "code\modules\events\vent_clog.dm" +#include "code\modules\events\wallrot.dm" +#include "code\modules\events\wormholes.dm" +#include "code\modules\examine\examine.dm" +#include "code\modules\examine\descriptions\atmospherics.dm" +#include "code\modules\examine\descriptions\engineering.dm" +#include "code\modules\examine\descriptions\medical.dm" +#include "code\modules\examine\descriptions\mobs.dm" +#include "code\modules\examine\descriptions\stacks.dm" +#include "code\modules\examine\descriptions\structures.dm" +#include "code\modules\examine\descriptions\turfs.dm" +#include "code\modules\examine\descriptions\weapons.dm" +#include "code\modules\ext_scripts\irc.dm" +#include "code\modules\ext_scripts\python.dm" +#include "code\modules\fancytitle\fancytitle.dm" +#include "code\modules\fish\fish_eggs.dm" +#include "code\modules\fish\fish_items.dm" +#include "code\modules\fish\fish_types.dm" +#include "code\modules\fish\fishtank.dm" +#include "code\modules\flufftext\Dreaming.dm" +#include "code\modules\flufftext\Hallucination.dm" +#include "code\modules\flufftext\TextFilters.dm" +#include "code\modules\food_and_drinks\food.dm" +#include "code\modules\food_and_drinks\drinks\drinks.dm" +#include "code\modules\food_and_drinks\drinks\bottler\bottler.dm" +#include "code\modules\food_and_drinks\drinks\bottler\bottler_recipes.dm" +#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" +#include "code\modules\food_and_drinks\drinks\drinks\cans.dm" +#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" +#include "code\modules\food_and_drinks\drinks\drinks\mugs.dm" +#include "code\modules\food_and_drinks\drinks\drinks\shotglass.dm" +#include "code\modules\food_and_drinks\food\condiment.dm" +#include "code\modules\food_and_drinks\food\customizables.dm" +#include "code\modules\food_and_drinks\food\snacks.dm" +#include "code\modules\food_and_drinks\food\foods\baked_goods.dm" +#include "code\modules\food_and_drinks\food\foods\bread.dm" +#include "code\modules\food_and_drinks\food\foods\candy.dm" +#include "code\modules\food_and_drinks\food\foods\desserts.dm" +#include "code\modules\food_and_drinks\food\foods\ethnic.dm" +#include "code\modules\food_and_drinks\food\foods\ingredients.dm" +#include "code\modules\food_and_drinks\food\foods\junkfood.dm" +#include "code\modules\food_and_drinks\food\foods\meat.dm" +#include "code\modules\food_and_drinks\food\foods\misc.dm" +#include "code\modules\food_and_drinks\food\foods\pasta.dm" +#include "code\modules\food_and_drinks\food\foods\pizza.dm" +#include "code\modules\food_and_drinks\food\foods\sandwiches.dm" +#include "code\modules\food_and_drinks\food\foods\seafood.dm" +#include "code\modules\food_and_drinks\food\foods\side_dishes.dm" +#include "code\modules\food_and_drinks\food\foods\soups.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\candy_maker.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\cereal_maker.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\cooker.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\food_grill.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\grill_new.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat_2.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\juicer.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" +#include "code\modules\food_and_drinks\recipes\recipes_candy.dm" +#include "code\modules\food_and_drinks\recipes\recipes_grill.dm" +#include "code\modules\food_and_drinks\recipes\recipes_microwave.dm" +#include "code\modules\food_and_drinks\recipes\recipes_oven.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_table.dm" +#include "code\modules\games\52card.dm" +#include "code\modules\games\cards.dm" +#include "code\modules\games\tarot.dm" +#include "code\modules\holiday\christmas.dm" +#include "code\modules\holiday\holiday.dm" +#include "code\modules\hydroponics\biogenerator.dm" +#include "code\modules\hydroponics\fermenting_barrel.dm" +#include "code\modules\hydroponics\gene_modder.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\growninedible.dm" +#include "code\modules\hydroponics\hydroitemdefines.dm" +#include "code\modules\hydroponics\hydroponics.dm" +#include "code\modules\hydroponics\plant_genes.dm" +#include "code\modules\hydroponics\sample.dm" +#include "code\modules\hydroponics\seed_extractor.dm" +#include "code\modules\hydroponics\seeds.dm" +#include "code\modules\hydroponics\beekeeping\beebox.dm" +#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" +#include "code\modules\hydroponics\beekeeping\honey_frame.dm" +#include "code\modules\hydroponics\beekeeping\honeycomb.dm" +#include "code\modules\hydroponics\grown\ambrosia.dm" +#include "code\modules\hydroponics\grown\apple.dm" +#include "code\modules\hydroponics\grown\banana.dm" +#include "code\modules\hydroponics\grown\beans.dm" +#include "code\modules\hydroponics\grown\berries.dm" +#include "code\modules\hydroponics\grown\cannabis.dm" +#include "code\modules\hydroponics\grown\cereals.dm" +#include "code\modules\hydroponics\grown\chili.dm" +#include "code\modules\hydroponics\grown\citrus.dm" +#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" +#include "code\modules\hydroponics\grown\corn.dm" +#include "code\modules\hydroponics\grown\eggplant.dm" +#include "code\modules\hydroponics\grown\flowers.dm" +#include "code\modules\hydroponics\grown\grass_carpet.dm" +#include "code\modules\hydroponics\grown\herbals.dm" +#include "code\modules\hydroponics\grown\kudzu.dm" +#include "code\modules\hydroponics\grown\melon.dm" +#include "code\modules\hydroponics\grown\misc.dm" +#include "code\modules\hydroponics\grown\mushrooms.dm" +#include "code\modules\hydroponics\grown\nettle.dm" +#include "code\modules\hydroponics\grown\nymph.dm" +#include "code\modules\hydroponics\grown\onion.dm" +#include "code\modules\hydroponics\grown\peanut.dm" +#include "code\modules\hydroponics\grown\pineapple.dm" +#include "code\modules\hydroponics\grown\potato.dm" +#include "code\modules\hydroponics\grown\pumpkin.dm" +#include "code\modules\hydroponics\grown\random.dm" +#include "code\modules\hydroponics\grown\replicapod.dm" +#include "code\modules\hydroponics\grown\root.dm" +#include "code\modules\hydroponics\grown\tea_coffee.dm" +#include "code\modules\hydroponics\grown\tobacco.dm" +#include "code\modules\hydroponics\grown\tomato.dm" +#include "code\modules\hydroponics\grown\towercap.dm" +#include "code\modules\karma\karma.dm" +#include "code\modules\library\admin.dm" +#include "code\modules\library\codex_gigas.dm" +#include "code\modules\library\lib_items.dm" +#include "code\modules\library\lib_machines.dm" +#include "code\modules\library\lib_readme.dm" +#include "code\modules\library\computers\base.dm" +#include "code\modules\library\computers\checkout.dm" +#include "code\modules\library\computers\public.dm" +#include "code\modules\lighting\__lighting_docs.dm" +#include "code\modules\lighting\lighting_area.dm" +#include "code\modules\lighting\lighting_atom.dm" +#include "code\modules\lighting\lighting_corner.dm" +#include "code\modules\lighting\lighting_overlay.dm" +#include "code\modules\lighting\lighting_setup.dm" +#include "code\modules\lighting\lighting_source.dm" +#include "code\modules\lighting\lighting_turf.dm" +#include "code\modules\lighting\~lighting_undefs.dm" +#include "code\modules\logic\converter.dm" +#include "code\modules\logic\dual_input.dm" +#include "code\modules\logic\logic_base.dm" +#include "code\modules\logic\mono_input.dm" +#include "code\modules\map_fluff\cyberiad.dm" +#include "code\modules\map_fluff\delta.dm" +#include "code\modules\map_fluff\maps.dm" +#include "code\modules\map_fluff\metastation.dm" +#include "code\modules\martial_arts\adminfu.dm" +#include "code\modules\martial_arts\brawling.dm" +#include "code\modules\martial_arts\cqc.dm" +#include "code\modules\martial_arts\krav_maga.dm" +#include "code\modules\martial_arts\martial.dm" +#include "code\modules\martial_arts\mimejutsu.dm" +#include "code\modules\martial_arts\plasma_fist.dm" +#include "code\modules\martial_arts\sleeping_carp.dm" +#include "code\modules\martial_arts\wrestleing.dm" +#include "code\modules\mining\abandonedcrates.dm" +#include "code\modules\mining\coins.dm" +#include "code\modules\mining\equipment_locker.dm" +#include "code\modules\mining\machine_processing.dm" +#include "code\modules\mining\machine_stacking.dm" +#include "code\modules\mining\machine_unloading.dm" +#include "code\modules\mining\mine_areas.dm" +#include "code\modules\mining\mine_items.dm" +#include "code\modules\mining\mine_turfs.dm" +#include "code\modules\mining\minebot.dm" +#include "code\modules\mining\mint.dm" +#include "code\modules\mining\money_bag.dm" +#include "code\modules\mining\ore.dm" +#include "code\modules\mining\satchel_ore_boxdm.dm" +#include "code\modules\mining\shelters.dm" +#include "code\modules\mining\laborcamp\laborminerals.dm" +#include "code\modules\mining\laborcamp\laborshuttle.dm" +#include "code\modules\mining\laborcamp\laborstacker.dm" +#include "code\modules\mining\lavaland\ash_flora.dm" +#include "code\modules\mining\lavaland\necropolis_chests.dm" +#include "code\modules\mining\lavaland\loot\ashdragon_loot.dm" +#include "code\modules\mining\lavaland\loot\bubblegum_loot.dm" +#include "code\modules\mining\lavaland\loot\colossus_loot.dm" +#include "code\modules\mining\lavaland\loot\hierophant_loot.dm" +#include "code\modules\mining\lavaland\loot\legion_loot.dm" +#include "code\modules\mining\lavaland\loot\tendril_loot.dm" +#include "code\modules\mob\abilities.dm" +#include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" +#include "code\modules\mob\hear_say.dm" +#include "code\modules\mob\holder.dm" +#include "code\modules\mob\inventory.dm" +#include "code\modules\mob\language.dm" +#include "code\modules\mob\login.dm" +#include "code\modules\mob\logout.dm" +#include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" +#include "code\modules\mob\mob_grab.dm" +#include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_transformation_simple.dm" +#include "code\modules\mob\say.dm" +#include "code\modules\mob\status_procs.dm" +#include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" +#include "code\modules\mob\update_icons.dm" +#include "code\modules\mob\update_status.dm" +#include "code\modules\mob\camera\camera.dm" +#include "code\modules\mob\dead\dead.dm" +#include "code\modules\mob\dead\death.dm" +#include "code\modules\mob\dead\observer\login.dm" +#include "code\modules\mob\dead\observer\logout.dm" +#include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\say.dm" +#include "code\modules\mob\dead\observer\spells.dm" +#include "code\modules\mob\living\autohiss.dm" +#include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\death.dm" +#include "code\modules\mob\living\default_language.dm" +#include "code\modules\mob\living\life.dm" +#include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_defense.dm" +#include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\login.dm" +#include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\stat_states.dm" +#include "code\modules\mob\living\status_procs.dm" +#include "code\modules\mob\living\update_status.dm" +#include "code\modules\mob\living\carbon\_defines.dm" +#include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_defense.dm" +#include "code\modules\mob\living\carbon\carbon_defines.dm" +#include "code\modules\mob\living\carbon\death.dm" +#include "code\modules\mob\living\carbon\give.dm" +#include "code\modules\mob\living\carbon\life.dm" +#include "code\modules\mob\living\carbon\superheroes.dm" +#include "code\modules\mob\living\carbon\update_icons.dm" +#include "code\modules\mob\living\carbon\update_status.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" +#include "code\modules\mob\living\carbon\alien\alien_defense.dm" +#include "code\modules\mob\living\carbon\alien\death.dm" +#include "code\modules\mob\living\carbon\alien\life.dm" +#include "code\modules\mob\living\carbon\alien\login.dm" +#include "code\modules\mob\living\carbon\alien\logout.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" +#include "code\modules\mob\living\carbon\alien\larva\emote.dm" +#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" +#include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\powers.dm" +#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" +#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" +#include "code\modules\mob\living\carbon\brain\brain.dm" +#include "code\modules\mob\living\carbon\brain\brain_item.dm" +#include "code\modules\mob\living\carbon\brain\death.dm" +#include "code\modules\mob\living\carbon\brain\emote.dm" +#include "code\modules\mob\living\carbon\brain\life.dm" +#include "code\modules\mob\living\carbon\brain\login.dm" +#include "code\modules\mob\living\carbon\brain\MMI.dm" +#include "code\modules\mob\living\carbon\brain\MMI_radio.dm" +#include "code\modules\mob\living\carbon\brain\robotic_brain.dm" +#include "code\modules\mob\living\carbon\brain\say.dm" +#include "code\modules\mob\living\carbon\brain\update_status.dm" +#include "code\modules\mob\living\carbon\human\appearance.dm" +#include "code\modules\mob\living\carbon\human\body_accessories.dm" +#include "code\modules\mob\living\carbon\human\death.dm" +#include "code\modules\mob\living\carbon\human\emote.dm" +#include "code\modules\mob\living\carbon\human\examine.dm" +#include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_damage.dm" +#include "code\modules\mob\living\carbon\human\human_defense.dm" +#include "code\modules\mob\living\carbon\human\human_defines.dm" +#include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\human_organs.dm" +#include "code\modules\mob\living\carbon\human\inventory.dm" +#include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\login.dm" +#include "code\modules\mob\living\carbon\human\npcs.dm" +#include "code\modules\mob\living\carbon\human\say.dm" +#include "code\modules\mob\living\carbon\human\shock.dm" +#include "code\modules\mob\living\carbon\human\status_procs.dm" +#include "code\modules\mob\living\carbon\human\update_icons.dm" +#include "code\modules\mob\living\carbon\human\update_stat.dm" +#include "code\modules\mob\living\carbon\human\interactive\functions.dm" +#include "code\modules\mob\living\carbon\human\interactive\interactive.dm" +#include "code\modules\mob\living\carbon\human\interactive\prefabs.dm" +#include "code\modules\mob\living\carbon\human\species\_species.dm" +#include "code\modules\mob\living\carbon\human\species\abductor.dm" +#include "code\modules\mob\living\carbon\human\species\diona.dm" +#include "code\modules\mob\living\carbon\human\species\drask.dm" +#include "code\modules\mob\living\carbon\human\species\golem.dm" +#include "code\modules\mob\living\carbon\human\species\grey.dm" +#include "code\modules\mob\living\carbon\human\species\human.dm" +#include "code\modules\mob\living\carbon\human\species\kidan.dm" +#include "code\modules\mob\living\carbon\human\species\machine.dm" +#include "code\modules\mob\living\carbon\human\species\monkey.dm" +#include "code\modules\mob\living\carbon\human\species\nucleation.dm" +#include "code\modules\mob\living\carbon\human\species\plasmaman.dm" +#include "code\modules\mob\living\carbon\human\species\shadow.dm" +#include "code\modules\mob\living\carbon\human\species\shadowling.dm" +#include "code\modules\mob\living\carbon\human\species\skeleton.dm" +#include "code\modules\mob\living\carbon\human\species\skrell.dm" +#include "code\modules\mob\living\carbon\human\species\slime.dm" +#include "code\modules\mob\living\carbon\human\species\tajaran.dm" +#include "code\modules\mob\living\carbon\human\species\unathi.dm" +#include "code\modules\mob\living\carbon\human\species\vox.dm" +#include "code\modules\mob\living\carbon\human\species\vulpkanin.dm" +#include "code\modules\mob\living\carbon\human\species\wryn.dm" +#include "code\modules\mob\living\carbon\slime\death.dm" +#include "code\modules\mob\living\carbon\slime\emote.dm" +#include "code\modules\mob\living\carbon\slime\examine.dm" +#include "code\modules\mob\living\carbon\slime\life.dm" +#include "code\modules\mob\living\carbon\slime\powers.dm" +#include "code\modules\mob\living\carbon\slime\say.dm" +#include "code\modules\mob\living\carbon\slime\slime.dm" +#include "code\modules\mob\living\carbon\slime\subtypes.dm" +#include "code\modules\mob\living\carbon\slime\update_icons.dm" +#include "code\modules\mob\living\silicon\death.dm" +#include "code\modules\mob\living\silicon\emote.dm" +#include "code\modules\mob\living\silicon\laws.dm" +#include "code\modules\mob\living\silicon\login.dm" +#include "code\modules\mob\living\silicon\say.dm" +#include "code\modules\mob\living\silicon\silicon.dm" +#include "code\modules\mob\living\silicon\silicon_defense.dm" +#include "code\modules\mob\living\silicon\subsystems.dm" +#include "code\modules\mob\living\silicon\ai\ai.dm" +#include "code\modules\mob\living\silicon\ai\ai_defense.dm" +#include "code\modules\mob\living\silicon\ai\death.dm" +#include "code\modules\mob\living\silicon\ai\examine.dm" +#include "code\modules\mob\living\silicon\ai\latejoin.dm" +#include "code\modules\mob\living\silicon\ai\laws.dm" +#include "code\modules\mob\living\silicon\ai\life.dm" +#include "code\modules\mob\living\silicon\ai\login.dm" +#include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" +#include "code\modules\mob\living\silicon\ai\say.dm" +#include "code\modules\mob\living\silicon\ai\update_status.dm" +#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" +#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" +#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" +#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" +#include "code\modules\mob\living\silicon\decoy\death.dm" +#include "code\modules\mob\living\silicon\decoy\decoy.dm" +#include "code\modules\mob\living\silicon\decoy\life.dm" +#include "code\modules\mob\living\silicon\pai\death.dm" +#include "code\modules\mob\living\silicon\pai\emote.dm" +#include "code\modules\mob\living\silicon\pai\life.dm" +#include "code\modules\mob\living\silicon\pai\pai.dm" +#include "code\modules\mob\living\silicon\pai\personality.dm" +#include "code\modules\mob\living\silicon\pai\recruit.dm" +#include "code\modules\mob\living\silicon\pai\say.dm" +#include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\pai\software_modules.dm" +#include "code\modules\mob\living\silicon\pai\update_status.dm" +#include "code\modules\mob\living\silicon\robot\component.dm" +#include "code\modules\mob\living\silicon\robot\death.dm" +#include "code\modules\mob\living\silicon\robot\emote.dm" +#include "code\modules\mob\living\silicon\robot\examine.dm" +#include "code\modules\mob\living\silicon\robot\inventory.dm" +#include "code\modules\mob\living\silicon\robot\laws.dm" +#include "code\modules\mob\living\silicon\robot\life.dm" +#include "code\modules\mob\living\silicon\robot\login.dm" +#include "code\modules\mob\living\silicon\robot\photos.dm" +#include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_damage.dm" +#include "code\modules\mob\living\silicon\robot\robot_defense.dm" +#include "code\modules\mob\living\silicon\robot\robot_items.dm" +#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules.dm" +#include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\update_status.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" +#include "code\modules\mob\living\silicon\robot\drone\update_status.dm" +#include "code\modules\mob\living\simple_animal\animal_defense.dm" +#include "code\modules\mob\living\simple_animal\constructs.dm" +#include "code\modules\mob\living\simple_animal\corpse.dm" +#include "code\modules\mob\living\simple_animal\parrot.dm" +#include "code\modules\mob\living\simple_animal\pony.dm" +#include "code\modules\mob\living\simple_animal\posessed_object.dm" +#include "code\modules\mob\living\simple_animal\powers.dm" +#include "code\modules\mob\living\simple_animal\shade.dm" +#include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\spawner.dm" +#include "code\modules\mob\living\simple_animal\tribbles.dm" +#include "code\modules\mob\living\simple_animal\bot\bot.dm" +#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" +#include "code\modules\mob\living\simple_animal\bot\construction.dm" +#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" +#include "code\modules\mob\living\simple_animal\bot\emote.dm" +#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" +#include "code\modules\mob\living\simple_animal\bot\griefsky.dm" +#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" +#include "code\modules\mob\living\simple_animal\bot\medbot.dm" +#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" +#include "code\modules\mob\living\simple_animal\bot\secbot.dm" +#include "code\modules\mob\living\simple_animal\bot\syndicate.dm" +#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" +#include "code\modules\mob\living\simple_animal\friendly\cat.dm" +#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" +#include "code\modules\mob\living\simple_animal\friendly\corgi.dm" +#include "code\modules\mob\living\simple_animal\friendly\corgi_powers.dm" +#include "code\modules\mob\living\simple_animal\friendly\crab.dm" +#include "code\modules\mob\living\simple_animal\friendly\deer.dm" +#include "code\modules\mob\living\simple_animal\friendly\diona.dm" +#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" +#include "code\modules\mob\living\simple_animal\friendly\fox.dm" +#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" +#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" +#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" +#include "code\modules\mob\living\simple_animal\friendly\pet.dm" +#include "code\modules\mob\living\simple_animal\friendly\pug.dm" +#include "code\modules\mob\living\simple_animal\friendly\slime.dm" +#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" +#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm" +#include "code\modules\mob\living\simple_animal\hostile\alien.dm" +#include "code\modules\mob\living\simple_animal\hostile\bat.dm" +#include "code\modules\mob\living\simple_animal\hostile\bear.dm" +#include "code\modules\mob\living\simple_animal\hostile\bees.dm" +#include "code\modules\mob\living\simple_animal\hostile\carp.dm" +#include "code\modules\mob\living\simple_animal\hostile\creature.dm" +#include "code\modules\mob\living\simple_animal\hostile\deathsquid.dm" +#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" +#include "code\modules\mob\living\simple_animal\hostile\feral_cat.dm" +#include "code\modules\mob\living\simple_animal\hostile\floorcluwne.dm" +#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" +#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" +#include "code\modules\mob\living\simple_animal\hostile\hellhound.dm" +#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" +#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" +#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle_animals.dm" +#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" +#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" +#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" +#include "code\modules\mob\living\simple_animal\hostile\russian.dm" +#include "code\modules\mob\living\simple_animal\hostile\spaceworms.dm" +#include "code\modules\mob\living\simple_animal\hostile\statue.dm" +#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" +#include "code\modules\mob\living\simple_animal\hostile\tree.dm" +#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" +#include "code\modules\mob\living\simple_animal\hostile\winter_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\goldgrub.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\fish.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\kangaroo.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\pet.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\__defines.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\actions.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\black.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\brown.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\chem.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\empress.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\ghost.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\gray.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\green.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\hive.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\mother.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\prince.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\princess.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\purple.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\queen.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\red.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\reproduction.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_ai.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_spiders.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\white.dm" +#include "code\modules\mob\new_player\login.dm" +#include "code\modules\mob\new_player\logout.dm" +#include "code\modules\mob\new_player\new_player.dm" +#include "code\modules\mob\new_player\poll.dm" +#include "code\modules\mob\new_player\preferences_setup.dm" +#include "code\modules\mob\new_player\sprite_accessories\sprite_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\diona\diona_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\drask\drask_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\grey\grey_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\human\human_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\human\human_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\human\human_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_face.dm" +#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_optics.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\nucleation\nucleation_face.dm" +#include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_face.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_alt_heads.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_tail_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm" +#include "code\modules\modular_computers\laptop_vendor.dm" +#include "code\modules\modular_computers\computers\item\computer.dm" +#include "code\modules\modular_computers\computers\item\computer_components.dm" +#include "code\modules\modular_computers\computers\item\computer_damage.dm" +#include "code\modules\modular_computers\computers\item\computer_power.dm" +#include "code\modules\modular_computers\computers\item\computer_ui.dm" +#include "code\modules\modular_computers\computers\item\laptop.dm" +#include "code\modules\modular_computers\computers\item\laptop_presets.dm" +#include "code\modules\modular_computers\computers\item\processor.dm" +#include "code\modules\modular_computers\computers\item\tablet.dm" +#include "code\modules\modular_computers\computers\item\tablet_presets.dm" +#include "code\modules\modular_computers\computers\machinery\console_presets.dm" +#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" +#include "code\modules\modular_computers\computers\machinery\modular_console.dm" +#include "code\modules\modular_computers\file_system\computer_file.dm" +#include "code\modules\modular_computers\file_system\data.dm" +#include "code\modules\modular_computers\file_system\program.dm" +#include "code\modules\modular_computers\file_system\program_events.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\file_system\programs\command\card.dm" +#include "code\modules\modular_computers\file_system\programs\command\comms.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\alarm.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\sm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm" +#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" +#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" +#include "code\modules\modular_computers\file_system\programs\research\airestorer.dm" +#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm" +#include "code\modules\modular_computers\hardware\_hardware.dm" +#include "code\modules\modular_computers\hardware\ai_slot.dm" +#include "code\modules\modular_computers\hardware\battery_module.dm" +#include "code\modules\modular_computers\hardware\card_slot.dm" +#include "code\modules\modular_computers\hardware\CPU.dm" +#include "code\modules\modular_computers\hardware\hard_drive.dm" +#include "code\modules\modular_computers\hardware\network_card.dm" +#include "code\modules\modular_computers\hardware\portable_disk.dm" +#include "code\modules\modular_computers\hardware\printer.dm" +#include "code\modules\modular_computers\hardware\recharger.dm" +#include "code\modules\modular_computers\NTNet\NTNet.dm" +#include "code\modules\modular_computers\NTNet\NTNet_relay.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\nano\nanoexternal.dm" +#include "code\modules\nano\nanomapgen.dm" +#include "code\modules\nano\nanoui.dm" +#include "code\modules\nano\subsystem.dm" +#include "code\modules\nano\interaction\admin.dm" +#include "code\modules\nano\interaction\base.dm" +#include "code\modules\nano\interaction\conscious.dm" +#include "code\modules\nano\interaction\contained.dm" +#include "code\modules\nano\interaction\default.dm" +#include "code\modules\nano\interaction\ghost.dm" +#include "code\modules\nano\interaction\inventory.dm" +#include "code\modules\nano\interaction\inventory_deep.dm" +#include "code\modules\nano\interaction\not_incapacitated.dm" +#include "code\modules\nano\interaction\physical.dm" +#include "code\modules\nano\interaction\self.dm" +#include "code\modules\nano\interaction\zlevel.dm" +#include "code\modules\nano\modules\alarm_monitor.dm" +#include "code\modules\nano\modules\atmos_control.dm" +#include "code\modules\nano\modules\crew_monitor.dm" +#include "code\modules\nano\modules\ert_manager.dm" +#include "code\modules\nano\modules\human_appearance.dm" +#include "code\modules\nano\modules\law_manager.dm" +#include "code\modules\nano\modules\nano_module.dm" +#include "code\modules\nano\modules\power_monitor.dm" +#include "code\modules\ninja\energy_katana.dm" +#include "code\modules\ninja\suit\gloves.dm" +#include "code\modules\ninja\suit\head.dm" +#include "code\modules\ninja\suit\mask.dm" +#include "code\modules\ninja\suit\shoes.dm" +#include "code\modules\ninja\suit\suit.dm" +#include "code\modules\ninja\suit\suit_initialisation.dm" +#include "code\modules\paperwork\carbonpaper.dm" +#include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\contract.dm" +#include "code\modules\paperwork\fax.dm" +#include "code\modules\paperwork\faxmachine.dm" +#include "code\modules\paperwork\filingcabinet.dm" +#include "code\modules\paperwork\folders.dm" +#include "code\modules\paperwork\frames.dm" +#include "code\modules\paperwork\handlabeler.dm" +#include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_bundle.dm" +#include "code\modules\paperwork\paperbin.dm" +#include "code\modules\paperwork\paperplane.dm" +#include "code\modules\paperwork\pen.dm" +#include "code\modules\paperwork\photocopier.dm" +#include "code\modules\paperwork\photography.dm" +#include "code\modules\paperwork\silicon_photography.dm" +#include "code\modules\paperwork\stamps.dm" +#include "code\modules\pda\ai.dm" +#include "code\modules\pda\app.dm" +#include "code\modules\pda\cart.dm" +#include "code\modules\pda\cart_apps.dm" +#include "code\modules\pda\core_apps.dm" +#include "code\modules\pda\messenger.dm" +#include "code\modules\pda\messenger_plugins.dm" +#include "code\modules\pda\mob_hunt_game_app.dm" +#include "code\modules\pda\PDA.dm" +#include "code\modules\pda\pdas.dm" +#include "code\modules\pda\radio.dm" +#include "code\modules\pda\utilities.dm" +#include "code\modules\persistence\persistence.dm" +#include "code\modules\power\apc.dm" +#include "code\modules\power\cable.dm" +#include "code\modules\power\cable_heavyduty.dm" +#include "code\modules\power\cable_logic.dm" +#include "code\modules\power\cell.dm" +#include "code\modules\power\engine.dm" +#include "code\modules\power\generator.dm" +#include "code\modules\power\gravitygenerator.dm" +#include "code\modules\power\lighting.dm" +#include "code\modules\power\port_gen.dm" +#include "code\modules\power\power.dm" +#include "code\modules\power\powernet.dm" +#include "code\modules\power\smes.dm" +#include "code\modules\power\solar.dm" +#include "code\modules\power\switch.dm" +#include "code\modules\power\terminal.dm" +#include "code\modules\power\tracker.dm" +#include "code\modules\power\treadmill.dm" +#include "code\modules\power\turbine.dm" +#include "code\modules\power\singularity\collector.dm" +#include "code\modules\power\singularity\containment_field.dm" +#include "code\modules\power\singularity\emitter.dm" +#include "code\modules\power\singularity\field_generator.dm" +#include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" +#include "code\modules\power\singularity\narsie.dm" +#include "code\modules\power\singularity\singularity.dm" +#include "code\modules\power\singularity\particle_accelerator\particle.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_power.dm" +#include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" +#include "code\modules\procedural_mapping\mapGenerator.dm" +#include "code\modules\procedural_mapping\mapGeneratorModule.dm" +#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" +#include "code\modules\procedural_mapping\mapGenerators\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" +#include "code\modules\projectiles\ammunition.dm" +#include "code\modules\projectiles\firing.dm" +#include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\gun_attachments.dm" +#include "code\modules\projectiles\projectile.dm" +#include "code\modules\projectiles\ammunition\ammo_casings.dm" +#include "code\modules\projectiles\ammunition\boxes.dm" +#include "code\modules\projectiles\ammunition\energy.dm" +#include "code\modules\projectiles\ammunition\magazines.dm" +#include "code\modules\projectiles\ammunition\special.dm" +#include "code\modules\projectiles\guns\alien.dm" +#include "code\modules\projectiles\guns\dartgun.dm" +#include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\grenade_launcher.dm" +#include "code\modules\projectiles\guns\magic.dm" +#include "code\modules\projectiles\guns\medbeam.dm" +#include "code\modules\projectiles\guns\mounted.dm" +#include "code\modules\projectiles\guns\projectile.dm" +#include "code\modules\projectiles\guns\rocket.dm" +#include "code\modules\projectiles\guns\syringe_gun.dm" +#include "code\modules\projectiles\guns\throw.dm" +#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" +#include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\nuclear.dm" +#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\special.dm" +#include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\energy\telegun.dm" +#include "code\modules\projectiles\guns\magic\staff.dm" +#include "code\modules\projectiles\guns\magic\wand.dm" +#include "code\modules\projectiles\guns\misc\blastcannon.dm" +#include "code\modules\projectiles\guns\projectile\automatic.dm" +#include "code\modules\projectiles\guns\projectile\bow.dm" +#include "code\modules\projectiles\guns\projectile\launchers.dm" +#include "code\modules\projectiles\guns\projectile\pistol.dm" +#include "code\modules\projectiles\guns\projectile\revolver.dm" +#include "code\modules\projectiles\guns\projectile\saw.dm" +#include "code\modules\projectiles\guns\projectile\shotgun.dm" +#include "code\modules\projectiles\guns\projectile\sniper.dm" +#include "code\modules\projectiles\guns\projectile\toy.dm" +#include "code\modules\projectiles\guns\throw\crossbow.dm" +#include "code\modules\projectiles\guns\throw\pielauncher.dm" +#include "code\modules\projectiles\projectile\beams.dm" +#include "code\modules\projectiles\projectile\bullets.dm" +#include "code\modules\projectiles\projectile\energy.dm" +#include "code\modules\projectiles\projectile\force.dm" +#include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\reusable.dm" +#include "code\modules\projectiles\projectile\special.dm" +#include "code\modules\reagents\chem_splash.dm" +#include "code\modules\reagents\reagent_containers.dm" +#include "code\modules\reagents\reagent_dispenser.dm" +#include "code\modules\reagents\chemistry\colors.dm" +#include "code\modules\reagents\chemistry\holder.dm" +#include "code\modules\reagents\chemistry\readme.dm" +#include "code\modules\reagents\chemistry\reagents.dm" +#include "code\modules\reagents\chemistry\recipes.dm" +#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" +#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" +#include "code\modules\reagents\chemistry\machinery\chem_master.dm" +#include "code\modules\reagents\chemistry\machinery\pandemic.dm" +#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" +#include "code\modules\reagents\chemistry\reagents\admin.dm" +#include "code\modules\reagents\chemistry\reagents\alcohol.dm" +#include "code\modules\reagents\chemistry\reagents\blob.dm" +#include "code\modules\reagents\chemistry\reagents\disease.dm" +#include "code\modules\reagents\chemistry\reagents\drink_base.dm" +#include "code\modules\reagents\chemistry\reagents\drink_cold.dm" +#include "code\modules\reagents\chemistry\reagents\drinks.dm" +#include "code\modules\reagents\chemistry\reagents\drugs.dm" +#include "code\modules\reagents\chemistry\reagents\food.dm" +#include "code\modules\reagents\chemistry\reagents\medicine.dm" +#include "code\modules\reagents\chemistry\reagents\misc.dm" +#include "code\modules\reagents\chemistry\reagents\paint.dm" +#include "code\modules\reagents\chemistry\reagents\paradise_pop.dm" +#include "code\modules\reagents\chemistry\reagents\pyrotechnic.dm" +#include "code\modules\reagents\chemistry\reagents\toxins.dm" +#include "code\modules\reagents\chemistry\reagents\water.dm" +#include "code\modules\reagents\chemistry\recipes\drinks.dm" +#include "code\modules\reagents\chemistry\recipes\drugs.dm" +#include "code\modules\reagents\chemistry\recipes\food.dm" +#include "code\modules\reagents\chemistry\recipes\medicine.dm" +#include "code\modules\reagents\chemistry\recipes\others.dm" +#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" +#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" +#include "code\modules\reagents\chemistry\recipes\toxins.dm" +#include "code\modules\reagents\reagent_containers\borghydro.dm" +#include "code\modules\reagents\reagent_containers\bottle.dm" +#include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\glass_containers.dm" +#include "code\modules\reagents\reagent_containers\hypospray.dm" +#include "code\modules\reagents\reagent_containers\iv_bag.dm" +#include "code\modules\reagents\reagent_containers\patch.dm" +#include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\recycling\belt-placer.dm" +#include "code\modules\recycling\conveyor2.dm" +#include "code\modules\recycling\disposal-construction.dm" +#include "code\modules\recycling\disposal.dm" +#include "code\modules\recycling\sortingmachinery.dm" +#include "code\modules\research\circuitprinter.dm" +#include "code\modules\research\designs.dm" +#include "code\modules\research\destructive_analyzer.dm" +#include "code\modules\research\experimentor.dm" +#include "code\modules\research\message_server.dm" +#include "code\modules\research\protolathe.dm" +#include "code\modules\research\rd-readme.dm" +#include "code\modules\research\rdconsole.dm" +#include "code\modules\research\rdmachines.dm" +#include "code\modules\research\research.dm" +#include "code\modules\research\server.dm" +#include "code\modules\research\designs\AI_module_designs.dm" +#include "code\modules\research\designs\autolathe_designs.dm" +#include "code\modules\research\designs\biogenerator_designs.dm" +#include "code\modules\research\designs\bluespace_designs.dm" +#include "code\modules\research\designs\comp_board_designs.dm" +#include "code\modules\research\designs\computer_part_designs.dm" +#include "code\modules\research\designs\equipment_designs.dm" +#include "code\modules\research\designs\janitorial_designs.dm" +#include "code\modules\research\designs\machine_designs.dm" +#include "code\modules\research\designs\mecha_designs.dm" +#include "code\modules\research\designs\mechfabricator_designs.dm" +#include "code\modules\research\designs\medical_designs.dm" +#include "code\modules\research\designs\mining_designs.dm" +#include "code\modules\research\designs\misc_designs.dm" +#include "code\modules\research\designs\power_designs.dm" +#include "code\modules\research\designs\smelting_designs.dm" +#include "code\modules\research\designs\spacepod_designs.dm" +#include "code\modules\research\designs\stock_parts_designs.dm" +#include "code\modules\research\designs\telecomms_designs.dm" +#include "code\modules\research\designs\weapon_designs.dm" +#include "code\modules\research\xenobiology\xenobio_camera.dm" +#include "code\modules\research\xenobiology\xenobiology.dm" +#include "code\modules\response_team\ert.dm" +#include "code\modules\response_team\ert_outfits.dm" +#include "code\modules\ruins\ruin_areas.dm" +#include "code\modules\security_levels\keycard authentication.dm" +#include "code\modules\security_levels\security levels.dm" +#include "code\modules\shuttle\assault_pod.dm" +#include "code\modules\shuttle\emergency.dm" +#include "code\modules\shuttle\ert.dm" +#include "code\modules\shuttle\navigation_computer.dm" +#include "code\modules\shuttle\on_move.dm" +#include "code\modules\shuttle\ripple.dm" +#include "code\modules\shuttle\shuttle.dm" +#include "code\modules\shuttle\shuttle_manipulator.dm" +#include "code\modules\shuttle\shuttle_rotate.dm" +#include "code\modules\shuttle\supply.dm" +#include "code\modules\shuttle\syndicate.dm" +#include "code\modules\shuttle\vox.dm" +#include "code\modules\space_management\heap_space_level.dm" +#include "code\modules\space_management\level_check.dm" +#include "code\modules\space_management\level_traits.dm" +#include "code\modules\space_management\space_chunk.dm" +#include "code\modules\space_management\space_level.dm" +#include "code\modules\space_management\space_transition.dm" +#include "code\modules\space_management\zlevel_manager.dm" +#include "code\modules\spacepods\construction.dm" +#include "code\modules\spacepods\equipment.dm" +#include "code\modules\spacepods\lock_buster.dm" +#include "code\modules\spacepods\parts.dm" +#include "code\modules\spacepods\spacepod.dm" +#include "code\modules\station_goals\bsa.dm" +#include "code\modules\station_goals\dna_vault.dm" +#include "code\modules\station_goals\shield.dm" +#include "code\modules\station_goals\station_goal.dm" +#include "code\modules\store\items.dm" +#include "code\modules\store\store.dm" +#include "code\modules\surgery\bones.dm" +#include "code\modules\surgery\cavity_implant.dm" +#include "code\modules\surgery\dental_implant.dm" +#include "code\modules\surgery\encased.dm" +#include "code\modules\surgery\generic.dm" +#include "code\modules\surgery\helpers.dm" +#include "code\modules\surgery\implant_removal.dm" +#include "code\modules\surgery\limb_augmentation.dm" +#include "code\modules\surgery\limb_reattach.dm" +#include "code\modules\surgery\organs_internal.dm" +#include "code\modules\surgery\other.dm" +#include "code\modules\surgery\plastic_surgery.dm" +#include "code\modules\surgery\remove_embedded_object.dm" +#include "code\modules\surgery\rig_removal.dm" +#include "code\modules\surgery\robotics.dm" +#include "code\modules\surgery\slime.dm" +#include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\tools.dm" +#include "code\modules\surgery\organs\augments_arms.dm" +#include "code\modules\surgery\organs\augments_eyes.dm" +#include "code\modules\surgery\organs\augments_internal.dm" +#include "code\modules\surgery\organs\autoimplanter.dm" +#include "code\modules\surgery\organs\blood.dm" +#include "code\modules\surgery\organs\body_egg.dm" +#include "code\modules\surgery\organs\ears.dm" +#include "code\modules\surgery\organs\eyes.dm" +#include "code\modules\surgery\organs\heart.dm" +#include "code\modules\surgery\organs\helpers.dm" +#include "code\modules\surgery\organs\kidneys.dm" +#include "code\modules\surgery\organs\liver.dm" +#include "code\modules\surgery\organs\lungs.dm" +#include "code\modules\surgery\organs\mmi_holder.dm" +#include "code\modules\surgery\organs\organ.dm" +#include "code\modules\surgery\organs\organ_external.dm" +#include "code\modules\surgery\organs\organ_icon.dm" +#include "code\modules\surgery\organs\organ_internal.dm" +#include "code\modules\surgery\organs\pain.dm" +#include "code\modules\surgery\organs\parasites.dm" +#include "code\modules\surgery\organs\robolimbs.dm" +#include "code\modules\surgery\organs\skeleton.dm" +#include "code\modules\surgery\organs\vocal_cords.dm" +#include "code\modules\surgery\organs\subtypes\abductor.dm" +#include "code\modules\surgery\organs\subtypes\diona.dm" +#include "code\modules\surgery\organs\subtypes\drask.dm" +#include "code\modules\surgery\organs\subtypes\grey.dm" +#include "code\modules\surgery\organs\subtypes\kidan.dm" +#include "code\modules\surgery\organs\subtypes\machine.dm" +#include "code\modules\surgery\organs\subtypes\nucleation.dm" +#include "code\modules\surgery\organs\subtypes\shadow.dm" +#include "code\modules\surgery\organs\subtypes\skrell.dm" +#include "code\modules\surgery\organs\subtypes\standard.dm" +#include "code\modules\surgery\organs\subtypes\tajaran.dm" +#include "code\modules\surgery\organs\subtypes\unathi.dm" +#include "code\modules\surgery\organs\subtypes\unbreakable.dm" +#include "code\modules\surgery\organs\subtypes\vox.dm" +#include "code\modules\surgery\organs\subtypes\vulpkanin.dm" +#include "code\modules\surgery\organs\subtypes\wryn.dm" +#include "code\modules\surgery\organs\subtypes\xenos.dm" +#include "code\modules\telesci\bscrystal.dm" +#include "code\modules\telesci\gps.dm" +#include "code\modules\telesci\telepad.dm" +#include "code\modules\telesci\telesci_computer.dm" +#include "code\modules\tooltip\tooltip.dm" +#include "code\modules\tram\tram.dm" +#include "code\modules\tram\tram_control_pad.dm" +#include "code\modules\tram\tram_floor.dm" +#include "code\modules\tram\tram_rail.dm" +#include "code\modules\tram\tram_wall.dm" +#include "code\modules\vehicle\ambulance.dm" +#include "code\modules\vehicle\atv.dm" +#include "code\modules\vehicle\janicart.dm" +#include "code\modules\vehicle\motorcycle.dm" +#include "code\modules\vehicle\secway.dm" +#include "code\modules\vehicle\snowmobile.dm" +#include "code\modules\vehicle\speedbike.dm" +#include "code\modules\vehicle\sportscar.dm" +#include "code\modules\vehicle\vehicle.dm" +#include "code\modules\vr\vr_avatar.dm" +#include "code\modules\vr\vr_controller.dm" +#include "code\modules\vr\vr_goggles.dm" +#include "code\modules\vr\vr_outfits.dm" +#include "goon\code\datums\browserOutput.dm" +#include "interface\interface.dm" +#include "interface\skin.dmf" +// END_INCLUDE From 13c26d716ceca7cdbcffbc6b3670dc8f63a3c39f Mon Sep 17 00:00:00 2001 From: AffectedArc07 Date: Sun, 24 Feb 2019 10:31:52 +0000 Subject: [PATCH 19/42] Uses a list instead of world search --- code/_globalvars/lists/objects.dm | 1 + code/game/machinery/computer/brigcells.dm | 2 +- code/game/machinery/doors/brigdoors.dm | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 78148aee00e..c7217221585 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -13,6 +13,7 @@ GLOBAL_LIST_INIT(singularities, list()) //list of all singularities GLOBAL_LIST_INIT(janitorial_equipment, list()) //list of janitorial equipment GLOBAL_LIST_INIT(crafting_recipes, list()) //list of all crafting recipes GLOBAL_LIST_INIT(prisoncomputer_list, list()) +GLOBAL_LIST_INIT(celltimers_list, list()) // list of all cell timers GLOBAL_LIST_INIT(cell_logs, list()) GLOBAL_LIST_INIT(navigation_computers, list()) diff --git a/code/game/machinery/computer/brigcells.dm b/code/game/machinery/computer/brigcells.dm index acd44d3e240..94dcf5a28cc 100644 --- a/code/game/machinery/computer/brigcells.dm +++ b/code/game/machinery/computer/brigcells.dm @@ -35,7 +35,7 @@ var/list/timers = list() /*"Detainee [logname] has been incarcerated for [seconds_to_time(timetoset / 10)] for the charges of, '[logcharges]'. \ Arresting Officer: [usr.name].[R ? "" : " Detainee record not found, manual record update required."]"*/ - for(var/obj/machinery/door_timer/T in world) + for(var/obj/machinery/door_timer/T in GLOB.celltimers_list) var/timer = list() timer["cell_id"] = T.name timer["occupant"] = T.occupant diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index fe67dfdc7f7..eb536953b45 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -36,6 +36,14 @@ var/time = 0 var/officer = "None" +/obj/machinery/door_timer/New() + GLOB.celltimers_list += src + return ..() + +/obj/machinery/door_timer/Destroy() + GLOB.celltimers_list -= src + return ..() + /obj/machinery/door_timer/proc/print_report() var/logname = input(usr, "Name of the guilty?","[id] log name") var/logcharges = stripped_multiline_input(usr, "What have they been charged with?","[id] log charges") From cf39d5e96e7134874bd15633cea9c8704a7f1a57 Mon Sep 17 00:00:00 2001 From: AffectedArc07 Date: Sun, 24 Feb 2019 13:23:17 +0000 Subject: [PATCH 20/42] Left my comments in whoops --- code/game/machinery/computer/brigcells.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/machinery/computer/brigcells.dm b/code/game/machinery/computer/brigcells.dm index 94dcf5a28cc..d322e99ae4b 100644 --- a/code/game/machinery/computer/brigcells.dm +++ b/code/game/machinery/computer/brigcells.dm @@ -33,8 +33,6 @@ /obj/machinery/computer/brigcells/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state) var/data[0] var/list/timers = list() - /*"Detainee [logname] has been incarcerated for [seconds_to_time(timetoset / 10)] for the charges of, '[logcharges]'. \ - Arresting Officer: [usr.name].[R ? "" : " Detainee record not found, manual record update required."]"*/ for(var/obj/machinery/door_timer/T in GLOB.celltimers_list) var/timer = list() timer["cell_id"] = T.name @@ -45,7 +43,6 @@ timer["background"] = "'background-color:#007f47'" else timer["background"] = "'background-color:#890E26'" - //timer["time_set"] = seconds_to_clock(T.timetoset) timer["time_set"] = seconds_to_clock(T.time / 10) timer["time_left"] = seconds_to_clock(T.timeleft()) timer["ref"] = "\ref[T]" From ca5f456f798ad43d7522a67e4c80a84343c2cadd Mon Sep 17 00:00:00 2001 From: AffectedArc07 Date: Mon, 25 Feb 2019 18:00:35 +0000 Subject: [PATCH 21/42] whoops --- code/modules/research/designs/comp_board_designs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index a10ee67362d..9d555d8cf32 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -209,7 +209,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000) - build_path = /obj/item/circuitboard/brigcells + build_path = /obj/item/circuitboard/prisoner category = list("Computer Boards") /datum/design/brigcells @@ -219,7 +219,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000) - build_path = /obj/item/circuitboard/prisoner + build_path = /obj/item/circuitboard/brigcells category = list("Computer Boards") /datum/design/rdconsole From ca773c32dcdf90548ba4934caefe38f5813263ba Mon Sep 17 00:00:00 2001 From: Kyep Date: Fri, 15 Mar 2019 03:33:48 -0700 Subject: [PATCH 22/42] Fixes ventcrawl while buckled to something --- code/modules/mob/living/carbon/carbon.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0e921e7953e..d72e5b6e2af 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -442,6 +442,10 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, if(!do_after(src, 45, target = src)) return + if(buckled) + to_chat(src, "You cannot crawl into a vent while buckled to something!") + return + if(!client) return From ca0aca324154fde3aecc39e827ed1489de3acf80 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 03:23:17 -0400 Subject: [PATCH 23/42] Automatic changelog generation for PR #11045 [ci skip] --- html/changelogs/AutoChangeLog-pr-11045.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11045.yml diff --git a/html/changelogs/AutoChangeLog-pr-11045.yml b/html/changelogs/AutoChangeLog-pr-11045.yml new file mode 100644 index 00000000000..a96a824e158 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11045.yml @@ -0,0 +1,4 @@ +author: "Kyep" +delete-after: True +changes: + - bugfix: "It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object." From 0f2420d00f31d793a44f45362612727929975914 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 09:04:01 +0000 Subject: [PATCH 24/42] Automatic changelog compile, [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-pr-11045.yml | 4 ---- 3 files changed, 10 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-11045.yml diff --git a/html/changelog.html b/html/changelog.html index 5b695b422d5..68217d09862 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,12 @@ -->
+

17 March 2019

+

Kyep updated:

+
    +
  • It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object.
  • +
+

16 March 2019

Ty-Omaha and Ionward updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 216f595a181..d968b7ffe9e 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9375,3 +9375,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Ty-Omaha and Ionward: - rscadd: Carbon humans (people, not animals) who go SSD will now get ZZZ bubbles to indicate they are SSD +2019-03-17: + Kyep: + - bugfix: It is no longer possible to crawl into a vent while you are simultaneously + buckled to a chair or other solid object. diff --git a/html/changelogs/AutoChangeLog-pr-11045.yml b/html/changelogs/AutoChangeLog-pr-11045.yml deleted file mode 100644 index a96a824e158..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11045.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Kyep" -delete-after: True -changes: - - bugfix: "It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object." From 1131133d595f021d0202f0c616ede512db65894e Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 10:17:39 +0100 Subject: [PATCH 25/42] Confirmation --- code/modules/admin/admin.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 175743e79aa..ce76dc4e282 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -671,6 +671,8 @@ var/global/nologevent = 0 alert("Unable to start the game as it is not set up.") return if(ticker.current_state == GAME_STATE_PREGAME) + if(alert(usr, "Are you sure you want to start now?", "Start game", "Yes", "No") != "Yes") + return ticker.current_state = GAME_STATE_SETTING_UP log_admin("[key_name(usr)] has started the game.") message_admins("[key_name_admin(usr)] has started the game.") From b389074d658d1f9e79f761f8fd9f23b04425adf1 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 05:34:35 -0400 Subject: [PATCH 26/42] Automatic changelog generation for PR #11055 [ci skip] --- html/changelogs/AutoChangeLog-pr-11055.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11055.yml diff --git a/html/changelogs/AutoChangeLog-pr-11055.yml b/html/changelogs/AutoChangeLog-pr-11055.yml new file mode 100644 index 00000000000..80c8fe8b4bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11055.yml @@ -0,0 +1,4 @@ +author: "farie82" +delete-after: True +changes: + - tweak: "Adds a confirmation to the start now verb. Make it ansari proof" From 53230ed13f9ae5e1ae57242d9b4810c71fd0d5d7 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 09:55:01 +0000 Subject: [PATCH 27/42] Automatic changelog compile, [ci skip] --- html/changelog.html | 4 ++++ html/changelogs/.all_changelog.yml | 2 ++ html/changelogs/AutoChangeLog-pr-11055.yml | 4 ---- 3 files changed, 6 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-11055.yml diff --git a/html/changelog.html b/html/changelog.html index 68217d09862..db87e02cd51 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -61,6 +61,10 @@
    • It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object.
    +

    farie82 updated:

    +
      +
    • Adds a confirmation to the start now verb. Make it ansari proof
    • +

    16 March 2019

    Ty-Omaha and Ionward updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index d968b7ffe9e..bf630e924b2 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9379,3 +9379,5 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Kyep: - bugfix: It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object. + farie82: + - tweak: Adds a confirmation to the start now verb. Make it ansari proof diff --git a/html/changelogs/AutoChangeLog-pr-11055.yml b/html/changelogs/AutoChangeLog-pr-11055.yml deleted file mode 100644 index 80c8fe8b4bc..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11055.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "farie82" -delete-after: True -changes: - - tweak: "Adds a confirmation to the start now verb. Make it ansari proof" From 4b07a3254bf37304f85483b343ea9a00c7e1de83 Mon Sep 17 00:00:00 2001 From: AffectedArc07 Date: Sun, 17 Mar 2019 09:42:58 +0000 Subject: [PATCH 28/42] Adds that newline back in --- paradise.dme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paradise.dme b/paradise.dme index 78eb8c02e21..13808883967 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2388,4 +2388,4 @@ #include "goon\code\datums\browserOutput.dm" #include "interface\interface.dm" #include "interface\skin.dmf" -// END_INCLUDE \ No newline at end of file +// END_INCLUDE From 34cdc1dcebe9f1ae5643eb62ed696532d45f8aa6 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 11:25:02 +0100 Subject: [PATCH 29/42] removes the force movement of dview --- code/__HELPERS/unsorted.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 97978fe6832..32d13920aad 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1487,7 +1487,8 @@ var/mob/dview/dview_mob = new /mob/dview invisibility = 101 density = 0 - + move_force = 0 + pull_force = 0 move_resist = INFINITY simulated = 0 From 288f52bbafefc37144b0b5edb543b10012f61b26 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 11:34:05 +0100 Subject: [PATCH 30/42] added the canmove --- code/__HELPERS/unsorted.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 32d13920aad..d9039e8c004 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1491,7 +1491,7 @@ var/mob/dview/dview_mob = new pull_force = 0 move_resist = INFINITY simulated = 0 - + canmove = FALSE see_in_dark = 1e6 /mob/dview/New() //For whatever reason, if this isn't called, then BYOND will throw a type mismatch runtime when attempting to add this to the mobs list. -Fox From 221d97c21c18c825ca76ceaf6b945597e961714b Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 07:23:19 -0400 Subject: [PATCH 31/42] Automatic changelog generation for PR #10953 [ci skip] --- html/changelogs/AutoChangeLog-pr-10953.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10953.yml diff --git a/html/changelogs/AutoChangeLog-pr-10953.yml b/html/changelogs/AutoChangeLog-pr-10953.yml new file mode 100644 index 00000000000..8f807d22c6a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10953.yml @@ -0,0 +1,5 @@ +author: "AffectedArc07 and Alonefromhell" +delete-after: True +changes: + - rscadd: "Cell management consoles: See the status of all brig cells without having to leave your office" + - imageadd: "New screen sprite for cell management console" From a5f4634475769617d0fdefb3d1336c619e4fedfd Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 11:44:09 +0000 Subject: [PATCH 32/42] Automatic changelog compile, [ci skip] --- html/changelog.html | 5 +++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-pr-10953.yml | 5 ----- 3 files changed, 9 insertions(+), 5 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-10953.yml diff --git a/html/changelog.html b/html/changelog.html index db87e02cd51..4313415de96 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,6 +57,11 @@

    17 March 2019

    +

    AffectedArc07 and Alonefromhell updated:

    +
      +
    • Cell management consoles: See the status of all brig cells without having to leave your office
    • +
    • New screen sprite for cell management console
    • +

    Kyep updated:

    • It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object.
    • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index bf630e924b2..f929007be14 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9376,6 +9376,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Carbon humans (people, not animals) who go SSD will now get ZZZ bubbles to indicate they are SSD 2019-03-17: + AffectedArc07 and Alonefromhell: + - rscadd: 'Cell management consoles: See the status of all brig cells without having + to leave your office' + - imageadd: New screen sprite for cell management console Kyep: - bugfix: It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object. diff --git a/html/changelogs/AutoChangeLog-pr-10953.yml b/html/changelogs/AutoChangeLog-pr-10953.yml deleted file mode 100644 index 8f807d22c6a..00000000000 --- a/html/changelogs/AutoChangeLog-pr-10953.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "AffectedArc07 and Alonefromhell" -delete-after: True -changes: - - rscadd: "Cell management consoles: See the status of all brig cells without having to leave your office" - - imageadd: "New screen sprite for cell management console" From f8defd626130bc5de2915762f807bb9884ac762c Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 08:36:17 -0400 Subject: [PATCH 33/42] Automatic changelog generation for PR #10896 [ci skip] --- html/changelogs/AutoChangeLog-pr-10896.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10896.yml diff --git a/html/changelogs/AutoChangeLog-pr-10896.yml b/html/changelogs/AutoChangeLog-pr-10896.yml new file mode 100644 index 00000000000..0890dc16e9a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10896.yml @@ -0,0 +1,4 @@ +author: "Jazz23" +delete-after: True +changes: + - rscadd: "Xenobio hotkeys, slime potion thing, remote slime scanner, monkey recycler linking." From 9eef7fe1f7f93a804d246bea16fd32b0e9b25a79 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 13:48:16 +0100 Subject: [PATCH 34/42] no fastmos for the dview --- code/__HELPERS/unsorted.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index d9039e8c004..2596e0ad8ed 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1494,6 +1494,9 @@ var/mob/dview/dview_mob = new canmove = FALSE see_in_dark = 1e6 +/mob/dview/experience_pressure_difference() + return 0 + /mob/dview/New() //For whatever reason, if this isn't called, then BYOND will throw a type mismatch runtime when attempting to add this to the mobs list. -Fox /mob/dview/Destroy() From 675ef68422ac608d5a2052c3a82b99a1e706d29f Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 14:41:31 +0100 Subject: [PATCH 35/42] uses move resist now --- code/LINDA/LINDA_turf_tile.dm | 2 +- code/__HELPERS/unsorted.dm | 3 --- code/modules/mob/dead/observer/observer.dm | 3 --- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm index bb212b17138..4cefc75d1ba 100644 --- a/code/LINDA/LINDA_turf_tile.dm +++ b/code/LINDA/LINDA_turf_tile.dm @@ -311,7 +311,7 @@ /atom/movable/proc/experience_pressure_difference(pressure_difference, direction) if(last_forced_movement >= SSair.times_fired) return 0 - else if(!anchored && !pulledby) + else if((!anchored || move_resist == INFINITY) && !pulledby) var/turf/target = get_turf(src) var/datum/gas_mixture/target_air = target.return_air() if(isspaceturf(target) || isunsimulatedturf(target) || pressure_resistance > target_air.return_pressure()) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 2596e0ad8ed..d9039e8c004 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1494,9 +1494,6 @@ var/mob/dview/dview_mob = new canmove = FALSE see_in_dark = 1e6 -/mob/dview/experience_pressure_difference() - return 0 - /mob/dview/New() //For whatever reason, if this isn't called, then BYOND will throw a type mismatch runtime when attempting to add this to the mobs list. -Fox /mob/dview/Destroy() diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 7d396a7e7ea..e91c79e46c9 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -235,9 +235,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ..() -/mob/dead/observer/experience_pressure_difference() - return 0 - /mob/dead/observer/can_use_hands() return 0 /mob/dead/observer/Stat() From 713ff0f6b3c435ad10ad8dd9eefa2066e5fb681e Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 14:41:53 +0100 Subject: [PATCH 36/42] != damnit --- code/LINDA/LINDA_turf_tile.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm index 4cefc75d1ba..593b19b147c 100644 --- a/code/LINDA/LINDA_turf_tile.dm +++ b/code/LINDA/LINDA_turf_tile.dm @@ -311,7 +311,7 @@ /atom/movable/proc/experience_pressure_difference(pressure_difference, direction) if(last_forced_movement >= SSair.times_fired) return 0 - else if((!anchored || move_resist == INFINITY) && !pulledby) + else if((!anchored || move_resist != INFINITY) && !pulledby) var/turf/target = get_turf(src) var/datum/gas_mixture/target_air = target.return_air() if(isspaceturf(target) || isunsimulatedturf(target) || pressure_resistance > target_air.return_pressure()) From cf87f4844da54993bd52e2334d25307fc3c3f155 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 10:11:52 -0400 Subject: [PATCH 37/42] Automatic changelog generation for PR #11057 [ci skip] --- html/changelogs/AutoChangeLog-pr-11057.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11057.yml diff --git a/html/changelogs/AutoChangeLog-pr-11057.yml b/html/changelogs/AutoChangeLog-pr-11057.yml new file mode 100644 index 00000000000..6c04e5c8744 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11057.yml @@ -0,0 +1,4 @@ +author: "farie82" +delete-after: True +changes: + - bugfix: "The invisible bumping into something should be fixed now" From 36c35b4f713abbbeae9a82070e29af4033a0b200 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 14:29:58 +0000 Subject: [PATCH 38/42] Automatic changelog compile, [ci skip] --- html/changelog.html | 5 +++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-pr-10896.yml | 4 ---- html/changelogs/AutoChangeLog-pr-11057.yml | 4 ---- 4 files changed, 9 insertions(+), 8 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-10896.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-11057.yml diff --git a/html/changelog.html b/html/changelog.html index 4313415de96..8d909918f0a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -62,6 +62,10 @@
    • Cell management consoles: See the status of all brig cells without having to leave your office
    • New screen sprite for cell management console
    +

    Jazz23 updated:

    +
      +
    • Xenobio hotkeys, slime potion thing, remote slime scanner, monkey recycler linking.
    • +

    Kyep updated:

    • It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object.
    • @@ -69,6 +73,7 @@

      farie82 updated:

      • Adds a confirmation to the start now verb. Make it ansari proof
      • +
      • The invisible bumping into something should be fixed now

      16 March 2019

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index f929007be14..2a83099671a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9380,8 +9380,12 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: 'Cell management consoles: See the status of all brig cells without having to leave your office' - imageadd: New screen sprite for cell management console + Jazz23: + - rscadd: Xenobio hotkeys, slime potion thing, remote slime scanner, monkey recycler + linking. Kyep: - bugfix: It is no longer possible to crawl into a vent while you are simultaneously buckled to a chair or other solid object. farie82: - tweak: Adds a confirmation to the start now verb. Make it ansari proof + - bugfix: The invisible bumping into something should be fixed now diff --git a/html/changelogs/AutoChangeLog-pr-10896.yml b/html/changelogs/AutoChangeLog-pr-10896.yml deleted file mode 100644 index 0890dc16e9a..00000000000 --- a/html/changelogs/AutoChangeLog-pr-10896.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Jazz23" -delete-after: True -changes: - - rscadd: "Xenobio hotkeys, slime potion thing, remote slime scanner, monkey recycler linking." diff --git a/html/changelogs/AutoChangeLog-pr-11057.yml b/html/changelogs/AutoChangeLog-pr-11057.yml deleted file mode 100644 index 6c04e5c8744..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11057.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "farie82" -delete-after: True -changes: - - bugfix: "The invisible bumping into something should be fixed now" From d9ae163b2c693267337a1e27dd671513c7f81289 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 17 Mar 2019 16:37:48 +0100 Subject: [PATCH 39/42] return if anchored or unmovable --- code/LINDA/LINDA_turf_tile.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm index 593b19b147c..6ab83750f3c 100644 --- a/code/LINDA/LINDA_turf_tile.dm +++ b/code/LINDA/LINDA_turf_tile.dm @@ -311,7 +311,9 @@ /atom/movable/proc/experience_pressure_difference(pressure_difference, direction) if(last_forced_movement >= SSair.times_fired) return 0 - else if((!anchored || move_resist != INFINITY) && !pulledby) + if(anchored || move_resist == INFINITY) + return 0 + else if(!pulledby) var/turf/target = get_turf(src) var/datum/gas_mixture/target_air = target.return_air() if(isspaceturf(target) || isunsimulatedturf(target) || pressure_resistance > target_air.return_pressure()) From 866948adc51627f9c5dda8a898dcde022347b67f Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 14:44:56 -0400 Subject: [PATCH 40/42] Automatic changelog generation for PR #11059 [ci skip] --- html/changelogs/AutoChangeLog-pr-11059.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11059.yml diff --git a/html/changelogs/AutoChangeLog-pr-11059.yml b/html/changelogs/AutoChangeLog-pr-11059.yml new file mode 100644 index 00000000000..27ec4ae5f50 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11059.yml @@ -0,0 +1,4 @@ +author: "farie82" +delete-after: True +changes: + - bugfix: "Fixes the atmos bug" From d14b4963aa22b7f47387d9d0ae7c3e8a480b1e43 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 17 Mar 2019 21:39:09 +0000 Subject: [PATCH 41/42] Automatic changelog compile, [ci skip] --- html/changelog.html | 1 + html/changelogs/.all_changelog.yml | 1 + html/changelogs/AutoChangeLog-pr-11059.yml | 4 ---- 3 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-11059.yml diff --git a/html/changelog.html b/html/changelog.html index 8d909918f0a..7af41ad83c8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -74,6 +74,7 @@
      • Adds a confirmation to the start now verb. Make it ansari proof
      • The invisible bumping into something should be fixed now
      • +
      • Fixes the atmos bug

      16 March 2019

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 2a83099671a..40010f3af12 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9389,3 +9389,4 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. farie82: - tweak: Adds a confirmation to the start now verb. Make it ansari proof - bugfix: The invisible bumping into something should be fixed now + - bugfix: Fixes the atmos bug diff --git a/html/changelogs/AutoChangeLog-pr-11059.yml b/html/changelogs/AutoChangeLog-pr-11059.yml deleted file mode 100644 index 27ec4ae5f50..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11059.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "farie82" -delete-after: True -changes: - - bugfix: "Fixes the atmos bug" From 7d423acc617ec3627ff4af3b43c3664ae8583199 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 17 Mar 2019 22:46:24 -0400 Subject: [PATCH 42/42] Implements Newer Version of Mapmerge --- _maps/map_files/Delta/delta.dmm | 196 ++++---- .../MetaStation/MetaStation.v41A.II.dmm | 148 +++--- _maps/map_files/MetaStation/z2.dmm | 42 +- _maps/map_files/MetaStation/z4.dmm | 24 +- .../RandomRuins/SpaceRuins/oldstation.dmm | 20 +- .../RandomRuins/SpaceRuins/spacebar.dmm | 8 +- _maps/map_files/RandomZLevels/centcomAway.dmm | 14 +- _maps/map_files/cyberiad/cyberiad.dmm | 186 +++---- _maps/map_files/cyberiad/z2.dmm | 46 +- _maps/map_files/cyberiad/z4.dmm | 38 +- _maps/map_files/cyberiad/z6.dmm | 60 +-- _maps/map_files/shuttles/emergency_narnar.dmm | 6 +- _maps/map_files/shuttles/ferry_base.dmm | 4 +- _maps/map_files/shuttles/ferry_meat.dmm | 4 +- tools/mapmerge2/README.md | 26 +- tools/mapmerge2/{src => }/convert.py | 0 tools/mapmerge2/dmi.py | 253 ++++++++++ tools/mapmerge2/{src => }/dmm.py | 74 ++- .../{Convert DMM to TGM.bat => dmm2tgm.bat} | 2 +- tools/mapmerge2/{src => }/frontend.py | 0 tools/mapmerge2/map_scripts/cornersfix.txt | 30 ++ tools/mapmerge2/map_scripts/turfs2decals.txt | 465 ++++++++++++++++++ .../{Run Mapmerge.bat => mapmerge.bat} | 2 +- tools/mapmerge2/{src => }/mapmerge.py | 0 tools/mapmerge2/merge_driver_dmi.py | 177 +++++++ tools/mapmerge2/precommit.py | 57 +++ ...uirements.bat => requirements-install.bat} | 0 tools/mapmerge2/requirements.txt | 2 +- .../{Convert TGM to DMM.bat => tgm2dmm.bat} | 2 +- tools/mapmerge2/update_paths.py | 163 ++++++ 30 files changed, 1635 insertions(+), 414 deletions(-) rename tools/mapmerge2/{src => }/convert.py (100%) create mode 100644 tools/mapmerge2/dmi.py rename tools/mapmerge2/{src => }/dmm.py (85%) rename tools/mapmerge2/{Convert DMM to TGM.bat => dmm2tgm.bat} (68%) rename tools/mapmerge2/{src => }/frontend.py (100%) create mode 100644 tools/mapmerge2/map_scripts/cornersfix.txt create mode 100644 tools/mapmerge2/map_scripts/turfs2decals.txt rename tools/mapmerge2/{Run Mapmerge.bat => mapmerge.bat} (67%) rename tools/mapmerge2/{src => }/mapmerge.py (100%) create mode 100644 tools/mapmerge2/merge_driver_dmi.py create mode 100644 tools/mapmerge2/precommit.py rename tools/mapmerge2/{Install Requirements.bat => requirements-install.bat} (100%) rename tools/mapmerge2/{Convert TGM to DMM.bat => tgm2dmm.bat} (68%) create mode 100644 tools/mapmerge2/update_paths.py diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index 8d91f419b02..7e54cfe3e58 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -503,8 +503,8 @@ }, /area/shuttle/abandoned) "abp" = ( -/turf/space, /obj/machinery/porta_turret/syndicate, +/turf/space, /turf/simulated/shuttle/wall{ dir = 8; icon_state = "diagonalWall3" @@ -570,8 +570,8 @@ /turf/simulated/shuttle/plating, /area/shuttle/syndicate) "abu" = ( -/turf/space, /obj/machinery/porta_turret/syndicate, +/turf/space, /turf/simulated/shuttle/wall{ dir = 1; icon_state = "diagonalWall3" @@ -661,13 +661,13 @@ }, /area/shuttle/syndicate) "abG" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "abH" = ( @@ -847,7 +847,6 @@ }, /area/shuttle/syndicate) "ace" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -860,10 +859,10 @@ icon_state = "2-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "acf" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -881,31 +880,31 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "acg" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "ach" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "aci" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "acj" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -922,6 +921,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "ack" = ( @@ -1077,11 +1077,11 @@ /turf/simulated/floor/plating, /area/hallway/secondary/entry) "acE" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "acF" = ( @@ -1089,11 +1089,11 @@ /turf/simulated/floor/plating/airless/catwalk, /area/space) "acG" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "acH" = ( @@ -1644,16 +1644,16 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "adL" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 }, /area/shuttle/pod_1) "adM" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f9"; dir = 2 @@ -1685,16 +1685,16 @@ /turf/simulated/shuttle/floor, /area/shuttle/pod_2) "adQ" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 }, /area/shuttle/pod_2) "adR" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f9"; dir = 2 @@ -1766,7 +1766,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "aec" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -1776,6 +1775,7 @@ pixel_y = -25; req_access_txt = "10;13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "aed" = ( @@ -1816,12 +1816,12 @@ /turf/simulated/shuttle/floor, /area/shuttle/pod_2) "aeh" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1 }, +/turf/space, /turf/simulated/shuttle/wall/interior{ tag = "icon-swall_f6"; icon_state = "swall_f6" @@ -2674,12 +2674,12 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "afL" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1 }, +/turf/space, /turf/simulated/shuttle/wall/interior{ tag = "icon-swall_f10"; icon_state = "swall_f10" @@ -8921,17 +8921,16 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "asU" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "asV" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -8944,6 +8943,7 @@ icon_state = "1-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "asW" = ( @@ -8984,7 +8984,6 @@ }, /area/hallway/secondary/entry) "ata" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -9002,19 +9001,20 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "atb" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "atc" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "atd" = ( @@ -9350,15 +9350,14 @@ /turf/simulated/floor/plating, /area/maintenance/fsmaint) "atK" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "atL" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -9375,6 +9374,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "atM" = ( @@ -9484,7 +9484,6 @@ }, /area/maintenance/disposal) "atU" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -9496,6 +9495,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "atV" = ( @@ -12855,10 +12855,10 @@ /turf/simulated/floor/greengrid, /area/engine/supermatter) "aAe" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ dir = 6 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aAf" = ( @@ -12904,10 +12904,10 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aAi" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ dir = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aAj" = ( @@ -13819,10 +13819,10 @@ }, /area/hallway/primary/fore) "aBV" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ dir = 5 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aBW" = ( @@ -14705,10 +14705,10 @@ }, /area/maintenance/fsmaint) "aDC" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ dir = 10 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aDD" = ( @@ -14979,34 +14979,34 @@ /turf/simulated/floor/plating, /area/quartermaster/storage) "aDZ" = ( -/turf/space, /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 8 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/engine/controlroom) "aEa" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ dir = 9 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aEb" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "aEc" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "aEd" = ( @@ -15769,10 +15769,10 @@ /turf/simulated/wall, /area/crew_quarters/sleep) "aFz" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 10 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aFA" = ( @@ -18102,13 +18102,13 @@ /turf/simulated/floor/plasteel, /area/security/prison) "aJy" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aJz" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aJA" = ( @@ -19461,7 +19461,6 @@ }, /area/crew_quarters/bar) "aLQ" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -19475,6 +19474,7 @@ d2 = 4; icon_state = "0-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarport) "aLR" = ( @@ -19493,8 +19493,8 @@ }, /area/crew_quarters/bar/atrium) "aLT" = ( -/turf/space, /obj/item/wrench, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aLU" = ( @@ -21048,10 +21048,10 @@ /turf/simulated/floor/plating, /area/security/prison) "aOU" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 5 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aOV" = ( @@ -21062,10 +21062,10 @@ /turf/simulated/floor/plating, /area/security/prison) "aOW" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aOX" = ( @@ -25718,13 +25718,13 @@ }, /area/security/prison) "aWR" = ( -/turf/space, /obj/structure/disposalpipe/trunk{ dir = 4 }, /obj/structure/disposaloutlet{ dir = 8 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/incinerator) "aWS" = ( @@ -27679,13 +27679,13 @@ /turf/simulated/floor/plasteel, /area/security/prison) "aZY" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aZZ" = ( @@ -27700,7 +27700,6 @@ }, /area/crew_quarters/bar/atrium) "baa" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 9 }, @@ -27708,6 +27707,7 @@ dir = 8; icon_state = "pipe-c" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bab" = ( @@ -28079,11 +28079,11 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/kitchen) "baN" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 4; level = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/atmos) "baO" = ( @@ -28612,11 +28612,11 @@ /turf/simulated/floor/plating, /area/security/prison) "bbF" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 4; level = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/atmos) "bbG" = ( @@ -36121,10 +36121,10 @@ }, /area/construction/hallway) "bpr" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f6"; icon_state = "swall_f6"; @@ -39475,11 +39475,11 @@ }, /area/hallway/primary/central) "buX" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/green{ dir = 4; level = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/atmos) "buY" = ( @@ -40560,10 +40560,10 @@ /turf/simulated/wall/r_wall, /area/engine/gravitygenerator) "bwO" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f5"; icon_state = "swall_f5"; @@ -52894,10 +52894,10 @@ /turf/simulated/floor/plasteel, /area/security/warden) "bRm" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 9 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bRn" = ( @@ -53130,11 +53130,11 @@ /turf/simulated/wall/r_wall, /area/turret_protected/aisat) "bRG" = ( -/turf/space, /obj/structure/window/reinforced{ dir = 1; layer = 2.9 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bRH" = ( @@ -54795,7 +54795,6 @@ }, /area/hallway/primary/port) "bUb" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -54805,6 +54804,7 @@ pixel_y = -20; req_access_txt = "32" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bUc" = ( @@ -55188,7 +55188,6 @@ }, /area/hallway/primary/port) "bUJ" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -55199,6 +55198,7 @@ dir = 4; level = 1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bUK" = ( @@ -55447,7 +55447,6 @@ }, /area/hallway/primary/central) "bVf" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -55457,6 +55456,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bVg" = ( @@ -55664,7 +55664,6 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/chief) "bVs" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -55674,6 +55673,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bVt" = ( @@ -57169,7 +57169,6 @@ }, /area/security/checkpoint/engineering) "bXF" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -57189,16 +57188,17 @@ pixel_y = 20; req_access_txt = "10;13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bXG" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bXH" = ( @@ -57384,7 +57384,6 @@ /turf/simulated/wall, /area/engine/engineering) "bYa" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -57392,6 +57391,7 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bYb" = ( @@ -57464,7 +57464,6 @@ /turf/simulated/floor/plating, /area/library) "bYl" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -57475,10 +57474,10 @@ dir = 5; level = 1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bYm" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -57489,6 +57488,7 @@ dir = 4; level = 1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bYn" = ( @@ -57689,7 +57689,6 @@ /turf/simulated/floor/plating, /area/crew_quarters/courtroom) "bYJ" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -57698,6 +57697,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bYK" = ( @@ -57915,10 +57915,10 @@ /turf/simulated/floor/plasteel, /area/security/armoury) "bZf" = ( -/turf/space, /obj/structure/window/reinforced{ dir = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bZg" = ( @@ -58086,7 +58086,6 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "bZw" = ( -/turf/space, /obj/structure/window/reinforced{ dir = 8 }, @@ -58094,6 +58093,7 @@ dir = 4; level = 1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bZx" = ( @@ -62775,11 +62775,11 @@ /turf/simulated/wall/rust, /area/teleporter) "chw" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "chx" = ( @@ -63818,7 +63818,6 @@ /turf/simulated/floor/plating, /area/lawoffice) "cjl" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 @@ -63831,6 +63830,7 @@ tag = "icon-D-SE"; icon_state = "D-SE" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cjm" = ( @@ -66335,7 +66335,6 @@ /turf/simulated/floor/plasteel, /area/teleporter) "cnH" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 @@ -66344,6 +66343,7 @@ tag = "icon-E-SW-NW"; icon_state = "E-SW-NW" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cnI" = ( @@ -66559,7 +66559,6 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "coi" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 @@ -66567,6 +66566,7 @@ /obj/structure/transit_tube{ icon_state = "E-W-Pass" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "coj" = ( @@ -69028,12 +69028,12 @@ /turf/simulated/floor/plating, /area/engine/engineering) "csr" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 }, /obj/structure/transit_tube, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "css" = ( @@ -69086,7 +69086,6 @@ /turf/simulated/floor/plating, /area/engine/engine_smes) "csy" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 @@ -69095,6 +69094,7 @@ tag = "icon-W-SE"; icon_state = "W-SE" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "csz" = ( @@ -69730,7 +69730,6 @@ }, /area/library) "ctI" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4; level = 1 @@ -69742,10 +69741,10 @@ /obj/structure/window/reinforced{ dir = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ctJ" = ( -/turf/space, /obj/structure/transit_tube{ tag = "icon-E-NW"; icon_state = "E-NW" @@ -69753,6 +69752,7 @@ /obj/structure/window/reinforced{ dir = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ctK" = ( @@ -69896,12 +69896,12 @@ /turf/simulated/floor/plasteel, /area/ai_monitored/storage/eva) "ctY" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ctZ" = ( @@ -72995,12 +72995,12 @@ }, /area/maintenance/fpmaint2) "czw" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "czx" = ( @@ -74432,7 +74432,6 @@ }, /area/crew_quarters/locker) "cBU" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 2; d2 = 4; @@ -74443,6 +74442,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cBV" = ( @@ -77530,12 +77530,12 @@ }, /area/maintenance/fpmaint2) "cHt" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cHu" = ( @@ -78377,12 +78377,12 @@ /turf/space, /area/engine/engineering) "cJe" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cJf" = ( @@ -78819,7 +78819,6 @@ }, /area/maintenance/fpmaint2) "cKj" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -78830,6 +78829,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cKk" = ( @@ -78843,8 +78843,8 @@ /turf/simulated/floor/plasteel, /area/toxins/xenobiology) "cKl" = ( -/turf/space, /obj/structure/window/reinforced, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cKm" = ( @@ -80265,7 +80265,6 @@ /turf/simulated/floor/plasteel, /area/toxins/xenobiology) "cNn" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -80281,6 +80280,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cNo" = ( @@ -80739,7 +80739,6 @@ }, /area/medical/medbay) "cNZ" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -80750,6 +80749,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cOa" = ( @@ -80920,12 +80920,12 @@ /turf/simulated/wall, /area/medical/medbay) "cOm" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cOn" = ( @@ -81674,7 +81674,6 @@ }, /area/medical/medbay) "cPK" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; @@ -81685,6 +81684,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cPL" = ( @@ -81847,16 +81847,15 @@ }, /area/medical/medbay2) "cPX" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 1; d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cPY" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -81866,6 +81865,7 @@ pixel_y = 24; req_access_txt = "0" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cPZ" = ( @@ -107523,7 +107523,6 @@ }, /area/shuttle/escape) "dKx" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -107538,6 +107537,7 @@ pixel_y = 25; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "dKy" = ( @@ -110238,12 +110238,12 @@ /turf/simulated/floor/plating, /area/medical/virology) "dPn" = ( -/turf/space, /obj/structure/cable{ d2 = 2; icon_state = "0-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "dPo" = ( @@ -114992,7 +114992,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dXX" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -115002,6 +115001,7 @@ pixel_y = 24; req_access_txt = "0" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "dXY" = ( @@ -115335,24 +115335,23 @@ /turf/simulated/floor/plasteel, /area/medical/research) "dYI" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYJ" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYK" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -115367,10 +115366,10 @@ pixel_y = 25; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYL" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -115383,10 +115382,10 @@ icon_state = "1-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYM" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -115404,18 +115403,18 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYN" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYO" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -115432,10 +115431,10 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYP" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -115447,10 +115446,10 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYQ" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -115460,25 +115459,26 @@ pixel_y = 24; req_access_txt = "10;13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "dYR" = ( -/turf/space, /obj/structure/cable{ d2 = 2; icon_state = "0-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYS" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/portsolar) "dYT" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index 7b07b479e41..c1740c983de 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -15,8 +15,8 @@ /turf/space, /area/space) "aac" = ( -/turf/space, /obj/machinery/porta_turret/syndicate, +/turf/space, /turf/simulated/shuttle/wall{ dir = 8; icon_state = "diagonalWall3" @@ -82,8 +82,8 @@ /turf/simulated/shuttle/plating, /area/shuttle/syndicate) "aah" = ( -/turf/space, /obj/machinery/porta_turret/syndicate, +/turf/space, /turf/simulated/shuttle/wall{ dir = 1; icon_state = "diagonalWall3" @@ -760,12 +760,12 @@ }, /area/shuttle/syndicate) "abA" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abB" = ( @@ -867,12 +867,11 @@ }, /area/shuttle/syndicate) "abL" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abM" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -883,6 +882,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abN" = ( @@ -943,7 +943,6 @@ }, /area/shuttle/syndicate) "abU" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -959,14 +958,15 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abV" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abW" = ( @@ -974,15 +974,14 @@ /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abX" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abY" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -998,10 +997,10 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "abZ" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -1012,6 +1011,7 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "aca" = ( @@ -1054,8 +1054,8 @@ }, /area/solar/auxport) "acf" = ( -/turf/space, /obj/item/stack/cable_coil, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "acg" = ( @@ -1265,11 +1265,11 @@ /turf/space, /area/space) "acz" = ( -/turf/space, /obj/effect/landmark{ name = "xeno_spawn"; pixel_x = -1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "acA" = ( @@ -1519,8 +1519,8 @@ }, /area/security/permabrig) "acY" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f5"; icon_state = "swall_f5"; @@ -1604,8 +1604,8 @@ }, /area/security/permabrig) "adg" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f9"; icon_state = "swall_f9"; @@ -1623,20 +1623,20 @@ /turf/simulated/shuttle/floor, /area/shuttle/pod_2) "adi" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "adj" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "adk" = ( @@ -1989,8 +1989,8 @@ }, /area/shuttle/vox) "adP" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "adQ" = ( @@ -2125,7 +2125,6 @@ /turf/space, /area/space) "aeg" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -2136,6 +2135,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "aeh" = ( @@ -2404,7 +2404,6 @@ }, /area/security/permabrig) "aeA" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -2420,6 +2419,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "aeB" = ( @@ -2889,11 +2889,11 @@ /turf/simulated/shuttle/plating/vox, /area/shuttle/vox) "afo" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "afp" = ( @@ -2914,11 +2914,11 @@ }, /area/security/permabrig) "afq" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "afr" = ( @@ -3109,7 +3109,6 @@ name = "\improper Recreation Area" }) "afG" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -3125,6 +3124,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "afH" = ( @@ -3375,7 +3375,6 @@ /turf/simulated/floor/engine, /area/security/podbay) "age" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -3386,6 +3385,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "agf" = ( @@ -3446,12 +3446,12 @@ }, /area/security/permabrig) "agn" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; pixel_y = 1; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "ago" = ( @@ -3653,8 +3653,8 @@ name = "\improper Recreation Area" }) "agH" = ( -/turf/space, /obj/item/stack/cable_coil, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "agI" = ( @@ -3694,12 +3694,12 @@ /turf/simulated/floor/plating, /area/security/hos) "agM" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "agN" = ( @@ -5100,21 +5100,21 @@ }, /area/security/armoury) "aiQ" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "aiR" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "aiS" = ( @@ -5385,10 +5385,10 @@ /turf/simulated/shuttle/floor4/vox, /area/shuttle/vox) "ajr" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 @@ -5682,10 +5682,10 @@ }, /area/security/permabrig) "ajS" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -6292,11 +6292,11 @@ /turf/simulated/floor/plasteel, /area/security/armoury) "akX" = ( -/turf/space, /obj/effect/landmark{ name = "xeno_spawn"; pixel_x = -1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "akY" = ( @@ -11638,11 +11638,11 @@ name = "Port Maintenance" }) "auv" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/maintenance/auxsolarstarboard) "auw" = ( @@ -27719,13 +27719,13 @@ name = "Arrivals" }) "aWE" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "vault"; dir = 5 }, -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 @@ -27742,13 +27742,13 @@ /turf/simulated/shuttle/floor, /area/shuttle/pod_1) "aWG" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "vault"; dir = 5 }, -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -31843,8 +31843,8 @@ name = "\improper MiniSat Exterior" }) "bdO" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/construction/hallway{ name = "\improper MiniSat Exterior" @@ -35755,8 +35755,8 @@ }, /area/shuttle/arrival/station) "bkj" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f5"; icon_state = "swall_f5"; @@ -36476,8 +36476,8 @@ name = "\improper Cargo Office" }) "bly" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f9"; icon_state = "swall_f9"; @@ -43938,7 +43938,6 @@ /turf/simulated/floor/plating/airless, /area/space) "bxm" = ( -/turf/space, /obj/structure/transit_tube{ icon_state = "W-NE-SE" }, @@ -43951,10 +43950,10 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bxn" = ( -/turf/space, /obj/structure/transit_tube{ tag = "icon-D-SW"; icon_state = "D-SW" @@ -43972,10 +43971,10 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bxo" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4; level = 1 @@ -43985,6 +43984,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bxp" = ( @@ -44013,7 +44013,6 @@ name = "\improper MiniSat Exterior" }) "bxq" = ( -/turf/space, /obj/structure/window/reinforced{ dir = 4 }, @@ -44026,6 +44025,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "bxr" = ( @@ -49927,12 +49927,12 @@ /turf/simulated/floor/plasteel, /area/atmos) "bGW" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 @@ -53183,12 +53183,12 @@ }, /area/tcommsat/server) "bMv" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -65912,8 +65912,8 @@ }, /area/hydroponics) "ciB" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "ciC" = ( @@ -67032,11 +67032,11 @@ /turf/space, /area/space) "ckr" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cks" = ( @@ -68466,12 +68466,12 @@ name = "\improper Secure Lab" }) "cmH" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cmI" = ( @@ -74372,7 +74372,6 @@ }, /area/solar/port) "cvQ" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -74383,6 +74382,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cvR" = ( @@ -76922,7 +76922,6 @@ name = "Aft Maintenance" }) "cAf" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -76938,6 +76937,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cAg" = ( @@ -77552,11 +77552,11 @@ }, /area/medical/chemistry) "cBe" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cBf" = ( @@ -77575,11 +77575,11 @@ }, /area/crew_quarters/hor) "cBg" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cBh" = ( @@ -78214,7 +78214,6 @@ name = "Aft Maintenance" }) "cCf" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -78230,6 +78229,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cCg" = ( @@ -78302,7 +78302,6 @@ }, /area/medical/genetics) "cCj" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -78313,6 +78312,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cCk" = ( @@ -78462,8 +78462,8 @@ }, /area/medical/surgeryobs) "cCw" = ( -/turf/space, /obj/item/stack/cable_coil, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cCx" = ( @@ -78493,11 +78493,11 @@ }, /area/medical/surgeryobs) "cCz" = ( -/turf/space, /obj/structure/cable/yellow{ d2 = 4; icon_state = "0-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cCA" = ( @@ -78809,12 +78809,12 @@ }, /area/medical/cryo) "cCZ" = ( -/turf/space, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cDa" = ( @@ -82331,12 +82331,12 @@ name = "\improper Toxins Lab" }) "cIN" = ( -/turf/space, /obj/effect/landmark{ name = "xeno_spawn"; pixel_x = -1 }, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cIO" = ( @@ -86868,11 +86868,11 @@ name = "Aft Maintenance" }) "cPU" = ( -/turf/space, /obj/structure/cable/yellow{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cPV" = ( @@ -91758,12 +91758,12 @@ name = "\improper Departure Lounge" }) "cXN" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cXO" = ( @@ -92024,12 +92024,12 @@ }, /area/chapel/main) "cYi" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cYj" = ( @@ -92221,12 +92221,12 @@ name = "\improper Recreation Area" }) "cYA" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cYB" = ( @@ -92482,8 +92482,8 @@ name = "\improper Departure Lounge" }) "cYY" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cYZ" = ( @@ -92523,7 +92523,6 @@ }, /area/solar/starboard) "cZc" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -92534,10 +92533,10 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cZd" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -92553,6 +92552,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cZe" = ( @@ -92596,11 +92596,11 @@ name = "\improper Arcade" }) "cZj" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cZk" = ( @@ -92807,8 +92807,8 @@ name = "\improper Arcade" }) "cZA" = ( -/turf/space, /obj/item/stack/cable_coil, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cZB" = ( @@ -93002,11 +93002,11 @@ /turf/simulated/shuttle/plating, /area/shuttle/escape) "cZW" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "cZX" = ( @@ -94632,7 +94632,6 @@ name = "\improper Secure Lab" }) "dcv" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -94648,6 +94647,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "dcw" = ( @@ -94845,7 +94845,6 @@ /turf/simulated/shuttle/floor, /area/shuttle/escape) "dcN" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -94856,6 +94855,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "dcO" = ( @@ -95128,11 +95128,11 @@ /turf/space, /area/space) "ddw" = ( -/turf/space, /obj/effect/landmark{ name = "xeno_spawn"; pixel_x = -1 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddx" = ( @@ -95200,11 +95200,11 @@ name = "\improper Secure Lab" }) "ddD" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddE" = ( diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm index 25a1d408e93..5533ba2af8d 100644 --- a/_maps/map_files/MetaStation/z2.dmm +++ b/_maps/map_files/MetaStation/z2.dmm @@ -231,8 +231,8 @@ }, /area/holodeck/source_desert) "aJ" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding2 (EAST)"; icon_state = "wood_siding2"; @@ -248,8 +248,8 @@ /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) "aM" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding2 (EAST)"; icon_state = "wood_siding2"; @@ -315,8 +315,8 @@ }, /area/holodeck/source_picnicarea) "aU" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding5"; icon_state = "wood_siding5"; @@ -336,8 +336,8 @@ }, /area/holodeck/source_picnicarea) "aX" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding9"; icon_state = "wood_siding9"; @@ -388,8 +388,8 @@ }, /area/holodeck/source_desert) "bf" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding6"; icon_state = "wood_siding6"; @@ -397,8 +397,8 @@ }, /area/holodeck/source_picnicarea) "bg" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding10"; icon_state = "wood_siding10"; @@ -452,8 +452,8 @@ }, /area/holodeck/source_theatre) "bo" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding1"; icon_state = "wood_siding1"; @@ -461,8 +461,8 @@ }, /area/holodeck/source_picnicarea) "bp" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding1"; icon_state = "wood_siding1"; @@ -867,10 +867,10 @@ }, /area/holodeck/source_meetinghall) "cq" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/tree/pine{ pixel_x = 1 }, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ icon_state = "gravsnow_corner" }, @@ -3619,10 +3619,10 @@ }, /area/syndicate_mothership) "jZ" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/tree/pine{ pixel_x = 1 }, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; @@ -3757,8 +3757,8 @@ /turf/space/transit, /area/wizard_station) "kr" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/tree/pine, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ icon_state = "gravsnow_corner" }, @@ -3772,8 +3772,8 @@ /turf/simulated/floor/plating/airless, /area/wizard_station) "kt" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ icon_state = "gravsnow_corner" }, @@ -3961,8 +3961,8 @@ /turf/unsimulated/wall, /area/tdome/tdomeobserve) "kW" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; @@ -4507,8 +4507,8 @@ /turf/unsimulated/floor/abductor, /area/abductor_ship) "mB" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; @@ -4801,9 +4801,9 @@ }, /area/syndicate_mothership) "nh" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ dir = 8; icon_state = "diagonalWall3" @@ -4819,9 +4819,9 @@ /turf/simulated/floor/plating, /area/shuttle/assault_pod) "nj" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ dir = 1; icon_state = "diagonalWall3" @@ -5099,8 +5099,8 @@ /turf/unsimulated/floor/snow, /area/syndicate_mothership) "nP" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; @@ -5201,9 +5201,9 @@ }, /area/syndicate_mothership) "oa" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; @@ -5211,9 +5211,9 @@ }, /area/shuttle/assault_pod) "ob" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ dir = 4; icon_state = "diagonalWall3" @@ -5339,8 +5339,8 @@ }, /area/syndicate_mothership) "os" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/bush, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; @@ -5520,8 +5520,8 @@ }, /area/wizard_station) "oS" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/bush, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; diff --git a/_maps/map_files/MetaStation/z4.dmm b/_maps/map_files/MetaStation/z4.dmm index 3f3b3ae1ab9..95277b92bf9 100644 --- a/_maps/map_files/MetaStation/z4.dmm +++ b/_maps/map_files/MetaStation/z4.dmm @@ -4863,8 +4863,8 @@ /turf/simulated/floor/plating/airless, /area/derelict/se_solar) "nv" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nw" = ( @@ -4896,11 +4896,11 @@ /turf/simulated/floor/plating/airless, /area/derelict/hallway/secondary) "nA" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nB" = ( @@ -4915,13 +4915,13 @@ /turf/simulated/floor/plating/airless, /area/solar/derelict_aft) "nC" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nD" = ( @@ -4941,7 +4941,6 @@ /turf/simulated/floor/plating/airless, /area/solar/derelict_aft) "nF" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -4957,10 +4956,10 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nG" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -4971,19 +4970,19 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nH" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nI" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -5000,10 +4999,10 @@ icon_state = "1-2"; pixel_y = 0 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nJ" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -5014,10 +5013,10 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nK" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -5033,11 +5032,12 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "nL" = ( -/turf/space, /obj/item/stack/cable_coil/cut, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "nM" = ( @@ -5146,7 +5146,6 @@ /turf/simulated/floor/plating/airless, /area/derelict/hallway/secondary) "of" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -5157,6 +5156,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "og" = ( @@ -5175,7 +5175,6 @@ /turf/simulated/floor/plating/airless, /area/space) "oj" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -5186,6 +5185,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/derelict_aft) "ok" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm index 296c5013867..8ce28e665a2 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm @@ -1809,7 +1809,6 @@ }, /area/ruin/space/ancientstation/engi) "eK" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable/yellow{ d1 = 2; d2 = 4; @@ -1820,6 +1819,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "eL" = ( @@ -2997,12 +2997,12 @@ }, /area/ruin/space/ancientstation/sec) "hf" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "hg" = ( @@ -3117,7 +3117,6 @@ }, /area/ruin/space/ancientstation/kitchen) "hs" = ( -/turf/simulated/floor/plating/airless, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -3131,6 +3130,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "ht" = ( @@ -3302,7 +3302,6 @@ }, /area/ruin/space/ancientstation/kitchen) "hJ" = ( -/turf/simulated/floor/plating/airless, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -3311,6 +3310,7 @@ d2 = 8; icon_state = "4-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "hK" = ( @@ -3704,7 +3704,6 @@ /turf/simulated/floor/plating, /area/ruin/space/ancientstation/deltacorridor) "iB" = ( -/turf/simulated/floor/plating/airless, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -3723,6 +3722,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "iC" = ( @@ -3826,21 +3826,21 @@ /turf/simulated/floor/plasteel, /area/ruin/space/ancientstation/powered) "iO" = ( -/turf/simulated/floor/plating, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/simulated/floor/plating, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "iP" = ( -/turf/simulated/floor/plating, /obj/structure/cable/yellow{ d1 = 1; d2 = 8; icon_state = "1-8" }, +/turf/simulated/floor/plating, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "iQ" = ( @@ -4130,12 +4130,12 @@ }, /area/ruin/space/ancientstation/proto) "jw" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable/yellow{ d1 = 1; d2 = 8; icon_state = "1-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "jx" = ( @@ -4483,12 +4483,12 @@ /turf/simulated/floor/plating/airless, /area/ruin/space/ancientstation/atmo) "kl" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "km" = ( @@ -4579,12 +4579,12 @@ /turf/simulated/floor/plating/airless, /area/ruin/space/ancientstation/atmo) "kv" = ( -/turf/simulated/floor/plating, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/turf/simulated/floor/plating, /turf/simulated/floor/plating/airless/catwalk, /area/template_noop) "kw" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm index da654b419ba..54e511a4373 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm @@ -143,8 +143,8 @@ name = "Space Bar" }) "aA" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -157,8 +157,8 @@ /turf/simulated/shuttle/floor, /area/ruin/powered) "aC" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f9"; dir = 2 @@ -442,8 +442,8 @@ /turf/simulated/floor/plating, /area/ruin/powered) "bp" = ( -/turf/simulated/floor/plating/airless/asteroid, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating/airless/asteroid, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -464,8 +464,8 @@ /turf/simulated/floor/plating, /area/ruin/powered) "bs" = ( -/turf/simulated/floor/plating/airless/asteroid, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating/airless/asteroid, /turf/simulated/shuttle/wall{ icon_state = "swall_f9"; dir = 2 diff --git a/_maps/map_files/RandomZLevels/centcomAway.dmm b/_maps/map_files/RandomZLevels/centcomAway.dmm index f252a7a79ee..bd6b40c51de 100644 --- a/_maps/map_files/RandomZLevels/centcomAway.dmm +++ b/_maps/map_files/RandomZLevels/centcomAway.dmm @@ -1052,7 +1052,6 @@ /turf/simulated/floor/plating, /area/awaymission/centcomAway/maint) "cN" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -1060,10 +1059,10 @@ pixel_x = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/awaymission/centcomAway/maint) "cO" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -1083,6 +1082,7 @@ pixel_x = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/awaymission/centcomAway/maint) "cP" = ( @@ -1538,7 +1538,6 @@ }, /area/awaymission/centcomAway/hangar) "dU" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -1552,6 +1551,7 @@ pixel_x = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/awaymission/centcomAway/maint) "dV" = ( @@ -1639,7 +1639,6 @@ }, /area/awaymission/centcomAway/hangar) "eh" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -1647,6 +1646,7 @@ pixel_y = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/awaymission/centcomAway/maint) "ei" = ( @@ -1692,9 +1692,9 @@ /turf/simulated/floor/plating, /area/awaymission/centcomAway/hangar) "eo" = ( -/turf/space, /obj/structure/cable, /obj/machinery/power/tracker, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/awaymission/centcomAway/maint) "ep" = ( @@ -4679,20 +4679,20 @@ }, /area/awaymission/centcomAway/general) "ls" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 }, /area/awaymission/centcomAway/hangar) "lt" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index e84e748a047..ac402732149 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -619,8 +619,8 @@ }, /area/shuttle/abandoned) "abG" = ( -/turf/space, /obj/machinery/porta_turret/syndicate, +/turf/space, /turf/simulated/shuttle/wall{ dir = 8; icon_state = "diagonalWall3" @@ -686,8 +686,8 @@ /turf/simulated/shuttle/plating, /area/shuttle/syndicate) "abL" = ( -/turf/space, /obj/machinery/porta_turret/syndicate, +/turf/space, /turf/simulated/shuttle/wall{ dir = 1; icon_state = "diagonalWall3" @@ -6583,12 +6583,12 @@ /turf/simulated/floor/plating, /area/security/hos) "alD" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, /obj/machinery/power/tracker, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "alE" = ( @@ -7005,7 +7005,6 @@ /turf/simulated/floor/plasteel, /area/security/main) "amo" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -7013,6 +7012,7 @@ pixel_y = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "amp" = ( @@ -7386,12 +7386,12 @@ }, /area/security/hos) "amU" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, /obj/machinery/power/tracker, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "amV" = ( @@ -7543,8 +7543,8 @@ }, /area/security/permabrig) "ann" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "ano" = ( @@ -7784,7 +7784,6 @@ /turf/simulated/floor/plasteel, /area/security/seceqstorage) "anG" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -7792,6 +7791,7 @@ pixel_y = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "anH" = ( @@ -8457,7 +8457,6 @@ /turf/simulated/floor/plasteel, /area/security/main) "aoK" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -8470,6 +8469,7 @@ icon_state = "2-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "aoL" = ( @@ -8827,7 +8827,6 @@ /turf/simulated/floor/plating, /area/security/main) "apn" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -8846,6 +8845,7 @@ icon_state = "1-2"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "apo" = ( @@ -9794,8 +9794,8 @@ }, /area/lawoffice) "arb" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "arc" = ( @@ -10294,7 +10294,6 @@ }, /area/security/evidence) "arL" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -10307,10 +10306,10 @@ icon_state = "2-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "arM" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -10330,14 +10329,15 @@ icon_state = "2-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "arN" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "arO" = ( @@ -10406,11 +10406,11 @@ /turf/simulated/floor/plating, /area/maintenance/fsmaint) "arU" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "arV" = ( @@ -11005,7 +11005,6 @@ }, /area/shuttle/trade/sol) "asL" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -11025,10 +11024,10 @@ icon_state = "1-8"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "asM" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -11041,6 +11040,7 @@ icon_state = "1-8"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "asN" = ( @@ -13076,7 +13076,6 @@ }, /area/security/permabrig) "avM" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1450; @@ -13086,6 +13085,7 @@ pixel_y = -25; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "avN" = ( @@ -13419,7 +13419,6 @@ /turf/simulated/floor/plasteel, /area/security/processing) "awk" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -13434,6 +13433,7 @@ pixel_y = 1; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxport) "awl" = ( @@ -13712,10 +13712,10 @@ }, /area/security/permabrig) "awP" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f6"; icon_state = "swall_f6"; @@ -13723,20 +13723,20 @@ }, /area/shuttle/pod_3) "awQ" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "awR" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "awS" = ( @@ -14009,13 +14009,13 @@ }, /area/lawoffice) "axq" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "axr" = ( @@ -14331,10 +14331,10 @@ }, /area/security/prison/cell_block/A) "axN" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f5"; icon_state = "swall_f5"; @@ -14810,7 +14810,6 @@ }, /area/security/execution) "ayE" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -14826,6 +14825,7 @@ icon_state = "1-2"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/auxstarboard) "ayF" = ( @@ -15160,7 +15160,6 @@ /turf/simulated/wall/r_wall, /area/security/processing) "azb" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1450; @@ -15170,6 +15169,7 @@ pixel_y = -25; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "azc" = ( @@ -16526,7 +16526,6 @@ /turf/simulated/floor/plating, /area/maintenance/fsmaint) "aBx" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -16536,6 +16535,7 @@ pixel_y = 0; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aBy" = ( @@ -18244,7 +18244,6 @@ /turf/simulated/floor/plating, /area/maintenance/fpmaint2) "aEM" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -18254,6 +18253,7 @@ pixel_y = -25; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "aEN" = ( @@ -22883,16 +22883,16 @@ /turf/simulated/floor/plating, /area/maintenance/electrical) "aON" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 }, /area/shuttle/pod_1) "aOO" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f9"; dir = 2 @@ -23350,8 +23350,8 @@ /turf/simulated/wall, /area/maintenance/electrical) "aPP" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -23405,8 +23405,8 @@ }, /area/hallway/secondary/entry) "aPU" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ icon_state = "swall_f9"; dir = 2 @@ -33754,6 +33754,13 @@ }, /area/hydroponics) "bje" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, /turf/simulated/floor/plasteel{ dir = 2; icon_state = "asteroid"; @@ -33764,13 +33771,6 @@ icon_state = "siding2"; dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, /turf/simulated/floor/plasteel{ tag = "icon-siding1 (NORTH)"; icon_state = "siding1"; @@ -33782,16 +33782,6 @@ /turf/simulated/floor/wood, /area/crew_quarters/bar) "bjg" = ( -/turf/simulated/floor/plasteel{ - dir = 2; - icon_state = "asteroid"; - tag = "icon-asteroid (NORTH)" - }, -/turf/simulated/floor/plasteel{ - tag = "icon-siding1 (NORTH)"; - icon_state = "siding1"; - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -33799,13 +33789,6 @@ dir = 4 }, /mob/living/simple_animal/pig, -/turf/simulated/floor/plasteel{ - tag = "icon-siding2 (NORTH)"; - icon_state = "siding2"; - dir = 1 - }, -/area/hydroponics) -"bjh" = ( /turf/simulated/floor/plasteel{ dir = 2; icon_state = "asteroid"; @@ -33816,12 +33799,29 @@ icon_state = "siding1"; dir = 1 }, +/turf/simulated/floor/plasteel{ + tag = "icon-siding2 (NORTH)"; + icon_state = "siding2"; + dir = 1 + }, +/area/hydroponics) +"bjh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "asteroid"; + tag = "icon-asteroid (NORTH)" + }, +/turf/simulated/floor/plasteel{ + tag = "icon-siding1 (NORTH)"; + icon_state = "siding1"; + dir = 1 + }, /turf/simulated/floor/plasteel{ tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; @@ -40654,12 +40654,12 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "bwX" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 @@ -41450,12 +41450,12 @@ }, /area/hallway/primary/central/ne) "bys" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 @@ -66711,7 +66711,6 @@ /turf/simulated/floor/plating, /area/medical/virology) "cpz" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -66724,6 +66723,7 @@ icon_state = "2-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cpA" = ( @@ -80065,7 +80065,6 @@ /turf/simulated/floor/plating, /area/maintenance/asmaint) "cMB" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -80084,6 +80083,7 @@ icon_state = "1-2"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cMC" = ( @@ -80626,11 +80626,11 @@ /turf/simulated/floor/plating, /area/maintenance/aft) "cNE" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 10; level = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cNF" = ( @@ -81635,13 +81635,13 @@ /turf/simulated/floor/plasteel, /area/assembly/assembly_line) "cPw" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cPx" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cPy" = ( @@ -81684,12 +81684,12 @@ /turf/simulated/floor/plasteel, /area/atmos/distribution) "cPC" = ( -/turf/space, /obj/machinery/power/tracker, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cPD" = ( @@ -81729,29 +81729,29 @@ }, /area/toxins/xenobiology) "cPG" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cPH" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cPI" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cPJ" = ( @@ -81920,7 +81920,6 @@ /turf/simulated/floor/plating, /area/atmos/distribution) "cQa" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -81936,6 +81935,7 @@ icon_state = "4-8"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cQb" = ( @@ -82066,11 +82066,11 @@ /turf/space, /area/space) "cQq" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cQr" = ( @@ -82566,7 +82566,6 @@ /turf/simulated/floor/plasteel, /area/atmos/distribution) "cRe" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -82585,6 +82584,7 @@ icon_state = "1-2"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cRf" = ( @@ -83267,7 +83267,6 @@ /turf/simulated/floor/plating, /area/maintenance/aft) "cSk" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -83280,6 +83279,7 @@ icon_state = "1-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/port) "cSl" = ( @@ -84245,7 +84245,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/asmaint) "cTR" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1450; @@ -84255,6 +84254,7 @@ pixel_y = 8; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cTS" = ( @@ -86906,12 +86906,12 @@ /turf/simulated/floor/plasteel, /area/maintenance/turbine) "cYz" = ( -/turf/space, /obj/machinery/access_button/airlock_exterior{ master_tag = "atmospherics_south"; pixel_x = -25; pixel_y = -8 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "cYA" = ( @@ -89473,7 +89473,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/turbine) "ddA" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -89490,6 +89489,7 @@ pixel_y = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddB" = ( @@ -89500,19 +89500,18 @@ /turf/simulated/floor/plating, /area/maintenance/asmaint2) "ddC" = ( -/turf/space, /obj/structure/transit_tube{ icon_state = "E-W-Pass" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ddD" = ( -/turf/space, /obj/item/wrench, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ddE" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -89520,6 +89519,7 @@ pixel_y = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddF" = ( @@ -89573,7 +89573,6 @@ /turf/space, /area/space) "ddM" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; @@ -89583,23 +89582,23 @@ pixel_y = 25; req_access_txt = "75;13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ddN" = ( -/turf/space, /obj/structure/cable, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddO" = ( -/turf/space, /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 6; level = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/space) "ddP" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -89612,10 +89611,10 @@ icon_state = "1-4"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddQ" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -89635,14 +89634,15 @@ pixel_x = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddR" = ( -/turf/space, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddS" = ( @@ -89650,15 +89650,14 @@ /turf/simulated/floor/plating, /area/engine/engineering) "ddT" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddU" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -89678,10 +89677,10 @@ pixel_x = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddV" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -89694,13 +89693,14 @@ icon_state = "2-8"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "ddW" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f6"; icon_state = "swall_f6"; @@ -89708,7 +89708,6 @@ }, /area/shuttle/pod_4) "ddX" = ( -/turf/space, /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1450; @@ -89718,16 +89717,17 @@ pixel_y = 25; req_access_txt = "13" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk0"; icon_state = "catwalk0" }, /area/space) "ddY" = ( -/turf/simulated/floor/plating, /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, +/turf/simulated/floor/plating, /turf/simulated/shuttle/wall{ tag = "icon-swall_f5"; icon_state = "swall_f5"; @@ -89756,7 +89756,6 @@ /turf/simulated/floor/plating, /area/maintenance/asmaint2) "deb" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -89767,6 +89766,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "dec" = ( @@ -89774,15 +89774,14 @@ /turf/simulated/floor/plasteel, /area/atmos) "ded" = ( -/turf/space, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "dee" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -89790,10 +89789,10 @@ pixel_x = 0; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "def" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -89812,12 +89811,13 @@ icon_state = "1-2"; tag = "" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "deg" = ( -/turf/space, /obj/structure/cable, /obj/machinery/power/tracker, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/solar/starboard) "deh" = ( diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 4b46b076295..0dc62cde008 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -410,8 +410,8 @@ }, /area/holodeck/source_meetinghall) "bg" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding5"; icon_state = "wood_siding5"; @@ -441,8 +441,8 @@ /turf/unsimulated/floor/plating/vox, /area/vox_station) "bm" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding9"; icon_state = "wood_siding9"; @@ -516,8 +516,8 @@ }, /area/holodeck/source_meetinghall) "bw" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ tag = "icon-wood_siding6"; icon_state = "wood_siding6"; @@ -743,8 +743,8 @@ }, /area/space) "cd" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ dir = 2; icon_state = "wood_siding4"; @@ -838,8 +838,8 @@ }, /area/space) "cs" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ dir = 2; icon_state = "wood_siding10"; @@ -847,8 +847,8 @@ }, /area/holodeck/source_picnicarea) "ct" = ( -/turf/simulated/floor/holofloor/grass, /obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/holofloor/grass, /turf/simulated/floor/holofloor{ dir = 2; icon_state = "wood_siding8"; @@ -2882,10 +2882,10 @@ }, /area/syndicate_mothership) "ht" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/tree/pine{ pixel_x = 1 }, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; @@ -3038,8 +3038,8 @@ }, /area/syndicate_mothership) "hP" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; @@ -3207,8 +3207,8 @@ }, /area/syndicate_mothership) "ip" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; @@ -3362,10 +3362,10 @@ /turf/simulated/floor/plating/airless, /area/syndicate_mothership) "iH" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/tree/pine{ pixel_x = 1 }, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ icon_state = "gravsnow_corner" }, @@ -3422,9 +3422,9 @@ }, /area/syndicate_mothership) "iO" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ dir = 8; icon_state = "diagonalWall3" @@ -3440,9 +3440,9 @@ /turf/simulated/floor/plating, /area/shuttle/assault_pod) "iQ" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ dir = 1; icon_state = "diagonalWall3" @@ -3885,9 +3885,9 @@ }, /area/syndicate_mothership) "kc" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; @@ -3916,9 +3916,9 @@ }, /area/wizard_station) "kh" = ( +/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/floor/pod, /turf/space, -/obj/machinery/porta_turret/syndicate/pod, /turf/simulated/shuttle/wall{ dir = 4; icon_state = "diagonalWall3" @@ -3978,8 +3978,8 @@ }, /area/syndicate_mothership) "ko" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/bush, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; @@ -5439,26 +5439,26 @@ }, /area/syndicate_mothership) "nX" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/tree/pine, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ icon_state = "gravsnow_corner" }, /area/syndicate_mothership) "nY" = ( -/turf/unsimulated/floor/snow, /obj/structure/flora/grass/brown, +/turf/unsimulated/floor/snow, /turf/unsimulated/floor/snow{ icon_state = "gravsnow_corner" }, /area/syndicate_mothership) "nZ" = ( -/turf/unsimulated/floor{ - icon_state = "engine" - }, /obj/structure/window/reinforced{ dir = 1 }, +/turf/unsimulated/floor{ + icon_state = "engine" + }, /turf/unsimulated/wall{ dir = 1; icon = 'icons/turf/shuttle.dmi'; @@ -5466,12 +5466,12 @@ }, /area/admin) "oa" = ( -/turf/unsimulated/floor{ - icon_state = "engine" - }, /obj/structure/window/reinforced{ dir = 1 }, +/turf/unsimulated/floor{ + icon_state = "engine" + }, /turf/unsimulated/wall{ dir = 8; icon = 'icons/turf/shuttle.dmi'; diff --git a/_maps/map_files/cyberiad/z4.dmm b/_maps/map_files/cyberiad/z4.dmm index 9edf8b675d0..e533422b39a 100644 --- a/_maps/map_files/cyberiad/z4.dmm +++ b/_maps/map_files/cyberiad/z4.dmm @@ -908,12 +908,12 @@ }, /area/engiestation/solars) "cu" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk3"; icon_state = "catwalk3" @@ -930,7 +930,6 @@ }, /area/engiestation/solars) "cw" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -941,6 +940,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk3"; icon_state = "catwalk3" @@ -972,7 +972,6 @@ /turf/simulated/floor/plasteel/airless, /area/constructionsite/hallway/center) "cA" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -983,13 +982,13 @@ d2 = 8; icon_state = "2-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk3"; icon_state = "catwalk3" }, /area/engiestation/solars) "cB" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -1005,6 +1004,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk3"; icon_state = "catwalk3" @@ -1093,7 +1093,6 @@ }, /area/engiestation/solars) "cN" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -1104,13 +1103,13 @@ d2 = 8; icon_state = "2-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk1"; icon_state = "catwalk1" }, /area/engiestation/solars) "cO" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -1126,6 +1125,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk1"; icon_state = "catwalk1" @@ -1332,7 +1332,6 @@ }, /area/engiestation/solars) "dp" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -1343,13 +1342,13 @@ d2 = 4; icon_state = "1-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" }, /area/engiestation/solars) "dq" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -1366,13 +1365,13 @@ d2 = 4; icon_state = "1-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" }, /area/engiestation/solars) "dr" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -1389,6 +1388,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk8"; icon_state = "catwalk8" @@ -1487,7 +1487,6 @@ }, /area/engiestation) "dy" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -1504,13 +1503,13 @@ icon_state = "4-8"; pixel_x = 0 }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk4"; icon_state = "catwalk4" }, /area/engiestation/solars) "dz" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -1527,13 +1526,13 @@ icon_state = "4-8"; pixel_x = 0 }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" }, /area/engiestation/solars) "dA" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -1544,6 +1543,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" @@ -1702,19 +1702,18 @@ /turf/simulated/floor/plating/airless, /area/constructionsite/ai) "dS" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" }, /area/engiestation/solars) "dT" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -1726,13 +1725,13 @@ d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" }, /area/engiestation/solars) "dU" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -1744,6 +1743,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk8"; icon_state = "catwalk8" @@ -1792,7 +1792,6 @@ }, /area/engiestation) "ea" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -1804,13 +1803,13 @@ icon_state = "4-8"; pixel_x = 0 }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk4"; icon_state = "catwalk4" }, /area/engiestation/solars) "eb" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -1822,18 +1821,19 @@ icon_state = "4-8"; pixel_x = 0 }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" }, /area/engiestation/solars) "ec" = ( -/turf/simulated/floor/plating/airless, /obj/structure/cable{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk12"; icon_state = "catwalk12" @@ -2642,8 +2642,8 @@ }, /area/space) "fR" = ( -/turf/simulated/floor/plating/airless, /obj/item/lighter/zippo, +/turf/simulated/floor/plating/airless, /turf/simulated/floor/plating/airless/catwalk{ tag = "icon-catwalk8"; icon_state = "catwalk8" diff --git a/_maps/map_files/cyberiad/z6.dmm b/_maps/map_files/cyberiad/z6.dmm index 268339344ab..08f7dc62ebe 100644 --- a/_maps/map_files/cyberiad/z6.dmm +++ b/_maps/map_files/cyberiad/z6.dmm @@ -61,7 +61,6 @@ /turf/simulated/floor/plating, /area/djstation) "an" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -77,6 +76,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation/solars) "ao" = ( @@ -88,12 +88,12 @@ /turf/space, /area/space) "ap" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation/solars) "aq" = ( @@ -120,12 +120,12 @@ /turf/simulated/floor/plating, /area/djstation) "as" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation) "at" = ( @@ -297,7 +297,6 @@ /turf/simulated/floor/plating, /area/derelict/bridge) "aQ" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -313,10 +312,10 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation) "aR" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -332,19 +331,19 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation/solars) "aS" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation/solars) "aT" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -360,6 +359,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation/solars) "aU" = ( @@ -371,7 +371,6 @@ /turf/simulated/floor/plating, /area/djstation) "aV" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -387,6 +386,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/djstation) "aW" = ( @@ -4329,11 +4329,11 @@ name = "Derelict Annex" }) "jj" = ( +/obj/effect/landmark/burnturf, /turf/simulated/floor/plasteel{ dir = 2; icon_state = "cautionfull" }, -/obj/effect/landmark/burnturf, /turf/simulated/wall/mineral/titanium/nodecon/tileblend{ fixed_underlay = list("icon" = 'icons/turf/floors.dmi', "icon_state" = "cautionfull"); icon_state = "4-i" @@ -4587,7 +4587,6 @@ name = "Derelict Annex" }) "jK" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -4603,6 +4602,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "jL" = ( @@ -6688,12 +6688,12 @@ }, /area/syndicate_depot/core) "oS" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "oT" = ( @@ -7746,16 +7746,15 @@ }, /area/derelict/crew_quarters) "rm" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "rn" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7766,6 +7765,7 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "ro" = ( @@ -7978,7 +7978,6 @@ }, /area/derelict/crew_quarters) "rF" = ( -/turf/space, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -7994,6 +7993,7 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "rG" = ( @@ -8262,7 +8262,6 @@ }, /area/derelict/crew_quarters) "sh" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -8273,6 +8272,7 @@ d2 = 4; icon_state = "2-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "si" = ( @@ -8996,7 +8996,6 @@ }, /area/derelict/crew_quarters) "tE" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9007,6 +9006,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "tF" = ( @@ -9025,7 +9025,6 @@ }, /area/derelict/arrival) "tH" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -9041,6 +9040,7 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "tI" = ( @@ -9547,7 +9547,6 @@ name = "Derelict Annex" }) "uI" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -9564,6 +9563,7 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "uJ" = ( @@ -9704,13 +9704,13 @@ name = "Derelict Annex" }) "uV" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteredfull" }, -/obj/structure/window/reinforced{ - dir = 1 - }, /turf/simulated/wall/mineral/titanium/nodecon/tileblend{ fixed_underlay = list("icon" = 'icons/turf/floors.dmi', "icon_state" = "whiteredfull"); icon_state = "4-i" @@ -9838,13 +9838,13 @@ name = "Derelict Annex" }) "vi" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteredfull" }, -/obj/structure/window/reinforced{ - dir = 8 - }, /turf/simulated/wall/mineral/titanium/nodecon/tileblend{ fixed_underlay = list("icon" = 'icons/turf/floors.dmi', "icon_state" = "whiteredfull"); icon_state = "4-i" @@ -9880,7 +9880,6 @@ /turf/space, /area/derelict/arrival) "vm" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9896,6 +9895,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "vn" = ( @@ -10452,7 +10452,6 @@ name = "Derelict Annex" }) "wl" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -10463,10 +10462,10 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "wm" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -10477,6 +10476,7 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "wn" = ( @@ -10487,7 +10487,6 @@ }, /area/derelict/crew_quarters) "wo" = ( -/turf/space, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -10503,10 +10502,10 @@ d2 = 8; icon_state = "2-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "wp" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -10522,10 +10521,10 @@ d2 = 4; icon_state = "1-4" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "wq" = ( -/turf/space, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -10541,6 +10540,7 @@ d2 = 8; icon_state = "1-8" }, +/turf/space, /turf/simulated/floor/plating/airless/catwalk, /area/derelict/solar_control) "wr" = ( diff --git a/_maps/map_files/shuttles/emergency_narnar.dmm b/_maps/map_files/shuttles/emergency_narnar.dmm index e8e89240ff7..b6bfe0376d6 100644 --- a/_maps/map_files/shuttles/emergency_narnar.dmm +++ b/_maps/map_files/shuttles/emergency_narnar.dmm @@ -296,13 +296,13 @@ /turf/simulated/floor/engine/cult, /area/shuttle/escape) "aR" = ( +/obj/effect/spawner/window/reinforced{ + color = "red" + }, /turf/simulated/shuttle/wall{ icon_state = "swall3"; dir = 2 }, -/obj/effect/spawner/window/reinforced{ - color = "red" - }, /turf/simulated/wall/cult, /area/shuttle/escape) "aS" = ( diff --git a/_maps/map_files/shuttles/ferry_base.dmm b/_maps/map_files/shuttles/ferry_base.dmm index 87658df37bf..a5e2d5aef05 100644 --- a/_maps/map_files/shuttles/ferry_base.dmm +++ b/_maps/map_files/shuttles/ferry_base.dmm @@ -3,12 +3,12 @@ /turf/space, /area/space) "b" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 @@ -98,12 +98,12 @@ /turf/simulated/shuttle/floor, /area/shuttle/transport) "o" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 diff --git a/_maps/map_files/shuttles/ferry_meat.dmm b/_maps/map_files/shuttles/ferry_meat.dmm index 1a085c97f7d..a4008980d4a 100644 --- a/_maps/map_files/shuttles/ferry_meat.dmm +++ b/_maps/map_files/shuttles/ferry_meat.dmm @@ -3,12 +3,12 @@ /turf/space, /area/space) "b" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f6"; dir = 2 @@ -153,12 +153,12 @@ /turf/simulated/shuttle/floor, /area/shuttle/transport) "s" = ( -/turf/space, /obj/structure/shuttle/engine/propulsion{ dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)" }, +/turf/space, /turf/simulated/shuttle/wall{ icon_state = "swall_f5"; dir = 2 diff --git a/tools/mapmerge2/README.md b/tools/mapmerge2/README.md index 1cd29510100..0ff4d21ac2e 100644 --- a/tools/mapmerge2/README.md +++ b/tools/mapmerge2/README.md @@ -13,17 +13,20 @@ version of the map while maintaining all the actual changes. It requires an old version of the map to use as a reference and a new version of the map which contains the desired changes. -## Installation/Usage +## Installation -To install Python dependencies, run `Install Requirements.bat` +To install Python dependencies, run `requirements-install.bat`, or run +`python -m pip install -r requirements.txt` directly. See the [Git hooks] +documentation to install the Git pre-commit hook which runs the map merger +automatically, or use `tools/mapmerge/Prepare Maps.bat` to save backups before +running `mapmerge.bat`. -**BEFORE** making a map edit, run `Prepare Maps.bat` to create your backups. *These are required to run mapmerge successfully.* - -**AFTER** you have made your edit, run `Run Mapmerge.bat` to merge the maps. +For up-to-date installation and detailed troubleshooting instructions, visit +the [Map Merger] wiki article. ## Code Structure -All the scripts are inside the `/src/` folder. Frontend scripts are meant to be run directly. They obey the environment +Frontend scripts are meant to be run directly. They obey the environment variables `TGM` to set whether files are saved in TGM (1) or DMM (0) format, and `MAPROOT` to determine where maps are kept. By default, TGM is used and the map root is autodetected. Each script may either prompt for the desired map @@ -31,12 +34,19 @@ or be run with command-line parameters indicating which maps to act on. The scripts include: * `convert.py` for converting maps to and from the TGM format. Used by - `Convert DMM to TGM.bat` and `Convert TGM to DMM.bat`. + `tgm2dmm.bat` and `dmm2tgm.bat`. * `mapmerge.py` for running the map merge on map backups saved by - `Prepare Maps.bat`. Used by `Run Mapmerge.bat` + `Prepare Maps.bat`. Used by `mapmerge.bat` Implementation modules: * `dmm.py` includes the map reader and writer. * `mapmerge.py` includes the implementation of the map merge operation. * `frontend.py` includes the common code for the frontend scripts. + +`precommit.py` is run by the [Git hooks] if installed, and merges the new +version of any map saved in the index (`git add`ed) with the old version stored +in Git when run. + +[Map Merger]: https://tgstation13.org/wiki/Map_Merger +[Git hooks]: ../hooks/README.md diff --git a/tools/mapmerge2/src/convert.py b/tools/mapmerge2/convert.py similarity index 100% rename from tools/mapmerge2/src/convert.py rename to tools/mapmerge2/convert.py diff --git a/tools/mapmerge2/dmi.py b/tools/mapmerge2/dmi.py new file mode 100644 index 00000000000..f0a8182c9f0 --- /dev/null +++ b/tools/mapmerge2/dmi.py @@ -0,0 +1,253 @@ +# Tools for working with modern DreamMaker icon files (PNGs + metadata) + +import math +from PIL import Image +from PIL.PngImagePlugin import PngInfo + +DEFAULT_SIZE = 32, 32 +LOOP_UNLIMITED = 0 +LOOP_ONCE = 1 + +NORTH = 1 +SOUTH = 2 +EAST = 4 +WEST = 8 +SOUTHEAST = SOUTH|EAST +SOUTHWEST = SOUTH|WEST +NORTHEAST = NORTH|EAST +NORTHWEST = NORTH|WEST + +CARDINALS = [NORTH, SOUTH, EAST, WEST] +DIR_ORDER = [SOUTH, NORTH, EAST, WEST, SOUTHEAST, SOUTHWEST, NORTHEAST, NORTHWEST] +DIR_NAMES = { + 'SOUTH': SOUTH, + 'NORTH': NORTH, + 'EAST': EAST, + 'WEST': WEST, + 'SOUTHEAST': SOUTHEAST, + 'SOUTHWEST': SOUTHWEST, + 'NORTHEAST': NORTHEAST, + 'NORTHWEST': NORTHWEST, + **{str(x): x for x in DIR_ORDER}, + **{x: x for x in DIR_ORDER}, + '0': SOUTH, + None: SOUTH, +} + +class Dmi: + version = "4.0" + + def __init__(self, width, height): + self.width = width + self.height = height + self.states = [] + + @classmethod + def from_file(cls, fname): + image = Image.open(fname) + + # no metadata = regular image file + if 'Description' not in image.info: + dmi = Dmi(*image.size) + state = dmi.state("") + state.frame(image) + return dmi + + # read metadata + metadata = image.info['Description'] + line_iter = iter(metadata.splitlines()) + assert next(line_iter) == "# BEGIN DMI" + assert next(line_iter) == f"version = {cls.version}" + + dmi = Dmi(*DEFAULT_SIZE) + state = None + + for line in line_iter: + if line == "# END DMI": + break + key, value = line.lstrip().split(" = ") + if key == 'width': + dmi.width = int(value) + elif key == 'height': + dmi.height = int(value) + elif key == 'state': + state = dmi.state(unescape(value)) + elif key == 'dirs': + state.dirs = int(value) + elif key == 'frames': + state._nframes = int(value) + elif key == 'delay': + state.delays = [parse_num(x) for x in value.split(',')] + elif key == 'loop': + state.loop = int(value) + elif key == 'rewind': + state.rewind = parse_bool(value) + elif key == 'hotspot': + x, y, frm = [int(x) for x in value.split(',')] + state.hotspot(frm - 1, x, y) + elif key == 'movement': + state.movement = parse_bool(value) + else: + raise NotImplementedError(key) + + # cut image into frames + width, height = image.size + gridwidth = width // dmi.width + i = 0 + for state in dmi.states: + for frame in range(state._nframes): + for dir in range(state.dirs): + px = dmi.width * (i % gridwidth) + py = dmi.height * (i // gridwidth) + im = image.crop((px, py, px + dmi.width, py + dmi.height)) + assert im.size == (dmi.width, dmi.height) + state.frames.append(im) + i += 1 + state._nframes = None + + return dmi + + def state(self, *args, **kwargs): + s = State(self, *args, **kwargs) + self.states.append(s) + return s + + @property + def default_state(self): + return self.states[0] + + def get_state(self, name): + for state in self.states: + if state.name == name: + return state + raise KeyError(name) + return self.default_state + + def _assemble_comment(self): + comment = "# BEGIN DMI\n" + comment += f"version = {self.version}\n" + comment += f"\twidth = {self.width}\n" + comment += f"\theight = {self.height}\n" + for state in self.states: + comment += f"state = {escape(state.name)}\n" + comment += f"\tdirs = {state.dirs}\n" + comment += f"\tframes = {state.framecount}\n" + if state.framecount > 1 and len(state.delays): #any(x != 1 for x in state.delays): + comment += "\tdelay = " + ",".join(map(str, state.delays)) + "\n" + if state.loop != 0: + comment += f"\tloop = {state.loop}\n" + if state.rewind: + comment += "\trewind = 1\n" + if state.movement: + comment += "\tmovement = 1\n" + if state.hotspots and any(state.hotspots): + current = None + for i, value in enumerate(state.hotspots): + if value != current: + x, y = value + comment += f"\thotspot = {x},{y},{i + 1}\n" + current = value + comment += "# END DMI" + return comment + + def to_file(self, filename, *, palette=False): + # assemble comment + comment = self._assemble_comment() + + # assemble spritesheet + W, H = self.width, self.height + num_frames = sum(len(state.frames) for state in self.states) + sqrt = math.ceil(math.sqrt(num_frames)) + output = Image.new('RGBA', (sqrt * W, math.ceil(num_frames / sqrt) * H)) + + i = 0 + for state in self.states: + for frame in state.frames: + output.paste(frame, ((i % sqrt) * W, (i // sqrt) * H)) + i += 1 + + # save + pnginfo = PngInfo() + pnginfo.add_text('Description', comment, zip=True) + if palette: + output = output.convert('P') + output.save(filename, 'png', optimize=True, pnginfo=pnginfo) + +class State: + def __init__(self, dmi, name, *, loop=LOOP_UNLIMITED, rewind=False, movement=False, dirs=1): + self.dmi = dmi + self.name = name + self.loop = loop + self.rewind = rewind + self.movement = movement + self.dirs = dirs + + self._nframes = None # used during loading only + self.frames = [] + self.delays = [] + self.hotspots = None + + @property + def framecount(self): + if self._nframes is not None: + return self._nframes + else: + return len(self.frames) // self.dirs + + def frame(self, image, *, delay=1): + assert image.size == (self.dmi.width, self.dmi.height) + self.delays.append(delay) + self.frames.append(image) + + def hotspot(self, first_frame, x, y): + if self.hotspots is None: + self.hotspots = [None] * self.framecount + for i in range(first_frame, self.framecount): + self.hotspots[i] = x, y + + def _frame_index(self, frame=0, dir=None): + ofs = DIR_ORDER.index(DIR_NAMES[dir]) + if ofs >= self.dirs: + ofs = 0 + return frame * self.dirs + ofs + + def get_frame(self, *args, **kwargs): + return self.frames[self._frame_index(*args, **kwargs)] + +def escape(text): + assert '\\' not in text and '"' not in text + return f'"{text}"' + +def unescape(text, quote='"'): + if text == 'null': + return None + if not (text.startswith(quote) and text.endswith(quote)): + raise ValueError(text) + text = text[1:-1] + assert '\\' not in text and quote not in text + return text + +def parse_num(value): + if '.' in value: + return float(value) + return int(value) + +def parse_bool(value): + if value not in ('0', '1'): + raise ValueError(value) + return value == '1' + +if __name__ == '__main__': + # test: can we load every DMI in the tree + import os + + count = 0 + for dirpath, dirnames, filenames in os.walk('.'): + if '.git' in dirnames: + dirnames.remove('.git') + for filename in filenames: + if filename.endswith('.dmi'): + Dmi.from_file(os.path.join(dirpath, filename)) + count += 1 + + print(f"Successfully parsed {count} dmi files") diff --git a/tools/mapmerge2/src/dmm.py b/tools/mapmerge2/dmm.py similarity index 85% rename from tools/mapmerge2/src/dmm.py rename to tools/mapmerge2/dmm.py index d76f07e32c6..8bb1dca3537 100644 --- a/tools/mapmerge2/src/dmm.py +++ b/tools/mapmerge2/dmm.py @@ -58,6 +58,23 @@ class DMM: raise RuntimeError("ran out of keys, this shouldn't happen") + def overwrite_key(self, key, fixed, bad_keys): + try: + self.dictionary[key] = fixed + return None + except bidict.DuplicationError: + old_key = self.dictionary.inv[fixed] + bad_keys[key] = old_key + print(f"Merging '{num_to_key(key, self.key_length)}' into '{num_to_key(old_key, self.key_length)}'") + return old_key + + def reassign_bad_keys(self, bad_keys): + if not bad_keys: + return + for k, v in self.grid.items(): + # reassign the grid entries which used the old key + self.grid[k] = bad_keys.get(v, v) + def _presave_checks(self): # last-second handling of bogus keys to help prevent and fix broken maps self._ensure_free_keys(0) @@ -70,9 +87,16 @@ class DMM: new_key = bad_keys[k] = self.generate_new_key() self.dictionary.forceput(new_key, self.dictionary[k]) print(f" {num_to_key(k, self.key_length, True)} -> {num_to_key(new_key, self.key_length)}") - for k, v in self.grid.items(): - # reassign the grid entries which used the old key - self.grid[k] = bad_keys.get(v, v) + + # handle entries in the dictionary which have atoms in the wrong order + keys = list(self.dictionary.keys()) + for key in keys: + value = self.dictionary[key] + if is_bad_atom_ordering(num_to_key(key, self.key_length, True), value): + fixed = tuple(fix_atom_ordering(value)) + self.overwrite_key(key, fixed, bad_keys) + + self.reassign_bad_keys(bad_keys) def _ensure_free_keys(self, desired): # ensure that free keys exist by increasing the key length if necessary @@ -179,6 +203,45 @@ def parse_map_atom(atom): return path, vars +def is_bad_atom_ordering(key, atoms): + seen_turfs = 0 + seen_areas = 0 + can_fix = False + for each in atoms: + if each.startswith('/turf'): + if seen_turfs == 1: + print(f"Warning: key '{key}' has multiple turfs!") + if seen_areas: + print(f"Warning: key '{key}' has area before turf (autofixing...)") + can_fix = True + seen_turfs += 1 + elif each.startswith('/area'): + if seen_areas == 1: + print(f"Warning: key '{key}' has multiple areas!!!") + seen_areas += 1 + else: + if (seen_turfs or seen_areas) and not can_fix: + print(f"Warning: key '{key}' has movable after turf or area (autofixing...)") + can_fix = True + if not seen_areas or not seen_turfs: + print(f"Warning: key '{key}' is missing either a turf or area") + return can_fix + +def fix_atom_ordering(atoms): + movables = [] + turfs = [] + areas = [] + for each in atoms: + if each.startswith('/turf'): + turfs.append(each) + elif each.startswith('/area'): + areas.append(each) + else: + movables.append(each) + movables.extend(turfs) + movables.extend(areas) + return movables + # ---------- # TGM writer @@ -307,7 +370,7 @@ def _parse(map_raw_text): continue elif in_comment_line: continue - elif char == "\t": + elif char in "\r\t": continue if char == "/" and not in_quote_block: @@ -415,6 +478,9 @@ def _parse(map_raw_text): # grid block for char in it: + if char == "\r": + continue + if in_coord_block: if char == ",": if reading_coord == "x": diff --git a/tools/mapmerge2/Convert DMM to TGM.bat b/tools/mapmerge2/dmm2tgm.bat similarity index 68% rename from tools/mapmerge2/Convert DMM to TGM.bat rename to tools/mapmerge2/dmm2tgm.bat index c100d61fe71..bcf6150c2ea 100644 --- a/tools/mapmerge2/Convert DMM to TGM.bat +++ b/tools/mapmerge2/dmm2tgm.bat @@ -1,5 +1,5 @@ @echo off set MAPROOT=../../_maps/ set TGM=1 -python ./src/convert.py +python convert.py pause diff --git a/tools/mapmerge2/src/frontend.py b/tools/mapmerge2/frontend.py similarity index 100% rename from tools/mapmerge2/src/frontend.py rename to tools/mapmerge2/frontend.py diff --git a/tools/mapmerge2/map_scripts/cornersfix.txt b/tools/mapmerge2/map_scripts/cornersfix.txt new file mode 100644 index 00000000000..d9ff8a20232 --- /dev/null +++ b/tools/mapmerge2/map_scripts/cornersfix.txt @@ -0,0 +1,30 @@ +/obj/effect/turf_decal/stripes/corner {dir=1} : /obj/item/bear_armor {@OLD;dir=8} +/obj/effect/turf_decal/stripes/corner {dir=2} : /obj/effect/turf_decal/stripes/corner {@OLD;dir=@SKIP} +/obj/effect/turf_decal/stripes/corner {dir=4} : /obj/effect/turf_decal/stripes/corner {@OLD;dir=1} +/obj/effect/turf_decal/stripes/corner {dir=8} : /obj/effect/turf_decal/stripes/corner {@OLD;dir=4} +/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/stripes/corner {@OLD} +/obj/effect/turf_decal/stripes/red/corner {dir=1} : /obj/item/bear_armor {@OLD;dir=8} +/obj/effect/turf_decal/stripes/red/corner {dir=2} : /obj/effect/turf_decal/stripes/red/corner {@OLD;dir=@SKIP} +/obj/effect/turf_decal/stripes/red/corner {dir=4} : /obj/effect/turf_decal/stripes/red/corner {@OLD;dir=1} +/obj/effect/turf_decal/stripes/red/corner {dir=8} : /obj/effect/turf_decal/stripes/red/corner {@OLD;dir=4} +/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/stripes/red/corner {@OLD} +/obj/effect/turf_decal/stripes/white/corner {dir=1} : /obj/item/bear_armor {@OLD;dir=8} +/obj/effect/turf_decal/stripes/white/corner {dir=2} : /obj/effect/turf_decal/stripes/white/corner {@OLD;dir=@SKIP} +/obj/effect/turf_decal/stripes/white/corner {dir=4} : /obj/effect/turf_decal/stripes/white/corner {@OLD;dir=1} +/obj/effect/turf_decal/stripes/white/corner {dir=8} : /obj/effect/turf_decal/stripes/white/corner {@OLD;dir=4} +/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/stripes/white/corner {@OLD} +/obj/effect/turf_decal/box/corners {dir=1} : /obj/item/bear_armor {@OLD;dir=8} +/obj/effect/turf_decal/box/corners {dir=2} : /obj/effect/turf_decal/box/corners {@OLD;dir=@SKIP} +/obj/effect/turf_decal/box/corners {dir=4} : /obj/effect/turf_decal/box/corners {@OLD;dir=1} +/obj/effect/turf_decal/box/corners {dir=8} : /obj/effect/turf_decal/box/corners {@OLD;dir=4} +/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/box/corners {@OLD} +/obj/effect/turf_decal/box/red/corners {dir=1} : /obj/item/bear_armor {@OLD;dir=8} +/obj/effect/turf_decal/box/red/corners {dir=2} : /obj/effect/turf_decal/box/red/corners {@OLD;dir=@SKIP} +/obj/effect/turf_decal/box/red/corners {dir=4} : /obj/effect/turf_decal/box/red/corners {@OLD;dir=1} +/obj/effect/turf_decal/box/red/corners {dir=8} : /obj/effect/turf_decal/box/red/corners {@OLD;dir=4} +/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/box/red/corners {@OLD} +/obj/effect/turf_decal/box/white/corners {dir=1} : /obj/item/bear_armor {@OLD;dir=8} +/obj/effect/turf_decal/box/white/corners {dir=2} : /obj/effect/turf_decal/box/white/corners {@OLD;dir=@SKIP} +/obj/effect/turf_decal/box/white/corners {dir=4} : /obj/effect/turf_decal/box/white/corners {@OLD;dir=1} +/obj/effect/turf_decal/box/white/corners {dir=8} : /obj/effect/turf_decal/box/white/corners {@OLD;dir=4} +/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/box/white/corners {@OLD} \ No newline at end of file diff --git a/tools/mapmerge2/map_scripts/turfs2decals.txt b/tools/mapmerge2/map_scripts/turfs2decals.txt new file mode 100644 index 00000000000..13ae02baf73 --- /dev/null +++ b/tools/mapmerge2/map_scripts/turfs2decals.txt @@ -0,0 +1,465 @@ +/turf/open/floor/circuit/killroom : /turf/open/floor/circuit/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/airless/asteroid : /obj/effect/turf_decal/sand , /turf/open/floor/plasteel/airless {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/airless/bar : /obj/effect/turf_decal/tile/bar , /obj/effect/turf_decal/tile/bar {dir=1} , /turf/open/floor/plasteel/airless {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=1} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/arrival {dir=@UNSET} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=2} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=4} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=5} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=6} : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=8} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/arrival {dir=9} : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/arrival {dir=10} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival/corner {dir=1} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/arrival/corner {dir=@UNSET} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/arrival/corner {dir=2} : /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival/corner {dir=4} : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival/corner {dir=8} : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/asteroid : /obj/effect/turf_decal/sand , /turf/open/floor/plasteel +/turf/open/floor/plasteel/bar : /obj/effect/turf_decal/tile/bar , /obj/effect/turf_decal/tile/bar {dir=1} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/barber : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=1} +/turf/open/floor/plasteel/caution {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=2} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=4} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/checker {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=6} : /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=1} +/turf/open/floor/plasteel/caution {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=1} +/turf/open/floor/plasteel/caution {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/checker {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution/corner {dir=1} : /turf/open/floor/plasteel/dark/corner {@OLD} +/turf/open/floor/plasteel/caution/corner {dir=@UNSET} : /turf/open/floor/plasteel/dark/corner {@OLD} +/turf/open/floor/plasteel/caution/corner {dir=2} : /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution/corner {dir=4} : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution/corner {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/cmo : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/dark/telecomms/mainframe : /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/dark/telecomms/server : /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/dark/telecomms/server/walkway : /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=1} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/escape {dir=@UNSET} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=2} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=4} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=5} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=6} : /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=8} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/escape {dir=9} : /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/escape {dir=10} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape/corner {dir=1} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/escape/corner {dir=@UNSET} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/escape/corner {dir=2} : /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape/corner {dir=4} : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape/corner {dir=8} : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/hydrofloor : /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/corner : /obj/effect/turf_decal/tile/neutral {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/airless : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/airless {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/snowdin : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/snowdin {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/telecomms : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/telecomms/mainframe : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/killroom : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/corner : /obj/effect/turf_decal/tile/neutral {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} \ No newline at end of file diff --git a/tools/mapmerge2/Run Mapmerge.bat b/tools/mapmerge2/mapmerge.bat similarity index 67% rename from tools/mapmerge2/Run Mapmerge.bat rename to tools/mapmerge2/mapmerge.bat index 12d7896330e..5a066226b3c 100644 --- a/tools/mapmerge2/Run Mapmerge.bat +++ b/tools/mapmerge2/mapmerge.bat @@ -1,5 +1,5 @@ @echo off set MAPROOT=../../_maps/ set TGM=1 -python ./src/mapmerge.py +python mapmerge.py pause diff --git a/tools/mapmerge2/src/mapmerge.py b/tools/mapmerge2/mapmerge.py similarity index 100% rename from tools/mapmerge2/src/mapmerge.py rename to tools/mapmerge2/mapmerge.py diff --git a/tools/mapmerge2/merge_driver_dmi.py b/tools/mapmerge2/merge_driver_dmi.py new file mode 100644 index 00000000000..37c0abd9543 --- /dev/null +++ b/tools/mapmerge2/merge_driver_dmi.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +import sys +import dmi + +def images_equal(left, right): + if left.size != right.size: + return False + w, h = left.size + left_load, right_load = left.load(), right.load() + for y in range(0, h): + for x in range(0, w): + lpixel, rpixel = left_load[x, y], right_load[x, y] + # quietly ignore changes where both pixels are fully transparent + if lpixel != rpixel and (lpixel[3] != 0 or rpixel[3] != 0): + return False + return True + +def states_equal(left, right): + result = True + + # basic properties + for attr in ('loop', 'rewind', 'movement', 'dirs', 'delays', 'hotspots', 'framecount'): + lval, rval = getattr(left, attr), getattr(right, attr) + if lval != rval: + result = False + + # frames + for (left_frame, right_frame) in zip(left.frames, right.frames): + if not images_equal(left_frame, right_frame): + result = False + + return result + +def key_of(state): + return (state.name, state.movement) + +def dictify(sheet): + result = {} + for state in sheet.states: + k = key_of(state) + if k in result: + print(f" duplicate {k!r}") + result[k] = state + return result + +def three_way_merge(base, left, right): + base_dims = base.width, base.height + if base_dims != (left.width, left.height) or base_dims != (right.width, right.height): + print("Dimensions have changed:") + print(f" Base: {base.width} x {base.height}") + print(f" Ours: {left.width} x {left.height}") + print(f" Theirs: {right.width} x {right.height}") + return True, None + + base_states, left_states, right_states = dictify(base), dictify(left), dictify(right) + + new_left = {k: v for k, v in left_states.items() if k not in base_states} + new_right = {k: v for k, v in right_states.items() if k not in base_states} + new_both = {} + conflicts = [] + for key, state in list(new_left.items()): + in_right = new_right.get(key, None) + if in_right: + if states_equal(state, in_right): + # allow it + new_both[key] = state + else: + # generate conflict states + print(f" C: {state.name!r}: added differently in both!") + state.name = f"{state.name} !CONFLICT! left" + conflicts.append(state) + in_right.name = f"{state.name} !CONFLICT! right" + conflicts.append(in_right) + # don't add it a second time + del new_left[key] + del new_right[key] + + final_states = [] + # add states that are currently in the base + for state in base.states: + in_left = left_states.get(key_of(state), None) + in_right = right_states.get(key_of(state), None) + left_equals = in_left and states_equal(state, in_left) + right_equals = in_right and states_equal(state, in_right) + + if not in_left and not in_right: + # deleted in both left and right, it's just deleted + print(f" {state.name!r}: deleted in both") + elif not in_left: + # left deletes + print(f" {state.name!r}: deleted in left") + if not right_equals: + print(f" ... but modified in right") + final_states.append(in_right) + elif not in_right: + # right deletes + print(f" {state.name!r}: deleted in right") + if not left_equals: + print(f" ... but modified in left") + final_states.append(in_left) + elif left_equals and right_equals: + # changed in neither + #print(f"Same in both: {state.name!r}") + final_states.append(state) + elif left_equals: + # changed only in right + print(f" {state.name!r}: changed in left") + final_states.append(in_right) + elif right_equals: + # changed only in left + print(f" {state.name!r}: changed in right") + final_states.append(in_left) + elif states_equal(in_left, in_right): + # changed in both, to the same thing + print(f" {state.name!r}: changed same in both") + final_states.append(in_left) # either or + else: + # changed in both + name = state.name + print(f" C: {name!r}: changed differently in both!") + state.name = f"{name} !CONFLICT! base" + conflicts.append(state) + in_left.name = f"{name} !CONFLICT! left" + conflicts.append(in_left) + in_right.name = f"{name} !CONFLICT! right" + conflicts.append(in_right) + + # add states which both left and right added the same + for key, state in new_both.items(): + print(f" {state.name!r}: added same in both") + final_states.append(state) + + # add states that are brand-new in the left + for key, state in new_left.items(): + print(f" {state.name!r}: added in left") + final_states.append(state) + + # add states that are brand-new in the right + for key, state in new_right.items(): + print(f" {state.name!r}: added in right") + final_states.append(state) + + final_states.extend(conflicts) + merged = dmi.Dmi(base.width, base.height) + merged.states = final_states + return len(conflicts), merged + +def main(path, original, left, right): + print(f"Merging icon: {path}") + + icon_orig = dmi.Dmi.from_file(original) + icon_left = dmi.Dmi.from_file(left) + icon_right = dmi.Dmi.from_file(right) + + trouble, merged = three_way_merge(icon_orig, icon_left, icon_right) + if merged: + merged.to_file(left) + if trouble: + print("!!! Manual merge required!") + if merged: + print(" A best-effort merge was performed. You must edit the icon and remove all") + print(" icon states marked with !CONFLICT!, leaving only the desired icon.") + else: + print(" The icon was totally unable to be merged, you must start with one version") + print(" or the other and manually resolve the conflict.") + print(" Information about which states conflicted is listed above.") + return trouble + +if __name__ == '__main__': + if len(sys.argv) != 6: + print("DMI merge driver called with wrong number of arguments") + print(" usage: merge-driver-dmi %P %O %A %B %L") + exit(1) + + # "left" is also the file that ought to be overwritten + _, path, original, left, right, conflict_size_marker = sys.argv + exit(main(path, original, left, right)) diff --git a/tools/mapmerge2/precommit.py b/tools/mapmerge2/precommit.py new file mode 100644 index 00000000000..f5ea49a50ea --- /dev/null +++ b/tools/mapmerge2/precommit.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +import os +import pygit2 +import dmm +from mapmerge import merge_map + +def main(repo): + if repo.index.conflicts: + print("You need to resolve merge conflicts first.") + return 1 + + try: + repo.lookup_reference('MERGE_HEAD') + print("Not running mapmerge for merge commit.") + return 0 + except KeyError: + pass + + changed = 0 + for path, status in repo.status().items(): + if path.endswith(".dmm") and (status & (pygit2.GIT_STATUS_INDEX_MODIFIED | pygit2.GIT_STATUS_INDEX_NEW)): + # read the index + index_entry = repo.index[path] + index_map = dmm.DMM.from_bytes(repo[index_entry.id].read_raw()) + + try: + head_blob = repo[repo[repo.head.target].tree[path].id] + except KeyError: + # New map, no entry in HEAD + print(f"Converting new map: {path}", flush=True) + assert (status & pygit2.GIT_STATUS_INDEX_NEW) + merged_map = index_map + else: + # Entry in HEAD, merge the index over it + print(f"Merging map: {path}", flush=True) + assert not (status & pygit2.GIT_STATUS_INDEX_NEW) + head_map = dmm.DMM.from_bytes(head_blob.read_raw()) + merged_map = merge_map(index_map, head_map) + + # write to the index + blob_id = repo.create_blob(merged_map.to_bytes()) + repo.index.add(pygit2.IndexEntry(path, blob_id, index_entry.mode)) + changed += 1 + + # write to the working directory if that's clean + if status & (pygit2.GIT_STATUS_WT_DELETED | pygit2.GIT_STATUS_WT_MODIFIED): + print(f"Warning: {path} has unindexed changes, not overwriting them") + else: + merged_map.to_file(os.path.join(repo.workdir, path)) + + if changed: + repo.index.write() + print(f"Merged {changed} maps.") + return 0 + +if __name__ == '__main__': + exit(main(pygit2.Repository(pygit2.discover_repository(os.getcwd())))) diff --git a/tools/mapmerge2/Install Requirements.bat b/tools/mapmerge2/requirements-install.bat similarity index 100% rename from tools/mapmerge2/Install Requirements.bat rename to tools/mapmerge2/requirements-install.bat diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index 095843b2d2a..adb42438e7e 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ -pygit2==0.26.0 +pygit2==0.27.2 bidict==0.13.1 Pillow==5.1.0 diff --git a/tools/mapmerge2/Convert TGM to DMM.bat b/tools/mapmerge2/tgm2dmm.bat similarity index 68% rename from tools/mapmerge2/Convert TGM to DMM.bat rename to tools/mapmerge2/tgm2dmm.bat index 9fb6d5419dd..2748533febf 100644 --- a/tools/mapmerge2/Convert TGM to DMM.bat +++ b/tools/mapmerge2/tgm2dmm.bat @@ -1,5 +1,5 @@ @echo off set MAPROOT=../../_maps/ set TGM=0 -python ./src/convert.py +python convert.py pause diff --git a/tools/mapmerge2/update_paths.py b/tools/mapmerge2/update_paths.py new file mode 100644 index 00000000000..6359b6bb303 --- /dev/null +++ b/tools/mapmerge2/update_paths.py @@ -0,0 +1,163 @@ +# A script and syntax for applying path updates to maps. +import re +import os +import argparse +import frontend +from dmm import * + +desc = """ +Update dmm files given update file/string. +Replacement syntax example: + /turf/open/floor/plasteel/warningline : /obj/effect/turf_decal {dir = @OLD ;tag = @SKIP;icon_state = @SKIP} + /turf/open/floor/plasteel/warningline : /obj/effect/turf_decal {@OLD} , /obj/thing {icon_state = @OLD:name; name = "meme"} + /turf/open/floor/plasteel/warningline{dir=2} : /obj/thing +New paths properties: + @OLD - if used as property name copies all modified properties from original path to this one + property = @SKIP - will not copy this property through when global @OLD is used. + property = @OLD - will copy this modified property from original object even if global @OLD is not used + property = @OLD:name - will copy [name] property from original object even if global @OLD is not used + Anything else is copied as written. +Old paths properties: + Will be used as a filter. + property = @UNSET - will apply the rule only if the property is not mapedited +""" + +default_map_directory = "../../_maps" +replacement_re = re.compile('\s*([^{]*)\s*(\{(.*)\})?') + +#urgent todo: replace with actual parser, this is slow as janitor in crit +split_re = re.compile('((?:[A-Za-z0-9_\-$]+)\s*=\s*(?:"(?:.+?)"|[^";]*)|@OLD)') + + +def props_to_string(props): + return "{{{0}}}".format(";".join([k+" = "+props[k] for k in props])) + + +def string_to_props(propstring, verbose = False): + props = dict() + for raw_prop in re.split(split_re, propstring): + if not raw_prop or raw_prop.strip() == ';': + continue + prop = raw_prop.split('=', maxsplit=1) + props[prop[0].strip()] = prop[1].strip() if len(prop) > 1 else None + if verbose: + print("{0} to {1}".format(propstring, props)) + return props + + +def parse_rep_string(replacement_string, verbose = False): + # translates /blah/blah {meme = "test",} into path,prop dictionary tuple + match = re.match(replacement_re, replacement_string) + path = match.group(1) + props = match.group(3) + if props: + prop_dict = string_to_props(props, verbose) + else: + prop_dict = dict() + return path.strip(), prop_dict + + +def update_path(dmm_data, replacement_string, verbose=False): + old_path_part, new_path_part = replacement_string.split(':', maxsplit=1) + old_path, old_path_props = parse_rep_string(old_path_part, verbose) + new_paths = list() + for replacement_def in new_path_part.split(','): + new_path, new_path_props = parse_rep_string(replacement_def, verbose) + new_paths.append((new_path, new_path_props)) + + def replace_def(match): + if match.group(2): + old_props = string_to_props(match.group(2), verbose) + else: + old_props = dict() + for filter_prop in old_path_props: + if filter_prop not in old_props: + if old_path_props[filter_prop] == "@UNSET": + continue + else: + return [match.group(0)] + else: + if old_props[filter_prop] != old_path_props[filter_prop] or old_path_props[filter_prop] == "@UNSET": + return [match.group(0)] #does not match current filter, skip the change. + if verbose: + print("Found match : {0}".format(match.group(0))) + out_paths = [] + for new_path, new_props in new_paths: + out = new_path + out_props = dict() + for prop_name, prop_value in new_props.items(): + if prop_name == "@OLD": + out_props = dict(old_props) + continue + if prop_value == "@SKIP": + out_props.pop(prop_name, None) + continue + if prop_value.startswith("@OLD"): + params = prop_value.split(":") + if prop_name in old_props: + out_props[prop_name] = old_props[params[1]] if len(params) > 1 else old_props[prop_name] + continue + out_props[prop_name] = prop_value + if out_props: + out += props_to_string(out_props) + out_paths.append(out) + if verbose: + print("Replacing with: {0}".format(out_paths)) + return out_paths + + def get_result(element): + p = re.compile("{0}\s*({{(.*)}})?$".format(re.escape(old_path))) + match = p.match(element) + if match: + return replace_def(match) # = re.sub(p,replace_def,element) + else: + return [element] + + bad_keys = {} + keys = list(dmm_data.dictionary.keys()) + for definition_key in keys: + def_value = dmm_data.dictionary[definition_key] + new_value = tuple(y for x in def_value for y in get_result(x)) + if new_value != def_value: + dmm_data.overwrite_key(definition_key, new_value, bad_keys) + dmm_data.reassign_bad_keys(bad_keys) + + +def update_map(map_filepath, updates, verbose=False): + print("Updating: {0}".format(map_filepath)) + dmm_data = DMM.from_file(map_filepath) + for update_string in updates: + update_path(dmm_data, update_string, verbose) + dmm_data.to_file(map_filepath, True) + + +def update_all_maps(map_directory, updates, verbose=False): + for root, _, files in os.walk(map_directory): + for filepath in files: + if filepath.endswith(".dmm"): + path = os.path.join(root, filepath) + update_map(path, updates, verbose) + + +def main(args): + if args.inline: + updates = [args.update_source] + else: + with open(args.update_source) as f: + updates = [line for line in f if line and not line.startswith("#") and not line.isspace()] + + if args.map: + update_map(args.map, updates, verbose=args.verbose) + else: + map_directory = args.directory or frontend.read_settings().map_folder + update_all_maps(map_directory, updates, verbose=args.verbose) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=desc, formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument("update_source", help="update file path / line of update notation") + parser.add_argument("--map", "-m", help="path to update, defaults to all maps in maps directory") + parser.add_argument("--directory", "-d", help="path to maps directory, defaults to _maps/") + parser.add_argument("--inline", "-i", help="treat update source as update string instead of path", action="store_true") + parser.add_argument("--verbose", "-v", help="toggle detailed update information", action="store_true") + main(parser.parse_args())