📄 tsskinman.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 + -