/** * @RDE_HEADER@ * Handler for all Language HMI objects * $Id$ * $HeadURL$ * $Author$ * Created by Norbert Thoden, SLSE, 2023-10 */ #pragma once #include #include "aes_db.h" #include "handler_base.h" #include "object_explosion_cluster.h" #include // qAddPostRoutine #include namespace AreaEffectSimulation { class ObjectExplosionCluster; class HandlerExplosionCluster final : public HandlerBaseTmpl , protected Interface::Fts::ExplosionClusterModifyRequestHandler , protected Interface::Fts::ExplosionClusterSingleEffectOnlyModifyRequestHandler , protected Interface::Fts::ExplosionClusterOcModifyRequestHandler , protected Interface::Fts::ExplosionClusterRemoveRequestHandler , protected Interface::Fts::ExplosionClusterPauseResumeRequestHandler , protected Interface::Fts::TargetPositionsModifyRequestHandler , protected Interface::Fts::ExplosionClusterReleaseReceivedRequestHandler { Q_OBJECT public: explicit HandlerExplosionCluster(MainHandler *mainHandler); ~HandlerExplosionCluster() = default; Core::FunctionReplyObject explosionClusterModifyRequest(const rti::core::SampleIdentity &cookie, const ExplosionClusterModifyRequest &request); // Core::FunctionReplyObject explosionClusterModifyGeometryRequest(const ExplosionClusterModifyRequest &request); // unused // Core::FunctionReplyObject modifyPartyParticipant(qint32 itemId, qint32 partyId, qint32 participantId); void recountActiveAreas() override; bool init(); private: // ExplosionClusterModifyRequestHandler Core::FunctionReplyObject explosionClusterCreateRequest(const ExplosionClusterModifyRequest &request); void onExplosionClusterModifyRequest(const rti::core::SampleIdentity &cookie, const ExplosionClusterModifyRequest &request) override; // ExplosionClusterSingleEffectOnlyModifyRequestHandler void onExplosionClusterSingleEffectOnlyModifyRequest(const rti::core::SampleIdentity &cookie, const ExplosionClusterSingleEffectOnlyRequest &request) override; // ExplosionClusterOcModifyRequestHandler void onExplosionClusterOcModifyRequest(const rti::core::SampleIdentity &cookie, const ExplosionClusterOcModifyRequest &request) override; // ExplosionClusterRemoveRequestHandler void onExplosionClusterRemoveRequest(const rti::core::SampleIdentity &cookie, const Core::RemoveElementRequest &request) override; // ExplosionClusterPauseResumeRequestHandler void onExplosionClusterPauseResumeRequest(const rti::core::SampleIdentity &cookie, const ExplosionClusterPauseResumeRequest &request) override; // ExplosionClusterReleaseReceivedRequestHandler void onExplosionClusterReleaseReceivedRequest(const rti::core::SampleIdentity &cookie, const ExplosionClusterReleaseReceivedRequest &request) override; /*! \name For laserGuided ammo like vulcano */ //@{ virtual void onTargetPositionsModifyRequest(const rti::core::SampleIdentity &cookie, const TargetPositionsModifyRequest &request) override; //@} int totalAreas() const override; int totalAreasCentral() const override; }; } // namespace AreaEffectSimulation