summaryrefslogtreecommitdiff
path: root/src/yapf/yapf.hpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
committerrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
commit66bbf336c6af7353ef0aeed58002c46543b30635 (patch)
treead4a63860df2626b22f77e7dac712e958bea54cb /src/yapf/yapf.hpp
parentccc0a3f4dbf58c005b22341ac8874252924690cd (diff)
downloadopenttd-66bbf336c6af7353ef0aeed58002c46543b30635.tar.xz
(svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make. - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies. - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC. - Proper support for OSX universal binaries. - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files. - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files. Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
Diffstat (limited to 'src/yapf/yapf.hpp')
-rw-r--r--src/yapf/yapf.hpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/yapf/yapf.hpp b/src/yapf/yapf.hpp
new file mode 100644
index 000000000..208f29c46
--- /dev/null
+++ b/src/yapf/yapf.hpp
@@ -0,0 +1,93 @@
+/* $Id$ */
+
+#ifndef YAPF_HPP
+#define YAPF_HPP
+
+
+
+#include "track_dir.hpp"
+
+EXTERN_C_BEGIN
+#include "../depot.h"
+#include "../road_map.h"
+#include "../tunnel_map.h"
+#include "../bridge_map.h"
+#include "../bridge.h"
+#include "../station.h"
+#include "../station_map.h"
+#include "../vehicle.h"
+#include "../date.h"
+#include "../functions.h"
+#include "yapf.h"
+#include "../pathfind.h"
+#include "../waypoint.h"
+#include "../debug.h"
+EXTERN_C_END
+
+EXTERN_C_BEGIN
+ extern Patches _patches_newgame;
+ extern uint64 _rdtsc(void);
+EXTERN_C_END
+
+#include <limits.h>
+#include <new>
+
+#if defined(_WIN32) || defined(_WIN64)
+# include <windows.h>
+#else
+# include <time.h>
+#endif
+
+struct CPerformanceTimer
+{
+ int64 m_start;
+ int64 m_acc;
+
+ CPerformanceTimer() : m_start(0), m_acc(0) {}
+
+ FORCEINLINE void Start() {m_start = QueryTime();}
+ FORCEINLINE void Stop() {m_acc += QueryTime() - m_start;}
+ FORCEINLINE int Get(int64 coef) {return (int)(m_acc * coef / QueryFrequency());}
+
+ FORCEINLINE int64 QueryTime() {return _rdtsc();}
+ FORCEINLINE int64 QueryFrequency() {return ((int64)2200 * 1000000);}
+};
+
+struct CPerfStartReal
+{
+ CPerformanceTimer* m_pperf;
+
+ FORCEINLINE CPerfStartReal(CPerformanceTimer& perf) : m_pperf(&perf) {if (m_pperf != NULL) m_pperf->Start();}
+ FORCEINLINE ~CPerfStartReal() {Stop();}
+ FORCEINLINE void Stop() {if (m_pperf != NULL) {m_pperf->Stop(); m_pperf = NULL;}}
+};
+
+struct CPerfStartFake
+{
+ FORCEINLINE CPerfStartFake(CPerformanceTimer& perf) {}
+ FORCEINLINE ~CPerfStartFake() {}
+ FORCEINLINE void Stop() {}
+};
+
+typedef CPerfStartFake CPerfStart;
+
+
+//#undef FORCEINLINE
+//#define FORCEINLINE inline
+
+#include "crc32.hpp"
+#include "blob.hpp"
+#include "fixedsizearray.hpp"
+#include "array.hpp"
+#include "hashtable.hpp"
+#include "binaryheap.hpp"
+#include "nodelist.hpp"
+#include "yapf_base.hpp"
+#include "yapf_node.hpp"
+#include "yapf_common.hpp"
+#include "follow_track.hpp"
+#include "yapf_costbase.hpp"
+#include "yapf_costcache.hpp"
+
+
+#endif /* YAPF_HPP */