aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/handlers/handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects/handlers/handler.cpp')
-rw-r--r--engines/pink/objects/handlers/handler.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/pink/objects/handlers/handler.cpp b/engines/pink/objects/handlers/handler.cpp
index a848cfd98e..8916bc0b3b 100644
--- a/engines/pink/objects/handlers/handler.cpp
+++ b/engines/pink/objects/handlers/handler.cpp
@@ -37,7 +37,7 @@ void Handler::deserialize(Archive &archive) {
archive >> _sideEffects;
}
-bool Handler::isSuitable(LeadActor *actor) {
+bool Handler::isSuitable(Actor *actor) {
for (int i = 0; i < _conditions.size(); ++i) {
if (!_conditions[i]->evaluate(actor)){
return false;
@@ -56,6 +56,15 @@ void Handler::onMessage(LeadActor *actor) {
executeSideEffects(actor);
}
+Handler::~Handler() {
+ for (int i = 0; i < _sideEffects.size(); ++i) {
+ delete _sideEffects[i];
+ }
+ for (int i = 0; i < _conditions.size(); ++i) {
+ delete _conditions[i];
+ }
+}
+
void HandlerSequences::deserialize(Archive &archive) {
Handler::deserialize(archive);
archive >> _sequences;