From 080aa1750ef6d41e9b2da4387b90fcbed7806304 Mon Sep 17 00:00:00 2001 From: checkraisefold Date: Sun, 19 Nov 2017 23:50:04 -0800 Subject: [PATCH 01/28] tweak skateboard crashes, gives brain damage (#32885) * tweak skateboard crashes * helmet stops brain damage * add hardhat --- code/modules/vehicles/scooter.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 20a79903ef..24cfd9ab92 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -57,6 +57,9 @@ H.throw_at(throw_target, 4, 3) H.Knockdown(100) H.adjustStaminaLoss(40) + if(!istype(H.head,/obj/item/clothing/head/helmet/) && !istype(H.head,/obj/item/clothing/head/hardhat)) + H.adjustBrainLoss(3) + H.updatehealth() visible_message("[src] crashes into [A], sending [H] flying!") playsound(src, 'sound/effects/bang.ogg', 50, 1) @@ -131,4 +134,4 @@ var/mob/living/carbon/H = buckled_mobs[1] unbuckle_mob(H) S.buckle_mob(H) - qdel(src) \ No newline at end of file + qdel(src) From dc2ecefe90ad3918282c380092ff7d6974bc9f6a Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Mon, 20 Nov 2017 03:38:19 -0500 Subject: [PATCH 03/28] Fixes unpowered air injectors on pubby --- _maps/map_files/PubbyStation/PubbyStation.dmm | 128 +++++++++++------- 1 file changed, 81 insertions(+), 47 deletions(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 4876b95adb..e48df13356 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -372,7 +372,7 @@ "acF" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on, /turf/open/floor/plating/airless, -/area/space) +/area/ai_monitored/turret_protected/AIsatextAS) "acG" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -35505,7 +35505,7 @@ layer = 2.9 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/chapel/dock) "bGH" = ( /obj/structure/window/reinforced, /turf/open/space, @@ -43497,7 +43497,7 @@ dir = 1 }, /turf/open/floor/plating/airless, -/area/space) +/area/engine/atmos) "bZL" = ( /obj/machinery/atmospherics/pipe/simple, /obj/structure/grille, @@ -45214,7 +45214,7 @@ dir = 1 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/maintenance/disposal/incinerator) "ceB" = ( /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -47303,7 +47303,7 @@ dir = 4 }, /turf/open/floor/plating/airless, -/area/space) +/area/science/mixing) "cly" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -51261,6 +51261,40 @@ "cCA" = ( /turf/closed/wall, /area/science/lab) +<<<<<<< HEAD +======= +"cCB" = ( +/obj/machinery/rnd/protolathe/department/security, +/turf/open/floor/plasteel, +/area/security/main) +"cCC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/rnd/protolathe/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCD" = ( +/obj/machinery/rnd/protolathe/department/service, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"cCE" = ( +/obj/machinery/rnd/protolathe/department/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cCF" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/maintenance/department/chapel/monastery) +"cCG" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/tcommsat/computer) +>>>>>>> e3d0468... Fixes unpowered air injectors on pubby (#32846) (1,1,1) = {" aaa @@ -66359,7 +66393,7 @@ cvX cke cky cld -ceA +cCF aaa aaa aaa @@ -67394,10 +67428,10 @@ cfN cfN cfN aaa -cxG -cxG -cxG -cxG +aaa +aaa +aaa +aaa cjp cyU cjp @@ -67650,10 +67684,10 @@ caS caS caS caS -cxF -cxF -cxF -cxF +aht +aht +aht +aht cjp cjp ckH @@ -67907,10 +67941,10 @@ cfN caS cfN aaa -cxG -cxG -cxG -cxG +aaa +aaa +aaa +aaa cjp ckW ckH @@ -68164,10 +68198,10 @@ cfN caS caS aht -cxF -cxF -cxF -cxF +aht +aht +aht +aht cjp ckW ckH @@ -68421,10 +68455,10 @@ cwe cwe cfN aaa -cxG -cxG -cxG -cxG +aaa +aaa +aaa +aaa cjp cyP ckH @@ -69706,10 +69740,10 @@ cln cwe cfN aaa -cxG -cxG -cxG -cxG +aaa +aaa +aaa +aaa cjp cyS ckH @@ -69963,10 +69997,10 @@ cln cwe caS aht -cxF -cxF -cxF -cxF +aht +aht +aht +aht cjp cko ckH @@ -70220,10 +70254,10 @@ cln cwe cfN cfN -cxG -cxG -cxG -cxG +aaa +aaa +aaa +aaa cjp cyT ckH @@ -70477,10 +70511,10 @@ cwe cwe caS caS -cxF -cxF -cxF -cxF +aht +aht +aht +aht cjp cjp ckH @@ -70735,10 +70769,10 @@ cfN cfN cfN aaa -cxG -cxG -cxG -cxF +aaa +aaa +aaa +aht cjp cyU cjp @@ -80246,7 +80280,7 @@ aaa aaa aaa aaa -clx +cCG clw clw clw From 32d9ea87f6c3c0e6e249f1bb843995fdb2a77b31 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Mon, 20 Nov 2017 03:42:49 -0500 Subject: [PATCH 04/28] Various Meta area fixes --- _maps/map_files/MetaStation/MetaStation.dmm | 82 ++++++++++++++------- 1 file changed, 55 insertions(+), 27 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index ad97c70e39..614bedb415 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -317,7 +317,7 @@ dir = 8; icon_state = "diagonalWall3" }, -/area/space) +/area/security/prison) "aaV" = ( /turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) @@ -327,7 +327,7 @@ dir = 1; icon_state = "diagonalWall3" }, -/area/space) +/area/security/prison) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -22485,7 +22485,7 @@ req_access_txt = "10" }, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "aVh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27447,7 +27447,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/janitor) +/area/maintenance/central) "bfo" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34687,7 +34687,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/engine/break_room) +/area/maintenance/starboard) "btA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -36175,7 +36175,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/crew_quarters/heads/captain/private) +/area/maintenance/central) "bwH" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -45420,7 +45420,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/gateway) +/area/maintenance/central) "bQy" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -46652,7 +46652,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/crew_quarters/kitchen) +/area/maintenance/starboard) "bTa" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -51984,7 +51984,7 @@ req_one_access_txt = "0" }, /turf/open/floor/plating, -/area/hydroponics) +/area/maintenance/starboard/aft) "cdV" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -55180,7 +55180,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/space, -/area/space) +/area/maintenance/disposal/incinerator) "ckD" = ( /obj/machinery/doorButtons/access_button{ idDoor = "incinerator_airlock_exterior"; @@ -56163,7 +56163,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/science/research) +/area/maintenance/starboard/aft) "cmN" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -58016,7 +58016,7 @@ req_access_txt = "40" }, /turf/open/floor/plating, -/area/crew_quarters/heads/cmo) +/area/maintenance/aft) "cqq" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -58690,7 +58690,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/medical/chemistry) +/area/maintenance/aft) "crF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/device/radio/intercom{ @@ -59411,7 +59411,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/science/research) +/area/maintenance/aft) "csV" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -59727,7 +59727,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/medical/genetics) +/area/maintenance/aft) "ctD" = ( /obj/structure/sign/directions/evac, /turf/closed/wall, @@ -59786,7 +59786,7 @@ req_one_access_txt = "7;47;29" }, /turf/open/floor/plating, -/area/science/misc_lab/range) +/area/maintenance/aft) "ctN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ @@ -60779,7 +60779,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/science/robotics/mechbay) +/area/maintenance/aft) "cvJ" = ( /obj/structure/sign/nosmoking_2{ pixel_x = -29 @@ -67658,7 +67658,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/science/lab) +/area/maintenance/aft) "cJn" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -78692,7 +78692,7 @@ pixel_x = 32 }, /turf/open/floor/plating, -/area/science/research) +/area/maintenance/starboard/aft) "diI" = ( /obj/item/poster/random_contraband, /obj/item/poster/random_contraband, @@ -79452,7 +79452,7 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/crew_quarters/locker) +/area/maintenance/starboard/fore) "dtP" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -80679,6 +80679,34 @@ /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/atmos) +<<<<<<< HEAD +======= +"EDv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/rnd/protolathe/department/engineering, +/turf/open/floor/plasteel, +/area/engine/engineering) +"EDw" = ( +/obj/machinery/rnd/protolathe/department/service, +/turf/closed/wall, +/area/hydroponics) +"EDx" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/hallway/secondary/entry) +"EDy" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/hallway/secondary/entry) +>>>>>>> a394a18... Various Meta area fixes (#32856) (1,1,1) = {" aaa @@ -89780,8 +89808,8 @@ aaa aaa aaa aaa -aaU -blx +EDx +aRA aRA aRA aRA @@ -90808,8 +90836,8 @@ aaa aaa aaf aaa -aaX -blx +EDy +aRA aRA aRA aRA @@ -100886,7 +100914,7 @@ coE cpZ coB csp -ctp +csr duH dyg ceu @@ -118529,7 +118557,7 @@ aaa aaa aaf aaa -blx +acP adl bih adl @@ -118786,7 +118814,7 @@ aaa aaa aaf aaa -blx +acP adl aQf adl From a5c5ec4ec7d4e5736415a897a86ed1e4628f2eed Mon Sep 17 00:00:00 2001 From: WJohn Date: Mon, 20 Nov 2017 05:35:54 -0500 Subject: [PATCH 05/28] Fixes default green banded airlocks missing expanded click area in their sprite. (#32894) --- icons/obj/doors/airlocks/station/public.dmi | Bin 2157 -> 4567 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/doors/airlocks/station/public.dmi b/icons/obj/doors/airlocks/station/public.dmi index efb4600adb2dfe65ab318d0564e3f420223d0a9d..ac135873a62826b485c88334bca7412408508d59 100644 GIT binary patch literal 4567 zcmZWt2T)T>_rEj|5aUyn5&?a*ASEbGDM>&CBUPG;NRbZGdygWhkES4kp#%geVj?dH z(qiZ!y@gOj1f)o40fQt4^2P7}=FR-)o7sDJ@60*p?*7hi&pEqKEX<4q`NjAF01!l8 zHLzs&&FrV}@FDiw4&ri$-8Dv8-wZKu3w8NZa z^`=bq<`x$K93vwQ^sFQD*7Jvbz(x{XL`#kCz!|3wWUM@u$5Fv@^s$Bk5Ak8ckiJ*? z2=~Tepzan}kP}3{S$I((BKc&+2+Z5+6cncb+?4bcB{D`_4#*T}^z_ z{knlSRHK-*<{cj99!FW*{+}36k1jklDs*9u&^)y0E59-B3W5kCxhpKrKKf)Kt)}hmdxB+S%Clz3?oCs z<31We4=qN*^6l|oLDh!I)n;-1!0|1%MlSsNi*Y|8*D_SbI5@f2?t*O=2a3thuaQ77fh3ruWo+TksU ze5T@1jnIWXNY*u5^+%CZcX#)#i2~h~Yv6Wzg-MOwmByLQkFmd0*4n*qf`K8WEM~g% zHM|8|?+&y!WPwptA=+ge7!o2h<7o7{X>R}LEc7u8*pvF8km>|nj6YzaP!pOHhLxn& ziHV#M>#g1jQ`f;U8pSgywtkeBVXK)6vSOq07htgxa>(KF#Z-)L^rc;!g?ty#CyHAM`OV66f7@qfsP<4@6Hz2EJT1)9s zSUavWo16ARG%N8PBf@w)my?G_mt@h26DJH!a=g2EG*$;+$!6hvOwF0Y&u~5E$EFvD z>zkU6e4SfgD)Hr+<{RL}->(}fp-dX?YoS{%U6{Xyv}DsNVTEzE_+@AE>|EUTf#~GT ziCw3K2H*M>CZ|<_>4%fy#Hyo33mp$}e3D-3p@fK0=nOBQ1EWhTe~osN%9N9E+9k;cy}H8BXHUkZ*dWr@x%wcV%KJn;bd`VSuD)h!I@vLv z;G}OwHlA(VSPGx+F>IAczq`}uJLavfmTSsxpFhTeYwS!bm2Oy!`CF=Dg-06#V}z8UWq8g!Qv=wVvuvwHafWhgF}PYYFZ7 z&tJ4Zl4moufZ6=*89u11s*Cl5e96&(sRS>ZymvP$N(|vY<-gg}=5*Uqn>g|D^tmb4 z-b|LGb%D*qTgMy0ad96N9RC!G9~>MEA8k5?3{8-xIqS2-1WUVlU{CNKZiC~C$UV>C zP!QW=DPJO^oN^)hF!FI<9*@%nmx2$`q6n4V3Txq<8rLJk?y#0ZWBa8;6C?S&%Z5o* zXFJsjVb;v<6PB*zWOLOza@Ta^g#!L2@ySBTXi_R!&Nx=5g@H{aB+~_{HLLR#r8r@KUtcT~W7KrU z*%^7ATYIERL)r18i9||PB4gCEly=unvm)I|<%OxWL({d_BV@kzqs~bNQs=&P6;ADt&CE|(0TrCPx^XHwF*Lt2XBgRN4 zsq;oMiS>U9u!G?dDIA-^S}+qIS?W9o!OQ|{yKh!iQ**L$_#(&E2VA^Ift7S#^X(Wb z?#wv|g*>eGz2l*um}IT!(rb2VP!G7IxGoGj8F;+ow*@_{|FkhWL_HUssQ)hV4UMnq zgRpR_2mVn}k2fp4@=5~?wT^!Doka!3pV2)i9p@e*F}K=4NV444$C-($7oQ}O@<^}? zunm(NiwPN%lea7+<41isrAZ|Ym}aieZg^F1NII*%o!bjWtP?sHK!Dwc1NS`es&f_+ zEca?YlrqLKv6sfj4Do#Vp4iGKwF<6R>aT-AX!7asP#AF!PGWE;c64-nH0&^%uMb{+ zdnfhqmx5aCr9R%8k13P|VpWyJv0J(=7lW)E9-!Gl%u^$`N3ttt`}mDur-S}tG#AD# zR&@7O=L_Kx8iz=dSUj)=y6pLBggTfh91ncc-NB$0#aTL$@|+>`9nMu6M>(w`J-&bt zftobgRe2Sc?_#Wq19``;E`Wv>cXD?#tgYxW6ShW=8D8kh-gIYJIn51{2DgC`1))ea z!u>UaWYt?Xmr`rhUFe15*=H{vJf|~TDBCzTWQTTLgN&dU7IGO~GgWCuIBa@;-z6#v z%?n)S?GWR+8~XqYXFZM=Z`@M>kMStiyeiz)d;M-iw+0xAIp8?`&b)b+178Te9LVI` zq5DQ4@v!^b=bmCGA78(<_Cc$o*j%#G1Uglu&-(*b zl+4CV0ID}*W#umnWBefaZT2KH#uTyHg-Z*WKLh8gH?so2mo^!A^-xYgh+Go`t7Su{ zmlEt8I~S?&8bt1(2@b0`9iRsq4d`29E{PK+pL7?P=fR=4Cx!-|g!=A~9XvEB{Y$Pp3SO5dXhUzD=0 zu?wJ{yfBg%YW2Bv4i9wdl!7X!Mc6?dd*+L2*@+ArMI|M=i`h@LPX=J?x;Mn~C~EP= z=v_rK3`{qGR6Oh{B$jG;c0dMFB=cS%-^|k}WkIH5X<|ZzpZG;=P=8?@K|_1hPlOvs8KiA;L}(p45e>L{t#T%2 zE0P9tq;`Sskw%$+KE{FW+wM9wrK#q*Ge7v2@CV(qT+*Ms$o&t}8y%ku&oJqA1@>c5 zDR(_IV{FowNC>zU|4j}tk{6b*xL5Zp(O2^&TrwOErtzMibPlOs0Uo2x@b)a%KW z=^~Y*t0&vPJ>kuP1rq&ZI;y-sSE<7``CvUF7P~C2hvFm@rB7-N98aj!x)s0&L zJB3lnhGx+j_F;WAwf11<{_&{c;WeLLoBgw5fm0W2j!n1XxmGSBFZ3-mjB zF+^Y#Dt>)Kn4Fwe`gxpIJIzR7%XXi@QOH_6{J-dqY-?8ZbRo1BO?9$8SI5%U?{Kue zD~`8}JDF%x|1;C5haKl)>(>Yh7Z&gDhcv}7H~8&+WU+8uXAKF=m7b5bgzZ0T58eN= zv?}p6wMEb?Xlmgb9`k>BT06?ae>SecA;YuB*ViH3Dn7?>D=@1-+1S{4M!#%Sb4Q($ zZFq+)8OiVZXPK@aSXOnxv}O?>cbhxDFHaXXZ1?AN`bW*E+IAl7sW;~UrfbQ;`)}<`7P`?<-^N%J2wOh8gFAU^s zm*okHYJ!bCZ7OY8ClDn+S0j*b!Z{|UnpJ_dh|O;MzY~C8#!6aAi$&YiDK13J zacSDC;+O96qqNP^G&*FS12h|JnxrY%>n7~WKAX@wxJ#+WZ&(G;x83q|A~W8{C7m*l zD`NW?#Fnr=m-SKaX{WKhX(5@eki}ol-p}%!`*8Y+l727A7rn}!HFgJQu2N)hr7O(& zv4{BI+96F?EOsna=93#d;46yt;VN>J`l?tyJZ_aCd@4wdq?#aPYinDst8zs2n`Wy> z(s2pE1UJXg{7vll;JZL4{-vBGskZm@ufp+>5zFjVKgHJ?qirni0MUFUpX-KUn@M#6 zoyu2GrBVUQE_fiG*C|L41jv%N0H>f-IACu!(bHpazM!OYj|<_^S$wpmq5~K5i0-tF zoRxo?e6(oft4zAcIi2Qvve6>WnlbjCM)bXv(VyMQUE8KAQ93A%%mOVC#tu`I_>S{@ zeJ7Wv>i2{xT=mww_`fx8(0`f0B@nqt^ZZBV*ukOJGK2|^3QU!7?>u0|?dkVvryiQg z!!!r7#VyBQoj$B{STxPhHAwLPE$!bm{_h}FGe)@4^(+Px6#JlV`rayf04sCQ;M^GaXjV0zlSB5LWS7ppWlG}Ys_?m_kV@6Xnf`49v0410*UVS z(0WM#5%ynuXZz!Bky0x4;-va$4B&!*fB+Af!d33KWq}(!)?Oma->=fz^b`cF#>9E= zzl}I%5mEFOV}3u!{_+7IB7e}FUEK6=Wr0wg0&e@?xKLUcj2&D-f?LP|LRq#tBTIf7 z&uOu|W5v#c+lWQ3LMl6e(*br#gz956g3SJ93ysen`|MaP>~a7+(*dHE88v5hhO?YK zxuO0MyCdhIzoBj8`Y*;85HH3(s=g=c2j^se2BF@*HAmFI5(ai>UWpndliBPs-GFoC f#QY=uj~a`2KZ`32!uA#WrUpP>F*CsFJ3aUho#Y>3 literal 2157 zcmXw4dpy(YAOG%>t(oRlt@UFhjFXL)l44V2DA#d>UWRh%7naNK=XPvsb%YjmIGp3Y z<<=2Xk|-PH(v9Sj=pd9)np=jMopm{XJkRI#eqQg-?fpE@>yzs0Y_EdAAOHYRaiG|` zE38nlis2B&9=`lrq{2{Lk5lc0LLrq(B@hVO+S*!LT84&(-rnBE#>Np55ljXnD=W*# z-90cc(9OYtLMF$?#s>NN+Su55M_IFZr!pJ8ZM;l&?b@Z9j!?giz~k}3U~nl6rq24v zP{aqtxI23QrRIFslgFgRd(%8wwxa)bh z2jA1Qhd4IAr~A0k6Cmmer@?~gPV6N*>g11Ke|(*)<6(5rP+(zhmzqx0zf*z6(K_4y z@XE@~Lj*j^e!u<32enchk)YLNNh}UM>l~<0@rG@=ZxOw)sO-uC9ZbcvPfl&k(abi; z0od%~-rl{@QRAsdWxfv=46VM77-2PKo()!0vwn)GPR5VLYyyfpZkC@n&}#(%*d_;C z8){tstnbH!2^_Mt@>!hE|Dva3g3EuAOZycRl*>t>C-d+50Q4gWG0K4N#s^CxB_U0t;^FG% zN>C8%&?i+88hat&?;x}9zO^ZzYl0$g9m?NH$J4uZflaNU?8fdk%~EZo!g>8!?nE=; ztkP+c=8}mB-iiG4AP0?QNB6zC#O-6V`r5RTw(=&L!@FvKS!2&S^;rY+(EQ})JIeM! z8BlbSs{QNs+IoW9W@a4tHtwope2rcv;^9SRlL^R|qNCZvU#Z{fq8c?n6#1zcKMeCf@CL!7JSE$2lweE9kX&Kj)Y zrkTBv<|z=!EmiEw{lx|5GVH0I+C&aEWfw;%s%o>RX}UIvfZ(pQ^(%?SK6&9U4CkQyu zDBakRPR5Gnp-4sIZz|n?DPj5}Z0$rRsyZ|>?aou5{zN^YR1!(1UW6-nr``UOy@2qH zOg0Nq-dw!0v+CGgmm@i~nEr{M<{{JxGVjnnOiEJss`!817=rHEkjkw0LYQqy-#&R?_`IobT6`mz0(rg@WVRsuQR z>QcM4CFlxoJpt0Q!E#6y^M-X=crwsM-a18YFNGQCH@ies&bwHtUR@|ZC9>EiK^=EY z^3MV~GnN>244V76lnW&%-;ncU5MrI~$ww6%dI8E}Y{hDiI|y%{bii1k=JULzt*{V_ zA3%D4S{-?5xug1+F35!Bhu_J6yP*V~Jdt|_E?O6b8wvPOdt2&VM8wIhpe9J?ss(vpi6O0ZLM zUVGr(bS+2y6G-H;dzmGRvQi1e%g~gg^e%}pEo1Ifec3I^89{j$0Ty3Lv{Gw>adYUrA1k9Y-r!XV?SqW@Zl0?`vqOMP3V)ib-S?H|iPep1 zmaj=c(Q6)&_ivrZ#bk6z{23&gv)J?P#}gd;DQS%WOVVK zh83nSE#!GOV(EEzGx_M@u0ZEdp`xh)eWtb1_696}#!!C^M|g-e?eD;3jwYLH7l;*z z?m(>B8`CUUN*2yQU#@Pvl7c>J08>&YF|5iN_(tJdvd;G33?IGtBw~+OS*td9adNG< z;z9Mo`yszVvz}2Va}a@|g8%Z>FAgF6*YB$SV~HAiciiRztEEq8IM2-7DkaRaiIB_d zU({NaP7`HKivIWwLFW6it4Z z-v~mh1J7c0QxU;btp-qoI>oRO8hijye55+L&TcoG8SXt*q2krelHd+hQ{IeFMTnBa zb>FLKKYd|Q|5sy{w$yIO@bI>R^K_qBBkMTMoV_8laPNvv@Zpe7mKpG0Vrhziw-?eT?=r7*5}g7XaLL`7Ms@8x#X%R#PNA5eOG?K2c39dNL7wyi!w GyYLUdiS^_F From 212071e075d6fc4ffdfad2b9df9936e1510185ab Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 20 Nov 2017 11:11:11 -0500 Subject: [PATCH 07/28] Adds AI lawset spawners (mapping helpers) --- .../game/objects/effects/spawners/lootdrop.dm | 37 ++++++++++++++++++- code/game/objects/items/AI_modules.dm | 8 ++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 2bfce20ccd..316f7f34c9 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -162,4 +162,39 @@ name = "25% cyborg mask spawner" loot = list( /obj/item/clothing/mask/gas/cyborg = 25, - "" = 75) \ No newline at end of file +<<<<<<< HEAD + "" = 75) +======= + "" = 75) + +/obj/effect/spawner/lootdrop/aimodule_harmless // These shouldn't allow the AI to start butchering people + name = "harmless AI module spawner" + loot = list( + /obj/item/aiModule/core/full/asimov, + /obj/item/aiModule/core/full/asimovpp, + /obj/item/aiModule/core/full/hippocratic, + /obj/item/aiModule/core/full/paladin_devotion, + /obj/item/aiModule/core/full/paladin + ) + +/obj/effect/spawner/lootdrop/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason + name = "neutral AI module spawner" + loot = list( + /obj/item/aiModule/core/full/corp, + /obj/item/aiModule/core/full/maintain, + /obj/item/aiModule/core/full/drone, + /obj/item/aiModule/core/full/peacekeeper, + /obj/item/aiModule/core/full/reporter, + /obj/item/aiModule/core/full/robocop, + /obj/item/aiModule/core/full/liveandletlive + ) + +/obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called + name = "harmful AI module spawner" + loot = list( + /obj/item/aiModule/core/full/antimov, + /obj/item/aiModule/core/full/balance, + /obj/item/aiModule/core/full/tyrant, + /obj/item/aiModule/core/full/thermurderdynamic + ) +>>>>>>> de7a093... Merge pull request #32905 from vuonojenmustaturska/aispawner diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index d14b764049..b3e49f0991 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -564,3 +564,11 @@ AI MODULES /obj/item/aiModule/core/full/balance name = "'Guardian of Balance' Core AI Module" law_id = "balance" + +/obj/item/aiModule/core/full/maintain + name = "'Station Efficiency' Core AI Module" + law_id = "maintain" + +/obj/item/aiModule/core/full/peacekeeper + name = "'Peacekeeper' Core AI Module" + law_id = "peacekeeper" From 2498e1ddc0c4049cb3d572bbec4db365afc9998c Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 20 Nov 2017 11:13:56 -0500 Subject: [PATCH 08/28] Cleans up unused code --- code/__HELPERS/global_lists.dm | 12 - code/__HELPERS/icons.dm | 3 +- code/__HELPERS/sorts/__main.dm | 8 - code/__HELPERS/time.dm | 4 - code/__HELPERS/unsorted.dm | 6 - code/_js/byjax.dm | 51 ++++ code/_onclick/ai.dm | 6 - code/controllers/subsystem/events.dm | 2 - code/controllers/subsystem/shuttle.dm | 7 - code/datums/antagonists/changeling.dm | 2 - code/datums/browser.dm | 12 - code/datums/components/material_container.dm | 2 - code/datums/datumvars.dm | 15 -- code/datums/diseases/beesease.dm | 4 + code/datums/diseases/cold.dm | 12 - code/game/area/Space_Station_13_areas.dm | 17 -- code/game/atoms.dm | 2 - code/game/gamemodes/devil/objectives.dm | 2 - .../miniantags/sintouched/objectives.dm | 10 - code/game/gamemodes/nuclear/nuclear.dm | 8 - code/game/machinery/computer/medical.dm | 4 - code/game/machinery/computer/message.dm | 3 - code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/doors/door.dm | 3 - code/game/machinery/firealarm.dm | 1 - code/game/machinery/overview.dm | 8 - code/game/machinery/vending.dm | 10 - code/game/mecha/combat/honker.dm | 11 - code/game/objects/items.dm | 1 - code/game/objects/items/devices/PDA/cart.dm | 11 - code/game/objects/items/devices/multitool.dm | 1 - .../objects/items/devices/radio/beacon.dm | 6 - .../game/objects/items/devices/radio/radio.dm | 12 - .../objects/items/stacks/sheets/mineral.dm | 4 - code/game/objects/items/storage/storage.dm | 1 - .../crates_lockers/closets/utility_closets.dm | 5 - .../turfs/simulated/wall/mineral_walls.dm | 4 - code/modules/admin/NewBan.dm | 1 - code/modules/admin/admin.dm | 18 -- code/modules/admin/verbs/mapping.dm | 18 -- code/modules/assembly/signaler.dm | 15 -- .../atmospherics/gasmixtures/gas_mixture.dm | 15 -- .../components/binary_devices/dp_vent_pump.dm | 1 - code/modules/client/client_procs.dm | 8 - code/modules/client/preferences.dm | 2 - code/modules/clothing/head/misc_special.dm | 1 - code/modules/events/spacevine.dm | 1 - code/modules/holodeck/area_copy.dm | 1 - code/modules/library/lib_machines.dm | 2 - code/modules/lighting/lighting_source.dm | 36 --- code/modules/mob/living/brain/life.dm | 8 - code/modules/mob/living/silicon/ai/ai.dm | 5 - .../living/silicon/ai/freelook/cameranet.dm | 152 ++++++++++++ code/modules/mob/living/silicon/ai/say.dm | 8 - .../mob/living/silicon/pai/software.dm | 1 - .../mob/living/silicon/robot/inventory.dm | 217 ++++++++++++++++++ .../mob/living/simple_animal/parrot.dm | 4 - .../mob/living/simple_animal/slime/life.dm | 1 - code/modules/mob/mob.dm | 12 - code/modules/mob/mob_defines.dm | 3 - .../file_system/programs/sm_monitor.dm | 1 - code/modules/ninja/Ninja_Readme.dm | 10 - code/modules/paperwork/filingcabinet.dm | 1 - code/modules/power/antimatter/shielding.dm | 1 - code/modules/power/apc.dm | 9 - code/modules/power/cell.dm | 6 - code/modules/power/generator.dm | 9 - code/modules/power/power.dm | 1 - code/modules/power/singularity/emitter.dm | 5 - code/modules/power/turbine.dm | 1 - code/modules/projectiles/projectile.dm | 1 - code/modules/recycling/conveyor2.dm | 6 - .../designs/mechfabricator_designs.dm | 10 - code/modules/research/experimentor.dm | 3 + code/modules/research/message_server.dm | 2 - .../security_levels/security_levels.dm | 15 +- tgstation.dme | 3 - 77 files changed, 432 insertions(+), 454 deletions(-) delete mode 100644 code/modules/ninja/Ninja_Readme.dm diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 0b79afb941..ca35aa7e47 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -84,18 +84,6 @@ init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes) -/* // Uncomment to debug chemical reaction list. -/client/verb/debug_chemical_list() - - for (var/reaction in chemical_reactions_list) - . += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n" - if(islist(chemical_reactions_list[reaction])) - var/list/L = chemical_reactions_list[reaction] - for(var/t in L) - . += " has: [t]\n" - to_chat(world, .) -*/ - //creates every subtype of prototype (excluding prototype) and adds it to list L. //if no list/L is provided, one is created. /proc/init_subtypes(prototype, list/L) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 6b014efd6a..99c540ec34 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -865,8 +865,7 @@ The _flatIcons list is a cache for generated icon files. /mob/proc/AddCamoOverlay(atom/A)//A is the atom which we are using as the overlay. var/icon/opacity_icon = new(A.icon, A.icon_state)//Don't really care for overlays/underlays. //Now we need to culculate overlays+underlays and add them together to form an image for a mask. - //var/icon/alpha_mask = getFlatIcon(src)//Accurate but SLOW. Not designed for running each tick. Could have other uses I guess. - var/icon/alpha_mask = getIconMask(src)//Which is why I created that proc. Also a little slow since it's blending a bunch of icons together but good enough. + var/icon/alpha_mask = getIconMask(src)//getFlatIcon(src) is accurate but SLOW. Not designed for running each tick. This is also a little slow since it's blending a bunch of icons together but good enough. opacity_icon.AddAlphaMask(alpha_mask)//Likely the main source of lag for this proc. Probably not designed to run each tick. opacity_icon.ChangeOpacity(0.4)//Front end for MapColors so it's fast. 0.5 means half opacity and looks the best in my opinion. for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it. diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm index c7ccfa97d7..768622818f 100644 --- a/code/__HELPERS/sorts/__main.dm +++ b/code/__HELPERS/sorts/__main.dm @@ -27,7 +27,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //Stores information regarding runs yet to be merged. //Run i starts at runBase[i] and extends for runLen[i] elements. //runBase[i] + runLen[i] == runBase[i+1] - //var/stackSize var/list/runBases = list() var/list/runLens = list() @@ -326,8 +325,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards lastOffset = offset offset = (offset << 1) + 1 //1 3 7 15 - //if(offset <= 0) //int overflow, not an issue here since we are using floats - // offset = maxOffset if(offset > maxOffset) offset = maxOffset @@ -341,8 +338,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0) lastOffset = offset offset = (offset << 1) + 1 - //if(offset <= 0) //int overflow, not an issue here since we are using floats - // offset = maxOffset if(offset > maxOffset) offset = maxOffset @@ -575,7 +570,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //If array is small, do an insertion sort if(remaining < MIN_MERGE) - //var/initRunLen = countRunAndMakeAscending(start, end) binarySort(start, end, start/*+initRunLen*/) return @@ -637,8 +631,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) break ++end1 ++cursor1 - //if(++cursor1 >= end1) - // break val2 = fetchElement(L,cursor2) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index e3ce12397e..74c565da52 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -19,10 +19,6 @@ if(month == MM && day == DD) return 1 - // Uncomment this out when debugging! - //else - //return 1 - //returns timestamp in a sql and ISO 8601 friendly format /proc/SQLtime(timevar) if(!timevar) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 41ee61f780..5e266fdaa2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -64,7 +64,6 @@ Turf and target are separate in case you want to teleport some distance from a t errorx = abs(errorx)//Error should never be negative. errory = abs(errory) - //var/errorxy = round((errorx+errory)/2)//Used for diagonal boxes. switch(target.dir)//This can be done through equations but switch is the simpler method. And works fast to boot. //Directs on what values need modifying. @@ -340,10 +339,6 @@ Turf and target are separate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/simple_animal/M in sortmob) moblist.Add(M) -// for(var/mob/living/silicon/hivebot/M in world) -// mob_list.Add(M) -// for(var/mob/living/silicon/hive_mainframe/M in world) -// mob_list.Add(M) for(var/mob/living/carbon/true_devil/M in sortmob) moblist.Add(M) return moblist @@ -1447,7 +1442,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) var/target_loc = target.loc var/endtime = world.time+time -// var/starttime = world.time . = TRUE while (world.time < endtime) stoplag(1) diff --git a/code/_js/byjax.dm b/code/_js/byjax.dm index 895cfc91d9..be418d465c 100644 --- a/code/_js/byjax.dm +++ b/code/_js/byjax.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD //this function places received data into element with specified id. #define js_byjax {" @@ -48,3 +49,53 @@ Be sure to include required js functions in your page, or it'll raise an excepti receiver << output(argums,"[control_id]:replaceContent") return +======= +//this function places received data into element with specified id. +#define js_byjax {" + +function replaceContent() { + var args = Array.prototype.slice.call(arguments); + var id = args\[0\]; + var content = args\[1\]; + var callback = null; + if(args\[2\]){ + callback = args\[2\]; + if(args\[3\]){ + args = args.slice(3); + } + } + var parent = document.getElementById(id); + if(typeof(parent)!=='undefined' && parent!=null){ + parent.innerHTML = content?content:''; + } + if(callback && window\[callback\]){ + window\[callback\].apply(null,args); + } +} +"} + +/* +sends data to control_id:replaceContent + +receiver - mob +control_id - window id (for windows opened with browse(), it'll be "windowname.browser") +target_element - HTML element id +new_content - HTML content +callback - js function that will be called after the data is sent +callback_args - arguments for callback function + +Be sure to include required js functions in your page, or it'll raise an exception. +*/ +/proc/send_byjax(receiver, control_id, target_element, new_content=null, callback=null, list/callback_args=null) + if(receiver && target_element && control_id) // && winexists(receiver, control_id)) + var/list/argums = list(target_element, new_content) + if(callback) + argums += callback + if(callback_args) + argums += callback_args + argums = list2params(argums) + + receiver << output(argums,"[control_id]:replaceContent") + return + +>>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 95ee0c317a..e97f4d5426 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -80,12 +80,6 @@ set_waypoint(A) return - /* - AI restrained() currently does nothing - if(restrained()) - RestrainedClickOn(A) - else - */ A.attack_ai(src) /* diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 3aa1747dee..e70fd1cd7d 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -57,8 +57,6 @@ SUBSYSTEM_DEF(events) /datum/controller/subsystem/events/proc/spawnEvent() set waitfor = FALSE //for the admin prompt if(!CONFIG_GET(flag/allow_random_events)) -// var/datum/round_event_control/E = locate(/datum/round_event_control/dust) in control -// if(E) E.runEvent() return var/gamemode = SSticker.mode.config_tag diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 5fa770179e..8e3ceec261 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -505,14 +505,7 @@ SUBSYSTEM_DEF(shuttle) // Then we want the point closest to -infinity,-infinity var/x2 = min(x0, x1) var/y2 = min(y0, y1) -/* - var/lowx = topleft.x + SHUTTLE_TRANSIT_BORDER - var/lowy = topleft.y + SHUTTLE_TRANSIT_BORDER - var/turf/low_point = locate(lowx, lowy, topleft.z) - new /obj/effect/landmark/stationary(low_point) - to_chat(world, "Starting at the low point, we go [x2],[y2]") -*/ // Then invert the numbers var/transit_x = topleft.x + SHUTTLE_TRANSIT_BORDER + abs(x2) var/transit_y = topleft.y + SHUTTLE_TRANSIT_BORDER + abs(y2) diff --git a/code/datums/antagonists/changeling.dm b/code/datums/antagonists/changeling.dm index d72cb64b81..8a27da5b46 100644 --- a/code/datums/antagonists/changeling.dm +++ b/code/datums/antagonists/changeling.dm @@ -15,8 +15,6 @@ var/list/stored_profiles = list() //list of datum/changelingprofile var/datum/changelingprofile/first_prof = null - //var/list/absorbed_dna = list() - //var/list/protected_dna = list() //dna that is not lost when capacity is otherwise full var/dna_max = 6 //How many extra DNA strands the changeling can store for transformation. var/absorbedcount = 0 var/chem_charges = 20 diff --git a/code/datums/browser.dm b/code/datums/browser.dm index e8a1a17fe2..f863a5007d 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -220,18 +220,6 @@ // This is added to mob so that it can be used without a reference to the browser object // There is probably a better place for this... /mob/proc/browse_rsc_icon(icon, icon_state, dir = -1) - /* - var/icon/I - if (dir >= 0) - I = new /icon(icon, icon_state, dir) - else - I = new /icon(icon, icon_state) - setDir("default") - - var/filename = "[ckey("[icon]_[icon_state]_[dir]")].png" - src << browse_rsc(I, filename) - return filename - */ // Registers the on-close verb for a browse window (client/verb/.windowclose) diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index d618ceda89..c6acb7d78d 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -22,8 +22,6 @@ var/last_insert_success var/precise_insertion = FALSE var/datum/callback/precondition - //MAX_STACK_SIZE = 50 - //MINERAL_MATERIAL_AMOUNT = 2000 /datum/component/material_container/Initialize(list/mat_list, max_amt = 0, _show_on_examine = FALSE, list/allowed_types, datum/callback/_precondition) materials = list() diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index e41666008c..894f34345d 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -418,24 +418,9 @@ item = "[VV_HTML_ENCODE(name)] = /icon ([value])" #endif -/* else if (istype(value, /image)) - #ifdef VARSICON - var/rnd = rand(1, 10000) - var/image/I = value - - src << browse_rsc(I.icon, "tmp[REF(value)][rnd].png") - html += "[name] = " - #else - html += "[name] = /image ([value])" - #endif -*/ else if (isfile(value)) item = "[VV_HTML_ENCODE(name)] = '[value]'" - //else if (istype(value, /client)) - // var/client/C = value - // item = "[VV_HTML_ENCODE(name)] [REF(value)] = [C] [C.type]" - else if (istype(value, /datum)) var/datum/D = value if ("[D]" != "[D.type]") //if the thing as a name var, lets use it. diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm index 3a7e8cfbe3..5235766392 100644 --- a/code/datums/diseases/beesease.dm +++ b/code/datums/diseases/beesease.dm @@ -35,6 +35,10 @@ affected_mob.visible_message("[affected_mob] coughs up a swarm of bees!", \ "You cough up a swarm of bees!") new /mob/living/simple_animal/hostile/poison/bees(affected_mob.loc) +<<<<<<< HEAD //if(5) //Plus if you die, you explode into bees return +======= + return +>>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index 38b23cf3de..5915a784ea 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -13,12 +13,6 @@ ..() switch(stage) if(2) -/* - if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed - to_chat(affected_mob, "\blue You feel better.") - cure() - return -*/ if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed to_chat(affected_mob, "You feel better.") cure() @@ -36,12 +30,6 @@ if(prob(1)) to_chat(affected_mob, "Mucous runs down the back of your throat.") if(3) -/* - if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed - to_chat(affected_mob, "\blue You feel better.") - cure() - return -*/ if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed to_chat(affected_mob, "You feel better.") cure() diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index cb5878208e..b17fe26898 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -511,10 +511,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Research Director's Private Quarters" icon_state = "rd_private" -/area/mint - name = "Mint" - icon_state = "green" - /area/comms name = "Communications Relay" icon_state = "tcomsatcham" @@ -1375,16 +1371,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "eva" ambientsounds = HIGHSEC -/area/ai_monitored/storage/secure - name = "AI Satellite Storage" - icon_state = "storage" - ambientsounds = HIGHSEC - -/area/ai_monitored/storage/emergency - name = "Emergency Storage" - icon_state = "storage" - ambientsounds = HIGHSEC - /area/ai_monitored/storage/satellite name = "AI Satellite Maint" icon_state = "storage" @@ -1522,7 +1508,6 @@ GLOBAL_LIST_INIT(the_station_areas, list ( /area/library, /area/maintenance, /area/medical, -// /area/mint, //not present on map /area/quartermaster, /area/science, /area/security, @@ -1530,8 +1515,6 @@ GLOBAL_LIST_INIT(the_station_areas, list ( /area/storage, /area/teleporter, /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 -// /area/ai_monitored/storage/secure, //not present on map -// /area/ai_monitored/storage/emergency, //not present on map /area/ai_monitored/turret_protected/ai_upload, //do not try to simplify to "/area/ai_monitored/turret_protected" --rastaf0 /area/ai_monitored/turret_protected/ai_upload_foyer, /area/ai_monitored/turret_protected/ai, diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e450c54c1b..8a85bbb814 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -257,8 +257,6 @@ if(desc) to_chat(user, desc) - // *****RM - //to_chat(user, "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]") if(reagents && (is_open_container() || is_transparent())) //is_open_container() isn't really the right proc for this, but w/e to_chat(user, "It contains:") diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm index 181d40ba48..8d5cb430dd 100644 --- a/code/game/gamemodes/devil/objectives.dm +++ b/code/game/gamemodes/devil/objectives.dm @@ -44,8 +44,6 @@ contractName = "of revival" if(CONTRACT_KNOWLEDGE) contractName = "for knowledge" - //if(CONTRACT_UNWILLING) //Makes round unfun. - // contractName = "against their will" update_explanation_text() /datum/objective/devil/soulquality/update_explanation_text() diff --git a/code/game/gamemodes/miniantags/sintouched/objectives.dm b/code/game/gamemodes/miniantags/sintouched/objectives.dm index 2070cdf39a..fae6120f9c 100644 --- a/code/game/gamemodes/miniantags/sintouched/objectives.dm +++ b/code/game/gamemodes/miniantags/sintouched/objectives.dm @@ -1,16 +1,6 @@ /datum/objective/sintouched completed = 1 -/* NO ERP OBJECTIVE FOR YOU. -/datum/objective/sintouched/lust - -/datum/objective/sintouched/lust/New() - var/mob/dead/D = pick(dead_mob_list) - if(prob(50) && D) - explanation_text = "You know that [D] has perished.... and you think [D] is kinda cute. Make sure everyone knows how HOT [D]'s lifeless body is." - else - explanation_text = "Go get married, then immediately cheat on your new spouse." */ - /datum/objective/sintouched/gluttony explanation_text = "Everything is so delicious. Go eat everything." diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 630a5929d7..1e5d899bfa 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -178,14 +178,6 @@ disk_rescued = 0 break var/crew_evacuated = (SSshuttle.emergency.mode == SHUTTLE_ENDGAME) - //var/operatives_are_dead = is_operatives_are_dead() - - - //nukes_left - //station_was_nuked - //derp //Used for tracking if the syndies actually haul the nuke to the station //no - //herp //Used for tracking if the syndies got the shuttle off of the z-level //NO, DON'T FUCKING NAME VARS LIKE THIS - if(nuke_off_station == NUKE_SYNDICATE_BASE) SSticker.mode_result = "loss - syndicate nuked - disk secured" diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 9e51d9125b..cba82f805f 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -100,10 +100,6 @@ dat += text("[]", R.fields["p_stat"]) dat += text("[]", R.fields["m_stat"]) dat += "
" -// if(GLOB.data_core.general) -// for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) -// dat += "[R.fields["id"]]: [R.fields["name"]]
" -// //Foreach goto(132) dat += "
Back" if(3) dat += "Records Maintenance
\nBackup To Disk
\nUpload From Disk
\nDelete All Records
\n
\nBack" diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index d41bcce164..750551abda 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -119,9 +119,6 @@ //Message Logs if(1) var/index = 0 - //var/recipient = "Unspecified" //name of the person - //var/sender = "Unspecified" //name of the sender - //var/message = "Blank" //transferred message dat += "
Back - Refresh

" dat += "" for(var/datum/data_pda_msg/pda in src.linkedServer.pda_msgs) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4b8da75d87..465f74f05e 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -261,7 +261,7 @@ justzap = TRUE addtimer(CALLBACK(src, .proc/unzap), 10) return - else /*if(src.justzap)*/ + else return else if(user.hallucinating() && ishuman(user) && prob(4) && !operating) var/mob/living/carbon/human/H = user diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index fa6275809d..e446670105 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -63,9 +63,6 @@ spark_system = null return ..() -//process() - //return - /obj/machinery/door/CollidedWith(atom/movable/AM) if(operating || emagged) return diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 39df6f409e..41c0fabcae 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -73,7 +73,6 @@ if(src.z in GLOB.station_z_levels) add_overlay("overlay_[GLOB.security_level]") else - //var/green = SEC_LEVEL_GREEN add_overlay("overlay_[SEC_LEVEL_GREEN]") if(detecting) diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index f800309131..6aa4cdade9 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -119,7 +119,6 @@ if(!colour2 && !T.density) var/datum/gas_mixture/environment = T.return_air() var/turf_total = environment.total_moles() - //var/turf_total = T.co2 + T.oxygen + T.poison + T.sl_gas + T.n2 var/t1 = turf_total / MOLES_CELLSTANDARD * 150 @@ -242,9 +241,6 @@ else colour = rgb(255,128,128) - //if(istype(AM, /obj/structure/blob)) - // colour = rgb(255,0,255) - var/area/A = T.loc if(A.fire) @@ -296,10 +292,6 @@ src.close(user) -/* if(seccomp == src) - drawmap(user) - else - user.clearmap()*/ return diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 1705a14c40..8bfade3ebc 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -622,16 +622,6 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY CANISTER CHARGES in vending_items.dm */ -/* -/obj/machinery/vending/atmospherics //Commenting this out until someone ponies up some actual working, broken, and unpowered sprites - Quarxink - name = "Tank Vendor" - desc = "A vendor with a wide variety of masks and gas tanks." - icon = 'icons/obj/objects.dmi' - icon_state = "dispenser" - product_paths = "/obj/item/tank/internals/oxygen;/obj/item/tank/internals/plasma;/obj/item/tank/internals/emergency_oxygen;/obj/item/tank/internals/emergency_oxygen/engi;/obj/item/clothing/mask/breath" - product_amounts = "10;10;10;5;25" -*/ - /obj/machinery/vending/boozeomat name = "\improper Booze-O-Mat" desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm index fe399e64da..ceb88aa9b0 100644 --- a/code/game/mecha/combat/honker.dm +++ b/code/game/mecha/combat/honker.dm @@ -15,17 +15,6 @@ max_equip = 3 var/squeak = 0 -/* -/obj/mecha/combat/honker/New() - ..() - - weapons += new /datum/mecha_weapon/honker(src) - weapons += new /datum/mecha_weapon/missile_rack/banana_mortar(src) - weapons += new /datum/mecha_weapon/missile_rack/mousetrap_mortar(src) - selected_weapon = weapons[1] - return -*/ - /obj/mecha/combat/honker/get_stats_part() var/integrity = obj_integrity/max_integrity*100 var/cell_charge = get_charge() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 3e6d17d4da..e96c4c015b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -51,7 +51,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/item_color = null //this needs deprecating, soonish var/body_parts_covered = 0 //see setup.dm for appropriate bit flags - //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) var/permeability_coefficient = 1 // for chemicals/diseases var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 1e2d00706f..bfcda7d271 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -29,7 +29,6 @@ var/access = 0 //Bit flags_1 for cartridge access -// var/access_flora = 0 var/remote_door_id = "" var/bot_access_flags = 0 //Bit flags_1. Selection: SEC_BOT | MULE_BOT | FLOOR_BOT | CLEAN_BOT | MED_BOT @@ -110,13 +109,6 @@ icon_state = "cart-s" access = CART_NEWSCASTER -/* -/obj/item/cartridge/botanist - name = "\improper Green Thumb v4.20 cartridge" - icon_state = "cart-b" - access_flora = 1 -*/ - /obj/item/cartridge/roboticist name = "\improper B.O.O.P. Remote Control cartridge" desc = "Packed with heavy duty triple-bot interlink!" @@ -669,9 +661,6 @@ Code: var/mob/living/simple_animal/bot/Bot -// if(!SC) -// menu = "Interlink Error - Please reinsert cartridge." -// return if(active_bot) menu += "[active_bot]
Status: (refresh)
" menu += "Model: [active_bot.model]
" diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index e36b97b328..40963c3b08 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -4,7 +4,6 @@ /** * Multitool -- A multitool is used for hacking electronic devices. - * TO-DO -- Using it as a power measurement tool for cables etc. Nannek. * */ diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 78e8757034..4cd286ec85 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -35,9 +35,3 @@ src.code = "beacon" src.add_fingerprint(usr) return - -/* -//Probably a better way of doing this, I'm lazy. -/obj/item/device/radio/beacon/bacon/proc/digest_delay() - spawn(600) - qdel(src)*/ //Bacon beacons are no more rip in peace diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 50a15b20b0..6603bc29ef 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -454,18 +454,6 @@ if(message_mode == MODE_WHISPER || message_mode == MODE_WHISPER_CRIT) raw_message = stars(raw_message) talk_into(speaker, raw_message, , spans, language=message_language) -/* -/obj/item/device/radio/proc/accept_rad(obj/item/device/radio/R as obj, message) - - if ((R.frequency == frequency && message)) - return 1 - else if - - else - return null - return -*/ - /obj/item/device/radio/proc/receive_range(freq, level) // check if this radio can receive on the given frequency, and if so, diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 8c36a5965f..7beb11b6e1 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -375,16 +375,12 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( sheettype = "abductor" GLOBAL_LIST_INIT(abductor_recipes, list ( \ -/* new/datum/stack_recipe("alien chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \ */ new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 2, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("alien table frame", /obj/structure/table_frame/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("alien airlock assembly", /obj/structure/door_assembly/door_assembly_abductor, 4, time = 20, one_per_turf = 1, on_floor = 1), \ null, \ new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ -/* null, \ - new/datum/stack_recipe("Abductor Agent Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("Abductor Sciencist Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1)*/ )) /obj/item/stack/sheet/mineral/abductor/Initialize(mapload, new_amount, merge = TRUE) diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index cb9e6e2d63..6ea3529b3b 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -254,7 +254,6 @@ adjusted_contents++ numbered_contents.Add( new/datum/numbered_display(I) ) - //var/mob/living/carbon/human/H = user var/row_num = 0 var/col_count = min(7,storage_slots) -1 if(adjusted_contents > 7) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index b1e83a9d6f..49a9621fba 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -53,11 +53,6 @@ if ("delete") qdel(src) - //If you want to re-add fire, just add "fire" = 15 to the pick list. - /*if ("fire") - new /obj/structure/closet/firecloset(src.loc) - qdel(src)*/ - /* * Fire Closet */ diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index ad85568267..e8975c41aa 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -13,8 +13,6 @@ icon = 'icons/turf/walls/gold_wall.dmi' icon_state = "gold" sheet_type = /obj/item/stack/sheet/mineral/gold - //var/electro = 1 - //var/shocked = null explosion_block = 0 //gold is a soft metal you dingus. canSmoothWith = list(/turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold) @@ -24,8 +22,6 @@ icon = 'icons/turf/walls/silver_wall.dmi' icon_state = "silver" sheet_type = /obj/item/stack/sheet/mineral/silver - //var/electro = 0.75 - //var/shocked = null canSmoothWith = list(/turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver) /turf/closed/wall/mineral/diamond diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index bd32533a7f..885528f6f9 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -175,7 +175,6 @@ GLOBAL_PROTECT(Banlist) /datum/admins/proc/unbanpanel() var/count = 0 var/dat - //var/dat = "
Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
XSenderRecipientMessage
" GLOB.Banlist.cd = "/base" for (var/A in GLOB.Banlist.dir) count++ diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index fb646059bf..2ec95eb755 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -615,24 +615,6 @@ ////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS -/* -/datum/admins/proc/get_sab_desc(var/target) - switch(target) - if(1) - return "Destroy at least 70% of the plasma canisters on the station" - if(2) - return "Destroy the AI" - if(3) - var/count = 0 - for(var/mob/living/carbon/monkey/Monkey in world) - if(Monkey.z in GLOB.station_z_levels) - count++ - return "Kill all [count] of the monkeys on the station" - if(4) - return "Cut power to at least 80% of the station" - else - return "Error: Invalid sabotage target: [target]" -*/ /datum/admins/proc/spawn_atom(object as text) set category = "Debug" set desc = "(atom path) Spawn an atom" diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index d560099563..ea89cace30 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -228,15 +228,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( if(B.z == num_level) count++ atom_list += A - /* - var/atom/temp_atom - for(var/i = 0; i <= (atom_list.len/10); i++) - var/line = "" - for(var/j = 1; j <= 10; j++) - if(i*10+j <= atom_list.len) - temp_atom = atom_list[i*10+j] - line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; " - to_chat(world, line)*/ to_chat(world, "There are [count] objects of type [type_path] on z-level [num_level]") SSblackbox.add_details("admin_verb","Count Objects Zlevel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -257,15 +248,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( for(var/atom/A in world) if(istype(A,type_path)) count++ - /* - var/atom/temp_atom - for(var/i = 0; i <= (atom_list.len/10); i++) - var/line = "" - for(var/j = 1; j <= 10; j++) - if(i*10+j <= atom_list.len) - temp_atom = atom_list[i*10+j] - line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; " - to_chat(world, line)*/ to_chat(world, "There are [count] objects of type [type_path] in the game world") SSblackbox.add_details("admin_verb","Count Objects All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 0b35304620..f263fc0063 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -39,10 +39,6 @@ /obj/item/device/assembly/signaler/interact(mob/user, flag1) if(is_secured(user)) var/t1 = "-------" - // if ((src.b_stat && !( flag1 ))) - // t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? "Cut Wire" : "Mend Wire"), (src.wires & 2 ? "Cut Wire" : "Mend Wire"), (src.wires & 1 ? "Cut Wire" : "Mend Wire")) - // else - // t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
var/dat = {" @@ -123,17 +119,6 @@ Code: return -/* - for(var/obj/item/device/assembly/signaler/S in world) - if(!S) - continue - if(S == src) - continue - if((S.frequency == src.frequency) && (S.code == src.code)) - spawn(0) - if(S) - S.pulse(0) - return 0*/ /obj/item/device/assembly/signaler/receive_signal(datum/signal/signal) if(!signal) diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index 8ddde526a7..64d77a27dc 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -423,22 +423,7 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) continue reaction_loop //at this point, all minimum requirements for the reaction are satisfied. - /* currently no reactions have maximum requirements, so we can leave the checks commented out for a slight performance boost - var/list/max_reqs = reaction.max_requirements.Copy() - if((max_reqs["TEMP"] && temp > max_reqs["TEMP"]) \ - || (max_reqs["ENER"] && ener > max_reqs["ENER"])) - continue - max_reqs -= "TEMP" - max_reqs -= "ENER" - - for(var/id in max_reqs) - if(cached_gases[id] && cached_gases[id][MOLES] > max_reqs[id]) - continue reaction_loop - //at this point, all requirements for the reaction are satisfied. we can now react() - */ - . |= reaction.react(src, dump_location) - //to_chat(world,reaction.name) if (. & STOP_REACTIONS) break if(.) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 15f0ccddd2..f8204947f1 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -197,7 +197,6 @@ Acts like a normal vent, but has an input AND output. spawn(2) broadcast_status() return //do not update_icon - //if(signal.data["tag"]) spawn(2) broadcast_status() update_icon() diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ea02e81c23..d9b25939a5 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -31,7 +31,6 @@ // asset_cache if(href_list["asset_cache_confirm_arrival"]) - //to_chat(src, "ASSET JOB [href_list["asset_cache_confirm_arrival"]] ARRIVED.") var/job = text2num(href_list["asset_cache_confirm_arrival"]) //because we skip the limiter, we have to make sure this is a valid arrival and not somebody tricking us // into letting append to a list without limit. @@ -131,13 +130,6 @@ if(filelength > UPLOAD_LIMIT) to_chat(src, "Error: AllowUpload(): File Upload too large. Upload Limit: [UPLOAD_LIMIT/1024]KiB.") return 0 -/* //Don't need this at the moment. But it's here if it's needed later. - //Helps prevent multiple files being uploaded at once. Or right after eachother. - var/time_to_wait = fileaccess_timer - world.time - if(time_to_wait > 0) - to_chat(src, "Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds.") - return 0 - fileaccess_timer = world.time + FTPDELAY */ return 1 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index fac42b0787..96942af46a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -239,8 +239,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) S["real_name"] >> name if(!name) name = "Character[i]" - /*if(i!=1) - dat += " | " */ dat += "[name] " dat += "" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 4a86008ad2..3bd255c058 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -18,7 +18,6 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH item_state = "welding" materials = list(MAT_METAL=1750, MAT_GLASS=400) -// var/up = 0 flash_protect = 2 tint = 2 armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 2343a23c9a..a4c9a8563c 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -471,7 +471,6 @@ else //If tile is fully grown SV.entangle_mob() - //if(prob(25)) SV.spread() if(i >= length) break diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index bc2c92e3fb..4acedb4780 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -78,7 +78,6 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs", var/copiedobjs = list() for (var/turf/T in refined_src) - //var/datum/coords/C_src = refined_src[T] var/coordstring = refined_src[T] var/turf/B = refined_trg[coordstring] if(!istype(B)) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index fb55a0565b..52077d2367 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -230,11 +230,9 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums dat += "

Checked Out Books


" for(var/datum/borrowbook/b in checkouts) var/timetaken = world.time - b.getdate - //timetaken *= 10 timetaken /= 600 timetaken = round(timetaken) var/timedue = b.duedate - world.time - //timedue *= 10 timedue /= 600 if(timedue <= 0) timedue = "(OVERDUE) [timedue]" diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index 31ddb27b2a..8e56acc2fb 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -138,42 +138,6 @@ // This is the define used to calculate falloff. -/* -/datum/light_source/proc/apply_lum() - var/static/update_gen = 1 - applied = 1 - - // Keep track of the last applied lum values so that the lighting can be reversed - var/thing - var/datum/lighting_corner/C - var/corners = list() - LAZYINITLIST(effect_str) - FOR_DVIEW(var/turf/T, light_range+1, source_turf, INVISIBILITY_LIGHTING) - var/list/turf_corners = T.get_corners() - - for (thing in turf_corners) - C = thing - if (C.update_gen == update_gen) - continue - - C.update_gen = update_gen - LAZYADD(C.affecting,src) - - if (!C.active) - effect_str[C] = 0 - continue - - APPLY_CORNER(C) - - LAZYADD(T.affecting_lights, src) - LAZYADD(affecting_turfs, T) - FOR_DVIEW_END - update_gen++ - applied_lum_r = lum_r - applied_lum_g = lum_g - applied_lum_b = lum_b -*/ - /datum/light_source/proc/remove_lum() applied = FALSE var/thing diff --git a/code/modules/mob/living/brain/life.dm b/code/modules/mob/living/brain/life.dm index 9d87f412e8..c8df16a1cf 100644 --- a/code/modules/mob/living/brain/life.dm +++ b/code/modules/mob/living/brain/life.dm @@ -24,14 +24,6 @@ if(BR) BR.damaged_brain = 1 //beaten to a pulp -/* //currently unused feature, since brain outside a mmi is always dead. -/mob/living/brain/proc/handle_brain_revival_life() - if(stat != DEAD) - if(config.revival_brain_life != -1) - if( !container && (world.time - timeofhostdeath) > config.revival_brain_life) - death() -*/ - /mob/living/brain/proc/handle_emp_damage() if(emp_damage) if(stat == DEAD) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 36bd1893e2..3a5988e09a 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -32,7 +32,6 @@ var/aiRestorePowerRoutine = 0 var/requires_power = POWER_REQ_ALL var/can_be_carded = TRUE - //var/list/laws = list() var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) var/viewalerts = 0 var/icon/holo_icon//Default is assigned when AI is created. @@ -172,7 +171,6 @@ if(incapacitated()) return - //if(icon_state == initial(icon_state)) var/icontype = input("Please, select a display!", "AI", null/*, null*/) in list("Clown", "Monochrome", "Blue", "Inverted", "Firewall", "Green", "Red", "Static", "Red October", "House", "Heartline", "Hades", "Helios", "President", "Syndicat Meow", "Alien", "Too Deep", "Triumvirate", "Triumvirate-M", "Text", "Matrix", "Dorf", "Bliss", "Not Malf", "Fuzzy", "Goon", "Database", "Glitchman", "Murica", "Nanotrasen", "Gentoo", "Angel") if(icontype == "Clown") icon_state = "ai-clown2" @@ -238,9 +236,6 @@ icon_state = "ai-gentoo" else if(icontype == "Angel") icon_state = "ai-angel" - //else - //to_chat(usr, "You can only change your display once!") - //return /mob/living/silicon/ai/Stat() ..() diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index 812e207249..5dc515a216 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD // CAMERA NET // // The datum containing all the chunks. @@ -159,3 +160,154 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) var/datum/camerachunk/chunk = cameranet.getCameraChunk(x, y, z) usr.client.debug_variables(chunk) */ +======= +// CAMERA NET +// +// The datum containing all the chunks. + +#define CHUNK_SIZE 16 // Only chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc.. + +GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) + +/datum/cameranet + var/name = "Camera Net" // Name to show for VV and stat() + + // The cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del(). + var/list/cameras = list() + // The chunks of the map, mapping the areas that the cameras can see. + var/list/chunks = list() + var/ready = 0 + + // The object used for the clickable stat() button. + var/obj/effect/statclick/statclick + +// Checks if a chunk has been Generated in x, y, z. +/datum/cameranet/proc/chunkGenerated(x, y, z) + x &= ~(CHUNK_SIZE - 1) + y &= ~(CHUNK_SIZE - 1) + var/key = "[x],[y],[z]" + return (chunks[key]) + +// Returns the chunk in the x, y, z. +// If there is no chunk, it creates a new chunk and returns that. +/datum/cameranet/proc/getCameraChunk(x, y, z) + x &= ~(CHUNK_SIZE - 1) + y &= ~(CHUNK_SIZE - 1) + var/key = "[x],[y],[z]" + if(!chunks[key]) + chunks[key] = new /datum/camerachunk(null, x, y, z) + + return chunks[key] + +// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. + +/datum/cameranet/proc/visibility(mob/camera/aiEye/ai) + // 0xf = 15 + var/x1 = max(0, ai.x - 16) & ~(CHUNK_SIZE - 1) + var/y1 = max(0, ai.y - 16) & ~(CHUNK_SIZE - 1) + var/x2 = min(world.maxx, ai.x + 16) & ~(CHUNK_SIZE - 1) + var/y2 = min(world.maxy, ai.y + 16) & ~(CHUNK_SIZE - 1) + + var/list/visibleChunks = list() + + for(var/x = x1; x <= x2; x += CHUNK_SIZE) + for(var/y = y1; y <= y2; y += CHUNK_SIZE) + visibleChunks |= getCameraChunk(x, y, ai.z) + + var/list/remove = ai.visibleCameraChunks - visibleChunks + var/list/add = visibleChunks - ai.visibleCameraChunks + + for(var/chunk in remove) + var/datum/camerachunk/c = chunk + c.remove(ai) + + for(var/chunk in add) + var/datum/camerachunk/c = chunk + c.add(ai) + +// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open. + +/datum/cameranet/proc/updateVisibility(atom/A, opacity_check = 1) + + if(!SSticker || (opacity_check && !A.opacity)) + return + majorChunkChange(A, 2) + +/datum/cameranet/proc/updateChunk(x, y, z) + // 0xf = 15 + if(!chunkGenerated(x, y, z)) + return + var/datum/camerachunk/chunk = getCameraChunk(x, y, z) + chunk.hasChanged() + +// Removes a camera from a chunk. + +/datum/cameranet/proc/removeCamera(obj/machinery/camera/c) + if(c.can_use()) + majorChunkChange(c, 0) + +// Add a camera to a chunk. + +/datum/cameranet/proc/addCamera(obj/machinery/camera/c) + if(c.can_use()) + majorChunkChange(c, 1) + +// Used for Cyborg cameras. Since portable cameras can be in ANY chunk. + +/datum/cameranet/proc/updatePortableCamera(obj/machinery/camera/c) + if(c.can_use()) + majorChunkChange(c, 1) + +// Never access this proc directly!!!! +// This will update the chunk and all the surrounding chunks. +// It will also add the atom to the cameras list if you set the choice to 1. +// Setting the choice to 0 will remove the camera from the chunks. +// If you want to update the chunks around an object, without adding/removing a camera, use choice 2. + +/datum/cameranet/proc/majorChunkChange(atom/c, choice) + // 0xf = 15 + if(!c) + return + + var/turf/T = get_turf(c) + if(T) + var/x1 = max(0, T.x - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1) + var/y1 = max(0, T.y - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1) + var/x2 = min(world.maxx, T.x + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1) + var/y2 = min(world.maxy, T.y + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1) + for(var/x = x1; x <= x2; x += CHUNK_SIZE) + for(var/y = y1; y <= y2; y += CHUNK_SIZE) + if(chunkGenerated(x, y, T.z)) + var/datum/camerachunk/chunk = getCameraChunk(x, y, T.z) + if(choice == 0) + // Remove the camera. + chunk.cameras -= c + else if(choice == 1) + // You can't have the same camera in the list twice. + chunk.cameras |= c + chunk.hasChanged() + +// Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0. + +/datum/cameranet/proc/checkCameraVis(mob/living/target) + + // 0xf = 15 + var/turf/position = get_turf(target) + return checkTurfVis(position) + + +/datum/cameranet/proc/checkTurfVis(turf/position) + var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z) + if(chunk) + if(chunk.changed) + chunk.hasChanged(1) // Update now, no matter if it's visible or not. + if(chunk.visibleTurfs[position]) + return 1 + return 0 + +/datum/cameranet/proc/stat_entry() + if(!statclick) + statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) + + stat(name, statclick.update("Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]")) +>>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 8593eafc37..13f0609c0d 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -138,14 +138,6 @@ for(var/word in words) play_vox_word(word, src.z, null) -/* - for(var/mob/M in player_list) - if(M.client) - var/turf/T = get_turf(M) - var/turf/our_turf = get_turf(src) - if(T.z == our_turf.z) - to_chat(M, "AI announcement: [message]") -*/ /proc/play_vox_word(word, z_level, mob/only_listener) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index e21abfc6b2..7df929f20a 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -588,7 +588,6 @@ if(!istype(machine, /obj/machinery/door)) dat += "Connected device's firmware does not appear to be compatible with Airlock Jack protocols.
" return dat -// var/obj/machinery/airlock/door = machine if(!hackdoor) dat += "Begin Airlock Jacking
" diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 81e99abcc6..dcec2ee8d7 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD //These procs handle putting stuff in your hand. It's probably best to use these rather than setting stuff manually //as they handle all relevant stuff like adding it to the player's screen and such @@ -213,3 +214,219 @@ /mob/living/silicon/robot/swap_hand() cycle_modules() +======= +//These procs handle putting stuff in your hand. It's probably best to use these rather than setting stuff manually +//as they handle all relevant stuff like adding it to the player's screen and such + +//Returns the thing in our active hand (whatever is in our active module-slot, in this case) +/mob/living/silicon/robot/get_active_held_item() + return module_active + + + +/mob/living/silicon/robot/proc/uneq_module(obj/item/O) + if(!O) + return 0 + O.mouse_opacity = MOUSE_OPACITY_OPAQUE + if(istype(O, /obj/item/borg/sight)) + var/obj/item/borg/sight/S = O + sight_mode &= ~S.sight_mode + update_sight() + else if(istype(O, /obj/item/storage/bag/tray/)) + var/obj/item/storage/bag/tray/T = O + T.do_quick_empty() + if(client) + client.screen -= O + observer_screen_update(O,FALSE) + O.forceMove(module) //Return item to module so it appears in its contents, so it can be taken out again. + + if(O.flags_1 & DROPDEL_1) + O.flags_1 &= ~DROPDEL_1 //we shouldn't HAVE things with DROPDEL_1 in our modules, but better safe than runtiming horribly + + O.dropped(src) + + if(module_active == O) + module_active = null + if(held_items[1] == O) + inv1.icon_state = "inv1" + held_items[1] = null + else if(held_items[2] == O) + inv2.icon_state = "inv2" + held_items[2] = null + else if(held_items[3] == O) + inv3.icon_state = "inv3" + held_items[3] = null + hud_used.update_robot_modules_display() + return 1 + +/mob/living/silicon/robot/proc/activate_module(obj/item/O) + . = FALSE + if(!(O in module.modules)) + return + if(activated(O)) + to_chat(src, "That module is already activated.") + return + if(!held_items[1]) + held_items[1] = O + O.screen_loc = inv1.screen_loc + . = TRUE + else if(!held_items[2]) + held_items[2] = O + O.screen_loc = inv2.screen_loc + . = TRUE + else if(!held_items[3]) + held_items[3] = O + O.screen_loc = inv3.screen_loc + . = TRUE + else + to_chat(src, "You need to disable a module first!") + if(.) + O.equipped(src, slot_hands) + O.mouse_opacity = initial(O.mouse_opacity) + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + observer_screen_update(O,TRUE) + O.forceMove(src) + if(istype(O, /obj/item/borg/sight)) + var/obj/item/borg/sight/S = O + sight_mode |= S.sight_mode + update_sight() + + +/mob/living/silicon/robot/proc/observer_screen_update(obj/item/I,add = TRUE) + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client && observe.client.eye == src) + if(add) + observe.client.screen += I + else + observe.client.screen -= I + else + observers -= observe + if(!observers.len) + observers = null + break + +/mob/living/silicon/robot/proc/uneq_active() + uneq_module(module_active) + +/mob/living/silicon/robot/proc/uneq_all() + for(var/obj/item/I in held_items) + uneq_module(I) + +/mob/living/silicon/robot/proc/activated(obj/item/O) + if(O in held_items) + return TRUE + return FALSE + +//Helper procs for cyborg modules on the UI. +//These are hackish but they help clean up code elsewhere. + +//module_selected(module) - Checks whether the module slot specified by "module" is currently selected. +/mob/living/silicon/robot/proc/module_selected(module) //Module is 1-3 + return module == get_selected_module() + +//module_active(module) - Checks whether there is a module active in the slot specified by "module". +/mob/living/silicon/robot/proc/module_active(module) //Module is 1-3 + if(module < 1 || module > 3) + return FALSE + + if(LAZYLEN(held_items) >= module) + if(held_items[module]) + return TRUE + return FALSE + +//get_selected_module() - Returns the slot number of the currently selected module. Returns 0 if no modules are selected. +/mob/living/silicon/robot/proc/get_selected_module() + if(module_active) + return held_items.Find(module_active) + + return 0 + +//select_module(module) - Selects the module slot specified by "module" +/mob/living/silicon/robot/proc/select_module(module) //Module is 1-3 + if(module < 1 || module > 3) + return + + if(!module_active(module)) + return + + switch(module) + if(1) + if(module_active != held_items[module]) + inv1.icon_state = "inv1 +a" + inv2.icon_state = "inv2" + inv3.icon_state = "inv3" + if(2) + if(module_active != held_items[module]) + inv1.icon_state = "inv1" + inv2.icon_state = "inv2 +a" + inv3.icon_state = "inv3" + if(3) + if(module_active != held_items[module]) + inv1.icon_state = "inv1" + inv2.icon_state = "inv2" + inv3.icon_state = "inv3 +a" + module_active = held_items[module] + +//deselect_module(module) - Deselects the module slot specified by "module" +/mob/living/silicon/robot/proc/deselect_module(module) //Module is 1-3 + if(module < 1 || module > 3) + return + + if(!module_active(module)) + return + + switch(module) + if(1) + if(module_active == held_items[module]) + inv1.icon_state = "inv1" + if(2) + if(module_active == held_items[module]) + inv2.icon_state = "inv2" + if(3) + if(module_active == held_items[module]) + inv3.icon_state = "inv3" + module_active = null + +//toggle_module(module) - Toggles the selection of the module slot specified by "module". +/mob/living/silicon/robot/proc/toggle_module(module) //Module is 1-3 + if(module < 1 || module > 3) + return + + if(module_selected(module)) + deselect_module(module) + else + if(module_active(module)) + select_module(module) + else + deselect_module(get_selected_module()) //If we can't do select anything, at least deselect the current module. + return + +//cycle_modules() - Cycles through the list of selected modules. +/mob/living/silicon/robot/proc/cycle_modules() + var/slot_start = get_selected_module() + if(slot_start) + deselect_module(slot_start) //Only deselect if we have a selected slot. + + var/slot_num + if(slot_start == 0) + slot_num = 1 + slot_start = 4 + else + slot_num = slot_start + 1 + + while(slot_num != slot_start) //If we wrap around without finding any free slots, just give up. + if(module_active(slot_num)) + select_module(slot_num) + return + slot_num++ + if(slot_num > 4) // not >3 otherwise cycling with just one item on module 3 wouldn't work + slot_num = 1 //Wrap around. + + + +/mob/living/silicon/robot/swap_hand() + cycle_modules() +>>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 6ff04231af..641e78a0f3 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -70,8 +70,6 @@ var/parrot_dam_zone = list("chest", "head", "l_arm", "l_leg", "r_arm", "r_leg") //For humans, select a bodypart to attack var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower. - //var/parrot_been_shot = 0 this wasn't working right, and parrots don't survive bullets.((Parrots get a speed bonus after being shot. This will deincrement every Life() and at 0 the parrot will return to regular speed.)) - var/parrot_lastmove = null //Updates/Stores position of the parrot while it's moving var/parrot_stuck = 0 //If parrot_lastmove hasnt changed, this will increment until it reaches parrot_stuck_threshold var/parrot_stuck_threshold = 10 //if this == parrot_stuck, it'll force the parrot back to wandering @@ -547,8 +545,6 @@ parrot_state = PARROT_WANDER walk_away(src, parrot_interest, 1, parrot_speed) - /*if(parrot_been_shot > 0) - parrot_been_shot-- didn't work anyways, and besides, any bullet poly survives isn't worth the speed boost.*/ if(isStuck()) return diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 0ec41119dc..6cc1df085c 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -112,7 +112,6 @@ if(!environment) return - //var/environment_heat_capacity = environment.heat_capacity() var/loc_temp = get_temperature(environment) bodytemperature += adjust_body_temperature(bodytemperature, loc_temp, 1) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index df80302743..9a9b161e51 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -420,18 +420,6 @@ I.attack_self(src) update_inv_hands() - -/* -/mob/verb/dump_source() - - var/master = "
"
-	for(var/t in typesof(/area))
-		master += text("[]\n", t)
-		//Foreach goto(26)
-	src << browse(master)
-	return
-*/
-
 /mob/verb/memory()
 	set name = "Notes"
 	set category = "IC"
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 525e6ecb2c..58cb82714e 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -110,9 +110,6 @@
 
 	var/list/mob_spell_list = list() //construct spells and mime spells. Spells that do not transfer from one mob to another and can not be lost in mindswap.
 
-//Changlings, but can be used in other modes
-//	var/obj/effect/proc_holder/changpower/list/power_list = list()
-
 //List of active diseases
 
 	var/list/viruses = list() // list of all diseases in a mob
diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm
index ae719c9bc4..2141f4fdd7 100644
--- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm
+++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm
@@ -41,7 +41,6 @@
 	var/turf/T = get_turf(ui_host())
 	if(!T)
 		return
-	//var/valid_z_levels = (GetConnectedZlevels(T.z) & using_map.station_levels)
 	for(var/obj/machinery/power/supermatter_shard/S in GLOB.machines)
 		// Delaminating, not within coverage, not on a tile.
 		if(!((S.z in GLOB.station_z_levels) || S.z == ZLEVEL_MINING || S.z == T.z || !isturf(S.loc)))
diff --git a/code/modules/ninja/Ninja_Readme.dm b/code/modules/ninja/Ninja_Readme.dm
deleted file mode 100644
index 2d383f9b1f..0000000000
--- a/code/modules/ninja/Ninja_Readme.dm
+++ /dev/null
@@ -1,10 +0,0 @@
-
-/*
-
-Removing Snowflake:
-- Search for NINJACODE (one word, all caps) to find Space Ninja Code outside of the /modules/ninja folder.
-
-Ninja Folder:
-- This folder contains 90% of Ninja code and will eventually contain it all, once snowflake is cleaned out
-
-*/
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 72dce2b8d2..21d157a33c 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -101,7 +101,6 @@
 	if(href_list["retrieve"])
 		usr << browse("", "window=filingcabinet") // Close the menu
 
-		//var/retrieveindex = text2num(href_list["retrieve"])
 		var/obj/item/P = locate(href_list["retrieve"])//contents[retrieveindex]
 		if(istype(P) && P.loc == src && in_range(src, usr))
 			usr.put_in_hands(P)
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index f0bcf5e9f1..327b3a716a 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -180,7 +180,6 @@
 	for(var/direction in GLOB.alldirs)
 		var/found_am_device=0
 		for(var/obj/machinery/machine in get_step(loc, direction))
-		//var/machine = locate(/obj/machinery, get_step(loc, direction))
 			if(!machine)
 				continue//Need all for a core
 			if(istype(machine, /obj/machinery/am_shielding) || istype(machine, /obj/machinery/power/am_control_unit))
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index ce1148f985..35d104819f 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -1052,15 +1052,6 @@
 		force_update = 1
 		return
 
-	/*
-	if (equipment > 1) // off=0, off auto=1, on=2, on auto=3
-		use_power(src.equip_consumption, EQUIP)
-	if (lighting > 1) // off=0, off auto=1, on=2, on auto=3
-		use_power(src.light_consumption, LIGHT)
-	if (environ > 1) // off=0, off auto=1, on=2, on auto=3
-		use_power(src.environ_consumption, ENVIRON)
-
-	area.calc_lighting() */
 	lastused_light = area.usage(STATIC_LIGHT)
 	lastused_light += area.usage(LIGHT)
 	lastused_equip = area.usage(EQUIP)
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 040a05c1cb..3e57ae2689 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -111,12 +111,6 @@
 
 /obj/item/stock_parts/cell/proc/explode()
 	var/turf/T = get_turf(src.loc)
-/*
- * 1000-cell	explosion(T, -1, 0, 1, 1)
- * 2500-cell	explosion(T, -1, 0, 1, 1)
- * 10000-cell	explosion(T, -1, 1, 3, 3)
- * 15000-cell	explosion(T, -1, 2, 4, 4)
- * */
 	if (charge==0)
 		return
 	var/devastation_range = -1 //round(charge/11000)
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 5369686b31..6a8c6ec5ec 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -1,12 +1,3 @@
-// dummy generator object for testing
-
-/*/obj/machinery/power/generator/verb/set_amount(var/g as num)
-	set src in view(1)
-
-	gen_amount = g
-
-*/
-
 /obj/machinery/power/generator
 	name = "thermoelectric generator"
 	desc = "It's a high efficiency thermoelectric generator."
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index d17071eeb3..933cfc70e0 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -188,7 +188,6 @@
 // if unmarked==1, only return those with no powernet
 /proc/power_list(turf/T, source, d, unmarked=0, cable_only = 0)
 	. = list()
-	//var/fdir = (!d)? 0 : turn(d, 180)			// the opposite direction to d (or 0 if d==0)
 
 	for(var/AM in T)
 		if(AM == source)
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index fc06adfe78..7596d890e0 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -152,11 +152,6 @@
 
 
 /obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues
-//	add_load(1000)
-/*	if((severity == 1)&&prob(1)&&prob(1))
-		if(src.active)
-			src.active = 0
-			src.use_power = IDLE_POWER_USE	*/
 	return 1
 
 
diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm
index 0d1a8904f4..497fc53ae3 100644
--- a/code/modules/power/turbine.dm
+++ b/code/modules/power/turbine.dm
@@ -139,7 +139,6 @@
 	// It's a simplified version taking only 1/10 of the moles from the turf nearby. It should be later changed into a better version
 
 	var/transfer_moles = environment.total_moles()/10
-	//var/transfer_moles = rpm/10000*capacity
 	var/datum/gas_mixture/removed = inturf.remove_air(transfer_moles)
 	gas_contained.merge(removed)
 
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index bb26694021..a45b713b85 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -336,7 +336,6 @@
 	step_towards(src, locate(new_x, new_y, z))
 	pixel_x = old_pixel_x
 	pixel_y = old_pixel_y
-	//var/animation_time = ((SSprojectiles.flags & SS_TICKER? (SSprojectiles.wait * world.tick_lag) : SSprojectiles.wait) / moves)
 	animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = 1, flags = ANIMATION_END_NOW)
 	old_pixel_x = pixel_x_offset
 	old_pixel_y = pixel_y_offset
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index 6d541dad1a..05135e9765 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -179,12 +179,6 @@
 	if(C)
 		C.set_operable(stepdir, id, op)
 
-/*
-/obj/machinery/conveyor/verb/destroy()
-	set src in view()
-	src.broken()
-*/
-
 /obj/machinery/conveyor/power_change()
 	..()
 	update()
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 51485380ce..6d0c32fcb1 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -191,16 +191,6 @@
 	construction_time = 130
 	category = list("Odysseus")
 
-/*/datum/design/odysseus_armor
-	name = "Exosuit Armor (\"Odysseus\")"
-	id = "odysseus_armor"
-	build_type = MECHFAB
-	build_path = /obj/item/mecha_parts/part/odysseus_armor
-	materials = list(MAT_METAL=15000)
-	construction_time = 200
-	category = list("Odysseus")
-	*/
-
 //Gygax
 /datum/design/gygax_chassis
 	name = "Exosuit Chassis (\"Gygax\")"
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 1f2a3bb472..35dac9190b 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -43,6 +43,7 @@
 		temp_list[O] = text2num(temp_list[O])
 	return temp_list
 
+<<<<<<< HEAD
 /* //uncomment to enable forced reactions.
 /obj/machinery/r_n_d/experimentor/verb/forceReaction()
 	set name = "Force Experimentor Reaction"
@@ -56,6 +57,8 @@
 		if(loaded_item)
 			item_reactions["[loaded_item.type]"] = oldReaction
 */
+=======
+>>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup
 
 /obj/machinery/r_n_d/experimentor/proc/SetTypeReactions()
 	var/probWeight = 0
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 295dd4429a..d42e43ec9a 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -98,8 +98,6 @@ GLOBAL_LIST_INIT(message_servers, list())
 	return newKey
 
 /obj/machinery/message_server/process()
-	//if(decryptkey == "password")
-	//	decryptkey = generateKey()
 	if(active && (stat & (BROKEN|NOPOWER)))
 		active = 0
 		return
diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm
index a145028ad3..0c022a4c70 100644
--- a/code/modules/security_levels/security_levels.dm
+++ b/code/modules/security_levels/security_levels.dm
@@ -57,11 +57,14 @@ GLOBAL_VAR_INIT(security_level, 0)
 					minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!")
 				GLOB.security_level = SEC_LEVEL_RED
 
+<<<<<<< HEAD
 				/*	- At the time of commit, setting status displays didn't work properly
 				var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
 				if(CC)
 					CC.post_status("alert", "redalert")*/
 				sound_to_playing_players('sound/misc/voyalert.ogg')
+=======
+>>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup
 				for(var/obj/machinery/firealarm/FA in GLOB.machines)
 					if(FA.z in GLOB.station_z_levels)
 						FA.update_icon()
@@ -116,15 +119,3 @@ GLOBAL_VAR_INIT(security_level, 0)
 			return SEC_LEVEL_RED
 		if("delta")
 			return SEC_LEVEL_DELTA
-
-
-/*DEBUG
-/mob/verb/set_thing0()
-	set_security_level(0)
-/mob/verb/set_thing1()
-	set_security_level(1)
-/mob/verb/set_thing2()
-	set_security_level(2)
-/mob/verb/set_thing3()
-	set_security_level(3)
-*/
diff --git a/tgstation.dme b/tgstation.dme
index b68ee744a2..cf8d759a69 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1663,7 +1663,6 @@
 #include "code\modules\mob\login.dm"
 #include "code\modules\mob\logout.dm"
 #include "code\modules\mob\mob.dm"
-#include "code\modules\mob\mob_cleanup.dm"
 #include "code\modules\mob\mob_defines.dm"
 #include "code\modules\mob\mob_helpers.dm"
 #include "code\modules\mob\mob_movement.dm"
@@ -2011,7 +2010,6 @@
 #include "code\modules\ninja\__ninjaDefines.dm"
 #include "code\modules\ninja\energy_katana.dm"
 #include "code\modules\ninja\ninja_event.dm"
-#include "code\modules\ninja\Ninja_Readme.dm"
 #include "code\modules\ninja\outfit.dm"
 #include "code\modules\ninja\suit\gloves.dm"
 #include "code\modules\ninja\suit\head.dm"
@@ -2060,7 +2058,6 @@
 #include "code\modules\power\rtg.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\turbine.dm"

From 588b76b59e045d1f270f65b69e66ec5162188b15 Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 13:57:15 -0500
Subject: [PATCH 09/28] Update lootdrop.dm

---
 code/game/objects/effects/spawners/lootdrop.dm | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 316f7f34c9..34e6793d5b 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -162,9 +162,6 @@
 	name = "25% cyborg mask spawner"
 	loot = list(
 		/obj/item/clothing/mask/gas/cyborg = 25,
-<<<<<<< HEAD
-		"" = 75)
-=======
 		"" = 75)
 
 /obj/effect/spawner/lootdrop/aimodule_harmless // These shouldn't allow the AI to start butchering people
