Christian Semmler
4f5b70013f
Implement MxStillPresenter::LoadFrame ( #306 )
2023-12-01 05:59:32 -05:00
Joshua Peisach
f7dcdf9894
MxFlcPresenter vtable70, m_unk64 ( #304 )
...
* MxFlcPresenter: vtable70
* begin work on MxFlcPresenter's m_unk64
* Add another function that makes use of the FLIC header
* Remove space
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-29 13:35:32 +01:00
MS
3d48cdede1
STL lists for stream classes ( #307 )
2023-11-28 14:26:39 +01:00
Christian Semmler
10062d2b28
Return type of PutData is MxResult ( #305 )
...
* Return type of PutData is MxResult
* Remove out.html
2023-11-26 15:03:40 +01:00
Christian Semmler
d46f2e094b
Bootstrap MxStillPresenter ( #303 )
2023-11-25 20:08:10 +01:00
Christian Semmler
fb0d1ccb62
Implement/match MxLoopingMIDIPresenter ( #302 )
...
* Implement/match MxLoopingMIDIPresenter
* Move declarations
2023-11-25 13:26:44 -05:00
Christian Semmler
5aa548c449
Replace FALSE with NULL
2023-11-25 07:22:23 -05:00
Christian Semmler
7db2b2e6b7
Implement/match MxMidiPresenter ( #301 )
2023-11-24 12:21:26 -05:00
Christian Semmler
db77350169
(clang-format) Add EmptyLineBeforeAccessModifier ( #300 )
2023-11-24 12:10:09 -05:00
Christian Semmler
1d3ce6b0aa
Implement/match remaining MxWavePresenter functions ( #294 )
...
* Implement/match remaining MxWavePresenter functions
* Name m_unk65
* Match WriteToSoundBuffer
* Remove header
* Match StreamingTickle
* Name more variables
* Give names to some things
2023-11-24 12:09:53 -05:00
Joshua Peisach
a577b393bf
LegoRace initial layout ( #299 )
...
* LegoRace initial layout
* fix function ordering
* Fix it all
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-24 13:11:32 +01:00
MS
14f05ea823
MXIOINFO code style ( #297 )
2023-11-22 02:54:08 -05:00
Misha
343b0ff3cb
LegoActionControlPresenter functions ( #295 )
...
* LegoActionControlPresenter
* fix formatting
* fix format
* Fixes
* Fix order
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-21 11:35:03 +01:00
MS
1ae3b07dc2
Checkorder tool to keep functions in original binary order ( #228 )
...
* First commit of order tool
* More flexible match on module name. Bugfix on blank_or_comment
* Report inexact offset comments in verbose mode. Bugfix for exact regex
* Refactor checkorder into reusable isledecomp module
* Find bad comments in one pass, add awareness of TEMPLATE
* Refactor of state machine to prepare for reccmp integration
* Use isledecomp lib in reccmp
* Build isledecomp in GH actions, fix mypy complaint
* Ensure unit test cpp files will be ignored by reccmp
* Allow multiple offset markers, pep8 cleanup
* Remove unused variable
* Code style, remove unneeded module and TODO
* Final renaming and type hints
* Fix checkorder issues, add GH action and enforce (#2 )
* Fix checkorder issues
* Add GH action
* Test error case
* Works
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-21 09:44:45 +01:00
Christian Semmler
714d36b57d
Bootstrap MxWavePresenter, implement/match some functions ( #286 )
...
* Bootstrap MxWavePresenter, implement/match some functions
* Fix
* Use constant for 0x7f
* Update mxwavepresenter.cpp
* Update mxwavepresenter.h
2023-11-19 12:10:49 -05:00
Christian Semmler
6441391092
Implement/match MxEventPresenter ( #285 )
2023-11-19 12:10:32 -05:00
Christian Semmler
e0c168367a
Fix ROI acronym explanation
2023-11-19 09:49:36 -05:00
Nathan M Gilbert
7fc1f8019f
Implement ViewROI and base classes ( #287 )
...
* Implement ViewROI and base classes
* Clean up Orientable header
* Move tgl to tgl subdirectory, and use target_include_directories
* Move classes to submodules
* Fix some missed references
* Fix/match UpdateWorldData
* Renaming / removing MxTypes / refactoring
* Consistent naming for Matrix
* Adjust format action
* Add Vector3/Vector4 to Data vector
* Add TGL comment
* Add a comment about Matrix4Impl
* Add ROI comment
---------
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 15:38:07 +01:00
Joshua Peisach
0b0a9a6d6f
MxFlcPresenter: vtable70 ( #291 )
...
* MxFlcPresenter: vtable70
* Fix function
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 13:28:06 +01:00
MS
0bb3ea6a03
MxList refactor ( #290 )
...
* MxList refactor
* Reorder LegoPathControllerList::Destroy
* MxPtrList custom destructor and more offsets
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Fix member offset comments in collection classes
* Fix template annotations
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 13:23:30 +01:00
Nathan M Gilbert
93eb4dc82d
Create ( #289 )
...
* Align name of Create method with known source
Fix name in Score for reccmp
* Also update MxEntity::Vtable0x14
2023-11-18 10:08:49 -05:00
Joshua Peisach
eee80250c0
LegoPalettePresenter - destroy function and destructor ( #288 )
...
* LegoPalettePresenter - destroy function and destructor
* Update legopalettepresenter.h
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-17 15:01:27 -05:00
Christian Semmler
d8bf4aebf4
Implement/match most of MxVideoPresenter ( #280 )
...
* Bootstrap MxMediaPresenter
* Implement/match MxMediaPresenter::Tickle and related
* Implement AppendChunk and Enable
* Implement/match most of MxVideoPresenter
* Add missing offset
2023-11-14 12:25:14 -08:00
Christian Semmler
c626f18b03
Prepare MxMidiPresenter vtable and refactoring ( #278 )
2023-11-14 12:10:43 -08:00
DmitriLeon2000
e86d6f0cc7
Marking LegoOmni::Notify as STUB ( #284 )
2023-11-13 13:21:58 +01:00
Christian Semmler
ba82821501
Implement/match MxMediaPresenter::Tickle and related ( #277 )
...
* Bootstrap MxMediaPresenter
* Implement/match MxMediaPresenter::Tickle and related
* Implement AppendChunk and Enable
2023-11-13 12:25:27 +01:00
Christian Semmler
a087c666b4
Remove unnecessary namespace
2023-11-13 12:15:13 +01:00
Christian Semmler
8a1422f13e
Implement/match MxMediaPresenter::EndAction ( #276 )
...
* Bootstrap MxMediaPresenter
* Implement/match MxMediaPresenter::EndAction
* Merge
* Remove garbage
2023-11-13 11:22:58 +01:00
MS
8861acaf20
Refactor MxHashTable/MxVariableTable ( #283 )
...
* Refactor MxHashTable/MxVariableTable
* Use MxS8 for Compare return type
* Cursor::DeleteMatch check and clang fix
2023-11-12 19:25:56 -05:00
Joshua Peisach
8b2e7a92e1
LegoTexturePresenter destructor and AddToManager ( #282 )
...
* LegoTexturePresenter destructor and AddToManager
* clang-format
2023-11-12 14:21:22 -05:00
Joshua Peisach
888205c1fa
Unstub LegoBuildingManager ctor ( #281 )
2023-11-12 14:21:01 -05:00
Christian Semmler
04b503c79f
Bootstrap MxMediaPresenter ( #274 )
...
* Bootstrap MxMediaPresenter
* Add override
2023-11-12 13:47:01 +01:00
Joshua Peisach
e2f2ef6152
MxControlPresenter: destructor and ReadyTickle ( #279 )
2023-11-10 19:27:10 +01:00
Christian Semmler
82697d7148
Add missing override keywords
2023-11-09 10:52:58 -05:00
Misha
1f6d1ddab0
Lego video manager constructor and deconstructor ( #275 )
...
* commit
* Update legovideomanager.cpp
* add offset comments
* Update legovideomanager.h
* Update legovideomanager.h
2023-11-08 17:05:20 -05:00
Christian Semmler
42c47a6540
Fix clang-format
2023-11-06 16:17:23 -05:00
Christian Semmler
a2c83a1b69
(clang-format) Add QualifierOrder ( #272 )
2023-11-07 14:00:00 +01:00
MS
7834f18999
MxQueue and parts of LegoInputManager ( #268 )
...
* MxQueue and parts of LegoInputManager
* Missed clang-format on mxqueue.h
* Fix declarations
* MxParamType -> NotificationId
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-07 09:30:26 +01:00
Christian Semmler
23f4fda304
Improve match of MxRegion::vtable18 ( #266 )
...
* Match MxRegionTopBottom::FUN_100c5280
* Resolve OtherAppend/Append
* Remove old code
* MxRegion::vtable18 up to 80%, refactor MxRect
2023-11-06 18:12:09 -05:00
Christian Semmler
d5cf23bada
Match MxRegionTopBottom::FUN_100c5280 ( #261 )
...
* Match MxRegionTopBottom::FUN_100c5280
* Resolve OtherAppend/Append
* Remove old code
2023-11-06 14:04:51 +01:00
Misha
a8254c048d
Implement more of LegoOmni ( #267 )
...
* commit code
* implement a few functions
* Update mxdsobject.h
* more stuff
* Update legoomni.cpp
* Update legoomni.cpp
* rename function
* fix
* undo useless changes
* Fixes
* Add global addr
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-06 10:00:24 +01:00
Joshua Peisach
ca359e9002
MxEventPresenter: AddToManager and small destroy cleanup ( #269 )
...
* MxEventPresenter: AddToManager and small destroy cleanup
* Update mxeventpresenter.h
* Update mxeventpresenter.h
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 17:45:48 -05:00
Misha
33dcb139b7
Match a few methods ( #270 )
...
* match a few misc methods
* Update legonavcontroller.h
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 17:41:35 -05:00
Misha
42a82794a8
Implement MxStreamController::vtable0x2c ( #265 )
...
* MxStreamController::vtable0x2c
* Add size comment
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 16:25:38 +01:00
Misha
49bad74104
implement register/unregister scripts ( #264 )
...
* register/unregister implementation
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 16:20:00 +01:00
Misha
4c4dce1302
Finish MxBackgroundAudioManager ( #263 )
...
* MxBackgroundAudioManager additional functions
* fix code style
* MxBackgroundAudioManager::PlayMusic
* match MxBackgroundAudioManager::Notify
* MxBackgroundAudioManager::Notify
* rename functions
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 16:07:28 +01:00
Joshua Peisach
22ac0b9296
Add missing ClassName's and IsA's ( #262 )
...
* Add missing ClassName's and IsA's
Exceptions: LegoAnimActor as it does something weird with a call to another private/inlined function(?) and RaceStandsEntity which seems to have two vtables
* clang-format
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-04 14:47:35 +01:00
Misha
24e889ee3d
some LegoEntityPresenter & LegoWorldPresenter functions ( #260 )
...
* LegoEntityPresenter & LegoWorldPresenter
* format fix
* Fixes
* Add size assert
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-02 11:54:08 +01:00
MS
176bd1d8fd
LegoGameState destructor and related ( #259 )
...
* LegoGameState destructor and related
* MxTypes, naming convention, and using a fraction
* use m_ prefix in struct
2023-11-01 11:12:03 -04:00
Christian Semmler
9ac9fe2761
MxRegion: initial implementation ( #218 )
...
* MxRegion structures
* MxRegion structures
* Remove junk
* Refactor
* WIP
* Use MxRect32 ctor
* Refactor
* Add MxSize32, match MxRegion ctor
* Add two template annotations
* Fix missing instructions
* Fix another bug
* Refactor
* Add GetPoint
* Implement/match MxRegionTopBottom::MxRegionTopBottom
* Implement/match more functions
* More implementation
* Don't expose internal match
* Fix indent
* Add template annotations
* Implement remaining functions
* Fix comment
* Match loops
* Simplify function
* Merge
* Remove junk
* Format
* Format
* match MxRegion::vtable1c
* revert vtable1c match-hack
This reverts commit 7b88625988
.
---------
Co-authored-by: Ramen2X <64166386+Ramen2X@users.noreply.github.com>
2023-10-31 11:30:13 -04:00
Christian Semmler
cb286520e5
Add missing MxSoundManager functions ( #258 )
2023-10-31 10:22:01 -04:00
Misha
1db48b3b2c
MxSmkPresenter vtables ( #254 )
...
* implement vtbls
* Update smk.h
2023-10-30 12:46:38 -04:00
Misha
f3b0de0609
more MxDSBuffer functions ( #255 )
...
* FUN_100c6f80
* AllocateBuffer
* Update mxdsbuffer.h
* Update mxdsbuffer.cpp
* Update mxdsbuffer.cpp
* Return reference
* Fix delete call
* Fix GetWriteOffset
* Remove cast
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-30 14:54:00 +01:00
Misha
787d932825
LegoActor implementation ( #253 )
...
* LegoActor
* LegoEntity
* Replace float with MxFloat
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-30 14:15:43 +01:00
Misha
f4646a7075
implement a few mxstream* methods ( #252 )
...
* commit code
* commit code
* Update mxdiskstreamprovider.cpp
* Update mxstreamprovider.h
* improve match + add html file to gitignore
* improve match of MxRAMStreamController::Open
* MxDiskStreamController::Open
* Match some functions, relocate m_target to `MxThread`
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-29 15:01:14 +01:00
Ramen2X
153f4a872e
implement/match several mxsmkpresenter functions ( #251 )
...
* implement/match several mxsmkpresenter functions
* formatting
* formatting (sequel)
* Match remaining functions
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-27 19:00:20 +02:00
Christian Semmler
6594cc78ea
Implement/match remaining MxSoundManager virtual functions ( #250 )
2023-10-26 13:20:14 +02:00
Christian Semmler
89b3c5f8ae
Implement/match MxSoundManager::Create ( #249 )
...
* Implement/match MxSoundManager::Create
* Fix offset
2023-10-26 13:19:59 +02:00
Christian Semmler
4c387d6d49
Use sizeof() instead of magic number
2023-10-26 06:11:43 -04:00
MS
24c9f8b9ed
MxStillPresenter::ParseExtra ( #248 )
...
* MxStillPresenter::ParseExtra
* resolve clang-format complaints
2023-10-26 00:16:08 +02:00
Christian Semmler
20c4f832ca
Match MxList<T>::_InsertEntry to 100%
2023-10-25 18:02:49 -04:00
Nathan M Gilbert
7d8c57fc9c
Rename some functions and members ( #246 )
...
* Rename some functions and members
* Match LegoWorld::Notify to 100%
* Match MxOmni::Destroy to 100%
* Fix parameter prefix
* Fix another parameter
* Fix CR at EOF
* Fix CR at EOF
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-25 16:51:59 -04:00
Christian Semmler
a01bcf5241
(clang-format) Insert newline at end of file ( #247 )
...
* Insert newline at EOF
* Fix formatting
2023-10-25 11:51:59 -07:00
Christian Semmler
6b8dc8a0cc
Match MxVariableTable::SetVariable to 100%
2023-10-25 14:44:28 -04:00
Christian Semmler
220ad5d537
Use TEMPLATE syntax for MxHashTable decomp declarations
2023-10-25 14:32:51 -04:00
MS
10ebdfa608
MxVideoPresenter::IsHit ( #244 )
...
* MxVideoPresenter::IsHit
* Apply clang-format
* Minor logic fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-25 12:02:36 +02:00
Christian Semmler
b449da1fa3
Introduce clang-format ( #240 )
2023-10-25 01:38:27 +02:00
Anonymous Maarten
e928fc9425
Build fixes for mingw ( #245 )
2023-10-25 01:24:29 +02:00
Ramen2X
4c5c709af6
correct 0 in LEGO1 comment [skip ci]
2023-10-24 09:58:27 -04:00
Nathan M Gilbert
af1745db18
Implement Helicopter::VTable0xe4 ( #243 )
...
Clean up parent classes
2023-10-24 14:37:02 +02:00
Ramen2X
74329d681b
implement/match CalcLocalTransform ( #241 )
...
* implement/match CalcLocalTransform
* fix odd build error
* address feedback
move vec.h to thirdparty folder
update vec.h
move all realtime code to realtime folder
move calclocaltransform out of legoutil and into realtime
cast shift to MxS32
add additional unroll hack to CalcLocalTransform to prevent msvc entropy
2023-10-24 14:27:24 +02:00
Nathan M Gilbert
1ab29590ee
Start of helicopter Implementation ( #239 )
...
* Start of helicopter Implementation
Mostly Matching, some issues with MxMatrix and/or MxVector4
* Fix some style issues
* Fix some style issues
2023-10-24 10:14:45 +02:00
vMidz
587ac7a9d7
implement LegoPathPresenter ( #238 )
...
* implement LegoPathPresenter
implement some LegoPathPresenter functions
* Update legopathpresenter.cpp
* Minor fixes
* Order functions
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-23 16:08:22 +02:00
Joshua Peisach
34ce795cdd
MxWavePresenter ClassName, IsA ( #237 )
2023-10-23 09:33:07 -04:00
Nathan M Gilbert
4cc6b9b8ec
Implement Score ( #230 )
...
* Implement Score
* Update mxomni.cpp
Fix case of OFFSET comment.
* Fix DeleteObjects
* Apply changes (see comment)
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-23 13:16:21 +02:00
Misha
724c953947
Implement MxDSBuffer constructor, match MxDSSource::FUN_100bffd0 ( #235 )
...
* Implement MxDSBuffer constructor, match FUN_100bffd0
* Match to 100%, minor style fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-22 21:58:05 +02:00
Ramen2X
5ab993bfda
cleanup: fix all improper uses of MxResult ( #234 )
...
* cleanup: fix all improper uses of MxResult
2023-10-22 13:38:25 -04:00
Ramen2X
7e907cfe3f
implement/match JukeBoxState ( #233 )
2023-10-22 11:33:29 -04:00
Misha
681ab9c026
implement most of MxBackgroundAudioManager ( #232 )
...
* implement most of MxBackgroundAudioManager
* Match OpenMusic to 100%, style fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-22 16:11:46 +02:00
Misha
50fe5f9c83
implement LegoSoundManager vtable ( #231 )
...
* LegoSoundManager
* Fix virtual function declarations/locations
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-22 15:48:20 +02:00
MS
ae908a74cc
Copy constructor for MxVideoPresenter::AlphaMask ( #229 )
2023-10-21 19:47:48 -04:00
Joshua Peisach
af0e38176c
MxSoundPresenter ( #227 )
...
* MxSoundPresenter
Destructor, destroy, function adding itself to the sound manager and vtable38.
* Fix virtual function declarations
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-22 00:41:05 +02:00
MS
85d94baa50
MxVideoPresenter AlphaMask (formerly UnkStruct) ( #226 )
2023-10-22 00:40:31 +02:00
Christian Semmler
5dfb132025
Implement MxOmni::DoesEntityExist and related ( #225 )
...
* Implement MxOmni::DoesEntityExist and related
* Rename function for consistency
2023-10-21 17:23:55 -04:00
Christian Semmler
6931a817a6
Implement NotifyCurrentEntity ( #224 )
2023-10-21 17:02:55 -04:00
Joshua Peisach
4f201eaa48
MxEventPresenter destructor ( #223 )
...
* MxEventPresenter destructor
* Fix and implement Destroy
* Fix scope of Destroy decl
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-20 20:41:23 +02:00
Christian Semmler
3a21834382
Rename virtual function to fix override ( #222 )
2023-10-19 13:07:05 -04:00
Ramen2X
fbb3b4930c
label ScoreState::VTable0x18 and associated member ( #221 )
2023-10-19 12:56:56 -04:00
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