28 #ifndef GOB_MINIGAMES_GEISHA_DIVING_H 29 #define GOB_MINIGAMES_GEISHA_DIVING_H 31 #include "common/system.h" 35 #include "gob/sound/sounddesc.h" 57 bool play(uint16 playerCount,
bool hasPearlLocation);
59 bool isPlaying()
const;
63 static const uint kEvilFishCount = 3;
64 static const uint kDecorFishCount = 3;
65 static const uint kMaxShotCount = 10;
67 static const uint kEvilFishTypeCount = 3;
68 static const uint16 kEvilFishTypes[kEvilFishTypeCount][5];
76 static const uint kPlantLevelCount = 3;
77 static const uint kPlantPerLevelCount = 5;
79 static const uint16 kPlantLevel1[];
80 static const uint16 kPlantLevel2[];
81 static const uint16 kPlantLevel3[];
83 static const PlantLevel kPlantLevels[kPlantLevelCount];
85 static const uint kPlantCount = kPlantLevelCount * kPlantPerLevelCount;
87 struct ManagedEvilFish {
94 struct ManagedDecorFish {
101 struct ManagedPlant {
109 struct ManagedPearl {
127 ManagedEvilFish _evilFish[kEvilFishCount];
128 ManagedDecorFish _decorFish[kDecorFishCount];
129 ManagedPlant _plant[kPlantCount];
142 uint8 _whitePearlCount;
143 uint8 _blackPearlCount;
149 uint8 _hurtGracePeriod;
158 bool _hasPearlLocation;
169 void enterPlant(ManagedPlant &plant, int16 prevPlantX);
170 void enterPearl(int16 x);
174 void foundBlackPearl();
175 void foundWhitePearl();
177 void updateAirMeter();
178 void updateEvilFish();
179 void updateDecorFish();
184 int16 checkInput(int16 &mouseX, int16 &mouseY, MouseButtons &mouseButtons);
186 void shoot(int16 mouseX, int16 mouseY);
189 void handleOko(int16 key);
198 #endif // GOB_MINIGAMES_GEISHA_DIVING_H
Definition: aniobject.h:42
Definition: evilfish.h:38
Definition: surface.h:100
Definition: sounddesc.h:43