diff options
author | Sven Hesse | 2011-09-12 18:00:22 +0200 |
---|---|---|
committer | Sven Hesse | 2011-09-14 18:54:28 +0200 |
commit | 5caf4ac4003180bcbf897d6bfa1812eba8d5e76c (patch) | |
tree | 626dc716bf4f4438e3b1d5721c7b829372c5eeda /engines/gob/minigames/geisha/diving.h | |
parent | e21b1af568fd255da8b2a1d45b42b9d9cb170eb4 (diff) | |
download | scummvm-rg350-5caf4ac4003180bcbf897d6bfa1812eba8d5e76c.tar.gz scummvm-rg350-5caf4ac4003180bcbf897d6bfa1812eba8d5e76c.tar.bz2 scummvm-rg350-5caf4ac4003180bcbf897d6bfa1812eba8d5e76c.zip |
GOB: Implement the fish shooting part of the Diving minigame
Diffstat (limited to 'engines/gob/minigames/geisha/diving.h')
-rw-r--r-- | engines/gob/minigames/geisha/diving.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/engines/gob/minigames/geisha/diving.h b/engines/gob/minigames/geisha/diving.h index 023ac919a7..dd0773a9c4 100644 --- a/engines/gob/minigames/geisha/diving.h +++ b/engines/gob/minigames/geisha/diving.h @@ -33,8 +33,12 @@ class DECFile; class ANIFile; class ANIObject; +enum MouseButtons; + namespace Geisha { +class EvilFish; + /** Geisha's "Diving" minigame. */ class Diving { public: @@ -44,6 +48,9 @@ public: bool play(uint16 playerCount, bool hasPearlLocation); private: + static const uint kEvilFishCount = 3; + static const uint kMaxShotCount = 10; + GobEngine *_vm; DECFile *_background; @@ -55,19 +62,38 @@ private: ANIObject *_lungs; ANIObject *_heart; + EvilFish *_evilFish[kEvilFishCount]; + + ANIObject *_shot[kMaxShotCount]; + + Common::List<int> _activeShots; + + Common::List<ANIObject *> _anims; + Surface *_blackPearl; uint8 _whitePearlCount; uint8 _blackPearlCount; + uint8 _currentShot; + void init(); void deinit(); void initScreen(); void initCursor(); + void evilFishEnter(); + void foundBlackPearl(); void foundWhitePearl(); + + void updateAnims(); + + int16 checkInput(int16 &mouseX, int16 &mouseY, MouseButtons &mouseButtons); + + void shoot(int16 mouseX, int16 mouseY); + void checkShots(); }; } // End of namespace Geisha |