EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
MarketBotConf.cpp
Go to the documentation of this file.
1 
14 #include "market/MarketBotConf.h"
15 
17 {
18  // register needed parsers
20 
21  // Set sane defaults
22  // items with a "N" behind them are NOT implemented
23  // items with a "P" behind them are PARTIALLY implemented
24  // items with /*x*/ behind them denote time idetifier, with x = (s=seconds, m=minutes, etc)
25 
26  // main
27  main.EnableRegional = false;//N
28  main.EnableConst = false;//N
29  main.DataRefreshTime = 15/*m*/;//N
30  main.OrderLifetime = 5/*d*/;//N
31  main.OrdersPerRefresh = 10;//N
32  main.MaxISKPerOrder = 1500000000;//N
33 
34  // buy
35  buy.RegionJumps = 10;//N
36  buy.ConstJumps = 8;//N
37  buy.SystemJumps = 5;//N
38  buy.OrdersPerRegion = 35;//N
39  buy.OrdersPerConst = 20;//N
40  buy.OrdersPerSystem = 10;//N
41  buy.DupeOrdersPerRegion = 10;//N
42  buy.DupeOrdersPerConst = 5;//N
43  buy.DupeOrdersPerSystem = 2;//N
44  buy.MinBuyAmount = 1;//N
45 
46  // sell
47  sell.SellNamedItem = false;//N
48  sell.OrdersPerRegion = 20;//N
49  sell.OrdersPerConst = 10;//N
50  sell.OrdersPerSystem = 2;//N
51  sell.DupeOrdersPerRegion = 5;//N
52  sell.DupeOrdersPerConst = 3;//N
53  sell.DupeOrdersPerSystem = 1;//N
54  sell.SellItemMetaLevelMin = 0;//N
55  sell.SellItemMetaLevelMax = 4;//N
56  sell.MinSellAmount = 1;//N
57 }
58 
59 bool MarketBotConf::ProcessBotConf(const TiXmlElement* ele)
60 {
61  // entering element, extend allowed syntax
65 
66  // parse the element
67  const bool result = ParseElementChildren( ele );
68 
69  // leaving element, reduce allowed syntax
70  RemoveParser( "main" );
71  RemoveParser( "buy" );
72  RemoveParser( "sell" );
73 
74  // return status of parsing
75  return result;
76 }
77 
78 bool MarketBotConf::ProcessMain(const TiXmlElement* ele)
79 {
80  AddValueParser( "EnableRegional", main.EnableRegional );
81  AddValueParser( "EnableConst", main.EnableConst );
82  AddValueParser( "DataRefreshTime", main.DataRefreshTime );
83  AddValueParser( "OrderLifetime", main.OrderLifetime );
84  AddValueParser( "OrdersPerRefresh", main.OrdersPerRefresh );
85  AddValueParser( "MaxISKPerOrder", main.MaxISKPerOrder );
86 
87  const bool result = ParseElementChildren( ele );
88 
89  RemoveParser( "EnableRegional" );
90  RemoveParser( "EnableConst" );
91  RemoveParser( "DataRefreshTime" );
92  RemoveParser( "OrderLifetime" );
93  RemoveParser( "OrdersPerRefresh" );
94  RemoveParser( "MaxISKPerOrder" );
95 
96  return result;
97 }
98 
99 bool MarketBotConf::ProcessBuy(const TiXmlElement* ele)
100 {
101  AddValueParser( "MinBuyAmount", buy.MinBuyAmount );
102  AddValueParser( "RegionJumps", buy.RegionJumps );
103  AddValueParser( "ConstJumps", buy.ConstJumps );
104  AddValueParser( "SystemJumps", buy.SystemJumps );
105  AddValueParser( "OrdersPerRegion", buy.OrdersPerRegion );
106  AddValueParser( "OrdersPerConst", buy.OrdersPerConst );
107  AddValueParser( "OrdersPerSystem", buy.OrdersPerSystem );
108  AddValueParser( "DupeOrdersPerRegion", buy.DupeOrdersPerRegion );
109  AddValueParser( "DupeOrdersPerConst", buy.DupeOrdersPerConst );
110  AddValueParser( "DupeOrdersPerSystem", buy.DupeOrdersPerSystem );
111 
112  const bool result = ParseElementChildren( ele );
113 
114  RemoveParser( "MinBuyAmount" );
115  RemoveParser( "RegionJumps" );
116  RemoveParser( "ConstJumps" );
117  RemoveParser( "SystemJumps" );
118  RemoveParser( "OrdersPerRegion" );
119  RemoveParser( "OrdersPerConst" );
120  RemoveParser( "OrdersPerSystem" );
121  RemoveParser( "DupeOrdersPerRegion" );
122  RemoveParser( "DupeOrdersPerConst" );
123  RemoveParser( "DupeOrdersPerSystem" );
124 
125  return result;
126 }
127 
128 bool MarketBotConf::ProcessSell(const TiXmlElement* ele)
129 {
130  AddValueParser( "SellNamedItem", sell.SellNamedItem );
131  AddValueParser( "MinSellAmount", sell.MinSellAmount );
132  AddValueParser( "OrdersPerRegion", sell.OrdersPerRegion );
133  AddValueParser( "OrdersPerConst", sell.OrdersPerConst );
134  AddValueParser( "OrdersPerSystem", sell.OrdersPerSystem );
135  AddValueParser( "DupeOrdersPerRegion", sell.DupeOrdersPerRegion );
136  AddValueParser( "DupeOrdersPerConst", sell.DupeOrdersPerConst );
137  AddValueParser( "DupeOrdersPerSystem", sell.DupeOrdersPerSystem );
138  AddValueParser( "SellItemMetaLevelMin", sell.SellItemMetaLevelMin );
139  AddValueParser( "SellItemMetaLevelMax", sell.SellItemMetaLevelMax );
140 
141  const bool result = ParseElementChildren( ele );
142 
143  RemoveParser( "SellNamedItem" );
144  RemoveParser( "MinSellAmount" );
145  RemoveParser( "OrdersPerRegion" );
146  RemoveParser( "OrdersPerConst" );
147  RemoveParser( "OrdersPerSystem" );
148  RemoveParser( "DupeOrdersPerRegion" );
149  RemoveParser( "DupeOrdersPerConst" );
150  RemoveParser( "DupeOrdersPerSystem" );
151  RemoveParser( "SellItemMetaLevelMax" );
152  RemoveParser( "SellItemMetaLevelMin" );
153 
154  return result;
155 }
156 
bool ProcessSell(const TiXmlElement *ele)
bool ProcessBotConf(const TiXmlElement *ele)
bool ProcessMain(const TiXmlElement *ele)
bool ProcessBuy(const TiXmlElement *ele)
struct MarketBotConf::@126 buy
struct MarketBotConf::@127 sell
void RemoveParser(const char *name)
Removes a parser.
Definition: XMLParser.cpp:106
bool ParseElementChildren(const TiXmlElement *element, size_t max=0) const
Parses element's children using registered parsers.
Definition: XMLParser.cpp:72
void AddValueParser(const char *name, T &value)
Adds a value parser.
Definition: XMLParserEx.h:67
struct MarketBotConf::@125 main
void AddMemberParser(const char *name, T &instance, bool(T::*method)(const TiXmlElement *))
Adds a member parser.
Definition: XMLParserEx.h:55