⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modelmanager.cpp

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 CPP
字号:
// ModelManager.cpp

#include "StdAfx.h"

CModelManager::CModelManager()
{
}
CModelManager::~CModelManager()
{
	list<MODEL_NODE*>::iterator begin=m_listModel.begin();
	list<MODEL_NODE*>::iterator end=m_listModel.end();
	for(;begin!=end; ++begin )
	{
		SAFE_DELETE( (*begin)->pModel );
		SAFE_DELETE( (*begin) );
	}
	m_listModel.clear();
}

CMCModel* CModelManager::AddModelEx(short nIndex, char *szMCFileName, char *szTMFileName, char *szTexFileName, char *szAniFileName, short nSlot)
{
	MODEL_NODE * pResult = this->FindNode(nIndex,nSlot);
	
	if(pResult==NULL)
	{
		pResult = new MODEL_NODE;
		pResult->nIndex = nIndex;
		pResult->nSlot = nSlot;
		pResult->pModel = new CMCModel;
		if(FAILED( pResult->pModel->CreateModelEx( szMCFileName, szTMFileName, szTexFileName, szAniFileName, MODEL_EQUIP)))
		{ 
			CUtility::printf_Debug("\n[Failed] MC : %s, TM : %s, Tex : %s, Ani : %s",szMCFileName,szTMFileName,szTexFileName,szAniFileName);
			SAFE_DELETE(pResult->pModel);
			SAFE_DELETE(pResult);
			return NULL;
		}

		m_listModel.push_back(pResult);
	}
	
	return pResult->pModel;
}

MODEL_NODE* CModelManager::FindNode(short nIndex, short nSlot)
{
	list<MODEL_NODE*>::iterator iter;
	for(iter=m_listModel.begin(); iter!=m_listModel.end(); ++iter)
	{
		if( (*iter)->nIndex == nIndex && (*iter)->nSlot == nSlot )
		{
			return (*iter);
		}
	}
	return NULL;
}

CMCModel* CModelManager::FindModel( short nIndex, short nSlot )
{
	MODEL_NODE * pNode = this->FindNode(nIndex,nSlot);
	if(NULL == pNode) return NULL;

	return pNode->pModel;
}

HRESULT CModelManager::Release()
{
	list<MODEL_NODE*>::iterator iter;
	for(iter=m_listModel.begin(); iter!=m_listModel.end(); ++iter)
	{
		MODEL_NODE* pModelNode = (MODEL_NODE *)*iter;
		if( FAILED( pModelNode->pModel->ReleaseVertexIndex()))
			return E_FAIL;
	}

	return S_OK;
}

HRESULT CModelManager::CreateVertexIndex()
{
	list<MODEL_NODE*>::iterator iter;
	for(iter=m_listModel.begin(); iter!=m_listModel.end(); ++iter)
	{
		MODEL_NODE* pModelNode = (MODEL_NODE *)*iter;
		if( FAILED( pModelNode->pModel->CreateVertexIndexBufferEx()))		// 泅犁 
			return E_FAIL;
		for(int i=0;i<MAX_BONEANI;i++)
		{
			pModelNode->pModel->CreateBoundBox(i);
		}
	}

	return S_OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -