#include "../Config.h"

#define ConfigImpl DefaultConfig

class DefaultConfig
{
public:
  static void initialize(Config* config)
  {
    config->m_displayMap = false;
    config->m_displayUnitsInFogOfWar = true;
    config->m_displayEnemyInfluenceMap = false;
    config->m_displaySelfInfluenceMap = false;
    config->m_displayVisibilityInfluenceMap = false;
    config->m_displayStructureInfluenceMap = false;
    config->m_displayOwnUnitsActions = true;

    config->m_availableMsPerFrame = Config::MS_SCHEDULER;
  }

  static unsigned int getDefaultLoggerEvents()
  {
    return LogTypes.ALL & ~LogTypes.ON_FRAME;
  }

  static int getDefaultSpeed()
  {
    return 0;
  }

  static bool startLogServerThread()
  {
    return false;
  }

  static bool startStatsThread()
  {
    return true;
  }

  static unsigned short getLogServerPort()
  {
    return 4500;
  }

  static unsigned int getWorkerThreadCount()
  {
    return boost::thread::hardware_concurrency() - 1;
  }

  static bool displayActionsOnlyInGUI()
  { 
    return false;
  }

  static bool displayProcessesUnitsInGUI()
  {
    return false;
  }
};