protected void ResetScummVarsCore()
{
if (Game.Version <= 6)
{
// VAR_SOUNDCARD modes
// 0 PC Speaker
// 1 Tandy
// 2 CMS
// 3 AdLib
// 4 Roland
switch (Sound.MusicType)
{
case MusicDriverTypes.None:
case MusicDriverTypes.PCSpeaker:
Variables[VariableSoundcard.Value] = 0;
break;
case MusicDriverTypes.PCjr:
Variables[VariableSoundcard.Value] = 1;
break;
case MusicDriverTypes.CMS:
Variables[VariableSoundcard.Value] = 2;
break;
case MusicDriverTypes.AdLib:
Variables[VariableSoundcard.Value] = 3;
break;
case MusicDriverTypes.Midi:
Variables[VariableSoundcard.Value] = 4;
break;
default:
if ((Game.GameId == GameId.Monkey1 && Game.Variant == "EGA") || (Game.GameId == GameId.Monkey1 && Game.Variant == "VGA") ||
(Game.GameId == GameId.Loom && Game.Version == 3)) /*&& (_game.platform == Common::kPlatformDOS)*/
{
Variables[VariableSoundcard.Value] = 4;
}
else
{
Variables[VariableSoundcard.Value] = 3;
}
break;
}
if (Game.Platform == Platform.FMTowns)
{
Variables[VariableVideoMode.Value] = 42;
}
// Value only used by the Macintosh version of Indiana Jones and the Last Crusade
else if (Game.Platform == Platform.Macintosh && Game.Version == 3)
{
Variables[VariableVideoMode.Value] = 50;
}
// Value only used by the Amiga version of Monkey Island 2
else if (Game.Platform == Platform.Amiga)
{
Variables[VariableVideoMode.Value] = 82;
}
else
{
Variables[VariableVideoMode.Value] = 19;
}
if ((Game.Platform == Platform.Macintosh) && Game.IsOldBundle)
{
// Set screen size for the Macintosh version of Indy3/Loom
Variables[39] = 320;
}
if (Game.Platform == Platform.DOS && Game.GameId == GameId.Loom && Game.Version == 3)
{
// Set number of sound resources
Variables[39] = 80;
}
if (Game.GameId == GameId.Loom || Game.Version >= 4)
{
Variables[VariableHeapSpace.Value] = 1400;
}
if (Game.Version >= 4)
{
Variables[VariableFixedDisk.Value] = 1;
}
if (Game.Version >= 5)
{
Variables[VariableInputMode.Value] = 3;
}
if (Game.Version == 6)
{
Variables[VariableV6EMSSpace.Value] = 10000;
}
}
if (VariableVoiceMode.HasValue)
{
Variables[VariableVoiceMode.Value] = (int)VoiceMode.VoiceAndText;
}
if (VariableRoomWidth.HasValue && VariableRoomHeight.HasValue)
{
Variables[VariableRoomWidth.Value] = ScreenWidth;
Variables[VariableRoomHeight.Value] = ScreenHeight;
}
if (VariableDebugMode.HasValue)
{
Variables[VariableDebugMode.Value] = (DebugMode ? 1 : 0);
}
if (VariableFadeDelay.HasValue)
{
Variables[VariableFadeDelay.Value] = 3;
}
Variables[VariableCharIncrement.Value] = 4;
TalkingActor = 0;
if (Game.Version >= 5 && Game.Version <= 7)
{
Sound.SetupSound();
}
}