Merge pull request #52 from Azaezel/Alpha40ReskinRevamp

reskinning fixes
This commit is contained in:
Areloch 2019-05-25 03:34:54 -05:00 committed by GitHub
commit 882a0d5380
2 changed files with 58 additions and 36 deletions

View file

@ -3694,7 +3694,9 @@ void ShapeBase::setSkinName(const char* name)
void ShapeBase::reSkin() void ShapeBase::reSkin()
{ {
if ( isGhost() && mShapeInstance && mSkinNameHandle.isValidString() ) if (isGhost() && mShapeInstance)
{
if (mSkinNameHandle.isValidString())
{ {
mShapeInstance->resetMaterialList(); mShapeInstance->resetMaterialList();
Vector<String> skins; Vector<String> skins;
@ -3714,11 +3716,20 @@ void ShapeBase::reSkin()
oldSkin = newSkin.substr(0, split); oldSkin = newSkin.substr(0, split);
newSkin = newSkin.erase(0, split + 1); newSkin = newSkin.erase(0, split + 1);
} }
else
{
oldSkin = "";
}
mShapeInstance->reSkin(newSkin, oldSkin); mShapeInstance->reSkin(newSkin, oldSkin);
mAppliedSkinName = newSkin; mAppliedSkinName = newSkin;
} }
} }
else
{
mShapeInstance->reSkin("", mAppliedSkinName);
mAppliedSkinName = "";
}
}
} }
void ShapeBase::setCurrentWaterObject( WaterObject *obj ) void ShapeBase::setCurrentWaterObject( WaterObject *obj )

View file

@ -542,7 +542,9 @@ void TSStatic::setSkinName( const char *name )
void TSStatic::reSkin() void TSStatic::reSkin()
{ {
if ( isGhost() && mShapeInstance && mSkinNameHandle.isValidString() ) if (isGhost() && mShapeInstance)
{
if (mSkinNameHandle.isValidString())
{ {
mShapeInstance->resetMaterialList(); mShapeInstance->resetMaterialList();
Vector<String> skins; Vector<String> skins;
@ -562,11 +564,20 @@ void TSStatic::reSkin()
oldSkin = newSkin.substr(0, split); oldSkin = newSkin.substr(0, split);
newSkin = newSkin.erase(0, split + 1); newSkin = newSkin.erase(0, split + 1);
} }
else
{
oldSkin = "";
}
mShapeInstance->reSkin(newSkin, oldSkin); mShapeInstance->reSkin(newSkin, oldSkin);
mAppliedSkinName = newSkin; mAppliedSkinName = newSkin;
} }
} }
else
{
mShapeInstance->reSkin("", mAppliedSkinName);
mAppliedSkinName = "";
}
}
} }
void TSStatic::processTick( const Move *move ) void TSStatic::processTick( const Move *move )