Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void CActorInstance::AttachWeapon(DWORD dwParentPartIndex, DWORD dwPartIndex, CItemData * pItemData)
- {
- // assert(m_pkCurRaceData);
- if (!pItemData)
- return;
- const char * szBoneName;
- if (!GetAttachingBoneName(dwPartIndex, &szBoneName))
- return;
- // NOTE : (이도류처리)단도일 경우 형태가 다른 것으로 얻는다. 없을 경우 디폴트를 리턴
- if (CRaceData::PART_WEAPON_LEFT == dwPartIndex)
- {
- RegisterModelThing(dwPartIndex, pItemData->GetSubModelThing());
- }
- else
- {
- RegisterModelThing(dwPartIndex, pItemData->GetModelThing());
- }
- for (DWORD i = 0; i < pItemData->GetLODModelThingCount(); ++i)
- {
- CGraphicThing * pThing;
- if (!pItemData->GetLODModelThingPointer(i, &pThing))
- continue;
- RegisterLODThing(dwPartIndex, pThing);
- }
- SetModelInstance(dwPartIndex, dwPartIndex, 0);
- AttachModelInstance(dwParentPartIndex, szBoneName, dwPartIndex);
- // 20041208.myevan.무기스펙큘러(값옷은 SetShape에서 직접 해준다.)
- if (USE_WEAPON_SPECULAR)
- {
- SMaterialData kMaterialData;
- kMaterialData.pImage = NULL;
- kMaterialData.isSpecularEnable = TRUE;
- kMaterialData.fSpecularPower = pItemData->GetSpecularPowerf();
- kMaterialData.bSphereMapIndex = 1;
- SetMaterialData(dwPartIndex, NULL, kMaterialData);
- }
- // Weapon Trace
- if (__IsWeaponTrace(pItemData->GetWeaponType()))
- {
- CWeaponTrace * pWeaponTrace = CWeaponTrace::New();
- pWeaponTrace->SetWeaponInstance(this, dwPartIndex, szBoneName);
- m_WeaponTraceVector.push_back(pWeaponTrace);
- }
- if (CGrannyLODController* pLODController = m_LODControllerVector[dwPartIndex])
- {
- if (CGrannyModelInstance* pWeaponModelInstance = pLODController->GetModelInstance())
- {
- CGraphicThing* pItemGraphicThing = pItemData->GetModelThing();
- if (CGrannyMotion* pItemMotion = pItemGraphicThing->GetMotionPointer(0))
- {
- pWeaponModelInstance->SetMotionPointer(pItemMotion);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement