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 TSAGE_BLUEFORCE_SCENES4_H 24 #define TSAGE_BLUEFORCE_SCENES4_H 25 26 #include "common/scummsys.h" 27 #include "tsage/blue_force/blueforce_logic.h" 28 #include "tsage/blue_force/blueforce_speakers.h" 29 #include "tsage/converse.h" 30 #include "tsage/events.h" 31 #include "tsage/core.h" 32 #include "tsage/scenes.h" 33 #include "tsage/globals.h" 34 #include "tsage/sound.h" 35 36 namespace TsAGE { 37 38 namespace BlueForce { 39 40 using namespace TsAGE; 41 42 class Scene410: public SceneExt { 43 /* Actions */ 44 class Action1: public Action { 45 public: 46 void signal() override; 47 }; 48 class Action2: public Action { 49 public: 50 void signal() override; 51 }; 52 class Action3: public Action { 53 public: 54 void signal() override; 55 }; 56 class Action4: public Action { 57 public: 58 void signal() override; 59 }; 60 class Action5: public Action { 61 public: 62 void signal() override; 63 }; 64 class Action6: public Action { 65 public: 66 void signal() override; 67 }; 68 class Action7: public Action { 69 public: 70 void signal() override; 71 }; 72 73 /* Objects */ 74 class Driver: public NamedObject { 75 public: 76 bool startAction(CursorType action, Event &event) override; 77 }; 78 class Passenger: public NamedObject { 79 public: 80 bool startAction(CursorType action, Event &event) override; 81 }; 82 class Harrison: public NamedObject { 83 public: 84 bool startAction(CursorType action, Event &event) override; 85 }; 86 87 /* Items */ 88 class Motorcycle: public NamedHotspot { 89 public: 90 bool startAction(CursorType action, Event &event) override; 91 }; 92 class TruckFront: public NamedHotspot { 93 public: 94 bool startAction(CursorType action, Event &event) override; 95 }; 96 public: 97 SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3; 98 Driver _driver; 99 Passenger _passenger; 100 Harrison _harrison; 101 NamedObject _patrolCar, _object5, _object6; 102 NamedHotspot _background; 103 Motorcycle _motorcycle; 104 NamedHotspot _truckBack; 105 TruckFront _truckFront; 106 Action1 _action1; 107 Action2 _action2; 108 Action3 _action3; 109 Action4 _action4; 110 Action5 _action5; 111 Action6 _action6; 112 Action7 _action7; 113 SpeakerGameText _gameTextSpeaker; 114 SpeakerJakeUniform _jakeUniformSpeaker; 115 SpeakerHarrison _harrisonSpeaker; 116 SpeakerDriver _driverSpeaker; 117 SpeakerShooter _shooterSpeaker; 118 ASoundExt _sound1; 119 int _action1Count, _talkCount; 120 bool _harrissonTalkFl; 121 bool _cuffedDriverFl; 122 bool _cuffedPassengerFl; 123 bool _getDriverFl; 124 bool _driverOutOfTruckFl, _harrisonMovedFl; 125 126 Scene410(); 127 void postInit(SceneObjectList *OwnerList = NULL) override; 128 void synchronize(Serializer &s) override; 129 void signal() override; 130 void process(Event &event) override; 131 void dispatch() override; 132 }; 133 134 class Scene415: public SceneExt { 135 /* Objects */ 136 class GunInset: public FocusObject { 137 public: 138 bool startAction(CursorType action, Event &event) override; 139 void remove() override; 140 }; 141 class GunAndWig: public NamedObject { 142 public: 143 bool startAction(CursorType action, Event &event) override; 144 }; 145 class BulletsInset: public FocusObject { 146 public: 147 bool startAction(CursorType action, Event &event) override; 148 void remove() override; 149 }; 150 class DashDrawer: public NamedObject { 151 public: 152 bool startAction(CursorType action, Event &event) override; 153 }; 154 class TheBullets: public NamedObject { 155 public: 156 bool startAction(CursorType action, Event &event) override; 157 }; 158 159 /* Items */ 160 class Lever: public NamedHotspot { 161 public: 162 bool startAction(CursorType action, Event &event) override; 163 }; 164 private: 165 void showBullets(); 166 void showGunAndWig(); 167 public: 168 SequenceManager _sequenceManager; 169 GunInset _gunInset; 170 GunAndWig _gunAndWig; 171 BulletsInset _bulletsInset; 172 DashDrawer _dashDrawer; 173 TheBullets _theBullets; 174 NamedObject _animatedSeat; 175 NamedHotspot _item1, _steeringWheel, _horn, _dashboard; 176 NamedHotspot _seat, _windowLever, _item7, _seatBelt; 177 Lever _lever; 178 SpeakerJakeRadio _jakeRadioSpeaker; 179 bool _scoreWigRapFlag, _scoreBulletRapFlag; 180 181 Scene415(); 182 void postInit(SceneObjectList *OwnerList = NULL) override; 183 void synchronize(Serializer &s) override; 184 void signal() override; 185 void dispatch() override; 186 }; 187 188 class Scene440: public SceneExt { 189 /* Objects */ 190 class Doorway: public NamedObject { 191 public: 192 bool startAction(CursorType action, Event &event) override; 193 }; 194 class Vechile: public NamedObject { 195 public: 196 bool startAction(CursorType action, Event &event) override; 197 }; 198 class Lyle: public NamedObject { 199 public: 200 bool startAction(CursorType action, Event &event) override; 201 }; 202 203 /* Items */ 204 class Item1: public NamedHotspot { 205 public: 206 bool startAction(CursorType action, Event &event) override; 207 }; 208 public: 209 SequenceManager _sequenceManager; 210 SpeakerGameText _gameTextSpeaker; 211 Doorway _doorway; 212 Vechile _vechile; 213 Lyle _lyle; 214 Item1 _item1; 215 216 void postInit(SceneObjectList *OwnerList = NULL) override; 217 void signal() override; 218 }; 219 220 class Scene450: public SceneExt { 221 /* Objects */ 222 class Weasel: public NamedObjectExt { 223 public: 224 bool startAction(CursorType action, Event &event) override; 225 }; 226 class Object2: public NamedObject { 227 public: 228 bool startAction(CursorType action, Event &event) override; 229 }; 230 class PinBoy: public NamedObject { 231 public: 232 bool startAction(CursorType action, Event &event) override; 233 }; 234 class Manager: public NamedObject { 235 public: 236 bool startAction(CursorType action, Event &event) override; 237 }; 238 239 /* Items */ 240 class Exit: public NamedHotspot { 241 public: 242 bool startAction(CursorType action, Event &event) override; 243 }; 244 public: 245 SequenceManager _sequenceManager; 246 SpeakerGameText _gameTextSpeaker; 247 SpeakerLyleHat _lyleHatSpeaker; 248 SpeakerJakeJacket _jakeJacketSpeaker; 249 SpeakerJakeUniform _jakeUniformSpeaker; 250 SpeakerEugene _eugeneSpeaker; 251 SpeakerWeasel _weaselSpeaker; 252 SpeakerBilly _billySpeaker; 253 Weasel _weasel; 254 NamedObject _object2; 255 PinBoy _pinBoy; 256 Manager _manager; 257 NamedObject _door, _counterDoor; 258 Exit _exit; 259 NamedHotspot _interior, _shelf, _counter; 260 bool _managerCallsWeaselFl; 261 bool _talkManagerFl; 262 263 Scene450(); 264 void synchronize(Serializer &s) override; 265 void postInit(SceneObjectList *OwnerList = NULL) override; 266 void signal() override; 267 void process(Event &event) override; 268 }; 269 270 } // End of namespace BlueForce 271 272 } // End of namespace TsAGE 273 274 #endif 275