aboutsummaryrefslogtreecommitdiff
path: root/engines/teenagent/scene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/teenagent/scene.cpp')
-rw-r--r--engines/teenagent/scene.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/teenagent/scene.cpp b/engines/teenagent/scene.cpp
index a1492e730a..32cedfcc07 100644
--- a/engines/teenagent/scene.cpp
+++ b/engines/teenagent/scene.cpp
@@ -218,6 +218,7 @@ void Scene::init(TeenAgentEngine *engine, OSystem *system) {
if (teenagent.empty())
error("invalid mark animation");
+ delete s;
s = varia.getStream(2);
if (s == NULL)
error("invalid resource data");
@@ -226,6 +227,7 @@ void Scene::init(TeenAgentEngine *engine, OSystem *system) {
if (teenagent_idle.empty())
error("invalid mark animation");
+ delete s;
varia.close();
loadObjectData();
}
@@ -335,8 +337,10 @@ void Scene::loadOns() {
ons = new Surface[ons_count];
for (uint32 i = 0; i < ons_count; ++i) {
Common::SeekableReadStream *s = res->ons.getStream(on_id[i]);
- if (s != NULL)
+ if (s != NULL) {
ons[i].load(s, Surface::kTypeOns);
+ delete s;
+ }
}
}
}
@@ -437,6 +441,7 @@ void Scene::playAnimation(byte idx, uint id, bool loop, bool paused, bool ignore
custom_animation[idx].loop = loop;
custom_animation[idx].paused = paused;
custom_animation[idx].ignore = ignore;
+ delete s;
}
void Scene::playActorAnimation(uint id, bool loop, bool ignore) {
@@ -448,6 +453,7 @@ void Scene::playActorAnimation(uint id, bool loop, bool ignore) {
actor_animation.load(s);
actor_animation.loop = loop;
actor_animation.ignore = ignore;
+ delete s;
}
Animation * Scene::getAnimation(byte slot) {