/** * Handler for all indirect fire single objects * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "aes_db.h" #include "handler_base.h" #include "object_explosion_single_central.h" #include #include #include namespace SituationMap { class ElevationMap; } namespace AreaEffectSimulation { class ObjectExplosionSingleCentral; class HandlerExplosionSingleCentral final : public HandlerBaseTmpl , protected Interface::Fts::ExplosionSingleCentralModifyRequestHandler , protected Interface::Fts::ExplosionSingleCentralRemoveRequestHandler { Q_OBJECT public: explicit HandlerExplosionSingleCentral(MainHandler *mainHandler); ~HandlerExplosionSingleCentral() = default; Core::FunctionReplyObject explosionSingleCentralModifyRequest(const ExplosionSingleCentralModifyRequest &request); Core::FunctionReplyObject explosionSingleCentralModifyGeometryRequest(const ExplosionSingleCentralModifyRequest &request); bool init(); Core::FunctionReplyObject modifyPartyParticipant(qint32 itemId, qint32 partyId, qint32 participantId); int totalAreas() const override { return -1; } int totalAreasCentral() const override { return -1; } void recountActiveAreas() override {} SituationMap::ElevationMap *elevationMap() { return m_elevationMap; } private: Core::FunctionReplyObject explosionSingleCentralCreateRequest(const ExplosionSingleCentralModifyRequest &request); void onExplosionSingleCentralModifyRequest(const rti::core::SampleIdentity &cookie, const ExplosionSingleCentralModifyRequest &request) override; void onExplosionSingleCentralRemoveRequest(const rti::core::SampleIdentity &cookie, const Core::RemoveElementRequest &request) override; private: SituationMap::ElevationMap *m_elevationMap; }; }