Files
BT412/content/VIDEO/BATD.SKL
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

692 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=siteedz_rgun
[siterugunport]
parent=jointrgun
tranx=0.17
trany=0.017
tranz=-3.83199
pitch=-2.73406e-11
yaw=6.98481e-10
roll=-8.81441e-14
[siterdgunport]
parent=jointrgun
tranx=0.527
trany=-0.365002
tranz=-3.833
pitch=-4.93003e-10
yaw=6.98481e-10
roll=-8.81441e-14
[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=siteedz_lgun
[sitelugunport]
parent=jointlgun
tranx=-0.163
trany=0.0179996
tranz=-3.832
pitch=-1.37373e-07
yaw=1.64372e-08
roll=-1.06563e-15
[siteldgunport]
parent=jointlgun
tranx=-0.519
trany=-0.364002
tranz=-3.83301
pitch=-1.53205e-07
yaw=2.01625e-08
roll=-1.47851e-15
[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