Nathan M Gilbert
d07d7edc81
Implement methods to load dta files. ( #673 )
...
* Implement methods to load dta files.
* fix style issues
* fix vtables
* fix more style issues
* fix ddtor names
* Remove explicit padding, add annotations, asserts
* Use List template
* trigger CI
* Fix class refactor
* Match code, fix annotations
* Fix
* 98% match
* Fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-16 01:43:45 +01:00
Christian Semmler
10ae05a888
Add missing size assert
2024-03-15 16:35:28 +01:00
Christian Semmler
0e146f08d6
Implement/match LegoNavController::CalculateNewPosDir ( #675 )
...
* Implement/match LegoNavController::CalculateNewPosDir
* Fix naming
* Fix naming
2024-03-15 16:33:32 +01:00
Christian Semmler
7edad07d18
Implement/match LegoEntity::GetWorldPosition/Direction/Up ( #672 )
...
* Implement/match LegoEntity::GetPosition/Direction/Up
* Rename
2024-03-13 20:29:28 -04:00
Christian Semmler
0f2aee1849
Implement/match LegoPointOfViewController::SetEntity ( #668 )
...
* Implement/match LegoPointOfViewController::SetEntity
* Fix order
2024-03-13 19:03:30 +01:00
Christian Semmler
0623e6a766
Implement/match LegoPointOfViewController::Tickle ( #667 )
2024-03-13 18:46:20 +01:00
MS
e3d7188ec9
Use AUTOLOCK macro ( #660 )
...
* Use AUTOLOCK macro
* MxAutoLock
* Remove semicolon
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
---------
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2024-03-12 15:23:50 +01:00
Christian Semmler
d090b449d1
Add CalcWorldBoundingVolumes ( #651 )
2024-03-10 15:29:16 +01:00
Christian Semmler
8069923651
Refactor files based on beta debug build ( #645 )
...
* Rename LegoUnkSaveDataWriter -> LegoCharacterManager
* Refactor mxomni into mxomni/mxmisc
* Refactor legoomni into legoomni/misc
* Resolve deps
* Refactor atom
* Refactor mxutil
* Refactor mxio
* Rename/relocate files
* Fix format
2024-03-09 21:07:52 +01:00
Christian Semmler
6fa4a0dbec
Implement/match LegoPartPresenter::Store ( #643 )
2024-03-09 19:03:21 +01:00
Christian Semmler
9e2f37e7ca
Implement LegoTexturePresenter::Read and Store ( #641 )
...
* LegoTexturePresenter::Read
* Implement LegoTexturePresenter::Store
* Rename
* Fix naming
2024-03-09 16:49:13 +01:00
Christian Semmler
a12146f52f
Implement/match LegoEntity::VTable0x34 ( #633 )
...
* Implement/match LegoEntity::VTable0x34
* Change parameter name
* Fix order
2024-03-06 20:12:20 +01:00
Christian Semmler
71bcd4c771
Implement/match LegoEntity::SetWorldTransform and ResetWorldTransform ( #632 )
...
* Implement/match LegoEntity::SetWorldTransform and ResetWorldTransform
* Add param name
2024-03-06 19:25:45 +01:00
Christian Semmler
a93e2ae0d3
Implement/match LegoEntity::SetLocation ( #629 )
...
* Implement/match LegoEntity::SetLocation
* Remove comment
2024-03-05 20:31:57 +01:00
Christian Semmler
3b2bd0e9d4
Implement/match LegoEntity::SetROI ( #628 )
2024-03-05 19:35:28 +01:00
Christian Semmler
c9210c02fb
Bootstrap LegoLOD, implement/match ViewManager::FUN_100a66a0 ( #625 )
...
* Bootstrap LegoLOD, implement/match ViewManager::FUN_100a66a0
* Fixes
* Try fix
* Try this
* Fix
2024-03-04 22:57:35 +01:00
Christian Semmler
d3b575169e
Implement/match LegoModelPresenter::FUN_1007ff70 ( #622 )
2024-03-04 18:26:36 +01:00
Misha
c2a46b058b
implement various LegoWorldPresenter functions ( #621 )
...
* implement LegoWorldPresenterFunctions
* fix typo
* Fixes/match
* Fix
* Match
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-03 20:34:55 -05:00
Christian Semmler
01f07a323c
Implement ModelDb (WDB reader/parser) ( #619 )
...
* WIP Read WDB
* Fixes
* WIP
* WIP
* WIP
* WIP
* Match
* Match
* Fix Compare
* Rename member
2024-03-03 21:35:56 +01:00
Christian Semmler
de5cd98b76
Implement/match ViewManager::RemoveAll ( #616 )
...
* Implement/match ViewManager::RemoveAll
* Use const_iterator
* const
* Naming
2024-03-02 20:26:19 +01:00
Christian Semmler
6de17cf1b6
Implement/match some ViewManager functions ( #615 )
2024-03-02 19:40:42 +01:00
Christian Semmler
fb6eed9bff
Match StartAction functions, remove NextFragment ( #610 )
2024-03-01 19:07:07 +01:00
Christian Semmler
49d6c88912
Match ParseExtra functions ( #605 )
...
* Match ParseExtra functions
* Match MxStillPresenter::ParseExtra
* Match remaining ParseExtra functions
2024-02-29 19:15:20 +01:00
Nathan M Gilbert
4d84157888
Implement Save, Load, DeleteState ( #602 )
...
* Implement Save, Load, DeleteState
* WIP
* WIP
* Match LegoGameState::Save
* Spacing
* Match LegoGameState::DeleteState()
* More match
* Match
* Move vars
* Other fixes
* Rename
* Fix error
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-27 21:04:17 +01:00
Nathan M Gilbert
124b73046b
Continued work on LegoGameState ( #596 )
...
* Continued work on LegoGameState
* Fixes/matches/refactor
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-26 17:19:16 +01:00
Nathan M Gilbert
13fc4e3285
LegoGameState::SwitchArea ( #590 )
2024-02-24 14:55:00 +01:00
Joshua Peisach
51520aaae6
LegoActor: destructor, SetROI ( #588 )
...
* LegoActor: destructor, SetROI
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-23 18:51:49 +01:00
Christian Semmler
58482ff676
Bootstrap anim.lib ( #577 )
...
* Bootstrap anim.lib
* Fix order
* Fix LegoMorphKey
2024-02-18 18:43:42 +01:00
Christian Semmler
332d8da695
Fix LegoROI / add TimeROI ( #572 )
...
* Fix LegoROI / add TimeROI
* Fix order
* Remove extra fwd decl
2024-02-17 16:07:34 +01:00
Christian Semmler
b47412183b
Implement/match LegoOmni::GetScriptIndex ( #571 )
...
* Implement/match LegoOmni::GetScriptIndex
* Fix type
* Fix
2024-02-17 02:10:42 +01:00
Christian Semmler
c67f613b8d
Implement/match LegoOmni::FindROI and related ( #570 )
...
* Implement/match LegoOmni::FindROI and related
* Add missing file
2024-02-17 01:34:30 +01:00
Misha
f378b2e535
implement LegoWorldPresenter::ParseExtra ( #551 )
2024-02-10 18:54:38 +01:00
Misha
223b07ee3d
Implement LegoModelPresenter::ReadyTickle ( #546 )
...
* Implement LegoModelPresenter::ReadyTickle
* Update legoworld.h
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-10 00:41:35 +01:00
Christian Semmler
434deecee4
Implement/match remaining LegoWorld functions ( #526 )
...
* Implement/match remaining LegoWorld functions
* Move functions
* Move function
* Fix function location
* Fix function return type
2024-02-04 18:33:37 +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
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
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
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
MS
a19165a749
LegoWorld::LegoWorld to 100% ( #480 )
2024-01-22 16:18:46 +01:00
Misha
7b0d4dd502
Implement Infocenter::InitializeBitmaps ( #478 )
2024-01-21 18:38:22 +01: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
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
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
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
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
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
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
8b34b38ac0
implement LegoActorPresenter ( #434 )
...
* LegoActorPresenter
* Add ddtor
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-13 23:06:13 +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
d24f5db42f
Matrix/vector refactor ( #426 )
2024-01-12 19:34:38 -05: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
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
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
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
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