1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-10 09:32:29 +01:00

Updated Track Data (markdown)

Kevin Burke
2014-04-30 07:34:51 -07:00
parent 45cbf70d67
commit 09b282588c

@@ -2,219 +2,219 @@ Data about track pieces lives in a few places in RCT2.
First, there is the ordering of track pieces, which is used everywhere in the game; you might see a comparison to `72h` to check if a track piece is an on-ride photo for example. Here is the list. The first two digits are the hex numbers corresponding to the order.
- **00:** flat
- **01:** end station
- **02:** begin station
- **03:** middle station
- **04:** 25° ▲
- **05:** 60° ▲
- **06:** flat to 25° ▲
- **07:** 25° ▲ to 60° ▲
- **08:** 60° ▲ to 25° ▲
- **09:** 25° ▲ to flat
- **0A:** 25° ▼
- **0B:** 60° ▼
- **0C:** flat to 25° ▼
- **0D:** 25° ▼ to 60° ▼
- **0E:** 60° ▼ to 25° ▼
- **0F:** 25° ▼ to flat
- **10:** L ¼ D5
- **11:** R ¼ D5
- **12:** flat to L bank
- **13:** flat to R bank
- **14:** L bank to flat
- **15:** R bank to flat
- **16:** L ¼ D5 bank
- **17:** R ¼ D5 bank
- **18:** L bank to 25° ▲
- **19:** R bank to 25° ▲
- **1A:** 25° ▲ to L bank
- **1B:** 25° ▲ to R bank
- **1C:** L bank to 25° ▼
- **1D:** R bank to 25° ▼
- **1E:** 25° ▼ to L bank
- **1F:** 25° ▼ to R bank
- **20:** L bank
- **21:** R bank
- **22:** L ¼ D5 25° ▲
- **23:** R ¼ D5 25° ▲
- **24:** L ¼ D5 25° ▼
- **25:** R ¼ D5 25° ▼
- **26:** L "S" bend
- **27:** R "S" bend
- **28:** L vertical loop
- **29:** R vertical loop
- **2A:** L ¼ D3
- **2B:** R ¼ D3
- **2C:** L ¼ D3 bank
- **2D:** R ¼ D3 bank
- **2E:** L ¼ D3 25° ▲
- **2F:** R ¼ D3 25° ▲
- **30:** L ¼ D3 25° ▼
- **31:** R ¼ D3 25° ▼
- **32:** L ¼ D1
- **33:** R ¼ D1
- **34:** L twist ▼ to ▲
- **35:** R twist ▼ to ▲
- **36:** L twist ▲ to ▼
- **37:** R twist ▲ to ▼
- **38:** ½ loop ▲
- **39:** ½ loop ▼
- **3A:** L corkscrew ▲
- **3B:** R corkscrew ▲
- **3C:** L corkscrew ▼
- **3D:** R corkscrew ▼
- **3E:** flat to 60° ▲
- **3F:** 60° ▲ to flat
- **40:** flat to 60° ▼
- **41:** 60° ▼ to flat
- **42:** tower base
- **43:** tower section
- **44:** flat covered
- **45:** 25° ▲ covered
- **46:** 60° ▲ covered
- **47:** flat to 25° ▲ covered
- **48:** 25° ▲ to 60° ▲ covered
- **49:** 60° ▲ to 25° ▲ covered
- **4A:** 25° ▲ to flat covered
- **4B:** 25° ▼ covered
- **4C:** 60° ▼ covered
- **4D:** flat to 25° ▼ covered
- **4E:** 25° ▼ to 60° ▼ covered
- **4F:** 60° ▼ to 25° ▼ covered
- **50:** 25° ▼ to flat covered
- **51:** L ¼ D5 covered
- **52:** R ¼ D5 covered
- **53:** L "S" bend covered
- **54:** R "S" bend covered
- **55:** L ¼ D3 covered
- **56:** R ¼ D3 covered
- **57:** L ½ banked helix ▲ small
- **58:** R ½ banked helix ▲ small
- **59:** L ½ banked helix ▼ small
- **5A:** R ½ banked helix ▼ small
- **5B:** L ½ banked helix ▲ large
- **5C:** R ½ banked helix ▲ large
- **5D:** L ½ banked helix ▼ large
- **5E:** R ½ banked helix ▼ large
- **5F:** L ¼ D1 60° ▲
- **60:** R ¼ D1 60° ▲
- **61:** L ¼ D1 60° ▼
- **62:** R ¼ D1 60° ▼
- **63:** brakes
- **00:** flat
- **01:** end station
- **02:** begin station
- **03:** middle station
- **04:** 25° ▲
- **05:** 60° ▲
- **06:** flat to 25° ▲
- **07:** 25° ▲ to 60° ▲
- **08:** 60° ▲ to 25° ▲
- **09:** 25° ▲ to flat
- **0A:** 25° ▼
- **0B:** 60° ▼
- **0C:** flat to 25° ▼
- **0D:** 25° ▼ to 60° ▼
- **0E:** 60° ▼ to 25° ▼
- **0F:** 25° ▼ to flat
- **10:** L ¼ D5
- **11:** R ¼ D5
- **12:** flat to L bank
- **13:** flat to R bank
- **14:** L bank to flat
- **15:** R bank to flat
- **16:** L ¼ D5 bank
- **17:** R ¼ D5 bank
- **18:** L bank to 25° ▲
- **19:** R bank to 25° ▲
- **1A:** 25° ▲ to L bank
- **1B:** 25° ▲ to R bank
- **1C:** L bank to 25° ▼
- **1D:** R bank to 25° ▼
- **1E:** 25° ▼ to L bank
- **1F:** 25° ▼ to R bank
- **20:** L bank
- **21:** R bank
- **22:** L ¼ D5 25° ▲
- **23:** R ¼ D5 25° ▲
- **24:** L ¼ D5 25° ▼
- **25:** R ¼ D5 25° ▼
- **26:** L "S" bend
- **27:** R "S" bend
- **28:** L vertical loop
- **29:** R vertical loop
- **2A:** L ¼ D3
- **2B:** R ¼ D3
- **2C:** L ¼ D3 bank
- **2D:** R ¼ D3 bank
- **2E:** L ¼ D3 25° ▲
- **2F:** R ¼ D3 25° ▲
- **30:** L ¼ D3 25° ▼
- **31:** R ¼ D3 25° ▼
- **32:** L ¼ D1
- **33:** R ¼ D1
- **34:** L twist ▼ to ▲
- **35:** R twist ▼ to ▲
- **36:** L twist ▲ to ▼
- **37:** R twist ▲ to ▼
- **38:** ½ loop ▲
- **39:** ½ loop ▼
- **3A:** L corkscrew ▲
- **3B:** R corkscrew ▲
- **3C:** L corkscrew ▼
- **3D:** R corkscrew ▼
- **3E:** flat to 60° ▲
- **3F:** 60° ▲ to flat
- **40:** flat to 60° ▼
- **41:** 60° ▼ to flat
- **42:** tower base
- **43:** tower section
- **44:** flat covered
- **45:** 25° ▲ covered
- **46:** 60° ▲ covered
- **47:** flat to 25° ▲ covered
- **48:** 25° ▲ to 60° ▲ covered
- **49:** 60° ▲ to 25° ▲ covered
- **4A:** 25° ▲ to flat covered
- **4B:** 25° ▼ covered
- **4C:** 60° ▼ covered
- **4D:** flat to 25° ▼ covered
- **4E:** 25° ▼ to 60° ▼ covered
- **4F:** 60° ▼ to 25° ▼ covered
- **50:** 25° ▼ to flat covered
- **51:** L ¼ D5 covered
- **52:** R ¼ D5 covered
- **53:** L "S" bend covered
- **54:** R "S" bend covered
- **55:** L ¼ D3 covered
- **56:** R ¼ D3 covered
- **57:** L ½ banked helix ▲ small
- **58:** R ½ banked helix ▲ small
- **59:** L ½ banked helix ▼ small
- **5A:** R ½ banked helix ▼ small
- **5B:** L ½ banked helix ▲ large
- **5C:** R ½ banked helix ▲ large
- **5D:** L ½ banked helix ▼ large
- **5E:** R ½ banked helix ▼ large
- **5F:** L ¼ D1 60° ▲
- **60:** R ¼ D1 60° ▲
- **61:** L ¼ D1 60° ▼
- **62:** R ¼ D1 60° ▼
- **63:** brakes
- **64:** booster RCT2: Rotation control toggle (Spinning Wild Mouse)
- **65:** {reserved}RCT2: inverted 90° ▲ to flat quarter loop (multidim)
- **66:** L ¼ banked helix large▲
- **67:** R ¼ banked helix large▲
- **68:** L ¼ banked helix large▼
- **69:** R ¼ banked helix large▼
- **6A:** L ¼ helix large▲
- **6B:** R ¼ helix large▲
- **6C:** L ¼ helix large▼
- **6D:** R ¼ helix large▼
- **66:** L ¼ banked helix large▲
- **67:** R ¼ banked helix large▲
- **68:** L ¼ banked helix large▼
- **69:** R ¼ banked helix large▼
- **6A:** L ¼ helix large▲
- **6B:** R ¼ helix large▲
- **6C:** L ¼ helix large▼
- **6D:** R ¼ helix large▼
- **6E:** {ride base: 2 X 2} RCT2: 25° ▲ L banked
- **6F:** {ride base: 4 X 4} RCT2: 25° ▲ R banked
- **70:** waterfall
- **71:** rapids
- **72:** on ride photo
- **70:** waterfall
- **71:** rapids
- **72:** on ride photo
- **73:** {reserved}RCT2: 25° ▼ L banked
- **74:** {ride base: 1 X 5}RCT2: 25° ▼ R banked
- **75:** watersplash
- **75:** watersplash
- **76:** {shop/stall} RCT2: flat to 60° ▲ - long base
- **77:** {ride base: 1 X 2} RCT2: 60° ▲ to flat - long base
- **78:** whirlpool
- **78:** whirlpool
- **79:** {info kiosk}RCT2: 60° ▼ to flat - long base
- **7A:** {ride base: 1 X 4}RCT2: flat to 60° ▼ - long base
- **7B:** {ride base: 3 X 3}RCT2: Cable Lift Hill
- **7C:** reverse whoa belly slope
- **7D:** reverse whoa belly vertical
- **7E:** 90° ▲
- **7F:** 90° ▼
- **80:** 60° ▲ to 90° ▲
- **81:** 90° ▼ to 60° ▼
- **82:** 90° ▲ to 60° ▲
- **83:** 60° ▼ to 90° ▼
- **84:** brake for drop
- **85:** L 1/8 OTD
- **86:** R 1/8 OTD
- **87:** L 1/8 DTO
- **88:** R 1/8 DTO
- **89:** L 1/8 bank OTD
- **8A:** R 1/8 bank OTD
- **8B:** L 1/8 bank DTO
- **8C:** R 1/8 bank DTO
- **8D:** Diag flat
- **8E:** Diag 25° ▲
- **8F:** Diag 60° ▲
- **90:** Diag flat to 25° ▲
- **91:** Diag 25° ▲ to 60° ▲
- **92:** Diag 60° ▲ to 25° ▲
- **93:** Diag 25° ▲ to flat
- **94:** Diag 25° ▼
- **95:** Diag60° ▼
- **96:** Diag flat to 25° ▼
- **97:** Diag 25° ▼ to 60° ▼
- **98:** Diag 60° ▼ to 25° ▼
- **99:** Diag 25° ▼ to flat
- **9A:** Diag flat to 60° ▲
- **9B:** Diag 60° ▲ to flat
- **9C:** Diag flat to 60° ▼
- **9D:** Diag 60° ▼ to flat
- **9E:** Diag flat to L bank
- **9F:** Diag flat to R bank
- **A0:** Diag L bank to flat
- **A1:** Diag R bank to flat
- **A2:** Diag L bank to 25° ▲
- **A3:** Diag R bank to 25° ▲
- **A4:** Diag 25° ▲ to L bank
- **A5:** Diag 25° ▲ to R bank
- **A6:** Diag L bank to 25° ▼
- **A7:** Diag R bank to 25° ▼
- **A8:** Diag 25° ▼ to L bank
- **A9:** Diag 25° ▼ to R bank
- **AA:** Diag L bank
- **AB:** Diag R bank
- **7C:** reverse whoa belly slope
- **7D:** reverse whoa belly vertical
- **7E:** 90° ▲
- **7F:** 90° ▼
- **80:** 60° ▲ to 90° ▲
- **81:** 90° ▼ to 60° ▼
- **82:** 90° ▲ to 60° ▲
- **83:** 60° ▼ to 90° ▼
- **84:** brake for drop
- **85:** L 1/8 OTD
- **86:** R 1/8 OTD
- **87:** L 1/8 DTO
- **88:** R 1/8 DTO
- **89:** L 1/8 bank OTD
- **8A:** R 1/8 bank OTD
- **8B:** L 1/8 bank DTO
- **8C:** R 1/8 bank DTO
- **8D:** Diag flat
- **8E:** Diag 25° ▲
- **8F:** Diag 60° ▲
- **90:** Diag flat to 25° ▲
- **91:** Diag 25° ▲ to 60° ▲
- **92:** Diag 60° ▲ to 25° ▲
- **93:** Diag 25° ▲ to flat
- **94:** Diag 25° ▼
- **95:** Diag60° ▼
- **96:** Diag flat to 25° ▼
- **97:** Diag 25° ▼ to 60° ▼
- **98:** Diag 60° ▼ to 25° ▼
- **99:** Diag 25° ▼ to flat
- **9A:** Diag flat to 60° ▲
- **9B:** Diag 60° ▲ to flat
- **9C:** Diag flat to 60° ▼
- **9D:** Diag 60° ▼ to flat
- **9E:** Diag flat to L bank
- **9F:** Diag flat to R bank
- **A0:** Diag L bank to flat
- **A1:** Diag R bank to flat
- **A2:** Diag L bank to 25° ▲
- **A3:** Diag R bank to 25° ▲
- **A4:** Diag 25° ▲ to L bank
- **A5:** Diag 25° ▲ to R bank
- **A6:** Diag L bank to 25° ▼
- **A7:** Diag R bank to 25° ▼
- **A8:** Diag 25° ▼ to L bank
- **A9:** Diag 25° ▼ to R bank
- **AA:** Diag L bank
- **AB:** Diag R bank
- **AC:** Log flume reverser
- **AD:** spinning tunnel
- **AE:** L barrel roll ▲ to ▼
- **AF:** R barrel roll ▲ to ▼
- **B0:** L barrel roll ▼ to ▲
- **B1:** R barrel roll ▼ to ▲
- **B2:** L bank to L ¼ D3 25° ▲
- **AD:** spinning tunnel
- **AE:** L barrel roll ▲ to ▼
- **AF:** R barrel roll ▲ to ▼
- **B0:** L barrel roll ▼ to ▲
- **B1:** R barrel roll ▼ to ▲
- **B2:** L bank to L ¼ D3 25° ▲
- **B3:** R bank to R ¼ D3 25° ▲
- **B4:** L ¼ D3 25° ▼ to L bank
- **B5:** R ¼ D3 25° ▼ to R bank
- **B6:** powered lift
- **B7:** L large ½ loop ▲
- **B8:** R large ½ loop ▲
- **B9:** R large ½ loop ▼
- **BA:** L large ½ loop ▼
- **BB:** L flyer twist ▲ to ▼
- **BC:** R flyer twist ▲ to ▼
- **BD:** L flyer twist ▼ to ▲
- **BE:** R flyer twist ▼ to ▲
- **BF:** flyer ½ loop ▲
- **C0:** flyer ½ loop ▼
- **C1:** L fly corkscrw ▲ to ▼
- **C2:** R fly corkscrw ▲ to ▼
- **C3:** L fly corkscrw ▼ to ▲
- **C4:** R fly corkscrew ▼ to ▲
- **C5:** heartline transfer up
- **C6:** heartline transfer down
- **C7:** L heartline roll
- **C8:** R heartline roll
- **C9:** mini golf hole A
- **CA:** mini golf hole B
- **CB:** mini golf hole C
- **CC:** mini golf hole D
- **B6:** powered lift
- **B7:** L large ½ loop ▲
- **B8:** R large ½ loop ▲
- **B9:** R large ½ loop ▼
- **BA:** L large ½ loop ▼
- **BB:** L flyer twist ▲ to ▼
- **BC:** R flyer twist ▲ to ▼
- **BD:** L flyer twist ▼ to ▲
- **BE:** R flyer twist ▼ to ▲
- **BF:** flyer ½ loop ▲
- **C0:** flyer ½ loop ▼
- **C1:** L fly corkscrw ▲ to ▼
- **C2:** R fly corkscrw ▲ to ▼
- **C3:** L fly corkscrw ▼ to ▲
- **C4:** R fly corkscrew ▼ to ▲
- **C5:** heartline transfer up
- **C6:** heartline transfer down
- **C7:** L heartline roll
- **C8:** R heartline roll
- **C9:** mini golf hole A
- **CA:** mini golf hole B
- **CB:** mini golf hole C
- **CC:** mini golf hole D
- **CD:** RCT2: mini golf hole E
- **CE:** RCT2: inverted flat to 90° ▼ quarter loop (multidim)
- **CF:** RCT2: Quarter loop 90° ▲ to invert
- **D0:** RCT2: Quarter loop invert to 90° ▼
- **D1:** RCT2: L curved lift hill
- **D2:** RCT2: R curved lift hill
- **D3:** L reverser
- **D4:** R reverser
- **D3:** L reverser
- **D4:** R reverser
- **D5:** Air Thrust top cap
- **D6:** Air Thrust Vertical down
- **D7:** Air Thrust vertical down to level
@@ -223,7 +223,7 @@ First, there is the ordering of track pieces, which is used everywhere in the ga
- **DA:** R ¼ D3 25° ▲ banked
- **DB:** L ¼ D3 25° ▼ banked
- **DC:** R ¼ D3 25° ▼ banked
- **DD:** L ¼ D5 25° ▲ banked
- **DD:** L ¼ D5 25° ▲ banked
- **DE:** R ¼ D5 25° ▲ banked
- **DF:** L ¼ D5 25° ▼ banked
- **E0:** R ¼ D5 25° ▼ banked
@@ -237,8 +237,8 @@ First, there is the ordering of track pieces, which is used everywhere in the ga
- **E8:** R bank 25° ▼ to 25° ▼
- **E9:** L bank to L bank 25° ▲
- **EA:** R bank to R bank 25° ▲
- **EB:** L bank 25° ▲ to L bank flat
- **EC:** R bank 25° ▲ to R bank flat
- **EB:** L bank 25° ▲ to L bank flat
- **EC:** R bank 25° ▲ to R bank flat
- **ED:** L bank to L bank 25° ▼
- **EE:** R bank to R bank 25° ▼
- **EF:** L bank 25° ▼ to L bank flat
@@ -327,6 +327,53 @@ More data about each track piece lives in a few different places in the game. Fi
## Height/Direction Change Data
Data about the height and direction change of track pieces is stored in 11-byte structs, beginning at 0x994e34. However, the structs here **do not** map 1:1 with track pieces. Instead, use the lookup table beginning at `0x994a38` to determine which struct corresponds to your given track piece.
Data about the height and direction change of track pieces is stored in 11-byte
structs, beginning at `0x994e34`. However, the structs here **do not** map 1:1
with track pieces. Instead, use the lookup table beginning at `0x994a38` to
determine which struct corresponds to your given track piece.
There are two lookup tables, one at `0x994a38` and one at `0x994632`. I am not sure yet which one is used in which situations, though it depends on whether a flag is set at bit 20 of the ride struct beginning at `0x97CF40`.
There are two lookup tables, one at `0x994a38` and one at `0x994632`. I am not
sure yet which one is used in which situations, though it depends on whether a
flag is set at bit 20 of the ride struct beginning at `0x97CF40`.
Here's the breakdown of those 11 byte structs
##### bytes 0-4
all empty, as far as I can tell
##### byte 5
contains flags relating to helixes and loops
##### byte 6
255 if a loop piece that ends going downward, else 0
##### byte 7
These seem to track the height change required by the piece. 16 represents a
height change of 1 unit, but there are also 8 and 12 represented. check byte 8
for the direction.
Some of this is confusing; a helix up piece should have at least some height
change but instead is 0 in the code. Bit 3 set means "helix down"
##### byte 8
bit 0: always set (?)
bit 1: 0 if track piece starts diagonal, 1 if track piece starts orthogonal
bit 2: if 0, right turn
bit 3: if 0, left turn
bit 4 or 5: if either is 1, track starts or finishes downhill
bit 6 or 7: if either is 1, track starts or finishes uphill
So a flat track piece with no turns would be 15.
##### byte 9
4 if the track piece starts or ends at a 90 degree angle. 0 otherwise.
##### byte 10
is either 1 or 255, 1 if a turn?