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

574 lines
7.3 KiB
Plaintext

[LAB_ONLY]
[DamageZones]
// call MakeEntryList with 'dz_'
dz_btorso=0
dz_dtorso=1
dz_ftorso=2
dz_hip=3
dz_ldleg=4
dz_lfoot=5
dz_lgun=6
dz_ltorso=7
dz_luleg=8
dz_rdleg=9
dz_reardtorso=10
dz_rearltorso=11
dz_rearrtorso=12
dz_rearutorso=13
dz_rfoot=14
dz_rgun=15
dz_rtorso=16
dz_ruleg=17
dz_utorso=18
dz_searchlight=19
dz_missle=20
[ROOT]
JointCount=17
DZoneCount=21
Former Segment=segroot
tranx=0
trany=0
tranz=-0.282791
pitch=0
yaw=-0
roll=0
joint=jointlocal
joint=jointshadow
[jointlocal]
parent=ROOT
Type=balltranslate
Former Segment=segem1
tranx=0
trany=3.98268
tranz=0
pitch=0
yaw=-0
roll=0
joint=jointhip
joint=jointlthigh
joint=jointrthigh
[jointhip]
parent=jointlocal
Type=hingex
Object=raphip.bgf
dzone=dz_hip
Former Segment=seghip
tranx=0
trany=0.417321
tranz=0
pitch=0
yaw=-0
roll=0
joint=jointtorso
site=siteedz_hip
[siteedz_hip]
parent=jointhip
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointtorso]
parent=jointhip
Type=hingey
Former Segment=segtor
tranx=0
trany=0.861036
tranz=0
pitch=0
yaw=-0
roll=0
joint=jointshakey
[jointshakey]
parent=jointtorso
Type=ball
Object=raptor.bgf
dzone=dz_btorso
dzone=dz_dtorso
dzone=dz_ftorso
dzone=dz_ltorso
dzone=dz_reardtorso
dzone=dz_rearltorso
dzone=dz_rearrtorso
dzone=dz_rearutorso
dzone=dz_rtorso
dzone=dz_utorso
dzone=dz_missle
dzone=dz_searchlight
Former Segment=segshake
tranx=0
trany=0
tranz=0
pitch=-8.52211e-07
yaw=5.31863e-13
roll=3.01991e-07
joint=jointlgun
joint=jointrgun
joint=jointeye
site=sitemissleport
site=siterdtorsoport
site=siterutorsoport
site=siteedz_btorso
site=siteedz_dtorso
site=siteedz_ftorso
site=siteedz_ltorso
site=siteedz_reardtorso
site=siteedz_rearltorso
site=siteedz_rearrtorso
site=siteedz_rearutorso
site=siteedz_rtorso
site=siteedz_utorso
site=siteedz_missle
site=siteedz_searchlight
site=sitelight
[sitelight]
parent=jointshakey
tranx=0
trany=0
tranz=-1.32
pitch=0
yaw=-5.08938e-18
roll=-3.04723e-30
[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_rearltorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_rearrtorso]
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_utorso]
parent=jointshakey
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[siteedz_missle]
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
[jointlgun]
parent=jointshakey
Type=hingex
Former Segment=segem3
tranx=-1.6183
trany=0.814633
tranz=1.72206
pitch=0
yaw=-0
roll=0
joint=jointlspacer
[jointlspacer]
parent=jointlgun
Type=static
Object=raplgun.bgf
dzone=dz_lgun
Former Segment=seglgun
tranx=-0.30684
trany=0
tranz=0
pitch=-1.24345e-14
yaw=0
roll=0
site=siteldgunport
site=sitelugunport
site=siteedz_lgun
[siteldgunport]
parent=jointlspacer
tranx=0
trany=-0.13929
tranz=-2.43929
pitch=1.24345e-14
yaw=-8.14906e-10
roll=-1.86265e-09
[sitelugunport]
parent=jointlspacer
tranx=0.0706301
trany=0.20838
tranz=-1.43369
pitch=1.24345e-14
yaw=-8.14908e-10
roll=-1.86265e-09
[siteedz_lgun]
parent=jointlspacer
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrgun]
parent=jointshakey
Type=hingex
Former Segment=segem2
tranx=1.62138
trany=0.814633
tranz=1.72206
pitch=0
yaw=-0
roll=0
joint=jointrspacer
[jointrspacer]
parent=jointrgun
Type=static
Object=raprgun.bgf
dzone=dz_rgun
Former Segment=segrgun
tranx=0.30384
trany=0
tranz=0
pitch=-1.24345e-14
yaw=0
roll=0
site=siterdgunport
site=siterugunport
site=siteedz_rgun
[siterdgunport]
parent=jointrspacer
tranx=0
trany=-0.1393
tranz=-2.43929
pitch=0
yaw=-1.16415e-10
roll=-6.70552e-08
[siterugunport]
parent=jointrspacer
tranx=-0.0687
trany=0.20839
tranz=-1.43368
pitch=0
yaw=-1.1639e-10
roll=-6.70552e-08
[siteedz_rgun]
parent=jointrspacer
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[sitemissleport]
parent=jointshakey
tranx=0.000425339
trany=1.09558
tranz=.766429
pitch=0
yaw=-0
roll=0
[siterdtorsoport]
parent=jointshakey
tranx=0.884296
trany=0.224063
tranz=-0.513488
pitch=0
yaw=-0
roll=0
[siterutorsoport]
parent=jointshakey
tranx=0.884296
trany=0.513173
tranz=-0.226817
pitch=0
yaw=-0
roll=0
[jointlthigh]
parent=jointlocal
Type=hingex
Object=rapluleg.bgf
dzone=dz_luleg
Former Segment=segluleg
tranx=-1.53019
trany=0.417321
tranz=0.082791
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
Object=rapldleg.bgf
dzone=dz_ldleg
Former Segment=segldleg
tranx=1.00136e-05
trany=-1.2565
tranz=2.02873
pitch=0
yaw=-0
roll=4.54747e-13
joint=jointlankle
site=siteedz_ldleg
[siteedz_ldleg]
parent=jointlknee
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointlankle]
parent=jointlknee
Type=hingex
Object=raplfot.bgf
dzone=dz_lfoot
Former Segment=seglfot
tranx=0
trany=-2.59437
tranz=-1.39703
pitch=-1.97483e-36
yaw=-1.77636e-15
roll=8.88341e-16
site=siteedz_lfoot
[siteedz_lfoot]
parent=jointlankle
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrthigh]
parent=jointlocal
Type=hingex
Object=rapruleg.bgf
dzone=dz_ruleg
Former Segment=segruleg
tranx=1.52672
trany=0.417321
tranz=0.082791
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
Object=raprdleg.bgf
dzone=dz_rdleg
Former Segment=segrdleg
tranx=9.89437e-06
trany=-1.2565
tranz=2.02873
pitch=0
yaw=1.81898e-12
roll=0
joint=jointrankle
site=siteedz_rdleg
[siteedz_rdleg]
parent=jointrknee
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointrankle]
parent=jointrknee
Type=hingex
Object=raprfot.bgf
dzone=dz_rfoot
Former Segment=segrfot
tranx=0
trany=-2.59437
tranz=-1.39703
pitch=0
yaw=-2.27366e-13
roll=0
site=siteedz_rfoot
[siteedz_rfoot]
parent=jointrankle
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointshadow]
parent=ROOT
Type=balltranslate
Former Segment=segshd
tranx=0
trany=0.05
tranz=0
pitch=0
yaw=0
roll=0
joint=jointtshadow
[jointtshadow]
parent=jointshadow
Type=hingey
Object=rap_tshd.bgf
Former Segment=segtshd
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointeye]
parent=jointshakey
Type=balltranslate
Former Segment=segnone
tranx=-1.2
trany=-1.5
tranz=2.5
pitch=0
yaw=0
roll=0
site=siteeyepoint
[siteeyepoint]
parent=jointshakey
tranx=-1.2
trany=1.65
tranz=1
pitch=0
yaw=0
roll=0