Add object layer rendering

This commit is contained in:
2023-11-09 11:11:47 +01:00
parent 185c9ded6e
commit af3a911f88
3 changed files with 54 additions and 8 deletions

View File

@@ -25,11 +25,15 @@ typedef struct BzTileLayer {
f32 opacity;
i32 tilesetIdx;
void *userData;
} BzTileLayer;
typedef struct BzTileObject {
u32 id;
BzTileShape shape;
void *userData;
} BzTileObject;
typedef struct BzTileObjectLayer {
@@ -37,17 +41,22 @@ typedef struct BzTileObjectLayer {
i32 objectCount;
} BzTileObjectLayer;
// Return true, if it should be added to map
typedef bool BzTileLayerHandler(BzTileLayer *layer);
typedef bool BzTileObjectsHandler(BzTileObjectLayer *objectLayer);
// Return true, if you want to keep data allocated
typedef bool BzTileLayerFunc(BzTileLayer *layer);
typedef bool BzTileObjectsFunc(BzTileObjectLayer *objectLayer);
typedef void BzTileLayerRenderFunc(BzTileLayer *layer);
typedef void BzTileObjectsRenderFunc(BzTileObjectLayer *objectLayer);
typedef struct BzTileLayerDesc {
const char *name; // Matches map layer names
BzTileLayerHandler *handler;
BzTileLayerFunc *handler;
BzTileLayerRenderFunc *renderer;
} BzTileLayerDesc;
typedef struct BzTileObjectsDesc {
const char *name; // Matches map layer names
BzTileObjectsHandler *handler;
BzTileObjectsFunc *handler;
BzTileObjectsRenderFunc *renderer;
BzStringHashFunc *hashFunc;
} BzTileObjectsDesc;