@@ -197,4 +194,3 @@
 				/obj/item/aiModule/core/full/tyrant,
 				/obj/item/aiModule/core/full/thermurderdynamic
 				)
->>>>>>> de7a093... Merge pull request #32905 from vuonojenmustaturska/aispawner

From 8242b08d28b9ca32c2acb21cabff945aae1f4118 Mon Sep 17 00:00:00 2001
From: KorPhaeron 
Date: Mon, 20 Nov 2017 13:40:15 -0600
Subject: [PATCH 10/28] Bar Drone can't be remotely detonated (#32908)

---
 code/modules/shuttle/special.dm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index f2d451f6e2..6db6e73cff 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -140,6 +140,7 @@
 	name = "Bardrone"
 	desc = "A barkeeping drone, an indestructible robot built to tend bars."
 	seeStatic = FALSE
+	hacked = TRUE
 	laws = "1. Serve drinks.\n\
 		2. Talk to patrons.\n\
 		3. Don't get messed up in their affairs."
@@ -227,10 +228,10 @@
 /obj/effect/forcefield/luxury_shuttle/CollidedWith(atom/movable/AM)
 	if(!isliving(AM))
 		return ..()
-	
+
 	if(check_times[AM] && check_times[AM] > world.time) //Let's not spam the message
 		return ..()
