aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/minigames/geisha/diving.h
diff options
context:
space:
mode:
authorSven Hesse2012-01-26 19:44:17 +0100
committerSven Hesse2012-01-26 19:47:03 +0100
commita19eb264855b236b8d68dfaeb7e0f7a8dd6579a2 (patch)
treeacb7ac61ca978a6aa66efd55b971e8e75356b18c /engines/gob/minigames/geisha/diving.h
parentd1de75a6ca828ab2fcdbce6352a12337f93fc21c (diff)
downloadscummvm-rg350-a19eb264855b236b8d68dfaeb7e0f7a8dd6579a2.tar.gz
scummvm-rg350-a19eb264855b236b8d68dfaeb7e0f7a8dd6579a2.tar.bz2
scummvm-rg350-a19eb264855b236b8d68dfaeb7e0f7a8dd6579a2.zip
GOB: Add the background plants in Geisha's Diving minigame
Diffstat (limited to 'engines/gob/minigames/geisha/diving.h')
-rw-r--r--engines/gob/minigames/geisha/diving.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/engines/gob/minigames/geisha/diving.h b/engines/gob/minigames/geisha/diving.h
index e386d783d7..af224401e3 100644
--- a/engines/gob/minigames/geisha/diving.h
+++ b/engines/gob/minigames/geisha/diving.h
@@ -54,6 +54,26 @@ private:
static const uint kDecorFishCount = 3;
static const uint kMaxShotCount = 10;
+ static const uint kEvilFishTypeCount = 3;
+ static const uint16 kEvilFishTypes[kEvilFishTypeCount][5];
+
+ struct PlantLevel {
+ int16 y;
+ uint plantCount;
+ const uint16 *plants;
+ };
+
+ static const uint kPlantLevelCount = 3;
+ static const uint kPlantPerLevelCount = 5;
+
+ static const uint16 kPlantLevel1[];
+ static const uint16 kPlantLevel2[];
+ static const uint16 kPlantLevel3[];
+
+ static const PlantLevel kPlantLevels[kPlantLevelCount];
+
+ static const uint kPlantCount = kPlantLevelCount * kPlantPerLevelCount;
+
struct ManagedEvilFish {
EvilFish *evilFish;
@@ -68,6 +88,14 @@ private:
int8 deltaX;
};
+ struct ManagedPlant {
+ ANIObject *plant;
+
+ uint level;
+ int8 deltaX;
+ int16 x, y;
+ };
+
GobEngine *_vm;
DECFile *_background;
@@ -81,6 +109,7 @@ private:
ManagedEvilFish _evilFish[kEvilFishCount];
ManagedDecorFish _decorFish[kDecorFishCount];
+ ManagedPlant _plant[kPlantCount];
ANIObject *_shot[kMaxShotCount];
@@ -106,12 +135,16 @@ private:
void initScreen();
void initCursor();
+ void initPlants();
+
+ void enterPlant(ManagedPlant &plant, int16 prevPlantX);
void foundBlackPearl();
void foundWhitePearl();
void updateEvilFish();
void updateDecorFish();
+ void updatePlants();
void updateAnims();
int16 checkInput(int16 &mouseX, int16 &mouseY, MouseButtons &mouseButtons);