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

550 lines
7.1 KiB
Plaintext

[LAB_ONLY]
[DamageZones]
// call MakeEntryList with 'dz_'
dz_lgun=0
dz_rgun=1
[ROOT]
JointCount=23
DZoneCount=2
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.00153483
trany=3.99778
tranz=0.000152588
pitch=0
yaw=3.14159
roll=0
joint=jointturret
joint=jointrthigh
joint=jointlthigh
[jointturret]
parent=jointlocal
Type=hingex
Former Segment=segtor
tranx=-0.00647922
trany=0.662515
tranz=-3.2495e-05
pitch=0
yaw=-0
roll=0
joint=jointshakey
joint=jointtorso
joint=jointeye
[jointtorso]
parent=jointturret
Type=hingey
Former Segment=segtur
Object=stidtur.bgf
dzone=dz_searchlight
tranx=1.81003e-06
trany=0.147047
tranz=1.52476
pitch=0
yaw=0
roll=0
site=sitelasrport
site=siteeyepoint
site=siteedz_searchlight
site=sitelight
[sitelasrport]
parent=jointtorso
tranx=0.204941
trany=-0.309401
tranz=1.07525
pitch=0
yaw=3.14159
roll=0
[jointshakey]
parent=jointturret
Type=ball
dzone=dz_btorso
dzone=dz_dtorso
dzone=dz_ftorso
dzone=dz_ltorso
dzone=dz_reardtorso
dzone=dz_rearutorso
dzone=dz_rtorso
dzone=dz_utorso
Former Segment=segshake
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
joint=jointrgun
joint=jointlgun
site=siteedz_btorso
site=siteedz_dtorso
site=siteedz_ftorso
site=siteedz_ltorso
site=siteedz_reardtorso
site=siteedz_rearutorso
site=siteedz_rtorso
site=siteedz_utorso
[sitelight]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=3.141593
roll=0
[siteedz_btorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_dtorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_ftorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_ltorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_reardtorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_rearutorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_rtorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_searchlight]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_utorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrgun]
parent=jointshakey
Type=hingex
Object=stidrgun.bgf
dzone=dz_rgun
Former Segment=segrgun
tranx=-1.19414
trany=1.12406
tranz=0.853299
pitch=0
yaw=-0
roll=0
site=sitergunport
site=siteedz_rgun
[sitergunport]
parent=jointrgun
tranx=-0.21166
trany=1.00136e-05
tranz=0.870326
pitch=0
yaw=3.14159
roll=0
[siteedz_rgun]
parent=jointrgun
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointlgun]
parent=jointshakey
Type=hingex
Object=stidlgun.bgf
dzone=dz_lgun
Former Segment=seglgun
tranx=1.20167
trany=1.12404
tranz=0.853298
pitch=0
yaw=-0
roll=0
site=sitelgunport
site=siteedz_lgun
[sitelgunport]
parent=jointlgun
tranx=0.21382
trany=0
tranz=0.870337
pitch=0
yaw=3.14159
roll=0
[siteedz_lgun]
parent=jointlgun
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrthigh]
parent=jointlocal
Type=hingex
dzone=dz_ruleg
Former Segment=segruleg
tranx=-0.952786
trany=0.481929
tranz=0.0387254
pitch=0
yaw=-0
roll=0
joint=jointrknee
site=siteedz_ruleg
[siteedz_ruleg]
parent=jointrthigh
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrknee]
parent=jointrthigh
Type=hingex
dzone=dz_rdleg
Former Segment=segrmleg
tranx=-7.03335e-06
trany=-0.84526
tranz=-0.770445
pitch=0
yaw=-0
roll=0
joint=jointrshin
site=siteedz_rdleg
[siteedz_rdleg]
parent=jointrknee
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrshin]
parent=jointrknee
Type=hingex
dzone=dz_rdleg
Former Segment=segrdleg
tranx=-1.5974e-05
trany=-2.00154
tranz=0.143022
pitch=0
yaw=-0
roll=0
joint=jointrankle
[jointrankle]
parent=jointrshin
Type=hingex
Former Segment=segem2
tranx=-1.10269e-05
trany=-1.33788
tranz=1.14477
pitch=0
yaw=-0
roll=0
joint=jointrspacer
[jointrspacer]
parent=jointrankle
Type=static
dzone=dz_rfoot
Former Segment=segrfot
tranx=-1.96695e-06
trany=-0.22476
tranz=0.443925
pitch=0
yaw=-0
roll=0
joint=jointrinnertoe
joint=jointroutertoe
site=siteedz_rfoot
[siteedz_rfoot]
parent=jointrspacer
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrinnertoe]
parent=jointrspacer
Type=hingez
dzone=dz_rfoot
Former Segment=segrito
tranx=0.271571
trany=0.12661
tranz=0.199687
pitch=-0.000243824
yaw=-0.00259528
roll=-0.000243824
[jointroutertoe]
parent=jointrspacer
Type=hingez
dzone=dz_rfoot
Former Segment=segroto
tranx=-0.328763
trany=0.12661
tranz=0.199687
pitch=-0.000243824
yaw=-0.00259528
roll=-0.000243824
[jointlthigh]
parent=jointlocal
Type=hingex
dzone=dz_luleg
Former Segment=segluleg
tranx=0.947335
trany=0.481914
tranz=0.0387254
pitch=0
yaw=-0
roll=0
joint=jointlknee
site=siteedz_luleg
[siteedz_luleg]
parent=jointlthigh
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointlknee]
parent=jointlthigh
Type=hingex
dzone=dz_ldleg
Former Segment=seglmleg
tranx=-6.97374e-06
trany=-0.845261
tranz=-0.770473
pitch=0
yaw=-0
roll=0
joint=jointlshin
site=siteedz_ldleg
[siteedz_ldleg]
parent=jointlknee
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointlshin]
parent=jointlknee
Type=hingex
dzone=dz_ldleg
Former Segment=segldleg
tranx=-1.60336e-05
trany=-2.00231
tranz=0.143042
pitch=0
yaw=-0
roll=0
joint=jointlankle
[jointlankle]
parent=jointlshin
Type=hingex
Former Segment=segem3
tranx=-1.09673e-05
trany=-1.33715
tranz=1.14475
pitch=0
yaw=-0
roll=0
joint=jointlspacer
[jointlspacer]
parent=jointlankle
Type=static
dzone=dz_lfoot
Former Segment=seglfot
tranx=-2.02656e-06
trany=-0.22498
tranz=0.443878
pitch=0
yaw=-0
roll=0
joint=jointloutertoe
joint=jointlinnertoe
site=siteedz_lfoot
[siteedz_lfoot]
parent=jointlspacer
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointloutertoe]
parent=jointlspacer
Type=hingez
dzone=dz_lfoot
Former Segment=segloto
tranx=0.330316
trany=0.12684
tranz=0.199701
pitch=-0.000243824
yaw=-0.00259528
roll=-0.000243824
[jointlinnertoe]
parent=jointlspacer
Type=hingez
dzone=dz_lfoot
Former Segment=seglito
tranx=-0.268407
trany=0.12698
tranz=0.199711
pitch=-0.000243824
yaw=-0.00259528
roll=-0.000243824
[jointshadow]
parent=ROOT
Type=balltranslate
Former Segment=segshd
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
joint=jointtshadow
[jointtshadow]
parent=jointshadow
Type=hingey
Former Segment=segtshd
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointeye]
parent=jointturret
Type=balltranslate
Former Segment=segnone
tranx=1.13
trany=-1.56
tranz=1.59
pitch=0
yaw=3.14159
roll=0
//[siteeyepoint]
//parent=jointeye
//tranx=1.36201e-05
//trany=1.06051
//tranz=2.14197
//pitch=0
//yaw=-0
//roll=0
[siteeyepoint]
parent=jointtorso
tranx=0
trany=1.45
tranz=0
pitch=0
yaw=3.14159
roll=0