summaryrefslogtreecommitdiff
path: root/world.c
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2023-10-14 00:20:50 -0500
committercitrons <citrons@mondecitronne.com>2023-10-14 00:20:50 -0500
commit0928b5cbbde02d4a6c58ca940040ae4a1c2ac2e4 (patch)
treec5725ba5dc07a810ed1e0e743658a1fd0d2c6e20 /world.c
parent55ea3a406e7232dc5848101dd806819e59df4cac (diff)
give the terrain a texture
Diffstat (limited to 'world.c')
-rw-r--r--world.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/world.c b/world.c
index 2ab924e..8899ff6 100644
--- a/world.c
+++ b/world.c
@@ -12,7 +12,7 @@ SDL_Color tile_colors[] = {
[TILE_BLUE] = {0x00, 0x00, 0xFF, 0xFF},
[TILE_LIGHT] = {0xFF, 0xFF, 0xFF, 0xFF},
[TILE_EMPTY] = {0x00, 0x00, 0x00, 0xFF},
- [TILE_WALL] = {0x50, 0x50, 0x50, 0xFF},
+ [TILE_WALL] = {0x40, 0x40, 0x40, 0xFF},
[TILE_BLOCK_WHITE] = {0x80, 0x80, 0x80, 0xFF},
};
@@ -79,14 +79,24 @@ SDL_Texture *render_chunk(SDL_Renderer *rend, chunk *c) {
SDL_assert(c->tex);
c->dirty = SDL_TRUE;
}
+
if (c->dirty) {
int pitch;
void *out;
SDL_assert(SDL_LockTexture(c->tex, NULL, &out, &pitch) >= 0);
SDL_Color *pixels = out;
- for (int i = 0; i < CHUNK_DIM * CHUNK_DIM; i++)
- pixels[i] = tile_colors[c->tiles[i]];
+ for (int i = 0; i < CHUNK_DIM * CHUNK_DIM; i++) {
+ tile t = c->tiles[i];
+ SDL_Color color = tile_colors[t];
+ if (t == TILE_WALL) {
+ int variance = hash(i) % 5;
+ color.r += variance;
+ color.g += variance;
+ color.b += variance;
+ }
+ pixels[i] = color;
+ }
SDL_UnlockTexture(c->tex);
c->dirty = SDL_FALSE;