From dda256ef5ffce0861e3d962dbdd4082732585428 Mon Sep 17 00:00:00 2001 From: AuraSpecs Date: Thu, 13 Oct 2022 20:51:54 +0200 Subject: [PATCH] Add inverted large loops and inverted boosters to Flying RC --- contributors.md | 2 +- distribution/changelog.txt | 1 + resources/g2/sprites.json | 10 + resources/g2/track/bm_invert/booster_1.png | Bin 0 -> 1286 bytes resources/g2/track/bm_invert/booster_2.png | Bin 0 -> 1307 bytes src/openrct2/network/NetworkBase.cpp | 4 +- .../ride/coaster/FlyingRollerCoaster.cpp | 499 +++++++++++++++++- .../ride/coaster/meta/FlyingRollerCoaster.h | 8 +- src/openrct2/sprites.h | 5 +- 9 files changed, 519 insertions(+), 10 deletions(-) create mode 100644 resources/g2/track/bm_invert/booster_1.png create mode 100644 resources/g2/track/bm_invert/booster_2.png diff --git a/contributors.md b/contributors.md index 3c7709b283..964d1791a6 100644 --- a/contributors.md +++ b/contributors.md @@ -97,7 +97,7 @@ The following people are not part of the development team, but have been contrib * Bas Cantrijn (Basssiiie) - Various plugin additions, misc. * Adrian Zdanowicz (CookiePLMonster) - Misc. * Andrew Pratt (andrewpratt64) - Added api hook for vehicle crashes, api function to get entities on a tile -* Karst van Galen Last (AuraSpecs) - Misc. +* Karst van Galen Last (AuraSpecs) - Ride paint (bounding boxes, extra track pieces), soundtrack, sound effects, misc. * (8street) - Misc. ## Bug fixes diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 73c9e27d55..2215573535 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,5 +1,6 @@ 0.4.3 (in development) ------------------------------------------------------------------------ +- Feature: [#17782] The Flying Coaster now has access to boosters and can draw outside loops. - Fix: [#14312] Research ride type message incorrect. - Fix: [#17763] Missing validation on invalid characters in file name. - Fix: [#17853] Invention name tears while being dragged. diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index a04f68bb3a..97c1846248 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -15943,6 +15943,16 @@ "x_offset": 2, "y_offset": 1 }, + { + "path": "track/bm_invert/booster_1.png", + "x_offset": -25, + "y_offset": -5 + }, + { + "path": "track/bm_invert/booster_2.png", + "x_offset": -25, + "y_offset": -5 + }, { "path": "track/lim/barrel_roll_left_1_1.png", "x_offset": -22, diff --git a/resources/g2/track/bm_invert/booster_1.png b/resources/g2/track/bm_invert/booster_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ef4f789cd96eaa6884a3bb42f9dea125f06c69df GIT binary patch literal 1286 zcmaJ>Z%i9y9KMDx%Wz|n>i%Ht?Yabsw%2P*OK)^t*K1h=?MT}NlEuK$dnq@#dvAA# zEuhvwOw>4877~a=QD=;C&bs(vWNeZ+bu*d~Ld+&45}6y3V46uLLuSvnj50rnm%Dp^ z@0;g&et+*?uMgL3+q!2fhGE-+hnWakDfHl5iqQMbYt1{*vRm~xs!`agCRrI^UJkYZ zJSeaU5CJULb>cfvjbTLuA8S+_Lv?f<3T8HsF{cCxu`#ULlaknYJ5cc!kl;l(ksTW+ zaGrA$4V58FNb-R;{&2SpqTS(Gyt_T_;t0lcB% z$y_TPVFK&E(9TV?sj5ViWHOmFCv9dZCrHZWa^*FwRue*)lrB+aQzlU{78Dqu#ARMm zc_`v}MYaWYs%`>B`Y;7S+K?5M^)jJ?kttRpDYGS?QUMqW{XbL?HqeS10gvMSPhln2 zB>^%56xb=pQR7;Tc~=tclL4zjIR;@zp^EiwP=!hxlyG0vfj`s0iyTZU6>IoVhz^R1 z%8GFiWZVQ&F!MY|d;Ly|@%kK;%j%;jKT{R3`KlPk<);Fa)8VidxD1SU3P4l~T<#Iq zxhXe43W9_@GeG8F09-(Z0=||q&2JuyeN(-4F1L9sm78)&6bzYf?7tdaI6~8tH#f!> zZ8ioUh-lhnG}dno|F#c(65;x~m|xR0Pc+&$I5?8YOwG(BFk4Ttr+?>>Glr%M<#1+y zfA-kfrR3Q1;PrLtYnxvn9`j{R!UM_oY zpKYSz_80qgo^Z5cMEv^2PtMP0%4!}Qy)`t_vDb6&)l1^S<1asT2_DsDUwik<=uZdE z9r9l9xq9k{yHNkZhm)S3Qx|Q!b0-=7L2=j2^`ZXZ%YW=Fo*RM&Lpd>aOD8@txsb6h z%`NNgR|7e0`S`u2l6%zSpJx%VH+fY?d^ literal 0 HcmV?d00001 diff --git a/resources/g2/track/bm_invert/booster_2.png b/resources/g2/track/bm_invert/booster_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea90d1a58e1aac8c4a3d6267c798ec70d07a377 GIT binary patch literal 1307 zcmeAS@N?(olHy`uVBq!ia0vp^hCr;q!3-pOP9z8bDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_~DzP6mr5$ALtl; zP~t#JEHEKp3Is9XNgv38XP(qNV2&vQW{nF^)N6s+$}GSq#P$FG|MSgHp~<)qel4H;V|#n(}Vx?*q-&_Z$0t=Txie zZ{DnOU1Emn_Bp8yvnMjH;Ymnk&}NR1e87Lk^uP%L#*;@x7>bp+gSXAlYzg*xvgu4} zH`5fE-vvDrU(ZwvpBQY%pB6NCf!)5-Ctf8?UAUe9_ruNhN}B}hjaL5p@Ziol_Y{8< zwUz$6-)-#|n*7?}to!n`yYi|=JLR13{ehj)Tk p{*LiE|9$)GKQsHM-DQ(trackType); } diff --git a/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h b/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h index 8428c6c96c..cc935770a6 100644 --- a/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h @@ -20,8 +20,8 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterRTD = { SET_FIELD(AlternateType, RIDE_TYPE_FLYING_ROLLER_COASTER_ALT), SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER), - SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_HELIX_SMALL, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_UNINVERTED, TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_VERTICAL}), - SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER, TRACK_SLOPE_STEEP_LONG, TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN}), + SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_HELIX_SMALL, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_UNINVERTED, TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED}), + SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER, TRACK_SLOPE_STEEP_LONG, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_DOWN, TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN, TRACK_STATION_END, TRACK_VERTICAL_LOOP, TRACK_POWERED_LIFT}), SET_FIELD(CoveredTrackPieces, {}), SET_FIELD(StartTrackPiece, TrackElemType::EndStation), SET_FIELD(TrackPaintFunction, get_track_paint_function_flying_rc), @@ -65,8 +65,8 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterAltRTD = { SET_FIELD(AlternateType, RIDE_TYPE_NULL), SET_FIELD(Category, RIDE_CATEGORY_NONE), - SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_HELIX_LARGE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_INVERTED, TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_QUARTER_LOOP_INVERTED_DOWN, TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_DOWN}), - SET_FIELD(ExtraTrackPieces, {TRACK_FLYING_HALF_LOOP_INVERTED_UP}), + SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_HELIX_LARGE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_INVERTED, TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_QUARTER_LOOP_INVERTED_DOWN, TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_DOWN, TRACK_BOOSTER}), + SET_FIELD(ExtraTrackPieces, {TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_UP, TRACK_FLYING_HALF_LOOP_INVERTED_UP}), SET_FIELD(CoveredTrackPieces, {}), SET_FIELD(StartTrackPiece, TrackElemType::EndStation), SET_FIELD(TrackPaintFunction, nullptr), diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index 0a4337f553..180c1b3b38 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1293,7 +1293,10 @@ enum SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS, - SPR_G2_LIM_LAUNCHED_TRACK_BEGIN = SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS + 1, + SPR_G2_BM_INVERT_BOOSTER_1, + SPR_G2_BM_INVERT_BOOSTER_2, + + SPR_G2_LIM_LAUNCHED_TRACK_BEGIN, SPR_G2_LIM_LAUNCHED_TRACK_BARREL_ROLL = SPR_G2_LIM_LAUNCHED_TRACK_BEGIN, SPR_G2_LIM_LAUNCHED_TRACK_HALF_LOOP = SPR_G2_LIM_LAUNCHED_TRACK_BARREL_ROLL + 48, SPR_G2_LIM_LAUNCHED_TRACK_FLAT_TO_STEEP = SPR_G2_LIM_LAUNCHED_TRACK_HALF_LOOP + 16,