tileset: initial GPU texture atlas w/ procedural sprite painting
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I7b6991f7342362033ad72ab4700fdb9f6a6a6964
This commit is contained in:
parent
e00424a918
commit
ceb657add8
5 changed files with 1171 additions and 0 deletions
66
libs/tileset/tileset_paint.h
Normal file
66
libs/tileset/tileset_paint.h
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
#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
|
||||
Loading…
Add table
Add a link
Reference in a new issue