jonschz
412200ecbc
Ghidra Import: Support virtual inheritance ( #1071 )
...
* Implement/fix Ghidra imports for multiple and virtual inheritance
Unfortunately, the handling in Ghidra is still far from perfect. This is a good place to start, though.
* Support offsets in vbase pointers
* Support `this adjust`
* minor stylistic improvement
* Improvements to documentation
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-30 10:02:15 -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
MS
0760e4e7d7
Option to disable decomp asserts in MSVC ( #1066 )
2024-07-16 19:23:10 -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
4833d2edf1
Update README.md
2024-07-05 04:51:04 +02:00
Christian Semmler
8075264767
Update README.md
2024-07-05 04:49:36 +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
0873b782c5
User clang-format InsertBraces instead of clang-tidy ( #1059 )
2024-07-04 23:35:49 +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
4a87c3bc44
Small update to datacmp and roadmap ( #1048 )
...
* Match uninit variables with all nulls
* Enable _pnhHeap variable for ISLE
* Roadmap bugfix for ordinal import dummy addrs
* Format fix
2024-06-28 14:58:35 -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
d869d565c2
Fix Ghidra import script re-importing unchanged functions ( #1035 )
...
* feat: Reuse enums instead of recreating them every time
* feat: Support verifying return values larger than 4 bytes
* feat: Ignore `__$ReturnUdt` in template functions
* run formatter
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-16 08:50:32 -04:00
jonschz
c8dc77cbf4
Support stubs in function import ( #1034 )
...
* Refactor returned data structure for extensibility
* feature: Import stub functions but don't overwrite their argument list
Ghidra might have auto-detected some arguments, so we don't want to overwrite that if the stub's argument list has not been verified
Closes #1009
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-16 07:13:19 -04: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