#ifndef id2E81C803F1B94170B2C61A63D5020E08
#define id2E81C803F1B94170B2C61A63D5020E08

#if defined(__cplusplus)
#	include <cstdint>
#else
#	include <stdint.h>
#endif

#if !defined(DK_COORD_SCALAR_TYPE)
/* this type represent tiles' coordinates, so it should be an integer type */
/* so it's not the tile position in your game world */
#	define DK_COORD_SCALAR_TYPE int32_t
#endif
#if !defined(DK_COORD_DISTANCE_TYPE)
#	define DK_COORD_DISTANCE_TYPE int64_t
#endif

#if defined(__cplusplus)
#	define MAKE_DK_NAME(a) a
namespace dk {
#else
#	define MAKE_DK_NAME(a) dk_ ## a
#endif

typedef DK_COORD_SCALAR_TYPE MAKE_DK_NAME(CoordinateScalarType);
typedef DK_COORD_DISTANCE_TYPE MAKE_DK_NAME(CoordinateDistType);

#if defined(__cplusplus)
} //namespace dk
#endif

#undef DK_COORD_SCALAR_TYPE
#undef DK_COORD_DISTANCE_TYPE
#undef MAKE_DK_NAME

#if !defined(NDEBUG) && !defined(NO_DK_ASSERTIONS)
#	if !defined(DK_ASSERT)
#		include <cassert>
#		define DK_ASSERT(a) assert(a)
#	endif
#	define DK_ASSERTIONS_ENABLED
#else
#	if !defined(DK_ASSERT)
#		define DK_ASSERT(a)
#	endif
#endif

#endif
