diff options
author | Paul Gilbert | 2015-05-26 08:18:50 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-05-26 08:18:50 -0400 |
commit | 0cc79979fc27a097037ca580dda78607080d5ac4 (patch) | |
tree | 4b94857f4efacc778f2c63d088c61353bc78d451 /engines/sherlock/objects.cpp | |
parent | e1e39ea3d2e358b47fc26cc52244f536ee2a0a01 (diff) | |
download | scummvm-rg350-0cc79979fc27a097037ca580dda78607080d5ac4.tar.gz scummvm-rg350-0cc79979fc27a097037ca580dda78607080d5ac4.tar.bz2 scummvm-rg350-0cc79979fc27a097037ca580dda78607080d5ac4.zip |
SHERLOCK: Fix map display
Diffstat (limited to 'engines/sherlock/objects.cpp')
-rw-r--r-- | engines/sherlock/objects.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/engines/sherlock/objects.cpp b/engines/sherlock/objects.cpp index 31a209fea3..73387261c8 100644 --- a/engines/sherlock/objects.cpp +++ b/engines/sherlock/objects.cpp @@ -366,6 +366,34 @@ void Sprite::checkSprite() { /*----------------------------------------------------------------*/ +void WalkSequence::load(Common::SeekableReadStream &s) { + char buffer[9]; + s.read(buffer, 9); + _vgsName = Common::String(buffer); + _horizFlip = s.readByte() != 0; + + _sequences.resize(s.readUint16LE()); + s.read(&_sequences[0], _sequences.size()); +} + +/*----------------------------------------------------------------*/ + +WalkSequences &WalkSequences::operator=(const WalkSequences &src) { + resize(src.size()); + for (uint idx = 0; idx < size(); ++idx) { + const WalkSequence &wSrc = src[idx]; + WalkSequence &wDest = (*this)[idx]; + wDest._horizFlip = wSrc._horizFlip; + + wDest._sequences.resize(wSrc._sequences.size()); + Common::copy(&wSrc._sequences[0], &wSrc._sequences[0] + wSrc._sequences.size(), &wDest._sequences[0]); + } + + return *this; +} + +/*----------------------------------------------------------------*/ + void ActionType::load(Common::SeekableReadStream &s) { char buffer[12]; |