root/trunk/src/shared/Common.h @ 100

Revision 44, 4.6 kB (checked in by yumileroy, 17 years ago)

[svn] * Merge Temp dev SVN with Assembla.
* Changes include:

  • Implementation of w12x's Outdoor PvP and Game Event Systems.
  • Temporary removal of IRC Chat Bot (until infinite loop when disabled is fixed).
  • All mangos -> trinity (to convert your mangos_string table, please run mangos_string_to_trinity_string.sql).
  • Improved Config cleanup.
  • And many more changes.

Original author: Seline
Date: 2008-10-14 11:57:03-05:00

Line 
1/*
2 * Copyright (C) 2008 Trinity <http://www.trinitycore.org/>
3 *
4 * Thanks to the original authors: MaNGOS <http://www.mangosproject.org/>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#ifndef TRINITYCORE_COMMON_H
22#define TRINITYCORE_COMMON_H
23
24// config.h needs to be included 1st
25// TODO this thingy looks like hack ,but its not, need to
26// make separate header however, because It makes mess here.
27#ifdef HAVE_CONFIG_H
28// Remove Some things that we will define
29// This is in case including another config.h
30// before trinity config.h
31#ifdef PACKAGE
32#undef PACKAGE
33#endif //PACKAGE
34#ifdef PACKAGE_BUGREPORT
35#undef PACKAGE_BUGREPORT
36#endif //PACKAGE_BUGREPORT
37#ifdef PACKAGE_NAME
38#undef PACKAGE_NAME
39#endif //PACKAGE_NAME
40#ifdef PACKAGE_STRING
41#undef PACKAGE_STRING
42#endif //PACKAGE_STRING
43#ifdef PACKAGE_TARNAME
44#undef PACKAGE_TARNAME
45#endif //PACKAGE_TARNAME
46#ifdef PACKAGE_VERSION
47#undef PACKAGE_VERSION
48#endif //PACKAGE_VERSION
49#ifdef VERSION
50#undef VERSION
51#endif //VERSION
52# include "config.h"
53#undef PACKAGE
54#undef PACKAGE_BUGREPORT
55#undef PACKAGE_NAME
56#undef PACKAGE_STRING
57#undef PACKAGE_TARNAME
58#undef PACKAGE_VERSION
59#undef VERSION
60#endif //HAVE_CONFIG_H
61
62#include "Platform/Define.h"
63
64#if COMPILER == COMPILER_MICROSOFT
65
66#pragma warning(disable:4996)
67
68#ifndef __SHOW_STUPID_WARNINGS__
69
70#pragma warning(disable:4244)
71
72#pragma warning(disable:4267)
73
74#pragma warning(disable:4800)
75
76#pragma warning(disable:4018)
77
78#pragma warning(disable:4311)
79
80#pragma warning(disable:4305)
81
82#pragma warning(disable:4005)
83#endif                                                      // __SHOW_STUPID_WARNINGS__
84#endif                                                      // __GNUC__
85
86#include "Utilities/HashMap.h"
87#include <stdio.h>
88#include <stdlib.h>
89#include <string.h>
90#include <time.h>
91#include <math.h>
92#include <errno.h>
93#include <signal.h>
94
95#if PLATFORM == PLATFORM_WINDOWS
96#define STRCASECMP stricmp
97#else
98#define STRCASECMP strcasecmp
99#endif
100
101#include <set>
102#include <list>
103#include <string>
104#include <map>
105#include <queue>
106#include <sstream>
107#include <algorithm>
108
109#include <zthread/FastMutex.h>
110#include <zthread/LockedQueue.h>
111#include <zthread/Runnable.h>
112#include <zthread/Thread.h>
113
114#if PLATFORM == PLATFORM_WINDOWS
115#  define FD_SETSIZE 4096
116#  include <ace/config-all.h>
117// XP winver - needed to compile with standard leak check in MemoryLeaks.h
118// uncomment later if needed
119//#define _WIN32_WINNT 0x0501
120#  include <ws2tcpip.h>
121//#undef WIN32_WINNT
122#else
123#  include <sys/types.h>
124#  include <sys/ioctl.h>
125#  include <sys/socket.h>
126#  include <netinet/in.h>
127#  include <unistd.h>
128#  include <netdb.h>
129#endif
130
131#if COMPILER == COMPILER_MICROSOFT
132
133#include <float.h>
134
135#define I64FMT "%016I64X"
136#define I64FMTD "%I64u"
137#define SI64FMTD "%I64d"
138#define snprintf _snprintf
139#define atoll __atoi64
140#define vsnprintf _vsnprintf
141#define strdup _strdup
142#define finite(X) _finite(X)
143
144#else
145
146#define stricmp strcasecmp
147#define strnicmp strncasecmp
148#define I64FMT "%016llX"
149#define I64FMTD "%llu"
150#define SI64FMTD "%lld"
151#endif
152
153inline float finiteAlways(float f) { return finite(f) ? f : 0.0f; }
154
155#define atol(a) strtoul( a, NULL, 10)
156
157#define STRINGIZE(a) #a
158
159enum TimeConstants
160{
161    MINUTE = 60,
162    HOUR   = MINUTE*60,
163    DAY    = HOUR*24,
164    MONTH  = DAY*30
165};
166
167enum AccountTypes
168{
169    SEC_PLAYER         = 0,
170    SEC_MODERATOR      = 1,
171    SEC_GAMEMASTER     = 2,
172    SEC_ADMINISTRATOR  = 3
173};
174
175enum LocaleConstant
176{
177    LOCALE_enUS = 0,
178    LOCALE_koKR = 1,
179    LOCALE_frFR = 2,
180    LOCALE_deDE = 3,
181    LOCALE_zhCN = 4,
182    LOCALE_zhTW = 5,
183    LOCALE_esES = 6,
184    LOCALE_esMX = 7,
185    LOCALE_ruRU = 8
186};
187
188#define MAX_LOCALE 9
189
190extern char const* localeNames[MAX_LOCALE];
191
192LocaleConstant GetLocaleByName(std::string name);
193
194// we always use stdlibc++ std::max/std::min, undefine some not C++ standard defines (Win API and some pother platforms)
195#ifdef max
196#undef max
197#endif
198
199#ifdef min
200#undef min
201#endif
202
203#ifndef M_PI
204#define M_PI            3.14159265358979323846
205#endif
206
207#endif
Note: See TracBrowser for help on using the browser.