mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-12-19 04:12:26 -05:00
Implement new functions in LegoAnimManager
(#1170)
* Implement new functions in LegoAnimManager * Address review comment --------- Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
parent
bd011c6724
commit
106647e5af
4 changed files with 49 additions and 15 deletions
|
@ -155,9 +155,9 @@ class LegoAnimationManager : public MxCore {
|
||||||
MxBool FindVehicle(const char* p_name, MxU32& p_index);
|
MxBool FindVehicle(const char* p_name, MxU32& p_index);
|
||||||
MxResult ReadAnimInfo(LegoFile* p_file, AnimInfo* p_info);
|
MxResult ReadAnimInfo(LegoFile* p_file, AnimInfo* p_info);
|
||||||
MxResult ReadModelInfo(LegoFile* p_file, ModelInfo* p_info);
|
MxResult ReadModelInfo(LegoFile* p_file, ModelInfo* p_info);
|
||||||
void FUN_10060480(LegoChar* p_param1[], undefined4 p_param2);
|
void FUN_10060480(LegoChar* p_characterNames[], MxU32 p_numCharacterNames);
|
||||||
void FUN_100604d0(MxBool p_unk0x08);
|
void FUN_100604d0(MxBool p_unk0x08);
|
||||||
void FUN_100604f0(MxS32* p_param1, undefined4 p_param2);
|
void FUN_100604f0(MxS32 p_objectIds[], undefined4 p_numObjectIds);
|
||||||
void FUN_10060540(MxBool p_unk0x29);
|
void FUN_10060540(MxBool p_unk0x29);
|
||||||
void FUN_10060570(MxBool p_unk0x1a);
|
void FUN_10060570(MxBool p_unk0x1a);
|
||||||
MxResult StartEntityAction(MxDSAction& p_dsAction, LegoEntity* p_entity);
|
MxResult StartEntityAction(MxDSAction& p_dsAction, LegoEntity* p_entity);
|
||||||
|
@ -183,7 +183,7 @@ class LegoAnimationManager : public MxCore {
|
||||||
MxResult FUN_10064670(Vector3* p_position);
|
MxResult FUN_10064670(Vector3* p_position);
|
||||||
MxResult FUN_10064740(Vector3* p_position);
|
MxResult FUN_10064740(Vector3* p_position);
|
||||||
MxResult FUN_10064880(const char* p_name, MxS32 p_unk0x0c, MxS32 p_unk0x10);
|
MxResult FUN_10064880(const char* p_name, MxS32 p_unk0x0c, MxS32 p_unk0x10);
|
||||||
undefined FUN_10064ee0(MxU32 p_param);
|
MxBool FUN_10064ee0(MxU32 p_objectId);
|
||||||
|
|
||||||
static void configureLegoAnimationManager(MxS32 p_legoAnimationManagerConfig);
|
static void configureLegoAnimationManager(MxS32 p_legoAnimationManagerConfig);
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x1004aa40
|
// SYNTHETIC: LEGO1 0x1004aa40
|
||||||
// LegoAnimMMPresenter::`scalar deleting destructor'
|
// LegoAnimMMPresenter::`scalar deleting destructor'
|
||||||
|
MxBool FUN_1004b830();
|
||||||
void FUN_1004b840();
|
void FUN_1004b840();
|
||||||
MxBool FUN_1004b8b0();
|
MxBool FUN_1004b8b0();
|
||||||
void FUN_1004b8c0();
|
void FUN_1004b8c0();
|
||||||
|
|
|
@ -246,6 +246,7 @@ const char* g_cycles[11][17] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x100f7048
|
// GLOBAL: LEGO1 0x100f7048
|
||||||
|
// GLOBAL: BETA10 0x101e1ee8
|
||||||
LegoAnimationManager::Character g_characters[47] = {
|
LegoAnimationManager::Character g_characters[47] = {
|
||||||
{"pepper", FALSE, 6, 0, FALSE, FALSE, TRUE, 1500, 20000, FALSE, 50, 1},
|
{"pepper", FALSE, 6, 0, FALSE, FALSE, TRUE, 1500, 20000, FALSE, 50, 1},
|
||||||
{"mama", FALSE, -1, 0, FALSE, FALSE, FALSE, 1500, 20000, FALSE, 0, 2},
|
{"mama", FALSE, -1, 0, FALSE, FALSE, FALSE, 1500, 20000, FALSE, 0, 2},
|
||||||
|
@ -878,11 +879,17 @@ void LegoAnimationManager::DeleteAnimations()
|
||||||
m_suspended = suspended;
|
m_suspended = suspended;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10060480
|
// FUNCTION: LEGO1 0x10060480
|
||||||
// STUB: BETA10 0x100412a9
|
// FUNCTION: BETA10 0x100412a9
|
||||||
void LegoAnimationManager::FUN_10060480(LegoChar* p_param1[], undefined4 p_param2)
|
void LegoAnimationManager::FUN_10060480(LegoChar* p_characterNames[], MxU32 p_numCharacterNames)
|
||||||
{
|
{
|
||||||
// TODO
|
for (MxS32 i = 0; i < p_numCharacterNames; i++) {
|
||||||
|
for (MxS32 j = 0; j < sizeOfArray(g_characters); j++) {
|
||||||
|
if (!stricmp(g_characters[j].m_name, p_characterNames[i])) {
|
||||||
|
g_characters[j].m_unk0x08 = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100604d0
|
// FUNCTION: LEGO1 0x100604d0
|
||||||
|
@ -894,11 +901,17 @@ void LegoAnimationManager::FUN_100604d0(MxBool p_unk0x08)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100604f0
|
// FUNCTION: LEGO1 0x100604f0
|
||||||
// STUB: BETA10 0x1004137b
|
// FUNCTION: BETA10 0x1004137b
|
||||||
void LegoAnimationManager::FUN_100604f0(MxS32* p_param1, undefined4 p_param2)
|
void LegoAnimationManager::FUN_100604f0(MxS32 p_objectIds[], undefined4 p_numObjectIds)
|
||||||
{
|
{
|
||||||
// TODO
|
for (MxS32 i = 0; i < p_numObjectIds; i++) {
|
||||||
|
for (MxS32 j = 0; j < m_animCount; j++) {
|
||||||
|
if (m_anims[j].m_objectId == p_objectIds[i]) {
|
||||||
|
m_anims[j].m_unk0x29 = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10060540
|
// FUNCTION: LEGO1 0x10060540
|
||||||
|
@ -2837,10 +2850,25 @@ void LegoAnimationManager::FUN_10064b50(MxLong p_time)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10064ee0
|
// FUNCTION: LEGO1 0x10064ee0
|
||||||
undefined LegoAnimationManager::FUN_10064ee0(MxU32 p_param)
|
MxBool LegoAnimationManager::FUN_10064ee0(MxU32 p_objectId)
|
||||||
{
|
{
|
||||||
// TODO
|
if (m_tranInfoList != NULL) {
|
||||||
|
LegoTranInfoListCursor cursor(m_tranInfoList);
|
||||||
|
LegoTranInfo* tranInfo;
|
||||||
|
|
||||||
|
while (cursor.Next(tranInfo)) {
|
||||||
|
if (tranInfo->m_animInfo->m_objectId == p_objectId) {
|
||||||
|
if (tranInfo->m_presenter) {
|
||||||
|
return tranInfo->m_presenter->FUN_1004b830();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -466,6 +466,12 @@ MxBool LegoAnimMMPresenter::FUN_1004b6d0(MxLong p_time)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1004b830
|
||||||
|
MxBool LegoAnimMMPresenter::FUN_1004b830()
|
||||||
|
{
|
||||||
|
return m_unk0x58 >= e_unk6;
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1004b840
|
// FUNCTION: LEGO1 0x1004b840
|
||||||
// FUNCTION: BETA10 0x1004d033
|
// FUNCTION: BETA10 0x1004d033
|
||||||
void LegoAnimMMPresenter::FUN_1004b840()
|
void LegoAnimMMPresenter::FUN_1004b840()
|
||||||
|
|
Loading…
Reference in a new issue