/* Copyright 2015, Michele Santullo * This file is part of DoorKeeper. * * DoorKeeper is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * DoorKeeper is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with DoorKeeper. If not, see . */ #ifndef id2E81C803F1B94170B2C61A63D5020E08 #define id2E81C803F1B94170B2C61A63D5020E08 #if defined(__cplusplus) # include #else # include #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(DK_COORD_ACCUM_TYPE) # define DK_COORD_ACCUM_TYPE float #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); typedef DK_COORD_ACCUM_TYPE MAKE_DK_NAME(CoordinateAccumType); #if defined(__cplusplus) } //namespace dk #endif #undef DK_COORD_SCALAR_TYPE #undef DK_COORD_DISTANCE_TYPE #undef DK_COORD_ACCUM_TYPE #undef MAKE_DK_NAME #if !defined(NDEBUG) && !defined(NO_DK_ASSERTIONS) # if !defined(DK_ASSERT) # include # define DK_ASSERT(a) assert(a) # endif # define DK_ASSERTIONS_ENABLED #else # if !defined(DK_ASSERT) # define DK_ASSERT(a) # endif #endif #endif