mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-05-18 00:52:01 -04:00
Implement/match MxStreamController::FUN_100c1f00 (#367)
This commit is contained in:
parent
59d999f6dc
commit
cfe28a2b26
2 changed files with 33 additions and 8 deletions
|
@ -56,11 +56,11 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MxU16 m_flags; // 0x8
|
MxU16 m_flags; // 0x8
|
||||||
undefined4 m_objectId; // 0xc
|
MxU32 m_objectId; // 0xc
|
||||||
MxLong m_time; // 0x10
|
MxLong m_time; // 0x10
|
||||||
MxU32 m_length; // 0x14
|
MxU32 m_length; // 0x14
|
||||||
MxU8* m_data; // 0x18
|
MxU8* m_data; // 0x18
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDSCHUNK_H
|
#endif // MXDSCHUNK_H
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "legoomni.h"
|
#include "legoomni.h"
|
||||||
#include "legoutil.h"
|
#include "legoutil.h"
|
||||||
#include "mxautolocker.h"
|
#include "mxautolocker.h"
|
||||||
|
#include "mxdsmultiaction.h"
|
||||||
#include "mxdsstreamingaction.h"
|
#include "mxdsstreamingaction.h"
|
||||||
#include "mxnextactiondatastart.h"
|
#include "mxnextactiondatastart.h"
|
||||||
#include "mxstl/stlcompat.h"
|
#include "mxstl/stlcompat.h"
|
||||||
|
@ -252,11 +253,35 @@ MxPresenter* MxStreamController::FUN_100c1e70(MxDSAction& p_action)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100c1f00
|
// FUNCTION: LEGO1 0x100c1f00
|
||||||
MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
// TODO
|
MxAutoLocker lock(&m_criticalSection);
|
||||||
return FAILURE;
|
|
||||||
|
MxU32 objectId = p_action->GetObjectId();
|
||||||
|
MxStreamChunk* chunk = new MxStreamChunk;
|
||||||
|
|
||||||
|
if (!chunk)
|
||||||
|
return FAILURE;
|
||||||
|
|
||||||
|
chunk->SetFlags(MxDSChunk::Flag_Bit3);
|
||||||
|
chunk->SetObjectId(objectId);
|
||||||
|
|
||||||
|
if (chunk->SendChunk(m_subscriberList, FALSE, p_action->GetUnknown24()) != SUCCESS)
|
||||||
|
delete chunk;
|
||||||
|
|
||||||
|
if (p_action->IsA("MxDSMultiAction")) {
|
||||||
|
MxDSActionList* actions = ((MxDSMultiAction*) p_action)->GetActionList();
|
||||||
|
MxDSActionListCursor cursor(actions);
|
||||||
|
MxDSAction* action;
|
||||||
|
|
||||||
|
while (cursor.Next(action)) {
|
||||||
|
if (FUN_100c1f00(action) != SUCCESS)
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100c20b0
|
// STUB: LEGO1 0x100c20b0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue