diff options
| author | Menase Teshale <osome3717@gmail.com> | 2026-09-19 16:06:47 +0300 |
|---|---|---|
| committer | Menase Teshale <osome3717@gmail.com> | 2026-09-19 16:06:47 +0300 |
| commit | 6a2705f073114a7b4227c92a3c8a89e47985f547 (patch) | |
| tree | fffe1dfff3312c3b4273e3a57ecd60d7c2b250be | |
| parent | af1e4f1d6c47498a590bd64428163a6b9dbca385 (diff) | |
Fixed file path issue on windows
| -rw-r--r-- | src/app.h | 6 | ||||
| -rw-r--r-- | src/game.c | 19 | ||||
| -rw-r--r-- | src/menu.c | 2 |
3 files changed, 21 insertions, 6 deletions
@@ -4,6 +4,12 @@ #include <SDL3/SDL.h> #include <SDL3_mixer/SDL_mixer.h> +#ifndef SDL_PLATFORM_WINDOWS +#define DIRSEP "/" +#else +#define DIRSEP "\\" +#endif + typedef enum { menu_state, game_state @@ -89,7 +89,8 @@ typedef enum { intro_state, neutral_state, piece_held_state, - swap_animation_state + swap_animation_state, + game_over_state } game_scene_state; typedef enum { @@ -108,6 +109,7 @@ typedef struct { typedef struct { float time_remaining; text_sprite time_added_sprites[TIMED_MODE_NUM_TIME_ADDED_SPRITES]; + int tiles_cleared; } timed_mode_data; typedef struct { @@ -299,7 +301,7 @@ void init_game(SDL_Renderer* renderer, MIX_Mixer* mixer) { if (game.text_font.spritesheet == NULL) { load_sprite_font(renderer, - "assets/Fonts/Peaberry-Font-v2.0/Peaberry Bitmap Fonts/1. WhitePeaberry/2. White Peaberry/WhitePeaberry.txt", + "assets"DIRSEP"Fonts"DIRSEP"Peaberry-Font-v2.0"DIRSEP"Peaberry Bitmap Fonts"DIRSEP"1. WhitePeaberry"DIRSEP"2. White Peaberry"DIRSEP"WhitePeaberry.txt", &game.text_font); } @@ -317,7 +319,8 @@ void init_timed_game(SDL_Renderer* renderer, MIX_Mixer* mixer, float time_remain game.mode = timed_mode; game.timed_mode_data = (timed_mode_data) { - .time_remaining = time_remaining + .time_remaining = time_remaining, + .tiles_cleared = 0 }; } @@ -492,7 +495,7 @@ void add_time_added_sprite(float time_added, float xpos, float ypos) { void timed_mode_process_clear(int sy, int sx, int ey, int ex) { timed_mode_data* timed_mode_data = &game.timed_mode_data; - int tiles_cleared = SDL_abs(ey-sy) + SDL_abs(ex-sx) + 1; + int tiles_cleared = SDL_abs(ey-sy) + SDL_abs(ex-sx) + 1; float time_added = 1; if (tiles_cleared > MIN_TILES_TO_CLEAR) { @@ -500,6 +503,8 @@ void timed_mode_process_clear(int sy, int sx, int ey, int ex) { (tiles_cleared - MIN_TILES_TO_CLEAR) * CLEAR_EXTRA_TIME_BONUS; } + timed_mode_data->tiles_cleared += tiles_cleared; + SDL_FPoint clear_position = board_position(sy, sx); add_time_added_sprite(time_added, clear_position.x, clear_position.y); timed_mode_data->time_remaining += time_added; @@ -692,7 +697,7 @@ void draw_piece(SDL_Renderer* renderer, const piece* piece) { void draw_background(SDL_Renderer* renderer) { int x_offset = game.background_offset; - while (x_offset <= 800) { + while (x_offset <= get_window_relative_xpos(1)) { SDL_RenderTexture(renderer, game.background_texture, NULL, @@ -842,6 +847,10 @@ void update_timed_mode(float dt) { timed_mode_data->time_remaining = SDL_max(timed_mode_data->time_remaining - dt, 0); + if (timed_mode_data->time_remaining <= 0) { + game.state = game_over_state; + } + for (int i = 0; i < TIMED_MODE_NUM_TIME_ADDED_SPRITES; i++) { text_sprite* text_sprite = &timed_mode_data->time_added_sprites[i]; @@ -20,7 +20,7 @@ extern application_state app_state; void init_menu(SDL_Renderer* renderer) { if (text_font.spritesheet == NULL) { load_sprite_font(renderer, - "assets/Fonts/Peaberry-Font-v2.0/Peaberry Bitmap Fonts/1. WhitePeaberry/2. White Peaberry/WhitePeaberry.txt", + "assets"DIRSEP"Fonts"DIRSEP"Peaberry-Font-v2.0"DIRSEP"Peaberry Bitmap Fonts"DIRSEP"1. WhitePeaberry"DIRSEP"2. White Peaberry"DIRSEP"WhitePeaberry.txt", &text_font); } |
