Commit graph

657 commits

Author SHA1 Message Date
Christian Semmler
5f34d2e877
Implement/match LegoPathController::AddActor and RemoveActor ()
* Implement/match LegoPathController::AddActor and RemoveActor

* Fix types
2024-05-13 12:46:59 +02:00
Christian Semmler
91fe09af3c
Implement various small LegoPathController functions ()
* Implement/match LegoPathController::Tickle

* Implement various small LegoPathController functions

* Add 0x10046b30
2024-05-12 21:30:34 +02:00
Christian Semmler
b6fc8e27b1
Implement/match LegoPathController::Tickle () 2024-05-12 21:10:26 +02:00
Christian Semmler
32a3373360
Implement/match LegoPathController::Destroy () 2024-05-12 20:48:50 +02:00
Christian Semmler
dcaa07cc49
Implement/match LegoPathController::Create and Init () 2024-05-12 20:33:20 +02:00
Christian Semmler
f88f7b115e
Implement/match LegoPathController::ReadBoundaries ()
* Implement/match LegoPathController::ReadBoundaries

* Allow spawn
2024-05-11 19:55:28 +02:00
Christian Semmler
1f0a2a50ce
Implement/match LegoPathController::ReadEdge ()
* Implement/match LegoPathController::ReadEdge

* Fix

* Rename

* Add 100482b0

* Rename
2024-05-11 19:45:13 +02:00
Christian Semmler
09394c3512
Implement/match LegoPathController::FUN_10047b30 ()
* Implement/match LegoPathController::FUN_10047b30

* Fix delete
2024-05-11 18:57:07 +02:00
Christian Semmler
f442f1a2f7
Implement/match LegoPathController::Read ()
* Implement/match LegoPathController::Read

* Add size asserts
2024-05-11 18:23:18 +02:00
Christian Semmler
5df947dbb9
Implement/match LegoPathController::FUN_10045c20 and LegoPathController ctor ()
* Implement/match LegoPathController::FUN_10045c20 and LegoPathController ctor

* Remove obsolete struct
2024-05-11 15:32:11 +02:00
Christian Semmler
c77dd44105
Implement/match LegoCharacterManager::FUN_10083b20 and FUN_10085180 () 2024-05-11 14:13:27 +02:00
Christian Semmler
d9a82323ca
Implement/match LegoAnimationManager::AddExtra ()
* Implement/match LegoAnimationManager::AddExtra

* Rename member

* Fix param names

* Remove space
2024-05-10 20:07:38 +02:00
Christian Semmler
a1388adcd7
Refactor camera locations and other structs, name functions based on BETA ()
* Refactor camera locations and other structs, name functions based on BETA

* Add size assert

* Fix member name
2024-05-10 16:23:47 +02:00
Christian Semmler
f5ffd3aba3
Implement/match LegoAnimationManager::FUN_100627d0 () 2024-05-10 15:11:35 +02:00
Christian Semmler
172db7b5d8
Implement/match LegoAnimationManager::FUN_10062710 () 2024-05-09 22:32:06 +02:00
Christian Semmler
556cbdaab3
Implement/match LegoAnimationManager::FUN_10062650 ()
* Implement/match LegoAnimationManager::FUN_10062650

* Shorten code
2024-05-09 22:24:45 +02:00
Christian Semmler
6a8fb3f46b
Implement/match LegoAnimationManager::FUN_10062580 () 2024-05-09 22:10:00 +02:00
Christian Semmler
9ae2acbea8
Implement/match LegoAnimationManager::ModelExists ()
* Implement/match LegoAnimationManager::FUN_10062520

* Name function
2024-05-09 21:53:13 +02:00
Christian Semmler
5629eb3c85
Implement/match LegoAnimationManager::FUN_100623a0 () 2024-05-09 21:33:48 +02:00
Christian Semmler
001b46b2ab
Implement/match LegoAnimationManager::FUN_10062110 ()
* Implement/match LegoAnimationManager::FUN_10062110

* Fix param name

* Return other value in stub
2024-05-09 18:49:43 +02:00
Christian Semmler
36d681fde4
Implement/match LegoAnimationManager::FUN_100617c0 () 2024-05-09 16:30:34 +02:00
Mark Langen
55299229c2
LegoBuildingManager Round 2 ()
* LegoBuildingManager Round 2

* 100% match most of the remaining methods, only
  Tickle and FUN_10030630 remain.

* The interesting finding is that the curious
  members of the LegoBuildingManager form a short
  embedded fixed-length array used to store info
  about current animation of buildings.

* I saw that you removed the SetY which I had
  added to MxMatrix. Agree that this method
  doesn't make sense on MxMatrix, however I've
  added it back to Matrix4. I see the pattern of
  setting / getting the Y component used in enough
  places that I doubt they were just hoping they
  remembered the subscript correctly every time.
  Let me know if you agree or still don't think it
  makes sense to include.

* Formatting

* Order

* Satisfy name checker

* Add beta annotations and adjust style/naming

* Make function STUB

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-05-09 15:57:38 +02:00
Christian Semmler
5c8249f334
Implement/match LegoAnimationManager::FUN_10061530 () 2024-05-08 16:28:32 +02:00
Christian Semmler
05edf96186
Implement LegoAnimationManager::FUN_10061010 () 2024-05-07 21:59:46 +02:00
Christian Semmler
bac891cb0c
Implement/match LegoAnimationManager::FUN_10060570 () 2024-05-07 16:54:06 +02:00
Mark Langen
253882bdcb
Start work on building save data ()
* 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 ()
* 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 ()
* Refactor LegoOmni into LegoMain/Scripts

* Fix guard
2024-05-04 14:06:32 +02:00
Christian Semmler
51adf75b9b
(Refactor) Use more forward declarations ()
* 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 ()
* 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 ()
* 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 ()
* Implement/match LegoAnimationManager::Notify

