private void DefineMacrosAccordingToGameSettings(IPreprocessor preprocessor)
{
preprocessor.DefineMacro("AGS_NEW_STRINGS", "1");
preprocessor.DefineMacro("AGS_SUPPORTS_IFVER", "1");
if (_game.Settings.DebugMode)
{
preprocessor.DefineMacro("DEBUG", "1");
}
if (_game.Settings.EnforceObjectBasedScript)
{
preprocessor.DefineMacro("STRICT", "1");
}
if (_game.Settings.LeftToRightPrecedence)
{
preprocessor.DefineMacro("LRPRECEDENCE", "1");
}
if (_game.Settings.EnforceNewStrings)
{
preprocessor.DefineMacro("STRICT_STRINGS", "1");
}
if (_game.Settings.EnforceNewAudio)
{
preprocessor.DefineMacro("STRICT_AUDIO", "1");
}
if (!_game.Settings.UseOldCustomDialogOptionsAPI)
{
preprocessor.DefineMacro("NEW_DIALOGOPTS_API", "1");
}
// Define Script API level macros
foreach (ScriptAPIVersion v in Enum.GetValues(typeof(ScriptAPIVersion)))
{
if (v > _game.Settings.ScriptAPIVersion)
break;
preprocessor.DefineMacro(_scriptAPIVersionMacros[(int)v], "1");
}
foreach (ScriptAPIVersion v in Enum.GetValues(typeof(ScriptAPIVersion)))
{
if (v < _game.Settings.ScriptCompatLevel)
continue;
preprocessor.DefineMacro(_scriptCompatLevelMacros[(int)v], "1");
}
}