2011-03-21 12:04:18 +00:00
|
|
|
/* ScummVM - Graphic Adventure Engine
|
|
|
|
*
|
|
|
|
* ScummVM is the legal property of its developers, whose names
|
|
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
|
|
* file distributed with this source distribution.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*
|
|
|
|
* $URL$
|
|
|
|
* $Id$
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef TSAGE_RINGWORLD_SCENES5_H
|
|
|
|
#define TSAGE_RINGWORLD_SCENES5_H
|
|
|
|
|
|
|
|
#include "common/scummsys.h"
|
|
|
|
#include "tsage/core.h"
|
|
|
|
#include "tsage/converse.h"
|
|
|
|
#include "tsage/ringworld_logic.h"
|
|
|
|
|
|
|
|
namespace tSage {
|
|
|
|
|
|
|
|
class Scene4000: public Scene {
|
|
|
|
/* Actions */
|
|
|
|
class Action1: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action2: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action3: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action4: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action5: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action6: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action7: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action8: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action9: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action10: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action11: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action12: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action13: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
2011-03-22 08:05:11 +00:00
|
|
|
|
|
|
|
/* Hotspots */
|
|
|
|
class Hotspot7: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot8: public SceneObject {
|
|
|
|
private:
|
|
|
|
int _ctr;
|
|
|
|
public:
|
|
|
|
virtual void synchronise(Serialiser &s) {
|
|
|
|
SceneObject::synchronise(s);
|
|
|
|
s.syncAsUint16LE(_ctr);
|
|
|
|
}
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot9: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot10: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot12: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot13: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot17: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot18: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Hotspot23: public SceneObject {
|
|
|
|
public:
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
2011-03-21 12:04:18 +00:00
|
|
|
public:
|
|
|
|
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
|
|
|
|
SoundHandler _soundHandler1, _soundHandler2;
|
|
|
|
SpeakerQR _speakerQR;
|
|
|
|
SpeakerML _speakerML;
|
|
|
|
SpeakerMR _speakerMR;
|
|
|
|
SpeakerSR _speakerSR;
|
|
|
|
SpeakerCHFL _speakerCHFL;
|
|
|
|
SpeakerPL _speakerPL;
|
|
|
|
SpeakerPText _speakerPText;
|
|
|
|
SpeakerQText _speakerQText;
|
|
|
|
SpeakerSText _speakerSText;
|
|
|
|
SpeakerMText _speakerMText;
|
|
|
|
SpeakerCHFR _speakerCHFR;
|
|
|
|
SpeakerQL _speakerQL;
|
|
|
|
SpeakerCHFText _speakerCHFText;
|
2011-03-22 08:05:11 +00:00
|
|
|
SceneObject _hotspot1, _hotspot2, _hotspot3, _hotspot4, _hotspot5, _hotspot6;
|
|
|
|
Hotspot7 _hotspot7;
|
|
|
|
Hotspot8 _hotspot8;
|
|
|
|
Hotspot9 _hotspot9;
|
|
|
|
Hotspot10 _hotspot10;
|
|
|
|
DisplayHotspot _hotspot11;
|
|
|
|
Hotspot12 _hotspot12;
|
|
|
|
Hotspot13 _hotspot13;
|
|
|
|
Hotspot _hotspot14, _hotspot15, _hotspot16;
|
|
|
|
Hotspot17 _hotspot17;
|
|
|
|
Hotspot18 _hotspot18;
|
|
|
|
DisplayHotspot _hotspot19, _hotspot20, _hotspot21, _hotspot22;
|
|
|
|
Hotspot23 _hotspot23;
|
|
|
|
DisplayHotspot _hotspot24, _hotspot25, _hotspot26;
|
|
|
|
SceneObject _hotspot27;
|
2011-03-21 12:04:18 +00:00
|
|
|
Action1 _action1;
|
|
|
|
Action2 _action2;
|
|
|
|
Action3 _action3;
|
|
|
|
Action4 _action4;
|
|
|
|
Action5 _action5;
|
|
|
|
Action6 _action6;
|
|
|
|
Action7 _action7;
|
|
|
|
Action8 _action8;
|
|
|
|
Action9 _action9;
|
|
|
|
Action10 _action10;
|
|
|
|
Action11 _action11;
|
|
|
|
Action12 _action12;
|
|
|
|
Action13 _action13;
|
|
|
|
|
2011-03-22 08:05:11 +00:00
|
|
|
Scene4000();
|
2011-03-21 12:04:18 +00:00
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
|
|
virtual void signal();
|
|
|
|
virtual void dispatch();
|
|
|
|
};
|
|
|
|
|
2011-03-22 09:45:27 +00:00
|
|
|
class Scene4010: public Scene {
|
|
|
|
public:
|
|
|
|
SequenceManager _sequenceManager;
|
|
|
|
SpeakerQText _speakerQText;
|
|
|
|
SpeakerSText _speakerSText;
|
|
|
|
SpeakerMText _speakerMText;
|
|
|
|
SceneObject _hotspot1, _hotspot2;
|
|
|
|
|
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
|
2011-03-22 13:31:29 +00:00
|
|
|
class Scene4025: public Scene {
|
|
|
|
/* Custom classes */
|
|
|
|
class Peg;
|
|
|
|
|
|
|
|
class Hole: public SceneObject {
|
|
|
|
public:
|
|
|
|
Peg *_pegPtr;
|
|
|
|
int _armStrip;
|
|
|
|
Common::Point _newPosition;
|
|
|
|
|
|
|
|
virtual void synchronise(Serialiser &s);
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
class Peg: public SceneObject {
|
|
|
|
public:
|
|
|
|
int _field88;
|
|
|
|
int _armStrip;
|
|
|
|
|
|
|
|
Peg(): SceneObject() { _field88 = 0; _armStrip = 3; }
|
|
|
|
virtual void synchronise(Serialiser &s);
|
|
|
|
virtual void doAction(int action);
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Actions */
|
|
|
|
class Action1: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action2: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
class Action3: public Action {
|
|
|
|
public:
|
|
|
|
virtual void signal();
|
|
|
|
};
|
|
|
|
public:
|
|
|
|
SequenceManager _sequenceManager;
|
|
|
|
GfxButton _gfxButton;
|
|
|
|
SceneObject _armHotspot;
|
|
|
|
Hole _hole1, _hole2, _hole3, _hole4, _hole5;
|
|
|
|
Peg _peg1, _peg2, _peg3, _peg4, _peg5;
|
|
|
|
Action1 _action1;
|
|
|
|
Action2 _action2;
|
|
|
|
Action3 _action3;
|
|
|
|
Peg *_pegPtr, *_pegPtr2;
|
|
|
|
Hole *_holePtr;
|
|
|
|
|
2011-03-23 08:16:09 +00:00
|
|
|
Scene4025();
|
2011-03-22 13:31:29 +00:00
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
|
|
virtual void synchronise(Serialiser &s);
|
|
|
|
virtual void remove();
|
|
|
|
virtual void signal();
|
|
|
|
virtual void process(Event &event);
|
|
|
|
virtual void dispatch();
|
|
|
|
};
|
|
|
|
|
2011-03-21 12:04:18 +00:00
|
|
|
} // End of namespace tSage
|
|
|
|
|
|
|
|
#endif
|