* Rename notification type
2024-05-01 15:00:42 +02:00
Christian Semmler
6c89cd3315
Minor refactor SkateBoard setter in Pizza () 2024-05-01 13:49:47 +02:00
jonschz
84b789ef9e
Implement the rest of the SkateBoard class ()
* 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 ()
* 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 ()
* 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 () 2024-04-30 12:18:44 +02:00
Christian Semmler
599d8c91c8
Implement/match LegoAnimationManager::Resume ()
* Implement/match LegoAnimationManager::FUN_1005f0b0

* Rename
2024-04-30 10:27:57 +02:00
Christian Semmler
7c6c68d6f9
Rename LegoCharacterData to LegoCharacterInfo () 2024-04-28 15:04:27 +02:00
Christian Semmler
ca9b611251
Add enums for character LODs and parts () 2024-04-28 14:49:07 +02:00
jonschz
b17d76c2cc
Refactor: Replace magic values by enum values ()
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-04-28 07:27:17 -04:00
jonschz
dede20000f
Progress towards implementing SkateBoard ()
* 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 ()
* Implement/match LegoAnimationManager::Init

* Rename function

* fix hex val
2024-04-27 16:31:50 +02:00
Christian Semmler
659599b635
Implement/match Pizzeria::Create () 2024-04-27 16:06:12 +02:00
Christian Semmler
f6ffeabed7
Implement/match LegoAnimationManager::GetCharacterIndex () 2024-04-27 15:59:00 +02:00
Christian Semmler
c7e5457f95
Implement/match LegoAnimationManager::FUN_10062770 () 2024-04-27 15:46:47 +02:00
Christian Semmler
e49d05c410
Implement/match LegoAnimationManager::FUN_10063780 and FUN_10063aa0 () 2024-04-27 15:19:55 +02:00
Christian Semmler
86203f1704
Implement/match LegoAnimationManager::Init () 2024-04-27 15:07:28 +02:00
Christian Semmler
00f5eff792
Implement/match LegoAnimationManager ctor/dtor () 2024-04-27 14:52:28 +02:00
Christian Semmler
53ef6bdd81
Implement/match LegoAnimationManager::FUN_10060dc0 ()
* Implement/match LegoAnimationManager::FUN_10060dc0

* Fix params
2024-04-26 17:37:07 +02:00
Christian Semmler
19d39394be
Score class cleanup ()
* 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 ()
* Define LegoEntity::Type enum

* Use enum constant
2024-04-26 16:03:13 +02:00
Christian Semmler
31f5143741
Implement/match LegoAnimPresenter::VTable0x94 () 2024-04-25 17:27:55 +02:00
Christian Semmler
054120bc5d
Implement/match LegoAnimPresenter::FUN_1006aa60 () 2024-04-25 17:00:42 +02:00
Christian Semmler
ce3d915bba
Implement/match LegoAnimPresenter::SubstituteVariables () 2024-04-25 16:36:28 +02:00
Christian Semmler
830c0827af
Implement/match LegoAnimPresenter::Destroy ()
* WIP Destroy

* Match
2024-04-25 16:24:06 +02:00
Christian Semmler
916c039e72
Implement/match LegoAnimPresenter::ParseExtra ()
* Implement/match LegoAnimPresenter::ParseExtra

* Fix
2024-04-25 16:00:58 +02:00
MS
311b27b697
Beta matching MxString ()
* 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 ()
* Implement/match various small LegoAnimPresenter functions

* Fix location of anim function

* fix
2024-04-24 15:51:28 +02:00
Christian Semmler
b789a15d0b
Implement/match LegoAnimPresenter::FUN_1006b900 () 2024-04-24 14:51:20 +02:00
Christian Semmler
67c9736953
Implement/match LegoAnimPresenter::FUN_1006afc0 ()
* Implement/match LegoAnimPresenter::FUN_1006afc0

* empty
2024-04-24 14:24:59 +02:00
Christian Semmler
9025d5ed06
Implement/match LegoWorld::FUN_1001fda0 () 2024-04-23 10:33:38 +02:00
Christian Semmler
7efbb04999
Implement/match LegoAnimPresenter::FUN_1006ab70 () 2024-04-23 10:03:10 +02:00
Christian Semmler
c01fd9b260
Implement/match LegoAnimPresenter::EndAction () 2024-04-22 15:42:52 +02:00
Christian Semmler
b4f29ea6b0
InvokeAction: take const atom () 2024-04-22 14:24:00 +02:00
Christian Semmler
f1688be263
Make NotificationManager::Send take a const reference to notification ()
* 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 () 2024-04-21 16:41:38 +02:00
Christian Semmler
c9db98c4c3
Fix writing/reading of game state ()
* 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 ()
* 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 () 2024-04-20 18:33:10 +02:00
Christian Semmler
b39ea845b0
Implement/match LegoAnimMMPresenter::FUN_1004b610 and FUN_1004b6b0 () 2024-04-20 18:24:09 +02:00
Christian Semmler
a3bd98a04d
Implement/match LegoAnimMMPresenter::FUN_1004b5b0 () 2024-04-20 18:03:42 +02:00
Christian Semmler
3cab989250
Implement/match LegoAnimMMPresenter::FUN_1004b580 () 2024-04-20 17:52:46 +02:00
Christian Semmler
f637dcaa29
Implement/match LegoAnimMMPresenter::FUN_1004b530 () 2024-04-20 17:40:23 +02:00
Christian Semmler
91d043a9ae
Implement/match LegoAnimMMPresenter::FUN_1004b450 () 2024-04-20 17:18:19 +02:00
Christian Semmler
c617139d5b
Implement/match LegoAnimMMPresenter::EndAction ()
* 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 () 2024-04-20 16:24:12 +02:00
Christian Semmler
9cc5df8c40
Implement/match LegoAnimMMPresenter::StartingTickle () 2024-04-20 16:07:58 +02:00
Christian Semmler
0b08b0ae69
Implement/match LegoAnimMMPresenter::ReadyTickle () 2024-04-20 15:52:10 +02:00
Christian Semmler
5021f66de2
Imlpement/match LegoAnimMMPresenter::ParseExtra and related ()
* Imlpement/match LegoAnimMMPresenter::ParseExtra and related

