Repair MFD/Radar damage mappings for all seven borrowed-row chassis

Rebuilds texuv2/offset2/texuv3/offset3 for Archer, Ares, Battlemaster,
Battlemaster IIc, Rifleman, Sunder and Victor. Every one had rows copied
verbatim from another chassis, so the game sampled the wrong regions of
their damage art and assembled the pieces into a foreign layout.

Requires a Windows VC6 Release/Profile rebuild - DXRasterizer.cpp includes
coord.cpp directly - plus a physical MFD/Radar hardware test.

Result (mean IoU of each texuv rect against its own art)

  chassis           MFD           Radar
  archer            0.23 -> 0.85  0.19 -> 0.86
  ares              0.51 -> 0.80  0.35 -> 0.81
  battlemaster      0.14 -> 0.77  0.22 -> 0.91
  battlemaster IIc  0.18 -> 0.83  0.25 -> 0.97
  rifleman          0.14 -> 0.86  0.25 -> 0.87
  sunder            0.28 -> 0.96  0.86 (radar was already correct)
  victor            0.33 -> 0.85  0.44 -> 0.86
  mad cat (control, untouched)    0.88 / 0.88

Every remaining sub-0.55 entry in the file is now the separate 2026-08-07
J&J batch; no other chassis is misaligned.

Scale of the errors
-------------------
These were not small drifts. Archer's RT was 132 px wide and swallowed an
arm plus a missile rack, where the actual rack is 46 px. Sunder's RT and
LT pointed at y200-306, down in the legs, while the real racks sit at
y38-144. Rifleman's CT indexed empty black space.

Method
------
texuv comes from the art: each zone's rectangle is the bounding box of its
component blob, x1/y1 + 1. Zone labels were confirmed visually chassis by
chassis - an automatic classifier trained on the healthy rows reproduces
only ~70% of them, because zone placement is conventional but not
guaranteed.

offset is the assembled-doll layout and cannot be derived from the art. It
is built by starting from the exploded view (offset = the piece's own art
position), freezing every y, anchoring CT, and sliding limbs horizontally
until exactly 3 clear pixels separate neighbouring white pixels. Pieces are
compared per row rather than by box edges, so boxes may overlap while the
artwork stays clear. Two constraints are required or the solver misbehaves:
a piece must never cross the CT centre line, and it must be free to move
outward as well as inward.

Radar is done first and the MFD derived from it, because the MFD art is a
reduction of the radar art - scaling down is more accurate than scaling up.
Every MFD y is taken as mfd_CT_y + (radar_y - radar_CT_y) * CT height ratio;
reusing the MFD art rows directly puts the torsos ~27 px too high, as Victor
showed.

Per-chassis notes
-----------------
- Battlemaster IIc is NOT the same art as Battlemaster despite appearances:
  11 components vs 9, only 6 bounding boxes matching. The IIc fuses each arm
  with its weapon into a single piece and has no S2 at all. Its shared zones
  reuse Battlemaster's geometry unchanged; only the arms differ, anchored by
  their inner-top corner so the wider Clan arms grow outward.
- Sunder's radar was already correct and is untouched; only the MFD moved.
- Ares needed a different approach entirely - 16 art fragments for 10 zones,
  with both specials populated. The content data settled it: ares.damage
  lists the zone pages, ares.subsystems shows Special1 = 2 Beams and
  Special2 = 3 Missiles (identifying the six-tube rack as S2 and the
  two-bolt mount as S1), and Ares.contents shows CenterTorso owns both
  joint_centertorsorear and joint_hipbelow, so CT is the torso column and
  the hip merged. Detail rings inside the limbs are separate blobs but not
  separate zones, and were discarded.

Head placement
--------------
The CT art usually contains a purpose-cut slot the same size as the HD
piece, so seating the head is a pure vertical move with x unchanged. Archer
radar is exactly 13x11 for a 13x11 head. Where no slot exists - Rifleman
radar, Victor - the head is placed from the counterpart display's
proportional position instead.

