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 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (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, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef COMMON_PLATFORM_H 24 #define COMMON_PLATFORM_H 25 26 #include "common/scummsys.h" 27 28 namespace Common { 29 30 /** 31 * @defgroup common_platform Game platforms 32 * @ingroup common 33 * 34 * @brief API for managing game platforms. 35 * @{ 36 */ 37 38 class String; 39 40 /** 41 * List of game platforms. Specifying a platform for a target can be used to 42 * give the game engines a hint for which platform the game data file are. 43 * This may be optional or required, depending on the game engine and the 44 * game in question. 45 */ 46 enum Platform { 47 kPlatformDOS, 48 kPlatformAmiga, 49 kPlatformAtari8Bit, 50 kPlatformAtariST, 51 kPlatformMacintosh, 52 kPlatformFMTowns, 53 kPlatformWindows, 54 kPlatformNES, 55 kPlatformC64, 56 kPlatformCoCo3, 57 kPlatformLinux, 58 kPlatformAcorn, 59 kPlatformSegaCD, 60 kPlatform3DO, 61 kPlatformPCEngine, 62 kPlatformApple2, 63 kPlatformApple2GS, 64 kPlatformPC98, 65 kPlatformWii, 66 kPlatformPSX, 67 kPlatformPS2, 68 kPlatformXbox, 69 kPlatformCDi, 70 kPlatformIOS, 71 kPlatformOS2, 72 kPlatformBeOS, 73 kPlatformPocketPC, 74 kPlatformMegaDrive, 75 kPlatformSaturn, 76 kPlatformPippin, 77 kPlatformMacintoshII, 78 kPlatformShockwave, 79 80 kPlatformUnknown = -1 81 }; 82 83 struct PlatformDescription { 84 const char *code; 85 const char *code2; 86 const char *abbrev; 87 const char *description; 88 Platform id; 89 }; 90 91 extern const PlatformDescription g_platforms[]; 92 93 /** Convert a string containing a platform name into a Platform enum value. */ 94 extern Platform parsePlatform(const String &str); 95 extern const char *getPlatformCode(Platform id); 96 extern const char *getPlatformAbbrev(Platform id); 97 extern const char *getPlatformDescription(Platform id); 98 99 /** @} */ 100 101 } // End of namespace Common 102 103 #endif 104