summaryrefslogtreecommitdiff
path: root/pathfind.c
diff options
context:
space:
mode:
authorludde <ludde@openttd.org>2005-07-20 09:17:20 +0000
committerludde <ludde@openttd.org>2005-07-20 09:17:20 +0000
commita2f6256c336ebbc28016573b4b3fe9ae480719ca (patch)
treeeafab7e6ac94ea6ded7d63939a6f876b5ae4b86b /pathfind.c
parent72c33083f54c2733aed6007addceff7d4192bd67 (diff)
downloadopenttd-a2f6256c336ebbc28016573b4b3fe9ae480719ca.tar.xz
(svn r2646) Change: [ntp] Fix uninitialized variable and add some more asserts to be able to debug an assert error.
Diffstat (limited to 'pathfind.c')
-rw-r--r--pathfind.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/pathfind.c b/pathfind.c
index 5290b86f1..18bff63bc 100644
--- a/pathfind.c
+++ b/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?