1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef MADS_NEBULAR_SCENES7_H 24 #define MADS_NEBULAR_SCENES7_H 25 26 #include "common/scummsys.h" 27 #include "mads/game.h" 28 #include "mads/scene.h" 29 #include "mads/nebular/nebular_scenes.h" 30 31 namespace MADS { 32 33 namespace Nebular { 34 35 class Scene7xx : public NebularScene { 36 protected: 37 /** 38 * Plays an appropriate sound when entering a scene 39 */ 40 void setAAName(); 41 42 /** 43 * Updates the prefix used for getting player sprites for the scene 44 */ 45 void setPlayerSpritesPrefix(); 46 47 void sceneEntrySound(); 48 49 public: Scene7xx(MADSEngine * vm)50 Scene7xx(MADSEngine *vm) : NebularScene(vm) {} 51 }; 52 53 class Scene701 : public Scene7xx { 54 private: 55 int _fishingLineId; 56 57 public: 58 Scene701(MADSEngine *vm); 59 void synchronize(Common::Serializer &s) override; 60 61 void setup() override; 62 void enter() override; 63 void preActions() override; 64 void actions() override; 65 void step() override; 66 }; 67 68 class Scene702 : public Scene7xx { 69 public: Scene702(MADSEngine * vm)70 Scene702(MADSEngine *vm) : Scene7xx(vm) {} 71 72 void setup() override; 73 void enter() override; 74 void preActions() override; 75 void actions() override; 76 }; 77 78 class Scene703 : public Scene7xx{ 79 private: 80 int _monsterMode; 81 int _boatFrame; 82 int _curSequence; 83 int _boatDir; 84 85 bool _useBomb; 86 bool _startMonsterTimer; 87 bool _rexDeathFl; 88 bool _restartTrigger70Fl; 89 90 uint32 _lastFrameTime; 91 uint32 _monsterTime; 92 93 Conversation _dialog1; 94 95 void handleBottleInterface(); 96 void setBottleSequence(); 97 void handleFillBottle(int quote); 98 99 public: 100 Scene703(MADSEngine *vm); 101 void synchronize(Common::Serializer &s) override; 102 103 void setup() override; 104 void enter() override; 105 void step() override; 106 void actions() override; 107 }; 108 109 class Scene704 : public Scene7xx{ 110 private: 111 int _bottleHotspotId; 112 int _boatCurrentFrame; 113 int _animationMode; 114 int _boatDirection; 115 116 bool _takeBottleFl; 117 118 Conversation _dialog1; 119 120 void handleFillBottle(int quote); 121 void setBottleSequence(); 122 void handleBottleInterface(); 123 124 public: 125 Scene704(MADSEngine *vm); 126 void synchronize(Common::Serializer &s) override; 127 128 void setup() override; 129 void enter() override; 130 void step() override; 131 void actions() override; 132 }; 133 134 class Scene705 : public Scene7xx{ 135 private: 136 Conversation _dialog1; 137 138 void handleFillBottle(int quote); 139 void setBottleSequence(); 140 void handleBottleInterface(); 141 142 public: Scene705(MADSEngine * vm)143 Scene705(MADSEngine *vm) : Scene7xx(vm) {} 144 void synchronize(Common::Serializer &s) override; 145 146 void setup() override; 147 void enter() override; 148 void step() override; 149 void actions() override; 150 }; 151 152 class Scene706 : public Scene7xx{ 153 private: 154 int _vaseHotspotId; 155 int _vaseMode; 156 int _animationMode; 157 int _animationFrame; 158 159 bool _emptyPedestral; 160 161 void handleTakeVase(); 162 void handleRexDeath(); 163 164 public: 165 Scene706(MADSEngine *vm); 166 void synchronize(Common::Serializer &s) override; 167 168 void setup() override; 169 void enter() override; 170 void step() override; 171 void preActions() override; 172 void actions() override; 173 }; 174 175 class Scene707 : public SceneTeleporter { 176 public: Scene707(MADSEngine * vm)177 Scene707(MADSEngine *vm) : SceneTeleporter(vm) {} 178 179 void setup() override; 180 void enter() override; 181 void step() override; 182 void actions() override; 183 }; 184 185 class Scene710 : public Scene7xx { 186 public: Scene710(MADSEngine * vm)187 Scene710(MADSEngine *vm) : Scene7xx(vm) {} 188 189 void setup() override; 190 void enter() override; 191 void step() override; 192 void actions() override; 193 }; 194 195 class Scene711 : public SceneTeleporter { 196 public: Scene711(MADSEngine * vm)197 Scene711(MADSEngine *vm) : SceneTeleporter(vm) {} 198 199 void setup() override; 200 void enter() override; 201 void step() override; 202 void actions() override; 203 }; 204 205 class Scene751 : public Scene7xx{ 206 private: 207 bool _rexHandingLine; 208 209 public: 210 Scene751(MADSEngine *vm); 211 void synchronize(Common::Serializer &s) override; 212 213 void setup() override; 214 void enter() override; 215 void step() override; 216 void preActions() override; 217 void actions() override; 218 }; 219 220 class Scene752 : public Scene7xx { 221 private: 222 int _cardId; 223 224 public: 225 Scene752(MADSEngine *vm); 226 void synchronize(Common::Serializer &s) override; 227 228 void setup() override; 229 void enter() override; 230 void step() override; 231 void preActions() override; 232 void actions() override; 233 }; 234 235 } // End of namespace Nebular 236 } // End of namespace MADS 237 238 #endif /* MADS_NEBULAR_SCENES7_H */ 239