engine-c: BT_BASE densify++2 HQ/hive/tower/courtyard/entry

This commit is contained in:
local-model/engine-L2-grok-4.5 2026-09-19 21:20:52 +02:00
parent 900249c960
commit cecc711c00
No known key found for this signature in database
2 changed files with 106 additions and 0 deletions

View file

@ -844,6 +844,33 @@ static void draw_bld(Building *b, int sx, int sy) {
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);
/* densify++2: hive vents, brood lamps, ichor gutters, spine studs, mouth teeth, pit glow, vein caps, spore caps */
fill_rect(sx + 20, sy + 12, 2, 1, 50, 22, 35); /* hive vent L */
fill_rect(sx + W - 22, sy + 12, 2, 1, 50, 22, 35); /* hive vent R */
fill_rect(sx + 21, sy + 11, 1, 1, 180, 60, 90); /* vent glow L */
fill_rect(sx + W - 21, sy + 11, 1, 1, 180, 60, 90); /* vent glow R */
fill_rect(sx + W/2 - 10, sy + 8, 2, 2, 200, 70, 110); /* brood lamp L */
fill_rect(sx + W/2 + 8, sy + 8, 2, 2, 200, 70, 110); /* brood lamp R */
fill_rect(sx + W/2 - 9, sy + 7, 1, 1, 255, 160, 190); /* lamp flare L */
fill_rect(sx + W/2 + 9, sy + 7, 1, 1, 255, 160, 190); /* lamp flare R */
fill_rect(sx + 12, sy + H/2 + 8, 4, 1, 90, 30, 50); /* ichor gutter L */
fill_rect(sx + W - 16, sy + H/2 + 8, 4, 1, 90, 30, 50); /* ichor gutter R */
fill_rect(sx + W/2 - 3, sy + 10, 1, 1, 110, 55, 70); /* spine stud 1 */
fill_rect(sx + W/2 + 2, sy + 12, 1, 1, 110, 55, 70); /* spine stud 2 */
fill_rect(sx + W/2 - 5, sy + H - 8, 2, 1, 40, 20, 28); /* mouth tooth L */
fill_rect(sx + W/2 + 3, sy + H - 8, 2, 1, 40, 20, 28); /* mouth tooth R */
fill_rect(sx + W/2 - 1, sy + H/2 - 6, 2, 1, 255, 80, 120); /* pit glow top */
fill_rect(sx + W/2 - 1, sy + H/2 + 5, 2, 1, 255, 80, 120); /* pit glow bot */
fill_rect(sx + 22, sy + 28, 2, 1, 140, 50, 80); /* vein cap L */
fill_rect(sx + W - 24, sy + 28, 2, 1, 140, 50, 80); /* vein cap R */
fill_rect(sx + 27, sy + H - 12, 2, 2, 160, 55, 95); /* spore cap L */
fill_rect(sx + W - 29, sy + H - 12, 2, 2, 160, 55, 95); /* spore cap R */
fill_rect(sx + 8, sy + 24, 1, 1, 220, 90, 130); /* blister spark L */
fill_rect(sx + W - 9, sy + 24, 1, 1, 220, 90, 130); /* blister spark R */
fill_rect(sx + W/2 + 6, sy + H/2 - 2, 1, 1, 255, 200, 220); /* eye glint */
fill_rect(sx + 30, sy + H/2 + 4, 2, 1, 70, 28, 45); /* membrane seam */
fill_rect(sx + W - 32, sy + H/2 + 4, 2, 1, 70, 28, 45); /* membrane seam R */
} else {
/* Survivors HQ densify: battlements + courtyard + flag + sandbags */
fill_rect(sx + 4, sy + 4, 14, 14, ok, og, ob);
@ -934,6 +961,33 @@ static void draw_bld(Building *b, int sx, int sy) {
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);
/* densify++2: HQ antenna, flag rope, sandbag stacks, courtyard hatch, tower slits, entry lights, AA lids, status panels */
fill_rect(sx + W/2 + 11, sy + 2, 1, 2, 80, 85, 95); /* antenna tip */
fill_rect(sx + W/2 + 12, sy + 1, 1, 1, 200, 60, 40); /* antenna beacon */
fill_rect(sx + W/2 - 13, sy + 8, 1, 4, 90, 70, 40); /* flag rope */
fill_rect(sx + W/2 - 12, sy + 9, 2, 1, 180, 40, 40); /* flag flap */
fill_rect(sx + 18, sy + H - 8, 3, 2, 110, 95, 70); /* sandbag stack L */
fill_rect(sx + W - 21, sy + H - 8, 3, 2, 110, 95, 70); /* sandbag stack R */
fill_rect(sx + 19, sy + H - 9, 1, 1, 130, 110, 80); /* bag highlight L */
fill_rect(sx + W - 20, sy + H - 9, 1, 1, 130, 110, 80); /* bag highlight R */
fill_rect(sx + W/2 - 3, sy + H/2 + 2, 6, 2, 50, 48, 42); /* courtyard hatch */
fill_rect(sx + W/2 - 1, sy + H/2 + 1, 2, 1, 90, 85, 70); /* hatch handle */
fill_rect(sx + 8, sy + 10, 2, 1, 40, 38, 34); /* tower slit TL */
fill_rect(sx + W - 10, sy + 10, 2, 1, 40, 38, 34); /* tower slit TR */
fill_rect(sx + 8, sy + H - 12, 2, 1, 40, 38, 34); /* tower slit BL */
fill_rect(sx + W - 10, sy + H - 12, 2, 1, 40, 38, 34); /* tower slit BR */
fill_rect(sx + W/2 - 7, sy + H - 13, 1, 1, 220, 200, 80); /* entry light L */
fill_rect(sx + W/2 + 6, sy + H - 13, 1, 1, 220, 200, 80); /* entry light R */
fill_rect(sx + 21, sy + H - 11, 3, 1, 100, 85, 60); /* AA lid L */
fill_rect(sx + W - 24, sy + H - 11, 3, 1, 100, 85, 60); /* AA lid R */
fill_rect(sx + W/2 - 12, sy + H/2 + 4, 2, 1, 30, 160, 70); /* status panel green */
fill_rect(sx + W/2 + 10, sy + H/2 + 4, 2, 1, 180, 50, 40); /* status panel red */
fill_rect(sx + 28, sy + 32, 2, 1, 70, 68, 58); /* courtyard grate L */
fill_rect(sx + W - 30, sy + 32, 2, 1, 70, 68, 58); /* courtyard grate R */
fill_rect(sx + 12, sy + 28, 1, 1, 160, 200, 230); /* annex glint L */
fill_rect(sx + W - 13, sy + 28, 1, 1, 160, 200, 230); /* annex glint R */
fill_rect(sx + W/2 - 2, sy + 20, 4, 1, 95, 90, 75); /* HQ roof seam */
}
break;
case BT_WARFACTORY:

