Commit graph

1172 commits

Author SHA1 Message Date
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
jonschz
c65bc67e3d
Implement FUN_10025720() and others (#1134)
* Implement `FUN_10025720()` and others

* Address review comments, get 100 %

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-05 21:33:51 +01:00
Christian Semmler
1badadebaa
Implement/match LegoPathActor::UpdatePlane (#1133) 2024-11-03 19:28:35 +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
040c97d92a
Implement/match Act1State::PlayCptClickDialogue (#1131) 2024-11-03 17:59:21 +01:00
Christian Semmler
e4453c4100
Implement/match Act1State::Act1State (#1130)
* Implement/match Act1State::Act1State

* Remove obsolete enum
2024-11-03 17:41:15 +01:00
Christian Semmler
519d8c570a
Implement/match remaining GasStation functions (#1129)
* Implement/match remaining GasStation functions

* Name variables
2024-11-03 16:44:07 +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
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
1a15981324
Implement LegoCarBuildAnimPresenter::StreamingTickle() (#1109)
* Implement LegoCarBuildAnimPresenter::StreamingTickle and dependents

* Fix naming issue

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-05 16:20:45 -07:00
jonschz
e6474b7fcd
Implement LegoCarBuildAnimPresenter::FUN_10079920() (#1108)
* Implement `FUN_10079920()`

* Fix formatting

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-04 17:19:42 +02:00
Christian Semmler
fa6de9cb6b
Implement/match Pizza::FUN_10038220 (#1107) 2024-10-03 21:43:18 +02:00
Cameron
4878727393
some educated guesses for unknown view manager names (#1106)
* some educated guesses for unknown view manager names

* Formatting

* Pin pylint version

* Use snake case for consistency (limited to this class)

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-09-20 19:17:24 +02:00
jonschz
a942325b29
More functions in LegoCarBuild (#1104)
* Add BETA10 annotations

* Clean up

* Implement multiple functions

* fix minor annotation error

* Undo formatting

* Fix formatting

* Implement more functions

* Rename variables, address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-14 16:14:11 -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
5d19b6afe3
Improve UnknownMx4DPointFloat::FUN_100040a0 (#1102)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-09 12:45:48 -07:00
MS
4a01d15c36
MxStreamListMxDSAction helper functions (#1100)
* MxStreamListMxDSAction Find/FindAndErase

* Beta addrs for other stream lists
2024-09-06 13:13:16 -07:00
MS
97b3dcaa2c
Beta match* MxStreamer (#1099)
* Beta addrs

* Streamer changes

* Typo and comment. One more beta addr

* Rename member to m_controllers
2024-09-05 16:06:40 -07:00
jonschz
2b14d3d6a5
Implement parts of LegoCarBuild and dependents (#1092)
* Implement parts of `LegoCarBuild` and dependents

* Fix BETA10 offset

* Fix constants

* Code style: Rename parameters

* Linter fixes v2

* Linter errors v3

* Add BETA10 variable names for presenters

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-03 13:50:30 -07:00
MS
73938ac2ab
Beta match MxDSFile (#1098) 2024-09-01 17:08:53 -07:00
MS
2af5f87051
MxTimer touch-up (#1096) 2024-09-01 11:51:33 -07:00
MS
990725ba0b
Add more MSVC annotations for LEGO1 (#1094) 2024-08-31 20:02:19 -07:00
jonschz
b898d98515
BETA10: reccomp support and Ghidra imports (#1091)
* Implement core functionality (before linter)

* run linter + formatter

* Review: remove redundant code

* Implement end of range check for vtables

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-29 11:54:23 -07:00
jonschz
1b46859cf6
Implement RaceSkel, add BETA10 annotations (#1088)
* Implement `RaceSkel`, add BETA10 annotations

* fix formatting

* Fix order

* Address some review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-21 22:30:27 +02:00
jonschz
b649902578
Various fixes in constructors (#1089)
* Various fixes in constructors

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-21 10:42:49 -07: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
jonschz
34047c0cb6
Implement/match LegoCarRaceActor::VTable0x6c (#1085)
* Implement/match `LegoCarRaceActor::VTable0x6c`

* Rename variable

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-17 08:59:22 -07:00
MS
9555aaba74
Remove USHRT_MAX from ParseExtra functions (#1086) 2024-08-17 08:56:25 -07:00
Christian Semmler
30e9e43cda
Implement/match RegistrationBook::HandlePathStruct (#1084) 2024-08-12 18:21:18 +02:00
MS
9ab3954bbb
Minor tweak to MxList template (#1083)
* Beta addrs for MxList and related functions

* MxList DeleteAll and Empty functions
2024-08-11 13:23:39 -07: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
jonschz
a6a241b09d
Implement LegoCarRaceActor::VTable0x70 and VTable0x1c (#1079)
* Implement/match `LegoCarRaceActor::VTable0x70`

* Add BETA10 annotations

* Start with VTable0x9c, fix data type

* basic BETA10 code completion

* small fix

* small fix

* cleanup

* Fix formatting

* Address review comments

* review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-08 12:55:01 -07:00
MS
51d4dead1a
MxSmack::LoadHeader (#1080) 2024-08-07 20:19:12 -07:00
jonschz
e09acfcddb
Implement/match LegoCarRaceActor::VTable0x1c (#1078)
* Implement/match `LegoCarRaceActor::VTable0x1c`

* Fix formatting

* Fix LegoEdge::CWVertex()

* Fix more CI issues

* Trz to fix lvalue compile issue

* Fix formatting

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-04 21:13:12 +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
4a41671759
Implement/match LegoRaceActor (#1072)
* Implement LegoRaceActor, add annotations

* Change code duplication comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-02 22:29:21 -07:00
jonschz
1f251ff817
Implement/match LegoCarRaceActor::FUN_10080590 (#1070)
* Implement/match `LegoCarRaceActor::FUN_10080590`

* Add vbtable annotations

* disable formatter for assertion

* Fix BETA10 annotations

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-28 20:13:18 +02:00
jonschz
f436b9365b
Implement/match the rest of LegoRaceCar, BETA10 improvements (#1069)
* Implement/match the rest of `LegoRaceCar`

* Add BETA10 annotations and improvements

* Undo incorrect change

* Add synthetic vbase destructors

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-27 18:24:36 +02:00
jonschz
0d385e27d0
Implement/match LegoRaceCar::VTable0x94 (#1068)
* Implement LegoRaceCar::VTable0x94

* Remove redundant inline modifiers

* Fix offsets

* Fix minor inconsistency

* Address review comments

* Address review comments, round 2

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-26 10:53:09 -07:00
jonschz
bc9abdc823
More legoracers functions (#1067)
* Implement/match LegoRaceCar::VTable0x70

* Fix datacmp errors

* minor fix

* Fix naming issue

* Address review comments, part 1

* Address review comments, part 2

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-18 13:20:59 -07:00
jonschz
210376f272
Implement LegoRaceCar::HandleSkeletonKicks and dependents (#1065)
* Implement `LegoRaceCar::HandleSkeletonKicks` and dependents

* Fix typo

* Spike to fix array comparisons (needs refactor)

* Refactor: Dedicated method for array element matching

* Address review comments

* Reformat with new version of black

* Apply more review comments

* Address more review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-17 07:03:02 -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
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
bee101b1f4
Add clang-tidy readability-redundant-inline-specifier (#1060)
* Add clang-tidy readability-redundant-inline-specifier

* fix

* Update CONTRIBUTING.md

* format

* fix
2024-07-05 01:06:32 +02:00
Christian Semmler
09684b3c03
Implement/match BumpBouy class (#1058) 2024-07-04 23:28:23 +02:00
MS
14653070cc
Refactor surrounding MxBitmap::GetAdjustedStride (#1057)
* Refactor surrounding MxBitmap::GetAdjustedStride

* Remove this-> from MxDisplaySurface
2024-07-04 09:50:04 -07:00
Christian Semmler
65e3c3dd05
Implement/match FreeModelDbWorlds (#1056) 2024-07-02 22:04:05 +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
MS
05fa715550
Add MxTrace function (#1054) 2024-07-02 10:46:40 -07:00
Christian Semmler
788cec2560
Implement GasStation::HandleEndAction (#1053) 2024-07-02 02:37:51 +02:00
Christian Semmler
7bee5fc6a5
Implement/match GasStation::HandleButtonDown (#1052)
* Implement/match GasStation::HandleButtonDown

* Use enum
2024-07-02 01:43:03 +02:00
Christian Semmler
9ba05d021d
Implement/match LegoPlantManager::ScheduleAnimation (#1051)
* Implement/match LegoPlantManager::ScheduleAnimation

* Add assert
2024-07-02 01:14:04 +02:00
jonschz
a21fd5975c
Start implementing LegoRaceCar (#1050)
* Implement several functions

* Limited match on LegoRaceCar::ParseAction

* WIP: progress in the right direction

* Implement LegoRaceCar::ParseAction()

* fix linter issues

* Address review comments

* fix naming

* fix naming (again)

* Relocate address annotations

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-01 11:39:31 -07:00
jonschz
fb34f86171
Improve several functions in vector.h (#1049)
* Improve some functions in vector.h

- Add BETA10 references
- inline some functions based on BETA10
- Identify and improve `Vector4::EqualsHamiltonProduct`

* Fix BETA10 offset

* Fix BETA10 annotation order

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-30 13:45:10 -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
536aa4b1fe
Implement/match LegoPlantManager::FUN_10027120 (#1046) 2024-06-26 15:39:36 +02:00
Anonymous Maarten
0637deea13
m_extraCharacterId is an integer, not a pointer (#1045) 2024-06-26 04:17:45 -07:00
Anonymous Maarten
8113a17167
Backports of isle-portable x64 fixes (#1044)
* Introduce LPD3DRM_APPDATA typedef for setting d3drm appdata

* Fix warning about assigning const string literals to variable char pointers

* Don't cast pointers to integers on non-32-bit architectures

* memset 2nd argument is int

* Assume cpuid is available on x86_64, needs testing on i386 and unavailable on anything else

* Store HFILE in its own member variable
2024-06-25 17:56:30 +02:00
Christian Semmler
62307e1819
Implement/match LegoPlantManager::FUN_10026c50 (#1043)
* Minor fixes

* Implement/match LegoPlantManager::FUN_10026c50
2024-06-25 17:28:10 +02:00
jonschz
c9c130eb87
Implement AnimState (#1042)
* Implement LegoAnim

* fix: minor issues

* fix ncc complaints

* refactor: address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-21 14:41:01 -04:00
Christian Semmler
1d666f62e5
Implement/match LegoPlantManager interaction functions (#1041) 2024-06-19 18:57:05 +02:00
Christian Semmler
656e7fc674
Implement/match more LegoPlantManager functions (#1040) 2024-06-19 18:02:54 +02:00
Christian Semmler
e507f42717
Implement/match LegoPlantManager::CreatePlant (#1039)
* Implement/match LegoPlantManager::CreatePlant

* Update names

* Fix name

* Fix

* Fix
2024-06-18 19:35:03 +02:00
Christian Semmler
1a46d370ec
Bootstrap LegoPlantManager, add plants data (#1038)
* Bootstrap LegoPlantManager, add plants data

* Naming

* Move

* Fix
2024-06-17 20:11:27 +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
MS
165785c434
Bugfix for LegoMeterPresenter::DrawMeter (#1033) 2024-06-13 23:56:28 -04:00
Christian Semmler
e1a97cab2d
Implement LegoAnimScene::FUN_1009f490 (#1032)
* Implement LegoAnimScene::FUN_1009f490

* Update legoanim.cpp

* Update legoanim.cpp

* Update legoanim.cpp
2024-06-13 17:53:45 -04:00
Christian Semmler
dd1c11a933
Fix camera glitch (#1031) 2024-06-13 22:09:14 +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
Christian Semmler
abb4483e18
Implement/match JailEntity::HandleClick and CaveEntity::HandleClick (#1025)
* Implement/match JailEntity::HandleClick and CaveEntity::HandleClick

* Fix
2024-06-12 17:13:06 +02:00
Christian Semmler
641d9f1b8b
Fix CaveEntity class (#1024)
* Fix CaveEntity class

* Rename function
2024-06-12 16:20:51 +02:00
Christian Semmler
475d21f8c8
Implement/match Ambulance::ActivateSceneActions (#1023) 2024-06-12 16:08:55 +02:00
Christian Semmler
2a88d06ff9
Match LegoMeterPresenter::ParseExtra (#1022)
* Match LegoMeterPresenter::ParseExtra

* Add LegoMeterPresenter to factory

* Add call to parent

* Add missing TODO
2024-06-12 15:53:33 +02:00
Christian Semmler
1f360929cb
Implement/match Ambulance::Tickle (#1021) 2024-06-12 15:13:52 +02:00
Christian Semmler
ebc200bea3
Implement/match Ambulance::HandleClick (#1019)
* Implement/match Ambulance::HandleClick

* Remove junk

* Add Ambulance::FUN_10036e60
2024-06-11 20:19:41 +02:00