* sort
2024-04-20 15:32:10 +02:00
MS
2ce9ff06fc
Enable some multiple-inheritance vtables () 2024-04-19 16:23:36 -04:00
Christian Semmler
d5dd8db46e
Implement LegoAnimationManager::FUN_100609f0 / LegoTranInfo ()
* Implement LegoAnimationManager::FUN_100609f0 / LegoTranInfo

* use NULL
2024-04-19 17:42:28 +02:00
Christian Semmler
fb0f35188b
Implement/match LegoCharacterManager::FUN_10083c30 () 2024-04-19 14:30:36 +02:00
Christian Semmler
e7aec124a2
Implement/match LegoPhonemePresenter::EndAction () 2024-04-17 17:03:17 +02:00
Christian Semmler
97b502362d
Implement/match LegoTextureInfo::FUN_10066010 () 2024-04-17 16:05:51 +02:00
Christian Semmler
06fadd922e
Implement/match LegoROI/LegoLOD::GetTexture ()
* Implement/match LegoROI/LegoLOD::GetTexture

* Remove explicit truth tests

* LegoTextureContainer::AddToList fix

* Revert "Remove explicit truth tests"

This reverts commit d169349bd61294e3cf4d645ac59244b48fb95867.
2024-04-17 15:18:34 +02:00
Christian Semmler
a64bb4d460
Implement/match LegoCharacterManager::FUN_100849a0 () 2024-04-17 13:52:59 +02:00
Christian Semmler
11410890cd
Implement/match LegoPhonemePresenter::LoadFrame & PutFrame ()
* Implement/match LegoPhonemePresenter::LoadFrame & PutFrame

* add beta10 annotations
2024-04-17 13:26:11 +02:00
Nathan M Gilbert
d639eb4c2b
Implement LegoPathActor::Vtable0x6c ()
* 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
Christian Semmler
2600b1b421
Implement/match LegoPhonemePresenter::StartingTickle ()
* Implement/match LegoPhonemePresenter::StartingTickle

* Name vars

* Fix name
2024-04-16 16:07:13 +02:00
Nathan M Gilbert
41281dcbec
Implement LegoPathActor::VTable0x70 ()
* 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 () 2024-04-15 14:42:25 -04:00
Nathan M Gilbert
dcbad318e0
Implement/Match LegoPathActor::VTable0x74 ()
* 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 () 2024-04-14 16:23:32 -04:00
Misha
69b250e40c
implement FUN_1003e050 ()
* 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 ()
* 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 () 2024-04-13 17:42:05 -04:00
Christian Semmler
54421ebcdf
Implement/match LegoAnimPresenter::FUN_1006b9a0 () 2024-04-13 18:05:43 +02:00
Christian Semmler
67127e2515
Implement/match LegoAnimPresenter::PutFrame ()
* Implement/match LegoAnimPresenter::PutFrame

* compat mode
2024-04-13 17:59:16 +02:00
Christian Semmler
d469cabd6b
Implement/match LegoAnimPresenter::FUN_1006abb0 () 2024-04-13 16:35:55 +02:00
Christian Semmler
93257a7c8c
Implement/match LegoAnimPresenter::FUN_1006c8a0 () 2024-04-13 16:11:24 +02:00
Christian Semmler
4502737fe2
Implement/match LegoAnimPresenter::FUN_100699e0 () 2024-04-13 16:02:55 +02:00
Christian Semmler
e43749c8bb
Implement/match LegoAnimPresenter::FUN_10069b10 () 2024-04-13 15:55:26 +02:00
Christian Semmler
f5e81777bc
Implement LegoAnimPresenter::FUN_1006a3c0 () 2024-04-13 14:57:18 +02:00
Nathan M Gilbert
e8b61d5a1d
Implement LegoPathActor::Vtable0x84 ()
* 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 () 2024-04-12 17:53:22 +02:00
Misha
4374891ac8
Implement IslePathActor::VTable0xe0 & VTable0xec ()
* Implement IslePathActor::VTable0xe0 & VTable0xec

* Revert random change
2024-04-12 07:02:32 -04:00
Joshua Peisach
8cbb094b75
IsleActor::Create, IsleActor::Notify ()
* 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 ()
* 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 ()
* 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 ()
* 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 () 2024-04-07 14:36:58 +02:00
Nathan M Gilbert
b394770864
Implement PathActor VTable0x80 and PathActorStruct FUN_1009a140 ()
* 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 () 2024-04-06 21:16:35 +02:00
Christian Semmler
f30ed0212b
Implement/match LegoEntity::Notify () 2024-04-06 19:59:38 +02:00
Joshua Peisach
fc91da8666
More gasstation functions ()
* 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
4795eac37c
Implement LegoCharacterManager::FUN_10083db0 () 2024-04-06 18:11:13 +02:00
Christian Semmler
3bafe2d3a4
Implement/match LegoCharacterManager::FUN_10083f10 ()
* Implement LegoCharacterManager::FUN_10083f10

* style

* Match

* Fix naming
2024-04-06 17:46:40 +02:00
Christian Semmler
75dc04f40a
Implement/match LegoCharacterManager::FUN_10084cf0 ()
* Implement/match LegoCharacterManager::FUN_10084cf0

* Compat mode for iterator
2024-04-06 14:08:38 +02:00
Joshua Peisach
4e74747451
GasStation::ReadyWorld ()
* Start GasStation::ReadyWorld

* fixes (up to 69.43%)

* what is this file and how did it get here

* don't hardcode (likely) action id

* Match FUN_10005590 (non-inlined version of PlayAction?)

* fixes (75.07%)

* Fixes (77.87%)

* style

* fix

* style

* style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-06 13:48:09 +02:00
Nathan M Gilbert
14cb3e621a
Implement/Match LegoPathActor ctor ()
* Implement/Match LegoPathActor ctor

* style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-06 12:49:22 +02:00
Nathan M Gilbert
6450774aa7
Implement/Match LegoExtraActor::VTable0xc4 ()
* Implement/Match LegoExtraActor::VTable0xc4

* Style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-05 17:20:30 +02:00
Christian Semmler
c9ce9b56bb
Implement/match LegoCharacterManager::FUN_10084ec0 ()
* Implement LegoCharacterManager::FUN_10084ec0

