From b60125838b92b44e280f60fbda695ed40bf943c5 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 4 Dec 2015 15:52:53 +0100 Subject: [PATCH 01/39] Update Changelog --- html/changelogs/{Hubblenaut-master.yml => Hubblenaut-stacks.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename html/changelogs/{Hubblenaut-master.yml => Hubblenaut-stacks.yml} (100%) diff --git a/html/changelogs/Hubblenaut-master.yml b/html/changelogs/Hubblenaut-stacks.yml similarity index 100% rename from html/changelogs/Hubblenaut-master.yml rename to html/changelogs/Hubblenaut-stacks.yml From 4cf4aa6cb48317531bfef18cda9bb2959b7d56da Mon Sep 17 00:00:00 2001 From: Yoshax Date: Fri, 4 Dec 2015 14:57:49 +0000 Subject: [PATCH 02/39] Fixes residential being residental --- code/game/machinery/cryopod.dm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index cbb57283540..9eeec021bf6 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -40,14 +40,14 @@ allow_items = 0 /obj/machinery/computer/cryopod/dorms - name = "residental oversight console" - desc = "An interface between visitors and the residental oversight systems tasked with keeping track of all visitors in the deeper section of the colony." + name = "residential oversight console" + desc = "An interface between visitors and the residential oversight systems tasked with keeping track of all visitors in the deeper section of the colony." icon = 'icons/obj/robot_storage.dmi' //placeholder icon_state = "console" //placeholder circuit = "/obj/item/weapon/circuitboard/robotstoragecontrol" storage_type = "visitors" - storage_name = "Residental Oversight Control" + storage_name = "Residential Oversight Control" allow_items = 1 /obj/machinery/computer/cryopod/travel @@ -173,7 +173,7 @@ origin_tech = list(TECH_DATA = 3) /obj/item/weapon/circuitboard/dormscontrol - name = "Circuit board (Residental Oversight Console)" + name = "Circuit board (Residential Oversight Console)" build_path = "/obj/machinery/computer/cryopod/door/dorms" origin_tech = list(TECH_DATA = 3) @@ -271,13 +271,13 @@ disallow_occupant_types = list(/mob/living/silicon/robot/drone) /obj/machinery/cryopod/robot/door/dorms - name = "Residental District Elevator" + name = "Residential District Elevator" desc = "A small elevator that goes down to the deeper section of the colony." - on_store_message = "has departed for the residental district." - on_store_name = "Residental Oversight" - on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residental district." + on_store_message = "has departed for the residential district." + on_store_name = "Residential Oversight" + on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district." on_store_visible_message_1 = "makes a ding as it moves" - on_store_visible_message_2 = "to the residental district." + on_store_visible_message_2 = "to the residential district." /obj/machinery/cryopod/robot/door/travel name = "Passenger Elevator" From 11904bd805e2e80761e4b9c3ff934f0d7043b2d1 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 4 Dec 2015 10:45:42 +0100 Subject: [PATCH 03/39] Object access check fix. Objects now only check synth access as intended, instead of the more restrictive allowance. Fixes https://github.com/PolarisSS13/Polaris/issues/409. --- code/game/objects/objs.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 800659307e8..2fe7f7130c1 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -39,7 +39,8 @@ return STATUS_CLOSE /mob/living/silicon/CanUseObjTopic(var/obj/O) - return O.allowed(src) + var/id = src.GetIdCard() + return O.check_access(id) /mob/proc/CanUseObjTopic() return 1 From 1104407ffc7c3282ec8b8ba2a7b4c70274450808 Mon Sep 17 00:00:00 2001 From: woodratt Date: Fri, 4 Dec 2015 17:12:57 -0800 Subject: [PATCH 04/39] Woodrat, Intercoms and rollerbed tweaks - Departmental intercoms should have --- .../objects/items/devices/radio/intercom.dm | 4 +++- icons/obj/rollerbed.dmi | Bin 1508 -> 1522 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 9d7bcf88127..ed8cf4ce0bc 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -33,10 +33,12 @@ /obj/item/device/radio/intercom/department/medbay name = "station intercom (Medbay)" + icon_state = "secintercom" frequency = MED_I_FREQ /obj/item/device/radio/intercom/department/security name = "station intercom (Security)" + icon_state = "medintercom" frequency = SEC_I_FREQ /obj/item/device/radio/intercom/New() @@ -110,7 +112,7 @@ if(!on) icon_state = "intercom-p" else - icon_state = "intercom" + icon_state = initial(icon_state) /obj/item/device/radio/intercom/locked var/locked_frequency diff --git a/icons/obj/rollerbed.dmi b/icons/obj/rollerbed.dmi index b7e451273620d4275d0100772731226deb30577b..6924cfddd0e48a7615c159c3e4c50595bbe65675 100644 GIT binary patch delta 1360 zcmV-W1+V(#3-Sw)vwtc{L_t(|ob6h%PwHM2{w|Ni;f;g=hZc+rG3f#WNkiBjwd`)1 z7$?GCVOWj-Ly0a9P6T5}I>0D zWU})3N~IzsXIU0; zRaJ%Ln2vV4jepT-MAN2e(q^;ydiCD}N2G0_JF?Qt`9TD$WCe2#}SA zmLY0i2t9GyYPBMlNF2!N>8YQF{sp3G$Z;G1ei{M*)a!NbT4qQZ-cj>}=Q2(6JqyT8 zL(E`Z*NJ6WE3f4sc>4y^V_6n-T}Q9iqX0m<-L9XHlfrdf0Dz(>{@ef$O?Z6a}v9qFSxOah$njA`|`|u1i4)9*Yor9 zkL~SkuCjE{SP@jKRRHl3!$|sLzyb-Hrhh?E6u+PMkti06U}Ui-Y_He*%?hw#_z^G| z4CZd+aykDuJ2#+d8t(7!g^kfP4ZwU91eb&erqk(46>CwXP1B^sV$nC2hioZZfywb4W!G+QZeZIsje0U)g){(em_{Lq98Z>!qiNcwRDf;U_BTP1eIpJ0&42k% zPfxMJySux>hQ!S!5=Fr3;mwk1Qa9tNiM@I`^q6~x(j7B3+$`2;PFt~k51|b4? z?dE0ud5%nC)a!L(nkHpL1hYz9Xa~uNa~=p0Alg?CW7V@gB48vaih^ddiO0uB0KoqK ze&m?j+gn^*T;TZl7{lSvKZn3Wni>0%{dpjslwf~e1oe8IOs7*CTn1NHS4sYFo`Z^_ zU^pBCzz+bC-vWux2Ygg-9{77cKm@H;izc04M9ZFe_K zjFaK7Fia-K|Dla84o;-TG+~g1#K1t(AA<}8H@ENQeuLhArL^UOKQ3S7S!n3#J?A_< z=brYQ63epin~@Q1fM~1<5N&{HtO*cpfM~1<5N&{HtO*cpfPZNGdIGYd4PYo1i*z^~ zqFSwT$+z3>rF9hw1-PzDfE6KtIsf|l%6-iuvPn8!*Ci{H0-tqgSzRkbfGDg95N&{H ztPBCYUQdXwpbCg8Lkyax!8A?m?d@@`@fpH2O$&~*fY>r*7zW+m-iD@W&@>IQEOT8S zc48TrrU}P!Xn)o)4BBWke!L773I!O3K>?srsSwjNDZuYor_-4$<2X*@xk{x%9LJ$6 z@gM}e8)VxyJv%!C09;;P#>%nO$>nmX>)EzVRiYn3QRk~>uelWihwkP$zcw++il9u^EexapbUyCLx0PFIa;k&gQ~TR^FSy9M3o^P z#D#d|j?-qdNu$^CL29 zF=JI#CGB>5>0FK?yk{^lQdCuiZQB$8h-FzpJr1MMXv8jjad8nG`@RnVkR)j-BiWsg z)1L&UGk*??+M(+@A#6DM_Vz}vudi`(a)Qmx%}?KfIHc(irGKglNRsre)gVoWDE(wT z9{=T76Cm0E(O458+5pj56Cm0E(fIWQEYuLG*XuLS><e12G8@R(nKVJJz(D5nHM49PR(dE!ok78%r%S%;C(;I<#NIaSU3g3h_J|8&EetqA^a5$Vh-3eo3V}q-0X4^I#$3dvkn{{3HZ<74NgAw2N z5lt6{a=APu2Ow6q+wDS86ig-)E}c(LPqb7jEo9^N_BMvYAqs`UKQAvYf3~)^VwGjX z#`2(6s{u%l7)H{E0W%~hiULWJX2xG%fqzn|1V$Dc!rHd|mo;Fc2qK`{?M|I26bixd za5xMMe|&u8Hbzkt0Mk(rP6-~2$7Ak}@iNF7hCxfEQebQx^7%YQqY*}<(M)xS1Cxt$ zl>K*icZXiDN0aW%Paz8+HcXSSh+Ld3BS%q`Z|MN{dc9y1f}z<)J=Fc_o??|<&@ zavPGi7Ecrb%ZESP1be;S+*xN9049?O$z(D#&B4K7Fyj=HPjfbD&B!6MO8 zuh#(phlhtCBt64|P4L5@MC|PBAd|^V8O$8#iHv#cC!y790Z1OzrGXFv(==0M7J3c{ zJJD=5DVxpT-rnN;{QS!|vsSAG-+%XUbaa$Bj3tD?aU4(@A55C2P0cf-;3D8V=ksaM zb)6W7K^YO@s*)DkVKUO32Oe!rhOrq42CMa}1VpzAsrkH<8e1~)f1!Eu~}k|d$u?*qUe06U5A0*T)T zB;l*)^SrXnW|MyQJA^o_%=ZDJ^sLPH0iyK$`tJk&1^ZYWrVv Date: Sat, 5 Dec 2015 04:24:17 +0000 Subject: [PATCH 05/39] Updates all get_base_turf usages to get_base_turf_by_area. This means that instead of the base turf being defined by the z-level, it's now defined by area and defaulted by z-level. Updates all "shuttle" and "solar" areas to have a base_turf of space. Updates docking arms 1, 2, and 3 on the main asteroid level to have a base_turf of space. Other z-levels may still need updating. This change means that all actions which destroy or dismantle a tile - for example bombs, a singularity, a shuttle leaving, or deconstruction - now leave these new areas as space not asteroid. Future mapping efforts may need to take this into account. --- code/_helpers/unsorted.dm | 2 +- code/game/area/Space Station 13 areas.dm | 5 +++++ code/game/gamemodes/cult/narsie.dm | 8 ++++---- code/game/gamemodes/events/black_hole.dm | 4 ++-- code/game/mecha/equipment/tools/tools.dm | 4 ++-- code/game/objects/items/weapons/RCD.dm | 2 +- code/game/turfs/simulated/floor_acts.dm | 4 ++-- code/game/turfs/turf_changing.dm | 2 +- code/modules/power/singularity/act.dm | 2 +- 9 files changed, 19 insertions(+), 14 deletions(-) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index ea4a7c5b73e..bd6f014e0b5 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -962,7 +962,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) var/old_underlays = T.underlays.Copy() if(platingRequired) - if(istype(B, get_base_turf(B.z))) + if(istype(B, get_base_turf_by_area(B))) continue moving var/turf/X = B diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index cd288a31287..dedd6dcc51d 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -147,6 +147,7 @@ area/space/atmosalert() requires_power = 0 flags = RAD_SHIELDED sound_env = SMALL_ENCLOSED + base_turf = /turf/space /area/shuttle/arrival name = "\improper Arrival Shuttle" @@ -1025,14 +1026,17 @@ area/space/atmosalert() /area/hallway/secondary/entry/D1 name = "\improper Shuttle Dock Hallway - Dock One" icon_state = "entry_D1" + base_turf = /turf/space /area/hallway/secondary/entry/D2 name = "\improper Shuttle Dock Hallway - Dock Two" icon_state = "entry_D2" + base_turf = /turf/space /area/hallway/secondary/entry/D3 name = "\improper Shuttle Dock Hallway - Dock Three" icon_state = "entry_D3" + base_turf = /turf/space /area/hallway/secondary/entry/D4 name = "\improper Shuttle Dock Hallway - Dock Four" @@ -1603,6 +1607,7 @@ area/space/atmosalert() requires_power = 1 always_unpowered = 1 lighting_use_dynamic = 0 + base_turf = /turf/space auxport name = "\improper Fore Port Solar Array" diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm index 87d921a3082..a3248a07e5b 100644 --- a/code/game/gamemodes/cult/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -223,9 +223,9 @@ var/global/list/narsie_list = list() consume(AM2) continue - if (dist <= consume_range && !istype(A, get_base_turf(A.z))) + if (dist <= consume_range && !istype(A, get_base_turf_by_area(A))) var/turf/T2 = A - T2.ChangeTurf(get_base_turf(A.z)) + T2.ChangeTurf(get_base_turf_by_area(A)) /obj/singularity/narsie/consume(const/atom/A) //This one is for the small ones. if(!(A.singuloCanEat())) @@ -265,9 +265,9 @@ var/global/list/narsie_list = list() spawn (0) AM2.singularity_pull(src, src.current_size) - if (dist <= consume_range && !istype(A, get_base_turf(A.z))) + if (dist <= consume_range && !istype(A, get_base_turf_by_area(A))) var/turf/T2 = A - T2.ChangeTurf(get_base_turf(A.z)) + T2.ChangeTurf(get_base_turf_by_area(A)) /obj/singularity/narsie/ex_act(severity) //No throwing bombs at it either. --NEO return diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm index 9c212ae0c51..a8b0071f657 100644 --- a/code/game/gamemodes/events/black_hole.dm +++ b/code/game/gamemodes/events/black_hole.dm @@ -24,7 +24,7 @@ qdel(M) for(var/obj/O in orange(1,src)) qdel(O) - var/base_turf = get_base_turf(src.z) + var/base_turf = get_base_turf_by_area(src) for(var/turf/simulated/ST in orange(1,src)) if(ST.type == base_turf) continue @@ -87,6 +87,6 @@ //Destroying the turf if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) ) var/turf/simulated/ST = T - var/base_turf = get_base_turf(src.z) + var/base_turf = get_base_turf_by_area(src) if(ST.type != base_turf) ST.ChangeTurf(base_turf) diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 7139a52cb39..8dbefe9a55e 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -284,7 +284,7 @@ if(do_after_cooldown(target)) if(disabled) return chassis.spark_system.start() - target:ChangeTurf(get_base_turf(target.z)) + target:ChangeTurf(get_base_turf_by_area(target)) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.use_power(energy_drain) else if (istype(target, /obj/machinery/door/airlock)) @@ -297,7 +297,7 @@ playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.use_power(energy_drain) if(1) - if(istype(target, /turf/space) || istype(target,get_base_turf(target.z))) + if(istype(target, /turf/space) || istype(target,get_base_turf_by_area(target))) occupant_message("Building Floor...") set_ready_state(0) if(do_after_cooldown(target)) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index ed0f88ad8de..6ca739046f0 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -100,7 +100,7 @@ build_delay = 50 build_type = "airlock" build_other = /obj/machinery/door/airlock - else if(!deconstruct && (istype(T,/turf/space) || istype(T,get_base_turf(T.z)))) + else if(!deconstruct && (istype(T,/turf/space) || istype(T,get_base_turf_by_area(T)))) build_cost = 1 build_type = "floor" build_turf = /turf/simulated/floor/airless diff --git a/code/game/turfs/simulated/floor_acts.dm b/code/game/turfs/simulated/floor_acts.dm index 21573970503..ee42c625fe5 100644 --- a/code/game/turfs/simulated/floor_acts.dm +++ b/code/game/turfs/simulated/floor_acts.dm @@ -2,14 +2,14 @@ //set src in oview(1) switch(severity) if(1.0) - src.ChangeTurf(get_base_turf(src.z)) + src.ChangeTurf(get_base_turf_by_area(src)) if(2.0) switch(pick(40;1,40;2,3)) if (1) if(prob(33)) new /obj/item/stack/material/steel(src) src.ReplaceWithLattice() if(2) - src.ChangeTurf(get_base_turf(src.z)) + src.ChangeTurf(get_base_turf_by_area(src)) if(3) if(prob(33)) new /obj/item/stack/material/steel(src) if(prob(80)) diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index f6aabc5ce60..10ffb3a8cc4 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -1,5 +1,5 @@ /turf/proc/ReplaceWithLattice() - src.ChangeTurf(get_base_turf(src.z)) + src.ChangeTurf(get_base_turf_by_area(src)) spawn() new /obj/structure/lattice( locate(src.x, src.y, src.z) ) diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index 157f0c5b480..23774d526ed 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -107,7 +107,7 @@ continue if(O.invisibility == 101) O.singularity_act(src, current_size) - ChangeTurf(get_base_turf(src.z)) + ChangeTurf(get_base_turf_by_area(src)) return 2 /turf/simulated/wall/singularity_pull(S, current_size) From 6c39070a15a652aa742bc342b9398384db679199 Mon Sep 17 00:00:00 2001 From: MagmaRam Date: Fri, 4 Dec 2015 22:28:53 -0600 Subject: [PATCH 06/39] Fix for records being a complete mess Because of the limitations of BYOND's bitwise operators (which affect both the old and new implementations of num2hex()), you can't use numbers larger than 2^16 for this. I cut the number of digits down to 4 and changed the maximum on the RNG to match. --- code/datums/datacore.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index ac5ebee68c3..5c86505da7e 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -166,7 +166,7 @@ if(H.mind && !player_is_antag(H.mind, only_offstation_roles = 1)) var/assignment = GetAssignment(H) - var/id = add_zero(num2hex(rand(1, 1.6777215E7)), 6) //this was the best they could come up with? A large random number? *sigh* + var/id = add_zero(num2hex(rand(1, 65535)), 4) //no point generating higher numbers because of the limitations of num2hex //General Record var/datum/data/record/G = CreateGeneralRecord(H, id) G.fields["name"] = H.real_name @@ -395,7 +395,7 @@ proc/get_id_photo(var/mob/living/carbon/human/H, var/assigned_role) side = new(get_id_photo(dummy), dir = WEST) qdel(dummy) - if(!id) id = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) + if(!id) id = text("[]", add_zero(num2hex(rand(1, 65536)), 4)) var/datum/data/record/G = new /datum/data/record() G.name = "Employee Record #[id]" G.fields["name"] = "New Record" From 85373f7c16d26a6705017aed8dc9ad15222e316d Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sat, 5 Dec 2015 06:03:43 +0000 Subject: [PATCH 07/39] fixes #199 --- .../structures/crates_lockers/closets/job_closets.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 8e18901410d..588bded4d42 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -20,10 +20,10 @@ new /obj/item/clothing/head/that(src) new /obj/item/device/radio/headset/headset_service(src) new /obj/item/device/radio/headset/headset_service(src) - new /obj/item/clothing/head/hairflower - new /obj/item/clothing/head/hairflower/pink - new /obj/item/clothing/head/hairflower/yellow - new /obj/item/clothing/head/hairflower/blue + new /obj/item/clothing/head/hairflower(src) + new /obj/item/clothing/head/hairflower/pink(src) + new /obj/item/clothing/head/hairflower/yellow(src) + new /obj/item/clothing/head/hairflower/blue(src) new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/rank/bartender(src) From 04998bfdf676c26365cdc8fa925a42f014907d5a Mon Sep 17 00:00:00 2001 From: woodratt Date: Fri, 4 Dec 2015 23:12:30 -0800 Subject: [PATCH 08/39] 1.2 GITting good at Git - Disposals conveyor belt should be fixed, intercom adjusted. - Industrial hardsuit now on top of rack. - Atmos center post re-centered, intercom adjusted. Light switch and intercom for monitoring room. - Cig packs added to the detective's office and fire alarm. Adjusted Intercoms - Captain's office overhauled, adjusted intercoms, moved furniture, added shutters for that alone time with the secretary. - Kitchen light moved from behind microwave to behind fridge. Intercoms adjusted. - Displays and intercoms added to the research and mining outposts, guest pass added to research outpost. - Fixed a hole in the socks with a pixel - Tape added to art storage, adjusted intercom. - Intercoms added to janitorial, IAA, and holodeck control. - Coffee shop doors now have dual kitchen and bar access, front windoor added, adjusted layout, light switch installed. - Cloner biomass increased to 600, button to open door added. Atmos alarm added. - Several intercoms throughout medical adjusted and added. - Security overhaul, several intercoms adjusted and added. Flashbang box added to the firing range. Warden's desk adjusted. Fire alarm added to front of brig. Photocopier added. Security huds added to lockers. - Moved research disposal point to science break room. Fixed xenobio windoors and adjusted disposal. - Xenoflora design overhaul. - Emergency toolboxes added to the dorms. - Bar drink dispensers moved two tiles up. Floor dance lights should work. - Wire guards installed for the AI, Atmos alarms as well. - Holodeck maint. APC and atmos alarm added. Locker with genetics backpack and coat added as well. - Soap added to research, security, and medical rest rooms. - Camera added to medical emergency hall. - CE's Office front windows electrified. - Disabled dynamic lighting on the engineering elevator. - Guess pass terminal added to HOP office. - Captain's beret in captain's locker. - Fixed all active edges on Polaris-2, turret controls added for main areas. --- code/game/area/Space Station 13 areas.dm | 1 + code/game/machinery/camera/presets.dm | 3 + icons/mob/human.dmi | Bin 32708 -> 32730 bytes maps/polaris-1.dmm | 685 ++++++++++++----------- maps/polaris-2.dmm | 37 +- maps/polaris-5.dmm | 195 ++++--- 6 files changed, 481 insertions(+), 440 deletions(-) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index cd288a31287..d382e85a013 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -2285,6 +2285,7 @@ area/space/atmosalert() /area/shuttle/constructionsite name = "\improper Construction Site Shuttle" icon_state = "yellow" + lighting_use_dynamic = 0 /area/shuttle/constructionsite/station name = "\improper Construction Site Shuttle" diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 0f1b42b73c4..0b3121779f3 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -100,6 +100,9 @@ var/global/list/engineering_networks = list( /obj/machinery/camera/xray icon_state = "xraycam" // Thanks to Krutchen for the icons. +/obj/machinery/camera/xray/command + network = list(NETWORK_COMMAND) + /obj/machinery/camera/xray/security network = list(NETWORK_SECURITY) diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index f010eb053294ec4d7b86cfea576c5fe3e6379604..040988c136808618127a9c0e43aa482ab15c32df 100644 GIT binary patch delta 9428 zcma)CXE%8k-W$!ax1d>?-Nj1s@j4Nw8CCASnT_=s8iy6>) zqavC0rD0jk%xomtvLYyvx1l#_yTbBwgVC_TA?=J>gpYaXVte%AZ=CD#)-#onwg z>G%aB#6rPIh5Kzbnpka7&oHu%2zYq7%_Ppw(H-L!HMLVOb!~CvXw7E&`+74*FzO_` zern;}xE_=fw5(#5_uuOp`1n9fPVU`&v%hOLiD~^yM&4w~j%86a8claS@?cng-#IV& zY{)Z|4+h~{2t;xM=T6o}6)z%91fw2Q{q&k_l*lEiVdA(#Z0U?AY5H{}j>Waik_{TE{j^Li?} zqc5>3xEfgK+7Q?MY?=dbXK~O@aa7E@g~{u##>3z-|9m?jI=C>PwcaYQ;e-KGfjiCY z?tO1T8y{@x5PJI`Wo|m9*RRE{gaf?EF<=_3nFu=HKe5&mrG`loyrmKjBzNPgi88K< zk?hwb;-ihsg!+r3A8X5mDB5N|N9BTA%H+4fbqeT=}yz5N}wd^EJ@s%jC1iYwm! z`MMd+1mH08A&WfvlW($m%*!XLZ+~1uZ+u=Zi=9$ux-HP(9c`b?QkBZ|{L zIVi(s-f!-)i&6b!@s~c^U`Xtn!b%(jPzp7&ZLYk0CG)9Ph~tLqZ+LC)xr@7dcZICT z%l-=d(n6hk#(PsC72H<3m5xF+BL|Li|CXWMpGNB=$5sD_53jgfZ6vZxzZ$d}X!!P7 zSyDEDtu40|bm6y_T?b4Yoz|M@$cuPx%Tn1(&y?^KIZOe@!0L5S2+JnpvOe%p!_Llb zcA%xXIe3nrzEQZdWE{Z2P=fLHIXSQ87Cj0wqf%1-k(81ujp0Bh3>b%L$3LihKKRD` zxqp?|m|Ms4!sZVHUN4I%gCde0?4&76znuK4Ps_ZT1WjrVo7aopyw-F~YFUD5(&VI( zAT>Y{9F}6f6vqkDE;ZcEcU3P#yJcFLo5!07rinBBnJv8s%^`-C$T5`0ezV^!E4$C9 zqrB=(&9I-z6b$A{%8_?9iST;c~i-G=^0UZU{4NtvTTiFAp5`;@)7FPDE7f zK=&zNx2z3sEj4&G zB)ND&CCk2YH<;b0Ts5<5$5m*}Ehc-%9UQH>;m}fBRiE^o$DPavinA5^@7iBH9)!uRx6UQ_VuK#KOvVMBQi74KotHqKGYQ)*y7@J<+{7t^SBF^^Ew3u{hN#_$&%93qlwg5 zSy_1K zMD1oqRZ-~N-F@itq|*Jk1gsoL*Q~s-^Rgh^@+3s`ThmOMng3mP7niX#&t1}cm6w@^ z@B4uG=G7AOh#;I^=slnL1VzpqxU#t0KnmyvUhVr_{e}9OR&NnAk4%qy;eCH zmnUj<0UG$$-#@(=+CPnt&q&-w7*dmox4Qb=1n9)6&uB>bRJeKn5m67HDigGteQJ0o z?M@;bRGeW_T3otk8dsxI#SDxph!?=V_&{zwjWw@fP_R)b|N+1?SQ3um%$l@R2W+nMNeGT(EB|$K2dU zkt`&lpXS)Y=xkUtEC-}I4<4{bl$LrhTkeC;STu~hfC$;M?p2C<8kLC&|7)_FCJ3G` zKtuCX9zt0|VAyaaAmS2B?52+t0f4jqk(%;z84I$$OL`vB6hW!WsPNnXj>cPh15&Lv z_aCSb{SnKXN6XWx)R!s~%=zd>gd7E*>?WY)qNzq%*KMmEM>oTae%Jt32~1^Kftx1@ zC{X%cxVy1Ak3G+x5y^|aQ@f$n#0PoUY9>~L%t!R%>uhw`Ug1Lu5BonMku2eKqz3`o z-yT{(IR6^k*{6g5%%!nn;Axxxh?*?aJNr`7jU_N)T~95BK0e+}XQN}xE;ruyfaD4b z>x`5`t4wk)UhkpRxfQ-Wv1=7%VM^s%sHThQTD^Z9ROH)a--KG=JC)tv^mQv5^8l6T)lGD>EfWDDd)@WJ+kwQ13^^Gu3eiuDM61ll@_*OJtfrVHO z2Ct=IB5hbq9pxEF9jC{nOzuEj_TEf2-vp|iMmS|)XQH#Sv)nfcVgVbOo`uE5lvphG zz6gQj=fc;R?geoWQShdo5MHB4SUqLUNXLo5w^C&AYFwL}gc!Pwq9>>#!iSKQytegF z-RrDZXEik$u>F{uw<&CZ&DdUgacYUyQIvXOp^z3M{S|jUzWeC+IP8bWm>ZBzB|)tJ zw?1U&-tzK?hT`YWf%6sJnxCh#y|lF*LiH3Nl?2~)GgHv&=njPIMwjgiuk61xxAo7 z-wIKvR);?CU6lv}{MmqB-efz)Q)$i?U)1UQu`%50x5gth`W0pd>Mti;@mu(U6@7G6 z<2I961iGa&?BGPGXdbv8@|@<6iKf~pt9y+n{lP!}i zpsK2>rEsgA__V#dsN2DKAB>?x0rWtQf?Jl<;Vb%Gybn%9?`_|>Feb!sL(j>|a6^Sq z^!wQi!Ao?Jm_CA5Uke@thzgQjiAt8)6} z((^2RKOw-7euT2yaj~;cCU_^=qdmhZ4sA&E+LT}>+_&hHK)^AGaj-n0OSCpAIXM}& zqZt~CcMBbSt-c-@Aa8ov=-{?XK3LCklrxN<%KWG+D0>DdaR&-pBKcz)wWj2#=S{aF zsO`)NBmPGvgw-0gLlPi2j07ZlxmUV*G29NLVUPBDj5VaVxOY&LSNSk(*v^e#z_{jSIA;Y;BYaC<^lj(VgKzhD34ciCN$-rYX|3yTm^??VGURxut?!3Ye0 zKxQEE?(1>uUSx)c4Pm4LpLjC7hl8$OSu6j(2PBzX@O(@spvpTyC)HenuAtWOz1D3- z3Qyzb$DEX6VMK;xrv0p~^?cc%8Mk3eAU$XP+~m+sHr~qM?w@5&mW?`W^JIyQEa~sA z@%R(SW(&zfTN9cQgckCxMI?iJ-atA20ZOIIC+;6Z9YM9@BA9RXxN+#<$8w)(!s<{u ze*cNE%m*s^^(&xSjs$md00(}})&$H_ukjc)4BHy6O`%FbXlm9t*>_z|LF7u;HLSgq z(YeX=JBi)TTABh4s!3}y8rVPgLq>hO-&>SRzpjrnj}fQ}&D^E#tJ{wdcp}wZwyN>i zn}=AiljS_sJ_=9GN?FWo&A$GL96{pq+};@@D}Kxm<_SCNmk+ZifBik-EAOK{8bWo} zm;{}{DLOU*j2Y@ADr#zKK6ME*>cxLAc5G8?LSP`VViU_v#>>3-sO|SN(oR8@3s3I= zOUX?Y1K+=?wg{IdhU|jBcrROai%ri3grP`%iL%2} z2t_j(Ux58W@R)>QU834AbUP0TKr`hK|2uQ1vGJ3qq@?6y*WSO>FPlqTuG9y@?%B7k zO3)=<>*9-Ty8U#iyDgXgE9v0`dnu?kDGmj=XCW^=ru5HDh?U#=GczDMs!&jV|GXnj zx~r(wm%+%v;+^M;;pOG<6*Vj1s=VD9^0zV1#lPg6RUtH|^B@^A_w>`MdlJ@k|5KcA z0Q((Va@c9$D{Fr;99O@_Mv5Tp7<2k@U8i+6pymvH(tU=6D@x+kH($K0eoPQy!HFC;YG^1D;BA?1`jUz=+ ze58)>Kgnzyw$(LM@%%mP8o=m&MT(tc$c9M zgFQrq)g1M0|MW1Uxrx3YV%x4#RXgbOQreIzGuv=48Wi~uz$y_3+t`UO3``^#l9jbY z_4v0&F^)%5Xb2@KZMk8J2yWYIGVTGyGSa$^lhy*w^TyChb#d#x z$;ILYc(C$2-5EtdiZpAR2XHf_-!PA57e4!^<8A1tXKCSWi&dRS{OS7yI3Ejj*4x(0 zI!@}Vktbzyx%G16bKm5w@CG@a?!A1nQ!7OH&F4==i9T9M{^UB;Fo#unk6sLyw<;D( zydX-F>*W}XPZi^vqss;xWO7)G%NVHgLO`ar>HG&2P^_Vc)!EMX4XFt%(Vd%pa5!Jn zYre3qHgIL7oATd@SS5>`Y2w)l8ox*!lLE!LfC6@D0eQ@acIcmn4MXU9mk`Rv#zv*$ zw*Sof?vdw$|3I!qY*3a*PPmB;$}NW2H=Ryx3|dULNIK`3h_S%?`pg?t9H4r0R;@IW za9^QCt>$YPWpXzK5CFRx*KUJ8@lQhZ$SJ1c&7=b*h># z4-%9{qu0}OV>c;O!Ludf*vkoIrJvy9OXpLPWBf5EneLfPRI}z-=#;U(rBV1qVBA5Y z_t8O-hJnGC8xWqUT+|&w?fj@8fsKS>l7}Ib(S4c_$YJ{tcB|{f$g0 zQZupY5W3ywD4>mF=dT19ZE>X}#!U^RnlW+B+%@+b_%ss)kK~Gn;Z3c976W#s#|kOl zLVtB5o$O^eWp$TXSsiaB-T%3>>y^T>`KG>pb91MwL5obu_JHQ<+YPri;x#dZC?_Yg z-qvozP{xK>zxLS|--T*7lOvVX)g#~a-DG5BtY*4Z%UNro%PxJ!1yejUxpDmYiev@t zGN=chGZ@V^LQiD7vHVuFEs!!^`xg@2xk=&97x!1_lkbZMt@4lb2CZ(CWDq3^JoOT` zhcQZvdp3PDbbupI!P|!qzV}79%y(|M+%MvsnTZc49bySuee`J}NIFP9YYeo2$YqDf zpw36Qn|)-n@?NS>r^fng*apbKD1}bIi=>bAK7xzEE8^6@4sSzdPIagw%?`E+eM(N> zY0Ii0v@>6S9}Y4!kL?e2;D5A@FRRL|ze=>j8b$TSEeB8wom{*+9U-qBu4?}nx35We zG3sMSiOboZdQNeq+om(p(6(v@bTW5E&NQAONC{Cy;|}auOmeXeg@N@tq3)n0l&vQb z??p1a_v?;B(#N;lNh~ZQd%wt`=fBCFLnU{nUFd@GwPol(d+?o7g*#Zkp~R@MOXq39 zh>bTG3suMFPf|Z^-X6}iglsIe-n}WF_j_pQAy?J4$U)wv#*hmRc}DAz)-QFEyP@eH z(ggb9!5)hc1-NIPDdiA3f|nlrZlUY?L%6docqD-ae5T}Sb*S}|T^=J`R_gzIa#vUQV08Jy!G_d>>Zj32za{m7Ekh%i&H~%shj;YVJQ_UJD#9PIBM3wC-fSibwVr!kDYi6 z1Eu9WhI_JW=005Zw#qM=v`nPu&ADCj{CV5Ezuh@e-}=yqiQ@1}z_mz+-}>7}yyGZ; zIj>JGM{ffp(&Bz9bBQa0%Jz3@4np_e0v*SGLXJDl15l7kNc%4*Ei?m?lqg4sOb3Ezipl= zc4@HpmiO@qe8bG?)@_s&BR1u72AwAuu(La+yz$L7b)3zkOmZ+2q@Xf|mH$Ab1Rk7p z;Y-nc7IqSxDZU8mqat6%c)`0H9fqO|GzTq76#DVsf(KqtuBbi>R3AL77*cC&6sRDoi>0!c2kF?!$l{d7CpL#X2y0x+K|J*r*Tfs* z@X-c~iNieXv|Ufa2ng~06}evH3;p=N%I=F02M}9JGr2z%p`tZ)i_?BDYgm`stf5Q} zAB7NjKY(BxJYlMu|B!(b*K0Px7-V^x#=NW**3GfO#|wAn{C-~9sg=HdZPO}Xe#|(5 zxf$|)H1Pe|zwgChmwkShE}QBBO`+kHV=UTf>zn;m&Rs>hoITsBo-3!nL~NY%a$(H{ z3ZTdW?!cTHV-db!0ACqRpJ2{!j)qX_9YN}PG+r(ArgInBRG}Zsqw-y?IJA4A-phQ? zs@n3gpSLEz0x1$)4c(u6vrO|O)6-W6s^q4ftV4;tx`x7CIxePJz4pFAE6dC0+II@P zc*={QZz@06pUo%lFC~!bEujy*1Ae(&1HJtA+nj18mT{w4?@@+z&REld1eoZl|y>%QWoN(o|JG>GQK7VpGz4 zgD-IQE3tl7O(Yb@e==#BNn*`9q>i~~e|ysW?4R#I3;C^pD_3n}NEJ2bb4?BEDSZkA zN3P%`xQliJt`#0~+k!hPNcAF~=2!f~0qYKzc70)s59p4{LTGdmhyPrm(rq98E#xeJ zsuFM+S7WMUQ)Sq-oBZSoM{INCkeY`3=x)NsPIDyU(i= zOYtIUs^OX^*_Hda-@i8%FQ`9Zr>0&%(}ffiQi#bEV+O*GXzQ%k8EBVA+NsSkNJ8{R zBGXC%+|Q=FgO|F;OjIUc3as|O9BJJeYUR1yKsfjHDIH<1E`b&Wbu?vg#l%^Lk)EZ^ z3mGqG7>O4?oXKHk0_qecjO z4SeEMlqvGvu#%9mgY=A3Tf!}z{=r0#3kV2|p6z8e>VBq1d%kDJ9M7vvUtrfYv<o4_udN*8RL z`qYmf#5x{v8A4=k0|2q>FrV<0nJvg{SRZo>*J1|pmz$`K5r6lF;}WZ^NdpwoWGduJ z#XyYDdqzItV%RIKxr?#Zd}6#iH~E&7x$_Wb-;(%yu~6g>dQ^02rLn7sDC{Z;7GH6C7&Hw)qDd;Myg$rz85D$v)VR6^AHuK^+fh|LdJ z&iQvo`Zyzy1ikRxF46ZUhf79x^e3#$+4*#;aD8k{Ow2b=NAj56n{g*Tlq%!_yWh;! z3iUPFolj?8NQ+$H3` z{_&SgTs1tIXvRkFj1{?^jYZ;T7_Pg0s%AyEo}Os?m&y3+Nj|4%GRTG8nzE-p7E$t# za>XQ^^I{byDj!ysms7`G*VUS7C|)A_@bRNdzX;SfaP|^yknY-_F8zq4dhK-dPu?O7mOPMp|K6}@^!`i}H3cmMcO_+q!-!uo6fO0N`*I%H|2d)Hl$RkD zCkjQi$1*jdD%_LwMPc*V6F4?O-$~q zu#&8;i)gsIKA1%yu-E=#qF@;%|0FUpvS9Oz+SgsNpD}UzKWlJ8tNTXa^S*tOd~ml@ zRr_67M~8~Oxj8i;3Qz)w26u_ca#OywQ=sl955~^J#f2ol3P|eK48)34((7%}e#~@m zaBy~U3BMGe8udXW!Y_T?#i(g9J1$ai)E;QPQ z2&|DV2CCQoSk=-a;l8lKwJ2~o+$MmIxzKrEYfz=m--lONV+i?BS@>(bc-!~)!~ zHR7xCS1Ye&;t!JfHoUvLyYCAMK0haP)^K?f4I-j08#=eu*IxA##tOuvXbm&h*MAS% zk^fWHR$)~!QnpDTdZY8;Tt9T%>-d-^V|=;lePf*tvfA}v!fn1fyl-bu;Qx}6`h`E6V%<*g>*btGb_M|#JX4RbHAjZ() zUL!L1gBX&1@hmFY196xI)tC2KFLmzJ9|gs*N!?`Emh=J%|YR;Gc<>uBJ=H?FsmZ4tNc+cFGl=DJ{6jV{` zrG^)^%@3z1r1J-4Ehdz(CJC7}#56QW**iJewZ9=ZY4)qAarn(NhCsyO@u9?ZY<6es z2TEVTk9K$O3kbZqEamgBtPhWgNwD}XptQy)N@NZYwvwu=VlLRjj#%`nb}1=02*u%W zoBR6|KwW)(<^^$B&JEt92L--enIDFyWKLF@HMr3?T?b5IUtHt19|yM=meG01gQX3? zs1e{XQ>zYy4X-w|5O|Zd2E3EC$f%fwB~J}-cz-@nplOjH=T$xziklzK8>pEjNI=L_ z)3f;o1_qv5wopg?AOALeN}sGM9FMB5-Z0U<_?nH^0pYEw*qNCbek?{xCdV^`58W|ZL*6k+_Mp=J#eNPE$xX%IxkhDO|Y3qsq zv-JxrOe+poCB8U(ZkgI$#J&%r__-(cL2L#Ngq;w|C&M^oy~tF$hQM9U92SmE%WOl^ zZ?43*=Nqd#J8mD+(yjp7Iywe77Mk)(VVSPDQn|%k_x)F#jSLQ^7pj_fFY<8E#S1Q$ z2MWIH+Ty>nM)1bjdBPU~n_%JR&+R3CL{f--sjdC9dv{c!r_4H)-uh|kQiv!xjPxUo z*_?iAU~qI&f|>alcqEd5gk6ll;g1~fKIlL7$jl2wy*H$#9w;s; zX&lZfvs;2Y{LFFd{Lw(qNhL$7q9#!5JTn^12vtcwP*BNvHU$h=y!!M8_iX}qC%V_9^X5-iY=fU#%3>2bdJ*k1 z=-48fJ2&_b1a6o5K#b(8Qa&kR~$(T#s@r^nbUXcnWh#)M+&GsQb*U z#d=`A1u`GS_K^rG5p$tdGi%P9*TL84c421n8%H-4hX{AZ zcaZM4D|P&jX;%F3KH?;bAd4VtlV?j8KJPYzHQ_A|G{-=b1td%(#9|%Sikun85}R$ delta 9413 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
U}f5rBvG!PRHWvz+io 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 m06l{ZI6-VOnP6$853mFUo>7cpjDH