⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsskinman.cc

📁 五行MMORPG引擎系统V1.0
💻 CC
字号:
//tsSkinMan.cc
/*/////////////////////////////////////////////////////////////////

李亦
liease@163.com 4040719
2006-7-26
/*/////////////////////////////////////////////////////////////////

#include "platform/platform.h"
#include "ts/tsSkinMan.h"
#include "ts/tsShapeInstance.h"




/////////////////////////////////////////////////////////////////
// class TSSkinMan 构造函数 /析构函数
TSSkinMan::TSSkinMan(TSShapeInstance* pShape)
{
	mShapeInstance		= pShape;
	mSkinModMaskBits	= 0;

	for(U32 n=0; n < MaxSkinModifiers; n++)
		mSkinModifiers[n].skinName = StringTable->getBlank();
}
TSSkinMan::~TSSkinMan()
{
}



//--------------------------------------------------------------------------
// Skin modifier

void TSSkinMan::onSkinModifierChanged(U32 slot)
{
	if(!mShapeInstance)
		return;

	if(mSkinModifiers[slot].skinName && mSkinModifiers[slot].skinName[0])
	{	
		mShapeInstance->addSkinModifier(slot,mSkinModifiers[slot].skinName, mSkinModifiers[slot].printName);
	}
	else
		mShapeInstance->removeSkinModifier(slot);
}


bool TSSkinMan::addSkinModifier(U32 slot, StringTableEntry skinName, StringTableEntry printName)
{
	if (slot >= MaxSkinModifiers || !mShapeInstance)
		return false;

	//if ((skinName != mSkinModifiers[slot].skinName) ||	(printName != mSkinModifiers[slot].printName))
	{
		mSkinModifiers[slot].skinName	= skinName;
		mSkinModifiers[slot].printName= printName;

		mSkinModMaskBits |= (1<<slot);

		onSkinModifierChanged(slot);
		//mShapeInstance->updateModifier(slot);
		return true;
	}

	return false;
}


bool TSSkinMan::setSkinModifier(U32 slot, StringTableEntry skinName, StringTableEntry printName)
{
	if (slot >= MaxSkinModifiers || !mShapeInstance)
		return false;


	//if ((skinName != mSkinModifiers[slot].skinName) ||	(printName != mSkinModifiers[slot].printName))
	{
		mSkinModifiers[slot].skinName	= skinName;
		mSkinModifiers[slot].printName= printName;

		mSkinModMaskBits |= (1<<slot);
		onSkinModifierChanged(slot);
		return true;
	}

	return false;
	//mShapeInstance->modifySkins();
}


void TSSkinMan::removeSkinModifier(U32 slot)
{
	if (slot >= MaxSkinModifiers || !mShapeInstance)
		return;

	if(	mSkinModifiers[slot].skinName &&  mSkinModifiers[slot].skinName[0]
		&& mSkinModifiers[slot].printName &&  mSkinModifiers[slot].printName[0])
	{
		mSkinModifiers[slot].skinName	= StringTable->getBlank();
		mSkinModifiers[slot].printName= StringTable->getBlank();

		// set flags
		//setMaskBits(SkinModMask);
		mSkinModMaskBits|=( 1<<slot );
	}

	onSkinModifierChanged(slot);
	//mShapeInstance->updateModifier(slot);

}

void TSSkinMan::clearSkinModifiers()
{
	for (U32 ss=0; ss<MaxSkinModifiers; ss++)
		removeSkinModifier(ss);
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -