diff options
author | johndoe123 | 2011-07-14 08:20:40 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:38:47 +0200 |
commit | 8a5c4a84d082074ad7aa47c5f797876b1cb7120f (patch) | |
tree | 7d996d2600dd8d241f76ea934e33e989006082d5 /engines/neverhood/resource.cpp | |
parent | 264777893578186cb27113f5918ef5e62fcfb836 (diff) | |
download | scummvm-rg350-8a5c4a84d082074ad7aa47c5f797876b1cb7120f.tar.gz scummvm-rg350-8a5c4a84d082074ad7aa47c5f797876b1cb7120f.tar.bz2 scummvm-rg350-8a5c4a84d082074ad7aa47c5f797876b1cb7120f.zip |
NEVERHOOD: Implement color replace in AnimatedSprite
(used to disable a color in sprite drawing)
Diffstat (limited to 'engines/neverhood/resource.cpp')
-rw-r--r-- | engines/neverhood/resource.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/engines/neverhood/resource.cpp b/engines/neverhood/resource.cpp index dde80ebe79..97eae89bd5 100644 --- a/engines/neverhood/resource.cpp +++ b/engines/neverhood/resource.cpp @@ -158,8 +158,10 @@ void AnimResource::draw(uint frameIndex, byte *dest, int destPitch, bool flipX, _currSpriteData = _spriteData + frameInfo.spriteDataOffs; _width = frameInfo.rect.width; _height = frameInfo.rect.height; - // TODO: Repl stuff - unpackSpriteRle(_currSpriteData, _width, _height, dest, destPitch, flipX, flipY); + if (_replEnabled && _replOldColor != _replNewColor) + unpackSpriteRleRepl(_currSpriteData, _width, _height, dest, destPitch, _replOldColor, _replNewColor, flipX, flipY); + else + unpackSpriteRle(_currSpriteData, _width, _height, dest, destPitch, flipX, flipY); } bool AnimResource::load(uint32 fileHash) { @@ -276,8 +278,8 @@ void AnimResource::clear() { void AnimResource::clear2() { clear(); _replEnabled = true; - _replOldByte = 0; - _replNewByte = 0; + _replOldColor = 0; + _replNewColor = 0; } bool AnimResource::loadInternal(uint32 fileHash) { @@ -301,6 +303,11 @@ int16 AnimResource::getFrameIndex(uint32 frameHash) { return frameIndex; } +void AnimResource::setRepl(byte oldColor, byte newColor) { + _replOldColor = oldColor; + _replNewColor = newColor; +} + MouseCursorResource::MouseCursorResource(NeverhoodEngine *vm) : _cursorSprite(vm), _cursorNum(4), _currFileHash(0) { |