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

📄 appearancemanager.cpp

📁 墨香最新私服
💻 CPP
字号:
// AppearanceManager.cpp: implementation of the CAppearanceManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "resource.h"
#include "MainFrm.h"
#include "AppearanceManager.h"
#include "RegenToolDoc.h"
#include "RegenToolView.h"
//#include "Player.h"
//#include "Monster.h"
//#include "Npc.h"
//#include "ItemGround.h"
#include ".\Engine\EngineObject.h"
#include "LoadList.h"
//#include "ObjectManager.h"
//#include "GameResourceManager.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAppearanceManager::CAppearanceManager()
{

}

CAppearanceManager::~CAppearanceManager()
{

}

void CAppearanceManager::Init()
{	
//	g_pLoadList->LoadModFileList(g_pLoadList->m_ModFileList);
//	g_pLoadList->LoadHairModFileList(g_pLoadList->m_HairModList);
}

void CAppearanceManager::Release()
{
}

void CAppearanceManager::SetCharacterAppearance(CPlayer* pPlayer)
{
	/*
	BYTE gender = pPlayer->m_CharacterInfo.Gender;
	ASSERT(gender < 2);
	BYTE job = pPlayer->m_CharacterInfo.Job;
	ASSERT(job < eJOB_Max);
	BYTE hair = pPlayer->m_CharacterInfo.HairType;
	BYTE face = pPlayer->m_CharacterInfo.FaceType;
	WORD *WearedItemIdx = pPlayer->m_CharacterInfo.WearedItemIdx;
	MOD_LIST* pHairList = &GAMERESRCMNGR->m_HairModList[gender];
	MOD_LIST* pModList = &GAMERESRCMNGR->m_ModFileList[gender][job];


	ASSERT(pHairList->MaxModFile > hair);


	pPlayer->m_EngineObject.Release();	

	pPlayer->m_EngineObject.Init(pModList->BaseObjectFile,pPlayer,eEngineObjectType_Character);

	pPlayer->m_EngineObject.ChangePart(eAppearPart_Hair,pHairList->ModFile[hair]);

	int PartType,PartModelNum;
	for(int n=0;n<eWearedItem_Max;++n)
	{
		if(WearedItemIdx[n])
		{
			PartType = GAMERESRCMNGR->GetEquipItemInfo(WearedItemIdx[n])->Part3DType;
			PartModelNum = GAMERESRCMNGR->GetEquipItemInfo(WearedItemIdx[n])->Part3DModelNum;
			if(PartType != -1)
				pPlayer->m_EngineObject.ChangePart(PartType,pModList->ModFile[PartModelNum]);
		}
	}
	*/
	/*
	//for dummy test

	pPlayer->m_EngineObject.Release();	

	pPlayer->m_EngineObject.Init("dummyman.chx",pPlayer,eEngineObjectType_Character);
	CEngineObject* pWeapon = new CEngineObject;
	pWeapon->Init("weapon.chr",NULL,eEngineObjectType_Weapon);
	BOOL rt = pWeapon->Attach(&pPlayer->m_EngineObject,"Bone29");
	ASSERT(rt);
*/

//	pPlayer->m_EngineObject.ApplyHeightField(TRUE);
//	pPlayer->m_EngineObject.SetPosition(&pPlayer->m_MoveInfo.CurPosition);
//	pPlayer->m_EngineObject.SetAngle(pPlayer->m_RotateInfo.Angle.ToRad());

}

