Commit graph

53 commits

Author SHA1 Message Date
Christian Semmler
94ce89cbaa
(Proposal) Introduce arithmetic operators to Vector2 (#1193) 2024-12-07 17:26:22 +01:00
Cameron
4878727393
some educated guesses for unknown view manager names (#1106)
* some educated guesses for unknown view manager names

* Formatting

* Pin pylint version

* Use snake case for consistency (limited to this class)

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-09-20 19:17:24 +02:00
Christian Semmler
bee101b1f4
Add clang-tidy readability-redundant-inline-specifier (#1060)
* Add clang-tidy readability-redundant-inline-specifier

* fix

* Update CONTRIBUTING.md

* format

* fix
2024-07-05 01:06:32 +02:00
Anonymous Maarten
8113a17167
Backports of isle-portable x64 fixes (#1044)
* Introduce LPD3DRM_APPDATA typedef for setting d3drm appdata

* Fix warning about assigning const string literals to variable char pointers

* Don't cast pointers to integers on non-32-bit architectures

* memset 2nd argument is int

* Assume cpuid is available on x86_64, needs testing on i386 and unavailable on anything else

* Store HFILE in its own member variable
2024-06-25 17:56:30 +02:00
Christian Semmler
9a9bccda0e
Implement/match IslePathActor::Exit (#997)
* Implement/match IslePathActor::Exit

* Name

* Name

* Partially fix vector interface

* Revert "Partially fix vector interface"

This reverts commit 6e7a1e2b08fd82012b28be3054eeff65428eb4d1.

* Revert "Revert "Partially fix vector interface""

This reverts commit e3860e3c9fa1f8937b702d6c81d6e3bb4dadecc6.

* Fix

* Remove some COMPAT_MODE
2024-06-06 17:45:37 +02:00
Cameron
d106aada11
basic name improvements (#930)
* basic name improvements

* clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-05-18 15:20:05 -04:00
Christian Semmler
01735bdc28
Implement/match ViewManager::FUN_100a6150 (#934) 2024-05-18 18:27:14 +02:00
MS
79791be574
Beta addrs for ViewLODList (#898)
* Beta addrs for ViewLODList

* unsigned char
2024-05-09 22:16:12 -04:00
Christian Semmler
001b46b2ab
Implement/match LegoAnimationManager::FUN_10062110 (#892)
* Implement/match LegoAnimationManager::FUN_10062110

* Fix param name

* Return other value in stub
2024-05-09 18:49:43 +02:00
Nathan M Gilbert
b394770864
Implement PathActor VTable0x80 and PathActorStruct FUN_1009a140 (#781)
* Implement PathActor VTable0x80 and PathActorStruct FUN_1009a140

* Match functions, fixes

* fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-04-07 14:03:21 +02:00
Christian Semmler
b309982219
Implement/match ViewManager::Pick (#777) 2024-04-06 19:03:39 +02: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
Misha
d92963982a
Implement ViewManager::FUN_100a6dc0 (#697)
* Update viewmanager.cpp

* Fix function

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-03-19 19:24:53 +01:00
Christian Semmler
660c1e1170
Implement ViewManager::FUN_100a65b0 (#650) 2024-03-10 05:12:15 +01:00
Christian Semmler
a55b01d186
Implement ViewManager::FUN_100a66f0 (#648) 2024-03-10 04:47:13 +01:00
Christian Semmler
4b0c6d1f5f
Implement/match ViewManager::Update (#647)
* Implement/match ViewManager::Update

* Fix
2024-03-10 02:14:53 +01:00
Christian Semmler
86f84e1740
Implement/match ViewManager::FUN_100a6b90 (#646)
* Implement/match ViewManager::FUN_100a6b90

* Fix comment

* Fix order
2024-03-10 00:40:29 +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
Misha
8ecae549df
implement functions in ViewROI and ViewLodList (#631) 2024-03-05 22:15:32 +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
a78b1c7d49
Add missing include guard 2024-03-04 15:20:42 -05: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
b8aa16ff80
Implement/match ViewManager::Remove (#624) 2024-03-04 22:06:40 +01:00
Christian Semmler
00c05aa80b
Implement/match remaining Lego3DView functions (#623) 2024-03-04 18:54:25 +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
05965f5357
Implement/match ViewManager ctor/dtor/structure (#614)
* Implement/match ViewManager constructor/structure

* Add dtor
2024-03-02 15:43:19 +01:00
Christian Semmler
0067c24ead
Implement/match ViewLODListManager::Create (#611)
* Implement/match ViewLODListManager::Create

* Add stdio.h header

* Add remaining annotations
2024-03-01 22:32:10 +01:00
Christian Semmler
ec29f2633d
Improve matches in ROI classes (#608)
* Improve matches in ROI classes

* More function implementations

* Fix name

* Fix vtables

* Add annotation
2024-03-01 18:19:41 +01:00
Christian Semmler
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
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
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
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
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
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
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
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
eeb980fa0f
Let game boot again (#404) 2024-01-04 22:46:16 +01: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
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
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
a7194266b3
Refactor utility/decomp headers (#318) 2023-12-11 16:33:46 -05:00