File indexing completed on 2024-05-12 05:09:23
0001 /*************************************************************************** 0002 Copyright (C) 2006-2009 Robby Stephenson <robby@periapsis.org> 0003 0004 ***************************************************************************/ 0005 0006 /*************************************************************************** 0007 * * 0008 * This program is free software; you can redistribute it and/or * 0009 * modify it under the terms of the GNU General Public License as * 0010 * published by the Free Software Foundation; either version 2 of * 0011 * the License or (at your option) version 3 or any later version * 0012 * accepted by the membership of KDE e.V. (or its successor approved * 0013 * by the membership of KDE e.V.), which shall act as a proxy * 0014 * defined in Section 14 of version 3 of the license. * 0015 * * 0016 * This program is distributed in the hope that it will be useful, * 0017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0019 * GNU General Public License for more details. * 0020 * * 0021 * You should have received a copy of the GNU General Public License * 0022 * along with this program. If not, see <http://www.gnu.org/licenses/>. * 0023 * * 0024 ***************************************************************************/ 0025 0026 #ifndef GAMECOLLECTION_H 0027 #define GAMECOLLECTION_H 0028 0029 #include "../collection.h" 0030 0031 namespace Tellico { 0032 namespace Data { 0033 0034 /** 0035 * A collection for games. 0036 */ 0037 class GameCollection : public Collection { 0038 Q_OBJECT 0039 0040 public: 0041 /** 0042 * The constructor 0043 * 0044 * @param title The title of the collection 0045 */ 0046 explicit GameCollection(bool addDefaultFields, const QString& title = QString()); 0047 0048 virtual Type type() const Q_DECL_OVERRIDE { return Game; } 0049 0050 static FieldList defaultFields(); 0051 0052 enum GamePlatform { 0053 UnknownPlatform = 0, 0054 Linux, 0055 MacOS, 0056 Windows, 0057 iOS, 0058 Android, 0059 Xbox, 0060 Xbox360, 0061 XboxOne, 0062 XboxSeriesX, 0063 PlayStation, 0064 PlayStation2, 0065 PlayStation3, 0066 PlayStation4, 0067 PlayStation5, 0068 PlayStationPortable, 0069 PlayStationVita, 0070 GameBoy, 0071 GameBoyColor, 0072 GameBoyAdvance, 0073 Nintendo, 0074 SuperNintendo, 0075 Nintendo64, 0076 NintendoGameCube, 0077 NintendoWii, 0078 NintendoWiiU, 0079 NintendoSwitch, 0080 NintendoDS, 0081 Nintendo3DS, 0082 Genesis, 0083 Dreamcast, 0084 LastPlatform 0085 }; 0086 static QString normalizePlatform(const QString& platformName); 0087 static GamePlatform guessPlatform(const QString& platformName); 0088 static QString platformName(GamePlatform platform); 0089 0090 enum EsrbRating { 0091 UnknownEsrb = 0, 0092 Unrated, 0093 Adults, 0094 Mature, 0095 Teen, 0096 Everyone10, 0097 Everyone, 0098 EarlyChildhood, 0099 Pending 0100 }; 0101 static QStringList esrbRatings(); 0102 static QString esrbRating(EsrbRating rating); 0103 }; 0104 0105 } // end namespace 0106 } // end namespace 0107 #endif