aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-07-09 10:52:46 +0000
committerNicola Mettifogo2008-07-09 10:52:46 +0000
commit18b48c74a9de417254badf23744d5c5f73c2966c (patch)
tree3406cc24c3e4afdbad48df7a20cf27f7b0b7ca88 /engines/parallaction/parallaction.cpp
parentd24e7706057aaf5d20c31d6eebf6e55440cfb20a (diff)
downloadscummvm-rg350-18b48c74a9de417254badf23744d5c5f73c2966c.tar.gz
scummvm-rg350-18b48c74a9de417254badf23744d5c5f73c2966c.tar.bz2
scummvm-rg350-18b48c74a9de417254badf23744d5c5f73c2966c.zip
Fixed regression introduced with GfxObj: the character sprite was sometimes removed from the rendering list.
svn-id: r32974
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r--engines/parallaction/parallaction.cpp12
1 files changed, 9 insertions, 3 deletions
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)) {