Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Services/AreaEffectSimulation/handler_base.cpp
T
berrux-dev 472f537313 Migrates AreaEffectSimulation to generated rtiddsgen API
Converts accessor calls to plain member access across aes service and plugin.
2026-09-21 02:45:07 +02:00

165 lines
9.3 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[static_cast<int>(AesType::AtBCContamination)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralBCContamination"),defaultMaxDecBCNContaminations).toInt();
s_maxActiveAreas[static_cast<int>(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[static_cast<int>(AesType::AtExplosionArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralExplosionAreas"),defaultMaxDecExplosions).toInt();
s_maxActiveAreas[static_cast<int>(AesType::AtExplosionSingle)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralExplosionSingle"),defaultMaxDecExplosions).toInt();
s_maxActiveAreas[static_cast<int>(AesType::AtExplosionCluster)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralExplosionClusters"),defaultMaxDecExplosionCluster).toInt();
s_maxActiveAreas[static_cast<int>(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[static_cast<int>(AesType::AtFunctionalArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralFunctionalAreas"),defaultMaxDecFunctionalAreas).toInt();
s_maxActiveAreas[static_cast<int>(AesType::AtTechnicalArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralTechnicalAreas"),defaultMaxDecTechnicalAreas).toInt();
s_maxActiveAreas[static_cast<int>(AesType::AtGasPipe)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralGasPipes"),defaultMaxDecGasPipes).toInt();
s_maxActiveAreas[static_cast<int>(AesType::AtDusSingleMine)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveDecentralDusSingleMines"),defaultMaxDecDusSingleMines).toInt();
s_maxActiveAreas[static_cast<int>(AesType::AtAirSupportImpact)] = 2147483647; // unlimited
// Central
s_maxActiveAreasCentral[static_cast<int>(AesType::AtBoobyTrap)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralBoobyTraps"),defaultMaxCenBoobyTraps).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtBCContamination)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralBCContamination"),defaultMaxCenBCNContaminations).toInt();
s_maxActiveAreasCentral[static_cast<int>(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[static_cast<int>(AesType::AtExplosionArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralExplosionAreas"),defaultMaxCenExplosions).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionSingle)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralExplosionSingle"),defaultMaxCenExplosions).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtOffRouteMine)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralOffRouteMines"),defaultMaxCenOffRouteMines).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtMineArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralMineAreas"),defaultMaxCenMineAreas).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtFunctionalArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralFunctionalAreas"),defaultMaxCenFunctionalAreas).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtTechnicalArea)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralTechnicalAreas"),defaultMaxCenTechnicalAreas).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtGasPipe)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralGasPipes"),defaultMaxCenGasPipes).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtDusSingleMine)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralDusSingleMines"),defaultMaxCenDusSingleMines).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionCluster)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralExplosionClusters"),defaultMaxCenExplosionCluster).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtEffectCluster)] = nglSettings->settings()->value(
QStringLiteral("AES/maxActiveCentralEffectClusters"),defaultMaxCenEffectCluster).toInt();
s_maxActiveAreasCentral[static_cast<int>(AesType::AtAirSupportImpact)] =
2147483647; // unlimited
}