#ifndef PIXELTYPE_H #define PIXELTYPE_H enum PixelType { WATER, GRASS, TREE, BERRIES, ROCK, IRON_ORE, // nature FOOD, WOOD, STONE, IRON, SWORD, // resources DUDE, DEAD_DUDE, // humans SPAWN, WALL, ROAD, MARK, LIBRARY, // buildings EMPTY = -1 }; struct PixelProperty { static const char *getName(PixelType target) { switch(target) { case WATER : return "WATER"; case GRASS : return "GRASS"; case MARK : return "MARK"; case ROCK : return "ROCK"; case IRON_ORE : return "IRON_ORE"; case TREE : return "TREE"; case BERRIES : return "BERRIES"; case FOOD : return "FOOD"; case WOOD : return "WOOD"; case STONE : return "STONE"; case IRON : return "IRON"; case DUDE : return "DUDE"; case SPAWN : return "SPAWN"; case WALL : return "WALL"; case ROAD : return "ROAD"; case SWORD : return "SWORD"; case LIBRARY : return "LIBRARY"; case DEAD_DUDE : return "DEAD_DUDE"; default : return "WTF"; } } static bool isWalkable(PixelType target) { return target == GRASS || target == ROAD || target == MARK; } static bool isDestructible(PixelType target) { return target == DUDE || target == SPAWN || target == WALL || target == LIBRARY || target == ROAD; } static bool isResource(PixelType target) { return target == FOOD || target == WOOD || target == STONE || target == IRON || target == SWORD; } }; #endif // PIXELTYPE_H