Merge pull request #1626 from IvanSavenko/setting_ux_improvements
New settings window ux improvements
BIN
Mods/vcmi/Data/settingsWindow/checkBoxEmpty.png
Normal file
After Width: | Height: | Size: 130 B |
BIN
Mods/vcmi/Data/settingsWindow/frameAudio.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
Mods/vcmi/Data/settingsWindow/frameMovement.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
Mods/vcmi/Data/settingsWindow/frameStackQueue.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
Mods/vcmi/Data/settingsWindow/gear.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
Mods/vcmi/Data/settingsWindow/lineHorizontal.png
Normal file
After Width: | Height: | Size: 90 B |
BIN
Mods/vcmi/Data/settingsWindow/lineVertical.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
Mods/vcmi/Data/settingsWindow/scrollSpeed1.png
Normal file
After Width: | Height: | Size: 399 B |
BIN
Mods/vcmi/Data/settingsWindow/scrollSpeed2.png
Normal file
After Width: | Height: | Size: 460 B |
BIN
Mods/vcmi/Data/settingsWindow/scrollSpeed3.png
Normal file
After Width: | Height: | Size: 529 B |
BIN
Mods/vcmi/Data/settingsWindow/scrollSpeed4.png
Normal file
After Width: | Height: | Size: 602 B |
BIN
Mods/vcmi/Data/settingsWindow/scrollSpeed5.png
Normal file
After Width: | Height: | Size: 628 B |
BIN
Mods/vcmi/Data/settingsWindow/scrollSpeed6.png
Normal file
After Width: | Height: | Size: 713 B |
Before Width: | Height: | Size: 459 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.7 KiB |
@ -1,10 +0,0 @@
|
||||
{
|
||||
"basepath" : "buttons/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "quadwide-normal.png"},
|
||||
{ "frame" : 1, "file" : "quadwide-pressed-selected.png"},
|
||||
{ "frame" : 2, "file" : "quadwide-pressed.png"},
|
||||
{ "frame" : 3, "file" : "quadwide-normal-selected.png"},
|
||||
]
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"basepath" : "buttons/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "resolutionNormal.png"},
|
||||
{ "frame" : 1, "file" : "resolutionPressed.png"}
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.3 KiB |
@ -1,10 +0,0 @@
|
||||
{
|
||||
"basepath" : "buttons/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "square-normal.png"},
|
||||
{ "frame" : 1, "file" : "square-pressed-selected.png"},
|
||||
{ "frame" : 2, "file" : "square-pressed.png"},
|
||||
{ "frame" : 3, "file" : "square-normal-selected.png"}
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.4 KiB |
@ -1,10 +0,0 @@
|
||||
{
|
||||
"basepath" : "buttons/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "triplewide-normal.png"},
|
||||
{ "frame" : 1, "file" : "triplewide-pressed-selected.png"},
|
||||
{ "frame" : 2, "file" : "triplewide-pressed.png"},
|
||||
{ "frame" : 3, "file" : "triplewide-normal-selected.png"}
|
||||
]
|
||||
}
|
10
Mods/vcmi/Sprites/settingsWindow/button190.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"basepath" : "settingsWindow/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "button190Normal.png"},
|
||||
{ "frame" : 1, "file" : "button190PressedSelected.png"},
|
||||
{ "frame" : 2, "file" : "button190Pressed.png"},
|
||||
{ "frame" : 3, "file" : "button190NormalSelected.png"}
|
||||
]
|
||||
}
|
BIN
Mods/vcmi/Sprites/settingsWindow/button190Normal.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button190NormalSelected.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button190Pressed.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button190PressedSelected.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
10
Mods/vcmi/Sprites/settingsWindow/button32.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"basepath" : "settingsWindow/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "button32Normal.png"},
|
||||
{ "frame" : 1, "file" : "button32PressedSelected.png"},
|
||||
{ "frame" : 2, "file" : "button32Pressed.png"},
|
||||
{ "frame" : 3, "file" : "button32NormalSelected.png"}
|
||||
]
|
||||
}
|
BIN
Mods/vcmi/Sprites/settingsWindow/button32Normal.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button32NormalSelected.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button32Pressed.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button32PressedSelected.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
10
Mods/vcmi/Sprites/settingsWindow/button46.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"basepath" : "settingsWindow/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "button46Normal.png"},
|
||||
{ "frame" : 1, "file" : "button46PressedSelected.png"},
|
||||
{ "frame" : 2, "file" : "button46Pressed.png"},
|
||||
{ "frame" : 3, "file" : "button46NormalSelected.png"}
|
||||
]
|
||||
}
|
BIN
Mods/vcmi/Sprites/settingsWindow/button46Normal.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button46NormalSelected.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button46Pressed.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button46PressedSelected.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
10
Mods/vcmi/Sprites/settingsWindow/button80.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"basepath" : "settingsWindow/",
|
||||
"images" :
|
||||
[
|
||||
{ "frame" : 0, "file" : "button80Normal.png"},
|
||||
{ "frame" : 1, "file" : "button80PressedSelected.png"},
|
||||
{ "frame" : 2, "file" : "button80Pressed.png"},
|
||||
{ "frame" : 3, "file" : "button80NormalSelected.png"}
|
||||
]
|
||||
}
|
BIN
Mods/vcmi/Sprites/settingsWindow/button80Normal.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button80NormalSelected.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button80Pressed.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
Mods/vcmi/Sprites/settingsWindow/button80PressedSelected.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
@ -26,57 +26,66 @@
|
||||
"vcmi.server.confirmReconnect" : "Connect to the last session?",
|
||||
|
||||
"vcmi.settingsMainWindow.generalTab.hover" : "General",
|
||||
"vcmi.settingsMainWindow.generalTab.help" : "Switches to System Options tab - these settings are related to general game client behavior",
|
||||
"vcmi.settingsMainWindow.generalTab.help" : "Switches to General Options tab, which contains settings related to general game client behavior",
|
||||
"vcmi.settingsMainWindow.battleTab.hover" : "Battle",
|
||||
"vcmi.settingsMainWindow.battleTab.help" : "Switches to Battle Options tab - these settings allow configuring battle interface and related things",
|
||||
"vcmi.settingsMainWindow.battleTab.help" : "Switches to Battle Options tab, which allows configuring game behavior during battles",
|
||||
"vcmi.settingsMainWindow.adventureTab.hover" : "Adventure Map",
|
||||
"vcmi.settingsMainWindow.adventureTab.help" : "Switches to Adventure Map Options tab - adventure map is part of the game where you can move your heroes",
|
||||
"vcmi.settingsMainWindow.otherTab.hover" : "Other Settings",
|
||||
"vcmi.settingsMainWindow.otherTab.help" : "Switches to Other Settings tab - these options do not fit into other categories for various reasons",
|
||||
|
||||
"vcmi.systemOptions.videoGroup" : "Video Settings",
|
||||
"vcmi.systemOptions.audioGroup" : "Audio Settings",
|
||||
"vcmi.systemOptions.otherGroup" : "Other Settings", // unused right now
|
||||
"vcmi.systemOptions.townsGroup" : "Town Screen",
|
||||
|
||||
"vcmi.systemOptions.fullscreenButton.hover" : "Fullscreen",
|
||||
"vcmi.systemOptions.fullscreenButton.help" : "{Fullscreen}\n\n If selected, VCMI will run in fullscreen mode, otherwise VCMI will run in window",
|
||||
"vcmi.systemOptions.resolutionButton.hover" : "Resolution",
|
||||
"vcmi.systemOptions.resolutionButton.help" : "{Select resolution}\n\n Change in-game screen resolution. Game restart required to apply new resolution.",
|
||||
"vcmi.systemOptions.resolutionMenu.hover" : "Select resolution",
|
||||
"vcmi.systemOptions.resolutionButton.hover" : "Resolution: %wx%h",
|
||||
"vcmi.systemOptions.resolutionButton.help" : "{Select Resolution}\n\n Change in-game screen resolution. Game restart required to apply new resolution.",
|
||||
"vcmi.systemOptions.resolutionMenu.hover" : "Select Resolution",
|
||||
"vcmi.systemOptions.resolutionMenu.help" : "Change in-game screen resolution.",
|
||||
"vcmi.systemOptions.fullscreenFailed" : "{Fullscreen}\n\n Failed to switch to fullscreen mode! Current resolution is not supported by display!",
|
||||
"vcmi.systemOptions.framerateButton.hover" : "Show FPS",
|
||||
"vcmi.systemOptions.framerateButton.help" : "{Show FPS}\n\n Toggle on/off showing Frames Per Second counter in corner of game window.",
|
||||
"vcmi.systemOptions.framerateButton.help" : "{Show FPS}\n\n Toggles visibility of Frames Per Second counter in corner of game window.",
|
||||
|
||||
"vcmi.adventureOptions.numericQuantities.hover" : "Numeric creatures quantities",
|
||||
"vcmi.adventureOptions.numericQuantities.help" : "{Numeric creatures quantities}\n\n Shows inaccurate enemy creatures quantities in numeric A-B format.",
|
||||
"vcmi.adventureOptions.forceMovementInfo.hover" : "Always show move info in status bar",
|
||||
"vcmi.adventureOptions.forceMovementInfo.help" : "{Always show move info in status bar}\n\n Replaces default status bar info with movement points data without need to hold ALT button.",
|
||||
"vcmi.adventureOptions.showGrid.hover" : "Show grid",
|
||||
"vcmi.adventureOptions.showGrid.help" : "{Show grid}\n\n Shows grid overlay, showing borders between adventure map tiles.",
|
||||
"vcmi.adventureOptions.mapScrollSpeed4.hover": "4",
|
||||
"vcmi.adventureOptions.mapScrollSpeed4.help": "Set map scrolling speed to very fast",
|
||||
"vcmi.adventureOptions.mapScrollSpeed5.hover": "5",
|
||||
"vcmi.adventureOptions.mapScrollSpeed5.help": "Set map scrolling speed to extremely fast",
|
||||
"vcmi.adventureOptions.numericQuantities.hover" : "Numeric Creature Quantities",
|
||||
"vcmi.adventureOptions.numericQuantities.help" : "{Numeric Creature Quantities}\n\n Shows approximate enemy creatures quantities in numeric A-B format.",
|
||||
"vcmi.adventureOptions.forceMovementInfo.hover" : "Always Show Movement Cost",
|
||||
"vcmi.adventureOptions.forceMovementInfo.help" : "{Always Show Movement Cost}\n\n Replaces default status bar info with movement points data without need to hold ALT button.",
|
||||
"vcmi.adventureOptions.showGrid.hover" : "Show Grid",
|
||||
"vcmi.adventureOptions.showGrid.help" : "{Show Grid}\n\n Shows grid overlay, showing borders between adventure map tiles.",
|
||||
"vcmi.adventureOptions.mapSwipe.hover" : "Map Swipe",
|
||||
"vcmi.adventureOptions.mapSwipe.help" : "{Map Swipe}\n\n Allows map movement via finger swipe gesture on systems with touchscreen. As of right now, can also be accessed via left mouse button.",
|
||||
"vcmi.adventureOptions.mapScrollSpeed1.hover": "",
|
||||
"vcmi.adventureOptions.mapScrollSpeed5.hover": "",
|
||||
"vcmi.adventureOptions.mapScrollSpeed6.hover": "",
|
||||
"vcmi.adventureOptions.mapScrollSpeed1.help": "Set map scrolling speed to very slow",
|
||||
"vcmi.adventureOptions.mapScrollSpeed5.help": "Set map scrolling speed to very fast",
|
||||
"vcmi.adventureOptions.mapScrollSpeed6.help": "Set map scrolling speed to instantaneous.",
|
||||
|
||||
"vcmi.battleOptions.showQueue.hover": "Show queue",
|
||||
"vcmi.battleOptions.showQueue.help": "{Show queue}\n\n Show queue that displays movement order of creature stacks.",
|
||||
"vcmi.battleOptions.queueSizeLabel.hover": "Queue size (takes effect on next battle)",
|
||||
"vcmi.battleOptions.queueSizeLabel.hover": "Show Creature Turn Order",
|
||||
"vcmi.battleOptions.queueSizeNoneButton.hover": "OFF",
|
||||
"vcmi.battleOptions.queueSizeAutoButton.hover": "AUTO",
|
||||
"vcmi.battleOptions.queueSizeAutoButton.help": "Sets queue size depending on game resolution (small if width < 700 pixels, big otherwise)",
|
||||
"vcmi.battleOptions.queueSizeSmallButton.hover": "SMALL",
|
||||
"vcmi.battleOptions.queueSizeSmallButton.help": "Sets queue size to small",
|
||||
"vcmi.battleOptions.queueSizeBigButton.hover": "BIG",
|
||||
"vcmi.battleOptions.queueSizeBigButton.help": "Sets queue size to big (not supported if game resolution width < 700 pixels)",
|
||||
"vcmi.battleOptions.animationsSpeed4.hover": "4",
|
||||
"vcmi.battleOptions.animationsSpeed4.help": "Sets animation speed to very fast",
|
||||
"vcmi.battleOptions.animationsSpeed5.hover": "5",
|
||||
"vcmi.battleOptions.animationsSpeed5.help": "Sets animation speed to super fast",
|
||||
"vcmi.battleOptions.animationsSpeed6.hover": "6",
|
||||
"vcmi.battleOptions.animationsSpeed6.help": "Sets animation speed to extremely fast",
|
||||
"vcmi.battleOptions.skipBattleIntroMusic.hover": "Skip intro music",
|
||||
"vcmi.battleOptions.skipBattleIntroMusic.help": "{Skip intro music}\n\n Skip short music that plays at beginning of each battle before action starts. Can also be skipped by pressing ESC key.",
|
||||
"vcmi.battleOptions.queueSizeNoneButton.help": "Completely disables visibility of creature turn order in battle",
|
||||
"vcmi.battleOptions.queueSizeAutoButton.help": "Sets turn order size depending on game resolution (small when playing with screen resolution below 700 pixels high, big otherwise)",
|
||||
"vcmi.battleOptions.queueSizeSmallButton.help": "Sets turn order size to small",
|
||||
"vcmi.battleOptions.queueSizeBigButton.help": "Sets turn order size to big (not supported if game resolution is less than 700 pixels high)",
|
||||
"vcmi.battleOptions.animationsSpeed1.hover": "",
|
||||
"vcmi.battleOptions.animationsSpeed5.hover": "",
|
||||
"vcmi.battleOptions.animationsSpeed6.hover": "",
|
||||
"vcmi.battleOptions.animationsSpeed1.help": "Sets animation speed to very slow",
|
||||
"vcmi.battleOptions.animationsSpeed5.help": "Sets animation speed to very fast",
|
||||
"vcmi.battleOptions.animationsSpeed6.help": "Sets animation speed to instantaneous",
|
||||
"vcmi.battleOptions.skipBattleIntroMusic.hover": "Skip Intro Music",
|
||||
"vcmi.battleOptions.skipBattleIntroMusic.help": "{Skip Intro Music}\n\n Skip short music that plays at beginning of each battle before action starts. Can also be skipped by pressing ESC key.",
|
||||
|
||||
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.hover" : "Show available creatures in town summary",
|
||||
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.help" : "{Show available creatures in town summary}\n\n Shows creatures available to purchase instead of their growth in town summary (bottom-left corner).",
|
||||
"vcmi.otherOptions.compactTownCreatureInfo.hover": "Compact creature info in town summary",
|
||||
"vcmi.otherOptions.compactTownCreatureInfo.help": "{Compact creature info in town summary}\n\n Smaller town creatures information in town summary.",
|
||||
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.hover" : "Show Available Creatures",
|
||||
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.help" : "{Show Available Creatures}\n\n Shows creatures available to purchase instead of their growth in town summary (bottom-left corner).",
|
||||
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.hover" : "Show Weekly Growth of Creatures",
|
||||
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.help" : "{Show Weekly Growth of Creatures}\n\n Shows creatures' weekly growth instead of avaialable amount in town summary (bottom-left corner).",
|
||||
"vcmi.otherOptions.compactTownCreatureInfo.hover": "Compact Creature Info",
|
||||
"vcmi.otherOptions.compactTownCreatureInfo.help": "{Compact Creature Info}\n\n Smaller town creatures information in town summary.",
|
||||
|
||||
"vcmi.townHall.missingBase" : "Base building %s must be built first",
|
||||
"vcmi.townHall.noCreaturesToRecruit" : "There are no creatures to recruit!",
|
||||
|
@ -26,13 +26,69 @@
|
||||
"vcmi.server.errors.modsIncompatibility" : "Потрібні модифікації для завантаження гри:",
|
||||
"vcmi.server.confirmReconnect" : "Підключитися до минулої сесії?",
|
||||
|
||||
"vcmi.systemOptions.fullscreenButton.hover" : "Режим на весь екран",
|
||||
"vcmi.systemOptions.fullscreenButton.help" : "{Режим на весь екран}\n\n Якщо обрано, VCMI буде запускатися в режимі на весь екран, інакше — віконний режим",
|
||||
"vcmi.systemOptions.resolutionButton.hover" : "Розширення екрану",
|
||||
"vcmi.systemOptions.resolutionButton.help" : "{Розширення екрану}\n\n Зміна розширення екрану в грі. Аби зміни набули чинності необхідно перезавантажити гру.",
|
||||
"vcmi.systemOptions.resolutionMenu.hover" : "Обрати розширення екрану",
|
||||
"vcmi.systemOptions.resolutionMenu.help" : "Змінити розширення екрану в грі.",
|
||||
|
||||
"vcmi.settingsMainWindow.generalTab.hover" : "Загальні",
|
||||
"vcmi.settingsMainWindow.generalTab.help" : "Перемикає на вкладку загальних параметрів, яка містить налаштування, пов'язані із загальною поведінкою ігрового клієнта",
|
||||
"vcmi.settingsMainWindow.battleTab.hover" : "Бої",
|
||||
"vcmi.settingsMainWindow.battleTab.help" : "Перемикає на вкладку параметрів бою, яка дозволяє налаштувати поведінку гри під час бою",
|
||||
"vcmi.settingsMainWindow.adventureTab.hover" : "Мапа Пригод",
|
||||
"vcmi.settingsMainWindow.adventureTab.help" : "Перемикає на вкладку параметрів мапи пригод - мапа пригод є частиною гри, де ви можете переміщати своїх героїв",
|
||||
|
||||
"vcmi.systemOptions.videoGroup" : "Налаштування відео",
|
||||
"vcmi.systemOptions.audioGroup" : "Налаштування аудіо",
|
||||
"vcmi.systemOptions.otherGroup" : "Інші налаштування",
|
||||
"vcmi.systemOptions.townsGroup" : "Екран міста",
|
||||
|
||||
"vcmi.systemOptions.fullscreenButton.hover" : "Повноекранний режим",
|
||||
"vcmi.systemOptions.fullscreenButton.help" : "{Повноекранний режим}\n\n Якщо обрано, VCMI буде запускатися в режимі на весь екран, інакше — віконний режим",
|
||||
"vcmi.systemOptions.resolutionButton.hover" : "Роздільна здатність: %wx%h",
|
||||
"vcmi.systemOptions.resolutionButton.help" : "{Роздільна здатність}\n\n Зміна розширення екрану в грі. Аби зміни набули чинності необхідно перезавантажити гру.",
|
||||
"vcmi.systemOptions.resolutionMenu.hover" : "Обрати роздільну здатність екрану",
|
||||
"vcmi.systemOptions.resolutionMenu.help" : "Змінити роздільну здатність екрану в грі.",
|
||||
"vcmi.systemOptions.fullscreenFailed" : "{Повноекранний режим}\n\n Не вдалося перейти в повноекранний режим! Поточна роздільна здатність не підтримується дисплеєм!",
|
||||
"vcmi.systemOptions.framerateButton.hover" : "Лічильник кадрів",
|
||||
"vcmi.systemOptions.framerateButton.help" : "{Лічильник кадрів}\n\n Перемикає видимість лічильника кадрів на секунду у кутку ігрового вікна",
|
||||
|
||||
"vcmi.adventureOptions.numericQuantities.hover" : "Числовий показник кількості",
|
||||
"vcmi.adventureOptions.numericQuantities.help" : "{Числовий показник кількості}\n\n Показує приблизну кількість ворожих істот у числовому форматі А-Б.",
|
||||
"vcmi.adventureOptions.forceMovementInfo.hover" : "Завжди показувати вартість руху",
|
||||
"vcmi.adventureOptions.forceMovementInfo.help" : "{Завжди показувати вартість руху}\n\n Замінює стандартну інформацію в рядку стану на вартість переміщення без необхідності утримувати клавішу ALT.",
|
||||
"vcmi.adventureOptions.showGrid.hover" : "Показувати сітку",
|
||||
"vcmi.adventureOptions.showGrid.help" : "{Показувати сітку}\n\n Відображає сітку, що показує межі між клітинками на мапі пригод.",
|
||||
"vcmi.adventureOptions.mapSwipe.hover" : "Прокрутка мапи жестом",
|
||||
"vcmi.adventureOptions.mapSwipe.help" : "{Прокрутка мапи жестом}\n\n Дозволяє переміщати мапу пальцем на системах з сенсорним екраном. Станом на зараз, також доступний за допомогою лівої кнопки миші.",
|
||||
"vcmi.adventureOptions.mapScrollSpeed1.hover": "",
|
||||
"vcmi.adventureOptions.mapScrollSpeed5.hover": "",
|
||||
"vcmi.adventureOptions.mapScrollSpeed6.hover": "",
|
||||
"vcmi.adventureOptions.mapScrollSpeed1.help": "Встановити швидкість розгортання мапи - дуже повільно",
|
||||
"vcmi.adventureOptions.mapScrollSpeed5.help": "Встановити швидкість розгортання мапи - дуже швидко",
|
||||
"vcmi.adventureOptions.mapScrollSpeed6.help": "Встановити швидкість розгортання мапи - миттєво",
|
||||
|
||||
"vcmi.battleOptions.queueSizeLabel.hover": "Вигляд черги ходу істот",
|
||||
"vcmi.battleOptions.queueSizeNoneButton.hover": "ВИМК",
|
||||
"vcmi.battleOptions.queueSizeAutoButton.hover": "АВТО",
|
||||
"vcmi.battleOptions.queueSizeSmallButton.hover": "МАЛА",
|
||||
"vcmi.battleOptions.queueSizeBigButton.hover": "ВЕЛИКА",
|
||||
"vcmi.battleOptions.queueSizeNoneButton.help": "Повністю вимикає видимість черги ходу істот у бою",
|
||||
"vcmi.battleOptions.queueSizeAutoButton.help": "Встановлює розмір черги ходу істот залежно від роздільної здатності гри (малий, якщо грає з вертикальною роздільною здатністю екрана нижче 700 пікселів, великий інакше)",
|
||||
"vcmi.battleOptions.queueSizeSmallButton.help": "Встановлює розмір черги ходу істот на малий",
|
||||
"vcmi.battleOptions.queueSizeBigButton.help": "Встановлює розмір черги на великий (не підтримується, якщо вертикальна роздільна здатність гри менше 700 пікселів)",
|
||||
"vcmi.battleOptions.animationsSpeed1.hover": "",
|
||||
"vcmi.battleOptions.animationsSpeed5.hover": "",
|
||||
"vcmi.battleOptions.animationsSpeed6.hover": "",
|
||||
"vcmi.battleOptions.animationsSpeed1.help": "Встановити дуже низьку швидкість анімації",
|
||||
"vcmi.battleOptions.animationsSpeed5.help": "Встановити дуже високу швидкість анімації",
|
||||
"vcmi.battleOptions.animationsSpeed6.help": "Встановити миттєву швидкість анімації",
|
||||
"vcmi.battleOptions.skipBattleIntroMusic.hover": "Пропускати вступну музику",
|
||||
"vcmi.battleOptions.skipBattleIntroMusic.help": "{Пропускати вступну музику}\n\n Пропускати коротку музику, яка грає на початку кожної битви перед початком дії. Також можна пропустити, натиснувши клавішу ESC.",
|
||||
|
||||
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.hover" : "Показувати доступних істот",
|
||||
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.help" : "{Показувати доступних істот}\n\n Показує істот, яких можна придбати, замість їхнього приросту у зведенні по місту (нижній лівий кут).",
|
||||
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.hover" : "Показувати приріст істот",
|
||||
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.help" : "{Показувати приріст істот}\n\n Показує щотижневий приріст істот, замість кількості яку можна придбати у зведенні по місту (нижній лівий кут).",
|
||||
|
||||
"vcmi.otherOptions.compactTownCreatureInfo.hover": "Компактне відображення істот у місті",
|
||||
"vcmi.otherOptions.compactTownCreatureInfo.help": "{Компактне відображення істот у місті}\n\n Показує інформацію про істот у місті у зведенні по місту у більш компактному вигляді.",
|
||||
|
||||
"vcmi.townHall.missingBase" : "Спочатку необхідно звести початкову будівлю: %s",
|
||||
"vcmi.townHall.noCreaturesToRecruit" : "Немає істот, яких можна завербувати!",
|
||||
"vcmi.townHall.greetingManaVortex" : "Неподалік %s ваше тіло наповнюється новою силою. Ваша звична магічна енергія сьогодні подвоєна.",
|
||||
|
@ -1046,7 +1046,8 @@ static void mainLoop()
|
||||
resChanged([](const JsonNode &newState){ CGuiHandler::pushUserEvent(EUserEvent::FULLSCREEN_TOGGLED); });
|
||||
|
||||
inGuiThread.reset(new bool(true));
|
||||
GH.mainFPSmng->init();
|
||||
assert(GH.mainFPSmng);
|
||||
GH.mainFPSmng->init(settings["video"]["targetfps"].Integer());
|
||||
|
||||
while(1) //main SDL events loop
|
||||
{
|
||||
|
@ -37,7 +37,6 @@ struct CPathsInfo;
|
||||
VCMI_LIB_NAMESPACE_END
|
||||
|
||||
class CButton;
|
||||
class CToggleGroup;
|
||||
class CAdvMapInt;
|
||||
class CCastleInterface;
|
||||
class BattleInterface;
|
||||
|
@ -745,8 +745,7 @@ void BattleInterface::executeOnAnimationCondition( EAnimationEvents event, bool
|
||||
|
||||
void BattleInterface::setBattleQueueVisibility(bool visible)
|
||||
{
|
||||
windowObject->hideQueue();
|
||||
if(visible)
|
||||
windowObject->showQueue();
|
||||
else
|
||||
windowObject->hideQueue();
|
||||
}
|
||||
|
@ -35,7 +35,6 @@ class CPicture;
|
||||
class CFilledTexture;
|
||||
class CButton;
|
||||
class CToggleButton;
|
||||
class CToggleGroup;
|
||||
class CLabel;
|
||||
class CTextBox;
|
||||
class CAnimImage;
|
||||
|
@ -72,6 +72,20 @@ BattleWindow::BattleWindow(BattleInterface & owner):
|
||||
owner.fieldController.reset( new BattleFieldController(owner));
|
||||
owner.fieldController->createHeroes();
|
||||
|
||||
createQueue();
|
||||
|
||||
if ( owner.tacticsMode )
|
||||
tacticPhaseStarted();
|
||||
else
|
||||
tacticPhaseEnded();
|
||||
|
||||
addUsedEvents(RCLICK | KEYBOARD);
|
||||
}
|
||||
|
||||
void BattleWindow::createQueue()
|
||||
{
|
||||
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
|
||||
|
||||
//create stack queue and adjust our own position
|
||||
bool embedQueue;
|
||||
std::string queueSize = settings["battle"]["queueSize"].String();
|
||||
@ -89,13 +103,6 @@ BattleWindow::BattleWindow(BattleInterface & owner):
|
||||
pos.h += queue->pos.h;
|
||||
pos = center();
|
||||
}
|
||||
|
||||
if ( owner.tacticsMode )
|
||||
tacticPhaseStarted();
|
||||
else
|
||||
tacticPhaseEnded();
|
||||
|
||||
addUsedEvents(RCLICK | KEYBOARD);
|
||||
}
|
||||
|
||||
BattleWindow::~BattleWindow()
|
||||
@ -147,16 +154,9 @@ void BattleWindow::showQueue()
|
||||
Settings showQueue = settings.write["battle"]["showQueue"];
|
||||
showQueue->Bool() = true;
|
||||
|
||||
queue->enable();
|
||||
|
||||
if (!queue->embedded)
|
||||
{
|
||||
//re-center, taking into account stack queue position
|
||||
pos.y -= queue->pos.h;
|
||||
pos.h += queue->pos.h;
|
||||
pos = center();
|
||||
GH.totalRedraw();
|
||||
}
|
||||
createQueue();
|
||||
updateQueue();
|
||||
GH.totalRedraw();
|
||||
}
|
||||
|
||||
void BattleWindow::updateQueue()
|
||||
|
@ -57,7 +57,7 @@ class BattleWindow : public InterfaceObjectConfigurable
|
||||
|
||||
/// flip battle queue visibility to opposite
|
||||
void toggleQueueVisibility();
|
||||
|
||||
void createQueue();
|
||||
|
||||
std::shared_ptr<BattleConsole> buildBattleConsole(const JsonNode &) const;
|
||||
|
||||
|
@ -93,7 +93,8 @@ void CGuiHandler::processLists(const ui16 activityFlag, std::function<void (std:
|
||||
|
||||
void CGuiHandler::init()
|
||||
{
|
||||
mainFPSmng->init();
|
||||
mainFPSmng = new CFramerateManager();
|
||||
mainFPSmng->init(settings["video"]["targetfps"].Integer());
|
||||
isPointerRelativeMode = settings["general"]["userRelativePointer"].Bool();
|
||||
pointerSpeedMultiplier = settings["general"]["relativePointerSpeedMultiplier"].Float();
|
||||
}
|
||||
@ -593,7 +594,9 @@ void CGuiHandler::handleMouseMotion(const SDL_Event & current)
|
||||
{
|
||||
//sending active, hovered hoverable objects hover() call
|
||||
std::vector<CIntObject*> hlp;
|
||||
for(auto & elem : hoverable)
|
||||
|
||||
auto hoverableCopy = hoverable;
|
||||
for(auto & elem : hoverableCopy)
|
||||
{
|
||||
if(elem->pos.isInside(getCursorPosition()))
|
||||
{
|
||||
@ -606,6 +609,7 @@ void CGuiHandler::handleMouseMotion(const SDL_Event & current)
|
||||
(elem)->hovered = false;
|
||||
}
|
||||
}
|
||||
|
||||
for(auto & elem : hlp)
|
||||
{
|
||||
elem->hover(true);
|
||||
@ -660,7 +664,7 @@ void CGuiHandler::renderFrame()
|
||||
if(nullptr != curInt)
|
||||
curInt->update();
|
||||
|
||||
if(settings["general"]["showfps"].Bool())
|
||||
if(settings["video"]["showfps"].Bool())
|
||||
drawFPSCounter();
|
||||
|
||||
SDL_UpdateTexture(screenTexture, nullptr, screen->pixels, screen->pitch);
|
||||
@ -688,12 +692,9 @@ CGuiHandler::CGuiHandler()
|
||||
, mouseButtonsMask(0)
|
||||
, continueEventHandling(true)
|
||||
, curInt(nullptr)
|
||||
, mainFPSmng(nullptr)
|
||||
, statusbar(nullptr)
|
||||
{
|
||||
// Creates the FPS manager and sets the framerate to 48 which is doubled the value of the original Heroes 3 FPS rate
|
||||
mainFPSmng = new CFramerateManager(60);
|
||||
//do not init CFramerateManager here --AVS
|
||||
|
||||
terminate_cond = new CondSh<bool>(false);
|
||||
}
|
||||
|
||||
@ -761,7 +762,7 @@ void CGuiHandler::drawFPSCounter()
|
||||
static SDL_Rect overlay = { 0, 0, 64, 32};
|
||||
uint32_t black = SDL_MapRGB(screen->format, 10, 10, 10);
|
||||
SDL_FillRect(screen, &overlay, black);
|
||||
std::string fps = boost::lexical_cast<std::string>(mainFPSmng->fps);
|
||||
std::string fps = boost::lexical_cast<std::string>(mainFPSmng->getFramerate());
|
||||
graphics->fonts[FONT_BIG]->renderTextLeft(screen, fps, Colors::YELLOW, Point(10, 10));
|
||||
}
|
||||
|
||||
@ -847,19 +848,20 @@ void CGuiHandler::pushUserEvent(EUserEvent usercode, void * userdata)
|
||||
SDL_PushEvent(&event);
|
||||
}
|
||||
|
||||
CFramerateManager::CFramerateManager(int rate)
|
||||
{
|
||||
this->rate = rate;
|
||||
this->rateticks = (1000.0 / rate);
|
||||
this->fps = 0;
|
||||
this->accumulatedFrames = 0;
|
||||
this->accumulatedTime = 0;
|
||||
this->lastticks = 0;
|
||||
this->timeElapsed = 0;
|
||||
}
|
||||
CFramerateManager::CFramerateManager()
|
||||
: rate(0)
|
||||
, rateticks(0)
|
||||
, fps(0)
|
||||
, accumulatedFrames(0)
|
||||
, accumulatedTime(0)
|
||||
, lastticks(0)
|
||||
, timeElapsed(0)
|
||||
{}
|
||||
|
||||
void CFramerateManager::init()
|
||||
void CFramerateManager::init(int newRate)
|
||||
{
|
||||
rate = newRate;
|
||||
rateticks = 1000.0 / rate;
|
||||
this->lastticks = SDL_GetTicks();
|
||||
}
|
||||
|
||||
|
@ -49,17 +49,20 @@ class CFramerateManager
|
||||
{
|
||||
private:
|
||||
double rateticks;
|
||||
ui32 lastticks, timeElapsed;
|
||||
ui32 lastticks;
|
||||
ui32 timeElapsed;
|
||||
int rate;
|
||||
ui32 accumulatedTime,accumulatedFrames;
|
||||
public:
|
||||
int fps; // the actual fps value
|
||||
ui32 accumulatedTime;
|
||||
ui32 accumulatedFrames;
|
||||
|
||||
CFramerateManager(int rate); // initializes the manager with a given fps rate
|
||||
void init(); // needs to be called directly before the main game loop to reset the internal timer
|
||||
public:
|
||||
CFramerateManager(); // initializes the manager with a given fps rate
|
||||
void init(int newRate); // needs to be called directly before the main game loop to reset the internal timer
|
||||
void framerateDelay(); // needs to be called every game update cycle
|
||||
ui32 getElapsedMilliseconds() const {return this->timeElapsed;}
|
||||
ui32 getFrameNumber() const { return accumulatedFrames; }
|
||||
ui32 getFramerate() const { return fps; };
|
||||
};
|
||||
|
||||
// Handles GUI logic and drawing
|
||||
|
@ -26,11 +26,6 @@ MapViewActions::MapViewActions(MapView & owner, const std::shared_ptr<MapViewMod
|
||||
, owner(owner)
|
||||
, curHoveredTile(-1, -1, -1)
|
||||
, isSwiping(false)
|
||||
#if defined(VCMI_ANDROID) || defined(VCMI_IOS)
|
||||
, swipeEnabled(settings["general"]["swipe"].Bool())
|
||||
#else
|
||||
, swipeEnabled(settings["general"]["swipeDesktop"].Bool())
|
||||
#endif
|
||||
{
|
||||
pos.w = model->getPixelsVisibleDimensions().x;
|
||||
pos.h = model->getPixelsVisibleDimensions().y;
|
||||
@ -38,6 +33,15 @@ MapViewActions::MapViewActions(MapView & owner, const std::shared_ptr<MapViewMod
|
||||
addUsedEvents(LCLICK | RCLICK | MCLICK | HOVER | MOVE);
|
||||
}
|
||||
|
||||
bool MapViewActions::swipeEnabled() const
|
||||
{
|
||||
#if defined(VCMI_ANDROID) || defined(VCMI_IOS)
|
||||
return settings["general"]["swipe"].Bool();
|
||||
#else
|
||||
return settings["general"]["swipeDesktop"].Bool();
|
||||
#endif
|
||||
}
|
||||
|
||||
void MapViewActions::setContext(const std::shared_ptr<IMapRendererContext> & context)
|
||||
{
|
||||
this->context = context;
|
||||
@ -59,7 +63,7 @@ void MapViewActions::clickLeft(tribool down, bool previousState)
|
||||
if(indeterminate(down))
|
||||
return;
|
||||
|
||||
if(swipeEnabled)
|
||||
if(swipeEnabled())
|
||||
{
|
||||
if(handleSwipeStateChange(static_cast<bool>(down)))
|
||||
{
|
||||
@ -103,11 +107,11 @@ void MapViewActions::mouseMoved(const Point & cursorPosition)
|
||||
void MapViewActions::handleSwipeMove(const Point & cursorPosition)
|
||||
{
|
||||
// unless swipe is enabled, swipe move only works with middle mouse button
|
||||
if(!swipeEnabled && !GH.isMouseButtonPressed(MouseButton::MIDDLE))
|
||||
if(!swipeEnabled() && !GH.isMouseButtonPressed(MouseButton::MIDDLE))
|
||||
return;
|
||||
|
||||
// on mobile platforms with enabled swipe any button is enough
|
||||
if(swipeEnabled && (!GH.isMouseButtonPressed() || GH.multifinger))
|
||||
if(swipeEnabled() && (!GH.isMouseButtonPressed() || GH.multifinger))
|
||||
return;
|
||||
|
||||
if(!isSwiping)
|
||||
|
@ -18,7 +18,6 @@ class MapView;
|
||||
|
||||
class MapViewActions : public CIntObject
|
||||
{
|
||||
bool swipeEnabled;
|
||||
bool isSwiping;
|
||||
|
||||
Point swipeInitialViewPos;
|
||||
@ -33,6 +32,7 @@ class MapViewActions : public CIntObject
|
||||
void handleHover(const Point & cursorPosition);
|
||||
void handleSwipeMove(const Point & cursorPosition);
|
||||
bool handleSwipeStateChange(bool btnPressed);
|
||||
bool swipeEnabled() const;
|
||||
|
||||
public:
|
||||
MapViewActions(MapView & owner, const std::shared_ptr<MapViewModel> & model);
|
||||
|
@ -457,8 +457,7 @@ void CToggleGroup::selectionChanged(int to)
|
||||
buttons[to]->setSelected(true);
|
||||
|
||||
onChange(to);
|
||||
if (parent)
|
||||
parent->redraw();
|
||||
redraw();
|
||||
}
|
||||
|
||||
int CToggleGroup::getSelected() const
|
||||
|
@ -48,12 +48,12 @@
|
||||
|
||||
static bool useCompactCreatureBox()
|
||||
{
|
||||
return settings["gameTweaks"]["compactTownCreatureInfo"].isNumber() ? settings["gameTweaks"]["compactTownCreatureInfo"].Bool() : false;
|
||||
return settings["gameTweaks"]["compactTownCreatureInfo"].Bool();
|
||||
}
|
||||
|
||||
static bool useAvailableAmountAsCreatureLabel()
|
||||
{
|
||||
return settings["gameTweaks"]["availableCreaturesAsDwellingLabel"].isNumber() ? settings["gameTweaks"]["availableCreaturesAsDwellingLabel"].Bool() : false;
|
||||
return settings["gameTweaks"]["availableCreaturesAsDwellingLabel"].Bool();
|
||||
}
|
||||
|
||||
CBuildingRect::CBuildingRect(CCastleBuildings * Par, const CGTownInstance * Town, const CStructure * Str)
|
||||
|
@ -36,7 +36,6 @@ class CTextInput;
|
||||
class CListBox;
|
||||
class CLabelGroup;
|
||||
class CToggleButton;
|
||||
class CToggleGroup;
|
||||
class CVolumeSlider;
|
||||
class CGStatusBar;
|
||||
class CTextBox;
|
||||
|
@ -34,17 +34,51 @@ AdventureOptionsTab::AdventureOptionsTab()
|
||||
: InterfaceObjectConfigurable()
|
||||
{
|
||||
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
|
||||
type |= REDRAW_PARENT;
|
||||
|
||||
const JsonNode config(ResourceID("config/widgets/settings/adventureOptionsTab.json"));
|
||||
addCallback("playerHeroSpeedChanged", [](int value)
|
||||
addCallback("playerHeroSpeedChanged", [this](int value)
|
||||
{
|
||||
return setIntSetting("adventure", "heroMoveTime", value);
|
||||
auto targetLabel = widget<CLabel>("heroSpeedValueLabel");
|
||||
if (targetLabel)
|
||||
{
|
||||
if (value <= 0)
|
||||
{
|
||||
targetLabel->setText("-");
|
||||
}
|
||||
else
|
||||
{
|
||||
int valuePercentage = 100 * 100 / value;
|
||||
targetLabel->setText(std::to_string(valuePercentage) + "%");
|
||||
}
|
||||
}
|
||||
setIntSetting("adventure", "heroMoveTime", value);
|
||||
});
|
||||
addCallback("enemyHeroSpeedChanged", [](int value)
|
||||
addCallback("enemyHeroSpeedChanged", [this](int value)
|
||||
{
|
||||
return setIntSetting("adventure", "enemyMoveTime", value);
|
||||
auto targetLabel = widget<CLabel>("enemySpeedValueLabel");
|
||||
|
||||
if (targetLabel)
|
||||
{
|
||||
if (value <= 0)
|
||||
{
|
||||
targetLabel->setText("-");
|
||||
}
|
||||
else
|
||||
{
|
||||
int valuePercentage = 100 * 100 / value;
|
||||
targetLabel->setText(std::to_string(valuePercentage) + "%");
|
||||
}
|
||||
}
|
||||
setIntSetting("adventure", "enemyMoveTime", value);
|
||||
});
|
||||
addCallback("mapScrollSpeedChanged", [](int value)
|
||||
addCallback("mapScrollSpeedChanged", [this](int value)
|
||||
{
|
||||
auto targetLabel = widget<CLabel>("mapScrollingValueLabel");
|
||||
int valuePercentage = 100 * value / 1200; // H3 max value is "1200", displaying it to be 100%
|
||||
if (targetLabel)
|
||||
targetLabel->setText(std::to_string(valuePercentage) + "%");
|
||||
|
||||
return setIntSetting("adventure", "scrollSpeedPixels", value);
|
||||
});
|
||||
addCallback("heroReminderChanged", [](bool value)
|
||||
@ -68,6 +102,14 @@ AdventureOptionsTab::AdventureOptionsTab()
|
||||
{
|
||||
return setBoolSetting("gameTweaks", "showGrid", value);
|
||||
});
|
||||
addCallback("mapSwipeChanged", [](bool value)
|
||||
{
|
||||
#if defined(VCMI_MOBILE)
|
||||
setBoolSetting("general", "swipe", value);
|
||||
#else
|
||||
setBoolSetting("general", "swipeDesktop", value);
|
||||
#endif
|
||||
});
|
||||
build(config);
|
||||
|
||||
std::shared_ptr<CToggleGroup> playerHeroSpeedToggle = widget<CToggleGroup>("heroMovementSpeedPicker");
|
||||
@ -93,4 +135,11 @@ AdventureOptionsTab::AdventureOptionsTab()
|
||||
|
||||
std::shared_ptr<CToggleButton> showGridCheckbox = widget<CToggleButton>("showGridCheckbox");
|
||||
showGridCheckbox->setSelected(settings["gameTweaks"]["showGrid"].Bool());
|
||||
|
||||
std::shared_ptr<CToggleButton> mapSwipeCheckbox = widget<CToggleButton>("mapSwipeCheckbox");
|
||||
#if defined(VCMI_MOBILE)
|
||||
mapSwipeCheckbox->setSelected(settings["general"]["swipe"].Bool());
|
||||
#else
|
||||
mapSwipeCheckbox->setSelected(settings["general"]["swipeDesktop"].Bool());
|
||||
#endif
|
||||
}
|
||||
|
@ -19,10 +19,10 @@
|
||||
#include "../../widgets/Buttons.h"
|
||||
#include "../../widgets/TextControls.h"
|
||||
|
||||
BattleOptionsTab::BattleOptionsTab(BattleInterface * owner):
|
||||
InterfaceObjectConfigurable()
|
||||
BattleOptionsTab::BattleOptionsTab(BattleInterface * owner)
|
||||
{
|
||||
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
|
||||
type |= REDRAW_PARENT;
|
||||
|
||||
const JsonNode config(ResourceID("config/widgets/settings/battleOptionsTab.json"));
|
||||
addCallback("viewGridChanged", [this, owner](bool value)
|
||||
@ -45,9 +45,9 @@ BattleOptionsTab::BattleOptionsTab(BattleInterface * owner):
|
||||
{
|
||||
showQueueChangedCallback(value, owner);
|
||||
});
|
||||
addCallback("queueSizeChanged", [this](int value)
|
||||
addCallback("queueSizeChanged", [this, owner](int value)
|
||||
{
|
||||
queueSizeChangedCallback(value);
|
||||
queueSizeChangedCallback(value, owner);
|
||||
});
|
||||
addCallback("skipBattleIntroMusicChanged", [this](bool value)
|
||||
{
|
||||
@ -70,9 +70,6 @@ BattleOptionsTab::BattleOptionsTab(BattleInterface * owner):
|
||||
std::shared_ptr<CToggleButton> mouseShadowCheckbox = widget<CToggleButton>("mouseShadowCheckbox");
|
||||
mouseShadowCheckbox->setSelected(settings["battle"]["mouseShadow"].Bool());
|
||||
|
||||
std::shared_ptr<CToggleButton> showQueueCheckbox = widget<CToggleButton>("showQueueCheckbox");
|
||||
showQueueCheckbox->setSelected(settings["battle"]["showQueue"].Bool());
|
||||
|
||||
std::shared_ptr<CToggleButton> skipBattleIntroMusicCheckbox = widget<CToggleButton>("skipBattleIntroMusicCheckbox");
|
||||
skipBattleIntroMusicCheckbox->setSelected(settings["gameTweaks"]["skipBattleIntroMusic"].Bool());
|
||||
}
|
||||
@ -88,11 +85,13 @@ int BattleOptionsTab::getAnimSpeed() const
|
||||
int BattleOptionsTab::getQueueSizeId() const
|
||||
{
|
||||
std::string text = settings["battle"]["queueSize"].String();
|
||||
if(text == "none")
|
||||
return -1;
|
||||
if(text == "auto")
|
||||
return 0;
|
||||
else if(text == "small")
|
||||
if(text == "small")
|
||||
return 1;
|
||||
else if(text == "big")
|
||||
if(text == "big")
|
||||
return 2;
|
||||
|
||||
return 0;
|
||||
@ -102,6 +101,8 @@ std::string BattleOptionsTab::getQueueSizeStringFromId(int value) const
|
||||
{
|
||||
switch(value)
|
||||
{
|
||||
case -1:
|
||||
return "none";
|
||||
case 0:
|
||||
return "auto";
|
||||
case 1:
|
||||
@ -139,6 +140,11 @@ void BattleOptionsTab::animationSpeedChangedCallback(int value)
|
||||
{
|
||||
Settings speed = settings.write["battle"]["speedFactor"];
|
||||
speed->Float() = static_cast<float>(value);
|
||||
|
||||
auto targetLabel = widget<CLabel>("animationSpeedValueLabel");
|
||||
int valuePercentage = value * 100 / 3; // H3 max value is "3", displaying it to be 100%
|
||||
if (targetLabel)
|
||||
targetLabel->setText(std::to_string(valuePercentage) + "%");
|
||||
}
|
||||
|
||||
void BattleOptionsTab::showQueueChangedCallback(bool value, BattleInterface * parentBattleInterface)
|
||||
@ -154,11 +160,19 @@ void BattleOptionsTab::showQueueChangedCallback(bool value, BattleInterface * pa
|
||||
}
|
||||
}
|
||||
|
||||
void BattleOptionsTab::queueSizeChangedCallback(int value)
|
||||
void BattleOptionsTab::queueSizeChangedCallback(int value, BattleInterface * parentBattleInterface)
|
||||
{
|
||||
if (value == -1)
|
||||
{
|
||||
showQueueChangedCallback(false, parentBattleInterface);
|
||||
return;
|
||||
}
|
||||
|
||||
std::string stringifiedValue = getQueueSizeStringFromId(value);
|
||||
Settings size = settings.write["battle"]["queueSize"];
|
||||
size->String() = stringifiedValue;
|
||||
|
||||
showQueueChangedCallback(true, parentBattleInterface);
|
||||
}
|
||||
|
||||
void BattleOptionsTab::skipBattleIntroMusicChangedCallback(bool value)
|
||||
|
@ -22,12 +22,12 @@ private:
|
||||
int getAnimSpeed() const;
|
||||
int getQueueSizeId() const;
|
||||
std::string getQueueSizeStringFromId(int value) const;
|
||||
void viewGridChangedCallback(bool value, BattleInterface * parentBattleInterface = nullptr);
|
||||
void movementShadowChangedCallback(bool value, BattleInterface * parentBattleInterface = nullptr);
|
||||
void viewGridChangedCallback(bool value, BattleInterface * parentBattleInterface);
|
||||
void movementShadowChangedCallback(bool value, BattleInterface * parentBattleInterface);
|
||||
void mouseShadowChangedCallback(bool value);
|
||||
void animationSpeedChangedCallback(int value);
|
||||
void showQueueChangedCallback(bool value, BattleInterface * parentBattleInterface = nullptr);
|
||||
void queueSizeChangedCallback(int value);
|
||||
void showQueueChangedCallback(bool value, BattleInterface * parentBattleInterface);
|
||||
void queueSizeChangedCallback(int value, BattleInterface * parentBattleInterface);
|
||||
void skipBattleIntroMusicChangedCallback(bool value);
|
||||
public:
|
||||
BattleOptionsTab(BattleInterface * owner = nullptr);
|
||||
|
@ -33,13 +33,18 @@ static void setIntSetting(std::string group, std::string field, int value)
|
||||
|
||||
static void setBoolSetting(std::string group, std::string field, bool value)
|
||||
{
|
||||
Settings fullscreen = settings.write[group][field];
|
||||
fullscreen->Bool() = value;
|
||||
Settings entry = settings.write[group][field];
|
||||
entry->Bool() = value;
|
||||
}
|
||||
|
||||
static std::string resolutionToString(int w, int h)
|
||||
{
|
||||
return std::to_string(w) + 'x' + std::to_string(h);
|
||||
auto string = CGI->generaltexth->translate("vcmi.systemOptions.resolutionButton.hover");
|
||||
|
||||
boost::replace_all(string, "%w", std::to_string(w));
|
||||
boost::replace_all(string, "%h", std::to_string(h));
|
||||
|
||||
return string;
|
||||
}
|
||||
|
||||
GeneralOptionsTab::GeneralOptionsTab()
|
||||
@ -47,21 +52,30 @@ GeneralOptionsTab::GeneralOptionsTab()
|
||||
onFullscreenChanged(settings.listen["video"]["fullscreen"])
|
||||
{
|
||||
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
|
||||
type |= REDRAW_PARENT;
|
||||
|
||||
const JsonNode config(ResourceID("config/widgets/settings/generalOptionsTab.json"));
|
||||
addCallback("spellbookAnimationChanged", [](bool value)
|
||||
{
|
||||
return setBoolSetting("video", "spellbookAnimation", value);
|
||||
setBoolSetting("video", "spellbookAnimation", value);
|
||||
});
|
||||
addCallback("setMusic", [this](int value)
|
||||
{
|
||||
setIntSetting("general", "music", value);
|
||||
widget<CSlider>("musicSlider")->redraw();
|
||||
|
||||
auto targetLabel = widget<CLabel>("musicValueLabel");
|
||||
if (targetLabel)
|
||||
targetLabel->setText(std::to_string(value) + "%");
|
||||
});
|
||||
addCallback("setVolume", [this](int value)
|
||||
{
|
||||
setIntSetting("general", "sound", value);
|
||||
widget<CSlider>("soundVolumeSlider")->redraw();
|
||||
|
||||
auto targetLabel = widget<CLabel>("soundValueLabel");
|
||||
if (targetLabel)
|
||||
targetLabel->setText(std::to_string(value) + "%");
|
||||
});
|
||||
//settings that do not belong to base game:
|
||||
addCallback("fullscreenChanged", [this](bool value)
|
||||
@ -74,24 +88,26 @@ GeneralOptionsTab::GeneralOptionsTab()
|
||||
});
|
||||
addCallback("framerateChanged", [](bool value)
|
||||
{
|
||||
setBoolSetting("general", "showfps", value);
|
||||
setBoolSetting("video", "showfps", value);
|
||||
});
|
||||
|
||||
//moved from "other" tab that is disabled for now to avoid excessible tabs with barely any content
|
||||
addCallback("availableCreaturesAsDwellingLabelChanged", [](bool value)
|
||||
addCallback("availableCreaturesAsDwellingChanged", [=](int value)
|
||||
{
|
||||
setBoolSetting("gameTweaks", "availableCreaturesAsDwellingLabel", value);
|
||||
setBoolSetting("gameTweaks", "availableCreaturesAsDwellingLabel", value > 0);
|
||||
});
|
||||
|
||||
addCallback("compactTownCreatureInfoChanged", [](bool value)
|
||||
{
|
||||
return setBoolSetting("gameTweaks", "compactTownCreatureInfo", value);
|
||||
setBoolSetting("gameTweaks", "compactTownCreatureInfo", value);
|
||||
});
|
||||
|
||||
build(config);
|
||||
|
||||
std::shared_ptr<CLabel> resolutionLabel = widget<CLabel>("resolutionLabel");
|
||||
const auto & currentResolution = settings["video"]["screenRes"];
|
||||
resolutionLabel->setText(resolutionToString(currentResolution["width"].Integer(), currentResolution["height"].Integer()));
|
||||
|
||||
|
||||
std::shared_ptr<CToggleButton> spellbookAnimationCheckbox = widget<CToggleButton>("spellbookAnimationCheckbox");
|
||||
spellbookAnimationCheckbox->setSelected(settings["video"]["spellbookAnimation"].Bool());
|
||||
|
||||
@ -103,7 +119,7 @@ GeneralOptionsTab::GeneralOptionsTab()
|
||||
});
|
||||
|
||||
std::shared_ptr<CToggleButton> framerateCheckbox = widget<CToggleButton>("framerateCheckbox");
|
||||
framerateCheckbox->setSelected(settings["general"]["showfps"].Bool());
|
||||
framerateCheckbox->setSelected(settings["video"]["showfps"].Bool());
|
||||
|
||||
std::shared_ptr<CSlider> musicSlider = widget<CSlider>("musicSlider");
|
||||
musicSlider->moveTo(CCS->musich->getVolume());
|
||||
@ -111,8 +127,8 @@ GeneralOptionsTab::GeneralOptionsTab()
|
||||
std::shared_ptr<CSlider> volumeSlider = widget<CSlider>("soundVolumeSlider");
|
||||
volumeSlider->moveTo(CCS->soundh->getVolume());
|
||||
|
||||
std::shared_ptr<CToggleButton> availableCreaturesAsDwellingLabelCheckbox = widget<CToggleButton>("availableCreaturesAsDwellingLabelCheckbox");
|
||||
availableCreaturesAsDwellingLabelCheckbox->setSelected(settings["gameTweaks"]["availableCreaturesAsDwellingLabel"].Bool());
|
||||
std::shared_ptr<CToggleGroup> creatureGrowthAsDwellingPicker = widget<CToggleGroup>("availableCreaturesAsDwellingPicker");
|
||||
creatureGrowthAsDwellingPicker->setSelected(settings["gameTweaks"]["availableCreaturesAsDwellingLabel"].Bool());
|
||||
|
||||
std::shared_ptr<CToggleButton> compactTownCreatureInfo = widget<CToggleButton>("compactTownCreatureInfoCheckbox");
|
||||
compactTownCreatureInfo->setSelected(settings["gameTweaks"]["compactTownCreatureInfo"].Bool());
|
||||
@ -173,11 +189,7 @@ void GeneralOptionsTab::setGameResolution(int index)
|
||||
gameRes["width"].Float() = resolution.x;
|
||||
gameRes["height"].Float() = resolution.y;
|
||||
|
||||
std::string resText;
|
||||
resText += std::to_string(resolution.x);
|
||||
resText += "x";
|
||||
resText += std::to_string(resolution.y);
|
||||
widget<CLabel>("resolutionLabel")->setText(resText);
|
||||
widget<CLabel>("resolutionLabel")->setText(resolutionToString(resolution.x, resolution.y));
|
||||
}
|
||||
|
||||
void GeneralOptionsTab::setFullscreenMode(bool on)
|
||||
@ -226,4 +238,4 @@ void GeneralOptionsTab::fillSelectableResolutions()
|
||||
{
|
||||
return left.x * left.y < right.x * right.y;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -9,25 +9,24 @@
|
||||
*/
|
||||
|
||||
#include "StdInc.h"
|
||||
|
||||
#include "SettingsMainWindow.h"
|
||||
|
||||
#include "GeneralOptionsTab.h"
|
||||
#include "AdventureOptionsTab.h"
|
||||
#include "BattleOptionsTab.h"
|
||||
#include "GeneralOptionsTab.h"
|
||||
#include "OtherOptionsTab.h"
|
||||
|
||||
#include "filesystem/ResourceID.h"
|
||||
#include "CGameInfo.h"
|
||||
#include "CGeneralTextHandler.h"
|
||||
#include "CPlayerInterface.h"
|
||||
#include "CServerHandler.h"
|
||||
#include "filesystem/ResourceID.h"
|
||||
#include "gui/CGuiHandler.h"
|
||||
#include "lobby/CSavingScreen.h"
|
||||
#include "widgets/Buttons.h"
|
||||
#include "widgets/Images.h"
|
||||
#include "widgets/ObjectLists.h"
|
||||
#include "CGameInfo.h"
|
||||
#include "CPlayerInterface.h"
|
||||
#include "CServerHandler.h"
|
||||
|
||||
#include "windows/CMessage.h"
|
||||
|
||||
SettingsMainWindow::SettingsMainWindow(BattleInterface * parentBattleUi) : InterfaceObjectConfigurable()
|
||||
{
|
||||
@ -43,7 +42,7 @@ SettingsMainWindow::SettingsMainWindow(BattleInterface * parentBattleUi) : Inter
|
||||
addCallback("closeWindow", [this](int) { backButtonCallback(); });
|
||||
build(config);
|
||||
|
||||
std::shared_ptr<CPicture> background = widget<CPicture>("background");
|
||||
std::shared_ptr<CIntObject> background = widget<CIntObject>("background");
|
||||
pos.w = background->pos.w;
|
||||
pos.h = background->pos.h;
|
||||
pos = center();
|
||||
@ -57,12 +56,9 @@ SettingsMainWindow::SettingsMainWindow(BattleInterface * parentBattleUi) : Inter
|
||||
std::shared_ptr<CButton> restartButton = widget<CButton>("restartButton");
|
||||
assert(restartButton);
|
||||
|
||||
if(CSH->isGuest())
|
||||
{
|
||||
loadButton->block(true);
|
||||
saveButton->block(true);
|
||||
restartButton->block(true);
|
||||
}
|
||||
loadButton->block(CSH->isGuest());
|
||||
saveButton->block(CSH->isGuest() || parentBattleUi);
|
||||
restartButton->block(CSH->isGuest() || parentBattleUi);
|
||||
|
||||
int defaultTabIndex = 0;
|
||||
if(parentBattleUi != nullptr)
|
||||
@ -72,6 +68,7 @@ SettingsMainWindow::SettingsMainWindow(BattleInterface * parentBattleUi) : Inter
|
||||
|
||||
parentBattleInterface = parentBattleUi;
|
||||
tabContentArea = std::make_shared<CTabbedInt>(std::bind(&SettingsMainWindow::createTab, this, _1), Point(0, 0), defaultTabIndex);
|
||||
tabContentArea->type |= REDRAW_PARENT;
|
||||
|
||||
std::shared_ptr<CToggleGroup> mainTabs = widget<CToggleGroup>("settingsTabs");
|
||||
mainTabs->setSelected(defaultTabIndex);
|
||||
@ -147,4 +144,14 @@ void SettingsMainWindow::closeAndPushEvent(EUserEvent code)
|
||||
{
|
||||
close();
|
||||
GH.pushUserEvent(code);
|
||||
}
|
||||
}
|
||||
|
||||
void SettingsMainWindow::showAll(SDL_Surface *to)
|
||||
{
|
||||
auto color = LOCPLINT ? LOCPLINT->playerID : PlayerColor(1);
|
||||
if(settings["session"]["spectate"].Bool())
|
||||
color = PlayerColor(1); // TODO: Spectator shouldn't need special code for UI colors
|
||||
|
||||
CIntObject::showAll(to);
|
||||
CMessage::drawBorder(color, to, pos.w+28, pos.h+29, pos.x-14, pos.y-15);
|
||||
}
|
||||
|
@ -40,5 +40,7 @@ private:
|
||||
void mainMenuButtonCallback();
|
||||
public:
|
||||
SettingsMainWindow(BattleInterface * parentBattleInterface = nullptr);
|
||||
|
||||
void showAll(SDL_Surface * to);
|
||||
};
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
"additionalProperties" : false,
|
||||
"required" : [
|
||||
"playerName",
|
||||
"showfps",
|
||||
"music",
|
||||
"sound",
|
||||
"encoding",
|
||||
@ -39,10 +38,6 @@
|
||||
"type":"string",
|
||||
"default" : "Player"
|
||||
},
|
||||
"showfps" : {
|
||||
"type" : "boolean",
|
||||
"default" : false
|
||||
},
|
||||
"music" : {
|
||||
"type" : "number",
|
||||
"default" : 88
|
||||
@ -114,7 +109,19 @@
|
||||
"type" : "object",
|
||||
"additionalProperties" : false,
|
||||
"default": {},
|
||||
"required" : [ "screenRes", "bitsPerPixel", "fullscreen", "realFullscreen", "cursor", "spellbookAnimation", "driver", "showIntro", "displayIndex" ],
|
||||
"required" : [
|
||||
"screenRes",
|
||||
"bitsPerPixel",
|
||||
"fullscreen",
|
||||
"realFullscreen",
|
||||
"cursor",
|
||||
"spellbookAnimation",
|
||||
"driver",
|
||||
"showIntro",
|
||||
"displayIndex",
|
||||
"showfps",
|
||||
"targetfps"
|
||||
],
|
||||
"properties" : {
|
||||
"screenRes" : {
|
||||
"type" : "object",
|
||||
@ -159,6 +166,14 @@
|
||||
"displayIndex" : {
|
||||
"type" : "number",
|
||||
"default" : 0
|
||||
},
|
||||
"showfps" : {
|
||||
"type" : "boolean",
|
||||
"default" : false
|
||||
},
|
||||
"targetfps" : {
|
||||
"type" : "number",
|
||||
"default" : 60
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1,6 +1,32 @@
|
||||
{
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "lineLabelsEnd",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineHorizontal",
|
||||
"rect": { "x" : 5, "y" : 289, "w": 365, "h": 3}
|
||||
},
|
||||
/////////////////////////////////////// Left section - Hero Speed and Map Scrolling
|
||||
{
|
||||
"name": "frameHeroMovement",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameMovement",
|
||||
"position": {"x": 6, "y": 50 }
|
||||
},
|
||||
{
|
||||
"name": "frameEnemyMovement",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameMovement",
|
||||
"position": {"x": 6, "y": 110 }
|
||||
},
|
||||
{
|
||||
"name": "frameMapMovement",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameMovement",
|
||||
"position": {"x": 6, "y": 170 }
|
||||
},
|
||||
|
||||
{
|
||||
"name": "topSettingsLabels",
|
||||
"type": "labelGroup",
|
||||
@ -10,24 +36,33 @@
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 122, "y": 52},
|
||||
"text": "core.genrltxt.569"
|
||||
"position": {"x": 150, "y": 62},
|
||||
"text": "core.genrltxt.569" // Hero Speed
|
||||
},
|
||||
{
|
||||
"position": {"x": 122, "y": 118},
|
||||
"text": "core.genrltxt.570"
|
||||
"position": {"x": 150, "y": 122},
|
||||
"text": "core.genrltxt.570" // Enemy Speed
|
||||
},
|
||||
{
|
||||
"position": {"x": 122, "y": 184},
|
||||
"text": "core.genrltxt.571"
|
||||
"position": {"x": 150, "y": 182},
|
||||
"text": "core.genrltxt.571" // Scrolling Speed
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "heroSpeedValueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 324, "y": 90}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "heroMovementSpeedPicker",
|
||||
"type": "toggleGroup",
|
||||
"position": {"x": 28, "y": 65},
|
||||
"position": {"x": 10, "y": 73},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
@ -37,7 +72,6 @@
|
||||
"help": "core.help.349",
|
||||
"position": {"x": 0, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
"index": 150,
|
||||
"type": "toggleButton",
|
||||
@ -45,44 +79,57 @@
|
||||
"help": "core.help.350",
|
||||
"position": {"x": 48, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
"index": 100,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb3",
|
||||
"help": "core.help.351",
|
||||
"image": "sysopb5",
|
||||
"help": "core.help.350",
|
||||
"position": {"x": 96, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
"index": 50,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb6",
|
||||
"help": "core.help.351",
|
||||
"position": {"x": 144, "y": 0}
|
||||
},
|
||||
{
|
||||
"index": 25,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb3",
|
||||
"help": "core.help.351",
|
||||
"position": {"x": 192, "y": 0}
|
||||
},
|
||||
{
|
||||
"index": 0,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb4",
|
||||
"help": "core.help.352",
|
||||
"position": {"x": 144, "y": 0}
|
||||
"position": {"x": 240, "y": 0}
|
||||
}
|
||||
//barely any difference compared to index 16 for now
|
||||
// {
|
||||
// "index": 9999,
|
||||
// "type": "toggleButton",
|
||||
// "image": "sysopb8",
|
||||
// "help": "core.help.356",
|
||||
// "position": {"x": 192, "y": 0}
|
||||
// }
|
||||
],
|
||||
"callback": "playerHeroSpeedChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "enemySpeedValueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 324, "y": 150}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "enemyMovementSpeedPicker",
|
||||
"type": "toggleGroup",
|
||||
"position": {"x": 28, "y": 132},
|
||||
"position": {"x": 10, "y": 133},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"index": 150,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb5",
|
||||
"image": "sysopb1",
|
||||
"help": "core.help.353",
|
||||
"position": {"x": 0, "y": 0}
|
||||
},
|
||||
@ -90,9 +137,25 @@
|
||||
{
|
||||
"index": 100,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb5",
|
||||
"help": "core.help.353",
|
||||
"position": {"x": 48, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
"index": 50,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb6",
|
||||
"help": "core.help.354",
|
||||
"position": {"x": 48, "y": 0}
|
||||
"position": {"x": 96, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
"index": 25,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb3",
|
||||
"help": "core.help.354",
|
||||
"position": {"x": 144, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
@ -100,7 +163,7 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb7",
|
||||
"help": "core.help.355",
|
||||
"position": {"x": 96, "y": 0}
|
||||
"position": {"x": 192, "y": 0}
|
||||
},
|
||||
|
||||
{
|
||||
@ -108,83 +171,176 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb8",
|
||||
"help": "core.help.356",
|
||||
"position": {"x": 144, "y": 0}
|
||||
"position": {"x": 240, "y": 0}
|
||||
}
|
||||
],
|
||||
"callback": "enemyHeroSpeedChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "mapScrollingValueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 324, "y": 210}
|
||||
},
|
||||
{
|
||||
"name": "mapScrollSpeedPicker",
|
||||
"type": "toggleGroup",
|
||||
"position": {"x": 28, "y": 198},
|
||||
"position": {"x": 10, "y": 193},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"index": 200,
|
||||
"type": "toggleButton",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "vcmi.adventureOptions.mapScrollSpeed1",
|
||||
"position": {"x": 0, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "mapScrollSpeed1",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed1",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"index": 400,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb9",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "core.help.357",
|
||||
"position": {"x": 0, "y": 0}
|
||||
"position": {"x": 48, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "mapScrollSpeed2",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed2",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"index": 800,
|
||||
"type": "toggleButton",
|
||||
"image": "sysob10",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "core.help.358",
|
||||
"position": {"x": 64, "y": 0}
|
||||
"position": {"x": 96, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "mapScrollSpeed3",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed3",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"index": 1200,
|
||||
"type": "toggleButton",
|
||||
"image": "sysob11",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "core.help.359",
|
||||
"position": {"x": 128, "y": 0}
|
||||
"position": {"x": 144, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "mapScrollSpeed4",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed4",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 2400, // TODO
|
||||
"type": "toggleButton",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "vcmi.adventureOptions.mapScrollSpeed5",
|
||||
"position": {"x": 192, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "mapScrollSpeed5",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed5",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 4800, // TODO
|
||||
"type": "toggleButton",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "vcmi.adventureOptions.mapScrollSpeed6",
|
||||
"position": {"x": 240, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "mapScrollSpeed6",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed6",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
//not really functional yet...
|
||||
// {
|
||||
// "index": 6,
|
||||
// "type": "toggleButton",
|
||||
// "image": "buttons/square",
|
||||
// "help": "vcmi.adventureOptions.mapScrollSpeed4",
|
||||
// "position": {"x": 192, "y": 0},
|
||||
// "items":
|
||||
// [
|
||||
// {
|
||||
// "name": "mapScrollSpeed4",
|
||||
// "type": "label",
|
||||
// "font": "big",
|
||||
// "alignment": "center",
|
||||
// "color": "yellow",
|
||||
// "text": "vcmi.adventureOptions.mapScrollSpeed4.hover"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// "index": 8,
|
||||
// "type": "toggleButton",
|
||||
// "image": "buttons/square",
|
||||
// "help": "vcmi.adventureOptions.mapScrollSpeed5",
|
||||
// "position": {"x": 224, "y": 0},
|
||||
// "items":
|
||||
// [
|
||||
// {
|
||||
// "name": "mapScrollSpeed5",
|
||||
// "type": "label",
|
||||
// "font": "big",
|
||||
// "alignment": "center",
|
||||
// "color": "yellow",
|
||||
// "text": "vcmi.adventureOptions.mapScrollSpeed5.hover"
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
],
|
||||
"callback": "mapScrollSpeedChanged"
|
||||
},
|
||||
|
||||
|
||||
/////////////////////////////////////// Right section - Original H3 options
|
||||
{
|
||||
"name": "rightCheckboxesLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 415, "y": 55},
|
||||
"text": "core.genrltxt.572" // TODO: show move path
|
||||
},
|
||||
{
|
||||
"position": {"x": 415, "y": 85},
|
||||
"text": "core.genrltxt.573" // show hero reminder
|
||||
},
|
||||
{
|
||||
"position": {"x": 415, "y": 115},
|
||||
"text": "core.genrltxt.574" // quick combat
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "showMovePathPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 380, "y": 53},
|
||||
},
|
||||
{
|
||||
"name": "heroReminderCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.361",
|
||||
"position": {"x": 380, "y": 83},
|
||||
"callback": "heroReminderChanged"
|
||||
},
|
||||
{
|
||||
"name": "quickCombatCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.362",
|
||||
"position": {"x": 380, "y": 113},
|
||||
"callback": "quickCombatChanged"
|
||||
},
|
||||
|
||||
/////////////////////////////////////// Bottom section - VCMI Options
|
||||
{
|
||||
"name": "bottomCheckboxesLabels",
|
||||
"type": "labelGroup",
|
||||
@ -194,65 +350,37 @@
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 64, "y": 278},
|
||||
"text": "core.genrltxt.572"
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 314},
|
||||
"text": "core.genrltxt.573"
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 350},
|
||||
"text": "core.genrltxt.574"
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 386},
|
||||
"position": {"x": 45, "y": 295},
|
||||
"text": "vcmi.adventureOptions.numericQuantities.hover"
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 422},
|
||||
"position": {"x": 45, "y": 325},
|
||||
"text": "vcmi.adventureOptions.forceMovementInfo.hover"
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 458},
|
||||
"position": {"x": 45, "y": 355},
|
||||
"text": "vcmi.adventureOptions.showGrid.hover"
|
||||
},
|
||||
{
|
||||
"position": {"x": 45, "y": 385},
|
||||
"text": "vcmi.adventureOptions.mapSwipe.hover"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "heroReminderCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.361",
|
||||
"position": {"x": 28, "y": 312},
|
||||
"callback": "heroReminderChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "quickCombatCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.362",
|
||||
"position": {"x": 28, "y": 348},
|
||||
"callback": "quickCombatChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "numericQuantitiesCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.adventureOptions.numericQuantities",
|
||||
"position": {"x": 28, "y": 384},
|
||||
"position": {"x": 10, "y": 293},
|
||||
"callback": "numericQuantitiesChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "forceMovementInfoCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.adventureOptions.forceMovementInfo",
|
||||
"position": {"x": 28, "y": 420},
|
||||
"position": {"x": 10, "y": 323},
|
||||
"callback": "forceMovementInfoChanged"
|
||||
},
|
||||
{
|
||||
@ -260,8 +388,17 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.adventureOptions.showGrid",
|
||||
"position": {"x": 28, "y": 456},
|
||||
"position": {"x": 10, "y": 353},
|
||||
"callback": "showGridChanged"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mapSwipeCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.adventureOptions.mapSwipe",
|
||||
"position": {"x": 10, "y": 383},
|
||||
"callback": "mapSwipeChanged"
|
||||
},
|
||||
|
||||
]
|
||||
}
|
||||
|
@ -2,133 +2,158 @@
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "animationSpeedLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "core.genrltxt.393",
|
||||
"position": {"x": 122, "y": 224}
|
||||
"name": "lineCreatureInfo",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineHorizontal",
|
||||
"rect": { "x" : 5, "y" : 199, "w": 365, "h": 3}
|
||||
},
|
||||
{
|
||||
"name": "autoCombatOptionsLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "core.genrltxt.396",
|
||||
"position": {"x": 353, "y": 56}
|
||||
},
|
||||
{
|
||||
"name": "creatureInfoLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "core.genrltxt.397",
|
||||
"position": {"x": 98, "y": 295}
|
||||
"name": "lineAnimationSpeed",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineHorizontal",
|
||||
"rect": { "x" : 5, "y" : 289, "w": 365, "h": 3}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "creaturesAutoCombatLabel",
|
||||
"type": "label",
|
||||
"name": "titlesLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "yellow",
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"text": "core.genrltxt.396", // Auto-combat options
|
||||
"position": {"x": 380, "y": 55}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.397", // Creature info
|
||||
"position": {"x": 10, "y": 205}
|
||||
}
|
||||
]
|
||||
},
|
||||
/////////////////////////////////////// Right section - Auto-combat settings (NOT IMPLEMENTED)
|
||||
{
|
||||
"name": "autoCombatLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.398",
|
||||
"position": {"x": 283, "y": 76}
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"text": "core.genrltxt.398", // Creatures
|
||||
"position": {"x": 415, "y": 85}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.399", // Spells
|
||||
"position": {"x": 415, "y": 115}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.400", // Catapult
|
||||
"position": {"x": 415, "y": 145}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.151", // Ballista
|
||||
"position": {"x": 415, "y": 175}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.401", // First Aid Tent
|
||||
"position": {"x": 415, "y": 205}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spellsAutoCombatLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.399",
|
||||
"position": {"x": 283, "y": 106}
|
||||
"name": "autoCombatCreaturesPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 380, "y": 83},
|
||||
},
|
||||
{
|
||||
"name": "catapultAutoCombatLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.400",
|
||||
"position": {"x": 283, "y": 136}
|
||||
"name": "autoCombatSpellsPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 380, "y": 113},
|
||||
},
|
||||
{
|
||||
"name": "ballistaAutoCombatLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.151",
|
||||
"position": {"x": 283, "y": 166}
|
||||
"name": "autoCombatCatapultPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 380, "y": 143},
|
||||
},
|
||||
{
|
||||
"name": "aidTentAutoCombatLabel",
|
||||
"type": "label",
|
||||
"name": "autoCombatBallistaPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 380, "y": 173},
|
||||
},
|
||||
{
|
||||
"name": "autoCombatFirstAidTentPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 380, "y": 203},
|
||||
},
|
||||
/////////////////////////////////////// Left section - checkboxes
|
||||
{
|
||||
"name": "creatureInfoLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.401",
|
||||
"position": {"x": 283, "y": 196}
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"text": "core.genrltxt.402", // All Stats
|
||||
"position": {"x": 45, "y": 235}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.403", // Spells only
|
||||
"position": {"x": 45, "y": 265}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "creatureInfoAllPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 10, "y": 233},
|
||||
},
|
||||
{
|
||||
"name": "creatureInfoSpellsPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 10, "y": 263},
|
||||
},
|
||||
|
||||
{
|
||||
"name": "creatureInfoAllStatsLabel",
|
||||
"type": "label",
|
||||
"name": "generalOptionsLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.402",
|
||||
"position": {"x": 61, "y": 315}
|
||||
},
|
||||
{
|
||||
"name": "creatureInfoOnlySpellsLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.403",
|
||||
"position": {"x": 61, "y": 345}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "viewGridLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.404",
|
||||
"position": {"x": 61, "y": 57}
|
||||
},
|
||||
{
|
||||
"name": "showMovementRangeLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.405",
|
||||
"position": {"x": 61, "y": 90}
|
||||
},
|
||||
{
|
||||
"name": "mouseShadowLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.406",
|
||||
"position": {"x": 61, "y": 123}
|
||||
},
|
||||
{
|
||||
"name": "battleCasualtiesLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "core.genrltxt.407",
|
||||
"position": {"x": 61, "y": 156}
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"text": "core.genrltxt.404",
|
||||
"position": {"x": 45, "y": 55}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.405",
|
||||
"position": {"x": 45, "y": 85}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.406",
|
||||
"position": {"x": 45, "y": 115}
|
||||
},
|
||||
{
|
||||
"text": "core.genrltxt.407",
|
||||
"position": {"x": 45, "y": 145}
|
||||
},
|
||||
{
|
||||
"text": "vcmi.battleOptions.skipBattleIntroMusic.hover",
|
||||
"position": {"x": 45, "y": 175}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
@ -136,7 +161,7 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.427",
|
||||
"position": {"x": 25, "y": 56},
|
||||
"position": {"x": 10, "y": 53},
|
||||
"callback": "viewGridChanged"
|
||||
},
|
||||
{
|
||||
@ -144,7 +169,7 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.428",
|
||||
"position": {"x": 25, "y": 89},
|
||||
"position": {"x": 10, "y": 83},
|
||||
"callback": "movementShadowChanged"
|
||||
},
|
||||
{
|
||||
@ -152,90 +177,146 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.429",
|
||||
"position": {"x": 25, "y": 122},
|
||||
"position": {"x": 10, "y": 113},
|
||||
"callback": "mouseShadowChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "battleFieldCasualtiesPlaceholder",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/checkBoxEmpty",
|
||||
"position": {"x": 10, "y": 143},
|
||||
},
|
||||
{
|
||||
"name": "skipBattleIntroMusicCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.battleOptions.skipBattleIntroMusic",
|
||||
"position": {"x": 10, "y": 173},
|
||||
"callback": "skipBattleIntroMusicChanged"
|
||||
},
|
||||
/////////////////////////////////////// Bottom section - Animation Speed and Turn Order
|
||||
{
|
||||
"name": "frameAnimationSpeed",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameMovement",
|
||||
"position": {"x": 6, "y": 350 }
|
||||
},
|
||||
{
|
||||
"name": "animationSpeedLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "core.genrltxt.393",
|
||||
"position": {"x": 150, "y": 362}
|
||||
},
|
||||
{
|
||||
"name": "animationSpeedValueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 324, "y": 390}
|
||||
},
|
||||
{
|
||||
"name": "animationSpeedPicker",
|
||||
"type": "toggleGroup",
|
||||
"position": {"x": 28, "y": 233},
|
||||
"position": {"x": 10, "y": 373},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"index": 1,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopb9",
|
||||
"help": "core.help.422",
|
||||
"position": {"x": 0, "y": 0}
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "vcmi.battleOptions.animationsSpeed1",
|
||||
"position": {"x": 0, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "battleScrollSpeed1",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed1",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"index": 2,
|
||||
"type": "toggleButton",
|
||||
"image": "sysob10",
|
||||
"help": "core.help.423",
|
||||
"position": {"x": 64, "y": 0}
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "core.help.422",
|
||||
"position": {"x": 48, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "battleScrollSpeed2",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed2",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"index": 3,
|
||||
"type": "toggleButton",
|
||||
"image": "sysob11",
|
||||
"help": "core.help.424",
|
||||
"position": {"x": 128, "y": 0}
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "core.help.423",
|
||||
"position": {"x":96, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "battleScrollSpeed3",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed3",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 6,
|
||||
"type": "toggleButton",
|
||||
"image": "buttons/square",
|
||||
"help": "vcmi.battleOptions.animationsSpeed4",
|
||||
"position": {"x": 192, "y": 0},
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "core.help.424",
|
||||
"position": {"x": 144, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "battleAnimationsSpeed4",
|
||||
"type": "label",
|
||||
"font": "big",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.animationsSpeed4.hover"
|
||||
"name": "battleScrollSpeed4",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed4",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 12,
|
||||
"type": "toggleButton",
|
||||
"image": "buttons/square",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "vcmi.battleOptions.animationsSpeed5",
|
||||
"position": {"x": 229, "y": 0},
|
||||
"position": {"x": 192, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "battleAnimationsSpeed5",
|
||||
"type": "label",
|
||||
"font": "big",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.animationsSpeed5.hover"
|
||||
"name": "battleScrollSpeed5",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed5",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 24,
|
||||
"type": "toggleButton",
|
||||
"image": "buttons/square",
|
||||
"image": "settingsWindow/button46",
|
||||
"help": "vcmi.battleOptions.animationsSpeed6",
|
||||
"position": {"x": 266, "y": 0},
|
||||
"position": {"x": 240, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "battleAnimationsSpeed6",
|
||||
"type": "label",
|
||||
"font": "big",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.animationsSpeed6.hover"
|
||||
"name": "battleScrollSpeed6",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/scrollSpeed6",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -244,52 +325,58 @@
|
||||
},
|
||||
|
||||
{
|
||||
"name": "showQueueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "vcmi.battleOptions.showQueue.hover",
|
||||
"position": {"x": 61, "y": 393}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "showQueueCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.battleOptions.showQueue",
|
||||
"position": {"x": 25, "y": 391},
|
||||
"callback": "showQueueChanged"
|
||||
"name": "frameQueueSize",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameStackQueue",
|
||||
"position": {"x": 6, "y": 410 }
|
||||
},
|
||||
|
||||
{
|
||||
"name": "queueSizeLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.queueSizeLabel.hover",
|
||||
"position": {"x": 60, "y": 429}
|
||||
"position": {"x": 170, "y": 422}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "queueSizePicker",
|
||||
"type": "toggleGroup",
|
||||
"position": {"x": 28, "y": 450},
|
||||
"position": {"x": 10, "y": 434},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"index": 0, //auto
|
||||
"index": -1, //off
|
||||
"type": "toggleButton",
|
||||
"image": "buttons/triplewide",
|
||||
"image": "settingsWindow/button80",
|
||||
"help": "vcmi.battleOptions.queueSizeAutoButton",
|
||||
"position": {"x": 0, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "queueSizeNoneText",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.queueSizeNoneButton.hover"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 0, //auto
|
||||
"type": "toggleButton",
|
||||
"image": "settingsWindow/button80",
|
||||
"help": "vcmi.battleOptions.queueSizeAutoButton",
|
||||
"position": {"x": 85, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "queueSizeAutoText",
|
||||
"type": "label",
|
||||
"font": "big",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.queueSizeAutoButton.hover"
|
||||
@ -299,15 +386,15 @@
|
||||
{
|
||||
"index": 1, //small
|
||||
"type": "toggleButton",
|
||||
"image": "buttons/triplewide",
|
||||
"image": "settingsWindow/button80",
|
||||
"help": "vcmi.battleOptions.queueSizeSmallButton",
|
||||
"position": {"x": 113, "y": 0},
|
||||
"position": {"x": 170, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "queueSizeSmallText",
|
||||
"type": "label",
|
||||
"font": "big",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.queueSizeSmallButton.hover"
|
||||
@ -317,15 +404,15 @@
|
||||
{
|
||||
"index": 2, //large
|
||||
"type": "toggleButton",
|
||||
"image": "buttons/triplewide",
|
||||
"image": "settingsWindow/button80",
|
||||
"help": "vcmi.battleOptions.queueSizeBigButton",
|
||||
"position": {"x": 226, "y": 0},
|
||||
"position": {"x": 255, "y": 0},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "queueSizeBigText",
|
||||
"type": "label",
|
||||
"font": "big",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"text": "vcmi.battleOptions.queueSizeBigButton.hover"
|
||||
@ -334,25 +421,6 @@
|
||||
}
|
||||
],
|
||||
"callback": "queueSizeChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "skipBattleIntroMusicLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "vcmi.battleOptions.skipBattleIntroMusic.hover",
|
||||
"position": {"x": 61, "y": 502}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "skipBattleIntroMusicCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.battleOptions.skipBattleIntroMusic",
|
||||
"position": {"x": 25, "y": 500},
|
||||
"callback": "skipBattleIntroMusicChanged"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,115 @@
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "topSettingsLabels",
|
||||
"name": "lineLabelsEnd",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineHorizontal",
|
||||
"rect": { "x" : 5, "y" : 289, "w": 365, "h": 3}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "settingGroupTitles",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "yellow",
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 10, "y": 55},
|
||||
"text": "vcmi.systemOptions.videoGroup"
|
||||
},
|
||||
{
|
||||
"position": {"x": 380, "y": 55},
|
||||
"text": "vcmi.systemOptions.audioGroup"
|
||||
},
|
||||
{
|
||||
"position": {"x": 10, "y": 295},
|
||||
"text": "vcmi.systemOptions.townsGroup"
|
||||
}
|
||||
]
|
||||
},
|
||||
/////////////////////////////////////// Left section - Video Settings
|
||||
{
|
||||
"name": "resolutionLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"position": {"x": 45, "y": 85},
|
||||
"text": "vcmi.systemOptions.resolutionButton.hover"
|
||||
},
|
||||
{
|
||||
"name": "resolutionButton",
|
||||
"type": "button",
|
||||
"position": {"x": 10, "y": 83},
|
||||
"image": "settingsWindow/button32",
|
||||
"help": "vcmi.systemOptions.resolutionButton",
|
||||
"callback": "setGameResolution",
|
||||
"hotkey": "g",
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"name": "gearIcon",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/gear",
|
||||
"position": {"x": 0, "y": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "topCheckboxesLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 45, "y": 115},
|
||||
"text": "vcmi.systemOptions.fullscreenButton.hover"
|
||||
},
|
||||
{
|
||||
"position": {"x": 45, "y": 145},
|
||||
"text": "vcmi.systemOptions.framerateButton.hover"
|
||||
},
|
||||
{
|
||||
"position": {"x": 45, "y": 175},
|
||||
"text": "core.genrltxt.577"
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "fullscreenCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.systemOptions.fullscreenButton",
|
||||
"position": {"x": 10, "y": 113},
|
||||
"callback": "fullscreenChanged"
|
||||
},
|
||||
{
|
||||
"name": "framerateCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.systemOptions.framerateButton",
|
||||
"position": {"x": 10, "y": 143},
|
||||
"callback": "framerateChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spellbookAnimationCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.364",
|
||||
"position": {"x": 10, "y": 173},
|
||||
"callback": "spellbookAnimationChanged"
|
||||
},
|
||||
|
||||
/////////////////////////////////////// Right section - Audio Settings
|
||||
{
|
||||
"name": "settingAudioTitles",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
@ -10,65 +118,71 @@
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 122, "y": 50},
|
||||
"text": "vcmi.systemOptions.resolutionButton.hover"
|
||||
"position": {"x": 460, "y": 98},
|
||||
"text": "core.genrltxt.394" // Music Volume
|
||||
},
|
||||
{
|
||||
"position": {"x": 122, "y": 135},
|
||||
"text": "core.genrltxt.394"
|
||||
},
|
||||
{
|
||||
"position": {"x": 122, "y": 200},
|
||||
"text": "core.genrltxt.395"
|
||||
"position": {"x": 460, "y": 158},
|
||||
"text": "core.genrltxt.395" // Effects volume
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "resolutionButton",
|
||||
"type": "button",
|
||||
"position": {"x": 28, "y": 63},
|
||||
"image": "buttons/resolution",
|
||||
"help": "vcmi.systemOptions.resolutionButton",
|
||||
"callback": "setGameResolution",
|
||||
"hotkey": "g"
|
||||
"name": "frameMusic",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameAudio",
|
||||
"position": {"x": 380, "y": 80 }
|
||||
},
|
||||
|
||||
{
|
||||
"name": "resolutionLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 170, "y": 80}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "musicSlider",
|
||||
"type": "slider",
|
||||
"position": {"x": 29, "y": 147},
|
||||
"size": 190,
|
||||
"position": {"x": 385, "y": 115},
|
||||
"size": 200,
|
||||
"style": "brown",
|
||||
"orientation": "horizontal",
|
||||
"itemsVisible": 0,
|
||||
"itemsTotal": 100,
|
||||
"callback": "setMusic"
|
||||
},
|
||||
{
|
||||
"name": "musicValueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 565, "y": 98}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "frameSound",
|
||||
"type": "picture",
|
||||
"image": "settingsWindow/frameAudio",
|
||||
"position": {"x": 380, "y": 140 }
|
||||
},
|
||||
|
||||
{
|
||||
"name": "soundVolumeSlider",
|
||||
"type": "slider",
|
||||
"position": {"x": 29, "y": 213},
|
||||
"size": 190,
|
||||
"position": {"x": 385, "y": 175},
|
||||
"size": 200,
|
||||
"style": "brown",
|
||||
"orientation": "horizontal",
|
||||
"itemsVisible": 0,
|
||||
"itemsTotal": 100,
|
||||
"callback": "setVolume"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "bottomCheckboxesLabels",
|
||||
"name": "soundValueLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "center",
|
||||
"color": "yellow",
|
||||
"position": {"x": 565, "y": 158}
|
||||
},
|
||||
/////////////////////////////////////// Bottom section - Towns Settings
|
||||
{
|
||||
"name": "townCheckboxesLabels",
|
||||
"type": "labelGroup",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
@ -76,74 +190,42 @@
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"position": {"x": 64, "y": 278},
|
||||
"text": "core.genrltxt.577"
|
||||
"text": "vcmi.otherOptions.creatureGrowthAsDwellingLabel.hover",
|
||||
"position": {"x": 45, "y": 325}
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 314},
|
||||
"text": "vcmi.systemOptions.fullscreenButton.hover"
|
||||
"text": "vcmi.otherOptions.availableCreaturesAsDwellingLabel.hover",
|
||||
"position": {"x": 45, "y": 355}
|
||||
},
|
||||
{
|
||||
"position": {"x": 64, "y": 350},
|
||||
"text": "vcmi.systemOptions.framerateButton.hover"
|
||||
"text": "vcmi.otherOptions.compactTownCreatureInfo.hover",
|
||||
"position": {"x": 45, "y": 385}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name": "spellbookAnimationCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "core.help.364",
|
||||
"position": {"x": 28, "y": 276},
|
||||
"callback": "spellbookAnimationChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "fullscreenCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.systemOptions.fullscreenButton",
|
||||
"position": {"x": 28, "y": 312},
|
||||
"callback": "fullscreenChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "framerateCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.systemOptions.framerateButton",
|
||||
"position": {"x": 28, "y": 348},
|
||||
"callback": "framerateChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "availableCreaturesAsDwellingLabelText",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "vcmi.otherOptions.availableCreaturesAsDwellingLabel.hover",
|
||||
"position": {"x": 64, "y": 386}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "availableCreaturesAsDwellingLabelCheckbox",
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.otherOptions.availableCreaturesAsDwellingLabel",
|
||||
"position": {"x": 28, "y": 384},
|
||||
"callback": "availableCreaturesAsDwellingLabelChanged"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "compactTownCreatureInfoLabel",
|
||||
"type": "label",
|
||||
"font": "medium",
|
||||
"alignment": "left",
|
||||
"color": "white",
|
||||
"text": "vcmi.otherOptions.compactTownCreatureInfo.hover",
|
||||
"position": {"x": 64, "y": 422}
|
||||
"name": "availableCreaturesAsDwellingPicker",
|
||||
"type": "toggleGroup",
|
||||
"position": {"x": 10, "y": 323},
|
||||
"items":
|
||||
[
|
||||
{
|
||||
"index": 0,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.otherOptions.creatureGrowthAsDwellingLabel",
|
||||
"position": {"x": 0, "y": 0}
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.otherOptions.availableCreaturesAsDwellingLabel",
|
||||
"position": {"x": 0, "y": 30}
|
||||
},
|
||||
],
|
||||
"callback": "availableCreaturesAsDwellingChanged"
|
||||
},
|
||||
|
||||
{
|
||||
@ -151,7 +233,7 @@
|
||||
"type": "toggleButton",
|
||||
"image": "sysopchk.def",
|
||||
"help": "vcmi.otherOptions.compactTownCreatureInfo",
|
||||
"position": {"x": 28, "y": 420},
|
||||
"position": {"x": 10, "y": 383},
|
||||
"callback": "compactTownCreatureInfoChanged"
|
||||
}
|
||||
]
|
||||
|
@ -3,9 +3,21 @@
|
||||
[
|
||||
{
|
||||
"name": "background",
|
||||
"type": "picture",
|
||||
"image": "vcmiSettingsWindow",
|
||||
"position": {"x": 0, "y": 0}
|
||||
"type": "texture",
|
||||
"image": "DiBoxBck",
|
||||
"rect": {"w": 600, "h": 480}
|
||||
},
|
||||
{
|
||||
"name": "lineTabs",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineHorizontal",
|
||||
"rect": { "x" : 10, "y" : 45, "w": 580, "h": 3}
|
||||
},
|
||||
{
|
||||
"name": "lineColumns",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineVertical",
|
||||
"rect": { "x" : 370, "y" : 50, "w": 3, "h": 420}
|
||||
},
|
||||
|
||||
{
|
||||
@ -20,8 +32,8 @@
|
||||
{
|
||||
"index": 0,
|
||||
"type": "toggleButton",
|
||||
"position": {"x": 0, "y": 0},
|
||||
"image": "buttons/quadwide",
|
||||
"position": {"x": 10, "y": 5},
|
||||
"image": "settingsWindow/button190",
|
||||
"help": "vcmi.settingsMainWindow.generalTab",
|
||||
"items":
|
||||
[
|
||||
@ -39,8 +51,8 @@
|
||||
{
|
||||
"index": 1,
|
||||
"type": "toggleButton",
|
||||
"position": {"x": 150, "y": 0},
|
||||
"image": "buttons/quadwide",
|
||||
"position": {"x": 205, "y": 5},
|
||||
"image": "settingsWindow/button190",
|
||||
"help": "vcmi.settingsMainWindow.adventureTab",
|
||||
"items":
|
||||
[
|
||||
@ -58,8 +70,8 @@
|
||||
{
|
||||
"index": 2,
|
||||
"type": "toggleButton",
|
||||
"position": {"x": 300, "y": 0},
|
||||
"image": "buttons/quadwide",
|
||||
"position": {"x": 400, "y": 5},
|
||||
"image": "settingsWindow/button190",
|
||||
"help": "vcmi.settingsMainWindow.battleTab",
|
||||
"items":
|
||||
[
|
||||
@ -73,88 +85,70 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
//disabled, due to being redundant for now
|
||||
// {
|
||||
// "index": 3,
|
||||
// "type": "toggleButton",
|
||||
// "position": {"x": 450, "y": 0},
|
||||
// "image": "buttons/quadwide",
|
||||
// "help": "vcmi.settingsMainWindow.otherTab",
|
||||
// "items":
|
||||
// [
|
||||
// {
|
||||
// "name": "otherTabButtonTitle",
|
||||
// "type": "label",
|
||||
// "font": "big",
|
||||
// "alignment": "center",
|
||||
// "color": "yellow",
|
||||
// "text": "vcmi.settingsMainWindow.otherTab.hover"
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
],
|
||||
"callback": "activateSettingsTab"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "lineButtons",
|
||||
"type": "texture",
|
||||
"image": "settingsWindow/lineHorizontal",
|
||||
"rect": { "x" : 375, "y" : 289, "w": 220, "h": 3}
|
||||
},
|
||||
{
|
||||
"name": "loadButton",
|
||||
"type": "button",
|
||||
"position": {"x": 386, "y": 383},
|
||||
"position": {"x": 380, "y": 306},
|
||||
"image": "SOLOAD.DEF",
|
||||
"imageOrder": [1, 0, 2, 3],
|
||||
"help": "core.help.321",
|
||||
"callback": "loadGame",
|
||||
"hotkey": "l"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "saveButton",
|
||||
"type": "button",
|
||||
"position": {"x": 497, "y": 383},
|
||||
"position": {"x": 490, "y": 306},
|
||||
"image": "SOSAVE.DEF",
|
||||
"imageOrder": [1, 0, 2, 3],
|
||||
"help": "core.help.322",
|
||||
"callback": "saveGame",
|
||||
"hotkey": "s"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "restartButton",
|
||||
"type": "button",
|
||||
"position": {"x": 386, "y": 442},
|
||||
"position": {"x": 380, "y": 364},
|
||||
"image": "SORSTRT.DEF",
|
||||
"imageOrder": [1, 0, 2, 3],
|
||||
"help": "core.help.323",
|
||||
"callback": "restartGame",
|
||||
"hotkey": "r"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "mainMenuButton",
|
||||
"type": "button",
|
||||
"position": {"x": 497, "y": 442},
|
||||
"position": {"x": 490, "y": 364},
|
||||
"image": "SOMAIN.DEF",
|
||||
"imageOrder": [1, 0, 2, 3],
|
||||
"help": "core.help.320",
|
||||
"callback": "returnToMainMenu",
|
||||
"hotkey": "m"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "quitButton",
|
||||
"type": "button",
|
||||
"position": {"x": 386, "y": 500},
|
||||
"position": {"x": 380, "y": 422},
|
||||
"image": "soquit.def",
|
||||
"imageOrder": [1, 0, 2, 3],
|
||||
"help": "core.help.324",
|
||||
"callback": "quitGame",
|
||||
"hotkey": "q"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "closeSettingsButton",
|
||||
"type": "button",
|
||||
"position": {"x": 497, "y": 500},
|
||||
"position": {"x": 490, "y": 422},
|
||||
"image": "soretrn.def",
|
||||
"imageOrder": [1, 0, 2, 3],
|
||||
"help": "core.help.325",
|
||||
@ -162,4 +156,4 @@
|
||||
"hotkey": ["esc", "backspace"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|