-	
+
 	check_times[AM] = world.time + LUXURY_MESSAGE_COOLDOWN
 
 	var/total_cash = 0

From ff3b8ec67a900706c82da8502c031c7d68c40198 Mon Sep 17 00:00:00 2001
From: Jordan Brown 
Date: Mon, 20 Nov 2017 17:44:06 -0500
Subject: [PATCH 12/28] Merge pull request #32915 from francinum/master

Replaces the strangely sized buildshuttle plate
---
 _maps/shuttles/emergency_airless.dmm | 798 ++++++++++++++++++---------
 1 file changed, 537 insertions(+), 261 deletions(-)

diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm
index 444a104f1d..5e4eeab679 100644
--- a/_maps/shuttles/emergency_airless.dmm
+++ b/_maps/shuttles/emergency_airless.dmm
@@ -3,329 +3,605 @@
 /turf/open/space,
 /area/space)
 "b" = (
+/obj/structure/shuttle/engine/propulsion{
+	dir = 1
+	},
+/obj/effect/turf_decal/stripes/line{
+	dir = 1
+	},
 /turf/open/floor/plating/airless,
 /area/shuttle/escape)
 "c" = (
-/turf/closed/wall,
+/turf/closed/wall/mineral/plastitanium,
 /area/shuttle/escape)
 "d" = (
-/obj/structure/closet/malf,
+/obj/structure/window/reinforced,
+/obj/structure/shuttle/engine/heater{
+	dir = 1
+	},
+/obj/effect/turf_decal/stripes/line{
+	dir = 1
+	},
 /turf/open/floor/plating/airless,
 /area/shuttle/escape)
 "e" = (
-/obj/machinery/status_display,
 /turf/closed/wall,
 /area/shuttle/escape)
 "f" = (
-/obj/effect/shuttle_build,
 /turf/open/floor/plating/airless,
 /area/shuttle/escape)
 "g" = (
-/turf/open/floor/plating,
+/obj/docking_port/mobile/emergency{
+	dwidth = 11;
+	height = 18;
+	name = "Shuttle Under Construction";
+	port_direction = 4;
+	preferred_direction = 2;
+	timid = 1;
+	width = 30
+	},
+/turf/open/floor/plating/airless,
 /area/shuttle/escape)
 "h" = (
-/obj/docking_port/mobile/emergency{
-	name = "Shuttle Under Construction";
-	timid = 1
-	},
+/obj/effect/shuttle_build,
 /turf/open/floor/plating/airless,
 /area/shuttle/escape)
 "i" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
