// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "visualnovel/VisualNovelManager.hpp" namespace Dawn { template class VisualNovelCallbackEvent : public IVisualNovelEvent { protected: T *instance; void (T::*callback)(); void onStart(IVisualNovelEvent *previous) { } bool_t onUpdate() { return false; } void onEnd() { ((*this->instance).*(this->callback))(); } public: VisualNovelCallbackEvent( VisualNovelManager *manager, T *instance, void (T::*callback)() ) : IVisualNovelEvent(manager) { this->instance = instance; this->callback = callback; } }; }