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>
718 lines
11 KiB
Plaintext
718 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=27
|
|
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.100701
|
|
tranz=-9.38129e-08
|
|
pitch=5.49888e-16
|
|
yaw=0.00261799
|
|
roll=1.52387e-13
|
|
joint=jointrshoulder
|
|
joint=jointlshoulder
|
|
site=sitelmissleport
|
|
site=sitermissleport
|
|
site=sitelight
|
|
site=siterdtorsoport
|
|
site=siteldtorsoport
|
|
joint=jointldowndoor
|
|
joint=jointlupdoor
|
|
joint=jointrdowndoor
|
|
joint=jointrupdoor
|
|
site=siteedz_rtorso
|
|
site=siteedz_ltorso
|
|
site=siteedz_rearrtorso
|
|
site=siteedz_rearltorso
|
|
site=siteedz_utorso
|
|
site=siteedz_dtorso
|
|
site=siteedz_rearutorso
|
|
site=siteedz_reardtorso
|
|
site=siteedz_searchlight
|
|
|
|
[jointrshoulder]
|
|
parent=jointshakey
|
|
Type=hingex
|
|
Object=vuldrarm.bgf
|
|
dzone=dz_rarm
|
|
Former Segment=segrarm
|
|
tranx=1.76
|
|
trany=1.68927
|
|
tranz=1.762
|
|
pitch=-8.45767e-10
|
|
yaw=-2.94994e-27
|
|
roll=-6.97578e-18
|
|
joint=jointrgun
|
|
site=siteedz_rarm
|
|
|
|
[jointrgun]
|
|
parent=jointrshoulder
|
|
Type=hingex
|
|
Object=vuldrgun.bgf
|
|
dzone=dz_rgun
|
|
Former Segment=segrgun
|
|
tranx=1.055
|
|
trany=-0.975
|
|
tranz=0
|
|
pitch=-6.93889e-15
|
|
yaw=3.4639e-14
|
|
roll=-2.27537e-14
|
|
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.34714
|
|
trany=-0.17446
|
|
tranz=-0.58661
|
|
pitch=-3.58832e-08
|
|
yaw=-3.0268e-09
|
|
roll=-7.45067e-09
|
|
|
|
[siteedz_rarm]
|
|
parent=jointrshoulder
|
|
tranx=0.54742
|
|
trany=-0.38401
|
|
tranz=-1.00136e-05
|
|
pitch=-6.93889e-15
|
|
yaw=3.4639e-14
|
|
roll=-2.27537e-14
|
|
|
|
[jointlshoulder]
|
|
parent=jointshakey
|
|
Type=hingex
|
|
Object=vuldlarm.bgf
|
|
dzone=dz_larm
|
|
Former Segment=seglarm
|
|
tranx=-1.762
|
|
trany=1.68927
|
|
tranz=1.762
|
|
pitch=-1.99896e-09
|
|
yaw=-1.64038e-26
|
|
roll=-1.64123e-17
|
|
joint=jointlgun
|
|
site=siteedz_larm
|
|
|
|
[jointlgun]
|
|
parent=jointlshoulder
|
|
Type=hingex
|
|
Object=vuldlgun.bgf
|
|
dzone=dz_lgun
|
|
Former Segment=seglgun
|
|
tranx=-1.06
|
|
trany=-0.976
|
|
tranz=0
|
|
pitch=7.18212e-09
|
|
yaw=6.61305e-09
|
|
roll=-1.78814e-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.34
|
|
trany=-0.173011
|
|
tranz=-0.587
|
|
pitch=-1.56931e-07
|
|
yaw=2.01626e-08
|
|
roll=1.69874e-06
|
|
|
|
[siteedz_larm]
|
|
parent=jointlshoulder
|
|
tranx=-0.54463
|
|
trany=-0.38388
|
|
tranz=-1.9908e-05
|
|
pitch=4.05517e-09
|
|
yaw=3.73387e-09
|
|
roll=-1.78814e-06
|
|
|
|
[sitelmissleport]
|
|
parent=jointshakey
|
|
tranx=-1.154
|
|
trany=1.85727
|
|
tranz=0.576
|
|
pitch=-2.91033e-10
|
|
yaw=-3.5597e-28
|
|
roll=-2.44625e-18
|
|
|
|
[sitermissleport]
|
|
parent=jointshakey
|
|
tranx=1.156
|
|
trany=1.85727
|
|
tranz=0.576
|
|
pitch=1.7462e-10
|
|
yaw=-1.21286e-28
|
|
roll=1.38914e-18
|
|
|
|
[sitelight]
|
|
parent=jointshakey
|
|
tranx=5.75341e-08
|
|
trany=0.27227
|
|
tranz=-2.495
|
|
pitch=5.23861e-10
|
|
yaw=-1.09513e-27
|
|
roll=4.18098e-18
|
|
|
|
[siterdtorsoport]
|
|
parent=jointshakey
|
|
tranx=0.752
|
|
trany=0.469272
|
|
tranz=-3.003
|
|
pitch=9.89531e-10
|
|
yaw=-3.9729e-27
|
|
roll=8.02986e-18
|
|
|
|
[siteldtorsoport]
|
|
parent=jointshakey
|
|
tranx=-0.756
|
|
trany=0.469272
|
|
tranz=-3.003
|
|
pitch=1.45518e-09
|
|
yaw=-8.63306e-27
|
|
roll=1.18652e-17
|
|
|
|
[jointldowndoor]
|
|
parent=jointshakey
|
|
Type=hingey
|
|
Former Segment=seglddoor
|
|
tranx=-1.741
|
|
trany=1.27172
|
|
tranz=0.42597
|
|
pitch=6.71858e-07
|
|
yaw=2.09548e-09
|
|
roll=5.47505e-15
|
|
site=siteedz_lddoor
|
|
|
|
[siteedz_lddoor]
|
|
parent=jointldowndoor
|
|
tranx=0.608
|
|
trany=0
|
|
tranz=-0.06297
|
|
pitch=-1.25566e-24
|
|
yaw=-1.39696e-09
|
|
roll=1.7977e-15
|
|
|
|
[jointlupdoor]
|
|
parent=jointshakey
|
|
Type=hingey
|
|
Former Segment=segludoor
|
|
tranx=-1.741
|
|
trany=2.21307
|
|
tranz=1.03238
|
|
pitch=0.881391
|
|
yaw=8.1491e-09
|
|
roll=6.288e-09
|
|
site=siteedz_ludoor
|
|
|
|
[siteedz_ludoor]
|
|
parent=jointlupdoor
|
|
tranx=0.60809
|
|
trany=-0.0898409
|
|
tranz=-0.0740592
|
|
pitch=-0.881392
|
|
yaw=-1.76577e-09
|
|
roll=-1.45558e-09
|
|
|
|
[jointrdowndoor]
|
|
parent=jointshakey
|
|
Type=hingey
|
|
Former Segment=segrddoor
|
|
tranx=1.741
|
|
trany=1.27172
|
|
tranz=0.42597
|
|
pitch=1.21722e-07
|
|
yaw=1.86265e-09
|
|
roll=9.91979e-16
|
|
site=siteedz_rddoor
|
|
|
|
[siteedz_rddoor]
|
|
parent=jointrdowndoor
|
|
tranx=-0.608
|
|
trany=0
|
|
tranz=-0.06297
|
|
pitch=1.7053e-13
|
|
yaw=-1.16413e-09
|
|
roll=1.54896e-16
|
|
|
|
[jointrupdoor]
|
|
parent=jointshakey
|
|
Type=hingey
|
|
Former Segment=segrudoor
|
|
tranx=1.741
|
|
trany=2.21307
|
|
tranz=1.03238
|
|
pitch=0.881391
|
|
yaw=8.1491e-09
|
|
roll=6.288e-09
|
|
site=siteedz_rudoor
|
|
|
|
[siteedz_rudoor]
|
|
parent=jointrupdoor
|
|
tranx=-0.608
|
|
trany=-0.0898039
|
|
tranz=-0.0740286
|
|
pitch=-0.881391
|
|
yaw=-1.76577e-09
|
|
roll=-1.45558e-09
|
|
|
|
[siteedz_rtorso]
|
|
parent=jointshakey
|
|
tranx=1.13795
|
|
trany=1.8848
|
|
tranz=1.53896
|
|
pitch=6.46103e-09
|
|
yaw=-1.69698e-25
|
|
roll=5.25296e-17
|
|
|
|
[siteedz_ltorso]
|
|
parent=jointshakey
|
|
tranx=-1.138
|
|
trany=1.8848
|
|
tranz=1.53897
|
|
pitch=8.09082e-09
|
|
yaw=-2.66178e-25
|
|
roll=6.57976e-17
|
|
|
|
[siteedz_rearrtorso]
|
|
parent=jointshakey
|
|
tranx=1.13795
|
|
trany=1.8848
|
|
tranz=2.71253
|
|
pitch=7.9162e-09
|
|
yaw=-2.54882e-25
|
|
roll=6.43949e-17
|
|
|
|
[siteedz_rearltorso]
|
|
parent=jointshakey
|
|
tranx=-1.138
|
|
trany=1.8848
|
|
tranz=2.71253
|
|
pitch=9.25498e-09
|
|
yaw=-3.48879e-25
|
|
roll=7.53928e-17
|
|
|
|
[siteedz_utorso]
|
|
parent=jointshakey
|
|
tranx=4.64017e-08
|
|
trany=1.91113
|
|
tranz=-0.246179
|
|
pitch=1.10012e-08
|
|
yaw=-4.92495e-25
|
|
roll=8.95348e-17
|
|
|
|
[siteedz_dtorso]
|
|
parent=jointshakey
|
|
tranx=2.43734e-08
|
|
trany=0.27226
|
|
tranz=-1.50387
|
|
pitch=1.37369e-08
|
|
yaw=-7.68372e-25
|
|
roll=1.11869e-16
|
|
|
|
[siteedz_rearutorso]
|
|
parent=jointshakey
|
|
tranx=1.12478e-07
|
|
trany=2.70431
|
|
tranz=3.05539
|
|
pitch=1.45519e-08
|
|
yaw=-8.62271e-25
|
|
roll=1.1851e-16
|
|
|
|
[siteedz_reardtorso]
|
|
parent=jointshakey
|
|
tranx=7.68831e-08
|
|
trany=0.867352
|
|
tranz=1.97915
|
|
pitch=1.70547e-08
|
|
yaw=-1.18462e-24
|
|
roll=1.3892e-16
|
|
|
|
[siteedz_searchlight]
|
|
parent=jointshakey
|
|
tranx=5.39595e-08
|
|
trany=0.272268
|
|
tranz=-2.4494
|
|
pitch=9.31312e-10
|
|
yaw=-1.62982e-09
|
|
roll=-1.84304e-12
|
|
|
|
[siteedz_hip]
|
|
parent=jointhip
|
|
tranx=-0.00111915
|
|
trany=-0.032398
|
|
tranz=-0.427521
|
|
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.96846e-08
|
|
yaw=0.002618
|
|
roll=-4.49961e-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=-8.77076e-14
|
|
roll=-2.53567e-15
|
|
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.11745e-08
|
|
roll=5.37238e-09
|
|
|
|
[jointloutertoe]
|
|
parent=jointlankle
|
|
Type=hingex
|
|
Former Segment=segloto
|
|
tranx=-0.51023
|
|
trany=-0.514372
|
|
tranz=-1.04087
|
|
pitch=-2.85104e-06
|
|
yaw=0.785398
|
|
roll=-2.01071e-06
|
|
|
|
[jointlinnertoe]
|
|
parent=jointlankle
|
|
Type=hingex
|
|
Former Segment=seglito
|
|
tranx=0.4988
|
|
trany=-0.514362
|
|
tranz=-1.04083
|
|
pitch=-2.94106e-06
|
|
yaw=-0.785398
|
|
roll=2.10202e-06
|
|
|
|
[siteedz_lfoot]
|
|
parent=jointlankle
|
|
tranx=-2.00272e-05
|
|
trany=-0.7583
|
|
tranz=-0.32785
|
|
pitch=5.83996e-06
|
|
yaw=-4.0369e-08
|
|
roll=4.66308e-09
|
|
|
|
[siteedz_ldleg]
|
|
parent=jointlknee
|
|
tranx=0
|
|
trany=-1.32901
|
|
tranz=-0.67916
|
|
pitch=2.02656e-06
|
|
yaw=3.476e-10
|
|
roll=-2.18855e-15
|
|
|
|
[siteedz_luleg]
|
|
parent=jointlthigh
|
|
tranx=0.263412
|
|
trany=-1.00539
|
|
tranz=0.4665
|
|
pitch=2.96834e-08
|
|
yaw=0.002618
|
|
roll=-4.54414e-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.17867e-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.91066e-27
|
|
yaw=-5.75928e-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.4356e-13
|
|
roll=3.9352e-09
|
|
|
|
[jointrinnertoe]
|
|
parent=jointrankle
|
|
Type=hingex
|
|
Former Segment=segrito
|
|
tranx=-0.50311
|
|
trany=-0.514062
|
|
tranz=-1.04019
|
|
pitch=-2.09608e-06
|
|
yaw=0.785398
|
|
roll=-1.74203e-06
|
|
|
|
[jointroutertoe]
|
|
parent=jointrankle
|
|
Type=hingex
|
|
Former Segment=segroto
|
|
tranx=0.50682
|
|
trany=-0.514072
|
|
tranz=-1.04024
|
|
pitch=-2.71669e-06
|
|
yaw=-0.785398
|
|
roll=1.83425e-06
|
|
|
|
[siteedz_rfoot]
|
|
parent=jointrankle
|
|
tranx=9.89437e-06
|
|
trany=-0.758201
|
|
tranz=-0.327187
|
|
pitch=6.34684e-06
|
|
yaw=1.74252e-09
|
|
roll=-9.81398e-10
|
|
|
|
[siteedz_rdleg]
|
|
parent=jointrknee
|
|
tranx=-1.19209e-07
|
|
trany=-1.32827
|
|
tranz=-0.679623
|
|
pitch=2.91702e-22
|
|
yaw=3.48478e-09
|
|
roll=1.67415e-13
|
|
|
|
[siteedz_ruleg]
|
|
parent=jointrthigh
|
|
tranx=-0.264025
|
|
trany=-1.007
|
|
tranz=0.468183
|
|
pitch=1.78842e-06
|
|
yaw=0.002618
|
|
roll=1.06278e-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.00442954
|
|
trany=3.38796
|
|
tranz=1.69199
|
|
pitch=3.46945e-18
|
|
yaw=-1.57161e-07
|
|
roll=-9.16151e-18
|
|
site=siteeyepoint
|
|
|
|
[siteeyepoint] // moved by AddEyeJoint
|
|
parent=jointeye
|
|
tranx=0
|
|
trany=0
|
|
tranz=0
|
|
pitch=0
|
|
yaw=0
|
|
roll=0
|
|
|
|
|
|
|