engine-c: denser BT_RESEARCH lab/dish/instrument silhouettes
This commit is contained in:
parent
3f15bea0a4
commit
5b0820efeb
2 changed files with 146 additions and 36 deletions
|
|
@ -1125,40 +1125,97 @@ static void draw_bld(Building *b, int sx, int sy) {
|
||||||
fill_rect(sx + W - 20, sy + H - 12, 4, 3, 180, 140, 70);
|
fill_rect(sx + W - 20, sy + H - 12, 4, 3, 180, 140, 70);
|
||||||
break;
|
break;
|
||||||
case BT_RESEARCH:
|
case BT_RESEARCH:
|
||||||
/* tall lab + dish mast + instrument bank (KKND lab read) */
|
/* dense lab: pad, hull, windows, dish mast, annex, instruments (KKND) */
|
||||||
fill_rect(sx + 5, sy + 12, W - 10, H - 16, ok, og, ob);
|
fill_rect(sx + 3, sy + H - 8, W - 6, 6, ok, og, ob); /* pad */
|
||||||
fill_rect(sx + 7, sy + 14, W - 14, H - 20, br, bg, bb);
|
fill_rect(sx + 4, sy + H - 7, W - 8, 4, 55, 50, 40);
|
||||||
fill_rect(sx + 9, sy + 16, W - 18, 10, lr, lg, lb); /* upper band */
|
fill_rect(sx + 5, sy + H - 6, 2, 2, 35, 32, 28); /* pad bolt L */
|
||||||
/* glowing lab windows */
|
fill_rect(sx + W - 7, sy + H - 6, 2, 2, 35, 32, 28); /* pad bolt R */
|
||||||
fill_rect(sx + 10, sy + H/2 - 2, 8, 6, 180, 230, 255);
|
/* main hull + upper band + rivets */
|
||||||
fill_rect(sx + 22, sy + H/2 - 2, 8, 6, 160, 220, 250);
|
fill_rect(sx + 5, sy + 12, W - 10, H - 18, ok, og, ob);
|
||||||
fill_rect(sx + 34, sy + H/2 - 2, 8, 6, 180, 230, 255);
|
fill_rect(sx + 7, sy + 14, W - 14, H - 22, br, bg, bb);
|
||||||
fill_rect(sx + 12, sy + H/2, 4, 2, 240, 250, 255);
|
fill_rect(sx + 9, sy + 16, W - 18, 10, lr, lg, lb);
|
||||||
fill_rect(sx + 24, sy + H/2, 4, 2, 230, 245, 255);
|
fill_rect(sx + 8, sy + 15, 2, 2, 90, 85, 70); /* rivet */
|
||||||
/* dish on tall mast */
|
fill_rect(sx + W - 12, sy + 15, 2, 2, 90, 85, 70);
|
||||||
|
fill_rect(sx + 8, sy + H - 20, 2, 2, 90, 85, 70);
|
||||||
|
fill_rect(sx + W - 12, sy + H - 20, 2, 2, 90, 85, 70);
|
||||||
|
line(sx + 7, sy + 26, sx + W - 8, sy + 26, 70, 65, 55); /* hull seam */
|
||||||
|
/* glowing lab windows (2 rows + mullions + glow) */
|
||||||
|
fill_rect(sx + 10, sy + H/2 - 6, 8, 5, 180, 230, 255);
|
||||||
|
fill_rect(sx + 22, sy + H/2 - 6, 8, 5, 160, 220, 250);
|
||||||
|
fill_rect(sx + 34, sy + H/2 - 6, 8, 5, 180, 230, 255);
|
||||||
|
fill_rect(sx + 10, sy + H/2 + 2, 8, 5, 150, 210, 245);
|
||||||
|
fill_rect(sx + 22, sy + H/2 + 2, 8, 5, 170, 225, 255);
|
||||||
|
fill_rect(sx + 34, sy + H/2 + 2, 8, 5, 150, 210, 245);
|
||||||
|
fill_rect(sx + 12, sy + H/2 - 4, 4, 2, 240, 250, 255);
|
||||||
|
fill_rect(sx + 24, sy + H/2 - 4, 4, 2, 230, 245, 255);
|
||||||
|
fill_rect(sx + 36, sy + H/2 - 4, 4, 2, 240, 250, 255);
|
||||||
|
line(sx + 14, sy + H/2 - 6, sx + 14, sy + H/2 - 1, 90, 140, 180);
|
||||||
|
line(sx + 26, sy + H/2 - 6, sx + 26, sy + H/2 - 1, 90, 140, 180);
|
||||||
|
line(sx + 38, sy + H/2 - 6, sx + 38, sy + H/2 - 1, 90, 140, 180);
|
||||||
|
/* entry door + hazard */
|
||||||
|
fill_rect(sx + W/2 - 5, sy + H - 22, 10, 12, ok, og, ob);
|
||||||
|
fill_rect(sx + W/2 - 4, sy + H - 21, 8, 10, 40, 38, 45);
|
||||||
|
fill_rect(sx + W/2 - 4, sy + H - 21, 8, 2, 200, 160, 40);
|
||||||
|
fill_rect(sx + W/2 - 1, sy + H - 16, 2, 3, 180, 170, 90); /* handle */
|
||||||
|
/* primary dish on tall mast + braces */
|
||||||
fill_rect(sx + W/2 + 4, sy + 2, 5, 18, ok, og, ob);
|
fill_rect(sx + W/2 + 4, sy + 2, 5, 18, ok, og, ob);
|
||||||
fill_rect(sx + W/2 + 5, sy + 3, 3, 16, 110, 100, 75);
|
fill_rect(sx + W/2 + 5, sy + 3, 3, 16, 110, 100, 75);
|
||||||
|
line(sx + W/2 + 2, sy + 14, sx + W/2 + 5, sy + 8, 80, 75, 55);
|
||||||
|
line(sx + W/2 + 10, sy + 14, sx + W/2 + 7, sy + 8, 80, 75, 55);
|
||||||
disc(sx + W/2 + 6, sy + 12, 13, ok, og, ob);
|
disc(sx + W/2 + 6, sy + 12, 13, ok, og, ob);
|
||||||
disc(sx + W/2 + 6, sy + 12, 11, 215, 185, 85);
|
disc(sx + W/2 + 6, sy + 12, 11, 215, 185, 85);
|
||||||
ring(sx + W/2 + 6, sy + 12, 8, 2, 170, 140, 55);
|
ring(sx + W/2 + 6, sy + 12, 8, 2, 170, 140, 55);
|
||||||
disc(sx + W/2 + 6, sy + 12, 4, 255, 245, 170);
|
disc(sx + W/2 + 6, sy + 12, 4, 255, 245, 170);
|
||||||
disc(sx + W/2 + 6, sy + 12, 2, 255, 255, 220); /* feed */
|
disc(sx + W/2 + 6, sy + 12, 2, 255, 255, 220); /* feed */
|
||||||
line(sx + W/2 + 6, sy + 2, sx + W/2 + 6, sy + 12, 200, 190, 120);
|
line(sx + W/2 + 6, sy + 2, sx + W/2 + 6, sy + 12, 200, 190, 120);
|
||||||
/* side antenna stubs */
|
/* secondary small dish + cable */
|
||||||
|
fill_rect(sx + 8, sy + 4, 3, 10, ok, og, ob);
|
||||||
|
fill_rect(sx + 9, sy + 5, 1, 8, 100, 95, 70);
|
||||||
|
disc(sx + 9, sy + 8, 5, ok, og, ob);
|
||||||
|
disc(sx + 9, sy + 8, 3, 190, 160, 70);
|
||||||
|
disc(sx + 9, sy + 8, 1, 255, 240, 160);
|
||||||
|
line(sx + 12, sy + 10, sx + W/2 + 4, sy + 14, 90, 85, 60); /* coax */
|
||||||
|
/* roof vents / AC + floodlight */
|
||||||
|
fill_rect(sx + 16, sy + 8, 6, 4, ok, og, ob);
|
||||||
|
fill_rect(sx + 17, sy + 9, 4, 2, 120, 115, 95);
|
||||||
|
fill_rect(sx + 24, sy + 7, 5, 3, 70, 68, 60);
|
||||||
|
fill_rect(sx + 25, sy + 6, 3, 2, 90, 88, 78);
|
||||||
|
fill_rect(sx + W - 14, sy + 4, 2, 2, 220, 200, 80); /* floodlight */
|
||||||
|
fill_rect(sx + W - 13, sy + 3, 1, 3, 90, 85, 70);
|
||||||
|
/* side antenna array */
|
||||||
fill_rect(sx + 10, sy + 6, 3, 10, 200, 200, 140);
|
fill_rect(sx + 10, sy + 6, 3, 10, 200, 200, 140);
|
||||||
fill_rect(sx + 18, sy + 4, 2, 12, 220, 220, 150);
|
fill_rect(sx + 18, sy + 4, 2, 12, 220, 220, 150);
|
||||||
|
fill_rect(sx + 14, sy + 5, 2, 8, 180, 180, 130);
|
||||||
disc(sx + 11, sy + 5, 2, 255, 240, 120);
|
disc(sx + 11, sy + 5, 2, 255, 240, 120);
|
||||||
disc(sx + 19, sy + 3, 2, 255, 230, 100);
|
disc(sx + 19, sy + 3, 2, 255, 230, 100);
|
||||||
/* instrument bank / console strip */
|
disc(sx + 15, sy + 4, 1, 255, 220, 90);
|
||||||
|
/* side annex / sample bay */
|
||||||
{
|
{
|
||||||
uint8_t dr, dg, db;
|
uint8_t dr, dg, db;
|
||||||
darken3(br, bg, bb, 0.5f, &dr, &dg, &db);
|
darken3(br, bg, bb, 0.5f, &dr, &dg, &db);
|
||||||
fill_rect(sx + 10, sy + H - 18, W - 28, 8, dr, dg, db);
|
fill_rect(sx + W - 16, sy + H - 28, 12, 14, ok, og, ob);
|
||||||
|
fill_rect(sx + W - 15, sy + H - 27, 10, 12, dr, dg, db);
|
||||||
}
|
}
|
||||||
fill_rect(sx + 12, sy + H - 16, 4, 4, 80, 220, 120);
|
fill_rect(sx + W - 13, sy + H - 25, 6, 4, 140, 200, 255); /* annex window */
|
||||||
fill_rect(sx + 18, sy + H - 16, 4, 4, 80, 160, 255);
|
fill_rect(sx + W - 12, sy + H - 24, 2, 2, 230, 245, 255);
|
||||||
fill_rect(sx + 24, sy + H - 16, 4, 4, 255, 180, 80);
|
fill_rect(sx + W - 14, sy + H - 18, 8, 2, 200, 160, 40); /* hazard */
|
||||||
fill_rect(sx + 30, sy + H - 16, 4, 4, 200, 100, 255);
|
/* cooling pipes along hull */
|
||||||
|
line(sx + 6, sy + 20, sx + 6, sy + H - 14, 100, 140, 180);
|
||||||
|
line(sx + W - 8, sy + 20, sx + W - 8, sy + H - 14, 100, 140, 180);
|
||||||
|
fill_rect(sx + 5, sy + H/2, 3, 3, 80, 110, 140); /* valve L */
|
||||||
|
fill_rect(sx + W - 9, sy + H/2 + 4, 3, 3, 80, 110, 140);
|
||||||
|
/* instrument bank / console strip denser */
|
||||||
|
{
|
||||||
|
uint8_t dr, dg, db;
|
||||||
|
darken3(br, bg, bb, 0.5f, &dr, &dg, &db);
|
||||||
|
fill_rect(sx + 10, sy + H - 16, W - 30, 7, dr, dg, db);
|
||||||
|
}
|
||||||
|
fill_rect(sx + 12, sy + H - 14, 3, 3, 80, 220, 120);
|
||||||
|
fill_rect(sx + 17, sy + H - 14, 3, 3, 80, 160, 255);
|
||||||
|
fill_rect(sx + 22, sy + H - 14, 3, 3, 255, 180, 80);
|
||||||
|
fill_rect(sx + 27, sy + H - 14, 3, 3, 200, 100, 255);
|
||||||
|
fill_rect(sx + 32, sy + H - 14, 3, 3, 255, 80, 120);
|
||||||
|
fill_rect(sx + 12, sy + H - 10, 22, 1, 60, 55, 50); /* LED rail */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -923,36 +923,89 @@ SDL_Texture *sprites_make_bld(SDL_Renderer *r, BuildingType t, Faction f) {
|
||||||
fill_rect(s, W - 20, H - 12, 4, 3, 180, 140, 70, 255);
|
fill_rect(s, W - 20, H - 12, 4, 3, 180, 140, 70, 255);
|
||||||
break;
|
break;
|
||||||
case BT_RESEARCH:
|
case BT_RESEARCH:
|
||||||
/* tall lab + dish mast + instrument bank (KKND lab read) */
|
/* dense lab: pad, hull, windows, dish mast, annex, instruments (KKND) */
|
||||||
fill_rect(s, 5, 12, W - 10, H - 16, ok, og, ob, 255);
|
fill_rect(s, 3, H - 8, W - 6, 6, ok, og, ob, 255); /* pad */
|
||||||
fill_rect(s, 7, 14, W - 14, H - 20, base.r, base.g, base.b, 255);
|
fill_rect(s, 4, H - 7, W - 8, 4, 55, 50, 40, 255);
|
||||||
fill_rect(s, 9, 16, W - 18, 10, lite.r, lite.g, lite.b, 255); /* upper band */
|
fill_rect(s, 5, H - 6, 2, 2, 35, 32, 28, 255); /* pad bolt L */
|
||||||
/* glowing lab windows */
|
fill_rect(s, W - 7, H - 6, 2, 2, 35, 32, 28, 255); /* pad bolt R */
|
||||||
fill_rect(s, 10, H/2 - 2, 8, 6, 180, 230, 255, 255);
|
/* main hull + upper band + rivets */
|
||||||
fill_rect(s, 22, H/2 - 2, 8, 6, 160, 220, 250, 255);
|
fill_rect(s, 5, 12, W - 10, H - 18, ok, og, ob, 255);
|
||||||
fill_rect(s, 34, H/2 - 2, 8, 6, 180, 230, 255, 255);
|
fill_rect(s, 7, 14, W - 14, H - 22, base.r, base.g, base.b, 255);
|
||||||
fill_rect(s, 12, H/2, 4, 2, 240, 250, 255, 255);
|
fill_rect(s, 9, 16, W - 18, 10, lite.r, lite.g, lite.b, 255);
|
||||||
fill_rect(s, 24, H/2, 4, 2, 230, 245, 255, 255);
|
fill_rect(s, 8, 15, 2, 2, 90, 85, 70, 255); /* rivet */
|
||||||
/* dish on tall mast */
|
fill_rect(s, W - 12, 15, 2, 2, 90, 85, 70, 255);
|
||||||
|
fill_rect(s, 8, H - 20, 2, 2, 90, 85, 70, 255);
|
||||||
|
fill_rect(s, W - 12, H - 20, 2, 2, 90, 85, 70, 255);
|
||||||
|
line(s, 7, 26, W - 8, 26, 70, 65, 55, 255); /* hull seam */
|
||||||
|
/* glowing lab windows (2 rows + mullions + glow) */
|
||||||
|
fill_rect(s, 10, H/2 - 6, 8, 5, 180, 230, 255, 255);
|
||||||
|
fill_rect(s, 22, H/2 - 6, 8, 5, 160, 220, 250, 255);
|
||||||
|
fill_rect(s, 34, H/2 - 6, 8, 5, 180, 230, 255, 255);
|
||||||
|
fill_rect(s, 10, H/2 + 2, 8, 5, 150, 210, 245, 255);
|
||||||
|
fill_rect(s, 22, H/2 + 2, 8, 5, 170, 225, 255, 255);
|
||||||
|
fill_rect(s, 34, H/2 + 2, 8, 5, 150, 210, 245, 255);
|
||||||
|
fill_rect(s, 12, H/2 - 4, 4, 2, 240, 250, 255, 255);
|
||||||
|
fill_rect(s, 24, H/2 - 4, 4, 2, 230, 245, 255, 255);
|
||||||
|
fill_rect(s, 36, H/2 - 4, 4, 2, 240, 250, 255, 255);
|
||||||
|
line(s, 14, H/2 - 6, 14, H/2 - 1, 90, 140, 180, 255);
|
||||||
|
line(s, 26, H/2 - 6, 26, H/2 - 1, 90, 140, 180, 255);
|
||||||
|
line(s, 38, H/2 - 6, 38, H/2 - 1, 90, 140, 180, 255);
|
||||||
|
/* entry door + hazard */
|
||||||
|
fill_rect(s, W/2 - 5, H - 22, 10, 12, ok, og, ob, 255);
|
||||||
|
fill_rect(s, W/2 - 4, H - 21, 8, 10, 40, 38, 45, 255);
|
||||||
|
fill_rect(s, W/2 - 4, H - 21, 8, 2, 200, 160, 40, 255);
|
||||||
|
fill_rect(s, W/2 - 1, H - 16, 2, 3, 180, 170, 90, 255); /* handle */
|
||||||
|
/* primary dish on tall mast + braces */
|
||||||
fill_rect(s, W/2 + 4, 2, 5, 18, ok, og, ob, 255);
|
fill_rect(s, W/2 + 4, 2, 5, 18, ok, og, ob, 255);
|
||||||
fill_rect(s, W/2 + 5, 3, 3, 16, 110, 100, 75, 255);
|
fill_rect(s, W/2 + 5, 3, 3, 16, 110, 100, 75, 255);
|
||||||
|
line(s, W/2 + 2, 14, W/2 + 5, 8, 80, 75, 55, 255);
|
||||||
|
line(s, W/2 + 10, 14, W/2 + 7, 8, 80, 75, 55, 255);
|
||||||
disc(s, W/2 + 6, 12, 13, ok, og, ob, 255);
|
disc(s, W/2 + 6, 12, 13, ok, og, ob, 255);
|
||||||
disc(s, W/2 + 6, 12, 11, 215, 185, 85, 255);
|
disc(s, W/2 + 6, 12, 11, 215, 185, 85, 255);
|
||||||
ring(s, W/2 + 6, 12, 8, 2, 170, 140, 55, 255);
|
ring(s, W/2 + 6, 12, 8, 2, 170, 140, 55, 255);
|
||||||
disc(s, W/2 + 6, 12, 4, 255, 245, 170, 255);
|
disc(s, W/2 + 6, 12, 4, 255, 245, 170, 255);
|
||||||
disc(s, W/2 + 6, 12, 2, 255, 255, 220, 255); /* feed */
|
disc(s, W/2 + 6, 12, 2, 255, 255, 220, 255); /* feed */
|
||||||
line(s, W/2 + 6, 2, W/2 + 6, 12, 200, 190, 120, 255);
|
line(s, W/2 + 6, 2, W/2 + 6, 12, 200, 190, 120, 255);
|
||||||
/* side antenna stubs */
|
/* secondary small dish + cable */
|
||||||
|
fill_rect(s, 8, 4, 3, 10, ok, og, ob, 255);
|
||||||
|
fill_rect(s, 9, 5, 1, 8, 100, 95, 70, 255);
|
||||||
|
disc(s, 9, 8, 5, ok, og, ob, 255);
|
||||||
|
disc(s, 9, 8, 3, 190, 160, 70, 255);
|
||||||
|
disc(s, 9, 8, 1, 255, 240, 160, 255);
|
||||||
|
line(s, 12, 10, W/2 + 4, 14, 90, 85, 60, 255); /* coax */
|
||||||
|
/* roof vents / AC + floodlight */
|
||||||
|
fill_rect(s, 16, 8, 6, 4, ok, og, ob, 255);
|
||||||
|
fill_rect(s, 17, 9, 4, 2, 120, 115, 95, 255);
|
||||||
|
fill_rect(s, 24, 7, 5, 3, 70, 68, 60, 255);
|
||||||
|
fill_rect(s, 25, 6, 3, 2, 90, 88, 78, 255);
|
||||||
|
fill_rect(s, W - 14, 4, 2, 2, 220, 200, 80, 255); /* floodlight */
|
||||||
|
fill_rect(s, W - 13, 3, 1, 3, 90, 85, 70, 255);
|
||||||
|
/* side antenna array */
|
||||||
fill_rect(s, 10, 6, 3, 10, 200, 200, 140, 255);
|
fill_rect(s, 10, 6, 3, 10, 200, 200, 140, 255);
|
||||||
fill_rect(s, 18, 4, 2, 12, 220, 220, 150, 255);
|
fill_rect(s, 18, 4, 2, 12, 220, 220, 150, 255);
|
||||||
|
fill_rect(s, 14, 5, 2, 8, 180, 180, 130, 255);
|
||||||
disc(s, 11, 5, 2, 255, 240, 120, 255);
|
disc(s, 11, 5, 2, 255, 240, 120, 255);
|
||||||
disc(s, 19, 3, 2, 255, 230, 100, 255);
|
disc(s, 19, 3, 2, 255, 230, 100, 255);
|
||||||
/* instrument bank / console strip */
|
disc(s, 15, 4, 1, 255, 220, 90, 255);
|
||||||
fill_rect(s, 10, H - 18, W - 28, 8, dark.r, dark.g, dark.b, 255);
|
/* side annex / sample bay */
|
||||||
fill_rect(s, 12, H - 16, 4, 4, 80, 220, 120, 255);
|
fill_rect(s, W - 16, H - 28, 12, 14, ok, og, ob, 255);
|
||||||
fill_rect(s, 18, H - 16, 4, 4, 80, 160, 255, 255);
|
fill_rect(s, W - 15, H - 27, 10, 12, dark.r, dark.g, dark.b, 255);
|
||||||
fill_rect(s, 24, H - 16, 4, 4, 255, 180, 80, 255);
|
fill_rect(s, W - 13, H - 25, 6, 4, 140, 200, 255, 255); /* annex window */
|
||||||
fill_rect(s, 30, H - 16, 4, 4, 200, 100, 255, 255);
|
fill_rect(s, W - 12, H - 24, 2, 2, 230, 245, 255, 255);
|
||||||
|
fill_rect(s, W - 14, H - 18, 8, 2, 200, 160, 40, 255); /* hazard */
|
||||||
|
/* cooling pipes along hull */
|
||||||
|
line(s, 6, 20, 6, H - 14, 100, 140, 180, 255);
|
||||||
|
line(s, W - 8, 20, W - 8, H - 14, 100, 140, 180, 255);
|
||||||
|
fill_rect(s, 5, H/2, 3, 3, 80, 110, 140, 255); /* valve L */
|
||||||
|
fill_rect(s, W - 9, H/2 + 4, 3, 3, 80, 110, 140, 255);
|
||||||
|
/* instrument bank / console strip denser */
|
||||||
|
fill_rect(s, 10, H - 16, W - 30, 7, dark.r, dark.g, dark.b, 255);
|
||||||
|
fill_rect(s, 12, H - 14, 3, 3, 80, 220, 120, 255);
|
||||||
|
fill_rect(s, 17, H - 14, 3, 3, 80, 160, 255, 255);
|
||||||
|
fill_rect(s, 22, H - 14, 3, 3, 255, 180, 80, 255);
|
||||||
|
fill_rect(s, 27, H - 14, 3, 3, 200, 100, 255, 255);
|
||||||
|
fill_rect(s, 32, H - 14, 3, 3, 255, 80, 120, 255);
|
||||||
|
fill_rect(s, 12, H - 10, 22, 1, 60, 55, 50, 255); /* LED rail */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
(void)dark;
|
(void)dark;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue