macrosoft3dpinball/SpaceCadetPinball
type-two 43d7e9ac8e Add DAT inspector; scope the other two Full Tilt tables
Investigating "make the engine play all the .dat types". Answer: the container
parses for all three tables, but playability is a per-table reverse-engineering
project, not a loader fix. Evidence recorded in CLAUDE.md so it isn't re-derived.

- tools/datdump.py: parse and diff PARTOUT(4.0) DATs — groups, component type
  ids, float attribute ids. Asserts its own entry walk stayed in sync, since a
  desync silently turns every later field into garbage.
- loader: add query_float_attribute_opt for genuinely optional attributes.
  Dragon/Pirate ramps omit wall0 (1303), which Cadet always carries; treat a
  missing wall as no wall instead of a fatal load error.

Cadet and Full Tilt Cadet verified unchanged after this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 14:27:52 +10:00
..
control.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
control.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
DebugOverlay.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
DebugOverlay.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
EmbeddedData.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
EmbeddedData.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
font_selection.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
font_selection.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
fullscrn.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
fullscrn.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
gdrv.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
gdrv.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
GroupData.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
GroupData.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
high_score.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
high_score.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Icon_1.ico Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Icon_16x16.png Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Icon_32x32.png Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Icon_48x48.png Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Icon_128x128.png Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Icon_192x192.png Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imconfig.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_demo.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_draw.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_impl_sdl.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_impl_sdl.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_impl_sdlrenderer.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_impl_sdlrenderer.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_internal.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_sdl.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_sdl.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_tables.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui_widgets.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imgui.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imstb_rectpack.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imstb_textedit.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
imstb_truetype.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
loader.cpp Add DAT inspector; scope the other two Full Tilt tables 2026-07-28 14:27:52 +10:00
loader.h Add DAT inspector; scope the other two Full Tilt tables 2026-07-28 14:27:52 +10:00
maths.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
maths.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
midi.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
midi.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
NatvisFile.natvis Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
nudge.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
nudge.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
options.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
options.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
partman.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
partman.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
PB_MSGFT.bin Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
pb.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
pb.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
pch.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
proj.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
proj.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
render.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
render.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
score.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
score.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Sound.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
Sound.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
SpaceCadetPinball.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
SpaceCadetPinball.rc Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
splash_bitmap.bmp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TBall.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TBall.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TBlocker.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TBlocker.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TBumper.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TBumper.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TCircle.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TCircle.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TCollisionComponent.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TCollisionComponent.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TComponentGroup.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TComponentGroup.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TDemo.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TDemo.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TDrain.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TDrain.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TEdgeBox.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TEdgeManager.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TEdgeManager.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TEdgeSegment.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TEdgeSegment.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TFlagSpinner.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TFlagSpinner.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TFlipper.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TFlipper.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TFlipperEdge.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TFlipperEdge.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TGate.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TGate.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
THole.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
THole.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
timer.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
timer.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TKickback.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TKickback.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TKickout.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TKickout.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLight.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLight.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLightBargraph.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLightBargraph.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLightGroup.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLightGroup.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLightRollover.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLightRollover.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLine.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TLine.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TOneway.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TOneway.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPinballComponent.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPinballComponent.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPinballTable.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPinballTable.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPlunger.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPlunger.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPopupTarget.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TPopupTarget.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TRamp.cpp Add DAT inspector; scope the other two Full Tilt tables 2026-07-28 14:27:52 +10:00
TRamp.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
translations.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
translations.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TRollover.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TRollover.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TSink.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TSink.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TSoloTarget.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TSoloTarget.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TSound.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TSound.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTableLayer.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTableLayer.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTextBox.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTextBox.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTextBoxMessage.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTextBoxMessage.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTimer.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTimer.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTripwire.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TTripwire.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TWall.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
TWall.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
winmain.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
winmain.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
zdrv.cpp Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00
zdrv.h Vendor SpaceCadetPinball, build for Apple Silicon 2026-07-27 19:05:12 +10:00