* Match

* Match CreateROI

* Match

* Improve match
2024-04-05 15:57:20 +02:00
Nathan M Gilbert
32f1621ec7
Implement LegoExtraActor::VTable0x70 ()
* Implement LegoExtraActor::VTable0x70

* whitespace

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-05 12:56:31 +02:00
Nathan M Gilbert
a8eebe454e
Implement/match LegoExtraActor:: WaitForAnimation, Restart ()
* Implement/match LegoExtraActor:: WaitForAnimation, Restart

* whitespace

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-04 12:26:03 +02:00
Christian Semmler
8225a38a01
Implement/match LegoCharacterManager::FUN_10085870 () 2024-04-02 14:04:17 +02:00
Christian Semmler
60388c8c5d
Implement/match LegoCharacterManager::FUN_10085210 ()
* 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
Nathan M Gilbert
a956b19ac6
Fix some names ()
* Fix some names

* reorder unit in CMake

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-31 15:09:51 +02:00
Nathan M Gilbert
3839b3278c
Implement/match LegoExtraActor::VTable0x94 ()
* Implement/match LegoExtraActor::VTable0x94

* attempt to fix gcc

* WIP fixes

* Match

* Match

* Match

* add TODO

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-30 12:18:15 -04:00
Christian Semmler
ed9e9efdab
Implement/match LegoBackgroundColor::SetLightColor and related () 2024-03-29 21:50:00 +01:00
Christian Semmler
369f3fba22
Implement SetLightPosition and related ()
* 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 () 2024-03-29 19:34:50 +01:00
Joshua Peisach
92357d77e1
Most entities with VTable0x50 function overrides ()
* BeachHouseEntity::VTable0x50

* GasStationEntity::VTable0x50

* RaceStandsEntity::VTable0x50

* Run clang-format

* Fix use of NULL

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-29 19:11:48 +01:00
Joshua Peisach
87f633af54
InfoCenterEntity::VTable0x50 implementation ()
* Start InfoCenterEntity::VTable0x50 implementation

* Fully implement InfoCenterEntity::VTable0x50

* Fix function name typo

* match

* fix style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-29 19:09:53 +01:00
Ramen2X
2c57e33ce5
implement/match LegoAnimationManager::DeleteAnimations() () 2024-03-29 14:09:46 -04:00
Christian Semmler
ed1a25a636
Implement/match LegoCharacterManager GetActor/Exists, fix loops () 2024-03-29 13:30:46 -04:00
Christian Semmler
e260a407ba
Implement/match LegoCharacterManager::GetRefCount () 2024-03-29 13:30:31 -04:00
Ramen2X
7431d9d650
implement/match LegoAnimationManager::FindVehicle() () 2024-03-29 11:50:16 -04:00
Christian Semmler
bfc2b76a61
Implement/match LegoCharacterManager::FUN_100832a0 () 2024-03-29 15:41:12 +01:00
Ramen2X
5e10e01014
implement/match ReadNamedTexture() () 2024-03-28 17:03:51 -04:00
MS
e4570b520b
Define g_characters ()
* Define g_characters

* Update with known struct types
2024-03-28 19:15:39 +01:00
Ramen2X
f157f01f71
implement/match UpdateLightPosition() () 2024-03-28 10:27:44 -04:00
Nathan M Gilbert
13d994a1ee
Implement LegoExtraActor:: VTable0xa4 & FUN_1002aae0 ()
* Implement LegoExtraActor:: VTable0xa4 & FUN_1002aae0

* Match LegoExtraActor::FUN_1002aae0

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-28 14:19:32 +01:00
Ramen2X
97ebb22c42
implement/match FUN_1003ef60() () 2024-03-27 15:46:03 -04:00
Nathan M Gilbert
38cfad8b17
Implement LegoExtraActor::VTable0x90 ()
* Implement LegoExtraActor::VTable0x90

* Improve LegoExtraActor::VTable0x90

* Match

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-27 20:38:13 +01:00
Ramen2X
1cf60ccda6
implement/match HospitalEntity::VTable0x50() () 2024-03-27 12:12:20 -04:00
Nathan M Gilbert
483b3a5ab7
ExtraActor ctor/dtor () 2024-03-27 16:53:38 +01:00
Nathan M Gilbert
32bc6c4264
Implement ExtraActor vftable and passthrough methods ()
* Implement ExtraActor vftable and passthrough methods

* Remove unused param names
2024-03-26 19:24:01 -04:00
Ramen2X
4e9dbfe331
implement HospitalState::VTable0x1c() () 2024-03-26 18:25:41 -04:00
Nathan M Gilbert
1e3ca11886
Implement/match LegoAnimActor ()
* 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() () 2024-03-25 14:34:28 -04:00
Ramen2X
77b5f1338c
label some hospital members () 2024-03-25 11:59:24 -04:00
Christian Semmler
0ed9f37587
Match LegoPointOfViewController::Tickle () 2024-03-25 15:00:59 +01:00
Joshua Peisach
2261f7f039
IslePathActor: implement notify, remove usage of this keyword () 2024-03-25 12:43:03 +01:00
Christian Semmler
0aa8d54990
Revert "Match LegoNavController::CalculateNewPosDir & LegoNavController::CalculateNewTargetVel ()"
This reverts commit 6464486800.
2024-03-25 06:01:50 -04:00
Misha
6464486800
Match LegoNavController::CalculateNewPosDir & LegoNavController::CalculateNewTargetVel () 2024-03-24 21:16:49 -04:00
Misha
2e5d54c03e
Finish LegoPathPresenter ()
* Finish LegoPathPresenter

* Update legopathcontroller.cpp

* Fixes

* fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-24 22:30:04 +01:00
Joshua Peisach
3f6f59852f
Ambulance::Create, dtor ()
* 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
Joshua Peisach
313bd9ffd0
PoliceEntity::VTable0x50 ()
* PoliceEntity::VTable0x50

* fix

* don't hardcode Isle world object id

* style

---------

Co-authored-by: Ramen2X <rmn@legoisland.org>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-24 22:26:55 +01:00
Misha
b66e28ac5e
implement a few legonavcontroller functions ()
* implement a few legonavcontroller functions