-	lootcount = 4;
-	name = "4maintenance loot spawner"
-	},
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"j" = (
-/obj/structure/window/reinforced{
-	dir = 1
-	},
-/obj/structure/shuttle/engine/heater,
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"k" = (
-/obj/structure/shuttle/engine/propulsion,
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"l" = (
-/obj/structure/closet/malf,
-/obj/machinery/light/built{
-	dir = 8
-	},
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"m" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
-	lootcount = 4;
-	name = "4maintenance loot spawner"
-	},
-/obj/machinery/light/built{
-	dir = 4
-	},
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
+/turf/open/space/basic,
+/area/space)
 
 (1,1,1) = {"
 a
-a
-a
-a
-a
-a
-b
+c
+e
+f
+f
+f
+f
+f
+f
+f
+f
 g
-b
-h
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
 a
+i
+i
+i
 a
 "}
 (2,1,1) = {"
-a
 b
-c
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
 e
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-c
-c
 a
+i
+i
+i
 a
 "}
 (3,1,1) = {"
 b
-b
 d
-l
-d
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+a
+i
+i
+i
+a
 "}
 (4,1,1) = {"
 b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+a
+i
+i
+i
+a
 "}
 (5,1,1) = {"
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+c
+c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
+f
+f
+e
+e
 "}
 (6,1,1) = {"
 b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
 "}
 (7,1,1) = {"
 b
-b
-b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
 f
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
 "}
 (8,1,1) = {"
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+c
+c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
 "}
 (9,1,1) = {"
 b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-i
-m
-i
-b
-b
-j
-k
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
 "}
 (10,1,1) = {"
-a
 b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-e
-c
-b
-c
-a
-a
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+h
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
 "}
 (11,1,1) = {"
-a
-a
-a
-a
-a
-a
-c
-c
-c
 c
 c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(12,1,1) = {"
 b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(13,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+"}
+(14,1,1) = {"
 c
 c
-a
-a
-a
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
+f
+f
+e
+e
+"}
+(15,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+c
+e
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
 a
 a
 a

From 70c7996986c33cece0fd8b80a3c313b4cf5ab52e Mon Sep 17 00:00:00 2001
From: AnturK 
Date: Tue, 21 Nov 2017 02:35:20 +0100
Subject: [PATCH 14/28] Fixes abductor teams getting assigned to same pod
 (#32859)

* Fixes abductors getting assigned to same team

* Remove explicit null return
---
 code/game/gamemodes/miniantags/abduction/abduction.dm | 7 ++++++-
 code/modules/events/abductor.dm                       | 6 +++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm
index d6f1b775e9..4eb8642c02 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction.dm
@@ -26,6 +26,7 @@
 	var/max_teams = 4
 	var/list/datum/objective_team/abductor_team/abductor_teams = list()
 	var/finished = FALSE
+	var/static/team_count = 0
 
 /datum/game_mode/abduction/announce()
 	to_chat(world, "The current game mode is - Abduction!")
@@ -44,7 +45,11 @@
 	return TRUE
 
 /datum/game_mode/abduction/proc/make_abductor_team(datum/mind/agent, datum/mind/scientist)
-	var/team_number = abductor_teams.len+1
+	team_count++ //TODO: Fix the edge case of abductor game mode rolling twice+ and failing to setup on first time.
+	var/team_number = team_count
+
+	if(team_number > max_teams)
+		return //or should it try to stuff them in anway ?
 
 	var/datum/objective_team/abductor_team/team = new
 	team.team_number = team_number
diff --git a/code/modules/events/abductor.dm b/code/modules/events/abductor.dm
index 9bba04a68d..c7e9baf779 100755
--- a/code/modules/events/abductor.dm
+++ b/code/modules/events/abductor.dm
@@ -26,7 +26,11 @@
 	var/mob/living/carbon/human/agent = makeBody(pick_n_take(candidates))
 	var/mob/living/carbon/human/scientist = makeBody(pick_n_take(candidates))
 
-	GM.post_setup_team(GM.make_abductor_team(agent.mind, scientist.mind))
+	var/team = GM.make_abductor_team(agent.mind, scientist.mind)
+	if(!team)
+		return MAP_ERROR
+
+	GM.post_setup_team(team)
 
 	spawned_mobs += list(agent, scientist)
 	return SUCCESSFUL_SPAWN

From 42987402a072d6e88ad7889ce80cd0644d2c22ea Mon Sep 17 00:00:00 2001
From: CitadelStationBot 
Date: Mon, 20 Nov 2017 21:25:33 -0600
Subject: [PATCH 16/28] Automatic changelog generation for PR #4043 [ci skip]

---
 html/changelogs/AutoChangeLog-pr-4043.yml | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 html/changelogs/AutoChangeLog-pr-4043.yml

diff --git a/html/changelogs/AutoChangeLog-pr-4043.yml b/html/changelogs/AutoChangeLog-pr-4043.yml
new file mode 100644
index 0000000000..b867396350
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4043.yml
@@ -0,0 +1,4 @@
+author: "Francinum"
+delete-after: True
+changes: 
+  - tweak: "The shuttle build plate is now better sized for all stations."

From 43faadce158a10bcb2a4a878e232ae9bbf383712 Mon Sep 17 00:00:00 2001
From: CitadelStationBot 
Date: Mon, 20 Nov 2017 21:27:19 -0600
Subject: [PATCH 17/28] Automatic changelog generation for PR #4030 [ci skip]

---
 html/changelogs/AutoChangeLog-pr-4030.yml | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 html/changelogs/AutoChangeLog-pr-4030.yml

diff --git a/html/changelogs/AutoChangeLog-pr-4030.yml b/html/changelogs/AutoChangeLog-pr-4030.yml
new file mode 100644
index 0000000000..ca630fbfd8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4030.yml
@@ -0,0 +1,5 @@
+author: "zennerx"
+delete-after: True
+changes: 
+  - tweak: "Skateboard crashes now give slight brain damage!"
+  - rscadd: "Using a helmet prevents brain damage from the skateboard!"

From d09be2a59a66b97db1b2ac2fc4acd01274b8206b Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:27:58 -0500
Subject: [PATCH 18/28] Update byjax.dm

---
 code/_js/byjax.dm | 54 -----------------------------------------------
 1 file changed, 54 deletions(-)

diff --git a/code/_js/byjax.dm b/code/_js/byjax.dm
index be418d465c..5557440d32 100644
--- a/code/_js/byjax.dm
+++ b/code/_js/byjax.dm
@@ -1,55 +1,3 @@
-<<<<<<< HEAD
-//this function places received data into element with specified id.
-#define js_byjax {"
-
-function replaceContent() {
-	var args = Array.prototype.slice.call(arguments);
-	var id = args\[0\];
-	var content = args\[1\];
-	var callback  = null;
-	if(args\[2\]){
-		callback = args\[2\];
-		if(args\[3\]){
-			args = args.slice(3);
-		}
-	}
-	var parent = document.getElementById(id);
-	if(typeof(parent)!=='undefined' && parent!=null){
-		parent.innerHTML = content?content:'';
-	}
-	if(callback && window\[callback\]){
-		window\[callback\].apply(null,args);
-	}
-}
-"}
-
-/*
-sends data to control_id:replaceContent
-
-receiver - mob
-control_id - window id (for windows opened with browse(), it'll be "windowname.browser")
-target_element - HTML element id
-new_content - HTML content
-callback - js function that will be called after the data is sent
-callback_args - arguments for callback function
-
-Be sure to include required js functions in your page, or it'll raise an exception.
-*/
-/proc/send_byjax(receiver, control_id, target_element, new_content=null, callback=null, list/callback_args=null)
-	if(receiver && target_element && control_id) // && winexists(receiver, control_id))
-		var/list/argums = list(target_element, new_content)
-		if(callback)
-			argums += callback
-			if(callback_args)
-				argums += callback_args
-		argums = list2params(argums)
-/*		if(callback_args)
-			argums += "&[list2params(callback_args)]"
-*/
-		receiver << output(argums,"[control_id]:replaceContent")
-	return
-
-=======
 //this function places received data into element with specified id.
 #define js_byjax {"
 
@@ -97,5 +45,3 @@ Be sure to include required js functions in your page, or it'll raise an excepti
 
 		receiver << output(argums,"[control_id]:replaceContent")
 	return
-
->>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup

From 1dddcb5d83f18a9e6b645543f2d2fb18d11de778 Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:28:29 -0500
Subject: [PATCH 19/28] Update beesease.dm

---
 code/datums/diseases/beesease.dm | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm
index 5235766392..f02c3b90ee 100644
--- a/code/datums/diseases/beesease.dm
+++ b/code/datums/diseases/beesease.dm
@@ -35,10 +35,4 @@
 				affected_mob.visible_message("[affected_mob] coughs up a swarm of bees!", \
 													"You cough up a swarm of bees!")
 				new /mob/living/simple_animal/hostile/poison/bees(affected_mob.loc)
-<<<<<<< HEAD
-		//if(5)
-		//Plus if you die, you explode into bees
 	return
-=======
-	return
->>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup

From 3aefa4a9072ebdcf01f41e7fb8803a65e4edd596 Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:29:15 -0500
Subject: [PATCH 20/28] Update cameranet.dm

---
 .../living/silicon/ai/freelook/cameranet.dm   | 164 ------------------
 1 file changed, 164 deletions(-)

diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
index 5dc515a216..48ca0ac19c 100644
--- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
@@ -1,166 +1,3 @@
-<<<<<<< HEAD
-// CAMERA NET
-//
-// The datum containing all the chunks.
-
-#define CHUNK_SIZE 16 // Only chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc..
-
-GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
-
-/datum/cameranet
-	var/name = "Camera Net" // Name to show for VV and stat()
-
-	// The cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del().
-	var/list/cameras = list()
-	// The chunks of the map, mapping the areas that the cameras can see.
-	var/list/chunks = list()
-	var/ready = 0
-
-	// The object used for the clickable stat() button.
-	var/obj/effect/statclick/statclick
-
-// Checks if a chunk has been Generated in x, y, z.
-/datum/cameranet/proc/chunkGenerated(x, y, z)
-	x &= ~(CHUNK_SIZE - 1)
-	y &= ~(CHUNK_SIZE - 1)
-	var/key = "[x],[y],[z]"
-	return (chunks[key])
-
-// Returns the chunk in the x, y, z.
-// If there is no chunk, it creates a new chunk and returns that.
-/datum/cameranet/proc/getCameraChunk(x, y, z)
-	x &= ~(CHUNK_SIZE - 1)
-	y &= ~(CHUNK_SIZE - 1)
-	var/key = "[x],[y],[z]"
-	if(!chunks[key])
-		chunks[key] = new /datum/camerachunk(null, x, y, z)
-
-	return chunks[key]
-
-// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set.
-
-/datum/cameranet/proc/visibility(mob/camera/aiEye/ai)
-	// 0xf = 15
-	var/x1 = max(0, ai.x - 16) & ~(CHUNK_SIZE - 1)
-	var/y1 = max(0, ai.y - 16) & ~(CHUNK_SIZE - 1)
-	var/x2 = min(world.maxx, ai.x + 16) & ~(CHUNK_SIZE - 1)
-	var/y2 = min(world.maxy, ai.y + 16) & ~(CHUNK_SIZE - 1)
-
-	var/list/visibleChunks = list()
-
-	for(var/x = x1; x <= x2; x += CHUNK_SIZE)
-		for(var/y = y1; y <= y2; y += CHUNK_SIZE)
-			visibleChunks |= getCameraChunk(x, y, ai.z)
-
-	var/list/remove = ai.visibleCameraChunks - visibleChunks
-	var/list/add = visibleChunks - ai.visibleCameraChunks
-
-	for(var/chunk in remove)
-		var/datum/camerachunk/c = chunk
-		c.remove(ai)
-
-	for(var/chunk in add)
-		var/datum/camerachunk/c = chunk
-		c.add(ai)
-
-// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or	when doors open.
-
-/datum/cameranet/proc/updateVisibility(atom/A, opacity_check = 1)
-
-	if(!SSticker || (opacity_check && !A.opacity))
-		return
-	majorChunkChange(A, 2)
-
-/datum/cameranet/proc/updateChunk(x, y, z)
-	// 0xf = 15
-	if(!chunkGenerated(x, y, z))
-		return
-	var/datum/camerachunk/chunk = getCameraChunk(x, y, z)
-	chunk.hasChanged()
-
-// Removes a camera from a chunk.
-
-/datum/cameranet/proc/removeCamera(obj/machinery/camera/c)
-	if(c.can_use())
-		majorChunkChange(c, 0)
-
-// Add a camera to a chunk.
-
-/datum/cameranet/proc/addCamera(obj/machinery/camera/c)
-	if(c.can_use())
-		majorChunkChange(c, 1)
-
-// Used for Cyborg cameras. Since portable cameras can be in ANY chunk.
-
-/datum/cameranet/proc/updatePortableCamera(obj/machinery/camera/c)
-	if(c.can_use())
-		majorChunkChange(c, 1)
-	//else
-	//	majorChunkChange(c, 0)
-
-// Never access this proc directly!!!!
-// This will update the chunk and all the surrounding chunks.
-// It will also add the atom to the cameras list if you set the choice to 1.
-// Setting the choice to 0 will remove the camera from the chunks.
-// If you want to update the chunks around an object, without adding/removing a camera, use choice 2.
-
-/datum/cameranet/proc/majorChunkChange(atom/c, choice)
-	// 0xf = 15
-	if(!c)
-		return
-
-	var/turf/T = get_turf(c)
-	if(T)
-		var/x1 = max(0, T.x - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
-		var/y1 = max(0, T.y - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
-		var/x2 = min(world.maxx, T.x + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
-		var/y2 = min(world.maxy, T.y + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
-		for(var/x = x1; x <= x2; x += CHUNK_SIZE)
-			for(var/y = y1; y <= y2; y += CHUNK_SIZE)
-				if(chunkGenerated(x, y, T.z))
-					var/datum/camerachunk/chunk = getCameraChunk(x, y, T.z)
-					if(choice == 0)
-						// Remove the camera.
-						chunk.cameras -= c
-					else if(choice == 1)
-						// You can't have the same camera in the list twice.
-						chunk.cameras |= c
-					chunk.hasChanged()
-
-// Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.
-
-/datum/cameranet/proc/checkCameraVis(mob/living/target)
-
-	// 0xf = 15
-	var/turf/position = get_turf(target)
-	return checkTurfVis(position)
-
-
-/datum/cameranet/proc/checkTurfVis(turf/position)
-	var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z)
-	if(chunk)
-		if(chunk.changed)
-			chunk.hasChanged(1) // Update now, no matter if it's visible or not.
-		if(chunk.visibleTurfs[position])
-			return 1
-	return 0
-
-/datum/cameranet/proc/stat_entry()
-	if(!statclick)
-		statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
-
-	stat(name, statclick.update("Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]"))
-
-// Debug verb for VVing the chunk that the turf is in.
-/*
-/turf/verb/view_chunk()
-	set src in world
-
-	if(cameranet.chunkGenerated(x, y, z))
-		var/datum/camerachunk/chunk = cameranet.getCameraChunk(x, y, z)
-		usr.client.debug_variables(chunk)
-*/
-=======
 // CAMERA NET
 //
 // The datum containing all the chunks.
@@ -310,4 +147,3 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
 		statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
 
 	stat(name, statclick.update("Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]"))
->>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup

From 15165d970dfae3e0e955ac15688f603e1ba6a3d4 Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:29:55 -0500
Subject: [PATCH 21/28] Update inventory.dm

---
 .../mob/living/silicon/robot/inventory.dm     | 218 ------------------
 1 file changed, 218 deletions(-)

diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm
index dcec2ee8d7..c566aaf082 100644
--- a/code/modules/mob/living/silicon/robot/inventory.dm
+++ b/code/modules/mob/living/silicon/robot/inventory.dm
@@ -1,220 +1,3 @@
-<<<<<<< HEAD
-//These procs handle putting stuff in your hand. It's probably best to use these rather than setting stuff manually
-//as they handle all relevant stuff like adding it to the player's screen and such
-
-//Returns the thing in our active hand (whatever is in our active module-slot, in this case)
-/mob/living/silicon/robot/get_active_held_item()
-	return module_active
-
-
-
-/*-------TODOOOOOOOOOO--------*/ //fuck yooooooooooooou
-/mob/living/silicon/robot/proc/uneq_module(obj/item/O)
-	if(!O)
-		return 0
-	O.mouse_opacity = MOUSE_OPACITY_OPAQUE
-	if(istype(O, /obj/item/borg/sight))
-		var/obj/item/borg/sight/S = O
-		sight_mode &= ~S.sight_mode
-		update_sight()
-	else if(istype(O, /obj/item/storage/bag/tray/))
-		var/obj/item/storage/bag/tray/T = O
-		T.do_quick_empty()
-	if(client)
-		client.screen -= O
-	observer_screen_update(O,FALSE)
-	O.forceMove(module) //Return item to module so it appears in its contents, so it can be taken out again.
-
-	if(O.flags_1 & DROPDEL_1)
-		O.flags_1 &= ~DROPDEL_1 //we shouldn't HAVE things with DROPDEL_1 in our modules, but better safe than runtiming horribly
-
-	O.dropped(src)
-
-	if(module_active == O)
-		module_active = null
-	if(held_items[1] == O)
-		inv1.icon_state = "inv1"
-		held_items[1] = null
-	else if(held_items[2] == O)
-		inv2.icon_state = "inv2"
-		held_items[2] = null
-	else if(held_items[3] == O)
-		inv3.icon_state = "inv3"
-		held_items[3] = null
-	hud_used.update_robot_modules_display()
-	return 1
-
-/mob/living/silicon/robot/proc/activate_module(obj/item/O)
-	. = FALSE
-	if(!(O in module.modules))
-		return
-	if(activated(O))
-		to_chat(src, "That module is already activated.")
-		return
-	if(!held_items[1])
-		held_items[1] = O
-		O.screen_loc = inv1.screen_loc
-		. = TRUE
-	else if(!held_items[2])
-		held_items[2] = O
-		O.screen_loc = inv2.screen_loc
-		. = TRUE
-	else if(!held_items[3])
-		held_items[3] = O
-		O.screen_loc = inv3.screen_loc
-		. = TRUE
-	else
-		to_chat(src, "You need to disable a module first!")
-	if(.)
-		O.equipped(src, slot_hands)
-		O.mouse_opacity = initial(O.mouse_opacity)
-		O.layer = ABOVE_HUD_LAYER
-		O.plane = ABOVE_HUD_PLANE
-		observer_screen_update(O,TRUE)
-		O.forceMove(src)
-		if(istype(O, /obj/item/borg/sight))
-			var/obj/item/borg/sight/S = O
-			sight_mode |= S.sight_mode
-			update_sight()
-
-
-/mob/living/silicon/robot/proc/observer_screen_update(obj/item/I,add = TRUE)
-	if(observers && observers.len)
-		for(var/M in observers)
-			var/mob/dead/observe = M
-			if(observe.client && observe.client.eye == src)
-				if(add)
-					observe.client.screen += I
-				else
-					observe.client.screen -= I
-			else
-				observers -= observe
-				if(!observers.len)
-					observers = null
-					break
-
-/mob/living/silicon/robot/proc/uneq_active()
-	uneq_module(module_active)
-
-/mob/living/silicon/robot/proc/uneq_all()
-	for(var/obj/item/I in held_items)
-		uneq_module(I)
-
-/mob/living/silicon/robot/proc/activated(obj/item/O)
-	if(O in held_items)
-		return TRUE
-	return FALSE
-
-//Helper procs for cyborg modules on the UI.
-//These are hackish but they help clean up code elsewhere.
-
-//module_selected(module) - Checks whether the module slot specified by "module" is currently selected.
-/mob/living/silicon/robot/proc/module_selected(module) //Module is 1-3
-	return module == get_selected_module()
-
-//module_active(module) - Checks whether there is a module active in the slot specified by "module".
-/mob/living/silicon/robot/proc/module_active(module) //Module is 1-3
-	if(module < 1 || module > 3)
-		return FALSE
-
-	if(LAZYLEN(held_items) >= module)
-		if(held_items[module])
-			return TRUE
-	return FALSE
-
-//get_selected_module() - Returns the slot number of the currently selected module.  Returns 0 if no modules are selected.
-/mob/living/silicon/robot/proc/get_selected_module()
-	if(module_active)
-		return held_items.Find(module_active)
-
-	return 0
-
-//select_module(module) - Selects the module slot specified by "module"
-/mob/living/silicon/robot/proc/select_module(module) //Module is 1-3
-	if(module < 1 || module > 3)
-		return
-
-	if(!module_active(module))
-		return
-
-	switch(module)
-		if(1)
-			if(module_active != held_items[module])
-				inv1.icon_state = "inv1 +a"
-				inv2.icon_state = "inv2"
-				inv3.icon_state = "inv3"
-		if(2)
-			if(module_active != held_items[module])
-				inv1.icon_state = "inv1"
-				inv2.icon_state = "inv2 +a"
-				inv3.icon_state = "inv3"
-		if(3)
-			if(module_active != held_items[module])
-				inv1.icon_state = "inv1"
-				inv2.icon_state = "inv2"
-				inv3.icon_state = "inv3 +a"
-	module_active = held_items[module]
-
-//deselect_module(module) - Deselects the module slot specified by "module"
-/mob/living/silicon/robot/proc/deselect_module(module) //Module is 1-3
-	if(module < 1 || module > 3)
-		return
-
-	if(!module_active(module))
-		return
-
-	switch(module)
-		if(1)
-			if(module_active == held_items[module])
-				inv1.icon_state = "inv1"
-		if(2)
-			if(module_active == held_items[module])
-				inv2.icon_state = "inv2"
-		if(3)
-			if(module_active == held_items[module])
-				inv3.icon_state = "inv3"
-	module_active = null
-
-//toggle_module(module) - Toggles the selection of the module slot specified by "module".
-/mob/living/silicon/robot/proc/toggle_module(module) //Module is 1-3
-	if(module < 1 || module > 3)
-		return
-
-	if(module_selected(module))
-		deselect_module(module)
-	else
-		if(module_active(module))
-			select_module(module)
-		else
-			deselect_module(get_selected_module()) //If we can't do select anything, at least deselect the current module.
-	return
-
-//cycle_modules() - Cycles through the list of selected modules.
-/mob/living/silicon/robot/proc/cycle_modules()
-	var/slot_start = get_selected_module()
-	if(slot_start)
-		deselect_module(slot_start) //Only deselect if we have a selected slot.
-
-	var/slot_num
-	if(slot_start == 0)
-		slot_num = 1
-		slot_start = 4
-	else
-		slot_num = slot_start + 1
-
-	while(slot_num != slot_start) //If we wrap around without finding any free slots, just give up.
-		if(module_active(slot_num))
-			select_module(slot_num)
-			return
-		slot_num++
-		if(slot_num > 4) // not >3 otherwise cycling with just one item on module 3 wouldn't work
-			slot_num = 1 //Wrap around.
-
-
-
-/mob/living/silicon/robot/swap_hand()
-	cycle_modules()
-=======
 //These procs handle putting stuff in your hand. It's probably best to use these rather than setting stuff manually
 //as they handle all relevant stuff like adding it to the player's screen and such
 
@@ -429,4 +212,3 @@
 
 /mob/living/silicon/robot/swap_hand()
 	cycle_modules()
->>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup

From 3b0a71006cc0c50c5bcbd872ea2ffd7a55cdb08a Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:32:20 -0500
Subject: [PATCH 22/28] Update experimentor.dm

---
 code/modules/research/experimentor.dm | 17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 35dac9190b..57ca602774 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -43,23 +43,6 @@
 		temp_list[O] = text2num(temp_list[O])
 	return temp_list
 
-<<<<<<< HEAD
-/* //uncomment to enable forced reactions.
-/obj/machinery/r_n_d/experimentor/verb/forceReaction()
-	set name = "Force Experimentor Reaction"
-	set category = "Debug"
-	set src in oview(1)
-	var/reaction = input(usr,"What reaction?") in list(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE)
-	var/oldReaction = item_reactions["[loaded_item.type]"]
-	item_reactions["[loaded_item.type]"] = reaction
-	experiment(item_reactions["[loaded_item.type]"],loaded_item)
-	spawn(10)
-		if(loaded_item)
-			item_reactions["[loaded_item.type]"] = oldReaction
-*/
-=======
->>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup
-
 /obj/machinery/r_n_d/experimentor/proc/SetTypeReactions()
 	var/probWeight = 0
 	for(var/I in typesof(/obj/item))

From 0ed8bf3237213ce4114b6f86f5498a3acf617d64 Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:33:12 -0500
Subject: [PATCH 23/28] Update security_levels.dm

---
 code/modules/security_levels/security_levels.dm | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm
index 0c022a4c70..22f420df91 100644
--- a/code/modules/security_levels/security_levels.dm
+++ b/code/modules/security_levels/security_levels.dm
@@ -56,15 +56,7 @@ GLOBAL_VAR_INIT(security_level, 0)
 				else
 					minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!")
 				GLOB.security_level = SEC_LEVEL_RED
-
-<<<<<<< HEAD
-				/*	- At the time of commit, setting status displays didn't work properly
-				var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
-				if(CC)
-					CC.post_status("alert", "redalert")*/
 				sound_to_playing_players('sound/misc/voyalert.ogg')
-=======
->>>>>>> b7a9a2a... Merge pull request #32844 from ShizCalev/code-cleanup
 				for(var/obj/machinery/firealarm/FA in GLOB.machines)
 					if(FA.z in GLOB.station_z_levels)
 						FA.update_icon()

From 5e1e4ddf3fdb73fe18de064f6d133416cee717bd Mon Sep 17 00:00:00 2001
From: CitadelStationBot 
Date: Mon, 20 Nov 2017 21:35:51 -0600
Subject: [PATCH 24/28] Automatic changelog generation for PR #4038 [ci skip]

---
 html/changelogs/AutoChangeLog-pr-4038.yml | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 html/changelogs/AutoChangeLog-pr-4038.yml

diff --git a/html/changelogs/AutoChangeLog-pr-4038.yml b/html/changelogs/AutoChangeLog-pr-4038.yml
new file mode 100644
index 0000000000..9500855d83
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4038.yml
@@ -0,0 +1,4 @@
+author: "WJohnston"
+delete-after: True
+changes: 
+  - bugfix: "Green banded default airlocks now have extended click area like all other airlocks."

From 48adeffc57a735bdcd12ed4df412482b2b7dd415 Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:47:08 -0500
Subject: [PATCH 25/28] Fixes merge conflict

---
 _maps/map_files/PubbyStation/PubbyStation.dmm | 22 -------------------
 1 file changed, 22 deletions(-)

diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index e48df13356..f516821775 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -51261,27 +51261,6 @@
 "cCA" = (
 /turf/closed/wall,
 /area/science/lab)
-<<<<<<< HEAD
-=======
-"cCB" = (
-/obj/machinery/rnd/protolathe/department/security,
-/turf/open/floor/plasteel,
-/area/security/main)
-"cCC" = (
-/obj/structure/disposalpipe/segment{
-	dir = 4
-	},
-/obj/machinery/rnd/protolathe/department/cargo,
-/turf/open/floor/plasteel,
-/area/quartermaster/storage)
-"cCD" = (
-/obj/machinery/rnd/protolathe/department/service,
-/turf/closed/wall,
-/area/crew_quarters/kitchen)
-"cCE" = (
-/obj/machinery/rnd/protolathe/department/medical,
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
 "cCF" = (
 /obj/machinery/atmospherics/components/unary/outlet_injector/on{
 	dir = 1
@@ -51294,7 +51273,6 @@
 	},
 /turf/open/floor/plating/airless,
 /area/tcommsat/computer)
->>>>>>> e3d0468... Fixes unpowered air injectors on pubby (#32846)
 
 (1,1,1) = {"
 aaa

From ac2324fde87f9e75287579006ee4a51a42bf2c7b Mon Sep 17 00:00:00 2001
From: deathride58 
Date: Mon, 20 Nov 2017 22:50:19 -0500
Subject: [PATCH 26/28] fixes merge conflicts

---
 _maps/map_files/MetaStation/MetaStation.dmm | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 614bedb415..c9f2706f2b 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -80679,19 +80679,6 @@
 /obj/effect/spawner/structure/window/plasma/reinforced,
 /turf/open/floor/plating,
 /area/engine/atmos)
-<<<<<<< HEAD
-=======
-"EDv" = (
-/obj/effect/turf_decal/stripes/line{
-	dir = 8
-	},
-/obj/machinery/rnd/protolathe/department/engineering,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"EDw" = (
-/obj/machinery/rnd/protolathe/department/service,
-/turf/closed/wall,
-/area/hydroponics)
 "EDx" = (
 /turf/open/space,
 /turf/closed/wall/mineral/plastitanium{
@@ -80706,7 +80693,6 @@
 	icon_state = "diagonalWall3"
 	},
 /area/hallway/secondary/entry)
->>>>>>> a394a18... Various Meta area fixes (#32856)
 
 (1,1,1) = {"
 aaa

From 8060461cf7c65a84554c9cd2e2434f8b758b225f Mon Sep 17 00:00:00 2001
From: CitadelStationBot 
Date: Mon, 20 Nov 2017 22:15:00 -0600
Subject: [PATCH 27/28] Automatic changelog generation for PR #4032 [ci skip]

---
 html/changelogs/AutoChangeLog-pr-4032.yml | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 html/changelogs/AutoChangeLog-pr-4032.yml

diff --git a/html/changelogs/AutoChangeLog-pr-4032.yml b/html/changelogs/AutoChangeLog-pr-4032.yml
new file mode 100644
index 0000000000..4969c5bcaf
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4032.yml
@@ -0,0 +1,4 @@
+author: "ShizCalev"
+delete-after: True
+changes: 
+  - bugfix: "PubbyStation - Unpowered air injectors in various locations have been fixed."

From 7e42e7cce014e5453874187a3d208cb713ee4015 Mon Sep 17 00:00:00 2001
From: CitadelStationBot 
Date: Mon, 20 Nov 2017 22:16:29 -0600
Subject: [PATCH 28/28] Automatic changelog generation for PR #4033 [ci skip]

---
 html/changelogs/AutoChangeLog-pr-4033.yml | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 html/changelogs/AutoChangeLog-pr-4033.yml

diff --git a/html/changelogs/AutoChangeLog-pr-4033.yml b/html/changelogs/AutoChangeLog-pr-4033.yml
new file mode 100644
index 0000000000..effc283b83
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4033.yml
@@ -0,0 +1,5 @@
+author: "ShizCalev"
+delete-after: True
+changes: 
+  - bugfix: "MetaStation - Air injector leading out of the incinerator has been fixed"
+  - bugfix: "MetaStation - Corrected a couple maintenance airlocks being powered by the wrong areas."