X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fshoppinglist%2Fmain.cpp;h=276a4c7877d0f68ec68bc1302291c11995456216;hb=81ee4fbd16b472892b67b35ea85956423a2247ed;hp=f82a97e0a84fe8e06ce66e3b5ce42cc3f442bf6b;hpb=3fa2b4016a4573be61f48c1dd4162c1dbc3372ba;p=r2c2.git diff --git a/source/shoppinglist/main.cpp b/source/shoppinglist/main.cpp index f82a97e..276a4c7 100644 --- a/source/shoppinglist/main.cpp +++ b/source/shoppinglist/main.cpp @@ -1,23 +1,14 @@ -/* $Id$ - -This file is part of R²C² -Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #include #include #include #include #include #include -#include "libr2c2/articlenumber.h" using namespace std; using namespace Msp; -using namespace R2C2; -class ShoppingList: public Application +class ShoppingList: public RegisteredApplication { private: class InventoryLoader: public DataFile::Loader @@ -27,7 +18,7 @@ private: private: ShoppingList &sl; - void track(ArticleNumber, int); + void track(const string &, int); }; class LayoutLoader: public DataFile::Loader @@ -37,13 +28,11 @@ private: private: ShoppingList &sl; - void track(ArticleNumber); + void track(const string &); }; - map inventory; - map layout; - - static Application::RegApp reg; + map inventory; + map layout; public: ShoppingList(int, char **); @@ -54,8 +43,6 @@ private: }; -Application::RegApp ShoppingList::reg; - ShoppingList::ShoppingList(int argc, char **argv) { string inv_fn = "inventory"; @@ -70,37 +57,37 @@ ShoppingList::ShoppingList(int argc, char **argv) int ShoppingList::main() { IO::print("// Need to get:\n"); - for(map::iterator i=layout.begin(); i!=layout.end(); ++i) + for(map::iterator i=layout.begin(); i!=layout.end(); ++i) { - map::iterator j=inventory.find(i->first); + map::iterator j=inventory.find(i->first); if(j!=inventory.end()) { if(j->secondsecond) - IO::print("track %d %d;\n", i->first, i->second-j->second); + IO::print("track \"%s\" %d;\n", i->first, i->second-j->second); } else - IO::print("track %d %d;\n", i->first, i->second); + IO::print("track \"%s\" %d;\n", i->first, i->second); } IO::print("// Pre-existing:\n"); - for(map::iterator i=layout.begin(); i!=layout.end(); ++i) + for(map::iterator i=layout.begin(); i!=layout.end(); ++i) { - map::iterator j=inventory.find(i->first); + map::iterator j=inventory.find(i->first); if(j!=inventory.end()) - IO::print("track %d %d;\n", i->first, min(i->second, j->second)); + IO::print("track \"%s\" %d;\n", i->first, min(i->second, j->second)); } IO::print("// Unused:\n"); - for(map::iterator i=inventory.begin(); i!=inventory.end(); ++i) + for(map::iterator i=inventory.begin(); i!=inventory.end(); ++i) { - map::iterator j=layout.find(i->first); + map::iterator j=layout.find(i->first); if(j!=layout.end()) { if(j->secondsecond) - IO::print("track %d %d;\n", i->first, i->second-j->second); + IO::print("track \"%s\" %d;\n", i->first, i->second-j->second); } else - IO::print("track %d %d;\n", i->first, i->second); + IO::print("track \"%s\" %d;\n", i->first, i->second); } return 0; @@ -129,9 +116,9 @@ ShoppingList::InventoryLoader::InventoryLoader(ShoppingList &s): add("track", &InventoryLoader::track); } -void ShoppingList::InventoryLoader::track(ArticleNumber art_nr, int count) +void ShoppingList::InventoryLoader::track(const string &n, int count) { - sl.inventory[art_nr] += count; + sl.inventory[n] += count; } @@ -140,11 +127,14 @@ ShoppingList::LayoutLoader::LayoutLoader(ShoppingList &s): { add("track", &LayoutLoader::track); add("base"); + add("beamgate"); add("route"); + add("signal"); + add("terrain"); add("zone"); } -void ShoppingList::LayoutLoader::track(ArticleNumber art_nr) +void ShoppingList::LayoutLoader::track(const string &n) { - ++sl.layout[art_nr]; + ++sl.layout[n]; }