Commit graph

941 commits

Author SHA1 Message Date
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
jonschz
dede20000f
Progress towards implementing SkateBoard (#864)
* 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

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-04-28 07:23:29 -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
659599b635
Implement/match Pizzeria::Create (#862) 2024-04-27 16:06:12 +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
19d39394be
Score class cleanup (#855)
* Cleanup/fixes

* Improve Paint match

* Improve Score::FillArea

* Fix naming

* Fix value
2024-04-26 16:58: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
MS
a9d67e4dd7
Beta match MXIOINFO (#853) 2024-04-26 04:57:10 -04:00
MS
612eec6889
Beta matching MxAtom classes (#847)
* Beta matching MxAtom classes

* Remove unused getter

* Restore operator!= for modern compilers
2024-04-25 17:43:42 +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
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
f898462d17
Implement/match LegoROI::FUN_100a8fd0 (#845) 2024-04-24 15:19:14 +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
Christian Semmler
9025d5ed06
Implement/match LegoWorld::FUN_1001fda0 (#840) 2024-04-23 10:33:38 +02:00
Christian Semmler
7efbb04999
Implement/match LegoAnimPresenter::FUN_1006ab70 (#839) 2024-04-23 10:03:10 +02:00
Christian Semmler
c01fd9b260
Implement/match LegoAnimPresenter::EndAction (#838) 2024-04-22 15:42:52 +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
57589c082c
Fix default light position 2024-04-21 10:03:14 -04: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
MS
2ce9ff06fc
Enable some multiple-inheritance vtables (#821) 2024-04-19 16:23:36 -04: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
MS
9c6120fc37
Beta matching MxOmniCreateFlags (#817)
* Beta matching MxOmniCreateFlags

* Add newlines and swap order

* Add newline
2024-04-17 16:37:16 -04: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
7d0957aa3c
LegoTextureContainer::AddToList bugfix 2024-04-17 09:37:26 -04: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
11410890cd
Implement/match LegoPhonemePresenter::LoadFrame & PutFrame (#812)
* Implement/match LegoPhonemePresenter::LoadFrame & PutFrame

* add beta10 annotations
2024-04-17 13:26:11 +02:00
Nathan M Gilbert
d639eb4c2b
Implement LegoPathActor::Vtable0x6c (#810)
* Implement LegoPathActor::VTable0x6c

* Update LEGO1/lego/legoomni/src/paths/legopathactor.cpp

Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>

* Fix logic / match

* Add BETA annotation

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2024-04-17 12:34:21 +02:00
MS
536c4336f3
Beta matching MxVariableTable (#811) 2024-04-17 11:31:48 +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
Nathan M Gilbert
41281dcbec
Implement LegoPathActor::VTable0x70 (#807)
* Implement LegoPathActor::VTable0x70

* match

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-16 12:54:08 +02:00
MS
46362a0f6e
Fix some issues with annotations (#808) 2024-04-15 14:42:25 -04:00
Christian Semmler
5f1642bf73
Implement Matrix4::FromQuaternion (#806) 2024-04-15 15:15:13 +02:00
Nathan M Gilbert
dcbad318e0
Implement/Match LegoPathActor::VTable0x74 (#805)
* Implement/Match LegoPathActor::VTable0x74

* Remove superfluous early returns

* fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-15 13:38:30 +02:00
Misha
540bcc61ad
Implement LegoVideoManager::FUN_1007c520 (#803) 2024-04-14 16:23:32 -04:00
Misha
e251ddb17d
implement LegoAnimNodeData::FindKeys (#802)
* implement LegoAnimNodeData::FindKeys

* Update legoanim.cpp

* fix flickering

* Match

* Fix cond

* clang

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-14 14:25:39 -04:00
Christian Semmler
dcc42c33d8
Implement/match LegoROI::FUN_100a8e80 (#801) 2024-04-14 17:46:56 +02: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
Nathan M Gilbert
7821d952ec
Pathactor (#800)
* Implement LegoPathActor::VTable0x8c

* Fix paramater name

* WIP fixes

* more fixes

* style

* fix

* fix

* fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-14 16:43:07 +02:00
Misha
c282b3019d
implement LegoAnimPresenter::VTable0x8c (#798) 2024-04-13 17:42:05 -04:00
Christian Semmler
54421ebcdf
Implement/match LegoAnimPresenter::FUN_1006b9a0 (#797) 2024-04-13 18:05:43 +02:00
Christian Semmler
67127e2515
Implement/match LegoAnimPresenter::PutFrame (#796)
* Implement/match LegoAnimPresenter::PutFrame

* compat mode
2024-04-13 17:59:16 +02:00
Christian Semmler
d469cabd6b
Implement/match LegoAnimPresenter::FUN_1006abb0 (#795) 2024-04-13 16:35:55 +02:00
Christian Semmler
93257a7c8c
Implement/match LegoAnimPresenter::FUN_1006c8a0 (#794) 2024-04-13 16:11:24 +02:00
Christian Semmler
4502737fe2
Implement/match LegoAnimPresenter::FUN_100699e0 (#793) 2024-04-13 16:02:55 +02:00
Christian Semmler
e43749c8bb
Implement/match LegoAnimPresenter::FUN_10069b10 (#792) 2024-04-13 15:55:26 +02:00
Christian Semmler
f5e81777bc
Implement LegoAnimPresenter::FUN_1006a3c0 (#791) 2024-04-13 14:57:18 +02:00
Nathan M Gilbert
e8b61d5a1d
Implement LegoPathActor::Vtable0x84 (#790)
* Implement LegoPathActor::Vtable0x84

* fix condition

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-13 14:05:20 +02:00
Christian Semmler
dc3259bb17
Implement/match LegoAnimPresenter::FUN_1006a4f0 (#789) 2024-04-12 17:53:22 +02:00
Misha
4374891ac8
Implement IslePathActor::VTable0xe0 & VTable0xec (#788)
* Implement IslePathActor::VTable0xe0 & VTable0xec

* Revert random change
2024-04-12 07:02:32 -04:00
Joshua Peisach
8cbb094b75
IsleActor::Create, IsleActor::Notify (#779)
* IsleActor::Create, IsleActor::Notify

* fix pizzeria vtable

* clang-format

* fix pizza vtable

* fix annotation

* refactor, add annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-11 13:55:22 +02:00
Christian Semmler
91ae26589a
Remove TODO 2024-04-11 07:36:55 -04:00
Nathan M Gilbert
ada83989b1
Implement LegoPathActor::VTable0x88 (#787)
* Implement LegoPathActor::VTable0x88

* Implement FUN_1002ddc0

* Fixes and match

* refac

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-11 13:35:15 +02:00
Nathan M Gilbert
507cd0cff4
Refactor/Implement/Match LegoEdge (#786)
* Refactor/Implement/Match LegoEdge

* Reorder annotation

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-09 11:25:24 +02:00
Christian Semmler
5cf04bc3c3
Implement/match LegoActor::ParseAction (#785)
* Implement/match LegoActor::ParseAction

* Add call to parent
2024-04-08 14:23:31 +02:00
Christian Semmler
cf18aa8072
Match LegoExtraActor::FUN_1002aae0 2024-04-08 04:18:55 -04:00
Christian Semmler
1bfe47357b
Refactor LegoActorStruct into unknown class in misc lib (#782) 2024-04-07 14:36:58 +02:00
Nathan M Gilbert
b394770864
Implement PathActor VTable0x80 and PathActorStruct FUN_1009a140 (#781)
* Implement PathActor VTable0x80 and PathActorStruct FUN_1009a140

* Match functions, fixes

* fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-07 14:03:21 +02:00
Christian Semmler
17680522c2
Use proper boolean constant 2024-04-06 15:32:02 -04:00
Christian Semmler
458d4b0988
Use button constant for modifier 2024-04-06 15:30:32 -04:00
Christian Semmler
4b4f2f321c
Implement/match LegoInputManager::FUN_1005cdf0 (#780) 2024-04-06 21:16:35 +02:00
Christian Semmler
f30ed0212b
Implement/match LegoEntity::Notify (#778) 2024-04-06 19:59:38 +02:00
Joshua Peisach
fc91da8666
More gasstation functions (#776)
* More gasstation functions

* Match GasStation::HandleClick

* Match GasStation::Tickle

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-06 19:07:57 +02:00
Christian Semmler
b309982219
Implement/match ViewManager::Pick (#777) 2024-04-06 19:03:39 +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