Commit Graph

152 Commits

Author SHA1 Message Date
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
Christian Semmler
c54805fde8 Order functions in binary up to the end of Helicopter; refactor vector/matrix classes (#1309)
* Order experimentation

* Revert IslePathActor

* Fix order

* Fix inlining

* Fixes

* WIP

* WIP

* Refactor

* Refactor

* Fix operators

* Remove obsolete inline keyword

* Fix ctors

* Refactor

* Rename files

* Refactor

* Remove empty line
2025-01-04 15:07:04 -07:00
Christian Semmler
667ea3ff82 Various matches with BETA functions (#1281)
* Match functions to BETA

* Improve `Matrix4::FromQuaternion`

* Improve `Matrix4::ToQuaternion` match

* Fix bug that was fixed in retail

* Match `Vector4::NormalizeQuaternion`
2024-12-25 22:05:28 +01:00
Christian Semmler
6b3fcafbe1 Match Helicopter::HandleEndAnim (#1276) 2024-12-25 18:39:51 +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
5b19d7953a Refactor MxStreamList based lists (#1260)
* Refactor stream lists

* Fix naming

* Fix header inclusion

* Fix annotations

* Move function definitions to header

* Remove mxstreamprovider.cpp

* Naming
2024-12-23 16:32:16 +01:00
Anonymous Maarten
6f3f8c2ade Implement LegoVideoManager::DrawFPS (#1243)
* Implement LegoVideoManager::DrawFPS

* Implement MxDisplaySurface::FUN_100bc8b0

* Match functions

* type

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-20 17:05:40 +01:00
Anonymous Maarten
a8729dfef6 glD3DRMIMAGE::CreateBuffer, LegoVideoManager::EnableRMDevice and LegoVideoManager::DisableRMDevice (#1241)
* Implement TglD3DRMIMAGE::CreateBuffer (ecx/edi are swapped)

* Implement LegoVideoManager::EnableRMDevice

* Implement LegoVideoManager::DisableRMDevice

* clang-format

* Match `LegoVideoManager::EnableRMDevice`

* Remove padding

* Fix naming

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-19 22:52:33 +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
94ce89cbaa (Proposal) Introduce arithmetic operators to Vector2 (#1193) 2024-12-07 17:26:22 +01:00
MS
816bfe842d Use alias functions from Lego3DManager (#1167)
* Mark LegoEntity:Destroy (many vtables use it)

* Starting addrs for Lego3DManager helpers

* Addrs for users of Lego3DManager and changes where needed
2024-11-23 20:37:24 -07:00
jonschz
4c0aae720b Implement LegoCarBuild::FUN_10024890() and others, refactor (#1126)
* Commit finished code changes

* Add enum data type

* Refactor away GetCurrentArea, SetCurrentArea

* Clean up and add FUN_10024890

* Add `SetPartObjectIdByName()`

* Fix naming error

* Address review comments, part 1

* Address review comments, part 2

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-01 09:21:15 -07:00
jonschz
b5fee6b240 Complete LegoCarBuildAnimPresenter (#1114)
* Complete `LegoCarBuildAnimPresenter`

* fix CI errors

* Drive-by BETA10 fixes

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-20 14:00:44 -07:00
jonschz
974cd7ce7c Implement LegoCarBuildAnimPresenter::FUN_10079160() and others (#1111)
* Implement `LegoCarBuildAnimPresenter::FUN_10079160()` and others

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-11 20:21:33 +02:00
jonschz
85ce10ab50 Refactor various operator[] based on BETA10 (#1110)
* Tidy up `operator[]` code

* Add weird index operator for `FUN_1002ddc0`

* Cleanup

* Add Matrix4 BETA10 annotations, fix typo

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-06 07:50:34 -07:00
jonschz
7a6935a165 Progress on LegoCarBuildAnimPresenter (#1103)
* Progress on `LegoCarBuildAnimPresenter`

* Rename argument

* fix copy-paste error

* Address review comments

* Remove obsolete comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-12 21:51:33 +02:00
jonschz
757df96c0d Implement/match LegoRaceMap (#1087)
* Implement/match LegoRaceMap

* Fix CI, address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-17 11:30:39 -07:00
MS
9555aaba74 Remove USHRT_MAX from ParseExtra functions (#1086) 2024-08-17 08:56:25 -07:00
jonschz
4a861faca3 Refactor file names based on BETA10 (#1064)
* Refactor file names based on BETA10

* Extract LegoDeviceEnumerate to dedicated file

* Fix compiler errors

* Migrate contiguous block of code to `LegoDeviceEnumerate`

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-08 14:52:50 -07:00
jonschz
afa5b90117 Implement LegoRaceCar::FUN_10012ff0(), refactoring (#1063)
* Implement `LegoRaceCar::FUN_10012ff0()`, refactor based on BETA10

* Add BETA10 annotations
* Rename functions and variables based on BETA10 assertions

* Address issues raised by linter

* Rename variable, add BETA10 vtables

* Rename legoracecar files to legoracers

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-07 05:10:46 -07:00
MS
6e39e87613 Create MxDirectXInfo module (#1047)
* Some beta addrs and asserts to start

* Create mxdirectxinfo

* include fix

* CONFIG annotations

* Beta matching

* Match format function better, add dead code function

* LegoDeviceEnumerate
2024-06-27 12:22:13 -07:00
Christian Semmler
c22c6f3379 Implement/match LegoFlcTexturePresenter (#1015)
* Implement/match LegoFlcTexturePresenter

* Move files
2024-06-10 17:44:55 +02:00
Christian Semmler
9a9bccda0e Implement/match IslePathActor::Exit (#997)
* Implement/match IslePathActor::Exit

* Name

* Name

* Partially fix vector interface

* Revert "Partially fix vector interface"

This reverts commit 6e7a1e2b08.

* Revert "Revert "Partially fix vector interface""

This reverts commit e3860e3c9f.

* Fix

* Remove some COMPAT_MODE
2024-06-06 17:45:37 +02:00
Christian Semmler
133a312aee Consolidate state and building entity classes (#989) 2024-06-03 18:53:25 +02:00
Christian Semmler
23e5ad7d15 Name/rename functions in LegoCharacterManager (#982)
* Name/rename functions in LegoCharacterManager

* Name flag
2024-06-01 18:45:34 +02:00
Christian Semmler
eeb81b7223 Use USHRT_MAX instead of MAXWORD (#975) 2024-05-30 22:02:58 +02:00
Christian Semmler
2f1aa58153 Implement/match LegoAnimMMPresenter::FUN_1004b840 (#966) 2024-05-29 17:35:36 +02:00
Christian Semmler
da48dfb40d Implement/match LegoAnimPresenter::FUN_1006b140 (#963) 2024-05-28 15:23:23 -04:00
Christian Semmler
3cfb918559 Implement/match LegoExtraActor::VTable0x6c (#956) 2024-05-26 01:16:20 +02:00
Christian Semmler
535f1b973a Implement LegoROI::FUN_100a9410 (#955)
* WIP

* WIP

* Remove space

* Fix
2024-05-25 22:21:05 +02:00
Cameron
d106aada11 basic name improvements (#930)
* basic name improvements

* clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-05-18 15:20:05 -04:00
Christian Semmler
3c89cbe4e1 Implement/match LegoLocomotionAnimPresenter (#925) 2024-05-15 21:29:00 +02:00
Christian Semmler
9a05edd0a7 Implement/match LegoLoopingAnimPresenter (#924) 2024-05-15 20:34:36 +02:00
Christian Semmler
29a0e32739 Implement/match remaining LegoHideAnimPresenter functions (#923)
* Implement/match remaining LegoHideAnimPresenter functions

* Fix type

* Fix marker

* Fix type
2024-05-14 20:50:37 +02:00
Christian Semmler
e4a899350e Move strings to proper location in define.cpp (#922) 2024-05-14 16:43:06 +02:00
Christian Semmler
e32e06321a Rename _countof to sizeOfArray (#921) 2024-05-14 16:35:22 +02:00
Christian Semmler
95ed90aacb Implement/match some LegoHideAnimPresenter functions (#920) 2024-05-14 16:15:35 +02:00
Christian Semmler
0b2d4914ee Match LegoVideoManager::Destroy (#918) 2024-05-14 14:36:44 +02:00
Christian Semmler
1b1d2ecde6 Refactor LegoOmni into LegoMain/Scripts (#883)
* Refactor LegoOmni into LegoMain/Scripts

* Fix guard
2024-05-04 14:06:32 +02:00
Christian Semmler
51adf75b9b (Refactor) Use more forward declarations (#881)
* Use more forward declarations

* Use more forward declarations

* Add more forward declarations

* Fix
2024-05-03 18:19:12 +02:00
Christian Semmler
cd39e71597 Implement/match LegoAnimationManager::Notify (#875)
* Implement/match LegoAnimationManager::Notify

* Rename notification type
2024-05-01 15:00:42 +02:00
Christian Semmler
180a1e6360 Define LegoEntity::Type enum (#854)
* Define LegoEntity::Type enum

* Use enum constant
2024-04-26 16:03:13 +02:00
Christian Semmler
31f5143741 Implement/match LegoAnimPresenter::VTable0x94 (#852) 2024-04-25 17:27:55 +02:00
Christian Semmler
054120bc5d Implement/match LegoAnimPresenter::FUN_1006aa60 (#851) 2024-04-25 17:00:42 +02:00
Christian Semmler
ce3d915bba Implement/match LegoAnimPresenter::SubstituteVariables (#850) 2024-04-25 16:36:28 +02:00
Christian Semmler
830c0827af Implement/match LegoAnimPresenter::Destroy (#849)
* WIP Destroy

* Match
2024-04-25 16:24:06 +02:00
Christian Semmler
916c039e72 Implement/match LegoAnimPresenter::ParseExtra (#848)
* Implement/match LegoAnimPresenter::ParseExtra

* Fix
2024-04-25 16:00:58 +02:00
Christian Semmler
410824bd0f Implement/match various small LegoAnimPresenter functions (#846)
* Implement/match various small LegoAnimPresenter functions

* Fix location of anim function

* fix
2024-04-24 15:51:28 +02:00
Christian Semmler
b789a15d0b Implement/match LegoAnimPresenter::FUN_1006b900 (#844) 2024-04-24 14:51:20 +02:00
Christian Semmler
67c9736953 Implement/match LegoAnimPresenter::FUN_1006afc0 (#843)
* Implement/match LegoAnimPresenter::FUN_1006afc0

* empty
2024-04-24 14:24:59 +02:00