Commit Graph

54 Commits

Author SHA1 Message Date
Christian Semmler
c1e80ee416
Fix ROI UAF cluster and bump Emscripten INITIAL_MEMORY to 128 MB
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.
2026-05-17 12:53:00 -07:00
Christian Semmler
203f932ec2 Merge remote-tracking branch 'isle/master' 2026-03-14 16:48:49 -07:00
Fabian Neundorf
1132fd541f
Clear unknowns in LegoAct2 (#1746) 2026-03-13 22:42:12 +01:00
Christian Semmler
a3122cd209
Merge remote-tracking branch 'isle/master'
Some checks are pending
CI / clang-format (push) Waiting to run
CI / ${{ matrix.name }} (false, --toolchain /usr/local/vitasdk/share/vita.toolchain.cmake, false, false, Ninja, Vita, ubuntu-latest, true, true) (push) Waiting to run
CI / ${{ matrix.name }} (false, -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0.26100.0, false, false, Visual Studio 17 2022, true, Xbox One, windows-latest, amd64, false, true) (push) Waiting to run
CI / ${{ matrix.name }} (false, -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/3DS.cmake, false, devkitpro/devkitarm:latest, false, Ninja, true, Nintendo 3DS, ubuntu-latest, true) (push) Waiting to run
CI / ${{ matrix.name }} (false, -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake, false, devkitpro/devkita64:latest, false, Ninja, Nintendo Switch, true, ubuntu-latest, true) (push) Waiting to run
CI / ${{ matrix.name }} (false, emcmake, false, false, true, Ninja, Emscripten, ubuntu-latest, true) (push) Waiting to run
CI / ${{ matrix.name }} (false, false, false, Ninja, true, MSVC (arm64), windows-latest, amd64_arm64, false) (push) Waiting to run
CI / ${{ matrix.name }} (false, false, true, Ninja, true, MSVC (x86), windows-latest, amd64_x86, false) (push) Waiting to run
CI / ${{ matrix.name }} (false, true, false, Ninja, true, MSVC (x64), windows-latest, amd64, false) (push) Waiting to run
CI / ${{ matrix.name }} (false, true, true, false, Ninja, true, MSVC (x64 Debug), windows-latest, amd64, false) (push) Waiting to run
CI / ${{ matrix.name }} (true, false, -DCMAKE_SYSTEM_NAME=iOS, false, false, Xcode, true, iOS, macos-15, true) (push) Waiting to run
CI / ${{ matrix.name }} (true, false, false, Ninja, true, mingw-w64-i686, mingw32, msys2 mingw32, windows-latest, msys2 {0}, true) (push) Waiting to run
CI / ${{ matrix.name }} (true, false, false, false, Ninja, Android, ubuntu-latest, true) (push) Waiting to run
CI / ${{ matrix.name }} (true, false, true, false, Ninja, macOS, macos-latest, true) (push) Waiting to run
CI / ${{ matrix.name }} (true, true, false, Ninja, true, mingw-w64-x86_64, mingw64, msys2 mingw64, windows-latest, msys2 {0}, true) (push) Waiting to run
CI / ${{ matrix.name }} (true, true, true, false, Ninja, true, Linux (Debug), ubuntu-latest, true) (push) Waiting to run
CI / ${{ matrix.name }} (true, true, true, false, Ninja, true, Linux, ubuntu-latest, true) (push) Waiting to run
CI / Flatpak (${{ matrix.arch }}) (aarch64, ubuntu-22.04-arm) (push) Waiting to run
CI / Flatpak (${{ matrix.arch }}) (x86_64, ubuntu-latest) (push) Waiting to run
CI / C++ (push) Waiting to run
CI / Release (push) Blocked by required conditions
Docker / Publish web port (push) Waiting to run
2026-01-30 17:06:10 -08:00
Fabian Neundorf
971fe939a6
Clear unknowns in LegoPathActor (#1731)
Co-authored-by: Christian Semmler <mail@csemmler.com>
2026-01-31 01:47:11 +01:00
Fabian Neundorf
e05cb05983
Clear unknowns in LegoPathController (#1724) 2026-01-18 12:31:56 -08:00
Fabian Neundorf
01c92d1966
Clear unknowns in LegoPathEdgeContainer and LegoBEWithFloat (#1723)
Renames `LegoBEWithFloat` also to `LegoBEWithMidpoint` to be more specific.
2026-01-18 06:50:17 -08:00
Christian Semmler
b06f05ccf9
Merge remote-tracking branch 'isle/master' 2025-10-18 10:23:53 -07:00
Fabian Neundorf
d05d583368
Clear unknown parameter in LegoEntity::SetROI (#1688) 2025-09-21 11:11:04 -07:00
Christian Semmler
ec3c770c61
Merge remote-tracking branch 'isle/master' 2025-09-12 12:35:22 -07:00
Fabian Neundorf
6c83ceb549
Clear unknowns in Act2Actor (#1687) 2025-09-12 21:22:48 +02:00
Fabian Neundorf
e3b77fb50b
Clear unknowns in LegoAct2 (#1679) 2025-09-07 22:54:22 +02:00
jonschz
a7c43cbe17
Small BETA10 corrections (#1681)
* Small BETA10 corrections

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2025-09-06 17:39:28 +02:00
Christian Semmler
0f1b8e8430
Merge remote-tracking branch 'isle/master' 2025-08-10 13:16:30 -07:00
Fabian Neundorf
61eaea8bb4
Clear unknowns in LegoAnimActorStruct and LegoAnimActor (#1673) 2025-08-09 17:40:12 +02:00
Fabian Neundorf
3d6ab8ff9d
Name g_plantInfo indices in act2actor.cpp (#1669) 2025-08-08 12:31:39 -07:00
Christian Semmler
10d4142c39
Merge remote-tracking branch 'isle/master' 2025-07-18 14:44:18 -07:00
Fabian Neundorf
6d6971734b
Clear unknowns in LegoROI (#1630) 2025-07-17 01:19:17 +02:00
Christian Semmler
a939a6fec3
Merge remote-tracking branch 'isle/master' 2025-06-17 10:34:32 -07:00
Fabian Neundorf
fd3f08f4c4
Clear unknowns in LegoBuildingInfo and LegoBuildingManager (#1566)
* Clear unknowns in `LegoBuildingInfo` and `LegoBuildingManager`

* Name remaining unknown in `LegoBuildingManager`
2025-06-16 23:08:17 +02:00
Christian Semmler
6d99683f1d
Merge remote-tracking branch 'isle/master' 2025-06-12 14:35:18 -07:00
Fabian Neundorf
7b619d5544
Clear unknowns in LegoPlantManager (#1557) 2025-06-12 09:33:32 -07:00
Anonymous Maarten
364844d6d0
Use SDL_rand/SDL_randf (#203) 2025-05-30 19:01:01 +00:00
jonschz
b7090bd838
Match LegoActor and LegoPathActor in BETA10 (#1524)
* Match `LegoActor` in BETA10

* Cleanup

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2025-05-27 22:04:01 +02:00
Florian Kaiser
804632b13f
Refactor LegoUnknown100db7f4 to LegoOrientedEdge (#1515)
* Refactor `LegoUnknown100db7f4` to `LegoOrientedEdge`

* Update LEGO1/lego/sources/geom/legoorientededge.h

* Update legopathcontroller.h

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2025-05-24 23:09:24 -07:00
Erik Schulze
eb1177b409
rename functions and parameters in OrientableROI (#1512) 2025-05-21 20:13:28 -07:00
jonschz
87d13aa277
Add various BETA10 references and fixes (#1398)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2025-03-02 19:59:03 +01:00
Christian Semmler
4c32abd16d
Add BETA10 macro to enable conditional compilation for BETA10 targets (#1270)
* Add BETA10 macro to enable conditional compilation for BETA10 targets

* Adjustments to CMakeLists.txt
2025-01-07 00:06:07 +01:00
Christian Semmler
7c452e9453
Order functions in binary up to end of Act2Actor (#1312)
* Order more functions

* Order LegoRaceActor

* Further ordering

* Order `Act2Actor`

* Fix
2025-01-05 21:00:50 +01:00
jonschz
70baf8cecc
Fix float constants and conversions (#1279)
* Fix legoplants warnings, add BETA10 references

* Fix warnings in various header files, improve match

* Fix floats in legoactors.cpp

* Fix `legolocations.cpp`

* fix typo

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-25 21:01:00 +01:00
Christian Semmler
c2c9c75f1a
Fix Vector2/Vector3 order (#1272)
* Fix Vector2/Vector3 order

* Refactor vector classes to be const and reference param consistent

* Add BETA10 annotations and fixes
2024-12-24 22:21:26 +01:00
Christian Semmler
67b4553eaa
Implement/match LegoPathController::FUN_1004a380 (#1226) 2024-12-14 20:02:48 +01:00
jonschz
5a6415e0cf
Implement/match Act2Actor::FUN_10019b90 (#1222)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-13 16:19:55 -07:00
Christian Semmler
6da2faa48c
Refactor actor states, define enum (#1220)
* Refactor actor states, define enum

* Revert

* Rename `UpdateState` to `Animate`
2024-12-13 20:30:50 +01:00
Christian Semmler
ce3f71ea0f
Rename LegoPathActor::VTable0x70 to UpdateState (#1219) 2024-12-13 19:20:03 +01:00
Christian Semmler
de7bc813ca
Implement/match LegoAct2::BadEnding (#1217)
* Implement/match `LegoAct2::BadEnding`

* Name some vars
2024-12-13 17:26:06 +01:00
Christian Semmler
32392a8e55
Fix Act2Actor::FUN_10019700 (#1216) 2024-12-13 17:12:53 +01:00
jonschz
054f56fd9f
Implement Act2Actor::FUN_10019700 (#1215)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-12 17:54:51 -07:00
Christian Semmler
aceba71fbb
Implement/match Act3Brickster::HitActor (#1212)
* Implement/match `Act3Brickster::HitActor`

* Fixes

* Fixes

* Fixes

* Add `Act3Cop::VTable0x9c`

* Fix
2024-12-12 17:10:44 +01:00
Christian Semmler
59e2aa2804
Implement/match LegoAct2::FUN_100516b0 and LegoAct2::FUN_100517b0 (#1204)
* Implement/match `LegoAct2::FUN_100516b0` and `LegoAct2::FUN_100517b0`

* Fix
2024-12-10 21:49:13 +01:00
Christian Semmler
c2ee761f81
Implement/match Act3::ShootPizza and Act3::ShootDonut (#1203)
* Implement/match `Act3::LaunchPizza` and `Act3::LaunchDonut`

* Match Helicopter::HandleControl

* Rename

* Adjust total function count

* Rename
2024-12-09 23:41:51 +01:00
jonschz
07def56326
Implement Act2Actor::VTable0x70 (#1201)
* Implement draft of `Act2Actor::VTable0x70`

* Fix CI errors

* Implement `Act2Actor::FUN_100199f0`

* WIP: cleanup

* Address review comments

* Run formatter

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-09 22:05:08 +01:00
Christian Semmler
1aff40dd94
Implement/match several functions in Act3, refactor (#1197)
* Implement/match several functions in Act3, refactor

* Fix naming

* Rename

* Add comment

* Add annotation

* Add BETA assert
2024-12-08 18:00:57 +01:00
Christian Semmler
4d8098a6c2
Implement LegoPathController::FUN_10048310 (#1192)
* WIP

* Rename

* Fix

* More WIP

* WIP

* WIP

* Fix

* Annotations

* Add more annotations, improve match

* Raise max functions
2024-12-06 20:50:40 +01:00
Christian Semmler
5693b1a266
Implement/match LegoAct2::HandlePathStruct (#1187)
* Implement/match `LegoAct2::HandlePathStruct`

* Add Act2Brick::FUN_1007a670

* Add Act2Brick::Create

* Name variable

* Add stdio.h
2024-12-03 21:31:24 +01:00
jonschz
3c624ff14c
Implement Act2Actor::VTable0x9c() (#1186)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-03 19:12:05 +01:00
Christian Semmler
a0a114135a
Implement/match LegoAct2::HandleEndAction and related (#1184)
* Implement/match LegoAct2::HandleEndAction

* Reorder
2024-12-02 18:58:08 +01:00
jonschz
8b9f6f1007
Implement more functions in Act2Actor (#1183)
* Implement `Act2Actor::VTable0xa0`

* Implement `Act2Actor::FUN_10019520()`

* Implement/match `Act2Actor::FUN_100192a0()`

* Fix clang32 issue

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-01 10:21:59 -07:00
jonschz
f066e2ee2e
Implement Act2Actor::Act2Actor(), add BETA10 references (#1182)
* Implement `Act2Actor::Act2Actor()`, add structure and BETA10

* Add LegoAnimActor BETA10 annotations

* Improve LegoAnimActor BETA10 match

* More BETA10 annotations

* Address review comment

* Disable annotation so the CI passes

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-30 14:35:07 -07:00
jonschz
83b85f26a7
Implement LegoAct2::Tickle() and others (#1168)
* Implement `LegoAct2::Tickle()` and others

* Fix decomplint errors

* Minor cleanup

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-25 23:24:46 +01:00