/** * Base class for all aes handlers * $Id$ * $HeadURL$ * $Author$ */ #include "handler_base.h" #include "main_handler.h" #include "settings.h" #include #include using namespace AreaEffectSimulation; int HandlerBase::s_areaCount[31] = { 0 }; // all elements to 0 int HandlerBase::s_areaCountCentral[31] = { 0 }; // all elements to 0 int HandlerBase::s_maxActiveAreas[31] = { 0 }; // all elements to 0 int HandlerBase::s_maxActiveAreasCentral[31] = { 0 }; // all elements to 0 int HandlerBase::s_maxSingleMinesCount = 0; int HandlerBase::s_maxCentralSingleMinesCount = 0; int HandlerBase::s_safePzAbwWMiCount = 10; int HandlerBase::s_maxAirSupportCount = 100; // Context ExplosionCluster int HandlerBase::s_currentAirSupportCount = 0; // Context ExplosionCluster int HandlerBase::s_startPzAbwWMiCCount = 70000; int HandlerBase::s_mineAreaCreationInterval = 20000; HandlerBase::HandlerBase(MainHandler *mainHandler, const QString &typeName) : m_mainHandler(mainHandler) , m_typeName(typeName) , m_logger(getLogger(QStringLiteral("Handler") + typeName)) { // Todo: Get from DDS (Asset Management) NGL::Settings *nglSettings = Settings::settings(); //Decentral defaults: const int defaultMaxDecBCNContaminations = 5; const int defaultMaxDecExplosions = 25; const int defaultMaxDecExplosionCluster = 50; const int defaultMaxDecMineAreas = 50; const int defaultMaxSingleMinesCount = 1200; const int defaultReservePzAbwWMi = 10; const int defaultMaxDecFunctionalAreas = 6; const int defaultMaxDecTechnicalAreas = 10; const int defaultMaxDecGasPipes = 10; const int defaultMaxDecDusSingleMines = 100; //Central defaults: const int defaultMaxCenBoobyTraps = 150; const int defaultMaxCenBCNContaminations = 50; const int defaultMaxCenGasPipes = 100; const int defaultMaxCenDusSingleMines = 1500; const int defaultMaxCenExplosions = 100; const int defaultMaxCenExplosionCluster = 200; const int defaultMaxCenEffectCluster = 200; const int defaultMaxCenOffRouteMines = 100; const int defaultMaxCenMineAreas = 100; const int defaultMaxCenFunctionalAreas = 50; const int defaultMaxCenTechnicalAreas = 100; // Todo: Get from DDS (Asset Management) // Keep equal as the totalAreas sums the actual active areas up and compares to either N or BC // It is not distinguished any more. Therefore 10 (as the sum) ist the actual value for All Contamination Areas s_mineAreaCreationInterval = nglSettings->settings()->value( QStringLiteral("AES/mineAreaCreationInterval"),20000).toInt(); s_maxActiveAreas[AesType::AtBCContamination] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralBCContamination"),defaultMaxDecBCNContaminations).toInt(); s_maxActiveAreas[AesType::AtNContamination] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralNContamination"),defaultMaxDecBCNContaminations).toInt(); // Keep equal as the totalAreas sums the actual active areas up and compares to either N or BC // It is not distinguished any more. Therefore 10 (as the sum) ist the actual value for All Contamination Areas // s_maxActiveAreas[AesType::AtBCContamination] = 5; // s_maxActiveAreas[AesType::AtNContamination] = 5; // Keep equal as the totalAreas sums the actual active areas up and compares to either Area or Single // It is not distinguished any more. Therefore 50 (as the sum) ist the actual value for All Explosion Areas s_maxActiveAreas[AesType::AtExplosionArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralExplosionAreas"),defaultMaxDecExplosions).toInt(); s_maxActiveAreas[AesType::AtExplosionSingle] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralExplosionSingle"),defaultMaxDecExplosions).toInt(); s_maxActiveAreas[AesType::AtExplosionCluster] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralExplosionClusters"),defaultMaxDecExplosionCluster).toInt(); s_maxActiveAreas[AesType::AtMineArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralMineAreas"),defaultMaxDecMineAreas).toInt(); s_maxSingleMinesCount = nglSettings->settings()->value( QStringLiteral("AES/maxActiveSingleMines"),defaultMaxSingleMinesCount).toInt(); s_maxCentralSingleMinesCount = nglSettings->settings()->value( QStringLiteral("AES/maxCentralActiveSingleMines"),defaultMaxCenDusSingleMines).toInt(); s_safePzAbwWMiCount = nglSettings->settings()->value( QStringLiteral("AES/reservePzAbwWMi"),defaultReservePzAbwWMi).toInt(); s_maxActiveAreas[AesType::AtFunctionalArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralFunctionalAreas"),defaultMaxDecFunctionalAreas).toInt(); s_maxActiveAreas[AesType::AtTechnicalArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralTechnicalAreas"),defaultMaxDecTechnicalAreas).toInt(); s_maxActiveAreas[AesType::AtGasPipe] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralGasPipes"),defaultMaxDecGasPipes).toInt(); s_maxActiveAreas[AesType::AtDusSingleMine] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveDecentralDusSingleMines"),defaultMaxDecDusSingleMines).toInt(); s_maxActiveAreas[AesType::AtAirSupportImpact] = 2147483647; // unlimited // Central s_maxActiveAreasCentral[AesType::AtBoobyTrap] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralBoobyTraps"),defaultMaxCenBoobyTraps).toInt(); s_maxActiveAreasCentral[AesType::AtBCContamination] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralBCContamination"),defaultMaxCenBCNContaminations).toInt(); s_maxActiveAreasCentral[AesType::AtNContamination] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralNContamination"),defaultMaxCenBCNContaminations).toInt(); // Keep equal as the totalAreas sums the actual active areas up and compares to either Area or Single // It is not distinguished any more. Therefore 200 (as the sum) ist the actual value for All Explosion Areas s_maxActiveAreasCentral[AesType::AtExplosionArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralExplosionAreas"),defaultMaxCenExplosions).toInt(); s_maxActiveAreasCentral[AesType::AtExplosionSingle] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralExplosionSingle"),defaultMaxCenExplosions).toInt(); s_maxActiveAreasCentral[AesType::AtOffRouteMine] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralOffRouteMines"),defaultMaxCenOffRouteMines).toInt(); s_maxActiveAreasCentral[AesType::AtMineArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralMineAreas"),defaultMaxCenMineAreas).toInt(); s_maxActiveAreasCentral[AesType::AtFunctionalArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralFunctionalAreas"),defaultMaxCenFunctionalAreas).toInt(); s_maxActiveAreasCentral[AesType::AtTechnicalArea] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralTechnicalAreas"),defaultMaxCenTechnicalAreas).toInt(); s_maxActiveAreasCentral[AesType::AtGasPipe] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralGasPipes"),defaultMaxCenGasPipes).toInt(); s_maxActiveAreasCentral[AesType::AtDusSingleMine] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralDusSingleMines"),defaultMaxCenDusSingleMines).toInt(); s_maxActiveAreasCentral[AesType::AtExplosionCluster] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralExplosionClusters"),defaultMaxCenExplosionCluster).toInt(); s_maxActiveAreasCentral[AesType::AtEffectCluster] = nglSettings->settings()->value( QStringLiteral("AES/maxActiveCentralEffectClusters"),defaultMaxCenEffectCluster).toInt(); s_maxActiveAreasCentral[AesType::AtAirSupportImpact] = 2147483647; // unlimited }