mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-26 17:46:38 -05: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:
parent
129e8d6373
commit
6da912e932
4 changed files with 32 additions and 7 deletions
|
@ -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 @@ class LegoOmni : public MxOmni
|
||||||
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 @@ class MxTransitionManager : public MxCore
|
||||||
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 @@ class MxTransitionManager : public MxCore
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue