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
MS
97d1ba7c71
MxTransitionManager corrections ( #513 )
2024-01-31 23:39:50 +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
Christian Semmler
96234ddc23
Implement/match MxStillPresenter::Clone ( #502 )
...
* Implement/match MxStillPresenter::Clone
* Fix
2024-01-29 11:29:12 -05: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
0a672d2146
RaceCar destructor ( #488 )
...
* RaceCar destructor
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-26 18:13:09 +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
Christian Semmler
43c692c9d7
Minor fixes
2024-01-20 10:46:49 -05: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
Christian Semmler
b4bc0e51c9
Make all functions public symbols in FLIC library ( #472 )
2024-01-20 20:23:23 -05: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
Misha
1c612a2d25
Implement Lego3DView::Render ( #470 )
...
* Implement Lego3DView::Render
* use MxDouble
* Revert "use MxDouble"
This reverts commit a006b60e2066b79ded3e15e143a302d8fd707deb.
2024-01-20 21:43:53 +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
Misha
ea5f9b4886
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>
2024-01-20 20:31:07 +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
Christian Semmler
701c700d69
Add library symbols for flic and smack ( #461 )
2024-01-19 23:11:51 +01:00
Christian Semmler
1c4f772a82
Implement/match MxOmni::ActionSourceEquals ( #462 )
2024-01-19 23:06:39 +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
Christian Semmler
35e5a62ff7
Implement/match MxLoopingFlcPresenter remaining functions ( #459 )
...
* Implement/match MxLoopingFlcPresenter remaining functions
* Remove include
* Change to long
2024-01-19 16:33:04 +01:00
Christian Semmler
dbfe28db51
Fix type
2024-01-18 21:24:12 -05:00
Christian Semmler
8007c5e483
Match MxFlcPresenter::LoadFrame to 100%
2024-01-18 21:23:07 -05: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
Christian Semmler
cecaced797
Implement MxFlcPresenter::LoadFrame, add flic
library ( #455 )
...
* WIP
* Match
* Fix flic.lib
* Add source assembly
* Rename variable
2024-01-19 15:01:57 +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
Christian Semmler
f1300d9de5
Match MxMusicManager::ResetStream
2024-01-18 14:42:37 -05:00
Ramen2X
ffee6a4e5b
rename dialogue to action in methods ( #454 )
2024-01-18 14:04:50 -05:00
Christian Semmler
62e584b024
Fix build
2024-01-18 13:49:08 -05:00
Christian Semmler
ea9d92e1e3
Use MSVC 4.20 definition of MIDICALLBACK
2024-01-18 13:39:26 -05:00
Christian Semmler
be045514ed
Add test for SUCCESS
2024-01-18 13:29:00 -05:00
Christian Semmler
5d79ac9436
Fix MxMusicManager::InitializeMIDI return type
2024-01-18 13:26:51 -05:00
Nathan M Gilbert
30b35981d3
finish MusicManager ( #453 )
...
* finish MusicManager
* Fixes/improvements
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-18 19:23:13 +01: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
Ramen2X
99917ca765
initialize more members in LegoGameState ( #451 )
2024-01-17 16:24:22 -05: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
Nathan M Gilbert
b25239f22d
Finish some missing methods ( #448 )
...
* Finish some missing methods
* Minor style updates/fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-17 18:08:48 +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
MS
aaa18bc9e2
Decomp parser: indirect globals and string markers ( #446 )
...
* Enable string annotations and indirect globals
* Adding some STRING annotations
* Library functions
2024-01-17 12:56:34 +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
b1fdb780de
Add missing size asserts for lists
2024-01-15 15:59:57 -05: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
6df310bb66
Implement LegoWorldPresenter::VTable0x60 ( #442 )
...
* LegoWorldPresenter::VTable0x60
* Update infocenter.cpp
* Minor adjustments
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-15 21:17:54 +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
7d2629318c
Match Lego3DView::Create ( #431 )
2024-01-13 20:58:10 +01:00
Christian Semmler
0edbd9dab9
Update mxvideopresenter.cpp
2024-01-13 09:39:33 -05:00
Misha
d5d4a8b0ff
Update mxvideopresenter.cpp ( #429 )
2024-01-13 09:32:45 -05: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
99ee212213
Fix inclusion of MxPresenter class in ISLE
2024-01-11 10:48:00 -05: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
Christian Semmler
9eea48f629
Fix structure of Lego3DView ( #422 )
2024-01-10 23:40:24 +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
01f3168e71
Use NULL where appropriate
2024-01-10 13:47:54 -05:00
Christian Semmler
e55b2ad639
Name a few members in LegoVideoManager
2024-01-10 13:45:52 -05:00
Nathan M Gilbert
5a2be934be
Finish StreamProvider classes ( #420 )
...
* Finish StreamProvider classes
* Fix variable name
* Use FOURCC
* Match FUN_100c7090
* Changes
* Readability
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-10 12:55:25 +01:00
Christian Semmler
872c62fd39
Match LegoCameraController::LegoCameraController
2024-01-09 10:30:37 -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
79465d358d
Fix MxWavePresenter::StartingTickle
2024-01-07 22:28:16 -05:00
Christian Semmler
855e548516
Make comparison more obvious
2024-01-07 21:23:09 -05:00
Christian Semmler
569d8ace96
Fix actions not ending
2024-01-07 20:55:32 -05: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
Misha
4c0de81b6a
Update legoactioncontrolpresenter.cpp ( #416 )
2024-01-07 17:03:04 -05:00
Anonymous Maarten
fbe7f8bbb0
Fix all mingw errors & warnings ( #411 )
...
* Use COMPAT_MODE macro to fix errors with mingw gcc 12.2
* MxOmni::m_timerRunning is a MxBool
* MxDirect3D::m_unk0x88c is a MxBool
* MxBackgroundAudioManager::m_unk0x13c is a MxS32
* Fix warning: deleting 'void*' is undefined [-Wdelete-incomplete]
* Fix inline function 'void TglImpl::RendererImpl::Destroy()' used but never defined
* Fix warning: inline function 'MxStreamerSubClass1::MxStreamerSubClass1(undefined4)' used but never defined
* Use `FALSE` for m_timerRunning
* Format
* Format
* Remove comment
* Limit scope for variables in compat mode
* clang-format
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-07 18:30:45 +01:00
Christian Semmler
bb7e4df11b
Move MxDirectDraw and MxDirect3D to mxdirectx ( #413 )
2024-01-07 18:07:22 +01:00
Christian Semmler
8db36722d8
Implement/match Lego3DView and parent classes ( #412 )
...
* Implement/match TglSurface
* Implement/match LegoView/1
* Lego3DView
* Fixes
* Lego3DManager
* Remove garbage
* Remove garbage
* Use shorthand calls
2024-01-07 03:29:32 +01:00
Anonymous Maarten
dc3500f631
Fixes for building isle with mingw on Linux ( #410 )
...
* Add LEGO1.DLL resources
* Rename smack files to lowercase
This fixes casing issues with mingw on Linux
Also use double quotes for #error
* cmake: dxguid must come after dinput
* cmake: create LEGO1.DLL instead of libLEGO1.DLL, when using mingw
* act3actor.h was not including mxcore.h, and using incorrect override
* g_mcoreCount seem to be signed integers
* LegoCameraController: return references to static data in stub functions
* Include string.h, stdlib.h and stdio.h for use of libc functions
* Override MxAtomId::operator!=
* Fix use of STL's std::map + std::vector
* Fix template functions for mingw
* iterator object is used after the for loop
* IDirectDrawSurface::BltFast's first 2 arguments are x/y coordinates, not pointers
* Add stub ViewLODListManager::Lookup
* Fixes
* Format
* Remove unnecessary COMPAT_CONST use
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-06 18:56:15 +01:00
Christian Semmler
dac2a517c3
Implement/match LegoVideoManager::Tickle ( #409 )
...
* Implement LegoVideoManager::Tickle
* Match
* Remove duplicate annotations
* Add missing annotations
* Rename list functions
* Fix
* Rename some symbols
2024-01-06 18:06:50 +01:00
Christian Semmler
27269647f8
Implement/match LegoVideoManager::ConfigureD3DRM ( #408 )
...
* Implement/match LegoVideoManager::ConfigureD3DRM
* Fix name
* Remove unnecessary forward decl
2024-01-05 20:38:34 +01:00
Misha
9651ece809
Improve accuracy of MxOmni::CreatePresenter ( #407 )
...
* Improve accuracy of MxOmni::CreatePresenter
* Update mxactionnotificationparam.cpp
* Match to 100%
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-05 18:31:19 +01:00
Misha
9a5e1cb853
legomodelpresenter vtable ( #406 )
...
* legomodelpresenter vtable
* Update legomodelpresenter.cpp
* Update legomodelpresenter.cpp
2024-01-04 20:01:04 -05:00
MS
ce68a7b1f4
Reccmp comparison engine refactor ( #405 )
...
* Reccmp comparison engine refactor
* Remove redundant references to 'entry' symbol
2024-01-04 18:12:55 -05:00
Christian Semmler
eeb980fa0f
Let game boot again ( #404 )
2024-01-04 22:46:16 +01:00
Christian Semmler
5aef35d9c7
Fix member visibility
2024-01-04 06:35:28 -05:00
Christian Semmler
54ed98b9d6
Implement/match MxDirect3D::D3DSetMode ( #403 )
...
* Implement/match MxDirect3D::D3DSetMode
* Match
2024-01-04 22:16:16 +01:00
Misha
a899b06f5a
implement MxDirect3D::GetZBufferDepth ( #402 )
...
* GetZBufferDepth
* Match
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-04 21:35:52 +01:00
Christian Semmler
d4e7bb1132
Implement/match MxDirect3D::SetDevice ( #401 )
...
* WIP
* WIP
* WIP
* Rename class
* Rename vars
* Rename function
* Rename
* Rename flag
* Fix deletion of modeArray
* Remove obsolete comment
2024-01-04 20:37:15 +01:00
Misha
21d096dcd2
implement TowTrackMissionState ( #399 )
...
* TowTrackMissionState
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-04 04:31:55 +01:00
Christian Semmler
49e3fa238f
Implement/match most remaining MxDirect3D device enumeration functions ( #400 )
...
* WIP
* WIP
* Implement/match most remaining MxDirect3D device enumeration functions
* Fix names
2024-01-04 04:03:02 +01:00
Christian Semmler
778b0f2108
Implement/match MxDeviceEnumerate::ParseDeviceName and ProcessDeviceBytes ( #398 )
...
* WIP
* WIP
* WIP
* WIP
* WIP
* WIP
2024-01-03 21:53:21 +01:00
Christian Semmler
5ee268a36c
Implement/match device enumeration ( #397 )
...
* Implement/match device enumeration
* Update skip
2024-01-03 18:50:25 +01:00
Christian Semmler
106dd7cebc
Implement/match display mode enumeration ( #396 )
...
* Implement/match display mode enumeration
* Improve match of EnumDirectDrawCallback
* Fix annotations
2024-01-03 18:12:17 +01:00
Christian Semmler
31a5562034
Implement/match MxDeviceEnumerate::EnumDirectDrawCallback ( #395 )
...
* Implement/match MxDeviceEnumerate::EnumDirectDrawCallback
* Change type
* Annotate copy ctor
* Fix type
2024-01-03 17:35:55 +01:00
Christian Semmler
7d4e94abd6
Match EnumerateCallback
2024-01-02 14:57:30 -05:00
Christian Semmler
afe537b99e
Name some MxDSChunk flags ( #394 )
2024-01-02 19:32:01 +01:00
Joshua Peisach
3f2fac72e4
Hospital ctor ( #392 )
...
* Hospital ctor
* Remove padding
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-02 04:30:50 +01:00
Christian Semmler
56af87b229
Implement/match LegoVideoManager::CreateDirect3D
2024-01-01 21:23:47 -05:00
Christian Semmler
935ebe6910
Implement LegoVideoManager::Create and related ( #393 )
...
* WIP
* Match
* Changes
* Fix format
* Style fixes
* Update naming.yml
* Match to ~85%
2024-01-02 01:17:38 +01:00
Christian Semmler
1e43f20af5
Implement MxDisplaySurface::VTable0x28 ( #391 )
...
* WIP
* Fixes
* Fixes
* Fixes
* Remove comments
* Create native palette in LegoVideoManager
* Improvements
* Improvements
* Improvements
* Improvements
* Improvements
* Improvements
* Improvements
* Improvements
* Fixes
* Improvements
2023-12-31 21:29:05 +01:00
Joshua Peisach
5400d7476f
MxDisplaySurface::SetPalette() ( #358 )
...
* Start MxDisplaySurface::SetPalette()
* Add Counting functions, more on SetPalette
* Finish base implementation of SetPalette and begin cleanup
* clang-format
* Fixes/improvements
* Format
* Fix naming
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-30 22:47:07 +01:00
Christian Semmler
bb22b21260
Implement FUN_100b6e10
and MxRect32 adjustments ( #390 )
...
* Some WIP rect
* Adjustments to MxRect32
* Spacing
* Changes
* Spacing
* Spacing
2023-12-30 05:55:36 +01:00
Christian Semmler
b4b73465d0
Mostly match MxStreamer::Notify
2023-12-29 18:44:46 -05:00
Christian Semmler
56687e86fb
Mostly match MxStreamer::Close
2023-12-29 18:40:54 -05:00
Christian Semmler
562d6a966e
Match MxRAMStreamProvider::SetResourceToGet
2023-12-29 18:33:30 -05:00
Christian Semmler
c890831c41
Remove obsolete comment
2023-12-29 18:04:54 -05:00
Christian Semmler
4b08cb4a7e
Rename functions for consistency
2023-12-29 18:01:24 -05:00
Christian Semmler
6ac505fb49
Add missing annotations to MxDisplaySurface
2023-12-29 17:59:09 -05:00
Christian Semmler
a8837a72cf
MxVideoPresenter::GetHeight hotfix
2023-12-29 17:34:10 -05:00
Christian Semmler
51adb31541
Implement MxVideoPresenter::PutFrame ( #389 )
...
* Implementation of MxVideoPresenter::PutFrame
* Add TODOs
2023-12-29 16:30:17 -05:00
Misha
ceb5339369
Infocenter vtable ( #387 )
...
* implement parts of legoworld/infocenter
* Update infocenter.cpp
* Update infocenter.cpp
* Update infocenter.cpp
* Update infocenter.cpp
* Update infocenter.cpp
* Match LegoWorld::Tickle
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-29 19:04:18 +01:00
Misha
a95bdcc4ad
Implement InvokeAction ( #386 )
...
* push changes
* Update legoutil.cpp
* Fixes / match
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-29 16:22:18 +01:00
Christian Semmler
d82d062e92
Implement/match MxRegionCursor class ( #385 )
...
* Implement/match MxRegionCursor class
* Rename function
2023-12-29 05:37:21 +01:00
MS
3f63950a7d
Fix new/delete symbol reference ( #384 )
2023-12-28 18:02:02 -05:00
MS
9a6d555508
Cvdump parser and comparing library functions ( #383 )
...
* Cvdump wrapper and parser. Matching library functions
* Remove 'Self' type int (3.11+)
* Add temp reference for entrypoints
* ISLE using multithreaded libc
* 🙄
2023-12-28 22:10:57 +01:00
Joshua Peisach
ff4845a6ea
MxLoopingFlcPresenter::Destroy ( #382 )
...
* MxLoopingFlcPresenter::Destroy
* Use parent class call
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-28 19:55:03 +01:00
Misha
a06a360dc6
Implement Lego3DManager ( #380 )
...
* Implement Lego3DManager
* Update lego3dview.cpp
* fix
* fixes
* fix wrong vtable address
* Fixes/matches
* Fix Lego3DView
* Use undefined
* More fixes
* Rename
* Rename pad
* Add blank line
* Delete stuff
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-28 18:38:37 +01:00
Christian Semmler
e76cf3427c
Add and fix some annotations
2023-12-28 11:56:54 -05:00
Christian Semmler
e17e8ed5ae
Implement/match MxDiskStreamProvider destructor ( #381 )
2023-12-28 17:46:12 +01:00
Christian Semmler
e3488498f9
Implement/match MxDiskStreamController destructor ( #379 )
2023-12-28 17:19:40 +01:00
Misha
4d7968c7af
implement LegoWorldPresenter::StartingTickle ( #378 )
2023-12-27 16:05:21 -05:00
MS
bcb7bec68b
Improve handling of variables for decomp parser ( #376 )
...
* Parser refactor:
- Handling LIRBARY and STRING markers
- Extracting global variable name for future comparison
- Marking function static variables
- More fluent error messages
* String constants annotated with STRING
* fix variable name
* Should compare LIBRARY markers
2023-12-27 15:59:42 -05:00
Misha
dfad323880
Finish LegoPalettePresenter ( #377 )
...
* LegoPalettePresenter implementation
* Update legopalettepresenter.cpp
* Update legopalettepresenter.h
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-27 21:44:51 +01:00
Christian Semmler
306d08c581
Reorder delcarations, add some annotations
2023-12-27 15:31:51 -05:00
Joshua Peisach
d5854a46ae
HospitalState ctor ( #375 )
...
* HospitalState ctor
* Add member offsets in HospitalState header
* Remove unhelpful comment
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-27 19:36:32 +01:00
Joshua Peisach
c6174c2a13
Bootstrap rest of LegoTexturePresenter ( #374 )
...
* Bootstrap rest of LegoTexturePresenter
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-27 19:32:32 +01:00
Joshua Peisach
d2b05a0983
LegoFlcTexturePresenter init function ( #373 )
...
* LegoFlcTexturePresenter init function
say that 5 times fast
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-27 19:30:16 +01:00
Joshua Peisach
f1f6743d08
CarRace ctor ( #372 )
...
* CarRace ctor
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-27 19:27:02 +01:00
Misha
5a1ba02772
implement LegoWorldPresenter::StartAction ( #371 )
2023-12-27 16:31:06 +01:00
Christian Semmler
ac6eb28dc4
Implement/match MxStreamer::DeleteObject ( #370 )
2023-12-27 03:17:20 +01:00
Christian Semmler
6e947c3789
Implement/match MxStreamController::FUN_100c20d0 ( #369 )
...
* Implement/match MxStreamController::FUN_100c1f00
* Implement/match MxStreamController::FUN_100c20d0
2023-12-27 02:54:17 +01:00
Christian Semmler
88d267f9f3
Implement/match MxStreamController::FindNextActionDataStartFromStreamingAction ( #368 )
...
* Implement/match MxStreamController::FUN_100c1f00
* Implement/match MxStreamController::FindNextActionDataStartFromStreamingAction
2023-12-27 02:39:48 +01:00
Christian Semmler
cfe28a2b26
Implement/match MxStreamController::FUN_100c1f00 ( #367 )
2023-12-27 02:33:53 +01:00
Misha
59d999f6dc
LegoWorldPresenter vtables ( #366 )
...
* Legoworld vtables
* fixes
* fix
* formatting
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-27 01:45:48 +01:00
Christian Semmler
b35a121ee2
Fix LegoModelPresenter::IsA
2023-12-26 19:44:55 -05:00
Misha
40d51659d3
Add most of LegoObjectFactory ( #365 )
...
* push changes
* push changes
* fix
* Update legoracecar.h
2023-12-26 18:10:28 -05:00
Misha
22d72893f9
Finish LegoEntityPresenter ( #363 )
...
* Lego entity implementation
* Finish LegoEntityPresenter::ReadyTickle
* Update legoentitypresenter.h
* use empty
* Formatting
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-26 23:42:29 +01:00
Misha
ceca2aac31
Implement a few LegoVideoManager/MxDisplaySurface functions ( #364 )
...
* implement a few functions
* fixes
* Fixes
* Add annotations
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-26 23:20:20 +01:00
Misha
e824e321e8
Implement chunk parsing ( #362 )
...
* partial parsechunk implementation
* fix format
* param name fix
* rename functions
* match MxStreamController::RemoveSubscriber
* implement rest of MxDSBuffer
* Fixes and better matches
* Matche ParseChunk 100%
* Match MxDiskStreamProvider::VTable0x20
* Match MxDSBuffer::CalcBytesRemaining
* Minor stuff
* Minor improvements
* Refactor functions
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-26 22:27:54 +01:00
Christian Semmler
17522b98d4
Refactor MxBitmap inline functions, match ImportBitmap
2023-12-25 21:58:39 -05:00
Christian Semmler
c507454dd1
Match MxBitmap::CreatePalette
2023-12-25 21:16:14 -05:00
Christian Semmler
a25bcecf47
Fix/match MxBitmap::SetBitDepth
2023-12-25 20:54:44 -05:00
Christian Semmler
77755570f2
Fix a few annotations
2023-12-25 19:42:40 -05:00
Christian Semmler
33bf35af95
Remove OutputDebugString
2023-12-25 17:51:15 -05:00
Joshua Peisach
c8ec60b62c
LegoLoadCacheSoundPresenter ctor, dtor, init, destroy ( #360 )
...
* LegoLoadCacheSoundPresenter ctor, dtor, init, destroy
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-25 23:46:15 +01:00
Misha
57b11866ed
Implement MxDSBuffer::FUN_100c67b0 ( #361 )
...
* push changes
* improve match of SwapBuffers
* rename function
* Improve match of MxDSBuffer::FUN_100c67b0
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-25 23:39:31 +01:00
Christian Semmler
2827ef74de
Hotfix GetString missing pointer indirection
2023-12-25 15:22:20 -05:00
Christian Semmler
762681a821
Create MxSoundManager in LegoSoundManager for now
2023-12-25 13:34:13 -05:00
Misha
cb8c143ce5
Finish MxDiskStreamController methods ( #359 )
...
* more mxdiskstreamcontroller methods
* further debugging and fixes
* add more functions
* Update mxdiskstreamprovider.cpp
* fix build
* implement MxDiskStreamProvider::PerformWork
* Update mxdiskstreamprovider.cpp
* Update mxdiskstreamprovider.cpp
* Update mxdssource.h
* remove debug prints
* Update mxdiskstreamprovider.cpp
* Mostly match MxDiskStreamController::FUN_100c8540
* Mostly match MxDiskStreamProvider::FUN_100d1780
* Mostly match MxDiskStreamProvider::PerformWork
* Fixes
* Retype some members
* Various annotations
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-25 19:32:01 +01:00
Christian Semmler
f3c1fc75e2
Mostly match MxDSBuffer::AllocateBuffer
2023-12-24 18:09:01 -05:00
Christian Semmler
afd24fbe18
Implement MxStreamController::FUN_100c1a00 ( #357 )
...
* Implement MxStreamController::FUN_100c1a00
* Move include
2023-12-24 21:00:20 +01:00
Christian Semmler
84056c6ea2
Improve MxTickleManager::Tickle code gneeration
2023-12-24 11:48:40 -05:00
Christian Semmler
d23b4db2ff
Match MxDiskStreamProvider::SetResourceToGet
2023-12-24 10:01:23 -05:00
Joshua Peisach
43efcc5253
jukebox ctor ( #356 )
...
* jukebox ctor
* naming conventions
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-24 15:16:07 +01:00
Christian Semmler
848a92735f
Match MxStreamer::Open
2023-12-24 09:14:47 -05:00
Christian Semmler
bbe5d6f810
Add MxStreamController::~MxStreamController ( #355 )
2023-12-24 14:52:26 +01:00
Christian Semmler
24a3a8f3fd
Fix match of MxDiskStreamController::VTable0x28
2023-12-23 14:19:32 -05:00
Christian Semmler
439173f1d5
Implement/match rest of MxDSSubscriber ( #354 )
...
* Implement/match rest of MxDSSubscriber
* Fix MxRAMStreamController::VTable0x20 match
* Match MxRAMStreamController::DeserializeObject
2023-12-23 16:42:30 +01:00
Christian Semmler
9eefc82c8c
Bootstrap MxDSSubscriber ( #352 )
...
* Bootstrap MxDSSubscriber
* Fix offset comment
2023-12-23 14:40:39 +01:00
Christian Semmler
f75bbf478e
Replace more magic values
2023-12-22 14:10:20 -05:00
Christian Semmler
2686643d20
Replace magic values with proper flag clearing
2023-12-22 13:57:23 -05:00
Christian Semmler
cdc7b43db2
Implement/match MxLoopingSmkPresenter ( #351 )
...
* Implement/match MxLoopingSmkPresenter
* Rename variable
* Rename variable
2023-12-22 20:05:42 +01:00
Misha
e22ad6031c
More MxDiskStreamController functions ( #350 )
...
* push code
* remove accidently commited code
* Update mxstreamcontroller.cpp
* implement MxDiskStreamController::VTable0x30
* implement MxDiskStreamController::VTable0x28
* Update mxdiskstreamcontroller.cpp
* FUN_100c7d10 & FUN_100c8360
* fix format
* Match MxDiskStreamController::FUN_100c7980
* Improve match of MxDiskStreamController::VTable0x28
* Match MxDiskStreamController::FUN_100c7d10
* Minor style fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-22 20:03:55 +01:00
Christian Semmler
acdaf4ed4c
Finish implementation of MxSmack ( #349 )
...
* Finish implementation of MxSmack
* Fix var name
2023-12-22 07:26:54 -05:00
Christian Semmler
c51aed256b
Implement/match MxSmack::LoadFrame ( #348 )
2023-12-22 03:11:14 +01:00
Misha
6d0d308c37
Add unknown render class stub ( #347 )
...
* Add mxrender manager class stub
* fix format
* rename the class
* Update MxUnknown100dbdbc.cpp
* rename class
* fix clang format
* Remove accidently committed code
* Update LEGO1/legoomni.cpp
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
* fix
* fix 2
---------
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
2023-12-21 19:21:56 +01:00
Nathan M Gilbert
2c018c117c
Implement Helicopter subclass ( #336 )
...
* Implement Helicopter subclass
* Minor fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-21 16:59:26 +01:00
Christian Semmler
71ed20bf11
Implement/match rest of MxSmkPresenter ( #345 )
...
* Implement/match rest of MxSmkPresenter
* Fix include guard
* Update mxregion.cpp
* Match MxRegion::VTable0x18
* Fix
* Fix matches
* Remove class name
2023-12-21 16:52:42 +01:00
Misha
20a9a2b4c3
implement EnableFullScreenMovie and FUN_100ba640 ( #346 )
...
* implement EnableFullScreenMovie and FUN_100ba640
* Match MxDisplaySurface::FUN_100ba640
* Match LegoVideoManager::EnableFullScreenMovie
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-21 16:44:54 +01:00
Christian Semmler
afadca953b
Refactor MxPtrList to use p_ownership
( #344 )
...
* Refactor MxPtrList to use p_ownership
* Remove class names
2023-12-21 02:09:05 +01:00
Christian Semmler
db60467ba3
Bootstrap MxSmack ( #343 )
...
* Bootstrap MxSmack
* Add comment about incorrect structure
* Fix naming
* Fix name
* Add a comment about SDK
* Add names from Smacker SDK
* Use SMACK.LIB and interface
* Use RAD.H defined types
* Use different commets
* Fix member offset
* Update mxsmack.cpp
2023-12-21 02:07:48 +01:00
MS
994d17a85e
Decomp linter warning for offset reuse ( #342 )
...
* Linter warning for offset reuse in codebase
* Fix repeated offset problems
2023-12-17 17:45:33 -05:00
Christian Semmler
59ca9b6155
Sort inline function with the others
2023-12-17 10:57:29 -05:00
Misha
9eebe18161
fix incorrect location of functions ( #341 )
2023-12-17 18:28:11 +01:00
Misha
20daddde32
implement MxDSBuffer object creation ( #340 )
...
* push changes
* Update mxstreamcontroller.cpp
* fix build
* MxStreamChunk
* fix format
* Match functions
* Add a comment
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-17 18:24:39 +01:00
Misha
d72c767685
Implement a few legoomni/mxomni functions ( #339 )
...
* LegoOmni functions
* fix build
* Update mxstreamcontroller.cpp
* fixes + improve match
* Update mxomni.cpp
* Update mxdsobject.h
* improve match
* Update mxactionnotificationparam.h
* MxOmni::HandleActionEnd
* fixes
* Update LEGO1/mxstreamer.cpp
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
* A bunch of fixes
---------
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-16 19:14:01 +01:00
Misha
72c34949e5
implement Isle::Notify ( #338 )
...
* isle::notify
* Match Isle::Notify
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-16 17:01:22 +01:00
Christian Semmler
412dda3e99
Implement/match rest of MxCompositeMediaPresenter ( #331 )
...
* Implement/match rest of MxCompositeMediaPresenter
* Fix annotation
2023-12-16 16:59:01 +01:00
Misha
76b4edaa9e
AmbulanceMissionState/AnimState constructors ( #337 )
...
* implement a few states
* Update animstate.h
* Update animstate.cpp
2023-12-16 09:11:10 -05:00
Christian Semmler
ad9cc339e9
Add missing override specifier, fix some types
2023-12-15 17:29:32 -05:00
Misha
a1b7a8bc66
Additional isle functions ( #335 )
...
* additional Isle functions
* fix
* Update isle.cpp
* add notify + fix typo
* Update legoutil.h
* Match Isle::Create
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-16 00:11:34 +01:00
Christian Semmler
1dc5d90d45
Disable warning 4237
2023-12-15 23:09:34 +01:00
Misha
04d9524a90
some gamestate functions ( #333 )
...
* some gamestate functions
* fix order
* fix naming convention
* Update legogamestate.cpp
* fix
* Add stub ScoreStruct
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-15 23:01:09 +01:00
Christian Semmler
540a930494
Fix annotation
2023-12-15 17:43:44 +01:00
Joshua Peisach
0eada87b93
Bootstrap MxControlPresenter ( #332 )
...
* Start MxControlPresenter vtable functions
* Add changes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-15 17:41:07 +01:00
Christian Semmler
7615585f36
Implement/match MxCompositeMediaPresenter::StartAction ( #326 )
...
* Implement/match MxCompositeMediaPresenter::StartAction
* Add missing override
2023-12-15 16:22:07 +01:00
Misha
53caf30ab0
Isle & Radio constructors ( #330 )
2023-12-15 00:24:21 +01:00
Nathan M Gilbert
deaed23e41
Implement Helicopter ( #329 )
...
* Implement Helicopter
* Fix names
* Fix some issues
* Disable warning
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-14 17:50:29 +01:00
Misha
88581420d5
Finish MxRAMStreamProvider and MxRAMStreamController ( #328 )
...
* Finish MxRAMStreamProvider
* Fix formatting
* fix naming conventions
* use no parameter name for FUN_100c67b0
* fixes
* fixes
* Update mxramstreamcontroller.h
* fix build
2023-12-13 18:11:07 -05:00
MS
5f8e26fc5b
Use relocation table with reccmp ( #327 )
2023-12-13 17:30:34 -05:00
Misha
403b3dddb4
Implement MxDiskStreamController::VTable0x20 ( #325 )
...
* push code
* fixes
* Update mxdiskstreamcontroller.h
* Update mxdsstreamingaction.h
* Match MxDiskStreamController::VTable0x20
* Move declaration
* Remove cast
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-13 22:44:14 +01:00
Christian Semmler
0278d032b9
Bootstrap MxCompositeMediaPresenter ( #321 )
...
* Bootstrap MxCompositeMediaPresenter
* Fixes
2023-12-13 13:53:17 +01:00
Christian Semmler
fd656eacdc
Implement/match rest of MxCompositePresenter ( #320 )
...
* Implement/match more of MxCompositePresenter
* Use parameter to `DeleteAll` instead of separate function
* StartAction match
* Implement/match rest of MxCompositePresenter
* Move annotation
* Add parameter name
* Merge
* Remove junk
* Move annotation
* Fixes
2023-12-13 12:59:22 +01:00
Christian Semmler
bc5ca621a4
(Proposal) Introduction of naming convention checker (ncc
) ( #322 )
...
* Add ncc tool
* Add symlink
* Fixes
* Try this
* Try this
* Try this
* Try this
* Add include path
* Update style
* Update style
* Add more rules
* Fix style
* Update styles
* Fix name parameter
* Fix MxParam p
* Fix m_unk0x pattern
* Allow 4 digits for relative hex
* Add missing offset
* Fix some parameters
* Fix some vtables
* Fix more vtables
* Update rules, fixes
* More fixes
* More fixes
* More fixes
* More fixes
* More fixes
* More fixes
* More fixes
* Fix last issue
* Update readme
* Update readme
* Update CONTRIBUTING.md
* Fix annotations
* Rename
* Update CONTRIBUTING.md
* Update README.md
2023-12-13 11:48:14 +01:00
Christian Semmler
3b155bfe38
(Discussion/Proposals) Consistency regarding annotations of header-implemented functions ( #316 )
...
* Open discussion
* Move annotations of header-implemented functions back to `.h` files
* Adjust `README.md`
* Relocate annotation
* linter
* Comment markers in headers only, rename script, update github actions
* type hint compat
* Rename github action, better argparse for linter
* Type hints, working test for byname ignore
* Move annotation
* CI rename and enable warnfail, enforce mode always on
* Two step linting
* or one step
* continue on error
* two jobs instead
* Fixes
---------
Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2023-12-12 20:27:17 +01:00
Christian Semmler
4dd0d60dec
Implement/match more of MxCompositePresenter ( #315 )
...
* Implement/match more of MxCompositePresenter
* Use parameter to `DeleteAll` instead of separate function
* StartAction match
2023-12-11 16:35:50 -05:00
Christian Semmler
a7194266b3
Refactor utility/decomp headers ( #318 )
2023-12-11 16:33:46 -05:00
Misha
3b30607337
implement a few mxstreamercontroller vtables ( #323 )
...
* implement a few mxstreamercontroller vtables
* Update mxstreamcontroller.cpp
2023-12-11 16:17:25 -05:00
Christian Semmler
2a16a508a5
(Proposal) Use alternative C4786 warning suppression ( #312 )
...
* Use alternative warning suppression
* Remove newline
* Fix script
* Patch C2.EXE to disable C4786 warning
* Delete compile.cmd
* py-fixes
* Update tools/patch_c2.py
* Update tools/patch_c2.py
---------
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2023-12-08 06:37:44 -05:00
MS
ce686705f2
Refactor MxList cursors ( #313 )
...
* LegoWorldList
* Refactor list cursors
* Add decomp markers for list cursors
* Fix decomp markers
* MxRegionListCursor edit to prevent accuracy drop
* Better fix for MxRegionListCursor
2023-12-07 14:14:49 -05:00
Christian Semmler
1485e5df47
Implement/match most of MxStillPresenter ( #309 )
...
* Implement/match most of MxStillPresenter
* Fix merge
2023-12-07 13:13:31 +01:00
Mark Langen
260772e374
Bootstrap decomp of Tgl rendering library ( #293 )
...
* Bootstrap decomp of D3DRM rendering code
* This PR kicks off work on decompiling the D3D Retained Mode (D3DRM)
rendering part of the codebase.
* High level overview:
* There is a base IMxDirect3DRMObject class which all of the D3DRM
rendering objects inherit from. Its only virtual method is one to get
the underlying object handle.
* A hierarchy of abstract classes inherits from this base class, which
I've called "IMxDirect3DRM<class>". These classes only have pure
virtual methods on them and don't contain any data.
* Each one of the abstract classes has exactly one concrete
implementation, which I've called "MxDirect3DRM<class>". These classes
have exactly one piece of data, which is a pointer to the underlying
D3D Retained Mode object.
* If the classes need to store additional data, they store it in a
userdata blob which is attached to the D3DRM object rather than the
additional data being stored in the class itself.
* I've worked out about twice this many classes related to D3DRM
rendering so far but the PR was getting large enough as is, so I'm
cutting it here for now.
* I decomped sufficiently many methods of these classe to convince
myself that the above observations are correct. About 60% of the
decomped methods here are perfect matches, including at least one
non-trivial method per class.
* Formatting
* Restructure changes using Tgl naming / details
* Restructure the changes to use the naming that we know from Tgl.
* Fill in some parts of the implementation I couldn't initially figure
out using the details from Tgl (got more 100% matches).
* Move d3drm link requirement
* Fixups FloatMatrix -> FloatMatrix4
* Fix order
* Full fix for ordering problems
* Put back accidentally removed include.
* Fix call which should have been Release
* Use new and delete for DeepClone
* Missing Tgl:: on CreateRenderer
* Revert change to bool return value.
* Rename Something -> Unk
* Return paramter naming convention to what Tgl used
* Add scalar ddtor to verify inline destructor
* Fix order
* Change malloc/free -> new/delete in Tgl
* Remove duplicate destructor.
* Check all inline destructors
* Fix dtor comments
* Third time's the charm
* Alphabetical sort
* Decomp adjustments
* Add d3drm files to clang-format
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-07 13:10:42 +01:00
Christian Semmler
8bf0bde6b9
Bootstrap MxCompositePresenter ( #310 )
...
* Bootstrap MxCompositePresenter
* Remove MxUnkList
* Use TickleState_Idle
* Add all annotations
* Add vtable
* Add Notify
* Update mxcompositepresenter.h
* Remove extra TEMPLATE
* Update mxcompositepresenter.cpp
2023-12-07 13:06:44 +01:00
Christian Semmler
a7b81539b1
Match MxBitmap::ImportColorsToPalette
2023-12-06 08:29:24 -05:00
Christian Semmler
494a556f8e
(Proposal) Adjustments to "decomp" language ( #308 )
...
* Adjustments to "decomp" language
* Fix a comment
* Fix accidental clang-formatting
* Fix order
* Fix order
* Remove junk
* Fix OFFSET
* Adjustments based on new suggestions
* Annotate globals
* Globals in ISLE
* More globals
* Merge from parser2 branch
* Allow prepending space for exact marker match
* To eliminate noise, require the 0x prefix on offset for marker match
* fix test from previous
* Count tab stops for indented functions to reduce MISSED_END_OF_FUNCTION noise
* FUNCTION to SYNTHETIC where needed
* Missed marker conversion on SetAtomId
* pylint cleanup, remove unused code
* Fix unexpected function end, add more unit tests
* Be more strict about synthetic name syntax
* Revert "Missed marker conversion on SetAtomId"
This reverts commit d87d665127fae7dd6e5bd48d9af14a0a829bf9e2.
* Revert "FUNCTION to SYNTHETIC where needed"
This reverts commit 8c815418d261ba8c5f67a9a2cae349fe4ac92db8.
* Implicit lookup by name for functions
* Fix VTABLE SYNTHETIC and other decomp markers
* Get vtable class name
* Vtable marker should identify struct
* No colon for SIZE comment
* Update README.md
* Update README.md
* Update CONTRIBUTING.md
* Update README.md
* Update README.md
* Update CONTRIBUTING.md
* Update README.md
* Update CONTRIBUTING.md
* Fix destructor/annotation
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
---------
Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2023-12-06 13:10:45 +01:00
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