mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 00:31:16 +00:00
A bunch of fixes
This commit is contained in:
parent
b63aca7320
commit
cb80c50736
@ -8,8 +8,8 @@ class Lego3DManager {
|
|||||||
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined4 m_unk0x00;
|
undefined4 m_unk0x00; // 0x00
|
||||||
undefined4 m_unk0x04;
|
undefined4 m_unk0x04; // 0x04
|
||||||
Lego3DView* m_3dView; // 0x08
|
Lego3DView* m_3dView; // 0x08
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -236,8 +236,7 @@ void FUN_1001a700()
|
|||||||
// FUNCTION: LEGO1 0x1003dd70
|
// FUNCTION: LEGO1 0x1003dd70
|
||||||
LegoROI* PickROI(MxLong p_a, MxLong p_b)
|
LegoROI* PickROI(MxLong p_a, MxLong p_b)
|
||||||
{
|
{
|
||||||
LegoVideoManager* vid = VideoManager();
|
return VideoManager()->Get3DManager()->GetLego3DView()->PickROI(p_a, p_b);
|
||||||
return vid->Get3DManager()->GetLego3DView()->PickROI(p_a, p_b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1003ddc0
|
// STUB: LEGO1 0x1003ddc0
|
||||||
@ -562,10 +561,9 @@ LegoEntity* LegoOmni::FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_ent
|
|||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1005b1d0
|
// STUB: LEGO1 0x1005b1d0
|
||||||
MxResult LegoOmni::DeleteObject(MxDSAction& p_dsAction)
|
void LegoOmni::DeleteObject(MxDSAction& p_dsAction)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
return FAILURE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1005b2f0
|
// FUNCTION: LEGO1 0x1005b2f0
|
||||||
|
|||||||
@ -89,7 +89,7 @@ class LegoOmni : public MxOmni {
|
|||||||
virtual MxResult Create(MxOmniCreateParam& p_param) override; // vtable+18
|
virtual MxResult Create(MxOmniCreateParam& p_param) override; // vtable+18
|
||||||
virtual void Destroy() override; // vtable+1c
|
virtual void Destroy() override; // vtable+1c
|
||||||
virtual MxResult Start(MxDSAction* p_dsAction) override; // vtable+20
|
virtual MxResult Start(MxDSAction* p_dsAction) override; // vtable+20
|
||||||
virtual MxResult DeleteObject(MxDSAction& p_dsAction) override; // vtable+24
|
virtual void DeleteObject(MxDSAction& p_dsAction) override; // vtable+24
|
||||||
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction) override; // vtable+28
|
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction) override; // vtable+28
|
||||||
virtual MxEntity* FindWorld(const char* p_id, MxS32 p_entityId, MxPresenter* p_presenter) override; // vtable+30
|
virtual MxEntity* FindWorld(const char* p_id, MxS32 p_entityId, MxPresenter* p_presenter) override; // vtable+30
|
||||||
virtual void NotifyCurrentEntity(MxNotificationParam* p_param) override; // vtable+34
|
virtual void NotifyCurrentEntity(MxNotificationParam* p_param) override; // vtable+34
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class LegoWorld : public LegoEntity {
|
|||||||
MxBool FUN_10072980(MxU32, Vector3Data& p_loc, Vector3Data& p_dir, Vector3Data& p_up);
|
MxBool FUN_10072980(MxU32, Vector3Data& p_loc, Vector3Data& p_dir, Vector3Data& p_up);
|
||||||
void FUN_10073400();
|
void FUN_10073400();
|
||||||
void FUN_10073430();
|
void FUN_10073430();
|
||||||
int GetCurrPathInfo(LegoPathBoundary** p_path, int& p_value);
|
MxS32 GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LegoPathControllerList m_list0x68; // 0x68
|
LegoPathControllerList m_list0x68; // 0x68
|
||||||
|
|||||||
@ -66,9 +66,6 @@ class MxStartActionNotificationParam : public MxActionNotificationParam {
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b04a0
|
|
||||||
inline virtual ~MxStartActionNotificationParam() override {}
|
|
||||||
|
|
||||||
virtual MxNotificationParam* Clone() override; // vtable+0x4
|
virtual MxNotificationParam* Clone() override; // vtable+0x4
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -99,21 +96,19 @@ class MxType4NotificationParam : public MxActionNotificationParam {
|
|||||||
m_unk0x14 = p_unk0x14;
|
m_unk0x14 = p_unk0x14;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b0630
|
|
||||||
inline virtual ~MxType4NotificationParam() override {}
|
|
||||||
|
|
||||||
virtual MxNotificationParam* Clone() override; // vtable+0x4
|
virtual MxNotificationParam* Clone() override; // vtable+0x4
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MxPresenter* m_unk0x14; // 0x14
|
MxPresenter* m_unk0x14; // 0x14
|
||||||
};
|
};
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100b0430
|
|
||||||
// MxStartActionNotificationParam::`scalar deleting destructor'
|
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100513a0
|
// SYNTHETIC: LEGO1 0x100513a0
|
||||||
// MxEndActionNotificationParam::`scalar deleting destructor'
|
// MxEndActionNotificationParam::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x100b0430
|
||||||
|
// MxStartActionNotificationParam::`scalar deleting destructor'
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100b05c0
|
// SYNTHETIC: LEGO1 0x100b05c0
|
||||||
// MxType4NotificationParam::`scalar deleting destructor'
|
// MxType4NotificationParam::`scalar deleting destructor'
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -114,9 +114,9 @@ MxEventManager* EventManager()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100acf70
|
// FUNCTION: LEGO1 0x100acf70
|
||||||
MxResult DeleteObject(MxDSAction& p_dsAction)
|
void DeleteObject(MxDSAction& p_dsAction)
|
||||||
{
|
{
|
||||||
return MxOmni::GetInstance()->DeleteObject(p_dsAction);
|
MxOmni::GetInstance()->DeleteObject(p_dsAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100aef10
|
// FUNCTION: LEGO1 0x100aef10
|
||||||
@ -313,14 +313,11 @@ MxResult MxOmni::Start(MxDSAction* p_dsAction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b00c0
|
// FUNCTION: LEGO1 0x100b00c0
|
||||||
MxResult MxOmni::DeleteObject(MxDSAction& p_dsAction)
|
void MxOmni::DeleteObject(MxDSAction& p_dsAction)
|
||||||
{
|
{
|
||||||
MxResult result;
|
|
||||||
if (m_streamer != NULL) {
|
if (m_streamer != NULL) {
|
||||||
result = m_streamer->DeleteObject(&p_dsAction);
|
m_streamer->DeleteObject(&p_dsAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b00e0
|
// FUNCTION: LEGO1 0x100b00e0
|
||||||
@ -328,10 +325,11 @@ MxResult MxOmni::CreatePresenter(MxStreamController* p_controller, MxDSAction& p
|
|||||||
{
|
{
|
||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
MxPresenter* object = (MxPresenter*) m_objectFactory->Create(PresenterNameDispatch(p_action));
|
MxPresenter* object = (MxPresenter*) m_objectFactory->Create(PresenterNameDispatch(p_action));
|
||||||
|
|
||||||
if (object) {
|
if (object) {
|
||||||
if (object->AddToManager() == SUCCESS) {
|
if (object->AddToManager() == SUCCESS) {
|
||||||
MxPresenter* sender = (MxPresenter*) p_action.GetUnknown28();
|
MxPresenter* sender = p_action.GetUnknown28();
|
||||||
if (sender == NULL && (sender = (MxPresenter*) p_controller->FUN_100c1e70(p_action)) == NULL) {
|
if (sender == NULL && (sender = p_controller->FUN_100c1e70(p_action)) == NULL) {
|
||||||
if (p_action.GetOrigin() == NULL) {
|
if (p_action.GetOrigin() == NULL) {
|
||||||
p_action.SetOrigin(this);
|
p_action.SetOrigin(this);
|
||||||
}
|
}
|
||||||
@ -345,10 +343,7 @@ 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) {
|
||||||
NotificationManager()->Send(
|
NotificationManager()->Send(sender, &MxType4NotificationParam(this, &p_action, object));
|
||||||
p_action.GetUnknown84(),
|
|
||||||
&MxType4NotificationParam(this, &p_action, object)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_action.GetUnknown84()) {
|
if (p_action.GetUnknown84()) {
|
||||||
@ -379,9 +374,10 @@ void MxOmni::DestroyInstance()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MxBool MxOmni::FUN_100b06b0(MxDSAction* p_action)
|
// STUB: LEGO1 0x100b06b0
|
||||||
|
MxBool MxOmni::FUN_100b06b0(MxDSAction* p_action, const char* p_name)
|
||||||
{
|
{
|
||||||
// TODO STUB
|
// TODO
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -401,9 +397,11 @@ MxLong MxOmni::HandleActionEnd(MxParam& p_param)
|
|||||||
{
|
{
|
||||||
MxDSAction* action = ((MxEndActionNotificationParam&) p_param).GetAction();
|
MxDSAction* action = ((MxEndActionNotificationParam&) p_param).GetAction();
|
||||||
MxStreamController* controller = Streamer()->GetOpenStream(action->GetAtomId().GetInternal());
|
MxStreamController* controller = Streamer()->GetOpenStream(action->GetAtomId().GetInternal());
|
||||||
|
|
||||||
if (controller != NULL) {
|
if (controller != NULL) {
|
||||||
if (controller->GetUnk0x54().Find(action, FALSE)) {
|
action = controller->GetUnk0x54().Find(action, FALSE);
|
||||||
if (FUN_100b06b0(action) == FALSE) {
|
if (action) {
|
||||||
|
if (FUN_100b06b0(action, "LegoLoopingAnimPresenter") == FALSE) {
|
||||||
delete controller->GetUnk0x54().Find(action, TRUE);
|
delete controller->GetUnk0x54().Find(action, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -416,6 +414,7 @@ MxLong MxOmni::HandleActionEnd(MxParam& p_param)
|
|||||||
if (((MxEndActionNotificationParam&) p_param).GetAction()) {
|
if (((MxEndActionNotificationParam&) p_param).GetAction()) {
|
||||||
delete ((MxEndActionNotificationParam&) p_param).GetAction();
|
delete ((MxEndActionNotificationParam&) p_param).GetAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -45,7 +45,7 @@ class MxOmni : public MxCore {
|
|||||||
virtual MxResult Create(MxOmniCreateParam& p_param); // vtable+18
|
virtual MxResult Create(MxOmniCreateParam& p_param); // vtable+18
|
||||||
virtual void Destroy(); // vtable+1c
|
virtual void Destroy(); // vtable+1c
|
||||||
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
||||||
virtual MxResult DeleteObject(MxDSAction& p_dsAction); // vtable+24
|
virtual void DeleteObject(MxDSAction& p_dsAction); // vtable+24
|
||||||
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction); // vtable+28
|
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction); // vtable+28
|
||||||
virtual MxResult CreatePresenter(MxStreamController* p_controller, MxDSAction& p_action); // vtable+2c
|
virtual MxResult CreatePresenter(MxStreamController* p_controller, MxDSAction& p_action); // vtable+2c
|
||||||
virtual MxEntity* FindWorld(const char*, MxS32, MxPresenter*); // vtable+30
|
virtual MxEntity* FindWorld(const char*, MxS32, MxPresenter*); // vtable+30
|
||||||
@ -53,8 +53,10 @@ class MxOmni : public MxCore {
|
|||||||
virtual void StartTimer(); // vtable+38
|
virtual void StartTimer(); // vtable+38
|
||||||
virtual void StopTimer(); // vtable+3c
|
virtual void StopTimer(); // vtable+3c
|
||||||
virtual MxBool IsTimerRunning(); // vtable+40
|
virtual MxBool IsTimerRunning(); // vtable+40
|
||||||
|
|
||||||
static void SetInstance(MxOmni* p_instance);
|
static void SetInstance(MxOmni* p_instance);
|
||||||
static MxBool FUN_100b06b0(MxDSAction* p_action);
|
static MxBool FUN_100b06b0(MxDSAction* p_action, const char* p_name);
|
||||||
|
|
||||||
HWND GetWindowHandle() const { return this->m_windowHandle; }
|
HWND GetWindowHandle() const { return this->m_windowHandle; }
|
||||||
MxObjectFactory* GetObjectFactory() const { return this->m_objectFactory; }
|
MxObjectFactory* GetObjectFactory() const { return this->m_objectFactory; }
|
||||||
MxNotificationManager* GetNotificationManager() const { return this->m_notificationManager; }
|
MxNotificationManager* GetNotificationManager() const { return this->m_notificationManager; }
|
||||||
@ -84,13 +86,11 @@ class MxOmni : public MxCore {
|
|||||||
MxEventManager* m_eventManager; // 0x38
|
MxEventManager* m_eventManager; // 0x38
|
||||||
MxTimer* m_timer; // 0x3C
|
MxTimer* m_timer; // 0x3C
|
||||||
MxStreamer* m_streamer; // 0x40
|
MxStreamer* m_streamer; // 0x40
|
||||||
|
|
||||||
MxAtomIdCounterSet* m_atomIdCounterSet; // 0x44
|
MxAtomIdCounterSet* m_atomIdCounterSet; // 0x44
|
||||||
|
|
||||||
MxCriticalSection m_criticalsection; // 0x48
|
MxCriticalSection m_criticalsection; // 0x48
|
||||||
|
|
||||||
MxBool m_timerRunning; // 0x64
|
MxBool m_timerRunning; // 0x64
|
||||||
};
|
};
|
||||||
|
|
||||||
__declspec(dllexport) MxTickleManager* TickleManager();
|
__declspec(dllexport) MxTickleManager* TickleManager();
|
||||||
__declspec(dllexport) MxTimer* Timer();
|
__declspec(dllexport) MxTimer* Timer();
|
||||||
__declspec(dllexport) MxStreamer* Streamer();
|
__declspec(dllexport) MxStreamer* Streamer();
|
||||||
@ -103,7 +103,7 @@ __declspec(dllexport) MxNotificationManager* NotificationManager();
|
|||||||
MxVideoManager* MVideoManager();
|
MxVideoManager* MVideoManager();
|
||||||
MxAtomIdCounterSet* AtomIdCounterSet();
|
MxAtomIdCounterSet* AtomIdCounterSet();
|
||||||
MxObjectFactory* ObjectFactory();
|
MxObjectFactory* ObjectFactory();
|
||||||
MxResult DeleteObject(MxDSAction& p_dsAction);
|
void DeleteObject(MxDSAction& p_dsAction);
|
||||||
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
|
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
|
||||||
|
|
||||||
#endif // MXOMNI_H
|
#endif // MXOMNI_H
|
||||||
|
|||||||
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
class MxCompositePresenter;
|
class MxCompositePresenter;
|
||||||
class MxStreamController;
|
class MxStreamController;
|
||||||
class MxPresenter;
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d4d38
|
// VTABLE: LEGO1 0x100d4d38
|
||||||
// SIZE 0x40
|
// SIZE 0x40
|
||||||
|
|||||||
@ -134,14 +134,14 @@ MxResult MxStreamController::VTable0x30(MxDSAction* p_action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1e70
|
// FUNCTION: LEGO1 0x100c1e70
|
||||||
MxCore* MxStreamController::FUN_100c1e70(MxDSAction& p_action)
|
MxPresenter* MxStreamController::FUN_100c1e70(MxDSAction& p_action)
|
||||||
{
|
{
|
||||||
MxAutoLocker locker(&m_criticalSection);
|
MxAutoLocker locker(&m_criticalSection);
|
||||||
MxCore* result = NULL;
|
MxPresenter* result = NULL;
|
||||||
if (p_action.GetObjectId() != -1) {
|
if (p_action.GetObjectId() != -1) {
|
||||||
MxDSAction* action = m_unk0x3c.Find(&p_action, FALSE);
|
MxDSAction* action = m_unk0x3c.Find(&p_action, FALSE);
|
||||||
if (action != NULL) {
|
if (action != NULL) {
|
||||||
result = (MxCore*) action->GetUnknown28();
|
result = action->GetUnknown28();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -44,7 +44,7 @@ class MxStreamController : public MxCore {
|
|||||||
MxResult FUN_100c1800(MxDSAction* p_action, MxU32 p_val);
|
MxResult FUN_100c1800(MxDSAction* p_action, MxU32 p_val);
|
||||||
MxBool FUN_100c20d0(MxDSObject& p_obj);
|
MxBool FUN_100c20d0(MxDSObject& p_obj);
|
||||||
MxResult FUN_100c1a00(MxDSAction* p_action, MxU32 p_bufferval);
|
MxResult FUN_100c1a00(MxDSAction* p_action, MxU32 p_bufferval);
|
||||||
MxCore* FUN_100c1e70(MxDSAction& p_action);
|
MxPresenter* FUN_100c1e70(MxDSAction& p_action);
|
||||||
MxResult FUN_100c1f00(MxDSAction* p_action);
|
MxResult FUN_100c1f00(MxDSAction* p_action);
|
||||||
|
|
||||||
inline MxAtomId& GetAtom() { return m_atom; };
|
inline MxAtomId& GetAtom() { return m_atom; };
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user