Match to 100%

This commit is contained in:
Christian Semmler 2024-01-05 12:26:46 -05:00
parent c4502eb6fd
commit 55707c02f6

View File

@ -324,22 +324,24 @@ void MxOmni::DeleteObject(MxDSAction& p_dsAction)
MxResult MxOmni::CreatePresenter(MxStreamController* p_controller, MxDSAction& p_action) MxResult MxOmni::CreatePresenter(MxStreamController* p_controller, MxDSAction& p_action)
{ {
MxResult result = FAILURE; MxResult result = FAILURE;
MxPresenter* object = (MxPresenter*) m_objectFactory->Create(PresenterNameDispatch(p_action)); const char* name = PresenterNameDispatch(p_action);
MxPresenter* object = (MxPresenter*) m_objectFactory->Create(name);
if (object) { if (object) {
if (object->AddToManager() == SUCCESS) { if (object->AddToManager() == SUCCESS) {
MxPresenter* sender = p_action.GetUnknown28(); MxPresenter* sender = p_action.GetUnknown28();
if (sender == NULL && (sender = p_controller->FUN_100c1e70(p_action)) == NULL) { if (!sender)
if (p_action.GetOrigin() == NULL) { sender = p_controller->FUN_100c1e70(p_action);
p_action.SetOrigin(this);
}
object->SetCompositePresenter(NULL); if (sender) {
}
else {
p_action.SetOrigin(sender); p_action.SetOrigin(sender);
object->SetCompositePresenter((MxCompositePresenter*) sender); object->SetCompositePresenter((MxCompositePresenter*) sender);
} }
else {
if (!p_action.GetOrigin())
p_action.SetOrigin(this);
object->SetCompositePresenter(NULL);
}
if (object->StartAction(p_controller, &p_action) == SUCCESS) { if (object->StartAction(p_controller, &p_action) == SUCCESS) {
if (sender) { if (sender) {
@ -356,6 +358,7 @@ MxResult MxOmni::CreatePresenter(MxStreamController* p_controller, MxDSAction& p
} }
} }
} }
return result; return result;
} }