rogged/src/render.h
A.M. Rowsell 2500fffe84 font: squash commit into main
Squashed commit of the following:

commit a53942249c82ae8c17bd2f89271430b16a0f9412
Author: A.M. Rowsell <amr@frzn.dev>
Date:   Thu Apr 9 23:59:13 2026 -0400

    font: extensive tweaks, looks much better

commit 64205e137c8e390f309b59c06f97cbdfd722adb0
Author: A.M. Rowsell <amr@frzn.dev>
Date:   Thu Apr 9 12:13:00 2026 -0400

    font: fully implemented font changes to UI, size/spacing need tweaking

commit 901f063696b37700065cc094f7bc22b040f6f682
Author: A.M. Rowsell <amr@frzn.dev>
Date:   Wed Apr 8 09:36:03 2026 -0400

    font: tweak sizes of stats

commit 20f8c71fdf49a2da357081889c46d011e08d0726
Author: A.M. Rowsell <amr@frzn.dev>
Date:   Wed Apr 8 09:28:22 2026 -0400

    render: implement experimental font change, needs work
2026-04-10 17:08:31 +00:00

112 lines
3.7 KiB
C

#ifndef RENDER_H
#define RENDER_H
#include "game_state.h"
// HUD colors
#define HUD_BG (Color){25, 20, 15, 255}
#define HUD_BORDER (Color){139, 119, 89, 255}
#define HUD_LIGHT_LINE (Color){60, 55, 50, 255}
#define HUD_DARK_LINE (Color){15, 12, 10, 255}
#define TEXT_DIM (Color){160, 150, 140, 255}
#define TEXT_BRIGHT (Color){240, 230, 220, 255}
// HP bar colors
#define HP_HIGH (Color){60, 180, 60, 255}
#define HP_MED (Color){200, 180, 40, 255}
#define HP_LOW (Color){200, 60, 60, 255}
#define HP_BAR_BG (Color){20, 15, 15, 255}
#define HP_BAR_BORDER (Color){80, 70, 60, 255}
// Enemy type colors
#define COLOR_ENEMY_GOBLIN (Color){150, 50, 50, 255}
#define COLOR_ENEMY_SKELETON (Color){200, 200, 200, 255}
#define COLOR_ENEMY_ORC (Color){50, 150, 50, 255}
// Item type colors
#define COLOR_ITEM_POTION (Color){255, 100, 100, 255}
#define COLOR_ITEM_WEAPON (Color){255, 255, 100, 255}
#define COLOR_ITEM_ARMOR (Color){100, 100, 255, 255}
// Action log colors
#define LOG_BG (Color){15, 12, 10, 230}
#define LOG_BORDER (Color){100, 85, 65, 255}
#define LOG_DARK (Color){60, 50, 40, 255}
#define LOG_TITLE_BG (Color){30, 25, 20, 255}
#define LOG_TEXT (Color){180, 160, 130, 255}
#define LOG_NEWEST (Color){220, 210, 200, 255}
#define LOG_RECENT (Color){180, 170, 160, 255}
#define LOG_OLDER (Color){150, 140, 130, 230}
#define LOG_OLDEST (Color){120, 110, 100, 200}
// Inventory overlay colors
#define INV_OVERLAY_BG (Color){12, 12, 12, 252}
#define INV_BORDER (Color){70, 70, 70, 255}
#define INV_SLOT_BG (Color){45, 45, 45, 255}
#define INV_SELECTED (Color){180, 160, 80, 255}
#define INV_EMPTY (Color){40, 40, 40, 255}
#define INV_HINT (Color){65, 65, 65, 255}
// Floating text colors
#define FLOAT_DAMAGE (Color){255, 100, 100, 255}
#define FLOAT_CRIT (Color){255, 200, 50, 255}
#define FLOAT_DODGE (Color){160, 160, 160, 255}
#define FLOAT_BLOCK (Color){80, 130, 220, 255}
#define FLOAT_SLAIN (Color){220, 50, 50, 255}
#define FLOAT_DEFAULT (Color){200, 200, 200, 255}
// Floating label font sizes
#define FONT_SIZE_FLOAT_LABEL 14
#define FONT_SIZE_FLOAT_CRIT 16
#define FONT_SIZE_FLOAT_DMG 18
// Message box colors
#define MSG_BG (Color){45, 45, 45, 235}
#define MSG_BORDER (Color){180, 180, 180, 255}
// End screen colors
#define END_OVERLAY (Color){0, 0, 0, 210}
#define END_BOX_BG (Color){20, 20, 20, 240}
#define END_BOX_BORDER (Color){100, 100, 100, 255}
#define END_SEED (Color){150, 200, 255, 255}
// Portrait placeholder
// FIXME: remove when player sprites are available
#define PORTRAIT_BG (Color){30, 30, 45, 255}
// Render the map tiles
void render_map(const Map *map);
// Render the player
void render_player(const Player *p);
// Render all enemies
void render_enemies(const Enemy *enemies, int count, const unsigned char visible[MAP_HEIGHT][MAP_WIDTH]);
// Render all items
void render_items(const Item *items, int count, const unsigned char visible[MAP_HEIGHT][MAP_WIDTH]);
// Render UI overlay
void render_ui(const Player *p, Font *font);
// Render action log (bottom left corner)
void render_action_log(const char log[5][128], int count, int head, Font *font);
// Render inventory selection overlay
void render_inventory_overlay(const Player *p, int selected, Font *font);
// Render floating damage text
void render_floating_texts(FloatingText *texts, int count, int shake_x, int shake_y);
// Render end screen (victory or death) with stats breakdown
void render_end_screen(int is_victory, int kills, int items, int damage_dealt, int damage_taken, int crits,
int times_hit, int potions, int floors, int turns, int score, unsigned int seed, Font *font);
// Render a message popup
void render_message(const char *message, Font *font);
// Render seed display at top right of screen
void render_seed_display(unsigned int seed);
#endif // RENDER_H