#ifndef ROGUEDEFS_H
#define ROGUEDEFS_H

#include "SDL2/SDL_rect.h"


typedef unsigned short Directions;
#define NORTH 0x1u
#define EAST (0x1u << 1)
#define SOUTH (0x1u << 2)
#define WEST (0x1u << 3)

#define WRAP(M_x, M_min, M_max) (((M_x - M_min) % (M_max - M_min)) + M_min)

#define casel(M_switch, M_case)\
case M_case:\
M_switch##_case_##M_case

typedef SDL_Point Tile;
typedef SDL_Point Chunk;
typedef unsigned Sprite;

static inline bool operator==(SDL_Point const &lhs, SDL_Point const &rhs) {
	return lhs.x == rhs.x && lhs.y == rhs.y;
}

#endif // !ROGUEDEFS_H
