Commit graph

144 commits

Author SHA1 Message Date
Christian Semmler
bb36eda0dd
Merge remote-tracking branch 'isle/master' 2024-11-14 13:42:52 -07:00
jonschz
6cda0d95c7
Complete LegoCarBuild (#1144)
* Complete `LegoCarBuild`

* Fix match error

* Address review comments

* Fix regression

* Fix minor sign comparison issue

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-11 15:44:03 +01:00
Christian Semmler
cd261b9518
Refactor/improve matches in Act1State (#1143)
* Refactor/improve matches in Act1State

* Fix naming
2024-11-10 22:47:12 +01:00
Christian Semmler
6885abdc78
Implement/match LegoROI::FUN_100a9dd0 (#1141)
* Implement/match LegoROI::FUN_100a9dd0

* Implement/match LegoROI::FUN_100a9cf0
2024-11-10 17:35:44 +01:00
Christian Semmler
2c10c8e344
Implement/match Doors::VTable0x70 and Doors::ParseAction (#1137)
* Implement/match Doors::VTable0x70 and Doors::ParseAction

* Fix
2024-11-09 22:54:17 +01:00
Christian Semmler
9f9294694d
Merge remote-tracking branch 'isle/master'
Some checks failed
Build / Current msys2 mingw32 (push) Has been cancelled
Build / Current msys2 mingw64 (push) Has been cancelled
Build / Current MSVC (32-bit) (push) Has been cancelled
Build / Current MSVC (64-bit) (push) Has been cancelled
Format / C++ (push) Has been cancelled
Naming / C++ (push) Has been cancelled
2024-11-09 10:11:57 -07:00
jonschz
c65bc67e3d
Implement FUN_10025720() and others (#1134)
* Implement `FUN_10025720()` and others

* Address review comments, get 100 %

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-05 21:33:51 +01:00
Christian Semmler
1badadebaa
Implement/match LegoPathActor::UpdatePlane (#1133) 2024-11-03 19:28:35 +01:00
Christian Semmler
bf5379992e
merge from isledecomp/isle 2024-10-26 08:06:31 -07:00
jonschz
b5fee6b240
Complete LegoCarBuildAnimPresenter (#1114)
* Complete `LegoCarBuildAnimPresenter`

* fix CI errors

* Drive-by BETA10 fixes

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-20 14:00:44 -07:00
jonschz
974cd7ce7c
Implement LegoCarBuildAnimPresenter::FUN_10079160() and others (#1111)
* Implement `LegoCarBuildAnimPresenter::FUN_10079160()` and others

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-11 20:21:33 +02:00
jonschz
85ce10ab50
Refactor various operator[] based on BETA10 (#1110)
* Tidy up `operator[]` code

* Add weird index operator for `FUN_1002ddc0`

* Cleanup

* Add Matrix4 BETA10 annotations, fix typo

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-06 07:50:34 -07:00
jonschz
1a15981324
Implement LegoCarBuildAnimPresenter::StreamingTickle() (#1109)
* Implement LegoCarBuildAnimPresenter::StreamingTickle and dependents

* Fix naming issue

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-05 16:20:45 -07:00
jonschz
e6474b7fcd
Implement LegoCarBuildAnimPresenter::FUN_10079920() (#1108)
* Implement `FUN_10079920()`

* Fix formatting

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-04 17:19:42 +02:00
Christian Semmler
9397458854
merge from isledecomp/isle
Some checks are pending
Build / Current msys2 mingw32 (push) Waiting to run
Build / Current msys2 mingw64 (push) Waiting to run
Build / Current MSVC (32-bit) (push) Waiting to run
Build / Current MSVC (64-bit) (push) Waiting to run
Format / C++ (push) Waiting to run
Naming / C++ (push) Waiting to run
2024-10-03 12:14:05 -07:00
jonschz
7a6935a165
Progress on LegoCarBuildAnimPresenter (#1103)
* Progress on `LegoCarBuildAnimPresenter`

* Rename argument

* fix copy-paste error

* Address review comments

* Remove obsolete comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-12 21:51:33 +02:00
Christian Semmler
318c46b881
merge 2024-09-05 12:09:19 -07:00
jonschz
2b14d3d6a5
Implement parts of LegoCarBuild and dependents (#1092)
* Implement parts of `LegoCarBuild` and dependents

* Fix BETA10 offset

* Fix constants

* Code style: Rename parameters

* Linter fixes v2

* Linter errors v3

* Add BETA10 variable names for presenters

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-03 13:50:30 -07:00
jonschz
1b46859cf6
Implement RaceSkel, add BETA10 annotations (#1088)
* Implement `RaceSkel`, add BETA10 annotations

* fix formatting

* Fix order

* Address some review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-21 22:30:27 +02:00
Christian Semmler
03781da2ed
merge 2024-08-08 13:07:47 -07:00
jonschz
e09acfcddb
Implement/match LegoCarRaceActor::VTable0x1c (#1078)
* Implement/match `LegoCarRaceActor::VTable0x1c`

* Fix formatting

* Fix LegoEdge::CWVertex()

* Fix more CI issues

* Trz to fix lvalue compile issue

* Fix formatting

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-04 21:13:12 +02:00
jonschz
1f251ff817
Implement/match LegoCarRaceActor::FUN_10080590 (#1070)
* Implement/match `LegoCarRaceActor::FUN_10080590`

* Add vbtable annotations

* disable formatter for assertion

* Fix BETA10 annotations

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-28 20:13:18 +02:00
Christian Semmler
c0bd989dc5
merge 2024-07-28 10:01:31 -07:00
jonschz
0d385e27d0
Implement/match LegoRaceCar::VTable0x94 (#1068)
* Implement LegoRaceCar::VTable0x94

* Remove redundant inline modifiers

* Fix offsets

* Fix minor inconsistency

* Address review comments

* Address review comments, round 2

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-26 10:53:09 -07:00
jonschz
210376f272
Implement LegoRaceCar::HandleSkeletonKicks and dependents (#1065)
* Implement `LegoRaceCar::HandleSkeletonKicks` and dependents

* Fix typo

* Spike to fix array comparisons (needs refactor)

* Refactor: Dedicated method for array element matching

* Address review comments

* Reformat with new version of black

* Apply more review comments

* Address more review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-17 07:03:02 -07:00
jonschz
afa5b90117
Implement LegoRaceCar::FUN_10012ff0(), refactoring (#1063)
* Implement `LegoRaceCar::FUN_10012ff0()`, refactor based on BETA10

* Add BETA10 annotations
* Rename functions and variables based on BETA10 assertions

* Address issues raised by linter

* Rename variable, add BETA10 vtables

* Rename legoracecar files to legoracers

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-07 05:10:46 -07:00
Christian Semmler
49a304d0b9
merge
Some checks are pending
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-i686 msystem:mingw32 name:msys2 mingw32 shell:msys2 {0} werror:true]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-x86_64 msystem:mingw64 name:msys2 mingw64 shell:msys2 {0} werror:true]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:false dx5-libs:true name:MSVC (32-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64_x86]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:true dx5-libs:false name:MSVC (64-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64]) (push) Waiting to run
Format / C++ (push) Waiting to run
Naming / C++ (push) Waiting to run
2024-07-04 16:09:48 -07: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
196259c6c9
Parse cli arguments + log with SDL_Log (#30)
Some checks failed
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-i686 msystem:mingw32 name:msys2 mingw32 shell:msys2 {0} werror:true]) (push) Has been cancelled
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-x86_64 msystem:mingw64 name:msys2 mingw64 shell:msys2 {0} werror:true]) (push) Has been cancelled
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:false dx5-libs:true name:MSVC (32-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64_x86]) (push) Has been cancelled
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:true dx5-libs:false name:MSVC (64-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64]) (push) Has been cancelled
Format / C++ (push) Has been cancelled
Naming / C++ (push) Has been cancelled
* cmake: copy DLL dependencies to output path

This also copies SDL3.dll from an external path when using system
dependencies.

* Only include <SDL3/SDL.h>

* isle: parse cli argument (--ini for custom ini path)

* Use SDL_CreateWIndowWithProperties to create SDL window

Less branching => Clearer code

* Log mxdirectx failure using SDL_Log + E_NOINTERFACE

* Fix d3drm32.def for msvc

* Define D3DRM_WINE when using d3drm from wine

* Ignore failed assertions from d3drm unimplemented functions

* inparser will/should create libiniparser.lib for static libraries and iniparser.lib for a shared library
2024-06-26 11:24:40 -07:00
Anonymous Maarten
659a54b221
Add support for building x64 executables (#29)
Some checks are pending
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-i686 msystem:mingw32 name:msys2 mingw32 shell:msys2 {0} werror:true]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-x86_64 msystem:mingw64 name:msys2 mingw64 shell:msys2 {0} werror:true]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:false dx5-libs:true name:MSVC (32-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64_x86]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:true dx5-libs:false name:MSVC (64-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64]) (push) Waiting to run
Format / C++ (push) Waiting to run
Naming / C++ (push) Waiting to run
* d3drm: store LPVOID data instead of DWORD

* m_extraCharacterId is an integer, not a pointer

* cmake: look for iniparser using config file first, then try our custom module file

Our custom module file is still useful.
My linux distro does not package the cmake files.

* x86's stdcall becomes MS's x64 calling canvention

* Fix 64-bit mxdsbuffer pointer arithmetic

* Casting from void* to a smaller-sized integer needs an intermediate equally-sized integer

* Don't cast address to scalar (this is fishy)

* Add mingw64 build to the ci matrix

* Ignore -Wdiscarded-qualifiers warning with const vtables

* Ignore different 'const' qualifiers with MSVC

* Create d3dxof import library for MSVC

* DESCRIPTION in .def file(s) is deprecated

* Assume mmx is supported on x64, require a test for x86 and disabled on other archs

* 32- and 64-bit LEGO1.dll export different symbol names

* Introduce d3drm_guid containing the guids of d3drm

* Disable __wine_dbg_cdecl

* Include d3drm directory with EXCLUDE_FROM_ALL

* lego1 leaks d3drm headers

* Add dxfile.h

* Add 64-bit MSVC to the build matrix

* cmake: using ISLE_USE_DX5 means going all-in

* Load d3dxof.dll dynamically

* cmake: don't emit a warning about bitness anymore
2024-06-25 18:47:43 -07:00
Christian Semmler
e1a97cab2d
Implement LegoAnimScene::FUN_1009f490 (#1032)
* Implement LegoAnimScene::FUN_1009f490

* Update legoanim.cpp

* Update legoanim.cpp

* Update legoanim.cpp
2024-06-13 17:53:45 -04:00
Christian Semmler
dd1c11a933
Fix camera glitch (#1031) 2024-06-13 22:09:14 +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
DmitriLeon2000
3b3ac07cac
Rename LegoEdge::GetOpposingPoint to LegoEdge::CWVertex (#977) 2024-05-30 20:04:06 -04:00
Christian Semmler
eeb81b7223
Use USHRT_MAX instead of MAXWORD (#975) 2024-05-30 22:02:58 +02:00
Christian Semmler
60b747d7b2
Implement/match LegoPathBoundary::FUN_100586e0 and FUN_10057fe0 (#962) 2024-05-28 17:20:23 +02:00
Christian Semmler
3c45022864
Fix extra actor collisions (#958) 2024-05-26 19:13:56 +02:00
Christian Semmler
765c49fd4e
Match LegoUnknown::FUN_1009a1e0 (#957) 2024-05-26 17:12:37 +02:00
Christian Semmler
535f1b973a
Implement LegoROI::FUN_100a9410 (#955)
* WIP

* WIP

* Remove space

* Fix
2024-05-25 22:21:05 +02:00
Christian Semmler
f380fa3b84
Implement/match LegoAnimationManager::FUN_100648f0 (#954) 2024-05-25 17:18:24 +02:00
Christian Semmler
6774784b37
Implement/match LegoPathActor::VTable0xa4 and VTable0xa8 (#945)
* Implement/match LegoPathActor::VTable0xa4

* Implement/match LegoPathActor::VTable0xa8

* Name enum constants
2024-05-22 14:09:06 -04:00
Christian Semmler
8fee73c525
Implement/match LegoPathStruct (#944)
* Implement/match LegoPathStruct

* Rename some nums

* Consistent naming

* Naming

* relax regex

* Name some functions

* Improve naming

* Rename
2024-05-21 15:03:50 -04:00
Christian Semmler
bc91fd2189
Implement/match LegoPathActor::SwitchBoundary (#943)
* Implement/match LegoPathActor::SwitchBoundary

* Rename var
2024-05-20 20:27:00 +02:00
Christian Semmler
8428cde67f
Implement LegoUnknown::FUN_1009a1e0 (#940) 2024-05-19 16:36:11 -04:00
Christian Semmler
fb16b2c896
Implement/match LegoPathBoundary::FUN_100575b0 (#939) 2024-05-19 21:41:07 +02:00
Christian Semmler
23cc82c532
Implement/match LegoPathBoundary::Intersect (#937) 2024-05-19 17:24:09 +02:00
Christian Semmler
aab6a17d2f
Implement/match LegoAnimationManager::FUN_10064120 (#932)
* Implement/match LegoAnimationManager::FUN_10064120

* Fix naming

* Fix parentheses
2024-05-18 17:48:07 +02:00
Christian Semmler
29a0e32739
Implement/match remaining LegoHideAnimPresenter functions (#923)
* Implement/match remaining LegoHideAnimPresenter functions

* Fix type

* Fix marker

* Fix type
2024-05-14 20:50:37 +02:00
Christian Semmler
e32e06321a
Rename _countof to sizeOfArray (#921) 2024-05-14 16:35:22 +02:00
Christian Semmler
939c09139f
Match LegoOmni::Destroy and related (#917)
* Match LegoOmni::Destroy and related

* Write COMPAT_MODE macro differently

* fix lint issue
2024-05-14 14:13:27 +02:00