aboutsummaryrefslogtreecommitdiff
path: root/engines/sludge/cursors.cpp
diff options
context:
space:
mode:
authorSimei Yin2018-04-15 21:35:19 +0200
committerSimei Yin2018-04-15 22:10:41 +0200
commit53c79fdde90f9dfa5467e501c3dcfb19a7494793 (patch)
treed19394eff42d12c7cbb4c7ff9aa207767a3a615d /engines/sludge/cursors.cpp
parent7c74e81e0ac7f9482c3732cb9305929d9e83a0c4 (diff)
downloadscummvm-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.cpp23
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;