]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/speedquantizer.cpp
Don't crash if a train has no router
[r2c2.git] / source / libr2c2 / speedquantizer.cpp
index 9fa127cb3125fcce5868416d71535558d98195e8..f2b14b8a2aa8d6f6d585562739f8c111d548d787 100644 (file)
@@ -22,6 +22,8 @@ void SpeedQuantizer::learn(unsigned i, float s, float w)
 
 float SpeedQuantizer::get_speed(unsigned i) const
 {
+       if(i>=steps.size())
+               throw out_of_range("SpeedQuantizer::get_speed");
        if(i==0)
                return 0;
        if(steps[i].weight>=weight_limit)
@@ -82,7 +84,7 @@ unsigned SpeedQuantizer::find_speed_step(float speed) const
                        else
                                return 0;
                }
-               return min(min(static_cast<unsigned>(low*speed/steps[low].speed), steps.size()-1), last+limit);
+               return min(min<unsigned>(low*speed/steps[low].speed, steps.size()-1), last+limit);
        }
 
        float f = (speed-steps[low].speed)/(steps[high].speed-steps[low].speed);