mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Fix all mingw errors & warnings (#411)
* Use COMPAT_MODE macro to fix errors with mingw gcc 12.2 * MxOmni::m_timerRunning is a MxBool * MxDirect3D::m_unk0x88c is a MxBool * MxBackgroundAudioManager::m_unk0x13c is a MxS32 * Fix warning: deleting 'void*' is undefined [-Wdelete-incomplete] * Fix inline function 'void TglImpl::RendererImpl::Destroy()' used but never defined * Fix warning: inline function 'MxStreamerSubClass1::MxStreamerSubClass1(undefined4)' used but never defined * Use `FALSE` for m_timerRunning * Format * Format * Remove comment * Limit scope for variables in compat mode * clang-format --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:

committed by
GitHub

parent
bb7e4df11b
commit
fbe7f8bbb0
4
3rdparty/dx5/inc/d3drmdef.h
vendored
4
3rdparty/dx5/inc/d3drmdef.h
vendored
@@ -136,8 +136,8 @@ typedef struct _D3DRMIMAGE
|
|||||||
int bytes_per_line; /* number of bytes of memory for a
|
int bytes_per_line; /* number of bytes of memory for a
|
||||||
scanline. This must be a multiple
|
scanline. This must be a multiple
|
||||||
of 4. */
|
of 4. */
|
||||||
void* buffer1; /* memory to render into (first buffer). */
|
char* buffer1; /* memory to render into (first buffer). */
|
||||||
void* buffer2; /* second rendering buffer for double
|
char* buffer2; /* second rendering buffer for double
|
||||||
buffering, set to NULL for single
|
buffering, set to NULL for single
|
||||||
buffering. */
|
buffering. */
|
||||||
unsigned long red_mask;
|
unsigned long red_mask;
|
||||||
|
@@ -132,9 +132,18 @@ BOOL IsleApp::SetupLegoOmni()
|
|||||||
char mediaPath[256];
|
char mediaPath[256];
|
||||||
GetProfileStringA("LEGO Island", "MediaPath", "", mediaPath, sizeof(mediaPath));
|
GetProfileStringA("LEGO Island", "MediaPath", "", mediaPath, sizeof(mediaPath));
|
||||||
|
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
BOOL failure;
|
||||||
|
{
|
||||||
|
MxOmniCreateParam param(mediaPath, (struct HWND__*) m_windowHandle, m_videoParam, MxOmniCreateFlags());
|
||||||
|
failure = Lego()->Create(param) == FAILURE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
BOOL failure =
|
BOOL failure =
|
||||||
Lego()->Create(MxOmniCreateParam(mediaPath, (struct HWND__*) m_windowHandle, m_videoParam, MxOmniCreateFlags())
|
Lego()->Create(MxOmniCreateParam(mediaPath, (struct HWND__*) m_windowHandle, m_videoParam, MxOmniCreateFlags())
|
||||||
) == FAILURE;
|
) == FAILURE;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!failure) {
|
if (!failure) {
|
||||||
VariableTable()->SetVariable("ACTOR_01", "");
|
VariableTable()->SetVariable("ACTOR_01", "");
|
||||||
TickleManager()->SetClientTickleInterval(VideoManager(), 10);
|
TickleManager()->SetClientTickleInterval(VideoManager(), 10);
|
||||||
|
@@ -34,9 +34,15 @@ void MxAtomId::Destroy()
|
|||||||
if (!AtomIdCounterSet())
|
if (!AtomIdCounterSet())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// The dtor is called on the counter object immediately,
|
#ifdef COMPAT_MODE
|
||||||
// so this syntax should be correct.
|
MxAtomIdCounterSet::iterator it;
|
||||||
|
{
|
||||||
|
MxAtomIdCounter id_counter(m_internal);
|
||||||
|
it = AtomIdCounterSet()->find(&id_counter);
|
||||||
|
}
|
||||||
|
#else
|
||||||
MxAtomIdCounterSet::iterator it = AtomIdCounterSet()->find(&MxAtomIdCounter(m_internal));
|
MxAtomIdCounterSet::iterator it = AtomIdCounterSet()->find(&MxAtomIdCounter(m_internal));
|
||||||
|
#endif
|
||||||
|
|
||||||
MxAtomIdCounter* counter = (MxAtomIdCounter*) (*it);
|
MxAtomIdCounter* counter = (MxAtomIdCounter*) (*it);
|
||||||
counter->Dec();
|
counter->Dec();
|
||||||
|
@@ -104,7 +104,7 @@ void MxBackgroundAudioManager::FUN_1007ee70()
|
|||||||
m_unk0x138 = NULL;
|
m_unk0x138 = NULL;
|
||||||
m_action2.SetObjectId(-1);
|
m_action2.SetObjectId(-1);
|
||||||
m_action2.SetAtomId(MxAtomId());
|
m_action2.SetAtomId(MxAtomId());
|
||||||
m_unk0x13c = NULL;
|
m_unk0x13c = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ void MxBackgroundAudioManager::FUN_1007ef40()
|
|||||||
m_unk0x138 = NULL;
|
m_unk0x138 = NULL;
|
||||||
m_action2.SetObjectId(-1);
|
m_action2.SetObjectId(-1);
|
||||||
m_action2.SetAtomId(MxAtomId());
|
m_action2.SetAtomId(MxAtomId());
|
||||||
m_unk0x13c = NULL;
|
m_unk0x13c = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -97,10 +97,17 @@ void MxCompositePresenter::EndAction()
|
|||||||
MxPresenter::EndAction();
|
MxPresenter::EndAction();
|
||||||
|
|
||||||
if (action && action->GetOrigin()) {
|
if (action && action->GetOrigin()) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxEndActionNotificationParam param(c_notificationEndAction, this, action, FALSE);
|
||||||
|
NotificationManager()->Send(action->GetOrigin(), ¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(
|
NotificationManager()->Send(
|
||||||
action->GetOrigin(),
|
action->GetOrigin(),
|
||||||
&MxEndActionNotificationParam(c_notificationEndAction, this, action, FALSE)
|
&MxEndActionNotificationParam(c_notificationEndAction, this, action, FALSE)
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -14,7 +14,7 @@ MxDirect3D::MxDirect3D()
|
|||||||
{
|
{
|
||||||
this->m_pDirect3d = NULL;
|
this->m_pDirect3d = NULL;
|
||||||
this->m_pDirect3dDevice = NULL;
|
this->m_pDirect3dDevice = NULL;
|
||||||
this->m_unk0x88c = NULL;
|
this->m_unk0x88c = 0;
|
||||||
this->m_assignedDevice = NULL;
|
this->m_assignedDevice = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -23,8 +23,16 @@ MxDiskStreamController::~MxDiskStreamController()
|
|||||||
m_unk0xc4 = FALSE;
|
m_unk0xc4 = FALSE;
|
||||||
m_unk0x70 = FALSE;
|
m_unk0x70 = FALSE;
|
||||||
|
|
||||||
if (m_provider)
|
if (m_provider) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxDSAction action;
|
||||||
|
m_provider->VTable0x20(&action);
|
||||||
|
}
|
||||||
|
#else
|
||||||
m_provider->VTable0x20(&MxDSAction());
|
m_provider->VTable0x20(&MxDSAction());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (m_unk0x3c.PopFront(action))
|
while (m_unk0x3c.PopFront(action))
|
||||||
@@ -299,9 +307,16 @@ MxResult MxDiskStreamController::VTable0x24(MxDSAction* p_action)
|
|||||||
MxAutoLocker lock(&this->m_criticalSection);
|
MxAutoLocker lock(&this->m_criticalSection);
|
||||||
if (m_unk0x54.Find(p_action, FALSE) == NULL) {
|
if (m_unk0x54.Find(p_action, FALSE) == NULL) {
|
||||||
if (VTable0x30(p_action) == SUCCESS) {
|
if (VTable0x30(p_action) == SUCCESS) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxEndActionNotificationParam param(c_notificationEndAction, NULL, p_action, TRUE);
|
||||||
|
MxOmni::GetInstance()->NotifyCurrentEntity(¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
MxOmni::GetInstance()->NotifyCurrentEntity(
|
MxOmni::GetInstance()->NotifyCurrentEntity(
|
||||||
&MxEndActionNotificationParam(c_notificationEndAction, NULL, p_action, TRUE)
|
&MxEndActionNotificationParam(c_notificationEndAction, NULL, p_action, TRUE)
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -160,10 +160,17 @@ void MxMediaPresenter::EndAction()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (action && action->GetOrigin()) {
|
if (action && action->GetOrigin()) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxEndActionNotificationParam param(c_notificationEndAction, this, action, FALSE);
|
||||||
|
NotificationManager()->Send(action->GetOrigin(), ¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(
|
NotificationManager()->Send(
|
||||||
action->GetOrigin(),
|
action->GetOrigin(),
|
||||||
&MxEndActionNotificationParam(c_notificationEndAction, this, action, FALSE)
|
&MxEndActionNotificationParam(c_notificationEndAction, this, action, FALSE)
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -157,7 +157,7 @@ void MxOmni::Init()
|
|||||||
m_timer = NULL;
|
m_timer = NULL;
|
||||||
m_streamer = NULL;
|
m_streamer = NULL;
|
||||||
m_atomIdCounterSet = NULL;
|
m_atomIdCounterSet = NULL;
|
||||||
m_timerRunning = NULL;
|
m_timerRunning = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100af0b0
|
// FUNCTION: LEGO1 0x100af0b0
|
||||||
@@ -345,14 +345,28 @@ MxResult MxOmni::CreatePresenter(MxStreamController* p_controller, MxDSAction& p
|
|||||||
|
|
||||||
if (object->StartAction(p_controller, &p_action) == SUCCESS) {
|
if (object->StartAction(p_controller, &p_action) == SUCCESS) {
|
||||||
if (sender) {
|
if (sender) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxType4NotificationParam param(this, &p_action, object);
|
||||||
|
NotificationManager()->Send(sender, ¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(sender, &MxType4NotificationParam(this, &p_action, object));
|
NotificationManager()->Send(sender, &MxType4NotificationParam(this, &p_action, object));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_action.GetUnknown84()) {
|
if (p_action.GetUnknown84()) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxStartActionNotificationParam param(c_notificationStartAction, object, &p_action, FALSE);
|
||||||
|
NotificationManager()->Send(p_action.GetUnknown84(), ¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(
|
NotificationManager()->Send(
|
||||||
p_action.GetUnknown84(),
|
p_action.GetUnknown84(),
|
||||||
&MxStartActionNotificationParam(c_notificationStartAction, object, &p_action, FALSE)
|
&MxStartActionNotificationParam(c_notificationStartAction, object, &p_action, FALSE)
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
result = SUCCESS;
|
result = SUCCESS;
|
||||||
}
|
}
|
||||||
|
@@ -147,9 +147,16 @@ void MxPresenter::EndAction()
|
|||||||
MxAutoLocker lock(&this->m_criticalSection);
|
MxAutoLocker lock(&this->m_criticalSection);
|
||||||
|
|
||||||
if (!this->m_compositePresenter) {
|
if (!this->m_compositePresenter) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxEndActionNotificationParam param(c_notificationEndAction, NULL, this->m_action, TRUE);
|
||||||
|
MxOmni::GetInstance()->NotifyCurrentEntity(¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
MxOmni::GetInstance()->NotifyCurrentEntity(
|
MxOmni::GetInstance()->NotifyCurrentEntity(
|
||||||
&MxEndActionNotificationParam(c_notificationEndAction, NULL, this->m_action, TRUE)
|
&MxEndActionNotificationParam(c_notificationEndAction, NULL, this->m_action, TRUE)
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_action = NULL;
|
this->m_action = NULL;
|
||||||
@@ -195,7 +202,14 @@ void MxPresenter::SendToCompositePresenter(MxOmni* p_omni)
|
|||||||
if (m_compositePresenter) {
|
if (m_compositePresenter) {
|
||||||
MxAutoLocker lock(&m_criticalSection);
|
MxAutoLocker lock(&m_criticalSection);
|
||||||
|
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxNotificationParam param(MXPRESENTER_NOTIFICATION, this);
|
||||||
|
NotificationManager()->Send(m_compositePresenter, ¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(m_compositePresenter, &MxNotificationParam(MXPRESENTER_NOTIFICATION, this));
|
NotificationManager()->Send(m_compositePresenter, &MxNotificationParam(MXPRESENTER_NOTIFICATION, this));
|
||||||
|
#endif
|
||||||
|
|
||||||
m_action->SetOrigin(p_omni ? p_omni : MxOmni::GetInstance());
|
m_action->SetOrigin(p_omni ? p_omni : MxOmni::GetInstance());
|
||||||
m_compositePresenter = NULL;
|
m_compositePresenter = NULL;
|
||||||
|
@@ -55,7 +55,14 @@ MxStreamController::~MxStreamController()
|
|||||||
if (m_provider) {
|
if (m_provider) {
|
||||||
MxStreamProvider* provider = m_provider;
|
MxStreamProvider* provider = m_provider;
|
||||||
m_provider = NULL;
|
m_provider = NULL;
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxDSAction action;
|
||||||
|
provider->VTable0x20(&action);
|
||||||
|
}
|
||||||
|
#else
|
||||||
provider->VTable0x20(&MxDSAction());
|
provider->VTable0x20(&MxDSAction());
|
||||||
|
#endif
|
||||||
delete provider;
|
delete provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -81,8 +81,16 @@ MxLong MxStreamer::Close(const char* p_name)
|
|||||||
|
|
||||||
if (c->FUN_100c20d0(ds))
|
if (c->FUN_100c20d0(ds))
|
||||||
delete c;
|
delete c;
|
||||||
else
|
else {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxStreamerNotification notification(MXSTREAMER_DELETE_NOTIFY, NULL, c);
|
||||||
|
NotificationManager()->Send(this, ¬ification);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(this, &MxStreamerNotification(MXSTREAMER_DELETE_NOTIFY, NULL, c));
|
NotificationManager()->Send(this, &MxStreamerNotification(MXSTREAMER_DELETE_NOTIFY, NULL, c));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -185,20 +193,17 @@ MxLong MxStreamer::Notify(MxParam& p_param)
|
|||||||
|
|
||||||
if (c->FUN_100c20d0(ds))
|
if (c->FUN_100c20d0(ds))
|
||||||
delete c;
|
delete c;
|
||||||
else
|
else {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxStreamerNotification notification(MXSTREAMER_DELETE_NOTIFY, NULL, c);
|
||||||
|
NotificationManager()->Send(this, ¬ification);
|
||||||
|
}
|
||||||
|
#else
|
||||||
NotificationManager()->Send(this, &MxStreamerNotification(MXSTREAMER_DELETE_NOTIFY, NULL, c));
|
NotificationManager()->Send(this, &MxStreamerNotification(MXSTREAMER_DELETE_NOTIFY, NULL, c));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// No offset, function is always inlined
|
|
||||||
MxStreamerSubClass1::MxStreamerSubClass1(undefined4 p_size)
|
|
||||||
{
|
|
||||||
m_buffer = NULL;
|
|
||||||
m_size = p_size;
|
|
||||||
undefined4* ptr = &m_unk0x08;
|
|
||||||
for (int i = 0; i >= 0; i--) {
|
|
||||||
ptr[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@@ -14,7 +14,15 @@
|
|||||||
// STL. But I haven't figured out what yet (it's definitely not a vector).
|
// STL. But I haven't figured out what yet (it's definitely not a vector).
|
||||||
class MxStreamerSubClass1 {
|
class MxStreamerSubClass1 {
|
||||||
public:
|
public:
|
||||||
inline MxStreamerSubClass1(undefined4 p_size);
|
inline MxStreamerSubClass1(undefined4 p_size)
|
||||||
|
{
|
||||||
|
m_buffer = NULL;
|
||||||
|
m_size = p_size;
|
||||||
|
undefined4* ptr = &m_unk0x08;
|
||||||
|
for (int i = 0; i >= 0; i--) {
|
||||||
|
ptr[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
~MxStreamerSubClass1() { delete[] m_buffer; }
|
~MxStreamerSubClass1() { delete[] m_buffer; }
|
||||||
|
|
||||||
|
@@ -140,7 +140,14 @@ void MxTransitionManager::EndTransition(MxBool p_notifyWorld)
|
|||||||
LegoWorld* world = GetCurrentWorld();
|
LegoWorld* world = GetCurrentWorld();
|
||||||
|
|
||||||
if (world) {
|
if (world) {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxNotificationParam param(MXTRANSITIONMANAGER_TRANSITIONENDED, this);
|
||||||
|
world->Notify(param);
|
||||||
|
}
|
||||||
|
#else
|
||||||
world->Notify(MxNotificationParam(MXTRANSITIONMANAGER_TRANSITIONENDED, this));
|
world->Notify(MxNotificationParam(MXTRANSITIONMANAGER_TRANSITIONENDED, this));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -86,6 +86,25 @@ private:
|
|||||||
IDirect3DRM2* m_data;
|
IDirect3DRM2* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern IDirect3DRM2* g_pD3DRM;
|
||||||
|
|
||||||
|
inline void RendererDestroy(IDirect3DRM2* pRenderer)
|
||||||
|
{
|
||||||
|
int refCount = pRenderer->Release();
|
||||||
|
if (refCount <= 0) {
|
||||||
|
g_pD3DRM = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inlined only
|
||||||
|
void RendererImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
RendererDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE 0x100db988
|
// VTABLE 0x100db988
|
||||||
class DeviceImpl : public Device {
|
class DeviceImpl : public Device {
|
||||||
public:
|
public:
|
||||||
|
@@ -13,8 +13,11 @@ Renderer* Tgl::CreateRenderer()
|
|||||||
return renderer;
|
return renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace TglImpl
|
||||||
|
{
|
||||||
// GLOBAL: LEGO1 0x1010103c
|
// GLOBAL: LEGO1 0x1010103c
|
||||||
IDirect3DRM2* g_pD3DRM = NULL;
|
IDirect3DRM2* g_pD3DRM = NULL;
|
||||||
|
} // namespace TglImpl
|
||||||
|
|
||||||
// Inlined only
|
// Inlined only
|
||||||
Result RendererImpl::Create()
|
Result RendererImpl::Create()
|
||||||
@@ -31,23 +34,6 @@ Result RendererImpl::Create()
|
|||||||
return (m_data != NULL) ? Success : Error;
|
return (m_data != NULL) ? Success : Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void RendererDestroy(IDirect3DRM2* pRenderer)
|
|
||||||
{
|
|
||||||
int refCount = pRenderer->Release();
|
|
||||||
if (refCount <= 0) {
|
|
||||||
g_pD3DRM = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inlined only
|
|
||||||
void RendererImpl::Destroy()
|
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
RendererDestroy(m_data);
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a1894
|
// FUNCTION: LEGO1 0x100a1894
|
||||||
Device* RendererImpl::CreateDevice(const DeviceDirect3DCreateData& data)
|
Device* RendererImpl::CreateDevice(const DeviceDirect3DCreateData& data)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user