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>
574 lines
7.3 KiB
Plaintext
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
|
|
|