move timer data to static variables in the update function, rather than storing it in the gamedata.

This commit is contained in:
2025-04-17 09:53:07 +02:00
parent 1ee8c69d1b
commit 38cb8011ef
2 changed files with 9 additions and 13 deletions

View File

@@ -58,9 +58,6 @@ void game_init(gamedata* const dat) {
ad, // audio_device
audio_wav_load(ad, "korobeiniki.wav"), // music
audio_wav_load(ad, "place.wav"), // place_sfx
0, // timer_music
0, // timer_update
0, // timer_input
0, // score
{0}, // nxt
0, // curr_idx
@@ -93,6 +90,9 @@ static inline void update_gametime(gamedata* dat) {
// called every time the game's state is updated
void game_update(gamedata* const dat) {
static time_t timer_update = 0;
static time_t timer_music = 0;
static time_t timer_input = 0;
update_gametime(dat);
uint8_t const* keys = SDL_GetKeyboardState(NULL);
@@ -102,17 +102,17 @@ void game_update(gamedata* const dat) {
input_data move = MOVE_NONE; // contains the move data
time_t ctime = dat->time.ms;
if (ctime > dat->timer_update) {
dat->timer_update = ctime + 500;
if (ctime > timer_update) {
timer_update = ctime + 500;
move |= MOVE_DOWN;
}
if (ctime > dat->timer_music) {
dat->timer_music = ctime + (dat->music.ms);
if (ctime > timer_music) {
timer_music = ctime + (dat->music.ms);
audio_play(dat->audio_device, &dat->music);
}
if (ctime > dat->timer_input) {
if (ctime > timer_input) {
input_data umove = MOVE_NONE;
// get the input data and apply it to move
@@ -123,7 +123,7 @@ void game_update(gamedata* const dat) {
if (keys[SDL_SCANCODE_E]) umove |= MOVE_ROTRIGHT;
if (umove != MOVE_NONE) {
dat->timer_input = ctime + 80;
timer_input = ctime + 20;
move |= umove;
}
}

View File

@@ -2,7 +2,6 @@
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <time.h>
#include "../window/audio.h"
#include "../window/colour/colour8.h"
@@ -29,9 +28,6 @@ typedef struct {
audiodevice* audio_device;
audiodata music;
audiodata place_sfx;
time_t timer_music;
time_t timer_update;
time_t timer_input;
uint16_t score;
shape_id nxt[7]; // the order of the shape ids that they should appear in
uint8_t curr_idx; // current shape index