X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrain.cpp;h=218b6861da183b0d24c3279046c4dc122aaae9ba;hb=b41c7409da959420aed91e8a2e1fdab95ef473c4;hp=b2b4899f9aa6eb7cc1ad83cee23039d073c4b5f4;hpb=4ff06de475ed47ecb5f39f4007a0da6a2521d924;p=r2c2.git diff --git a/source/libr2c2/train.cpp b/source/libr2c2/train.cpp index b2b4899..218b686 100644 --- a/source/libr2c2/train.cpp +++ b/source/libr2c2/train.cpp @@ -1180,10 +1180,10 @@ unsigned Train::find_speed_step(float real) const if(real_speed[i].weight) { last = i; - if(real_speed[i].speed=real) high = i; + else if(real_speed[i].speed>real_speed[low].speed) + low = i; } if(!high) { @@ -1294,7 +1294,7 @@ bool Train::is_valid_diversion(const Route &diversion, const TrackIter &from) track1 = track1.next(path); - if(track1.looped()) + if(!track1 || track1.looped()) return false; } @@ -1312,6 +1312,8 @@ bool Train::is_valid_diversion(const Route &diversion, const TrackIter &from) bool ok = (track2!=from && diversion.has_track(*track2)); track2 = track2.next(path); + if(!track2) + return false; if(ok) break;