aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/interface.h')
-rw-r--r--engines/xeen/interface.h40
1 files changed, 31 insertions, 9 deletions
diff --git a/engines/xeen/interface.h b/engines/xeen/interface.h
index a249e6f025..321fe520c7 100644
--- a/engines/xeen/interface.h
+++ b/engines/xeen/interface.h
@@ -42,6 +42,17 @@ enum Obscurity {
OBSCURITY_NONE = 4
};
+enum IconsMode {
+ ICONS_STANDARD = 0,
+ ICONS_COMBAT = 1
+};
+
+enum FallState {
+ FALL_NONE = 0,
+ FALL_IN_PROGRESS = 1,
+ FALL_START = 2
+};
+
#define HILIGHT_CHAR_DISABLED -2
#define HILIGHT_CHAR_NONE -1
@@ -75,13 +86,13 @@ class Interface: public ButtonContainer, public InterfaceScene,
private:
XeenEngine *_vm;
SpriteResource _uiSprites;
- SpriteResource _iconSprites;
SpriteResource _borderSprites;
SpriteResource _spellFxSprites;
SpriteResource _fecpSprites;
SpriteResource _blessSprites;
- DrawStruct _mainList[16];
-
+ SpriteResource _stdIcons;
+ SpriteResource _combatIcons;
+ Graphics::ManagedSurface _fallSurface;
bool _buttonsLoaded;
int _steppingFX;
int _blessedUIFrame;
@@ -90,13 +101,14 @@ private:
int _heroismUIFrame;
int _flipUIFrame;
- void initDrawStructs();
-
void loadSprites();
void setupBackground();
- void setMainButtons(bool combatMode = false);
+ /**
+ * Sets the main user interface icons for either standard mode or combat mode
+ */
+ void setMainButtons(IconsMode mode = ICONS_STANDARD);
void chargeStep();
@@ -117,9 +129,18 @@ private:
*/
void handleFalling();
- void saveFall();
+ /**
+ * Sets up a passed surface with a double height combination of the previously
+ * saved scene background and the newly rendered (but not displayed) scene
+ * below it. This will be used by the fall sequence to vertically shift from the
+ * prior "upper" scene to the lower ground scene
+ */
+ void setupFallSurface(bool isTop);
- void fall(int v);
+ /**
+ * Handles a frame of falling animation
+ */
+ void fall(int yp);
/**
* Shake the screen
@@ -133,7 +154,7 @@ private:
public:
Obscurity _obscurity;
Common::String _interfaceText;
- int _falling;
+ FallState _falling;
int _face1State, _face2State;
int _face1UIFrame, _face2UIFrame;
int _spotDoorsUIFrame;
@@ -143,6 +164,7 @@ public:
Common::String _screenText;
byte _tillMove;
int _charFX[6];
+ IconsMode _iconsMode;
public:
Interface(XeenEngine *vm);