Resolve "Toggle Free Look with Hotkey"
[ryzomcore.git] / ryzom / server / src / ai_service / stdpch.h
blob71921daa5abeb679e45a5b550677a53fd11c71d8
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef STDPCH_H
21 #define STDPCH_H
25 //----------------------------------------------------------------
26 // external files
27 //----------------------------------------------------------------
29 // this is up top because it contains a certain number of #pragmas to
30 // control compiler warnings with stlport
32 #include "nel/misc/types_nl.h"
35 //----------------------------------------------------------------
36 // std libs
38 #include <stdlib.h>
39 #include <stdio.h>
40 #include <stddef.h>
41 #include <math.h>
44 //----------------------------------------------------------------
45 // stl
47 #include <string>
48 #include <vector>
49 #include <list>
50 #include <map>
51 #include <set>
52 #include <algorithm>
53 //#include <sstream>
54 #include <exception>
55 #include <utility>
56 #include <deque>
57 #include <limits>
58 #include <iterator>
61 //----------------------------------------------------------------
62 // nel
64 #include "nel/misc/common.h"
65 #include "nel/misc/debug.h"
66 #include "nel/misc/command.h"
67 #include "nel/misc/variable.h"
68 #include "nel/misc/sheet_id.h"
69 #include "nel/misc/entity_id.h"
70 #include "nel/misc/file.h"
71 #include "nel/misc/path.h"
72 #include "nel/misc/time_nl.h"
73 #include "nel/misc/random.h"
74 #include "nel/misc/smart_ptr.h"
76 #include "nel/misc/vector_2d.h"
77 #include "nel/misc/vectord.h"
79 #include "nel/net/message.h"
80 #include "nel/net/unified_network.h"
82 // NeL/ligo
83 #include "nel/ligo/ligo_config.h"
84 #include "nel/ligo/primitive.h"
85 #include "nel/ligo/primitive_configuration.h"
88 //----------------------------------------------------------------
89 // nel net
90 #include "nel/net/service.h"
91 //----------------------------------------------------------------
92 // service basics
94 #define FOREACH(__itvar,__conttype,__contvar) \
95 for (__conttype::iterator __itvar(__contvar.begin()),__itvar##end(__contvar.end()); __itvar!=__itvar##end; ++__itvar)
97 #define FOREACH_NOINC(__itvar,__conttype,__contvar) \
98 for (__conttype::iterator __itvar(__contvar.begin()),__itvar##end(__contvar.end()); __itvar!=__itvar##end;)
100 #define FOREACHC(__itvar,__conttype,__contvar) \
101 for (__conttype::const_iterator __itvar(__contvar.begin()),__itvar##end(__contvar.end()); __itvar!=__itvar##end; ++__itvar)
103 #define FOREACHC_NOINC(__itvar,__conttype,__contvar) \
104 for (__conttype::const_iterator __itvar(__contvar.begin()),__itvar##end(__contvar.end()); __itvar!=__itvar##end; )
107 class CStringWriter
108 :public NLMISC::CRefCount
110 public:
111 CStringWriter()
113 virtual ~CStringWriter()
115 virtual void append(const std::string &str) = 0;
118 class CTrashStringWriter
119 :public CStringWriter
121 public:
122 CTrashStringWriter(NLMISC::CLog *log=NLMISC::InfoLog)
124 virtual ~CTrashStringWriter()
126 void append(const std::string &str)
130 class CLogStringWriter
131 :public CStringWriter
133 public:
134 CLogStringWriter(NLMISC::CLog *log=NLMISC::InfoLog)
135 :_Log(log)
137 virtual ~CLogStringWriter()
139 void append(const std::string &str)
141 #if !FINAL_VERSION
142 nlassert(_Log);
143 #endif
144 if (_Log)
145 _Log->displayNL(str.c_str());
147 NLMISC::CLog *_Log;
151 class CArrayStringWriter
152 :public CStringWriter
154 public:
155 CArrayStringWriter(std::vector<std::string> &stringVector)
156 :_StringVector(stringVector)
158 virtual ~CArrayStringWriter()
160 void append(const std::string &str)
162 _StringVector.push_back(str);
164 std::vector<std::string> &_StringVector;
168 namespace MULTI_LINE_FORMATER {
169 void pushTitle(std::vector<std::string>& container, std::string const& text);
170 void pushEntry(std::vector<std::string>& container, std::string const& text);
171 void pushFooter(std::vector<std::string>& container);
174 //----------------------------------------------------------------
175 // game share
177 #include "game_share/ryzom_entity_id.h"
178 #include "game_share/mode_and_behaviour.h"
179 #include "game_share/player_visual_properties.h"
180 #include "ai_share/ai_event.h"
181 #include "server_share/msg_ai_service.h"
183 //----------------------------------------------------------------
184 // ai share
187 #include "ai_share/ai_share.h"
188 #include "ai_share/ai_types.h"
189 #include "ai_share/ai_alias_description_node.h"
190 #include "ai_share/ai_event_description.h"
191 #include "ai_share/ai_coord.h"
192 #include "ai_share/ai_vector.h"
193 #include "ai_share/angle.h"
194 #include "ai_share/world_map.h"
196 #ifdef NL_OS_WINDOWS
197 # ifndef NL_COMP_MINGW
198 # define NOMINMAX
199 # endif
200 # include <windows.h>
201 #endif // NL_OS_WINDOWS
203 #endif /*STDPCH_H*/