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_SCENES8_H 24 #define TSAGE_BLUEFORCE_SCENES8_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 Scene800: public SceneExt { 43 /* Actions */ 44 class Action1 : public Action { 45 public: 46 void signal() override; 47 }; 48 49 /* Items */ 50 class Item1: public SceneHotspot { 51 public: 52 bool startAction(CursorType action, Event &event) override; 53 }; 54 class Item2: public SceneHotspot { 55 public: 56 bool startAction(CursorType action, Event &event) override; 57 }; 58 59 /* Objects */ 60 class Doorway: public NamedObject { 61 public: 62 bool startAction(CursorType action, Event &event) override; 63 }; 64 class Car1: public NamedObject { 65 public: 66 bool startAction(CursorType action, Event &event) override; 67 }; 68 class Motorcycle: public NamedObject { 69 public: 70 bool startAction(CursorType action, Event &event) override; 71 }; 72 class Lyle: public NamedObject { 73 public: 74 bool startAction(CursorType action, Event &event) override; 75 }; 76 class Car2: public NamedObject { 77 public: 78 bool startAction(CursorType action, Event &event) override; 79 }; 80 81 public: 82 Action1 _action1; 83 SequenceManager _sequenceManager; 84 SpeakerJakeJacket _jakeJacketSpeaker; 85 SpeakerLyleHat _lyleHatSpeaker; 86 SpeakerGameText _gameTextSpeaker; 87 Doorway _doorway; 88 Car1 _car1; 89 Motorcycle _motorcycle; 90 Lyle _lyle; 91 Car2 _car2; 92 NamedObject _object6; 93 Item1 _item1; 94 Item2 _item2; 95 SceneText _text; 96 97 void postInit(SceneObjectList *OwnerList = NULL) override; 98 void signal() override; 99 void dispatch() override; 100 }; 101 102 class Scene810: public SceneExt { 103 /* Actions */ 104 class Action1: public Action { 105 public: 106 void signal() override; 107 }; 108 class Action2: public Action { 109 public: 110 void signal() override; 111 }; 112 113 /* Items */ 114 class Map: public SceneHotspot { 115 public: 116 bool startAction(CursorType action, Event &event) override; 117 }; 118 class Window: public SceneHotspot { 119 public: 120 bool startAction(CursorType action, Event &event) override; 121 }; 122 class Bookcase: public SceneHotspot { 123 public: 124 bool startAction(CursorType action, Event &event) override; 125 }; 126 class FaxMachine: public SceneHotspot { 127 public: 128 bool startAction(CursorType action, Event &event) override; 129 }; 130 class GarbageCan: public SceneHotspot { 131 public: 132 bool startAction(CursorType action, Event &event) override; 133 }; 134 class FileCabinets: public SceneHotspot { 135 public: 136 bool startAction(CursorType action, Event &event) override; 137 }; 138 class CoffeeMaker: public SceneHotspot { 139 public: 140 bool startAction(CursorType action, Event &event) override; 141 }; 142 class Shelves: public SceneHotspot { 143 public: 144 bool startAction(CursorType action, Event &event) override; 145 }; 146 class MicroficheReader: public SceneHotspot { 147 public: 148 bool startAction(CursorType action, Event &event) override; 149 }; 150 class Item10: public SceneHotspot { 151 public: 152 bool startAction(CursorType action, Event &event) override; 153 }; 154 class Pictures: public SceneHotspot { 155 public: 156 bool startAction(CursorType action, Event &event) override; 157 }; 158 class Item12: public SceneHotspot { 159 public: 160 bool startAction(CursorType action, Event &event) override; 161 }; 162 class Background: public SceneHotspot { 163 public: 164 bool startAction(CursorType action, Event &event) override; 165 }; 166 class Desk: public SceneHotspot { 167 public: 168 bool startAction(CursorType action, Event &event) override; 169 }; 170 class Exit: public NamedHotspot { 171 public: 172 bool startAction(CursorType action, Event &event) override; 173 }; 174 175 /* Objects */ 176 class Lyle: public NamedObjectExt { 177 public: 178 bool startAction(CursorType action, Event &event) override; 179 }; 180 class Chair: public NamedObject { 181 public: 182 bool startAction(CursorType action, Event &event) override; 183 }; 184 class Object3: public NamedObject { 185 public: 186 bool startAction(CursorType action, Event &event) override; 187 }; 188 class FaxMachineInset: public FocusObject { 189 public: 190 bool startAction(CursorType action, Event &event) override; 191 }; 192 class Object5: public NamedObject { 193 public: 194 bool startAction(CursorType action, Event &event) override; 195 }; 196 class Object7: public NamedObject { 197 public: 198 bool startAction(CursorType action, Event &event) override; 199 }; 200 public: 201 Action1 _action1; 202 Action2 _action2; 203 SequenceManager _sequenceManager1, _sequenceManager2; 204 SpeakerGameText _gameTextSpeaker; 205 SpeakerJakeJacket _jakeJacketSpeaker; 206 SpeakerJakeUniform _jakeUniformSpeaker; 207 SpeakerLyleHat _lyleHatSpeaker; 208 Lyle _lyle; 209 Chair _chair; 210 Object3 _object3; 211 FaxMachineInset _faxMachineInset; 212 Object5 _object5; 213 NamedObject _object6; 214 Object7 _object7; 215 Map _map; 216 Window _window; 217 Bookcase _bookcase; 218 FaxMachine _faxMachine; 219 GarbageCan _garbageCan; 220 FileCabinets _fileCabinets; 221 CoffeeMaker _coffeeMaker; 222 Shelves _shelves; 223 MicroficheReader _microficheReader; 224 Item10 _item10; 225 Pictures _pictures; 226 Item12 _item12; 227 Background _background; 228 Desk _desk; 229 Exit _exit; 230 ASoundExt _sound1; 231 Rect _rect1, _rect2, _rect3; 232 int _fieldA70, _fieldA74; 233 234 Scene810(); 235 void synchronize(Serializer &s) override; 236 void postInit(SceneObjectList *OwnerList = NULL) override; 237 void signal() override; 238 void process(Event &event) override; 239 void dispatch() override; 240 }; 241 242 class Scene820: public SceneExt { 243 /* Objects */ 244 class PowerButton: public NamedObject { 245 public: 246 bool startAction(CursorType action, Event &event) override; 247 }; 248 class ForwardButton: public NamedObject { 249 public: 250 bool startAction(CursorType action, Event &event) override; 251 }; 252 class BackButton: public NamedObject { 253 public: 254 bool startAction(CursorType action, Event &event) override; 255 }; 256 public: 257 SequenceManager _sequenceManager; 258 ASoundExt _sound1; 259 SpeakerGameText _gameTextSpeaker; 260 PowerButton _powerButton; 261 BackButton _backButton; 262 ForwardButton _forwardButton; 263 NamedObject _object4, _object5; 264 NamedHotspot _item1; 265 int _pageNumber; 266 267 Scene820(); 268 void synchronize(Serializer &s) override; 269 void postInit(SceneObjectList *OwnerList = NULL) override; 270 void signal() override; 271 }; 272 273 class Scene830: public PalettedScene { 274 /* Items */ 275 class SouthEastExit: public NamedHotspot { 276 public: 277 bool startAction(CursorType action, Event &event) override; 278 }; 279 class NoteBoard: public NamedHotspot { 280 public: 281 bool startAction(CursorType action, Event &event) override; 282 }; 283 284 /* Objects */ 285 class Lyle: public NamedObject { 286 public: 287 bool startAction(CursorType action, Event &event) override; 288 }; 289 class Door: public NamedObject { 290 public: 291 bool startAction(CursorType action, Event &event) override; 292 }; 293 class RentalBoat: public NamedObject { 294 public: 295 bool startAction(CursorType action, Event &event) override; 296 }; 297 class Object5: public NamedObject { 298 public: 299 bool startAction(CursorType action, Event &event) override; 300 }; 301 302 public: 303 SequenceManager _sequenceManager; 304 SpeakerGameText _gameTextSpeaker; 305 SpeakerJakeJacket _jakeJacketSpeaker; 306 SpeakerLyleHat _lyleHatSpeaker; 307 NamedObject _object1, _lyle, _object6; 308 Door _door; 309 RentalBoat _rentalBoat; 310 Object5 _object5; 311 SouthEastExit _seExit; 312 NoteBoard _noteBoard; 313 NamedHotspot _item2, _item4, _item5; 314 NamedHotspot _item6, _item7, _item8; 315 ASoundExt _sound1; 316 int _field18A4, _field18A6, _field18A8, _field18AA, _field18AC; 317 318 Scene830(); 319 void synchronize(Serializer &s) override; 320 void postInit(SceneObjectList *OwnerList = NULL) override; 321 void remove() override; 322 void signal() override; 323 void process(Event &event) override; 324 void dispatch() override; 325 }; 326 327 class Scene840: public PalettedScene { 328 /* Items */ 329 class Coins: public NamedHotspot { 330 public: 331 bool startAction(CursorType action, Event &event) override; 332 }; 333 class Exit: public NamedHotspot { 334 public: 335 bool startAction(CursorType action, Event &event) override; 336 }; 337 338 /* Objects */ 339 class BoatKeysInset: public FocusObject { 340 class RentalKeys: public NamedObject { 341 public: 342 bool startAction(CursorType action, Event &event) override; 343 }; 344 class WaveKeys: public NamedObject { 345 public: 346 bool startAction(CursorType action, Event &event) override; 347 }; 348 public: 349 RentalKeys _rentalKeys; 350 WaveKeys _waveKeys; 351 bool _usedRentalKeys,_usedWaveKeys; 352 353 void synchronize(Serializer &s) override; 354 void postInit(SceneObjectList *OwnerList = NULL) override; 355 void remove() override; 356 void process(Event &event) override; 357 bool startAction(CursorType action, Event &event) override; 358 }; 359 class BoatKeys: public NamedObject { 360 public: 361 bool startAction(CursorType action, Event &event) override; 362 }; 363 class Carter: public NamedObject { 364 public: 365 bool startAction(CursorType action, Event &event) override; 366 }; 367 368 public: 369 SequenceManager _sequenceManager1, _sequenceManager2; 370 NamedObject _object1; 371 BoatKeysInset _boatKeysInset; 372 NamedObject _doors; 373 BoatKeys _boatKeys; 374 Carter _carter; 375 NamedObject _lyle; 376 Coins _coins; 377 NamedHotspot _item2, _item3, _item4, _item5, _item6; 378 NamedHotspot _item7, _item8, _item9, _item10, _item11; 379 NamedHotspot _item12, _item13, _item14, _item15; 380 NamedHotspot _item16, _item17, _item18; 381 Exit _exit; 382 SpeakerGameText _gameTextSpeaker; 383 SpeakerJakeJacket _jakeJacketSpeaker; 384 SpeakerJakeUniform _jakeUniformSpeaker; 385 SpeakerCarter _carterSpeaker; 386 int _field1ABA, _field1ABC, _field1ABE, _field1AC0; 387 int _field1AC2, _field1AC4, _field1AC6; 388 389 Scene840(); 390 void synchronize(Serializer &s) override; 391 void postInit(SceneObjectList *OwnerList = NULL) override; 392 void signal() override; 393 void process(Event &event) override; 394 void dispatch() override; 395 }; 396 397 class Scene850: public SceneExt { 398 /* Timers */ 399 class Timer1: public Timer { 400 public: 401 void signal() override; 402 }; 403 public: 404 SequenceManager _sequenceManager; 405 Timer1 _timer; 406 NamedObject _object1; 407 ASoundExt _sound1; 408 409 void postInit(SceneObjectList *OwnerList = NULL) override; 410 void remove() override; 411 void signal() override; 412 }; 413 414 class Scene860: public SceneExt { 415 /* Actions */ 416 class Action1: public Action { 417 public: 418 void signal() override; 419 }; 420 public: 421 SequenceManager _sequenceManager; 422 NamedObject _deadBody, _object2; 423 NamedHotspot _item1; 424 Action1 _action1; 425 Rect _swRect, _neRect, _yachtRect; 426 ASoundExt _sound1; 427 int _field87E, _field880, _field886, _field888; 428 Common::Point _destPos; 429 430 Scene860(); 431 void synchronize(Serializer &s) override; 432 void postInit(SceneObjectList *OwnerList = NULL) override; 433 void signal() override; 434 void process(Event &event) override; 435 void dispatch() override; 436 }; 437 438 class Scene870: public SceneExt { 439 /* Actions */ 440 class Action1: public Action { 441 public: 442 void signal() override; 443 }; 444 445 /* Objects */ 446 class Lyle: public NamedObjectExt { 447 public: 448 bool startAction(CursorType action, Event &event) override; 449 }; 450 class Green: public NamedObjectExt { 451 public: 452 bool startAction(CursorType action, Event &event) override; 453 }; 454 class CrateInset: public FocusObject { 455 class Jar: public NamedObjectExt { 456 public: 457 bool startAction(CursorType action, Event &event) override; 458 }; 459 class Rags: public NamedObjectExt { 460 public: 461 bool startAction(CursorType action, Event &event) override; 462 }; 463 private: 464 void initContents(); 465 public: 466 Jar _jar; 467 Rags _rags; 468 469 void postInit(SceneObjectList *OwnerList = NULL) override; 470 void remove() override; 471 bool startAction(CursorType action, Event &event) override; 472 }; 473 474 /* Items */ 475 class Boat: public NamedHotspot { 476 public: 477 bool startAction(CursorType action, Event &event) override; 478 }; 479 class Crate: public NamedHotspot { 480 public: 481 bool startAction(CursorType action, Event &event) override; 482 }; 483 class Exit: public NamedHotspot { 484 public: 485 bool startAction(CursorType action, Event &event) override; 486 }; 487 public: 488 SequenceManager _sequenceManager; 489 SpeakerGameText _gameTextSpeaker; 490 SpeakerJakeJacket _jakeJacketSpeaker; 491 SpeakerLyleHat _lyleHatSpeaker; 492 SpeakerGreen _greenSpeaker; 493 Boat _boat; 494 Crate _crate; 495 Exit _exit; 496 NamedObject _yacht; 497 Lyle _lyle; 498 Green _green; 499 NamedObject _object4, _object5, _object6; 500 CrateInset _crateInset; 501 NamedHotspot _lumber, _firePit, _water, _boulders; 502 NamedHotspot _palmTrees, _sand, _farShore, _item11; 503 Action1 _action1; 504 int _field1662, _field1664; 505 506 Scene870(); 507 void synchronize(Serializer &s) override; 508 void postInit(SceneObjectList *OwnerList = NULL) override; 509 void remove() override; 510 void signal() override; 511 void process(Event &event) override; 512 void dispatch() override; 513 514 void startStrip(int stripNumber); 515 }; 516 517 class Scene880: public SceneExt { 518 /* Actions */ 519 class Action1: public Action { 520 private: 521 static void SequenceManager_callbackProc(int v1, int v2); 522 public: 523 void signal() override; 524 }; 525 526 /* Objects */ 527 class Object4: public NamedObjectExt { 528 public: 529 bool startAction(CursorType action, Event &event) override; 530 }; 531 532 /* Items */ 533 class NorthExit: public NamedHotspot { 534 public: 535 bool startAction(CursorType action, Event &event) override; 536 }; 537 class SouthEastExit: public NamedHotspot { 538 public: 539 bool startAction(CursorType action, Event &event) override; 540 }; 541 private: 542 static void handleAction(Action *action); 543 public: 544 SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3; 545 SpeakerGameText _gameTextSpeaker; 546 SpeakerJakeJacket _jakeJacketSpeaker; 547 SpeakerLyleHat _lyleHatSpeaker; 548 Action1 _action1; 549 NamedObject _object1, _object2, _object3; 550 Object4 _object4; 551 NamedObject _object5, _object6, _object7; 552 NamedHotspot _background; 553 NorthExit _northExit; 554 SouthEastExit _seExit; 555 int _seqNumber; 556 557 Scene880(); 558 void synchronize(Serializer &s) override; 559 void postInit(SceneObjectList *OwnerList = NULL) override; 560 void signal() override; 561 void process(Event &event) override; 562 void dispatch() override; 563 }; 564 565 } // End of namespace BlueForce 566 567 } // End of namespace TsAGE 568 569 #endif 570