diff options
Diffstat (limited to 'engines/zvision/actions.h')
-rw-r--r-- | engines/zvision/actions.h | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/engines/zvision/actions.h b/engines/zvision/actions.h new file mode 100644 index 0000000000..a58ef68e34 --- /dev/null +++ b/engines/zvision/actions.h @@ -0,0 +1,192 @@ +/* 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 *zVision) = 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 *zVision); + +private: + uint32 _key; + byte _value; +}; + +class ActionAssign : public ResultAction { +public: + ActionAssign(Common::String line); + bool execute(ZVision *zVision); + +private: + uint32 _key; + byte _value; +}; + +class ActionAttenuate : public ResultAction { +public: + ActionAttenuate(Common::String line); + bool execute(ZVision *zVision); + +private: + uint32 _key; + int16 _attenuation; +}; + +class ActionChangeLocation : public ResultAction { +public: + ActionChangeLocation(Common::String line); + bool execute(ZVision *zVision); + +private: + char _world; + char _room; + char _nodeview[2]; + int16 _x; +}; + +class ActionCrossfade : public ResultAction { +public: + ActionCrossfade(Common::String line); + bool execute(ZVision *zVision); + +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 *zVision); + +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 *zVision); + +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 *zVision); +//}; + +class ActionRandom : public ResultAction { +public: + ActionRandom(Common::String line); + bool execute(ZVision *zVision); + +private: + uint32 _key; + uint32 _max; +}; + +class ActionTimer : public ResultAction { +public: + ActionTimer(Common::String line); + bool execute(ZVision *zVision); + +private: + uint32 _key; + uint32 _time; +}; + +} // End of namespace ZVision + +#endif |