X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=inline;f=source%2Flibr2c2%2Froute.cpp;h=78f96a638f7bf28463127ef9f69ac81cecccdf38;hb=4236c30c0a7a48854e9634e9ad7d8d6e0fd243a3;hp=ad6f81169e5a36221e05934ba5f4cb0e7d6439e3;hpb=2dce9f86c82b6ada591f2a2f0135edceb95756f3;p=r2c2.git diff --git a/source/libr2c2/route.cpp b/source/libr2c2/route.cpp index ad6f811..78f96a6 100644 --- a/source/libr2c2/route.cpp +++ b/source/libr2c2/route.cpp @@ -1,12 +1,6 @@ -/* $Id$ - -This file is part of R²C² -Copyright © 2007-2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #include -#include +#include +#include #include "layout.h" #include "route.h" #include "track.h" @@ -161,12 +155,10 @@ void Route::set_turnout(unsigned addr, unsigned path) { if(!addr) throw InvalidParameterValue("Invalid turnout address"); - map::iterator i = turnouts.find(addr); - if(i==turnouts.end()) - throw KeyError("Turnout is not in this route"); - if(i->second>=0 && path!=static_cast(i->second)) + int &state = get_item(turnouts, addr); + if(state>=0 && path!=static_cast(state)) throw InvalidState("Setting conflicts with route"); - i->second = path; + state = path; } void Route::update_turnouts()