// Basic features // Enable or disable memory pooling for specific object types //#define M2_USE_POOL // Enable or disable heap allocation debugging //#define DEBUG_ALLOC #include "debug_allocator.h" #include "../../libthecore/include/stdafx.h" /* ### LINUX-BLOCK-BEGIN (stdafx.h ) ############################# * libc++ (FreeBSD) drags in transitively through / * ; libstdc++ does not. std::unique_ptr - used by * char_change_empire.cpp:35 and questlua_building.cpp:100 - is therefore * undeclared on Linux: * error: 'unique_ptr' is not a member of 'std' * Pulled in centrally here rather than per-file, because every game TU goes * through this header and the same latent dependency may exist behind * #ifdef'd code paths that are not currently compiled. * * (The other Linux blocker in this area - libthecore's `#define false 0', * which broke 162 of 166 TUs under -std=c++23 by making libstdc++'s * constraints int-typed - is fixed at source in * libthecore/include/stdafx.h:211, so nothing is needed here for it. Its one * surviving consequence in this module is the stray cast at arena.cpp:83, * which only ever compiled because `false' was an int; see that file.) */ #if defined(__linux__) #include #endif /* ### LINUX-BLOCK-END (stdafx.h ) ############################### */ #include "../../common/singleton.h" #include "../../common/utils.h" #include "../../common/service.h" #include #include #include #include #include #include #include #include #ifdef __GNUC__ #include #include #include #define TR1_NS std::tr1 #else #include #include #define TR1_NS std #define isdigit iswdigit #define isspace iswspace #endif #include "typedef.h" #include "locale.hpp" #include "event.h" #define PASSES_PER_SEC(sec) ((sec) * passes_per_sec) #ifndef M_PI #define M_PI 3.14159265358979323846 /* pi */ #endif #ifndef M_PI_2 #define M_PI_2 1.57079632679489661923 /* pi/2 */ #endif #define IN #define OUT