* Match LegoNavController::ProcessJoystickInput

* Style

* Match LegoNavController::ProcessKeyboardInput

* Style

* Fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-24 15:30:12 +01:00
Misha
b279e8b8b9
Begin LegoNavController::Notify ()
* 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
8b43e940f8
Implement/match LegoCameraController::FUN_100123e0 () 2024-03-23 18:46:27 +01:00
Christian Semmler
0391b5b42a
Replace more magic numbers with script values ()
* Replace more magic numbers with script values

* Matches/fixes

* Make const
2024-03-23 18:06:31 +01:00
Christian Semmler
18377c2f1f
Implement/match LegoNavController::UpdateCameraLocation ()
* Implement/match LegoNavController::UpdateCameraLocation

* Add size assert
2024-03-23 17:10:12 +01:00
Nathan M Gilbert
8b21e8136e
Animmanager ()
* 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. ()
* 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 608985cd73856598b95c15aed9f8f022645e9e7a.

* Fix copy/paste error

* Remove stale comment.

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-22 21:30:58 -04:00
Ramen2X
96f7219811
implement/match Hospital::HandleButtonDown() () 2024-03-22 17:27:22 -04:00
Christian Semmler
68bb20f04f
Implement LegoCharacterManager::CreateROI ()
* 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
Ramen2X
8cffa7cf8c
implement Hospital::HandleClick() ()
* implement Hospital::HandleClick()

* style

* style
2024-03-21 13:27:51 -04:00
Misha
9256554406
Implement LegoCameraController::Notify & TimeROI::FUN_100a9b40 ()
* Implement LegoCameraController::Notify & TimeROI::FUN_100a9b40

* Fixes/matches

* Style

* Fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-21 15:39:23 +01:00
Ramen2X
770da22a1d
implement/match Hospital::HandleEndAction() ()
* implement Hospital::HandleEndAction()

* don't compare m_unk0x128 against char

* fix gotos

* match
2024-03-20 19:19:08 -04:00
Misha
3ce1e4985e
begin LegoAnimMMPresenter () 2024-03-20 22:11:40 +01:00
Misha
e5fa35fd99
Implement a few registrationbook methods ()
* Implement a few registrationbook methods

* Match RegistrationBook::HandleKeyPress

* Match RegistrationBook::CreateSurface

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-20 17:26:10 +01:00
Misha
556c7698d8
implement RemoveFromCurrentWorld ()
* implement RemoveFromCurrentWorld

* Replace magic values

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 21:07:07 +01:00
Ramen2X
2477b89e32
add actions forward decl header ()
* add actions forward decl header

* newline

* format

* remove existing fwd declares

* Headers

* replace COMPAT_MODE check

* flip

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 15:54:13 -04:00
Misha
eaa935f646
Finish LegoVariables class ()
* 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 ()
* Implement LegoCharacterManager::GetROI

* Add TODO
2024-03-19 19:23:34 +01:00
Misha
277957f0d5
implement misc presenter functions ()
* implement misc presenter functions

* style/spacing

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 16:07:11 +01:00
Misha
fd1b371864
Implement a few LegoBackgroundColor functions ()
* 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 ()
* 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 () 2024-03-19 07:45:29 -04:00
Christian Semmler
52d74647be
Implement/match Isle::HandleEndAction and Isle::HandleElevatorEndAction ()
* WIP

* Match
2024-03-18 15:00:58 -04:00
Christian Semmler
d96679ea9e
Implement/match Isle::HandleClick ()
* Isle::HandleClick

* WIP

* Match
2024-03-18 17:31:22 +01:00
Ramen2X
44f49a7a57
implement/match Hospital::HandleKeyPress() () 2024-03-18 12:23:19 -04:00
Christian Semmler
e1135d9c1d
Use script values from enum for clicked objects () 2024-03-18 16:05:05 +01:00
Christian Semmler
ba5bc46c0c
Implement/match FUN_10032620 () 2024-03-18 15:38:02 +01:00
Ramen2X
937a45020c
refactor action headers () 2024-03-17 16:52:42 -04:00
Misha
b38a2a4980
implement RegistrationBook::HandleClick ()
* implement RegistrationBook::HandleClick

* fix build

* Style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-17 19:58:27 +01:00
Christian Semmler
0fe3fa65aa
Implement/match Isle::FUN_10032d30 () 2024-03-17 18:26:41 +01:00
Christian Semmler
5b8f515968
Implement/match Isle::HandleTransitionEnd ()
* 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
Ramen2X
4197e3c326
implement Hospital::ReadyWorld() () 2024-03-16 17:02:05 -04:00
Christian Semmler
0a4db65b24
Implement/match Isle::Enable ()
* Implement/match Isle::Enable

* Fix order
2024-03-16 19:20:44 +01:00
Christian Semmler
70e8796af3
Implement/match LegoEntity::VTable0x3c () 2024-03-16 03:20:44 +01:00
Ramen2X
bf6765b575
fix dupes in action headers () 2024-03-16 02:43:56 +01:00
Ramen2X
6cd5ffcf1a
implement RegistrationBook::ReadyWorld(), impl/match MxDisplaySurface::CopySurface() ()
* implement RegistrationBook::ReadyWorld()

* don't fix the size of letterBuffer

* Fix crash in MxStillPresenter::Clone

* Implement MxDisplaySurface::CopySurface

100% match

* improve accuracy

* invert HasRegistered check

* fix legogamestate structure, documentation tweaks

* this might be cleaner actually

* Update mxdisplaysurface.cpp

* Update legogamestate.h

* don't hardcode action ids in VTable0x64

* Match ~98%

---------

Co-authored-by: Misha <106913236+MishaProductions@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-16 02:32:06 +01:00
Nathan M Gilbert
d07d7edc81
Implement methods to load dta files. ()
* 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
4ddd9e200c
implement/match Hospital::Tickle() () 2024-03-15 19:16:43 -04:00
Christian Semmler
10ae05a888
Add missing size assert 2024-03-15 16:35:28 +01:00
Christian Semmler
0e146f08d6
Implement/match LegoNavController::CalculateNewPosDir ()
* Implement/match LegoNavController::CalculateNewPosDir

