Files
BT412/content/VIDEO/GEO/DAY/SKY.VGF
T
arcattackandClaude Opus 4.8 7b7d465e5e Initial commit: bt411 -- standalone Windows BattleTech (Tesla 4.10 port)
Clean, self-contained extraction of the BattleTech-specific work from the
reverse-engineering workspace -- engine + game + content + build, with nothing
from Red Planet or the raw archive dumps. Builds green (Win32) and runs the
single-player drive->animate->target->fire->damage->destroy loop out of the box.

Layout:
  engine/   MUNGA + MUNGA_L4 shared 2007 engine, carrying our BT render/loader
            work (bgfload/L4D3D/L4VIDEO: BSL bit-slice decode, LOD/ground/shadow
            models) + image codec; the minimal rp/ headers the audio HAL needs
  game/     reconstructed BT logic + surviving-original BT source + fwd shims
            + WinMain launcher
  content/  full runtime tree (BTL4.RES, VIDEO/, GAUGE/, AUDIO/, eggs, BTDPL.INI)
  docs/     format specs + reconstruction ledgers
  reference/ raw Ghidra pseudocode (recon source-of-truth) + decomp exporter
  tools/    MP console emulator + map/resource scanners

One top-level CMake builds munga_engine lib + bt410_l4 game lib + btl4.exe.
All paths relativized (186 fwd shims + ~437 CMake abs paths -> repo-relative);
DXSDK is the one external, overridable via -DDXSDK. Verified: builds to a
byte-identical 2.27MB exe and runs combat (TARGET DESTROYED, 0 crashes) against
the bundled content.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 21:03:40 -05:00

268 lines
8.7 KiB
Plaintext

