本文整理汇总了C++中CEntity::GetModelInstance方法的典型用法代码示例。如果您正苦于以下问题:C++ CEntity::GetModelInstance方法的具体用法?C++ CEntity::GetModelInstance怎么用?C++ CEntity::GetModelInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEntity
的用法示例。
在下文中一共展示了CEntity::GetModelInstance方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ChangeSelJob
//-----------------------------------------------------------------------------
// Purpose: Prev 나 Next를 눌러서 선택된 캐릭터가 변경된 경우.
//-----------------------------------------------------------------------------
void CUICreateChar::ChangeSelJob()
{
//강동민 수정 시작 클로즈 2차 작업 08.18
// FIXME : 모든 캐릭터가 다 나오면 주석을 풀것.
//if(m_iSelectedJob < 0)
// m_iSelectedJob = TOTAL_JOB - 1;
//m_iSelectedJob = m_iSelectedJob % TOTAL_JOB;
// FIXME : 클로즈 2차때 나이트와 힐러를 보여주기 위한 부분.
if(m_iSelectedJob < 0)
m_iSelectedJob = MAXJOB - 1;
if(m_iSelectedJob > MAXJOB - 1)
m_iSelectedJob = 0;
m_sbSelectedHair= 0;
m_sbSelectedFace= 0;
m_iSelectedColor= 0;
//강동민 수정 끝 클로즈 2차 작업 08.18
m_fRotDelta = 0.0f;
m_fZDelta = 0.0f;
if(!m_pWorld) return;
// 카메라 설정, 캐릭터 위치 설정.
const int iMarker = _aiMarkerEntities[m_iSelectedJob];
CEntity *penMarker = m_pWorld->EntityFromID(iMarker);
//penMarker->SetSkaModel(_aJobFileName[m_iSelectedJob]);
CModelInstance* pMI = penMarker->GetModelInstance();
if(pMI)
{
//pMI->mi_iFaceMesh = -1;
//pMI->mi_iFaceTexture= -1;
//pMI->mi_iHairMesh = -1;
//pMI->mi_iHairTexture= -1;
((CPlayerEntity*)CEntity::GetPlayerEntity(0))->ChangeFaceMesh(pMI, m_iSelectedJob, 0);
((CPlayerEntity*)CEntity::GetPlayerEntity(0))->ChangeHairMesh(pMI, m_iSelectedJob, 0);
pMI->mi_iFaceMesh = -1;
pMI->mi_iHairMesh = -1;
if(_pNetwork->wo_iNumOfItem > 0)
{
// 슬롯의 캐릭터에 장비를 장착한 모습을 보여줘야 하는 부분...
// 상의 무기 하의 방패 장갑 신발
for(int i = 0; i < 6; ++i)
{
const SLONG lWear = _aiBasicWearing[m_iSelectedJob][i];
if(lWear > 0)
{
CItemData* pID = _pNetwork->GetItemData(lWear);
_pGameState->DeleteDefaultArmor(pMI, pID->GetWearingPosition(), m_iSelectedJob);
_pGameState->WearingArmor(pMI, *pID);
}
}
}
//INDEX idWalk = ska_GetIDFromStringTable(_afnIdleAnim[m_iSelectedJob]);
//pMI->AddAnimation(idWalk,AN_LOOPING|AN_NORESTART|AN_CLEAR,1,0);
// 선택한 캐릭터에 대한 설명을 보여줍니다.
GetCharInfo();
}
}
示例2: Copy
/*
* Copy entity from another entity of same class.
* NOTES:
* - Doesn't copy placement, it must be done on creation.
* - Entity must be initialized afterwards.
*/
void CEntity::Copy(CEntity &enOther, ULONG ulFlags)
{
BOOL bRemapPointers = ulFlags & COPY_REMAP;
// copy base class data
en_RenderType = enOther.en_RenderType;
en_ulPhysicsFlags = enOther.en_ulPhysicsFlags;
en_ulCollisionFlags = enOther.en_ulCollisionFlags;
en_ulFlags = enOther.en_ulFlags &
~(ENF_SELECTED|ENF_FOUNDINGRIDSEARCH|ENF_VALIDSHADINGINFO|ENF_INRENDERING);
en_ulSpawnFlags = enOther.en_ulSpawnFlags;
// if this is a brush
if ( enOther.en_RenderType == RT_BRUSH || en_RenderType == RT_FIELDBRUSH) {
// there must be no existing brush
ASSERT(en_pbrBrush == NULL);
// create a new empty brush in the brush archive of current world
en_pbrBrush = en_pwoWorld->wo_baBrushes.ba_abrBrushes.New();
en_pbrBrush->br_penEntity = this;
// copy the brush
if (_bMirrorAndStretch) {
en_pbrBrush->Copy(*enOther.en_pbrBrush, _fStretch, _wmtMirror!=WMT_NONE);
} else {
en_pbrBrush->Copy(*enOther.en_pbrBrush, 1.0f, FALSE);
}
// if this is a terrain
} else if( enOther.en_RenderType == RT_TERRAIN) {
ASSERT(en_ptrTerrain == NULL);
// create a new empty terrain in the brush archive of current world
en_ptrTerrain = en_pwoWorld->wo_taTerrains.ta_atrTerrains.New();
en_ptrTerrain->tr_penEntity = this;
// Copy terrain
TR_CopyTerrain(en_ptrTerrain,enOther.en_ptrTerrain);
// Update terrain shadowmap
Matrix12 mTerrain;
TR_GetMatrixFromEntity(mTerrain,en_ptrTerrain);
TR_UpdateShadowMap(en_ptrTerrain,mTerrain,FLOATaabbox3D());
// if this is a model
} if ( enOther.en_RenderType == RT_MODEL || en_RenderType == RT_EDITORMODEL) {
// if will not initialize
if (!(ulFlags©_REINIT)) {
ASSERT(en_pmoModelObject==NULL);
ASSERT(en_psiShadingInfo==NULL);
if(en_pmoModelObject!=NULL) {
delete en_pmoModelObject;
}
if(en_psiShadingInfo!=NULL) {
delete en_psiShadingInfo;
}
// create a new model object
en_pmoModelObject = new CModelObject;
en_psiShadingInfo = new CShadingInfo;
en_ulFlags &= ~ENF_VALIDSHADINGINFO;
// copy it
en_pmoModelObject->Copy(*enOther.en_pmoModelObject);
}
// if this is ska model
} else if ( enOther.en_RenderType == RT_SKAMODEL || en_RenderType == RT_SKAEDITORMODEL) {
ASSERT(en_psiShadingInfo==NULL);
if(en_psiShadingInfo!=NULL) {
delete en_psiShadingInfo;
}
en_psiShadingInfo = new CShadingInfo;
en_ulFlags &= ~ENF_VALIDSHADINGINFO;
ASSERT(en_pmiModelInstance==NULL);
if(en_pmiModelInstance!=NULL) {
DeleteModelInstance(en_pmiModelInstance);
}
en_pmiModelInstance = CreateModelInstance("");
// copy it
GetModelInstance()->Copy(*enOther.GetModelInstance());
}
// copy the parent pointer
if (bRemapPointers) {
en_penParent = FindRemappedEntityPointer(enOther.en_penParent);
} else {
en_penParent = enOther.en_penParent;
}
// if the entity has a parent
if (en_penParent!=NULL) {
// create relative offset
en_plRelativeToParent = en_plPlacement;
en_plRelativeToParent.AbsoluteToRelativeSmooth(en_penParent->en_plPlacement);
// link to parent
en_penParent->en_lhChildren.AddTail(en_lnInParent);
}
// copy the derived class properties
CopyEntityProperties(enOther, ulFlags);
}