1 #ifndef _skycore__state__hpp__included__
2 #define _skycore__state__hpp__included__
15 const uint8_t state_menu_fadein
= 0; //Menu fading in.
16 const uint8_t state_menu
= 1; //In menu.
17 const uint8_t state_menu_fadeout
= 2; //Menu fading out.
18 const uint8_t state_load_level
= 3; //Level being loaded.
19 const uint8_t state_level_fadein
= 4; //Level fading in.
20 const uint8_t state_level_play
= 5; //Level being played.
21 const uint8_t state_level_complete
= 6; //Level completed.
22 const uint8_t state_level_fadeout
= 7; //Level fading out.
23 const uint8_t state_load_menu
= 8; //Menu being loaded.
24 const uint8_t state_level_unavail
= 9; //Level unavailable.
25 const uint8_t state_demo_unavail
= 10; //Demo unavailable.
26 const uint8_t state_level_fadeout_retry
= 11; //Level fading out for retry.
27 const uint8_t state_load_level_nomus
= 12; //Level being loaded, without reloading music.
28 const uint8_t state_lockup
= 13; //Game is locked up.
32 //DO NOT PUT POINTERS IN HERE!!!
33 //Also, be careful not to do anything undefined if there is a bad value.
38 music_player_memory music
;
40 uint64_t pcmpos
; //PCM position in song.
41 uint64_t frames_ran
; //Number of frames run.
42 uint32_t cursong
; //Current song number.
43 uint16_t waited
; //Menu wait / timeattack time.
44 uint8_t paused
; //Paused flag.
45 uint8_t speedind
; //Indicated speed.
46 uint8_t o2ind
; //Indicated amount of oxygen.
47 uint8_t fuelind
; //Indicated amount of fuel.
48 uint8_t distind
; //Indicated distance.
49 uint8_t lockind
; //Lock indicator flag.
50 uint8_t beep_phase
; //Out of O2/Fuel flash phase.
51 uint8_t state
; //State of game.
52 uint8_t fadecount
; //Fade counter.
53 uint8_t stage
; //Current stage.
54 uint8_t oldstage
; //old stage (used in menu).
55 uint8_t savestage
; //Saved stage (used over demo).
56 uint8_t demo_flag
; //Set to 1 to load demo.
57 uint8_t lastkeys
; //Last key state.
58 uint8_t secret
; //Secret flag.
59 uint8_t timeattack
; //Timeattack flag
60 uint8_t padC
; //Padding.
61 uint8_t padD
; //Padding.
62 uint8_t sram
[32]; //SRAM.
63 void level_init(uint8_t _stage
);
64 uint8_t simulate_frame(noise_maker
& sfx
, int lr
, int ad
, bool jump
);
65 void change_state(uint8_t newstate
);
66 std::pair
<uint8_t*, size_t> as_ram();