* Fix naming

* Fix naming
2024-03-15 16:33:32 +01:00
Christian Semmler
7edad07d18
Implement/match LegoEntity::GetWorldPosition/Direction/Up ()
* Implement/match LegoEntity::GetPosition/Direction/Up

* Rename
2024-03-13 20:29:28 -04:00
Ramen2X
aaee10949e
implement Hospital::Notify(), Enable(), VTable0x64() ()
* implement Hospital::Notify(), Enable(), VTable0x64()

* function order

* Fix HandleClick

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-13 16:32:20 -04:00
Ramen2X
a9a564b25e
implement/match Hospital::~Hospital() () 2024-03-13 15:10:53 -04:00
Christian Semmler
0f2aee1849
Implement/match LegoPointOfViewController::SetEntity ()
* Implement/match LegoPointOfViewController::SetEntity

* Fix order
2024-03-13 19:03:30 +01:00
Christian Semmler
0623e6a766
Implement/match LegoPointOfViewController::Tickle () 2024-03-13 18:46:20 +01:00
Ramen2X
beb30e80ea
slight style tweaks to legogamestate and related members () 2024-03-13 13:17:20 -04:00
Ramen2X
4aafc435f5
implement/match Hospital::Create() () 2024-03-13 11:45:27 -04:00
Christian Semmler
06080b6492
Changes to GasStation::Create based on beta debug build ()
* Implement/match LegoAnimNodeData::FUN_100a0990

* Change GasStation::Create based on beta debug build
2024-03-13 16:38:38 +01:00
Christian Semmler
02838d0f57
Implement LegoAnimNodeData::GetRotation ()
* WIP

* Improve matches
2024-03-12 18:21:58 +01:00
MS
e3d7188ec9
Use AUTOLOCK macro ()
* 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() () 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() () 2024-03-11 17:33:43 -04:00
Ramen2X
6dfee432ea
rename MxTransitionManager transitions () 2024-03-11 04:57:58 -04:00
Ramen2X
c28c2aeb52
fix regressions () 2024-03-10 12:45:46 -04:00
Ramen2X
7fad763699
refactor script enum structure ()
* add autogenerated action headers

* refactor police

* refactor infocenter

* refactor jukebox

* refactor regbook

* format

* scope headers in namespaces instead

* attempt to dynamically build headers ignore list in ncc

* correct whitespace in naming.yml

* fix wrong folder

* fix accidental extra newline in cmakelists
2024-03-10 17:08:21 +01:00
Christian Semmler
d090b449d1
Add CalcWorldBoundingVolumes () 2024-03-10 15:29:16 +01:00
Christian Semmler
8069923651
Refactor files based on beta debug build ()
* 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
Christian Semmler
c62469fef4
Implement/match LegoPartPresenter::ReadyTickle ()
* Implement/match LegoPartPresenter::ReadyTickle

* Remove space
2024-03-09 19:11:34 +01:00
Christian Semmler
6fa4a0dbec
Implement/match LegoPartPresenter::Store () 2024-03-09 19:03:21 +01:00
Christian Semmler
9f875d01e5
Implement/match LegoPartPresenter::Read ()
* WIP

* Match

* Remove TODO

* Fix
2024-03-09 18:27:53 +01:00
Christian Semmler
9e2f37e7ca
Implement LegoTexturePresenter::Read and Store ()
* LegoTexturePresenter::Read

* Implement LegoTexturePresenter::Store

* Rename

* Fix naming
2024-03-09 16:49:13 +01:00
Christian Semmler
fb800db862
Implement OrientableROI::FUN_100a46b0 ()
* Implement OrientableROI::FUN_100a46b0

* Fix
2024-03-09 03:52:42 +01:00
Christian Semmler
a12146f52f
Implement/match LegoEntity::VTable0x34 ()
* Implement/match LegoEntity::VTable0x34

* Change parameter name

* Fix order
2024-03-06 20:12:20 +01:00
Christian Semmler
71bcd4c771
Implement/match LegoEntity::SetWorldTransform and ResetWorldTransform ()
* Implement/match LegoEntity::SetWorldTransform and ResetWorldTransform

* Add param name
2024-03-06 19:25:45 +01:00
Misha
3897e9c015
Add JailEntity class ()
* Add JailEntity class

* Update legoobjectfactory.h

* Update jailentity.h

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-05 16:05:38 -05:00
Christian Semmler
a93e2ae0d3
Implement/match LegoEntity::SetLocation ()
* Implement/match LegoEntity::SetLocation

* Remove comment
2024-03-05 20:31:57 +01:00
Christian Semmler
3b2bd0e9d4
Implement/match LegoEntity::SetROI () 2024-03-05 19:35:28 +01:00
Christian Semmler
f6e44b1c1b
Implement LegoROI::Read and geom library ()
* Implement LegoROI::Read and geom library

* Match

* Match

* Fixes

* Fix
2024-03-05 18:38:53 +01:00
MS
ec1fcce08c
Data comparison tool ()
* Parse cvdump TYPES section. Add datacmp tool.

* Corrections

* Use static

* Revert "Use static"

This reverts commit e0a4324e004e83565a9880e457c588ed0cf71931.

* Handle partially initialized variable

* Shuffle order of legounksavedatawriter

* Revert "Shuffle order of legounksavedatawriter"

This reverts commit 506e06f1174739fdbfade73e29b9ce4eac44b06c.

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-05 09:45:09 +01:00
Christian Semmler
c9210c02fb
Bootstrap LegoLOD, implement/match ViewManager::FUN_100a66a0 ()
* Bootstrap LegoLOD, implement/match ViewManager::FUN_100a66a0

* Fixes

* Try fix

* Try this

* Fix
2024-03-04 22:57:35 +01:00
Christian Semmler
b8aa16ff80
Implement/match ViewManager::Remove () 2024-03-04 22:06:40 +01:00
Christian Semmler
d3b575169e
Implement/match LegoModelPresenter::FUN_1007ff70 () 2024-03-04 18:26:36 +01:00
Misha
c2a46b058b
implement various LegoWorldPresenter functions ()
* implement LegoWorldPresenterFunctions

