📄 emap.h
字号:
// EMap.h: interface for the EMap class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_EMAP_H__A45278C7_3D54_4FD7_8D59_B5D7BDE1613D__INCLUDED_)
#define AFX_EMAP_H__A45278C7_3D54_4FD7_8D59_B5D7BDE1613D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAP_ID 0x004D4757
#define TERRAIN_WIDTH 48
#define TERRAIN_HEIGHT 48
#define OBSTACLE_WIDTH 24
#define OBSTACLE_HEIGHT 24
#define DEFAULT_TERRAIN_INDEX 0
#define NOT_OBSTACLE 0
enum TILE_CORNER {
CORNER_LEFT_TOP=3, //左上角
CORNER_RIGHT_TOP=2, //右上角
CORNER_LEFT_BOTTOM=1, //左下角
CORNER_RIGHT_BOTTOM=0 //右下角
};
typedef DWORD TILE_ID;
typedef BYTE TERRAIN_INDEX;
typedef BYTE CORNER_ID;
typedef BYTE OBSTACLE_INDEX;
typedef BYTE OBSTACLE_ID;
#define INVALID_TERRAIN_ID ((TILE_ID)0X00)
#define INVALID_TERRAIN_INDEX ((TERRAIN_INDEX)0XFF)
#define INVALID_OBSTACLE_ID ((OBSTACLE_ID)0X00)
#define INVALID_OBSTACLE_INDEX ((OBSTACLE_INDEX)0xFF)
#define OBSTACLE_CORNER_FLAG (0X80)
#define IS_OBSTACLE_CORNER(corner_id) (corner_id&OBSTACLE_CORNER_FLAG)
#define MAKE_OBSTACLE_VALUE(corner_id) (corner_id|0X80)
#define IS_TERRAIN_OBSTACLE(obstacle_id) (obstacle_id&0x80)
union TERRAIN_ID
{
TILE_ID TileID;
CORNER_ID CornerID[4];
TERRAIN_ID(TILE_ID tile_id){TileID=tile_id;}
TERRAIN_ID(){};
friend BOOL operator == (TERRAIN_ID first,TERRAIN_ID second);
friend BOOL operator == (TERRAIN_ID first,TILE_ID second);
friend BOOL operator == (TILE_ID first,TERRAIN_ID second);
friend BOOL operator != (TERRAIN_ID first,TILE_ID second);
};
class EMap
{
DWORD m_dwID;
//____________________________________________
//width & height of tiles map,But
//the width & height of obstacle map are double of it
INT32 m_nWidth,m_nHeight;
TERRAIN_ID * m_pTerrain_map;
OBSTACLE_ID * m_pObstacle_map;
public:
EMap();
virtual ~EMap();
INT Width(){return m_nWidth;}
INT Height(){return m_nHeight;}
BOOL Create(int p_nWidth,int p_nHeight,TERRAIN_INDEX p_Terrain=DEFAULT_TERRAIN_INDEX);
void Destroy();
TERRAIN_ID * TerrainMap(){return m_pTerrain_map;}
OBSTACLE_ID * ObstacleMap(){return m_pObstacle_map;}
friend class CMapDoc;
};
#endif // !defined(AFX_EMAP_H__A45278C7_3D54_4FD7_8D59_B5D7BDE1613D__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -