Commit graph

162 commits

Author SHA1 Message Date
Christian Semmler
f51b1867ee
Use SDL3 for filesystem access (#36)
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
* Use SDL IOStream in for MXIOINFO

* Use SDL IOStream for WDB file

* Use SDL IOStream for LegoStorage

* Update README.md

* Fixes

* Add names to skip.yml

* Add #include <stdio.h> where necessary
2024-12-16 22:25:52 +01:00
Christian Semmler
3b7e60bdc0
merge from isle/master 2024-12-15 11:59:19 -07:00
Christian Semmler
1b4142c6a9
Implement/match Write functions in LegoAnim class (#1232)
* Implement/match `LegoAnim::Write`

* Implement remaining Write functions

* Bump total function count
2024-12-15 18:15:10 +01:00
Christian Semmler
47c0e1a037
merge from isle/master 2024-12-15 08:24:45 -07:00
jonschz
97ff27af9e
Implement/match LegoPlantManager::FUN_10026410 (#1223)
* Implement/match  `LegoPlantManager::FUN_10026410`

* Full match on LEGO1 and BETA10

* Improve `LegoBuildingManager::FUN_10030630`

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-14 16:35:08 +01:00
jonschz
054f56fd9f
Implement Act2Actor::FUN_10019700 (#1215)
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-12 17:54:51 -07:00
Christian Semmler
894034f9cf
Implement/match WriteDefaultTexture (#1213) 2024-12-12 19:02:14 +01:00
jonschz
07def56326
Implement Act2Actor::VTable0x70 (#1201)
* Implement draft of `Act2Actor::VTable0x70`

* Fix CI errors

* Implement `Act2Actor::FUN_100199f0`

* WIP: cleanup

* Address review comments

* Run formatter

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-09 22:05:08 +01:00
Christian Semmler
d22c4cd1f2
merge from 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-12-07 10:17:25 -07:00
Christian Semmler
5be00e1799
Implement/match LegoPathCtrlEdge::FUN_10048c40 (#1195)
* Implement/match LegoPathCtrlEdge::FUN_10048c40

* Improve matches
2024-12-07 17:58:51 +01:00
Christian Semmler
94ce89cbaa
(Proposal) Introduce arithmetic operators to Vector2 (#1193) 2024-12-07 17:26:22 +01:00
Christian Semmler
4d8098a6c2
Implement LegoPathController::FUN_10048310 (#1192)
* WIP

* Rename

* Fix

* More WIP

* WIP

* WIP

* Fix

* Annotations

* Add more annotations, improve match

* Raise max functions
2024-12-06 20:50:40 +01:00
Christian Semmler
5ade193261
merge from 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-29 15:27:01 -07:00
jonschz
83b85f26a7
Implement LegoAct2::Tickle() and others (#1168)
* Implement `LegoAct2::Tickle()` and others

* Fix decomplint errors

* Minor cleanup

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-25 23:24:46 +01:00
Christian Semmler
5f0575124f
Merge from 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-24 08:01:05 -07:00
MS
816bfe842d
Use alias functions from Lego3DManager (#1167)
* Mark LegoEntity:Destroy (many vtables use it)

* Starting addrs for Lego3DManager helpers

* Addrs for users of Lego3DManager and changes where needed
2024-11-23 20:37:24 -07:00
Christian Semmler
e56ac9ab55
Implement/match LegoBuildingManager::FUN_10030630 (#1164) 2024-11-22 23:08:23 +01:00
Christian Semmler
63fee4d11d
Implement/match LegoAnimNodeData::SetName (#1154) 2024-11-15 19:15:33 +01:00
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