aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/minigames/geisha/meter.h
diff options
context:
space:
mode:
authorSven Hesse2012-01-28 17:02:43 +0100
committerSven Hesse2012-01-28 17:46:38 +0100
commit9dd703532706c049b14b4bc1e239c9cd08366f2a (patch)
tree082e964997d3a22d7a50fe9a7c34d95d07888094 /engines/gob/minigames/geisha/meter.h
parent7ee77cbd26f131ce00cd4a9ddf6515a283b646a3 (diff)
downloadscummvm-rg350-9dd703532706c049b14b4bc1e239c9cd08366f2a.tar.gz
scummvm-rg350-9dd703532706c049b14b4bc1e239c9cd08366f2a.tar.bz2
scummvm-rg350-9dd703532706c049b14b4bc1e239c9cd08366f2a.zip
GOB: Add the air and health meters in Geisha's Diving minigame
Diffstat (limited to 'engines/gob/minigames/geisha/meter.h')
-rw-r--r--engines/gob/minigames/geisha/meter.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/engines/gob/minigames/geisha/meter.h b/engines/gob/minigames/geisha/meter.h
new file mode 100644
index 0000000000..398128712a
--- /dev/null
+++ b/engines/gob/minigames/geisha/meter.h
@@ -0,0 +1,86 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef GOB_MINIGAMES_GEISHA_METER_H
+#define GOB_MINIGAMES_GEISHA_METER_H
+
+#include "gob/aniobject.h"
+
+namespace Gob {
+
+class Surface;
+
+namespace Geisha {
+
+/** A meter measuring a value. */
+class Meter {
+public:
+ enum Direction {
+ kFillToLeft,
+ kFillToRight
+ };
+
+ Meter(int16 x, int16 y, int16 width, int16 height,
+ uint8 frontColor, uint8 backColor, int32 maxValue,
+ Direction direction);
+ ~Meter();
+
+ /** Return the current value the meter is measuring. */
+ int32 getValue() const;
+
+ /** Set the current value the meter is measuring. */
+ void setValue(int32 value);
+
+ /** Increase the current value the meter is measuring. */
+ void increase(int32 n = 1);
+ /** Decrease the current value the meter is measuring. */
+ void decrease(int32 n = 1);
+
+ /** Draw the meter onto the surface and return the affected rectangle. */
+ void draw(Surface &dest, int16 &left, int16 &top, int16 &right, int16 &bottom);
+
+private:
+ int16 _x;
+ int16 _y;
+ int16 _width;
+ int16 _height;
+
+ uint8 _frontColor;
+ uint8 _backColor;
+
+ int32 _value;
+ int32 _maxValue;
+
+ Direction _direction;
+
+ bool _needUpdate;
+
+ Surface *_surface;
+
+ void update();
+};
+
+} // End of namespace Geisha
+
+} // End of namespace Gob
+
+#endif // GOB_MINIGAMES_GEISHA_METER_H