diff options
Diffstat (limited to 'engines/kyra/engine/scene_rpg.cpp')
-rw-r--r-- | engines/kyra/engine/scene_rpg.cpp | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/engines/kyra/engine/scene_rpg.cpp b/engines/kyra/engine/scene_rpg.cpp index 1bb777f51c..8dc8e184e7 100644 --- a/engines/kyra/engine/scene_rpg.cpp +++ b/engines/kyra/engine/scene_rpg.cpp @@ -532,53 +532,50 @@ void KyraRpgEngine::vcnDraw_bw_trans_hiCol(uint8 *&dst, const uint8 *&src) { src += 9; } -void KyraRpgEngine::vcnDraw_fw_Amiga(uint8 *&dst, const uint8 *&src) { +void KyraRpgEngine::vcnDraw_fw_planar(uint8 *&dst, const uint8 *&src) { for (int blockX = 0; blockX < 8; blockX++) { uint8 col = 0; - for (int i = 0; i < 5; ++i) - col |= (((src[i] & (0x80 >> blockX)) >> (7 - blockX)) << i); + for (int i = 0; i < _vcnSrcBitsPerPixel; ++i) + col |= ((src[i] >> (7 - blockX)) & 1) << i; *dst++ = col; } - src += 5; + src += _vcnSrcBitsPerPixel; } -void KyraRpgEngine::vcnDraw_bw_Amiga(uint8 *&dst, const uint8 *&src) { +void KyraRpgEngine::vcnDraw_bw_planar(uint8 *&dst, const uint8 *&src) { for (int blockX = 7; blockX >= 0; blockX--) { uint8 col = 0; - for (int i = 0; i < 5; ++i) - col |= (((src[i] & (0x80 >> blockX)) >> (7 - blockX)) << i); + for (int i = 0; i < _vcnSrcBitsPerPixel; ++i) + col |= ((src[i] >> (7 - blockX)) & 1) << i; *dst++ = col; } - src += 5; + src += _vcnSrcBitsPerPixel; } -void KyraRpgEngine::vcnDraw_fw_trans_Amiga(uint8 *&dst, const uint8 *&src) { +void KyraRpgEngine::vcnDraw_fw_trans_planar(uint8 *&dst, const uint8 *&src) { for (int blockX = 0; blockX < 8; blockX++) { uint8 col = 0; - for (int i = 0; i < 5; ++i) - col |= (((src[i] & (0x80 >> blockX)) >> (7 - blockX)) << i); - + for (int i = 0; i < _vcnSrcBitsPerPixel; ++i) + col |= ((src[i] >> (7 - blockX)) & 1) << i; if (col) *dst = col; dst++; } - src += 5; + src += _vcnSrcBitsPerPixel; } -void KyraRpgEngine::vcnDraw_bw_trans_Amiga(uint8 *&dst, const uint8 *&src) { +void KyraRpgEngine::vcnDraw_bw_trans_planar(uint8 *&dst, const uint8 *&src) { for (int blockX = 7; blockX >= 0; blockX--) { uint8 col = 0; - for (int i = 0; i < 5; ++i) - col |= (((src[i] & (0x80 >> blockX)) >> (7 - blockX)) << i); - + for (int i = 0; i < _vcnSrcBitsPerPixel; ++i) + col |= ((src[i] >> (7 - blockX)) & 1) << i; if (col) *dst = col; dst++; } - src += 5; + src += _vcnSrcBitsPerPixel; } - int KyraRpgEngine::clickedWallShape(uint16 block, uint16 direction) { uint8 v = _wllShapeMap[_levelBlockProperties[block].walls[direction]]; if (!clickedShape(v)) |