irrlichttypes.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. Minetest
  3. Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU Lesser General Public License as published by
  6. the Free Software Foundation; either version 2.1 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU Lesser General Public License for more details.
  12. You should have received a copy of the GNU Lesser General Public License along
  13. with this program; if not, write to the Free Software Foundation, Inc.,
  14. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  15. */
  16. #pragma once
  17. /* Ensure that <stdint.h> is included before <irrTypes.h>, unless building on
  18. * MSVC, to address an irrlicht issue: https://sourceforge.net/p/irrlicht/bugs/433/
  19. *
  20. * TODO: Decide whether or not we support non-compliant C++ compilers like old
  21. * versions of MSCV. If we do not then <stdint.h> can always be included
  22. * regardless of the compiler.
  23. */
  24. #ifndef _MSC_VER
  25. # include <cstdint>
  26. #endif
  27. #include <irrTypes.h>
  28. using namespace irr;
  29. // Irrlicht 1.8+ defines 64bit unsigned symbol in irrTypes.h
  30. #if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8)
  31. #ifdef _MSC_VER
  32. // Windows
  33. typedef long long s64;
  34. typedef unsigned long long u64;
  35. #else
  36. // Posix
  37. typedef int64_t s64;
  38. typedef uint64_t u64;
  39. #endif
  40. #endif
  41. #define S8_MIN (-0x7F - 1)
  42. #define S16_MIN (-0x7FFF - 1)
  43. #define S32_MIN (-0x7FFFFFFF - 1)
  44. #define S64_MIN (-0x7FFFFFFFFFFFFFFF - 1)
  45. #define S8_MAX 0x7F
  46. #define S16_MAX 0x7FFF
  47. #define S32_MAX 0x7FFFFFFF
  48. #define S64_MAX 0x7FFFFFFFFFFFFFFF
  49. #define U8_MAX 0xFF
  50. #define U16_MAX 0xFFFF
  51. #define U32_MAX 0xFFFFFFFF
  52. #define U64_MAX 0xFFFFFFFFFFFFFFFF