aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/ad
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-07-22 22:55:54 +0200
committerEinar Johan Trøan Sømåen2012-07-22 22:55:54 +0200
commitf6a5a2a0d57d2e0829aa93ac0b30d3c0e1bf8838 (patch)
tree11fc0f9994c0e938027f767dc5e054bd42c921fd /engines/wintermute/ad
parent30ada3c13f63ef35ccdd21ca76fb45aa9fb1dc3c (diff)
downloadscummvm-rg350-f6a5a2a0d57d2e0829aa93ac0b30d3c0e1bf8838.tar.gz
scummvm-rg350-f6a5a2a0d57d2e0829aa93ac0b30d3c0e1bf8838.tar.bz2
scummvm-rg350-f6a5a2a0d57d2e0829aa93ac0b30d3c0e1bf8838.zip
WINTERMUTE: Wrap away base_script_holder's _filename field in getters/setters, avoiding direct writes.
Diffstat (limited to 'engines/wintermute/ad')
-rw-r--r--engines/wintermute/ad/ad_actor.cpp3
-rw-r--r--engines/wintermute/ad/ad_entity.cpp15
-rw-r--r--engines/wintermute/ad/ad_game.cpp5
-rw-r--r--engines/wintermute/ad/ad_inventory_box.cpp3
-rw-r--r--engines/wintermute/ad/ad_item.cpp15
-rw-r--r--engines/wintermute/ad/ad_layer.cpp3
-rw-r--r--engines/wintermute/ad/ad_node_state.cpp10
-rw-r--r--engines/wintermute/ad/ad_object.cpp2
-rw-r--r--engines/wintermute/ad/ad_region.cpp3
-rw-r--r--engines/wintermute/ad/ad_response_box.cpp15
-rw-r--r--engines/wintermute/ad/ad_rot_level.cpp3
-rw-r--r--engines/wintermute/ad/ad_scale_level.cpp3
-rw-r--r--engines/wintermute/ad/ad_scene.cpp12
-rw-r--r--engines/wintermute/ad/ad_sprite_set.cpp16
-rw-r--r--engines/wintermute/ad/ad_talk_def.cpp2
-rw-r--r--engines/wintermute/ad/ad_talk_holder.cpp16
-rw-r--r--engines/wintermute/ad/ad_waypoint_group.cpp3
17 files changed, 57 insertions, 72 deletions
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index 1da28cd93d..c6a9b59420 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -132,8 +132,7 @@ bool AdActor::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing ACTOR file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 06a551b252..df469b4321 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -93,8 +93,7 @@ bool AdEntity::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing ENTITY file '%s'", filename);
@@ -914,8 +913,8 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
}
- if (_subtype == ENTITY_NORMAL && _sprite && _sprite->_filename)
- buffer->putTextIndent(indent + 2, "SPRITE=\"%s\"\n", _sprite->_filename);
+ if (_subtype == ENTITY_NORMAL && _sprite && _sprite->getFilename())
+ buffer->putTextIndent(indent + 2, "SPRITE=\"%s\"\n", _sprite->getFilename());
if (_subtype == ENTITY_SOUND && _sFX && _sFX->_soundFilename) {
buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sFX->_soundFilename);
@@ -936,11 +935,11 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
if (_relativeScale != 0)
buffer->putTextIndent(indent + 2, "RELATIVE_SCALE = %d\n", (int)_relativeScale);
- if (_font && _font->_filename)
- buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
+ if (_font && _font->getFilename())
+ buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->getFilename());
- if (_cursor && _cursor->_filename)
- buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
+ if (_cursor && _cursor->getFilename())
+ buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->getFilename());
AdTalkHolder::saveAsText(buffer, indent + 2);
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index aa350b0e4c..8010a37864 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -251,7 +251,7 @@ bool AdGame::changeScene(const char *filename, bool fadeIn) {
_scene->applyEvent("SceneShutdown", true);
setPrevSceneName(_scene->_name);
- setPrevSceneFilename(_scene->_filename);
+ setPrevSceneFilename(_scene->getFilename());
if (!_tempDisableSaveState) _scene->saveState();
_tempDisableSaveState = false;
@@ -1112,8 +1112,7 @@ bool AdGame::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing GAME file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_inventory_box.cpp b/engines/wintermute/ad/ad_inventory_box.cpp
index f835dd22d4..d2bdcdde34 100644
--- a/engines/wintermute/ad/ad_inventory_box.cpp
+++ b/engines/wintermute/ad/ad_inventory_box.cpp
@@ -164,8 +164,7 @@ bool AdInventoryBox::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing INVENTORY_BOX file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 781b924513..0b85fdb9b3 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -93,8 +93,7 @@ bool AdItem::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing ITEM file '%s'", filename);
@@ -462,8 +461,8 @@ bool AdItem::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
else if (strcmp(name, "GetHoverSprite") == 0) {
stack->correctParams(0);
- if (!_spriteHover || !_spriteHover->_filename) stack->pushNULL();
- else stack->pushString(_spriteHover->_filename);
+ if (!_spriteHover || !_spriteHover->getFilename()) stack->pushNULL();
+ else stack->pushString(_spriteHover->getFilename());
return STATUS_OK;
}
@@ -504,8 +503,8 @@ bool AdItem::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
else if (strcmp(name, "GetNormalCursor") == 0) {
stack->correctParams(0);
- if (!_cursorNormal || !_cursorNormal->_filename) stack->pushNULL();
- else stack->pushString(_cursorNormal->_filename);
+ if (!_cursorNormal || !_cursorNormal->getFilename()) stack->pushNULL();
+ else stack->pushString(_cursorNormal->getFilename());
return STATUS_OK;
}
@@ -547,8 +546,8 @@ bool AdItem::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
else if (strcmp(name, "GetHoverCursor") == 0) {
stack->correctParams(0);
- if (!_cursorHover || !_cursorHover->_filename) stack->pushNULL();
- else stack->pushString(_cursorHover->_filename);
+ if (!_cursorHover || !_cursorHover->getFilename()) stack->pushNULL();
+ else stack->pushString(_cursorHover->getFilename());
return STATUS_OK;
}
diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp
index 2cd7ac26ce..e59b5cde18 100644
--- a/engines/wintermute/ad/ad_layer.cpp
+++ b/engines/wintermute/ad/ad_layer.cpp
@@ -70,8 +70,7 @@ bool AdLayer::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing LAYER file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp
index 12bd275614..fca2600884 100644
--- a/engines/wintermute/ad/ad_node_state.cpp
+++ b/engines/wintermute/ad/ad_node_state.cpp
@@ -139,11 +139,11 @@ bool AdNodeState::transferEntity(AdEntity *entity, bool includingSprites, bool s
for (int i = 0; i < 7; i++) {
if (entity->_caption[i]) setCaption(entity->_caption[i], i);
}
- if (!entity->_region && entity->_sprite && entity->_sprite->_filename) {
- if (includingSprites) setFilename(entity->_sprite->_filename);
+ if (!entity->_region && entity->_sprite && entity->_sprite->getFilename()) {
+ if (includingSprites) setFilename(entity->_sprite->getFilename());
else setFilename("");
}
- if (entity->_cursor && entity->_cursor->_filename) setCursor(entity->_cursor->_filename);
+ if (entity->_cursor && entity->_cursor->getFilename()) setCursor(entity->_cursor->getFilename());
_alphaColor = entity->_alphaColor;
_active = entity->_active;
} else {
@@ -151,11 +151,11 @@ bool AdNodeState::transferEntity(AdEntity *entity, bool includingSprites, bool s
if (_caption[i]) entity->setCaption(_caption[i], i);
}
if (_filename && !entity->_region && includingSprites && strcmp(_filename, "") != 0) {
- if (!entity->_sprite || !entity->_sprite->_filename || scumm_stricmp(entity->_sprite->_filename, _filename) != 0)
+ if (!entity->_sprite || !entity->_sprite->getFilename() || scumm_stricmp(entity->_sprite->getFilename(), _filename) != 0)
entity->setSprite(_filename);
}
if (_cursor) {
- if (!entity->_cursor || !entity->_cursor->_filename || scumm_stricmp(entity->_cursor->_filename, _cursor) != 0)
+ if (!entity->_cursor || !entity->_cursor->getFilename() || scumm_stricmp(entity->_cursor->getFilename(), _cursor) != 0)
entity->setCursor(_cursor);
}
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index 39593c482c..bac39f5ea6 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -339,7 +339,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetFont") == 0) {
stack->correctParams(0);
- if (_font && _font->_filename) stack->pushString(_font->_filename);
+ if (_font && _font->getFilename()) stack->pushString(_font->getFilename());
else stack->pushNULL();
return STATUS_OK;
}
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index 1bd6051bda..bac02f5dd6 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -63,8 +63,7 @@ bool AdRegion::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing REGION file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index 5b7e441abc..212802ef3a 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -196,8 +196,7 @@ bool AdResponseBox::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing RESPONSE_BOX file '%s'", filename);
@@ -341,13 +340,13 @@ bool AdResponseBox::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "AREA { %d, %d, %d, %d }\n", _responseArea.left, _responseArea.top, _responseArea.right, _responseArea.bottom);
- if (_font && _font->_filename)
- buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
- if (_fontHover && _fontHover->_filename)
- buffer->putTextIndent(indent + 2, "FONT_HOVER=\"%s\"\n", _fontHover->_filename);
+ if (_font && _font->getFilename())
+ buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->getFilename());
+ if (_fontHover && _fontHover->getFilename())
+ buffer->putTextIndent(indent + 2, "FONT_HOVER=\"%s\"\n", _fontHover->getFilename());
- if (_cursor && _cursor->_filename)
- buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
+ if (_cursor && _cursor->getFilename())
+ buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->getFilename());
buffer->putTextIndent(indent + 2, "HORIZONTAL=%s\n", _horizontal ? "TRUE" : "FALSE");
diff --git a/engines/wintermute/ad/ad_rot_level.cpp b/engines/wintermute/ad/ad_rot_level.cpp
index e758eaa1f6..b9949d9f9b 100644
--- a/engines/wintermute/ad/ad_rot_level.cpp
+++ b/engines/wintermute/ad/ad_rot_level.cpp
@@ -62,8 +62,7 @@ bool AdRotLevel::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing ROTATION_LEVEL file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_scale_level.cpp b/engines/wintermute/ad/ad_scale_level.cpp
index 65e0cc4663..539e9a8bb7 100644
--- a/engines/wintermute/ad/ad_scale_level.cpp
+++ b/engines/wintermute/ad/ad_scale_level.cpp
@@ -60,8 +60,7 @@ bool AdScaleLevel::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing SCALE_LEVEL file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 104fe6dd4d..958bf64ae5 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -509,15 +509,11 @@ bool AdScene::loadFile(const char *filename) {
bool ret;
- delete[] _filename;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing SCENE file '%s'", filename);
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
-
+ setFilename(filename);
delete [] buffer;
@@ -843,7 +839,7 @@ bool AdScene::loadBuffer(byte *buffer, bool complete) {
return STATUS_FAILED;
}
- if (_mainLayer == NULL) _gameRef->LOG(0, "Warning: scene '%s' has no main layer.", _filename);
+ if (_mainLayer == NULL) _gameRef->LOG(0, "Warning: scene '%s' has no main layer.", getFilename());
sortScaleLevels();
@@ -2480,7 +2476,7 @@ bool AdScene::persistState(bool saving) {
if (!_persistentState) return STATUS_OK;
AdGame *adGame = (AdGame *)_gameRef;
- AdSceneState *state = adGame->getSceneState(_filename, saving);
+ AdSceneState *state = adGame->getSceneState(getFilename(), saving);
if (!state) return STATUS_OK;
AdNodeState *nodeState;
diff --git a/engines/wintermute/ad/ad_sprite_set.cpp b/engines/wintermute/ad/ad_sprite_set.cpp
index b594bd0467..34ea53481d 100644
--- a/engines/wintermute/ad/ad_sprite_set.cpp
+++ b/engines/wintermute/ad/ad_sprite_set.cpp
@@ -265,28 +265,28 @@ bool AdSpriteSet::saveAsText(BaseDynamicBuffer *buffer, int indent) {
if (_sprites[i]) {
switch (i) {
case DI_UP:
- buffer->putTextIndent(indent + 2, "UP=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "UP=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_UPRIGHT:
- buffer->putTextIndent(indent + 2, "UP_RIGHT=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "UP_RIGHT=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_RIGHT:
- buffer->putTextIndent(indent + 2, "RIGHT=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "RIGHT=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_DOWNRIGHT:
- buffer->putTextIndent(indent + 2, "DOWN_RIGHT=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "DOWN_RIGHT=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_DOWN:
- buffer->putTextIndent(indent + 2, "DOWN=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "DOWN=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_DOWNLEFT:
- buffer->putTextIndent(indent + 2, "DOWN_LEFT=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "DOWN_LEFT=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_LEFT:
- buffer->putTextIndent(indent + 2, "LEFT=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "LEFT=\"%s\"\n", _sprites[i]->getFilename());
break;
case DI_UPLEFT:
- buffer->putTextIndent(indent + 2, "UP_LEFT=\"%s\"\n", _sprites[i]->_filename);
+ buffer->putTextIndent(indent + 2, "UP_LEFT=\"%s\"\n", _sprites[i]->getFilename());
break;
}
}
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index 979e8b2698..2756b69467 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -78,7 +78,7 @@ bool AdTalkDef::loadFile(const char *filename) {
bool ret;
- BaseUtils::setString(&_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing TALK file '%s'", filename);
diff --git a/engines/wintermute/ad/ad_talk_holder.cpp b/engines/wintermute/ad/ad_talk_holder.cpp
index bd48ac601c..17f7171cc3 100644
--- a/engines/wintermute/ad/ad_talk_holder.cpp
+++ b/engines/wintermute/ad/ad_talk_holder.cpp
@@ -159,8 +159,8 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
else if (strcmp(name, "GetSprite") == 0) {
stack->correctParams(0);
- if (!_sprite || !_sprite->_filename) stack->pushNULL();
- else stack->pushString(_sprite->_filename);
+ if (!_sprite || !_sprite->getFilename()) stack->pushNULL();
+ else stack->pushString(_sprite->getFilename());
return STATUS_OK;
}
@@ -210,7 +210,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
if (ex) {
for (int i = 0; i < _talkSpritesEx.getSize(); i++) {
- if (scumm_stricmp(_talkSpritesEx[i]->_filename, filename) == 0) {
+ if (scumm_stricmp(_talkSpritesEx[i]->getFilename(), filename) == 0) {
if (_currentSprite == _talkSpritesEx[i])
setCurrent = true;
if (_tempSprite2 == _talkSpritesEx[i])
@@ -222,7 +222,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
}
} else {
for (int i = 0; i < _talkSprites.getSize(); i++) {
- if (scumm_stricmp(_talkSprites[i]->_filename, filename) == 0) {
+ if (scumm_stricmp(_talkSprites[i]->getFilename(), filename) == 0) {
if (_currentSprite == _talkSprites[i])
setCurrent = true;
if (_tempSprite2 == _talkSprites[i])
@@ -339,13 +339,13 @@ const char *AdTalkHolder::scToString() {
//////////////////////////////////////////////////////////////////////////
bool AdTalkHolder::saveAsText(BaseDynamicBuffer *buffer, int indent) {
for (int i = 0; i < _talkSprites.getSize(); i++) {
- if (_talkSprites[i]->_filename)
- buffer->putTextIndent(indent + 2, "TALK=\"%s\"\n", _talkSprites[i]->_filename);
+ if (_talkSprites[i]->getFilename())
+ buffer->putTextIndent(indent + 2, "TALK=\"%s\"\n", _talkSprites[i]->getFilename());
}
for (int i = 0; i < _talkSpritesEx.getSize(); i++) {
- if (_talkSpritesEx[i]->_filename)
- buffer->putTextIndent(indent + 2, "TALK_SPECIAL=\"%s\"\n", _talkSpritesEx[i]->_filename);
+ if (_talkSpritesEx[i]->getFilename())
+ buffer->putTextIndent(indent + 2, "TALK_SPECIAL=\"%s\"\n", _talkSpritesEx[i]->getFilename());
}
return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_waypoint_group.cpp b/engines/wintermute/ad/ad_waypoint_group.cpp
index 25e5345ee7..4a8ab966e8 100644
--- a/engines/wintermute/ad/ad_waypoint_group.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group.cpp
@@ -73,8 +73,7 @@ bool AdWaypointGroup::loadFile(const char *filename) {
bool ret;
- _filename = new char [strlen(filename) + 1];
- strcpy(_filename, filename);
+ setFilename(filename);
if (DID_FAIL(ret = loadBuffer(buffer, true))) _gameRef->LOG(0, "Error parsing WAYPOINTS file '%s'", filename);