diff options
author | Simei Yin | 2018-04-15 21:35:19 +0200 |
---|---|---|
committer | Simei Yin | 2018-04-15 22:10:41 +0200 |
commit | 53c79fdde90f9dfa5467e501c3dcfb19a7494793 (patch) | |
tree | d19394eff42d12c7cbb4c7ff9aa207767a3a615d /engines/sludge/cursors.cpp | |
parent | 7c74e81e0ac7f9482c3732cb9305929d9e83a0c4 (diff) | |
download | scummvm-rg350-53c79fdde90f9dfa5467e501c3dcfb19a7494793.tar.gz scummvm-rg350-53c79fdde90f9dfa5467e501c3dcfb19a7494793.tar.bz2 scummvm-rg350-53c79fdde90f9dfa5467e501c3dcfb19a7494793.zip |
SLUDGE: Refactor PersonaAnimation related code in PeopleManager
Diffstat (limited to 'engines/sludge/cursors.cpp')
-rw-r--r-- | engines/sludge/cursors.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/engines/sludge/cursors.cpp b/engines/sludge/cursors.cpp index 849a627c73..0ec46e2f17 100644 --- a/engines/sludge/cursors.cpp +++ b/engines/sludge/cursors.cpp @@ -44,18 +44,24 @@ CursorManager::~CursorManager() { } void CursorManager::init() { - _mouseCursorAnim = _vm->_peopleMan->makeNullAnim(); + _mouseCursorAnim = new PersonaAnimation(); _mouseCursorFrameNum = 0; _mouseCursorCountUp = 0; } void CursorManager::kill() { - _vm->_peopleMan->deleteAnim(_mouseCursorAnim); + if (_mouseCursorAnim) { + delete _mouseCursorAnim; + _mouseCursorAnim = nullptr; + } _mouseCursorAnim = nullptr; } void CursorManager::pickAnimCursor(PersonaAnimation *pp) { - _vm->_peopleMan->deleteAnim(_mouseCursorAnim); + if (_mouseCursorAnim) { + delete _mouseCursorAnim; + _mouseCursorAnim = nullptr; + } _mouseCursorAnim = pp; _mouseCursorFrameNum = 0; _mouseCursorCountUp = 0; @@ -107,18 +113,21 @@ void CursorManager::pasteCursor(int x, int y, PersonaAnimation *c) { void CursorManager::freeze(FrozenStuffStruct *frozenStuff) { frozenStuff->mouseCursorAnim = _mouseCursorAnim; frozenStuff->mouseCursorFrameNum = _mouseCursorFrameNum; - _mouseCursorAnim = _vm->_peopleMan->makeNullAnim(); + _mouseCursorAnim = new PersonaAnimation(); _mouseCursorFrameNum = 0; } void CursorManager::resotre(FrozenStuffStruct *frozenStuff) { - _vm->_peopleMan->deleteAnim(_mouseCursorAnim); + if (_mouseCursorAnim) { + delete _mouseCursorAnim; + _mouseCursorAnim = nullptr; + } _mouseCursorAnim = frozenStuff->mouseCursorAnim; _mouseCursorFrameNum = frozenStuff->mouseCursorFrameNum; } void CursorManager::saveCursor(Common::WriteStream *stream) { - _vm->_peopleMan->saveAnim(_mouseCursorAnim, stream); + _mouseCursorAnim->save(stream); stream->writeUint16BE(_mouseCursorFrameNum); } @@ -126,7 +135,7 @@ bool CursorManager::loadCursor(Common::SeekableReadStream *stream) { _mouseCursorAnim = new PersonaAnimation; if (!checkNew(_mouseCursorAnim)) return false; - if (!_vm->_peopleMan->loadAnim(_mouseCursorAnim, stream)) + if (!_mouseCursorAnim->load(stream)) return false; _mouseCursorFrameNum = stream->readUint16BE(); return true; |