Commit graph

273 commits

Author SHA1 Message Date
Christian Semmler
1f360929cb
Implement/match Ambulance::Tickle (#1021) 2024-06-12 15:13:52 +02:00
Christian Semmler
c22c6f3379
Implement/match LegoFlcTexturePresenter (#1015)
* Implement/match LegoFlcTexturePresenter

* Move files
2024-06-10 17:44:55 +02:00
Mikhail Thompson
1c430f894d
Begin LegoRace class (#1014)
* Begin LegoRace

* Match functions

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-06-10 14:58:05 +02:00
Christian Semmler
9a9bccda0e
Implement/match IslePathActor::Exit (#997)
* Implement/match IslePathActor::Exit

* Name

* Name

* Partially fix vector interface

* Revert "Partially fix vector interface"

This reverts commit 6e7a1e2b08.

* Revert "Revert "Partially fix vector interface""

This reverts commit e3860e3c9f.

* Fix

* Remove some COMPAT_MODE
2024-06-06 17:45:37 +02:00
Christian Semmler
9b22642f0c
Implement/match LegoCharacterManager::SwitchColor (#996) 2024-06-06 14:26:33 +02:00
Christian Semmler
49c17c9c6a
Implement/match LegoEntity::SwitchSound / SwitchMove / SwitchColor / SwitchMood (#995)
* Implement/match LegoEntity::SwitchSound

* Name

* Name

* Implement/match LegoEntity::SwitchMove

* Mood
2024-06-05 19:40:44 +02:00
Christian Semmler
f6c923a84e
Implement/match LegoEntity::ClickAnimation (#994)
* Implement/match LegoEntity::VTable0x38

* Update names
2024-06-05 19:00:46 +02:00
Christian Semmler
6a9f68872b
Add enum for actor IDs (#993) 2024-06-05 18:11:46 +02:00
Christian Semmler
133a312aee
Consolidate state and building entity classes (#989) 2024-06-03 18:53:25 +02:00
Christian Semmler
73bb37596e
Refactor JukeBox, add enum for music (#988)
* Refactor JukeBox, add enum for music

* add BETA annotation

* Fix BETA annotation

* Fix BETA annotation

* Fix
2024-06-03 13:00:38 +02:00
Christian Semmler
1423eb56fc
Implement/match LegoSoundManager::UpdateListener (#985) 2024-06-01 23:13:57 +02:00
Christian Semmler
ac4e8da662
Implement/match Lego3DSound::SetDistance and Reset (#984) 2024-06-01 19:45:22 +02:00
Christian Semmler
23e5ad7d15
Name/rename functions in LegoCharacterManager (#982)
* Name/rename functions in LegoCharacterManager

* Name flag
2024-06-01 18:45:34 +02:00
Christian Semmler
df20b05510
Define cursor enum and custom cursor window message (#980)
* Define cursor enum and custom cursor window message

* Fix param name

* Remove unused header
2024-06-01 16:07:58 +02:00
DmitriLeon2000
3b3ac07cac
Rename LegoEdge::GetOpposingPoint to LegoEdge::CWVertex (#977) 2024-05-30 20:04:06 -04:00
Christian Semmler
eeb81b7223
Use USHRT_MAX instead of MAXWORD (#975) 2024-05-30 22:02:58 +02:00
Christian Semmler
650903d043
Implement/match Pizzeria::HandleClick (#971) 2024-05-30 15:54:24 +02:00
Christian Semmler
ae859fbc19
Implement/match LegoControlManager::FUN_100293c0 (#970) 2024-05-30 15:15:16 +02:00
Christian Semmler
b978787f8f
Implement/match LegoAnimationManager::FUN_10062e20 (#967) 2024-05-29 19:24:08 +02:00
Christian Semmler
2f1aa58153
Implement/match LegoAnimMMPresenter::FUN_1004b840 (#966) 2024-05-29 17:35:36 +02:00
Christian Semmler
36ec252f7e
Implement/match LegoAnimationManager::FUN_10063270 (#965) 2024-05-29 17:05:50 +02:00
Christian Semmler
f380fa3b84
Implement/match LegoAnimationManager::FUN_100648f0 (#954) 2024-05-25 17:18:24 +02:00
Christian Semmler
857c15ca11
Implement/match LegoAnimationManager::FUN_10063b90 (#953) 2024-05-25 16:40:10 +02:00
Christian Semmler
7c9fdd255e
Implement/match Isle::HandleType19Notification (#952)
* Implement/match Isle::HandleType19Notification

* Fix
2024-05-25 03:23:41 +02:00
Christian Semmler
e59d684f37
Implement/match actor Create functions (#949) 2024-05-24 14:44:09 -04:00
Christian Semmler
db90807d53
Implement/match LegoPathActor::ParseAction (#946)
* Implement/match LegoPathActor::ParseAction

* Fix naming

* Space
2024-05-24 19:07:45 +02:00
Christian Semmler
6774784b37
Implement/match LegoPathActor::VTable0xa4 and VTable0xa8 (#945)
* Implement/match LegoPathActor::VTable0xa4

* Implement/match LegoPathActor::VTable0xa8

* Name enum constants
2024-05-22 14:09:06 -04:00
Christian Semmler
8fee73c525
Implement/match LegoPathStruct (#944)
* Implement/match LegoPathStruct

* Rename some nums

* Consistent naming

* Naming

* relax regex

* Name some functions

* Improve naming

* Rename
2024-05-21 15:03:50 -04:00
Christian Semmler
fb16b2c896
Implement/match LegoPathBoundary::FUN_100575b0 (#939) 2024-05-19 21:41:07 +02:00
Cameron
d106aada11
basic name improvements (#930)
* basic name improvements

* clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-05-18 15:20:05 -04:00
Christian Semmler
73844f14fa
Implement/match LegoAnimationManager::FUN_10063fb0 (#936) 2024-05-18 21:05:45 +02:00
Christian Semmler
732de04433
Implement/match PlayCamAnim and CameraTriggerFire (#935)
* Implement/match PlayCamAnim and CameraTriggerFire

* Fix type

* Name var
2024-05-18 20:43:19 +02:00
Christian Semmler
c1c78cb8aa
Implement LegoAnimationManager::FUN_10064010 (#933) 2024-05-18 18:26:32 +02:00
Christian Semmler
aab6a17d2f
Implement/match LegoAnimationManager::FUN_10064120 (#932)
* Implement/match LegoAnimationManager::FUN_10064120

* Fix naming

* Fix parentheses
2024-05-18 17:48:07 +02:00
Christian Semmler
c92341527e
Implement/match FUN_1003ef00 and related (#931) 2024-05-18 03:42:21 +02:00
Christian Semmler
5fe0b7e0bb
Implement/matche LegoAnimationManager::FUN_10064740 and FUN_10064670 (#929) 2024-05-17 21:58:35 +02:00
Christian Semmler
710f07e632
Implement/match LegoAnimationManager::FUN_10064380 (#928)
* Implement/match LegoAnimationManager::FUN_10064380

* Fix naming

* Revert
2024-05-17 14:21:48 -04:00
Christian Semmler
ed782980ec
Implement/match LegoAnimationManager::FUN_10063d10 (#927) 2024-05-17 16:20:04 +02:00
Christian Semmler
02c4aad33e
Implement/match LegoAnimationManager::FUN_10064b50 (#926) 2024-05-17 16:05:06 +02:00
Christian Semmler
e4a899350e
Move strings to proper location in define.cpp (#922) 2024-05-14 16:43:06 +02:00
Christian Semmler
e32e06321a
Rename _countof to sizeOfArray (#921) 2024-05-14 16:35:22 +02:00
Christian Semmler
939c09139f
Match LegoOmni::Destroy and related (#917)
* Match LegoOmni::Destroy and related

* Write COMPAT_MODE macro differently

* fix lint issue
2024-05-14 14:13:27 +02:00
Christian Semmler
5f34d2e877
Implement/match LegoPathController::AddActor and RemoveActor (#915)
* Implement/match LegoPathController::AddActor and RemoveActor

* Fix types
2024-05-13 12:46:59 +02:00
Christian Semmler
5df947dbb9
Implement/match LegoPathController::FUN_10045c20 and LegoPathController ctor (#903)
* 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 (#902) 2024-05-11 14:13:27 +02:00
Christian Semmler
d9a82323ca
Implement/match LegoAnimationManager::AddExtra (#901)
* 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 (#900)
* 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 (#899) 2024-05-10 15:11:35 +02:00
Christian Semmler
172db7b5d8
Implement/match LegoAnimationManager::FUN_10062710 (#897) 2024-05-09 22:32:06 +02:00
Christian Semmler
556cbdaab3
Implement/match LegoAnimationManager::FUN_10062650 (#896)
* Implement/match LegoAnimationManager::FUN_10062650

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

* Name function
2024-05-09 21:53:13 +02:00
Christian Semmler
5629eb3c85
Implement/match LegoAnimationManager::FUN_100623a0 (#893) 2024-05-09 21:33:48 +02:00
Christian Semmler
001b46b2ab
Implement/match LegoAnimationManager::FUN_10062110 (#892)
* 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 (#891) 2024-05-09 16:30:34 +02:00
Christian Semmler
5c8249f334
Implement/match LegoAnimationManager::FUN_10061530 (#889) 2024-05-08 16:28:32 +02:00
Christian Semmler
05edf96186
Implement LegoAnimationManager::FUN_10061010 (#888) 2024-05-07 21:59:46 +02:00
Christian Semmler
bac891cb0c
Implement/match LegoAnimationManager::FUN_10060570 (#886) 2024-05-07 16:54:06 +02:00
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