scummvm/engines/tsage/blue_force/blueforce_scenes0.h

190 lines
4.7 KiB
C++

/* 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.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES0_H
#define TSAGE_BLUEFORCE_SCENES0_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene20 : public SceneExt {
/* Actions */
class Action1 : public Action {
private:
ASoundExt _sound;
public:
virtual void signal();
};
public:
Action1 _action1;
ScenePalette _scenePalette;
SceneObject _tsunamiWave, _letterT, _letterS, _letterU;
SceneObject _letterN, _letterA, _letterM, _letterI;
virtual void postInit(SceneObjectList *OwnerList = NULL);
};
class Scene50: public SceneExt {
class Tooltip: public SavedObject {
public:
Rect _bounds;
Common::String _msg;
int _newSceneNumber;
int _locationId;
public:
Tooltip();
void set(const Rect &bounds, int sceneNum, const Common::String &msg, int locationId);
void update();
void highlight(bool btnDown);
virtual Common::String getClassName() { return "Scene50_Tooltip"; }
virtual void synchronize(Serializer &s);
};
class Tooltip2: public Action {
public:
Tooltip2(): Action() {}
virtual Common::String getClassName() { return "Scene50_Tooltip2"; }
virtual void signal();
virtual void dispatch();
};
public:
int _sceneNumber;
SceneText _text;
SceneItemType2 _item;
Tooltip _location1, _location2, _location3, _location4, _location5;
Tooltip _location6, _location7, _location8, _location9;
Timer _timer;
public:
virtual Common::String getClassName() { return "Scene50"; }
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void remove();
virtual void signal();
virtual void process(Event &event);
};
class Scene60 : public SceneExt {
/* Items */
class Ignition: public NamedHotspot {
private:
bool check1();
bool check2();
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item3: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Radio: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Compartment: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
/* Objects */
class MirandaCard: public NamedObject {
public:
virtual bool startAction(CursorType action, Event &event);
};
class TicketBook: public NamedObject {
public:
virtual bool startAction(CursorType action, Event &event);
};
class CompartmentDoor: public NamedObject {
public:
bool _flag;
virtual bool startAction(CursorType action, Event &event);
};
/* Actions */
class Action1: public ActionExt {
private:
int useRadio();
public:
virtual void signal();
};
class Action2: public Action {
public:
virtual void signal();
};
class Action3: public Action {
public:
virtual void signal();
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
Action3 _action3;
NamedObject _object1;
MirandaCard _mirandaCard;
TicketBook _ticketBook;
CompartmentDoor _compartmentDoor;
SceneObject _dashboard;
BackgroundSceneObject _car;
NamedHotspot _item1;
Ignition _ignition;
Item3 _item3;
Radio _radio;
Compartment _compartment;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeRadio _jakeRadioSpeaker;
ASound _sound;
int _newScene;
int _sceneNumber;
int _visage;
CursorType _cursorId;
// TODO: Check if really useless in original
bool _field1222;
Scene60();
virtual void synchronize(Serializer &s);
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void remove();
virtual void signal();
virtual void dispatch();
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif