aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/resource.cpp
diff options
context:
space:
mode:
authorjohndoe1232011-07-14 08:20:40 +0000
committerWillem Jan Palenstijn2013-05-08 20:38:47 +0200
commit8a5c4a84d082074ad7aa47c5f797876b1cb7120f (patch)
tree7d996d2600dd8d241f76ea934e33e989006082d5 /engines/neverhood/resource.cpp
parent264777893578186cb27113f5918ef5e62fcfb836 (diff)
downloadscummvm-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.cpp15
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) {