Files
BT411/content/VIDEO/SNX2.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

576 lines
8.8 KiB
Plaintext

[LAB_ONLY] // this file has not been approved for release
[DamageZones] // call MakeEntryList with 'dz_'
dz_ltorso=0
dz_rtorso=1
dz_searchlight=2
dz_utorso=3
[ROOT]
JointCount=20
DZoneCount=4
Former Segment=segroot
tranx=0
trany=0
tranz=-0.2
pitch=0
yaw=-0
roll=0
joint=jointlocal
joint=jointshadow
[jointlocal]
parent=ROOT
Type=balltranslate
Former Segment=segem3
tranx=0
trany=6.20884
tranz=0
pitch=0
yaw=-0
roll=0
joint=jointhip
joint=jointlthigh
joint=jointrthigh
[jointhip]
parent=jointlocal
Type=hingex
Former Segment=seghip
tranx=1.52588e-05
trany=0.21202
tranz=0
pitch=0
yaw=-0
roll=0
joint=jointtorso
site=siteedz_hip
[jointtorso]
parent=jointhip
Type=hingey
Object=snx_cop.bgf
dzone=dz_utorso
Former Segment=segtor
tranx=-1.44946e-05
trany=0.278824
tranz=0
pitch=-5.82076e-11
yaw=-3.02591e-15
roll=0
joint=jointshakey
joint=jointeye
[jointshakey]
parent=jointtorso
Type=ball
Object=snx_tor.bgf
dzone=dz_ltorso
dzone=dz_rtorso
dzone=dz_searchlight
Former Segment=segshake
tranx=-4.54291e-07
trany=0.102316
tranz=0
pitch=5.76107e-11
yaw=2.84961e-15
roll=2.32936e-26
joint=jointrshoulder
joint=jointlshoulder
site=sitelight
site=siteltorsoport
site=sitelbtorsoport
site=sitertorsoport
site=siterbtorsoport
site=siteedz_ltorso
site=siteedz_rtorso
site=siteedz_dtorso
site=siteedz_utorso
site=siteedz_searchlight
site=siteedz_rearrtorso
site=siteedz_rearltorso
site=siteedz_reardtorso
site=siteedz_rearutorso
joint=jointmissledoor
site=sitemissleport
[jointrshoulder]
parent=jointshakey
Type=hingex
Former Segment=segrarm
tranx=2.5562
trany=2.51921
tranz=0.934046
pitch=2.62699e-24
yaw=1.73978e-17
roll=3.01991e-07
joint=jointrgun
site=siteedz_rarm
[jointrgun]
parent=jointrshoulder
Type=hingex
Former Segment=segrgun
tranx=0.90226
trany=-0.0736504
tranz=-0.175426
pitch=3.38514e-10
yaw=4.5657e-10
roll=-3.96716e-09
site=siterugunport
site=siteedz_rgun
site=siterdgunport
[siterugunport]
parent=jointrgun
tranx=0.54767
trany=0.00339985
tranz=-2.71685
pitch=-2.38757e-07
yaw=3.34819e-07
roll=-6.25849e-07
[siteedz_rgun]
parent=jointrgun
tranx=0.78682
trany=-0.17119
tranz=-0.830993
pitch=-2.38757e-07
yaw=3.34819e-07
roll=-6.25849e-07
[siterdgunport]
parent=jointrgun
tranx=1.00298
trany=-0.406111
tranz=-3.69804
pitch=-2.08954e-07
yaw=4.31676e-07
roll=-6.25849e-07
[siteedz_rarm]
parent=jointrshoulder
tranx=0.46377
trany=0.36532
tranz=0
pitch=3.38514e-10
yaw=4.5657e-10
roll=-3.96716e-09
[jointlshoulder]
parent=jointshakey
Type=hingex
Former Segment=seglarm
tranx=-2.53993
trany=2.98391
tranz=0.827469
pitch=2.68881e-41
yaw=-5.08938e-18
roll=-1.05662e-23
joint=jointlgun
site=siteedz_larm
[jointlgun]
parent=jointlshoulder
Type=hingex
Former Segment=seglgun
tranx=-1.06438
trany=-0.97388
tranz=-0.00197399
pitch=8.73111e-10
yaw=-5.03068e-16
roll=1.08806e-23
site=sitelgunport
site=siteedz_lgun
[sitelgunport]
parent=jointlgun
tranx=-0.35713
trany=-0.43919
tranz=-2.85113
pitch=-8.72515e-10
yaw=-1.49012e-08
roll=2.98024e-08
[siteedz_lgun]
parent=jointlgun
tranx=-0.35713
trany=-0.47223
tranz=-1.37149
pitch=-8.72515e-10
yaw=-1.49012e-08
roll=2.98024e-08
[siteedz_larm]
parent=jointlshoulder
tranx=-0.61169
trany=-0.41769
tranz=-0.00197399
pitch=8.73103e-10
yaw=-1.19696e-15
roll=1.08802e-23
[sitelight]
parent=jointshakey
tranx=1.37156
trany=2.61028
tranz=-0.776072
pitch=1.92707e-41
yaw=-5.08938e-18
roll=-7.57243e-24
[siteltorsoport]
parent=jointshakey
tranx=-0.5318
trany=0.82612
tranz=-2.47676
pitch=2.41976e-41
yaw=-5.08938e-18
roll=-9.50957e-24
[sitertorsoport]
parent=jointshakey
tranx=-0.112979
trany=0.82636
tranz=-2.47676
pitch=5.60155e-41
yaw=-5.08938e-18
roll=-2.2013e-23
[sitelbtorsoport]
parent=jointshakey
tranx=-0.5318
trany=0.82612
tranz=-2.47676
pitch=2.41976e-41
yaw=3.14159
roll=-9.50957e-24
[siterbtorsoport]
parent=jointshakey
tranx=-0.112979
trany=0.82636
tranz=-2.47676
pitch=5.60155e-41
yaw=3.14159
roll=-2.2013e-23
[siteedz_ltorso]
parent=jointshakey
tranx=-1.69333
trany=2.50774
tranz=0.202731
pitch=1.83738e-41
yaw=-5.08938e-18
roll=-7.22024e-24
[siteedz_rtorso]
parent=jointshakey
tranx=1.69399
trany=2.50153
tranz=0.203
pitch=1.61317e-41
yaw=-5.08938e-18
roll=-6.33972e-24
[siteedz_dtorso]
parent=jointshakey
tranx=-3.09877e-07
trany=0.86361
tranz=-0.317355
pitch=0
yaw=-5.08938e-18
roll=-3.04723e-30
[siteedz_utorso]
parent=jointshakey
tranx=-3.09877e-07
trany=3.35662
tranz=0.021892
pitch=1.07564e-41
yaw=-5.08938e-18
roll=-4.22647e-24
[siteedz_searchlight]
parent=jointshakey
tranx=1.37156
trany=2.61028
tranz=-0.716965
pitch=2.59913e-41
yaw=-5.08938e-18
roll=-1.0214e-23
[siteedz_rearrtorso]
parent=jointshakey
tranx=1.4159
trany=1.74761
tranz=1.917
pitch=6.72063e-42
yaw=-5.08938e-18
roll=-2.64156e-24
[siteedz_rearltorso]
parent=jointshakey
tranx=-1.39029
trany=1.74761
tranz=1.91622
pitch=9.85954e-42
yaw=-5.08938e-18
roll=-3.87427e-24
[siteedz_reardtorso]
parent=jointshakey
tranx=-3.09877e-07
trany=1.37711
tranz=2.01824
pitch=3.22663e-41
yaw=-5.08938e-18
roll=-1.26794e-23
[siteedz_rearutorso]
parent=jointshakey
tranx=-3.09877e-07
trany=3.97094
tranz=2.04097
pitch=2.15099e-41
yaw=-5.08938e-18
roll=-8.45295e-24
[jointmissledoor]
parent=jointshakey
Type=hingex
Former Segment=segdoor
tranx=-0.00196702
trany=4.31817
tranz=0.021186
pitch=1.19371e-12
yaw=1.76403e-16
roll=3.01991e-07
site=siteedz_door
[siteedz_door]
parent=jointmissledoor
tranx=-1.70432e-07
trany=-0.56438
tranz=-0.727186
pitch=-1.40071e-06
yaw=-2.5615e-09
roll=-4.79721e-08
[sitemissleport]
parent=jointshakey
tranx=0.00018661
trany=3.29391
tranz=-0.716965
pitch=1.19371e-12
yaw=1.76403e-16
roll=3.01991e-07
[siteedz_hip]
parent=jointhip
tranx=-1.44946e-05
trany=-0.709867
tranz=0
pitch=-5.82076e-11
yaw=-3.02591e-15
roll=0
[jointlthigh]
parent=jointlocal
Type=hingex
Former Segment=segluleg
tranx=-1.70967
trany=0.21202
tranz=0.19766
pitch=0
yaw=-0
roll=0
joint=jointlknee
site=siteedz_luleg
[jointlknee]
parent=jointlthigh
Type=hingex
Former Segment=segldleg
tranx=0
trany=-3.32122
tranz=-0.786014
pitch=0
yaw=-1.16431e-10
roll=0
joint=jointlankle
site=siteedz_ldleg
[jointlankle]
parent=jointlknee
Type=hingex
Former Segment=segem1
tranx=0
trany=-1.99533
tranz=-0.205027
pitch=1.78814e-07
yaw=-5.82099e-11
roll=5.39975e-20
joint=jointltoe
[jointltoe]
parent=jointlankle
Type=static
Former Segment=seglfot
tranx=0
trany=-1.10281
tranz=-1.58674
pitch=1.69872e-06
yaw=-2.53381e-22
roll=2.98319e-16
site=siteedz_lfoot
[siteedz_lfoot]
parent=jointltoe
tranx=0
trany=0.510973
tranz=1.58758
pitch=5.21032e-21
yaw=6.04815e-13
roll=1.72295e-08
[siteedz_ldleg]
parent=jointlknee
tranx=0
trany=-1.20664
tranz=-0.121646
pitch=1.78814e-07
yaw=-5.81435e-11
roll=1.78872e-18
[siteedz_luleg]
parent=jointlthigh
tranx=-0.000330091
trany=-1.71286
tranz=-0.49866
pitch=0
yaw=-1.1636e-10
roll=0
[jointrthigh]
parent=jointlocal
Type=hingex
Former Segment=segruleg
tranx=1.70786
trany=0.21202
tranz=0.19766
pitch=0
yaw=-0
roll=0
joint=jointrknee
site=siteedz_ruleg
[jointrknee]
parent=jointrthigh
Type=hingex
Former Segment=segrdleg
tranx=0
trany=-3.32122
tranz=-0.786015
pitch=0
yaw=-2.32823e-10
roll=-5.53097e-10
joint=jointrankle
site=siteedz_rdleg
[jointrankle]
parent=jointrknee
Type=hingex
Former Segment=segem2
tranx=0
trany=-1.99533
tranz=-0.205027
pitch=4.24682e-07
yaw=2.94097e-18
roll=3.45608e-10
joint=jointrtoe
[jointrtoe]
parent=jointrankle
Type=static
Former Segment=segrfot
tranx=0
trany=-1.10281
tranz=-1.58674
pitch=2.23525e-08
yaw=-5.81902e-10
roll=-6.40019e-09
site=siteedz_rfoot
[siteedz_rfoot]
parent=jointrtoe
tranx=0.000139952
trany=0.5105
tranz=1.58712
pitch=2.18085e-20
yaw=4.93302e-10
roll=8.84185e-11
[siteedz_rdleg]
parent=jointrknee
tranx=0
trany=-1.2067
tranz=-0.121942
pitch=4.24682e-07
yaw=2.88983e-18
roll=3.45849e-10
[siteedz_ruleg]
parent=jointrthigh
tranx=0.000139952
trany=-1.7132
tranz=-0.498218
pitch=0
yaw=-2.32823e-10
roll=-5.53097e-10
[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=-7.64168e-07
trany=3.14039
tranz=-0.277287
pitch=5.76107e-11
yaw=2.84961e-15
roll=-4.73275e-24
site=siteeyepoint
[siteeyepoint] // moved by AddEyeJoint
parent=jointeye
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0