aboutsummaryrefslogtreecommitdiff
path: root/engines/dm/gfx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dm/gfx.cpp')
-rw-r--r--engines/dm/gfx.cpp116
1 files changed, 57 insertions, 59 deletions
diff --git a/engines/dm/gfx.cpp b/engines/dm/gfx.cpp
index 192d2392cf..6b1121e561 100644
--- a/engines/dm/gfx.cpp
+++ b/engines/dm/gfx.cpp
@@ -975,13 +975,6 @@ void DisplayMan::f99_copyBitmapAndFlipHorizontal(byte* srcBitmap, byte* destBitm
}
void DisplayMan::f108_drawFloorOrnament(uint16 floorOrnOrdinal, uint16 viewFloorIndex) {
- uint16 floorOrnIndex;
- int16 nativeBitmapIndex;
- bool drawFootprints;
- byte* bitmap;
- uint16* coordSets;
-
-
static byte g191_floorOrnNativeBitmapndexInc[9] = { // @ G0191_auc_Graphic558_FloorOrnamentNativeBitmapIndexIncrements
0, /* D3L */
1, /* D3C */
@@ -991,63 +984,69 @@ void DisplayMan::f108_drawFloorOrnament(uint16 floorOrnOrdinal, uint16 viewFloor
2, /* D2R */
4, /* D1L */
5, /* D1C */
- 4}; /* D1R */
+ 4}; /* D1R */
static uint16 g206_floorOrnCoordSets[3][9][6] = { // @ G0206_aaauc_Graphic558_FloorOrnamentCoordinateSets
/* { X1, X2, Y1, Y2, ByteWidth, Height } */
- {{32, 79, 66, 71, 24, 6}, /* D3L */
- {96, 127, 66, 71, 16, 6}, /* D3C */
- {144, 191, 66, 71, 24, 6}, /* D3R */
- {0, 63, 77, 87, 32, 11}, /* D2L */
- {80, 143, 77, 87, 32, 11}, /* D2C */
- {160, 223, 77, 87, 32, 11}, /* D2R */
- {0, 31, 92, 116, 16, 25}, /* D1L */
- {80, 143, 92, 116, 32, 25}, /* D1C */
- {192, 223, 92, 116, 16, 25}}, /* D1R */
- {{0, 95, 66, 74, 48, 9}, /* D3L */
- {64, 159, 66, 74, 48, 9}, /* D3C */
- {128, 223, 66, 74, 48, 9}, /* D3R */
- {0, 79, 75, 89, 40, 15}, /* D2L */
- {56, 167, 75, 89, 56, 15}, /* D2C */
- {144, 223, 75, 89, 40, 15}, /* D2R */
- {0, 63, 90, 118, 32, 29}, /* D1L */
- {32, 191, 90, 118, 80, 29}, /* D1C */
- {160, 223, 90, 118, 32, 29}}, /* D1R */
- {{42, 57, 68, 72, 8, 5}, /* D3L */
- {104, 119, 68, 72, 8, 5}, /* D3C */
- {166, 181, 68, 72, 8, 5}, /* D3R */
- {9, 40, 80, 85, 16, 6}, /* D2L */
- {96, 127, 80, 85, 16, 6}, /* D2C */
- {183, 214, 80, 85, 16, 6}, /* D2R */
- {0, 15, 97, 108, 8, 12}, /* D1L */
- {96, 127, 97, 108, 16, 12}, /* D1C */
- {208, 223, 97, 108, 8, 12}}}; /* D1R */
+ {
+ {32, 79, 66, 71, 24, 6}, /* D3L */
+ {96, 127, 66, 71, 16, 6}, /* D3C */
+ {144, 191, 66, 71, 24, 6}, /* D3R */
+ {0, 63, 77, 87, 32, 11}, /* D2L */
+ {80, 143, 77, 87, 32, 11}, /* D2C */
+ {160, 223, 77, 87, 32, 11}, /* D2R */
+ {0, 31, 92, 116, 16, 25}, /* D1L */
+ {80, 143, 92, 116, 32, 25}, /* D1C */
+ {192, 223, 92, 116, 16, 25} /* D1R */
+ },
+ {
+ {0, 95, 66, 74, 48, 9}, /* D3L */
+ {64, 159, 66, 74, 48, 9}, /* D3C */
+ {128, 223, 66, 74, 48, 9}, /* D3R */
+ {0, 79, 75, 89, 40, 15}, /* D2L */
+ {56, 167, 75, 89, 56, 15}, /* D2C */
+ {144, 223, 75, 89, 40, 15}, /* D2R */
+ {0, 63, 90, 118, 32, 29}, /* D1L */
+ {32, 191, 90, 118, 80, 29}, /* D1C */
+ {160, 223, 90, 118, 32, 29} /* D1R */
+ },
+ {
+ {42, 57, 68, 72, 8, 5}, /* D3L */
+ {104, 119, 68, 72, 8, 5}, /* D3C */
+ {166, 181, 68, 72, 8, 5}, /* D3R */
+ {9, 40, 80, 85, 16, 6}, /* D2L */
+ {96, 127, 80, 85, 16, 6}, /* D2C */
+ {183, 214, 80, 85, 16, 6}, /* D2R */
+ {0, 15, 97, 108, 8, 12}, /* D1L */
+ {96, 127, 97, 108, 16, 12}, /* D1C */
+ {208, 223, 97, 108, 8, 12} /* D1R */
+ }
+ };
if (floorOrnOrdinal) {
- if (drawFootprints = getFlag(floorOrnOrdinal, k0x8000_FootprintsAspect)) {
- if (!clearFlag(floorOrnOrdinal, k0x8000_FootprintsAspect))
- goto T0108005;
- }
- floorOrnOrdinal--;
- floorOrnIndex = floorOrnOrdinal;
- nativeBitmapIndex = _g102_currMapFloorOrnInfo[floorOrnIndex][k0_NativeBitmapIndex]
- + g191_floorOrnNativeBitmapndexInc[viewFloorIndex];
- coordSets = g206_floorOrnCoordSets[_g102_currMapFloorOrnInfo[floorOrnIndex][k1_CoordinateSet]][viewFloorIndex];
- if ((viewFloorIndex == k8_viewFloor_D1R) || (viewFloorIndex == k5_viewFloor_D2R)
- || (viewFloorIndex == k2_viewFloor_D3R)
- || ((floorOrnIndex == k15_FloorOrnFootprints) && _g76_useFlippedWallAndFootprintsBitmap &&
- ((viewFloorIndex == k7_viewFloor_D1C) || (viewFloorIndex == k4_viewFloor_D2C) || (viewFloorIndex == k1_viewFloor_D3C)))) {
- f99_copyBitmapAndFlipHorizontal(f489_getNativeBitmapOrGraphic(nativeBitmapIndex),
- bitmap = _g74_tmpBitmap, coordSets[4], coordSets[5]);
- } else {
- bitmap = f489_getNativeBitmapOrGraphic(nativeBitmapIndex);
- }
- f132_blitToBitmap(bitmap, _g296_bitmapViewport,
- *(Box *)coordSets, 0, 0, coordSets[4], k112_byteWidthViewport, k10_ColorFlesh, coordSets[5], k136_heightViewport);
-T0108005:
- if (drawFootprints) {
+ bool drawFootprints = (getFlag(floorOrnOrdinal, k0x8000_FootprintsAspect) ? true : false);
+ byte *bitmap;
+ if (drawFootprints && (clearFlag(floorOrnOrdinal, k0x8000_FootprintsAspect))) {
+ floorOrnOrdinal--;
+ uint16 floorOrnIndex = floorOrnOrdinal;
+ int16 nativeBitmapIndex = _g102_currMapFloorOrnInfo[floorOrnIndex][k0_NativeBitmapIndex]
+ + g191_floorOrnNativeBitmapndexInc[viewFloorIndex];
+ uint16 *coordSets = g206_floorOrnCoordSets[_g102_currMapFloorOrnInfo[floorOrnIndex][k1_CoordinateSet]][viewFloorIndex];
+ if ((viewFloorIndex == k8_viewFloor_D1R) || (viewFloorIndex == k5_viewFloor_D2R)
+ || (viewFloorIndex == k2_viewFloor_D3R)
+ || ((floorOrnIndex == k15_FloorOrnFootprints) && _g76_useFlippedWallAndFootprintsBitmap &&
+ ((viewFloorIndex == k7_viewFloor_D1C) || (viewFloorIndex == k4_viewFloor_D2C) || (viewFloorIndex == k1_viewFloor_D3C)))) {
+ bitmap = _g74_tmpBitmap;
+ f99_copyBitmapAndFlipHorizontal(f489_getNativeBitmapOrGraphic(nativeBitmapIndex), bitmap, coordSets[4], coordSets[5]);
+ } else
+ bitmap = f489_getNativeBitmapOrGraphic(nativeBitmapIndex);
+
+ f132_blitToBitmap(bitmap, _g296_bitmapViewport,
+ *(Box *)coordSets, 0, 0, coordSets[4], k112_byteWidthViewport, k10_ColorFlesh, coordSets[5], k136_heightViewport);
+ }
+
+ if (drawFootprints)
f108_drawFloorOrnament(_vm->M0_indexToOrdinal(k15_FloorOrnFootprints), viewFloorIndex);
- }
}
}
@@ -1056,7 +1055,6 @@ void DisplayMan::f111_drawDoor(uint16 doorThingIndex, uint16 doorState, int16* d
DoorFrames* doorFramesTemp;
Door* door;
-
doorFramesTemp = doorFrames;
if (doorState != k0_doorState_OPEN) {
door = (Door *)(_vm->_dungeonMan->_g284_thingData[k0_DoorThingType]) + doorThingIndex;