mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-11 12:18:05 +00:00
7644e00bf3
There's no point in copying the String since it's just being parsed
193 lines
3.8 KiB
C++
193 lines
3.8 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 ZVISION_RESULT_ACTION_H
|
|
#define ZVISION_RESULT_ACTION_H
|
|
|
|
#include "common/scummsys.h"
|
|
|
|
#include "common/str.h"
|
|
|
|
namespace ZVision {
|
|
|
|
// Forward declaration of ZVision. This file is included before ZVision is declared
|
|
class ZVision;
|
|
|
|
class ResultAction {
|
|
public:
|
|
virtual ~ResultAction() {}
|
|
virtual bool execute(ZVision *engine) = 0;
|
|
};
|
|
|
|
|
|
// The different types of actions
|
|
// CROSSFADE,
|
|
// DEBUG,
|
|
// DELAY_RENDER,
|
|
// DISABLE_CONTROL,
|
|
// DISABLE_VENUS,
|
|
// DISPLAY_MESSAGE,
|
|
// DISSOLVE,
|
|
// DISTORT,
|
|
// ENABLE_CONTROL,
|
|
// FLUSH_MOUSE_EVENTS,
|
|
// INVENTORY,
|
|
// KILL,
|
|
// MENU_BAR_ENABLE,
|
|
// MUSIC,
|
|
// PAN_TRACK,
|
|
// PLAY_PRELOAD,
|
|
// PREFERENCES,
|
|
// QUIT,
|
|
// RANDOM,
|
|
// REGION,
|
|
// RESTORE_GAME,
|
|
// ROTATE_TO,
|
|
// SAVE_GAME,
|
|
// SET_PARTIAL_SCREEN,
|
|
// SET_SCREEN,
|
|
// SET_VENUS,
|
|
// STOP,
|
|
// STREAM_VIDEO,
|
|
// SYNC_SOUND,
|
|
// TTY_TEXT,
|
|
// UNIVERSE_MUSIC,
|
|
|
|
class ActionAdd : public ResultAction {
|
|
public:
|
|
ActionAdd(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
byte _value;
|
|
};
|
|
|
|
class ActionAssign : public ResultAction {
|
|
public:
|
|
ActionAssign(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
byte _value;
|
|
};
|
|
|
|
class ActionAttenuate : public ResultAction {
|
|
public:
|
|
ActionAttenuate(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
int16 _attenuation;
|
|
};
|
|
|
|
class ActionChangeLocation : public ResultAction {
|
|
public:
|
|
ActionChangeLocation(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
char _world;
|
|
char _room;
|
|
char _nodeview[2];
|
|
int16 _x;
|
|
};
|
|
|
|
class ActionCrossfade : public ResultAction {
|
|
public:
|
|
ActionCrossfade(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _keyOne;
|
|
uint32 _keyTwo;
|
|
byte _oneStartVolume;
|
|
byte _twoStartVolume;
|
|
byte _oneEndVolume;
|
|
byte _twoEndVolume;
|
|
uint16 _timeInMillis;
|
|
};
|
|
|
|
class ActionPlayAnimation : public ResultAction {
|
|
public:
|
|
ActionPlayAnimation(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
Common::String _fileName;
|
|
uint32 _x;
|
|
uint32 _y;
|
|
uint32 _width;
|
|
uint32 _height;
|
|
uint32 _start;
|
|
uint32 _end;
|
|
uint32 _mask;
|
|
byte _framerate;
|
|
bool _loop;
|
|
};
|
|
|
|
class ActionPreloadAnimation : public ResultAction {
|
|
public:
|
|
ActionPreloadAnimation(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
Common::String _fileName;
|
|
uint32 _mask;
|
|
byte _framerate;
|
|
};
|
|
|
|
// TODO: See if this exists in ZGI. It doesn't in ZNem
|
|
//class ActionUnloadAnimation : public ResultAction {
|
|
//public:
|
|
// ActionUnloadAnimation(Common::String *line);
|
|
// bool execute(ZVision *engine);
|
|
//};
|
|
|
|
class ActionRandom : public ResultAction {
|
|
public:
|
|
ActionRandom(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
uint32 _max;
|
|
};
|
|
|
|
class ActionTimer : public ResultAction {
|
|
public:
|
|
ActionTimer(Common::String *line);
|
|
bool execute(ZVision *engine);
|
|
|
|
private:
|
|
uint32 _key;
|
|
uint32 _time;
|
|
};
|
|
|
|
} // End of namespace ZVision
|
|
|
|
#endif
|