Add base overlay

This commit is contained in:
2025-06-16 12:49:51 -05:00
parent 6c7faedd74
commit ba6ecf9006
10 changed files with 192 additions and 80 deletions

View File

@ -48,8 +48,33 @@ void drawOverworldDraw(void) {
uint8_t colorCount = sizeof(colors) / sizeof(Color);
do {
// Base layer
for(uint8_t i = 0; i < CHUNK_TILE_COUNT; i++) {
tile_t tile = chunk->tiles[i];
tile_t tile = chunk->tilesBase[i];
if(tile == 0) continue; // Skip empty tiles
uint32_t tilemapIndex = tile - 1; // Convert to zero-based index
uint32_t x = (uint32_t)chunk->x * CHUNK_WIDTH * TILE_WIDTH + (i % CHUNK_WIDTH) * TILE_WIDTH;
uint32_t y = (uint32_t)chunk->y * CHUNK_HEIGHT * TILE_HEIGHT + (i / CHUNK_WIDTH) * TILE_HEIGHT;
uint32_t tilemapX = (tilemapIndex % (RENDER_TILEMAP_TEXTURE.width / TILE_WIDTH)) * TILE_WIDTH;
uint32_t tilemapY = (tilemapIndex / (RENDER_TILEMAP_TEXTURE.width / TILE_WIDTH)) * TILE_HEIGHT;
DrawTextureRec(
RENDER_TILEMAP_TEXTURE,
(Rectangle){
tilemapX,
tilemapY,
TILE_WIDTH,
TILE_HEIGHT
},
(Vector2){ x, y },
WHITE
);
}
// Base overlay layer
for(uint8_t i = 0; i < CHUNK_TILE_COUNT; i++) {
tile_t tile = chunk->tilesBaseOverlay[i];
if(tile == 0) continue; // Skip empty tiles
uint32_t tilemapIndex = tile - 1; // Convert to zero-based index
@ -69,17 +94,8 @@ void drawOverworldDraw(void) {
(Vector2){ x, y },
WHITE
);
// DrawRectangle(x, y, TILE_WIDTH, TILE_HEIGHT, colors[tile % colorCount]);
}
// DrawRectangle(
// ((int32_t)chunk->x) * CHUNK_WIDTH * TILE_WIDTH,
// ((int32_t)chunk->y) * CHUNK_HEIGHT * TILE_HEIGHT,
// CHUNK_WIDTH * TILE_WIDTH,
// CHUNK_HEIGHT * TILE_HEIGHT,
// (chunk->tiles[0] == 0) ? RED : GREEN
// );
chunk++;
} while(chunk < CHUNK_MAP.chunks + CHUNK_MAP_COUNT);