From 9213920ac12198ab96dd804111b93d6b38e900c8 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 30 Aug 2019 21:50:14 -0700 Subject: XEEN: Cleanup of sprite drawer 3 --- engines/xeen/sprites.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engines') diff --git a/engines/xeen/sprites.cpp b/engines/xeen/sprites.cpp index 25b6a04100..76bd74285b 100644 --- a/engines/xeen/sprites.cpp +++ b/engines/xeen/sprites.cpp @@ -28,6 +28,8 @@ #include "xeen/screen.h" #include "xeen/sprites.h" +#include "graphics/palette.h" + namespace Xeen { #define SCENE_CLIP_LEFT 8 @@ -438,7 +440,7 @@ void SpriteDrawer1::drawPixel(byte *dest, byte pixel) { /*------------------------------------------------------------------------*/ -const uint16 DRAWER3_MASK[4] = { 0xF01, 0xF03, 0xF07, 0xF0F }; +const uint16 DRAWER3_MASK[4] = { 1, 3, 7, 15 }; const uint16 DRAWER3_OFFSET[4] = { 1, 2, 4, 8 }; SpriteDrawer3::SpriteDrawer3(byte *data, size_t filesize, int index) : SpriteDrawer(data, filesize) { @@ -447,10 +449,8 @@ SpriteDrawer3::SpriteDrawer3(byte *data, size_t filesize, int index) : SpriteDra } void SpriteDrawer3::drawPixel(byte *dest, byte pixel) { - uint16 val = (int)*dest << 8 | pixel; - val = (val & _mask) - _offset; + byte level = (pixel & _mask) - _offset + (*dest & 0xf); - byte level = (val & 0xff) + (val >> 8); if (level >= 0x80) { *dest &= 0xf0; } else if (level <= 0xf) { -- cgit v1.2.3