From 18b48c74a9de417254badf23744d5c5f73c2966c Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Wed, 9 Jul 2008 10:52:46 +0000 Subject: Fixed regression introduced with GfxObj: the character sprite was sometimes removed from the rendering list. svn-id: r32974 --- engines/parallaction/parallaction.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'engines/parallaction/parallaction.cpp') diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index 3a52b28e06..ca99d2a789 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -91,6 +91,8 @@ Parallaction::~Parallaction() { delete _globalTable; delete _callableNames; + _gfx->clearGfxObjects(kGfxObjCharacter | kGfxObjNormal); + hideDialogueStuff(); freeLocation(); freeCharacter(); @@ -166,6 +168,8 @@ void Parallaction::freeCharacter() { delete _objectsNames; _objectsNames = 0; + _gfx->clearGfxObjects(kGfxObjCharacter); + _char.free(); return; @@ -248,7 +252,7 @@ void Parallaction::freeLocation() { _location._walkNodes.clear(); - _gfx->clearGfxObjects(); + _gfx->clearGfxObjects(kGfxObjNormal); freeBackground(); _location._programs.clear(); @@ -569,10 +573,14 @@ void Character::setName(const char *name) { const char *end = begin + strlen(name); _prefix = _empty; + _suffix = _empty; _dummy = IS_DUMMY_CHARACTER(name); if (!_dummy) { + if (!strstr(name, "donna")) { + _engineFlags &= ~kEngineTransformedDonna; + } else if (_engineFlags & kEngineTransformedDonna) { _suffix = _suffixTras; } else { @@ -581,8 +589,6 @@ void Character::setName(const char *name) { _engineFlags |= kEngineTransformedDonna; _suffix = _suffixTras; end = s; - } else { - _suffix = _empty; } } if (IS_MINI_CHARACTER(name)) { -- cgit v1.2.3