summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMenase Teshale <osome3717@gmail.com>2026-09-19 16:06:47 +0300
committerMenase Teshale <osome3717@gmail.com>2026-09-19 16:06:47 +0300
commit6a2705f073114a7b4227c92a3c8a89e47985f547 (patch)
treefffe1dfff3312c3b4273e3a57ecd60d7c2b250be
parentaf1e4f1d6c47498a590bd64428163a6b9dbca385 (diff)
Fixed file path issue on windows
-rw-r--r--src/app.h6
-rw-r--r--src/game.c19
-rw-r--r--src/menu.c2
3 files changed, 21 insertions, 6 deletions
diff --git a/src/app.h b/src/app.h
index c7101ae..488f681 100644
--- a/src/app.h
+++ b/src/app.h
@@ -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
diff --git a/src/game.c b/src/game.c
index 9a52ca5..82f3b48 100644
--- a/src/game.c
+++ b/src/game.c
@@ -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];
diff --git a/src/menu.c b/src/menu.c
index 4345ede..ebf5718 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -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);
}