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

📄 emap.cpp

📁 一个另类的坦克大战源程序
💻 CPP
字号:
// EMap.cpp: implementation of the EMap class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MapEdit.h"
#include "EMap.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

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

BOOL operator == (TERRAIN_ID first,TERRAIN_ID second)
{
	return first.TileID == second.TileID ;
}

BOOL operator == (TERRAIN_ID first,TILE_ID second)
{
	return first.TileID == second;
}

BOOL operator == (TILE_ID first,TERRAIN_ID second)
{
	return first == second.TileID ;
}

BOOL operator != (TERRAIN_ID first,TILE_ID second)
{
	return first.TileID != second;
}

EMap::EMap():
m_dwID(MAP_ID),m_nHeight(0),m_nWidth(0),
m_pObstacle_map(NULL),m_pTerrain_map(NULL)
{
}

EMap::~EMap()
{
	Destroy();
}

void EMap::Destroy()
{
	if(m_pObstacle_map)
		free(m_pObstacle_map);
	if(m_pTerrain_map)
		free(m_pTerrain_map);
}

extern TERRAIN_ID g_terrain_id_table[];

BOOL EMap::Create(int p_nWidth,int p_nHeight,TERRAIN_INDEX p_Terrain_index)
{
	ASSERT(p_nWidth<=256 && p_nHeight <=256);

	Destroy();
	
	m_dwID = MAP_ID;
	m_pTerrain_map = (TERRAIN_ID*)malloc(p_nWidth * p_nHeight * sizeof(*m_pTerrain_map));

	if(!m_pTerrain_map){
		THROW_ERROR(E_MEM_LACK);
		return FALSE;
	}

	m_pObstacle_map = (OBSTACLE_ID*)malloc((2*p_nWidth)*(2*p_nHeight)*sizeof(OBSTACLE_ID));

	if(!m_pObstacle_map){
		THROW_ERROR(E_MEM_LACK);
		return FALSE;
	}

	//fill terrain map with default terrain index
	INT nIndex;
	for(nIndex=0;nIndex<p_nWidth * p_nHeight;nIndex++)
	{
		m_pTerrain_map[nIndex] = g_terrain_id_table[p_Terrain_index];
	}

	for(nIndex=0;nIndex<p_nWidth * p_nHeight * 4;nIndex++)
	{
		m_pObstacle_map[nIndex] = INVALID_OBSTACLE_ID;
	}

	m_nWidth = p_nWidth;
	m_nHeight = p_nHeight;
	return TRUE;
}

⌨️ 快捷键说明

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