X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fcatalogue.cpp;h=779e210b1375ad1e4bb09055e7251a33f9194fa2;hb=2220ba2f11705ea9a4e480603d43ab7ed4cf5a89;hp=221a6f0663667cca1665e4388d867e422c16fb5e;hpb=e37f7bfbbee86eef3b1f6e338a21239905911608;p=r2c2.git diff --git a/source/libr2c2/catalogue.cpp b/source/libr2c2/catalogue.cpp index 221a6f0..779e210 100644 --- a/source/libr2c2/catalogue.cpp +++ b/source/libr2c2/catalogue.cpp @@ -3,6 +3,7 @@ #include #include "catalogue.h" #include "signaltype.h" +#include "terraintype.h" #include "tracktype.h" #include "vehicletype.h" @@ -49,6 +50,7 @@ Catalogue::Loader::Loader(Catalogue &c): add("rail_profile", &Loader::rail_profile); add("scale", &Loader::scale); add("signal", &Loader::signal); + add("terrain", &Loader::terrain); add("track", &Loader::track); add("track_technique", &Catalogue::track_technique); add("vehicle", &Loader::vehicle); @@ -89,6 +91,16 @@ void Catalogue::Loader::signal(ArticleNumber art_nr) obj.add(*sig.release()); } +void Catalogue::Loader::terrain(ArticleNumber art_nr) +{ + if(obj.objects.count(art_nr)) + throw key_error(art_nr); + + RefPtr ter = new TerrainType(art_nr); + load_sub(*ter); + obj.add(*ter.release()); +} + void Catalogue::Loader::track(ArticleNumber art_nr) { if(obj.objects.count(art_nr))