#ifndef TILESET_PAINT_H #define TILESET_PAINT_H #include "tileset.h" // Forward declarations for types used in painting typedef enum { ENEMY_GOBLIN_FWD, ENEMY_SKELETON_FWD, ENEMY_ORC_FWD } EnemyType_Paint; typedef enum { ITEM_POTION_FWD, ITEM_WEAPON_FWD, ITEM_ARMOR_FWD } ItemType_Paint; // Paint a wall tile with brick-like pattern. // variant: 0 or 1 for shade variation. void paint_wall_tile(Tileset *ts, int id, int variant); // Paint a floor tile with stone/dithered pattern. // variant: 0-3 for different noise patterns. void paint_floor_tile(Tileset *ts, int id, int variant); // Paint a stairs tile with depth illusion. void paint_stairs_tile(Tileset *ts, int id); // Paint the player sprite (adventurer silhouette). void paint_player_tile(Tileset *ts, int id); // Paint a player walking animation frame. // frame: 0 or 1 for the two walk frames. void paint_player_walk_tile(Tileset *ts, int id, int frame); // Paint a player attacking animation frame. void paint_player_attack_tile(Tileset *ts, int id); // Paint an enemy sprite based on type. void paint_enemy_tile(Tileset *ts, int id, int enemy_type); // Paint an enemy walking animation frame. // frame: 0 or 1 for the two walk frames. void paint_enemy_walk_tile(Tileset *ts, int id, int enemy_type, int frame); // Paint an enemy attacking animation frame. void paint_enemy_attack_tile(Tileset *ts, int id, int enemy_type); // Paint an item sprite based on type. void paint_item_tile(Tileset *ts, int id, int item_type); // Paint a closed door tile. void paint_door_closed_tile(Tileset *ts, int id); // Paint an open door tile. void paint_door_open_tile(Tileset *ts, int id); // Paint a burning/fire effect sprite. void paint_effect_burn_tile(Tileset *ts, int id); // Paint a poison effect sprite. void paint_effect_poison_tile(Tileset *ts, int id); // Paint a block/shield effect sprite. void paint_effect_block_tile(Tileset *ts, int id); // Paint a slash attack effect sprite. void paint_slash_effect_tile(Tileset *ts, int id); // Convenience: paint and register all tiles in one call. // Returns 0 on failure, non-zero on success. int tileset_paint_all(Tileset *ts); #endif // TILESET_PAINT_H