mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-26 01:44:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "mxdsstreamingaction.h"
 | |
| #include "mxdsbuffer.h"
 | |
| 
 | |
| DECOMP_SIZE_ASSERT(MxDSStreamingAction, 0xb4)
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd010
 | |
| MxDSStreamingAction::MxDSStreamingAction(MxDSAction &p_dsAction, MxU32 p_offset)
 | |
| {
 | |
|   Init();
 | |
| 
 | |
|   *this = p_dsAction;
 | |
|   this->m_unk94 = p_offset;
 | |
|   this->m_bufferOffset = p_offset;
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd0d0
 | |
| MxDSStreamingAction::MxDSStreamingAction(MxDSStreamingAction &p_dsStreamingAction)
 | |
| {
 | |
|   Init();
 | |
|   CopyFrom(p_dsStreamingAction);
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd150
 | |
| MxDSStreamingAction::~MxDSStreamingAction()
 | |
| {
 | |
|   if (this->m_unka0)
 | |
|     delete this->m_unka0;
 | |
|   if (this->m_unka4)
 | |
|     delete this->m_unka4;
 | |
|   if (this->m_internalAction)
 | |
|     delete this->m_internalAction;
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd220
 | |
| MxDSStreamingAction *MxDSStreamingAction::CopyFrom(MxDSStreamingAction &p_dsStreamingAction)
 | |
| {
 | |
|   *this = p_dsStreamingAction;
 | |
|   this->m_unk94 = p_dsStreamingAction.m_unk94;
 | |
|   this->m_bufferOffset = p_dsStreamingAction.m_bufferOffset;
 | |
|   this->m_unk9c = p_dsStreamingAction.m_unk9c;
 | |
|   this->m_unka0 = NULL;
 | |
|   this->m_unka4 = NULL;
 | |
|   this->m_unkac = p_dsStreamingAction.m_unkac;
 | |
|   this->m_unka8 = p_dsStreamingAction.m_unka8;
 | |
|   SetInternalAction(p_dsStreamingAction.m_internalAction ? p_dsStreamingAction.m_internalAction->Clone() : NULL);
 | |
| 
 | |
|   return this;
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd090
 | |
| MxBool MxDSStreamingAction::HasId(MxU32 p_objectId)
 | |
| {
 | |
|   if (this->m_internalAction)
 | |
|     return this->m_internalAction->HasId(p_objectId);
 | |
|   return FALSE;
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd1e0
 | |
| MxResult MxDSStreamingAction::Init()
 | |
| {
 | |
|   this->m_unk94 = 0;
 | |
|   this->m_bufferOffset = 0;
 | |
|   this->m_unk9c = 0;
 | |
|   this->m_unka0 = NULL;
 | |
|   this->m_unka4 = NULL;
 | |
|   this->m_unka8 = 0;
 | |
|   this->m_unkac = 2;
 | |
|   this->m_internalAction = NULL;
 | |
|   return SUCCESS;
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd2a0
 | |
| void MxDSStreamingAction::SetInternalAction(MxDSAction *p_dsAction)
 | |
| {
 | |
|   if (this->m_internalAction)
 | |
|     delete this->m_internalAction;
 | |
|   this->m_internalAction = p_dsAction;
 | |
| }
 | |
| 
 | |
| // OFFSET: LEGO1 0x100cd2d0
 | |
| void MxDSStreamingAction::FUN_100CD2D0()
 | |
| {
 | |
|   if (this->m_duration == -1)
 | |
|     return;
 | |
| 
 | |
|   MxLong duration = this->m_duration / this->m_loopCount;
 | |
|   this->m_loopCount--;
 | |
|     
 | |
|   this->m_duration -= duration;
 | |
|   this->m_unka8 += duration;
 | |
| } | 
