Anonymous Maarten
05cfe4ee25
Even more SDL usage ( #49 )
...
* Texture pixel data is passed through as const data
* Use SDL_Surface/SDL_Palette in LegoImage
* Use SDL_Process to run subprocess
* Pass SDL_Window handle to SDL_ShowSimpleMessageBox
this makes sure the message dialog is shown as modal dialog and is on top
* Log errors during initialization
* Show SDL error during initialization
* Include <climits> for INT_MAX
* Replace _access with SDL_GetPathInfo
* Use SDL_RemovePath instead of DeleteFile
* Use SDL_RenamePath instead of MoveFile
* Use MxS32 in legoutils.cpp
* Update LEGO1/lego/legoomni/src/common/legoutils.cpp
* Naming
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-28 16:52:34 +01:00
Christian Semmler
8afa64048b
More BETA matches in MxDiskStreamController ( #1292 )
...
* More BETA matches in `MxDiskStreamController`
* Fix
2024-12-27 21:03:04 +01:00
Christian Semmler
d5fdea372b
Match LegoAnimationManager::FUN_10063b90 ( #1289 )
2024-12-27 19:11:25 +01:00
Christian Semmler
7d90befd05
Merge remote-tracking branch 'isle/master' into merge-isle-2
2024-12-27 10:48:38 -07:00
Anonymous Maarten
65adfe7d64
More use of SDL ( #47 )
...
* Use SDL_GetPerformance(Counter|Frequency) in MxStopWatch
* Fix flic.h for gcc Linux compiler
* cmake: remove left-over message
* Replace some more stricmp with SDL_strcasecmp
* Pass SDL_Window* to LEGO1.DLL, and pass window events through SDL event handler
* clang-format
* Use SDL_Timer for unknown input dragging events
* Fix naming
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-27 18:44:14 +01:00
Christian Semmler
f475d5e196
Match MxTransitionManager::Tickle ( #1286 )
2024-12-27 17:33:20 +01:00
jonschz
70baf8cecc
Fix float constants and conversions ( #1279 )
...
* Fix legoplants warnings, add BETA10 references
* Fix warnings in various header files, improve match
* Fix floats in legoactors.cpp
* Fix `legolocations.cpp`
* fix typo
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-25 21:01:00 +01:00
Christian Semmler
6b3fcafbe1
Match Helicopter::HandleEndAnim ( #1276 )
2024-12-25 18:39:51 +01:00
Christian Semmler
e54bfb5656
Merge remote-tracking branch 'isle/master' into isle-merge
2024-12-25 08:56:17 -07:00
Anonymous Maarten
bb4db6caac
Use SDL3 functions in more locations ( #44 )
...
* Use strcasecmp, strncasecmp, strlwr, strupr and itoa from SDL
* Use SDL_GetTicks instead of timeGetTime
* Use MxDSFile::OPEN_READ instead of OF_READ
* Use SDL_IOStream to read bitmaps
* Use SDL_LogXXX instead of OutputDebugString
* Undo mxvideoparam.h change
* Revert "Undo mxvideoparam.h change"
This reverts commit 4a20cf6c46 .
* Fix _MxTrace
* Reapply "Undo mxvideoparam.h change"
This reverts commit b3a09dc520 .
* fix _MxTrace
* Use __declspec(dllexport) for exporting symbols from dll
Refactored CMake script such that all objects are passed to the lego1 library.
* clang-format
* fix msvc build
* MSVC fixed for real now?
* Forgot about d3drm_guid
* Fix naming issue
* Use Uint64 in LegoCarBuild::Tickle for dTime
2024-12-24 18:04:46 -07:00
Christian Semmler
c2c9c75f1a
Fix Vector2/Vector3 order ( #1272 )
...
* Fix Vector2/Vector3 order
* Refactor vector classes to be const and reference param consistent
* Add BETA10 annotations and fixes
2024-12-24 22:21:26 +01:00
Anonymous Maarten
b4d2ea72af
Fix -Wwrite-strings warnings ( #1267 )
...
warning: ISO C++ forbids converting a string constant to 'LegoChar*'
2024-12-23 17:11:38 -07:00
Christian Semmler
69bac21488
Merge remote-tracking branch 'isle/master' into merge
2024-12-23 09:38:55 -07:00
jonschz
3e6d789324
Add all BETA10 ClassName() functions and vtables ( #1258 )
...
* Add all BETA10 `ClassName()` functions and vtables
* Run formatter, fix copy error
* Fix copy error
* Add BETA10 library functions
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-22 08:13:34 -07:00
Christian Semmler
fe2a65c8da
Implement/match LegoNavController::Notify ( #1253 )
...
* Implement/match `LegoNavController::Notify`
* Move function
* Add to total function count
* Add OPT:REF to lego1
2024-12-21 22:41:47 +01:00
Christian Semmler
bcc41256f8
Add LegoOmni::World enum ( #1252 )
2024-12-21 18:08:55 +01:00
Christian Semmler
c9acd9a49f
Minor fixes ( #1248 )
2024-12-20 20:23:01 +01:00
Christian Semmler
e73f60e2c6
merge from isle/master
2024-12-20 11:54:06 -07:00
jonschz
7ed2ac9ccc
Progress on Helicopter::FUN_100042a0 ( #1242 )
...
* Implement `LegoCameraController::FUN_100123b0`
* Improve `UnknownMx4DPointFloat::Unknown7` match, add BETA10
* Add draft for `FUN_100042a0`
* Improve match
* Match
* Use better naming
* Remove comments
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-20 01:27:14 +01:00
Christian Semmler
18fc084a3f
Match LegoGameState::Load ( #1239 )
2024-12-18 01:10:42 +01:00
Christian Semmler
f51b1867ee
Use SDL3 for filesystem access ( #36 )
...
* 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
661c76c6e0
Implement/match Act3Shark::Animate ( #1231 )
...
* Implement/match `Act3Shark::Animate`
* Add BETA annotation
* Raise max functions
* Mark as FUNCTION
2024-12-15 17:18:25 +01:00
Christian Semmler
47c0e1a037
merge from isle/master
2024-12-15 08:24:45 -07:00
jonschz
ace2a9f047
Add g_copDest ( #1229 )
...
* Implement `AddCop` and `g_copDest`
* Fix formatting
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-15 05:50:52 -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
5a6415e0cf
Implement/match Act2Actor::FUN_10019b90 ( #1222 )
...
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-13 16:19:55 -07:00
Christian Semmler
6da2faa48c
Refactor actor states, define enum ( #1220 )
...
* Refactor actor states, define enum
* Revert
* Rename `UpdateState` to `Animate`
2024-12-13 20:30:50 +01:00
Christian Semmler
ce3f71ea0f
Rename LegoPathActor::VTable0x70 to UpdateState ( #1219 )
2024-12-13 19:20:03 +01:00
Christian Semmler
263d7d1e4f
Implement/match Act3::GoodEnding ( #1218 )
2024-12-13 18:49:45 +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
1bfeebd004
Implement most of LegoJetski, refactor ( #1214 )
...
* Implement most of `LegoJetski`, refactor
* Fix
2024-12-12 21:17:25 +01:00
Christian Semmler
894034f9cf
Implement/match WriteDefaultTexture ( #1213 )
2024-12-12 19:02:14 +01:00
Christian Semmler
598d6dd10c
Refactor act 3 actors into act3actors.cpp ( #1210 )
2024-12-12 15:14:46 +01:00
Christian Semmler
1aff40dd94
Implement/match several functions in Act3, refactor ( #1197 )
...
* Implement/match several functions in Act3, refactor
* Fix naming
* Rename
* Add comment
* Add annotation
* Add BETA assert
2024-12-08 18:00:57 +01:00
Christian Semmler
d22c4cd1f2
merge from isle/master
2024-12-07 10:17:25 -07: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
MS
7ece9cf37b
Fix MxParam casts in Notify functions ( #1188 )
...
* First batch
* Second batch
2024-12-03 15:51:03 -07:00
Christian Semmler
aaf5e1ddc7
Implement/match LegoAct2::ReadyWorld ( #1185 )
2024-12-02 19:44:42 +01:00
Christian Semmler
a0a114135a
Implement/match LegoAct2::HandleEndAction and related ( #1184 )
...
* Implement/match LegoAct2::HandleEndAction
* Reorder
2024-12-02 18:58:08 +01:00
Christian Semmler
5ade193261
merge from isle/master
2024-11-29 15:27:01 -07:00
Christian Semmler
e8e457f01a
Implement/match LegoAct2::Enable ( #1178 )
2024-11-29 22:32:40 +01:00
jonschz
362551e279
Clean up unused annotations to reduce errors ( #1177 )
...
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-29 22:31:37 +01:00
Christian Semmler
7256eeb0ad
Replace hardcoded magic values with constants ( #1173 )
...
* Replace two hardcoded magic values with constants
* Replace constants
2024-11-28 00:05:40 +01:00
Christian Semmler
d6796ad86a
Implement remaining LegoGameState functions ( #1172 )
...
* Implement remaining LegoGameState functions
* Naming fixes
* Fix naming
2024-11-27 23:42:05 +01:00
jonschz
106647e5af
Implement new functions in LegoAnimManager ( #1170 )
...
* Implement new functions in LegoAnimManager
* Address review comment
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-27 18:13:37 +01: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
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
jonschz
0aa5e010ae
Implement CarRace ( #1165 )
...
* Implement `CarRace`
* Improve `CarRace::Create`
* Fix arrays
* Clean up array
* Fix CI errors
* Implement `LegoRaceCar::FUN_10012e00()`
* Implement `Doors::VTable0xcc`
* Address review comments, part 1
* Address review comments, part 2
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-23 12:33:15 -07:00
Christian Semmler
e56ac9ab55
Implement/match LegoBuildingManager::FUN_10030630 ( #1164 )
2024-11-22 23:08:23 +01:00
Christian Semmler
b4b28cf32e
Implement/match LegoPlantManager::Tickle ( #1157 )
2024-11-16 00:25:49 +01:00
Christian Semmler
3383ae646f
Implement/match LegoBuildingManager::Tickle ( #1156 )
2024-11-15 22:51:46 +01:00
Christian Semmler
ff0ef96782
Implement/match LegoBuildingManager::FUN_10030030 ( #1155 )
2024-11-15 19:24:41 +01:00
Christian Semmler
93c640a45f
Implement/match PickEntity ( #1153 )
...
* Implement/match PickEntity
* Rename function
2024-11-15 18:35:53 +01:00
Christian Semmler
62f09570b0
Implement/match RotateY ( #1152 )
2024-11-15 18:28:26 +01:00
Christian Semmler
bb36eda0dd
Merge remote-tracking branch 'isle/master'
2024-11-14 13:42:52 -07:00
jonschz
71a7498481
Implement most of JetskiRace, add BETA10 annotations ( #1149 )
...
* Implement most of `JetskiRace`, add BETA10 annotations
* Fix declaration order issue
* Clean up FUN_10012de0
* Fix regression
* Address review comments
* Address another review comment
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-14 21:42:38 +01: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
5d3d66965d
Implement/match Act1State::PlaceActors and related ( #1142 )
...
* Implement/match Act1State::PlaceActors and related
* Fix naming
2024-11-10 21:26:48 +01:00
Christian Semmler
9f9294694d
Merge remote-tracking branch 'isle/master'
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
d8412a4697
Implement/match Act1State::RemoveActors ( #1132 )
...
* Implement/match Act1State::RemoveActors
* Fix annotation
2024-11-03 19:06:09 +01:00
jonschz
4c0aae720b
Implement LegoCarBuild::FUN_10024890() and others, refactor ( #1126 )
...
* Commit finished code changes
* Add enum data type
* Refactor away GetCurrentArea, SetCurrentArea
* Clean up and add FUN_10024890
* Add `SetPartObjectIdByName()`
* Fix naming error
* Address review comments, part 1
* Address review comments, part 2
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-01 09:21:15 -07:00
Christian Semmler
ad353b7f3e
Implement/match Pizza::PlayAction ( #1123 )
...
* Implement/match Pizza::PlayAction
* Remove unused header
2024-10-28 17:25:54 +01:00
Christian Semmler
bf5379992e
merge from isledecomp/isle
2024-10-26 08:06:31 -07:00
jonschz
c38e157fdb
Implement LegoCarBuild functions, refactor BackgroundAudioManager ( #1117 )
...
* Implement LegoCarBuild functions, refactor BackgroundAudioManager
* Refactor LegoVehicleBuildState::m_animationState to enum
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-10-25 09:04:01 -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
Christian Semmler
9397458854
merge from isledecomp/isle
2024-10-03 12:14:05 -07: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
jonschz
a942325b29
More functions in LegoCarBuild ( #1104 )
...
* Add BETA10 annotations
* Clean up
* Implement multiple functions
* fix minor annotation error
* Undo formatting
* Fix formatting
* Implement more functions
* Rename variables, address review comment
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-09-14 16:14:11 -07: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
jonschz
757df96c0d
Implement/match LegoRaceMap ( #1087 )
...
* Implement/match LegoRaceMap
* Fix CI, address review comments
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-08-17 11:30:39 -07:00
MS
9555aaba74
Remove USHRT_MAX from ParseExtra functions ( #1086 )
2024-08-17 08:56:25 -07: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
4a861faca3
Refactor file names based on BETA10 ( #1064 )
...
* Refactor file names based on BETA10
* Extract LegoDeviceEnumerate to dedicated file
* Fix compiler errors
* Migrate contiguous block of code to `LegoDeviceEnumerate`
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-07-08 14:52:50 -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
a75ace8a53
Implement/match TowTrack::VTable0x70 ( #1062 )
2024-07-06 04:44:01 +02:00
Christian Semmler
87a9a37b33
Implement/match Jetski class ( #1061 )
2024-07-05 02:11:20 +02:00
Christian Semmler
b17762ebe3
merge
2024-07-02 12:19:13 -07:00
Christian Semmler
d92fc97a58
Implement/match DuneBuggy class ( #1055 )
...
* Implement/match DuneBuggy class
* Fix name
* Fix
2024-07-02 21:16:35 +02:00
Christian Semmler
3819dd0dae
merge
2024-07-01 16:52:14 -07:00
Christian Semmler
9ba05d021d
Implement/match LegoPlantManager::ScheduleAnimation ( #1051 )
...
* Implement/match LegoPlantManager::ScheduleAnimation
* Add assert
2024-07-02 01:14:04 +02:00
Christian Semmler
be0fe5fffb
Merge remote-tracking branch 'isle/master'
2024-06-26 06:46:56 -07:00
Christian Semmler
536aa4b1fe
Implement/match LegoPlantManager::FUN_10027120 ( #1046 )
2024-06-26 15:39:36 +02:00
Anonymous Maarten
0637deea13
m_extraCharacterId is an integer, not a pointer ( #1045 )
2024-06-26 04:17:45 -07:00
Anonymous Maarten
659a54b221
Add support for building x64 executables ( #29 )
...
* 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
Anonymous Maarten
554a679dc0
Merge commit '8113a17167e92133f5a0793967bf1e485dafd07a' into new-isle-decomp
2024-06-25 20:22:08 +02:00
Anonymous Maarten
d537d69d13
Merge commit 'd869d565c282b89bffefd8b298048dfbbbc7808b' into new-isle-portable
2024-06-25 20:02:43 +02:00
Anonymous Maarten
974cb8e6d3
Merge commit 'c22c6f337960f0c4c2f1170e857417926cbeeb0f' into new-isle-portable
2024-06-25 20:00:25 +02:00
Anonymous Maarten
3d59615274
Merge commit 'ba378eb22442d71fe4f23a5c818cdfad16d3b16d' into new-isle-decomp
2024-06-25 19:57:16 +02:00
Anonymous Maarten
8d5bfb40d9
Merge commit '828b35e9d22c7a17f7af4906049b56e0b1f4c789' into new-isle-decomp
2024-06-25 19:55:43 +02:00
Christian Semmler
4bf9174c15
Add SDL cursors ( #16 )
...
* Add SDL cursors
* Fix naming
2024-06-25 19:51:12 +02:00
Christian Semmler
8a2bbcac84
Define cursor enum and custom cursor window message ( #980 ) ( #15 )
...
* Define cursor enum and custom cursor window message
* Fix param name
* Remove unused header
2024-06-25 19:51:12 +02:00