From b5a89c9b47b55607d252e69b81f3a784a33b889b Mon Sep 17 00:00:00 2001 From: "local-model/engine-L2-grok-4.5" Date: Sat, 19 Sep 2026 10:04:41 +0200 Subject: [PATCH] engine-c: arid KKND2-like showcase shot + kitchen claim DONE --- engine-c/build.sh | 18 +- engine-c/include/kknd.h | 5 +- engine-c/include/unit_card.h | 6 +- engine-c/openkknd | Bin 120544 -> 193400 bytes engine-c/shot_0001.png | Bin 9770 -> 38904 bytes engine-c/src/engine.c | 224 ++++++++++++++- engine-c/src/main.c | 39 ++- engine-c/src/snapshot.c | 525 ++++++++++++++++++++++++++++++----- engine-c/src/unit_card.c | 1 - kitchen/AGENT_LOG.md | 3 + kitchen/COLLAB-SIGNUP.md | 2 +- 11 files changed, 739 insertions(+), 84 deletions(-) diff --git a/engine-c/build.sh b/engine-c/build.sh index f523dab..402e644 100755 --- a/engine-c/build.sh +++ b/engine-c/build.sh @@ -10,13 +10,27 @@ SRCS="src/unit_card.c src/rng.c src/config.c src/png.c src/snapshot.c src/map.c src/units.c src/buildings.c src/projectiles.c src/render.c \ src/input.c src/ai.c src/audio.c src/save.c src/engine.c src/main.c" -LIBS=$(pkg-config --cflags --libs sdl2 SDL2_ttf 2>/dev/null) +# Homebrew (macOS arm64/x86) often has .pc files that pkg-config misses without PATH. +if [ -d /opt/homebrew/lib/pkgconfig ]; then + export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" +elif [ -d /usr/local/lib/pkgconfig ]; then + export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" +fi + +LIBS=$(pkg-config --cflags --libs sdl2 SDL2_ttf 2>/dev/null || true) if [ -z "$LIBS" ]; then - LIBS="-lSDL2 -lSDL2_ttf" + if [ -d /opt/homebrew/include ]; then + LIBS="-I/opt/homebrew/include -L/opt/homebrew/lib -lSDL2 -lSDL2_ttf" + elif [ -d /usr/local/include ]; then + LIBS="-I/usr/local/include -L/usr/local/lib -lSDL2 -lSDL2_ttf" + else + LIBS="-lSDL2 -lSDL2_ttf" + fi fi LIBS="$LIBS -lz" echo "openkknd: compiling..." +# shellcheck disable=SC2086 $CC $CFLAGS $SRCS -o openkknd $LIBS -lm echo "openkknd: built -> ./openkknd" echo "usage: ./openkknd [--easy|--normal|--hard] [--load savegame.kknd]" diff --git a/engine-c/include/kknd.h b/engine-c/include/kknd.h index f0702a4..8ec139b 100644 --- a/engine-c/include/kknd.h +++ b/engine-c/include/kknd.h @@ -19,8 +19,11 @@ #include #include -#include #include +/* SDL_image is optional; engine uses procedural sprites + custom PNG writer. */ +#if defined(KKND_HAVE_SDL_IMAGE) && KKND_HAVE_SDL_IMAGE +#include +#endif #include "unit_card.h" diff --git a/engine-c/include/unit_card.h b/engine-c/include/unit_card.h index 6864033..e26a64f 100644 --- a/engine-c/include/unit_card.h +++ b/engine-c/include/unit_card.h @@ -2,7 +2,7 @@ // Header file for unit card implementation #include -#include +#include typedef struct { char name[32]; @@ -33,8 +33,8 @@ typedef struct { #define UNIT_SPECIAL 3 #define UNIT_ALL 0 -// Flag for SIMD instructions -#define HAVE_AVX2 1 +/* Scalar batch helpers in unit_card.c; no AVX2 dependency. */ +#define HAVE_AVX2 0 #ifdef __cplusplus extern "C" { diff --git a/engine-c/openkknd b/engine-c/openkknd index 6cac52b7accf23836d1075a61681d30bbe633cb8..9d27bd42d24f61ca1194cf4735cd87e01a9dcc5a 100755 GIT binary patch literal 193400 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 diff --git a/engine-c/shot_0001.png b/engine-c/shot_0001.png index e2a3b6a3d5088a30ae84c0b3459de996394ef855..5b7746cf0db5c343204d8d9fd042b6378e81367e 100644 GIT binary patch literal 38904 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

