#include "mxdsparallelaction.h" #include "mxdsmediaaction.h" DECOMP_SIZE_ASSERT(MxDSParallelAction, 0x9c) // OFFSET: LEGO1 0x100cae80 MxDSParallelAction::MxDSParallelAction() { this->SetType(MxDSType_ParallelAction); } // OFFSET: LEGO1 0x100cb040 MxDSParallelAction::~MxDSParallelAction() { } // OFFSET: LEGO1 0x100cb090 void MxDSParallelAction::CopyFrom(MxDSParallelAction& p_dsParallelAction) { } // OFFSET: LEGO1 0x100cb0a0 MxDSParallelAction& MxDSParallelAction::operator=(MxDSParallelAction& p_dsParallelAction) { if (this == &p_dsParallelAction) return *this; MxDSMultiAction::operator=(p_dsParallelAction); this->CopyFrom(p_dsParallelAction); return *this; } // OFFSET: LEGO1 0x100cb0d0 MxDSAction* MxDSParallelAction::Clone() { MxDSParallelAction* clone = new MxDSParallelAction(); if (clone) *clone = *this; return clone; } // OFFSET: LEGO1 0x100cb160 MxLong MxDSParallelAction::GetDuration() { if (this->m_duration) return this->m_duration; MxDSActionListCursor cursor(this->m_actions); MxDSAction* action; while (cursor.Next(action)) { if (!action) continue; MxLong duration = action->GetDuration(); if (duration == -1) { this->m_duration = -1; break; } duration += action->GetStartTime(); if (action->IsA("MxDSMediaAction")) { MxLong sustainTime = ((MxDSMediaAction*) action)->GetSustainTime(); if (sustainTime == -1) duration = -1; else if (sustainTime) duration += sustainTime; } if (duration == -1) { this->m_duration = -1; break; } if (this->m_duration < duration) this->m_duration = duration; } if (this->IsBit3()) this->m_duration *= this->m_loopCount; return this->m_duration; }