Nathan M Gilbert
1e3ca11886
Implement/match LegoAnimActor ( #730 )
...
* Implement/match LegoAnimActor
* Name changes (deviation from original source)
* Attempt to fix modern build
* Add missing override
* Match LegoAnimActor::SetWorldSpeed
* Remove junk
* Style changes and implement WEEdge
* Add override
* Match LegoAnimActor::FUN_1001c1f0, style
* Style
* Add missing annotations, STUB LegoPathBoundary
* Style
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-26 18:51:52 +01:00
Christian Semmler
68bb20f04f
Implement LegoCharacterManager::CreateROI ( #709 )
...
* WIP
* Create globals
* Add Read
* Name Init
* Add LegoCharacter init data
* Add define for NULL
* Use MxS8
* Add LegoCharacterLOD
* WIP CreateROI
* Fix
* WIP
* Match
* Match
* Match, implement Find
* Fix MeshBuilder
* Fix
* space
2024-03-22 18:40:19 +01:00
Misha
9256554406
Implement LegoCameraController::Notify & TimeROI::FUN_100a9b40 ( #707 )
...
* Implement LegoCameraController::Notify & TimeROI::FUN_100a9b40
* Fixes/matches
* Style
* Fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-21 15:39:23 +01:00
Misha
eaa935f646
Finish LegoVariables class ( #698 )
...
* Finish LegoVariables class
* Update legonavcontroller.cpp
* Update legobackgroundcolor.cpp
* Match functions, style, refactor visible
* Use MxBool
* Merge/fix
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 19:44:42 +01:00
Christian Semmler
0623e6a766
Implement/match LegoPointOfViewController::Tickle ( #667 )
2024-03-13 18:46:20 +01:00
Christian Semmler
9d80cf4824
Implement/match LegoAnimNodeData::FUN_100a0990 ( #662 )
2024-03-12 14:11:13 -04:00
Christian Semmler
02838d0f57
Implement LegoAnimNodeData::GetRotation ( #661 )
...
* WIP
* Improve matches
2024-03-12 18:21:58 +01:00
Christian Semmler
7659db49e7
Implement LegoAnim::CreateLocalTransform ( #657 )
...
* Implement LegoAnim::CreateLocalTransform
* Match Matrix4::Scale
2024-03-11 15:15:18 -04: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
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
fb800db862
Implement OrientableROI::FUN_100a46b0 ( #640 )
...
* Implement OrientableROI::FUN_100a46b0
* Fix
2024-03-09 03:52:42 +01:00
Christian Semmler
32ae9f3803
Implement/match LegoROI::FUN_100a9170 ( #639 )
...
* Implement.match LegoROI::FUN_100a9170
* Add two LOD functions
2024-03-08 21:29:16 +01:00
Christian Semmler
d978cbe7f9
Implement/match LegoROI::FUN_100a9210 ( #638 )
...
* Implement/match LegoROI::FUN_100a9210
* Fix order
2024-03-08 21:01:18 +01:00
Christian Semmler
309997fddc
Implement various LegoROI functions ( #637 )
...
* WIP
* Fix
* Fix
2024-03-08 20:28:52 +01:00
Christian Semmler
45cba2c00e
Implement/match remaining LegoLOD functions ( #636 )
...
* Implement/match remaining LegoLOD functions
* Add param name
2024-03-08 18:03:26 +01:00
Christian Semmler
873926afe2
Implement TglImpl::MeshBuilder::CreateMesh ( #635 )
...
* WIP
* Change
* Fix
* Improve match
* Rename class
* Fix function
* Fix annotation
* Fix annotations
* Fix annotation
2024-03-08 17:55:25 +01:00
Christian Semmler
53e2353f78
Implement LegoLOD::Read and related ( #634 )
...
* WIP
* Fix
* Remove bogus
* Fix
* Match
* Fix
* Remove TODO
2024-03-07 20:57:17 +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
3b2bd0e9d4
Implement/match LegoEntity::SetROI ( #628 )
2024-03-05 19:35:28 +01:00
Christian Semmler
f6e44b1c1b
Implement LegoROI::Read and geom library ( #627 )
...
* Implement LegoROI::Read and geom library
* Match
* Match
* Fixes
* Fix
2024-03-05 18:38:53 +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
00c05aa80b
Implement/match remaining Lego3DView functions ( #623 )
2024-03-04 18:54:25 +01:00
Christian Semmler
c643723a9c
Improve match of LegoView1::Create ( #613 )
2024-03-01 22:53:42 +01:00
Christian Semmler
ec29f2633d
Improve matches in ROI classes ( #608 )
...
* Improve matches in ROI classes
* More function implementations
* Fix name
* Fix vtables
* Add annotation
2024-03-01 18:19:41 +01:00
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
Christian Semmler
96c98cec3d
Implement LegoAnimPresenter::FUN_100692b0 ( #594 )
...
* Implement LegoAnimPresenter::FUN_100692b0
* Match
2024-02-25 18:04:30 +01:00
Christian Semmler
377eebb610
Minor style/naming fixes ( #593 )
2024-02-25 15:14:39 +01:00
Christian Semmler
b281866ea6
Implement/match LegoModelPresenter::CreateROI ( #591 )
...
* Implement/match LegoModelPresenter::CreateROI
* Match
* Use inline function
* Note about Get()
2024-02-24 17:48:16 +01:00
Nathan M Gilbert
13fc4e3285
LegoGameState::SwitchArea ( #590 )
2024-02-24 14:55:00 +01:00
Christian Semmler
91a585ae49
Remove TODO
2024-02-23 12:58:59 -05:00
Christian Semmler
9d0ff0425c
Implement LegoTextureContainer::Insert ( #589 )
...
* WIP
* Fix
* Fix
* Match
* Match
2024-02-23 18:54:45 +01:00
Christian Semmler
6b1c75ab5a
Refactor LegoContainer ( #587 )
...
* Refactor LegoContainer
* Fix name
* Fix build
* Refactor some includes
* Update STL compat
* Fix
* Fix annotations
2024-02-23 16:06:16 +01:00
Christian Semmler
9d8820ee06
Implement TextureData::Create ( #586 )
...
* Implement TextureData::Create
* Fix names
* Rename
* Fix name
* Fix annotation
* Add missing annotation
* Fix annotation
* More annotation fixes
* Compat template type ambiguity
* Fix
2024-02-22 16:59:44 -05:00
Christian Semmler
d76d334197
Minor fixes
2024-02-20 12:14:52 -05:00
Christian Semmler
eefb05de73
Implement remaining anim.lib read functions ( #582 )
2024-02-20 18:03:24 +01:00
Christian Semmler
dbb2acf71c
Implement more anim.lib Read functions ( #578 )
...
* Implement Read functions
* Add annotation
2024-02-18 21:31:29 +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
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
Christian Semmler
5d80733cb1
Implement/match Tgl::View::Render ( #566 )
2024-02-16 16:28:20 +01:00
Anonymous Maarten
57d5949d84
Implement some Act1State functions ( #520 )
...
* Implement some Act1State functions
* ci: push fix commits to pr
* ci fix
* Show diffs generated by clang-format
* Run clang-format
* Fix naming
* re-use _countof + add parentheses
* Fix naming
* Use MxS32
* Annotate Act1State::NamedPlane::~NamedPlane
* Apply suggestions
* Read and Write Mx3DPointFloat's
* Annotations, spacing
* Add Mx3DPointFloat copy ctor, match some functions
* Fix WriteVector3
* Adding more spacing for readability
* Use MxResult as a return type for Serialize
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-03 02:03:52 +01:00
Anonymous Maarten
9e686e2a87
cmake+ci: run clang-tidy ( #512 )
...
* cmake+ci: run clang-tidy
* Remove DESCRIPTION from LEGO1/LegoOmni.mingw.def
* Add initial .clang-tidy and fixes
* fix file perms
* Comment out DESCRIPTION
* Remove LegoEntity::~LegoEntity and MxPresenter::~MxPresenter from mingw's LEGO1.def
* Looks like clang is allergic to the libs in the directx5 SDK
* Update .clang-tidy
* Fix typo in .clang-tidy
* Attempt to generate an action error
* Revert "Attempt to generate an action error"
This reverts commit 96c4c65fed
.
* cmake: test with -Wparentheses + optionally with -Werror
* ci: -k0 is a Ninja argument
* Use -Werror only for msys2 builds
* cmake: only emit warnings for specific warnings
* cmake: and don't do -Werror/-WX anymore
* Fix warnings
* Fix mingw warnings
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-01 21:42:10 +01:00
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
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
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
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
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 a006b60e20
.
* 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
1c612a2d25
Implement Lego3DView::Render ( #470 )
...
* Implement Lego3DView::Render
* use MxDouble
* Revert "use MxDouble"
This reverts commit a006b60e20
.
2024-01-20 21:43:53 +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
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
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
Christian Semmler
7d2629318c
Match Lego3DView::Create ( #431 )
2024-01-13 20:58:10 +01:00
Christian Semmler
d24f5db42f
Matrix/vector refactor ( #426 )
2024-01-12 19:34:38 -05: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
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