scummvm/common/gui_options.h
Colin Snover f11b0a4ff5 SCI32: Toggle Phant2 content censoring from game options
To enable the optional content censoring mode, Phant2 looks
for a RESDUK.PAT file, which is normally placed by the game's
installer if the user chose to enable censorship. If the file
exists, the game reads an unlock password out of the file and
asks the user to enter the password when starting a new game to
create an uncensored game, or to click a "less intense" button
to start the game with censoring. The censorship state of the
game is then persisted in the save game file, and installations
with the RESDUK.PAT file need to enter the password again in
order to restore any of the uncensored saves.

Since we do not have an installer that can enable this feature,
add a game option toggle to enable/disable censoring (for the
releases that have the optional censorship mode) instead so the
censored content feature is available for anyone that wants to use
it. This flag is restored from ScummVM whenever a save game is
loaded, so it can be toggled on or off at any point without
needing a separate save game, unlike in the original interpreter.
2017-09-08 16:03:24 -05:00

110 lines
3.5 KiB
C++

/* 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 COMMON_GUI_OPTIONS_H
#define COMMON_GUI_OPTIONS_H
#define GUIO_NONE "\000"
#define GUIO_NOSUBTITLES "\001"
#define GUIO_NOMUSIC "\002"
// GUIO_NOSPEECH is a combination of GUIO_NOSPEECHVOLUME and GUIO_NOSUBTITLES
#define GUIO_NOSPEECH "\003"
#define GUIO_NOSFX "\004"
#define GUIO_NOMIDI "\005"
#define GUIO_NOLAUNCHLOAD "\006"
#define GUIO_MIDIPCSPK "\007"
#define GUIO_MIDICMS "\010"
#define GUIO_MIDIPCJR "\011"
#define GUIO_MIDIADLIB "\012"
#define GUIO_MIDIC64 "\013"
#define GUIO_MIDIAMIGA "\014"
#define GUIO_MIDIAPPLEIIGS "\015"
#define GUIO_MIDITOWNS "\016"
#define GUIO_MIDIPC98 "\017"
#define GUIO_MIDIMT32 "\020"
#define GUIO_MIDIGM "\021"
#define GUIO_NOASPECT "\022"
#define GUIO_RENDERHERCGREEN "\030"
#define GUIO_RENDERHERCAMBER "\031"
#define GUIO_RENDERCGA "\032"
#define GUIO_RENDEREGA "\033"
#define GUIO_RENDERVGA "\034"
#define GUIO_RENDERAMIGA "\035"
#define GUIO_RENDERFMTOWNS "\036"
#define GUIO_RENDERPC9821 "\037"
#define GUIO_RENDERPC9801 "\040"
#define GUIO_RENDERAPPLE2GS "\041"
#define GUIO_RENDERATARIST "\042"
#define GUIO_RENDERMACINTOSH "\043"
#define GUIO_LINKSPEECHTOSFX "\044"
#define GUIO_LINKMUSICTOSFX "\045"
#define GUIO_NOSPEECHVOLUME "\046"
// Special GUIO flags for the AdvancedDetector's caching of game specific
// options.
#define GUIO_GAMEOPTIONS1 "\050"
#define GUIO_GAMEOPTIONS2 "\051"
#define GUIO_GAMEOPTIONS3 "\052"
#define GUIO_GAMEOPTIONS4 "\053"
#define GUIO_GAMEOPTIONS5 "\054"
#define GUIO_GAMEOPTIONS6 "\055"
#define GUIO_GAMEOPTIONS7 "\056"
#define GUIO_GAMEOPTIONS8 "\057"
#define GUIO_GAMEOPTIONS9 "\060"
#define GUIO_GAMEOPTIONS10 "\061"
#define GUIO_GAMEOPTIONS11 "\062"
#define GUIO0() (GUIO_NONE)
#define GUIO1(a) (a)
#define GUIO2(a,b) (a b)
#define GUIO3(a,b,c) (a b c)
#define GUIO4(a,b,c,d) (a b c d)
#define GUIO5(a,b,c,d,e) (a b c d e)
#define GUIO6(a,b,c,d,e,f) (a b c d e f)
#define GUIO7(a,b,c,d,e,f,g) (a b c d e f g)
#define GUIO8(a,b,c,d,e,f,g,h) (a b c d e f g h)
#define GUIO9(a,b,c,d,e,f,g,h,i) (a b c d e f g h i)
namespace Common {
class String;
bool checkGameGUIOption(const String &option, const String &str);
String parseGameGUIOptions(const String &str);
const String getGameGUIOptionsDescription(const String &options);
/**
* Updates the GUI options of the current config manager
* domain, when they differ to the ones passed as
* parameter.
*/
void updateGameGUIOptions(const String &options, const String &langOption);
} // End of namespace Common
#endif