Commit graph

186 commits

Author SHA1 Message Date
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 d169349bd61294e3cf4d645ac59244b48fb95867.
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 608985cd73856598b95c15aed9f8f022645e9e7a.

* 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
Christian Semmler
9e2f37e7ca
Implement LegoTexturePresenter::Read and Store (#641)
* LegoTexturePresenter::Read

* Implement LegoTexturePresenter::Store

* Rename

* Fix naming
2024-03-09 16:49:13 +01:00
Christian Semmler
a12146f52f
Implement/match LegoEntity::VTable0x34 (#633)
* Implement/match LegoEntity::VTable0x34

* Change parameter name

* Fix order
2024-03-06 20:12:20 +01:00
Misha
3897e9c015
Add JailEntity class (#630)
* 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
f6e44b1c1b
Implement LegoROI::Read and geom library (#627)
* Implement LegoROI::Read and geom library

* Match

* Match

* Fixes

* Fix
2024-03-05 18:38:53 +01:00
Christian Semmler
fb6eed9bff
Match StartAction functions, remove NextFragment (#610) 2024-03-01 19:07:07 +01:00
Christian Semmler
49d6c88912
Match ParseExtra functions (#605)
* Match ParseExtra functions

* Match MxStillPresenter::ParseExtra

* Match remaining ParseExtra functions
2024-02-29 19:15:20 +01:00
Nathan M Gilbert
0e7823cedd
LegoGameState player functions (#603)
* 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 (#602)
* 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
68893d67ed
Implement/match LegoAnimPresenter::FUN_10069150 (#600) 2024-02-27 16:13:00 +01:00
Nathan M Gilbert
124b73046b
Continued work on LegoGameState (#596)
* Continued work on LegoGameState

* Fixes/matches/refactor

---------

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

* Match
2024-02-25 18:04:30 +01:00
Nathan M Gilbert
13fc4e3285
LegoGameState::SwitchArea (#590) 2024-02-24 14:55:00 +01:00
Christian Semmler
9d0ff0425c
Implement LegoTextureContainer::Insert (#589)
* WIP

* Fix

* Fix

* Match

* Match
2024-02-23 18:54:45 +01:00
Christian Semmler
6b1c75ab5a
Refactor LegoContainer (#587)
* 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 (#586)
* 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 (#584)
* CustomizeAnimFile MxVariable

* Fixes

* Remove returns

* Add size asserts

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-21 21:30:02 +01:00
Nathan M Gilbert
cc1bc148d0
Implement HistoryBook::ReadyWorld (#579)
* 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
1d189b013d
Rename MxDSSubscriber functions (#573) 2024-02-17 16:35:10 +01:00
Christian Semmler
332d8da695
Fix LegoROI / add TimeROI (#572)
* 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 (#571)
* Implement/match LegoOmni::GetScriptIndex

* Fix type

* Fix
2024-02-17 02:10:42 +01:00
MS
971ac8b6e7
LegoCacheSound and related STL (#560)
* LegoCacheSound and related STL

* Changes/annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-14 00:34:14 +01:00
Christian Semmler
5bba81c0ca
Rename Infocenterstate::m_buffer to m_letters (#558)
* 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 (#557)
* 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 (#556)
* 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 (#553)
* 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
c8930815c5
Add LegoGameState::Area enum (#552)
* Add area enum

* Fix

* Fix

* Fix

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

* Fix/match

* Rename

* Fix style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-10 19:02:52 +01:00
Christian Semmler
ec3bcaf9bf
Introduce and use enum for acts (#548)
* Introduce and use enum for acts

* Use enum in Helicopter

* Revert change
2024-02-10 17:37:22 +01:00