ScummVM API documentation
metaengine.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef ULTIMA_ULTIMA8_META_ENGINE
23 #define ULTIMA_ULTIMA8_META_ENGINE
24 
25 #include "backends/keymapper/keymapper.h"
26 #include "engines/metaengine.h"
27 
28 namespace Ultima {
29 namespace Ultima8 {
30 
31 enum KeybindingAction {
32  ACTION_QUICKSAVE, ACTION_SAVE, ACTION_LOAD, ACTION_BEDROLL, ACTION_COMBAT,
33  ACTION_BACKPACK, ACTION_KEYRING, ACTION_MINIMAP, ACTION_RECALL,
34  ACTION_INVENTORY, ACTION_NEXT_WEAPON, ACTION_NEXT_INVENTORY,
35  ACTION_USE_INVENTORY, ACTION_USE_MEDIKIT, ACTION_USE_ENERGYCUBE,
36  ACTION_SELECT_ITEMS, ACTION_DETONATE_BOMB, ACTION_DROP_WEAPON,
37  ACTION_USE_SELECTION, ACTION_GRAB_ITEMS, ACTION_MENU, ACTION_CLOSE_GUMPS,
38  ACTION_HIGHLIGHT_ITEMS, ACTION_TOGGLE_TOUCHING, ACTION_JUMP,
39  ACTION_SHORT_JUMP, ACTION_TURN_LEFT, ACTION_TURN_RIGHT, ACTION_MOVE_FORWARD,
40  ACTION_MOVE_BACK, ACTION_MOVE_UP, ACTION_MOVE_DOWN, ACTION_MOVE_LEFT,
41  ACTION_MOVE_RIGHT, ACTION_MOVE_RUN, ACTION_MOVE_STEP, ACTION_ATTACK,
42  ACTION_STEP_LEFT, ACTION_STEP_RIGHT, ACTION_STEP_FORWARD,
43  ACTION_STEP_BACK, ACTION_ROLL_LEFT, ACTION_ROLL_RIGHT, ACTION_TOGGLE_CROUCH,
44  ACTION_CAMERA_AVATAR,
45 
46  ACTION_CLIPPING, ACTION_DEC_SORT_ORDER,
47  ACTION_INC_SORT_ORDER, ACTION_QUICK_MOVE_ASCEND, ACTION_QUICK_MOVE_DESCEND,
48  ACTION_QUICK_MOVE_UP, ACTION_QUICK_MOVE_DOWN, ACTION_QUICK_MOVE_LEFT,
49  ACTION_QUICK_MOVE_RIGHT,
50 
51 #ifndef RELEASE_BUILD
52  ACTION_TOGGLE_PAINT, ACTION_ENGINE_STATS, ACTION_FRAME_BY_FRAME,
53  ACTION_ADVANCE_FRAME, ACTION_TOGGLE_STASIS, ACTION_SHAPE_VIEWER,
54 #endif
55 
56  ACTION_NONE
57 };
58 
59 class MetaEngine {
60 public:
64  static Common::KeymapArray initKeymaps(const Common::String &gameId);
65 
69  static Common::String getMethod(KeybindingAction keyAction, bool isPress);
70 
74  static bool querySaveMetaInfos(const Common::String &filename, SaveStateDescriptor &desc);
75 };
76 
77 } // End of namespace Ultima8
78 } // End of namespace Ultima
79 
80 #endif
Definition: str.h:59
Definition: array.h:52
Definition: savestate.h:56
static bool querySaveMetaInfos(const Common::String &filename, SaveStateDescriptor &desc)
Definition: detection.h:27
static Common::String getMethod(KeybindingAction keyAction, bool isPress)
static Common::KeymapArray initKeymaps(const Common::String &gameId)
Definition: metaengine.h:59