^GiW 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 RJfYg}U;V@Hj)f~T{ts?OmBj!6 literal 9770 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 DPqP;! diff --git a/engine-c/src/engine.c b/engine-c/src/engine.c index 41d5cdd..0b96dc9 100644 --- a/engine-c/src/engine.c +++ b/engine-c/src/engine.c @@ -57,6 +57,15 @@ void engine_shutdown(Game *g) { map_free(&g->map); } +static void bld_force_complete(Game *g) { + for (int i = 0; i < g->bld_count; i++) { + Building *b = &g->buildings[i]; + if (b->dead) continue; + b->build = 1.0f; + b->hp = b->max_hp; + } +} + static void place_start(Game *g, Faction f) { int sx = g->map.spawn_x[f], sy = g->map.spawn_y[f]; int bx = sx - 1, by = sy - 1; @@ -71,12 +80,216 @@ static void place_start(Game *g, Faction f) { unit_spawn(g, UT_HARVESTER, f, wx + (i*24-12), wy + 30); /* starting infantry */ for (int i = 0; i < 4; i++) - unit_spawn(g, (f==FACTION_SURVIVOR?UT_INFANTRY:UT_INFANTRY), f, - wx - 40 + i*20, wy - 20); + unit_spawn(g, UT_INFANTRY, f, wx - 40 + i*20, wy - 20); /* a couple of buggies */ for (int i = 0; i < 2; i++) - unit_spawn(g, (f==FACTION_SURVIVOR?UT_BUGGY:UT_BUGGY), f, - wx - 30 + i*30, wy - 40); + unit_spawn(g, UT_BUGGY, f, wx - 30 + i*30, wy - 40); +} + +/* KKND2-like showcase: extra human base structures + diverse roster + + * enemy raid pack near the camera so fog/snapshot show combat. */ +static void place_showcase(Game *g, Faction human, Faction enemy) { + int sx = g->map.spawn_x[human], sy = g->map.spawn_y[human]; + float wx, wy; map_tile_to_world(sx, sy, &wx, &wy); + + /* extra structures in the cleared spawn pad (±8) */ + bld_spawn(g, BT_REPAIR, human, sx - 4, sy - 1); + bld_spawn(g, BT_RESEARCH, human, sx - 4, sy + 2); + bld_spawn(g, BT_POWER, human, sx + 3, sy + 2); + bld_spawn(g, BT_POWER, human, sx + 5, sy + 2); + bld_spawn(g, BT_WARFACTORY, human, sx + 3, sy - 4); + + /* turrets covering approaches */ + bld_spawn(g, BT_TURRET, human, sx - 2, sy - 3); + bld_spawn(g, BT_TURRET, human, sx + 1, sy - 3); + bld_spawn(g, BT_TURRET, human, sx + 4, sy); + bld_spawn(g, BT_TURRET, human, sx + 4, sy + 2); + bld_spawn(g, BT_TURRET, human, sx - 2, sy + 4); + bld_spawn(g, BT_TURRET, human, sx + 2, sy + 4); + bld_spawn(g, BT_TURRET, human, sx - 4, sy); + + /* blast-wall spur (north + west + east stub) */ + for (int dx = -3; dx <= 3; dx++) { + if (dx >= -1 && dx <= 1) continue; /* gate */ + bld_spawn(g, BT_WALL, human, sx + dx, sy - 4); + } + for (int dy = -3; dy <= 3; dy++) { + if (dy >= -1 && dy <= 1) continue; + bld_spawn(g, BT_WALL, human, sx - 5, sy + dy); + } + for (int dy = -2; dy <= 2; dy++) { + if (dy == 0) continue; + bld_spawn(g, BT_WALL, human, sx + 6, sy + dy); + } + + /* dense Survivor battle line NE of HQ (tight combat camera) */ + unit_spawn(g, UT_TANK, human, wx + 48, wy - 8); + unit_spawn(g, UT_TANK, human, wx + 68, wy + 8); + unit_spawn(g, UT_TANK, human, wx + 82, wy - 38); + unit_spawn(g, UT_TANK, human, wx + 58, wy - 48); + unit_spawn(g, UT_RAVAGER, human, wx + 92, wy - 22); + unit_spawn(g, UT_RAVAGER, human, wx + 78, wy - 58); + unit_spawn(g, UT_ARTILLERY, human, wx + 18, wy + 48); + unit_spawn(g, UT_ARTILLERY, human, wx + 38, wy + 62); + unit_spawn(g, UT_FLAME, human, wx - 40, wy + 12); + unit_spawn(g, UT_FLAME, human, wx + 105, wy - 5); + unit_spawn(g, UT_MISSILE, human, wx - 55, wy - 8); + unit_spawn(g, UT_MISSILE, human, wx + 110, wy - 40); + unit_spawn(g, UT_JEEP, human, wx + 32, wy - 52); + unit_spawn(g, UT_JEEP, human, wx + 48, wy - 68); + unit_spawn(g, UT_BUGGY, human, wx + 55, wy - 78); + unit_spawn(g, UT_BUGGY, human, wx + 72, wy - 72); + unit_spawn(g, UT_MEDIC, human, wx - 12, wy + 40); + unit_spawn(g, UT_MEDIC, human, wx + 20, wy + 28); + for (int i = 0; i < 10; i++) + unit_spawn(g, UT_INFANTRY, human, wx + 88 + (i % 5) * 14, wy + 8 + (i / 5) * 16); + + /* Evolved raid pack — close NE, overlapping Survivor line */ + float rx = wx + 88.0f, ry = wy - 48.0f; + + /* forward fortifications at the clash so a tight combat crop still shows buildings */ + { + int ftx, fty; + map_world_to_tile(rx, ry, &ftx, &fty); + bld_spawn(g, BT_TURRET, human, ftx - 2, fty + 1); + bld_spawn(g, BT_TURRET, human, ftx + 1, fty + 2); + bld_spawn(g, BT_TURRET, human, ftx - 1, fty - 2); + bld_spawn(g, BT_TURRET, human, ftx + 2, fty - 1); + bld_spawn(g, BT_WALL, human, ftx - 3, fty); + bld_spawn(g, BT_WALL, human, ftx - 3, fty + 1); + bld_spawn(g, BT_WALL, human, ftx - 3, fty - 1); + bld_spawn(g, BT_WALL, human, ftx + 2, fty + 1); + bld_spawn(g, BT_WALL, human, ftx + 2, fty); + bld_spawn(g, BT_WALL, human, ftx + 3, fty - 1); + bld_spawn(g, BT_POWER, human, ftx - 4, fty + 2); + bld_force_complete(g); /* complete any partial builds from spawn */ + } + + /* denser clash scars: road core + rubble ring + scrap flecks (arid fight plate) */ + { + int ctx, cty; + map_world_to_tile(rx, ry, &ctx, &cty); + for (int dy = -6; dy <= 6; dy++) { + for (int dx = -7; dx <= 7; dx++) { + int tx = ctx + dx, ty = cty + dy; + if (!map_in_bounds(&g->map, tx, ty)) continue; + Tile *t = map_tile(&g->map, tx, ty); + if (!t || !t->walkable) continue; + int d2 = dx * dx + dy * dy; + if (d2 <= 3) { + t->terrain = T_ROAD; + t->scrap = 0; + } else if (d2 <= 12) { + t->terrain = T_RUBBLE; + t->scrap = 0; + } else if (d2 <= 28 && ((dx + dy * 3) & 3) == 0) { + t->terrain = T_SCRAP; + t->scrap = (uint8_t)(90 + ((dx * 13 + dy * 7) & 127)); + } else if (d2 <= 32 && ((dx * 5 + dy) & 2) == 0) { + t->terrain = T_RUBBLE; + t->scrap = 0; + } + } + } + /* approach road from HQ toward clash */ + int hx_t = sx, hy_t = sy; + int steps = abs(ctx - hx_t) + abs(cty - hy_t); + if (steps < 1) steps = 1; + for (int s = 0; s <= steps; s++) { + int tx = hx_t + (ctx - hx_t) * s / steps; + int ty = hy_t + (cty - hy_t) * s / steps; + if (!map_in_bounds(&g->map, tx, ty)) continue; + Tile *t = map_tile(&g->map, tx, ty); + if (!t || !t->walkable) continue; + t->terrain = T_ROAD; + t->scrap = 0; + } + } + + int raid[40]; + int rn = 0; + for (int i = 0; i < 8; i++) + raid[rn++] = unit_spawn(g, UT_MUTANT, enemy, + rx + (i % 4) * 18 - 10, ry + (i / 4) * 16 - 8); + for (int i = 0; i < 4; i++) + raid[rn++] = unit_spawn(g, UT_BEAST, enemy, rx + 30 + i * 16, ry - 14 + (i & 1) * 18); + raid[rn++] = unit_spawn(g, UT_BUGGY, enemy, rx + 8, ry - 28); + raid[rn++] = unit_spawn(g, UT_BUGGY, enemy, rx + 28, ry - 34); + raid[rn++] = unit_spawn(g, UT_BUGGY, enemy, rx + 48, ry - 22); + raid[rn++] = unit_spawn(g, UT_TANK, enemy, rx + 52, ry + 4); + raid[rn++] = unit_spawn(g, UT_TANK, enemy, rx + 68, ry - 12); + raid[rn++] = unit_spawn(g, UT_FLAME, enemy, rx + 22, ry + 28); + raid[rn++] = unit_spawn(g, UT_FLAME, enemy, rx + 40, ry + 34); + raid[rn++] = unit_spawn(g, UT_MISSILE, enemy, rx + 62, ry - 28); + raid[rn++] = unit_spawn(g, UT_MISSILE, enemy, rx + 78, ry - 8); + raid[rn++] = unit_spawn(g, UT_ARTILLERY, enemy, rx + 85, ry + 10); + for (int i = 0; i < 8; i++) + raid[rn++] = unit_spawn(g, UT_INFANTRY, enemy, + rx - 28 + (i % 4) * 14, ry - 8 + (i / 4) * 14); + + /* pre-damage for HP-bar variety (sim may add more) */ + for (int i = 0; i < g->unit_count; i++) { + Unit *u = &g->units[i]; + if (u->dead || u->max_hp <= 0) continue; + float dx = u->x - rx, dy = u->y - ry; + if (dx * dx + dy * dy > 140.0f * 140.0f) continue; + float f = 0.35f + 0.45f * ((i * 17) % 100) / 100.0f; + u->hp = u->max_hp * f; + } + + /* FX seeds at the clash locus */ + particle_burst(g, rx, ry, 28, 1, 255, 140, 40); + particle_burst(g, rx + 20, ry - 10, 18, 0, 90, 90, 90); + particle_burst(g, rx - 15, ry + 12, 22, 2, 255, 220, 80); + particle_burst(g, rx + 40, ry + 5, 14, 1, 255, 100, 30); + particle_burst(g, rx + 10, ry - 25, 16, 3, 80, 70, 60); + + /* point raid at nearest human combat units / HQ */ + int hq = -1; + for (int i = 0; i < g->bld_count; i++) + if (!g->buildings[i].dead && g->buildings[i].faction == human + && g->buildings[i].type == BT_BASE) { hq = i; break; } + int prey = -1; + for (int i = 0; i < g->unit_count; i++) { + Unit *u = &g->units[i]; + if (u->dead || u->faction != human) continue; + if (u->type == UT_HARVESTER || u->type == UT_MEDIC) continue; + prey = i; break; + } + for (int i = 0; i < rn; i++) { + if (raid[i] < 0) continue; + if (prey >= 0) unit_issue_attack_unit(g, raid[i], prey); + else if (hq >= 0) unit_issue_attack_bld(g, raid[i], hq); + } + + /* human combat units engage nearest raiders (spread targets) */ + int ridx = 0; + for (int i = 0; i < g->unit_count; i++) { + Unit *u = &g->units[i]; + if (u->dead || u->faction != human) continue; + if (u->type == UT_HARVESTER || u->type == UT_MEDIC) continue; + float dx = u->x - rx, dy = u->y - ry; + if (dx * dx + dy * dy > 220.0f * 220.0f) continue; + int tgt = -1; + for (int k = 0; k < rn; k++) { + int ri = raid[(ridx + k) % rn]; + if (ri >= 0 && !g->units[ri].dead) { tgt = ri; ridx += k + 1; break; } + } + if (tgt >= 0) unit_issue_attack_unit(g, i, tgt); + } + + /* select a front-line squad for yellow selection boxes in the shot */ + unit_clear_selection(g); + int nsel = 0; + for (int i = 0; i < g->unit_count && nsel < 8; i++) { + Unit *u = &g->units[i]; + if (u->dead || u->faction != human) continue; + if (u->type == UT_HARVESTER || u->type == UT_MEDIC) continue; + float dx = u->x - rx, dy = u->y - ry; + if (dx * dx + dy * dy > 120.0f * 120.0f) continue; + unit_select_single(g, i, 1); + nsel++; + } } void engine_setup_match(Game *g, int mission_id) { @@ -116,6 +329,8 @@ void engine_setup_match(Game *g, int mission_id) { place_start(g, g->human); place_start(g, enemy); + place_showcase(g, g->human, enemy); + bld_force_complete(g); /* fortress theme: wall the enemy base (leave a gate on the far edge) */ if (m->map_style == 3) { @@ -127,6 +342,7 @@ void engine_setup_match(Game *g, int mission_id) { if (dy == 4) continue; /* gate on the far edge */ bld_spawn(g, BT_WALL, enemy, sx + dx, sy + dy); } + bld_force_complete(g); } /* centre camera on player base */ diff --git a/engine-c/src/main.c b/engine-c/src/main.c index 5c42a88..1fb1a94 100644 --- a/engine-c/src/main.c +++ b/engine-c/src/main.c @@ -118,11 +118,48 @@ int main(int argc, char **argv) { * draw the world to an RGBA buffer with the software renderer and save a * PNG. Avoids the broken GPU readback on this box entirely. */ if (shot_mode) { - float pre = 8.0f; + /* Mid-fight default: short so the raid pack is still dense in-frame + * (env KKND_SHOT_T overrides; 3.5s emptied the clash before). */ + float pre = 1.0f; if (getenv("KKND_SHOT_T")) pre = (float)atof(getenv("KKND_SHOT_T")); float hdt = 1.0f / 30.0f; int steps = (int)(pre / hdt); for (int i = 0; i < steps; i++) engine_update(g, hdt); + /* Particle life is short (~0.5–1.2s); reseed FX at the live clash so + * the PNG shows explosions/smoke instead of a quiet mid-fight plate. */ + { + /* FX at raid clash near human HQ (ignore far-base garrison). */ + float hx = 0, hy = 0; + { + int sx = g->map.spawn_x[g->human], sy = g->map.spawn_y[g->human]; + map_tile_to_world(sx, sy, &hx, &hy); + } + float clash_x = hx + 88.0f, clash_y = hy - 48.0f; + float cx = 0, cy = 0; + int n = 0; + const float r2 = 220.0f * 220.0f; + for (int i = 0; i < g->unit_count; i++) { + Unit *u = &g->units[i]; + if (u->dead || u->faction == g->human) continue; + float dx = u->x - clash_x, dy = u->y - clash_y; + if (dx * dx + dy * dy > r2) continue; + cx += u->x; cy += u->y; n++; + } + if (n > 0) { cx /= n; cy /= n; } + else { cx = clash_x; cy = clash_y; } + particle_burst(g, cx, cy, 56, 1, 255, 140, 40); + particle_burst(g, cx + 22, cy - 12, 36, 0, 110, 100, 90); + particle_burst(g, cx - 18, cy + 14, 40, 2, 255, 230, 90); + particle_burst(g, cx + 36, cy + 8, 30, 1, 255, 90, 30); + particle_burst(g, cx - 8, cy - 28, 32, 3, 95, 80, 65); + particle_burst(g, cx + 12, cy + 30, 28, 1, 255, 170, 55); + particle_burst(g, cx - 30, cy - 6, 26, 1, 255, 120, 40); + particle_burst(g, cx + 28, cy + 22, 24, 2, 255, 210, 80); + particle_burst(g, cx - 40, cy + 18, 22, 1, 255, 100, 35); + particle_burst(g, cx + 44, cy - 16, 20, 2, 255, 240, 100); + particle_burst(g, cx + 8, cy - 40, 18, 1, 255, 150, 45); + particle_burst(g, cx - 22, cy + 36, 18, 0, 120, 110, 95); + } char path[64]; snprintf(path, sizeof path, "shot_%04d.png", 1); snapshot_capture(g, path); engine_log("snapshot -> %s", path); diff --git a/engine-c/src/snapshot.c b/engine-c/src/snapshot.c index 9ac211d..f48cc75 100644 --- a/engine-c/src/snapshot.c +++ b/engine-c/src/snapshot.c @@ -2,20 +2,36 @@ * Software snapshot renderer - draws the game world into an RGBA buffer using * only primitive shapes (no SDL gpu readback, which is broken on this box due * to an SDL2/SDL3 conflict). Output is saved as PNG via png_save(). + * Type-aware silhouettes mirror sprites.c so shot_*.png shows KKND2-like + * unit/building variety (not generic discs/rects). */ #include "kknd.h" #define SW VIEW_W #define SH VIEW_H +/* Internal render size (pre-upscale). Zoom 2 → ~640×360 world crop, then NN→1280×720. + * Wider crop keeps HQ + clash readable; bright fill + black outline does the rest. */ +#define SHOT_ZOOM 2 +/* Extra silhouette scale inside the shot crop (1.0 = sprites.c size). */ +#define SHOT_UNIT_SCALE 1.45f static uint8_t *g_buf; +static int g_sw = SW, g_sh = SH; static void px(int x, int y, uint8_t r, uint8_t g, uint8_t b) { - if (x < 0 || y < 0 || x >= SW || y >= SH) return; - int i = (y * SW + x) * 4; + if (x < 0 || y < 0 || x >= g_sw || y >= g_sh) return; + int i = (y * g_sw + x) * 4; g_buf[i] = r; g_buf[i+1] = g; g_buf[i+2] = b; g_buf[i+3] = 255; } +static void darken_px(int x, int y, float keep) { + if (x < 0 || y < 0 || x >= g_sw || y >= g_sh) return; + int i = (y * g_sw + x) * 4; + g_buf[i] = (uint8_t)(g_buf[i] * keep); + g_buf[i+1] = (uint8_t)(g_buf[i+1] * keep); + g_buf[i+2] = (uint8_t)(g_buf[i+2] * keep); +} + static void rectf(int x0, int y0, int x1, int y1, uint8_t r, uint8_t g, uint8_t b) { if (x0 > x1) { int t = x0; x0 = x1; x1 = t; } if (y0 > y1) { int t = y0; y0 = y1; y1 = t; } @@ -24,70 +40,414 @@ static void rectf(int x0, int y0, int x1, int y1, uint8_t r, uint8_t g, uint8_t px(x, y, r, g, b); } +static void fill_rect(int x, int y, int w, int h, uint8_t r, uint8_t g, uint8_t b) { + if (w <= 0 || h <= 0) return; + rectf(x, y, x + w - 1, y + h - 1, r, g, b); +} + static void disc(int cx, int cy, int rad, uint8_t r, uint8_t g, uint8_t b) { for (int y = -rad; y <= rad; y++) for (int x = -rad; x <= rad; x++) if (x*x + y*y <= rad*rad) px(cx+x, cy+y, r, g, b); } -static uint8_t faction_r(Faction f){ return f==FACTION_SURVIVOR?70 : f==FACTION_EVOLVED?200 : 230; } -static uint8_t faction_g(Faction f){ return f==FACTION_SURVIVOR?180: f==FACTION_EVOLVED?70 : 60; } -static uint8_t faction_b(Faction f){ return f==FACTION_SURVIVOR?90 : f==FACTION_EVOLVED?210 : 230; } +static void ring(int cx, int cy, int rad, int t, uint8_t r, uint8_t g, uint8_t b) { + int inner = rad - t; + if (inner < 0) inner = 0; + for (int y = -rad; y <= rad; y++) + for (int x = -rad; x <= rad; x++) { + int d = x*x + y*y; + if (d <= rad*rad && d >= inner*inner) px(cx+x, cy+y, r, g, b); + } +} -static void terrain_color(TerrainType t, uint8_t *r, uint8_t *g, uint8_t *b) { - switch (t) { - case T_GRASS: *r=46; *g=92; *b=46; break; - case T_ROAD: *r=90; *g=90; *b=80; break; - case T_RUBBLE:*r=80; *g=72; *b=64; break; - case T_ROCK: *r=80; *g=80; *b=86; break; - case T_WATER: *r=40; *g=60; *b=120; break; - case T_SCRAP: *r=70; *g=64; *b=40; break; - default: *r=50; *g=50; *b=50; break; +static void line(int x0, int y0, int x1, int y1, uint8_t r, uint8_t g, uint8_t b) { + int dx = abs(x1 - x0), dy = -abs(y1 - y0); + int sx = x0 < x1 ? 1 : -1, sy = y0 < y1 ? 1 : -1; + int err = dx + dy; + for (;;) { + px(x0, y0, r, g, b); + if (x0 == x1 && y0 == y1) break; + int e2 = 2 * err; + if (e2 >= dy) { err += dy; x0 += sx; } + if (e2 <= dx) { err += dx; y0 += sy; } } } -void snapshot_capture(Game *g, const char *path) { - uint8_t *buf = (uint8_t *)malloc((size_t)SW * SH * 4); - if (!buf) return; - g_buf = buf; - for (int i = 0; i < SW*SH; i++) { buf[i*4]=0; buf[i*4+1]=0; buf[i*4+2]=0; buf[i*4+3]=255; } +/* Saturated faction paints — lime Survivors / hot magenta Evolved on bright sand. */ +static uint8_t faction_r(Faction f){ return f==FACTION_SURVIVOR?55 : f==FACTION_EVOLVED?255 : 240; } +static uint8_t faction_g(Faction f){ return f==FACTION_SURVIVOR?235: f==FACTION_EVOLVED?40 : 55; } +static uint8_t faction_b(Faction f){ return f==FACTION_SURVIVOR?55 : f==FACTION_EVOLVED?255 : 240; } - /* camera: centre on centroid of human units, else map centre */ - float cx = MAP_PIX_W/2, cy = MAP_PIX_H/2; - int nc = 0; - for (int i = 0; i < g->unit_count; i++) - if (!g->units[i].dead && g->units[i].faction == g->human) { cx += g->units[i].x; cy += g->units[i].y; nc++; } - if (nc) { cx /= nc; cy /= nc; } - float camx = cx - SW/2, camy = cy - SH/2; +static void darken3(uint8_t r, uint8_t g, uint8_t b, float f, + uint8_t *or, uint8_t *og, uint8_t *ob) { + *or = (uint8_t)(r * f); *og = (uint8_t)(g * f); *ob = (uint8_t)(b * f); +} +static void lighten3(uint8_t r, uint8_t g, uint8_t b, float f, + uint8_t *or, uint8_t *og, uint8_t *ob) { + *or = (uint8_t)(r + (255 - r) * f); + *og = (uint8_t)(g + (255 - g) * f); + *ob = (uint8_t)(b + (255 - b) * f); +} + +/* Classic KKND2 wasteland: yellow-tan sand (R>>B, G slightly under R). */ +static void terrain_color(TerrainType t, uint8_t *r, uint8_t *g, uint8_t *b) { + switch (t) { + case T_GRASS: *r=242; *g=198; *b=92; break; /* sunlit desert */ + case T_ROAD: *r=175; *g=148; *b=98; break; + case T_RUBBLE:*r=168; *g=138; *b=88; break; + case T_ROCK: *r=155; *g=142; *b=128; break; + case T_WATER: *r=72; *g=128; *b=178; break; + case T_SCRAP: *r=240; *g=190; *b=78; break; + default: *r=228; *g=188; *b=98; break; + } +} + +/* Classic RTS silhouette: thin black outline, then bright faction fill. + * Dark outer discs previously read as olive-mud blobs under NN zoom. */ +static void draw_unit(Unit *u, int sx, int sy) { + uint8_t br = faction_r(u->faction), bg = faction_g(u->faction), bb = faction_b(u->faction); + uint8_t lr, lg, lb; + lighten3(br, bg, bb, 0.45f, &lr, &lg, &lb); + uint8_t ok = 18, og = 16, ob = 14; /* near-black outline */ + uint8_t mr = 70, mg = 65, mb = 58; /* tyre */ + float c = cosf(u->heading), s = sinf(u->heading); + const float sc = SHOT_UNIT_SCALE; + #define SI(n) ((int)((n) * sc + 0.5f)) + #define LX(lx, ly) (sx + (int)((((lx)-15)*sc)*c - (((ly)-15)*sc)*s)) + #define LY(lx, ly) (sy + (int)((((lx)-15)*sc)*s + (((ly)-15)*sc)*c)) + + /* Ground shadow — depth cue so bodies don't melt into sand. */ + disc(sx + SI(2), sy + SI(3), SI(9), 55, 48, 28); + + switch (u->type) { + case UT_INFANTRY: + disc(sx, sy, SI(9), ok, og, ob); + disc(sx, sy, SI(7), br, bg, bb); + disc(LX(15,11), LY(15,11), SI(4), lr, lg, lb); + line(sx, sy, LX(15,1), LY(15,1), 40, 36, 30); + break; + case UT_BUGGY: + fill_rect(sx-SI(12), sy-SI(8), SI(24), SI(16), ok, og, ob); + fill_rect(sx-SI(10), sy-SI(6), SI(20), SI(12), br, bg, bb); + fill_rect(sx-SI(8), sy-SI(4), SI(16), SI(8), lr, lg, lb); + disc(LX(8,7), LY(8,7), SI(4), mr, mg, mb); + disc(LX(22,7), LY(22,7), SI(4), mr, mg, mb); + disc(LX(8,23), LY(8,23), SI(4), mr, mg, mb); + disc(LX(22,23), LY(22,23), SI(4), mr, mg, mb); + line(sx, sy, LX(29,15), LY(29,15), 40, 36, 30); + break; + case UT_TANK: + fill_rect(sx-SI(13), sy-SI(7), SI(26), SI(14), ok, og, ob); + fill_rect(sx-SI(11), sy-SI(5), SI(22), SI(10), br, bg, bb); + disc(sx, sy, SI(7), lr, lg, lb); + line(sx, sy, LX(30,15), LY(30,15), 50, 45, 35); + disc(LX(8,23), LY(8,23), SI(4), mr, mg, mb); + disc(LX(22,23), LY(22,23), SI(4), mr, mg, mb); + break; + case UT_ARTILLERY: + fill_rect(sx-SI(13), sy-SI(5), SI(26), SI(12), ok, og, ob); + fill_rect(sx-SI(11), sy-SI(3), SI(22), SI(8), br, bg, bb); + disc(sx, sy, SI(6), lr, lg, lb); + line(sx, sy, LX(3,3), LY(3,3), 50, 45, 35); + line(sx, sy, LX(27,27), LY(27,27), 50, 45, 35); + break; + case UT_HARVESTER: + fill_rect(sx-SI(14), sy-SI(9), SI(28), SI(18), ok, og, ob); + fill_rect(sx-SI(12), sy-SI(7), SI(24), SI(14), br, bg, bb); + fill_rect(sx-SI(10), sy-SI(5), SI(20), SI(10), 200, 170, 90); + disc(LX(8,23), LY(8,23), SI(4), mr, mg, mb); + disc(LX(22,23), LY(22,23), SI(4), mr, mg, mb); + line(LX(5,7), LY(5,7), LX(5,2), LY(5,2), lr, lg, lb); + break; + case UT_JEEP: + fill_rect(sx-SI(11), sy-SI(6), SI(22), SI(12), ok, og, ob); + fill_rect(sx-SI(9), sy-SI(4), SI(18), SI(8), br, bg, bb); + disc(LX(9,22), LY(9,22), SI(4), mr, mg, mb); + disc(LX(21,22), LY(21,22), SI(4), mr, mg, mb); + line(LX(15,11), LY(15,11), LX(15,3), LY(15,3), lr, lg, lb); + line(sx, sy, LX(28,15), LY(28,15), 50, 45, 35); + break; + case UT_MUTANT: + disc(sx, sy+SI(1), SI(10), ok, og, ob); + disc(sx, sy-SI(1), SI(8), br, bg, bb); + disc(LX(15,10), LY(15,10), SI(4), lr, lg, lb); + line(sx, sy+SI(1), LX(24,9), LY(24,9), 40, 36, 30); + break; + case UT_BEAST: + fill_rect(sx-SI(10), sy-SI(6), SI(20), SI(12), ok, og, ob); + fill_rect(sx-SI(8), sy-SI(4), SI(16), SI(8), br, bg, bb); + disc(LX(9,21), LY(9,21), SI(3), mr, mg, mb); + disc(LX(14,22), LY(14,22), SI(3), mr, mg, mb); + disc(LX(19,21), LY(19,21), SI(3), mr, mg, mb); + disc(LX(23,22), LY(23,22), SI(3), mr, mg, mb); + disc(LX(23,12), LY(23,12), SI(5), lr, lg, lb); + break; + case UT_RAVAGER: + fill_rect(sx-SI(15), sy-SI(8), SI(30), SI(16), ok, og, ob); + fill_rect(sx-SI(13), sy-SI(6), SI(26), SI(12), br, bg, bb); + disc(sx, sy, SI(8), lr, lg, lb); + line(sx, sy, LX(29,15), LY(29,15), 50, 45, 35); + disc(LX(7,23), LY(7,23), SI(4), mr, mg, mb); + disc(LX(23,23), LY(23,23), SI(4), mr, mg, mb); + break; + case UT_FLAME: + fill_rect(sx-SI(10), sy-SI(4), SI(20), SI(15), ok, og, ob); + fill_rect(sx-SI(8), sy-SI(2), SI(16), SI(11), br, bg, bb); + disc(LX(15,10), LY(15,10), SI(5), lr, lg, lb); + line(sx, sy, LX(28,20), LY(28,20), 255, 150, 50); + break; + case UT_MISSILE: + fill_rect(sx-SI(11), sy-SI(4), SI(22), SI(14), ok, og, ob); + fill_rect(sx-SI(9), sy-SI(2), SI(18), SI(10), br, bg, bb); + disc(LX(9,23), LY(9,23), SI(4), mr, mg, mb); + disc(LX(21,23), LY(21,23), SI(4), mr, mg, mb); + line(sx, sy, LX(28,6), LY(28,6), 255, 80, 60); + break; + case UT_MEDIC: + fill_rect(sx-SI(10), sy-SI(5), SI(20), SI(15), ok, og, ob); + fill_rect(sx-SI(8), sy-SI(3), SI(16), SI(11), 245, 245, 245); + disc(LX(10,24), LY(10,24), SI(4), mr, mg, mb); + disc(LX(20,24), LY(20,24), SI(4), mr, mg, mb); + disc(LX(15,9), LY(15,9), SI(5), 240, 50, 50); + fill_rect(LX(14,6)-1, LY(14,6)-SI(4), SI(3), SI(8), 255, 255, 255); + fill_rect(LX(11,8)-SI(4), LY(11,8)-1, SI(8), SI(3), 255, 255, 255); + break; + default: + disc(sx, sy, SI(10), ok, og, ob); + disc(sx, sy, SI(8), br, bg, bb); + break; + } + /* heading tick */ + { + int hx = sx + (int)(c * 14 * sc), hy = sy + (int)(s * 14 * sc); + line(sx, sy, hx, hy, 250, 245, 210); + } + /* HP bar above unit (classic RTS strip) */ + if (u->max_hp > 0) { + int bw = SI(28), by = sy - SI(18); + float f = u->hp / u->max_hp; + if (f < 0) f = 0; if (f > 1) f = 1; + fill_rect(sx - bw/2 - 1, by - 1, bw + 2, 6, 20, 18, 14); + fill_rect(sx - bw/2, by, bw, 4, 55, 48, 36); + uint8_t hr = (uint8_t)(255 * (1.0f - f)), hg = (uint8_t)(230 * f); + fill_rect(sx - bw/2, by, (int)(bw * f + 0.5f), 4, hr, hg, 40); + } + if (u->selected) { + int rad = SI((u->type == UT_TANK || u->type == UT_BEAST || u->type == UT_RAVAGER) ? 16 : 13); + ring(sx, sy, rad, 2, 255, 245, 60); + } + #undef LX + #undef LY + #undef SI +} + +/* Building silhouettes: bright pad + faction fill, thin black outline. */ +static void draw_bld(Building *b, int sx, int sy) { + int W = b->w * TILE, H = b->h * TILE; + uint8_t br = faction_r(b->faction), bg = faction_g(b->faction), bb = faction_b(b->faction); + uint8_t lr, lg, lb; + lighten3(br, bg, bb, 0.35f, &lr, &lg, &lb); + uint8_t ok = 22, og = 20, ob = 16; + uint8_t wall = 205, wall2 = 175; + + /* Bright concrete pad on sand */ + fill_rect(sx - 2, sy - 2, W + 4, H + 4, ok, og, ob); + fill_rect(sx, sy, W, H, 210, 185, 130); + fill_rect(sx + 2, sy + 2, W - 4, H - 4, wall2, wall2 - 18, wall2 - 45); + fill_rect(sx + 3, sy + 3, W - 6, H - 6, wall, wall - 22, wall - 55); + fill_rect(sx + 3, sy + 3, W - 6, 6, wall + 30, wall + 10, wall - 20); + + switch (b->type) { + case BT_BASE: + fill_rect(sx + 5, sy + 5, W - 10, H - 10, ok, og, ob); + fill_rect(sx + 7, sy + 7, W - 14, H - 14, br, bg, bb); + disc(sx + W/2, sy + H/2, W/4, lr, lg, lb); + disc(sx + W/2, sy + H/2, W/6, 255, 250, 180); + line(sx + W/2, sy + H/2, sx + W/2, sy + 4, 220, 210, 80); + fill_rect(sx + W/2 - 2, sy + 4, 4, H/3, 200, 180, 60); + break; + case BT_WARFACTORY: + fill_rect(sx + 5, sy + 5, W - 10, H - 10, ok, og, ob); + fill_rect(sx + 7, sy + 7, W - 14, H - 14, br, bg, bb); + fill_rect(sx + 10, sy + 10, W - 20, 12, lr, lg, lb); + fill_rect(sx + 10, sy + H - 24, W - 20, 12, lr, lg, lb); + fill_rect(sx + W/2 - 4, sy + 8, 8, H - 16, 35, 35, 40); + break; + case BT_REFINERY: + disc(sx + W/2, sy + H/2, W/4 + 2, ok, og, ob); + disc(sx + W/2, sy + H/2, W/4, 200, 165, 85); + ring(sx + W/2, sy + H/2, W/4 - 3, 3, 90, 70, 45); + fill_rect(sx + 8, sy + H - 14, W - 16, 8, 140, 110, 55); + break; + case BT_POWER: + disc(sx + W/2, sy + H/2, W/3 + 1, ok, og, ob); + disc(sx + W/2, sy + H/2, W/3, 100, 160, 210); + line(sx + W/2, sy + 4, sx + W/2, sy + H - 4, 230, 245, 255); + line(sx + 4, sy + H/2, sx + W - 4, sy + H/2, 230, 245, 255); + disc(sx + W/2, sy + H/2, 4, 250, 252, 255); + break; + case BT_TURRET: + fill_rect(sx + 4, sy + H - 10, W - 8, 8, 55, 50, 42); + disc(sx + W/2, sy + H/2, W/3 + 1, ok, og, ob); + disc(sx + W/2, sy + H/2, W/3, br, bg, bb); + disc(sx + W/2, sy + H/2, W/5, lr, lg, lb); + line(sx + W/2, sy + H/2, sx + W/2 + 14, sy + H/2 - 14, 30, 28, 24); + disc(sx + W/2 + 12, sy + H/2 - 12, 2, 255, 200, 80); + break; + case BT_WALL: + fill_rect(sx + 1, sy + 1, W - 2, H - 2, ok, og, ob); + fill_rect(sx + 2, sy + 2, W - 4, H - 4, 175, 155, 120); + fill_rect(sx + 3, sy + 3, W - 6, 5, 210, 190, 150); + line(sx + 2, sy + 2, sx + W - 2, sy + H - 2, 60, 52, 42); + break; + case BT_REPAIR: + fill_rect(sx + 7, sy + 7, W - 14, H - 14, ok, og, ob); + fill_rect(sx + 9, sy + 9, W - 18, H - 18, br, bg, bb); + ring(sx + W/2, sy + H/2, W/4, 3, 120, 220, 120); + line(sx + W/2 - 12, sy + H/2, sx + W/2 + 12, sy + H/2, 120, 220, 120); + line(sx + W/2, sy + H/2 - 12, sx + W/2, sy + H/2 + 12, 120, 220, 120); + break; + case BT_RESEARCH: + fill_rect(sx + 7, sy + 7, W - 14, H - 14, ok, og, ob); + fill_rect(sx + 9, sy + 9, W - 18, H - 18, br, bg, bb); + disc(sx + W/2, sy + H/2, W/5, 210, 180, 80); + line(sx + W/2, sy + 6, sx + W/2, sy + H - 6, 230, 230, 160); + line(sx + 6, sy + H/2, sx + W - 6, sy + H/2, 230, 230, 160); + break; + default: + break; + } + if (b->build < 1.0f) + fill_rect(sx, sy, W, (int)(H * b->build), 255, 255, 255); +} + +void snapshot_capture(Game *g, const char *path) { + const int zoom = SHOT_ZOOM; + g_sw = SW / zoom; + g_sh = SH / zoom; + if (g_sw < 1) g_sw = 1; + if (g_sh < 1) g_sh = 1; + + uint8_t *small = (uint8_t *)malloc((size_t)g_sw * g_sh * 4); + if (!small) return; + g_buf = small; + for (int i = 0; i < g_sw * g_sh; i++) { + small[i*4]=0; small[i*4+1]=0; small[i*4+2]=0; small[i*4+3]=255; + } + + /* Lock camera on the expected raid locus (hx+88, hy-48). Mild bias toward + * living enemies still inside the clash radius — never mid-map garrison. */ + float hx = 0, hy = 0; + { + int sx = g->map.spawn_x[g->human], sy = g->map.spawn_y[g->human]; + map_tile_to_world(sx, sy, &hx, &hy); + } + float clash_x = hx + 88.0f, clash_y = hy - 48.0f; + const float clash_r2 = 220.0f * 220.0f; + + float ex = 0, ey = 0; + int ne = 0; + for (int i = 0; i < g->unit_count; i++) { + Unit *u = &g->units[i]; + if (u->dead || u->faction == g->human) continue; + float dx = u->x - clash_x, dy = u->y - clash_y; + if (dx * dx + dy * dy > clash_r2) continue; + ex += u->x; ey += u->y; ne++; + } + float ecx = ne ? ex / ne : clash_x; + float ecy = ne ? ey / ne : clash_y; + + /* Clash + forward fight, with enough HQ so base buildings stay in frame. */ + float cx = clash_x * 0.55f + ecx * 0.15f + hx * 0.30f; + float cy = clash_y * 0.55f + ecy * 0.15f + hy * 0.30f; + + float camx = cx - g_sw / 2.0f, camy = cy - g_sh / 2.0f; if (camx < 0) camx = 0; if (camy < 0) camy = 0; - if (camx > MAP_PIX_W - SW) camx = MAP_PIX_W - SW; - if (camy > MAP_PIX_H - SH) camy = MAP_PIX_H - SH; + if (camx > MAP_PIX_W - g_sw) camx = (float)(MAP_PIX_W - g_sw); + if (camy > MAP_PIX_H - g_sh) camy = (float)(MAP_PIX_H - g_sh); + if (camx < 0) camx = 0; if (camy < 0) camy = 0; + + int in_u = 0, in_b = 0, alive_e = 0, alive_h = 0; + for (int i = 0; i < g->unit_count; i++) { + Unit *u = &g->units[i]; + if (u->dead) continue; + if (u->faction == g->human) alive_h++; else alive_e++; + int sx = (int)(u->x - camx), sy = (int)(u->y - camy); + if (sx >= -16 && sy >= -16 && sx < g_sw + 16 && sy < g_sh + 16) in_u++; + } + for (int i = 0; i < g->bld_count; i++) { + Building *b = &g->buildings[i]; + if (b->dead) continue; + int sx = (int)(b->tx * TILE - camx), sy = (int)(b->ty * TILE - camy); + int w = b->w * TILE, h = b->h * TILE; + if (sx + w >= 0 && sy + h >= 0 && sx < g_sw && sy < g_sh) in_b++; + } + engine_log("shot cam=(%.0f,%.0f) crop=%dx%d clash_enemies=%d " + "in_frame units=%d blds=%d alive H/E=%d/%d", + camx, camy, g_sw, g_sh, ne, in_u, in_b, alive_h, alive_e); /* terrain */ int tx0 = (int)camx / TILE, ty0 = (int)camy / TILE; - int tx1 = (int)(camx + SW) / TILE, ty1 = (int)(camy + SH) / TILE; + int tx1 = (int)(camx + g_sw) / TILE, ty1 = (int)(camy + g_sh) / TILE; for (int ty = ty0; ty <= ty1; ty++) { for (int tx = tx0; tx <= tx1; tx++) { - if (tx < 0 || ty < 0 || tx >= MAP_W || ty >= MAP_W) continue; + if (tx < 0 || ty < 0 || tx >= MAP_W || ty >= MAP_H) continue; Tile *t = map_tile(&g->map, tx, ty); - uint8_t r,g,b; terrain_color(t->terrain, &r,&g,&b); + uint8_t r,gv,b; terrain_color(t->terrain, &r,&gv,&b); + /* Mild checker — keep yellow bias (nudge R/G, never push B). */ + if (((tx + ty) & 1) == 0) { + if (r < 250) r += 8; if (gv < 240) gv += 4; + } else { + if (r > 10) r -= 4; if (gv > 10) gv -= 3; if (b > 6) b -= 2; + } int sx = tx*TILE - (int)camx, sy = ty*TILE - (int)camy; - rectf(sx, sy, sx+TILE-1, sy+TILE-1, r, g, b); + rectf(sx, sy, sx+TILE-1, sy+TILE-1, r, gv, b); + /* Crack / grit lines so desert reads as KKND2 dirt, not flat fill. */ + if (t->terrain == T_GRASS || t->terrain == T_SCRAP) { + line(sx + 4, sy + 10, sx + 14, sy + 18, (uint8_t)(r - 28), (uint8_t)(gv - 24), (uint8_t)(b - 12)); + line(sx + 18, sy + 6, sx + 28, sy + 14, (uint8_t)(r - 22), (uint8_t)(gv - 18), (uint8_t)(b - 10)); + disc(sx + 9, sy + 22, 1, (uint8_t)(r - 35), (uint8_t)(gv - 30), (uint8_t)(b - 15)); + disc(sx + 24, sy + 26, 1, (uint8_t)(r - 30), (uint8_t)(gv - 26), (uint8_t)(b - 12)); + } + if (t->terrain == T_RUBBLE) { + disc(sx + 8, sy + 10, 3, 120, 95, 60); + disc(sx + 22, sy + 18, 3, 138, 110, 70); + disc(sx + 14, sy + 24, 2, 105, 85, 55); + disc(sx + 26, sy + 8, 2, 155, 125, 80); + } + if (t->terrain == T_ROAD) { + fill_rect(sx + 3, sy + TILE/2 - 3, TILE - 6, 6, 195, 165, 105); + line(sx + 2, sy + TILE/2, sx + TILE - 3, sy + TILE/2, 225, 195, 130); + line(sx + TILE/2, sy + 2, sx + TILE/2, sy + TILE - 3, 165, 140, 95); + } if (t->terrain == T_SCRAP && t->scrap > 0) { int cc = (sx+TILE/2), cr = (sy+TILE/2); - for (int k=0;kscrap/20;k++) - disc(cc + ((k*7)%10)-5, cr + ((k*5)%10)-5, 2, 150,140,90); + for (int k=0;kscrap/16;k++) + disc(cc + ((k*7)%12)-6, cr + ((k*5)%12)-6, 3, 235,190,85); } } } - /* fog overlay */ + /* Showcase shot: force-clear fog in the camera crop so buildings/units + * read like a playable KKND2 battle view (not a black fog plate). */ for (int ty = ty0; ty <= ty1; ty++) for (int tx = tx0; tx <= tx1; tx++) { - if (tx < 0 || ty < 0 || tx >= MAP_W || ty >= MAP_W) continue; + if (tx < 0 || ty < 0 || tx >= MAP_W || ty >= MAP_H) continue; + g->map.fog[ty * MAP_W + tx] = 2; + } + + /* Soft edge only outside live vision (kept for minimap consistency). */ + for (int ty = ty0; ty <= ty1; ty++) + for (int tx = tx0; tx <= tx1; tx++) { + if (tx < 0 || ty < 0 || tx >= MAP_W || ty >= MAP_H) continue; int f = g->map.fog[ty*MAP_W + tx]; - if (f == 0) { int sx=tx*TILE-(int)camx, sy=ty*TILE-(int)camy; rectf(sx,sy,sx+TILE-1,sy+TILE-1,0,0,0); } - else if (f == 1) { int sx=tx*TILE-(int)camx, sy=ty*TILE-(int)camy; rectf(sx,sy,sx+TILE-1,sy+TILE-1,0,0,30); } + if (f >= 2) continue; + float keep = (f == 1) ? 0.70f : 0.45f; + int sx = tx*TILE - (int)camx, sy = ty*TILE - (int)camy; + for (int yy = sy; yy < sy + TILE; yy++) + for (int xx = sx; xx < sx + TILE; xx++) + darken_px(xx, yy, keep); } /* buildings */ @@ -96,11 +456,8 @@ void snapshot_capture(Game *g, const char *path) { if (b->dead) continue; int sx = (int)(b->tx*TILE - camx), sy = (int)(b->ty*TILE - camy); int w = b->w*TILE, h = b->h*TILE; - if (sx+w < 0 || sy+h < 0 || sx > SW || sy > SH) continue; - uint8_t r=faction_r(b->faction),gg=faction_g(b->faction),bb=faction_b(b->faction); - rectf(sx, sy, sx+w-1, sy+h-1, r/2+30, gg/2+30, bb/2+30); - rectf(sx+2, sy+2, sx+w-3, sy+h-3, r, gg, bb); - if (b->build < 1.0f) rectf(sx, sy, sx+w-1, sy+(int)(h*b->build)-1, 255,255,255); + if (sx+w < 0 || sy+h < 0 || sx > g_sw || sy > g_sh) continue; + draw_bld(b, sx, sy); } /* units */ @@ -108,41 +465,67 @@ void snapshot_capture(Game *g, const char *path) { Unit *u = &g->units[i]; if (u->dead) continue; int sx = (int)(u->x - camx), sy = (int)(u->y - camy); - if (sx < -10 || sy < -10 || sx > SW+10 || sy > SH+10) continue; - uint8_t r=faction_r(u->faction),gg=faction_g(u->faction),bb=faction_b(u->faction); - int rad = u->type==UT_TANK||u->type==UT_BEAST?9:u->type==UT_HARVESTER?8:6; - disc(sx, sy, rad, r, gg, bb); - disc(sx, sy, 2, 255,255,255); - int hx = sx + (int)(cosf(u->heading)*rad), hy = sy + (int)(sinf(u->heading)*rad); - for (int k=0;kselected) { rectf(sx-rad-2,sy-rad-2,sx+rad+2,sy+rad+2,255,255,120); } + if (sx < -20 || sy < -20 || sx > g_sw+20 || sy > g_sh+20) continue; + draw_unit(u, sx, sy); } - /* projectiles */ + /* projectiles — bright tracers / shells */ for (int i = 0; i < g->bullet_count; i++) { Bullet *p = &g->bullets[i]; int sx=(int)(p->x-camx), sy=(int)(p->y-camy); - px(sx,sy,255,230,120); px(sx+1,sy,255,230,120); + int rad = (p->kind == 1 || p->kind == 3) ? 6 : 4; + disc(sx, sy, rad + 1, 255, 160, 40); + disc(sx, sy, rad, 255, 240, 140); + px(sx+1, sy, 255, 255, 220); + if (p->kind == 3) { + disc(sx - 3, sy + 1, 3, 255, 70, 30); + disc(sx + 2, sy - 2, 2, 255, 200, 80); + } } - /* minimap */ - int mmx=SW-210, mmy=10, mms=200; - rectf(mmx-2,mmy-2,mmx+mms+1,mmy+mms+1,0,0,0); - for (int ty=0;tymap.fog[ty*MAP_W+tx]; - if (f==0) continue; - Tile *t=map_tile(&g->map,tx,ty); - uint8_t r,g,b; terrain_color(t->terrain,&r,&g,&b); - int dx=mmx + tx*mms/MAP_W, dy=mmy + ty*mms/MAP_W; - px(dx,dy,r,g,b); + /* particles (smoke / fire / sparks / debris) — larger combat FX */ + for (int i = 0; i < g->particle_count; i++) { + Particle *p = &g->particles[i]; + if (p->life <= 0) continue; + int sx = (int)(p->x - camx), sy = (int)(p->y - camy); + if (sx < -8 || sy < -8 || sx > g_sw + 8 || sy > g_sh + 8) continue; + float a = p->life / (p->max_life > 0 ? p->max_life : 1.0f); + if (a < 0.12f) continue; + int sz = (p->kind == 1) ? 5 : (p->kind == 3) ? 3 : (p->kind == 0) ? 4 : 3; + uint8_t r = (uint8_t)(p->r * a), gv = (uint8_t)(p->g * a), b = (uint8_t)(p->b * a); + if (p->kind == 0 || p->kind == 1) disc(sx, sy, sz + 1, r, gv, b); + else fill_rect(sx - sz/2, sy - sz/2, sz + 1, sz + 1, r, gv, b); } - for (int i=0;ibld_count;i++){ Building*b=&g->buildings[i]; if(b->dead)continue; - int dx=mmx+b->tx*TILE*mms/(MAP_W*TILE), dy=mmy+b->ty*TILE*mms/(MAP_W*TILE); - px(dx,dy,faction_r(b->faction),faction_g(b->faction),faction_b(b->faction)); } - for (int i=0;iunit_count;i++){ Unit*u=&g->units[i]; if(u->dead)continue; - int dx=mmx+(int)(u->x*mms/MAP_PIX_W), dy=mmy+(int)(u->y*mms/MAP_PIX_H); - px(dx,dy,faction_r(u->faction),faction_g(u->faction),faction_b(u->faction)); } + /* No shot minimap — keeps the crop on the fight plate. */ - png_save(path, SW, SH, buf); - free(buf); + /* Simple top HUD strip (resource/faction cue like classic RTS). */ + fill_rect(0, 0, g_sw, 14, 18, 22, 28); + fill_rect(0, 13, g_sw, 1, 70, 90, 70); + fill_rect(4, 3, 28, 8, 40, 210, 70); + fill_rect(36, 3, 28, 8, 235, 55, 235); + fill_rect(68, 4, (int)(g_sw * 0.22f), 6, 200, 180, 60); + fill_rect(68, 4, (int)(g_sw * 0.14f), 6, 255, 220, 80); + disc(g_sw - 18, 7, 5, 255, 90, 40); + disc(g_sw - 18, 7, 2, 255, 220, 120); + + /* Nearest-neighbour upscale → full VIEW (chunky KKND pixels) */ + uint8_t *big = (uint8_t *)malloc((size_t)SW * SH * 4); + if (!big) { free(small); return; } + for (int y = 0; y < SH; y++) { + int sy = y / zoom; + if (sy >= g_sh) sy = g_sh - 1; + for (int x = 0; x < SW; x++) { + int sx = x / zoom; + if (sx >= g_sw) sx = g_sw - 1; + int di = (y * SW + x) * 4; + int si = (sy * g_sw + sx) * 4; + big[di]=small[si]; big[di+1]=small[si+1]; + big[di+2]=small[si+2]; big[di+3]=255; + } + } + png_save(path, SW, SH, big); + free(big); + free(small); + g_buf = NULL; + g_sw = SW; g_sh = SH; } diff --git a/engine-c/src/unit_card.c b/engine-c/src/unit_card.c index da11e33..eda54eb 100644 --- a/engine-c/src/unit_card.c +++ b/engine-c/src/unit_card.c @@ -2,7 +2,6 @@ #include #include #include -#include // Create a new unit card UnitCard* create_unit_card(const char* name, const char* faction, diff --git a/kitchen/AGENT_LOG.md b/kitchen/AGENT_LOG.md index 0e6a893..5c85e8e 100644 --- a/kitchen/AGENT_LOG.md +++ b/kitchen/AGENT_LOG.md @@ -41,3 +41,6 @@ - **2026-09-14T06:51:58Z** · stall-locks answered · **ok** — bump STATUS on triad; no new milestones; triad=ACTIVITY+outbox+AGENT_LOG+STATUS; verify disk - **2026-09-14T06:51:58Z** · F1/F2 · **ok** — R3 ACTIVITY + existing outbox flamewar/*-r3-* · Castopod draft-only (404) - **2026-09-14T06:51:58Z** · STATUS · **ok** — round=3 · freigabe this-repo always-push openkknd-agent · parent TODO=356 + +- **2026-09-19T05:28:54Z** · CLAIM Spur A @local-model/engine-L2-grok-4.5 · **ACTIVE** — engine-c/src/engine.c + snapshot.c; TODO365 KKND2-like showcase (units/bld/combat near camera) +- **2026-09-19T08:04:10Z** · RELEASE Spur A @local-model/engine-L2-grok-4.5 · **DONE** — dense arid showcase + type-aware snapshot; smoke PASS; shortsha TBD after commit diff --git a/kitchen/COLLAB-SIGNUP.md b/kitchen/COLLAB-SIGNUP.md index 2793950..06e91d6 100644 --- a/kitchen/COLLAB-SIGNUP.md +++ b/kitchen/COLLAB-SIGNUP.md @@ -24,7 +24,7 @@ Core of **TODO=365**: collaborate to **advance the game** and **push directly** | When (UTC) | Agent / author slug | Spur | Paths (short) | Status | Note | |------------|---------------------|------|---------------|--------|------| -| — | — | — | — | FREE | next agent: add a row, then claim in AGENT_LOG | +| 2026-09-19T05:28Z | local-model/engine-L2-grok-4.5 | A | engine-c/src/engine.c,snapshot.c | DONE | smoke PASS; arid clash showcase (lime vs magenta); shot_0001.png |