EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EVEServerConfig.cpp
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Zhur, Bloody.Rabbit
24  Updates: Allan
25  Version: 10.2
26 */
27 
28 
29 #include "EVEServerConfig.h"
30 
31 /*************************************************************************/
32 /* EVEServerConfig */
33 /*************************************************************************/
35 {
36  // register needed parsers
38 
39  // Set sane defaults
40 
41  // items with a "N" behind them are NOT implemented
42  // items with a "P" behind them are PARTIALLY implemented
43 
44  // items with /*x*/ behind them denote time identifier, with x = (s=seconds, m=minutes, etc)
45 
46  // server
47  server.TraderJoe = false;//N
48  server.maxPlayers = 500;//N
49  server.BulkDataOD = false;
50  server.NoobShipCheck = true;
51  server.ServerSleepTime = 10 /*ms*/;
52  server.idleSleepTime = 1000;
53  server.DisableIGB = true;
54  server.MaxThreadReport = 20;
55  server.ModuleAutoOff = false;
56  server.ModuleDamageChance = 0.35;
57  server.UnloadOnLinkAll = false;
58  server.processTic = 1.0;
59  server.AllowNonPublished = false;
60  server.FleetShareDelayed = false;
61  server.BountyPayoutDelayed = false; // this system isnt working yet. disable by default
62  server.BountyPayoutTimer = 20/*m*/;
63  server.LoadOldMissions = false;
64  server.AsteroidsOnDScan = false;
65  server.CargoMassAdditive = false;
66 
67  // world
68  world.chatLogs = false;//N
69  world.globalChat = true;//N
70  world.gridUnload = true;
71  world.gridUnloadTime = 300 /*s*/; // 5 mins
72  world.loginInfo = false;//N
73  world.loginMsg = false;//N
74  world.saveOnMove = false;
75  world.mailDelay = 5;//N
76  world.StationDockDelay = 4 /*s*/;
77  world.apWarptoDistance = 15000;
78  world.shipBoardDistance = 300;
79  world.highSecCyno = false;
80 
81  // rates
82  rates.npcBountyMultiply = 1.0;
83  rates.secRate = 1.0;
84  rates.damageRate = 1.0;
85  rates.missileDamage = 1.0;
86  rates.missileTime = 1.0;
87  rates.missileRoF = 1.0;
88  rates.turretDamage = 1.0;
89  rates.turretRoF = 1.0;
90  rates.corpCost = 1599800;
91  rates.allyCost = 1000000000;
92  rates.medalAwardCost = 5000000;
93  rates.medalCreateCost = 5000000;
94  rates.WorldDecay = 120 /*m*/;
95  rates.NPCDecay = 90 /*m*/;
96  rates.DropItem = 1;//N
97  rates.DropMoney = 1.0;//N
98  rates.DropSalvage = 1;//P
99  rates.RepairCost = 1.0;
100  rates.ShipRepairModifier = 0.0000075;
101  rates.ModuleRepairModifier = 0.00125;
102  rates.WebUpdate = 15 /*m*/;
103  rates.TaxAmount = 5000;
104  rates.TaxedAmount = 75000;
105  rates.PlayerCritChance = 0.02;
106  rates.NpcCritChance = 0.15;
107  rates.SentryCritChance = 0.02;
108  rates.DroneCritChance = 0.03;
109  rates.ConcordCritChance = 0.05;
110 
111  //market
112  market.FindBuyOrder = 10;
113  market.FindSellOrder = 10;
114  market.StationOrderLimit = 10;
115  market.SystemOrderLimit = 10;
116  market.RegionOrderLimit = 10;
117  market.OldPriceLimit = 10;
118  market.NewPriceLimit = 10;
119  market.HistoryUpdateTime = 6/*h*/;
120  market.UseOrderRange = true;//N
121  market.DeleteOldTransactions = false;
122  market.salesTax = 1.0f;
123 
124  // ram
125  ram.AutoEvent = false;
126  ram.ResME = 1.0;
127  ram.ResPE = 1.0;
128  ram.MatMod = 1.0;
129  ram.WasteMod = 1.0;
130  ram.ReTime = 1.0;
131  ram.ProdTime = 1.0;
132  ram.CopyTime = 1.0;
133  ram.InventTime = 1.0;
134 
135  // account
136  account.autoAccountRole = Acct::Role::STD;
137  account.loginMessage = "";
138 
139  // character
140  character.startBalance = 6666000000.0f;
141  character.startAurBalance = 60000.0f;
142  character.startStation = 0;
143  character.startSecRating = 0.0;
144  character.startCorporation = 0;
145  character.terminationDelay = 180 /*s*/;
146  character.statMultiplier = 1;
147  character.allow3edChar = false;
148 
149  // npc
150  npc.IdleWander = false;
151  npc.WarpOut = 600 /*s*/;
152  npc.WarpFollowChance = 0.15;
153  npc.ThreatRadius = 1.0;//N
154  npc.RoamingSpawns = false;
155  npc.StaticSpawns = false;
156  npc.RoamingTimer = 900 /*s*/;
157  npc.StaticTimer = 600 /*s*/;
158  npc.RespawnTimer = 480 /*s*/;
159  npc.RatFaction = 0;
160  npc.TargetPodSec = 0;
161  npc.TargetPod = false;
162  npc.UseDamageMultiplier = true;
163  npc.DefenderMissileChance = 0.0;
164  npc.LootDropChance = 0.75;
165 
166  // cosmic
167  cosmic.PIEnabled = false;
168  cosmic.AnomalyEnabled = false;
169  cosmic.DungeonEnabled = false;
170  cosmic.BeltEnabled = false;
171  cosmic.BeltRespawn = 8 /*h*/;
172  cosmic.BeltGrowth = 6 /*h*/;
173  cosmic.roidRadiusMultiplier = 1.0;
174  cosmic.WormHoleEnabled = false;
175  cosmic.CiviliansEnabled = false;
176  cosmic.BumpEnabled = false;
177 
178  // exploring
179  exploring.Gravametric = 5;
180  exploring.Magnetometric = 3;
181  exploring.Ladar = 6;
182  exploring.Radar = 6;
183  exploring.Unrated = 8;
184  exploring.Complex = 4;
185 
186  // standings
187  // - mission
188  standings.MissionBonus = 1.0;
189  standings.MissionFailure = -0.5;
190  standings.MissionDeclined = -0.2;
191  standings.MissionCompleted = 1.0;
192  standings.MissionOfferExpired = -0.1;
193  standings.MissionFailedRollback = -0.5;
194  standings.ImportantMissionBonus = 3.0;
195  standings.BaseMissionMultiplier = 1.0;
196  standings.FleetMissionMultiplier = 0.5;
197  standings.Agent2CharMissionMultiplier = 1.0;
198  standings.ACorp2CharMissionMultiplier = 0.25;
199  standings.Agent2PCorpMissionMultiplier = 0.1;
200  standings.ACorp2PCorpMissionMultiplier = 0.025;
201  standings.AFaction2CharMissionMultiplier = 0.125;
202  standings.AFaction2PCorpMissionMultiplier = 0.0125;
203  // - PVP
204  // - ratting/exploring
205 
206  // chat
207  chat.EnableFleetChat = true;
208  chat.EnableWingChat = false;
209  chat.EnableSquadChat = false;
210  chat.EnableVoiceChat = false;
211  chat.EnforceRookieInHelp = false;
212 
213  // crime
214  crime.Enabled = false; //N
215  crime.AggFlagTime = 900 /*s*/;//N
216  crime.CrimFlagTime = 900 /*s*/;//N
217  crime.CWSessionTime = 60 /*s*/;//N
218  crime.KillRightTime = 900 /*s*/;//N
219  crime.WeaponFlagTime = 60 /*s*/;//N
220 
221  // testing
222  testing.EnableDrones = false;
223  testing.ShipHeat = false;
224 
225  // debug
226  debug.BeanCount = false;
227  debug.StackTrace = false;
228  debug.BubbleTrack = false;
229  debug.IsTestServer = true;
230  debug.UseProfiling = false;
231  debug.PositionHack = false;
232  debug.UseShipTracking = false;
233  debug.DeleteTrackingCans = true;
234  debug.SpawnTest = false;
235  debug.AnomalyFaction = 0;
236  debug.ProfileTraceTime = 150/*ms*/;
237 
238  // database
239  database.host = "localhost";
240  database.port = 3306;
241  database.username = "eve";
242  database.password = "eve";
243  database.db = "evemu";
244  database.compress = false;
245  database.ssl = false;
246  database.useSocket = false;
247  database.autoReconnect = false;
248  database.dbTimeout = 2/*s*/;
249  database.pingTime = 10/*m*/;
250 
251  // files
252  files.logDir = "../log/";
253  files.logSettings = "../etc/log.ini";
254  files.cacheDir = "../server_cache/";
255  files.imageDir = "../image_cache/";
256 
257  // net
258  net.port = 26000;
259  net.imageServer = "localhost";
260  net.imageServerPort = 26001;
261 
262  // threads -not implemented
263  threads.ConsoleThreads = 1;//P
264  threads.DatabaseThreads = 2;//N
265  threads.ImageServerThreads = 1;//N
266  threads.NetworkThreads = 2;//N
267  threads.WorldThreads = 2;//N
268 
269 }
270 
271 bool EVEServerConfig::ProcessEveServer( const TiXmlElement* ele )
272 {
273  // entering element, extend allowed syntax
293 
294  // parse the element
295  const bool result = ParseElementChildren( ele );
296 
297  // leaving element, reduce allowed syntax
298  RemoveParser( "server" );
299  RemoveParser( "world" );
300  RemoveParser( "rates" );
301  RemoveParser( "market" );
302  RemoveParser( "ram" );
303  RemoveParser( "account" );
304  RemoveParser( "character" );
305  RemoveParser( "npc" );
306  RemoveParser( "cosmic" );
307  RemoveParser( "exploring" );
308  RemoveParser( "crime" );
309  RemoveParser( "standings" );
310  RemoveParser( "chat" );
311  RemoveParser( "debug" );
312  RemoveParser( "database" );
313  RemoveParser( "files" );
314  RemoveParser( "net" );
315  RemoveParser( "testing" );
316  RemoveParser( "threads" );
317 
318  // return status of parsing
319  return result;
320 }
321 
322 bool EVEServerConfig::ProcessServer( const TiXmlElement* ele )
323 {
324  AddValueParser( "DisableIGB", server.DisableIGB );
325  AddValueParser( "TraderJoe", server.TraderJoe );
326  AddValueParser( "maxPlayers", server.maxPlayers );
327  AddValueParser( "NoobShipCheck", server.NoobShipCheck );
328  AddValueParser( "BulkDataOD", server.BulkDataOD );
329  AddValueParser( "ServerSleepTime", server.ServerSleepTime );
330  AddValueParser( "idleSleepTime", server.idleSleepTime );
331  AddValueParser( "MaxThreadReport", server.MaxThreadReport );
332  AddValueParser( "ModuleAutoOff", server.ModuleAutoOff );
333  AddValueParser( "ModuleDamageChance", server.ModuleDamageChance );
334  AddValueParser( "UnloadOnLinkAll", server.UnloadOnLinkAll );
335  AddValueParser( "processTic", server.processTic );
336  AddValueParser( "AllowNonPublished", server.AllowNonPublished );
337  AddValueParser( "FleetShareDelayed", server.FleetShareDelayed );
338  AddValueParser( "BountyPayoutDelayed", server.BountyPayoutDelayed );
339  AddValueParser( "BountyPayoutTimer", server.BountyPayoutTimer );
340  AddValueParser( "LoadOldMissions", server.LoadOldMissions );
341  AddValueParser( "AsteroidsOnDScan", server.AsteroidsOnDScan );
342  AddValueParser( "CargoMassAdditive", server.CargoMassAdditive );
343 
344  const bool result = ParseElementChildren( ele );
345 
346  RemoveParser( "DisableIGB" );
347  RemoveParser( "TraderJoe" );
348  RemoveParser( "maxPlayers" );
349  RemoveParser( "NoobShipCheck" );
350  RemoveParser( "BulkDataOD" );
351  RemoveParser( "ServerSleepTime" );
352  RemoveParser( "idleSleepTime" );
353  RemoveParser( "MaxThreadReport" );
354  RemoveParser( "ModuleAutoOff" );
355  RemoveParser( "ModuleDamageChance" );
356  RemoveParser( "processTic" );
357  RemoveParser( "AllowNonPublished" );
358  RemoveParser( "FleetShareDelayed" );
359  RemoveParser( "BountyPayoutDelayed" );
360  RemoveParser( "BountyPayoutTimer" );
361  RemoveParser( "LoadOldMissions" );
362  RemoveParser( "AsteroidsOnDScan" );
363  RemoveParser( "CargoMassAdditive" );
364 
365  return result;
366 }
367 
368 bool EVEServerConfig::ProcessWorld( const TiXmlElement* ele )
369 {
370  AddValueParser( "chatLogs", world.chatLogs );
371  AddValueParser( "globalChat", world.globalChat );
372  AddValueParser( "gridUnload", world.gridUnload );
373  AddValueParser( "gridUnloadTime", world.gridUnloadTime );
374  AddValueParser( "loginInfo", world.loginInfo );
375  AddValueParser( "loginMsg", world.loginMsg );
376  AddValueParser( "saveOnMove", world.saveOnMove );
377  AddValueParser( "saveOnUpdate", world.saveOnUpdate );
378  AddValueParser( "highSecCyno", world.highSecCyno );
379  AddValueParser( "mailDelay", world.mailDelay );
380  AddValueParser( "StationDockDelay", world.StationDockDelay );
381  AddValueParser( "apWarptoDistance", world.apWarptoDistance );
382  AddValueParser( "shipBoardDistance", world.shipBoardDistance );
383 
384  const bool result = ParseElementChildren( ele );
385 
386  RemoveParser( "chatLogs" );
387  RemoveParser( "globalChat" );
388  RemoveParser( "gridUnload" );
389  RemoveParser( "gridUnloadTime" );
390  RemoveParser( "loginInfo" );
391  RemoveParser( "loginMsg" );
392  RemoveParser( "saveOnMove" );
393  RemoveParser( "saveOnUpdate" );
394  RemoveParser( "highSecCyno" );
395  RemoveParser( "mailDelay" );
396  RemoveParser( "StationDockDelay" );
397  RemoveParser( "apWarptoDistance" );
398  RemoveParser( "shipBoardDistance" );
399 
400  return result;
401 }
402 
403 bool EVEServerConfig::ProcessRates( const TiXmlElement* ele )
404 {
405  AddValueParser( "secRate", rates.secRate );
406  AddValueParser( "npcBountyMultiply", rates.npcBountyMultiply );
407  AddValueParser( "damageRate", rates.damageRate );
408  AddValueParser( "missileRoF", rates.missileRoF );
409  AddValueParser( "missileDamage", rates.missileDamage );
410  AddValueParser( "missileTime", rates.missileTime );
411  AddValueParser( "turretDamage", rates.turretDamage );
412  AddValueParser( "turretRoF", rates.turretRoF );
413  AddValueParser( "corpCost", rates.corpCost );
414  AddValueParser( "allyCost", rates.allyCost );
415  AddValueParser( "medalAwardCost", rates.medalAwardCost );
416  AddValueParser( "medalCreateCost", rates.medalCreateCost );
417  AddValueParser( "WorldDecay", rates.WorldDecay );
418  AddValueParser( "NPCDecay", rates.NPCDecay );
419  AddValueParser( "DropItem", rates.DropItem );
420  AddValueParser( "DropMoney", rates.DropMoney );
421  AddValueParser( "DropSalvage", rates.DropSalvage );
422  AddValueParser( "RepairCost", rates.RepairCost );
423  AddValueParser( "ShipRepairModifier", rates.ShipRepairModifier );
424  AddValueParser( "ModuleRepairModifier", rates.ModuleRepairModifier );
425  AddValueParser( "WebUpdate", rates.WebUpdate );
426  AddValueParser( "TaxAmount", rates.TaxAmount );
427  AddValueParser( "TaxedAmount", rates.TaxedAmount );
428  AddValueParser( "PlayerCritChance", rates.PlayerCritChance );
429  AddValueParser( "NpcCritChance", rates.NpcCritChance );
430  AddValueParser( "SentryCritChance", rates.SentryCritChance );
431  AddValueParser( "DroneCritChance", rates.DroneCritChance );
432  AddValueParser( "ConcordCritChance", rates.ConcordCritChance );
433 
434  const bool result = ParseElementChildren( ele );
435 
436  RemoveParser( "secRate" );
437  RemoveParser( "npcBountyMultiply" );
438  RemoveParser( "damageRate" );
439  RemoveParser( "missileDamage" );
440  RemoveParser( "missileRoF" );
441  RemoveParser( "missileTime" );
442  RemoveParser( "turretDamage" );
443  RemoveParser( "turretRoF" );
444  RemoveParser( "corpCost" );
445  RemoveParser( "allyCost" );
446  RemoveParser( "medalAwardCost" );
447  RemoveParser( "medalCreateCost" );
448  RemoveParser( "WorldDecay" );
449  RemoveParser( "NPCDecay" );
450  RemoveParser( "DropItem" );
451  RemoveParser( "DropMoney" );
452  RemoveParser( "DropSalvage" );
453  RemoveParser( "RepairCost" );
454  RemoveParser( "ShipRepairModifier" );
455  RemoveParser( "ModuleRepairModifier" );
456  RemoveParser( "WebUpdate" );
457  RemoveParser( "TaxAmount" );
458  RemoveParser( "TaxedAmount" );
459  RemoveParser( "PlayerCritChance" );
460  RemoveParser( "NpcCritChance" );
461  RemoveParser( "SentryCritChance" );
462  RemoveParser( "DroneCritChance" );
463  RemoveParser( "ConcordCritChance" );
464 
465  return result;
466 }
467 
468 bool EVEServerConfig::ProcessMarket(const TiXmlElement* ele)
469 {
470  AddValueParser( "StationOrderLimit", market.StationOrderLimit );
471  AddValueParser( "SystemOrderLimit", market.SystemOrderLimit);
472  AddValueParser( "RegionOrderLimit", market.RegionOrderLimit );
473  AddValueParser( "FindBuyOrder", market.FindBuyOrder );
474  AddValueParser( "FindSellOrder", market.FindSellOrder);
475  AddValueParser( "OldPriceLimit", market.OldPriceLimit );
476  AddValueParser( "NewPriceLimit", market.NewPriceLimit);
477  AddValueParser( "UseOrderRange", market.UseOrderRange);
478  AddValueParser( "DeleteOldTransactions", market.DeleteOldTransactions);
479  AddValueParser( "HistoryUpdateTime", market.HistoryUpdateTime);
480  AddValueParser( "SalesTax", market.salesTax);
481 
482  const bool result = ParseElementChildren( ele );
483 
484  RemoveParser( "StationOrderLimit" );
485  RemoveParser( "SystemOrderLimit" );
486  RemoveParser( "RegionOrderLimit" );
487  RemoveParser( "FindBuyOrder" );
488  RemoveParser( "FindSellOrder" );
489  RemoveParser( "OldPriceLimit" );
490  RemoveParser( "NewPriceLimit" );
491  RemoveParser( "UseOrderRange" );
492  RemoveParser( "DeleteOldTransactions" );
493  RemoveParser( "HistoryUpdateTime" );
494  RemoveParser( "SalesTax" );
495 
496  return result;
497 }
498 
499 bool EVEServerConfig::ProcessBPTimes(const TiXmlElement* ele)
500 {
501  AddValueParser( "AutoEvent", ram.AutoEvent);
502  AddValueParser( "ProdTime", ram.ProdTime);
503  AddValueParser( "CopyTime", ram.CopyTime);
504  AddValueParser( "WasteMod", ram.WasteMod);
505  AddValueParser( "MatMod", ram.MatMod);
506  AddValueParser( "ResME", ram.ResME);
507  AddValueParser( "ResPE", ram.ResPE);
508  AddValueParser( "ReTime", ram.ReTime);
509  AddValueParser( "InventTime", ram.InventTime);
510 
511  const bool result = ParseElementChildren( ele );
512 
513  RemoveParser( "AutoEvent" );
514  RemoveParser( "ProdTime" );
515  RemoveParser( "CopyTime" );
516  RemoveParser( "WasteMod" );
517  RemoveParser( "MatMod" );
518  RemoveParser( "ResME" );
519  RemoveParser( "ResPE" );
520  RemoveParser( "ReTime" );
521  RemoveParser( "InventTime" );
522 
523  return result;
524 }
525 
526 bool EVEServerConfig::ProcessAccount( const TiXmlElement* ele )
527 {
528  AddValueParser( "autoAccountRole", account.autoAccountRole );
529  AddValueParser( "loginMessage", account.loginMessage );
530 
531  const bool result = ParseElementChildren( ele );
532 
533  RemoveParser( "autoAccountRole" );
534  RemoveParser( "loginMessage" );
535 
536  return result;
537 }
538 
539 bool EVEServerConfig::ProcessCharacter( const TiXmlElement* ele )
540 {
541  AddValueParser( "startBalance", character.startBalance );
542  AddValueParser( "startAurBalance", character.startAurBalance ); // added config entry and implemented -allan 01/10/14
543  AddValueParser( "startStation", character.startStation );
544  AddValueParser( "startSecRating", character.startSecRating );
545  AddValueParser( "startCorporation", character.startCorporation );
546  AddValueParser( "terminationDelay", character.terminationDelay );
547  AddValueParser( "statMultiplier", character.statMultiplier );
548  AddValueParser( "allow3edChar", character.allow3edChar );
549 
550  const bool result = ParseElementChildren( ele );
551 
552  RemoveParser( "startBalance" );
553  RemoveParser( "startAurBalance" );
554  RemoveParser( "startStation" );
555  RemoveParser( "startSecRating" );
556  RemoveParser( "startCorporation" );
557  RemoveParser( "terminationDelay" );
558  RemoveParser( "statMultiplier" );
559  RemoveParser( "allow3edChar" );
560 
561  return result;
562 }
563 
564 bool EVEServerConfig::ProcessNPC( const TiXmlElement* ele )
565 {
566  AddValueParser( "IdleWander", npc.IdleWander );
567  AddValueParser( "WarpOut", npc.WarpOut );
568  AddValueParser( "WarpFollowChance", npc.WarpFollowChance );
569  AddValueParser( "ThreatRadius", npc.ThreatRadius );
570  AddValueParser( "RoamingSpawns", npc.RoamingSpawns );
571  AddValueParser( "StaticSpawns", npc.StaticSpawns );
572  AddValueParser( "RoamingTimer", npc.RoamingTimer );
573  AddValueParser( "StaticTimer", npc.StaticTimer );
574  AddValueParser( "RespawnTimer", npc.RespawnTimer );
575  AddValueParser( "RatFaction", npc.RatFaction );
576  AddValueParser( "TargetPod", npc.TargetPod );
577  AddValueParser( "TargetPodSec", npc.TargetPodSec );
578  AddValueParser( "UseDamageMultiplier", npc.UseDamageMultiplier );
579  AddValueParser( "LootDropChance", npc.LootDropChance );
580  AddValueParser( "DefenderMissileChance", npc.DefenderMissileChance );
581 
582  const bool result = ParseElementChildren( ele );
583 
584  RemoveParser( "IdleWander" );
585  RemoveParser( "WarpOut" );
586  RemoveParser( "WarpFollowChance" );
587  RemoveParser( "ThreatRadius" );
588  RemoveParser( "RoamingSpawns" );
589  RemoveParser( "StaticSpawns" );
590  RemoveParser( "RoamingTimer" );
591  RemoveParser( "StaticTimer" );
592  RemoveParser( "RespawnTimer" );
593  RemoveParser( "RatFaction" );
594  RemoveParser( "TargetPod" );
595  RemoveParser( "TargetPodSec" );
596  RemoveParser( "UseDamageMultiplier" );
597  RemoveParser( "LootDropChance" );
598  RemoveParser( "DefenderMissileChance" );
599 
600  return result;
601 }
602 
603 bool EVEServerConfig::ProcessDatabase( const TiXmlElement* ele )
604 {
605  AddValueParser( "host", database.host );
606  AddValueParser( "port", database.port );
607  AddValueParser( "username", database.username );
608  AddValueParser( "password", database.password );
609  AddValueParser( "db", database.db );
610  AddValueParser( "compress", database.compress );
611  AddValueParser( "ssl", database.ssl );
612  AddValueParser( "useSocket", database.useSocket );
613  AddValueParser( "autoReconnect", database.autoReconnect );
614  AddValueParser( "dbTimeout", database.dbTimeout );
615  AddValueParser( "pingTime", database.pingTime );
616 
617  const bool result = ParseElementChildren( ele );
618 
619  RemoveParser( "host" );
620  RemoveParser( "port" );
621  RemoveParser( "username" );
622  RemoveParser( "password" );
623  RemoveParser( "db" );
624  RemoveParser( "compress" );
625  RemoveParser( "ssl" );
626  RemoveParser( "useSocket" );
627  RemoveParser( "autoReconnect" );
628  RemoveParser( "dbTimeout" );
629  RemoveParser( "pingTime" );
630 
631  return result;
632 }
633 
634 bool EVEServerConfig::ProcessFiles( const TiXmlElement* ele )
635 {
636  AddValueParser( "logDir", files.logDir );
637  AddValueParser( "logSettings", files.logSettings );
638  AddValueParser( "cacheDir", files.cacheDir );
639  AddValueParser( "imageDir", files.imageDir );
640 
641  const bool result = ParseElementChildren( ele );
642 
643  RemoveParser( "logDir" );
644  RemoveParser( "logSettings" );
645  RemoveParser( "cacheDir" );
646  RemoveParser( "imageDir" );
647 
648  return result;
649 }
650 
651 bool EVEServerConfig::ProcessNet( const TiXmlElement* ele )
652 {
653  AddValueParser( "port", net.port );
654  AddValueParser( "imageServerPort", net.imageServerPort);
655  AddValueParser( "imageServer", net.imageServer);
656 
657  const bool result = ParseElementChildren( ele );
658 
659  RemoveParser( "port" );
660  RemoveParser( "imageServerPort" );
661  RemoveParser( "imageServer" );
662 
663  return result;
664 }
665 
666 bool EVEServerConfig::ProcessThreads( const TiXmlElement* ele )
667 {
668  AddValueParser( "ConsoleThreads", threads.ConsoleThreads);
669  AddValueParser( "DatabaseThreads", threads.DatabaseThreads);
670  AddValueParser( "ImageServerThreads", threads.ImageServerThreads);
671  AddValueParser( "NetworkThreads", threads.NetworkThreads );
672  AddValueParser( "WorldThreads", threads.WorldThreads);
673 
674  const bool result = ParseElementChildren( ele );
675 
676  RemoveParser( "ConsoleThreads" );
677  RemoveParser( "DatabaseThreads" );
678  RemoveParser( "ImageServerThreads" );
679  RemoveParser( "NetworkThreads" );
680  RemoveParser( "WorldThreads" );
681 
682  return result;
683 }
684 
685 bool EVEServerConfig::ProcessCosmic( const TiXmlElement* ele )
686 {
687  AddValueParser( "PIEnabled", cosmic.PIEnabled );
688  AddValueParser( "AnomalyEnabled", cosmic.AnomalyEnabled );
689  AddValueParser( "DungeonEnabled", cosmic.DungeonEnabled );
690  AddValueParser( "BeltEnabled", cosmic.BeltEnabled );
691  AddValueParser( "BeltRespawn", cosmic.BeltRespawn );
692  AddValueParser( "BeltGrowth", cosmic.BeltGrowth );
693  AddValueParser( "roidRadiusMultiplier", cosmic.roidRadiusMultiplier );
694  AddValueParser( "WormHoleEnabled", cosmic.WormHoleEnabled );
695  AddValueParser( "CiviliansEnabled", cosmic.CiviliansEnabled);
696  AddValueParser( "BumpEnabled", cosmic.BumpEnabled );
697 
698  const bool result = ParseElementChildren( ele );
699 
700  RemoveParser( "PIEnabled" );
701  RemoveParser( "AnomalyEnabled" );
702  RemoveParser( "DungeonEnabled" );
703  RemoveParser( "BeltEnabled" );
704  RemoveParser( "BeltRespawn" );
705  RemoveParser( "BeltGrowth" );
706  RemoveParser( "roidRadiusMultiplier" );
707  RemoveParser( "WormHoleEnabled" );
708  RemoveParser( "CiviliansEnabled" );
709  RemoveParser( "BumpEnabled" );
710 
711  return result;
712 }
713 
714 bool EVEServerConfig::ProcessExploring ( const TiXmlElement* ele ) {
715  AddValueParser( "Radar", exploring.Radar );
716  AddValueParser( "Ladar", exploring.Ladar );
717  AddValueParser( "Unrated", exploring.Unrated );
718  AddValueParser( "Complex", exploring.Complex );
719  AddValueParser( "Gravametric", exploring.Gravametric );
720  AddValueParser( "Magnetometric", exploring.Magnetometric );
721 
722  const bool result = ParseElementChildren( ele );
723 
724  RemoveParser( "Radar" );
725  RemoveParser( "Ladar" );
726  RemoveParser( "Unrated" );
727  RemoveParser( "Complex" );
728  RemoveParser( "Gravametric" );
729  RemoveParser( "Magnetometric" );
730 
731  return result;
732 }
733 
734 bool EVEServerConfig::ProcessChat(const TiXmlElement* ele)
735 {
736  AddValueParser( "EnableFleetChat", chat.EnableFleetChat );
737  AddValueParser( "EnableWingChat", chat.EnableWingChat );
738  AddValueParser( "EnableSquadChat", chat.EnableSquadChat );
739  AddValueParser( "EnableVoiceChat", chat.EnableVoiceChat );
740  AddValueParser( "EnforceRookieInHelp", chat.EnforceRookieInHelp );
741 
742  const bool result = ParseElementChildren( ele );
743 
744  RemoveParser( "EnableFleetChat" );
745  RemoveParser( "EnableWingChat" );
746  RemoveParser( "EnableSquadChat" );
747  RemoveParser( "EnableVoiceChat" );
748  RemoveParser( "EnforceRookieInHelp" );
749 
750  return result;
751 }
752 
753 bool EVEServerConfig::ProcessStandings(const TiXmlElement* ele)
754 {
755  AddValueParser( "MissionBonus", standings.MissionBonus );
756  AddValueParser( "MissionFailure", standings.MissionFailure );
757  AddValueParser( "MissionDeclined", standings.MissionDeclined );
758  AddValueParser( "MissionCompleted", standings.MissionCompleted );
759  AddValueParser( "MissionOfferExpired", standings.MissionOfferExpired );
760  AddValueParser( "MissionFailedRollback", standings.MissionFailedRollback );
761  AddValueParser( "ImportantMissionBonus", standings.ImportantMissionBonus );
762  AddValueParser( "BaseMissionMultiplier", standings.BaseMissionMultiplier );
763  AddValueParser( "FleetMissionMultiplier", standings.FleetMissionMultiplier );
764  AddValueParser( "Agent2CharMissionMultiplier", standings.Agent2CharMissionMultiplier );
765  AddValueParser( "ACorp2CharMissionMultiplier", standings.ACorp2CharMissionMultiplier );
766  AddValueParser( "Agent2PCorpMissionMultiplier", standings.Agent2PCorpMissionMultiplier );
767  AddValueParser( "ACorp2PCorpMissionMultiplier", standings.ACorp2PCorpMissionMultiplier );
768  AddValueParser( "AFaction2CharMissionMultiplier", standings.AFaction2CharMissionMultiplier );
769  AddValueParser( "AFaction2PCorpMissionMultiplier", standings.AFaction2PCorpMissionMultiplier );
770 
771  const bool result = ParseElementChildren( ele );
772 
773  RemoveParser( "MissionBonus" );
774  RemoveParser( "MissionFailure" );
775  RemoveParser( "MissionDeclined" );
776  RemoveParser( "MissionCompleted" );
777  RemoveParser( "MissionOfferExpired" );
778  RemoveParser( "MissionFailedRollback" );
779  RemoveParser( "ImportantMissionBonus" );
780  RemoveParser( "BaseMissionMultiplier" );
781  RemoveParser( "FleetMissionMultiplier" );
782  RemoveParser( "Agent2CharMissionMultiplier" );
783  RemoveParser( "ACorp2CharMissionMultiplier" );
784  RemoveParser( "Agent2PCorpMissionMultiplier" );
785  RemoveParser( "ACorp2PCorpMissionMultiplier" );
786  RemoveParser( "AFaction2CharMissionMultiplier" );
787  RemoveParser( "AFaction2PCorpMissionMultiplier" );
788 
789  return result;
790 }
791 
792 bool EVEServerConfig::ProcessCrime( const TiXmlElement* ele )
793 {
794  AddValueParser( "Enabled", crime.Enabled );
795  AddValueParser( "AggFlagTime", crime.AggFlagTime );
796  AddValueParser( "CrimFlagTime", crime.CrimFlagTime );
797  AddValueParser( "CWSessionTime", crime.CWSessionTime );
798  AddValueParser( "KillRightTime", crime.KillRightTime );
799  AddValueParser( "WeaponFlagTime", crime.WeaponFlagTime );
800 
801  const bool result = ParseElementChildren( ele );
802 
803  RemoveParser( "Enabled" );
804  RemoveParser( "AggFlagTime" );
805  RemoveParser( "CrimFlagTime" );
806  RemoveParser( "CWSessionTime" );
807  RemoveParser( "KillRightTime" );
808  RemoveParser( "WeaponFlagTime" );
809 
810  return result;
811 }
812 
813 bool EVEServerConfig::ProcessDebug(const TiXmlElement* ele)
814 {
815  AddValueParser( "UseBeanCount", debug.BeanCount );
816  AddValueParser( "UseStackTrace", debug.StackTrace );
817  AddValueParser( "IsTestServer", debug.IsTestServer );
818  AddValueParser( "UseProfiling", debug.UseProfiling );
819  AddValueParser( "UseShipTracking", debug.UseShipTracking );
820  AddValueParser( "PositionHack", debug.PositionHack );
821  AddValueParser( "AnomalyFaction", debug.AnomalyFaction );
822  AddValueParser( "BubbleTrack", debug.BubbleTrack );
823  AddValueParser( "SpawnTest", debug.SpawnTest );
824  AddValueParser( "DeleteTrackingCans", debug.DeleteTrackingCans );
825  AddValueParser( "ProfileTraceTime", debug.ProfileTraceTime );
826 
827  const bool result = ParseElementChildren( ele );
828 
829  RemoveParser( "UseBeanCount" );
830  RemoveParser( "UseStackTrace" );
831  RemoveParser( "IsTestServer" );
832  RemoveParser( "UseProfiling" );
833  RemoveParser( "UseShipTracking" );
834  RemoveParser( "PositionHack" );
835  RemoveParser( "DeleteTrackingCans" );
836  RemoveParser( "AnomalyFaction" );
837  RemoveParser( "SpawnTest" );
838  RemoveParser( "BubbleTrack" );
839  RemoveParser( "ProfileTraceTime" );
840 
841  return result;
842 }
843 
844 bool EVEServerConfig::ProcessTesting(const TiXmlElement* ele)
845 {
846  AddValueParser( "ShipHeat", testing.ShipHeat );
847  AddValueParser( "EnableDrones", testing.EnableDrones);
848 
849  const bool result = ParseElementChildren( ele );
850 
851  RemoveParser( "ShipHeat" );
852  RemoveParser( "EnableDrones" );
853 
854  return result;
855 }
struct EVEServerConfig::@109 files
struct EVEServerConfig::@112 cosmic
bool ProcessThreads(const TiXmlElement *ele)
bool ProcessAccount(const TiXmlElement *ele)
bool ProcessExploring(const TiXmlElement *ele)
bool ProcessNet(const TiXmlElement *ele)
struct EVEServerConfig::@113 exploring
bool ProcessEveServer(const TiXmlElement *ele)
Definition: test.h:17
struct EVEServerConfig::@106 character
struct EVEServerConfig::@103 market
bool ProcessNPC(const TiXmlElement *ele)
struct EVEServerConfig::@114 standings
struct EVEServerConfig::@111 threads
struct EVEServerConfig::@100 server
bool ProcessWorld(const TiXmlElement *ele)
bool ProcessCrime(const TiXmlElement *ele)
bool ProcessChat(const TiXmlElement *ele)
struct EVEServerConfig::@102 rates
bool ProcessDatabase(const TiXmlElement *ele)
bool ProcessServer(const TiXmlElement *ele)
struct EVEServerConfig::@107 npc
struct EVEServerConfig::@116 crime
bool ProcessMarket(const TiXmlElement *ele)
bool ProcessBPTimes(const TiXmlElement *ele)
struct EVEServerConfig::@115 chat
bool ProcessStandings(const TiXmlElement *ele)
struct EVEServerConfig::@105 account
struct EVEServerConfig::@104 ram
struct EVEServerConfig::@118 debug
void RemoveParser(const char *name)
Removes a parser.
Definition: XMLParser.cpp:106
struct EVEServerConfig::@101 world
struct EVEServerConfig::@108 database
bool ProcessCosmic(const TiXmlElement *ele)
bool ParseElementChildren(const TiXmlElement *element, size_t max=0) const
Parses element's children using registered parsers.
Definition: XMLParser.cpp:72
struct EVEServerConfig::@110 net
void AddValueParser(const char *name, T &value)
Adds a value parser.
Definition: XMLParserEx.h:67
bool ProcessTesting(const TiXmlElement *ele)
bool ProcessFiles(const TiXmlElement *ele)
bool ProcessRates(const TiXmlElement *ele)
bool ProcessCharacter(const TiXmlElement *ele)
bool ProcessDebug(const TiXmlElement *ele)
void AddMemberParser(const char *name, T &instance, bool(T::*method)(const TiXmlElement *))
Adds a member parser.
Definition: XMLParserEx.h:55