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_SCENES9_H 24 #define TSAGE_BLUEFORCE_SCENES9_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 Scene900: public PalettedScene { 43 /* Items */ 44 class Exterior: public NamedHotspot { 45 public: 46 virtual bool startAction(CursorType action, Event &event); 47 }; 48 class WestExit: public NamedHotspot { 49 public: 50 virtual bool startAction(CursorType action, Event &event); 51 }; 52 /* Objects */ 53 class Gate: public NamedObject { 54 public: 55 virtual bool startAction(CursorType action, Event &event); 56 }; 57 class Door: public NamedObjectExt { 58 public: 59 virtual bool startAction(CursorType action, Event &event); 60 }; 61 class Dog: public NamedObjectExt { 62 public: 63 virtual bool startAction(CursorType action, Event &event); 64 }; 65 class Lyle: public NamedObject { 66 public: 67 virtual bool startAction(CursorType action, Event &event); 68 }; 69 class Body: public NamedObject { 70 public: 71 virtual bool startAction(CursorType action, Event &event); 72 }; 73 74 /* Actions */ 75 class Action1 : public Action { 76 public: 77 virtual void signal(); 78 }; 79 class Action2 : public Action { 80 public: 81 virtual void signal(); 82 }; 83 class Action3 : public Action { 84 public: 85 virtual void signal(); 86 }; 87 class Action4 : public Action { 88 public: 89 virtual void signal(); 90 }; 91 92 public: 93 SequenceManager _sequenceManager1, _sequenceManager2; 94 SpeakerGameText _gameTextSpeaker; 95 SpeakerJakeJacket _jakeJacketSpeaker; 96 SpeakerLyleHat _lyleHatSpeaker; 97 Exterior _exterior; 98 Gate _gate; 99 Door _door; 100 Dog _dog; 101 NamedHotspot _item2; 102 NamedHotspot _item3; 103 NamedObject _object4; 104 NamedObject _object5; 105 Lyle _lyle; 106 Body _body; 107 WestExit _westExit; 108 ASoundExt _sound1; 109 Action1 _action1; 110 Action2 _action2; 111 Action3 _action3; 112 Action4 _action4; 113 int _lyleDialogCtr; 114 int _field1976; 115 116 Scene900(); 117 virtual void postInit(SceneObjectList *OwnerList = NULL); 118 virtual void signal(); 119 virtual void process(Event &event); 120 virtual void dispatch(); 121 virtual void synchronize(Serializer &s); 122 }; 123 124 class Scene910: public PalettedScene { 125 /* Actions */ 126 class Action1 : public Action { 127 public: 128 virtual void signal(); 129 }; 130 class Action2 : public Action { 131 public: 132 virtual void signal(); 133 }; 134 /* Objects */ 135 class Lyle: public NamedObject { 136 public: 137 int _field90; 138 virtual void synchronize(Serializer &s); 139 virtual bool startAction(CursorType action, Event &event); 140 }; 141 class Nico: public NamedObject { 142 public: 143 virtual bool startAction(CursorType action, Event &event); 144 }; 145 class Stuart: public NamedObject { 146 public: 147 virtual bool startAction(CursorType action, Event &event); 148 }; 149 class Forbes: public NamedObject { 150 public: 151 virtual bool startAction(CursorType action, Event &event); 152 }; 153 class PowerCord: public NamedObject { 154 public: 155 int _field90, _field92; 156 157 virtual void synchronize(Serializer &s); 158 virtual bool startAction(CursorType action, Event &event); 159 void init(int val); 160 161 }; 162 class BreakerBox: public NamedObject { 163 public: 164 virtual bool startAction(CursorType action, Event &event); 165 }; 166 class FakeWall: public NamedObject { 167 public: 168 virtual bool startAction(CursorType action, Event &event); 169 }; 170 171 class Object13: public NamedObject { 172 protected: 173 int _state, _mode; 174 public: 175 void setupBreaker(int x, int y, int mode, int8 frameNumber); 176 virtual void synchronize(Serializer &s); 177 virtual bool startAction(CursorType action, Event &event); 178 virtual void remove(); 179 }; 180 181 class BlackPlug: public Object13 { 182 public: 183 void init(int x, int y, int arg8, int8 mode); 184 virtual bool startAction(CursorType action, Event &event); 185 virtual void remove(); 186 }; 187 188 class Object25: public NamedObject { 189 int _field90, _field92; 190 public: 191 Object25(); 192 void setupHiddenSwitch(int x, int y, int arg8, int argA); 193 virtual void synchronize(Serializer &s); 194 virtual bool startAction(CursorType action, Event &event); 195 virtual void remove(); 196 }; 197 198 class BreakerBoxInset: public FocusObject { 199 Object13 _object13, _object14, _object15, _object16, _object17, _object18; 200 Object13 _object19, _object20, _object21, _object22, _object23, _object24; 201 Object25 _object25, _object26; 202 public: 203 Object13 _object27; 204 BlackPlug _object28; getClassName()205 virtual Common::String getClassName() { return "Scene910_object12"; } 206 virtual void postInit(SceneObjectList *OwnerList = NULL); 207 virtual void remove(); 208 }; 209 210 class PowerButton: public NamedObject { 211 public: 212 NamedObject _object32; 213 virtual void remove(); 214 virtual bool startAction(CursorType action, Event &event); 215 void init(int frame); 216 }; 217 218 class GeneratorInset: public FocusObject { 219 BlackPlug _blackPlug; 220 PowerButton _powerButton; 221 public: getClassName()222 virtual Common::String getClassName() { return "Scene910_object29"; } 223 virtual void postInit(SceneObjectList *OwnerList = NULL); 224 virtual void remove(); 225 }; 226 227 /* Items */ 228 class Generator: public NamedHotspot { 229 public: 230 virtual bool startAction(CursorType action, Event &event); 231 }; 232 class Item2: public NamedHotspot { 233 public: 234 virtual bool startAction(CursorType action, Event &event); 235 }; 236 class Item3: public NamedHotspot { 237 public: 238 virtual bool startAction(CursorType action, Event &event); 239 }; 240 class Item9: public NamedHotspot { 241 public: 242 virtual bool startAction(CursorType action, Event &event); 243 }; 244 class Item15: public NamedHotspot { 245 public: 246 virtual bool startAction(CursorType action, Event &event); 247 }; 248 class Item16: public NamedHotspot { 249 public: 250 virtual bool startAction(CursorType action, Event &event); 251 }; 252 class Item17: public NamedHotspot { 253 public: 254 virtual bool startAction(CursorType action, Event &event); 255 }; 256 257 int _sceneSubMode, _breakerButtonCtr, _field2DE0, _field2DE2, _field2DE4; 258 Common::Point _destPos; 259 public: 260 SequenceManager _sequenceManager1, _sequenceManager2; 261 SpeakerGameText _gameTextSpeaker; 262 SpeakerJakeJacket _jakeJacketSpeaker; 263 SpeakerLyleHat _lyleHatSpeaker; 264 SpeakerFBI _fbiSpeaker; 265 SpeakerNico _nicoSpeaker; 266 SpeakerDA _daSpeaker; 267 Action1 _action1; 268 Action2 _action2; 269 Timer _timer1; 270 Lyle _lyle; 271 Nico _nico; 272 Stuart _stuart; 273 Forbes _forbes; 274 NamedObject _object5, _vent, _shadow; 275 PowerCord _blackCord, _yellowCord; 276 BreakerBox _breakerBox; 277 FakeWall _fakeWall; 278 BreakerBoxInset _breakerBoxInset; 279 GeneratorInset _generatorInset; 280 NamedObject _object30, _object31, _object32; 281 Generator _generator; 282 Item2 _item2; 283 Item3 _item3; 284 NamedHotspot _item4, _item5, _item6, _item7, _item8; 285 Item9 _item9, _item10; 286 NamedHotspot _item11, _backWall, _item13, _item14; 287 Item15 _item15; 288 Item16 _item16; 289 Item17 _item17; 290 ASoundExt _sound1, _sound2; 291 292 virtual void postInit(SceneObjectList *OwnerList = NULL); 293 virtual void synchronize(Serializer &s); 294 virtual void remove(); 295 virtual void signal(); 296 virtual void process(Event &event); 297 virtual void dispatch(); 298 virtual void checkGun(); 299 void openHiddenDoor(); 300 void closeHiddenDoor(); 301 }; 302 303 class Scene920: public SceneExt { 304 /* Items */ 305 class Item1: public NamedHotspot { 306 public: 307 virtual bool startAction(CursorType action, Event &event); 308 }; 309 class Item8: public NamedHotspot { 310 public: 311 virtual bool startAction(CursorType action, Event &event); 312 }; 313 314 public: 315 SequenceManager _sequenceManager1; 316 SpeakerGameText _gameTextSpeaker; 317 SpeakerJakeJacket _jakeJacketSpeaker; 318 319 Item1 _crate; 320 NamedHotspot _item2; 321 NamedHotspot _item3; 322 NamedHotspot _item4; 323 NamedHotspot _item5; 324 NamedHotspot _item6; 325 NamedHotspot _item7; 326 NamedObject _crateTop; 327 NamedObject _crateWindow; 328 NamedObject _doorway; 329 Item8 _exitN; 330 Common::Point _oldCoord; 331 332 virtual void postInit(SceneObjectList *OwnerList = NULL); 333 virtual void signal(); 334 virtual void process(Event &event); 335 virtual void dispatch(); 336 virtual void synchronize(Serializer &s); 337 }; 338 339 class Scene930: public PalettedScene { 340 /* Objects */ 341 class Object1: public NamedObject { 342 public: 343 virtual bool startAction(CursorType action, Event &event); 344 }; 345 class Object2: public FocusObject { 346 public: 347 virtual bool startAction(CursorType action, Event &event); 348 }; 349 class Object3: public NamedObject { 350 public: 351 virtual bool startAction(CursorType action, Event &event); 352 }; 353 class Object4: public FocusObject { 354 public: 355 virtual bool startAction(CursorType action, Event &event); 356 virtual void remove(); 357 }; 358 class Object5: public FocusObject { 359 public: 360 virtual bool startAction(CursorType action, Event &event); 361 virtual void remove(); 362 }; 363 /* Items */ 364 class Item1: public NamedHotspot { 365 public: 366 virtual bool startAction(CursorType action, Event &event); 367 }; 368 /* Actions */ 369 class Action1 : public Action { 370 public: 371 virtual void signal(); 372 }; 373 class Action2 : public Action { 374 public: 375 virtual void signal(); 376 }; 377 class Action3 : public Action { 378 public: 379 virtual void signal(); 380 }; 381 382 void showBootInset(); 383 void showBoxInset(); 384 void showSoleInset(); 385 public: 386 SequenceManager _sequenceManager1; 387 Object1 _box; 388 Object2 _boxInset; 389 Object3 _boots; 390 Object4 _bootsInset; 391 Object5 _soleInset; 392 393 Item1 _item1; 394 NamedHotspot _item2; 395 NamedHotspot _item3; 396 NamedHotspot _item4; 397 NamedHotspot _item5; 398 NamedHotspot _item6; 399 NamedHotspot _item7; 400 NamedHotspot _item8; 401 NamedHotspot _item9; 402 NamedHotspot _item10; 403 NamedHotspot _item11; 404 NamedHotspot _item12; 405 NamedHotspot _item13; 406 NamedHotspot _item14; 407 NamedHotspot _item15; 408 NamedHotspot _item16; 409 NamedHotspot _item17; 410 NamedHotspot _item18; 411 NamedHotspot _item19; 412 NamedHotspot _item20; 413 NamedHotspot _item21; 414 415 Action1 _action1; 416 Action2 _action2; 417 Action3 _action3; 418 419 SpeakerGameText gameTextSpeaker; 420 421 bool _soleOpened; 422 int _bootInsetDisplayed; 423 424 virtual void postInit(SceneObjectList *OwnerList = NULL); 425 virtual void signal(); 426 virtual void dispatch(); 427 virtual void synchronize(Serializer &s); 428 }; 429 430 class Scene935: public PalettedScene { 431 /* Actions */ 432 class Action1 : public Action { 433 public: 434 virtual void signal(); 435 }; 436 437 public: 438 SequenceManager _sequenceManager; 439 NamedObject _object1; 440 NamedObject _object2; 441 NamedObject _object3; 442 Action1 _action1; 443 VisualSpeaker _visualSpeaker; 444 445 virtual void postInit(SceneObjectList *OwnerList = NULL); 446 virtual void remove(); 447 virtual void signal(); 448 virtual void dispatch(); 449 }; 450 451 class Scene940: public SceneExt { 452 /* Items */ 453 class Item1: public NamedHotspot { 454 public: 455 virtual bool startAction(CursorType action, Event &event); 456 }; 457 /* Actions */ 458 class Action1 : public Action { 459 public: 460 virtual void signal(); 461 }; 462 463 public: 464 SequenceManager _sequenceManager1; 465 SequenceManager _sequenceManager2; 466 SequenceManager _sequenceManager3; 467 SequenceManager _sequenceManager4; 468 NamedObject _object1; 469 NamedObject _object2; 470 NamedObject _object3; 471 NamedObject _object4; 472 NamedObject _object5; 473 NamedObject _object6; 474 NamedObject _object7; 475 NamedObject _object8; 476 NamedObject _object9; 477 NamedObject _object10; 478 NamedObject _object11; 479 NamedObject _object12; 480 NamedObject _object13; 481 NamedObject _object14; 482 NamedObject _object15; 483 NamedObject _object16; 484 NamedObject _object17; 485 NamedObject _object18; 486 Item1 _item1; 487 Action1 _action1; 488 489 SpeakerGameText _gameTextSpeaker1; 490 SpeakerGameText _gameTextSpeaker2; 491 492 virtual void postInit(SceneObjectList *OwnerList = NULL); 493 virtual void remove(); 494 }; 495 496 } // End of namespace BlueForce 497 } // End of namespace TsAGE 498 499 #endif 500