diff options
author | Sven Hesse | 2011-09-03 15:51:37 +0200 |
---|---|---|
committer | Sven Hesse | 2011-09-03 18:00:09 +0200 |
commit | dbb70e3d6f3b6ce5ff0497dbded420783edb3256 (patch) | |
tree | 830e63aa9ee927672c84ba6618e3010456d269e1 /engines/gob/minigames/geisha/evilfish.h | |
parent | 220fc2b59307734a26057fa6446ed13fa2c543a1 (diff) | |
download | scummvm-rg350-dbb70e3d6f3b6ce5ff0497dbded420783edb3256.tar.gz scummvm-rg350-dbb70e3d6f3b6ce5ff0497dbded420783edb3256.tar.bz2 scummvm-rg350-dbb70e3d6f3b6ce5ff0497dbded420783edb3256.zip |
GOB: Add class Geisha::EvilFish
An "evil" fish in Geisha's "Diving" minigame.
Diffstat (limited to 'engines/gob/minigames/geisha/evilfish.h')
-rw-r--r-- | engines/gob/minigames/geisha/evilfish.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/engines/gob/minigames/geisha/evilfish.h b/engines/gob/minigames/geisha/evilfish.h new file mode 100644 index 0000000000..9144cefb4b --- /dev/null +++ b/engines/gob/minigames/geisha/evilfish.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_EVILFISH_H +#define GOB_MINIGAMES_GEISHA_EVILFISH_H + +#include "gob/aniobject.h" + +namespace Gob { + +namespace Geisha { + +/** An "evil" fish in Geisha's "Diving" minigame. */ +class EvilFish : public ANIObject { +public: + enum Direction { + kDirectionLeft, + kDirectionRight + }; + + EvilFish(const ANIFile &ani, uint16 screenWidth, + uint16 animSwimLeft, uint16 animSwimRight, + uint16 animTurnLeft, uint16 animTurnRight, uint16 animDie); + ~EvilFish(); + + /** Are there coordinates within the fish's sprite? */ + bool isIn(int16 x, int16 y) const; + + /** Enter from this direction / screen edge. */ + void enter(Direction from, int16 y); + /** Leave the screen in the current direction. */ + void leave(); + + /** Kill the fish. */ + void die(); + + /** Advance the animation to the next frame. */ + void advance(); + +private: + enum State { + kStateNone, + kStateSwimLeft, + kStateSwimRight, + kStateTurnLeft, + kStateTurnRight, + kStateDie + }; + + uint16 _screenWidth; + + uint16 _animSwimLeft; + uint16 _animSwimRight; + uint16 _animTurnLeft; + uint16 _animTurnRight; + uint16 _animDie; + + bool _shouldLeave; + + State _state; +}; + +} // End of namespace Geisha + +} // End of namespace Gob + +#endif // GOB_MINIGAMES_GEISHA_EVILFISH_H |