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
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 7b886259882e2d04444546c1323734ec3c243cf6.
---------
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