📄 emap.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 + -