mirror of https://github.com/OpenTTD/OpenTTD.git
Add a constant with the default value of 10000 and have the pathfinding settings refer to it. Add a preventative method to AyStar when it's initializing, to limit the number of max_search_nodes if left unattended.
This commit is contained in:
parent
8ab3838387
commit
c05ffb22bd
|
@ -301,4 +301,7 @@ void AyStar::Init(Hash_HashProc hash, uint num_buckets)
|
||||||
* When that one gets full it reserves another one, till this number
|
* When that one gets full it reserves another one, till this number
|
||||||
* That is why it can stay this high */
|
* That is why it can stay this high */
|
||||||
this->openlist_queue.Init(102400);
|
this->openlist_queue.Init(102400);
|
||||||
|
|
||||||
|
/* Set a reasonable default limit */
|
||||||
|
this->max_search_nodes = AYSTAR_DEF_MAX_SEARCH_NODES;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
#include "../../tile_type.h"
|
#include "../../tile_type.h"
|
||||||
#include "../../track_type.h"
|
#include "../../track_type.h"
|
||||||
|
|
||||||
|
static const int AYSTAR_DEF_MAX_SEARCH_NODES = 10000; ///< Reference limit for #AyStar::max_search_nodes
|
||||||
|
|
||||||
/** Return status of #AyStar methods. */
|
/** Return status of #AyStar methods. */
|
||||||
enum AystarStatus {
|
enum AystarStatus {
|
||||||
AYSTAR_FOUND_END_NODE, ///< An end node was found.
|
AYSTAR_FOUND_END_NODE, ///< An end node was found.
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#define PATHFINDER_TYPE_H
|
#define PATHFINDER_TYPE_H
|
||||||
|
|
||||||
#include "../tile_type.h"
|
#include "../tile_type.h"
|
||||||
|
#include "npf/aystar.h"
|
||||||
|
|
||||||
/** Length (penalty) of one tile with NPF */
|
/** Length (penalty) of one tile with NPF */
|
||||||
static const int NPF_TILE_LENGTH = 100;
|
static const int NPF_TILE_LENGTH = 100;
|
||||||
|
|
|
@ -168,7 +168,7 @@ cat = SC_EXPERT
|
||||||
[SDT_VAR]
|
[SDT_VAR]
|
||||||
var = pf.npf.npf_max_search_nodes
|
var = pf.npf.npf_max_search_nodes
|
||||||
type = SLE_UINT
|
type = SLE_UINT
|
||||||
def = 10000
|
def = AYSTAR_DEF_MAX_SEARCH_NODES
|
||||||
min = 500
|
min = 500
|
||||||
max = 100000
|
max = 100000
|
||||||
cat = SC_EXPERT
|
cat = SC_EXPERT
|
||||||
|
@ -325,7 +325,7 @@ cat = SC_EXPERT
|
||||||
var = pf.yapf.max_search_nodes
|
var = pf.yapf.max_search_nodes
|
||||||
type = SLE_UINT
|
type = SLE_UINT
|
||||||
from = SLV_28
|
from = SLV_28
|
||||||
def = 10000
|
def = AYSTAR_DEF_MAX_SEARCH_NODES
|
||||||
min = 500
|
min = 500
|
||||||
max = 1000000
|
max = 1000000
|
||||||
cat = SC_EXPERT
|
cat = SC_EXPERT
|
||||||
|
|
Loading…
Reference in New Issue