engine-c: denser BT_WALL fort/battlement/gate/scar silhouettes
This commit is contained in:
parent
b1708d1eb6
commit
3cf39ff9bc
2 changed files with 88 additions and 40 deletions
|
|
@ -1160,38 +1160,62 @@ static void draw_bld(Building *b, int sx, int sy) {
|
||||||
fill_rect(sx + W - 6, sy + H/2 - 5, 3, 2, 220, 210, 160); /* side flood */
|
fill_rect(sx + W - 6, sy + H/2 - 5, 3, 2, 220, 210, 160); /* side flood */
|
||||||
break;
|
break;
|
||||||
case BT_WALL:
|
case BT_WALL:
|
||||||
/* thick fort wall + crenels + seams + embrasure (KKND fort read) */
|
/* denser fort: battlement, gate, scars, rubble (KKND fort read) */
|
||||||
fill_rect(sx + 0, sy + 4, W, H - 4, ok, og, ob);
|
fill_rect(sx + 0, sy + 4, W, H - 4, ok, og, ob); /* outer hull */
|
||||||
fill_rect(sx + 1, sy + 6, W - 2, H - 8, 165, 145, 110);
|
fill_rect(sx + 1, sy + 6, W - 2, H - 8, 165, 145, 110); /* face */
|
||||||
|
fill_rect(sx + 2, sy + 7, W - 4, H - 12, 150, 132, 100); /* inner face */
|
||||||
fill_rect(sx + 2, sy + H - 6, W - 4, 4, 90, 78, 58); /* plinth */
|
fill_rect(sx + 2, sy + H - 6, W - 4, 4, 90, 78, 58); /* plinth */
|
||||||
|
fill_rect(sx + 3, sy + H - 5, W - 6, 2, 70, 60, 48); /* plinth shadow */
|
||||||
fill_rect(sx + 1, sy + H - 5, 3, 3, 70, 60, 45); /* corner stone L */
|
fill_rect(sx + 1, sy + H - 5, 3, 3, 70, 60, 45); /* corner stone L */
|
||||||
fill_rect(sx + W - 4, sy + H - 5, 3, 3, 70, 60, 45); /* corner stone R */
|
fill_rect(sx + W - 4, sy + H - 5, 3, 3, 70, 60, 45); /* corner stone R */
|
||||||
/* thick merlons + caps */
|
fill_rect(sx + W/2 - 2, sy + H - 4, 4, 2, 55, 48, 38); /* threshold */
|
||||||
fill_rect(sx + 1, sy + 1, 8, 10, ok, og, ob);
|
/* thick merlons + caps + 4th tooth */
|
||||||
fill_rect(sx + 2, sy + 2, 6, 8, 195, 175, 140);
|
fill_rect(sx + 1, sy + 1, 7, 10, ok, og, ob);
|
||||||
fill_rect(sx + 3, sy + 1, 4, 2, 220, 200, 160); /* merlon cap */
|
fill_rect(sx + 2, sy + 2, 5, 8, 195, 175, 140);
|
||||||
fill_rect(sx + W/2 - 4, sy + 1, 8, 10, ok, og, ob);
|
fill_rect(sx + 3, sy + 1, 3, 2, 220, 200, 160); /* merlon cap L */
|
||||||
fill_rect(sx + W/2 - 3, sy + 2, 6, 8, 200, 180, 145);
|
fill_rect(sx + W/2 - 5, sy + 1, 4, 9, ok, og, ob); /* merlon mid-L */
|
||||||
fill_rect(sx + W/2 - 2, sy + 1, 4, 2, 220, 200, 160);
|
fill_rect(sx + W/2 - 4, sy + 2, 2, 7, 200, 180, 145);
|
||||||
fill_rect(sx + W - 9, sy + 1, 8, 10, ok, og, ob);
|
fill_rect(sx + W/2 - 1, sy + 1, 7, 10, ok, og, ob);
|
||||||
fill_rect(sx + W - 8, sy + 2, 6, 8, 190, 170, 135);
|
fill_rect(sx + W/2, sy + 2, 5, 8, 200, 180, 145);
|
||||||
fill_rect(sx + W - 7, sy + 1, 4, 2, 215, 195, 155);
|
fill_rect(sx + W/2 + 1, sy + 1, 3, 2, 220, 200, 160); /* merlon cap mid */
|
||||||
|
fill_rect(sx + W - 8, sy + 1, 7, 10, ok, og, ob);
|
||||||
|
fill_rect(sx + W - 7, sy + 2, 5, 8, 190, 170, 135);
|
||||||
|
fill_rect(sx + W - 6, sy + 1, 3, 2, 215, 195, 155); /* merlon cap R */
|
||||||
fill_rect(sx + 2, sy + 10, W - 4, 3, 215, 195, 155); /* coping */
|
fill_rect(sx + 2, sy + 10, W - 4, 3, 215, 195, 155); /* coping */
|
||||||
fill_rect(sx + 2, sy + 11, W - 4, 1, 120, 105, 80); /* coping shadow */
|
fill_rect(sx + 2, sy + 11, W - 4, 1, 120, 105, 80); /* coping shadow */
|
||||||
/* buttresses */
|
fill_rect(sx + 4, sy + 9, 2, 2, 180, 160, 125); /* coping bolt L */
|
||||||
|
fill_rect(sx + W - 6, sy + 9, 2, 2, 180, 160, 125); /* coping bolt R */
|
||||||
|
/* buttresses + mid pier */
|
||||||
fill_rect(sx + 0, sy + H/2 - 2, 4, H/2, ok, og, ob);
|
fill_rect(sx + 0, sy + H/2 - 2, 4, H/2, ok, og, ob);
|
||||||
fill_rect(sx + 1, sy + H/2, 2, H/2 - 4, 140, 125, 95);
|
fill_rect(sx + 1, sy + H/2, 2, H/2 - 4, 140, 125, 95);
|
||||||
fill_rect(sx + W - 4, sy + H/2 - 2, 4, H/2, ok, og, ob);
|
fill_rect(sx + W - 4, sy + H/2 - 2, 4, H/2, ok, og, ob);
|
||||||
fill_rect(sx + W - 3, sy + H/2, 2, H/2 - 4, 140, 125, 95);
|
fill_rect(sx + W - 3, sy + H/2, 2, H/2 - 4, 140, 125, 95);
|
||||||
/* block seams + dual slits */
|
fill_rect(sx + W/2 - 2, sy + H/2 + 4, 4, H/2 - 8, ok, og, ob); /* mid pier */
|
||||||
line(sx + 2, sy + H/2 + 2, sx + W - 2, sy + H/2 + 2, 55, 48, 38);
|
fill_rect(sx + W/2 - 1, sy + H/2 + 5, 2, H/2 - 10, 130, 115, 88);
|
||||||
|
/* gate arch + door + hinges */
|
||||||
|
fill_rect(sx + W/2 - 4, sy + H/2 + 2, 8, H/2 - 6, 45, 38, 30); /* gate recess */
|
||||||
|
fill_rect(sx + W/2 - 3, sy + H/2 + 3, 6, H/2 - 8, 55, 48, 38); /* door */
|
||||||
|
fill_rect(sx + W/2 - 2, sy + H/2 + 4, 4, 3, 35, 30, 24); /* gate grate */
|
||||||
|
fill_rect(sx + W/2 - 4, sy + H/2 + 2, 1, H/2 - 8, 90, 80, 60); /* hinge L */
|
||||||
|
fill_rect(sx + W/2 + 3, sy + H/2 + 2, 1, H/2 - 8, 90, 80, 60); /* hinge R */
|
||||||
|
fill_rect(sx + W/2 - 1, sy + H - 8, 2, 2, 200, 180, 80); /* lock plate */
|
||||||
|
/* embrasures + slits + scars */
|
||||||
|
fill_rect(sx + W/2 - 2, sy + H/2 - 4, 4, 5, 35, 30, 24); /* embrasure */
|
||||||
|
fill_rect(sx + W/2 - 1, sy + H/2 - 2, 2, 3, 20, 18, 14);
|
||||||
|
fill_rect(sx + W/4 - 1, sy + H/2 - 1, 3, 5, 40, 35, 28); /* side slit L */
|
||||||
|
fill_rect(sx + 3 * W/4 - 1, sy + H/2 - 1, 3, 5, 40, 35, 28); /* side slit R */
|
||||||
|
fill_rect(sx + 5, sy + H/2 + 8, 3, 2, 100, 70, 50); /* blast scar L */
|
||||||
|
fill_rect(sx + W - 8, sy + H/2 + 7, 4, 2, 95, 65, 45); /* blast scar R */
|
||||||
|
fill_rect(sx + 3, sy + H - 3, 4, 2, 80, 70, 55); /* rubble L */
|
||||||
|
fill_rect(sx + W - 7, sy + H - 3, 4, 2, 80, 70, 55); /* rubble R */
|
||||||
|
fill_rect(sx + W/2 + 5, sy + H/2 + 10, 2, 2, 60, 52, 40); /* chip */
|
||||||
|
line(sx + 2, sy + H/2 + 1, sx + W - 2, sy + H/2 + 1, 55, 48, 38);
|
||||||
line(sx + 2, sy + H/2 + 6, sx + W - 2, sy + H/2 + 6, 75, 65, 50);
|
line(sx + 2, sy + H/2 + 6, sx + W - 2, sy + H/2 + 6, 75, 65, 50);
|
||||||
line(sx + W/3, sy + 8, sx + W/3, sy + H - 4, 65, 55, 42);
|
line(sx + W/3, sy + 8, sx + W/3, sy + H - 4, 65, 55, 42);
|
||||||
line(sx + 2 * W/3, sy + 8, sx + 2 * W/3, sy + H - 4, 65, 55, 42);
|
line(sx + 2 * W/3, sy + 8, sx + 2 * W/3, sy + H - 4, 65, 55, 42);
|
||||||
fill_rect(sx + W/2 - 2, sy + H/2 - 2, 4, 8, 35, 30, 24); /* embrasure */
|
line(sx + 4, sy + H - 7, sx + W - 4, sy + H - 7, 50, 42, 32); /* plinth seam */
|
||||||
fill_rect(sx + W/2 - 1, sy + H/2, 2, 4, 20, 18, 14);
|
disc(sx + 6, sy + H/2 + 10, 1, 70, 55, 40); /* pock L */
|
||||||
fill_rect(sx + W/4 - 1, sy + H/2 + 1, 3, 5, 40, 35, 28); /* side slit */
|
disc(sx + W - 6, sy + H/2 + 9, 1, 70, 55, 40); /* pock R */
|
||||||
fill_rect(sx + 3 * W/4 - 1, sy + H/2 + 1, 3, 5, 40, 35, 28);
|
|
||||||
break;
|
break;
|
||||||
case BT_REPAIR:
|
case BT_REPAIR:
|
||||||
/* dense garage: pad, hull, bay/lift, tool rack, crane, crates (KKND depot) */
|
/* dense garage: pad, hull, bay/lift, tool rack, crane, crates (KKND depot) */
|
||||||
|
|
|
||||||
|
|
@ -962,38 +962,62 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) {
|
||||||
fill_rect(s, W - 6, H/2 - 5, 3, 2, 220, 210, 160, 255); /* side flood */
|
fill_rect(s, W - 6, H/2 - 5, 3, 2, 220, 210, 160, 255); /* side flood */
|
||||||
break;
|
break;
|
||||||
case BT_WALL:
|
case BT_WALL:
|
||||||
/* thick fort wall + crenels + seams + embrasure (KKND fort read) */
|
/* denser fort: battlement, gate, scars, rubble (KKND fort read) */
|
||||||
fill_rect(s, 0, 4, W, H - 4, ok, og, ob, 255);
|
fill_rect(s, 0, 4, W, H - 4, ok, og, ob, 255); /* outer hull */
|
||||||
fill_rect(s, 1, 6, W - 2, H - 8, 165, 145, 110, 255);
|
fill_rect(s, 1, 6, W - 2, H - 8, 165, 145, 110, 255); /* face */
|
||||||
|
fill_rect(s, 2, 7, W - 4, H - 12, 150, 132, 100, 255); /* inner face */
|
||||||
fill_rect(s, 2, H - 6, W - 4, 4, 90, 78, 58, 255); /* plinth */
|
fill_rect(s, 2, H - 6, W - 4, 4, 90, 78, 58, 255); /* plinth */
|
||||||
|
fill_rect(s, 3, H - 5, W - 6, 2, 70, 60, 48, 255); /* plinth shadow */
|
||||||
fill_rect(s, 1, H - 5, 3, 3, 70, 60, 45, 255); /* corner stone L */
|
fill_rect(s, 1, H - 5, 3, 3, 70, 60, 45, 255); /* corner stone L */
|
||||||
fill_rect(s, W - 4, H - 5, 3, 3, 70, 60, 45, 255); /* corner stone R */
|
fill_rect(s, W - 4, H - 5, 3, 3, 70, 60, 45, 255); /* corner stone R */
|
||||||
/* thick merlons + caps */
|
fill_rect(s, W/2 - 2, H - 4, 4, 2, 55, 48, 38, 255); /* threshold */
|
||||||
fill_rect(s, 1, 1, 8, 10, ok, og, ob, 255);
|
/* thick merlons + caps + 4th tooth */
|
||||||
fill_rect(s, 2, 2, 6, 8, 195, 175, 140, 255);
|
fill_rect(s, 1, 1, 7, 10, ok, og, ob, 255);
|
||||||
fill_rect(s, 3, 1, 4, 2, 220, 200, 160, 255); /* merlon cap */
|
fill_rect(s, 2, 2, 5, 8, 195, 175, 140, 255);
|
||||||
fill_rect(s, W/2 - 4, 1, 8, 10, ok, og, ob, 255);
|
fill_rect(s, 3, 1, 3, 2, 220, 200, 160, 255); /* merlon cap L */
|
||||||
fill_rect(s, W/2 - 3, 2, 6, 8, 200, 180, 145, 255);
|
fill_rect(s, W/2 - 5, 1, 4, 9, ok, og, ob, 255); /* merlon mid-L */
|
||||||
fill_rect(s, W/2 - 2, 1, 4, 2, 220, 200, 160, 255);
|
fill_rect(s, W/2 - 4, 2, 2, 7, 200, 180, 145, 255);
|
||||||
fill_rect(s, W - 9, 1, 8, 10, ok, og, ob, 255);
|
fill_rect(s, W/2 - 1, 1, 7, 10, ok, og, ob, 255);
|
||||||
fill_rect(s, W - 8, 2, 6, 8, 190, 170, 135, 255);
|
fill_rect(s, W/2, 2, 5, 8, 200, 180, 145, 255);
|
||||||
fill_rect(s, W - 7, 1, 4, 2, 215, 195, 155, 255);
|
fill_rect(s, W/2 + 1, 1, 3, 2, 220, 200, 160, 255); /* merlon cap mid */
|
||||||
|
fill_rect(s, W - 8, 1, 7, 10, ok, og, ob, 255);
|
||||||
|
fill_rect(s, W - 7, 2, 5, 8, 190, 170, 135, 255);
|
||||||
|
fill_rect(s, W - 6, 1, 3, 2, 215, 195, 155, 255); /* merlon cap R */
|
||||||
fill_rect(s, 2, 10, W - 4, 3, 215, 195, 155, 255); /* coping */
|
fill_rect(s, 2, 10, W - 4, 3, 215, 195, 155, 255); /* coping */
|
||||||
fill_rect(s, 2, 11, W - 4, 1, 120, 105, 80, 255); /* coping shadow */
|
fill_rect(s, 2, 11, W - 4, 1, 120, 105, 80, 255); /* coping shadow */
|
||||||
/* buttresses */
|
fill_rect(s, 4, 9, 2, 2, 180, 160, 125, 255); /* coping bolt L */
|
||||||
|
fill_rect(s, W - 6, 9, 2, 2, 180, 160, 125, 255); /* coping bolt R */
|
||||||
|
/* buttresses + mid pier */
|
||||||
fill_rect(s, 0, H/2 - 2, 4, H/2, ok, og, ob, 255);
|
fill_rect(s, 0, H/2 - 2, 4, H/2, ok, og, ob, 255);
|
||||||
fill_rect(s, 1, H/2, 2, H/2 - 4, 140, 125, 95, 255);
|
fill_rect(s, 1, H/2, 2, H/2 - 4, 140, 125, 95, 255);
|
||||||
fill_rect(s, W - 4, H/2 - 2, 4, H/2, ok, og, ob, 255);
|
fill_rect(s, W - 4, H/2 - 2, 4, H/2, ok, og, ob, 255);
|
||||||
fill_rect(s, W - 3, H/2, 2, H/2 - 4, 140, 125, 95, 255);
|
fill_rect(s, W - 3, H/2, 2, H/2 - 4, 140, 125, 95, 255);
|
||||||
/* block seams + dual slits */
|
fill_rect(s, W/2 - 2, H/2 + 4, 4, H/2 - 8, ok, og, ob, 255); /* mid pier */
|
||||||
line(s, 2, H/2 + 2, W - 2, H/2 + 2, 55, 48, 38, 255);
|
fill_rect(s, W/2 - 1, H/2 + 5, 2, H/2 - 10, 130, 115, 88, 255);
|
||||||
|
/* gate arch + door + hinges */
|
||||||
|
fill_rect(s, W/2 - 4, H/2 + 2, 8, H/2 - 6, 45, 38, 30, 255); /* gate recess */
|
||||||
|
fill_rect(s, W/2 - 3, H/2 + 3, 6, H/2 - 8, 55, 48, 38, 255); /* door */
|
||||||
|
fill_rect(s, W/2 - 2, H/2 + 4, 4, 3, 35, 30, 24, 255); /* gate grate */
|
||||||
|
fill_rect(s, W/2 - 4, H/2 + 2, 1, H/2 - 8, 90, 80, 60, 255); /* hinge L */
|
||||||
|
fill_rect(s, W/2 + 3, H/2 + 2, 1, H/2 - 8, 90, 80, 60, 255); /* hinge R */
|
||||||
|
fill_rect(s, W/2 - 1, H - 8, 2, 2, 200, 180, 80, 255); /* lock plate */
|
||||||
|
/* embrasures + slits + scars */
|
||||||
|
fill_rect(s, W/2 - 2, H/2 - 4, 4, 5, 35, 30, 24, 255); /* embrasure */
|
||||||
|
fill_rect(s, W/2 - 1, H/2 - 2, 2, 3, 20, 18, 14, 255);
|
||||||
|
fill_rect(s, W/4 - 1, H/2 - 1, 3, 5, 40, 35, 28, 255); /* side slit L */
|
||||||
|
fill_rect(s, 3 * W/4 - 1, H/2 - 1, 3, 5, 40, 35, 28, 255); /* side slit R */
|
||||||
|
fill_rect(s, 5, H/2 + 8, 3, 2, 100, 70, 50, 255); /* blast scar L */
|
||||||
|
fill_rect(s, W - 8, H/2 + 7, 4, 2, 95, 65, 45, 255); /* blast scar R */
|
||||||
|
fill_rect(s, 3, H - 3, 4, 2, 80, 70, 55, 255); /* rubble L */
|
||||||
|
fill_rect(s, W - 7, H - 3, 4, 2, 80, 70, 55, 255); /* rubble R */
|
||||||
|
fill_rect(s, W/2 + 5, H/2 + 10, 2, 2, 60, 52, 40, 255); /* chip */
|
||||||
|
line(s, 2, H/2 + 1, W - 2, H/2 + 1, 55, 48, 38, 255);
|
||||||
line(s, 2, H/2 + 6, W - 2, H/2 + 6, 75, 65, 50, 255);
|
line(s, 2, H/2 + 6, W - 2, H/2 + 6, 75, 65, 50, 255);
|
||||||
line(s, W/3, 8, W/3, H - 4, 65, 55, 42, 255);
|
line(s, W/3, 8, W/3, H - 4, 65, 55, 42, 255);
|
||||||
line(s, 2 * W/3, 8, 2 * W/3, H - 4, 65, 55, 42, 255);
|
line(s, 2 * W/3, 8, 2 * W/3, H - 4, 65, 55, 42, 255);
|
||||||
fill_rect(s, W/2 - 2, H/2 - 2, 4, 8, 35, 30, 24, 255); /* embrasure */
|
line(s, 4, H - 7, W - 4, H - 7, 50, 42, 32, 255); /* plinth seam */
|
||||||
fill_rect(s, W/2 - 1, H/2, 2, 4, 20, 18, 14, 255);
|
disc(s, 6, H/2 + 10, 1, 70, 55, 40, 255); /* pock L */
|
||||||
fill_rect(s, W/4 - 1, H/2 + 1, 3, 5, 40, 35, 28, 255); /* side slit */
|
disc(s, W - 6, H/2 + 9, 1, 70, 55, 40, 255); /* pock R */
|
||||||
fill_rect(s, 3 * W/4 - 1, H/2 + 1, 3, 5, 40, 35, 28, 255);
|
|
||||||
break;
|
break;
|
||||||
case BT_REPAIR:
|
case BT_REPAIR:
|
||||||
/* dense garage: pad, hull, bay/lift, tool rack, crane, crates (KKND depot) */
|
/* dense garage: pad, hull, bay/lift, tool rack, crane, crates (KKND depot) */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue