Newly Identified Fields
The following is a list of fields and addresses whose meaning has been identified but are not yet named in the code base. These values are collected here to be committed in regular batches.
- The last two bytes in the
rct_peep_thought
struct contain a time counter for each thought - Peep C4 has something to do with making peep go to locations. If set to 0 they all head to your first ride.
- Ride variables:
- var_124 and var_126 keep track of customers per hour in some way. Possibly historical data?
- Window variables:
- var_48E seems to be taking care of tab icon animations.
- var_492 is taking care of graph icon animation below walking guy animated by var_48E in park -> rating tab, but is also used for other purposes in other menus.
dword_1358830
seems to store the upper boundary of the map? sub_68B93A checks whether coordinates ax and cx are on or off of the map and errors if they are.
game flag 0x20H
is a check for the tree height. 0x68B9B7
checks for this, and if so, rides can't be taller than 0x12 units, of something.
0x0138B616
is a store for i
, which increments from 0 to MAX_RIDES in the update_ride_measurements function. i is stored and then retrieved after some work is done in that register
0x97E050
is a jump table where excitement gets set for different types of rides. The jump table corresponds to the list of ride types here: https://freerct.github.io/RCTTechDepot-Archive/rideCodes.html, but seems to end at 0x4F
, where the ride type list goes to 0x5A
. but every subroutine from there ends up setting excitement near the bottom - see calls to edi+140h
, edi+142h
, edi+144h
near the bottom of every subroutine there.
0x013628F9
is a way to index into the rides array at the ride subtype, and so on, and so forth with the other indexes there.
0x01362941
is a way to index and get the ride status.
0x65E7A3
is a function that applies an intensity penalty to a ride's excitement rating.
0x97D4F0
is a 8-byte wide array, arranged by ride type. in the byte at f2, bit 7 (0x80) indicates whether a ride is a roller coaster, but also seems to be set for ghost house, log flume and river rapids.
0x9A9808
is the pop up text you get when you are in clear scenery mode (right click to remove/modify) and another unidentified mode.
0x9A980A
is the pop up text you get when you are in clear scenery mode where it says the name.
0x01357846
is the number of guests outside the park, heading to the entrance.
0x01357BC8
is the number of guests at the end of the last "cycle" - this is used to generate the up and down arrows indicating guest growth.
0x0135832C
is the amount of money spent in the current day (RCT2_ADDRESS_CURRENT_EXPENDITURE), this is used to calculate the weekly profit graph.
- Home
- FAQ & Common Issues
- Roadmap
- Installation
- Building
- Features
- Development
- Benchmarking & stress testing OpenRCT2
- Coding Style
- Commit Messages
- Data Structures
- CSS1.DAT
- Custom Music and Ride Music Objects
- Game Actions
- G1 Elements Layout
- game.cfg structure
- Maps
- Music Cleanup
- Objects
- Official extended scenery set
- Peep AI
- Peep Sprite Type
- RCT1 ride and vehicle types and their RCT2 equivalents
- RCT12_MAX_SOMETHING versus MAX_SOMETHING
- Ride rating calculation
- SV6 Ride Structure
- Settings in config.ini
- Sizes and angles in the game world
- Sprite List csg1.dat
- Sprite List g1.dat
- Strings used in RCT1
- Strings used in the game
- TD6 format
- Terminology
- Track Data
- Track Designs
- Track types
- Vehicle Sprite Layout
- Widget colours
- Debugging OpenRCT2 on macOS
- OpenGL renderer
- Overall program structure
- Rebase and Sync fork with OpenRCT2
- Release Checklist
- Replay System
- Reverse Engineering
- Using minidumps from crash reports
- Using Track Block Get Previous
- History
- Testing