mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-26 22:57:00 +02:00
760 lines
17 KiB
JSON
760 lines
17 KiB
JSON
// This is schema for checking game settings from settings.json
|
|
// Any new settings should be added in this file for correct serialization and initialization
|
|
{
|
|
"type" : "object",
|
|
"$schema" : "http://json-schema.org/draft-04/schema",
|
|
"required" : [ "general", "video", "adventure", "battle", "input", "server", "logging", "launcher", "lobby", "gameTweaks", "mods" ],
|
|
"definitions" : {
|
|
"logLevelEnum" : {
|
|
"type" : "string",
|
|
"enum" : [ "trace", "debug", "info", "warn", "error" ]
|
|
}
|
|
},
|
|
"additionalProperties" : false,
|
|
"properties" :
|
|
{
|
|
"general" : {
|
|
"type" : "object",
|
|
"default" : {},
|
|
"additionalProperties" : false,
|
|
"required" : [
|
|
"playerName",
|
|
"multiPlayerNames",
|
|
"music",
|
|
"sound",
|
|
"saveRandomMaps",
|
|
"lastMap",
|
|
"language",
|
|
"gameDataLanguage",
|
|
"lastSave",
|
|
"lastSettingsTab",
|
|
"lastCampaign",
|
|
"lastDifficulty",
|
|
"saveFrequency",
|
|
"notifications",
|
|
"extraDump",
|
|
"userRelativePointer",
|
|
"relativePointerSpeedMultiplier",
|
|
"hapticFeedback",
|
|
"longTouchTimeMilliseconds",
|
|
"autosaveCountLimit",
|
|
"useSavePrefix",
|
|
"savePrefix",
|
|
"startTurnAutosave",
|
|
"enableUiEnhancements",
|
|
"audioMuteFocus"
|
|
],
|
|
"properties" : {
|
|
"playerName" : {
|
|
"type" : "string",
|
|
"default" : "Player"
|
|
},
|
|
"multiPlayerNames" : {
|
|
"type" : "array",
|
|
"default" : []
|
|
},
|
|
"music" : {
|
|
"type" : "number",
|
|
"default" : 88
|
|
},
|
|
"sound" : {
|
|
"type" : "number",
|
|
"default" : 88
|
|
},
|
|
"saveRandomMaps" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"lastMap" : {
|
|
"type" : "string",
|
|
"default" : "Maps/Arrogance"
|
|
},
|
|
"language" : {
|
|
"type" : "string",
|
|
"enum" : [ "english", "czech", "chinese", "finnish", "french", "german", "hungarian", "italian", "korean", "polish", "portuguese", "russian", "spanish", "swedish", "turkish", "ukrainian", "vietnamese" ],
|
|
"default" : "english"
|
|
},
|
|
"gameDataLanguage" : {
|
|
"type" : "string",
|
|
"enum" : [ "auto", "english", "czech", "chinese", "finnish", "french", "german", "hungarian", "italian", "korean", "polish", "portuguese", "russian", "spanish", "swedish", "turkish", "ukrainian", "vietnamese" ],
|
|
"default" : "auto"
|
|
},
|
|
"lastSave" : {
|
|
"type" : "string",
|
|
"default" : "NEWGAME"
|
|
},
|
|
"lastSettingsTab" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
},
|
|
"lastCampaign" : {
|
|
"type" : "string",
|
|
"default" : ""
|
|
},
|
|
"lastDifficulty" : {
|
|
"type" : "number",
|
|
"default" : 1
|
|
},
|
|
"saveFrequency" : {
|
|
"type" : "number",
|
|
"default" : 1
|
|
},
|
|
"notifications" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"extraDump" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"userRelativePointer" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"relativePointerSpeedMultiplier" : {
|
|
"type" : "number",
|
|
"default" : 1
|
|
},
|
|
"longTouchTimeMilliseconds" : {
|
|
"type" : "number",
|
|
"default" : 1000
|
|
},
|
|
"hapticFeedback" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"autosaveCountLimit" : {
|
|
"type" : "number",
|
|
"default": 5
|
|
},
|
|
"useSavePrefix" : {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"savePrefix" : {
|
|
"type": "string",
|
|
"default": ""
|
|
},
|
|
"startTurnAutosave" : {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"enableUiEnhancements" : {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"audioMuteFocus" : {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
|
|
"mods" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [
|
|
"validation"
|
|
],
|
|
"properties" : {
|
|
"validation" : {
|
|
"type" : "string",
|
|
"enum" : [ "off", "basic", "full" ],
|
|
"default" : "basic"
|
|
}
|
|
}
|
|
},
|
|
|
|
"video" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [
|
|
"resolution",
|
|
"reservedWidth",
|
|
"fullscreen",
|
|
"realFullscreen",
|
|
"cursor",
|
|
"showIntro",
|
|
"spellbookAnimation",
|
|
"driver",
|
|
"displayIndex",
|
|
"showfps",
|
|
"targetfps",
|
|
"vsync",
|
|
"fontsType",
|
|
"cursorScalingFactor",
|
|
"fontScalingFactor",
|
|
"upscalingFilter",
|
|
"fontUpscalingFilter",
|
|
"downscalingFilter"
|
|
],
|
|
"properties" : {
|
|
"resolution" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"required" : [ "width", "height", "scaling" ],
|
|
"properties" : {
|
|
"width" : { "type" : "number", "default" : 1280 },
|
|
"height" : { "type" : "number", "default" : 720 },
|
|
"scaling" : { "type" : "number", "default" : 0 }
|
|
}
|
|
},
|
|
"reservedWidth" : {
|
|
"type" : "number",
|
|
"defaultIOS" : 0.1, // iOS camera cutout / notch is not excluded from available area by SDL, handle it this way
|
|
"default" : 0
|
|
},
|
|
"fullscreen" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"realFullscreen" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"cursor" : {
|
|
"type" : "string",
|
|
"enum" : [ "hardware", "software" ],
|
|
"default" : "hardware"
|
|
},
|
|
"showIntro" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"spellbookAnimation" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"driver" : {
|
|
"type" : "string",
|
|
"defaultWindows" : "",
|
|
"default" : "opengl",
|
|
"description" : "preferred graphics backend driver name for SDL2"
|
|
},
|
|
"displayIndex" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
},
|
|
"showfps" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"targetfps" : {
|
|
"type" : "number",
|
|
"default" : 60
|
|
},
|
|
"vsync" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"fontsType" : {
|
|
"type" : "string",
|
|
"enum" : [ "auto", "original", "scalable" ],
|
|
"default" : "auto"
|
|
},
|
|
"cursorScalingFactor" : {
|
|
"type" : "number",
|
|
"default" : 1
|
|
},
|
|
"fontScalingFactor" : {
|
|
"type" : "number",
|
|
"default" : 1
|
|
},
|
|
"fontUpscalingFilter" : {
|
|
"type" : "string",
|
|
"enum" : [ "nearest", "bilinear", "xbrz" ],
|
|
"default" : "nearest"
|
|
},
|
|
"upscalingFilter" : {
|
|
"type" : "string",
|
|
"enum" : [ "auto", "none", "xbrz2", "xbrz3", "xbrz4" ],
|
|
"default" : "auto"
|
|
},
|
|
"downscalingFilter" : {
|
|
"type" : "string",
|
|
"enum" : [ "nearest", "linear", "best" ],
|
|
"default" : "best"
|
|
}
|
|
}
|
|
},
|
|
"input" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [
|
|
"radialWheelGarrisonSwipe",
|
|
"touchToleranceDistance",
|
|
"mouseToleranceDistance",
|
|
"shortcutToleranceDistance",
|
|
"enableMouse",
|
|
"enableTouch",
|
|
"enableController",
|
|
"controllerTriggerTreshold",
|
|
"controllerAxisDeadZone",
|
|
"controllerAxisFullZone",
|
|
"controllerAxisSpeed",
|
|
"controllerAxisScale"
|
|
],
|
|
"properties" : {
|
|
"radialWheelGarrisonSwipe" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"touchToleranceDistance" : {
|
|
"type" : "number",
|
|
"default" : 20
|
|
},
|
|
"mouseToleranceDistance" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
},
|
|
"shortcutToleranceDistance" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
},
|
|
"enableMouse" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"enableTouch" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"enableController" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"controllerTriggerTreshold" : {
|
|
"type" : "number",
|
|
"default" : 0.3
|
|
},
|
|
"controllerAxisDeadZone" : {
|
|
"type" : "number",
|
|
"default" : 0.2
|
|
},
|
|
"controllerAxisFullZone" : {
|
|
"type" : "number",
|
|
"default" : 1.0
|
|
},
|
|
"controllerAxisSpeed" : {
|
|
"type" : "number",
|
|
"default" : 1000
|
|
},
|
|
"controllerAxisScale" : {
|
|
"type" : "number",
|
|
"default" : 2
|
|
}
|
|
}
|
|
},
|
|
"adventure" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "heroMoveTime", "enemyMoveTime", "scrollSpeedPixels", "heroReminder", "quickCombat", "objectAnimation", "terrainAnimation", "forceQuickCombat", "borderScroll", "leftButtonDrag", "rightButtonDrag", "smoothDragging", "backgroundDimLevel", "hideBackground", "backgroundDimSmallWindows" ],
|
|
"properties" : {
|
|
"heroMoveTime" : {
|
|
"type" : "number",
|
|
"default" : 150
|
|
},
|
|
"enemyMoveTime" : {
|
|
"type" : "number",
|
|
"default" : 150
|
|
},
|
|
"scrollSpeedPixels" : {
|
|
"type" : "number",
|
|
"default" : 800
|
|
},
|
|
"heroReminder" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"quickCombat" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"objectAnimation" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"terrainAnimation" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"forceQuickCombat" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"borderScroll" :
|
|
{
|
|
"type" : "boolean",
|
|
"defaultIOS" : false,
|
|
"defaultAndroid" : false,
|
|
"default" : true
|
|
},
|
|
"leftButtonDrag" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"rightButtonDrag" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"smoothDragging" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"backgroundDimLevel" : {
|
|
"type" : "number",
|
|
"default" : 128
|
|
},
|
|
"hideBackground" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"backgroundDimSmallWindows" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
}
|
|
}
|
|
},
|
|
"battle" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "speedFactor", "mouseShadow", "cellBorders", "stackRange", "movementHighlightOnHover", "rangeLimitHighlightOnHover", "showQueue", "swipeAttackDistance", "queueSize", "stickyHeroInfoWindows", "enableAutocombatSpells", "endWithAutocombat", "queueSmallSlots", "queueSmallOutside", "enableQuickSpellPanel" ],
|
|
"properties" : {
|
|
"speedFactor" : {
|
|
"type" : "number",
|
|
"default" : 2
|
|
},
|
|
"mouseShadow" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"cellBorders" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"stackRange" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"movementHighlightOnHover" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"rangeLimitHighlightOnHover" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"showQueue" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"swipeAttackDistance" : {
|
|
"type" : "number",
|
|
"default" : 250
|
|
},
|
|
"queueSize" : {
|
|
"type" : "string",
|
|
"default" : "auto",
|
|
"enum" : [ "auto", "small", "big" ]
|
|
},
|
|
"stickyHeroInfoWindows" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"enableAutocombatSpells" : {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"endWithAutocombat" : {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"queueSmallSlots" : {
|
|
"type": "number",
|
|
"default": 10
|
|
},
|
|
"queueSmallOutside" : {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"enableQuickSpellPanel" : {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"server" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "localHostname", "localPort", "remoteHostname", "remotePort", "seed", "playerAI", "alliedAI", "friendlyAI", "neutralAI", "enemyAI" ],
|
|
"properties" : {
|
|
"localHostname" : {
|
|
"type" : "string",
|
|
"default" : "127.0.0.1"
|
|
},
|
|
"localPort" : {
|
|
"type" : "number",
|
|
"default" : 3030
|
|
},
|
|
"remoteHostname" : {
|
|
"type" : "string",
|
|
"default" : ""
|
|
},
|
|
"remotePort" : {
|
|
"type" : "number",
|
|
"default" : 3030
|
|
},
|
|
"seed" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
},
|
|
"playerAI" : {
|
|
"type" : "string",
|
|
"default" : "Nullkiller"
|
|
},
|
|
"alliedAI" : {
|
|
"type" : "string",
|
|
"default" : "Nullkiller"
|
|
},
|
|
"friendlyAI" : {
|
|
"type" : "string",
|
|
"default" : "BattleAI"
|
|
},
|
|
"neutralAI" : {
|
|
"type" : "string",
|
|
"default" : "BattleAI"
|
|
},
|
|
"enemyAI" : {
|
|
"type" : "string",
|
|
"default" : "BattleAI"
|
|
}
|
|
}
|
|
},
|
|
"logging" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "console", "file", "loggers" ],
|
|
"properties" : {
|
|
"console" : {
|
|
"type" : "object",
|
|
"default" : {},
|
|
"required" : [ "format", "threshold", "coloredOutputEnabled", "colorMapping" ],
|
|
"properties" : {
|
|
"format" : {
|
|
"type" : "string",
|
|
"default" : "%m"
|
|
},
|
|
"threshold" : {
|
|
"$ref" : "#/definitions/logLevelEnum",
|
|
"default" : "info"
|
|
},
|
|
"coloredOutputEnabled" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"colorMapping" : {
|
|
"type" : "array",
|
|
"default" : [
|
|
{ "domain" : "global", "level" : "trace", "color" : "gray"},
|
|
{ "domain" : "global", "level" : "debug", "color" : "white"},
|
|
{ "domain" : "global", "level" : "info", "color" : "green"},
|
|
{ "domain" : "global", "level" : "warn", "color" : "yellow"},
|
|
{ "domain" : "global", "level" : "error", "color" : "red"}
|
|
],
|
|
"items" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "domain", "level", "color" ],
|
|
"properties" : {
|
|
"domain" : { "type" : "string" },
|
|
"level" : { "$ref" : "#/definitions/logLevelEnum" },
|
|
"color" : { "type" : "string", "enum" : [ "default", "green", "red", "magenta", "yellow", "white", "gray", "teal" ] }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"file" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "format" ],
|
|
"properties" : {
|
|
"format" : {
|
|
"type" : "string",
|
|
"default" : "[%c] %l [%t] %n - %m"
|
|
}
|
|
}
|
|
},
|
|
"loggers" : {
|
|
"type" : "array",
|
|
"default" : [ { "domain" : "global", "level" : "trace" }, { "domain" : "rng", "level" : "info" } ],
|
|
"items" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"required" : [ "level", "domain" ],
|
|
"properties" : {
|
|
"domain" : { "type" : "string" },
|
|
"level" : { "$ref" : "#/definitions/logLevelEnum" }
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"launcher" : {
|
|
"type" : "object",
|
|
"default" : {},
|
|
"additionalProperties" : false,
|
|
"required" : [
|
|
"setupCompleted",
|
|
"defaultRepositoryEnabled",
|
|
"defaultRepositoryURL",
|
|
"extraRepositoryURL",
|
|
"extraRepositoryEnabled",
|
|
"autoCheckRepositories",
|
|
"ignoreSslErrors",
|
|
"updateOnStartup",
|
|
"updateConfigUrl"
|
|
],
|
|
"properties" : {
|
|
"defaultRepositoryEnabled" : {
|
|
"type" : "boolean",
|
|
"default" : true,
|
|
},
|
|
"defaultRepositoryURL" : {
|
|
"type" : "string",
|
|
"default" : "https://raw.githubusercontent.com/vcmi/vcmi-mods-repository/develop/vcmi-1.6.json",
|
|
},
|
|
"extraRepositoryEnabled" : {
|
|
"type" : "boolean",
|
|
"default" : false,
|
|
},
|
|
"extraRepositoryURL" : {
|
|
"type" : "string",
|
|
"default" : "",
|
|
},
|
|
"setupCompleted" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"ignoreSslErrors" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"autoCheckRepositories" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"updateOnStartup" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"updateConfigUrl" : {
|
|
"type" : "string",
|
|
"default" : "https://raw.githubusercontent.com/vcmi/vcmi-updates/master/vcmi-updates.json"
|
|
}
|
|
}
|
|
},
|
|
"lobby" : {
|
|
"type" : "object",
|
|
"additionalProperties" : false,
|
|
"default" : {},
|
|
"required" : [ "mapPreview", "hostname", "port", "roomPlayerLimit", "roomType", "roomMode" ],
|
|
"properties" : {
|
|
"mapPreview" : {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"hostname" : {
|
|
"type" : "string",
|
|
"default" : "beholder.vcmi.eu"
|
|
},
|
|
"port" : {
|
|
"type" : "number",
|
|
"default" : 3031
|
|
},
|
|
"roomPlayerLimit" : {
|
|
"type" : "number",
|
|
"default" : 2
|
|
},
|
|
"roomType" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
},
|
|
"roomMode" : {
|
|
"type" : "number",
|
|
"default" : 0
|
|
}
|
|
}
|
|
},
|
|
"gameTweaks" : {
|
|
"type" : "object",
|
|
"default" : {},
|
|
"additionalProperties" : false,
|
|
"required" : [
|
|
"showGrid",
|
|
"forceMovementInfo",
|
|
"numericCreaturesQuantities",
|
|
"availableCreaturesAsDwellingLabel",
|
|
"compactTownCreatureInfo",
|
|
"infoBarPick",
|
|
"skipBattleIntroMusic",
|
|
"infoBarCreatureManagement",
|
|
"enableLargeSpellbook",
|
|
"skipAdventureMapAnimations"
|
|
],
|
|
"properties" : {
|
|
"showGrid" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"forceMovementInfo" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"numericCreaturesQuantities" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"availableCreaturesAsDwellingLabel" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"compactTownCreatureInfo" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"infoBarPick" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"skipBattleIntroMusic" : {
|
|
"type" : "boolean",
|
|
"default" : false
|
|
},
|
|
"infoBarCreatureManagement": {
|
|
"type" : "boolean",
|
|
"default" : true
|
|
},
|
|
"enableLargeSpellbook" : {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"skipAdventureMapAnimations": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|