mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-12 02:41:14 +00:00
* 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
47 lines
782 B
C++
47 lines
782 B
C++
#ifndef MXTHREAD_H
|
|
#define MXTHREAD_H
|
|
|
|
#include "compat.h"
|
|
#include "mxsemaphore.h"
|
|
#include "mxtypes.h"
|
|
|
|
#include <SDL3/SDL_thread.h>
|
|
|
|
class MxCore;
|
|
|
|
// VTABLE: LEGO1 0x100dc860
|
|
// SIZE 0x1c
|
|
class MxThread {
|
|
public:
|
|
// Note: Comes before virtual destructor
|
|
virtual MxResult Run();
|
|
|
|
MxResult Start(MxS32 p_stack, MxS32 p_flag);
|
|
|
|
void Terminate();
|
|
void Sleep(MxS32 p_milliseconds);
|
|
|
|
inline MxBool IsRunning() { return m_running; }
|
|
|
|
// SYNTHETIC: LEGO1 0x100bf580
|
|
// MxThread::`scalar deleting destructor'
|
|
|
|
protected:
|
|
MxThread();
|
|
|
|
public:
|
|
virtual ~MxThread();
|
|
|
|
private:
|
|
static int SDLCALL ThreadProc(void* p_thread);
|
|
|
|
SDL_Thread* m_thread;
|
|
MxBool m_running; // 0x0c
|
|
MxSemaphore m_semaphore; // 0x10
|
|
|
|
protected:
|
|
MxCore* m_target; // 0x18
|
|
};
|
|
|
|
#endif // MXTHREAD_H
|