ROI UAF fixes:
- LegoAnimActorStruct deep-copies m_roiMap and deletes copy-assignment, so
LegoExtraActor's copy-construction at legoextraactor.cpp no longer shares
ownership with the source presenter.
- LegoROI tracks slot back-references; its destructor nulls every registered
LegoROI** so per-element UAF in arrays like LegoAnimPresenter::m_roiMap is
impossible. LegoAnimActorStruct / LegoAnimPresenter / LegoLocomotionAnimPresenter
register and unregister around their array lifetimes.
- LegoAnimationManager::Suspend now invokes ClearMaps on every persistent
LegoExtraActor (not just those currently in m_extras) so dormant actors
cannot retain stale m_AnimTreePtr after world teardown. Adds ClearMaps
overrides on Act2Actor, Act3Cop, Act3Brickster, Act3Shark, LegoRaceCar,
LegoExtraActor.
INITIAL_MEMORY=128mb is re-added to the Emscripten link options.
* Fix `LegoBackgroundColor` order
* Order
* Improve order in Act3Actors
* Improve order
* Add BETA annotation
* Order more
* More order
* More order
* Order
* Match/order
* Remove blank line
* Modern compiler fix
* vtable annotation
* Implement/match LegoExtraActor::VTable0x94
* attempt to fix gcc
* WIP fixes
* Match
* Match
* Match
* add TODO
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Fix size annotations for legoomni
Fix structure and add placeholder annotations for LegoAnimActor and subclasses
* Fix LegoCarRaceActor constructor
Fix function name in LegoRaceCar
* Add size assertions for legoomni and fix sizes
* Various style fixes
* Use other marker so vtable.py doesn't compare
* Revert "Use other marker so vtable.py doesn't compare"
This reverts commit 608985cd73856598b95c15aed9f8f022645e9e7a.
* Fix copy/paste error
* Remove stale comment.
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>