mirror of https://github.com/OpenTTD/OpenTTD
(svn r2646) Change: [ntp] Fix uninitialized variable and add some more asserts to be able to debug an assert error.
parent
2379c59ab8
commit
b8b14ac6c8
10
pathfind.c
10
pathfind.c
|
@ -664,11 +664,14 @@ static void NTPEnum(NewTrackPathFinder *tpf, TileIndex tile, uint direction)
|
|||
FindLengthOfTunnelResult flotr;
|
||||
int estimation;
|
||||
|
||||
|
||||
|
||||
// Need to have a special case for the start.
|
||||
// We shouldn't call the callback for the current tile.
|
||||
si.cur_length = 1; // Need to start at 1 cause 0 is a reserved value.
|
||||
si.depth = 0;
|
||||
si.state = 0;
|
||||
si.first_track = 0xFF;
|
||||
goto start_at;
|
||||
|
||||
for(;;) {
|
||||
|
@ -690,7 +693,9 @@ callback_and_continue:
|
|||
if (tpf->enum_proc(tile, tpf->userdata, si.first_track, si.cur_length))
|
||||
return;
|
||||
|
||||
assert(si.track <= 13);
|
||||
direction = _tpf_new_direction[si.track];
|
||||
assert(direction <= 3);
|
||||
|
||||
start_at:
|
||||
// If the tile is the entry tile of a tunnel, and we're not going out of the tunnel,
|
||||
|
@ -715,6 +720,7 @@ start_at:
|
|||
// a rail net and find the first intersection
|
||||
tile_org = tile;
|
||||
for(;;) {
|
||||
assert(direction <= 3);
|
||||
tile += TileOffsByDir(direction);
|
||||
|
||||
// too long search length? bail out.
|
||||
|
@ -812,7 +818,7 @@ start_at:
|
|||
|
||||
// continue with the next track
|
||||
direction = _tpf_new_direction[track];
|
||||
assert(direction != 0xFF);
|
||||
assert(direction <= 3);
|
||||
|
||||
// safety check if we're running around chasing our tail... (infinite loop)
|
||||
if (tile == tile_org) {
|
||||
|
@ -850,7 +856,9 @@ start_at:
|
|||
si.depth++;
|
||||
si.tile = tile;
|
||||
do {
|
||||
assert(direction <= 3);
|
||||
si.track = _new_track[FIND_FIRST_BIT(bits)][direction];
|
||||
assert(si.track <= 13);
|
||||
si.priority = si.cur_length + estimation;
|
||||
|
||||
// out of stack items, bail out?
|
||||
|
|
Loading…
Reference in New Issue