Commit graph

99 commits

Author SHA1 Message Date
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
52d74647be
Implement/match Isle::HandleEndAction and Isle::HandleElevatorEndAction (#691)
* WIP

* Match
2024-03-18 15:00:58 -04:00
Christian Semmler
0fe3fa65aa
Implement/match Isle::FUN_10032d30 (#684) 2024-03-17 18:26:41 +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
Christian Semmler
78f0455463
Fix code quirk (#676) 2024-03-15 17:05:09 +01:00
MS
331aac73f2
Implement MxMemoryPool (#671)
* Implement MxMemoryPool

* Naming fix

* Annotations and size asserts

* hex padding
2024-03-13 21:44:07 -04:00
MS
dcc3946a08
Separate MxCore counter (#663) 2024-03-12 14:59:39 -04:00
MS
62a3f50287
KeyValueStringParse closer to beta version (#656)
* KeyValueStringParse closer to beta version

* Line numbers out
2024-03-12 14:27:24 -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
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
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
Christian Semmler
a93e2ae0d3
Implement/match LegoEntity::SetLocation (#629)
* Implement/match LegoEntity::SetLocation

* Remove comment
2024-03-05 20:31:57 +01:00
MS
ec1fcce08c
Data comparison tool (#618)
* Parse cvdump TYPES section. Add datacmp tool.

* Corrections

* Use static

* Revert "Use static"

This reverts commit e0a4324e00.

* Handle partially initialized variable

* Shuffle order of legounksavedatawriter

* Revert "Shuffle order of legounksavedatawriter"

This reverts commit 506e06f117.

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-05 09:45:09 +01:00
Misha
068760056a
fix bug in MxPresenter::CreateEntity (#626)
* fix bug in MxPresenter::CreateEntity

* Match 100%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-04 23:00:38 +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
fb6eed9bff
Match StartAction functions, remove NextFragment (#610) 2024-03-01 19:07:07 +01:00
Christian Semmler
ba8744ef8f
Match MxTickleManager::Tickle (#609) 2024-03-01 18:46:07 +01:00
Christian Semmler
ec29f2633d
Improve matches in ROI classes (#608)
* Improve matches in ROI classes

* More function implementations

* Fix name

* Fix vtables

* Add annotation
2024-03-01 18:19:41 +01:00
Christian Semmler
e609924e4c
Match MxDisplaySurface::Display (#607) 2024-03-01 03:42:50 +01:00
Christian Semmler
79713698cf
Improve match of MxVideoPresenter::PutFrame (#606)
* Improve match of PutFrame

* Fix

* Fix

* Fix
2024-03-01 02:45:30 +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
ff04b0ba5a
Implement FLIC (#481)
* Implement FLIC

* Refactor/style

* Remove library_flic.h

* Exclude flic.cpp from naming

* Temporary workaround

* Fix type

* Fix bugs in FLC decoding, and cleanup

* Fix braces

* Match ClampLine

* Fix struct type

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-29 18:00:57 +01:00
Christian Semmler
dd1979154d
Match MxWavePresenter::DoneTickle (#604) 2024-02-28 23:10:05 +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
377eebb610
Minor style/naming fixes (#593) 2024-02-25 15:14:39 +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
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
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
MS
ad3a1de055
Match more scalar deleting destructors (#568) 2024-02-16 13:15:53 -05: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
a29c0aca3f
Implement/match LegoOmni::Create (#556)
* Implement/match LegoOmni::Create

* Fix var

* Rename

* Fix style
2024-02-11 02:52:16 +01:00
Christian Semmler
e68e25275f
Fix buffer exhaustion / audio glitches 2024-02-03 16:12:31 -05:00
Christian Semmler
f405ca51fc
Fix MXIOINFO::Advance 2024-02-02 22:17:10 -05:00
Christian Semmler
a131f89290
Fix MxDSBuffer::FUN_100c6fa0 2024-02-02 22:01:57 -05:00
Christian Semmler
f0ea8850c4
Match MxDSFile scalar ddtor, add annotations (#523) 2024-02-03 17:33:22 +01:00
Misha
83e116defc
push changes (#522) 2024-02-03 07:38:57 -05: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
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
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 96c4c65fed.

* 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
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
96234ddc23
Implement/match MxStillPresenter::Clone (#502)
* Implement/match MxStillPresenter::Clone

* Fix
2024-01-29 11:29:12 -05: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
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
4df7dee037
Implement/match LegoWorld::Remove (#491)
* Implement/match LegoWorld::Remove

* Fix comparison

* Match 100%
2024-01-27 16:10:09 +01:00