void CInstanceBase::SetSash(DWORD dwSash)
void CInstanceBase::SetSash(DWORD dwSash)
{
if (!IsPC())
return;
if (IsPoly())
return;
if (dwSash == 0)
{
m_awPart[CRaceData::PART_SASH] = 0;
m_GraphicThingInstance.AttachSash(0, 0.0f);
ClearSashEffect();
return;
}
dwSash += 85000;
ClearSashEffect();
float fSpecular = 65.0f;
if (dwSash > 87000)
{
dwSash -= 2000;
fSpecular += 35;
m_dwSashEffect = EFFECT_REFINED + EFFECT_SASH;
__EffectContainer_AttachEffect(m_dwSashEffect);
}
fSpecular /= 100.0f;
m_awPart[CRaceData::PART_SASH] = dwSash;
CItemData * pItemData = NULL;
CItemManager::Instance().GetItemDataPointer(dwSash, &pItemData);
m_GraphicThingInstance.AttachSash(pItemData, fSpecular);
DWORD dwRace = GetRace(), dwPos = RaceToJob(dwRace), dwSex = RaceToSex(dwRace);
dwPos += 1;
if (dwSex == 0)
dwPos += 5;
float fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ;
if (pItemData && pItemData->GetItemScale(dwPos, fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ))
{
m_GraphicThingInstance.SetScale(fScaleX, fScaleY, fScaleZ, true);
if (m_kHorse.IsMounting())
fPositionZ += 10.0f;
m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ);
}
}