Files
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

769 lines
12 KiB
Plaintext

[LAB_ONLY] // this file has not been approved for release
[DamageZones] // call MakeEntryList with 'dz_'
dz_dtorso=0
dz_hip=1
dz_larm=2
dz_ldleg=3
dz_ldoor=4
dz_lfoot=5
dz_lgun=6
dz_ltorso=7
dz_luleg=8
dz_rarm=9
dz_rdleg=10
dz_rdoor=11
dz_reardtorso=12
dz_rearltorso=13
dz_rearrtorso=14
dz_rearutorso=15
dz_rfoot=16
dz_rgun=17
dz_rtorso=18
dz_ruleg=19
dz_searchlight=20
dz_utorso=21
[ROOT]
JointCount=25
DZoneCount=22
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
Object=ava_hip.bgf
dzone=dz_hip
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
Object=ava_tor.bgf
dzone=dz_dtorso
dzone=dz_ltorso
dzone=dz_reardtorso
dzone=dz_rearltorso
dzone=dz_rearrtorso
dzone=dz_rearutorso
dzone=dz_rtorso
dzone=dz_searchlight
dzone=dz_utorso
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=siteritorsoport
site=siterdtorsoport
site=sitelitorsoport
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
site=sitelotorsoport
site=siterotorsoport
[jointrshoulder]
parent=jointshakey
Type=hingex
Object=ava_rarm.bgf
dzone=dz_rarm
Former Segment=segrarm
tranx=2.03913
trany=2.57317
tranz=0.19326
pitch=1.36612e-09
yaw=-1.16808e-26
roll=1.71007e-17
joint=jointrgun
site=siteedz_rarm
[jointrgun]
parent=jointrshoulder
Type=hingex
Object=blh_rgun.bgf
dzone=dz_rgun
Former Segment=segrgun
tranx=0.47929
trany=-1.28347
tranz=0.40127
pitch=-2.9802e-08
yaw=-4.79966e-09
roll=1.76205e-06
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.573009
trany=-0.280201
tranz=-0.966875
pitch=5.65365e-06
yaw=5.74441e-14
roll=-1.70441e-06
[siteedz_rarm]
parent=jointrshoulder
tranx=0.52051
trany=-0.31197
tranz=-2.99513e-06
pitch=3.02291e-08
yaw=2.42149e-08
roll=-1.01192e-13
[jointlshoulder]
parent=jointshakey
Type=hingex
Object=ava_larm.bgf
dzone=dz_larm
Former Segment=seglarm
tranx=-2.05478
trany=2.57292
tranz=0.194147
pitch=1.20246e-09
yaw=-9.02597e-27
roll=1.50125e-17
joint=jointlgun
site=siteedz_larm
[jointlgun]
parent=jointlshoulder
Type=hingex
Object=blh_lgun.bgf
dzone=dz_lgun
Former Segment=seglgun
tranx=-0.47935
trany=-1.28344
tranz=0.4013
pitch=2.98027e-08
yaw=-4.79966e-09
roll=1.72854e-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.56934
trany=-0.280229
tranz=-0.967231
pitch=-3.4259e-06
yaw=9.79794e-14
roll=3.40884e-06
[siteedz_larm]
parent=jointlshoulder
tranx=-0.51868
trany=-0.31091
tranz=-9.83477e-07
pitch=7.73718e-08
yaw=6.10791e-08
roll=-1.75833e-06
[sitelmissleport]
parent=jointshakey
tranx=-1.40352
trany=1.02796
tranz=-0.849431
pitch=3.95811e-09
yaw=-9.8447e-26
roll=4.97445e-17
[sitermissleport]
parent=jointshakey
tranx=1.42868
trany=1.02903
tranz=-0.849146
pitch=6.05359e-09
yaw=-2.3031e-25
roll=7.60905e-17
[sitelight]
parent=jointshakey
tranx=-0.285515
trany=1.4345
tranz=-2.78037
pitch=2.96858e-09
yaw=-5.54292e-26
roll=3.73439e-17
[siteritorsoport]
parent=jointshakey
tranx=0.945828
trany=3.04481
tranz=-0.631311
pitch=4.24916e-09
yaw=-1.1346e-25
roll=5.34036e-17
[siterdtorsoport]
parent=jointshakey
tranx=0.254142
trany=0.82696
tranz=-3.63251
pitch=2.44472e-09
yaw=-3.75469e-26
roll=3.07167e-17
[sitelitorsoport]
parent=jointshakey
tranx=-0.95279
trany=3.0448
tranz=-0.631311
pitch=5.2969e-09
yaw=-1.76109e-25
roll=6.64952e-17
[siteldtorsoport]
parent=jointshakey
tranx=-0.256351
trany=0.82714
tranz=-3.63252
pitch=3.78349e-09
yaw=-8.98095e-26
roll=4.74744e-17
[jointlmissledoor]
parent=jointshakey
Type=hingex
dzone=dz_ldoor
Former Segment=segldoor
tranx=-0.814114
trany=1.46454
tranz=-1.09827
pitch=3.29792e-09
yaw=-6.81988e-26
roll=4.13586e-17
site=siteedz_ldoor
[siteedz_ldoor]
parent=jointlmissledoor
tranx=-0.591356
trany=0.000459909
tranz=-0.0779799
pitch=-4.7203e-07
yaw=-2.32822e-09
roll=-4.19477e-11
[jointrmissledoor]
parent=jointshakey
Type=hingex
dzone=dz_rdoor
Former Segment=segrdoor
tranx=0.802939
trany=1.4633
tranz=-1.09827
pitch=1.21454e-08
yaw=-9.27424e-25
roll=1.5272e-16
site=siteedz_rdoor
[siteedz_rdoor]
parent=jointrmissledoor
tranx=0.623961
trany=0
tranz=-0.0782299
pitch=-2.6927e-07
yaw=-2.32823e-09
roll=-4.44847e-15
[siteedz_rtorso]
parent=jointshakey
tranx=1.43202
trany=1.97185
tranz=0.175666
pitch=6.11178e-09
yaw=-2.34678e-25
roll=7.67953e-17
[siteedz_ltorso]
parent=jointshakey
tranx=-1.40614
trany=1.97185
tranz=0.175664
pitch=4.36556e-09
yaw=-1.19615e-25
roll=5.47996e-17
[siteedz_utorso]
parent=jointshakey
tranx=4.26566e-08
trany=3.23705
tranz=-0.36365
pitch=7.91619e-09
yaw=-3.9376e-25
roll=9.94824e-17
[siteedz_dtorso]
parent=jointshakey
tranx=-2.19039e-08
trany=1.0189
tranz=-2.25448
pitch=1.39697e-08
yaw=-1.2264e-24
roll=1.7558e-16
[siteedz_rearutorso]
parent=jointshakey
tranx=1.00671e-07
trany=2.73561
tranz=2.61747
pitch=8.03262e-09
yaw=-4.05158e-25
roll=1.00878e-16
[siteedz_reardtorso]
parent=jointshakey
tranx=7.86791e-08
trany=0.92566
tranz=1.49679
pitch=1.50175e-08
yaw=-1.41663e-24
roll=1.88665e-16
[siteedz_rearrtorso]
parent=jointshakey
tranx=1.42463
trany=1.97006
tranz=1.6737
pitch=7.27591e-09
yaw=-3.327e-25
roll=9.14525e-17
[siteedz_rearltorso]
parent=jointshakey
tranx=-1.4066
trany=1.97053
tranz=1.67459
pitch=5.29688e-09
yaw=-1.76109e-25
roll=6.64954e-17
[siteedz_searchlight]
parent=jointshakey
tranx=-0.285515
trany=1.4345
tranz=-2.60788
pitch=3.95811e-09
yaw=-9.8447e-26
roll=4.97445e-17
[sitelotorsoport]
parent=jointshakey
tranx=-1.24503
trany=3.04481
tranz=-0.631313
pitch=6.11179e-09
yaw=-2.34678e-25
roll=7.67952e-17
[siterotorsoport]
parent=jointshakey
tranx=1.23294
trany=3.04482
tranz=-0.631314
pitch=5.23869e-09
yaw=-1.72346e-25
roll=6.57973e-17
[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
Object=ava_lule.bgf
dzone=dz_luleg
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
Object=ava_ldle.bgf
dzone=dz_ldleg
Former Segment=segldleg
tranx=0.00376296
trany=-1.96938
tranz=1.43734
pitch=2.96845e-08
yaw=0.002618
roll=-4.50083e-08
joint=jointlankle
site=siteedz_ldleg
[jointlankle]
parent=jointlknee
Type=hingex
Object=ava_lfot.bgf
dzone=dz_lfoot
Former Segment=seglfot
tranx=1.19209e-07
trany=-2.38752
tranz=-1.43651
pitch=2.02656e-06
yaw=-1.04583e-13
roll=-2.53562e-15
joint=jointlbacktoe
joint=jointloutertoe
joint=jointlinnertoe
site=siteedz_lfoot
[jointlbacktoe]
parent=jointlankle
Type=hingex
Object=ava_lbto.bgf
dzone=dz_lfoot
Former Segment=seglbto
tranx=-2.00272e-05
trany=-0.514369
tranz=0.689937
pitch=5.83996e-06
yaw=-4.11746e-08
roll=5.37238e-09
[jointloutertoe]
parent=jointlankle
Type=hingex
Object=ava_loto.bgf
dzone=dz_lfoot
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
Object=ava_lito.bgf
dzone=dz_lfoot
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.95116e-09
[siteedz_ldleg]
parent=jointlknee
tranx=0.00019002
trany=-1.27301
tranz=-0.68516
pitch=2.02656e-06
yaw=4.28164e-10
roll=-2.10804e-15
[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
Object=ava_rule.bgf
dzone=dz_ruleg
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
Object=ava_rdle.bgf
dzone=dz_rdleg
Former Segment=segrdleg
tranx=0.00376308
trany=-1.97125
tranz=1.43737
pitch=1.78845e-06
yaw=0.00261799
roll=1.19545e-07
joint=jointrankle
site=siteedz_rdleg
[jointrankle]
parent=jointrknee
Type=hingex
Object=ava_rfot.bgf
dzone=dz_rfoot
Former Segment=segrfot
tranx=-2.38419e-07
trany=-2.38756
tranz=-1.43738
pitch=0
yaw=0
roll=-1.7053e-13
joint=jointrbacktoe
joint=jointrinnertoe
joint=jointroutertoe
site=siteedz_rfoot
[jointrbacktoe]
parent=jointrankle
Type=hingex
Object=ava_rbto.bgf
dzone=dz_rfoot
Former Segment=segrbto
tranx=-1.19209e-07
trany=-0.514069
tranz=0.689989
pitch=6.34684e-06
yaw=7.53684e-13
roll=3.9352e-09
[jointrinnertoe]
parent=jointrankle
Type=hingex
Object=ava_rito.bgf
dzone=dz_rfoot
Former Segment=segrito
tranx=-0.50311
trany=-0.514062
tranz=-1.04019
pitch=-2.09783e-06
yaw=0.785398
roll=-1.74134e-06
[jointroutertoe]
parent=jointrankle
Type=hingex
Object=ava_roto.bgf
dzone=dz_rfoot
Former Segment=segroto
tranx=0.50682
trany=-0.514072
tranz=-1.04024
pitch=-2.71495e-06
yaw=-0.785398
roll=1.83494e-06
[siteedz_rfoot]
parent=jointrankle
tranx=-0.000170112
trany=-0.7562
tranz=-0.339987
pitch=6.34684e-06
yaw=4.42964e-09
roll=5.71243e-10
[siteedz_rdleg]
parent=jointrknee
tranx=0.000229836
trany=-1.27285
tranz=-0.685479
pitch=-1.75963e-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.15199e-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
Object=ava_tshd.bgf
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.00393612
trany=3.15314
tranz=-1.5034
pitch=2.67757e-09
yaw=-2.61702e-07
roll=1.90952e-12
site=siteeyepoint
[siteeyepoint] // moved by AddEyeJoint
parent=jointeye
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0