// <cstdint> for the game code DLL (compiled without the MSVC and Windows SDK headers, see <cmath> here). The same
// types as MSVC's stdint.h (the mangled names of the executable's exports depend on them: int is H, long long _J).
#pragma once

#include <cstddef>

using int8_t = signed char;
using int16_t = short;
using int32_t = int;
using int64_t = long long;
using uint8_t = unsigned char;
using uint16_t = unsigned short;
using uint32_t = unsigned int;
using uint64_t = unsigned long long;
using intptr_t = long long;
using uintptr_t = unsigned long long;

#define INT8_MIN (-127 - 1)
#define INT16_MIN (-32767 - 1)
#define INT32_MIN (-2147483647 - 1)
#define INT64_MIN (-9223372036854775807ll - 1)
#define INT8_MAX 127
#define INT16_MAX 32767
#define INT32_MAX 2147483647
#define INT64_MAX 9223372036854775807ll
#define UINT8_MAX 0xff
#define UINT16_MAX 0xffff
#define UINT32_MAX 0xffffffffu
#define UINT64_MAX 0xffffffffffffffffull

namespace std {
using ::int16_t;
using ::int32_t;
using ::int64_t;
using ::int8_t;
using ::intptr_t;
using ::uint16_t;
using ::uint32_t;
using ::uint64_t;
using ::uint8_t;
using ::uintptr_t;
}  // namespace std
