engine-c: denser INFANTRY/MUTANT/BEAST/HARVESTER silhouettes (sprites+snapshot)
This commit is contained in:
parent
b9125bad01
commit
6e081ce46f
2 changed files with 135 additions and 27 deletions
|
|
@ -146,22 +146,36 @@ static void draw_unit(Unit *u, int sx, int sy) {
|
|||
|
||||
switch (u->type) {
|
||||
case UT_INFANTRY:
|
||||
/* legs → torso → helmet/visor → pack → thick rifle (KKND2 foot soldier) */
|
||||
/* boots/knees → torso/belt/pouches → pads → pack → helmet/visor/antenna → rifle+bayonet */
|
||||
disc(LX(11,23), LY(11,23), SI(3), ok, og, ob);
|
||||
disc(LX(19,23), LY(19,23), SI(3), ok, og, ob);
|
||||
disc(LX(11,23), LY(11,23), SI(2), br, bg, bb);
|
||||
disc(LX(19,23), LY(19,23), SI(2), br, bg, bb);
|
||||
fill_rect(LX(10,24)-SI(1), LY(10,24)-1, SI(3), SI(2), 40, 36, 30); /* boot L */
|
||||
fill_rect(LX(18,24)-SI(1), LY(18,24)-1, SI(3), SI(2), 40, 36, 30); /* boot R */
|
||||
fill_rect(LX(10,20)-SI(1), LY(10,20)-1, SI(3), SI(2), 55, 50, 42); /* knee pad L */
|
||||
fill_rect(LX(18,20)-SI(1), LY(18,20)-1, SI(3), SI(2), 55, 50, 42); /* knee pad R */
|
||||
disc(sx, sy, SI(9), ok, og, ob);
|
||||
disc(sx, sy, SI(7), br, bg, bb);
|
||||
fill_rect(LX(11,17)-SI(1), LY(11,17)-1, SI(8), SI(2), 45, 42, 36); /* belt */
|
||||
fill_rect(LX(12,16)-SI(1), LY(12,16)-1, SI(2), SI(2), 60, 55, 45); /* pouch L */
|
||||
fill_rect(LX(16,16)-SI(1), LY(16,16)-1, SI(2), SI(2), 60, 55, 45); /* pouch R */
|
||||
fill_rect(LX(9,12)-SI(1), LY(9,12)-SI(1), SI(3), SI(3), 50, 46, 40); /* shoulder pad L */
|
||||
fill_rect(LX(19,12)-SI(1), LY(19,12)-SI(1), SI(3), SI(3), 50, 46, 40); /* shoulder pad R */
|
||||
disc(LX(10,16), LY(10,16), SI(3), ok, og, ob); /* backpack */
|
||||
disc(LX(10,16), LY(10,16), SI(2), 50, 46, 40);
|
||||
fill_rect(LX(8,15)-SI(1), LY(8,15)-SI(1), SI(2), SI(3), 40, 38, 32); /* pack strap */
|
||||
disc(LX(15,8), LY(15,8), SI(5), ok, og, ob);
|
||||
disc(LX(15,8), LY(15,8), SI(4), lr, lg, lb); /* helmet */
|
||||
fill_rect(LX(13,8)-SI(1), LY(13,8)-1, SI(5), SI(2), 30, 40, 50); /* visor */
|
||||
fill_rect(LX(12,7)-SI(1), LY(12,7)-1, SI(5), SI(2), 30, 40, 50); /* visor */
|
||||
line(LX(14,6), LY(14,6), LX(14,1), LY(14,1), 50, 46, 40); /* antenna */
|
||||
line(LX(15,6), LY(15,6), LX(15,0), LY(15,0), lr, lg, lb);
|
||||
line(LX(16,14), LY(16,14), LX(16,0), LY(16,0), 40, 36, 30);
|
||||
line(LX(17,14), LY(17,14), LX(17,1), LY(17,1), 55, 50, 40);
|
||||
line(LX(18,14), LY(18,14), LX(18,2), LY(18,2), 45, 40, 34);
|
||||
disc(LX(17,1), LY(17,1), SI(2), 60, 55, 45); /* muzzle tip */
|
||||
line(LX(17,2), LY(17,2), LX(20,0), LY(20,0), 70, 65, 55); /* bayonet */
|
||||
line(LX(18,2), LY(18,2), LX(21,1), LY(21,1), 55, 50, 40);
|
||||
break;
|
||||
case UT_BUGGY:
|
||||
/* fenders + bumper + cabin + roll bar + spare + exhaust + lights + MG */
|
||||
|
|
@ -280,12 +294,16 @@ static void draw_unit(Unit *u, int sx, int sy) {
|
|||
tyre_mark(LX(22,23), LY(22,23), SI(4), ph, 0);
|
||||
break;
|
||||
case UT_HARVESTER: {
|
||||
/* cabin + scoop lip + cargo bed (gold by cargo) + hubbed dual wheels */
|
||||
/* cabin + boom/scoop + conveyor + hopper panels + exhaust/lights + hubbed wheels */
|
||||
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(LX(4,10)-SI(1), LY(4,10)-SI(2), SI(8), SI(8), lr, lg, lb); /* cabin */
|
||||
fill_rect(LX(5,9)-SI(1), LY(5,9)-SI(1), SI(6), SI(3), 35, 55, 75); /* glass */
|
||||
fill_rect(LX(2,14)-SI(1), LY(2,14)-SI(1), SI(4), SI(5), 90, 80, 55); /* scoop */
|
||||
fill_rect(LX(3,8)-SI(1), LY(3,8)-SI(2), SI(8), SI(8), lr, lg, lb); /* cabin */
|
||||
fill_rect(LX(4,8)-SI(1), LY(4,8)-SI(1), SI(6), SI(3), 35, 55, 75); /* glass */
|
||||
fill_rect(LX(5,12)-SI(1), LY(5,12)-1, SI(4), SI(2), 45, 42, 36); /* cabin panel */
|
||||
line(LX(2,14), LY(2,14), LX(8,11), LY(8,11), 50, 46, 40); /* boom arm */
|
||||
line(LX(2,15), LY(2,15), LX(8,12), LY(8,12), 70, 65, 55);
|
||||
fill_rect(LX(0,14)-SI(1), LY(0,14)-SI(1), SI(5), SI(5), 90, 80, 55); /* scoop lip */
|
||||
fill_rect(LX(1,15)-SI(1), LY(1,15)-SI(1), SI(3), SI(3), 70, 60, 40);
|
||||
int bed_w = SI(14), bed_h = SI(10);
|
||||
int bed_x = sx - SI(4), bed_y = sy - SI(5);
|
||||
fill_rect(bed_x, bed_y, bed_w, bed_h, 55, 48, 32);
|
||||
|
|
@ -297,10 +315,17 @@ static void draw_unit(Unit *u, int sx, int sy) {
|
|||
if (fw > 0)
|
||||
fill_rect(bed_x, bed_y, fw, bed_h, 200, 170, 90);
|
||||
if (fill > 0.15f) {
|
||||
line(LX(14,10), LY(14,10), LX(26,10), LY(26,10), 160, 130, 70);
|
||||
line(LX(14,13), LY(14,13), LX(26,13), LY(26,13), 160, 130, 70);
|
||||
line(LX(14,16), LY(14,16), LX(26,16), LY(26,16), 160, 130, 70);
|
||||
line(LX(14,10), LY(14,10), LX(24,10), LY(24,10), 160, 130, 70);
|
||||
line(LX(14,13), LY(14,13), LX(24,13), LY(24,13), 160, 130, 70);
|
||||
line(LX(14,16), LY(14,16), LX(24,16), LY(24,16), 160, 130, 70);
|
||||
}
|
||||
fill_rect(LX(12,9)-SI(1), LY(12,9)-1, SI(12), SI(1), 45, 40, 32); /* hopper rim */
|
||||
fill_rect(LX(24,11)-SI(1), LY(24,11)-SI(2), SI(3), SI(8), 50, 46, 40); /* side panel */
|
||||
fill_rect(LX(25,12)-SI(1), LY(25,12)-SI(1), SI(1), SI(6), 70, 65, 55);
|
||||
fill_rect(LX(20,18)-SI(1), LY(20,18)-1, SI(4), SI(2), 40, 38, 32); /* exhaust */
|
||||
fill_rect(LX(21,17)-SI(1), LY(21,17)-1, SI(2), SI(1), 70, 65, 55);
|
||||
disc(LX(4,10), LY(4,10), SI(2), 220, 200, 80); /* cabin light */
|
||||
disc(LX(2,16), LY(2,16), SI(1), 220, 180, 60); /* scoop lamp */
|
||||
disc(LX(8,23), LY(8,23), SI(5), ok, og, ob);
|
||||
disc(LX(22,23), LY(22,23), SI(5), ok, og, ob);
|
||||
disc(LX(8,23), LY(8,23), SI(4), mr, mg, mb);
|
||||
|
|
@ -354,34 +379,58 @@ static void draw_unit(Unit *u, int sx, int sy) {
|
|||
disc(LX(28,15), LY(28,15), SI(2), 60, 55, 45);
|
||||
break;
|
||||
case UT_MUTANT:
|
||||
/* hunched bulk + brow ridge + thick spikes + claw hand */
|
||||
/* plates + eyes/jaw + spikes + dual claws + tail */
|
||||
disc(sx, sy+SI(2), SI(11), ok, og, ob);
|
||||
disc(sx, sy, SI(9), br, bg, bb);
|
||||
fill_rect(LX(10,14)-SI(1), LY(10,14)-SI(1), SI(4), SI(3), 45, 40, 35); /* chest plate L */
|
||||
fill_rect(LX(17,14)-SI(1), LY(17,14)-SI(1), SI(4), SI(3), 45, 40, 35); /* chest plate R */
|
||||
disc(LX(15,9), LY(15,9), SI(5), ok, og, ob);
|
||||
disc(LX(15,9), LY(15,9), SI(4), lr, lg, lb);
|
||||
fill_rect(LX(12,8)-SI(1), LY(12,8)-1, SI(7), SI(2), 30, 40, 50); /* brow */
|
||||
fill_rect(LX(11,7)-SI(1), LY(11,7)-1, SI(7), SI(2), 30, 40, 50); /* brow */
|
||||
disc(LX(12,9), LY(12,9), SI(1), 200, 60, 40); /* eye L */
|
||||
disc(LX(18,9), LY(18,9), SI(1), 200, 60, 40); /* eye R */
|
||||
fill_rect(LX(13,11)-SI(1), LY(13,11)-1, SI(5), SI(2), 40, 30, 28); /* jaw */
|
||||
line(LX(14,12), LY(14,12), LX(14,13), LY(14,13), 70, 55, 45); /* fang */
|
||||
line(LX(16,12), LY(16,12), LX(16,13), LY(16,13), 70, 55, 45);
|
||||
line(LX(12,6), LY(12,6), LX(9,0), LY(9,0), 40, 36, 30);
|
||||
line(LX(13,6), LY(13,6), LX(10,1), LY(10,1), 55, 50, 40);
|
||||
line(LX(15,5), LY(15,5), LX(15,0), LY(15,0), 40, 36, 30);
|
||||
line(LX(16,5), LY(16,5), LX(16,0), LY(16,0), 55, 50, 40);
|
||||
line(LX(18,6), LY(18,6), LX(21,0), LY(21,0), 40, 36, 30);
|
||||
line(LX(17,6), LY(17,6), LX(20,1), LY(20,1), 55, 50, 40);
|
||||
line(LX(14,4), LY(14,4), LX(12,0), LY(12,0), 50, 45, 35); /* extra spike */
|
||||
line(sx, sy+SI(1), LX(26,8), LY(26,8), 40, 36, 30);
|
||||
line(sx, sy+SI(2), LX(26,9), LY(26,9), 50, 45, 35);
|
||||
line(LX(24,9), LY(24,9), LX(29,5), LY(29,5), 55, 50, 40);
|
||||
line(LX(24,9), LY(24,9), LX(29,11), LY(29,11), 55, 50, 40);
|
||||
line(LX(24,10), LY(24,10), LX(28,8), LY(28,8), 70, 60, 45);
|
||||
disc(LX(28,8), LY(28,8), SI(2), 70, 60, 45); /* claw tip */
|
||||
disc(LX(28,8), LY(28,8), SI(2), 70, 60, 45); /* claw tip R */
|
||||
line(LX(12,16), LY(12,16), LX(4,10), LY(4,10), 40, 36, 30); /* second claw L */
|
||||
line(LX(12,17), LY(12,17), LX(4,11), LY(4,11), 50, 45, 35);
|
||||
line(LX(5,10), LY(5,10), LX(1,7), LY(1,7), 55, 50, 40);
|
||||
line(LX(5,11), LY(5,11), LX(1,13), LY(1,13), 55, 50, 40);
|
||||
disc(LX(2,10), LY(2,10), SI(2), 70, 60, 45);
|
||||
line(LX(15,20), LY(15,20), LX(15,27), LY(15,27), 45, 40, 35); /* tail */
|
||||
line(LX(16,20), LY(16,20), LX(18,28), LY(18,28), 55, 50, 40);
|
||||
disc(LX(17,27), LY(17,27), SI(2), 60, 50, 40);
|
||||
disc(LX(10,22), LY(10,22), SI(4), ok, og, ob);
|
||||
disc(LX(20,22), LY(20,22), SI(4), ok, og, ob);
|
||||
disc(LX(10,22), LY(10,22), SI(3), br, bg, bb);
|
||||
disc(LX(20,22), LY(20,22), SI(3), br, bg, bb);
|
||||
break;
|
||||
case UT_BEAST:
|
||||
/* armored carapace + thick snout/tusks + hubbed multi-wheel */
|
||||
/* carapace plates/spines + eye + vents + tusks + hubbed multi-wheel */
|
||||
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);
|
||||
fill_rect(sx-SI(6), sy-SI(5), SI(12), SI(3), lr, lg, lb); /* carapace ridge */
|
||||
fill_rect(LX(8,13)-SI(1), LY(8,13)-SI(1), SI(5), SI(3), 50, 46, 40); /* plate L */
|
||||
fill_rect(LX(17,13)-SI(1), LY(17,13)-SI(1), SI(5), SI(3), 50, 46, 40); /* plate R */
|
||||
line(LX(10,9), LY(10,9), LX(10,5), LY(10,5), 40, 36, 30); /* spine */
|
||||
line(LX(13,9), LY(13,9), LX(13,4), LY(13,4), 55, 50, 40);
|
||||
line(LX(16,9), LY(16,9), LX(16,4), LY(16,4), 55, 50, 40);
|
||||
line(LX(19,9), LY(19,9), LX(19,5), LY(19,5), 40, 36, 30);
|
||||
fill_rect(LX(11,16)-SI(1), LY(11,16)-1, SI(2), SI(2), 30, 28, 24); /* vent L */
|
||||
fill_rect(LX(17,16)-SI(1), LY(17,16)-1, SI(2), SI(2), 30, 28, 24); /* vent R */
|
||||
disc(LX(9,21), LY(9,21), SI(4), ok, og, ob);
|
||||
disc(LX(14,22), LY(14,22), SI(4), ok, og, ob);
|
||||
disc(LX(19,21), LY(19,21), SI(4), ok, og, ob);
|
||||
|
|
@ -390,12 +439,17 @@ static void draw_unit(Unit *u, int sx, int sy) {
|
|||
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(9,21), LY(9,21), SI(1), 90, 85, 75); /* hub */
|
||||
disc(LX(14,22), LY(14,22), SI(1), 90, 85, 75);
|
||||
disc(LX(19,21), LY(19,21), SI(1), 90, 85, 75);
|
||||
disc(LX(23,22), LY(23,22), SI(1), 90, 85, 75);
|
||||
tyre_mark(LX(9,21), LY(9,21), SI(3), ph, 1);
|
||||
tyre_mark(LX(14,22), LY(14,22), SI(3), ph, 1);
|
||||
tyre_mark(LX(19,21), LY(19,21), SI(3), ph, 1);
|
||||
tyre_mark(LX(23,22), LY(23,22), SI(3), ph, 1);
|
||||
disc(LX(24,12), LY(24,12), SI(6), ok, og, ob);
|
||||
disc(LX(24,12), LY(24,12), SI(5), lr, lg, lb); /* snout */
|
||||
disc(LX(26,11), LY(26,11), SI(1), 200, 80, 40); /* eye */
|
||||
line(LX(26,10), LY(26,10), LX(29,8), LY(29,8), 40, 36, 30); /* tusk */
|
||||
line(LX(26,14), LY(26,14), LX(29,16), LY(29,16), 40, 36, 30);
|
||||
line(LX(26,12), LY(26,12), LX(29,12), LY(29,12), 55, 50, 40);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue