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>
691 lines
11 KiB
Plaintext
691 lines
11 KiB
Plaintext
[LAB_ONLY] // this file has not been approved for release
|
|
|
|
[DamageZones] // call MakeEntryList with 'dz_'
|
|
dz_larm=0
|
|
dz_lgun=1
|
|
dz_rarm=2
|
|
dz_rgun=3
|
|
|
|
[ROOT]
|
|
JointCount=25
|
|
DZoneCount=4
|
|
Former Segment=segroot
|
|
tranx=0
|
|
trany=0
|
|
tranz=0
|
|
pitch=0
|
|
yaw=-0
|
|
roll=0
|
|
joint=jointlocal
|
|
|
|
joint=jointshadow
|
|
|
|
[jointlocal]
|
|
parent=ROOT
|
|
Type=balltranslate
|
|
Former Segment=segem1
|
|
tranx=0
|
|
trany=5.29
|
|
tranz=0
|
|
pitch=0
|
|
yaw=-0.00261799
|
|
roll=0
|
|
joint=jointhip
|
|
joint=jointlthigh
|
|
joint=jointrthigh
|
|
|
|
[jointhip]
|
|
parent=jointlocal
|
|
Type=hingex
|
|
Former Segment=seghip
|
|
tranx=-4.93114e-07
|
|
trany=0.373967
|
|
tranz=-0.000188355
|
|
pitch=0
|
|
yaw=-0
|
|
roll=0
|
|
joint=jointtorso
|
|
site=siteedz_hip
|
|
|
|
[jointtorso]
|
|
parent=jointhip
|
|
Type=hingey
|
|
Former Segment=segtor
|
|
tranx=5.88841e-07
|
|
trany=0.30755
|
|
tranz=0.000188448
|
|
pitch=-5.82075e-11
|
|
yaw=3.22776e-24
|
|
roll=1.10905e-13
|
|
joint=jointshakey
|
|
|
|
joint=jointeye
|
|
[jointshakey]
|
|
parent=jointtorso
|
|
Type=ball
|
|
Former Segment=segshake
|
|
tranx=-1.47042e-07
|
|
trany=0.100963
|
|
tranz=-9.42898e-08
|
|
pitch=5.49888e-16
|
|
yaw=0.00261798
|
|
roll=1.52387e-13
|
|
joint=jointrshoulder
|
|
joint=jointlshoulder
|
|
site=sitelmissleport
|
|
site=sitermissleport
|
|
site=sitelight
|
|
site=siterutorsoport
|
|
site=siterdtorsoport
|
|
site=sitelutorsoport
|
|
site=siteldtorsoport
|
|
joint=jointlmissledoor
|
|
joint=jointrmissledoor
|
|
site=siteedz_rtorso
|
|
site=siteedz_ltorso
|
|
site=siteedz_utorso
|
|
site=siteedz_dtorso
|
|
site=siteedz_rearutorso
|
|
site=siteedz_reardtorso
|
|
site=siteedz_rearrtorso
|
|
site=siteedz_rearltorso
|
|
site=siteedz_searchlight
|
|
|
|
[jointrshoulder]
|
|
parent=jointshakey
|
|
Type=hingex
|
|
Object=maddrarm.bgf
|
|
dzone=dz_rarm
|
|
Former Segment=segrarm
|
|
tranx=1.746
|
|
trany=1.35502
|
|
tranz=0.988
|
|
pitch=-2.12633e-09
|
|
yaw=-2.85749e-26
|
|
roll=-2.68771e-17
|
|
joint=jointrgun
|
|
site=siteedz_rarm
|
|
|
|
[jointrgun]
|
|
parent=jointrshoulder
|
|
Type=hingex
|
|
Object=blhdrgun.bgf
|
|
dzone=dz_rgun
|
|
Former Segment=segrgun
|
|
tranx=1.056
|
|
trany=-0.959001
|
|
tranz=-5.96046e-08
|
|
pitch=2.85992e-08
|
|
yaw=3.07336e-08
|
|
roll=-1.01557e-13
|
|
site=siterugunport
|
|
site=siterdgunport
|
|
site=siterbgunport
|
|
site=siteedz_rgun
|
|
|
|
[siterugunport]
|
|
parent=jointrgun
|
|
tranx=0.43138
|
|
trany=-7.15256e-07
|
|
tranz=-2.66017
|
|
pitch=-4.55909e-07
|
|
yaw=5.20075e-14
|
|
roll=-1.70441e-06
|
|
|
|
[siterdgunport]
|
|
parent=jointrgun
|
|
tranx=0.997169
|
|
trany=-0.144962
|
|
tranz=-2.66018
|
|
pitch=9.74624e-07
|
|
yaw=6.3195e-14
|
|
roll=-1.70441e-06
|
|
|
|
[siterbgunport]
|
|
parent=jointrgun
|
|
tranx=0.66157
|
|
trany=-0.391001
|
|
tranz=0.854125
|
|
pitch=3.74629e-06
|
|
yaw=3.14159
|
|
roll=-1.70441e-06
|
|
|
|
[siteedz_rgun]
|
|
parent=jointrgun
|
|
tranx=0.32896
|
|
trany=-0.186245
|
|
tranz=-0.345314
|
|
pitch=-3.57279e-08
|
|
yaw=-3.25957e-09
|
|
roll=-2.12342e-06
|
|
|
|
[siteedz_rarm]
|
|
parent=jointrshoulder
|
|
tranx=0.526
|
|
trany=-0.35102
|
|
tranz=7.03335e-06
|
|
pitch=2.96466e-08
|
|
yaw=2.65423e-08
|
|
roll=-1.01683e-13
|
|
|
|
[jointlshoulder]
|
|
parent=jointshakey
|
|
Type=hingex
|
|
Object=maddlarm.bgf
|
|
dzone=dz_larm
|
|
Former Segment=seglarm
|
|
tranx=-1.743
|
|
trany=1.35502
|
|
tranz=0.988
|
|
pitch=-3.27953e-09
|
|
yaw=-6.78302e-26
|
|
roll=-4.13659e-17
|
|
joint=jointlgun
|
|
site=siteedz_larm
|
|
|
|
[jointlgun]
|
|
parent=jointlshoulder
|
|
Type=hingex
|
|
Object=blhdlgun.bgf
|
|
dzone=dz_lgun
|
|
Former Segment=seglgun
|
|
tranx=-1.06
|
|
trany=-0.958
|
|
tranz=5.96046e-08
|
|
pitch=8.20184e-08
|
|
yaw=7.4126e-08
|
|
roll=-1.75833e-06
|
|
site=sitelugunport
|
|
site=siteldgunport
|
|
site=sitelbgunport
|
|
site=siteedz_lgun
|
|
|
|
[sitelugunport]
|
|
parent=jointlgun
|
|
tranx=-0.4208
|
|
trany=8.08239e-05
|
|
tranz=-2.66042
|
|
pitch=-1.38389e-08
|
|
yaw=9.9883e-24
|
|
roll=1.44351e-15
|
|
|
|
[siteldgunport]
|
|
parent=jointlgun
|
|
tranx=-0.992111
|
|
trany=-0.144898
|
|
tranz=-2.66043
|
|
pitch=-1.72148e-06
|
|
yaw=5.30854e-14
|
|
roll=1.70442e-06
|
|
|
|
[sitelbgunport]
|
|
parent=jointlgun
|
|
tranx=-0.65834
|
|
trany=-0.391229
|
|
tranz=0.853988
|
|
pitch=-2.57369e-06
|
|
yaw=3.14159
|
|
roll=3.40884e-06
|
|
|
|
|
|
|
|
[siteedz_lgun]
|
|
parent=jointlgun
|
|
tranx=-0.328
|
|
trany=-0.187021
|
|
tranz=-0.345319
|
|
pitch=-4.42217e-08
|
|
yaw=9.22739e-09
|
|
roll=-1.92803e-15
|
|
|
|
[siteedz_larm]
|
|
parent=jointlshoulder
|
|
tranx=-0.52937
|
|
trany=-0.3509
|
|
tranz=7.09295e-06
|
|
pitch=8.38229e-08
|
|
yaw=6.69089e-08
|
|
roll=-1.75833e-06
|
|
|
|
[sitelmissleport]
|
|
parent=jointshakey
|
|
tranx=-2.318
|
|
trany=2.64102
|
|
tranz=0.245
|
|
pitch=-1.57161e-09
|
|
yaw=-1.56389e-26
|
|
roll=-1.99018e-17
|
|
|
|
[sitermissleport]
|
|
parent=jointshakey
|
|
tranx=2.315
|
|
trany=2.64102
|
|
tranz=0.245
|
|
pitch=-1.10594e-09
|
|
yaw=-7.72272e-27
|
|
roll=-1.39658e-17
|
|
|
|
[sitelight]
|
|
parent=jointshakey
|
|
tranx=5.85843e-08
|
|
trany=0.10002
|
|
tranz=-2.044
|
|
pitch=-6.98497e-10
|
|
yaw=-3.10969e-27
|
|
roll=-8.90395e-18
|
|
|
|
[siterutorsoport]
|
|
parent=jointshakey
|
|
tranx=0.764
|
|
trany=0.86902
|
|
tranz=-2.761
|
|
pitch=-4.07446e-10
|
|
yaw=-1.06712e-27
|
|
roll=-5.23808e-18
|
|
|
|
[siterdtorsoport]
|
|
parent=jointshakey
|
|
tranx=0.774
|
|
trany=0.57602
|
|
tranz=-2.349
|
|
pitch=-2.91033e-10
|
|
yaw=-5.33461e-28
|
|
roll=-3.66598e-18
|
|
|
|
[sitelutorsoport]
|
|
parent=jointshakey
|
|
tranx=-0.766
|
|
trany=0.86902
|
|
tranz=-2.761
|
|
pitch=4.07464e-10
|
|
yaw=-1.03125e-27
|
|
roll=5.06179e-18
|
|
|
|
[siteldtorsoport]
|
|
parent=jointshakey
|
|
tranx=-0.779
|
|
trany=0.57602
|
|
tranz=-2.349
|
|
pitch=1.7462e-10
|
|
yaw=-1.82816e-28
|
|
roll=2.09388e-18
|
|
|
|
[jointlmissledoor]
|
|
parent=jointshakey
|
|
Type=hingex
|
|
Former Segment=segldoor
|
|
tranx=-2.114
|
|
trany=3.795
|
|
tranz=0.263498
|
|
pitch=-3.27953e-09
|
|
yaw=5.35516e-09
|
|
roll=-4.10601e-17
|
|
site=siteedz_ldoor
|
|
|
|
[siteedz_ldoor]
|
|
parent=jointlmissledoor
|
|
tranx=0
|
|
trany=-0.983
|
|
tranz=-0.078498
|
|
pitch=-4.11285e-09
|
|
yaw=5.3556e-09
|
|
roll=1.31602e-17
|
|
|
|
[jointrmissledoor]
|
|
parent=jointshakey
|
|
Type=hingex
|
|
Former Segment=segrdoor
|
|
tranx=2.114
|
|
trany=3.79453
|
|
tranz=0.263498
|
|
pitch=-3.0467e-09
|
|
yaw=1.39701e-09
|
|
roll=-3.83169e-17
|
|
site=siteedz_rdoor
|
|
|
|
[siteedz_rdoor]
|
|
parent=jointrmissledoor
|
|
tranx=-0.000169992
|
|
trany=-0.98231
|
|
tranz=-0.078138
|
|
pitch=3.10491e-09
|
|
yaw=8.02223e-10
|
|
roll=1.09168e-11
|
|
|
|
[siteedz_rtorso]
|
|
parent=jointshakey
|
|
tranx=2.114
|
|
trany=2.79299
|
|
tranz=1.15422
|
|
pitch=1.74622e-09
|
|
yaw=-1.9045e-26
|
|
roll=2.18128e-17
|
|
|
|
[siteedz_ltorso]
|
|
parent=jointshakey
|
|
tranx=-2.114
|
|
trany=2.793
|
|
tranz=1.154
|
|
pitch=1.16413e-10
|
|
yaw=-8.08573e-29
|
|
roll=1.38914e-18
|
|
|
|
[siteedz_utorso]
|
|
parent=jointshakey
|
|
tranx=4.57201e-08
|
|
trany=2.03599
|
|
tranz=-0.363648
|
|
pitch=5.82074e-09
|
|
yaw=-2.12814e-25
|
|
roll=7.31226e-17
|
|
|
|
[siteedz_dtorso]
|
|
parent=jointshakey
|
|
tranx=1.76362e-08
|
|
trany=0.36167
|
|
tranz=-1.16012
|
|
pitch=1.10594e-08
|
|
yaw=-7.68186e-25
|
|
roll=1.3892e-16
|
|
|
|
[siteedz_rearutorso]
|
|
parent=jointshakey
|
|
tranx=8.41722e-08
|
|
trany=2.03599
|
|
tranz=2.17676
|
|
pitch=6.92669e-09
|
|
yaw=-3.01617e-25
|
|
roll=8.70884e-17
|
|
|
|
[siteedz_reardtorso]
|
|
parent=jointshakey
|
|
tranx=7.06844e-08
|
|
trany=0.57603
|
|
tranz=1.43517
|
|
pitch=1.37952e-08
|
|
yaw=-1.19542e-24
|
|
roll=1.7331e-16
|
|
|
|
[siteedz_rearrtorso]
|
|
parent=jointshakey
|
|
tranx=2.114
|
|
trany=2.793
|
|
tranz=2.17676
|
|
pitch=3.31782e-09
|
|
yaw=-6.92008e-26
|
|
roll=4.17147e-17
|
|
|
|
[siteedz_rearltorso]
|
|
parent=jointshakey
|
|
tranx=-2.114
|
|
trany=2.79301
|
|
tranz=2.177
|
|
pitch=1.10594e-09
|
|
yaw=-7.62155e-27
|
|
roll=1.37829e-17
|
|
|
|
[siteedz_searchlight]
|
|
parent=jointshakey
|
|
tranx=5.32242e-08
|
|
trany=0.10002
|
|
tranz=-1.87191
|
|
pitch=2.91034e-10
|
|
yaw=-5.32476e-28
|
|
roll=3.6592e-18
|
|
|
|
[siteedz_hip]
|
|
parent=jointhip
|
|
tranx=-0.000890357
|
|
trany=-0.0815088
|
|
tranz=-0.34009
|
|
pitch=-5.82027e-11
|
|
yaw=5.61625e-23
|
|
roll=1.92989e-12
|
|
|
|
[jointlthigh]
|
|
parent=jointlocal
|
|
Type=hingex
|
|
Former Segment=segluleg
|
|
tranx=-1.69818
|
|
trany=0.235867
|
|
tranz=0.00425748
|
|
pitch=0
|
|
yaw=-0
|
|
roll=0
|
|
joint=jointlknee
|
|
site=siteedz_luleg
|
|
|
|
[jointlknee]
|
|
parent=jointlthigh
|
|
Type=hingex
|
|
Former Segment=segldleg
|
|
tranx=0.00376296
|
|
trany=-1.96938
|
|
tranz=1.43734
|
|
pitch=2.96845e-08
|
|
yaw=0.002618
|
|
roll=-4.50033e-08
|
|
joint=jointlankle
|
|
site=siteedz_ldleg
|
|
|
|
[jointlankle]
|
|
parent=jointlknee
|
|
Type=hingex
|
|
Former Segment=seglfot
|
|
tranx=1.19209e-07
|
|
trany=-2.38752
|
|
tranz=-1.43651
|
|
pitch=2.02656e-06
|
|
yaw=-1.04583e-13
|
|
roll=-1.73066e-13
|
|
joint=jointlbacktoe
|
|
joint=jointloutertoe
|
|
joint=jointlinnertoe
|
|
site=siteedz_lfoot
|
|
|
|
[jointlbacktoe]
|
|
parent=jointlankle
|
|
Type=hingex
|
|
Former Segment=seglbto
|
|
tranx=-2.00272e-05
|
|
trany=-0.514369
|
|
tranz=0.689937
|
|
pitch=5.83996e-06
|
|
yaw=-4.11746e-08
|
|
roll=5.37255e-09
|
|
|
|
[jointloutertoe]
|
|
parent=jointlankle
|
|
Type=hingex
|
|
Former Segment=segloto
|
|
tranx=-0.51023
|
|
trany=-0.514372
|
|
tranz=-1.04087
|
|
pitch=-2.85103e-06
|
|
yaw=0.785398
|
|
roll=-2.01072e-06
|
|
|
|
[jointlinnertoe]
|
|
parent=jointlankle
|
|
Type=hingex
|
|
Former Segment=seglito
|
|
tranx=0.4988
|
|
trany=-0.514362
|
|
tranz=-1.04083
|
|
pitch=-2.94107e-06
|
|
yaw=-0.785398
|
|
roll=2.10201e-06
|
|
|
|
[siteedz_lfoot]
|
|
parent=jointlankle
|
|
tranx=0.00019002
|
|
trany=-0.756791
|
|
tranz=-0.341029
|
|
pitch=5.83996e-06
|
|
yaw=-3.95577e-08
|
|
roll=3.95133e-09
|
|
|
|
[siteedz_ldleg]
|
|
parent=jointlknee
|
|
tranx=0.00019002
|
|
trany=-1.27301
|
|
tranz=-0.68516
|
|
pitch=2.02656e-06
|
|
yaw=4.28164e-10
|
|
roll=-1.72638e-13
|
|
|
|
[siteedz_luleg]
|
|
parent=jointlthigh
|
|
tranx=0.271583
|
|
trany=-1.09312
|
|
tranz=0.527891
|
|
pitch=2.96816e-08
|
|
yaw=0.002618
|
|
roll=-4.61203e-08
|
|
|
|
[jointrthigh]
|
|
parent=jointlocal
|
|
Type=hingex
|
|
Former Segment=segruleg
|
|
tranx=1.70076
|
|
trany=0.237486
|
|
tranz=-0.0044526
|
|
pitch=0
|
|
yaw=-0
|
|
roll=0
|
|
joint=jointrknee
|
|
site=siteedz_ruleg
|
|
|
|
[jointrknee]
|
|
parent=jointrthigh
|
|
Type=hingex
|
|
Former Segment=segrdleg
|
|
tranx=0.00376308
|
|
trany=-1.97125
|
|
tranz=1.43737
|
|
pitch=1.78845e-06
|
|
yaw=0.00261799
|
|
roll=1.18749e-07
|
|
joint=jointrankle
|
|
site=siteedz_rdleg
|
|
|
|
[jointrankle]
|
|
parent=jointrknee
|
|
Type=hingex
|
|
Former Segment=segrfot
|
|
tranx=-2.38419e-07
|
|
trany=-2.38756
|
|
tranz=-1.43738
|
|
pitch=-4.76157e-27
|
|
yaw=5.58442e-14
|
|
roll=-1.7053e-13
|
|
joint=jointrbacktoe
|
|
joint=jointrinnertoe
|
|
joint=jointroutertoe
|
|
site=siteedz_rfoot
|
|
|
|
[jointrbacktoe]
|
|
parent=jointrankle
|
|
Type=hingex
|
|
Former Segment=segrbto
|
|
tranx=-1.19209e-07
|
|
trany=-0.514069
|
|
tranz=0.689989
|
|
pitch=6.34684e-06
|
|
yaw=7.48792e-13
|
|
roll=3.93519e-09
|
|
|
|
[jointrinnertoe]
|
|
parent=jointrankle
|
|
Type=hingex
|
|
Former Segment=segrito
|
|
tranx=-0.50311
|
|
trany=-0.514062
|
|
tranz=-1.04019
|
|
pitch=-2.09713e-06
|
|
yaw=0.785398
|
|
roll=-1.74167e-06
|
|
|
|
[jointroutertoe]
|
|
parent=jointrankle
|
|
Type=hingex
|
|
Former Segment=segroto
|
|
tranx=0.50682
|
|
trany=-0.514072
|
|
tranz=-1.04024
|
|
pitch=-2.71565e-06
|
|
yaw=-0.785398
|
|
roll=1.83461e-06
|
|
|
|
[siteedz_rfoot]
|
|
parent=jointrankle
|
|
tranx=-0.000170112
|
|
trany=-0.7562
|
|
tranz=-0.339987
|
|
pitch=6.34684e-06
|
|
yaw=4.42963e-09
|
|
roll=5.71235e-10
|
|
|
|
[siteedz_rdleg]
|
|
parent=jointrknee
|
|
tranx=0.000229836
|
|
trany=-1.27285
|
|
tranz=-0.685479
|
|
pitch=-1.75964e-21
|
|
yaw=1.75578e-08
|
|
roll=-2.00439e-13
|
|
|
|
[siteedz_ruleg]
|
|
parent=jointrthigh
|
|
tranx=-0.271387
|
|
trany=-1.09474
|
|
tranz=0.528712
|
|
pitch=1.78844e-06
|
|
yaw=0.002618
|
|
roll=1.14403e-07
|
|
|
|
[jointshadow] // apply terrain angle to pitch and roll
|
|
parent=ROOT
|
|
Type=balltranslate
|
|
Former Segment=segshd
|
|
tranx=0
|
|
trany=0.05
|
|
tranz=0
|
|
pitch=0
|
|
yaw=0
|
|
roll=0
|
|
joint=jointtshadow
|
|
|
|
[jointtshadow] // apply torso twist to yaw
|
|
parent=jointshadow
|
|
Type=hingey
|
|
Former Segment=segtshd
|
|
tranx=0
|
|
trany=0
|
|
tranz=0
|
|
pitch=0
|
|
yaw=0
|
|
roll=0
|
|
|
|
[jointeye]
|
|
parent=jointtorso
|
|
Type=balltranslate
|
|
Former Segment=segnone
|
|
tranx=-0.00345132
|
|
trany=1.68696
|
|
tranz=-1.31825
|
|
pitch=9.31331e-10
|
|
yaw=-1.74623e-07
|
|
roll=6.64025e-13
|
|
site=siteeyepoint
|
|
|
|
[siteeyepoint] // moved by AddEyeJoint
|
|
parent=jointeye
|
|
tranx=0
|
|
trany=0
|
|
tranz=-15
|
|
pitch=0
|
|
yaw=3.141593
|
|
roll=0
|
|
|