diff options
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r-- | engines/parallaction/parallaction.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index 80da5e730c..41a0e2eddb 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -725,10 +725,13 @@ void freeCharacter() { if (!IS_DUMMY_CHARACTER(_vm->_characterName)) { _vm->_gfx->freeCnv(&_vm->_char._miniFrames); _vm->freeTable(_objectsNames); + _vm->_gfx->freeCnv(_vm->_char._talk); if (_vm->_char._talk) delete _vm->_char._talk; - _vm->_gfx->freeStaticCnv(&_vm->_char._head); + _vm->_gfx->freeStaticCnv(_vm->_char._head); + if (_vm->_char._head) delete _vm->_char._head; + _vm->_gfx->freeCnv(&_vm->_char._objs); } @@ -806,7 +809,7 @@ void Parallaction::changeCharacter(const char *name) { _disk->loadFrames(path, &_vm->_char._normalFrames); if (!IS_DUMMY_CHARACTER(name)) { - _disk->loadHead(path, &_vm->_char._head); + _vm->_char._head = _disk->loadHead(path); _vm->_char._talk = _disk->loadTalk(path); _disk->loadObjects(name, &_vm->_char._objs); |