* fix typo

* Fixes/match

* Fix

* Match

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-03 20:34:55 -05:00
Christian Semmler
01f07a323c
Implement ModelDb (WDB reader/parser) ()
* WIP Read WDB

* Fixes

* WIP

* WIP

* WIP

* WIP

* Match

* Match

* Fix Compare

* Rename member
2024-03-03 21:35:56 +01:00
Misha
a6cf0b5856
implement BuildingEntity functions ()
* implement BuildingEntity functions

* fix build

* Update infocenterentity.h
2024-03-02 17:11:03 -05:00
Christian Semmler
de5cd98b76
Implement/match ViewManager::RemoveAll ()
* Implement/match ViewManager::RemoveAll

* Use const_iterator

* const

* Naming
2024-03-02 20:26:19 +01:00
Christian Semmler
6de17cf1b6
Implement/match some ViewManager functions () 2024-03-02 19:40:42 +01:00
Christian Semmler
baacb42bfb
Improve match of LegoVideoManager::Create () 2024-03-01 22:46:28 +01:00
Christian Semmler
0067c24ead
Implement/match ViewLODListManager::Create ()
* Implement/match ViewLODListManager::Create

* Add stdio.h header

* Add remaining annotations
2024-03-01 22:32:10 +01:00
Christian Semmler
fb6eed9bff
Match StartAction functions, remove NextFragment () 2024-03-01 19:07:07 +01:00
Christian Semmler
49d6c88912
Match ParseExtra functions ()
* Match ParseExtra functions

* Match MxStillPresenter::ParseExtra

* Match remaining ParseExtra functions
2024-02-29 19:15:20 +01:00
Christian Semmler
f3f29e5536
Allow game to start 2024-02-28 15:09:08 -05:00
Nathan M Gilbert
0e7823cedd
LegoGameState player functions ()
* LegoGameState player functions

* Style

* use sizeof

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-28 21:03:27 +01:00
Nathan M Gilbert
4d84157888
Implement Save, Load, DeleteState ()
* Implement Save, Load, DeleteState

* WIP

* WIP

* Match LegoGameState::Save

* Spacing

* Match LegoGameState::DeleteState()

* More match

* Match

* Move vars

* Other fixes

* Rename

* Fix error

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-27 21:04:17 +01:00
Christian Semmler
c0a988b0fe
Implement/match LegoAnimPresenter::StartingTickle ()
* Implement/match LegoAnimPresenter::StartingTickle

* Fix vtable

* Fix vtable
2024-02-27 17:49:31 +01:00
Christian Semmler
68893d67ed
Implement/match LegoAnimPresenter::FUN_10069150 () 2024-02-27 16:13:00 +01:00
Christian Semmler
60161c43b5
Implement/match LegoAnimPresenter::FUN_100698b0 ()
* Implement/match LegoAnimPresenter::FUN_100698b0

* Use const_iterator
2024-02-26 19:39:03 +01:00
Christian Semmler
e6c347b8ab
Implement/match LegoAnimPresenter::FUN_100697c0 ()
* Implement/match LegoAnimPresenter::FUN_100697c0

* Use LegoU32
2024-02-26 18:41:18 +01:00
Nathan M Gilbert
124b73046b
Continued work on LegoGameState ()
* Continued work on LegoGameState

* Fixes/matches/refactor

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-26 17:19:16 +01:00
Joshua Peisach
b524b47723
jukebox functions ()
* start jukebox functions

* JukeBox::notify

* implement remaining functions/fixes

* Fixes/matches

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-26 16:12:14 +01:00
Christian Semmler
c5318dca13
Implement/match LegoAnimPresenter::FUN_100695c0 () 2024-02-25 18:55:57 +01:00
Christian Semmler
96c98cec3d
Implement LegoAnimPresenter::FUN_100692b0 ()
* Implement LegoAnimPresenter::FUN_100692b0

* Match
2024-02-25 18:04:30 +01:00
Christian Semmler
377eebb610
Minor style/naming fixes () 2024-02-25 15:14:39 +01:00
Christian Semmler
b281866ea6
Implement/match LegoModelPresenter::CreateROI ()
* Implement/match LegoModelPresenter::CreateROI

* Match

* Use inline function

* Note about Get()
2024-02-24 17:48:16 +01:00
Nathan M Gilbert
13fc4e3285
LegoGameState::SwitchArea () 2024-02-24 14:55:00 +01:00
Christian Semmler
9d0ff0425c
Implement LegoTextureContainer::Insert ()
* WIP

* Fix

* Fix

* Match

* Match
2024-02-23 18:54:45 +01:00
Joshua Peisach
51520aaae6
LegoActor: destructor, SetROI ()
* LegoActor: destructor, SetROI

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-23 18:51:49 +01:00
Christian Semmler
6b1c75ab5a
Refactor LegoContainer ()
* Refactor LegoContainer

* Fix name

* Fix build

* Refactor some includes

* Update STL compat

* Fix

* Fix annotations
2024-02-23 16:06:16 +01:00
Christian Semmler
9d8820ee06
Implement TextureData::Create ()
* Implement TextureData::Create

* Fix names

* Rename

* Fix name

* Fix annotation

* Add missing annotation

* Fix annotation

* More annotation fixes

* Compat template type ambiguity

* Fix
2024-02-22 16:59:44 -05:00
MS
761b120aee
CustomizeAnimFile MxVariable ()
* CustomizeAnimFile MxVariable

* Fixes

* Remove returns

* Add size asserts

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-21 21:30:02 +01:00
Christian Semmler
21f80c825a
Fix unsigned/signed 2024-02-19 09:35:20 -05:00
Nathan M Gilbert
cc1bc148d0
Implement HistoryBook::ReadyWorld ()
* Implement HistoryBook::ReadyWorld

* Fix names and annotations

* WIP improvements

* Remove unnecessary padding/pack

* Remove packing

* Style

* Use countof

* Fix signed

* Fixes

* Remove duplicate annotation

