Christian Semmler
492954f347
Updates from isledecomp/isle ( #27 )
...
* Implement/match Bike (#1036 )
* Implement/match Motocycle, consistent notification names (#1037 )
* Implement/match Motocycle, consistent notification names
* Format
* Fix
* Fix return types
* Fix return type
* Fix annotations
* Rename function
* Bootstrap LegoPlantManager, add plants data (#1038 )
* Bootstrap LegoPlantManager, add plants data
* Naming
* Move
* Fix
* Implement/match LegoPlantManager::CreatePlant (#1039 )
* Implement/match LegoPlantManager::CreatePlant
* Update names
* Fix name
* Fix
* Fix
* Implement/match more LegoPlantManager functions (#1040 )
* Implement/match LegoPlantManager interaction functions (#1041 )
* Implement AnimState (#1042 )
* Implement LegoAnim
* fix: minor issues
* fix ncc complaints
* refactor: address review comments
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
* Implement/match LegoPlantManager::FUN_10026c50 (#1043 )
* Minor fixes
* Implement/match LegoPlantManager::FUN_10026c50
* 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
* Updates
---------
Co-authored-by: jonschz <17198703+jonschz@users.noreply.github.com>
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2024-06-25 18:12:08 +02:00
Anonymous Maarten
e7fb67bb9f
Fix mingw build + copy d3drm from wine ( #25 )
...
* Fix engineConfig declaration crossing jump
This fixes the following error:
```
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp: In member function 'virtual MxResult MxSoundManager::Create(MxU32, MxBool)':
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp:119:1: error: jump to label 'done'
119 | done:
| ^~~~
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp:78:22: note: from here
78 | goto done;
| ^~~~
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp:84:26: note: crosses initialization of 'ma_engine_config engineConfig'
84 | ma_engine_config engineConfig = ma_engine_config_init();
| ^~~~~~~~~~~~
```
* Fix 'invalid conversion from 'SDL_FunctionPointer' {aka 'void (*)()'} to 'void*'
* /SAFESEH:NO is a VC thing
* SDL3 is still instable
* Cannot forward declare and use enum
* Remove MusicManager from public LEGO1.DLL interface
* Copy d3d from wine git 6c5d17af07a318d754c0c21023b2d162a0d3725d
* Build d3drm-wine with 32-bit mingw
* cmake: move 3rd party targets to cmake script in 3rdparty directory
* cmake: bump minimum required CMake version to 3.25 to allow adding a subproject with SYSTEM automatically applied
An alternative would be to use SYSTEM in target_include_directories in the 3rd party cmake script.
* Add a minimal Findiniparser.cmake (not all distributions carry the upstream iniparser-config.cmake files)
* Add wine's d3drm headers
* cmake: merge ISLE_USE_DX5_LIBS into ISLE_USE_DX5
* cmake: Build all shared libraries in the binary output directory (to avoid PATH issues)
* ci: enable msys2 mingw32 build
* Disable clang-tidy on d3drm wine
* Thread functions must have SDLCALL call convention
* cmake: disable clang-tidy for miniaudio and libsmacker as well
* Hopefully fix c++ format and skip ncc naming violation
* clang-format violations keep up popping out of nowhere
* No need for lego/legoomni/include
* ncc: define SDLCALL as empty instead
2024-06-24 07:25:51 -07:00
Christian Semmler
8a802bcf85
Replace DirectSound with miniaudio ( #21 )
...
* Add miniaudio
* WIP
* static const
* Fix missing looping
* Fix volume
* Implement 3D sound, WIP
* Remove unused WinMM code
* Update README.md
* Fixes
* Fix naming
* Fix naming
* disable ma threading
* Invert Z axis for OpenGL system
* Update comment
* Set rolloff
* Fix minimize/maximize suspension
* Rename function
* SDL3: changed macro name
2024-06-16 15:26:04 +02:00
Christian Semmler
419bc2a44e
Updates from isledecomp/isle ( #23 )
...
* Fix remaining vtordisp issues (#1016 )
* Fix LegoRaceActor
* Fix LegoRaceMap
* Fix LegoCarRaceActor
* Fix LegoJetskiRaceActor
* Fix LegoJetski
* Fix LegoRaceCar
* Downgrade orig addr unique message to debug
* Implement/match Ambulance::HandleEndAction (#1018 )
* Implement/match Ambulance::HandleClick (#1019 )
* Implement/match Ambulance::HandleClick
* Remove junk
* Add Ambulance::FUN_10036e60
* Implement/match Ambulance::Tickle (#1021 )
* Match LegoMeterPresenter::ParseExtra (#1022 )
* Match LegoMeterPresenter::ParseExtra
* Add LegoMeterPresenter to factory
* Add call to parent
* Add missing TODO
* Implement/match Ambulance::ActivateSceneActions (#1023 )
* Fix CaveEntity class (#1024 )
* Fix CaveEntity class
* Rename function
* Implement/match JailEntity::HandleClick and CaveEntity::HandleClick (#1025 )
* Implement/match JailEntity::HandleClick and CaveEntity::HandleClick
* Fix
* Add remaining classes, implement/match LegoObjectFactory (#1026 )
* Add missing classes
* Match LegoObjectFactory
* Remove semicolon
* Add symbol
* Fix
* Implement/match Ambulance::VTable0x70 (#1027 )
* Implement/match Ambulance::HandleButtonDown (#1028 )
* Implement/match Ambulance::HandlePathStruct (#1029 )
* Implement/match Ambulance::HandlePathStruct
* Add annotation
* Implement/match remaining Ambulance functions (#1030 )
* Fix camera glitch (#1031 )
* Implement LegoAnimScene::FUN_1009f490 (#1032 )
* Implement LegoAnimScene::FUN_1009f490
* Update legoanim.cpp
* Update legoanim.cpp
* Update legoanim.cpp
* Bugfix for LegoMeterPresenter::DrawMeter (#1033 )
* feat: Implement several ::Serialize functions (#1017 )
* feat: Implement many ::Serialize functions
* address review comments, part 1 [skip ci]
* address review comments, part 2 [skip ci]
* review comments (final part)
* refactor: Remove Read/Write duplication
* fix merge conflict
* Match PizzeriaState::Serialize again
* Remove unused variable, add LegoVehicleBuildState::Serialize
* Implement AnimState::Serialize
* fix: Conform with naming scheme
* refactor: change names back
* refactor: int to MxS32
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
---------
Co-authored-by: MS <disinvite@users.noreply.github.com>
Co-authored-by: jonschz <17198703+jonschz@users.noreply.github.com>
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-16 15:15:03 +02:00
Christian Semmler
b945993ee3
Updates from isledecomp/isle ( #22 )
...
* Act2PoliceStation::Notify (#1002 )
* Act2PoliceStation::Notify
* Match code
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Match Ambulance::StopScriptOnAmbulance and StopScriptOnEntity (#1003 )
* Match Ambulance::StopScriptOnAmbulance and StopScriptOnEntity
* Rename for consistency
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
* TowTrack and LegoAct2 destructors (#1005 )
* Add some missing dtors
* Add missing 'override'
* Rename Start/StopTimer to Pause/Resume (#1007 )
* Rename Start/StopTimer to Pause/Resume
* Fix
* Begin LegoRace class (#1014 )
* Begin LegoRace
* Match functions
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Implement/match LegoFlcTexturePresenter (#1015 )
* Implement/match LegoFlcTexturePresenter
* Move files
* Fix
* Fix
---------
Co-authored-by: Joshua Peisach <itzswirlz2020@outlook.com>
Co-authored-by: MS <disinvite@users.noreply.github.com>
Co-authored-by: Mikhail Thompson <mishakeys20@gmail.com>
2024-06-10 17:57:20 +02:00
Christian Semmler
f7dca7a4fe
Rename InitPresenters to Create, remove this keyword ( #1000 ) ( #20 )
2024-06-07 22:17:20 +02:00
Christian Semmler
e0af725fb6
Updates from isledecomp/isle ( #19 )
...
* Refactor JukeBox, add enum for music (#988 )
* Refactor JukeBox, add enum for music
* add BETA annotation
* Fix BETA annotation
* Fix BETA annotation
* Fix
* Consolidate state and building entity classes (#989 )
* Match LegoCacheSoundManager::FindSoundByKey (#991 )
* Match LegoCacheSoundManager::FindSoundByKey
* Remove space
* Implement/match LegoActor::Mute (#992 )
* Add more annotations to ISLE (#990 )
* Minor improvements in ISLE.EXE
* Add more annotations
* Fix
* Comment out
* Fix lint
* Add enum for actor IDs (#993 )
* Implement/match LegoEntity::ClickAnimation (#994 )
* Implement/match LegoEntity::VTable0x38
* Update names
* Implement/match LegoEntity::SwitchSound / SwitchMove / SwitchColor / SwitchMood (#995 )
* Implement/match LegoEntity::SwitchSound
* Name
* Name
* Implement/match LegoEntity::SwitchMove
* Mood
* Implement/match LegoCharacterManager::SwitchColor (#996 )
* 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
* Implement/match Ambulance::Notify (#998 )
* Update isleapp.cpp
* Streamline MxVideoParamFlags (#999 )
* Streamline MxVideoParamFlags
* Remove this-> from MxOmniCreateFlags
---------
Co-authored-by: MS <disinvite@users.noreply.github.com>
2024-06-07 21:32:27 +02:00
Christian Semmler
c038d8d46e
Updates from isledecomp/isle ( #18 )
...
* Implement/match Lego3DSound::Create (#981 )
* Implement/match Lego3DSound::Create
* Add space
* Naming
* Changes
* Name/rename functions in LegoCharacterManager (#982 )
* Name/rename functions in LegoCharacterManager
* Name flag
* Implement/match Lego3DSound::UpdatePosition (#983 )
* Implement/match Lego3DSound::SetDistance and Reset (#984 )
* Implement/match LegoSoundManager::UpdateListener (#985 )
* Implement/match LegoCacheSound::Create and LegoLoadCacheSoundPresenter::StreamingTickle (#986 )
* Implement/match LegoCacheSound::Create
* Naming
* Fix naming
* Fix parens
* Implement/match LegoCacheSound::Play and Lego3DSound::FUN_10011a60 (#987 )
* Implement/match LegoCacheSound::Play and Lego3DSound::FUN_10011a60
* Update names
* Update
2024-06-02 17:26:15 +02:00
Christian Semmler
a3f408d6be
Remove dependency on dinput, use SDL keyboard state for navigation ( #14 )
...
* WIP
* Use SDL kb state for navigational keys
* Remove linking against dinput
2024-06-01 05:13:27 +02:00
Christian Semmler
9c83acb3b1
Replace Windows threads with SDL threads ( #8 )
...
* Replace Windows threads with SDL threads
* Wait for thread in dtor
2024-05-30 22:56:44 +02:00
Christian Semmler
c24221a674
Replace Windows CriticalSection with SDL Mutex ( #7 )
...
* Replace Windows CriticalSection with SDL Mutex
* Update README.md
2024-05-30 22:38:42 +02:00
Christian Semmler
7d36abda90
Updates from isledecomp/isle ( #5 )
...
* Style refactor omni/system components (#974 )
* Style refactor omni/system components
* Fix
* Fix
* Update
2024-05-30 21:23:21 +02:00
Christian Semmler
47997da1e9
Add SDL3 and replace Windows semaphores ( #4 )
...
* Add SDL3 and replace Windows semaphores
* Try this
* Change for now
2024-05-30 20:41:20 +02:00
Christian Semmler
6ddd86dcbe
Updates from isledecomp/isle ( #3 )
...
* Implement/match LegoPathActor::ParseAction (#946 )
* Implement/match LegoPathActor::ParseAction
* Fix naming
* Space
* Implement/match Isle::UpdateGlobe (#947 )
* Implement/match Isle::UpdateGlobe
* Change function access
* Implement/match Isle::CreateState and related (#948 )
* Implement/match actor Create functions (#949 )
* Implement/match Isle::Escape (#950 )
* Implement/match Isle::FUN_10033350 (#951 )
* Implement/match Isle::HandleType19Notification (#952 )
* Implement/match Isle::HandleType19Notification
* Fix
* Implement/match LegoAnimationManager::FUN_10063b90 (#953 )
* Implement/match LegoAnimationManager::FUN_100648f0 (#954 )
* Implement LegoROI::FUN_100a9410 (#955 )
* WIP
* WIP
* Remove space
* Fix
* Implement/match LegoExtraActor::VTable0x6c (#956 )
* Match LegoUnknown::FUN_1009a1e0 (#957 )
* Fix extra actor collisions (#958 )
* Implement/match IslePathActor::FUN_1001b660 (#960 )
* Refactor MxBitmap (again) (#961 )
* Remove this
* Starting list of beta addrs
* Static for height-specific abs, fix StrechBits
* MxBitmap refactor
* Implement/match LegoPathBoundary::FUN_100586e0 and FUN_10057fe0 (#962 )
* Implement/match LegoAnimPresenter::FUN_1006b140 (#963 )
* Implement LegoMeterPresenter::DrawMeter (#964 )
* Implement LegoMeterPresenter::DrawMeter
* New MxRect16 header, offsets and size annotations
* Missing mxtypes include
* Implement/match LegoAnimationManager::FUN_10063270 (#965 )
* Implement/match LegoAnimMMPresenter::FUN_1004b840 (#966 )
* Implement/match LegoAnimationManager::FUN_10062e20 (#967 )
* Beta match MxPalette (#968 )
* Beta match MxPalette
* Modern compiler fix
* Implement/match LegoCameraController::FUN_10012290 and FUN_10012320 (#969 )
* Implement/match LegoControlManager::FUN_100293c0 (#970 )
* Implement/match Pizzeria::HandleClick (#971 )
* Implement/match Lego3DWavePresenter::StartingTickle (#972 )
* Implement/match Lego3DWavePresenter::StartingTickle
* Fix annotation
* Add StreamingTickle
* Rename
* Add static HandlerClassName function (#973 )
* Add static HandlerClassName function
* Use method in PresenterNameDispatch
---------
Co-authored-by: disinvite@users.noreply.github.com <disinvite@users.noreply.github.com>
2024-05-30 19:20:36 +02:00
Christian Semmler
d62054db2e
Updates from isledecomp/isle ( #1 )
...
* Implement/match LegoAnimationManager::FUN_10064b50 (#926 )
* Implement/match LegoAnimationManager::FUN_10063d10 (#927 )
* Implement/match LegoAnimationManager::FUN_10064380 (#928 )
* Implement/match LegoAnimationManager::FUN_10064380
* Fix naming
* Revert
* Implement/matche LegoAnimationManager::FUN_10064740 and FUN_10064670 (#929 )
* Implement/match FUN_1003ef00 and related (#931 )
* Implement/match LegoAnimationManager::FUN_10064120 (#932 )
* Implement/match LegoAnimationManager::FUN_10064120
* Fix naming
* Fix parentheses
* Implement LegoAnimationManager::FUN_10064010 (#933 )
* Implement/match ViewManager::FUN_100a6150 (#934 )
* Implement/match PlayCamAnim and CameraTriggerFire (#935 )
* Implement/match PlayCamAnim and CameraTriggerFire
* Fix type
* Name var
* Implement/match LegoAnimationManager::FUN_10063fb0 (#936 )
* basic name improvements (#930 )
* basic name improvements
* clang-format
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Implement/match LegoPathBoundary::Intersect (#937 )
* Implement LegoPathActor::VTable0x68 (#938 )
* Implement LegoPathActor::VTable0x68
* Fix naming
* Implement/match LegoPathBoundary::FUN_100575b0 (#939 )
* Implement LegoUnknown::FUN_1009a1e0 (#940 )
* Implement/match LegoPathController::FUN_1004a240 (#941 )
* Implement LegoPathActor::VTable0x9c (#942 )
* Implement LegoPathActor::VTable0x9c
* Add annotation
* Implement/match LegoPathActor::SwitchBoundary (#943 )
* Implement/match LegoPathActor::SwitchBoundary
* Rename var
* Implement/match LegoPathStruct (#944 )
* Implement/match LegoPathStruct
* Rename some nums
* Consistent naming
* Naming
* relax regex
* Name some functions
* Improve naming
* Rename
* Implement/match LegoPathActor::VTable0xa4 and VTable0xa8 (#945 )
* Implement/match LegoPathActor::VTable0xa4
* Implement/match LegoPathActor::VTable0xa8
* Name enum constants
---------
Co-authored-by: Cameron <25990062+crtdll@users.noreply.github.com>
2024-05-23 18:09:49 +02:00
Christian Semmler
2328853d60
Add libsmacker to replace smack.lib
2024-05-16 22:11:33 -04:00
Christian Semmler
681c69c4ac
initial commit
2024-05-16 19:42:54 -04:00