Commit graph

486 commits

Author SHA1 Message Date
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
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
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
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
Joshua Peisach
4e74747451
GasStation::ReadyWorld (#765)
* 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 (#772)
* Implement/Match LegoPathActor ctor

* style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-06 12:49:22 +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
Nathan M Gilbert
32f1621ec7
Implement LegoExtraActor::VTable0x70 (#769)
* 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 (#768)
* Implement/match LegoExtraActor:: WaitForAnimation, Restart

* whitespace

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-04 12:26:03 +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
Nathan M Gilbert
a956b19ac6
Fix some names (#762)
* 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 (#759)
* 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 (#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
Joshua Peisach
92357d77e1
Most entities with VTable0x50 function overrides (#752)
* 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 (#725)
* 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() (#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
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
Nathan M Gilbert
13d994a1ee
Implement LegoExtraActor:: VTable0xa4 & FUN_1002aae0 (#742)
* 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
Nathan M Gilbert
38cfad8b17
Implement LegoExtraActor::VTable0x90 (#739)
* 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() (#738) 2024-03-27 12:12:20 -04:00
Nathan M Gilbert
483b3a5ab7
ExtraActor ctor/dtor (#737) 2024-03-27 16:53:38 +01:00
Nathan M Gilbert
32bc6c4264
Implement ExtraActor vftable and passthrough methods (#735)
* Implement ExtraActor vftable and passthrough methods

* Remove unused param names
2024-03-26 19:24:01 -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
77b5f1338c
label some hospital members (#728) 2024-03-25 11:59:24 -04:00
Misha
2e5d54c03e
Finish LegoPathPresenter (#721)
* 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 (#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
Joshua Peisach
313bd9ffd0
PoliceEntity::VTable0x50 (#720)
* 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 (#718)
* 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 (#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
8b43e940f8
Implement/match LegoCameraController::FUN_100123e0 (#715) 2024-03-23 18:46:27 +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
Christian Semmler
18377c2f1f
Implement/match LegoNavController::UpdateCameraLocation (#713)
* Implement/match LegoNavController::UpdateCameraLocation

* Add size assert
2024-03-23 17:10:12 +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
9256554406
Implement LegoCameraController::Notify & TimeROI::FUN_100a9b40 (#707)
* 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() (#704)
* 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 (#706) 2024-03-20 22:11:40 +01:00
Misha
e5fa35fd99
Implement a few registrationbook methods (#703)
* 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 (#700)
* 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 (#699)
* 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 (#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
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
ba5bc46c0c
Implement/match FUN_10032620 (#687) 2024-03-18 15:38:02 +01:00
Ramen2X
937a45020c
refactor action headers (#686) 2024-03-17 16:52:42 -04:00
Misha
b38a2a4980
implement RegistrationBook::HandleClick (#685)
* 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 (#684) 2024-03-17 18:26:41 +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
Ramen2X
4197e3c326
implement Hospital::ReadyWorld() (#682) 2024-03-16 17:02:05 -04: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
Ramen2X
bf6765b575
fix dupes in action headers (#679) 2024-03-16 02:43:56 +01:00
Ramen2X
6cd5ffcf1a
implement RegistrationBook::ReadyWorld(), impl/match MxDisplaySurface::CopySurface() (#678)
* 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. (#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
4ddd9e200c
implement/match Hospital::Tickle() (#677) 2024-03-15 19:16:43 -04:00
Christian Semmler
0e146f08d6
Implement/match LegoNavController::CalculateNewPosDir (#675)
* 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 (#672)
* Implement/match LegoEntity::GetPosition/Direction/Up

* Rename
2024-03-13 20:29:28 -04:00
Ramen2X
aaee10949e
implement Hospital::Notify(), Enable(), VTable0x64() (#670)
* 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
Christian Semmler
0f2aee1849
Implement/match LegoPointOfViewController::SetEntity (#668)
* Implement/match LegoPointOfViewController::SetEntity

* Fix order
2024-03-13 19:03:30 +01:00
Christian Semmler
0623e6a766
Implement/match LegoPointOfViewController::Tickle (#667) 2024-03-13 18:46:20 +01:00
Ramen2X
beb30e80ea
slight style tweaks to legogamestate and related members (#666) 2024-03-13 13:17:20 -04:00
Ramen2X
4aafc435f5
implement/match Hospital::Create() (#665) 2024-03-13 11:45:27 -04:00
Christian Semmler
06080b6492
Changes to GasStation::Create based on beta debug build (#664)
* 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 (#661)
* WIP

* Improve matches
2024-03-12 18:21:58 +01:00
Ramen2X
b0483000d8
TransitionNone() -> NoTransition() (#659) 2024-03-11 21:23:31 -04:00
Ramen2X
6dfee432ea
rename MxTransitionManager transitions (#655) 2024-03-11 04:57:58 -04:00
Ramen2X
7fad763699
refactor script enum structure (#649)
* 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
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
6fa4a0dbec
Implement/match LegoPartPresenter::Store (#643) 2024-03-09 19:03:21 +01:00
Christian Semmler
9f875d01e5
Implement/match LegoPartPresenter::Read (#642)
* WIP

* Match

* Remove TODO

* Fix
2024-03-09 18:27:53 +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
Christian Semmler
71bcd4c771
Implement/match LegoEntity::SetWorldTransform and ResetWorldTransform (#632)
* Implement/match LegoEntity::SetWorldTransform and ResetWorldTransform

* Add param name
2024-03-06 19:25:45 +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
a93e2ae0d3
Implement/match LegoEntity::SetLocation (#629)
* Implement/match LegoEntity::SetLocation

* Remove comment
2024-03-05 20:31:57 +01:00
Christian Semmler
3b2bd0e9d4
Implement/match LegoEntity::SetROI (#628) 2024-03-05 19:35:28 +01: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
d3b575169e
Implement/match LegoModelPresenter::FUN_1007ff70 (#622) 2024-03-04 18:26:36 +01:00
Misha
c2a46b058b
implement various LegoWorldPresenter functions (#621)
* 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) (#619)
* 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 (#617)
* implement BuildingEntity functions

* fix build

* Update infocenterentity.h
2024-03-02 17:11:03 -05:00
Christian Semmler
de5cd98b76
Implement/match ViewManager::RemoveAll (#616)
* 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 (#615) 2024-03-02 19:40:42 +01:00
Christian Semmler
0067c24ead
Implement/match ViewLODListManager::Create (#611)
* Implement/match ViewLODListManager::Create

* Add stdio.h header

* Add remaining annotations
2024-03-01 22:32:10 +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
c0a988b0fe
Implement/match LegoAnimPresenter::StartingTickle (#601)
* Implement/match LegoAnimPresenter::StartingTickle

* Fix vtable

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

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

* Use LegoU32
2024-02-26 18:41:18 +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
Joshua Peisach
b524b47723
jukebox functions (#592)
* 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 (#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
Christian Semmler
377eebb610
Minor style/naming fixes (#593) 2024-02-25 15:14:39 +01:00
Christian Semmler
b281866ea6
Implement/match LegoModelPresenter::CreateROI (#591)
* 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 (#590) 2024-02-24 14:55:00 +01:00
Joshua Peisach
51520aaae6
LegoActor: destructor, SetROI (#588)
* 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 (#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
58482ff676
Bootstrap anim.lib (#577)
* Bootstrap anim.lib

* Fix order

* Fix LegoMorphKey
2024-02-18 18:43:42 +01:00
Joshua Peisach
4a7ab43b45
Main HistoryBook function implementations (#575)
* Main HistoryBook function implementations

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

* Fix code

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-17 18:23:09 +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
Christian Semmler
c67f613b8d
Implement/match LegoOmni::FindROI and related (#570)
* Implement/match LegoOmni::FindROI and related

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

* Fix const
2024-02-16 18:12:45 +01:00
Joshua Peisach
efcb3cac2a
Police: HandleClick (#565)
* 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 (#564)
* 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 (#562)
* 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 (#554) 2024-02-13 20:25:51 -05:00
Joshua Peisach
eb3b339454
GasStation destructor, enable, create (#561)
* 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 (#560)
* 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 (#559)
* 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 (#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
Misha
f378b2e535
implement LegoWorldPresenter::ParseExtra (#551) 2024-02-10 18:54:38 +01:00
Christian Semmler
27390e80c0
Name dialogue playlists (#549)
* 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 (#548)
* 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 (#547) 2024-02-10 15:36:01 +01:00
Misha
223b07ee3d
Implement LegoModelPresenter::ReadyTickle (#546)
* Implement LegoModelPresenter::ReadyTickle

* Update legoworld.h

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-10 00:41:35 +01:00
Christian Semmler
97de164a7f
Implement Infocenter::ReadyWorld (#538)
* Implement Infocenter::ReadyWorld

* Match

* Use TRUE
2024-02-07 21:23:35 +01:00
Christian Semmler
a12fdadd4a
Implement/match Infocenter::StartCredits (#537)
* Implement Infocenter::StartCredits

* Match
2024-02-07 18:19:46 +01:00
Misha
917485247b
implement Enable and Create in RegistrationBook (#535) 2024-02-06 19:06:32 -05:00
Christian Semmler
03423b2ffa
Implement/match Infocenter::Reset (#532)
* Implement Infocenter::Reset

* Move code

* Move function

* Fix bug

* Fix another bug
2024-02-05 12:35:26 -05:00
Joshua Peisach
0497ef13fb
Implement Police::HandleKeyPress, Enable, VTable0x64 (#529)
* Implement Police::HandleKeyPress, Enable, VTable0x64

* fix return type

* Style

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-04 23:40:51 +01:00
Christian Semmler
434deecee4
Implement/match remaining LegoWorld functions (#526)
* Implement/match remaining LegoWorld functions

* Move functions

* Move function

* Fix function location

* Fix function return type
2024-02-04 18:33:37 +01:00
Daniel Hejduk
d324fd664a
Implementing RegistrationBook::RegistrationBook() and removing this-> from Gasstation.cpp (#508)
* Implementing RegistrationBook::RegistrationBook()

* Update registrationbook.h

* Update registrationbook.h

* Removing this keyword

* TESTING: fixing the format errors

* Update registrationbook.cpp

* Update registrationbook.h

* Update registrationbook.h

* Update registrationbook.h

* Update registrationbook.h

* TEST fixing format errors

* Update registrationbook.h

* Update registrationbook.h

* Removing this-> from gasstation.cpp

* Fix outstanding issues, match function

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-04 16:36:47 +01:00
Joshua Peisach
724cdeb86f
Implement Police::Notify (#524)
* Implement Police::Notify

* Fix HandleKeyPress

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-03 22:30:00 +01:00
Misha
2158142b08
Implement LegoSoundManager (#521)
* push code

* begin work on subclass

* fixes

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-03 02:16:57 +01:00
Anonymous Maarten
57d5949d84
Implement some Act1State functions (#520)
* Implement some Act1State functions

* ci: push fix commits to pr

* ci fix

* Show diffs generated by clang-format

* Run clang-format

* Fix naming

* re-use _countof + add parentheses

* Fix naming

* Use MxS32

* Annotate Act1State::NamedPlane::~NamedPlane

* Apply suggestions

* Read and Write Mx3DPointFloat's

* Annotations, spacing

* Add Mx3DPointFloat copy ctor, match some functions

* Fix WriteVector3

* Adding more spacing for readability

* Use MxResult as a return type for Serialize

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-03 02:03:52 +01:00
Misha
0c47ed5056
Implement more infocenter methods (#519)
* push changes

* format fix

* Update legogamestate.cpp

* Update legogamestate.cpp

* Fixes

* Match Infocenter::Create

* Style

* Fix InfocenterDoor::HandleClick

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-02 22:32:50 +01:00
Christian Semmler
a28113a26f
Fix/match MxBackgroundAudioManager::FUN_1007ef40 (#518)
* Fix

* Match
2024-02-02 21:00:44 +01:00
Christian Semmler
b7e274f902
Implement LegoState::Playlist (#517) 2024-02-02 20:09:45 +01:00
Christian Semmler
558bda4dd2
Implement LegoWorld::Enable (#516)
* WIP VTable0x68

* Improve match

* Match

* Fix

* Fix

* Move vars

* Match

* Add call to Isle

* Rename functions

* Fix style
2024-02-02 18:18:46 +01:00
Christian Semmler
a7acf8c607
Implement/match InfocenterState::InfocenterState (#515)
* Implement LegoState::Shuffle

* Remove unused params

* Move ctor

* Asm generate hotfix

---------

Co-authored-by: MS <disinvite@users.noreply.github.com>
2024-02-02 00:08:56 +01:00
Christian Semmler
17252b95f4
Implement Infocenter::HandleNotification0 (#514)
* Implement Infocenter::HandleNotification0

* Match

* Match

* Match

* Match

* Braces

* Add enum constants
2024-02-01 21:56:27 +01:00
Anonymous Maarten
9e686e2a87
cmake+ci: run clang-tidy (#512)
* cmake+ci: run clang-tidy

* Remove DESCRIPTION from LEGO1/LegoOmni.mingw.def

* Add initial .clang-tidy and fixes

* fix file perms

* Comment out DESCRIPTION

* Remove LegoEntity::~LegoEntity and MxPresenter::~MxPresenter from mingw's LEGO1.def

* Looks like clang is allergic to the libs in the directx5 SDK

* Update .clang-tidy

* Fix typo in .clang-tidy

* Attempt to generate an action error

* Revert "Attempt to generate an action error"

This reverts commit 96c4c65fedbc4102837f4bcbbb9ee83a7d14cba3.

* cmake: test with -Wparentheses + optionally with -Werror

* ci: -k0 is a Ninja argument

* Use -Werror only for msys2 builds

* cmake: only emit warnings for specific warnings

* cmake: and don't do -Werror/-WX anymore

* Fix warnings

* Fix mingw warnings

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-01 21:42:10 +01:00
Misha
9e0b19856c
Implement various infocenter functions (#510)
* Implement various infocenter methods

* fix order

* Update infocenter.cpp

* Update infocenter.cpp

* Update infocenter.cpp

* Update mxcontrolpresenter.cpp

* Rename stuff for consistency

* Add StateStruct to InfocenterState

* Resolve some TODO

* Use MxRect32

* Improve match

* Match Infocenter::UpdateFrameHot

* Fix VTable0x64

* WIP Match

* Match

* Cleanup

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-31 15:47:15 +01:00
Misha
bad32149ca
implement LegoGameState::StopPreviousAction (#511)
* implement RemoveFromWorld

* fix unloading

* Rename stuff, add default arg

* Rename functions

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-31 13:34:36 +01:00
Christian Semmler
cdf76754f7
Implement/match Radio, RadioState (#509)
* WIP RadioState

* WIP

* WIP

* Implement/match Radio/RadioState

* Fix naming

* Use sizeof
2024-01-30 19:57:20 +01:00
Misha
743e042564
Finish MxControlPresenter (#505)
* Push changes

* fix order

* use MxBitmap::Start

* Fixes/changes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-29 23:46:22 +01:00
Christian Semmler
baed704a38
(clang-format) Add RemoveSemicolon (#506) 2024-01-29 23:30:20 +01:00
Christian Semmler
bcdddd4c7e
Pad all single-digit hexadecimal values with zero (#504)
* Pad all single-digit hexadecimal values with zero

* One more fix
2024-01-29 22:17:17 +01:00
Christian Semmler
35def3013a
Fix various state classes/missing annotations (#503) 2024-01-29 19:54:47 +01:00
Misha
445084f4b0
Implement LegoOmni::DeleteObject (#501)
* Push changes

* fixes

* Match

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-28 23:10:04 +01:00
Misha
4314d3e297
Implement LegoControlManager (#500)
* Push changes

* Update score.cpp

* fix

* Update score.h

* Fixes/matches

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-28 22:09:33 +01:00
Nathan M Gilbert
c0acf11f9b
Implement/Match LegoTree (#485)
* Implement/Match LegoTree

* Fix vtable

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-28 17:45:49 +01:00
Misha
d9c4151bb8
implement LegoInputManager::ProcessOneEvent (#498)
* push changes

* fix

* Match

* Rename functions

* Space

* Fix GetPresenterAt

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-28 15:20:21 +01:00
Christian Semmler
f1fc5e1d0d
Implement/match LegoEventNotifcationParam::Clone (#497) 2024-01-27 23:57:42 +01:00
Misha
d4cb8677b8
implement LegoInputManager register and unregister (#496)
* implement LegoInputManager::Create

* Fixes

* Add annotation

* Add size assert

* push changes

* Add size assert

* Order annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-27 23:15:12 +01:00
Christian Semmler
159e27baba
Sort annotations 2024-01-26 05:37:50 -05:00
Misha
f706f80483
implement LegoInputManager::Create (#495)
* implement LegoInputManager::Create

* Fixes

* Add annotation

* Add size assert

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-27 22:55:59 +01:00
Christian Semmler
19c771b85d
Implement/match LegoWorld::PresentersPending (#494)
* Implement/match LegoWorld::PresentersPending

* Rename functions
2024-01-27 21:18:35 +01:00
Christian Semmler
fadf8e7fd5
Move some functions from LegoWorld to Act3 (#493) 2024-01-27 18:15:14 +01:00
Christian Semmler
883f3429a7
Implement/match LegoWorld::Destroy (and destructor) (#492)
* Implement/match LegoWorld::Destroy

* Match

* Match
2024-01-27 17:48:50 +01:00
Christian Semmler
4df7dee037
Implement/match LegoWorld::Remove (#491)
* Implement/match LegoWorld::Remove

* Fix comparison

* Match 100%
2024-01-27 16:10:09 +01:00
Christian Semmler
7b6ec235d8
Implement LegoWorld::Add (#490)
* LegoWorld::Add

* Add annotations

* Fix include guard

* Make stub

* Change MxPresenterSet to MxCoreSet

* Improve match

* Match

* Fix annotation
2024-01-26 23:52:03 +01:00
Christian Semmler
b6aac26269
Implement LegoWorld::Find (#489)
* Implement LegoWorld::FUN_100213a0

* Rename lists

* Rename cursors

* Rename cursor

* Rename functions

* Remove a comment

* Rename more functions

* Fix return type
2024-01-26 22:00:02 +01:00
Joshua Peisach
88fd1e658d
HelicopterState vtable (#487)
* HelicopterState vtable

* Move functions

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-26 18:09:59 +01:00
Christian Semmler
a3868e3808
Implement/match LegoWorld::FUN_10021790 (#486)
* Implement/match LegoWorld::FUN_10021790

* Improve match

* Match

* Specify python package versions

* Use wildcard version

* Use const atom

* Use const atom
2024-01-26 18:03:29 +01:00
Anonymous Maarten
5f413165cc
Spinoff some sources to static libraries (#484)
* cmake: use imported targets for 3rd party libs

* Fix casing of skateboard.h include

* cmake: tglrl realtime viewmanager mxgeometry

* cmake: spin off some source in static libraries

* dx5 for everyone

* ci: bump actions/checkout to v4

* move LEGO1/realtime/realtimeview.cpp to lego1 because it exports symbols

* add misc library

* Add omni library

* Return of the .def's

* Remove COMPAT_CONST in MxVideoParam::MxVideoParam

* Run clang-format

* move LEGO1/realtime/realtimeview.cpp to realtime lib

* Add 3dmanager library

* Rename .def files

* Remove incorrect deps to Omni

* Remove DLL expor decls

* Remove unnecessary library dep from ROI

* Remove COMPAT_CONST

* Move 3dmanager lib before Omni

* Remove mxgeometry lib (`geom` is actually `lego/sources/geom`, which we don't have in our decomp yet)

* viewmanager has a dependency on realtime + fix mingw's def

* Remove Smacker::Smacker from lego1 link libraries

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-24 21:16:29 -05:00
Nathan M Gilbert
2bebc09da3
Implement misc.lib (#483)
* Implement misc.lib

* Lowercase files

* Minor changes

* Fix file cases

* Fixes

* Fix missing dtor

* Add override

* Match LegoImage::Read

* Fix delete call

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-24 18:12:57 +01:00
MS
a19165a749
LegoWorld::LegoWorld to 100% (#480) 2024-01-22 16:18:46 +01:00
Misha
05bc94f030
implement MxControlPresenter::ParseExtra (#477)
* MxControlPresenter::ParseExtra

* Update mxcontrolpresenter.h

* fix loop

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-21 12:45:40 -05:00
Misha
7b0d4dd502
Implement Infocenter::InitializeBitmaps (#478) 2024-01-21 18:38:22 +01:00
Misha
8e1197d14c
implement LegoLoadCacheSoundPresenter (#475)
* fix

* fixes

* Fix WaveFormat, match LegoLoadCacheSoundPresenter

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-21 16:30:19 +01:00
Misha
3f35302e76
begin LegoLocomotionAnimPresenter (#474)
* LegoLocomotionAnimPresenter

* Fix game startup

* Fixes

* Add size assert

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-21 15:58:15 +01:00
MS
b5a3c5feea
Enforce vtable match (#464)
* vtable enforce

* Vtable progress

* IslePathActor subclasses

* LegoState subclasses

* LegoWorld subclasses

* Presenter progress

* Remaining presenters

* All but two that need new files

* Merge into vtable branch (#3)

* Implement MxDisplaySurface::VTable0x44 (#467)

* Update mxdisplaysurface.cpp

* add arguments to header

* Fix glitched bitmaps

* WIP fixes

* Match

* Fix

* Changes

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Implmement PoliceState::VTable0x1c (#468)

* Implmement PoliceState::VTable0x1c

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Implement Lego3DView::Render (#470)

* Implement Lego3DView::Render

* use MxDouble

* Revert "use MxDouble"

This reverts commit a006b60e2066b79ded3e15e143a302d8fd707deb.

* Begin work on Police class (#469)

* Begin work on Police class

* Use JukeBox::e_policeStation value

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Implement MxDisplaySurface::CreateCursorSurface (#471)

* Update mxdisplaysurface.cpp

* Fixes

* Update legovideomanager.cpp

* Match to 100%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>

---------

Co-authored-by: Misha <106913236+MishaProductions@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>

* Police fix

* Finish

* motocycle lower case

* Update historybook.h

* Update hospitalstate.h

* Update jetski.h

* Update legoinputmanager.h

* Update legolocomotionanimpresenter.h

* Update pizza.h

* Update act3shark.h

* Update ambulancemissionstate.h

* Update bumpbouy.h

* Update doors.h

---------

Co-authored-by: Misha <106913236+MishaProductions@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
2024-01-20 18:04:46 -05:00
Misha
93012b62f4
Implement MxDisplaySurface::CreateCursorSurface (#471)
* Update mxdisplaysurface.cpp

* Fixes

* Update legovideomanager.cpp

* Match to 100%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-20 22:12:35 +01:00
Joshua Peisach
67fa5e7cca
Begin work on Police class (#469)
* Begin work on Police class

* Use JukeBox::e_policeStation value

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-20 21:49:56 +01:00
Joshua Peisach
46ad567760
Implmement PoliceState::VTable0x1c (#468)
* Implmement PoliceState::VTable0x1c

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-20 21:40:00 +01:00
Ramen2X
961282e3c6
add jukeboxscript enum (#466) 2024-01-20 12:41:22 -05:00
Misha
9a3df8d9f8
Implement various methods in InfoCenter folder (#465)
* push changes

* Fix return type of Infocenter::Tickle

* Fixes/matches

* Code clarity

* Move assert

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-20 15:24:54 +01:00
Joshua Peisach
9000f731ac
PoliceState constructor (#463)
* PoliceState constructor

* Changes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-20 15:22:33 +01:00
MS
ee7241f73d
GifManager: use STL members (#460)
* Truncate symbol names to 255 characters when matching

* GifManager refactor

* Refactor, annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-19 21:23:12 +01:00
Nathan M Gilbert
d5658efe02
Finish Bitmap (#458)
* Finish Bitmap

* Add missing vtable annotations

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-19 15:38:06 +01:00
Ramen2X
578e48ce52
implement/match InfoCenter::~InfoCenter() (#457) 2024-01-18 21:00:55 -05:00
Misha
61dd687f53
Implement InfoCenter folder vtable stubs (#456)
* Implement InfoCenter vtable stubs

* fix build

* Update infocenterdoor.cpp

* Update infocenterdoor.cpp

* Update legoworld.h

* Update elevatorbottom.h

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-18 20:24:15 -05:00
Ramen2X
ffee6a4e5b
rename dialogue to action in methods (#454) 2024-01-18 14:04:50 -05:00
MS
909c44b679
reccmp: vtable comparison (#452)
* Add vtable comparison to reccmp

* Add missing scalar deleting destructors

* Fix some vtables

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-18 14:34:14 +01:00
Misha
c0af1dbac4
implement LegoOmni::FUN_1005b4f0 (#450)
* push changes

* push changes

* fixes

* Changes

* Use proper values

* Name vtable function

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-17 21:48:48 +01:00
Ramen2X
cf7466f901
name nearly every infomain action (#449)
* name nearly every infomain action

* label two more unused actions
2024-01-17 14:08:05 -05:00
Daniel Hejduk
6032c1bb27
Implement GasStation:GasStation() function (#424)
* Implementing GasStation:GasStation() function

* Update gasstation.cpp

* Update gasstation.cpp

* Adding m_unk variables to gasstation.h

* Update gasstation.h

* Update gasstation.h

* fixes + match gasstation ctor

* formatting fixes

* add offset markers to members

* formatting fix

---------

Co-authored-by: Ramen2X <64166386+Ramen2X@users.noreply.github.com>
2024-01-17 12:24:42 -05:00
Joshua Peisach
d369429e98
video/legohideanimpresenter: Init, dtor, most of destroy function (#447)
* video/legohideanimpresenter: Init, dtor, most of destroy function

* Format

* Finish Destroy

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-17 18:24:05 +01:00
Christian Semmler
240ca5570d
Rename enum 2024-01-17 11:56:41 -05:00
Misha
f50b771fff
begin implementation of InfoCenter class (#444)
* Push changes

* fixes

* Implement Infocenter::HandleEndAction

* match Infocenter::StopCutScene

* implement Infocenter::HandleKeyPress

* fixes

* Update infocenter.cpp

* Update legoworld.cpp

* use enums

* WIP Fixes

* Fix

* Fix

* Fix

* Rename function

* Change enum

* Update enums

* Refactor another enum

* Refactor MxDSType

* Refactor HashTableOpt

* Fixes

* Refactor tickle enum

* Update other enums

* Add EnumConstantName to ncc

* Move enum to global namespace

* Rename enum

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-17 17:53:53 +01:00
Christian Semmler
6af0c6cb1a
Implement/match a few LegoEntity functions (#445)
* Implement/match a few LegoEntity functions

* Add annotations
2024-01-16 20:33:03 +01:00
Christian Semmler
a4c4ee656f
Implement lists used in LegoWorld (#443)
* Add LegoEntityList

* Add MxCoreList, match LegoWorld::Create
2024-01-15 21:44:04 +01:00
Misha
5b7624c32a
implement part of LegoAnimPresenter (#441)
* push changes

* implement + match a few functions

* Update legoanimpresenter.h

* reorder

* Update legoanimpresenter.cpp

* Update legoanimpresenter.cpp

* Update legoanimpresenter.cpp

* fix build

* Allow isle to start

* Match LegoAnimPresenter::VTable0x88

* Fixes

* use EndAction in StartingTickle stub

* Match StreamingTickle

* Fix override

* Comment about missing vtable functions

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-15 20:37:50 +01:00
Misha
f116389373
implement a few MxControlPresenter functions (#440)
* MxControlPresenter

* Fixes

* Minor change

* Match MxControlPresenter::StartAction

* Use flags instead

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-15 20:08:28 +01:00
Misha
7f72a36462
Implement LegoMeterPresenter (#439)
* push changes

* Update legometerpresenter.h

* fix wrong offset

* fix deconstructor

* fix + improve accuracy

* Update legometerpresenter.cpp

* Match functions

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-15 16:26:52 +01:00
Misha
e9d8fde8bc
Fix wrong class name (#438)
* push changes

* fix

* rename file
2024-01-14 23:00:03 +01:00
Joshua Peisach
763fcf8980
ElevatorBottom ctor/dtor (#436)
* ElevatorBottom ctor

* ElevatorBottom destructor

* Use setters

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-14 22:58:00 +01:00
Christian Semmler
dd72bcc666
Use names from 1996 sources (#437) 2024-01-14 22:49:11 +01:00
MS
7e9d3bde65
Reccmp: Use symbol names in asm output (#433)
* Name substitution for reccmp asm output

* Decomp marker corrections

* Fix a few annotations

* Fix IslePathActor dtor

* Fix audio presenter

* Fix LegoEntity::Create

* Fix Pizza and related

* Fix path part

* Add missing annotations

* Add missing annotations

* Add more missing annotations

* Fix MxNotificationParam

* More fixes

* More fixes

* Add missing annotations

* Fixes

* More annotations

* More annotations

* More annotations

* More annotations

* Fixes and annotations

* Find imports and thunk functions

* Fix more bugs

* Add some markers for LEGO1 imports, fix SIZE comment

* Add more annotations

* Rename annotation

* Fix bugs and annotations

* Fix bug

* Order

* Update legoanimpresenter.h

* Re-enable print-rec-addr option

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-14 22:28:46 +01:00
Misha
7f7e6e37dd
implement LegoOmni::FindByEntityIdOrAtomId (#435)
* push changes

* Match and add annotations

* Fix annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-14 02:34:54 +01:00
Misha
8b34b38ac0
implement LegoActorPresenter (#434)
* LegoActorPresenter

* Add ddtor

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-13 23:06:13 +01:00
Misha
5b8ea35756
Implement Isle::VTable0x50 (#432)
* push changes

* fix formatting

* Fix structure

* Fix return

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-13 21:42:09 +01:00
Misha
c2da041f40
Implement a few legoworld methods (#430)
* Push changes

* Update legoworld.cpp

* Update legoworld.cpp

* Minor style fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-13 21:00:11 +01:00
Christian Semmler
d24f5db42f
Matrix/vector refactor (#426) 2024-01-12 19:34:38 -05:00
Misha
eac096036a
implement LegoModelPresenter::Destroy (#428)
* LegoModelPresenter::Destroy

* remove debug print

* Update legomodelpresenter.cpp
2024-01-12 23:30:50 +01:00
Misha
3c0bf7191c
implement LegoWorldPresenter deconstructor (#425)
* Implement LegoWorldPresenter::~LegoWorldPresenter

* Rename incorrect function name

* fixes

* Rename functions

* fix format
2024-01-12 23:27:07 +01:00
Misha
602ba30fae
fix LegoPathPresenter vtable (#427)
* fix LegoPathPresenter vtbl

* Update legopathpresenter.cpp

* Update legopathpresenter.cpp

* fix override

* Update legopathpresenter.cpp
2024-01-12 23:22:42 +01:00
Christian Semmler
516e16faf6
Further clean up Omni/LegoOmni separation (#423)
* Fix inline functions

* Whitespace

* Try this

* Fix MxEntity

* Further fixes

* Move main out

* Replace tickle code
2024-01-11 16:02:55 +01:00
Anonymous Maarten
b996fff6fa
Support building isle with modern MSVC + msys2 (#421)
* cmake: detect older MSVC and define ENABLE_DECOMP_ASSERTS to enable decomp asserts

* Add /Zc:__cplusplus to define __cplusplus with c++ version number

* Silence deprecated CRT releated warnings

* LegoCameraController overrids some methods that are not defined in its parent(s)

* Tgl::Device::GetDrawnTriangleCount does not exist (FIXME: INCORRECT FIX -> Tgl::Device should be updated instead)

* Remove copy/pasted APP_ICON from lego1 resource.h header

* Implement empty ViewLODList::Dump method

* Also enable "compat mode" for newer MSVC compilers

* Only do decomp assertions when using older MSVC compilers

* msys2 mingw compat (cannot pass reference of rvalue)

* Fix msys2 mingw warning: declaration 'class Tgl::Group' does not declare anything

* Add FIXME comment to LEgo3DView::m_previousRenderTime

* LegoView1 is 16 bytes bigger then LegoView ==> 4 32-bit pointers

* include string.h for strlen

* Fix overrides

* Fix constness of method

* Fixes

* Formatting

* Add size assert for MxFrequencyMeter

* ci: build isle with msys2 + msvc on GitHub actions

* Set vcvars for msvc

* msys2 needs the msys2 shell

* Build in default shell

* isle is not 64-bit yet (I think)

* Print bitness

* Use amd64_x64 cross tools

* Minor updates

* Add more names

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-10 23:34:32 +01:00
Christian Semmler
e55b2ad639
Name a few members in LegoVideoManager 2024-01-10 13:45:52 -05:00
Christian Semmler
f6ced08b20
Add scalar ddtor annotations 2024-01-09 05:31:00 -05:00
Misha
58085df6b0
Implement most of LegoCameraController (#419)
* Implement LegoCameraController subclasses

* Update legopovcontroller.cpp

* fixes

* Update legocameracontroller.cpp

* fix naming conventions

* Update legopointofviewcontroller.h

* Update legopointofviewcontroller.h

* Fixes

* Match LegoPointOfViewController::Create

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-09 10:43:21 +01:00
Christian Semmler
58ea45f4cc
Name various functions and other members (#418)
* Name various functions and other members

* Rename var
2024-01-08 19:07:13 +01:00
Christian Semmler
091ecd5935
Move some classes to LegoOmni (#417) 2024-01-08 12:45:07 +01:00
Christian Semmler
c47206617d
Reorganize sources and files (#414)
* Reorganize sources

* Refactor

* Remove relative paths

* Renames

* Fix gitignore

* Remove stuff

* Try fixing format script

* Fix format

* Fix format

* Fix naming script

* Test format

* Fix format
2024-01-08 10:58:49 +01:00