165 lines
8.9 KiB
C++
Executable File
165 lines
8.9 KiB
C++
Executable File
/**
|
|
* Base class for all aes handlers
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#include "handler_base.h"
|
|
#include "main_handler.h"
|
|
#include "settings.h"
|
|
#include <nglsettings/nglsettings_settings.h>
|
|
#include <QSettings>
|
|
|
|
|
|
|
|
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
|
|
}
|