mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Match some list functions in MxStreamController
to BETA10 (#1273)
This commit is contained in:

committed by
GitHub

parent
c2c9c75f1a
commit
0f338a882b
@@ -138,4 +138,10 @@ protected:
|
|||||||
// TEMPLATE: LEGO1 0x100c1bc0
|
// TEMPLATE: LEGO1 0x100c1bc0
|
||||||
// list<MxDSObject *,allocator<MxDSObject *> >::insert
|
// list<MxDSObject *,allocator<MxDSObject *> >::insert
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10150b90
|
||||||
|
// MxUtilityList<MxDSSubscriber *>::PushBack
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x10150cf0
|
||||||
|
// MxUtilityList<MxDSSubscriber *>::Remove
|
||||||
|
|
||||||
#endif // MXSTREAMCONTROLLER_H
|
#endif // MXSTREAMCONTROLLER_H
|
||||||
|
@@ -21,6 +21,7 @@ public:
|
|||||||
|
|
||||||
// Note: does not take a reference
|
// Note: does not take a reference
|
||||||
void PushBack(T p_obj) { this->push_back(p_obj); }
|
void PushBack(T p_obj) { this->push_back(p_obj); }
|
||||||
|
void Remove(T p_obj) { this->remove(p_obj); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXUTILITYLIST_H
|
#endif // MXUTILITYLIST_H
|
||||||
|
@@ -72,20 +72,22 @@ MxResult MxStreamController::Open(const char* p_filename)
|
|||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
|
|
||||||
MakeSourceName(sourceName, p_filename);
|
MakeSourceName(sourceName, p_filename);
|
||||||
this->m_atom = MxAtomId(sourceName, e_lowerCase2);
|
m_atom = MxAtomId(sourceName, e_lowerCase2);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c15d0
|
// FUNCTION: LEGO1 0x100c15d0
|
||||||
|
// FUNCTION: BETA10 0x1014e730
|
||||||
void MxStreamController::AddSubscriber(MxDSSubscriber* p_subscriber)
|
void MxStreamController::AddSubscriber(MxDSSubscriber* p_subscriber)
|
||||||
{
|
{
|
||||||
m_subscriberList.push_back(p_subscriber);
|
m_subscriberList.PushBack(p_subscriber);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1620
|
// FUNCTION: LEGO1 0x100c1620
|
||||||
|
// FUNCTION: BETA10 0x1014e7b4
|
||||||
void MxStreamController::RemoveSubscriber(MxDSSubscriber* p_subscriber)
|
void MxStreamController::RemoveSubscriber(MxDSSubscriber* p_subscriber)
|
||||||
{
|
{
|
||||||
m_subscriberList.remove(p_subscriber);
|
m_subscriberList.Remove(p_subscriber);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1690
|
// FUNCTION: LEGO1 0x100c1690
|
||||||
@@ -114,11 +116,13 @@ MxResult MxStreamController::VTable0x20(MxDSAction* p_action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1740
|
// FUNCTION: LEGO1 0x100c1740
|
||||||
|
// FUNCTION: BETA10 0x1014e922
|
||||||
MxResult MxStreamController::VTable0x24(MxDSAction* p_action)
|
MxResult MxStreamController::VTable0x24(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
VTable0x30(p_action);
|
VTable0x30(p_action);
|
||||||
m_action0x60 = (MxDSAction*) m_unk0x54.FindAndErase(p_action);
|
m_action0x60 = (MxDSAction*) m_unk0x54.FindAndErase(p_action);
|
||||||
|
|
||||||
if (m_action0x60 == NULL) {
|
if (m_action0x60 == NULL) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
@@ -130,6 +134,7 @@ MxResult MxStreamController::VTable0x24(MxDSAction* p_action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1800
|
// FUNCTION: LEGO1 0x100c1800
|
||||||
|
// FUNCTION: BETA10 0x1014ea36
|
||||||
MxResult MxStreamController::FUN_100c1800(MxDSAction* p_action, MxU32 p_val)
|
MxResult MxStreamController::FUN_100c1800(MxDSAction* p_action, MxU32 p_val)
|
||||||
{
|
{
|
||||||
MxNextActionDataStart* dataActionStart =
|
MxNextActionDataStart* dataActionStart =
|
||||||
@@ -138,11 +143,12 @@ MxResult MxStreamController::FUN_100c1800(MxDSAction* p_action, MxU32 p_val)
|
|||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_nextActionList.push_back(dataActionStart);
|
m_nextActionList.PushBack(dataActionStart);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1a00
|
// FUNCTION: LEGO1 0x100c1a00
|
||||||
|
// FUNCTION: BETA10 0x1014eb04
|
||||||
MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
||||||
{
|
{
|
||||||
if (p_action->GetUnknown24() == -1) {
|
if (p_action->GetUnknown24() == -1) {
|
||||||
@@ -198,36 +204,43 @@ MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
|||||||
MxLong time = Timer()->GetTime();
|
MxLong time = Timer()->GetTime();
|
||||||
streamingAction->SetUnknown90(time);
|
streamingAction->SetUnknown90(time);
|
||||||
|
|
||||||
m_unk0x3c.push_back(streamingAction);
|
m_unk0x3c.PushBack(streamingAction);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1c10
|
// FUNCTION: LEGO1 0x100c1c10
|
||||||
|
// FUNCTION: BETA10 0x1014ed8c
|
||||||
MxResult MxStreamController::VTable0x2c(MxDSAction* p_action, MxU32 p_bufferval)
|
MxResult MxStreamController::VTable0x2c(MxDSAction* p_action, MxU32 p_bufferval)
|
||||||
{
|
{
|
||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
|
|
||||||
if (FUN_100c1a00(p_action, p_bufferval) != SUCCESS) {
|
if (FUN_100c1a00(p_action, p_bufferval) != SUCCESS) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FUN_100c1800(p_action, (p_bufferval / m_provider->GetFileSize()) * m_provider->GetFileSize());
|
return FUN_100c1800(p_action, (p_bufferval / m_provider->GetFileSize()) * m_provider->GetFileSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1ce0
|
// FUNCTION: LEGO1 0x100c1ce0
|
||||||
|
// FUNCTION: BETA10 0x1014eeb5
|
||||||
MxResult MxStreamController::VTable0x30(MxDSAction* p_action)
|
MxResult MxStreamController::VTable0x30(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
MxDSObject* action = m_unk0x3c.FindAndErase(p_action);
|
MxDSObject* action = m_unk0x3c.FindAndErase(p_action);
|
||||||
|
|
||||||
if (action != NULL) {
|
if (action != NULL) {
|
||||||
MxNextActionDataStart* data = m_nextActionList.FindAndErase(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;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1da0
|
// FUNCTION: LEGO1 0x100c1da0
|
||||||
|
// FUNCTION: BETA10 0x1014efdc
|
||||||
MxResult MxStreamController::InsertActionToList54(MxDSAction* p_action)
|
MxResult MxStreamController::InsertActionToList54(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
@@ -237,16 +250,18 @@ MxResult MxStreamController::InsertActionToList54(MxDSAction* p_action)
|
|||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_unk0x54.push_back(action);
|
m_unk0x54.PushBack(action);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1e70
|
// FUNCTION: LEGO1 0x100c1e70
|
||||||
|
// FUNCTION: BETA10 0x1014f0a1
|
||||||
MxPresenter* MxStreamController::FUN_100c1e70(MxDSAction& p_action)
|
MxPresenter* MxStreamController::FUN_100c1e70(MxDSAction& p_action)
|
||||||
{
|
{
|
||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
MxPresenter* result = NULL;
|
MxPresenter* result = NULL;
|
||||||
|
|
||||||
if (p_action.GetObjectId() != -1) {
|
if (p_action.GetObjectId() != -1) {
|
||||||
MxDSObject* action = m_unk0x3c.Find(&p_action);
|
MxDSObject* action = m_unk0x3c.Find(&p_action);
|
||||||
if (action != NULL) {
|
if (action != NULL) {
|
||||||
@@ -258,6 +273,7 @@ MxPresenter* MxStreamController::FUN_100c1e70(MxDSAction& p_action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1f00
|
// FUNCTION: LEGO1 0x100c1f00
|
||||||
|
// FUNCTION: BETA10 0x1014f162
|
||||||
MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
AUTOLOCK(m_criticalSection);
|
AUTOLOCK(m_criticalSection);
|
||||||
@@ -292,6 +308,7 @@ MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c20b0
|
// FUNCTION: LEGO1 0x100c20b0
|
||||||
|
// FUNCTION: BETA10 0x1014f37d
|
||||||
MxNextActionDataStart* MxStreamController::FindNextActionDataStartFromStreamingAction(MxDSStreamingAction* p_action)
|
MxNextActionDataStart* MxStreamController::FindNextActionDataStartFromStreamingAction(MxDSStreamingAction* p_action)
|
||||||
{
|
{
|
||||||
return m_nextActionList.Find(p_action->GetObjectId(), p_action->GetUnknown24());
|
return m_nextActionList.Find(p_action->GetObjectId(), p_action->GetUnknown24());
|
||||||
|
Reference in New Issue
Block a user