SCI: Add game option for enabling/disabling LarryScale in LSL7

All other SCI games continue using the default scaler.
This commit is contained in:
Daniel Wolf 2018-03-16 15:53:20 +01:00
parent f8c32b07e7
commit 999cf71dcf
6 changed files with 18 additions and 3 deletions

View file

@ -84,6 +84,7 @@ const struct GameOpt {
// "gameOption10" would be invalid here because it contains "gameOption1"
{ GUIO_GAMEOPTIONS10, "gameOptionA" },
{ GUIO_GAMEOPTIONS11, "gameOptionB" },
{ GUIO_GAMEOPTIONS12, "gameOptionC" },
{ GUIO_NONE, 0 }
};

View file

@ -76,6 +76,7 @@
#define GUIO_GAMEOPTIONS9 "\060"
#define GUIO_GAMEOPTIONS10 "\061"
#define GUIO_GAMEOPTIONS11 "\062"
#define GUIO_GAMEOPTIONS12 "\063"
#define GUIO0() (GUIO_NONE)
#define GUIO1(a) (a)

View file

@ -436,6 +436,16 @@ static const ADExtraGuiOptionsMap optionsList[] = {
},
#endif
{
GAMEOPTION_LARRYSCALE,
{
_s("Use high-quality \"LarryScale\" cel scaling"),
_s("Use special cartoon scaler for drawing character sprites"),
"enable_larryscale",
true
}
},
{
GAMEOPTION_PREFER_DIGITAL_SFX,
{

View file

@ -2733,11 +2733,12 @@ static const struct ADGameDescription SciGameDescriptions[] = {
#define GUIO_LSL7_DEMO GUIO3(GUIO_NOASPECT, \
GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD)
#define GUIO_LSL7 GUIO5(GUIO_NOASPECT, \
#define GUIO_LSL7 GUIO6(GUIO_NOASPECT, \
GUIO_NOMIDI, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_HQ_VIDEO)
GAMEOPTION_HQ_VIDEO, \
GAMEOPTION_LARRYSCALE)
// Larry 7 - English DOS Demo (provided by richiefs in bug report #2670691)
// SCI interpreter version 2.100.002

View file

@ -32,6 +32,7 @@
#include "sci/engine/workarounds.h"
#include "sci/util.h"
#include "graphics/larryScale.h"
#include "common/config-manager.h"
namespace Sci {
#pragma mark CelScaler
@ -201,7 +202,7 @@ struct SCALER_Scale {
const CelScalerTable &table = CelObj::_scaler->getScalerTable(scaleX, scaleY);
const bool useLarryScale = true;
const bool useLarryScale = ConfMan.getBool("enable_larryscale");
if (useLarryScale) {
// LarryScale is an alternative, high-quality cel scaler implemented
// for ScummVM. Due to the nature of smooth upscaling, it does *not*

View file

@ -58,6 +58,7 @@ namespace Sci {
#define GAMEOPTION_ENABLE_BLACK_LINED_VIDEO GUIO_GAMEOPTIONS9
#define GAMEOPTION_HQ_VIDEO GUIO_GAMEOPTIONS10
#define GAMEOPTION_ENABLE_CENSORING GUIO_GAMEOPTIONS11
#define GAMEOPTION_LARRYSCALE GUIO_GAMEOPTIONS12
struct EngineState;
class Vocabulary;