* Rename

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-19 15:24:30 +01:00
Christian Semmler
58482ff676
Bootstrap anim.lib ()
* Bootstrap anim.lib

* Fix order

* Fix LegoMorphKey
2024-02-18 18:43:42 +01:00
Joshua Peisach
35a566c243
Bike::Create, Bike::VTable0xe4 ()
* Bike::Create, Bike::VTable0xe4

* Readability

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-17 20:26:29 +01:00
Joshua Peisach
4a7ab43b45
Main HistoryBook function implementations ()
* Main HistoryBook function implementations

* fix names
2024-02-17 20:04:48 +01:00
Joshua Peisach
d71987b369
implement GasStation::Notify ()
* implement GasStation::Notify

* Fix code

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-17 18:23:09 +01:00
Christian Semmler
1d189b013d
Rename MxDSSubscriber functions () 2024-02-17 16:35:10 +01:00
Christian Semmler
332d8da695
Fix LegoROI / add TimeROI ()
* Fix LegoROI / add TimeROI

* Fix order

* Remove extra fwd decl
2024-02-17 16:07:34 +01:00
Christian Semmler
b47412183b
Implement/match LegoOmni::GetScriptIndex ()
* Implement/match LegoOmni::GetScriptIndex

* Fix type

* Fix
2024-02-17 02:10:42 +01:00
Christian Semmler
c67f613b8d
Implement/match LegoOmni::FindROI and related ()
* Implement/match LegoOmni::FindROI and related

* Add missing file
2024-02-17 01:34:30 +01:00
Christian Semmler
5b06054375
Implement/match RegisterPaths () 2024-02-17 00:25:32 +01:00
MS
ad3a1de055
Match more scalar deleting destructors () 2024-02-16 13:15:53 -05:00
Christian Semmler
9bc5890da6
Implement/match LegoOmni::RegisterScripts ()
* Implement/match LegoOmni::RegisterScripts

* Fix const
2024-02-16 18:12:45 +01:00
Joshua Peisach
efcb3cac2a
Police: HandleClick ()
* Police: HandleClick

* Spacing

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-16 15:53:17 +01:00
Joshua Peisach
91643d59ba
PoliceState: Create script enum + implement FUN_1005ea40 ()
* PoliceState: Create script enum + implement FUN_1005ea40

* Clean up code

* Match

* Match

* Fix type

* Fix error

* Remove return

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-15 17:22:58 +01:00
Nathan M Gilbert
271df035fd
Implement/Match JukeboxEntity ()
* Implement/Match JukeboxEntity

* Style/naming

* Style/naming

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-14 17:48:39 +01:00
MS
1b696e4bd8
reccmp: Unique addresses and stub reporting () 2024-02-13 20:25:51 -05:00
Joshua Peisach
eb3b339454
GasStation destructor, enable, create ()
* GasStation destructor, enable, create

* Fixes

* Remove comment

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-14 00:40:04 +01:00
MS
971ac8b6e7
LegoCacheSound and related STL ()
* LegoCacheSound and related STL

* Changes/annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-14 00:34:14 +01:00
Misha
6d3ce3b5cb
implement RegistrationBook::Notify ()
* implement RegistrationBook::Notify

* Update registrationbook.cpp

* Fixes

* Change type

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-11 17:16:10 -05:00
Christian Semmler
5bba81c0ca
Rename Infocenterstate::m_buffer to m_letters ()
* Rename Infocenterstate::m_buffer

* Rename function

* Fix

* Fix

* Rename function

* Rename function

* Rename function
2024-02-11 10:44:55 -05:00
Misha
5233b48c59
Implement LegoModelPresenter::ParseExtra ()
* Implement LegoModelPresenter::ParseExtra

* rename function according to leaked source code

* Minor improvement

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-11 15:03:56 +01:00
Christian Semmler
a29c0aca3f
Implement/match LegoOmni::Create ()
* Implement/match LegoOmni::Create

* Fix var

* Rename

* Fix style
2024-02-11 02:52:16 +01:00
Misha
8786a5b44a
Add JetSkiRace vtable and CaveEntity classes from LegoObjectFactory ()
* Add JetSkiRace vtable

* Fix vtable

* Fixes

* Update jetskirace.cpp

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-11 00:44:00 +01:00
Christian Semmler
e42e0d1ca2
Replace more magic numbers 2024-02-09 07:10:47 -05:00
Christian Semmler
c8930815c5
Add LegoGameState::Area enum ()
* Add area enum

* Fix

* Fix

* Fix

* empty
2024-02-10 19:17:07 +01:00
Misha
0463d48540
implement NotifyEntity ()
* implement NotifyEntity

* Fix/match

* Rename

* Fix style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-10 19:02:52 +01:00
Misha
f378b2e535
implement LegoWorldPresenter::ParseExtra () 2024-02-10 18:54:38 +01:00
Christian Semmler
27390e80c0
Name dialogue playlists ()
* Add names for dialogue playlists

* Rename remaining playlists

* Revert bogus
2024-02-10 17:51:56 +01:00
Christian Semmler
ec3bcaf9bf
Introduce and use enum for acts ()
* Introduce and use enum for acts

* Use enum in Helicopter

* Revert change
2024-02-10 17:37:22 +01:00
Misha
32681935ca
Partial implementation of LegoGameState::SwitchArea () 2024-02-10 15:36:01 +01:00
Misha
223b07ee3d
Implement LegoModelPresenter::ReadyTickle ()
* Implement LegoModelPresenter::ReadyTickle

* Update legoworld.h

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-10 00:41:35 +01:00
Nathan M Gilbert
84af3e2158
Match some names/values ()
* Match some names/values

* Fix mingw warning as error
2024-02-10 00:40:52 +01:00
Joshua Peisach
94c4576e8d
Implement Police::HandleEndAction ()
* Implement Police::HandleEndAction

* Style fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-09 16:28:22 +01:00
Christian Semmler
c17ef9a805
Implement rest of Infocenter::HandleClick () 2024-02-08 19:30:55 -05:00
Christian Semmler
897f9a3371
End LegoPhonemePresenter actions to prevent lockups 2024-02-06 17:53:35 -05:00