game reset via OPTIONS button

This commit is contained in:
Zack Buhman 2025-12-05 20:15:17 -06:00
parent 1ab28665f2
commit 9eb8e3189b
2 changed files with 12 additions and 5 deletions

View File

@ -225,7 +225,9 @@ int main()
float paddle_dx = 0.0; float paddle_dx = 0.0;
//float paddle_dy = 0.0; //float paddle_dy = 0.0;
static bool last_x_press = false; static bool last_x_press = false;
static bool last_option_press = false;
bool x_press = false; bool x_press = false;
bool option_press = false;
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
int present = glfwJoystickPresent(GLFW_JOYSTICK_1 + i); int present = glfwJoystickPresent(GLFW_JOYSTICK_1 + i);
@ -253,6 +255,7 @@ int main()
#endif #endif
x_press = buttons[X_BUTTON] != 0; x_press = buttons[X_BUTTON] != 0;
option_press = buttons[OPTIONS_BUTTON] != 0;
const char * name = glfwGetJoystickName(GLFW_JOYSTICK_1 + i); const char * name = glfwGetJoystickName(GLFW_JOYSTICK_1 + i);
if (name != last_gamepad_name) { if (name != last_gamepad_name) {
@ -278,6 +281,11 @@ int main()
} }
last_x_press = x_press; last_x_press = x_press;
if (!last_option_press && option_press) {
reset_game(&state);
}
last_option_press = option_press;
float extent = 0.25; float extent = 0.25;
state.paddle_x += paddle_dx; state.paddle_x += paddle_dx;
if (state.paddle_x < extent) if (state.paddle_x < extent)

View File

@ -100,11 +100,6 @@ void launch_ball(struct game_state * state, double time)
void reset_level(struct game_state * state) void reset_level(struct game_state * state)
{ {
state->paddle_x = 0.0;
state->paddle_y = 26.0;
state->start_time = 0.0;
//assert(src_level_level2_data_size == 13 * 28); //assert(src_level_level2_data_size == 13 * 28);
const uint8_t * level = (const uint8_t *)levels[state->level_ix].data_start; const uint8_t * level = (const uint8_t *)levels[state->level_ix].data_start;
const uint8_t * pal = (const uint8_t *)levels[state->level_ix].data_pal_start; const uint8_t * pal = (const uint8_t *)levels[state->level_ix].data_pal_start;
@ -118,6 +113,10 @@ void reset_level(struct game_state * state)
void reset_game(struct game_state * state) void reset_game(struct game_state * state)
{ {
state->paddle_x = 0;
state->paddle_y = 26.0;
state->balls_launched = 0;
state->level_ix = 0; state->level_ix = 0;
reset_level(state); reset_level(state);
} }