-/* $Id$
-
-This file is part of the MSP Märklin suite
-Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#include <map>
#include <msp/core/application.h>
#include <msp/core/getopt.h>
#include <msp/datafile/loader.h>
#include <msp/datafile/parser.h>
#include <msp/io/print.h>
-#include "libmarklin/articlenumber.h"
+#include "libr2c2/articlenumber.h"
using namespace std;
using namespace Msp;
-using namespace Marklin;
+using namespace R2C2;
-class ShoppingList: public Application
+class ShoppingList: public RegisteredApplication<ShoppingList>
{
private:
class InventoryLoader: public DataFile::Loader
map<ArticleNumber, unsigned> inventory;
map<ArticleNumber, unsigned> layout;
- static Application::RegApp<ShoppingList> reg;
-
public:
ShoppingList(int, char **);
int main();
};
-Application::RegApp<ShoppingList> ShoppingList::reg;
-
ShoppingList::ShoppingList(int argc, char **argv)
{
string inv_fn = "inventory";
if(j!=inventory.end())
{
if(j->second<i->second)
- IO::print("track %d %d;\n", i->first, i->second-j->second);
+ IO::print("track \\%d %d;\n", i->first, i->second-j->second);
}
else
- IO::print("track %d %d;\n", i->first, i->second);
+ IO::print("track \\%d %d;\n", i->first, i->second);
}
IO::print("// Pre-existing:\n");
{
map<ArticleNumber, unsigned>::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 \\%d %d;\n", i->first, min(i->second, j->second));
}
IO::print("// Unused:\n");
if(j!=layout.end())
{
if(j->second<i->second)
- IO::print("track %d %d;\n", i->first, i->second-j->second);
+ IO::print("track \\%d %d;\n", i->first, i->second-j->second);
}
else
- IO::print("track %d %d;\n", i->first, i->second);
+ IO::print("track \\%d %d;\n", i->first, i->second);
}
return 0;
{
add("track", &LayoutLoader::track);
add("base");
+ add("beamgate");
add("route");
+ add("signal");
+ add("terrain");
+ add("zone");
}
void ShoppingList::LayoutLoader::track(ArticleNumber art_nr)