/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ #ifndef AZEROTHCORE_COMMON_H #define AZEROTHCORE_COMMON_H #include "Define.h" #include #include #include #include #if AC_PLATFORM == AC_PLATFORM_WINDOWS #include #include #if AC_COMPILER == AC_COMPILER_INTEL # if !defined(BOOST_ASIO_HAS_MOVE) # define BOOST_ASIO_HAS_MOVE # endif // !defined(BOOST_ASIO_HAS_MOVE) # endif // if WARHEAD_COMPILER == WARHEAD_COMPILER_INTEL #else #include #include #include #include #include #include #include #endif #if AC_COMPILER == AC_COMPILER_MICROSOFT #define atoll _atoi64 #define llabs _abs64 #else #define stricmp strcasecmp #endif #define STRINGIZE(a) #a #define MAX_NETCLIENT_PACKET_SIZE (32767 - 1) // Client hardcap: int16 with trailing zero space otherwise crash on memory free enum TimeConstants { MINUTE = 60, HOUR = MINUTE * 60, DAY = HOUR * 24, WEEK = DAY * 7, MONTH = DAY * 30, YEAR = MONTH * 12, IN_MILLISECONDS = 1000 }; enum AccountTypes { SEC_PLAYER = 0, SEC_MODERATOR = 1, SEC_GAMEMASTER = 2, SEC_ADMINISTRATOR = 3, SEC_CONSOLE = 4 // must be always last in list, accounts must have less security level always also }; enum LocaleConstant { LOCALE_enUS = 0, LOCALE_koKR = 1, LOCALE_frFR = 2, LOCALE_deDE = 3, LOCALE_zhCN = 4, LOCALE_zhTW = 5, LOCALE_esES = 6, LOCALE_esMX = 7, LOCALE_ruRU = 8, TOTAL_LOCALES }; #define DEFAULT_LOCALE LOCALE_enUS #define MAX_LOCALES 8 #define MAX_ACCOUNT_TUTORIAL_VALUES 8 AC_COMMON_API extern char const* localeNames[TOTAL_LOCALES]; AC_COMMON_API LocaleConstant GetLocaleByName(const std::string& name); AC_COMMON_API void CleanStringForMysqlQuery(std::string& str); // we always use stdlibc++ std::max/std::min, undefine some not C++ standard defines (Win API and some other platforms) #ifdef max #undef max #endif #ifdef min #undef min #endif #define MAX_QUERY_LEN 32*1024 namespace Acore { template struct unary_function { typedef ArgumentType argument_type; typedef ResultType result_type; }; } #endif