summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-10-15 21:14:04 +0300
committerAndrei Karas <akaras@inbox.ru>2015-10-15 21:14:04 +0300
commit7b89705cc5c491b60dab923e2f8079cfc1f4bce1 (patch)
treea3a5ceb5a142b9b954eab23c39946b0825218169
parent8b22861c92f1cec3af31b8b9e97b16498b2d86d0 (diff)
downloadmv-7b89705cc5c491b60dab923e2f8079cfc1f4bce1.tar.gz
mv-7b89705cc5c491b60dab923e2f8079cfc1f4bce1.tar.bz2
mv-7b89705cc5c491b60dab923e2f8079cfc1f4bce1.tar.xz
mv-7b89705cc5c491b60dab923e2f8079cfc1f4bce1.zip
Convert BlockType into strong typed enum.
-rw-r--r--src/being/actorsprite.h2
-rw-r--r--src/being/being.h2
-rw-r--r--src/enums/resources/map/blocktype.h28
-rw-r--r--src/resources/beinginfo.h6
-rw-r--r--src/resources/map/map.cpp6
-rw-r--r--src/resources/map/map.h4
6 files changed, 24 insertions, 24 deletions
diff --git a/src/being/actorsprite.h b/src/being/actorsprite.h
index a1f0993b6..93fddedce 100644
--- a/src/being/actorsprite.h
+++ b/src/being/actorsprite.h
@@ -80,7 +80,7 @@ class ActorSprite notfinal : public CompoundSprite, public Actor
/**
* Gets the way the object blocks pathfinding for other objects
*/
- virtual BlockType::BlockType getBlockType() const A_WARN_UNUSED
+ virtual BlockTypeT getBlockType() const A_WARN_UNUSED
{ return BlockType::NONE; }
/**
diff --git a/src/being/being.h b/src/being/being.h
index 3105edc0e..8253cca55 100644
--- a/src/being/being.h
+++ b/src/being/being.h
@@ -400,7 +400,7 @@ class Being notfinal : public ActorSprite,
/**
* Gets the way the monster blocks pathfinding for other objects
*/
- BlockType::BlockType getBlockType() const override A_WARN_UNUSED
+ BlockTypeT getBlockType() const override A_WARN_UNUSED
{
if (!mInfo)
return BlockType::NONE;
diff --git a/src/enums/resources/map/blocktype.h b/src/enums/resources/map/blocktype.h
index 5909703cb..0b5ee9179 100644
--- a/src/enums/resources/map/blocktype.h
+++ b/src/enums/resources/map/blocktype.h
@@ -23,20 +23,20 @@
#ifndef ENUMS_RESOURCES_MAP_BLOCKTYPE_H
#define ENUMS_RESOURCES_MAP_BLOCKTYPE_H
-namespace BlockType
+#include "enums/simpletypes/enumdefines.h"
+
+enumStart(BlockType)
{
- enum BlockType
- {
- NONE = -1,
- WALL,
- CHARACTER,
- MONSTER,
- AIR,
- WATER,
- GROUND,
- GROUNDTOP,
- NB_BLOCKTYPES
- };
-} // namespace BlockType
+ NONE = -1,
+ WALL,
+ CHARACTER,
+ MONSTER,
+ AIR,
+ WATER,
+ GROUND,
+ GROUNDTOP,
+ NB_BLOCKTYPES
+}
+enumEnd(BlockType);
#endif // ENUMS_RESOURCES_MAP_BLOCKTYPE_H
diff --git a/src/resources/beinginfo.h b/src/resources/beinginfo.h
index ad5f35a85..a4ee2a750 100644
--- a/src/resources/beinginfo.h
+++ b/src/resources/beinginfo.h
@@ -119,10 +119,10 @@ class BeingInfo final
unsigned char getBlockWalkMask() const A_WARN_UNUSED
{ return mBlockWalkMask; }
- void setBlockType(const BlockType::BlockType &blockType)
+ void setBlockType(const BlockTypeT &blockType)
{ mBlockType = blockType; }
- BlockType::BlockType getBlockType() const A_WARN_UNUSED
+ BlockTypeT getBlockType() const A_WARN_UNUSED
{ return mBlockType; }
void setTargetOffsetX(const int n)
@@ -338,7 +338,7 @@ class BeingInfo final
Attacks mAttacks;
std::vector<BeingMenuItem> mMenu;
unsigned char mBlockWalkMask;
- BlockType::BlockType mBlockType;
+ BlockTypeT mBlockType;
const std::map <ItemColor, ColorDB::ItemColorData> *mColors;
int mTargetOffsetX;
int mTargetOffsetY;
diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp
index e206edef2..e1407af91 100644
--- a/src/resources/map/map.cpp
+++ b/src/resources/map/map.cpp
@@ -148,7 +148,7 @@ Map::Map(const int width, const int height,
mDrawOnlyFringe(false)
{
const int size = mWidth * mHeight;
- for (int i = 0; i < BlockType::NB_BLOCKTYPES; i++)
+ for (size_t i = 0; i < static_cast<size_t>(BlockType::NB_BLOCKTYPES); i++)
{
mOccupation[i] = new unsigned[static_cast<size_t>(size)];
memset(mOccupation[i], 0, static_cast<size_t>(size)
@@ -171,7 +171,7 @@ Map::~Map()
CHECKLISTENERS
delete [] mMetaTiles;
- for (int i = 0; i < BlockType::NB_BLOCKTYPES; i++)
+ for (size_t i = 0; i < static_cast<size_t>(BlockType::NB_BLOCKTYPES); i++)
delete [] mOccupation[i];
if (mWalkLayer)
@@ -690,7 +690,7 @@ const Tileset *Map::getTilesetWithGid(const int gid) const
}
void Map::blockTile(const int x, const int y,
- const BlockType::BlockType type)
+ const BlockTypeT type)
{
if (type == BlockType::NONE || !contains(x, y))
return;
diff --git a/src/resources/map/map.h b/src/resources/map/map.h
index 33b819c04..49e0459f2 100644
--- a/src/resources/map/map.h
+++ b/src/resources/map/map.h
@@ -146,7 +146,7 @@ class Map final : public Properties, public ConfigListener
* Marks a tile as occupied.
*/
void blockTile(const int x, const int y,
- const BlockType::BlockType type);
+ const BlockTypeT type);
/**
* Gets walkability for a tile with a blocking bitmask. When called
@@ -378,7 +378,7 @@ class Map final : public Properties, public ConfigListener
/**
* Blockmasks for different entities
*/
- unsigned *mOccupation[BlockType::NB_BLOCKTYPES];
+ unsigned *mOccupation[static_cast<size_t>(BlockType::NB_BLOCKTYPES)];
const int mWidth;
const int mHeight;