From 98c79f89bf2c5860f39a6ec7ca88a01a2f987323 Mon Sep 17 00:00:00 2001 From: Bendegúz Nagy Date: Fri, 17 Jun 2016 14:29:05 +0200 Subject: DM: Add mouse input processing and display for movement arrows --- engines/dm/gfx.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'engines/dm/gfx.h') diff --git a/engines/dm/gfx.h b/engines/dm/gfx.h index 50171feaa3..fd9a4a3bd9 100644 --- a/engines/dm/gfx.h +++ b/engines/dm/gfx.h @@ -7,6 +7,14 @@ namespace DM { + +enum GraphicIndice { + kInscriptionFontIndice = 120, // @ C120_GRAPHIC_INSCRIPTION_FONT + kDoorMaskDestroyedIndice = 301, // @ C301_GRAPHIC_DOOR_MASK_DESTROYED + kChampionPortraitsIndice = 26, // @ C026_GRAPHIC_CHAMPION_PORTRAITS + kMovementArrowsIndice = 13 // @ C013_GRAPHIC_MOVEMENT_ARROWS +}; + extern uint16 gPalSwoosh[16]; extern uint16 gPalMousePointer[16]; extern uint16 gPalCredits[16]; @@ -20,12 +28,14 @@ public: uint16 Y1; uint16 Y2; - Box(uint16 x1, uint16 x2, uint16 y1, uint16 y2): X1(x1), X2(x2), Y1(y1), Y2(y2) {} + Box(uint16 x1, uint16 x2, uint16 y1, uint16 y2): X1(x1), X2(x2 + 1), Y1(y1), Y2(y2 + 1) {} bool isPointInside(Common::Point point) { return (X1 <= point.x) && (point.x < X2) && (Y1 <= point.y) && (point.y < Y2); } }; // @ BOX_BYTE, BOX_WORD +extern Box gBoxMovementArrows; // G0002_s_Graphic562_Box_MovementArrows + // The frames in the original sources contain inclusive boundaries and byte widths, not pixel widths struct Frame { uint16 destFromX, destToX, destFromY, destToY; @@ -269,6 +279,7 @@ public: void clearScreen(Color color); void drawDungeon(direction dir, int16 posX, int16 posY); // @ F0128_DUNGEONVIEW_Draw_CPSF void updateScreen(); + byte* getBitmap(uint16 index); int16 _championPortraitOrdinal; // @ G0289_i_DungeonView_ChampionPortraitOrdinal int16 _currMapAlcoveOrnIndices[kAlcoveOrnCount]; // @ G0267_ai_CurrentMapAlcoveOrnamentIndices -- cgit v1.2.3