94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* $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 */
 |