#ifndef QUESTABSTRACTLEVELEVENT_H #define QUESTABSTRACTLEVELEVENT_H #include "features/qw_levelbuilder.h" #include "qw_abstractevent.h" /* QWAbstractLevelEvent * Interface for all in-game events which control save files and levels. */ class QWAbstractLevelEvent : public QWAbstractEvent { protected: QWLevelBuilder *ptr_builder; public: QWAbstractLevelEvent(); virtual ~QWAbstractLevelEvent() override = 0; virtual void execute() override = 0; //////////////////////// void setLevelBuilder(QWLevelBuilder *const buil) noexcept; QWLevelBuilder *levelBuilder() const noexcept; //////////////////////// virtual void writeToJson(QJsonObject &savejson) override = 0; }; #endif // QUESTABSTRACTLEVELEVENT_H