mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-12-12 00:51:08 -05:00
Implement/match MxStreamController::FindNextActionDataStartFromStreamingAction (#368)
* Implement/match MxStreamController::FUN_100c1f00 * Implement/match MxStreamController::FindNextActionDataStartFromStreamingAction
This commit is contained in:
parent
cfe28a2b26
commit
88d267f9f3
3 changed files with 17 additions and 5 deletions
|
@ -215,7 +215,7 @@ MxResult MxStreamController::VTable0x30(MxDSAction* p_action)
|
||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
MxDSAction* action = m_unk0x3c.Find(p_action, TRUE);
|
MxDSAction* action = m_unk0x3c.Find(p_action, TRUE);
|
||||||
if (action != NULL) {
|
if (action != NULL) {
|
||||||
MxNextActionDataStart* data = m_nextActionList.Find(action->GetObjectId(), action->GetUnknown24());
|
MxNextActionDataStart* data = m_nextActionList.FindAndErase(action->GetObjectId(), action->GetUnknown24());
|
||||||
delete action;
|
delete action;
|
||||||
delete data;
|
delete data;
|
||||||
result = SUCCESS;
|
result = SUCCESS;
|
||||||
|
@ -284,10 +284,10 @@ MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100c20b0
|
// FUNCTION: LEGO1 0x100c20b0
|
||||||
MxNextActionDataStart* MxStreamController::FindNextActionDataStartFromStreamingAction(MxDSStreamingAction* p_action)
|
MxNextActionDataStart* MxStreamController::FindNextActionDataStartFromStreamingAction(MxDSStreamingAction* p_action)
|
||||||
{
|
{
|
||||||
return NULL;
|
return m_nextActionList.Find(p_action->GetObjectId(), p_action->GetUnknown24());
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100c20d0
|
// STUB: LEGO1 0x100c20d0
|
||||||
|
|
|
@ -30,8 +30,19 @@ MxDSAction* MxStreamListMxDSAction::Find(MxDSAction* p_action, MxBool p_delete)
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c2240
|
// FUNCTION: LEGO1 0x100c21e0
|
||||||
MxNextActionDataStart* MxStreamListMxNextActionDataStart::Find(MxU32 p_id, MxS16 p_value)
|
MxNextActionDataStart* MxStreamListMxNextActionDataStart::Find(MxU32 p_id, MxS16 p_value)
|
||||||
|
{
|
||||||
|
for (iterator it = begin(); it != end(); it++) {
|
||||||
|
if (p_id == (*it)->GetObjectId() && p_value == (*it)->GetUnknown24())
|
||||||
|
return *it;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100c2240
|
||||||
|
MxNextActionDataStart* MxStreamListMxNextActionDataStart::FindAndErase(MxU32 p_id, MxS16 p_value)
|
||||||
{
|
{
|
||||||
MxNextActionDataStart* match = NULL;
|
MxNextActionDataStart* match = NULL;
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,8 @@ class MxStreamListMxDSAction : public MxStreamList<MxDSAction*> {
|
||||||
// SIZE 0xc
|
// SIZE 0xc
|
||||||
class MxStreamListMxNextActionDataStart : public MxStreamList<MxNextActionDataStart*> {
|
class MxStreamListMxNextActionDataStart : public MxStreamList<MxNextActionDataStart*> {
|
||||||
public:
|
public:
|
||||||
MxNextActionDataStart* Find(MxU32, MxS16);
|
MxNextActionDataStart* Find(MxU32 p_id, MxS16 p_value);
|
||||||
|
MxNextActionDataStart* FindAndErase(MxU32 p_id, MxS16 p_value);
|
||||||
};
|
};
|
||||||
|
|
||||||
// SIZE 0xc
|
// SIZE 0xc
|
||||||
|
|
Loading…
Reference in a new issue