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

📄 resourcelib.cpp

📁 游戏框架
💻 CPP
字号:
// ***************************************************************
//  HtextureLib   version:  1.0
//  -------------------------------------------------------------
//	File Name:	HtextureLib.cpp
//	Created:	2007/07/18
//	Modified:	2007/07/20   00:52
//	Author:		William.Liang
//  Msn:		lwq49@msn.com
//  Email:		lwq49@21cn.com, lwq49@msn.com
//	Description:
//
//	Purpose:	
//  -------------------------------------------------------------
//  license:
//
//  The contents of this file are subject to the Mozilla Public
//  License Version 1.1 (the "License"); you may not use this file
//  except in compliance with the License. You may obtain a copy
//  of the License at http://www.mozilla.org/MPL/ Software dis-
//  tributed under the License is distributed on an "AS IS" 
//  basis, WITHOUT WARRANTY OF ANY KIND, either express or im-
//  plied. See the License for the specific language governing
//  rights and limitations under the License.
//
//  The Initial Developer of the Original Code is William.Liang .
//  Copyright (C) 2007 - All Rights Reserved.
// ***************************************************************
#include "StdAfx.h"
#include ".\ResourceLib.h"

//************************************
// <p>Description: 构造函数</p>
// <p>Parameters:  </p>
// <p>    LPGDI lpGDI</p>
//
// <p>Returns:   </p>
//************************************
CResourceLib::CResourceLib(LPGDI lpGDI)
{
	m_lpGDI = lpGDI;

	m_lstResourcs.Push(new CResource("_SYSTEM_", lpGDI, Resource_Reserve), "_SYSTEM_");
}

//************************************
// <p>Description: 析构函数</p>
//************************************
CResourceLib::~CResourceLib(void)
{
	//清除资源
	if(m_lstResourcs.GetCount()>0){
		CResource*		pResource = m_lstResourcs.Iterators(true);
		while(pResource){
			SafeDelete(pResource);
			pResource = m_lstResourcs.Iterators();
		}
		m_lstResourcs.RemoveAll();
	}

	//清除资源包
	if(m_lstResourcePacks.GetCount()>0){
		//LPCTSTR		lpFileName = m_lstResourcePacks.Iterators(true);
		//while(lpFileName){
		//	SafeDelete(lpFileName);
		//	lpFileName = m_lstResourcePacks.Iterators();
		//}
		m_lstResourcePacks.RemoveAll();
		m_lpGDI->Resource_RemoveAllPacks();
	}
}

//************************************
// <p>Description: 加载资源包</p>
// <p>Parameters:  </p>
// <p>    LPCTSTR lpFileName</p>
//
// <p>Returns:   void</p>
//************************************
void CResourceLib::LoadTexture(LPCTSTR lpFileName){
	if(m_lpGDI->Resource_AttachPack(lpFileName)){
		//char	szFileName[MAX_PATH];
		//strcpy(szFileName, lpFileName);
		_CString	szFileName = lpFileName;
		//加载包成功后,保存在链表中
		m_lstResourcePacks.Push(szFileName);
	}
}

//************************************
// <p>Description: 添加资源</p>
// <p>Parameters:  </p>
// <p>    LPCTSTR lpFileName</p>
// <p>    _CString szName</p>
//
// <p>Returns:   void</p>
//************************************
void CResourceLib::Add(LPCTSTR lpFileName, _CString szName, enResourceType ResourceType){
	CResource* pResource = new CResource(lpFileName, m_lpGDI, ResourceType);
	if(pResource)
		m_lstResourcs.Push(pResource, szName);
}

//************************************
// <p>Description: 返回帖图资源</p>
// <p>Parameters:  </p>
// <p>    INT_PTR nIndex</p>
//
// <p>Returns:   CResource*</p>
//************************************
CResource* CResourceLib::operator[](INT_PTR nIndex){
	return m_lstResourcs[nIndex];
}

//************************************
// <p>Description: 返回帖图资源</p>
// <p>Parameters:  </p>
// <p>    _CString szName</p>
//
// <p>Returns:   CResource*</p>
//************************************
CResource* CResourceLib::GetTexture(_CString szName){
	return m_lstResourcs.GetBy(szName);
}

//************************************
// <p>Description: 返回资源</p>
// <p>Parameters:  </p>
// <p>    _CString szName</p>
//
// <p>Returns:   CResource*</p>
//************************************
CResource* CResourceLib::GetResource(_CString szName){
	return m_lstResourcs.GetBy(szName);
}

//************************************
// <p>Description: 返回资源的大小</p>
// <p>Parameters:  </p>
// <p>    INT_PTR nIndex</p>
//
// <p>Returns:   _SIZE</p>
//************************************
_SIZE CResourceLib::GetTextureSize(INT_PTR nIndex){
	_SIZE		siSize;
	CResource*	pResource = m_lstResourcs[nIndex];

	if(pResource)
		siSize	= pResource->GetSize();

	return siSize;
}

//************************************
// <p>Description: 返回资源的大小</p>
// <p>Parameters:  </p>
// <p>    _CString szName</p>
//
// <p>Returns:   _SIZE</p>
//************************************
_SIZE CResourceLib::GetTextureSize(_CString szName){
	return GetTextureSize(m_lstResourcs.GetPositionBy(szName));
}

⌨️ 快捷键说明

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