track more variables for game panel in BD engine (e.g. for custom artwork)
Posted: Sat Jan 25, 2025 9:04 pm
just recently i wanted to make a custom panel for RnD-style BD levels that shows, among other things, how many lives the player currently has. then i realized the only way to show the player's lives is to show the level name (which has the lives appended onto it if playing with multiple lives). so at first this was just going to be a suggestion to let custom artwork show how many lives the player has, but then i figured i might as well mention the rest of the variables in GDash's status bar, as well as other variables that aren't in GDash's status bar but which custom artwork creators might want to show on the panel.
----
gdash has a second panel accessible if you hold left-shift (by default). it would be nice if the variables it tracks had corresponding fields in game.panel, even if the second panel itself isn't going to be implemented yet.
it includes the following variables, from left to right (with relevant variables in the game's code included):
----
gdash has a second panel accessible if you hold left-shift (by default). it would be nice if the variables it tracks had corresponding fields in game.panel, even if the second panel itself isn't going to be implemented yet.
it includes the following variables, from left to right (with relevant variables in the game's code included):
- how many lives are remaining [game_bd.global_lives]
- how many of BD key 1 is held [cave->key1]
- how many of BD key 2 is held [cave->key2]
- how many of BD key 3 is held [cave->key3]
- the queued direction of gravity (the direction of the arrow; in gdash's status bar this just shows the current gravity if no gravity is queued) [cave->gravity_next_direction]
- seconds until queued gravity change is applied (0 if currently active) [cave->gravity_will_change, though this variable is in milliseconds]
- how many skeletons are held [cave->skeletons_collected]
- the current direction of gravity [cave->gravity]
- whether gravity is currently disabled [cave->gravity_disabled]
- whether a sweet has been eaten [cave->sweet_eaten]
- whether a pneumatic hammer is held [cave->got_pneumatic_hammer]
- how many extra rockets are held [cave->rockets_collected]
- whether infinite rockets are held [cave->infinite_rockets]
- whether the diamond key has been collected (all trapped diamonds in the level, even newly created ones, will be converted to diamonds whenever possible) [cave->diamond_key_collected]
- magic wall state (dormant, active, expired) [cave->magic_wall_state]
- magic wall time remaining [cave->magic_wall_time]
- whether creature direction switch is active [cave->creatures_backwards]
- whether expanding wall switch is active [cave->expanding_wall_changed]
- current biter delay (set by biter switch) [cave->biter_delay_frame]
- whether replicators are active [cave->replicators_active]
- whether conveyor belts are active [cave->conveyor_belts_active]
- whether conveyor belt direction switch is active [cave->conveyor_belts_direction_changed]