File remains CRLF-only; all four arrays verified at 65 rows x 11 zones.

Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
This commit is contained in:
2026-08-09 10:58:00 -05:00
co-authored by Claude Opus 5 GitHub Copilot
parent 9092b78dbf
commit 1a0c178759
@@ -3,16 +3,16 @@
// MFD
float texuv2[65][11][4]={
{{ 78,152,156,328},{182,152,262,328},{ 56, 72,128,164},{210, 72,284,164},{180, 64,208,200},{132, 64,160,200},{146, 10,192,198},{ 0, 0, 0, 0},{162, 32,176, 38},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Annihilator
{{195,171,258,351},{ 69,171,132,351},{264,168,309,240},{ 15,168, 60,240},{ 54, 39,141,162},{183, 39,270,162},{141, 51,183,207},{ 0, 0, 0, 0},{153, 15,171, 39},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Archer
{{226,154,280,325},{ 66,154,120,325},{269, 52,333,143},{ 7, 52, 71,143},{ 85, 29,115,116},{225, 29,255,116},{127, 15,213,188},{ 0, 0, 0, 0},{165,219,175,228},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Archer
{{250,150,328,330},{ 10,150, 90,330},{254, 86,332,136},{ 4, 86, 84,136},{102,252,158,310},{168,252,226,312},{128, 34,210,198},{ 0, 0, 0, 0},{154, 10,174, 24},{228, 8,308, 64},{ 28, 8,108, 64}}, // M_Arctic Wolf
{{254,142,324,334},{ 16,142, 86,334},{248, 56,326,108},{ 12, 56, 92,108},{ 94, 70,156,152},{182, 70,246,152},{132,166,208,292},{ 0, 0, 0, 0},{ 40, 24, 58, 30},{140,302,198,332},{122, 2,218, 60}}, // M_Ares
{{252,144,316,320},{ 23,144, 87,320},{250, 67,328,114},{ 11, 67, 90,114},{102, 61,155,133},{185, 61,238,133},{137,178,203,293},{ 0, 0, 0, 0},{163, 75,177, 79},{144,144,196,168},{126, 8,214, 56}}, // M_Ares
{{ 42,138,158,326},{176,138,292,336},{ 54, 30,124,106},{224, 24,306,124},{194, 38,222,100},{124, 38,142,100},{128, 14,210,186},{ 0, 0, 0, 0},{156, 48,178, 56},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Argus
{{ 98,142,148,328},{190,142,240,328},{ 56, 48,124,154},{216, 48,282,154},{180, 22,220,120},{120, 22,158,120},{144, 36,194,186},{ 0, 0, 0, 0},{158, 70,180, 86},{148, 10,190, 48},{ 0, 0, 0, 0}}, // M_Assassin2
{{174,153,225,345},{111,153,162,345},{219, 33,276,153},{ 60, 33,117,153},{126, 45,150,144},{186, 45,210,144},{ 6, 24, 54,198},{ 0, 0, 0, 0},{144, 9,162, 18},{291,111,309,129},{252,195,273,252}}, // M_Atlas
{{ 60,108,104,250},{138,108,180,250},{ 40, 40, 74, 84},{168, 40,218, 88},{140, 28,168,104},{ 76, 28,102,104},{ 98, 6,146,138},{ 0, 0, 0, 0},{116, 16,124, 24},{112, 78,128, 94},{ 0, 0, 0, 0}}, // M_Avatar
{{186,156,237,336},{ 96,156,147,336},{237, 24,294,168},{ 57, 24, 93,162},{ 99, 39,150,129},{186, 39,234,129},{312, 48,375,207},{ 0, 0, 0, 0},{159, 24,177, 39},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Awesome
{{174,153,225,345},{111,153,162,345},{219, 33,276,153},{ 60, 33,117,153},{126, 45,150,144},{186, 45,210,144},{ 6, 24, 54,198},{ 0, 0, 0, 0},{144, 9,162, 18},{291,111,309,129},{252,195,273,252}}, // M_Battlemaster
{{174,153,225,345},{111,153,162,345},{219, 33,276,153},{ 60, 33,117,153},{126, 45,150,144},{186, 45,210,144},{ 6, 24, 54,198},{ 0, 0, 0, 0},{144, 9,162, 18},{291,111,309,129},{ 0, 0, 0, 0}}, // M_BattlemasterIIc
{{217,174,272,320},{ 67,174,123,320},{279, 79,331,181},{ 9, 79, 60,180},{ 82, 77,111,150},{231, 84,259,150},{129, 22,208,204},{ 0, 0, 0, 0},{152,222,186,247},{242, 30,261, 65},{ 24,205, 55,286}}, // M_Battlemaster
{{217,174,272,320},{ 69,174,125,320},{277, 79,338,220},{ 3, 79, 64,220},{ 84, 77,113,150},{229, 84,257,150},{129, 22,208,204},{ 0, 0, 0, 0},{152,220,186,245},{240, 36,259, 71},{ 0, 0, 0, 0}}, // M_BattlemasterIIc
{{ 76,170,152,302},{184,170,262,302},{ 12,106,126,174},{212,106,326,174},{176, 86,226,174},{110, 82,160,174},{140, 96,198,224},{ 0, 0, 0, 0},{164,122,174,134},{142, 38,194, 98},{ 0, 0, 0, 0}}, // M_Behemoth
{{ 76,170,152,302},{184,170,262,302},{ 12,106,126,174},{212,106,326,174},{176, 86,226,174},{110, 82,160,174},{140, 96,198,224},{ 0, 0, 0, 0},{164,122,174,134},{142, 38,194, 98},{ 0, 0, 0, 0}}, // M_Behemothii
{{ 32, 82,140,294},{188, 82,294,294},{ 6, 12, 88,134},{236, 12,318,134},{176, 18,234,132},{ 92, 18,244, 36},{152, 6,172,132},{ 0, 0, 0, 0},{154, 38,168, 42},{110,112,142,138},{184,112,216,138}}, // M_Blackhawk
@@ -55,14 +55,14 @@ float texuv2[65][11][4]={
{{162,171,249,375},{ 63,171,150,375},{231, 42,291,156},{ 51, 42,111,156},{117, 45,168,123},{174, 45,225,123},{261,180,369,309},{ 0, 0, 0, 0},{159, 21,183, 33},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Ryoken
{{201,126,309,342},{ 33,126,141,342},{237, 63,312,120},{ 27, 63,105,120},{111, 21,147,117},{195, 30,231,117},{141,156,201,318},{ 0, 0, 0, 0},{162, 6,180, 15},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Shadowcat
{{222,168,294,370},{ 44,168,116,370},{284, 66,336,162},{ 4, 66, 54,162},{ 60, 34,134,134},{130,196,202,274},{136, 8,210,182},{ 0, 0, 0, 0},{162,324,188,336},{216, 66,272,126},{ 0, 0, 0, 0}}, // M_Solitaire
{{280,150,337,294},{ 10,150, 67,337},{230, 40,318,124},{ 20, 40,107,123},{ 90,200,126,306},{200,200,236,306},{130, 10,209,182},{ 0, 0, 0, 0},{150,200,161,203},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Sunder - Skippy
{{236,148,291,325},{ 48,148,103,325},{245, 50,327,130},{ 11, 50, 93,130},{109, 38,132,144},{209, 38,231,144},{146, 16,195,178},{ 0, 0, 0, 0},{152,204,189,217},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Sunder - Skippy
{{195,171,258,351},{ 69,171,132,351},{264,168,309,240},{ 15,168, 60,240},{ 54, 39,141,162},{183, 39,270,162},{141, 51,183,207},{ 0, 0, 0, 0},{153, 15,171, 39},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Templar
{{260,140,322,332},{ 20,140, 82,332},{260, 10,326,112},{ 10, 10, 98,126},{110, 10,165,120},{200, 10,256,120},{150,140,190,334},{ 0, 0, 0, 0},{180, 10,188, 24},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Thanatos - Skippy
{{192,153,243,339},{ 96,153,147,339},{234, 66,288,153},{ 57, 66,105,153},{111, 51,150,132},{192, 66,228,132},{297, 60,342,192},{ 0, 0, 0, 0},{123, 33,144, 48},{186, 18,231, 60},{ 0, 0, 0, 0}}, // M_Thor
{{180,162,288,378},{ 54,162,162,378},{303, 63,378,162},{ 9, 66,102,174},{111, 30,168,102},{240, 27,297, 99},{174, 51,234,156},{ 0, 0, 0, 0},{192, 30,216, 39},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Uller
{{180,162,288,378},{ 54,162,162,378},{303, 63,378,162},{ 9, 66,102,174},{111, 30,168,102},{240, 27,297, 99},{174, 51,234,156},{ 0, 0, 0, 0},{192, 30,216, 39},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Urbanmech
{{207,156,288,342},{ 51,156,132,342},{264, 30,327,123},{ 18, 30, 75,147},{ 90, 27,138,147},{207, 27,249,147},{138, 33,207,141},{ 0, 0, 0, 0},{159, 6,183, 18},{138,144,201,216},{ 0, 0, 0, 0}}, // M_Uziel
{{218,138,280,334},{ 20,138, 82,334},{270, 8,328,134},{ 10, 8, 70,114},{ 88, 66,130,156},{172, 66,210,156},{124,166,176,304},{ 0, 0, 0, 0},{130, 4,210, 52},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Victor - GhostHawk
{{211,143,271,327},{ 72,143,131,327},{277, 42,332,161},{ 10, 42, 66,142},{ 88, 32,117,119},{224, 32,251,119},{134, 13,208,189},{ 0, 0, 0, 0},{157,214,184,227},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Victor - GhostHawk
{{180,135,285,342},{ 60,135,165,342},{234, 84,291,132},{ 54, 84,111,132},{114, 27,150,126},{195, 27,231,126},{156, 21,189,135},{ 0, 0, 0, 0},{165, 3,180, 18},{297,129,378,168},{ 0, 0, 0, 0}}, // M_Vulture
{{ 78,134,116,256},{142,134,180,256},{ 52, 46, 90,126},{168, 44,208,126},{146, 42,166,112},{ 90, 42,110,112},{110, 28,184,156},{ 0, 0, 0, 0},{118, 56,138, 64},{ 56, 4, 90, 48},{172, 24,202, 48}}, // M_Warhammer
{{198,165,237,348},{102,165,141,348},{270, 42,309,150},{ 24, 45, 75,159},{ 93, 63,123,141},{216, 63,246,141},{138, 24,198,213},{ 0, 0, 0, 0},{216, 42,240, 48},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Wolfhound
@@ -73,16 +73,16 @@ float texuv2[65][11][4]={
// MFD
int offset2[65][11][2]={
{{ 0,148},{260,148},{ 6, 40},{260, 40},{212, 80},{100, 80},{146, 12},{ 0, 0},{162,236},{ 0, 0},{ 0, 0}}, // M_Annihilator
{{186,153},{ 99,153},{252,102},{ 51,102},{ 66, 21},{195, 21},{153, 33},{ 0, 0},{165, 51},{ 0, 0},{ 0, 0}}, // M_Archer
{{185,154},{101,154},{227, 52},{ 49, 52},{116, 29},{194, 29},{127, 15},{ 0, 0},{165, 53},{ 0, 0},{ 0, 0}}, // M_Archer
{{210,156},{ 50,156},{224, 92},{ 34, 92},{ 82, 68},{198, 68},{128, 40},{ 0, 0},{154, 46},{198, 14},{ 58, 14}}, // M_Arctic Wolf
{{184,148},{ 86,148},{248, 62},{ 12, 62},{ 94, 56},{182, 56},{132, 62},{ 0, 0},{160, 70},{140,128},{122, 8}}, // M_Ares
{{181,256},{ 94,256},{240,172},{ 21,173},{103,173},{184,172},{137,178},{ 0, 0},{163,187},{144,239},{126,130}}, // M_Ares
{{ 4,138},{216,138},{ 12, 14},{242, 14},{174,200},{140,200},{126, 14},{ 0, 0},{156,294},{ 0, 0},{ 0, 0}}, // M_Argus
{{ 6,148},{282,148},{ 6, 10},{266, 10},{206, 22},{ 98, 22},{144,180},{ 0, 0},{158,140},{148, 10},{ 0, 0}}, // M_Assassin2
{{174,143},{111,143},{216, 23},{ 63, 23},{126, 35},{186, 35},{147, 14},{ 0, 0},{144, 29},{117,101},{207,140}}, // M_Atlas
{{ 12,174},{198,174},{ 12, 42},{198, 42},{158, 42},{ 60, 42},{ 96, 42},{ 0, 0},{120,202},{116,238},{ 0, 0}}, // M_Avatar
{{186,151},{ 96,151},{234, 19},{ 60, 19},{ 99, 34},{186, 34},{138, 43},{ 0, 0},{159, 55},{ 0, 0},{ 0, 0}}, // M_Awesome
{{174,143},{111,143},{216, 23},{ 63, 23},{126, 35},{186, 35},{147, 14},{ 0, 0},{144, 29},{117,101},{207,140}}, // M_Battlemaster
{{174,143},{111,143},{216, 23},{ 63, 23},{126, 35},{186, 35},{147, 14},{ 0, 0},{144, 29},{117,101},{ 0, 0}}, // M_BattlemasterIIc
{{182,168},{103,168},{226, 67},{ 64, 66},{121, 70},{191, 77},{131, 14},{ 0, 0},{154, 53},{195, 42},{ 81,105}}, // M_Battlemaster
{{182,168},{103,168},{226, 67},{ 54, 66},{121, 70},{191, 77},{131, 14},{ 0, 0},{154, 53},{195, 42},{ 0, 0}}, // M_BattlemasterIIc
{{ 6,172},{246,172},{ 6, 8},{281, 8},{226, 82},{ 72, 82},{138,172},{ 0, 0},{164,122},{142, 8},{ 0, 0}}, // M_Behemoth
{{ 6,172},{246,172},{ 6, 8},{281, 8},{226, 82},{ 72, 82},{138,172},{ 0, 0},{164,122},{142, 8},{ 0, 0}}, // M_Behemothii
{{ 8,128},{228,128},{ 8, 0},{252, 0},{188, 0},{ 0, 96},{160, 0},{ 0, 0},{164,146},{132,168},{176,168}}, // M_Black Hawk
@@ -121,18 +121,18 @@ int offset2[65][11][2]={
{{186,156},{ 63,156},{246, 51},{ 21, 51},{ 90, 87},{195, 87},{132, 36},{ 0, 0},{150,108},{ 0, 0},{ 0, 0}}, // M_Owens
{{171,135},{ 57,135},{249, 69},{ 27, 69},{ 75, 39},{204, 39},{129, 39},{ 0, 0},{150,108},{ 0, 0},{ 0, 0}}, // M_Puma
{{201,130},{ 69,130},{207, 16},{ 60, 16},{108, 28},{171, 28},{138, 43},{ 0, 0},{162, 61},{ 0, 0},{ 0, 0}}, // M_Raven
{{174,147},{ 72,147},{240, 78},{ 48, 78},{102, 39},{171, 39},{135, 60},{ 0, 0},{156, 69},{216, 18},{ 63, 18}}, // M_Rifleman
{{190,167},{100,167},{232, 72},{ 55, 72},{118, 60},{188, 60},{142, 60},{ 0, 0},{168, 83},{126, 9},{ 0, 0}}, // M_Rifleman
{{192,144},{ 63,144},{231, 15},{ 51, 15},{117, 18},{174, 18},{117, 57},{ 0, 0},{159, 78},{ 0, 0},{ 0, 0}}, // M_Ryoken
{{201,121},{ 33,121},{237, 58},{ 27, 58},{111, 16},{195, 25},{141, 16},{ 0, 0},{162, 43},{ 0, 0},{ 0, 0}}, // M_Shadowcat
{{192,133},{ 74,133},{244, 71},{ 42, 71},{ 94, 39},{170, 61},{136, 13},{ 0, 0},{172, 29},{100, 23},{ 0, 0}}, // M_Solitaire
{{189,144},{ 96,144},{229, 38},{ 25, 39},{115, 25},{190, 25},{131, 2},{ 0, 0},{165, 48},{ 0, 0},{ 0, 0}}, // M_Sunder - Skippy
{{185,148},{101,148},{223, 50},{ 35, 50},{120, 38},{198, 38},{146, 16},{ 0, 0},{152, 54},{ 0, 0},{ 0, 0}}, // M_Sunder - Skippy
{{186,153},{ 99,153},{252,102},{ 51,102},{ 66, 21},{195, 21},{153, 33},{ 0, 0},{165, 51},{ 0, 0},{ 0, 0}}, // M_Templar
{{200,145},{102,145},{258, 39},{ 17, 43},{107, 26},{202, 26},{162, 3},{ 0, 0},{178, 56},{ 0, 0},{ 0, 0}}, // M_Thanatos - Skippy
{{195,148},{ 93,148},{234, 61},{ 57, 61},{111, 46},{192, 61},{147, 55},{ 0, 0},{123, 58},{186, 13},{ 0, 0}}, // M_Thor
{{180,115},{ 54,115},{237, 58},{ 12, 61},{111, 28},{174, 28},{141, 52},{ 0, 0},{159, 64},{ 0, 0},{ 0, 0}}, // M_Uller
{{180,115},{ 54,115},{237, 58},{ 12, 61},{111, 28},{174, 28},{141, 52},{ 0, 0},{159, 64},{ 0, 0},{ 0, 0}}, // M_Urbanmech
{{207,146},{ 51,146},{243, 59},{ 39, 59},{ 90, 17},{207, 17},{138, 23},{ 0, 0},{159, 95},{138,134},{ 0, 0}}, // M_Uziel
{{185,140},{ 98,140},{226, 34},{ 56, 34},{116, 52},{186, 52},{146, 52},{ 0, 0},{130, 4},{ 0, 0},{ 0, 0}}, // M_Victor - GhostHawk
{{182,149},{103,149},{221, 42},{ 64, 42},{123, 59},{191, 59},{134, 13},{ 0, 0},{157, 37},{ 0, 0},{ 0, 0}}, // M_Victor - GhostHawk
{{180,135},{ 60,135},{234, 84},{ 54, 84},{114, 27},{195, 27},{156, 21},{ 0, 0},{165, 12},{132,129},{ 0, 0}}, // M_Vulture
{{ 8,210},{238,210},{ 6, 46},{238, 46},{186, 42},{ 58, 42},{ 92, 28},{ 0, 0},{134,226},{ 76,220},{178,222}}, // M_Warhammer
{{198,155},{102,155},{219, 32},{ 69, 35},{123, 53},{186, 53},{138, 14},{ 0, 0},{156, 32},{ 0, 0},{ 0, 0}}, // M_Wolfhound
@@ -142,16 +142,16 @@ int offset2[65][11][2]={
// 5.03 Secondary Damage Display
float texuv3[65][11][4]={
{{ 34,186,134,416},{164,186,264,416},{ 4, 78,100, 96},{198, 78,296,196},{158, 66,198,240},{100, 68,140,242},{120, 2,176,242},{ 0, 0, 0, 0},{138, 26,160, 36},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Annihilator
{{404,268,484,496},{ 22,268,102,496},{426,114,484,208},{ 22,116, 82,208},{ 92, 20,224,192},{292, 22,424,192},{230, 44,286,252},{ 0, 0, 0, 0},{240,308,276,348},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Archer
{{351,185,422,405},{ 84,185,154,405},{407, 52,492,170},{ 18, 52,103,170},{132, 24,178,140},{334, 24,380,140},{200, 5,310,228},{ 0, 0, 0, 0},{249,273,262,284},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Archer
{{356,260,456,490},{ 30,260,132,488},{354,188,454,252},{ 32,188,132,252},{ 62,104,138,180},{358, 94,434,180},{200, 90,308,300},{ 0, 0, 0, 0},{234, 36,262, 56},{360, 8,464, 80},{ 32, 8,136, 80}}, // M_Arctic Wolf
{{402,240,486,472},{ 34,240,118,472},{396,108,502,170},{ 6,108,112,170},{130,100,206,200},{312,100,388,200},{220,106,308,260},{ 0, 0, 0, 0},{250,364,278,378},{230,304,298,344},{206, 14,322, 82}}, // M_Ares
{{400,173,481,397},{ 25,173,106,397},{398, 71,500,132},{ 12, 72,114,133},{122, 84,197,177},{315, 83,390,177},{209, 91,305,241},{ 0, 0, 0, 0},{246,350,268,360},{224,278,290,314},{201, 3,313, 67}}, // M_Ares
{{300,200,448,448},{ 20,200,170,448},{380, 20,490,146},{ 20, 20,124,116},{140, 20,166,100},{300, 20,342,110},{180, 20,292,242},{ 0, 0, 0, 0},{250,300,276,306},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Argus - Skippy
{{114,170,178,406},{232,170,294,406},{ 60, 48,144,184},{264, 48,348,184},{218, 18,268,140},{142, 18,190,140},{174, 36,234,140},{ 0, 0, 0, 0},{192, 78,218, 98},{178, 2,230, 48},{ 0, 0, 0, 0}}, // M_Assassin2
{{350,260,420,502},{128,246,200,488},{426, 16,500,172},{ 24, 14, 98,172},{162, 26,216,160},{352, 26,406,160},{258, 50,312,268},{ 0, 0, 0, 0},{262, 6,282, 18},{118,118,146,144},{436,218,464,282}}, // M_Atlas
{{ 98,174,164,400},{222,174,288,400},{ 62, 64,118,136},{266, 64,348,138},{220, 44,268,168},{118, 44,166,168},{152, 10,232,220},{ 0, 0, 0, 0},{184, 24,202, 40},{178,124,208,154},{ 0, 0, 0, 0}}, // M_Avatar
{{332,280,400,502},{ 94,280,164,504},{422, 14,500,214},{ 14, 12, 76,194},{ 96, 40,166,184},{332, 40,406,184},{206, 48,282,252},{ 0, 0, 0, 0},{236,300,254,310},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Awesome
{{350,260,420,502},{128,246,200,488},{426, 16,500,172},{ 24, 14, 98,172},{162, 26,216,160},{352, 26,406,160},{258, 50,312,268},{ 0, 0, 0, 0},{262, 6,282, 18},{118,118,146,144},{436,218,464,282}}, // M_Battlemaster
{{350,260,420,502},{128,246,200,488},{426, 16,500,172},{ 24, 14, 98,172},{162, 26,216,160},{352, 26,406,160},{258, 50,312,268},{ 0, 0, 0, 0},{262, 6,282, 18},{118,118,146,144},{ 0, 0, 0, 0}}, // M_BattlemasterIIc
{{325,210,396,398},{119,210,190,398},{420, 88,489,220},{ 20, 88, 89,218},{141, 86,182,179},{345, 86,386,179},{210, 7,312,249},{ 0, 0, 0, 0},{239,286,284,320},{358, 14,383, 63},{ 42,264, 82,366}}, // M_Battlemaster
{{325,210,396,398},{119,210,190,398},{420, 87,501,269},{ 20, 87,101,269},{141, 86,182,179},{345, 86,386,179},{211, 10,312,248},{ 0, 0, 0, 0},{239,286,284,320},{358, 14,383, 63},{ 0, 0, 0, 0}}, // M_BattlemasterIIc
{{ 84,206,184,374},{222,206,322,374},{ 2,124,150,210},{260,124,404,210},{214, 94,278,210},{130, 94,194,210},{166,110,242,274},{ 0, 0, 0, 0},{198,144,210,158},{170, 36,236,112},{ 0, 0, 0, 0}}, // M_Behemoth
{{ 84,206,184,374},{222,206,322,374},{ 2,124,150,210},{260,124,404,210},{214, 94,278,210},{130, 94,194,210},{166,110,242,274},{ 0, 0, 0, 0},{198,144,210,158},{170, 36,236,112},{ 0, 0, 0, 0}}, // M_Behemothii
{{ 40,118,178,390},{238,118,376,390},{ 8, 28,114,182},{296, 28,404,180},{220, 38,497,182},{114, 38,192,182},{188, 22,222,184},{ 0, 0, 0, 0},{192, 58,218, 78},{134,156,178,190},{230,156,272,190}}, // M_Black Hawk
@@ -201,7 +201,7 @@ float texuv3[65][11][4]={
{{358,228,500,498},{ 12,228,154,498},{398, 64,500,190},{ 2, 64,122,210},{136, 12,210,142},{298, 12,390,138},{186,148,316,318},{ 0, 0, 0, 0},{226,372,272,394},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Uller
{{358,228,500,498},{ 12,228,154,498},{398, 64,500,190},{ 2, 64,122,210},{136, 12,210,142},{298, 12,390,138},{186,148,316,318},{ 0, 0, 0, 0},{226,372,272,394},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Urbanmech
{{400,292,498,498},{ 10,292,108,498},{378, 20,496, 98},{ 12, 20,130,100},{126,158,192,300},{314,158,380,300},{206,168,302,376},{ 0, 0, 0, 0},{234,108,272,122},{230, 32,276, 78},{ 22,136, 50,166}}, // M_Uziel
{{350,256,425,472},{ 76,236,150,472},{410, 46,484,200},{ 30, 46,104,174},{146, 82,198,192},{310, 82,362,192},{220,218,284,384},{ 0, 0, 0, 0},{206, 6,304, 64},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Victor - GhostHawk
{{336,245,410,476},{106,245,180,476},{413, 45,484,194},{ 23, 45, 96,170},{128, 67,170,179},{340, 67,381,179},{208, 9,303,229},{ 0, 0, 0, 0},{236,278,275,298},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Victor - GhostHawk
{{356,274,494,504},{ 12,274,152,502},{446, 98,494,164},{ 12, 98, 60,164},{100, 24,174,162},{344, 24,416,162},{218, 4,310,222},{ 0, 0, 0, 0},{252,286,276,296},{220,358,306,396},{ 0, 0, 0, 0}}, // M_Vulture
{{126,214,186,408},{228,214,286,408},{ 84, 72,146,202},{268, 72,332,204},{234, 68,270,182},{144, 68,180,178},{148, 46,264,246},{ 0, 0, 0, 0},{190, 90,226,106},{ 92, 8,146, 78},{276, 38,322, 80}}, // M_Warhammer
{{326,262,368,486},{142,262,182,486},{380, 72,438,196},{ 72, 72,138,208},{166, 96,200,218},{320, 96,352,216},{214, 48,304,278},{ 0, 0, 0, 0},{240, 10,278, 30},{ 0, 0, 0, 0},{ 0, 0, 0, 0}}, // M_Wolfhound
@@ -210,16 +210,16 @@ float texuv3[65][11][4]={
// LL RL LA RA RT LT CT CTR HD S1 S2
int offset3[65][11][2]={
{{ 8,270},{398,270},{ 30, 24},{400, 28},{322,120},{146,118},{226, 54},{ 0, 0},{244,338},{ 0, 0},{ 0, 0}}, // M_Annihilator
{{224,178},{112,178},{306,114},{ 52,116},{ 62, 0},{222, 2},{180, 24},{ 0, 0},{190, 38},{ 0, 0},{ 0, 0}}, // M_Archer
{{277,185},{162,185},{334, 52},{ 91, 52},{179, 24},{285, 24},{200, 5},{ 0, 0},{249, 54},{ 0, 0},{ 0, 0}}, // M_Archer
{{256,182},{ 50,182},{274,100},{ 32,100},{ 92, 66},{238, 66},{150, 32},{ 0, 0},{184, 38},{240, 0},{ 62, 0}}, // M_Arctic Wolf
{{222,170},{104,170},{296, 68},{ 6, 70},{110, 60},{222, 60},{160, 66},{ 0, 0},{190, 74},{170,144},{146, 4}}, // M_Ares
{{280,195},{153,195},{354, 83},{ 58, 84},{163, 84},{276, 83},{209, 91},{ 0, 0},{246,103},{224,170},{201, 25}}, // M_Ares
{{208,158},{ 32,158},{268, 18}, {32, 24},{136, 32},{226, 22},{140, 4},{ 0, 0},{182, 48},{ 0, 0},{ 0, 0}}, // M_Argus - Skippy
{{ 8,220},{336,220},{ 8, 48},{314, 48},{244, 48},{120, 48},{178,206},{ 0, 0},{192, 78},{178, 3},{ 0, 0}}, // M_Assassin2
{{208,162},{130,162},{266, 18},{ 70, 12},{136, 26},{220, 28},{178, 4},{ 0, 0},{182, 28},{136,118},{256,162}}, // M_Atlas
{{ 50,258},{384,258},{ 24, 38},{408, 38},{324, 38},{104, 38},{198, 38},{ 0, 0},{230,356},{224,302},{ 0, 0}}, // M_Avatar
{{210,184},{102,182},{274, 4},{ 42, 2},{102, 30},{208, 30},{152, 38},{ 0, 0},{182, 68},{ 0, 0},{ 0, 0}}, // M_Awesome
{{208,162},{130,162},{266, 18},{ 70, 12},{136, 26},{220, 28},{178, 4},{ 0, 0},{182, 28},{136,118},{256,162}}, // M_Battlemaster
{{208,162},{130,162},{266, 18},{ 70, 12},{136, 26},{220, 28},{178, 4},{ 0, 0},{182, 28},{136,118},{ 0, 0}}, // M_BattlemasterIIc
{{244,209},{142,209},{301, 84},{ 91, 83},{165, 88},{255, 88},{178, 4},{ 0, 0},{208, 56},{273, 47},{113,135}}, // M_Battlemaster
{{244,209},{142,209},{301, 84},{ 79, 83},{165, 88},{255, 88},{178, 4},{ 0, 0},{208, 56},{273, 47},{ 0, 0}}, // M_BattlemasterIIc
{{ 8,236},{348,236},{ 8, 26},{302, 26},{294,130},{108,130},{202,242},{ 0, 0},{230,174},{202, 28},{ 0, 0}}, // M_Behemoth
{{ 8,236},{348,236},{ 8, 26},{302, 26},{294,130},{108,130},{202,242},{ 0, 0},{230,174},{202, 28},{ 0, 0}}, // M_Behemothii
{{ 8,228},{362,228},{ 8, 28},{392, 30},{ 85, 56},{136, 56},{234, 28},{ 0, 0},{242,250},{170,250},{296,250}}, // M_Black Hawk
@@ -258,7 +258,7 @@ int offset3[65][11][2]={
{{244,154},{ 64,154},{314, 26},{ 4, 26},{ 92, 68},{226, 68},{154, 6},{ 0, 0},{186,100},{ 0, 0},{ 0, 0}}, // M_Owens
{{208,136},{ 56,136},{314, 50},{ 16, 50},{ 82, 10},{262, 10},{140, 10},{ 0, 0},{178, 78},{ 0, 0},{ 0, 0}}, // M_Puma
{{238,142},{ 74,142},{250, 6},{ 70, 2},{122, 16},{204, 16},{156, 34},{ 0, 0},{172, 60},{ 0, 0},{ 0, 0}}, // M_Raven
{{232,200},{110,200},{284, 74},{ 50, 74},{132, 56},{224, 56},{166, 58},{ 0, 0},{198, 92},{192,124},{146, 0}}, // M_Rifleman
{{285,202},{162,202},{338, 82},{102, 82},{183, 65},{277, 65},{219, 66},{ 0, 0},{250, 95},{199, 1},{ 0, 0}}, // M_Rifleman
{{234,154},{ 70,154},{276, 2},{ 60, 2},{130, 6},{202, 6},{142, 50},{ 0, 0},{180, 64},{ 0, 0},{ 0, 0}}, // M_Ryoken
{{242,130},{ 34,130},{290, 54},{ 16, 48},{118, 2},{228, 14},{164, 4},{ 0, 0},{194, 56},{ 0, 0},{ 0, 0}}, // M_Shadowcat
{{232,154},{ 88,154},{290, 80},{ 56, 80},{114, 42},{200, 62},{166, 10},{ 0, 0},{206, 26},{120, 20},{ 0, 0}}, // M_Solitaire
@@ -269,7 +269,7 @@ int offset3[65][11][2]={
{{218,138},{ 62,138},{298, 64},{ 32, 64},{136, 2},{208, 2},{146, 28},{ 0, 0},{186, 52},{ 0, 0},{ 0, 0}}, // M_Uller
{{218,138},{ 62,138},{298, 64},{ 32, 64},{136, 2},{208, 2},{146, 28},{ 0, 0},{186, 52},{ 0, 0},{ 0, 0}}, // M_Urbanmech
{{240,172},{ 70,172},{288, 70},{ 2, 70},{106, 28},{234, 28},{156, 38},{ 0, 0},{184,128},{180, 42},{ 12,146}}, // M_Uziel
{{220,170},{118,170},{270, 40},{ 68, 40},{140, 62},{220, 62},{176, 62},{ 0, 0},{158, 4},{ 0, 0},{ 0, 0}}, // M_Victor - GhostHawk
{{275,179},{167,179},{325, 45},{115, 45},{189, 67},{283, 67},{208, 9},{ 0, 0},{236, 37},{ 0, 0},{ 0, 0}}, // M_Victor - GhostHawk
{{236,174},{ 32,174},{296, 98},{ 62, 98},{110, 24},{224, 24},{158, 4},{ 0, 0},{192, 6},{160,138},{ 0, 0}}, // M_Vulture
{{ 14,310},{290,310},{ 14, 16},{306, 16},{290,172},{ 90,160},{148, 46},{ 0, 0},{188,284},{108,352},{206,366}}, // M_Warhammer
{{254,182},{140,182},{258, 32},{110, 32},{164, 56},{238, 56},{172, 8},{ 0, 0},{198, 30},{ 0, 0},{ 0, 0}}, // M_Wolfhound