Implement/match LegoCharacterManager::FUN_10083b20 and FUN_10085180 (#902)

This commit is contained in:
Christian Semmler 2024-05-11 08:13:27 -04:00 committed by GitHub
parent d9a82323ca
commit c77dd44105
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 19 additions and 9 deletions

View file

@ -59,7 +59,7 @@ class LegoCharacterManager {
static MxBool Exists(const char* p_key);
void FUN_100832a0();
MxBool FUN_10083b20(const char* p_name);
MxBool FUN_10083b20(const char* p_key);
MxU32 GetRefCount(LegoROI* p_roi);
void FUN_10083c30(const char* p_name);
void FUN_10083db0(LegoROI* p_roi);

View file

@ -1669,7 +1669,7 @@ void LegoAnimationManager::AddExtra(MxS32 p_location, MxBool p_und)
active = rand() % 100 < 50;
}
nextCharacter:
tryNextCharacter:
if (g_characters[m_lastExtraCharacterId].m_unk0x09 &&
g_characters[m_lastExtraCharacterId].m_unk0x08 &&
!g_characters[m_lastExtraCharacterId].m_unk0x04 &&
@ -1708,7 +1708,6 @@ void LegoAnimationManager::AddExtra(MxS32 p_location, MxBool p_und)
boundary->m_dest,
boundary->m_destScale
) == SUCCESS) {
MxS32 vehicleId = g_characters[m_lastExtraCharacterId].m_vehicleId;
if (vehicleId >= 0) {
g_vehicles[vehicleId].m_unk0x04 =
@ -1764,7 +1763,7 @@ void LegoAnimationManager::AddExtra(MxS32 p_location, MxBool p_und)
return;
}
goto nextCharacter;
goto tryNextCharacter;
}
}
}

View file

@ -245,11 +245,17 @@ LegoROI* LegoCharacterManager::GetROI(const char* p_key, MxBool p_createEntity)
return NULL;
}
// STUB: LEGO1 0x10083b20
// FUNCTION: LEGO1 0x10083b20
// FUNCTION: BETA10 0x10074608
MxBool LegoCharacterManager::FUN_10083b20(const char* p_name)
MxBool LegoCharacterManager::FUN_10083b20(const char* p_key)
{
// TODO
LegoCharacter* character = NULL;
LegoCharacterMap::iterator it = m_characters->find(const_cast<char*>(p_key));
if (it != m_characters->end()) {
return TRUE;
}
return FALSE;
}
@ -744,11 +750,16 @@ MxU32 LegoCharacterManager::FUN_10085140(LegoROI* p_roi, MxBool p_und)
return 0;
}
// STUB: LEGO1 0x10085180
// FUNCTION: LEGO1 0x10085180
// FUNCTION: BETA10 0x100768c5
MxU8 LegoCharacterManager::FUN_10085180(LegoROI* p_roi)
{
// TODO
LegoCharacterInfo* info = GetInfo(p_roi);
if (info != NULL) {
return info->m_unk0x14;
}
return 0;
}