#ifdef ENABLE_SASH_SYSTEM 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; if (!CItemManager::Instance().GetItemDataPointer(dwSash, &pItemData)) return; m_GraphicThingInstance.AttachSash(pItemData, fSpecular); #ifdef ENABLE_OBJ_SCALLING 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->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); } #endif } void CInstanceBase::ChangeSash(DWORD dwSash) { if (!IsPC()) return; SetSash(dwSash); } void CInstanceBase::ClearSashEffect() { if (!m_dwSashEffect) return; __EffectContainer_DetachEffect(m_dwSashEffect); m_dwSashEffect = 0; } #endif