mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-24 17:04:17 +00:00
Implement MxTransitionManager::EndTransition and GetCurrentWorld (#159)
* Implement MxTransitionManager::EndTransition and GetCurrentWorld * Match EndTransition --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
@@ -312,3 +312,9 @@ MxBool LegoOmni::vtable40()
|
|||||||
// FIXME: Stub
|
// FIXME: Stub
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100157a0
|
||||||
|
LegoWorld *GetCurrentWorld()
|
||||||
|
{
|
||||||
|
return LegoOmni::GetInstance()->GetCurrentWorld();
|
||||||
|
}
|
||||||
|
|||||||
@@ -75,12 +75,16 @@ public:
|
|||||||
LegoGameState *GetGameState() { return m_gameState; }
|
LegoGameState *GetGameState() { return m_gameState; }
|
||||||
LegoNavController *GetNavController() { return m_navController; }
|
LegoNavController *GetNavController() { return m_navController; }
|
||||||
MxTransitionManager *GetTransitionManager() { return m_transitionManager; }
|
MxTransitionManager *GetTransitionManager() { return m_transitionManager; }
|
||||||
|
LegoWorld *GetCurrentWorld() { return m_currentWorld; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_unk68;
|
int m_unk68;
|
||||||
int m_unk6c;
|
int m_unk6c;
|
||||||
LegoInputManager *m_inputMgr; // 0x70
|
LegoInputManager *m_inputMgr; // 0x70
|
||||||
char m_unk74[0x10];
|
undefined4 m_unk74;
|
||||||
|
undefined4 m_unk78;
|
||||||
|
LegoWorld *m_currentWorld;
|
||||||
|
undefined4 m_unk80;
|
||||||
LegoNavController *m_navController; // 0x84
|
LegoNavController *m_navController; // 0x84
|
||||||
Isle* m_isle; // 0x88
|
Isle* m_isle; // 0x88
|
||||||
char m_unk8c[0x4];
|
char m_unk8c[0x4];
|
||||||
@@ -115,5 +119,6 @@ LegoBuildingManager* BuildingManager();
|
|||||||
Isle* GetIsle();
|
Isle* GetIsle();
|
||||||
LegoPlantManager* PlantManager();
|
LegoPlantManager* PlantManager();
|
||||||
MxBool KeyValueStringParse(char *, const char *, const char *);
|
MxBool KeyValueStringParse(char *, const char *, const char *);
|
||||||
|
LegoWorld *GetCurrentWorld();
|
||||||
|
|
||||||
#endif // LEGOOMNI_H
|
#endif // LEGOOMNI_H
|
||||||
|
|||||||
@@ -41,10 +41,24 @@ MxResult MxTransitionManager::Tickle()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1004bc30 STUB
|
// OFFSET: LEGO1 0x1004bc30
|
||||||
void MxTransitionManager::EndTransition(MxBool)
|
void MxTransitionManager::EndTransition(MxBool p_notifyWorld)
|
||||||
{
|
{
|
||||||
// TODO
|
if (m_transitionType != NOT_TRANSITIONING) {
|
||||||
|
m_transitionType = NOT_TRANSITIONING;
|
||||||
|
|
||||||
|
m_unk20.bit0 = FALSE;
|
||||||
|
|
||||||
|
TickleManager()->UnregisterClient(this);
|
||||||
|
|
||||||
|
if (p_notifyWorld) {
|
||||||
|
LegoWorld *world = GetCurrentWorld();
|
||||||
|
|
||||||
|
if (world) {
|
||||||
|
world->Notify(MxParam(0x18, this));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1004bd10
|
// OFFSET: LEGO1 0x1004bd10
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public:
|
|||||||
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_unk, MxBool p_playMusicInAnim);
|
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_unk, MxBool p_playMusicInAnim);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void EndTransition(MxBool);
|
void EndTransition(MxBool p_notifyWorld);
|
||||||
void Transition_Dissolve();
|
void Transition_Dissolve();
|
||||||
void FUN_1004c4d0(DDSURFACEDESC &);
|
void FUN_1004c4d0(DDSURFACEDESC &);
|
||||||
void FUN_1004c580(DDSURFACEDESC &);
|
void FUN_1004c580(DDSURFACEDESC &);
|
||||||
@@ -109,8 +109,8 @@ private:
|
|||||||
MxU16 m_animationTimer;
|
MxU16 m_animationTimer;
|
||||||
MxU16 m_columnOrder[640]; // 0x36
|
MxU16 m_columnOrder[640]; // 0x36
|
||||||
MxU16 m_randomShift[480]; // 0x536
|
MxU16 m_randomShift[480]; // 0x536
|
||||||
MxULong m_systemTime;
|
MxULong m_systemTime; // 0x8f8
|
||||||
MxS32 m_animationSpeed;
|
MxS32 m_animationSpeed; // 0x8fc
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXTRANSITIONMANAGER_H
|
#endif // MXTRANSITIONMANAGER_H
|
||||||
|
|||||||
Reference in New Issue
Block a user