View file

@ -654,6 +654,32 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) {
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);
/* densify++2: hive vents, brood lamps, ichor gutters, spine studs, mouth teeth, pit glow, vein caps, spore caps */
fill_rect(s, 20, 12, 2, 1, 50, 22, 35, 255); /* hive vent L */
fill_rect(s, W - 22, 12, 2, 1, 50, 22, 35, 255); /* hive vent R */
fill_rect(s, 21, 11, 1, 1, 180, 60, 90, 255); /* vent glow L */
fill_rect(s, W - 21, 11, 1, 1, 180, 60, 90, 255); /* vent glow R */
fill_rect(s, W/2 - 10, 8, 2, 2, 200, 70, 110, 255); /* brood lamp L */
fill_rect(s, W/2 + 8, 8, 2, 2, 200, 70, 110, 255); /* brood lamp R */
fill_rect(s, W/2 - 9, 7, 1, 1, 255, 160, 190, 255); /* lamp flare L */
fill_rect(s, W/2 + 9, 7, 1, 1, 255, 160, 190, 255); /* lamp flare R */
fill_rect(s, 12, H/2 + 8, 4, 1, 90, 30, 50, 255); /* ichor gutter L */
fill_rect(s, W - 16, H/2 + 8, 4, 1, 90, 30, 50, 255); /* ichor gutter R */
fill_rect(s, W/2 - 3, 10, 1, 1, 110, 55, 70, 255); /* spine stud 1 */
fill_rect(s, W/2 + 2, 12, 1, 1, 110, 55, 70, 255); /* spine stud 2 */
fill_rect(s, W/2 - 5, H - 8, 2, 1, 40, 20, 28, 255); /* mouth tooth L */
fill_rect(s, W/2 + 3, H - 8, 2, 1, 40, 20, 28, 255); /* mouth tooth R */
fill_rect(s, W/2 - 1, H/2 - 6, 2, 1, 255, 80, 120, 255); /* pit glow top */
fill_rect(s, W/2 - 1, H/2 + 5, 2, 1, 255, 80, 120, 255); /* pit glow bot */
fill_rect(s, 22, 28, 2, 1, 140, 50, 80, 255); /* vein cap L */
fill_rect(s, W - 24, 28, 2, 1, 140, 50, 80, 255); /* vein cap R */
fill_rect(s, 27, H - 12, 2, 2, 160, 55, 95, 255); /* spore cap L */
fill_rect(s, W - 29, H - 12, 2, 2, 160, 55, 95, 255); /* spore cap R */
fill_rect(s, 8, 24, 1, 1, 220, 90, 130, 255); /* blister spark L */
fill_rect(s, W - 9, 24, 1, 1, 220, 90, 130, 255); /* blister spark R */
fill_rect(s, W/2 + 6, H/2 - 2, 1, 1, 255, 200, 220, 255); /* eye glint */
fill_rect(s, 30, H/2 + 4, 2, 1, 70, 28, 45, 255); /* membrane seam */
fill_rect(s, W - 32, H/2 + 4, 2, 1, 70, 28, 45, 255); /* membrane seam R */
} else {
/* Survivors HQ densify: battlements + courtyard + flag + sandbags */
fill_rect(s, 4, 4, 14, 14, ok, og, ob, 255);
@ -744,6 +770,32 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) {
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);
/* densify++2: HQ antenna, flag rope, sandbag stacks, courtyard hatch, tower slits, entry lights, AA lids, status panels */
fill_rect(s, W/2 + 11, 2, 1, 2, 80, 85, 95, 255); /* antenna tip */
fill_rect(s, W/2 + 12, 1, 1, 1, 200, 60, 40, 255); /* antenna beacon */
fill_rect(s, W/2 - 13, 8, 1, 4, 90, 70, 40, 255); /* flag rope */
fill_rect(s, W/2 - 12, 9, 2, 1, 180, 40, 40, 255); /* flag flap */
fill_rect(s, 18, H - 8, 3, 2, 110, 95, 70, 255); /* sandbag stack L */
fill_rect(s, W - 21, H - 8, 3, 2, 110, 95, 70, 255); /* sandbag stack R */
fill_rect(s, 19, H - 9, 1, 1, 130, 110, 80, 255); /* bag highlight L */
fill_rect(s, W - 20, H - 9, 1, 1, 130, 110, 80, 255); /* bag highlight R */
fill_rect(s, W/2 - 3, H/2 + 2, 6, 2, 50, 48, 42, 255); /* courtyard hatch */
fill_rect(s, W/2 - 1, H/2 + 1, 2, 1, 90, 85, 70, 255); /* hatch handle */
fill_rect(s, 8, 10, 2, 1, 40, 38, 34, 255); /* tower slit TL */
fill_rect(s, W - 10, 10, 2, 1, 40, 38, 34, 255); /* tower slit TR */
fill_rect(s, 8, H - 12, 2, 1, 40, 38, 34, 255); /* tower slit BL */
fill_rect(s, W - 10, H - 12, 2, 1, 40, 38, 34, 255); /* tower slit BR */
fill_rect(s, W/2 - 7, H - 13, 1, 1, 220, 200, 80, 255); /* entry light L */
fill_rect(s, W/2 + 6, H - 13, 1, 1, 220, 200, 80, 255); /* entry light R */
fill_rect(s, 21, H - 11, 3, 1, 100, 85, 60, 255); /* AA lid L */
fill_rect(s, W - 24, H - 11, 3, 1, 100, 85, 60, 255); /* AA lid R */
fill_rect(s, W/2 - 12, H/2 + 4, 2, 1, 30, 160, 70, 255); /* status panel green */
fill_rect(s, W/2 + 10, H/2 + 4, 2, 1, 180, 50, 40, 255); /* status panel red */
fill_rect(s, 28, 32, 2, 1, 70, 68, 58, 255); /* courtyard grate L */
fill_rect(s, W - 30, 32, 2, 1, 70, 68, 58, 255); /* courtyard grate R */
fill_rect(s, 12, 28, 1, 1, 160, 200, 230, 255); /* annex glint L */
fill_rect(s, W - 13, 28, 1, 1, 160, 200, 230, 255); /* annex glint R */
fill_rect(s, W/2 - 2, 20, 4, 1, 95, 90, 75, 255); /* HQ roof seam */
}
break;
case BT_WARFACTORY: