From afb402027ada72b41ce6ab29bfd7a6fa397621f8 Mon Sep 17 00:00:00 2001 From: "local-model/engine-L2-grok-4.5" Date: Sat, 19 Sep 2026 20:40:17 +0200 Subject: [PATCH] engine-c: denser BT_BASE HQ/hive/tower/courtyard/entry detail --- engine-c/src/snapshot.c | 33 +++++++++++++++++++++++++++++++++ engine-c/src/sprites.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/engine-c/src/snapshot.c b/engine-c/src/snapshot.c index 30de2ce..184b1ad 100644 --- a/engine-c/src/snapshot.c +++ b/engine-c/src/snapshot.c @@ -828,6 +828,22 @@ static void draw_bld(Building *b, int sx, int sy) { disc(sx + W - 10, sy + H/2 - 4, 3, lr, lg, lb); disc(sx + W/2 + 8, sy + 14, 2, 180, 70, 100); disc(sx + W/2 - 6, sy + H - 14, 2, 200, 80, 110); + /* densify++: resin seams + spore towers + brood nests + vein forks */ + fill_rect(sx + 18, sy + 16, 2, 8, 60, 25, 40); + fill_rect(sx + W - 20, sy + 16, 2, 8, 60, 25, 40); + fill_rect(sx + W/2 - 14, sy + H/2 + 2, 6, 2, 95, 40, 60); + fill_rect(sx + W/2 + 8, sy + H/2 + 2, 6, 2, 95, 40, 60); + fill_rect(sx + 11, sy + 30, 3, 5, 80, 35, 55); + fill_rect(sx + W - 14, sy + 30, 3, 5, 80, 35, 55); + fill_rect(sx + 26, sy + H - 14, 3, 3, 170, 55, 95); + fill_rect(sx + W - 29, sy + H - 14, 3, 3, 170, 55, 95); + fill_rect(sx + W/2 - 3, sy + 16, 6, 2, 130, 55, 75); + fill_rect(sx + 28, sy + 20, 2, 2, 200, 70, 100); + fill_rect(sx + W - 30, sy + 20, 2, 2, 200, 70, 100); + fill_rect(sx + W/2 + 4, sy + H - 12, 2, 3, 40, 20, 28); + fill_rect(sx + W/2 - 6, sy + H - 12, 2, 3, 40, 20, 28); + fill_rect(sx + 16, sy + H/2 - 4, 4, 2, lr, lg, lb); + fill_rect(sx + W - 20, sy + H/2 - 4, 4, 2, lr, lg, lb); } else { /* Survivors HQ densify: battlements + courtyard + flag + sandbags */ fill_rect(sx + 4, sy + 4, 14, 14, ok, og, ob); @@ -901,6 +917,23 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + W - 12, sy + 16, 2, 2, 110, 105, 90); fill_rect(sx + W/2 - 10, sy + H/2 + 6, 2, 2, 40, 200, 80); fill_rect(sx + W/2 + 8, sy + H/2 + 6, 2, 2, 200, 60, 40); + /* densify++: tower roofs + courtyard tiles + ramp + railings + crates */ + fill_rect(sx + 5, sy + 4, 12, 2, 85, 80, 65); + fill_rect(sx + W - 17, sy + 4, 12, 2, 85, 80, 65); + fill_rect(sx + 5, sy + H - 6, 12, 2, 85, 80, 65); + fill_rect(sx + W - 17, sy + H - 6, 12, 2, 85, 80, 65); + fill_rect(sx + 24, sy + 36, 3, 2, 110, 100, 80); + fill_rect(sx + W/2 - 6, sy + 36, 3, 2, 110, 100, 80); + fill_rect(sx + W - 28, sy + 36, 3, 2, 110, 100, 80); + fill_rect(sx + W/2 - 5, sy + H - 16, 10, 2, 55, 50, 42); + fill_rect(sx + W/2 - 7, sy + H - 18, 2, 4, 70, 65, 55); + fill_rect(sx + W/2 + 5, sy + H - 18, 2, 4, 70, 65, 55); + fill_rect(sx + 14, sy + H/2 - 2, 2, 6, 95, 90, 75); + fill_rect(sx + W - 16, sy + H/2 - 2, 2, 6, 95, 90, 75); + fill_rect(sx + 26, sy + H - 20, 3, 3, 140, 120, 90); + fill_rect(sx + W - 29, sy + H - 20, 3, 3, 140, 120, 90); + fill_rect(sx + W/2 - 16, sy + 10, 2, 2, 220, 200, 60); + fill_rect(sx + W/2 + 10, sy + 4, 3, 2, 100, 140, 180); } break; case BT_WARFACTORY: diff --git a/engine-c/src/sprites.c b/engine-c/src/sprites.c index 83a2d23..69529b4 100644 --- a/engine-c/src/sprites.c +++ b/engine-c/src/sprites.c @@ -638,6 +638,22 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { disc(s, W - 10, H/2 - 4, 3, lite.r, lite.g, lite.b, 255); disc(s, W/2 + 8, 14, 2, 180, 70, 100, 255); disc(s, W/2 - 6, H - 14, 2, 200, 80, 110, 255); + /* densify++: resin seams + spore towers + brood nests + vein forks */ + fill_rect(s, 18, 16, 2, 8, 60, 25, 40, 255); + fill_rect(s, W - 20, 16, 2, 8, 60, 25, 40, 255); + fill_rect(s, W/2 - 14, H/2 + 2, 6, 2, 95, 40, 60, 255); + fill_rect(s, W/2 + 8, H/2 + 2, 6, 2, 95, 40, 60, 255); + fill_rect(s, 11, 30, 3, 5, 80, 35, 55, 255); + fill_rect(s, W - 14, 30, 3, 5, 80, 35, 55, 255); + fill_rect(s, 26, H - 14, 3, 3, 170, 55, 95, 255); + fill_rect(s, W - 29, H - 14, 3, 3, 170, 55, 95, 255); + fill_rect(s, W/2 - 3, 16, 6, 2, 130, 55, 75, 255); + fill_rect(s, 28, 20, 2, 2, 200, 70, 100, 255); + fill_rect(s, W - 30, 20, 2, 2, 200, 70, 100, 255); + fill_rect(s, W/2 + 4, H - 12, 2, 3, 40, 20, 28, 255); + fill_rect(s, W/2 - 6, H - 12, 2, 3, 40, 20, 28, 255); + fill_rect(s, 16, H/2 - 4, 4, 2, lite.r, lite.g, lite.b, 255); + fill_rect(s, W - 20, H/2 - 4, 4, 2, lite.r, lite.g, lite.b, 255); } else { /* Survivors HQ densify: battlements + courtyard + flag + sandbags */ fill_rect(s, 4, 4, 14, 14, ok, og, ob, 255); @@ -711,6 +727,23 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, W - 12, 16, 2, 2, 110, 105, 90, 255); fill_rect(s, W/2 - 10, H/2 + 6, 2, 2, 40, 200, 80, 255); fill_rect(s, W/2 + 8, H/2 + 6, 2, 2, 200, 60, 40, 255); + /* densify++: tower roofs + courtyard tiles + ramp + railings + crates */ + fill_rect(s, 5, 4, 12, 2, 85, 80, 65, 255); + fill_rect(s, W - 17, 4, 12, 2, 85, 80, 65, 255); + fill_rect(s, 5, H - 6, 12, 2, 85, 80, 65, 255); + fill_rect(s, W - 17, H - 6, 12, 2, 85, 80, 65, 255); + fill_rect(s, 24, 36, 3, 2, 110, 100, 80, 255); + fill_rect(s, W/2 - 6, 36, 3, 2, 110, 100, 80, 255); + fill_rect(s, W - 28, 36, 3, 2, 110, 100, 80, 255); + fill_rect(s, W/2 - 5, H - 16, 10, 2, 55, 50, 42, 255); + fill_rect(s, W/2 - 7, H - 18, 2, 4, 70, 65, 55, 255); + fill_rect(s, W/2 + 5, H - 18, 2, 4, 70, 65, 55, 255); + fill_rect(s, 14, H/2 - 2, 2, 6, 95, 90, 75, 255); + fill_rect(s, W - 16, H/2 - 2, 2, 6, 95, 90, 75, 255); + fill_rect(s, 26, H - 20, 3, 3, 140, 120, 90, 255); + fill_rect(s, W - 29, H - 20, 3, 3, 140, 120, 90, 255); + fill_rect(s, W/2 - 16, 10, 2, 2, 220, 200, 60, 255); + fill_rect(s, W/2 + 10, 4, 3, 2, 100, 140, 180, 255); } break; case BT_WARFACTORY: