summaryrefslogblamecommitdiffstats
path: root/src/modelinfo/WeaponModelInfo.cpp
blob: d9294c3f0b7dc72c2828d10c3c4c3341b8032f30 (plain) (tree)







































                                                                                   
           

                                     
                                                  








                                                                                                
#include "common.h"

#include "ModelInfo.h"
#include "AnimManager.h"
#include "VisibilityPlugins.h"

void
CWeaponModelInfo::SetAnimFile(const char *file)
{
	if(strcasecmp(file, "null") == 0)
		return;

	m_animFileName = new char[strlen(file)+1];
	strcpy(m_animFileName, file);
}

void
CWeaponModelInfo::ConvertAnimFileIndex(void)
{
	if(m_animFileIndex != -1){
		// we have a string pointer in that union
		int32 index = CAnimManager::GetAnimationBlockIndex(m_animFileName);
		delete[] m_animFileName;
		m_animFileIndex = index;
	}
}

void
CWeaponModelInfo::Init(void)
{
	CSimpleModelInfo::Init();
	SetWeaponInfo(0);
}

void
CWeaponModelInfo::SetWeaponInfo(int32 weaponId)
{
	m_atomics[2] = (RpAtomic*)weaponId;
}

eWeaponType
CWeaponModelInfo::GetWeaponInfo(void)
{
	return (eWeaponType)(uintptr)m_atomics[2];
}

void
CWeaponModelInfo::SetAtomic(int n, RpAtomic *atomic)
{
	CSimpleModelInfo::SetAtomic(n, atomic);
	CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderWeaponCB);
}