aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/screen.h')
-rw-r--r--engines/mads/screen.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/mads/screen.h b/engines/mads/screen.h
index 1d1e6d34f0..7fa5722e18 100644
--- a/engines/mads/screen.h
+++ b/engines/mads/screen.h
@@ -125,6 +125,7 @@ public:
class ScreenObject {
public:
+ bool _active;
Common::Rect _bounds;
ScrCategory _category;
int _descId;
@@ -179,6 +180,23 @@ public:
* Handle element being highlighted on the screen
*/
void elementHighlighted();
+
+ /**
+ * Retrieve a ScreenObject from the list
+ * @remarks This array is 1-based indexed by the game
+ */
+ ScreenObject &operator[](int idx) {
+ assert(idx > 0);
+ return Common::Array<ScreenObject>::operator[](idx - 1);
+ }
+
+ /**
+ * Sets an item identified by category and Desc Id as active or not
+ * @param category Screen category
+ * @param descId Description for item
+ * @param active Whether to set item as active or not
+ */
+ void setActive(ScrCategory category, int descId, bool active);
};
class ScreenSurface : public MSurface {