LAB: Make processMap a bit more readable by using Rects
This commit is contained in:
parent
b1fc785225
commit
15889e6fd2
3 changed files with 12 additions and 11 deletions
|
@ -503,32 +503,28 @@ void LabEngine::processMap(uint16 curRoom) {
|
|||
}
|
||||
}
|
||||
} else if (msgClass == kMessageLeftClick) {
|
||||
if ((curFloor == kFloorLower) && (mouseX >= _utils->mapScaleX(538)) && (mouseY >= _utils->mapScaleY(277))
|
||||
&& (mouseX <= _utils->mapScaleX(633)) && (mouseY <= _utils->mapScaleY(352))
|
||||
if ((curFloor == kFloorLower) && _utils->mapRectScale(538, 277, 633, 352).contains(mouseX, mouseY)
|
||||
&& floorVisited(kFloorSurMaze)) {
|
||||
curFloor = kFloorSurMaze;
|
||||
|
||||
_graphics->fade(false, 0);
|
||||
drawMap(curRoom, curMsg, curFloor, false, false);
|
||||
_graphics->fade(true, 0);
|
||||
} else if ((curFloor == kFloorMiddle) && (mouseX >= _utils->mapScaleX(358)) && (mouseY >= _utils->mapScaleY(71))
|
||||
&& (mouseX <= _utils->mapScaleX(452)) && (mouseY <= _utils->mapScaleY(147))
|
||||
} else if ((curFloor == kFloorMiddle) && _utils->mapRectScale(358, 71, 452, 147).contains(mouseX, mouseY)
|
||||
&& floorVisited(kFloorCarnival)) {
|
||||
curFloor = kFloorCarnival;
|
||||
|
||||
_graphics->fade(false, 0);
|
||||
drawMap(curRoom, curMsg, curFloor, false, false);
|
||||
_graphics->fade(true, 0);
|
||||
} else if ((curFloor == kFloorMiddle) && (mouseX >= _utils->mapScaleX(557)) && (mouseY >= _utils->mapScaleY(325))
|
||||
&& (mouseX <= _utils->mapScaleX(653)) && (mouseY <= _utils->mapScaleY(401))
|
||||
} else if ((curFloor == kFloorMiddle) && _utils->mapRectScale(557, 325, 653, 401).contains(mouseX, mouseY)
|
||||
&& floorVisited(kFloorMedMaze)) {
|
||||
curFloor = kFloorMedMaze;
|
||||
|
||||
_graphics->fade(false, 0);
|
||||
drawMap(curRoom, curMsg, curFloor, false, false);
|
||||
_graphics->fade(true, 0);
|
||||
} else if ((curFloor == kFloorUpper) && (mouseX >= _utils->mapScaleX(524)) && (mouseY >= _utils->mapScaleY(97))
|
||||
&& (mouseX <= _utils->mapScaleX(645)) && (mouseY <= _utils->mapScaleY(207))
|
||||
} else if ((curFloor == kFloorUpper) && _utils->mapRectScale(524, 97, 645, 207).contains(mouseX, mouseY)
|
||||
&& floorVisited(kFloorHedgeMaze)) {
|
||||
curFloor = kFloorHedgeMaze;
|
||||
|
||||
|
|
|
@ -74,6 +74,10 @@ uint16 Utils::mapScaleY(uint16 y) {
|
|||
return ((y - 35) >> 1) - (y >> 6);
|
||||
}
|
||||
|
||||
Common::Rect Utils::mapRectScale(int16 x1, int16 y1, int16 x2, int16 y2) {
|
||||
return Common::Rect(mapScaleX(x1), mapScaleY(y1), mapScaleX(x2), mapScaleY(y2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Scales the VGA coords to SVGA if necessary; otherwise, returns VGA coords.
|
||||
*/
|
||||
|
|
|
@ -57,6 +57,7 @@ public:
|
|||
uint16 svgaCord(uint16 cord);
|
||||
uint16 mapScaleX(uint16 x);
|
||||
uint16 mapScaleY(uint16 y);
|
||||
Common::Rect mapRectScale(int16 x1, int16 y1, int16 x2, int16 y2);
|
||||
Common::Point vgaUnscale(Common::Point pos);
|
||||
void unDiff(byte *newBuf, byte *oldBuf, Common::File *sourceFile, uint16 bytesPerRow, bool isVertical);
|
||||
void runLengthDecode(byte *dest, Common::File *sourceFile);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue