[Scummvm-git-logs] scummvm master -> 93109b77ff24891ca4209d33be396127c1af7603

Strangerke Strangerke at scummvm.org
Fri Sep 16 22:17:59 CEST 2016


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f6039153ec DM: Refactor Box()
93109b77ff DM: Clarify some assignments


Commit: f6039153ec37211600355fc71dfb62cbf8da4b68
    https://github.com/scummvm/scummvm/commit/f6039153ec37211600355fc71dfb62cbf8da4b68
Author: Strangerke (strangerke at scummvm.org)
Date: 2016-09-16T22:05:59+02:00

Commit Message:
DM: Refactor Box()

Changed paths:
    engines/dm/champion.cpp
    engines/dm/dialog.cpp
    engines/dm/dm.cpp
    engines/dm/eventman.cpp
    engines/dm/gfx.cpp
    engines/dm/gfx.h
    engines/dm/inventory.cpp
    engines/dm/menus.cpp
    engines/dm/objectman.cpp
    engines/dm/text.cpp



diff --git a/engines/dm/champion.cpp b/engines/dm/champion.cpp
index 3712fae..bc613df 100644
--- a/engines/dm/champion.cpp
+++ b/engines/dm/champion.cpp
@@ -1394,13 +1394,13 @@ void ChampionMan::applyAndDrawPendingDamageAndWounds() {
 			int16 textPosY;
 
 			Box blitBox;
-			blitBox._y1 = 0;
+			blitBox._rect.top = 0;
 			_vm->_eventMan->showMouse();
 
 			if (_vm->indexToOrdinal(championIndex) == _vm->_inventoryMan->_inventoryChampionOrdinal) {
-				blitBox._y2 = 28;
-				blitBox._x1 = textPosX + 7;
-				blitBox._x2 = blitBox._x1 + 31; /* Box is over the champion portrait in the status box */
+				blitBox._rect.bottom = 28;
+				blitBox._rect.left = textPosX + 7;
+				blitBox._rect.right = blitBox._rect.left + 31; /* Box is over the champion portrait in the status box */
 				_vm->_displayMan->blitToScreen(_vm->_displayMan->getNativeBitmapOrGraphic(k16_damageToChampionBig), &blitBox, k16_byteWidth, kDMColorFlesh, 29);
 				// Check the number of digits and sets the position accordingly.
 				if (pendingDamage < 10) // 1 digit
@@ -1412,9 +1412,9 @@ void ChampionMan::applyAndDrawPendingDamageAndWounds() {
 
 				textPosY = 16;
 			} else {
-				blitBox._y2 = 6;
-				blitBox._x1 = textPosX;
-				blitBox._x2 = blitBox._x1 + 47; /* Box is over the champion name in the status box */
+				blitBox._rect.bottom = 6;
+				blitBox._rect.left = textPosX;
+				blitBox._rect.right = blitBox._rect.left + 47; /* Box is over the champion name in the status box */
 				_vm->_displayMan->blitToScreen(_vm->_displayMan->getNativeBitmapOrGraphic(k15_damageToChampionSmallIndice), &blitBox, k24_byteWidth, kDMColorFlesh, 7);
 				// Check the number of digits and sets the position accordingly.
 				if (pendingDamage < 10) // 1 digit
@@ -2064,24 +2064,24 @@ void ChampionMan::drawChampionBarGraphs(ChampionIndex champIndex) {
 
 	// Strangerke - TO CHECK: if portraits, maybe the old (assembly) code is required for older versions
 	Box box;
-	box._x1 = champIndex * k69_ChampionStatusBoxSpacing + 46;
-	box._x2 = box._x1 + 3;
-	box._y1 = 2;
-	box._y2 = 26;
+	box._rect.left = champIndex * k69_ChampionStatusBoxSpacing + 46;
+	box._rect.right = box._rect.left + 3;
+	box._rect.top = 2;
+	box._rect.bottom = 26;
 	for (int16 barGraphIndex = 0; barGraphIndex < 3; barGraphIndex++) {
 		int16 barGraphHeight = barGraphHeights[barGraphIndex];
 		if (barGraphHeight < 25) {
-			box._y1 = 2;
-			box._y2 = 27 - barGraphHeight;
+			box._rect.top = 2;
+			box._rect.bottom = 27 - barGraphHeight;
 			_vm->_displayMan->fillScreenBox(box, kDMColorDarkestGray);
 		}
 		if (barGraphHeight) {
-			box._y1 = 27 - barGraphHeight;
-			box._y2 = 26;
+			box._rect.top = 27 - barGraphHeight;
+			box._rect.bottom = 26;
 			_vm->_displayMan->fillScreenBox(box, _championColor[champIndex]);
 		}
-		box._x1 += 7;
-		box._x2 += 7;
+		box._rect.left += 7;
+		box._rect.right += 7;
 	}
 	_vm->_eventMan->hideMouse();
 }
@@ -2127,10 +2127,10 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
 	_vm->_eventMan->showMouse();
 	if (getFlag(championAttributes, kDMAttributeStatusBox)) {
 		Box box;
-		box._y1 = 0;
-		box._y2 = 28;
-		box._x1 = championStatusBoxX;
-		box._x2 = box._x1 + 66;
+		box._rect.top = 0;
+		box._rect.bottom = 28;
+		box._rect.left = championStatusBoxX;
+		box._rect.right = box._rect.left + 66;
 		if (curChampion->_currHealth) {
 			_vm->_displayMan->fillScreenBox(box, kDMColorDarkestGray);
 			int16 nativeBitmapIndices[3];
@@ -2185,10 +2185,10 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
 			setFlag(championAttributes, kDMAttributeViewport);
 		} else {
 			Box box;
-			box._y1 = 0;
-			box._y2 = 6;
-			box._x1 = championStatusBoxX;
-			box._x2 = box._x1 + 42;
+			box._rect.top = 0;
+			box._rect.bottom = 6;
+			box._rect.left = championStatusBoxX;
+			box._rect.right = box._rect.left + 42;
 			_vm->_displayMan->fillScreenBox(box, kDMColorDarkGary);
 			_vm->_textMan->printToLogicalScreen(championStatusBoxX + 1, 5, nameColor, kDMColorDarkGary, curChampion->_name);
 		}
@@ -2319,10 +2319,10 @@ void ChampionMan::drawSlot(uint16 champIndex, int16 slotIndex) {
 
 	SlotBox *slotBox = &_vm->_objectMan->_slotBoxes[slotBoxIndex];
 	Box box;
-	box._x1 = slotBox->_x - 1;
-	box._y1 = slotBox->_y - 1;
-	box._x2 = box._x1 + 17;
-	box._y2 = box._y1 + 17;
+	box._rect.left = slotBox->_x - 1;
+	box._rect.top = slotBox->_y - 1;
+	box._rect.right = box._rect.left + 17;
+	box._rect.bottom = box._rect.top + 17;
 
 	if (!isInventoryChamp)
 		_vm->_eventMan->hideMouse();
@@ -2385,10 +2385,10 @@ void ChampionMan::renameChampion(Champion *champ) {
 	static const char reincarnateSpecialCharacters[6] = {',', '.', ';', ':', ' '};
 
 	Box displayBox;
-	displayBox._y1 = 3;
-	displayBox._y2 = 8;
-	displayBox._x1 = 3;
-	displayBox._x2 = displayBox._x1 + 167;
+	displayBox._rect.top = 3;
+	displayBox._rect.bottom = 8;
+	displayBox._rect.left = 3;
+	displayBox._rect.right = displayBox._rect.left + 167;
 
 	_vm->_displayMan->fillBoxBitmap(_vm->_displayMan->_bitmapViewport, displayBox, kDMColorDarkestGray, k112_byteWidthViewport, k136_heightViewport);
 	_vm->_displayMan->blitToViewport(_vm->_displayMan->getNativeBitmapOrGraphic(k27_PanelRenameChampionIndice), _vm->_inventoryMan->_boxPanel, k72_byteWidth, kDMColorCyan, 73);
diff --git a/engines/dm/dialog.cpp b/engines/dm/dialog.cpp
index e982219..af38bcd 100644
--- a/engines/dm/dialog.cpp
+++ b/engines/dm/dialog.cpp
@@ -119,11 +119,7 @@ void DialogMan::dialogDraw(const char *msg1, const char *msg2, const char *choic
 		}
 	}
 	if (screenDialog) {
-		Box displayBox;
-		displayBox._y1 = 33;
-		displayBox._y2 = 168;
-		displayBox._x1 = 47;
-		displayBox._x2 = 270;
+		Box displayBox(47, 270, 33, 168);
 		_vm->_eventMan->showMouse();
 		_vm->_displayMan->blitToScreen(_vm->_displayMan->_bitmapViewport, &displayBox, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport);
 		_vm->_eventMan->hideMouse();
@@ -187,62 +183,62 @@ int16 DialogMan::getChoice(uint16 choiceCount, uint16 dialogSetIndex, int16 driv
 	} while (_selectedDialogChoice == 99);
 	_vm->_displayMan->_useByteBoxCoordinates = false;
 	Box boxA = _vm->_eventMan->_primaryMouseInput[_selectedDialogChoice - 1]._hitbox;
-	boxA._x1 -= 3;
-	boxA._x2 += 3;
-	boxA._y1 -= 3;
-	boxA._y2 += 4;
+	boxA._rect.left -= 3;
+	boxA._rect.right += 3;
+	boxA._rect.top -= 3;
+	boxA._rect.bottom += 4;
 	_vm->_eventMan->showMouse();
 	_vm->_displayMan->_drawFloorAndCeilingRequested = true;
-	Box boxB(0, 0, boxA._x2 - boxA._x1 + 3, boxA._y2 - boxA._y1 + 3);
+	Box boxB(0, 0, boxA._rect.right - boxA._rect.left + 3, boxA._rect.bottom - boxA._rect.top + 3);
 	_vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, _vm->_displayMan->_bitmapViewport,
-										boxB, boxA._x1, boxA._y1, k160_byteWidthScreen, k160_byteWidthScreen, kDMColorNoTransparency, 200, 25);
+										boxB, boxA._rect.left, boxA._rect.top, k160_byteWidthScreen, k160_byteWidthScreen, kDMColorNoTransparency, 200, 25);
 	_vm->delay(1);
 	boxB = boxA;
-	boxB._y2 = boxB._y1;
+	boxB._rect.bottom = boxB._rect.top;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
 	boxB = boxA;
-	boxB._x2 = boxB._x1;
-	boxB._y2--;
+	boxB._rect.right = boxB._rect.left;
+	boxB._rect.bottom--;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
 	boxB = boxA;
-	boxB._y2--;
-	boxB._y1 = boxB._y2;
-	boxB._x1 -= 2;
+	boxB._rect.bottom--;
+	boxB._rect.top = boxB._rect.bottom;
+	boxB._rect.left -= 2;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
 	boxB = boxA;
-	boxB._x1 = boxB._x2;
+	boxB._rect.left = boxB._rect.right;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
 	_vm->delay(2);
 	boxB = boxA;
-	boxB._y1++;
-	boxB._y2 = boxB._y1;
-	boxB._x2 -= 2;
+	boxB._rect.top++;
+	boxB._rect.bottom = boxB._rect.top;
+	boxB._rect.right -= 2;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
 	boxB = boxA;
-	boxB._x1++;
-	boxB._x2 = boxB._x1;
-	boxB._y2--;
+	boxB._rect.left++;
+	boxB._rect.right = boxB._rect.left;
+	boxB._rect.bottom--;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
 	boxB = boxA;
-	boxB._x2--;
-	boxB._x1 = boxB._x2;
+	boxB._rect.right--;
+	boxB._rect.left = boxB._rect.right;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
 	boxB = boxA;
-	boxB._y1 = boxB._y2 = boxB._y2 - 2;
-	boxB._x1++;
+	boxB._rect.top = boxB._rect.bottom = boxB._rect.bottom - 2;
+	boxB._rect.left++;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
 	boxB = boxA;
-	boxB._y1 = boxB._y2 = boxB._y2 + 2;
-	boxB._x1--;
-	boxB._x2 += 2;
+	boxB._rect.top = boxB._rect.bottom = boxB._rect.bottom + 2;
+	boxB._rect.left--;
+	boxB._rect.right += 2;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorLightestGray);
 	boxB = boxA;
-	boxB._x1 = boxB._x2 = boxB._x2 + 3;
-	boxB._y2 += 2;
+	boxB._rect.left = boxB._rect.right = boxB._rect.right + 3;
+	boxB._rect.bottom += 2;
 	_vm->_displayMan->fillScreenBox(boxB, kDMColorLightestGray);
 	_vm->delay(2);
-	boxA._x2 += 3;
-	boxA._y2 += 3;
+	boxA._rect.right += 3;
+	boxA._rect.bottom += 3;
 	_vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapScreen,
 										boxA, 0, 0, k160_byteWidthScreen, k160_byteWidthScreen, kDMColorNoTransparency, 25, k200_heightScreen);
 	_vm->_eventMan->hideMouse();
diff --git a/engines/dm/dm.cpp b/engines/dm/dm.cpp
index 475950c..4355355 100644
--- a/engines/dm/dm.cpp
+++ b/engines/dm/dm.cpp
@@ -520,11 +520,11 @@ void DMEngine::processEntrance() {
 	Box displayBox(0, 100, 0, 160);
 	for (uint16 idx = 1; idx < 4; idx++) {
 		_displayMan->blitToBitmap(_entranceDoorAnimSteps[0], _entranceDoorAnimSteps[idx], displayBox, idx << 2, 0, k64_byteWidth, k64_byteWidth, kDMColorNoTransparency, 161, 161);
-		displayBox._x2 -= 4;
+		displayBox._rect.right -= 4;
 	}
-	displayBox._x2 = 127;
+	displayBox._rect.right = 127;
 	for (uint16 idx = 5; idx < 8; idx++) {
-		displayBox._x1 += 4;
+		displayBox._rect.left += 4;
 		_displayMan->blitToBitmap(_entranceDoorAnimSteps[4], _entranceDoorAnimSteps[idx], displayBox, 0, 0, k64_byteWidth, k64_byteWidth, kDMColorNoTransparency, 161, 161);
 	}
 
@@ -643,10 +643,10 @@ void DMEngine::endGame(bool doNotDrawCreditsOnly) {
 					Common::String displStr = Common::String::format("%s %s", _inventoryMan->_skillLevelNames[skillLevel - 2], _championMan->_baseSkillName[idx]);
 					_textMan->printEndGameString(105, textPosY = textPosY + 8, kDMColorLightestGray, displStr.c_str());
 				}
-				championMirrorBox._y1 += 48;
-				championMirrorBox._y2 += 48;
-				championPortraitBox._y1 += 48;
-				championPortraitBox._y1 += 48;
+				championMirrorBox._rect.top += 48;
+				championMirrorBox._rect.bottom += 48;
+				championPortraitBox._rect.top += 48;
+				championPortraitBox._rect.top += 48;
 			}
 			_displayMan->startEndFadeToPalette(_displayMan->_paletteTopAndBottomScreen);
 			_engineShouldQuit = true;
@@ -798,9 +798,9 @@ void DMEngine::openEntranceDoors() {
 		_eventMan->discardAllInput();
 		_displayMan->updateScreen();
 
-		leftDoorBox._x2 -= 4;
+		leftDoorBox._rect.right -= 4;
 		leftDoorBlitFrom += 4;
-		rightDoorBox._x1 += 4;
+		rightDoorBox._rect.left += 4;
 
 		delay(3);
 	}
@@ -869,7 +869,7 @@ void DMEngine::drawTittle() {
 	delay(1);
 	for (int16 i = 0; i < 18; i++) {
 		delay(2);
-		Box box(blitCoordinates[i]);
+		Box box(blitCoordinates[i][0], blitCoordinates[i][1], blitCoordinates[i][2], blitCoordinates[i][3]);
 		_displayMan->blitToBitmap(shrinkedTitle[i], _displayMan->_bitmapScreen, box, 0, 0, blitCoordinates[i][4], k160_byteWidthScreen, kDMColorNoTransparency, blitCoordinates[i][3] - blitCoordinates[i][2] + 1, k200_heightScreen);
 	}
 	delay(25);
diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp
index e5b860d..ffdb62c 100644
--- a/engines/dm/eventman.cpp
+++ b/engines/dm/eventman.cpp
@@ -976,7 +976,7 @@ void EventManager::commandMoveParty(CommandType cmdType) {
 	}
 	uint16 movementArrowIdx = cmdType - kDMCommandMoveForward;
 	Box *highlightBox = &boxMovementArrows[movementArrowIdx];
-	commandHighlightBoxEnable(highlightBox->_x1, highlightBox->_x2, highlightBox->_y1, highlightBox->_y2);
+	commandHighlightBoxEnable(highlightBox->_rect.left, highlightBox->_rect.right, highlightBox->_rect.top, highlightBox->_rect.bottom);
 	int16 partyMapX = _vm->_dungeonMan->_partyMapX;
 	int16 partyMapY = _vm->_dungeonMan->_partyMapY;
 
@@ -1255,10 +1255,10 @@ void EventManager::commandProcessCommands160To162ClickInResurrectReincarnatePane
 		}
 		champMan._partyChampionCount--;
 		Box box;
-		box._y1 = 0;
-		box._y2 = 28;
-		box._x1 = championIndex * k69_ChampionStatusBoxSpacing;
-		box._x2 = box._x1 + 66;
+		box._rect.top = 0;
+		box._rect.bottom = 28;
+		box._rect.left = championIndex * k69_ChampionStatusBoxSpacing;
+		box._rect.right = box._rect.left + 66;
 		dispMan._useByteBoxCoordinates = false;
 		dispMan.fillScreenBox(box, kDMColorBlack);
 		dispMan.fillScreenBox(_vm->_championMan->_boxChampionIcons[champMan.getChampionIconIndex(champ->_cell, dunMan._partyDir) * 2], kDMColorBlack);
@@ -1479,9 +1479,9 @@ void EventManager::mouseProcessCommands125To128_clickOnChampionIcon(uint16 champ
 		memset(tmpBitmap, 0, 32 * 18);
 		Box *curChampionIconBox = &_vm->_championMan->_boxChampionIcons[champIconIndex];
 
-		_vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, tmpBitmap, championIconShadowBox, curChampionIconBox->_x1, curChampionIconBox->_y1, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
+		_vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, tmpBitmap, championIconShadowBox, curChampionIconBox->_rect.left, curChampionIconBox->_rect.top, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
 		_vm->_displayMan->blitToBitmapShrinkWithPalChange(tmpBitmap, _mousePointerOriginalColorsChampionIcon, 32, 18, 32, 18, mousePointerIconShadowBox);
-		_vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, _mousePointerOriginalColorsChampionIcon, championIconBox, curChampionIconBox->_x1, curChampionIconBox->_y1, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
+		_vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, _mousePointerOriginalColorsChampionIcon, championIconBox, curChampionIconBox->_rect.left, curChampionIconBox->_rect.top, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
 		_vm->_displayMan->fillScreenBox(*curChampionIconBox, kDMColorBlack);
 		_useChampionIconOrdinalAsMousePointerBitmap = _vm->indexToOrdinal(champIconIndex);
 	} else {
@@ -1587,7 +1587,7 @@ void EventManager::commandProcessTypes101To108_clickInSpellSymbolsArea(CommandTy
 
 	uint16 symbolIndex = cmdType - kDMCommandClickInSpellAreaSymbol1;
 	Box *highlightBox = &spellSymbolsAndDelete[symbolIndex];
-	commandHighlightBoxEnable(highlightBox->_x1, highlightBox->_x2, highlightBox->_y1, highlightBox->_y2);
+	commandHighlightBoxEnable(highlightBox->_rect.left, highlightBox->_rect.right, highlightBox->_rect.top, highlightBox->_rect.bottom);
 	_vm->delay(1);
 	highlightBoxDisable();
 
@@ -1665,7 +1665,7 @@ void EventManager::commandHighlightBoxEnable(int16 x1, int16 x2, int16 y1, int16
 
 void EventManager::highlightBoxDisable() {
 	if (_highlightBoxEnabled == true) {
-		highlightScreenBox(_highlightScreenBox._x1, _highlightScreenBox._x2, _highlightScreenBox._y1, _highlightScreenBox._y2);
+		highlightScreenBox(_highlightScreenBox._rect.left, _highlightScreenBox._rect.right, _highlightScreenBox._rect.top, _highlightScreenBox._rect.bottom);
 		_highlightBoxEnabled = false;
 	}
 }
diff --git a/engines/dm/gfx.cpp b/engines/dm/gfx.cpp
index 7481f6c..e7267bf 100644
--- a/engines/dm/gfx.cpp
+++ b/engines/dm/gfx.cpp
@@ -769,10 +769,10 @@ void DisplayMan::drawDoorButton(int16 doorButtonOrdinal, DoorButton doorButton)
 		if (doorButton == kDMDoorButtonD1C) {
 			bitmap = getNativeBitmapOrGraphic(nativeBitmapIndex);
 
-			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._x1 = coordSetRedEagle[0];
-			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._x2 = coordSetRedEagle[1];
-			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._y1 = coordSetRedEagle[2];
-			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._y2 = coordSetRedEagle[3];
+			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._rect.left = coordSetRedEagle[0];
+			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._rect.right = coordSetRedEagle[1];
+			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._rect.top = coordSetRedEagle[2];
+			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn]._rect.bottom = coordSetRedEagle[3];
 		} else {
 			doorButtonOrdinal = kDMDerivedBitmapFirstDoorButton + (doorButtonOrdinal * 2) + ((doorButton != kDMDoorButtonD3R) ? 0 : (int16)doorButton - 1);
 			if (!isDerivedBitmapInCache(doorButtonOrdinal)) {
@@ -862,27 +862,27 @@ void DisplayMan::blitToBitmap(byte *srcBitmap, byte *destBitmap, const Box &box,
 								   uint16 destByteWidth, Color transparent, int16 srcHeight, int16 destHight) {
 	uint16 srcWidth = srcByteWidth * 2;
 	uint16 destWidth = destByteWidth * 2;
-	for (uint16 y = 0; y < box._y2 + 1 - box._y1; ++y) { // + 1 for inclusive boundaries
-		for (uint16 x = 0; x < box._x2 + 1 - box._x1; ++x) { // + 1 for inclusive boundaries
+	for (uint16 y = 0; y < box._rect.bottom + 1 - box._rect.top; ++y) { // + 1 for inclusive boundaries
+		for (uint16 x = 0; x < box._rect.right + 1 - box._rect.left; ++x) { // + 1 for inclusive boundaries
 			if (srcX + x < srcWidth && y + srcY < srcHeight
-				&& box._x1 + x < destWidth && y + box._y1 < destHight) {
+				&& box._rect.left + x < destWidth && y + box._rect.top < destHight) {
 				byte srcPixel = srcBitmap[srcWidth * (y + srcY) + srcX + x];
 				if (srcPixel != transparent)
-					destBitmap[destWidth * (y + box._y1) + box._x1 + x] = srcPixel;
+					destBitmap[destWidth * (y + box._rect.top) + box._rect.left + x] = srcPixel;
 			}
 		}
 	}
 }
 
 void DisplayMan::fillScreenBox(Box &box, Color color) {
-	uint16 width = box._x2 + 1 - box._x1; // + 1 for inclusive boundaries
-	for (int16 y = box._y1; y < box._y2 + 1; ++y) // + 1 for inclusive boundaries
-		memset(_bitmapScreen + y * _screenWidth + box._x1, color, sizeof(byte) * width);
+	uint16 width = box._rect.right + 1 - box._rect.left; // + 1 for inclusive boundaries
+	for (int16 y = box._rect.top; y < box._rect.bottom + 1; ++y) // + 1 for inclusive boundaries
+		memset(_bitmapScreen + y * _screenWidth + box._rect.left, color, sizeof(byte) * width);
 }
 
 void DisplayMan::fillBoxBitmap(byte *destBitmap, Box &box, Color color, int16 byteWidth, int16 height) {
-	for (int16 y = box._y1; y < box._y2 + 1; ++y) // + 1 for inclusive boundaries
-		memset(destBitmap + y * byteWidth * 2 + box._x1, color, sizeof(byte) * (box._x2 - box._x1 + 1)); // + 1 for inclusive boundaries
+	for (int16 y = box._rect.top; y < box._rect.bottom + 1; ++y) // + 1 for inclusive boundaries
+		memset(destBitmap + y * byteWidth * 2 + box._rect.left, color, sizeof(byte) * (box._rect.right - box._rect.left + 1)); // + 1 for inclusive boundaries
 }
 
 void DisplayMan::blitBoxFilledWithMaskedBitmap(byte *src, byte *dest, byte *mask, byte *tmp, Box& box,
@@ -894,8 +894,8 @@ void DisplayMan::blitBoxFilledWithMaskedBitmap(byte *src, byte *dest, byte *mask
 	byte nextUnitIndex = firstUnitIndex;
 	bool useMask = !(transparent & k0x0080_BlitDoNotUseMask);
 	transparent = (Color)(transparent & ~(k0x0080_BlitDoNotUseMask)); // clear flag 0x0080
-	for (byte next_y = box._y1; next_y <= box._y2; next_y++) { // '<=' for inclusive boundaries
-		for (byte next_x = box._x1; next_x <= box._x2; next_x++) { // '<=' for inclusive boundaries
+	for (byte next_y = box._rect.top; next_y <= box._rect.bottom; next_y++) { // '<=' for inclusive boundaries
+		for (byte next_x = box._rect.left; next_x <= box._rect.right; next_x++) { // '<=' for inclusive boundaries
 			byte *nextDestPixel = dest + next_y * destByteWidth * 2 + next_x;
 			byte nextSrcPixel = src[nextUnitIndex];
 
@@ -1930,7 +1930,7 @@ void DisplayMan::drawSquareD1C(Direction dir, int16 posX, int16 posY) {
 		if (_vm->_championMan->_party._event73Count_ThievesEye) {
 			isDerivedBitmapInCache(kDMDerivedBitmapThievesEyeVisibleArea);
 			blitToBitmap(_bitmapViewport, getDerivedBitmap(kDMDerivedBitmapThievesEyeVisibleArea),
-							  boxThievesEyeVisibleArea, _boxThievesEyeViewPortVisibleArea._x1, _boxThievesEyeViewPortVisibleArea._y1,
+							  boxThievesEyeVisibleArea, _boxThievesEyeViewPortVisibleArea._rect.left, _boxThievesEyeViewPortVisibleArea._rect.top,
 							  k112_byteWidthViewport, 48, kDMColorNoTransparency, 136, 95);
 			byte *bitmap = getNativeBitmapOrGraphic(k41_holeInWall_GraphicIndice);
 			blitToBitmap(bitmap, getDerivedBitmap(kDMDerivedBitmapThievesEyeVisibleArea),
@@ -2061,7 +2061,7 @@ void DisplayMan::drawSquareD0C(Direction dir, int16 posX, int16 posY) {
 		if (_vm->_championMan->_party._event73Count_ThievesEye) {
 			memmove(_tmpBitmap, _bitmapWallSetDoorFrameFront, 32 * 123);
 			blitToBitmap(getNativeBitmapOrGraphic(k41_holeInWall_GraphicIndice),
-							  _tmpBitmap, boxThievesEyeHoleInDoorFrame, doorFrameD0C._box._x1 - _boxThievesEyeViewPortVisibleArea._x1,
+							  _tmpBitmap, boxThievesEyeHoleInDoorFrame, doorFrameD0C._box._rect.left - _boxThievesEyeViewPortVisibleArea._rect.left,
 							  0, 48, 16, kDMColorGold, 95, 123);
 			drawWallSetBitmap(_tmpBitmap, doorFrameD0C);
 		} else
@@ -2099,7 +2099,7 @@ void DisplayMan::drawDungeon(Direction dir, int16 posX, int16 posY) {
 		_vm->_dungeonMan->_dungeonViewClickableBoxes[i].setToZero();
 
 	for (uint16 i = 0; i < 6; ++i)
-		_vm->_dungeonMan->_dungeonViewClickableBoxes[i]._x1 = 255;
+		_vm->_dungeonMan->_dungeonViewClickableBoxes[i]._rect.left = 255;
 
 	_useFlippedWallAndFootprintsBitmap = (posX + posY + dir) & 1;
 	if (_useFlippedWallAndFootprintsBitmap) {
@@ -2530,7 +2530,7 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 		46, 57, 68    /* D1L Right, D1R Left */
 	};
 
-	static byte g205_WallOrnCoordSets[8][13][6] = { // @ G0205_aaauc_Graphic558_WallOrnamentCoordinateSets
+	static byte wallOrnamentCoordSets[8][13][6] = { // @ G0205_aaauc_Graphic558_WallOrnamentCoordinateSets
 		/* { X1, X2, Y1, Y2, ByteWidth, Height } */
 		{
 			{80,  83, 41,  45,  8,   5},   /* D3L */
@@ -2662,7 +2662,7 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 	int16 wallOrnamentIndex = wallOrnOrd;
 	int16 ornNativeBitmapIndex = _currMapWallOrnInfo[wallOrnamentIndex].nativeIndice;
 	int16 wallOrnamentCoordinateSetIndex = _currMapWallOrnInfo[wallOrnamentIndex].coordinateSet;
-	byte *ornCoordSet = g205_WallOrnCoordSets[wallOrnamentCoordinateSetIndex][viewWallIndex];
+	byte *ornCoordSet = wallOrnamentCoordSets[wallOrnamentCoordinateSetIndex][viewWallIndex];
 	bool isAlcove = _vm->_dungeonMan->isWallOrnAnAlcove(wallOrnamentIndex);
 	unsigned char inscriptionString[70];
 	bool isInscription = (wallOrnamentIndex == _vm->_dungeonMan->_currMapInscriptionWallOrnIndex);
@@ -2686,18 +2686,18 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 						characterCount++;
 					}
 					Frame blitFrame;
-					blitFrame._box._x2 = (blitFrame._box._x1 = 112 - (characterCount << 2)) + 7;
-					blitFrame._box._y1 = (blitFrame._box._y2 = inscriptionLineY[textLineIndex++]) - 7;
+					blitFrame._box._rect.right = (blitFrame._box._rect.left = 112 - (characterCount << 2)) + 7;
+					blitFrame._box._rect.top = (blitFrame._box._rect.bottom = inscriptionLineY[textLineIndex++]) - 7;
 					while (characterCount--) {
 						blitToBitmap(L0092_puc_Bitmap, _bitmapViewport, blitFrame._box, *inscrString++ << 3, 0, k144_byteWidth, k112_byteWidthViewport, kDMColorFlesh, 8, k136_heightViewport);
-						blitFrame._box._x1 += 8;
-						blitFrame._box._x2 += 8;
+						blitFrame._box._rect.left += 8;
+						blitFrame._box._rect.right += 8;
 					}
 				} while (*inscrString++ != 129); /* Hexadecimal: 0x81 (Megamax C does not support hexadecimal character constants) */
 				return isAlcove;
 			}
 			ornNativeBitmapIndex++;
-			Box tmpBox(ornCoordSet);
+			Box tmpBox(ornCoordSet[0], ornCoordSet[1], ornCoordSet[2], ornCoordSet[3]);
 			_vm->_dungeonMan->_dungeonViewClickableBoxes[kDMViewCellDoorButtonOrWallOrn] = tmpBox;
 			_vm->_dungeonMan->_isFacingAlcove = isAlcove;
 			_vm->_dungeonMan->_isFacingViAltar =
@@ -2720,12 +2720,12 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 		int16 coordinateSetOffset = 0;
 		bool flipHorizontal = (viewWallIndex == kDMViewWallD2RLeft) || (viewWallIndex == kDMViewWallD3RLeft);
 		if (flipHorizontal)
-			ornBlitBitmap = g205_WallOrnCoordSets[wallOrnamentCoordinateSetIndex][kDMViewWallD1RLeft];
+			ornBlitBitmap = wallOrnamentCoordSets[wallOrnamentCoordinateSetIndex][kDMViewWallD1RLeft];
 		else if ((viewWallIndex == kDMViewWallD2LRight) || (viewWallIndex == kDMViewWallD3LRight))
-			ornBlitBitmap = g205_WallOrnCoordSets[wallOrnamentCoordinateSetIndex][kDMViewWallD1LRight];
+			ornBlitBitmap = wallOrnamentCoordSets[wallOrnamentCoordinateSetIndex][kDMViewWallD1LRight];
 		else {
 			ornNativeBitmapIndex++;
-			ornBlitBitmap = g205_WallOrnCoordSets[wallOrnamentCoordinateSetIndex][kDMViewWallD1CFront];
+			ornBlitBitmap = wallOrnamentCoordSets[wallOrnamentCoordinateSetIndex][kDMViewWallD1CFront];
 			if (viewWallIndex == kDMViewWallD2LFront)
 				coordinateSetOffset = 6;
 			else if (viewWallIndex == kDMViewWallD2RFront)
@@ -2767,9 +2767,8 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 		}
 	}
 
-	Box tmpBox(ornCoordSet);
-	blitToBitmap(ornBlitBitmap, _bitmapViewport, tmpBox,
-		blitPosX, 0,
+	Box tmpBox(ornCoordSet[0], ornCoordSet[1], ornCoordSet[2], ornCoordSet[3]);
+	blitToBitmap(ornBlitBitmap, _bitmapViewport, tmpBox, blitPosX, 0,
 		ornCoordSet[4], k112_byteWidthViewport, kDMColorFlesh, ornCoordSet[5], k136_heightViewport);
 
 	if ((viewWallIndex == kDMViewWallD1CFront) && _championPortraitOrdinal--) {
@@ -3209,10 +3208,10 @@ T0115015_DrawProjectileAsObject:
 					}
 				}
 				AL_4_xPos = coordinateSet[0];
-				boxByteGreen._y2 = coordinateSet[1];
+				boxByteGreen._rect.bottom = coordinateSet[1];
 				if (!drawProjectileAsObject) { /* If drawing an object that is not a projectile */
 					AL_4_xPos += shiftSets[AL_8_shiftSetIndex][objectPileShiftSetIndices[objectShiftIndex][0]];
-					boxByteGreen._y2 += shiftSets[AL_8_shiftSetIndex][objectPileShiftSetIndices[objectShiftIndex][1]];
+					boxByteGreen._rect.bottom += shiftSets[AL_8_shiftSetIndex][objectPileShiftSetIndices[objectShiftIndex][1]];
 					objectShiftIndex++; /* The next object drawn will use the next shift values */
 					if (L0135_B_DrawAlcoveObjects) {
 						if (objectShiftIndex >= 14)
@@ -3220,13 +3219,13 @@ T0115015_DrawProjectileAsObject:
 					} else
 						objectShiftIndex &= 0x000F;
 				}
-				boxByteGreen._y1 = boxByteGreen._y2 - (heightRedEagle - 1);
-				if (boxByteGreen._y2 > 135)
-					boxByteGreen._y2 = 135;
+				boxByteGreen._rect.top = boxByteGreen._rect.bottom - (heightRedEagle - 1);
+				if (boxByteGreen._rect.bottom > 135)
+					boxByteGreen._rect.bottom = 135;
 
-				boxByteGreen._x2 = MIN(223, AL_4_xPos + byteWidth);
-				boxByteGreen._x1 = MAX(0, AL_4_xPos - byteWidth + 1);
-				if (boxByteGreen._x1) {
+				boxByteGreen._rect.right = MIN(223, AL_4_xPos + byteWidth);
+				boxByteGreen._rect.left = MAX(0, AL_4_xPos - byteWidth + 1);
+				if (boxByteGreen._rect.left) {
 					if (flipHorizontal)
 						AL_4_xPos = paddingPixelCount;
 					else
@@ -3239,19 +3238,19 @@ T0115015_DrawProjectileAsObject:
 
 					Box *AL_6_box = &_vm->_dungeonMan->_dungeonViewClickableBoxes[AL_2_viewCell];
 
-					if (AL_6_box->_x1 == 255) { /* If the grabbable object is the first */
+					if (AL_6_box->_rect.left == 255) { /* If the grabbable object is the first */
 						*AL_6_box = boxByteGreen;
-						if ((heightGreenGoat = AL_6_box->_y2 - AL_6_box->_y1) < 14) { /* If the box is too small then enlarge it a little */
+						if ((heightGreenGoat = AL_6_box->_rect.bottom - AL_6_box->_rect.top) < 14) { /* If the box is too small then enlarge it a little */
 							heightGreenGoat = heightGreenGoat >> 1;
-							AL_6_box->_y1 += heightGreenGoat - 7;
+							AL_6_box->_rect.top += heightGreenGoat - 7;
 							if (heightGreenGoat < 4)
-								AL_6_box->_y2 -= heightGreenGoat - 3;
+								AL_6_box->_rect.bottom -= heightGreenGoat - 3;
 						}
 					} else { /* If there are several grabbable objects then enlarge the box so it includes all objects */
-						AL_6_box->_x1 = MIN(AL_6_box->_x1, boxByteGreen._x1);
-						AL_6_box->_x2 = MAX(AL_6_box->_x2, boxByteGreen._x2);
-						AL_6_box->_y1 = MIN(AL_6_box->_y1, boxByteGreen._y1);
-						AL_6_box->_y2 = MAX(AL_6_box->_y2, boxByteGreen._y2);
+						AL_6_box->_rect.left = MIN(AL_6_box->_rect.left, boxByteGreen._rect.left);
+						AL_6_box->_rect.right = MAX(AL_6_box->_rect.right, boxByteGreen._rect.right);
+						AL_6_box->_rect.top = MIN(AL_6_box->_rect.top, boxByteGreen._rect.top);
+						AL_6_box->_rect.bottom = MAX(AL_6_box->_rect.bottom, boxByteGreen._rect.bottom);
 					}
 					bitmapRedBanana = bitmapGreenAnt;
 					_vm->_dungeonMan->_pileTopObject[AL_2_viewCell] = thingParam; /* The object is at the top of the pile */
@@ -3471,8 +3470,8 @@ T0115077_DrawSecondHalfSquareCreature:
 		}
 		AL_4_yPos = coordinateSet[1];
 		AL_4_yPos += shiftSets[AL_8_shiftSetIndex][getVerticalOffsetM23(creatureAspectInt)];
-		boxByteGreen._y2 = MIN(AL_4_yPos, (int16)135);
-		boxByteGreen._y1 = MAX(0, AL_4_yPos - (heightRedEagle - 1));
+		boxByteGreen._rect.bottom = MIN(AL_4_yPos, (int16)135);
+		boxByteGreen._rect.top = MAX(0, AL_4_yPos - (heightRedEagle - 1));
 		AL_4_xPos = coordinateSet[0];
 		AL_4_xPos += shiftSets[AL_8_shiftSetIndex][getHorizontalOffsetM22(creatureAspectInt)];
 
@@ -3481,14 +3480,14 @@ T0115077_DrawSecondHalfSquareCreature:
 		else if (viewLane != kDMViewLaneCenter) /* Lane right */
 			AL_4_xPos += 100;
 
-		boxByteGreen._x2 = CLIP(0, AL_4_xPos + byteWidth, 223);
+		boxByteGreen._rect.right = CLIP(0, AL_4_xPos + byteWidth, 223);
 
-		if (!boxByteGreen._x2)
+		if (!boxByteGreen._rect.right)
 			goto T0115126_CreatureNotVisible;
 		int16 AL_0_creaturePosX;
-		boxByteGreen._x1 = CLIP(0, AL_4_xPos - byteWidth + 1, 223);
-		if (boxByteGreen._x1) {
-			if (boxByteGreen._x1 == 223)
+		boxByteGreen._rect.left = CLIP(0, AL_4_xPos - byteWidth + 1, 223);
+		if (boxByteGreen._rect.left) {
+			if (boxByteGreen._rect.left == 223)
 				goto T0115126_CreatureNotVisible;
 			AL_0_creaturePosX = creaturePaddingPixelCount;
 		} else
@@ -3609,11 +3608,11 @@ T0115129_DrawProjectiles:
 						if (flipHorizontal)
 							flipBitmapHorizontal(bitmapRedBanana, AL_4_normalizdByteWidth, heightRedEagle);
 					}
-					boxByteGreen._y2 = (heightRedEagle >> 1) + 47;
-					boxByteGreen._y1 = 47 - (heightRedEagle >> 1) + !(heightRedEagle & 0x0001);
-					boxByteGreen._x2 = MIN(223, projectilePosX + byteWidth);
-					boxByteGreen._x1 = MAX(0, projectilePosX - byteWidth + 1);
-					if (boxByteGreen._x1) {
+					boxByteGreen._rect.bottom = (heightRedEagle >> 1) + 47;
+					boxByteGreen._rect.top = 47 - (heightRedEagle >> 1) + !(heightRedEagle & 0x0001);
+					boxByteGreen._rect.right = MIN(223, projectilePosX + byteWidth);
+					boxByteGreen._rect.left = MAX(0, projectilePosX - byteWidth + 1);
+					if (boxByteGreen._rect.left) {
 						if (flipHorizontal)
 							AL_4_xPos = paddingPixelCount;
 						else
@@ -3732,19 +3731,19 @@ T0115200_DrawExplosion:
 				if (flipHorizontal)
 					paddingPixelCount = (7 - ((byteWidth - 1) & 0x0007)) << 1; /* Number of unused pixels in the units on the right of the bitmap */
 
-				boxByteGreen._y2 = MIN(135, explosionCoordinates[1] + (heightRedEagle >> 1));
+				boxByteGreen._rect.bottom = MIN(135, explosionCoordinates[1] + (heightRedEagle >> 1));
 				AL_4_yPos = MAX(0, explosionCoordinates[1] - (heightRedEagle >> 1) + !(heightRedEagle & 0x0001));
 				if (AL_4_yPos >= 136)
 					continue;
-				boxByteGreen._y1 = AL_4_yPos;
+				boxByteGreen._rect.top = AL_4_yPos;
 				AL_4_xPos = MIN(223, explosionCoordinates[0] + byteWidth);
 				if (AL_4_xPos < 0)
 					continue;
-				boxByteGreen._x2 = AL_4_xPos;
+				boxByteGreen._rect.right = AL_4_xPos;
 				AL_4_xPos = explosionCoordinates[0];
-				boxByteGreen._x1 = CLIP(0, AL_4_xPos - byteWidth + 1, 223);
+				boxByteGreen._rect.left = CLIP(0, AL_4_xPos - byteWidth + 1, 223);
 
-				if (boxByteGreen._x1)
+				if (boxByteGreen._rect.left)
 					AL_4_xPos = paddingPixelCount;
 				else {
 					AL_4_xPos = MAX(paddingPixelCount, int16(byteWidth - AL_4_xPos - 1)); /* BUG0_07 Graphical glitch when drawing explosions. If an explosion bitmap is cropped because it is only partly visible on the left side of the viewport (boxByteGreen.X1 = 0) and the bitmap is not flipped horizontally (flipHorizontal = false) then the variable paddingPixelCount is not set before being used here. Its previous value (defined while drawing something else) is used and may cause an incorrect bitmap to be drawn */
@@ -3752,7 +3751,7 @@ T0115200_DrawExplosion:
 																				   /* BUG0_06 Graphical glitch when drawing projectiles or explosions. If a projectile or explosion bitmap is cropped because it is only partly visible on the left side of the viewport (boxByteGreen.X1 = 0) and the bitmap is flipped horizontally (flipHorizontal = true) then a wrong part of the bitmap is drawn on screen. To fix this bug, "+ paddingPixelCount" must be added to the second parameter of this function call */
 				}
 
-				if (boxByteGreen._x2 <= boxByteGreen._x1)
+				if (boxByteGreen._rect.right <= boxByteGreen._rect.left)
 					continue;
 
 				byteWidth = getNormalizedByteWidth(byteWidth);
diff --git a/engines/dm/gfx.h b/engines/dm/gfx.h
index e8cdb29..6fc6253 100644
--- a/engines/dm/gfx.h
+++ b/engines/dm/gfx.h
@@ -371,25 +371,25 @@ public:
 // in all cases, where a function takes a Box, it expects it to contain inclusive boundaries
 class Box {
 public:
-	int16 _x1;
-	int16 _x2;
-	int16 _y1;
-	int16 _y2;
+	Common::Rect _rect;
 
-	Box(int16 x1, int16 x2, int16 y1, int16 y2) : _x1(x1), _x2(x2), _y1(y1), _y2(y2) {}
-	Box() {}
-	template <typename T>
-	explicit Box(T *ptr) {
-		_x1 = *ptr++;
-		_x2 = *ptr++;
-		_y1 = *ptr++;
-		_y2 = *ptr++;
+	Box(int16 x1, int16 x2, int16 y1, int16 y2) {
+		// +1 because Rect.constains is not inclusive for right and bottom, at the opposite of the isPointInside
+		_rect = Common::Rect(x1, y1, x2, y2);
 	}
+
+	Box() {}
+
 	bool isPointInside(Common::Point point) {
-		return (_x1 <= point.x) && (point.x <= _x2) && (_y1 <= point.y) && (point.y <= _y2); // <= because incluseive boundaries
+		// not using Common::Rect::contains() because we need both boundaries to be included
+		return (_rect.left <= point.x) && (point.x <= _rect.right) && (_rect.top <= point.y) && (point.y <= _rect.bottom);
 	}
-	bool isPointInside(int16 x, int16 y) { return isPointInside(Common::Point(x, y)); }
-	void setToZero() { _x1 = _x2 = _y1 = _y2 = 0; }
+
+	bool isPointInside(int16 x, int16 y) {
+		return isPointInside(Common::Point(x, y));
+	}
+
+	void setToZero() { _rect = Common::Rect(0, 0, 0, 0); }
 }; // @ BOX_BYTE, BOX_WORD
 
 extern Box g2_BoxMovementArrows; // @ G0002_s_Graphic562_Box_MovementArrows
diff --git a/engines/dm/inventory.cpp b/engines/dm/inventory.cpp
index 0b07cf0..92843ee 100644
--- a/engines/dm/inventory.cpp
+++ b/engines/dm/inventory.cpp
@@ -166,19 +166,19 @@ void InventoryMan::drawStatusBoxPortrait(ChampionIndex championIndex) {
 	DisplayMan &dispMan = *_vm->_displayMan;
 	dispMan._useByteBoxCoordinates = false;
 	Box box;
-	box._y1 = 0;
-	box._y2 = 28;
-	box._x1 = championIndex * k69_ChampionStatusBoxSpacing + 7;
-	box._x2 = box._x1 + 31;
+	box._rect.top = 0;
+	box._rect.bottom = 28;
+	box._rect.left = championIndex * k69_ChampionStatusBoxSpacing + 7;
+	box._rect.right = box._rect.left + 31;
 	dispMan.blitToScreen(_vm->_championMan->_champions[championIndex]._portrait, &box, k16_byteWidth, kDMColorNoTransparency, 29);
 }
 
 void InventoryMan::drawPanelHorizontalBar(int16 x, int16 y, int16 pixelWidth, Color color) {
 	Box box;
-	box._x1 = x;
-	box._x2 = box._x1 + pixelWidth;
-	box._y1 = y;
-	box._y2 = box._y1 + 6;
+	box._rect.left = x;
+	box._rect.right = box._rect.left + pixelWidth;
+	box._rect.top = y;
+	box._rect.bottom = box._rect.top + 6;
 	_vm->_displayMan->_useByteBoxCoordinates = false;
 	_vm->_displayMan->fillBoxBitmap(_vm->_displayMan->_bitmapViewport, box, color, k112_byteWidthViewport, k136_heightViewport);
 }
diff --git a/engines/dm/menus.cpp b/engines/dm/menus.cpp
index 4481c04..2e5f92f 100644
--- a/engines/dm/menus.cpp
+++ b/engines/dm/menus.cpp
@@ -191,10 +191,10 @@ void MenuMan::drawActionIcon(ChampionIndex championIndex) {
 	Champion &champion = _vm->_championMan->_champions[championIndex];
 
 	Box box;
-	box._x1 = championIndex * 22 + 233;
-	box._x2 = box._x1 + 19;
-	box._y1 = 86;
-	box._y2 = 120;
+	box._rect.left = championIndex * 22 + 233;
+	box._rect.right = box._rect.left + 19;
+	box._rect.top = 86;
+	box._rect.bottom = 120;
 	dm._useByteBoxCoordinates = false;
 	if (!champion._currHealth) {
 		dm.fillScreenBox(box, kDMColorBlack);
@@ -216,10 +216,10 @@ void MenuMan::drawActionIcon(ChampionIndex championIndex) {
 T0386006:
 	dm.fillScreenBox(box, kDMColorCyan);
 	Box box2;
-	box2._x1 = box._x1 + 2;
-	box2._x2 = box._x2 - 2;
-	box2._y1 = 95;
-	box2._y2 = 110;
+	box2._rect.left = box._rect.left + 2;
+	box2._rect.right = box._rect.right - 2;
+	box2._rect.top = 95;
+	box2._rect.bottom = 110;
 	dm.blitToScreen(bitmapIcon, &box2, k8_byteWidth, kDMColorNoTransparency, 16);
 	if (champion.getAttributes(kDMAttributeDisableAction) || _vm->_championMan->_candidateChampionOrdinal || _vm->_championMan->_partyIsSleeping) {
 		_vm->_displayMan->shadeScreenBox(&box, kDMColorBlack);
diff --git a/engines/dm/objectman.cpp b/engines/dm/objectman.cpp
index 76b40d5..5b3407b 100644
--- a/engines/dm/objectman.cpp
+++ b/engines/dm/objectman.cpp
@@ -205,10 +205,10 @@ void ObjectMan::drawIconInSlotBox(uint16 slotBoxIndex, int16 iconIndex) {
 		return;
 
 	Box blitBox;
-	blitBox._x1 = slotBox->_x;
-	blitBox._x2 = blitBox._x1 + 15;
-	blitBox._y1 = slotBox->_y;
-	blitBox._y2 = blitBox._y1 + 15;
+	blitBox._rect.left = slotBox->_x;
+	blitBox._rect.right = blitBox._rect.left + 15;
+	blitBox._rect.top = slotBox->_y;
+	blitBox._rect.bottom = blitBox._rect.top + 15;
 
 	uint16 iconGraphicIndex;
 	for (iconGraphicIndex = 0; iconGraphicIndex < 7; iconGraphicIndex++) {
diff --git a/engines/dm/text.cpp b/engines/dm/text.cpp
index 65b83ca..a006c6e 100644
--- a/engines/dm/text.cpp
+++ b/engines/dm/text.cpp
@@ -192,13 +192,13 @@ void TextMan::moveCursor(int16 column, int16 row) {
 void TextMan::clearExpiredRows() {
 	_vm->_displayMan->_useByteBoxCoordinates = false;
 	Box displayBox;
-	displayBox._x1 = 0;
-	displayBox._x2 = 319;
+	displayBox._rect.left = 0;
+	displayBox._rect.right = 319;
 	for (uint16 rowIndex = 0; rowIndex < 4; rowIndex++) {
 		int32 expirationTime = _messageAreaRowExpirationTime[rowIndex];
 		if ((expirationTime == -1) || (expirationTime > _vm->_gameTime) || _isScrolling)
 			continue;
-		displayBox._y2 = (displayBox._y1 = 172 + (rowIndex * 7)) + 6;
+		displayBox._rect.bottom = (displayBox._rect.top = 172 + (rowIndex * 7)) + 6;
 		isTextScrolling(&_textScroller, true);
 		_vm->_displayMan->fillBoxBitmap(_vm->_displayMan->_bitmapScreen, displayBox, kDMColorBlack, k160_byteWidthScreen, k200_heightScreen);
 		_messageAreaRowExpirationTime[rowIndex] = -1;


Commit: 93109b77ff24891ca4209d33be396127c1af7603
    https://github.com/scummvm/scummvm/commit/93109b77ff24891ca4209d33be396127c1af7603
Author: Strangerke (strangerke at scummvm.org)
Date: 2016-09-16T22:06:01+02:00

Commit Message:
DM: Clarify some assignments

Changed paths:
    engines/dm/gfx.cpp
    engines/dm/text.cpp



diff --git a/engines/dm/gfx.cpp b/engines/dm/gfx.cpp
index e7267bf..08d5de4 100644
--- a/engines/dm/gfx.cpp
+++ b/engines/dm/gfx.cpp
@@ -2686,8 +2686,10 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 						characterCount++;
 					}
 					Frame blitFrame;
-					blitFrame._box._rect.right = (blitFrame._box._rect.left = 112 - (characterCount << 2)) + 7;
-					blitFrame._box._rect.top = (blitFrame._box._rect.bottom = inscriptionLineY[textLineIndex++]) - 7;
+					blitFrame._box._rect.left = 112 - (characterCount << 2);
+					blitFrame._box._rect.right = blitFrame._box._rect.left + 7;
+					blitFrame._box._rect.bottom = inscriptionLineY[textLineIndex++];
+					blitFrame._box._rect.top = blitFrame._box._rect.bottom - 7;
 					while (characterCount--) {
 						blitToBitmap(L0092_puc_Bitmap, _bitmapViewport, blitFrame._box, *inscrString++ << 3, 0, k144_byteWidth, k112_byteWidthViewport, kDMColorFlesh, 8, k136_heightViewport);
 						blitFrame._box._rect.left += 8;
@@ -2732,7 +2734,8 @@ bool DisplayMan::isDrawnWallOrnAnAlcove(int16 wallOrnOrd, ViewWall viewWallIndex
 				coordinateSetOffset = -6;
 		}
 		blitPosX = (ornCoordSet + coordinateSetOffset)[1] - (ornCoordSet + coordinateSetOffset)[0];
-		if (!isDerivedBitmapInCache(wallOrnamentIndex = kDMDerivedBitmapFirstWallOrnament + (wallOrnamentIndex << 2) + wallOrnDerivedBitmapIndexIncrement[viewWallIndex])) {
+		wallOrnamentIndex = kDMDerivedBitmapFirstWallOrnament + (wallOrnamentIndex << 2) + wallOrnDerivedBitmapIndexIncrement[viewWallIndex];
+		if (!isDerivedBitmapInCache(wallOrnamentIndex)) {
 			byte *blitBitmap = getNativeBitmapOrGraphic(ornNativeBitmapIndex);
 			blitToBitmapShrinkWithPalChange(blitBitmap, getDerivedBitmap(wallOrnamentIndex), ornBlitBitmap[4] << 1, ornBlitBitmap[5], ornCoordSet[4] << 1, ornCoordSet[5], (viewWallIndex <= kDMViewWallD3RFront) ? _palChangesDoorButtonAndWallOrnD3 : _palChangesDoorButtonAndWallOrnD2);
 			addDerivedBitmap(wallOrnamentIndex);
@@ -3107,7 +3110,8 @@ void DisplayMan::drawObjectsCreaturesProjectilesExplosions(Thing thingParam, Dir
 	} else
 		doorFrontViewDrawingPass = 0; /* The function call is not to draw objects on a door square viewed from the front */
 
-	L0135_B_DrawAlcoveObjects = !(remainingViewCellOrdinalsToProcess = orderedViewCellOrdinals);
+	remainingViewCellOrdinalsToProcess = orderedViewCellOrdinals;
+	L0135_B_DrawAlcoveObjects = !(remainingViewCellOrdinalsToProcess);
 	AL_10_viewSquareIndexBackup = viewSquareIndex;
 	viewLane = (ViewLane)((viewSquareIndex + 3) % 3);
 	bool twoHalfSquareCreaturesFrontView;
@@ -3132,7 +3136,8 @@ void DisplayMan::drawObjectsCreaturesProjectilesExplosions(Thing thingParam, Dir
 		objectShiftIndex += (cellYellowBear & 0x0001) << 3;
 		drawProjectileAsObject = false;
 		do {
-			if ((AL_4_thingType = thingParam.getType()) == kDMThingTypeGroup) {
+			AL_4_thingType = thingParam.getType();
+			if (AL_4_thingType == kDMThingTypeGroup) {
 				groupThing = thingParam;
 				continue;
 			}
@@ -3200,7 +3205,8 @@ T0115015_DrawProjectileAsObject:
 						bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
 					else {
 						bitmapGreenAnt = getNativeBitmapOrGraphic(AL_4_nativeBitmapIndex);
-						blitToBitmapShrinkWithPalChange(bitmapGreenAnt, bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex), objectAspect->_byteWidth << 1, objectAspect->_height, byteWidth << 1, heightRedEagle, paletteChanges);
+						bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
+						blitToBitmapShrinkWithPalChange(bitmapGreenAnt, bitmapRedBanana, objectAspect->_byteWidth << 1, objectAspect->_height, byteWidth << 1, heightRedEagle, paletteChanges);
 						if (flipHorizontal)
 							flipBitmapHorizontal(bitmapRedBanana, getNormalizedByteWidth(byteWidth), heightRedEagle);
 
@@ -3240,7 +3246,8 @@ T0115015_DrawProjectileAsObject:
 
 					if (AL_6_box->_rect.left == 255) { /* If the grabbable object is the first */
 						*AL_6_box = boxByteGreen;
-						if ((heightGreenGoat = AL_6_box->_rect.bottom - AL_6_box->_rect.top) < 14) { /* If the box is too small then enlarge it a little */
+						heightGreenGoat = AL_6_box->_rect.bottom - AL_6_box->_rect.top;
+						if (heightGreenGoat < 14) { /* If the box is too small then enlarge it a little */
 							heightGreenGoat = heightGreenGoat >> 1;
 							AL_6_box->_rect.top += heightGreenGoat - 7;
 							if (heightGreenGoat < 4)
@@ -3292,7 +3299,8 @@ T0115015_DrawProjectileAsObject:
 
 		creatureDirectionDelta = _vm->normalizeModulo4(directionParam - _vm->_groupMan->getCreatureValue(activeGroup->_directions, AL_0_creatureIndexRed));
 		twoHalfSquareCreaturesFrontView = false;
-		if ((AL_4_groupCells = activeGroup->_cells) == k255_CreatureTypeSingleCenteredCreature) { /* If there is a single centered creature in the group */
+		AL_4_groupCells = activeGroup->_cells;
+		if (AL_4_groupCells == k255_CreatureTypeSingleCenteredCreature) { /* If there is a single centered creature in the group */
 			if (remainingViewCellOrdinalsToProcess || (doorFrontViewDrawingPass == 1))
 				goto T0115129_DrawProjectiles; /* Do not draw a single centered creature now, wait until second pass (for a front view door) or until all cells have been drawn so the creature is drawn over all the objects on the floor */
 
@@ -3319,7 +3327,8 @@ T0115015_DrawProjectileAsObject:
 						creatureIndexGreen = 0;
 
 					twoHalfSquareCreaturesFrontView = group->getCount();
-					if (((AL_4_groupCells = _vm->_groupMan->getCreatureValue(AL_4_groupCells, AL_0_creatureIndexRed)) == directionParam) || (AL_4_groupCells == _vm->turnDirLeft(directionParam)))
+					AL_4_groupCells = _vm->_groupMan->getCreatureValue(AL_4_groupCells, AL_0_creatureIndexRed);
+					if ((AL_4_groupCells == directionParam) || (AL_4_groupCells == _vm->turnDirLeft(directionParam)))
 						AL_2_viewCell = k0_HalfSizedViewCell_LeftColumn;
 					else
 						AL_2_viewCell = k1_HalfSizedViewCell_RightColumn;
@@ -3417,9 +3426,10 @@ T0115077_DrawSecondHalfSquareCreature:
 				bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
 			else {
 				bitmapGreenAnt = getNativeBitmapOrGraphic(AL_4_nativeBitmapIndex);
-				if (getFlag(creatureGraphicInfoRed, kDMCreatureMaskFlipNonAttack))
-					copyBitmapAndFlipHorizontal(bitmapGreenAnt, bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex), byteWidth, heightRedEagle);
-
+				if (getFlag(creatureGraphicInfoRed, kDMCreatureMaskFlipNonAttack)) {
+					bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
+					copyBitmapAndFlipHorizontal(bitmapGreenAnt, bitmapRedBanana, byteWidth, heightRedEagle);
+				}
 				addDerivedBitmap(derivedBitmapIndex);
 			}
 		} else { /* Creature is on D2 or D3 */
@@ -3449,7 +3459,8 @@ T0115077_DrawSecondHalfSquareCreature:
 				bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
 			else {
 				bitmapGreenAnt = getNativeBitmapOrGraphic(AL_4_nativeBitmapIndex);
-				blitToBitmapShrinkWithPalChange(bitmapGreenAnt, bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex), sourceByteWidth << 1, sourceHeight, byteWidth << 1, heightRedEagle, paletteChanges);
+				bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
+				blitToBitmapShrinkWithPalChange(bitmapGreenAnt, bitmapRedBanana, sourceByteWidth << 1, sourceHeight, byteWidth << 1, heightRedEagle, paletteChanges);
 				addDerivedBitmap(derivedBitmapIndex);
 			}
 			if ((useCreatureSideBitmap && (creatureDirectionDelta == 1)) || /* If creature is viewed from the right, the side view must be flipped */
@@ -3522,7 +3533,8 @@ T0115129_DrawProjectiles:
 		do {
 			if ((thingParam.getType() == kDMThingTypeProjectile) && (thingParam.getCell() == cellYellowBear)) {
 				Projectile *projectile = (Projectile *)_vm->_dungeonMan->getThingData(thingParam);
-				if ((AL_4_projectileAspect = _vm->_dungeonMan->getProjectileAspect(projectile->_slot)) < 0) { /* Negative value: projectile aspect is the ordinal of a PROJECTIL_ASPECT */
+				AL_4_projectileAspect = _vm->_dungeonMan->getProjectileAspect(projectile->_slot);
+				if (AL_4_projectileAspect < 0) { /* Negative value: projectile aspect is the ordinal of a PROJECTIL_ASPECT */
 					objectAspect = (ObjectAspect *)&_projectileAspect[_vm->ordinalToIndex(-AL_4_projectileAspect)];
 					AL_4_nativeBitmapIndex = ((ProjectileAspect *)objectAspect)->_firstNativeBitmapRelativeIndex + k316_FirstProjectileGraphicIndice;
 					projectileAspectType = getFlag(((ProjectileAspect *)objectAspect)->_graphicInfo, k0x0003_ProjectileAspectTypeMask);
@@ -3557,7 +3569,8 @@ T0115129_DrawProjectiles:
 
 						if (projectileAspectTypeHasBackGraphicAndRotation) {
 							flipHorizontal = (AL_2_viewCell == kDMViewCellFronLeft) || (AL_2_viewCell == kDMViewCellBackLeft);
-							if (!(flipVertical = projectileFlipVertical))
+							flipVertical = projectileFlipVertical;
+							if (!flipVertical)
 								flipHorizontal = !flipHorizontal;
 						} else {
 							flipVertical = false;
@@ -3581,7 +3594,8 @@ T0115129_DrawProjectiles:
 						if (flipHorizontal)
 							paddingPixelCount = (7 - ((byteWidth - 1) & 0x0007)) << 1;
 
-						if (doNotScaleWithKineticEnergy && isDerivedBitmapInCache(derivedBitmapIndex = kDMDerivedBitmapFirstProjectile + ((ProjectileAspect *)objectAspect)->_firstDerivedBitmapRelativeIndex + (projectileBitmapIndexDelta * 6) + AL_8_projectileScaleIndex)) {
+						derivedBitmapIndex = kDMDerivedBitmapFirstProjectile + ((ProjectileAspect *)objectAspect)->_firstDerivedBitmapRelativeIndex + (projectileBitmapIndexDelta * 6) + AL_8_projectileScaleIndex;
+						if (doNotScaleWithKineticEnergy && isDerivedBitmapInCache(derivedBitmapIndex)) {
 							bitmapRedBanana = getDerivedBitmap(derivedBitmapIndex);
 						} else {
 							bitmapGreenAnt = getNativeBitmapOrGraphic(AL_4_nativeBitmapIndex);
@@ -3651,7 +3665,8 @@ T0115171_BackFromT0115015_DrawProjectileAsObject:;
 		if (thingParam.getType() == kDMThingTypeExplosion) {
 			AL_2_cellPurpleMan = thingParam.getCell();
 			Explosion *explosion = (Explosion *)_vm->_dungeonMan->getThingData(thingParam);
-			bool rebirthExplosion = ((uint16)(AL_4_explosionType = explosion->getType()) >= kDMExplosionTypeRebirthStep1);
+			AL_4_explosionType = explosion->getType();
+			bool rebirthExplosion = ((uint16)AL_4_explosionType >= kDMExplosionTypeRebirthStep1);
 			if (rebirthExplosion && ((AL_1_viewSquareExplosionIndex < kDMViewSquareD3CExplosion) || (AL_1_viewSquareExplosionIndex > kDMViewSquareD1CExplosion) || (AL_2_cellPurpleMan != cellYellowBear))) /* If explosion is rebirth and is not visible */
 				continue;
 			bool smoke = false;
diff --git a/engines/dm/text.cpp b/engines/dm/text.cpp
index a006c6e..c3cadd3 100644
--- a/engines/dm/text.cpp
+++ b/engines/dm/text.cpp
@@ -198,7 +198,8 @@ void TextMan::clearExpiredRows() {
 		int32 expirationTime = _messageAreaRowExpirationTime[rowIndex];
 		if ((expirationTime == -1) || (expirationTime > _vm->_gameTime) || _isScrolling)
 			continue;
-		displayBox._rect.bottom = (displayBox._rect.top = 172 + (rowIndex * 7)) + 6;
+		displayBox._rect.top = 172 + (rowIndex * 7);
+		displayBox._rect.bottom = displayBox._rect.top + 6;
 		isTextScrolling(&_textScroller, true);
 		_vm->_displayMan->fillBoxBitmap(_vm->_displayMan->_bitmapScreen, displayBox, kDMColorBlack, k160_byteWidthScreen, k200_heightScreen);
 		_messageAreaRowExpirationTime[rowIndex] = -1;





More information about the Scummvm-git-logs mailing list