Commit graph

399 commits

Author SHA1 Message Date
Ramen2X
adbe73d664
implement/match ScoreState vtable (#220)
* implement/match ScoreState vtable

* add size assert for ScoreState
2023-10-19 03:26:32 -04:00
Ramen2X
52e6c9ac22
implement/match global ControlManager() function (#219)
* implement/match global ControlManager() function

* remove unnecessary forward declaration
2023-10-18 22:12:28 +02:00
Ramen2X
7c26a4d2dc
fix LegoState::VTable0x1C fake-match & implement LegoFileStream::FUN_10006030 (#217)
* fix LegoState::VTable0x1C fake-match, implement LegoFileStream::FUN_10006030

* Match and relocate FUN_10006030

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-18 00:05:31 +02:00
Christian Semmler
476af22b36
Add size assert for MxVideoManager, sort functions 2023-10-17 09:16:37 -04:00
Christian Semmler
727c748ecd
Implement/match MxVideoManager::InvalidateRect and UpdateRegion (#214)
* Implement/match MxVideoManager::InvalidateRect and UpdateRegion

* Update comment
2023-10-16 16:20:52 -07:00
Ramen2X
8b1c8f7abe
use MxResult return type in MxCore::Tickle() 2023-10-16 18:46:45 -04:00
Ramen2X
3a1cab323f
complete and match LegoState vtable (#216) 2023-10-16 16:18:35 -04:00
Misha
3dee6eae7a
MxVideoPresenter functions (#187)
* mxvideopresenter

* Update mxvideopresenter.cpp

* use inline getter for rectange width/height

* Update mxvideopresenter.cpp

* Match MxVideoPresenter::Destroy to ~88%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-16 22:09:08 +02:00
Ramen2X
b95656a735
implement GasStationState::GasStationState() (#215)
* implement GasStationState::GasStationState()

* Match 100%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-16 20:17:23 +02:00
Christian Semmler
50b9a39b2f
Use memset to be consistent with the rest 2023-10-16 09:27:23 -04:00
Andrew Gutekanst
000c019a0e
Add LegoVehicleBuildState (#213)
* Add LegoVehicleBuildState

* Update LegoVehicleBuildState member-var names to include offsets
2023-10-16 15:22:21 +02:00
Ramen2X
ba8ae8138e
implement/match MxTransitionManager::Transition_Windows() (#212) 2023-10-15 19:41:05 -04:00
Christian Semmler
37e75703d4
MxOmni::Create 100% match, make Create calls consistent (#211)
* Improve MxOmni::Create match, make Create calls consistent

* Match MxEventManager::Create

* Fix MxTickleClientPtrList

* 100% match

* Update mxomnicreateparam.h
2023-10-14 20:49:07 -04:00
Ramen2X
0c8705a9df
implement/match MxTransitionManager::Transition_Broken() (#210) 2023-10-14 15:54:49 -04:00
Christian Semmler
0580b2870c
Use MxResult for RealizePalette 2023-10-14 15:31:30 -04:00
Christian Semmler
e4f87ad7dd
Implement MxVideoManager::vtable0x28 and Create (#208)
* MxVideoManager::Destroy / destructor

* Consistency

* Add missing override

* Implement MxVideoManager::vtable28

* Implement vtable2c

* Rename to Create
2023-10-14 21:33:11 +02:00
MS
e08717f496
MxTransitionManager Pixelation transition (#209)
* Pixelation transition and improved variable names

* More accurate pointer math for the 16-bit case
2023-10-14 15:15:51 -04:00
Christian Semmler
5ddfaab9e7
Implement MxVideoManager::Destroy / destructor (#207)
* MxVideoManager::Destroy / destructor

* Consistency

* Add missing override
2023-10-14 11:46:00 -07:00
Christian Semmler
f062543f87
Match MxPresenter::StartAction to 100% 2023-10-14 09:27:58 -04:00
Joshua Peisach
a814132ab9
MxMIDIPresenter functions (#204)
* MxMIDIPresenter destructor, stub Destroy for now

* MxMIDIPresenter::EndMIDIAction + update param name

m_MIDIInitialized is definitely public, since it is accessed from the global
MusicManager.

* Add getter for MIDIInitialized, fix virtual function decl

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-14 15:25:53 +02:00
Andrew Gutekanst
7cf85e6f06
Add LegoMeterPresenter stub class (#206) 2023-10-14 15:08:51 +02:00
Christian Semmler
b92b2604d5
Match MxObjectFactory::Create to 100% 2023-10-14 09:02:44 -04:00
Andrew Gutekanst
c66b6aa123
Refine MxObjectFactory (#205)
* Refine MxObjectFactory

* Change interface of Destroy

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-14 14:59:06 +02:00
Ramen2X
a24a798c82
rename all uncertain names to unk (#203) 2023-10-13 17:36:16 -04:00
DmitriLeon2000
34e09c2bb3
Clean up Destroy pattern everywhere, fix missing overrides (#202)
* Rename MxMusicPresenter function vtable38

* Rename MxMusicPresenter function vtable38

* MxMediaPresenter, MxMusicManager and MxMusicPresenter
* Refactoring Destroy functions

* MxMediaManager & MxMusicPresenter

* Fix some vtable declarations, more renames

* Fix MxEventManager

* More rename fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-13 18:43:45 +02:00
Mark Langen
91c3ed3e70
100% match of many functions in the LegoGameState::Save codepath (#86)
* Only include decomps

* One more function

* Add offset to endOfVariables

* Remove leftover header

* Use undefined where applicable

* Fixes, refactorings

* Fixes

* Fix calling convention

* Added offset comment

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-12 18:18:24 +02:00
Christian Semmler
49ec7364c2
MxDSAction::MergeFrom: match to 100% (#200)
* Minor accuracy improvement

* Workaround for 100% match

* Update mxdsaction.cpp
2023-10-12 08:54:02 -07:00
Misha
b7b0ac6ae7
Implement a few functions in LegoEntity (#201) 2023-10-12 00:15:36 +02:00
Angel
19ee8cdc30
Implemented MxVector4::SetMatrixProductWrapper (#198)
* Implemented the function wrapper for SetMatrixProduct labeled as
SetMatrixProductWrapper with 100% match.

* Rename for consistency

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-11 12:18:48 +02:00
DmitriLeon2000
02d003673d
Implement MxMusicPresenter's Destroy method and move MxMediaPresenter's Destroy method to "protected" (#199)
* MxMusicPresenter destroy

* Implement MxMusicPresenter's Destroy method and move MxMediaPresenter's Destroy method to "protected"

* MxMediaPresenter Destroy to "protected", for real

* MxMusicPresenter Destroy
2023-10-11 12:18:26 +02:00
Christian Semmler
11dafaf816
Fix MxDSMediaAction structure/matches (#194) 2023-10-11 00:50:14 -07:00
Christian Semmler
93ce1ccfe8
Implement remaining MxDSSelectAction functions (#183)
* Implement remaining MxDSSelectAction functions

* Fix match
2023-10-10 13:22:00 -04:00
vMidz
23b9d47e8a
implement EndAction (#196)
* implement EndAction

implement EndAction
+offsets commenets

* Refactor MxParam/MxNotificationParam

* Add correct address for destructor

* Make MxNoticiationParam more concise

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-10 13:05:04 -04:00
Christian Semmler
d65c87f04d
Add missing space 2023-10-10 05:30:56 -04:00
Misha
114a959741
MxDiskStreamController vtable (#197)
* mxdiskstreamcontroller vtable + MxStreamController::vtable0x20

* stub MxDiskStreamController::Open

* MxDiskStreamProvider

* MxNextActionDataStart

* Revert "MxNextActionDataStart"

This reverts commit 41e8cfa2f11ea4f9b39df0bdf0c3657fdbd9efe9.

* Match MxStreamController::vtable0x20

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-10 10:27:00 +02:00
MS
49efa02eaa
MxBitmap code clarity (#195)
* MxBitmap code clarity

* Use mxtypes. TWOCC for BM string. SetSize arg to FALSE
2023-10-10 00:20:38 +02:00
Christian Semmler
28206402f9
Use forward declaration for LegoAnimationManager in LegoOmni 2023-10-09 06:33:06 -04:00
Misha
625ee52fe0
implement a few mxomni/legoomni functions (#193) 2023-10-09 12:31:36 +02:00
Angel
0db96ce2d6
Implemented MxVector4::UnknownQuaternionOp (#192)
* Corrected typo in reccmp.py

* Implemented MxVector4::UnknownQuaternionOp
65% similar to the original

* Brought MxVector4::DotImpl to 100% match
2023-10-09 11:04:35 +02:00
Misha
d82649c6f0
MxStream provider and controller vtables (#191)
* MxStreamProvider and MxRamStreamProvider vtable

* Update mxramstreamprovider.h

* Match IsA

* Fixes, improvements

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-08 22:41:34 +02:00
Misha
3ac0c5d86c
Implement LegoVideoManager::MoveCursor and improve SetSkyColor (#190)
* improved SetSkyColor match

* LegoVideoManager::MoveCursor

* rename parameters

* Minor improvements

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-08 22:00:59 +02:00
Joshua Peisach
7c674cbb47
Start MxCompositePresenter ctor/dtor (#186)
* Start MxCompositePresenter ctor/dtor

* Add MxUnkList

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-08 17:25:38 +02:00
ChrisMiuchiz
aa516af434
Remove goto from isleapp.cpp (#188)
* Remove goto from isleapp.cpp

* Simplify if statement and make indent consistent
2023-10-08 16:10:16 +02:00
Misha
3afbf808d1
MxMediaPresenter vtable (#189)
* Add vtables for MxMediaPresenter

* remove comments and fix override
2023-10-08 15:46:09 +02:00
Misha
5f8bde9e48
Finish MxMediaManager and MxEventManager (#185)
* Finish MxMediaManager and MxEventManager

* Update mxomni.cpp

* fixes
2023-10-07 23:30:05 +02:00
Joshua Peisach
472a82f220
MxMusicPresenter vtable (#184)
* MxMusicPresenter vtable

vtable+0x34 adds the current presenter to the music manager
vtable+0x38 calls destroy with the param as "FALSE"

* Update mxmusicpresenter.cpp

* Update mxmusicpresenter.cpp

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-07 16:36:05 -04:00
Christian Semmler
a9fa734844
Refactor deserialization of objects (#170)
* Use template helpers for deserialization

* Remove space

* Fix naming
2023-10-07 20:07:26 +02:00
Misha
62b97b8f1f
Implement MxOmni::Create (#182)
* implement mxomni::create, and match MxStreamController::Open

* Use enum for mxparam type

* Fix return type

* Match MxOmni::Notify

* Remove unused variable

* Added override keywords

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-07 20:05:45 +02:00
Christian Semmler
4a674d823b
Implement MxDSSelectAction Clone/operator=/CopyFrom (#154) 2023-10-07 20:03:15 +02:00
Christian Semmler
e6507b874a
Refactor vector EqualsScalar (#171)
* Refactor vector EqualsScalar

* Fix param name
2023-10-07 11:00:20 -07:00