aboutsummaryrefslogtreecommitdiff
path: root/engines/dm
diff options
context:
space:
mode:
authorBendegúz Nagy2016-07-27 16:17:20 +0200
committerBendegúz Nagy2016-08-26 23:02:22 +0200
commit2cd9c90e17b1ac5b22dce45bbb44fcdd05ea9d17 (patch)
treef045534e81c0ddfb1bd0519287621ce24fa6b4de /engines/dm
parent2cb7938c52147966e81bc0803e5a0f68cfef551c (diff)
downloadscummvm-rg350-2cd9c90e17b1ac5b22dce45bbb44fcdd05ea9d17.tar.gz
scummvm-rg350-2cd9c90e17b1ac5b22dce45bbb44fcdd05ea9d17.tar.bz2
scummvm-rg350-2cd9c90e17b1ac5b22dce45bbb44fcdd05ea9d17.zip
DM: Revert from using DisplayMan::_bitmaps directly
Diffstat (limited to 'engines/dm')
-rw-r--r--engines/dm/dm.h1
-rw-r--r--engines/dm/gfx.cpp11
2 files changed, 2 insertions, 10 deletions
diff --git a/engines/dm/dm.h b/engines/dm/dm.h
index 007f22c3fe..e2c8923645 100644
--- a/engines/dm/dm.h
+++ b/engines/dm/dm.h
@@ -105,6 +105,7 @@ public:
static const Thing _party; // @ C0xFFFF_THING_PARTY
Thing() : _data(0) {}
+ Thing(const Thing &other) { set(other._data); }
explicit Thing(uint16 d) { set(d); }
void set(uint16 d) {
diff --git a/engines/dm/gfx.cpp b/engines/dm/gfx.cpp
index eb9012e601..2d7a99fd4e 100644
--- a/engines/dm/gfx.cpp
+++ b/engines/dm/gfx.cpp
@@ -2023,12 +2023,6 @@ void DisplayMan::f124_drawSquareD1C(Direction dir, int16 posX, int16 posY) {
g106_BoxThievesEye_ViewPortVisibleArea._y1,
k112_byteWidthViewport, 48, kM1_ColorNoTransparency, 136, 95);
bitmap = f489_getNativeBitmapOrGraphic(k41_holeInWall_GraphicIndice);
- /* BUG0_74 Creatures are drawn with wrong colors when viewed through a wall with the 'Thieve's Eye' spell. The 'hole in wall'
- graphic is applied to the visible area with transparency on color 10. However the visible area may contain creature graphics
- that use color 9. When the bitmap is drawn below with transparency on color 9 then the creature graphic is alterated: pixels
- using color 9 are transparent and the background wall is visible through the creature graphic (grey/white pixels).
- To fix this bug, the 'hole in wall' graphic should be applied to the wall graphic first (in a temporary buffer) and
- then the wall with the hole should be drawn over the visible area */
f132_blitToBitmap(bitmap, f492_getDerivedBitmap(k1_DerivedBitmapThievesEyeVisibleArea),
g107_BoxThievesEyeVisibleArea,
0, 0, 48, 48, k10_ColorFlesh, 95, 95);
@@ -2451,7 +2445,7 @@ void DisplayMan::f93_applyCreatureReplColors(int replacedColor, int replacementC
void DisplayMan::f104_drawFloorPitOrStairsBitmap(uint16 nativeIndex, Frame &f) {
if (f._srcByteWidth)
- f132_blitToBitmap(_bitmaps[nativeIndex], _g296_bitmapViewport, f._box, f._srcX, f._srcY, f._srcByteWidth, k112_byteWidthViewport, k10_ColorFlesh);
+ f132_blitToBitmap(f489_getNativeBitmapOrGraphic(nativeIndex), _g296_bitmapViewport, f._box, f._srcX, f._srcY, f._srcByteWidth, k112_byteWidthViewport, k10_ColorFlesh);
}
void DisplayMan::f105_drawFloorPitOrStairsBitmapFlippedHorizontally(uint16 nativeIndex, Frame &f) {
@@ -2645,10 +2639,7 @@ bool DisplayMan::f107_isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWall
f132_blitToBitmap(AL0091_puc_Bitmap, _g296_bitmapViewport,
*(Box *)AL0090_puc_CoordinateSet, AL0089_i_X, 0,
AL0090_puc_CoordinateSet[4], k112_byteWidthViewport, k10_ColorFlesh, AL0090_puc_CoordinateSet[5], k136_heightViewport);
-/* BUG0_05 A champion portrait sensor on a wall square is visible on all sides of the wall.
-If there is another sensor with a wall ornament on one side of the wall then the champion portrait is drawn over that wall ornament */
if ((viewWallIndex == k12_ViewWall_D1C_FRONT) && _g289_championPortraitOrdinal--) {
-/* A portrait is 32x29 pixels */
f132_blitToBitmap(f489_getNativeBitmapOrGraphic(k26_ChampionPortraitsIndice),
_g296_bitmapViewport, g109_BoxChampionPortraitOnWall,
(_g289_championPortraitOrdinal & 0x0007) << 5,