mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-26 18:04:06 +00:00 
			
		
		
		
	 bc5ca621a4
			
		
	
	bc5ca621a4
	
	
	
		
			
			* Add ncc tool * Add symlink * Fixes * Try this * Try this * Try this * Try this * Add include path * Update style * Update style * Add more rules * Fix style * Update styles * Fix name parameter * Fix MxParam p * Fix m_unk0x pattern * Allow 4 digits for relative hex * Add missing offset * Fix some parameters * Fix some vtables * Fix more vtables * Update rules, fixes * More fixes * More fixes * More fixes * More fixes * More fixes * More fixes * More fixes * Fix last issue * Update readme * Update readme * Update CONTRIBUTING.md * Fix annotations * Rename * Update CONTRIBUTING.md * Update README.md
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "mxdsstreamingaction.h"
 | |
| 
 | |
| #include "mxdsbuffer.h"
 | |
| 
 | |
| DECOMP_SIZE_ASSERT(MxDSStreamingAction, 0xb4)
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd010
 | |
| MxDSStreamingAction::MxDSStreamingAction(MxDSAction& p_dsAction, MxU32 p_offset)
 | |
| {
 | |
| 	Init();
 | |
| 
 | |
| 	*this = p_dsAction;
 | |
| 	this->m_unk0x94 = p_offset;
 | |
| 	this->m_bufferOffset = p_offset;
 | |
| }
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd090
 | |
| MxBool MxDSStreamingAction::HasId(MxU32 p_objectId)
 | |
| {
 | |
| 	if (this->m_internalAction)
 | |
| 		return this->m_internalAction->HasId(p_objectId);
 | |
| 	return FALSE;
 | |
| }
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd0d0
 | |
| MxDSStreamingAction::MxDSStreamingAction(MxDSStreamingAction& p_dsStreamingAction)
 | |
| {
 | |
| 	Init();
 | |
| 	CopyFrom(p_dsStreamingAction);
 | |
| }
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd150
 | |
| MxDSStreamingAction::~MxDSStreamingAction()
 | |
| {
 | |
| 	if (this->m_unk0xa0)
 | |
| 		delete this->m_unk0xa0;
 | |
| 	if (this->m_unk0xa4)
 | |
| 		delete this->m_unk0xa4;
 | |
| 	if (this->m_internalAction)
 | |
| 		delete this->m_internalAction;
 | |
| }
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd1e0
 | |
| MxResult MxDSStreamingAction::Init()
 | |
| {
 | |
| 	this->m_unk0x94 = 0;
 | |
| 	this->m_bufferOffset = 0;
 | |
| 	this->m_unk0x9c = 0;
 | |
| 	this->m_unk0xa0 = NULL;
 | |
| 	this->m_unk0xa4 = NULL;
 | |
| 	this->m_unk0xa8 = 0;
 | |
| 	this->m_unk0xac = 2;
 | |
| 	this->m_internalAction = NULL;
 | |
| 	return SUCCESS;
 | |
| }
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd220
 | |
| MxDSStreamingAction* MxDSStreamingAction::CopyFrom(MxDSStreamingAction& p_dsStreamingAction)
 | |
| {
 | |
| 	*this = p_dsStreamingAction;
 | |
| 	this->m_unk0x94 = p_dsStreamingAction.m_unk0x94;
 | |
| 	this->m_bufferOffset = p_dsStreamingAction.m_bufferOffset;
 | |
| 	this->m_unk0x9c = p_dsStreamingAction.m_unk0x9c;
 | |
| 	this->m_unk0xa0 = NULL;
 | |
| 	this->m_unk0xa4 = NULL;
 | |
| 	this->m_unk0xac = p_dsStreamingAction.m_unk0xac;
 | |
| 	this->m_unk0xa8 = p_dsStreamingAction.m_unk0xa8;
 | |
| 	SetInternalAction(p_dsStreamingAction.m_internalAction ? p_dsStreamingAction.m_internalAction->Clone() : NULL);
 | |
| 
 | |
| 	return this;
 | |
| }
 | |
| 
 | |
| // FUNCTION: LEGO1 0x100cd2a0
 | |
| void MxDSStreamingAction::SetInternalAction(MxDSAction* p_dsAction)
 | |
| {
 | |
| 	if (this->m_internalAction)
 | |
| 		delete this->m_internalAction;
 | |
| 	this->m_internalAction = p_dsAction;
 | |
| }
 | |
| 
 | |
| // FUNCTION: 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_unk0xa8 += duration;
 | |
| }
 |