void CAppearanceManager::SetMonsterAppearance(WORD MonsterKind)
{
/*	pMonster->m_EngineObject.Release();
	
	WORD mkind = pMonster->GetMonsterKind();
	MONSTER_LIST* pList = g_pLoadList->GetMonsterInfo(mkind);
	int ChxNum = pList->D3Num;
	char* pMonsterChxName = g_pLoadList->GetMonsterChxName(ChxNum);
	pMonster->m_EngineObject.Init(pMonsterChxName,pMonster,eEngineObjectType_Monster);
	pMonster->m_EngineObject.ApplyHeightField(TRUE);
*/	
}
void CAppearanceManager::SetNpcAppearance(CNpc* pNpc)
{
/*	pNpc->m_EngineObject.Release();
	
	
	WORD nkind = pNpc->GetNpcKind();
	NPC_LIST* pList = GAMERESRCMNGR->GetNpcInfo(nkind);
	int ChxNum = pList->ModelNum;
	char* pMonsterChxName = GAMERESRCMNGR->GetMonsterChxName(ChxNum);
	
	pNpc->m_EngineObject.Init(pMonsterChxName,pNpc,eEngineObjectType_Npc);
	pNpc->m_EngineObject.SetPosition(&pNpc->m_MoveInfo.CurPosition);
	pNpc->m_EngineObject.ApplyHeightField(TRUE);
	
	pNpc->m_EngineObject.ChangeMotion(1);
*/	
}

void CAppearanceManager::InitAppearance(CObject* pObject)
{
/*	if(pObject->GetObjectKind() == eObjectKind_Player)
	{
		SetCharacterAppearance((CPlayer*)pObject);
	}
	else if(pObject->GetObjectKind() == eObjectKind_Monster)
	{
		SetMonsterAppearance((CMonster*)pObject);
	}
	else if(pObject->GetObjectKind() == eObjectKind_Npc)
	{
		SetNpcAppearance((CNpc*)pObject);
	}
*/
}


void CAppearanceManager::AddCharacterPartChange(DWORD PlayerID)
{
//	m_PtrList.AddHead((void*)PlayerID);
}

void CAppearanceManager::ProcessAppearance()
{
/*	DWORD PlayerID;
	CObject* pPlayer;
	while(PlayerID = (DWORD)m_PtrList.RemoveTail())
	{
		pPlayer = OBJECTMGR->GetObject(PlayerID);
		if(pPlayer == NULL)
			continue;
		ASSERT(pPlayer->GetObjectKind() == eObjectKind_Player);
		SetCharacterAppearance((CPlayer*)pPlayer);
	}
*/
}
/*
void CAppearanceManager::ChangeCharacterPart(APPEAR_CHANGE* pAC)
{
	//////////////////////////////////////////////////////////////////////////
	// test
	static DWORD TEST[eAppearPart_Max] = {1,1,1,1,1,1};
	
	ASSERT(pAC);
	static char temp[64];
	BOOL rt = GetPartName(pAC->AppearPart,TEST[pAC->AppearPart]++,temp);
	ASSERT(rt);

	if(TEST[pAC->AppearPart] > 3)
		TEST[pAC->AppearPart] = 1;
	
	rt = pAC->pObject->GetEngineObject()->ChangePart(pAC->AppearPart,temp);
	ASSERT(rt);


	//////////////////////////////////////////////////////////////////////////
}

BOOL CAppearanceManager::GetPartName(DWORD AppearPart,DWORD PartNum,char* RtFileName)
{
	switch(AppearPart)
	{
	case eAppearPart_Hair:
		sprintf(RtFileName,"M_Hair%02d.mod",PartNum);
		break;
	case eAppearPart_Face:
		sprintf(RtFileName,"M_Face%02d.mod",PartNum);
		break;
	case eAppearPart_Body:
		sprintf(RtFileName,"M_Bd%02d.mod",PartNum);
		break;
	case eAppearPart_ForeArm:
		sprintf(RtFileName,"C_HandGard%02d.mod",PartNum);
		break;
	case eAppearPart_Hand:
		sprintf(RtFileName,"C_Hand%02d.mod",PartNum);
		break;
	case eAppearPart_Foot:
		sprintf(RtFileName,"C_Shoes%02d.mod",PartNum);
		break;
	}

	return TRUE;
}
*/

⌨️ 快捷键说明

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