Commit Graph

214 Commits

Author SHA1 Message Date
Christian Semmler
ac3a551bcc
Improve symbol order until LegoActor, match LegoPlantManager::ScheduleAnimation (#1327)
* Order `LegoCarBuild`, `LegoPlantManager`

* Order until `LegoActor`
2025-01-11 01:42:03 +01:00
Christian Semmler
5cd365c4f1
Order until the end of LegoAnimActor (#1319) 2025-01-09 01:28:43 +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
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
10d318a5de
Fix inlining in Helicopter::FUN_100042a0 (#1307) 2025-01-01 21:09:18 +01: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
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
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
7c41ff4569
Order compilation units according to retail, match and align Score class (#1271)
* Initial changes for ordering, Score

* Add mxdebug

* Match `Score::Paint`

* Refactor

* Add BETA asserts

* BETA match
2024-12-24 19:38:15 +01:00
Joshua Peisach
bb29d289fe
SkateBoard: name m_unk0x160 -> m_pizzaVisible (#1269) 2024-12-24 07:50:37 -07:00
jonschz
3e6d789324
Add all BETA10 ClassName() functions and vtables (#1258)
* Add all BETA10 `ClassName()` functions and vtables

* Run formatter, fix copy error

* Fix copy error

* Add BETA10 library functions

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-22 08:13:34 -07:00
Christian Semmler
fe2a65c8da
Implement/match LegoNavController::Notify (#1253)
* Implement/match `LegoNavController::Notify`

* Move function

* Add to total function count

* Add OPT:REF to lego1
2024-12-21 22:41:47 +01:00
jonschz
3e427ab03e
Improve Helicopter::Animate() (#1251)
* Small improvements

* More improvements

* Small drive-by refactor

* Do not inline `UnknownMx4DPointFloat::FUN_10004520()`

* Fix `Act3Brickster::Animate`

* Fixes

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-21 17:21:22 +01:00
Christian Semmler
2b4f71e17d
Implement/match Act3Cop::FUN_10040360 (#1247)
* Implement/match `Act3Cop::FUN_10040360`

* Remove comments

* Modern compiler fix
2024-12-20 19:49:18 +01:00
jonschz
7ed2ac9ccc
Progress on Helicopter::FUN_100042a0 (#1242)
* Implement `LegoCameraController::FUN_100123b0`

* Improve `UnknownMx4DPointFloat::Unknown7` match, add BETA10

* Add draft for `FUN_100042a0`

* Improve match

* Match

* Use better naming

* Remove comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-20 01:27:14 +01:00
Christian Semmler
cb38cf7673
Implement/match Act3Brickster::FUN_100417c0 (#1240)
* Implement/match `Act3Brickster::FUN_100417c0`

* Move function

* Rename var

* Revert "Rename var"

This reverts commit c9ca75ae7f.
2024-12-19 20:22:34 +01:00
Christian Semmler
90c687bde0
Implement/match Act3Brickster::FUN_10042300 (#1238)
* Implement/match `Act3Brickster::FUN_10042300`

* Add comment about assignment operator

* Add another comment

* Fix

* add back BETA annotation
2024-12-17 23:16:00 +01:00
Christian Semmler
66e3c9a2e1
Implement/match Act3Brickster::Animate (#1237)
* Implement/match `Act3Brickster::Animate`

* Improve loop
2024-12-17 19:11:47 +01:00
Christian Semmler
615c3a5047
Implement/match Act3Cop::Animate (#1233)
* Implement/match `Act3Cop::Animate`

* Fix
2024-12-15 19:48:47 +01:00
jonschz
2e7f2edbf1
Implement/match Act3Cop::ParseAction (#1230)
* Implement/match `Act3Cop::ParseAction`

* Fix formatting

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-15 18:09:29 +01:00
Christian Semmler
661c76c6e0
Implement/match Act3Shark::Animate (#1231)
* Implement/match `Act3Shark::Animate`

* Add BETA annotation

* Raise max functions

* Mark as FUNCTION
2024-12-15 17:18:25 +01:00
jonschz
ace2a9f047
Add g_copDest (#1229)
* Implement `AddCop` and `g_copDest`

* Fix formatting

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-15 05:50:52 -07:00
Christian Semmler
16730ef9c1
Implement/match Act3Ammo::FUN_10053db0 (#1227) 2024-12-14 21:36:14 +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
1aeb458be1
Implement/match Act3Ammo::Animate (#1221)
* Implement/match `Act3Ammo::Animate`

* Match

* Rename

* Rename

* Rename
2024-12-13 22:56:26 +01: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
263d7d1e4f
Implement/match Act3::GoodEnding (#1218) 2024-12-13 18:49:45 +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
fe57a94416
Implement/match Act3Brickster::ParseAction (#1211) 2024-12-12 16:06:15 +01:00
Christian Semmler
598d6dd10c
Refactor act 3 actors into act3actors.cpp (#1210) 2024-12-12 15:14:46 +01:00
MS
c05ff6ff4a
Act3Cop::VTable0x94 and related (#1209)
* Act3Cop::VTable0x94 and related

* No need to include

* Cast LegoWorld* to Act3*
2024-12-11 22:20:21 +01:00
Christian Semmler
ac19539d0f
Implement/match Act3Shark functions (#1208)
* Implement/match `Act3Shark` functions

* Naming
2024-12-11 21:13:34 +01:00
Christian Semmler
a2b2b5d734
Implement/match Act3Ammo::FUN_10053b40 (#1207)
* Implement/match Act3Ammo::FUN_10053b40

* Add Act3Ammo::Remove
2024-12-11 20:52:53 +01:00
Christian Semmler
adc83dc76e
Implement/match Act3Ammo::Create, Act3Ammo::FUN_10053cb0, Act3Ammo::FUN_10053d30 (#1205)
* Implement/match Act3Ammo::Create

* Fix BETA addr

* Move

* Move

* Remove header

* Add missing header
2024-12-10 22:35:59 +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
d9b9178d27
Implement/match Act3::Notify (#1200)
* Implement/match Act3::Notify

* Fix typo
2024-12-08 20:52:32 +01:00
Christian Semmler
564fb7f7c0
Implement/match Act3::Enable (#1198)
* Implement Act3::Enable

* Match

* Change back to private

* Remove unused function
2024-12-08 19:39:03 +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
97fb6e4f15
Add Act3Ammo, match Act3::Act3 (#1196)
* Implement `Act3Ammo`, match `Act3::Act3`

* Move

* Fix match
2024-12-07 11:57:59 -07:00
Christian Semmler
94ce89cbaa
(Proposal) Introduce arithmetic operators to Vector2 (#1193) 2024-12-07 17:26:22 +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
MS
7ece9cf37b
Fix MxParam casts in Notify functions (#1188)
* First batch

* Second batch
2024-12-03 15:51:03 -07: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
Mikhail
cc682173eb
Implement functions in Act3Actor (#1180)
* Implement Act3Actor

* Minor consistency adjustments

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-11-30 17:57:44 +01:00
Christian Semmler
e8e457f01a
Implement/match LegoAct2::Enable (#1178) 2024-11-29 22:32:40 +01:00
Christian Semmler
c9a2a7203b
Implement/match LegoAct2::HandleTransitionEnd (#1176) 2024-11-29 21:24:14 +01: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
jonschz
0aa5e010ae
Implement CarRace (#1165)
* Implement `CarRace`

* Improve `CarRace::Create`

* Fix arrays

* Clean up array

* Fix CI errors

* Implement `LegoRaceCar::FUN_10012e00()`

* Implement `Doors::VTable0xcc`

* Address review comments, part 1

* Address review comments, part 2

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-23 12:33:15 -07:00
Christian Semmler
93c640a45f
Implement/match PickEntity (#1153)
* Implement/match PickEntity

* Rename function
2024-11-15 18:35:53 +01:00
Christian Semmler
2e08748551
Implement/match RaceCar (#1151) 2024-11-15 18:19:15 +01:00
Christian Semmler
8e23bfb266
Implement/match some Act2Actor functions (#1148) 2024-11-11 19:36:36 +01:00
Christian Semmler
0b94b4803b
Implement/match Act2GenActor::VTable0x94 (#1138) 2024-11-10 16:43:07 +01:00
Christian Semmler
2c10c8e344
Implement/match Doors::VTable0x70 and Doors::ParseAction (#1137)
* Implement/match Doors::VTable0x70 and Doors::ParseAction

* Fix
2024-11-09 22:54:17 +01:00
Joshua Peisach
f4ab226946
Implement Doors::VTable0x94 (#1136)
* Implement Doors::VTable0x94

* Match function

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-11-09 18:03:01 +01:00
Christian Semmler
d8412a4697
Implement/match Act1State::RemoveActors (#1132)
* Implement/match Act1State::RemoveActors

* Fix annotation
2024-11-03 19:06:09 +01:00
Christian Semmler
4c95d7c887
Implement/match Pizza::HandleEndAction (#1128)
* Implement Pizza::HandleEndAction

* Match
2024-11-01 21:13:43 +01:00
Christian Semmler
a14795c0c8
Implement/match Pizza::Tickle (#1127) 2024-11-01 18:30:11 +01: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
Christian Semmler
115343f6e5
Implement/match PizzeriaState::NextAction (#1125)
* Implement/match PizzeriaState::NextAction

* Name globals

* Refactor globals into class statics

* Remove TODO
2024-10-28 19:04:08 +01:00
Christian Semmler
5f822dabc7
Implement/match PizzeriaState::PizzeriaState (#1124) 2024-10-28 18:32:55 +01:00
Christian Semmler
ad353b7f3e
Implement/match Pizza::PlayAction (#1123)
* Implement/match Pizza::PlayAction

* Remove unused header
2024-10-28 17:25:54 +01:00
Christian Semmler
2fa2ab4a96
Implement/match Pizza::HandlePathStruct (#1122) 2024-10-28 16:53:09 +01:00
Christian Semmler
139da31628
Implement/match PizzaMissionState::PizzaMissionState (#1121)
* Implement/match PizzaMissionState::PizzaMissionState

* Fix naming
2024-10-27 19:54:01 +01:00
Christian Semmler
b3ce98a2ec
Implement/match Pizza::HandleClick (#1119) 2024-10-26 19:34:16 +02:00
Christian Semmler
2b9d8f1fba
Implement/match Pizza::FUN_100382b0 and Pizza::StopActions (#1118) 2024-10-26 18:34:43 +02:00
jonschz
c38e157fdb
Implement LegoCarBuild functions, refactor BackgroundAudioManager (#1117)
* Implement LegoCarBuild functions, refactor BackgroundAudioManager

* Refactor LegoVehicleBuildState::m_animationState to enum

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-25 09:04:01 -07:00
Christian Semmler
fa6de9cb6b
Implement/match Pizza::FUN_10038220 (#1107) 2024-10-03 21:43:18 +02:00
Christian Semmler
30e9e43cda
Implement/match RegistrationBook::HandlePathStruct (#1084) 2024-08-12 18:21:18 +02:00
Christian Semmler
53924c3d2d
Implement/match TowTrack::HandleEndAction (#1082)
* Implement/match TowTrack::HandleEndAction

* Fix offset
2024-08-09 20:32:46 +02:00
Christian Semmler
7cf6c78d20
Implement TowTrack::HandlePathStruct (#1081) 2024-08-09 04:09:08 +02:00
Christian Semmler
fe1b66938d
Implement/match TowTrack::FUN_1004dbe0 (#1076) 2024-08-03 20:31:49 +02:00
Christian Semmler
63586f88b2
Implement/match TowTrack::ActivateSceneActions (#1075)
* Implement/match TowTrack::ActivateSceneActions

* Add PlayAction
2024-08-03 20:17:17 +02:00
Christian Semmler
a1c6196bbc
Implement/match TowTrack::Leave and related (#1074) 2024-08-03 20:07:08 +02:00
Christian Semmler
f94d39bf63
Implement/match TowTrack::HandleClick (#1073) 2024-08-03 19:59:12 +02: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
Christian Semmler
a75ace8a53
Implement/match TowTrack::VTable0x70 (#1062) 2024-07-06 04:44:01 +02:00
Christian Semmler
87a9a37b33
Implement/match Jetski class (#1061) 2024-07-05 02:11:20 +02:00
Christian Semmler
09684b3c03
Implement/match BumpBouy class (#1058) 2024-07-04 23:28:23 +02:00
Christian Semmler
d92fc97a58
Implement/match DuneBuggy class (#1055)
* Implement/match DuneBuggy class

* Fix name

* Fix
2024-07-02 21:16:35 +02:00
Christian Semmler
e4e0f4e4d3
Implement/match Motocycle, consistent notification names (#1037)
* Implement/match Motocycle, consistent notification names

* Format

* Fix

* Fix return types

* Fix return type

* Fix annotations

* Rename function
2024-06-16 16:47:53 +02:00
Christian Semmler
68023379d8
Implement/match Bike (#1036) 2024-06-16 15:54:40 +02:00
jonschz
a6644801f1
feat: Implement several ::Serialize functions (#1017)
* feat: Implement many ::Serialize functions

* address review comments, part 1 [skip ci]

* address review comments, part 2 [skip ci]

* review comments (final part)

* refactor: Remove Read/Write duplication

* fix merge conflict

* Match PizzeriaState::Serialize again

* Remove unused variable, add LegoVehicleBuildState::Serialize

* Implement AnimState::Serialize

* fix: Conform with naming scheme

* refactor: change names back

* refactor: int to MxS32

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-14 23:24:34 +02:00
Christian Semmler
e5d66d597d
Implement/match remaining Ambulance functions (#1030) 2024-06-13 20:32:28 +02:00
Christian Semmler
bbc304ce46
Implement/match Ambulance::HandlePathStruct (#1029)
* Implement/match Ambulance::HandlePathStruct

* Add annotation
2024-06-13 20:10:19 +02:00
Christian Semmler
cf7246ac6c
Implement/match Ambulance::HandleButtonDown (#1028) 2024-06-13 17:34:44 +02:00
Christian Semmler
33c64bb002
Implement/match Ambulance::VTable0x70 (#1027) 2024-06-13 17:25:48 +02:00
Christian Semmler
cf576ca78f
Add remaining classes, implement/match LegoObjectFactory (#1026)
* Add missing classes

* Match LegoObjectFactory

* Remove semicolon

* Add symbol

* Fix
2024-06-13 02:02:47 +02:00