38 lines
851 B
C++
38 lines
851 B
C++
// 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 T>
|
|
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;
|
|
}
|
|
};
|
|
} |