rogged: move various magic numbers to the settings struct

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie5cadb3d9dca130b57b858905f549f2d6a6a6964
This commit is contained in:
raf 2026-04-08 14:45:28 +03:00 committed by raf
commit 3998fb5259
2 changed files with 16 additions and 5 deletions

View file

@ -42,7 +42,7 @@ static void spawn_floating_text(GameState *gs, int x, int y, int value, int is_c
gs->floating_texts[slot].x = x; gs->floating_texts[slot].x = x;
gs->floating_texts[slot].y = y; gs->floating_texts[slot].y = y;
gs->floating_texts[slot].value = value; gs->floating_texts[slot].value = value;
gs->floating_texts[slot].lifetime = 60; gs->floating_texts[slot].lifetime = FLOATING_TEXT_LIFETIME;
gs->floating_texts[slot].is_critical = is_critical; gs->floating_texts[slot].is_critical = is_critical;
gs->floating_texts[slot].label[0] = '\0'; // numeric, no label gs->floating_texts[slot].label[0] = '\0'; // numeric, no label
gs->floating_texts[slot].effect_type = EFFECT_NONE; gs->floating_texts[slot].effect_type = EFFECT_NONE;
@ -92,8 +92,8 @@ static void update_effects(GameState *gs) {
// update screen shake // update screen shake
if (gs->screen_shake > 0) { if (gs->screen_shake > 0) {
gs->screen_shake--; gs->screen_shake--;
gs->shake_x = rng_int(-4, 4); gs->shake_x = rng_int(-SHAKE_MAX_OFFSET, SHAKE_MAX_OFFSET);
gs->shake_y = rng_int(-4, 4); gs->shake_y = rng_int(-SHAKE_MAX_OFFSET, SHAKE_MAX_OFFSET);
} else { } else {
gs->shake_x = 0; gs->shake_x = 0;
gs->shake_y = 0; gs->shake_y = 0;
@ -139,7 +139,7 @@ static void tick_all_effects(GameState *gs) {
int player_effect_dmg = combat_tick_effects(&gs->player); int player_effect_dmg = combat_tick_effects(&gs->player);
if (player_effect_dmg > 0) { if (player_effect_dmg > 0) {
spawn_floating_text(gs, gs->player.x * TILE_SIZE + 8, gs->player.y * TILE_SIZE, player_effect_dmg, 0); spawn_floating_text(gs, gs->player.x * TILE_SIZE + 8, gs->player.y * TILE_SIZE, player_effect_dmg, 0);
gs->screen_shake = 4; gs->screen_shake = SHAKE_EFFECT_DURATION;
} }
// Check if player died from effects // Check if player died from effects
@ -222,7 +222,7 @@ static void post_action(GameState *gs, Enemy *attacked_enemy) {
// Check if player took damage // Check if player took damage
if (combat_was_player_damage() && combat_get_last_damage() > 0) { if (combat_was_player_damage() && combat_get_last_damage() > 0) {
audio_play_player_damage(gs); audio_play_player_damage(gs);
gs->screen_shake = 8; gs->screen_shake = SHAKE_PLAYER_DAMAGE_DURATION;
gs->damage_taken += combat_get_last_damage(); gs->damage_taken += combat_get_last_damage();
gs->times_hit++; gs->times_hit++;
spawn_floating_text(gs, gs->player.x * TILE_SIZE + 8, gs->player.y * TILE_SIZE, combat_get_last_damage(), spawn_floating_text(gs, gs->player.x * TILE_SIZE + 8, gs->player.y * TILE_SIZE, combat_get_last_damage(),

View file

@ -52,4 +52,15 @@
#define PLAYER_BASE_DODGE 5 #define PLAYER_BASE_DODGE 5
#define PLAYER_BASE_BLOCK 0 #define PLAYER_BASE_BLOCK 0
// Screen shake
#define SHAKE_EFFECT_DURATION 4
#define SHAKE_PLAYER_DAMAGE_DURATION 8
#define SHAKE_MAX_OFFSET 4
// Floating text
#define FLOATING_TEXT_LIFETIME 60
// Message timer
#define MESSAGE_TIMER_DURATION 60
#endif // SETTINGS_H #endif // SETTINGS_H