From 2ada5a8dd7d953d35ddb8ad56a6827cc95daa1cb Mon Sep 17 00:00:00 2001 From: richiesams Date: Mon, 24 Jun 2013 00:43:57 -0500 Subject: 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. --- engines/zvision/control.h | 37 ++++++++++++++ engines/zvision/puzzle.h | 119 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 engines/zvision/control.h create mode 100644 engines/zvision/puzzle.h (limited to 'engines/zvision') 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 arguments; +}; + +enum StateFlags : byte { + ONCE_PER_INST = 0x01, + DO_ME_NOW = 0x02, + DISABLED = 0x04 +}; + +struct Puzzle { + uint32 id; + Common::List criteriaList; + Common::List resultList; + byte flags; +}; + +} + +#endif -- cgit v1.2.3