Skip to content

Drop the last overlay edits of isle.cpp and act3.cpp - #1803

Closed
foxtacles wants to merge 5 commits into
isledecomp:masterfrom
foxtacles:overlay-edit-cleanup-3-2026-09-10
Closed

foxtacles wants to merge 5 commits into
isledecomp:masterfrom
foxtacles:overlay-edit-cleanup-3-2026-09-10

Conversation

@foxtacles

Copy link
Copy Markdown
Member

This continues #1802 with the last edits repair could replace, and records what was tried and refused so the campaign can stop here.

Edits. isle.cpp and act3.cpp each lose their last declaration carrier; repair re-found the affected bodies (6 records updated). 58,678 → 58,553.

What was tried and refused, so the campaign stops here. Moving FindSoundByKey's owning-key constructor (the form the file's overlay donor already compiles privately) into the real source: the declaration in the shared header shifts the line tables of legosoundmanager.cpp, whose _Tree::_Erase is a register-bijection record, a family without a measured-pin repair; repair stops there after fourteen passes. Retiring an expensive record (the 500-point mosaics of VTable0x30 and LinkEdgesAndFaces, the 250-point rewrite of FUN_10061010) so the widened discovery could re-author it: repair finds no fresh carrier state that reproduces those bodies and does not author rewriting records from scratch. Removing the remaining carriers of files that hold rewriting or mosaic records (legonavcontroller, legoroi, legolod, legoanimationmanager, legocharactermanager and others): the rewrite bodies move and the same gap applies. The remaining 300-odd effective-source edits pin data or section order, or carry functions no discovered state reproduces.

A cold rbit verify on the final tree is byte-identical for all three targets with a clean authenticity verdict.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E

foxtacles and others added 5 commits September 9, 2026 19:15
A census of the effective-source edits (each file compiled with all its
edits, with one removed, and with none; objects compared strictly
outside the debug sections) found 35 files whose edits change nothing
but function bodies: no data, exception table or section-order
difference. Their 51 edits are removed and rbit repair re-found the 76
affected functions with newly discovered declaration carriers (73
function records on cheap donors, 1,560 choices tested). A cold verify
is byte-identical for all three targets with a clean authenticity
verdict. Cost 65,428 -> 63,082.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Thirteen files that hold only cheap equal-body and same-slot records
lose all their effective-source edits: act2actor, ambulance, infocenter,
islepathactor, legoanimmmpresenter, legocarbuildpresenter,
legomodelpresenter, mxatom, mxmusicmanager, mxnotificationmanager,
mxvideomanager, raceskel and score. Their objects differ without the
edits only in function bodies, and rbit repair re-found those bodies
with newly discovered declaration carriers (28 function records
updated, 1,617 choices tested). Files whose functions no carrier
reproduced (doors, legotexturepresenter, mxcontrolpresenter,
legovideomanager) keep their edits. A cold verify is byte-identical for
all three targets with a clean authenticity verdict. Cost 63,082 ->
60,971.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Eighteen files keep the effective-source edits that pin their data or
section order and lose the declaration carriers whose removal changes
only function bodies: buildings, helicopter, hospital, legoanim,
legogamestate, legoobjectfactory, legotree, legoutils,
legoworldpresenter, mxdsmultiaction, mxmediapresenter, mxregion,
mxstillpresenter, mxstreamcontroller, mxvariabletable, registrationbook
and towtrack partially, mxticklemanager entirely. Each file's candidate
set was first checked removed together (objects identical outside the
function bodies), then rbit repair re-found the bodies with newly
discovered carriers in sixteen passes (40 function records updated, one
source layout adjusted, 4,211 choices tested). Files whose functions no
carrier reproduced keep their edits. A cold verify is byte-identical for
all three targets with a clean authenticity verdict. Cost 60,971 ->
59,063.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Six function records had become no-ops after the earlier removals: the
composed body already equals the compiler's own output for ~RaceSkel,
the InfocenterState constructor, LegoAnimNodeData::GetRotation,
TowTrack::HandlePathStruct, LegoGameState::History::WriteScoreHistory
and MxStillPresenter::LoadFrame. They are retired together with the two
donors left without a consumer, and act3, legocachesoundmanager and
mxtransitionmanager each lose one declaration carrier; rbit repair
re-found the affected bodies in five passes. A cold verify is
byte-identical for all three targets with a clean authenticity verdict.
Cost 59,063 -> 58,678.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Both files kept one declaration carrier whose removal changes only
function bodies; rbit repair re-found those bodies with existing and
newly discovered compiler choices (6 function records updated, 96
choices tested). A cold verify is byte-identical for all three targets
with a clean authenticity verdict. Cost 58,678 -> 58,553.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
@foxtacles

Copy link
Copy Markdown
Member Author

Folded into #1802 (same commit, one PR).

@foxtacles foxtacles closed this Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant