From c5f79dcef76458d27a6596bc23dc805bf903d5c8 Mon Sep 17 00:00:00 2001 From: AuraSpecs Date: Sun, 8 Dec 2024 21:27:45 +0100 Subject: [PATCH] Add Diagonal Brakes to LSM Launched Roller Coaster --- distribution/changelog.txt | 1 + resources/g2/sprites.json | 80 ++++++++++++++++++ .../diagonal_block_brake_closed_alt_0.png | Bin 0 -> 1274 bytes .../diagonal_block_brake_closed_alt_1.png | Bin 0 -> 1172 bytes .../diagonal_block_brake_closed_alt_2.png | Bin 0 -> 1233 bytes .../diagonal_block_brake_closed_alt_3.png | Bin 0 -> 1172 bytes .../diagonal_block_brake_open_alt_0.png | Bin 0 -> 1284 bytes .../diagonal_block_brake_open_alt_1.png | Bin 0 -> 1170 bytes .../diagonal_block_brake_open_alt_2.png | Bin 0 -> 1267 bytes .../diagonal_block_brake_open_alt_3.png | Bin 0 -> 1169 bytes .../diagonal_brake_closed_alt_0.png | Bin 0 -> 1274 bytes .../diagonal_brake_closed_alt_1.png | Bin 0 -> 1164 bytes .../diagonal_brake_closed_alt_2.png | Bin 0 -> 1228 bytes .../diagonal_brake_closed_alt_3.png | Bin 0 -> 1166 bytes .../diagonal_brake_open_alt_0.png | Bin 0 -> 1284 bytes .../diagonal_brake_open_alt_1.png | Bin 0 -> 1163 bytes .../diagonal_brake_open_alt_2.png | Bin 0 -> 1260 bytes .../diagonal_brake_open_alt_3.png | Bin 0 -> 1165 bytes src/openrct2/network/NetworkBase.cpp | 2 +- .../track/coaster/LatticeTriangleTrackAlt.cpp | 50 +++++++++++ .../rtd/coaster/LSMLaunchedRollerCoaster.h | 2 +- src/openrct2/sprites.h | 18 +++- 22 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_0.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_1.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_2.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_3.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_0.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_1.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_2.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_3.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_0.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_1.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_2.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_3.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_open_alt_0.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_open_alt_1.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_open_alt_2.png create mode 100644 resources/g2/track/lattice_triangle/diagonal_brake_open_alt_3.png diff --git a/distribution/changelog.txt b/distribution/changelog.txt index dff313bf32..024e8dc5a5 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,5 +1,6 @@ 0.4.18 (in development) ------------------------------------------------------------------------ +- Improved: [#23260] Add diagonal (block) brakes to LSM Launched Roller Coaster. 0.4.17 (2024-12-08) ------------------------------------------------------------------------ diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index b622f3effb..1fd7ac0314 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -2847,6 +2847,46 @@ "y": -9, "palette": "keep" }, + { + "path": "track/lattice_triangle/diagonal_block_brake_closed_alt_0.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_closed_alt_1.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_closed_alt_2.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_closed_alt_3.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_open_alt_0.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_open_alt_1.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_open_alt_2.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_block_brake_open_alt_3.png", + "x": -8, + "y": -9 + }, { "path": "track/lattice_triangle/diagonal_booster_0.png", "x": -32, @@ -2877,6 +2917,46 @@ "x": -8, "y": -9 }, + { + "path": "track/lattice_triangle/diagonal_brake_closed_alt_0.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_brake_closed_alt_1.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_brake_closed_alt_2.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_brake_closed_alt_3.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_brake_open_alt_0.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_brake_open_alt_1.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_brake_open_alt_2.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_brake_open_alt_3.png", + "x": -8, + "y": -9 + }, { "path": "track/lattice_triangle/drive_tyre_1.png", "x": -22, diff --git a/resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_0.png b/resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3892bbc03a2f3c31b02de2a58ebe04f3f98182d1 GIT binary patch literal 1274 zcmWkue{2(V6#wq$bt_myO^Q_LVuvR=ld5MpvC56zM%ixc<_;~SLLFUcppMhspw32b zT4EUm&ZTP66B{g{KnXP&SYnOUH8N&N4k=pj#A3>9fM_EXr(4L^l6>C#ygy#v=Z{a` zXSAo=GQV+ABLHB2$C|d@3b$11epOASkF6NhSLnf^_Vq(7w`IuFH|PYb`nk={rjCI= zm$TQ|*FXH)l=E2tYCuody7tO)RaI4Wb#+ZmO>J#$U0q#$eLaF8DwV3Cp+RRf8gbl2 zQ6$UK4u_5BIiJrL3WekGL^_>Slv25jn*eDB46U}=v~IV-<2CsM=8(ihD3}!oO;V`R! zJ47=tQN9=*OtO)TJ)yV^gx+K^npuo?5H^nD{ERUETom7T#V*tQW_FyS)g+P zgBPG8LWFgeIBH9goNNu``AA7j!*K@FItabTf(5MRsDn!Ktn72-LVO|SE2Tm+ats#I z8ZCihR-AB=l!s*l4u|CN!~=m;I4ma;`E0gSDnX#<02)H@sD?`F*$n2&Q~rW2QuHKC zVzwMF&gEvH8q;V9oz7w~vY5$XHuE&&w^xpNxqJ(f09XOw0T2O*0Wb+b0RgZAhJs!m#v)M3F(}}05F|mu0u%;7 z7C=r112~K@FyV$7KU5;%p78{rDPUy~w?ij*u%Kv(MjXkcPnKiFq6{lqdKbXGYEslO z5raK}a*A0j*#9Qg#w?+5Yk7K&BnUj4zHKPO+LaDBJmi7r)X1_ z!HQNRv>Tv+LJ5Zn63R4$aE#Zw?)|_}Z#N5Ce!sk>GW$B(R;_#e=fh)H2P2QqTfJj| z8b3S?b&Xd?rlh8++j9HTn&5KjkF}|(Yw59v7uIH`2ZwW?gq*`ia{q3en7;d!Q-$1D zR{s~ComVvagbQKAUs7#;$42hPGwr2=<$bg072))zzC=$qdi|HoO@70h#iv#te`&>? z)=l4U4Xykj+u1vNX4_(qy65lp%SN+RCwVS??ICIC(XBrUi!b&#&mU#4_El}WaGu>X z@!5fi_d8W<-(41ZFLsc>_{K5+so8bJE~k9=EvU1fOa7*7ATpP3f1_x>KEW+`wf4wZ zgQcx`N&Lx)ql5kZXR({&jYS)lethc1OIrqeV(?6-d)I70ZD@7ce+nqdpDB1PGHmp&4h4~z#TldUG{1pyovS+#9ab-C(VjhnlOx;z nX)cWJT+uNi=BG>1N;Vz(^SRx-+V-EUcmq1xyW38-zWmPrmFY8F literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_1.png b/resources/g2/track/lattice_triangle/diagonal_block_brake_closed_alt_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a27b55d36369b5b77548cc5da46e91b40ef2064b GIT binary patch literal 1172 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_2.png b/resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a8eabcab084785f82ea01e62d2cd720e8c2e63 GIT binary patch literal 1267 zcmWkte{2(F82ST(DvXH5O8&h9Zp)xkzKG9#XM^BP^zKMXRY$6U=I?W`t$=EXn&m&-2Hd=lSEw zd(^hcGNXN7I{;vYwYR6g&TH%2+1gaclP?_A)oHG8{mVXv+u`$X+wBJHT-b2LUL)6Ptm&nw|l zIYAl`ySam-v_ZRGWYIW}jR<5mYR{*+VlGrECMK)0MF*Tl;3t5{AW06%hSi0nrk2;i ziV4=7a7u(wHUK~a;6xBktq$sRB8n!=<`J6Cc|3(+@L@a-vsoRcF%Vi4tv5SS3um+k zF;+D5F;YlTkqnc_JEfvWkLyepgPAc>Ebib)E<}go&bY)$N>DCFluEKRnN<@&!vL)Z z=mP*15j?K7q)|tf;1qkf#3!nv3`c0AhQ)P$i!p3BCs{JXGm5|#qI@|eRI|}ZB?Zf} zT7#oTJBE7*($6qqmW}!S>2Nq3k1LW?8Xc`xs}SfofJPB4sU|ZzCU5kV$WYmlsQ5Eg zakQ4MOcf?!hf%G@wOWhbz!*)e+00XP$XPcFq{ES1GF_CFT8RKo3gH=b(5V-_##n$z zg_umtlS>5)*;u6@*J=+T0e~F<9sm)56aYB@$_RkwD%N?mWEbz5KP|&CCh( zIF;PD@6MO^H`rWrgq`19I`iwrKM%cfUY0(%!Yuvh(Ri~e_qYE{_t@_7t^-v2d|Upd z8QqVM_5Ez)6Sjp5D^~mmH+%73`@vHi`_8I57fX#}z4=A4uD?ve?yt7Iy3w?GsB7Z( z;M-SC>*&_y$IFj$D^AFfsrZ6x&voRwo)&W>(+w})+b0b1KUtqmem%_wS96_1Ef-F= zd3qLooL(gl4()K=FpkT<*(;CCTyyNHt4mVOXBw9*EpBgc-FoBx*jd}VYy0m!*uPS< zdGV#rJ-NH>?;rX0Lsj3!i2?6U;Zy6X|L)Ely&PCGaAB40Quv*oFK$XM<*{Xvnf~nG z{ab#VP+kAL{ria(H%|4~hUfoc==aSzI@`LJb$qw7`S#R;VX@SxCOeM#l;pWs_U3f= jf@Sl5pY}g~G;1qx9T%1b_V%gjr2y;tO+A;pw;uc-iRLUP literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_3.png b/resources/g2/track/lattice_triangle/diagonal_block_brake_open_alt_3.png new file mode 100644 index 0000000000000000000000000000000000000000..761a85e2ce547b3fe72b36d2be5880a972b760d5 GIT binary patch literal 1169 zcmWktZ;aD)7=Fk7>HWzv;*h~DWa!YUGdH0~6G~FCch;kNh3k>2Gnvpk7M<8YPbQh9 zk>wm_LWPL~C)tNdW-M`#BWc1CW+-uo(=^@@r_`{>2qO?!;)th#_;V!h^FGgqH}CV| z$@9tPQP$o!&<6nak(Y6VF9XN;#^9=ql$P|CT8MHDIKU3B&(cgSh*NnEg=*$ z;j*SwOPNO1Xti!58Xy251E>HRKpCKp0csD=pqPxb9I~oB4iW(=8gv#c9*_V?a-k%F zay-%_sFFZd4ju+i0>?mr$0DLjiTYA1o6m{GV%#*fM#DsHFLxM-SU;`0_?#!Ch}SKTi77G@&s>iSy6%zDB@{LLQ{x zC_^BfMka?4IxIWG4?8e5HY&giH-6jE)&nC$8^=GmGXB{who+zF8QME|6`^ll{bMVA z^7Fa5#I&|`)#_bO{&aoGKbGVBF58iPgXe!JcRv2Ner9Etc=N~?%eN5EynbW#((&x? zTi%WD{PxXmh11@#uUJ3+)WE@~(|eX1n~sl64E(%q=;Hax?2ZSEudN|xsSRo4<8_RA z=JJ=PhYlUMd-yBj(%OsUxkE2Kw*C6_6B}x?o_jNA>68CG80%Zwi(T1MT#rqy`195T zI%q%f-aW@%mOW)V_3y>lk{`F??1H_xhMn3uJvdj}w`_k(CTtPmdB%*Nee~B0qxUVBVz3v_AAU^b4#!3Hhk>Z e`?nNZH#~CmMBm=>V7rF^Bg3OZ-@W+O{{I2c2Kk}@ literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_0.png b/resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_0.png new file mode 100644 index 0000000000000000000000000000000000000000..57e108ec96b819eb90f8d9c138af59142cd75596 GIT binary patch literal 1274 zcmWkte{2(V9R2R+b(^Duq7{nXu*TC=?cgF8?BWe>ODX4elS3*ND5L8NDR{sQ3Tg0w zqRnW+IVzNKW=$xhU>PMW(2xeIHaf9N)ddP%wniH%FtuW1CQSHRlF#S8_s1vi{qgeY z>+CSr*Uqj50Mwh7v@R=gOKBSv6(#In*rzGctlqZwdReZg*VVPv4i+FrDOYz@&bODhm5$5G%F4^jD=I1~D=Vw2s;aB25d={v6g4$9YOPj_<9doB zS(dihEIiM7Jf1)x7>&k~$x&G@6pOeXkOsiebry@t=|o*_z1L?5NK80tjVJh2+Lz6R zC>>%p)N!<0Fr%Uk3-b7|he`y@sVFCpc=K{-vXC@tfK>-vBoJ97%pnP%G80x6QyQ4p z!=e>Vi4Z2W05AYp5rk7J1&v0;u#mwp%rGMkM@A4PfVMeF25gM0K=QA6^HY(1uX^$-v;BygAArY8NM_?|g zR1uiYj1vx$aW|Lg5sLz)O2Gg-vc678*C_td$02V;-u#$>v*p$wZrMx*yDDR3F z#L;3jKb4t;bvmVzP^*oomeuKP1_MtsUTewB9rgJ~!cjSyE@nw!r4gQ03RYBf>LfQA z@v?ErF%l6n2`QgR7K;;*1i%ac4}b_j1b`6$atMH>VJPV4VI&0Q41)m<2YwR7j6h}p zWC7&V(1*hi17l8@@ zW~89)e1S%|Y66TKRb8*$nRDL_a^q+E_qr3h(&vRGKB)8=+_xZXqP10)`y@C2aH(n^c~rFY3)=ec5Tyo{{`jEA?28T&9<@q-@P6q{vCKjzHP~m zPoVungYu8m)}e^9as2Qz@BE&)wbWGk(Uog6`j4fSoL=%Pv7Nqg_zU~$-8+w3{sKok tyB!~vk3DL?s`_K=&k6zR;ds@vU}D<4dmhhtp`p|bFtv5Go>{zh@Bd3cFw+14 literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_1.png b/resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_1.png new file mode 100644 index 0000000000000000000000000000000000000000..00eb707f2806c0819705fb0c8827300be7cd524a GIT binary patch literal 1164 zcmWktacmQH6nZh^Tgeb&o6Vh_on2jB-QC?7hV}IH^!E1J91aIf zJ9(ayBte!vs;Y!Sp?Ex*&E|^5nQFD!YSB*MSP%t^$7A*Ti9pa9j8TK3h`Y;KrCJI%s;T*A(PalO1py9p2}>(jA&OVh)>he$ z8cx*mq6HnHq60t#@M4&PU`{Z|XCx zY-6D^k1Q09Gd7!xa7dI>W?5Ab!`}9?U^W^nrL)zd(W-Ia6);u8H7}w2sYH;=gr$7K zSITIWLZVSAwpzCl2jB)!0d#;2Knb9Z0cw}Xqo9g1DO9b9Bq%h*ILNu6Dgu%KDK-?P zQA$KPKPrb&H3g3k&w#*#Tg3dbO$$&l-IY$s`FzMQGL43T+Fo`a&_N5Q+r$*%&5=r# z)tjD7E0CX$mltw1RB4h{UOs&1Oep$RRJMr zdtv@DQV-ihLCinSB;ris<3zo#mdi}yH1F|9e!m9cb(2LxY<~j{ZJ&QkeL0_2R)-ifb>TQ^PkS z_g`AFg;=q4Ztj!F*Wdk0UHW5s)jO@Fw?5ArWKfAYYedNKjeVcYIeVN|d zzq~ZpdkJRC)6Wc<)PDz#HP&3WOy0bH|8?`XYbL(v+Wyc)n%3SJeRZ~X`o^8h+dc@N zo@M`gBJk+>lBr{0c_qAiwbb9S>JNeb|3qJFObIg_BO2;f$pT4}~`d^{v zi1Qm(p19{CuFbDmapsy!nRsyI)1x;ZJ|%4Le(i;W-?;zzXymBHbLI!v8^Oa<%AUxV zcQ0Pqwh=8G*uVPy4S)9D>6!UnI#}uN7_Q-;1@VEm=HBk#ckY*;@A896K5}o>ar$K9 d&|R%#F{Bozt?M2|X4`4O(AJ%U=eO*8?|-KF`Cb43 literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_2.png b/resources/g2/track/lattice_triangle/diagonal_brake_closed_alt_2.png new file mode 100644 index 0000000000000000000000000000000000000000..529a09b2cfd22e301308b815ab06fbc207dc126c GIT binary patch literal 1228 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 E18DR+asU7T literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_brake_open_alt_1.png b/resources/g2/track/lattice_triangle/diagonal_brake_open_alt_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b36baeba21d94fc781b0f6c2d0ce280b73f66b7e GIT binary patch literal 1163 zcmWktacmQH6nJiOSriMZcAN`>|lo}rkZo!x=N}!*ew>) zm=3F{rpU>PR??ViPHp6XLS|@UjWry}fEq7xe{^z@LJE`!TD8cGGyE*c``-8c@$$ap zdwK8e81b)MzIHhPtQ>xBaJ0=2wXvzk(eA+yFTB&HN2i8%Pl?LJRCH`I1Y5_IS3>KC zUmpvHMnhxc2libI^#eFy$M#)A?ct7&j?T_bhr`j;)wOKdvhMC~48wYQdU|_%T^^5z zqI?|3iXtz|K~+@}i9{xoD-?>RId9v|R*Uih%YeZ51%r4bLPTS}WQxgTg?vFOmDP%s zs?~Ll!~#s8!n@)DLX*8Ym6}a(ZS`Bn(rW&bZsHdA&Nr%nHI>I9!d#Z|8ETTy|5qhjsY`f|0y_g$%?g zS!2{JmoWHrNz^M+(GC-|+voQ%BFW2iP~nuMkjzQBqEfWtrk%DL`PyRH$pS8dD-1*o zyc$O5T>gSLSY{O~kgBPAQ!~-5K;km(j{3<|fXT~TNfoVxT+OI;Bhf5p7A*tSO(#x! z$pA%%SuQGyDOt`&qlHweoXc6oVr_oD*=!3yX_w1Sctp}CGmOd$NvXXoR!F7i@&((pS~V6V9#chUTq3jxnT@eVQY>Y| zb4I*c&NixMt92W(0096MKm#xU<^bv#pmqryimAxZkzEzMpiq!zq38!&03-rZTqs2$ zT|mVMsw9!E!-K=qz;h4~u!!u6N6ED2&+Brjl&~zL(Xde4%N+(P*2iitK_{f5SFstb z88lka(qg8vRIH(D(~AR5V1A!7$Py8eiiLSC9?{eBl99GdqhXtI(v)@2E|B3j>Qzpm!N$amNGc1%=_jAvJvngi9m5L z%2KGvB8x`|9Z~V{gCCe09T8#6&4r1!eq?xX>#qHm$7lG-^Xpa&zQ9c)?u$!!U0?V1 zz^3)5&peGkf8evgRA~?M-%ZaC!_tOBH#%y=10DTaN^5to`t7B)`#)WOeBzt_jfc((W+e!KfM?)vt=qklO@ItMS9U!TBVz4-INBab<$lhM0R z{{C<1u%l~w<0b3(gw@9ISD^s1e<`u>r< z_cu(R-?BzNk1ss@<(v71Q_psN{vEMx@$u<@PA~O;Kln-3PQH8P4g4C@6MllWFQcwC ZaQCO#vo~gzq;^;^JTx+RYTL_i{SVC!{yG2v literal 0 HcmV?d00001 diff --git a/resources/g2/track/lattice_triangle/diagonal_brake_open_alt_2.png b/resources/g2/track/lattice_triangle/diagonal_brake_open_alt_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dc50c34c899244f95767ffcd3b23fedb57cb54bd GIT binary patch literal 1260 zcmWktZ)_8F82)YDcKZXAtYRleEYQG(T(Bf(c0$2p+(?}_c5^oNh?eQ4fz8_oIH7mI-SfT!wCoagI+nKW z?r}Q096h@Z>>YEg2S5Wl+q*ZHk1HxFDl02B8ckJIRdscBO-&7gAhor%b#--mqtQqZ zCYq)=j^TNmC<b zpPy1_9I=`k1V%4e4Kj~~MdFf|P6n;%n2<~P3OQxAs9I29$AOyyGKWM2BtY`sElEX*?fs*Q%+}AlBUC9m`tLC&PeG^tif!@ECOzo z2wpaeA=(>d0trq@+v7Q>fkaIfqnX1Qp0o+H;A4GZdpIt{Gm@GMWD1e|Y*I@B9S8JI zVDJD;M#!+<62ojsO2}CKc~L3KD!jzvI-W$`7Tj+&M|e6Rav3k54T@7yZ!sC1%|zjp zs@0JgZY4-3MY}o9&+{R-JLdN%!{JOko}ZW~7K;#|0>FX@5z*2KluP5zJnfsZDFt_; zC{L7Pg}Ll3Y{0czQm?ldj2v#_&1R8defF}MC*}{NBC(vBDdj0(XAqIoN_Kf;h2XDTXXlc7RZEtRGr1%MR*5day0C;%w{rVs$j!_v?r!l(jsSr!8V0Rj|=TR@Hl zkONTALq7o(7RFsL?SnZ5JTIOE3=OO-;^Os^8xP2qh{7il-b^N1C}dzc3v~j*(?H33 zRx#M)n21;*4om&|Mu5`@ng!Gd58CD zJtxQJsLmZL@7&wc_pC{58fy-m-!gOjm2-WskL~`c^2*g!Z>E>LePYEp<4&J=dCk=` zsng#Ke)`~X!(ynDKGbW`i-o&#UBFI)Y?=+-{R{hC$! zzU};K{GAQ={L4b|U$$-QpI(1x`Om}am)tmCePeOx;kk;r-tOy#Qe;}yEWm!dJf4|R zIceF={-z_;sh-z1T!xbzx#wY1>e)eQ)O2UVBm3tUPOUrpv?m5{1)tQ^>FU^P!{B1O zvgOsaUsf$|x*Poa%pVIYltsTkI=^%8(W94#{~bq{jy@eyTJG16rE0>Ok5=yd@yx0oa^S{>5Xp*|20lx`E?%QyVjWx_nbnGcg@u9 zXxrLJWskqO?UQ=s%8K{uhquogd3;Cyths7(1|3|ItX`lJ-HD*@uIteY2OlhOGXFgJ d>U*iG33O0rgLM0%Kg(@^w#^-_7dGwq__9N+2#4K~s5hSQrP5qBC*%uq z*-X^x8be?K-+;tAm4I6n@r+E)$CyGYP|itKDc-QO#b(j(0)c=C4JwaiC9IIJSF?^* z*@YTj)DqCLicrx5zySytCfV(Z%cbJD=JU;STqzW)D$2b~1{De}(&3?id0Zyq&OGP2pK~%Or>Zg%|^DiSg_OJ;K3OJ zcNB0HqcTo^4i6S+$qXcFves0KXr3b+BISzsiA2Dc6`8!un=!GPlIwb`Sx7CKI;t1# z4hkm%Bo(5W2+t=(F&&BI5{W`4V;V-SQfW4u2wW22DU8h8nY@cH6QLRtuLre8B;Qmk ztz2Wdx`+k{yPa}6{caCWctxL2X1Tb~UKY(IlBI0UDw?et4FZeFyj>C8YM4kzX+6&8 z)1i{CR14`wwb*LiLo`4DKn73&bbt~-9Rt)ZjzLiw=^C=C91ao*Ng514SR5c8kmN)O z5@{SV!l)camIe=lr+{T3z+qw0sYHmR>d$IoJ|8npz0ojH+shRKGCDx3PEK5Wm|6iw<3Szx^tj%WltNN^(s zM`;onG%{I)&L<_tyhmH+J9Ow9EGRO#Jlcmp;L6_sl(8 zn?CmT?(>(K{0qbDy1M`9`E|$f=|deC2cNt&wDG>}=+uGf=-(H{uN>>Yg{`QtT^sIv zbo0TdCp*7|<<|y2xO+Et;^ob?S>+s8S=jhbLrXA2rE6b2c23>$TZi{vZ1ok#gR`c- z@z%;6doJ3KjAgc*mQE2r++BG3_tB;3!kKv-zqtOdbMI^ot^X>!wr}zo>gK`BnnTu~ zlTQ(qf2HYf4v3xXONVp!C*Rc<&pbLwZ(cg>_;SzEn(Ny0FJAxfsxZIyCbgX$yYbx} brK1N{^&5wGu}9iB12D2}boj!nZ_fM=YOMQ= literal 0 HcmV?d00001 diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index ddc7d7ace9..ad9b50728a 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -49,7 +49,7 @@ using namespace OpenRCT2; // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -constexpr uint8_t kNetworkStreamVersion = 0; +constexpr uint8_t kNetworkStreamVersion = 1; const std::string kNetworkStreamID = std::string(OPENRCT2_VERSION) + "-" + std::to_string(kNetworkStreamVersion); diff --git a/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp b/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp index fce98ceb48..e94fff4498 100644 --- a/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp +++ b/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp @@ -206,6 +206,52 @@ static void LatticeTriangleTrackAltDiagBooster( TrackPaintUtilDiagTilesPaintExtra(session, 3, height, direction, trackSequence, images, supportType.metal); } +static void LatticeTriangleTrackAltDiagBlockBrake( + PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement, SupportType supportType) +{ + constexpr ImageIndex images[2][kNumOrthogonalDirections] = { + { + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_4, + }, + { + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_4, + }, + }; + + TrackPaintUtilDiagTilesPaintExtra( + session, 3, height, direction, trackSequence, images[trackElement.IsBrakeClosed()], supportType.metal); +} + +static void LatticeTriangleTrackAltDiagBrake( + PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement, SupportType supportType) +{ + constexpr ImageIndex images[2][kNumOrthogonalDirections] = { + { + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_4, + }, + { + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_4, + }, + }; + + TrackPaintUtilDiagTilesPaintExtra( + session, 3, height, direction, trackSequence, images[trackElement.IsBrakeClosed()], supportType.metal); +} + TRACK_PAINT_FUNCTION GetTrackPaintFunctionLatticeTriangleTrackAlt(TrackElemType trackType) { switch (trackType) @@ -224,6 +270,10 @@ TRACK_PAINT_FUNCTION GetTrackPaintFunctionLatticeTriangleTrackAlt(TrackElemType return LatticeTriangleTrackAltPoweredLift; case TrackElemType::DiagBooster: return LatticeTriangleTrackAltDiagBooster; + case TrackElemType::DiagBlockBrakes: + return LatticeTriangleTrackAltDiagBlockBrake; + case TrackElemType::DiagBrakes: + return LatticeTriangleTrackAltDiagBrake; default: return GetTrackPaintFunctionLatticeTriangleTrack(trackType); diff --git a/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h b/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h index a884e6e28b..0be82be97a 100644 --- a/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h @@ -22,7 +22,7 @@ constexpr RideTypeDescriptor LSMLaunchedRollerCoasterRTD = .TrackPaintFunctions = TrackDrawerDescriptor({ .Drawer = GetTrackPaintFunctionLatticeTriangleTrackAlt, .supportType = MetalSupportType::Tubes, - .enabledTrackGroups = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::slopeCurveSteep, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedHalf, TrackGroup::helixUpBankedHalf, TrackGroup::brakes, TrackGroup::onridePhoto, TrackGroup::blockBrakes, TrackGroup::slopeRollBanking, TrackGroup::slopeSteepLong, TrackGroup::slopeCurveBanked, TrackGroup::slopeCurveLarge, TrackGroup::slopeCurveLargeBanked, TrackGroup::booster, TrackGroup::diagBooster, TrackGroup::poweredLift, TrackGroup::slopeVertical, TrackGroup::curveVertical, TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge }, + .enabledTrackGroups = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::slopeCurveSteep, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedHalf, TrackGroup::helixUpBankedHalf, TrackGroup::brakes, TrackGroup::diagBrakes, TrackGroup::diagBlockBrakes, TrackGroup::onridePhoto, TrackGroup::blockBrakes, TrackGroup::slopeRollBanking, TrackGroup::slopeSteepLong, TrackGroup::slopeCurveBanked, TrackGroup::slopeCurveLarge, TrackGroup::slopeCurveLargeBanked, TrackGroup::booster, TrackGroup::diagBooster, TrackGroup::poweredLift, TrackGroup::slopeVertical, TrackGroup::curveVertical, TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge }, .extraTrackGroups = {TrackGroup::liftHill, TrackGroup::liftHillCable}, }), .InvertedTrackPaintFunctions = {}, diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index fe29f564f8..1025e97cd5 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1247,12 +1247,28 @@ enum : ImageIndex SPR_G2_LATTICE_TRIANGLE_TRACK_BRAKE_ALT_OPEN_SW_NE, SPR_G2_LATTICE_TRIANGLE_TRACK_BRAKE_ALT_OPEN_SE_NW, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKES, - SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_1 = SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKES + 6, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_1 = SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKES + 6, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_CLOSED_ALT_4, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BLOCK_BRAKE_OPEN_ALT_4, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_1, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_2, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_1, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_2, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_3, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_4, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_CLOSED_ALT_4, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKE_OPEN_ALT_4, SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_NE_SW, SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_NW_SE, SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_SW_NE,