Mark Langen
253882bdcb
Start work on building save data ( #885 )
...
* Start work on building save data
* Add LegoBuildingData struct to LegoBuildingManager, naming mirrors
LegoCharacterData in LegoCharacterManager.
* 100% match of many methods in LegoBuildingManager using the struct.
* Formatting
* Add required includes post merge
* Format again
* Better follow naming conventions
* Format again again
* Also fill in template data
* Fix data
* Change braces
* Match functions, consistent style, add missing annotations, some BETA annotations
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-05-06 13:15:19 +02:00
Christian Semmler
45f9f54f21
Implement/match IslePathActor::SpawnPlayer ( #884 )
...
* Implement/match IslePathActor::SpawnPlayer
* Fix
* Fix
* Add skip
* Rename param
2024-05-04 16:13:05 +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
72cbd1fc60
Refactor LegoOmni::PathContainer into IslePathActor::SpawnLocation ( #877 )
...
* Refactor LegoOmni::PathContainer into IslePathActor::SpawnLocation
* Add beta annotation
* Type var
2024-05-02 16:51:41 +02:00
Christian Semmler
0bf39c7108
Implement/match LegoAnimationManager::Tickle ( #876 )
...
* Implement/match LegoAnimationManager::Tickle
* Resolve out of order
* Fix naming
2024-05-02 15:22:09 +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
jonschz
84b789ef9e
Implement the rest of the SkateBoard class ( #873 )
...
* Implement SkateBoard::~SkateBoard()
* Implement SkateBoard::VTable0xd4
* Implement SkateBoard::Create()
- one typecast is still not clear
* Add SkateBoard::VTable0xe4()
* apply clang-format
* Apply clang-format to legocontrolmanager.h
* Address review comments
* 57 percent match
* 63 percent
* 82 percent match
* previous 86 was bugged, unfortunately
* 85 percent on FUN_10010270
* 92 percent FUN_10010270
* 69 percent VTable0xcc
* 73 percent VTable0xcc
* more progress, not quite there yet
* minor 10010510 improvement
* 100 % on FUN_10010510
* slowly making progress on SkateBoard::VTable0xcc (broken decomp)
* getting closer, now only wrong registers
* 89 percent VTable0xcc
* 92 percent
* 95 % VTable0xcc
* Changes, see comment
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-05-01 13:36:58 +02:00
Christian Semmler
20dee07b9c
Implement/match LegoAnimationManager::FUN_100605e0 ( #872 )
...
* Implement/match LegoAnimationManager::FUN_100605e0
* Remove padding
* Fix annotation
2024-04-30 16:02:58 +02:00
Christian Semmler
b902790c54
Implement/match LegoAnimationManager::FUN_1005f6d0 and FUN_1005f700 ( #871 )
...
* Implement/match LegoAnimationManager::FUN_1005f6d0 and FUN_1005f700
* Use bool constants
2024-04-30 12:38:55 +02:00
Christian Semmler
60796eff74
Implement/match LegoAnimationManager::Suspend ( #870 )
2024-04-30 12:18:44 +02:00
Christian Semmler
599d8c91c8
Implement/match LegoAnimationManager::Resume ( #869 )
...
* Implement/match LegoAnimationManager::FUN_1005f0b0
* Rename
2024-04-30 10:27:57 +02:00
Christian Semmler
7c6c68d6f9
Rename LegoCharacterData to LegoCharacterInfo ( #867 )
2024-04-28 15:04:27 +02:00
Christian Semmler
ca9b611251
Add enums for character LODs and parts ( #866 )
2024-04-28 14:49:07 +02:00
jonschz
b17d76c2cc
Refactor: Replace magic values by enum values ( #865 )
...
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-04-28 07:27:17 -04:00
Christian Semmler
ec7df356cf
Implement/match LegoAnimationManager::Reset ( #863 )
...
* Implement/match LegoAnimationManager::Init
* Rename function
* fix hex val
2024-04-27 16:31:50 +02:00
Christian Semmler
f6ffeabed7
Implement/match LegoAnimationManager::GetCharacterIndex ( #861 )
2024-04-27 15:59:00 +02:00
Christian Semmler
c7e5457f95
Implement/match LegoAnimationManager::FUN_10062770 ( #860 )
2024-04-27 15:46:47 +02:00
Christian Semmler
e49d05c410
Implement/match LegoAnimationManager::FUN_10063780 and FUN_10063aa0 ( #859 )
2024-04-27 15:19:55 +02:00
Christian Semmler
86203f1704
Implement/match LegoAnimationManager::Init ( #858 )
2024-04-27 15:07:28 +02:00
Christian Semmler
00f5eff792
Implement/match LegoAnimationManager ctor/dtor ( #857 )
2024-04-27 14:52:28 +02:00
Christian Semmler
53ef6bdd81
Implement/match LegoAnimationManager::FUN_10060dc0 ( #856 )
...
* Implement/match LegoAnimationManager::FUN_10060dc0
* Fix params
2024-04-26 17:37:07 +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
916c039e72
Implement/match LegoAnimPresenter::ParseExtra ( #848 )
...
* Implement/match LegoAnimPresenter::ParseExtra
* Fix
2024-04-25 16:00:58 +02:00
MS
311b27b697
Beta matching MxString ( #842 )
...
* Beta matching MxString
* Add /opt:ref for lego1. Reorder MxString header.
* const fix
* Remove lego1 Opt:ref
2024-04-24 12:10:51 -04: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
7efbb04999
Implement/match LegoAnimPresenter::FUN_1006ab70 ( #839 )
2024-04-23 10:03:10 +02:00
Christian Semmler
b4f29ea6b0
InvokeAction: take const atom ( #837 )
2024-04-22 14:24:00 +02:00
Christian Semmler
f1688be263
Make NotificationManager::Send take a const reference to notification ( #836 )
...
* Make NotificationManager::Send take a const reference to notification
* Fix virtual func
2024-04-22 14:11:38 +02:00
Christian Semmler
0e0d6890ad
Fix SwitchHat ( #835 )
2024-04-21 16:41:38 +02:00
Christian Semmler
c9db98c4c3
Fix writing/reading of game state ( #834 )
...
* Fix writing/reading of game state
* Match existing state serialization functions
2024-04-21 15:42:08 +02:00
Christian Semmler
26f2dd1e5f
Implement/match LegoAnimMMPresenter::~LegoAnimMMPresenter ( #833 )
...
* Implement/match LegoAnimMMPresenter::~LegoAnimMMPresenter
* add missing override
* use NULL
2024-04-20 18:53:53 +02:00
Christian Semmler
30747dbae6
Implement/match LegoAnimMMPresenter::FUN_1004b6d0 ( #832 )
2024-04-20 18:33:10 +02:00
Christian Semmler
b39ea845b0
Implement/match LegoAnimMMPresenter::FUN_1004b610 and FUN_1004b6b0 ( #831 )
2024-04-20 18:24:09 +02:00
Christian Semmler
a3bd98a04d
Implement/match LegoAnimMMPresenter::FUN_1004b5b0 ( #830 )
2024-04-20 18:03:42 +02:00
Christian Semmler
3cab989250
Implement/match LegoAnimMMPresenter::FUN_1004b580 ( #829 )
2024-04-20 17:52:46 +02:00
Christian Semmler
f637dcaa29
Implement/match LegoAnimMMPresenter::FUN_1004b530 ( #828 )
2024-04-20 17:40:23 +02:00
Christian Semmler
91d043a9ae
Implement/match LegoAnimMMPresenter::FUN_1004b450 ( #827 )
2024-04-20 17:18:19 +02:00
Christian Semmler
c617139d5b
Implement/match LegoAnimMMPresenter::EndAction ( #826 )
...
* Implement/match LegoAnimMMPresenter::EndAction
* Add missing vtable
2024-04-20 16:41:34 +02:00
Christian Semmler
8d729f77b7
Implement/match LegoAnimMMPresenter Streaming/RepeatingTickle and Notify ( #825 )
2024-04-20 16:24:12 +02:00
Christian Semmler
9cc5df8c40
Implement/match LegoAnimMMPresenter::StartingTickle ( #824 )
2024-04-20 16:07:58 +02:00
Christian Semmler
0b08b0ae69
Implement/match LegoAnimMMPresenter::ReadyTickle ( #823 )
2024-04-20 15:52:10 +02:00
Christian Semmler
5021f66de2
Imlpement/match LegoAnimMMPresenter::ParseExtra and related ( #822 )
...
* Imlpement/match LegoAnimMMPresenter::ParseExtra and related
* sort
2024-04-20 15:32:10 +02:00
Christian Semmler
d5dd8db46e
Implement LegoAnimationManager::FUN_100609f0 / LegoTranInfo ( #820 )
...
* Implement LegoAnimationManager::FUN_100609f0 / LegoTranInfo
* use NULL
2024-04-19 17:42:28 +02:00
Christian Semmler
fb0f35188b
Implement/match LegoCharacterManager::FUN_10083c30 ( #819 )
2024-04-19 14:30:36 +02:00
Christian Semmler
e7aec124a2
Implement/match LegoPhonemePresenter::EndAction ( #816 )
2024-04-17 17:03:17 +02:00
Christian Semmler
97b502362d
Implement/match LegoTextureInfo::FUN_10066010 ( #815 )
2024-04-17 16:05:51 +02:00
Christian Semmler
06fadd922e
Implement/match LegoROI/LegoLOD::GetTexture ( #814 )
...
* Implement/match LegoROI/LegoLOD::GetTexture
* Remove explicit truth tests
* LegoTextureContainer::AddToList fix
* Revert "Remove explicit truth tests"
This reverts commit d169349bd6
.
2024-04-17 15:18:34 +02:00
Christian Semmler
a64bb4d460
Implement/match LegoCharacterManager::FUN_100849a0 ( #813 )
2024-04-17 13:52:59 +02:00
Christian Semmler
2600b1b421
Implement/match LegoPhonemePresenter::StartingTickle ( #809 )
...
* Implement/match LegoPhonemePresenter::StartingTickle
* Name vars
* Fix name
2024-04-16 16:07:13 +02:00
MS
46362a0f6e
Fix some issues with annotations ( #808 )
2024-04-15 14:42:25 -04:00
Misha
69b250e40c
implement FUN_1003e050 ( #799 )
...
* FUN_1003e050
* Match FUN_1003e050
* Remove unused function
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-14 17:19:16 +02:00
Misha
4374891ac8
Implement IslePathActor::VTable0xe0 & VTable0xec ( #788 )
...
* Implement IslePathActor::VTable0xe0 & VTable0xec
* Revert random change
2024-04-12 07:02:32 -04:00
Christian Semmler
f30ed0212b
Implement/match LegoEntity::Notify ( #778 )
2024-04-06 19:59:38 +02:00
Christian Semmler
4795eac37c
Implement LegoCharacterManager::FUN_10083db0 ( #775 )
2024-04-06 18:11:13 +02:00
Christian Semmler
3bafe2d3a4
Implement/match LegoCharacterManager::FUN_10083f10 ( #774 )
...
* Implement LegoCharacterManager::FUN_10083f10
* style
* Match
* Fix naming
2024-04-06 17:46:40 +02:00
Christian Semmler
75dc04f40a
Implement/match LegoCharacterManager::FUN_10084cf0 ( #773 )
...
* Implement/match LegoCharacterManager::FUN_10084cf0
* Compat mode for iterator
2024-04-06 14:08:38 +02:00
Christian Semmler
c9ce9b56bb
Implement/match LegoCharacterManager::FUN_10084ec0 ( #770 )
...
* Implement LegoCharacterManager::FUN_10084ec0
* Match
* Match CreateROI
* Match
* Improve match
2024-04-05 15:57:20 +02:00
Christian Semmler
8225a38a01
Implement/match LegoCharacterManager::FUN_10085870 ( #764 )
2024-04-02 14:04:17 +02:00
Christian Semmler
60388c8c5d
Implement/match LegoCharacterManager::FUN_10085210 ( #763 )
...
* Implement/match LegoCharacterManager::FUN_10085210
* Update params
* Update param names
* param to bool
* Update var names based on beta
2024-03-31 16:05:38 +02:00
Christian Semmler
ed9e9efdab
Implement/match LegoBackgroundColor::SetLightColor and related ( #758 )
2024-03-29 21:50:00 +01:00
Christian Semmler
369f3fba22
Implement SetLightPosition and related ( #757 )
...
* Implement SetLightPosition and related
* Update p name
* style
2024-03-29 21:42:39 +01:00
Christian Semmler
3878f79847
Implement/match LegoCharacterData::GetData and FUN_10085140 ( #755 )
2024-03-29 19:34:50 +01:00
Ramen2X
2c57e33ce5
implement/match LegoAnimationManager::DeleteAnimations() ( #753 )
2024-03-29 14:09:46 -04:00
Christian Semmler
ed1a25a636
Implement/match LegoCharacterManager GetActor/Exists, fix loops ( #750 )
2024-03-29 13:30:46 -04:00
Christian Semmler
e260a407ba
Implement/match LegoCharacterManager::GetRefCount ( #749 )
2024-03-29 13:30:31 -04:00
Ramen2X
7431d9d650
implement/match LegoAnimationManager::FindVehicle() ( #748 )
2024-03-29 11:50:16 -04:00
Christian Semmler
bfc2b76a61
Implement/match LegoCharacterManager::FUN_100832a0 ( #747 )
2024-03-29 15:41:12 +01:00
Ramen2X
5e10e01014
implement/match ReadNamedTexture() ( #745 )
2024-03-28 17:03:51 -04:00
MS
e4570b520b
Define g_characters ( #743 )
...
* Define g_characters
* Update with known struct types
2024-03-28 19:15:39 +01:00
Ramen2X
f157f01f71
implement/match UpdateLightPosition() ( #744 )
2024-03-28 10:27:44 -04:00
Ramen2X
97ebb22c42
implement/match FUN_1003ef60() ( #740 )
2024-03-27 15:46:03 -04:00
Nathan M Gilbert
1e3ca11886
Implement/match LegoAnimActor ( #730 )
...
* Implement/match LegoAnimActor
* Name changes (deviation from original source)
* Attempt to fix modern build
* Add missing override
* Match LegoAnimActor::SetWorldSpeed
* Remove junk
* Style changes and implement WEEdge
* Add override
* Match LegoAnimActor::FUN_1001c1f0, style
* Style
* Add missing annotations, STUB LegoPathBoundary
* Style
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-26 18:51:52 +01:00
Ramen2X
43ce89224a
match LegoGameState::RegisterState() ( #729 )
2024-03-25 14:34:28 -04:00
Joshua Peisach
3f6f59852f
Ambulance::Create, dtor ( #719 )
...
* Ambulance::Create, dtor
* annotations
* fix
* remove comment
---------
Co-authored-by: Ramen2X <rmn@legoisland.org>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-24 22:28:44 +01:00
Misha
b279e8b8b9
Begin LegoNavController::Notify ( #716 )
...
* Partial implementation of LegoNavController::Notify
* Mark as stub
* Update legoanimationmanager.cpp
* Rename function/style
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-23 19:00:34 +01:00
Christian Semmler
0391b5b42a
Replace more magic numbers with script values ( #714 )
...
* Replace more magic numbers with script values
* Matches/fixes
* Make const
2024-03-23 18:06:31 +01:00
Nathan M Gilbert
8b21e8136e
Animmanager ( #712 )
...
* Implement LegoAnimationManager::StartEntityAction
Fix some class definitions
* Fix style issues
* Add size annotations
* Fix global pointer
* Style/naming
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-23 15:09:20 +01:00
Nathan M Gilbert
fca8f74bd8
Fix Annotations and LegoAnimActor class structure. ( #710 )
...
* Fix size annotations for legoomni
Fix structure and add placeholder annotations for LegoAnimActor and subclasses
* Fix LegoCarRaceActor constructor
Fix function name in LegoRaceCar
* Add size assertions for legoomni and fix sizes
* Various style fixes
* Use other marker so vtable.py doesn't compare
* Revert "Use other marker so vtable.py doesn't compare"
This reverts commit 608985cd73
.
* Fix copy/paste error
* Remove stale comment.
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-22 21:30:58 -04:00
Christian Semmler
68bb20f04f
Implement LegoCharacterManager::CreateROI ( #709 )
...
* WIP
* Create globals
* Add Read
* Name Init
* Add LegoCharacter init data
* Add define for NULL
* Use MxS8
* Add LegoCharacterLOD
* WIP CreateROI
* Fix
* WIP
* Match
* Match
* Match, implement Find
* Fix MeshBuilder
* Fix
* space
2024-03-22 18:40:19 +01:00
Misha
3ce1e4985e
begin LegoAnimMMPresenter ( #706 )
2024-03-20 22:11:40 +01:00
Misha
556c7698d8
implement RemoveFromCurrentWorld ( #700 )
...
* implement RemoveFromCurrentWorld
* Replace magic values
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 21:07:07 +01:00
Misha
eaa935f646
Finish LegoVariables class ( #698 )
...
* Finish LegoVariables class
* Update legonavcontroller.cpp
* Update legobackgroundcolor.cpp
* Match functions, style, refactor visible
* Use MxBool
* Merge/fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 19:44:42 +01:00
Christian Semmler
0994d6dbfb
Implement LegoCharacterManager::GetROI ( #696 )
...
* Implement LegoCharacterManager::GetROI
* Add TODO
2024-03-19 19:23:34 +01:00
Misha
fd1b371864
Implement a few LegoBackgroundColor functions ( #694 )
...
* Update legobackgroundcolor.cpp
* Update legobackgroundcolor.cpp
* minor style
* minor style
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 15:22:11 +01:00
Misha
e454e56b52
Implement a few RegistrationBook functions ( #693 )
...
* Implement a few RegistrationBook functions
* Match functions
* minor style
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 15:15:24 +01:00
Christian Semmler
44bc575a2d
Replace some magic numbers with enum values ( #692 )
2024-03-19 07:45:29 -04:00
Christian Semmler
52d74647be
Implement/match Isle::HandleEndAction and Isle::HandleElevatorEndAction ( #691 )
...
* WIP
* Match
2024-03-18 15:00:58 -04:00
Christian Semmler
d96679ea9e
Implement/match Isle::HandleClick ( #690 )
...
* Isle::HandleClick
* WIP
* Match
2024-03-18 17:31:22 +01:00
Christian Semmler
5b8f515968
Implement/match Isle::HandleTransitionEnd ( #683 )
...
* Implement/match Isle::HandleTransitionEnd
* Rename enums
* Forward declare enum for C++11+
* Add underlying storage to action headers
* Fix missing define
2024-03-17 18:01:47 +01:00
Christian Semmler
0a4db65b24
Implement/match Isle::Enable ( #681 )
...
* Implement/match Isle::Enable
* Fix order
2024-03-16 19:20:44 +01:00
Christian Semmler
70e8796af3
Implement/match LegoEntity::VTable0x3c ( #680 )
2024-03-16 03:20:44 +01:00
Nathan M Gilbert
d07d7edc81
Implement methods to load dta files. ( #673 )
...
* Implement methods to load dta files.
* fix style issues
* fix vtables
* fix more style issues
* fix ddtor names
* Remove explicit padding, add annotations, asserts
* Use List template
* trigger CI
* Fix class refactor
* Match code, fix annotations
* Fix
* 98% match
* Fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-16 01:43:45 +01:00
Ramen2X
beb30e80ea
slight style tweaks to legogamestate and related members ( #666 )
2024-03-13 13:17:20 -04:00
MS
e3d7188ec9
Use AUTOLOCK macro ( #660 )
...
* Use AUTOLOCK macro
* MxAutoLock
* Remove semicolon
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
---------
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2024-03-12 15:23:50 +01:00
Ramen2X
b0483000d8
TransitionNone() -> NoTransition() ( #659 )
2024-03-11 21:23:31 -04:00
Ramen2X
9207d1cb28
remove redundant MxU16 cast in MosaicTransition()
...
mistake, but it gets optimized out anyways
2024-03-11 17:37:45 -04:00
Ramen2X
121708a574
match MxTransitionManager::MosaicTransition() ( #658 )
2024-03-11 17:33:43 -04:00
Ramen2X
6dfee432ea
rename MxTransitionManager transitions ( #655 )
2024-03-11 04:57:58 -04:00
Christian Semmler
8069923651
Refactor files based on beta debug build ( #645 )
...
* Rename LegoUnkSaveDataWriter -> LegoCharacterManager
* Refactor mxomni into mxomni/mxmisc
* Refactor legoomni into legoomni/misc
* Resolve deps
* Refactor atom
* Refactor mxutil
* Refactor mxio
* Rename/relocate files
* Fix format
2024-03-09 21:07:52 +01:00