aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision
diff options
context:
space:
mode:
authorrichiesams2013-06-24 00:43:57 -0500
committerrichiesams2013-08-04 13:31:45 -0500
commit2ada5a8dd7d953d35ddb8ad56a6827cc95daa1cb (patch)
tree896c3691183546a9c3a029cb92e8efc5956d3bb3 /engines/zvision
parentf444a1fd38329e77624ecd10c753d6b5ce6edf94 (diff)
downloadscummvm-rg350-2ada5a8dd7d953d35ddb8ad56a6827cc95daa1cb.tar.gz
scummvm-rg350-2ada5a8dd7d953d35ddb8ad56a6827cc95daa1cb.tar.bz2
scummvm-rg350-2ada5a8dd7d953d35ddb8ad56a6827cc95daa1cb.zip
ZVISION: Split puzzleControl into two files. Add ResultAction enum
After further investigation, puzzles and controls don't really share any structs. So it makes more sense to keep them seperate.
Diffstat (limited to 'engines/zvision')
-rw-r--r--engines/zvision/control.h37
-rw-r--r--engines/zvision/puzzle.h119
2 files changed, 156 insertions, 0 deletions
diff --git a/engines/zvision/control.h b/engines/zvision/control.h
new file mode 100644
index 0000000000..46a7211702
--- /dev/null
+++ b/engines/zvision/control.h
@@ -0,0 +1,37 @@
+/* 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_CONTROL_H
+#define ZVISION_CONTROL_H
+
+#include "common/scummsys.h"
+
+namespace ZVision {
+
+struct Control {
+ uint16 id;
+
+};
+
+} // End namespace ZVision
+
+#endif
diff --git a/engines/zvision/puzzle.h b/engines/zvision/puzzle.h
new file mode 100644
index 0000000000..cb44a440e1
--- /dev/null
+++ b/engines/zvision/puzzle.h
@@ -0,0 +1,119 @@
+/* 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_PUZZLE_H
+#define ZVISION_PUZZLE_H
+
+#include "common/list.h"
+
+#include "zvision/object.h"
+
+namespace ZVision {
+
+/** How criteria should be decided */
+enum CriteriaOperator {
+ EQUAL_TO,
+ NOT_EQUAL_TO,
+ GREATER_THAN,
+ LESS_THAN
+};
+
+/** Criteria for a Puzzle result to be fired */
+struct Criteria {
+ /** The id of a global state */
+ uint32 id;
+ /**
+ * What we're comparing the value of the global state against
+ * This can either be a pure value or it can be the id of another global state
+ */
+ uint32 argument;
+ /** How to do the comparison */
+ CriteriaOperator criteriaOperator;
+ /** Is 'argument' the id of a global state or a pure value */
+ bool argumentIsAnId;
+};
+
+/** What happens when Puzzle criteria are met */
+enum ResultAction {
+ ADD,
+ ANIM_PLAY,
+ ANIM_PRELOAD,
+ ANIM_UNLOAD,
+ ATTENUATE,
+ ASSIGN,
+ CHANGE_LOCATION,
+ 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,
+ TIMER,
+ TTY_TEXT,
+ UNIVERSE_MUSIC,
+};
+
+/** What happens when Puzzle criteria are met */
+struct Result {
+ ResultAction action;
+ Common::List<Object> arguments;
+};
+
+enum StateFlags : byte {
+ ONCE_PER_INST = 0x01,
+ DO_ME_NOW = 0x02,
+ DISABLED = 0x04
+};
+
+struct Puzzle {
+ uint32 id;
+ Common::List<Criteria> criteriaList;
+ Common::List<Result> resultList;
+ byte flags;
+};
+
+}
+
+#endif