mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r18420) -Codechange: split YAPF's track follower from the actual YAPF code
This commit is contained in:
parent
73df2c7a25
commit
ad6d8c1f46
@ -3451,6 +3451,10 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Pathfinder"
|
Name="Pathfinder"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\src\pathfinder\follow_track.hpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
|
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
|
||||||
>
|
>
|
||||||
@ -3467,6 +3471,10 @@
|
|||||||
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
|
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\src\pathfinder\pf_performance_timer.hpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="NPF"
|
Name="NPF"
|
||||||
@ -3491,10 +3499,6 @@
|
|||||||
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
|
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\pathfinder\npf\npf.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
|
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
|
||||||
>
|
>
|
||||||
@ -3503,10 +3507,6 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="YAPF"
|
Name="YAPF"
|
||||||
>
|
>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\pathfinder\yapf\follow_track.hpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
|
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
|
||||||
>
|
>
|
||||||
|
@ -3448,6 +3448,10 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Pathfinder"
|
Name="Pathfinder"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\src\pathfinder\follow_track.hpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
|
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
|
||||||
>
|
>
|
||||||
@ -3464,6 +3468,10 @@
|
|||||||
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
|
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\src\pathfinder\pf_performance_timer.hpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="NPF"
|
Name="NPF"
|
||||||
@ -3488,10 +3496,6 @@
|
|||||||
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
|
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\pathfinder\npf\npf.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
|
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
|
||||||
>
|
>
|
||||||
@ -3500,10 +3504,6 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="YAPF"
|
Name="YAPF"
|
||||||
>
|
>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\pathfinder\yapf\follow_track.hpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
|
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
|
||||||
>
|
>
|
||||||
|
@ -814,10 +814,12 @@ network/core/udp.cpp
|
|||||||
network/core/udp.h
|
network/core/udp.h
|
||||||
|
|
||||||
# Pathfinder
|
# Pathfinder
|
||||||
|
pathfinder/follow_track.hpp
|
||||||
pathfinder/opf/opf_ship.cpp
|
pathfinder/opf/opf_ship.cpp
|
||||||
pathfinder/opf/opf_ship.h
|
pathfinder/opf/opf_ship.h
|
||||||
pathfinder/pathfinder_func.h
|
pathfinder/pathfinder_func.h
|
||||||
pathfinder/pathfinder_type.h
|
pathfinder/pathfinder_type.h
|
||||||
|
pathfinder/pf_performance_timer.hpp
|
||||||
|
|
||||||
# NPF
|
# NPF
|
||||||
pathfinder/npf/aystar.cpp
|
pathfinder/npf/aystar.cpp
|
||||||
@ -825,11 +827,9 @@ pathfinder/npf/aystar.h
|
|||||||
pathfinder/npf/queue.cpp
|
pathfinder/npf/queue.cpp
|
||||||
pathfinder/npf/queue.h
|
pathfinder/npf/queue.h
|
||||||
pathfinder/npf/npf.cpp
|
pathfinder/npf/npf.cpp
|
||||||
pathfinder/npf/npf.h
|
|
||||||
pathfinder/npf/npf_func.h
|
pathfinder/npf/npf_func.h
|
||||||
|
|
||||||
# YAPF
|
# YAPF
|
||||||
pathfinder/yapf/follow_track.hpp
|
|
||||||
pathfinder/yapf/nodelist.hpp
|
pathfinder/yapf/nodelist.hpp
|
||||||
pathfinder/yapf/yapf.h
|
pathfinder/yapf/yapf.h
|
||||||
pathfinder/yapf/yapf.hpp
|
pathfinder/yapf/yapf.hpp
|
||||||
|
@ -12,10 +12,14 @@
|
|||||||
#ifndef FOLLOW_TRACK_HPP
|
#ifndef FOLLOW_TRACK_HPP
|
||||||
#define FOLLOW_TRACK_HPP
|
#define FOLLOW_TRACK_HPP
|
||||||
|
|
||||||
#include "yapf.hpp"
|
#include "../depot_map.h"
|
||||||
#include "../../depot_map.h"
|
#include "../pbs.h"
|
||||||
#include "../../roadveh.h"
|
#include "../roadveh.h"
|
||||||
#include "../../train.h"
|
#include "../station_base.h"
|
||||||
|
#include "../train.h"
|
||||||
|
#include "../tunnelbridge.h"
|
||||||
|
#include "../tunnelbridge_map.h"
|
||||||
|
#include "pf_performance_timer.hpp"
|
||||||
|
|
||||||
/** Track follower helper template class (can serve pathfinders and vehicle
|
/** Track follower helper template class (can serve pathfinders and vehicle
|
||||||
* controllers). See 6 different typedefs below for 3 different transport
|
* controllers). See 6 different typedefs below for 3 different transport
|
82
src/pathfinder/pf_performance_timer.hpp
Normal file
82
src/pathfinder/pf_performance_timer.hpp
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of OpenTTD.
|
||||||
|
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||||
|
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file pf_performance_timer.hpp Performance timer for pathfinders. */
|
||||||
|
|
||||||
|
#ifndef PF_PERFORMANCE_TIMER_HPP
|
||||||
|
#define PF_PERFORMANCE_TIMER_HPP
|
||||||
|
|
||||||
|
extern uint64 ottd_rdtsc();
|
||||||
|
|
||||||
|
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 ottd_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;
|
||||||
|
|
||||||
|
#endif /* PF_PERFORMANCE_TIMER_HPP */
|
@ -12,100 +12,10 @@
|
|||||||
#ifndef YAPF_HPP
|
#ifndef YAPF_HPP
|
||||||
#define YAPF_HPP
|
#define YAPF_HPP
|
||||||
|
|
||||||
#include "../../openttd.h"
|
|
||||||
#include "../../vehicle_base.h"
|
|
||||||
#include "../../road_map.h"
|
|
||||||
#include "../../tunnel_map.h"
|
|
||||||
#include "../../bridge_map.h"
|
|
||||||
#include "../../tunnelbridge_map.h"
|
|
||||||
#include "../../bridge.h"
|
|
||||||
#include "../../station_map.h"
|
|
||||||
#include "../../tile_cmd.h"
|
|
||||||
#include "../../landscape.h"
|
#include "../../landscape.h"
|
||||||
#include "yapf.h"
|
|
||||||
#include "../pathfinder_func.h"
|
#include "../pathfinder_func.h"
|
||||||
#include "../../pbs.h"
|
#include "../pf_performance_timer.hpp"
|
||||||
#include "../../waypoint_base.h"
|
#include "yapf.h"
|
||||||
#include "../../debug.h"
|
|
||||||
#include "../../settings_type.h"
|
|
||||||
#include "../../tunnelbridge.h"
|
|
||||||
|
|
||||||
extern uint64 ottd_rdtsc();
|
|
||||||
|
|
||||||
#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 ottd_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
|
//#undef FORCEINLINE
|
||||||
//#define FORCEINLINE inline
|
//#define FORCEINLINE inline
|
||||||
@ -119,7 +29,7 @@ typedef CPerfStartFake CPerfStart;
|
|||||||
#include "../../misc/binaryheap.hpp"
|
#include "../../misc/binaryheap.hpp"
|
||||||
#include "../../misc/dbg_helpers.h"
|
#include "../../misc/dbg_helpers.h"
|
||||||
#include "nodelist.hpp"
|
#include "nodelist.hpp"
|
||||||
#include "follow_track.hpp"
|
#include "../follow_track.hpp"
|
||||||
#include "yapf_base.hpp"
|
#include "yapf_base.hpp"
|
||||||
#include "yapf_node.hpp"
|
#include "yapf_node.hpp"
|
||||||
#include "yapf_common.hpp"
|
#include "yapf_common.hpp"
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "vehicle_func.h"
|
#include "vehicle_func.h"
|
||||||
#include "pathfinder/yapf/follow_track.hpp"
|
#include "pathfinder/follow_track.hpp"
|
||||||
|
//#include "depot_map.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the reserved trackbits for any tile, regardless of type.
|
* Get the reserved trackbits for any tile, regardless of type.
|
||||||
|
@ -14,13 +14,15 @@
|
|||||||
#include "articulated_vehicles.h"
|
#include "articulated_vehicles.h"
|
||||||
#include "command_func.h"
|
#include "command_func.h"
|
||||||
#include "pathfinder/npf/npf_func.h"
|
#include "pathfinder/npf/npf_func.h"
|
||||||
|
#include "pathfinder/yapf/yapf.hpp"
|
||||||
|
#include "pathfinder/follow_track.hpp"
|
||||||
|
#include "openttd.h"
|
||||||
#include "news_func.h"
|
#include "news_func.h"
|
||||||
#include "company_func.h"
|
#include "company_func.h"
|
||||||
#include "vehicle_gui.h"
|
#include "vehicle_gui.h"
|
||||||
#include "newgrf_engine.h"
|
#include "newgrf_engine.h"
|
||||||
#include "newgrf_sound.h"
|
#include "newgrf_sound.h"
|
||||||
#include "newgrf_text.h"
|
#include "newgrf_text.h"
|
||||||
#include "pathfinder/yapf/follow_track.hpp"
|
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "strings_func.h"
|
#include "strings_func.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user