From f8037b627061c3321719722754e6ea0697a4b178 Mon Sep 17 00:00:00 2001 From: "local-model/engine-L2-grok-4.5" Date: Sat, 19 Sep 2026 20:26:33 +0200 Subject: [PATCH] engine-c: denser BT_WARFACTORY hangar/crane/bay/office detail --- engine-c/src/snapshot.c | 22 ++++++++++++++++++++++ engine-c/src/sprites.c | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/engine-c/src/snapshot.c b/engine-c/src/snapshot.c index 9ffb2bc..f9938ee 100644 --- a/engine-c/src/snapshot.c +++ b/engine-c/src/snapshot.c @@ -915,6 +915,10 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + 9, sy + 11, W - 18, 1, 40, 38, 32); /* roof seam */ fill_rect(sx + 14, sy + 13, 2, 1, 80, 75, 60); /* corrugation L */ fill_rect(sx + W/2 - 1, sy + 13, 2, 1, 80, 75, 60); /* corrugation C */ + fill_rect(sx + W - 16, sy + 13, 2, 1, 80, 75, 60); /* corrugation R */ + fill_rect(sx + 8, sy + 10, 2, 2, 95, 90, 70); /* roof end-cap L */ + fill_rect(sx + W - 10, sy + 10, 2, 2, 95, 90, 70); /* roof end-cap R */ + fill_rect(sx + W/2 - 1, sy + 9, 3, 1, 50, 48, 40); /* ridge spine */ /* corner bracing + rivets */ fill_rect(sx + 5, sy + 7, 3, 3, 70, 65, 55); fill_rect(sx + W - 8, sy + 7, 3, 3, 70, 65, 55); @@ -938,9 +942,14 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + W/2 + 3, sy + 15, 3, 3, 165, 205, 235); /* office window R */ fill_rect(sx + 10, sy + 20, 4, 5, 45, 42, 38); /* office door */ fill_rect(sx + 12, sy + 22, 1, 2, 200, 180, 60); /* door knob */ + fill_rect(sx + 11, sy + 14, W - 30, 1, 35, 33, 28); /* office sill */ + fill_rect(sx + W/2 + 8, sy + 15, 2, 2, 220, 90, 40); /* office warn LED */ + fill_rect(sx + W - 18, sy + 14, 3, 2, 70, 68, 60); /* AC pack */ /* chimney + smoke puff */ fill_rect(sx + W/2 + 8, sy + 4, 4, 10, ok, og, ob); fill_rect(sx + W/2 + 9, sy + 5, 2, 8, 55, 50, 45); + fill_rect(sx + W/2 + 8, sy + 7, 4, 1, 40, 38, 32); /* chimney band */ + fill_rect(sx + W/2 + 7, sy + 3, 6, 1, 65, 60, 50); /* chimney cap */ disc(sx + W/2 + 10, sy + 3, 3, 90, 88, 85); disc(sx + W/2 + 12, sy + 2, 2, 110, 108, 105); /* side workshop annex + tool rack */ @@ -953,11 +962,15 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + W - 6, sy + H/2 + 2, 3, 8, ok, og, ob); fill_rect(sx + W - 5, sy + H/2 + 3, 1, 6, 45, 42, 38); disc(sx + W - 4, sy + H/2 + 1, 2, 80, 78, 72); + fill_rect(sx + W - 9, sy + H/2 + 4, 2, 6, ok, og, ob); /* 2nd stack */ + fill_rect(sx + W - 8, sy + H/2 + 5, 1, 4, 45, 42, 38); /* overhead crane mast + jib + cable/hook */ fill_rect(sx + W - 14, sy + 4, 6, H - 18, ok, og, ob); fill_rect(sx + W - 13, sy + 5, 4, H - 20, 95, 88, 70); fill_rect(sx + 14, sy + 6, W - 28, 4, ok, og, ob); fill_rect(sx + 15, sy + 7, W - 30, 2, 120, 110, 85); + fill_rect(sx + 22, sy + 5, 5, 3, 85, 78, 60); /* crane trolley */ + fill_rect(sx + 23, sy + 6, 3, 1, 200, 160, 40); /* trolley hazard */ line(sx + 18, sy + 10, sx + 18, sy + 22, 70, 65, 50); line(sx + 19, sy + 10, sx + 19, sy + 26, 55, 50, 40); /* cable */ disc(sx + 18, sy + 24, 3, 80, 75, 55); /* hoist block */ @@ -967,6 +980,7 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + W - 15, sy + H/2 - 2, 4, 3, 70, 65, 50); /* gantry brace */ fill_rect(sx + W - 10, sy + 8, 3, 2, 200, 160, 40); /* crane hazard */ fill_rect(sx + W - 16, sy + H - 22, 5, 4, 55, 50, 42); /* crane counterweight */ + fill_rect(sx + W - 17, sy + H - 20, 2, 2, 90, 85, 70); /* CW bolt */ /* segmented bay doors + hazard + panels */ fill_rect(sx + 12, sy + H - 30, W - 28, 20, ok, og, ob); fill_rect(sx + 14, sy + H - 28, W - 32, 16, 32, 32, 38); @@ -980,7 +994,12 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + W/2 + 2, sy + H - 24, 4, 3, 45, 44, 40); fill_rect(sx + W - 22, sy + H - 24, 4, 3, 45, 44, 40); fill_rect(sx + W/2 - 1, sy + H - 18, 2, 2, 90, 85, 70); /* bay lock */ + fill_rect(sx + 15, sy + H - 26, 1, 4, 80, 75, 60); /* bay hinge L */ + fill_rect(sx + W - 17, sy + H - 26, 1, 4, 80, 75, 60); /* bay hinge R */ fill_rect(sx + 7, sy + H/2 + 4, 4, 2, 50, 48, 42); /* side vent grille */ + fill_rect(sx + 7, sy + H/2 + 7, 4, 1, 40, 38, 32); /* vent louver */ + fill_rect(sx + 8, sy + H - 28, 3, 8, 60, 55, 45); /* wall pipe riser */ + fill_rect(sx + 8, sy + H - 21, 6, 1, 55, 50, 42); /* pipe elbow */ /* ramp lip + rails/tracks */ fill_rect(sx + 10, sy + H - 10, W - 20, 5, 50, 48, 42); fill_rect(sx + 12, sy + H - 9, W - 24, 2, 90, 75, 45); @@ -988,6 +1007,9 @@ static void draw_bld(Building *b, int sx, int sy) { fill_rect(sx + W/2 - 1, sy + H - 8, 3, 1, 200, 160, 40); /* ramp chevron C */ fill_rect(sx + W - 22, sy + H - 8, 3, 1, 200, 160, 40); /* ramp chevron R */ fill_rect(sx + W/2 - 3, sy + H - 4, 6, 2, 35, 30, 22); /* oil stain */ + fill_rect(sx + 6, sy + H - 12, 4, 3, 75, 70, 55); /* scrap crate */ + fill_rect(sx + 7, sy + H - 11, 2, 1, 120, 100, 50); /* crate strap */ + fill_rect(sx + W - 12, sy + H - 12, 3, 3, 55, 52, 45); /* spare tire */ line(sx + 14, sy + H - 8, sx + 14, sy + H - 5, 70, 65, 50); line(sx + W - 16, sy + H - 8, sx + W - 16, sy + H - 5, 70, 65, 50); line(sx + 14, sy + H - 6, sx + W - 16, sy + H - 6, 60, 55, 42); /* track */ diff --git a/engine-c/src/sprites.c b/engine-c/src/sprites.c index c56e5ed..10ebb25 100644 --- a/engine-c/src/sprites.c +++ b/engine-c/src/sprites.c @@ -725,6 +725,10 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, 9, 11, W - 18, 1, 40, 38, 32, 255); /* roof seam */ fill_rect(s, 14, 13, 2, 1, 80, 75, 60, 255); /* corrugation L */ fill_rect(s, W/2 - 1, 13, 2, 1, 80, 75, 60, 255); /* corrugation C */ + fill_rect(s, W - 16, 13, 2, 1, 80, 75, 60, 255); /* corrugation R */ + fill_rect(s, 8, 10, 2, 2, 95, 90, 70, 255); /* roof end-cap L */ + fill_rect(s, W - 10, 10, 2, 2, 95, 90, 70, 255); /* roof end-cap R */ + fill_rect(s, W/2 - 1, 9, 3, 1, 50, 48, 40, 255); /* ridge spine */ /* corner bracing + rivets */ fill_rect(s, 5, 7, 3, 3, 70, 65, 55, 255); fill_rect(s, W - 8, 7, 3, 3, 70, 65, 55, 255); @@ -743,9 +747,14 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, W/2 + 3, 15, 3, 3, 165, 205, 235, 255); /* office window R */ fill_rect(s, 10, 20, 4, 5, 45, 42, 38, 255); /* office door */ fill_rect(s, 12, 22, 1, 2, 200, 180, 60, 255); /* door knob */ + fill_rect(s, 11, 14, W - 30, 1, 35, 33, 28, 255); /* office sill */ + fill_rect(s, W/2 + 8, 15, 2, 2, 220, 90, 40, 255); /* office warn LED */ + fill_rect(s, W - 18, 14, 3, 2, 70, 68, 60, 255); /* AC pack */ /* chimney + smoke puff */ fill_rect(s, W/2 + 8, 4, 4, 10, ok, og, ob, 255); fill_rect(s, W/2 + 9, 5, 2, 8, 55, 50, 45, 255); + fill_rect(s, W/2 + 8, 7, 4, 1, 40, 38, 32, 255); /* chimney band */ + fill_rect(s, W/2 + 7, 3, 6, 1, 65, 60, 50, 255); /* chimney cap */ disc(s, W/2 + 10, 3, 3, 90, 88, 85, 255); disc(s, W/2 + 12, 2, 2, 110, 108, 105, 255); /* side workshop annex + tool rack */ @@ -759,11 +768,15 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, W - 6, H/2 + 2, 3, 8, ok, og, ob, 255); fill_rect(s, W - 5, H/2 + 3, 1, 6, 45, 42, 38, 255); disc(s, W - 4, H/2 + 1, 2, 80, 78, 72, 255); + fill_rect(s, W - 9, H/2 + 4, 2, 6, ok, og, ob, 255); /* 2nd stack */ + fill_rect(s, W - 8, H/2 + 5, 1, 4, 45, 42, 38, 255); /* overhead crane mast + jib + cable/hook */ fill_rect(s, W - 14, 4, 6, H - 18, ok, og, ob, 255); fill_rect(s, W - 13, 5, 4, H - 20, 95, 88, 70, 255); fill_rect(s, 14, 6, W - 28, 4, ok, og, ob, 255); fill_rect(s, 15, 7, W - 30, 2, 120, 110, 85, 255); + fill_rect(s, 22, 5, 5, 3, 85, 78, 60, 255); /* crane trolley */ + fill_rect(s, 23, 6, 3, 1, 200, 160, 40, 255); /* trolley hazard */ line(s, 18, 10, 18, 22, 70, 65, 50, 255); line(s, 19, 10, 19, 26, 55, 50, 40, 255); /* cable */ disc(s, 18, 24, 3, 80, 75, 55, 255); /* hoist block */ @@ -773,6 +786,7 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, W - 15, H/2 - 2, 4, 3, 70, 65, 50, 255); /* gantry brace */ fill_rect(s, W - 10, 8, 3, 2, 200, 160, 40, 255); /* crane hazard */ fill_rect(s, W - 16, H - 22, 5, 4, 55, 50, 42, 255); /* crane counterweight */ + fill_rect(s, W - 17, H - 20, 2, 2, 90, 85, 70, 255); /* CW bolt */ /* segmented bay doors + hazard + panels */ fill_rect(s, 12, H - 30, W - 28, 20, ok, og, ob, 255); fill_rect(s, 14, H - 28, W - 32, 16, 32, 32, 38, 255); @@ -786,7 +800,12 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, W/2 + 2, H - 24, 4, 3, 45, 44, 40, 255); fill_rect(s, W - 22, H - 24, 4, 3, 45, 44, 40, 255); fill_rect(s, W/2 - 1, H - 18, 2, 2, 90, 85, 70, 255); /* bay lock */ + fill_rect(s, 15, H - 26, 1, 4, 80, 75, 60, 255); /* bay hinge L */ + fill_rect(s, W - 17, H - 26, 1, 4, 80, 75, 60, 255); /* bay hinge R */ fill_rect(s, 7, H/2 + 4, 4, 2, 50, 48, 42, 255); /* side vent grille */ + fill_rect(s, 7, H/2 + 7, 4, 1, 40, 38, 32, 255); /* vent louver */ + fill_rect(s, 8, H - 28, 3, 8, 60, 55, 45, 255); /* wall pipe riser */ + fill_rect(s, 8, H - 21, 6, 1, 55, 50, 42, 255); /* pipe elbow */ /* ramp lip + rails/tracks */ fill_rect(s, 10, H - 10, W - 20, 5, 50, 48, 42, 255); fill_rect(s, 12, H - 9, W - 24, 2, 90, 75, 45, 255); @@ -794,6 +813,9 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) { fill_rect(s, W/2 - 1, H - 8, 3, 1, 200, 160, 40, 255); /* ramp chevron C */ fill_rect(s, W - 22, H - 8, 3, 1, 200, 160, 40, 255); /* ramp chevron R */ fill_rect(s, W/2 - 3, H - 4, 6, 2, 35, 30, 22, 255); /* oil stain */ + fill_rect(s, 6, H - 12, 4, 3, 75, 70, 55, 255); /* scrap crate */ + fill_rect(s, 7, H - 11, 2, 1, 120, 100, 50, 255); /* crate strap */ + fill_rect(s, W - 12, H - 12, 3, 3, 55, 52, 45, 255); /* spare tire */ line(s, 14, H - 8, 14, H - 5, 70, 65, 50, 255); line(s, W - 16, H - 8, W - 16, H - 5, 70, 65, 50, 255); line(s, 14, H - 6, W - 16, H - 6, 60, 55, 42, 255); /* track */