DIV-VIZ2
HEADER
(
VERSION=2:08;
DATE=25:5:96;
TIME=2:21;
UNIT=m
)
{
}
BOUNDARY
{
BBOX {-5000,0,-5000,5000,0,5000,0,0,0}
SPHERE {0,0,0,7071.07}
}
OBJECT
(
)
{
GEOGROUP
(
F_MATERIAL="btfx:arsky_mtl";
VERTEX=2D_TEXTURE ;
)
{
PMESH {
VERTEX_POOL {
{3750, 0, 5000, 3.41667, 4.46823}
{3750, 0, 3750, 3.41667, 3.47618}
{5000, 0, 3750, 4.38889, 3.47618}
{5000, 0, 5000, 4.38889, 4.46823}
{3750, 0, 2500, 3.41667, 2.48412}
{5000, 0, 2500, 4.38889, 2.48412}
{2500, 0, 3750, 2.44445, 3.47618}
{2500, 0, 2500, 2.44445, 2.48412}
{5000, 0, 1250, 4.38889, 1.49206}
{3750, 0, 1250, 3.41667, 1.49206}
{3750, 0, 0, 3.41667, 0.5}
{5000, 0, 0, 4.38889, 0.5}
{2500, 0, 1250, 2.44445, 1.49206}
{2500, 0, 0, 2.44445, 0.5}
{1250, 0, 0, 1.47222, 0.5}
{1250, 0, 1250, 1.47222, 1.49206}
{0, 0, 1250, 0.5, 1.49206}
{0, 0, 0, 0.5, 0.5}
{1250, 0, 2500, 1.47222, 2.48412}
{0, 0, 2500, 0.5, 2.48412}
{5000, 0, -3750, 4.38889, 1.52382}
{3750, 0, -3750, 3.41667, 1.52382}
{3750, 0, -5000, 3.41667, 0.53177}
{5000, 0, -5000, 4.38889, 0.53177}
{2500, 0, -3750, 2.44445, 1.52382}
{2500, 0, -5000, 2.44445, 0.53177}
{2500, 0, -3750, 2.44445, 0.52382}
{3750, 0, -3750, 3.41667, 0.52382}
{3750, 0, -2500, 3.41667, 1.51588}
{2500, 0, -2500, 2.44445, 1.51588}
{1250, 0, -5000, 1.47222, 0.53177}
{1250, 0, -3750, 1.47222, 1.52382}
{0, 0, -3750, 0.5, 1.52382}
{0, 0, -5000, 0.5, 0.53177}
{0, 0, -3750, 0.5, 0.52382}
{1250, 0, -3750, 1.47222, 0.52382}
{1250, 0, -2500, 1.47222, 1.51588}
{0, 0, -2500, 0.5, 1.51588}
{0, 0, -1250, 0.5, 0.507942}
{1250, 0, -1250, 1.47222, 0.507942}
{1250, 0, 0, 1.47222, 1.5}
{0, 0, 0, 0.5, 1.5}
{2500, 0, -1250, 2.44445, 0.507942}
{2500, 0, 0, 2.44445, 1.5}
{2500, 0, -1250, 2.44445, 1.50794}
{1250, 0, -1250, 1.47222, 1.50794}
{1250, 0, -2500, 1.47222, 0.51588}
{2500, 0, -2500, 2.44445, 0.51588}
{-3750, 0, -5000, 1.58333, 0.53177}
{-3750, 0, -3750, 1.58333, 1.52382}
{-5000, 0, -3750, 0.61111, 1.52382}
{-5000, 0, -5000, 0.61111, 0.53177}
{-5000, 0, -3750, 0.61111, 0.52382}
{-3750, 0, -3750, 1.58333, 0.52382}
{-3750, 0, -2500, 1.58333, 1.51588}
{-5000, 0, -2500, 0.61111, 1.51588}
{-3750, 0, -2500, 0.58333, 1.51588}
{-3750, 0, -3750, 0.58333, 0.52382}
{-2500, 0, -3750, 1.55555, 0.52382}
{-2500, 0, -2500, 1.55555, 1.51588}
{-5000, 0, -1250, 0.61111, 0.507942}
{-3750, 0, -1250, 1.58333, 0.507942}
{-3750, 0, 0, 1.58333, 1.5}
{-5000, 0, 0, 0.61111, 1.5}
{-3750, 0, 0, 0.58333, 1.5}
{-3750, 0, -1250, 0.58333, 0.507942}
{-2500, 0, -1250, 1.55555, 0.507942}
{-2500, 0, 0, 1.55555, 1.5}
{-2500, 0, -1250, 1.55555, 1.50794}
{-3750, 0, -1250, 0.58333, 1.50794}
{-3750, 0, -2500, 0.58333, 0.51588}
{-2500, 0, -2500, 1.55555, 0.51588}
{-1250, 0, 0, 0.527777, 1.5}
{-1250, 0, -1250, 0.527777, 0.507942}
{0, 0, -1250, 1.5, 0.507942}
{0, 0, 0, 1.5, 1.5}
{0, 0, -1250, 1.5, 1.50794}
{-1250, 0, -1250, 0.527777, 1.50794}
{-1250, 0, -2500, 0.527777, 0.51588}
{0, 0, -2500, 1.5, 0.51588}
{-1250, 0, -2500, 1.52778, 0.51588}
{-1250, 0, -1250, 1.52778, 1.50794}
{-2500, 0, -1250, 0.55555, 1.50794}
{-2500, 0, -2500, 0.55555, 0.51588}
{-1250, 0, 5000, 0.527777, 4.46823}
{-1250, 0, 3750, 0.527777, 3.47618}
{0, 0, 3750, 1.5, 3.47618}
{0, 0, 5000, 1.5, 4.46823}
{-1250, 0, 2500, 0.527777, 2.48412}
{0, 0, 2500, 1.5, 2.48412}
{-1250, 0, 2500, 1.52778, 2.48412}
{-1250, 0, 3750, 1.52778, 3.47618}
{-2500, 0, 3750, 0.55555, 3.47618}
{-2500, 0, 2500, 0.55555, 2.48412}
{0, 0, 1250, 1.5, 1.49206}
{-1250, 0, 1250, 0.527777, 1.49206}
{-1250, 0, 0, 0.527777, 0.5}
{0, 0, 0, 1.5, 0.5}
{-1250, 0, 0, 1.52778, 0.5}
{-1250, 0, 1250, 1.52778, 1.49206}
{-2500, 0, 1250, 0.55555, 1.49206}
{-2500, 0, 0, 0.55555, 0.5}
{-3750, 0, 0, 1.58333, 0.5}
{-3750, 0, 1250, 1.58333, 1.49206}
{-5000, 0, 1250, 0.61111, 1.49206}
{-5000, 0, 0, 0.61111, 0.5}
{-3750, 0, 2500, 1.58333, 2.48412}
{-5000, 0, 2500, 0.61111, 2.48412}
{-3750, 0, 2500, 0.58333, 2.48412}
{-3750, 0, 1250, 0.58333, 1.49206}
{-2500, 0, 1250, 1.55555, 1.49206}
{-2500, 0, 2500, 1.55555, 2.48412}
{1250, 0, 5000, 1.47222, 4.46823}
{1250, 0, 3750, 1.47222, 3.47618}
{2500, 0, 5000, 2.44445, 4.46823}
{0, 0, 3750, 0.5, 3.47618}
{5000, 0, -1250, 4.38889, 1.50794}
{3750, 0, -1250, 3.41667, 1.50794}
{3750, 0, -2500, 3.41667, 0.51588}
{5000, 0, -2500, 4.38889, 0.51588}
{3750, 0, -1250, 3.41667, 0.507942}
{3750, 0, 0, 3.41667, 1.5}
{-1250, 0, -5000, 1.52778, 0.53177}
{-1250, 0, -3750, 1.52778, 1.52382}
{-2500, 0, -3750, 0.55555, 1.52382}
{-2500, 0, -5000, 0.55555, 0.53177}
{-2500, 0, -3750, 0.55555, 0.52382}
{-1250, 0, -3750, 1.52778, 0.52382}
{-1250, 0, -2500, 1.52778, 1.51588}
{-2500, 0, -2500, 0.55555, 1.51588}
{-1250, 0, -2500, 0.527777, 1.51588}
{-1250, 0, -3750, 0.527777, 0.52382}
{0, 0, -3750, 1.5, 0.52382}
{0, 0, -2500, 1.5, 1.51588}
{-3750, 0, 5000, 0.58333, 4.46823}
{-3750, 0, 3750, 0.58333, 3.47618}
{-2500, 0, 3750, 1.55555, 3.47618}
{-2500, 0, 5000, 1.55555, 4.46823}
{-3750, 0, 3750, 1.58333, 3.47618}
{-5000, 0, 3750, 0.61111, 3.47618}
{5000, 0, -2500, 4.38889, 1.51588}
{5000, 0, -3750, 4.38889, 0.52382}
{0, 0, -2500, 0.5, 0.51588}
{0, 0, -1250, 0.5, 1.50794}
{-2500, 0, -5000, 1.55555, 0.53177}
{-2500, 0, -3750, 1.55555, 1.52382}
{-3750, 0, -3750, 0.58333, 1.52382}
{-3750, 0, -5000, 0.58333, 0.53177}
{-5000, 0, -2500, 0.61111, 0.51588}
{-3750, 0, -2500, 1.58333, 0.51588}
{-3750, 0, -1250, 1.58333, 1.50794}
{-5000, 0, -1250, 0.61111, 1.50794}
{-2500, 0, 0, 0.55555, 1.5}
{-2500, 0, -1250, 0.55555, 0.507942}
{-1250, 0, -1250, 1.52778, 0.507942}
{-1250, 0, 0, 1.52778, 1.5}
{-2500, 0, 5000, 0.55555, 4.46823}
{-1250, 0, 5000, 1.52778, 4.46823}
{-2500, 0, 0, 1.55555, 0.5}
{-3750, 0, 0, 0.58333, 0.5}
{0, 0, 5000, 0.5, 4.46823}
{5000, 0, 0, 4.38889, 1.5}
{5000, 0, -1250, 4.38889, 0.507942}
{0, 0, -5000, 1.5, 0.53177}
{0, 0, -3750, 1.5, 1.52382}
{-1250, 0, -3750, 0.527777, 1.52382}
{-1250, 0, -5000, 0.527777, 0.53177}
{-5000, 0, 5000, 0.61111, 4.46823}
{-3750, 0, 5000, 1.58333, 4.46823}
}
CONNECTION_LIST (PCOUNT=4){
{0, 1, 2, 3}
{2, 1, 4, 5}
{4, 1, 6, 7}
{8, 9, 10, 11}
{10, 9, 12, 13}
{12, 9, 4, 7}
{14, 15, 16, 17}
{16, 15, 18, 19}
{18, 15, 12, 7}
{20, 21, 22, 23}
{22, 21, 24, 25}
{26, 27, 28, 29}
{30, 31, 32, 33}
{34, 35, 36, 37}
{36, 35, 26, 29}
{38, 39, 40, 41}
{40, 39, 42, 43}
{44, 45, 46, 47}
{48, 49, 50, 51}
{52, 53, 54, 55}
{56, 57, 58, 59}
{60, 61, 62, 63}
{64, 65, 66, 67}
{68, 69, 70, 71}
{72, 73, 74, 75}
{76, 77, 78, 79}
{80, 81, 82, 83}
{84, 85, 86, 87}
{86, 85, 88, 89}
{90, 91, 92, 93}
{94, 95, 96, 97}
{98, 99, 100, 101}
{100, 99, 90, 93}
{102, 103, 104, 105}
{104, 103, 106, 107}
{108, 109, 110, 111}
{112, 113, 6, 114}
{6, 113, 18, 7}
{18, 113, 115, 19}
{116, 117, 118, 119}
{118, 117, 44, 47}
{42, 120, 121, 43}
{122, 123, 124, 125}
{126, 127, 128, 129}
{130, 131, 132, 133}
{134, 135, 136, 137}
{136, 135, 108, 111}
{106, 138, 139, 107}
{114, 6, 1, 0}
{5, 4, 9, 8}
{13, 12, 15, 14}
{140, 28, 27, 141}
{25, 24, 31, 30}
{142, 46, 45, 143}
{144, 145, 146, 147}
{148, 149, 150, 151}
{152, 153, 154, 155}
{156, 92, 91, 157}
{89, 88, 95, 94}
{158, 110, 109, 159}
{160, 115, 113, 112}
{161, 121, 120, 162}
{163, 164, 165, 166}
{167, 139, 138, 168}
}
}
}
}