diff --git a/Mods/vcmi/Data/NotoSans-Medium.ttf b/Mods/vcmi/Content/Data/NotoSans-Medium.ttf similarity index 100% rename from Mods/vcmi/Data/NotoSans-Medium.ttf rename to Mods/vcmi/Content/Data/NotoSans-Medium.ttf diff --git a/Mods/vcmi/Data/NotoSerif-Black.ttf b/Mods/vcmi/Content/Data/NotoSerif-Black.ttf similarity index 100% rename from Mods/vcmi/Data/NotoSerif-Black.ttf rename to Mods/vcmi/Content/Data/NotoSerif-Black.ttf diff --git a/Mods/vcmi/Data/NotoSerif-Bold.ttf b/Mods/vcmi/Content/Data/NotoSerif-Bold.ttf similarity index 100% rename from Mods/vcmi/Data/NotoSerif-Bold.ttf rename to Mods/vcmi/Content/Data/NotoSerif-Bold.ttf diff --git a/Mods/vcmi/Data/NotoSerif-Medium.ttf b/Mods/vcmi/Content/Data/NotoSerif-Medium.ttf similarity index 100% rename from Mods/vcmi/Data/NotoSerif-Medium.ttf rename to Mods/vcmi/Content/Data/NotoSerif-Medium.ttf diff --git a/Mods/vcmi/Data/s/std.verm b/Mods/vcmi/Content/Data/s/std.verm similarity index 100% rename from Mods/vcmi/Data/s/std.verm rename to Mods/vcmi/Content/Data/s/std.verm diff --git a/Mods/vcmi/Data/s/testy.erm b/Mods/vcmi/Content/Data/s/testy.erm similarity index 100% rename from Mods/vcmi/Data/s/testy.erm rename to Mods/vcmi/Content/Data/s/testy.erm diff --git a/Mods/vcmi/Sounds/we5.wav b/Mods/vcmi/Content/Sounds/we5.wav similarity index 100% rename from Mods/vcmi/Sounds/we5.wav rename to Mods/vcmi/Content/Sounds/we5.wav diff --git a/Mods/vcmi/Sprites/PortraitsLarge.json b/Mods/vcmi/Content/Sprites/PortraitsLarge.json similarity index 100% rename from Mods/vcmi/Sprites/PortraitsLarge.json rename to Mods/vcmi/Content/Sprites/PortraitsLarge.json diff --git a/Mods/vcmi/Sprites/PortraitsSmall.json b/Mods/vcmi/Content/Sprites/PortraitsSmall.json similarity index 100% rename from Mods/vcmi/Sprites/PortraitsSmall.json rename to Mods/vcmi/Content/Sprites/PortraitsSmall.json diff --git a/Mods/vcmi/Data/QuickRecruitmentWindow/CreaturePurchaseCard.png b/Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/CreaturePurchaseCard.png similarity index 100% rename from Mods/vcmi/Data/QuickRecruitmentWindow/CreaturePurchaseCard.png rename to Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/CreaturePurchaseCard.png diff --git a/Mods/vcmi/Sprites/QuickRecruitmentWindow/QuickRecruitmentAllButton.def b/Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/QuickRecruitmentAllButton.def similarity index 100% rename from Mods/vcmi/Sprites/QuickRecruitmentWindow/QuickRecruitmentAllButton.def rename to Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/QuickRecruitmentAllButton.def diff --git a/Mods/vcmi/Sprites/QuickRecruitmentWindow/QuickRecruitmentNoneButton.def b/Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/QuickRecruitmentNoneButton.def similarity index 100% rename from Mods/vcmi/Sprites/QuickRecruitmentWindow/QuickRecruitmentNoneButton.def rename to Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/QuickRecruitmentNoneButton.def diff --git a/Mods/vcmi/Sprites/QuickRecruitmentWindow/costBackground.png b/Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/costBackground.png similarity index 100% rename from Mods/vcmi/Sprites/QuickRecruitmentWindow/costBackground.png rename to Mods/vcmi/Content/Sprites/QuickRecruitmentWindow/costBackground.png diff --git a/Mods/vcmi/Sprites/ScSelC.json b/Mods/vcmi/Content/Sprites/ScSelC.json similarity index 100% rename from Mods/vcmi/Sprites/ScSelC.json rename to Mods/vcmi/Content/Sprites/ScSelC.json diff --git a/Mods/vcmi/Data/StackQueueLarge.png b/Mods/vcmi/Content/Sprites/StackQueueLarge.png similarity index 100% rename from Mods/vcmi/Data/StackQueueLarge.png rename to Mods/vcmi/Content/Sprites/StackQueueLarge.png diff --git a/Mods/vcmi/Data/StackQueueSmall.png b/Mods/vcmi/Content/Sprites/StackQueueSmall.png similarity index 100% rename from Mods/vcmi/Data/StackQueueSmall.png rename to Mods/vcmi/Content/Sprites/StackQueueSmall.png diff --git a/Mods/vcmi/Data/UnitMaxMovementHighlight.png b/Mods/vcmi/Content/Sprites/UnitMaxMovementHighlight.png similarity index 100% rename from Mods/vcmi/Data/UnitMaxMovementHighlight.png rename to Mods/vcmi/Content/Sprites/UnitMaxMovementHighlight.png diff --git a/Mods/vcmi/Data/UnitMovementHighlight.png b/Mods/vcmi/Content/Sprites/UnitMovementHighlight.png similarity index 100% rename from Mods/vcmi/Data/UnitMovementHighlight.png rename to Mods/vcmi/Content/Sprites/UnitMovementHighlight.png diff --git a/Mods/vcmi/Content/Sprites/battle/queueDefend.png b/Mods/vcmi/Content/Sprites/battle/queueDefend.png new file mode 100644 index 000000000..87e61b3ab Binary files /dev/null and b/Mods/vcmi/Content/Sprites/battle/queueDefend.png differ diff --git a/Mods/vcmi/Content/Sprites/battle/queueWait.png b/Mods/vcmi/Content/Sprites/battle/queueWait.png new file mode 100644 index 000000000..82572bd8e Binary files /dev/null and b/Mods/vcmi/Content/Sprites/battle/queueWait.png differ diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/empty.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/empty.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/empty.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/empty.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/fullHex.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/fullHex.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/fullHex.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/fullHex.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/left.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/left.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/left.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/left.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/leftHalf.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/leftHalf.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/leftHalf.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/leftHalf.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/top.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/top.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/top.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/top.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/topLeft.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/topLeft.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/topLeft.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/topLeft.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/topLeftCorner.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/topLeftCorner.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/topLeftCorner.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/topLeftCorner.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/green/topLeftHalfCorner.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/topLeftHalfCorner.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/green/topLeftHalfCorner.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/green/topLeftHalfCorner.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/rangeHighlightsGreen.json b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/rangeHighlightsGreen.json similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/rangeHighlightsGreen.json rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/rangeHighlightsGreen.json diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/rangeHighlightsRed.json b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/rangeHighlightsRed.json similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/rangeHighlightsRed.json rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/rangeHighlightsRed.json diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/empty.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/empty.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/empty.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/empty.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/fullHex.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/fullHex.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/fullHex.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/fullHex.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/left.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/left.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/left.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/left.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/leftHalf.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/leftHalf.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/leftHalf.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/leftHalf.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/top.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/top.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/top.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/top.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/topLeft.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/topLeft.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/topLeft.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/topLeft.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/topLeftCorner.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/topLeftCorner.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/topLeftCorner.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/topLeftCorner.png diff --git a/Mods/vcmi/Sprites/battle/rangeHighlights/red/topLeftHalfCorner.png b/Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/topLeftHalfCorner.png similarity index 100% rename from Mods/vcmi/Sprites/battle/rangeHighlights/red/topLeftHalfCorner.png rename to Mods/vcmi/Content/Sprites/battle/rangeHighlights/red/topLeftHalfCorner.png diff --git a/Mods/vcmi/Content/Sprites/cprsmall.json b/Mods/vcmi/Content/Sprites/cprsmall.json new file mode 100644 index 000000000..3eec15da7 --- /dev/null +++ b/Mods/vcmi/Content/Sprites/cprsmall.json @@ -0,0 +1,8 @@ +{ + "images" : + [ + // Fix for swapped in H3 icons of Wight and Wraith + { "frame" : 62, "defFile" : "cprsmall.def", "defFrame" : 63}, + { "frame" : 63, "defFile" : "cprsmall.def", "defFrame" : 62} + ] +} diff --git a/Mods/vcmi/Data/debug/blocked.png b/Mods/vcmi/Content/Sprites/debug/blocked.png similarity index 100% rename from Mods/vcmi/Data/debug/blocked.png rename to Mods/vcmi/Content/Sprites/debug/blocked.png diff --git a/Mods/vcmi/Data/debug/grid.png b/Mods/vcmi/Content/Sprites/debug/grid.png similarity index 100% rename from Mods/vcmi/Data/debug/grid.png rename to Mods/vcmi/Content/Sprites/debug/grid.png diff --git a/Mods/vcmi/Data/debug/spellRange.png b/Mods/vcmi/Content/Sprites/debug/spellRange.png similarity index 100% rename from Mods/vcmi/Data/debug/spellRange.png rename to Mods/vcmi/Content/Sprites/debug/spellRange.png diff --git a/Mods/vcmi/Data/debug/visitable.png b/Mods/vcmi/Content/Sprites/debug/visitable.png similarity index 100% rename from Mods/vcmi/Data/debug/visitable.png rename to Mods/vcmi/Content/Sprites/debug/visitable.png diff --git a/Mods/vcmi/Data/heroWindow/artifactSlotEmpty.png b/Mods/vcmi/Content/Sprites/heroWindow/artifactSlotEmpty.png similarity index 100% rename from Mods/vcmi/Data/heroWindow/artifactSlotEmpty.png rename to Mods/vcmi/Content/Sprites/heroWindow/artifactSlotEmpty.png diff --git a/Mods/vcmi/Data/heroWindow/backpackButtonIcon.png b/Mods/vcmi/Content/Sprites/heroWindow/backpackButtonIcon.png similarity index 100% rename from Mods/vcmi/Data/heroWindow/backpackButtonIcon.png rename to Mods/vcmi/Content/Sprites/heroWindow/backpackButtonIcon.png diff --git a/Mods/vcmi/Data/heroWindow/commanderButtonIcon.png b/Mods/vcmi/Content/Sprites/heroWindow/commanderButtonIcon.png similarity index 100% rename from Mods/vcmi/Data/heroWindow/commanderButtonIcon.png rename to Mods/vcmi/Content/Sprites/heroWindow/commanderButtonIcon.png diff --git a/Mods/vcmi/Sprites/itpa.json b/Mods/vcmi/Content/Sprites/itpa.json similarity index 100% rename from Mods/vcmi/Sprites/itpa.json rename to Mods/vcmi/Content/Sprites/itpa.json diff --git a/Mods/vcmi/Sprites/lobby/checkbox.json b/Mods/vcmi/Content/Sprites/lobby/checkbox.json similarity index 100% rename from Mods/vcmi/Sprites/lobby/checkbox.json rename to Mods/vcmi/Content/Sprites/lobby/checkbox.json diff --git a/Mods/vcmi/Sprites/lobby/checkboxBlueOff.png b/Mods/vcmi/Content/Sprites/lobby/checkboxBlueOff.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/checkboxBlueOff.png rename to Mods/vcmi/Content/Sprites/lobby/checkboxBlueOff.png diff --git a/Mods/vcmi/Sprites/lobby/checkboxBlueOn.png b/Mods/vcmi/Content/Sprites/lobby/checkboxBlueOn.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/checkboxBlueOn.png rename to Mods/vcmi/Content/Sprites/lobby/checkboxBlueOn.png diff --git a/Mods/vcmi/Sprites/lobby/checkboxOff.png b/Mods/vcmi/Content/Sprites/lobby/checkboxOff.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/checkboxOff.png rename to Mods/vcmi/Content/Sprites/lobby/checkboxOff.png diff --git a/Mods/vcmi/Sprites/lobby/checkboxOn.png b/Mods/vcmi/Content/Sprites/lobby/checkboxOn.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/checkboxOn.png rename to Mods/vcmi/Content/Sprites/lobby/checkboxOn.png diff --git a/Mods/vcmi/Sprites/lobby/delete-normal.png b/Mods/vcmi/Content/Sprites/lobby/delete-normal.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/delete-normal.png rename to Mods/vcmi/Content/Sprites/lobby/delete-normal.png diff --git a/Mods/vcmi/Sprites/lobby/delete-pressed.png b/Mods/vcmi/Content/Sprites/lobby/delete-pressed.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/delete-pressed.png rename to Mods/vcmi/Content/Sprites/lobby/delete-pressed.png diff --git a/Mods/vcmi/Sprites/lobby/deleteButton.json b/Mods/vcmi/Content/Sprites/lobby/deleteButton.json similarity index 100% rename from Mods/vcmi/Sprites/lobby/deleteButton.json rename to Mods/vcmi/Content/Sprites/lobby/deleteButton.json diff --git a/Mods/vcmi/Sprites/lobby/dropdown.json b/Mods/vcmi/Content/Sprites/lobby/dropdown.json similarity index 100% rename from Mods/vcmi/Sprites/lobby/dropdown.json rename to Mods/vcmi/Content/Sprites/lobby/dropdown.json diff --git a/Mods/vcmi/Sprites/lobby/dropdownNormal.png b/Mods/vcmi/Content/Sprites/lobby/dropdownNormal.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/dropdownNormal.png rename to Mods/vcmi/Content/Sprites/lobby/dropdownNormal.png diff --git a/Mods/vcmi/Sprites/lobby/dropdownPressed.png b/Mods/vcmi/Content/Sprites/lobby/dropdownPressed.png similarity index 100% rename from Mods/vcmi/Sprites/lobby/dropdownPressed.png rename to Mods/vcmi/Content/Sprites/lobby/dropdownPressed.png diff --git a/Mods/vcmi/Data/lobby/iconFolder.png b/Mods/vcmi/Content/Sprites/lobby/iconFolder.png similarity index 100% rename from Mods/vcmi/Data/lobby/iconFolder.png rename to Mods/vcmi/Content/Sprites/lobby/iconFolder.png diff --git a/Mods/vcmi/Data/lobby/iconPlayer.png b/Mods/vcmi/Content/Sprites/lobby/iconPlayer.png similarity index 100% rename from Mods/vcmi/Data/lobby/iconPlayer.png rename to Mods/vcmi/Content/Sprites/lobby/iconPlayer.png diff --git a/Mods/vcmi/Data/lobby/iconSend.png b/Mods/vcmi/Content/Sprites/lobby/iconSend.png similarity index 100% rename from Mods/vcmi/Data/lobby/iconSend.png rename to Mods/vcmi/Content/Sprites/lobby/iconSend.png diff --git a/Mods/vcmi/Data/lobby/selectionTabSortDate.png b/Mods/vcmi/Content/Sprites/lobby/selectionTabSortDate.png similarity index 100% rename from Mods/vcmi/Data/lobby/selectionTabSortDate.png rename to Mods/vcmi/Content/Sprites/lobby/selectionTabSortDate.png diff --git a/Mods/vcmi/Data/lobby/townBorderBig.png b/Mods/vcmi/Content/Sprites/lobby/townBorderBig.png similarity index 100% rename from Mods/vcmi/Data/lobby/townBorderBig.png rename to Mods/vcmi/Content/Sprites/lobby/townBorderBig.png diff --git a/Mods/vcmi/Data/lobby/townBorderBigActivated.png b/Mods/vcmi/Content/Sprites/lobby/townBorderBigActivated.png similarity index 100% rename from Mods/vcmi/Data/lobby/townBorderBigActivated.png rename to Mods/vcmi/Content/Sprites/lobby/townBorderBigActivated.png diff --git a/Mods/vcmi/Data/lobby/townBorderBigGrayedOut.png b/Mods/vcmi/Content/Sprites/lobby/townBorderBigGrayedOut.png similarity index 100% rename from Mods/vcmi/Data/lobby/townBorderBigGrayedOut.png rename to Mods/vcmi/Content/Sprites/lobby/townBorderBigGrayedOut.png diff --git a/Mods/vcmi/Data/lobby/townBorderSmallActivated.png b/Mods/vcmi/Content/Sprites/lobby/townBorderSmallActivated.png similarity index 100% rename from Mods/vcmi/Data/lobby/townBorderSmallActivated.png rename to Mods/vcmi/Content/Sprites/lobby/townBorderSmallActivated.png diff --git a/Mods/vcmi/Sprites/mapFormatIcons/vcmi1.png b/Mods/vcmi/Content/Sprites/mapFormatIcons/vcmi1.png similarity index 100% rename from Mods/vcmi/Sprites/mapFormatIcons/vcmi1.png rename to Mods/vcmi/Content/Sprites/mapFormatIcons/vcmi1.png diff --git a/Mods/vcmi/Data/questDialog.png b/Mods/vcmi/Content/Sprites/questDialog.png similarity index 100% rename from Mods/vcmi/Data/questDialog.png rename to Mods/vcmi/Content/Sprites/questDialog.png diff --git a/Mods/vcmi/Data/radialMenu/altDown.png b/Mods/vcmi/Content/Sprites/radialMenu/altDown.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/altDown.png rename to Mods/vcmi/Content/Sprites/radialMenu/altDown.png diff --git a/Mods/vcmi/Data/radialMenu/altDownBottom.png b/Mods/vcmi/Content/Sprites/radialMenu/altDownBottom.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/altDownBottom.png rename to Mods/vcmi/Content/Sprites/radialMenu/altDownBottom.png diff --git a/Mods/vcmi/Data/radialMenu/altUp.png b/Mods/vcmi/Content/Sprites/radialMenu/altUp.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/altUp.png rename to Mods/vcmi/Content/Sprites/radialMenu/altUp.png diff --git a/Mods/vcmi/Data/radialMenu/altUpTop.png b/Mods/vcmi/Content/Sprites/radialMenu/altUpTop.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/altUpTop.png rename to Mods/vcmi/Content/Sprites/radialMenu/altUpTop.png diff --git a/Mods/vcmi/Data/radialMenu/dismissHero.png b/Mods/vcmi/Content/Sprites/radialMenu/dismissHero.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/dismissHero.png rename to Mods/vcmi/Content/Sprites/radialMenu/dismissHero.png diff --git a/Mods/vcmi/Data/radialMenu/heroMove.png b/Mods/vcmi/Content/Sprites/radialMenu/heroMove.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/heroMove.png rename to Mods/vcmi/Content/Sprites/radialMenu/heroMove.png diff --git a/Mods/vcmi/Data/radialMenu/heroSwap.png b/Mods/vcmi/Content/Sprites/radialMenu/heroSwap.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/heroSwap.png rename to Mods/vcmi/Content/Sprites/radialMenu/heroSwap.png diff --git a/Mods/vcmi/Data/radialMenu/itemEmpty.png b/Mods/vcmi/Content/Sprites/radialMenu/itemEmpty.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/itemEmpty.png rename to Mods/vcmi/Content/Sprites/radialMenu/itemEmpty.png diff --git a/Mods/vcmi/Data/radialMenu/itemEmptyAlt.png b/Mods/vcmi/Content/Sprites/radialMenu/itemEmptyAlt.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/itemEmptyAlt.png rename to Mods/vcmi/Content/Sprites/radialMenu/itemEmptyAlt.png diff --git a/Mods/vcmi/Data/radialMenu/itemInactive.png b/Mods/vcmi/Content/Sprites/radialMenu/itemInactive.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/itemInactive.png rename to Mods/vcmi/Content/Sprites/radialMenu/itemInactive.png diff --git a/Mods/vcmi/Data/radialMenu/itemInactiveAlt.png b/Mods/vcmi/Content/Sprites/radialMenu/itemInactiveAlt.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/itemInactiveAlt.png rename to Mods/vcmi/Content/Sprites/radialMenu/itemInactiveAlt.png diff --git a/Mods/vcmi/Data/radialMenu/moveArtifacts.png b/Mods/vcmi/Content/Sprites/radialMenu/moveArtifacts.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/moveArtifacts.png rename to Mods/vcmi/Content/Sprites/radialMenu/moveArtifacts.png diff --git a/Mods/vcmi/Data/radialMenu/moveTroops.png b/Mods/vcmi/Content/Sprites/radialMenu/moveTroops.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/moveTroops.png rename to Mods/vcmi/Content/Sprites/radialMenu/moveTroops.png diff --git a/Mods/vcmi/Data/radialMenu/stackFillOne.png b/Mods/vcmi/Content/Sprites/radialMenu/stackFillOne.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/stackFillOne.png rename to Mods/vcmi/Content/Sprites/radialMenu/stackFillOne.png diff --git a/Mods/vcmi/Data/radialMenu/stackMerge.png b/Mods/vcmi/Content/Sprites/radialMenu/stackMerge.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/stackMerge.png rename to Mods/vcmi/Content/Sprites/radialMenu/stackMerge.png diff --git a/Mods/vcmi/Data/radialMenu/stackSplitDialog.png b/Mods/vcmi/Content/Sprites/radialMenu/stackSplitDialog.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/stackSplitDialog.png rename to Mods/vcmi/Content/Sprites/radialMenu/stackSplitDialog.png diff --git a/Mods/vcmi/Data/radialMenu/stackSplitEqual.png b/Mods/vcmi/Content/Sprites/radialMenu/stackSplitEqual.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/stackSplitEqual.png rename to Mods/vcmi/Content/Sprites/radialMenu/stackSplitEqual.png diff --git a/Mods/vcmi/Data/radialMenu/stackSplitOne.png b/Mods/vcmi/Content/Sprites/radialMenu/stackSplitOne.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/stackSplitOne.png rename to Mods/vcmi/Content/Sprites/radialMenu/stackSplitOne.png diff --git a/Mods/vcmi/Data/radialMenu/statusBar.png b/Mods/vcmi/Content/Sprites/radialMenu/statusBar.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/statusBar.png rename to Mods/vcmi/Content/Sprites/radialMenu/statusBar.png diff --git a/Mods/vcmi/Data/radialMenu/swapArtifacts.png b/Mods/vcmi/Content/Sprites/radialMenu/swapArtifacts.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/swapArtifacts.png rename to Mods/vcmi/Content/Sprites/radialMenu/swapArtifacts.png diff --git a/Mods/vcmi/Data/radialMenu/tradeHeroes.png b/Mods/vcmi/Content/Sprites/radialMenu/tradeHeroes.png similarity index 100% rename from Mods/vcmi/Data/radialMenu/tradeHeroes.png rename to Mods/vcmi/Content/Sprites/radialMenu/tradeHeroes.png diff --git a/Mods/vcmi/Data/settingsWindow/frameAudio.png b/Mods/vcmi/Content/Sprites/settingsWindow/frameAudio.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/frameAudio.png rename to Mods/vcmi/Content/Sprites/settingsWindow/frameAudio.png diff --git a/Mods/vcmi/Data/settingsWindow/frameMovement.png b/Mods/vcmi/Content/Sprites/settingsWindow/frameMovement.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/frameMovement.png rename to Mods/vcmi/Content/Sprites/settingsWindow/frameMovement.png diff --git a/Mods/vcmi/Data/settingsWindow/frameStackQueue.png b/Mods/vcmi/Content/Sprites/settingsWindow/frameStackQueue.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/frameStackQueue.png rename to Mods/vcmi/Content/Sprites/settingsWindow/frameStackQueue.png diff --git a/Mods/vcmi/Content/Sprites/settingsWindow/gear.png b/Mods/vcmi/Content/Sprites/settingsWindow/gear.png new file mode 100644 index 000000000..d59b548c7 Binary files /dev/null and b/Mods/vcmi/Content/Sprites/settingsWindow/gear.png differ diff --git a/Mods/vcmi/Data/settingsWindow/scrollSpeed1.png b/Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed1.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/scrollSpeed1.png rename to Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed1.png diff --git a/Mods/vcmi/Data/settingsWindow/scrollSpeed2.png b/Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed2.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/scrollSpeed2.png rename to Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed2.png diff --git a/Mods/vcmi/Data/settingsWindow/scrollSpeed3.png b/Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed3.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/scrollSpeed3.png rename to Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed3.png diff --git a/Mods/vcmi/Data/settingsWindow/scrollSpeed4.png b/Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed4.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/scrollSpeed4.png rename to Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed4.png diff --git a/Mods/vcmi/Data/settingsWindow/scrollSpeed5.png b/Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed5.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/scrollSpeed5.png rename to Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed5.png diff --git a/Mods/vcmi/Data/settingsWindow/scrollSpeed6.png b/Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed6.png similarity index 100% rename from Mods/vcmi/Data/settingsWindow/scrollSpeed6.png rename to Mods/vcmi/Content/Sprites/settingsWindow/scrollSpeed6.png diff --git a/Mods/vcmi/Data/spellResearch/accept.png b/Mods/vcmi/Content/Sprites/spellResearch/accept.png similarity index 100% rename from Mods/vcmi/Data/spellResearch/accept.png rename to Mods/vcmi/Content/Sprites/spellResearch/accept.png diff --git a/Mods/vcmi/Data/spellResearch/close.png b/Mods/vcmi/Content/Sprites/spellResearch/close.png similarity index 100% rename from Mods/vcmi/Data/spellResearch/close.png rename to Mods/vcmi/Content/Sprites/spellResearch/close.png diff --git a/Mods/vcmi/Data/spellResearch/reroll.png b/Mods/vcmi/Content/Sprites/spellResearch/reroll.png similarity index 100% rename from Mods/vcmi/Data/spellResearch/reroll.png rename to Mods/vcmi/Content/Sprites/spellResearch/reroll.png diff --git a/Mods/vcmi/Content/Sprites/spells.json b/Mods/vcmi/Content/Sprites/spells.json new file mode 100644 index 000000000..4c13e5c79 --- /dev/null +++ b/Mods/vcmi/Content/Sprites/spells.json @@ -0,0 +1,8 @@ +{ + "images" : + [ + // Fix for swapped in H3 icons of View Earth and View Air + { "frame" : 3, "defFile" : "spells.def", "defFrame" : 5}, + { "frame" : 5, "defFile" : "spells.def", "defFrame" : 3} + ] +} diff --git a/Mods/vcmi/Data/stackWindow/bonus-effects.png b/Mods/vcmi/Content/Sprites/stackWindow/bonus-effects.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/bonus-effects.png rename to Mods/vcmi/Content/Sprites/stackWindow/bonus-effects.png diff --git a/Mods/vcmi/Data/stackWindow/button-panel.png b/Mods/vcmi/Content/Sprites/stackWindow/button-panel.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/button-panel.png rename to Mods/vcmi/Content/Sprites/stackWindow/button-panel.png diff --git a/Mods/vcmi/Sprites/stackWindow/cancel-normal.png b/Mods/vcmi/Content/Sprites/stackWindow/cancel-normal.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/cancel-normal.png rename to Mods/vcmi/Content/Sprites/stackWindow/cancel-normal.png diff --git a/Mods/vcmi/Sprites/stackWindow/cancel-pressed.png b/Mods/vcmi/Content/Sprites/stackWindow/cancel-pressed.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/cancel-pressed.png rename to Mods/vcmi/Content/Sprites/stackWindow/cancel-pressed.png diff --git a/Mods/vcmi/Sprites/stackWindow/cancelButton.json b/Mods/vcmi/Content/Sprites/stackWindow/cancelButton.json similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/cancelButton.json rename to Mods/vcmi/Content/Sprites/stackWindow/cancelButton.json diff --git a/Mods/vcmi/Data/stackWindow/commander-abilities.png b/Mods/vcmi/Content/Sprites/stackWindow/commander-abilities.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/commander-abilities.png rename to Mods/vcmi/Content/Sprites/stackWindow/commander-abilities.png diff --git a/Mods/vcmi/Data/stackWindow/commander-bg.png b/Mods/vcmi/Content/Sprites/stackWindow/commander-bg.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/commander-bg.png rename to Mods/vcmi/Content/Sprites/stackWindow/commander-bg.png diff --git a/Mods/vcmi/Data/stackWindow/icons.png b/Mods/vcmi/Content/Sprites/stackWindow/icons.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/icons.png rename to Mods/vcmi/Content/Sprites/stackWindow/icons.png diff --git a/Mods/vcmi/Data/stackWindow/info-panel-0.png b/Mods/vcmi/Content/Sprites/stackWindow/info-panel-0.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/info-panel-0.png rename to Mods/vcmi/Content/Sprites/stackWindow/info-panel-0.png diff --git a/Mods/vcmi/Data/stackWindow/info-panel-1.png b/Mods/vcmi/Content/Sprites/stackWindow/info-panel-1.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/info-panel-1.png rename to Mods/vcmi/Content/Sprites/stackWindow/info-panel-1.png diff --git a/Mods/vcmi/Data/stackWindow/info-panel-2.png b/Mods/vcmi/Content/Sprites/stackWindow/info-panel-2.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/info-panel-2.png rename to Mods/vcmi/Content/Sprites/stackWindow/info-panel-2.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-0.png b/Mods/vcmi/Content/Sprites/stackWindow/level-0.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-0.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-0.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-1.png b/Mods/vcmi/Content/Sprites/stackWindow/level-1.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-1.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-1.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-10.png b/Mods/vcmi/Content/Sprites/stackWindow/level-10.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-10.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-10.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-2.png b/Mods/vcmi/Content/Sprites/stackWindow/level-2.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-2.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-2.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-3.png b/Mods/vcmi/Content/Sprites/stackWindow/level-3.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-3.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-3.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-4.png b/Mods/vcmi/Content/Sprites/stackWindow/level-4.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-4.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-4.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-5.png b/Mods/vcmi/Content/Sprites/stackWindow/level-5.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-5.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-5.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-6.png b/Mods/vcmi/Content/Sprites/stackWindow/level-6.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-6.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-6.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-7.png b/Mods/vcmi/Content/Sprites/stackWindow/level-7.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-7.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-7.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-8.png b/Mods/vcmi/Content/Sprites/stackWindow/level-8.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-8.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-8.png diff --git a/Mods/vcmi/Sprites/stackWindow/level-9.png b/Mods/vcmi/Content/Sprites/stackWindow/level-9.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/level-9.png rename to Mods/vcmi/Content/Sprites/stackWindow/level-9.png diff --git a/Mods/vcmi/Sprites/stackWindow/levels.json b/Mods/vcmi/Content/Sprites/stackWindow/levels.json similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/levels.json rename to Mods/vcmi/Content/Sprites/stackWindow/levels.json diff --git a/Mods/vcmi/Data/stackWindow/spell-effects.png b/Mods/vcmi/Content/Sprites/stackWindow/spell-effects.png similarity index 100% rename from Mods/vcmi/Data/stackWindow/spell-effects.png rename to Mods/vcmi/Content/Sprites/stackWindow/spell-effects.png diff --git a/Mods/vcmi/Sprites/stackWindow/switchModeIcons.json b/Mods/vcmi/Content/Sprites/stackWindow/switchModeIcons.json similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/switchModeIcons.json rename to Mods/vcmi/Content/Sprites/stackWindow/switchModeIcons.json diff --git a/Mods/vcmi/Sprites/stackWindow/upgrade-normal.png b/Mods/vcmi/Content/Sprites/stackWindow/upgrade-normal.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/upgrade-normal.png rename to Mods/vcmi/Content/Sprites/stackWindow/upgrade-normal.png diff --git a/Mods/vcmi/Sprites/stackWindow/upgrade-pressed.png b/Mods/vcmi/Content/Sprites/stackWindow/upgrade-pressed.png similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/upgrade-pressed.png rename to Mods/vcmi/Content/Sprites/stackWindow/upgrade-pressed.png diff --git a/Mods/vcmi/Sprites/stackWindow/upgradeButton.json b/Mods/vcmi/Content/Sprites/stackWindow/upgradeButton.json similarity index 100% rename from Mods/vcmi/Sprites/stackWindow/upgradeButton.json rename to Mods/vcmi/Content/Sprites/stackWindow/upgradeButton.json diff --git a/Mods/vcmi/Sprites/vcmi/creatureIcons/towerLarge.png b/Mods/vcmi/Content/Sprites/vcmi/creatureIcons/towerLarge.png similarity index 100% rename from Mods/vcmi/Sprites/vcmi/creatureIcons/towerLarge.png rename to Mods/vcmi/Content/Sprites/vcmi/creatureIcons/towerLarge.png diff --git a/Mods/vcmi/Sprites/vcmi/creatureIcons/towerSmall.png b/Mods/vcmi/Content/Sprites/vcmi/creatureIcons/towerSmall.png similarity index 100% rename from Mods/vcmi/Sprites/vcmi/creatureIcons/towerSmall.png rename to Mods/vcmi/Content/Sprites/vcmi/creatureIcons/towerSmall.png diff --git a/Mods/vcmi/Content/Sprites2x/battle/queueDefend.png b/Mods/vcmi/Content/Sprites2x/battle/queueDefend.png new file mode 100644 index 000000000..7ba9c0a58 Binary files /dev/null and b/Mods/vcmi/Content/Sprites2x/battle/queueDefend.png differ diff --git a/Mods/vcmi/Content/Sprites2x/battle/queueWait.png b/Mods/vcmi/Content/Sprites2x/battle/queueWait.png new file mode 100644 index 000000000..53e203dda Binary files /dev/null and b/Mods/vcmi/Content/Sprites2x/battle/queueWait.png differ diff --git a/Mods/vcmi/Content/Sprites2x/mapFormatIcons/vcmi1.png b/Mods/vcmi/Content/Sprites2x/mapFormatIcons/vcmi1.png new file mode 100644 index 000000000..1be03a460 Binary files /dev/null and b/Mods/vcmi/Content/Sprites2x/mapFormatIcons/vcmi1.png differ diff --git a/Mods/vcmi/Content/Sprites2x/settingsWindow/gear.png b/Mods/vcmi/Content/Sprites2x/settingsWindow/gear.png new file mode 100644 index 000000000..ff89fc0e6 Binary files /dev/null and b/Mods/vcmi/Content/Sprites2x/settingsWindow/gear.png differ diff --git a/Mods/vcmi/Content/Sprites2x/stackWindow/icons.png b/Mods/vcmi/Content/Sprites2x/stackWindow/icons.png new file mode 100644 index 000000000..b1cdf1c22 Binary files /dev/null and b/Mods/vcmi/Content/Sprites2x/stackWindow/icons.png differ diff --git a/Mods/vcmi/Content/Sprites3x/battle/queueDefend.png b/Mods/vcmi/Content/Sprites3x/battle/queueDefend.png new file mode 100644 index 000000000..1740d5b16 Binary files /dev/null and b/Mods/vcmi/Content/Sprites3x/battle/queueDefend.png differ diff --git a/Mods/vcmi/Content/Sprites3x/mapFormatIcons/vcmi1.png b/Mods/vcmi/Content/Sprites3x/mapFormatIcons/vcmi1.png new file mode 100644 index 000000000..d85607d13 Binary files /dev/null and b/Mods/vcmi/Content/Sprites3x/mapFormatIcons/vcmi1.png differ diff --git a/Mods/vcmi/Content/Sprites3x/settingsWindow/gear.png b/Mods/vcmi/Content/Sprites3x/settingsWindow/gear.png new file mode 100644 index 000000000..93cc18eeb Binary files /dev/null and b/Mods/vcmi/Content/Sprites3x/settingsWindow/gear.png differ diff --git a/Mods/vcmi/Content/Sprites3x/stackWindow/icons.png b/Mods/vcmi/Content/Sprites3x/stackWindow/icons.png new file mode 100644 index 000000000..3ec5a9e32 Binary files /dev/null and b/Mods/vcmi/Content/Sprites3x/stackWindow/icons.png differ diff --git a/Mods/vcmi/Content/Sprites4x/battle/queueDefend.png b/Mods/vcmi/Content/Sprites4x/battle/queueDefend.png new file mode 100644 index 000000000..df4a21235 Binary files /dev/null and b/Mods/vcmi/Content/Sprites4x/battle/queueDefend.png differ diff --git a/Mods/vcmi/Content/Sprites4x/mapFormatIcons/vcmi1.png b/Mods/vcmi/Content/Sprites4x/mapFormatIcons/vcmi1.png new file mode 100644 index 000000000..0193036be Binary files /dev/null and b/Mods/vcmi/Content/Sprites4x/mapFormatIcons/vcmi1.png differ diff --git a/Mods/vcmi/Content/Sprites4x/settingsWindow/gear.png b/Mods/vcmi/Content/Sprites4x/settingsWindow/gear.png new file mode 100644 index 000000000..83d451dbe Binary files /dev/null and b/Mods/vcmi/Content/Sprites4x/settingsWindow/gear.png differ diff --git a/Mods/vcmi/Content/Sprites4x/stackWindow/icons.png b/Mods/vcmi/Content/Sprites4x/stackWindow/icons.png new file mode 100644 index 000000000..95abe6c3c Binary files /dev/null and b/Mods/vcmi/Content/Sprites4x/stackWindow/icons.png differ diff --git a/Mods/vcmi/Video/tutorial/AbortSpell.webm b/Mods/vcmi/Content/Video/tutorial/AbortSpell.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/AbortSpell.webm rename to Mods/vcmi/Content/Video/tutorial/AbortSpell.webm diff --git a/Mods/vcmi/Video/tutorial/BattleDirection.webm b/Mods/vcmi/Content/Video/tutorial/BattleDirection.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/BattleDirection.webm rename to Mods/vcmi/Content/Video/tutorial/BattleDirection.webm diff --git a/Mods/vcmi/Video/tutorial/BattleDirectionAbort.webm b/Mods/vcmi/Content/Video/tutorial/BattleDirectionAbort.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/BattleDirectionAbort.webm rename to Mods/vcmi/Content/Video/tutorial/BattleDirectionAbort.webm diff --git a/Mods/vcmi/Video/tutorial/MapPanning.webm b/Mods/vcmi/Content/Video/tutorial/MapPanning.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/MapPanning.webm rename to Mods/vcmi/Content/Video/tutorial/MapPanning.webm diff --git a/Mods/vcmi/Video/tutorial/MapZooming.webm b/Mods/vcmi/Content/Video/tutorial/MapZooming.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/MapZooming.webm rename to Mods/vcmi/Content/Video/tutorial/MapZooming.webm diff --git a/Mods/vcmi/Video/tutorial/RadialWheel.webm b/Mods/vcmi/Content/Video/tutorial/RadialWheel.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/RadialWheel.webm rename to Mods/vcmi/Content/Video/tutorial/RadialWheel.webm diff --git a/Mods/vcmi/Video/tutorial/RightClick.webm b/Mods/vcmi/Content/Video/tutorial/RightClick.webm similarity index 100% rename from Mods/vcmi/Video/tutorial/RightClick.webm rename to Mods/vcmi/Content/Video/tutorial/RightClick.webm diff --git a/Mods/vcmi/config/chinese.json b/Mods/vcmi/Content/config/chinese.json similarity index 96% rename from Mods/vcmi/config/chinese.json rename to Mods/vcmi/Content/config/chinese.json index 67605102e..081d0d4d4 100644 --- a/Mods/vcmi/config/chinese.json +++ b/Mods/vcmi/Content/config/chinese.json @@ -28,6 +28,13 @@ "vcmi.adventureMap.movementPointsHeroInfo" : "(移动点数: %REMAINING / %POINTS)", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "抱歉,重放对手行动功能目前暂未实现!", + "vcmi.bonusSource.artifact" : "宝物", + "vcmi.bonusSource.creature" : "技能", + "vcmi.bonusSource.spell" : "法术", + "vcmi.bonusSource.hero" : "英雄", + "vcmi.bonusSource.commander" : "指挥官", + "vcmi.bonusSource.other" : "其他", + "vcmi.capitalColors.0" : "红色", "vcmi.capitalColors.1" : "蓝色", "vcmi.capitalColors.2" : "褐色", @@ -107,6 +114,12 @@ "vcmi.lobby.handicap.resource" : "给予玩家起始资源以外的更多资源,允许负值,但总量不会低于0(玩家永远不会能以负资源开始游戏)。", "vcmi.lobby.handicap.income" : "按百分比改变玩家的各种收入,向上取整。", "vcmi.lobby.handicap.growth" : "改变玩家拥有的城镇的生物增长率,向上取整。", + "vcmi.lobby.deleteUnsupportedSave" : "{检测到无法支持的存档}\n\nVCMI检测到%d个存档已不再受支持,这可能是由于 VCMI 版本不兼容导致的。\n\n你是否要删除这些存档?", + "vcmi.lobby.deleteSaveGameTitle" : "选择一个要删除的存档", + "vcmi.lobby.deleteMapTitle" : "选择一个要删除要删除的场景", + "vcmi.lobby.deleteFile" : "你确定要删除下列文件?", + "vcmi.lobby.deleteFolder" : "你确定要删除下列文件夹?", + "vcmi.lobby.deleteMode" : "切换删除模式并返回", "vcmi.lobby.login.title" : "VCMI大厅", "vcmi.lobby.login.username" : "用户名:", @@ -554,6 +567,8 @@ "core.seerhut.quest.reachDate.visit.4" : "关门直到%s。", "core.seerhut.quest.reachDate.visit.5" : "关门直到%s。", + "mapObject.core.hillFort.object.description" : "升级生物,1-4级生物升级比城镇中更便宜。", + "core.bonus.ADDITIONAL_ATTACK.name": "双击", "core.bonus.ADDITIONAL_ATTACK.description": "生物可以攻击两次", "core.bonus.ADDITIONAL_RETALIATION.name": "额外反击", @@ -709,5 +724,27 @@ "core.bonus.MECHANICAL.name": "机械", "core.bonus.MECHANICAL.description": "免疫大多数效果,可修复", "core.bonus.PRISM_HEX_ATTACK_BREATH.name": "棱光吐息", - "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "攻击后向三方向扩散攻击" + "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "攻击后向三方向扩散攻击", + + "spell.core.castleMoat.name" : "护城河", + "spell.core.castleMoatTrigger.name" : "护城河", + "spell.core.catapultShot.name" : "投石车射击", + "spell.core.cyclopsShot.name" : "攻城射击", + "spell.core.dungeonMoat.name" : "极热之油", + "spell.core.dungeonMoatTrigger.name" : "极热之油", + "spell.core.fireWallTrigger.name" : "烈火魔墙", + "spell.core.firstAid.name" : "急救术", + "spell.core.fortressMoat.name" : "焦油", + "spell.core.fortressMoatTrigger.name" : "焦油", + "spell.core.infernoMoat.name" : "熔岩", + "spell.core.infernoMoatTrigger.name" : "熔岩", + "spell.core.landMineTrigger.name" : "埋设地雷", + "spell.core.necropolisMoat.name" : "尸骨堆", + "spell.core.necropolisMoatTrigger.name" : "尸骨堆", + "spell.core.rampartMoat.name" : "护城河", + "spell.core.rampartMoatTrigger.name" : "护城河", + "spell.core.strongholdMoat.name" : "栅栏", + "spell.core.strongholdMoatTrigger.name" : "栅栏", + "spell.core.summonDemons.name" : "召唤恶鬼", + "spell.core.towerMoat.name" : "埋设地雷" } diff --git a/Mods/vcmi/config/czech.json b/Mods/vcmi/Content/config/czech.json similarity index 100% rename from Mods/vcmi/config/czech.json rename to Mods/vcmi/Content/config/czech.json diff --git a/Mods/vcmi/config/english.json b/Mods/vcmi/Content/config/english.json similarity index 100% rename from Mods/vcmi/config/english.json rename to Mods/vcmi/Content/config/english.json diff --git a/Mods/vcmi/config/french.json b/Mods/vcmi/Content/config/french.json similarity index 100% rename from Mods/vcmi/config/french.json rename to Mods/vcmi/Content/config/french.json diff --git a/Mods/vcmi/config/german.json b/Mods/vcmi/Content/config/german.json similarity index 100% rename from Mods/vcmi/config/german.json rename to Mods/vcmi/Content/config/german.json diff --git a/Mods/vcmi/config/polish.json b/Mods/vcmi/Content/config/polish.json similarity index 100% rename from Mods/vcmi/config/polish.json rename to Mods/vcmi/Content/config/polish.json diff --git a/Mods/vcmi/config/portuguese.json b/Mods/vcmi/Content/config/portuguese.json similarity index 100% rename from Mods/vcmi/config/portuguese.json rename to Mods/vcmi/Content/config/portuguese.json diff --git a/Mods/vcmi/config/rmg/hdmod/aroundamarsh.json b/Mods/vcmi/Content/config/rmg/hdmod/aroundamarsh.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/aroundamarsh.json rename to Mods/vcmi/Content/config/rmg/hdmod/aroundamarsh.json diff --git a/Mods/vcmi/config/rmg/hdmod/balance.json b/Mods/vcmi/Content/config/rmg/hdmod/balance.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/balance.json rename to Mods/vcmi/Content/config/rmg/hdmod/balance.json diff --git a/Mods/vcmi/config/rmg/hdmod/blockbuster.json b/Mods/vcmi/Content/config/rmg/hdmod/blockbuster.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/blockbuster.json rename to Mods/vcmi/Content/config/rmg/hdmod/blockbuster.json diff --git a/Mods/vcmi/config/rmg/hdmod/clashOfDragons.json b/Mods/vcmi/Content/config/rmg/hdmod/clashOfDragons.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/clashOfDragons.json rename to Mods/vcmi/Content/config/rmg/hdmod/clashOfDragons.json diff --git a/Mods/vcmi/config/rmg/hdmod/coldshadowsFantasy.json b/Mods/vcmi/Content/config/rmg/hdmod/coldshadowsFantasy.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/coldshadowsFantasy.json rename to Mods/vcmi/Content/config/rmg/hdmod/coldshadowsFantasy.json diff --git a/Mods/vcmi/config/rmg/hdmod/cube.json b/Mods/vcmi/Content/config/rmg/hdmod/cube.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/cube.json rename to Mods/vcmi/Content/config/rmg/hdmod/cube.json diff --git a/Mods/vcmi/config/rmg/hdmod/diamond.json b/Mods/vcmi/Content/config/rmg/hdmod/diamond.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/diamond.json rename to Mods/vcmi/Content/config/rmg/hdmod/diamond.json diff --git a/Mods/vcmi/config/rmg/hdmod/extreme.json b/Mods/vcmi/Content/config/rmg/hdmod/extreme.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/extreme.json rename to Mods/vcmi/Content/config/rmg/hdmod/extreme.json diff --git a/Mods/vcmi/config/rmg/hdmod/extreme2.json b/Mods/vcmi/Content/config/rmg/hdmod/extreme2.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/extreme2.json rename to Mods/vcmi/Content/config/rmg/hdmod/extreme2.json diff --git a/Mods/vcmi/config/rmg/hdmod/fear.json b/Mods/vcmi/Content/config/rmg/hdmod/fear.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/fear.json rename to Mods/vcmi/Content/config/rmg/hdmod/fear.json diff --git a/Mods/vcmi/config/rmg/hdmod/frozenDragons.json b/Mods/vcmi/Content/config/rmg/hdmod/frozenDragons.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/frozenDragons.json rename to Mods/vcmi/Content/config/rmg/hdmod/frozenDragons.json diff --git a/Mods/vcmi/config/rmg/hdmod/gimlisRevenge.json b/Mods/vcmi/Content/config/rmg/hdmod/gimlisRevenge.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/gimlisRevenge.json rename to Mods/vcmi/Content/config/rmg/hdmod/gimlisRevenge.json diff --git a/Mods/vcmi/config/rmg/hdmod/guerilla.json b/Mods/vcmi/Content/config/rmg/hdmod/guerilla.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/guerilla.json rename to Mods/vcmi/Content/config/rmg/hdmod/guerilla.json diff --git a/Mods/vcmi/config/rmg/hdmod/headquarters.json b/Mods/vcmi/Content/config/rmg/hdmod/headquarters.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/headquarters.json rename to Mods/vcmi/Content/config/rmg/hdmod/headquarters.json diff --git a/Mods/vcmi/config/rmg/hdmod/hypercube.json b/Mods/vcmi/Content/config/rmg/hdmod/hypercube.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/hypercube.json rename to Mods/vcmi/Content/config/rmg/hdmod/hypercube.json diff --git a/Mods/vcmi/config/rmg/hdmod/jebusCross.json b/Mods/vcmi/Content/config/rmg/hdmod/jebusCross.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/jebusCross.json rename to Mods/vcmi/Content/config/rmg/hdmod/jebusCross.json diff --git a/Mods/vcmi/config/rmg/hdmod/longRun.json b/Mods/vcmi/Content/config/rmg/hdmod/longRun.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/longRun.json rename to Mods/vcmi/Content/config/rmg/hdmod/longRun.json diff --git a/Mods/vcmi/config/rmg/hdmod/marathon.json b/Mods/vcmi/Content/config/rmg/hdmod/marathon.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/marathon.json rename to Mods/vcmi/Content/config/rmg/hdmod/marathon.json diff --git a/Mods/vcmi/config/rmg/hdmod/miniNostalgia.json b/Mods/vcmi/Content/config/rmg/hdmod/miniNostalgia.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/miniNostalgia.json rename to Mods/vcmi/Content/config/rmg/hdmod/miniNostalgia.json diff --git a/Mods/vcmi/config/rmg/hdmod/nostalgia.json b/Mods/vcmi/Content/config/rmg/hdmod/nostalgia.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/nostalgia.json rename to Mods/vcmi/Content/config/rmg/hdmod/nostalgia.json diff --git a/Mods/vcmi/config/rmg/hdmod/oceansEleven.json b/Mods/vcmi/Content/config/rmg/hdmod/oceansEleven.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/oceansEleven.json rename to Mods/vcmi/Content/config/rmg/hdmod/oceansEleven.json diff --git a/Mods/vcmi/config/rmg/hdmod/panic.json b/Mods/vcmi/Content/config/rmg/hdmod/panic.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/panic.json rename to Mods/vcmi/Content/config/rmg/hdmod/panic.json diff --git a/Mods/vcmi/config/rmg/hdmod/poorJebus.json b/Mods/vcmi/Content/config/rmg/hdmod/poorJebus.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/poorJebus.json rename to Mods/vcmi/Content/config/rmg/hdmod/poorJebus.json diff --git a/Mods/vcmi/config/rmg/hdmod/reckless.json b/Mods/vcmi/Content/config/rmg/hdmod/reckless.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/reckless.json rename to Mods/vcmi/Content/config/rmg/hdmod/reckless.json diff --git a/Mods/vcmi/config/rmg/hdmod/roadrunner.json b/Mods/vcmi/Content/config/rmg/hdmod/roadrunner.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/roadrunner.json rename to Mods/vcmi/Content/config/rmg/hdmod/roadrunner.json diff --git a/Mods/vcmi/config/rmg/hdmod/shaaafworld.json b/Mods/vcmi/Content/config/rmg/hdmod/shaaafworld.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/shaaafworld.json rename to Mods/vcmi/Content/config/rmg/hdmod/shaaafworld.json diff --git a/Mods/vcmi/config/rmg/hdmod/skirmish.json b/Mods/vcmi/Content/config/rmg/hdmod/skirmish.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/skirmish.json rename to Mods/vcmi/Content/config/rmg/hdmod/skirmish.json diff --git a/Mods/vcmi/config/rmg/hdmod/speed1.json b/Mods/vcmi/Content/config/rmg/hdmod/speed1.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/speed1.json rename to Mods/vcmi/Content/config/rmg/hdmod/speed1.json diff --git a/Mods/vcmi/config/rmg/hdmod/speed2.json b/Mods/vcmi/Content/config/rmg/hdmod/speed2.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/speed2.json rename to Mods/vcmi/Content/config/rmg/hdmod/speed2.json diff --git a/Mods/vcmi/config/rmg/hdmod/spider.json b/Mods/vcmi/Content/config/rmg/hdmod/spider.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/spider.json rename to Mods/vcmi/Content/config/rmg/hdmod/spider.json diff --git a/Mods/vcmi/config/rmg/hdmod/superslam.json b/Mods/vcmi/Content/config/rmg/hdmod/superslam.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/superslam.json rename to Mods/vcmi/Content/config/rmg/hdmod/superslam.json diff --git a/Mods/vcmi/config/rmg/hdmod/triad.json b/Mods/vcmi/Content/config/rmg/hdmod/triad.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/triad.json rename to Mods/vcmi/Content/config/rmg/hdmod/triad.json diff --git a/Mods/vcmi/config/rmg/hdmod/vortex.json b/Mods/vcmi/Content/config/rmg/hdmod/vortex.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmod/vortex.json rename to Mods/vcmi/Content/config/rmg/hdmod/vortex.json diff --git a/Mods/vcmi/config/rmg/hdmodUnused/anarchy.json b/Mods/vcmi/Content/config/rmg/hdmodUnused/anarchy.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmodUnused/anarchy.json rename to Mods/vcmi/Content/config/rmg/hdmodUnused/anarchy.json diff --git a/Mods/vcmi/config/rmg/hdmodUnused/balance m+u 200%.json b/Mods/vcmi/Content/config/rmg/hdmodUnused/balance m+u 200%.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmodUnused/balance m+u 200%.json rename to Mods/vcmi/Content/config/rmg/hdmodUnused/balance m+u 200%.json diff --git a/Mods/vcmi/config/rmg/hdmodUnused/midnightMix.json b/Mods/vcmi/Content/config/rmg/hdmodUnused/midnightMix.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmodUnused/midnightMix.json rename to Mods/vcmi/Content/config/rmg/hdmodUnused/midnightMix.json diff --git a/Mods/vcmi/config/rmg/hdmodUnused/skirmish m-u 200%.json b/Mods/vcmi/Content/config/rmg/hdmodUnused/skirmish m-u 200%.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmodUnused/skirmish m-u 200%.json rename to Mods/vcmi/Content/config/rmg/hdmodUnused/skirmish m-u 200%.json diff --git a/Mods/vcmi/config/rmg/hdmodUnused/true random.json b/Mods/vcmi/Content/config/rmg/hdmodUnused/true random.json similarity index 100% rename from Mods/vcmi/config/rmg/hdmodUnused/true random.json rename to Mods/vcmi/Content/config/rmg/hdmodUnused/true random.json diff --git a/Mods/vcmi/config/rmg/heroes3/dwarvenTunnels.json b/Mods/vcmi/Content/config/rmg/heroes3/dwarvenTunnels.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/dwarvenTunnels.json rename to Mods/vcmi/Content/config/rmg/heroes3/dwarvenTunnels.json diff --git a/Mods/vcmi/config/rmg/heroes3/golemsAplenty.json b/Mods/vcmi/Content/config/rmg/heroes3/golemsAplenty.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/golemsAplenty.json rename to Mods/vcmi/Content/config/rmg/heroes3/golemsAplenty.json diff --git a/Mods/vcmi/config/rmg/heroes3/meetingInMuzgob.json b/Mods/vcmi/Content/config/rmg/heroes3/meetingInMuzgob.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/meetingInMuzgob.json rename to Mods/vcmi/Content/config/rmg/heroes3/meetingInMuzgob.json diff --git a/Mods/vcmi/config/rmg/heroes3/monksRetreat.json b/Mods/vcmi/Content/config/rmg/heroes3/monksRetreat.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/monksRetreat.json rename to Mods/vcmi/Content/config/rmg/heroes3/monksRetreat.json diff --git a/Mods/vcmi/config/rmg/heroes3/newcomers.json b/Mods/vcmi/Content/config/rmg/heroes3/newcomers.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/newcomers.json rename to Mods/vcmi/Content/config/rmg/heroes3/newcomers.json diff --git a/Mods/vcmi/config/rmg/heroes3/readyOrNot.json b/Mods/vcmi/Content/config/rmg/heroes3/readyOrNot.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/readyOrNot.json rename to Mods/vcmi/Content/config/rmg/heroes3/readyOrNot.json diff --git a/Mods/vcmi/config/rmg/heroes3/smallRing.json b/Mods/vcmi/Content/config/rmg/heroes3/smallRing.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/smallRing.json rename to Mods/vcmi/Content/config/rmg/heroes3/smallRing.json diff --git a/Mods/vcmi/config/rmg/heroes3/southOfHell.json b/Mods/vcmi/Content/config/rmg/heroes3/southOfHell.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/southOfHell.json rename to Mods/vcmi/Content/config/rmg/heroes3/southOfHell.json diff --git a/Mods/vcmi/config/rmg/heroes3/worldsAtWar.json b/Mods/vcmi/Content/config/rmg/heroes3/worldsAtWar.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3/worldsAtWar.json rename to Mods/vcmi/Content/config/rmg/heroes3/worldsAtWar.json diff --git a/Mods/vcmi/config/rmg/heroes3unused/dragon.json b/Mods/vcmi/Content/config/rmg/heroes3unused/dragon.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3unused/dragon.json rename to Mods/vcmi/Content/config/rmg/heroes3unused/dragon.json diff --git a/Mods/vcmi/config/rmg/heroes3unused/gauntlet.json b/Mods/vcmi/Content/config/rmg/heroes3unused/gauntlet.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3unused/gauntlet.json rename to Mods/vcmi/Content/config/rmg/heroes3unused/gauntlet.json diff --git a/Mods/vcmi/config/rmg/heroes3unused/ring.json b/Mods/vcmi/Content/config/rmg/heroes3unused/ring.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3unused/ring.json rename to Mods/vcmi/Content/config/rmg/heroes3unused/ring.json diff --git a/Mods/vcmi/config/rmg/heroes3unused/riseOfPhoenix.json b/Mods/vcmi/Content/config/rmg/heroes3unused/riseOfPhoenix.json similarity index 100% rename from Mods/vcmi/config/rmg/heroes3unused/riseOfPhoenix.json rename to Mods/vcmi/Content/config/rmg/heroes3unused/riseOfPhoenix.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm0k.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm0k.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm0k.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm0k.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2a.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2a.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2a.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2a.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2b(2).json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2b(2).json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2b(2).json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2b(2).json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2b.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2b.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2b.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2b.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2c.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2c.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2c.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2c.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2f(2).json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2f(2).json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2f(2).json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2f(2).json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2f.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2f.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2f.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2f.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2h(2).json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2h(2).json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2h(2).json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2h(2).json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2h.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2h.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2h.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2h.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2i(2).json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2i(2).json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2i(2).json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2i(2).json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm2i.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm2i.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm2i.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm2i.json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm4d(2).json b/Mods/vcmi/Content/config/rmg/symmetric/2sm4d(2).json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm4d(2).json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm4d(2).json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm4d(3).json b/Mods/vcmi/Content/config/rmg/symmetric/2sm4d(3).json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm4d(3).json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm4d(3).json diff --git a/Mods/vcmi/config/rmg/symmetric/2sm4d.json b/Mods/vcmi/Content/config/rmg/symmetric/2sm4d.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/2sm4d.json rename to Mods/vcmi/Content/config/rmg/symmetric/2sm4d.json diff --git a/Mods/vcmi/config/rmg/symmetric/3sb0b.json b/Mods/vcmi/Content/config/rmg/symmetric/3sb0b.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/3sb0b.json rename to Mods/vcmi/Content/config/rmg/symmetric/3sb0b.json diff --git a/Mods/vcmi/config/rmg/symmetric/3sb0c.json b/Mods/vcmi/Content/config/rmg/symmetric/3sb0c.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/3sb0c.json rename to Mods/vcmi/Content/config/rmg/symmetric/3sb0c.json diff --git a/Mods/vcmi/config/rmg/symmetric/3sm3d.json b/Mods/vcmi/Content/config/rmg/symmetric/3sm3d.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/3sm3d.json rename to Mods/vcmi/Content/config/rmg/symmetric/3sm3d.json diff --git a/Mods/vcmi/config/rmg/symmetric/4sm0d.json b/Mods/vcmi/Content/config/rmg/symmetric/4sm0d.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/4sm0d.json rename to Mods/vcmi/Content/config/rmg/symmetric/4sm0d.json diff --git a/Mods/vcmi/config/rmg/symmetric/4sm0f.json b/Mods/vcmi/Content/config/rmg/symmetric/4sm0f.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/4sm0f.json rename to Mods/vcmi/Content/config/rmg/symmetric/4sm0f.json diff --git a/Mods/vcmi/config/rmg/symmetric/4sm0g.json b/Mods/vcmi/Content/config/rmg/symmetric/4sm0g.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/4sm0g.json rename to Mods/vcmi/Content/config/rmg/symmetric/4sm0g.json diff --git a/Mods/vcmi/config/rmg/symmetric/4sm4e.json b/Mods/vcmi/Content/config/rmg/symmetric/4sm4e.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/4sm4e.json rename to Mods/vcmi/Content/config/rmg/symmetric/4sm4e.json diff --git a/Mods/vcmi/config/rmg/symmetric/5sb0a.json b/Mods/vcmi/Content/config/rmg/symmetric/5sb0a.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/5sb0a.json rename to Mods/vcmi/Content/config/rmg/symmetric/5sb0a.json diff --git a/Mods/vcmi/config/rmg/symmetric/5sb0b.json b/Mods/vcmi/Content/config/rmg/symmetric/5sb0b.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/5sb0b.json rename to Mods/vcmi/Content/config/rmg/symmetric/5sb0b.json diff --git a/Mods/vcmi/config/rmg/symmetric/6lm10.json b/Mods/vcmi/Content/config/rmg/symmetric/6lm10.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/6lm10.json rename to Mods/vcmi/Content/config/rmg/symmetric/6lm10.json diff --git a/Mods/vcmi/config/rmg/symmetric/6lm10a.json b/Mods/vcmi/Content/config/rmg/symmetric/6lm10a.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/6lm10a.json rename to Mods/vcmi/Content/config/rmg/symmetric/6lm10a.json diff --git a/Mods/vcmi/config/rmg/symmetric/6sm0b.json b/Mods/vcmi/Content/config/rmg/symmetric/6sm0b.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/6sm0b.json rename to Mods/vcmi/Content/config/rmg/symmetric/6sm0b.json diff --git a/Mods/vcmi/config/rmg/symmetric/6sm0d.json b/Mods/vcmi/Content/config/rmg/symmetric/6sm0d.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/6sm0d.json rename to Mods/vcmi/Content/config/rmg/symmetric/6sm0d.json diff --git a/Mods/vcmi/config/rmg/symmetric/6sm0e.json b/Mods/vcmi/Content/config/rmg/symmetric/6sm0e.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/6sm0e.json rename to Mods/vcmi/Content/config/rmg/symmetric/6sm0e.json diff --git a/Mods/vcmi/config/rmg/symmetric/7sb0b.json b/Mods/vcmi/Content/config/rmg/symmetric/7sb0b.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/7sb0b.json rename to Mods/vcmi/Content/config/rmg/symmetric/7sb0b.json diff --git a/Mods/vcmi/config/rmg/symmetric/7sb0c.json b/Mods/vcmi/Content/config/rmg/symmetric/7sb0c.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/7sb0c.json rename to Mods/vcmi/Content/config/rmg/symmetric/7sb0c.json diff --git a/Mods/vcmi/config/rmg/symmetric/8mm0e.json b/Mods/vcmi/Content/config/rmg/symmetric/8mm0e.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8mm0e.json rename to Mods/vcmi/Content/config/rmg/symmetric/8mm0e.json diff --git a/Mods/vcmi/config/rmg/symmetric/8mm6.json b/Mods/vcmi/Content/config/rmg/symmetric/8mm6.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8mm6.json rename to Mods/vcmi/Content/config/rmg/symmetric/8mm6.json diff --git a/Mods/vcmi/config/rmg/symmetric/8mm6a.json b/Mods/vcmi/Content/config/rmg/symmetric/8mm6a.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8mm6a.json rename to Mods/vcmi/Content/config/rmg/symmetric/8mm6a.json diff --git a/Mods/vcmi/config/rmg/symmetric/8sm0c.json b/Mods/vcmi/Content/config/rmg/symmetric/8sm0c.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8sm0c.json rename to Mods/vcmi/Content/config/rmg/symmetric/8sm0c.json diff --git a/Mods/vcmi/config/rmg/symmetric/8sm0f.json b/Mods/vcmi/Content/config/rmg/symmetric/8sm0f.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8sm0f.json rename to Mods/vcmi/Content/config/rmg/symmetric/8sm0f.json diff --git a/Mods/vcmi/config/rmg/symmetric/8xm12.json b/Mods/vcmi/Content/config/rmg/symmetric/8xm12.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8xm12.json rename to Mods/vcmi/Content/config/rmg/symmetric/8xm12.json diff --git a/Mods/vcmi/config/rmg/symmetric/8xm12a.json b/Mods/vcmi/Content/config/rmg/symmetric/8xm12a.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8xm12a.json rename to Mods/vcmi/Content/config/rmg/symmetric/8xm12a.json diff --git a/Mods/vcmi/config/rmg/symmetric/8xm8.json b/Mods/vcmi/Content/config/rmg/symmetric/8xm8.json similarity index 100% rename from Mods/vcmi/config/rmg/symmetric/8xm8.json rename to Mods/vcmi/Content/config/rmg/symmetric/8xm8.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/2mm2h.json b/Mods/vcmi/Content/config/rmg/unknownUnused/2mm2h.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/2mm2h.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/2mm2h.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/2x2sm4d(3).json b/Mods/vcmi/Content/config/rmg/unknownUnused/2x2sm4d(3).json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/2x2sm4d(3).json rename to Mods/vcmi/Content/config/rmg/unknownUnused/2x2sm4d(3).json diff --git a/Mods/vcmi/config/rmg/unknownUnused/4mm2h.json b/Mods/vcmi/Content/config/rmg/unknownUnused/4mm2h.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/4mm2h.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/4mm2h.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/4sm3i.json b/Mods/vcmi/Content/config/rmg/unknownUnused/4sm3i.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/4sm3i.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/4sm3i.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/6lm10a.json b/Mods/vcmi/Content/config/rmg/unknownUnused/6lm10a.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/6lm10a.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/6lm10a.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/8xm12 huge.json b/Mods/vcmi/Content/config/rmg/unknownUnused/8xm12 huge.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/8xm12 huge.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/8xm12 huge.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/8xm8 huge.json b/Mods/vcmi/Content/config/rmg/unknownUnused/8xm8 huge.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/8xm8 huge.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/8xm8 huge.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/analogy.json b/Mods/vcmi/Content/config/rmg/unknownUnused/analogy.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/analogy.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/analogy.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/cross.json b/Mods/vcmi/Content/config/rmg/unknownUnused/cross.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/cross.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/cross.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/cross2.json b/Mods/vcmi/Content/config/rmg/unknownUnused/cross2.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/cross2.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/cross2.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/cross3.json b/Mods/vcmi/Content/config/rmg/unknownUnused/cross3.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/cross3.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/cross3.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/deux paires.json b/Mods/vcmi/Content/config/rmg/unknownUnused/deux paires.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/deux paires.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/deux paires.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/doubled 8mm6.json b/Mods/vcmi/Content/config/rmg/unknownUnused/doubled 8mm6.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/doubled 8mm6.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/doubled 8mm6.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/elka.json b/Mods/vcmi/Content/config/rmg/unknownUnused/elka.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/elka.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/elka.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/goldenRing.json b/Mods/vcmi/Content/config/rmg/unknownUnused/goldenRing.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/goldenRing.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/goldenRing.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/greatSands.json b/Mods/vcmi/Content/config/rmg/unknownUnused/greatSands.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/greatSands.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/greatSands.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/kite.json b/Mods/vcmi/Content/config/rmg/unknownUnused/kite.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/kite.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/kite.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/upgrade.json b/Mods/vcmi/Content/config/rmg/unknownUnused/upgrade.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/upgrade.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/upgrade.json diff --git a/Mods/vcmi/config/rmg/unknownUnused/wheel.json b/Mods/vcmi/Content/config/rmg/unknownUnused/wheel.json similarity index 100% rename from Mods/vcmi/config/rmg/unknownUnused/wheel.json rename to Mods/vcmi/Content/config/rmg/unknownUnused/wheel.json diff --git a/Mods/vcmi/config/russian.json b/Mods/vcmi/Content/config/russian.json similarity index 100% rename from Mods/vcmi/config/russian.json rename to Mods/vcmi/Content/config/russian.json diff --git a/Mods/vcmi/config/spanish.json b/Mods/vcmi/Content/config/spanish.json similarity index 100% rename from Mods/vcmi/config/spanish.json rename to Mods/vcmi/Content/config/spanish.json diff --git a/Mods/vcmi/config/spells.json b/Mods/vcmi/Content/config/spells.json similarity index 100% rename from Mods/vcmi/config/spells.json rename to Mods/vcmi/Content/config/spells.json diff --git a/Mods/vcmi/config/swedish.json b/Mods/vcmi/Content/config/swedish.json similarity index 95% rename from Mods/vcmi/config/swedish.json rename to Mods/vcmi/Content/config/swedish.json index e981350dc..3c65868c5 100644 --- a/Mods/vcmi/config/swedish.json +++ b/Mods/vcmi/Content/config/swedish.json @@ -28,6 +28,13 @@ "vcmi.adventureMap.movementPointsHeroInfo" : "(Förflyttningspoäng: %REMAINING / %POINTS)", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Tyvärr, att spela om motståndarens tur är inte implementerat ännu!", + "vcmi.bonusSource.artifact" : "Artefakt", + "vcmi.bonusSource.creature" : "Förmåga", + "vcmi.bonusSource.spell" : "Trollformel", + "vcmi.bonusSource.hero" : "Hjälte", + "vcmi.bonusSource.commander": "Befälhavare", + "vcmi.bonusSource.other" : "Annan", + "vcmi.capitalColors.0" : "Röd", "vcmi.capitalColors.1" : "Blå", "vcmi.capitalColors.2" : "Ljusbrun", @@ -42,6 +49,12 @@ "vcmi.heroOverview.secondarySkills" : "Sekundärförmågor", "vcmi.heroOverview.spells" : "Trollformler", + "vcmi.quickExchange.moveUnit" : "Flytta enhet", + "vcmi.quickExchange.moveAllUnits" : "Flytta alla enheter", + "vcmi.quickExchange.swapAllUnits" : "Byt arméer", + "vcmi.quickExchange.moveAllArtifacts": "Flytta alla artefakter", + "vcmi.quickExchange.swapAllArtifacts": "Byt artefakter", + "vcmi.radialWheel.mergeSameUnit" : "Slå samman varelser av samma sort", "vcmi.radialWheel.fillSingleUnit" : "Fyll på med enstaka varelser", "vcmi.radialWheel.splitSingleUnit" : "Dela av en enda varelse", @@ -61,6 +74,16 @@ "vcmi.radialWheel.moveDown" : "Flytta nedåt", "vcmi.radialWheel.moveBottom" : "Flytta längst ner", + "vcmi.randomMap.description" : "Kartan skapades av den slumpmässiga kartgeneratorn.\nMallen var %s, storlek %dx%d, nivåer %d, spelare %d, datorspelare %d, vatten %s, monster %s, VCMI karta", + "vcmi.randomMap.description.isHuman" : ", %s är människa", + "vcmi.randomMap.description.townChoice" : ", %s valde stadstyp: %s", + "vcmi.randomMap.description.water.none" : "inget", + "vcmi.randomMap.description.water.normal" : "normalt", + "vcmi.randomMap.description.water.islands" : "öar", + "vcmi.randomMap.description.monster.weak" : "svaga", + "vcmi.randomMap.description.monster.normal": "normala", + "vcmi.randomMap.description.monster.strong": "starka", + "vcmi.spellBook.search" : "sök...", "vcmi.spellResearch.canNotAfford" : "Du har inte råd att byta ut '{%SPELL1}' med '{%SPELL2}'. Du kan fortfarande göra dig av med den här trollformeln och forska vidare.", @@ -69,6 +92,7 @@ "vcmi.spellResearch.research" : "Forska fram denna trollformel", "vcmi.spellResearch.skip" : "Strunta i denna trollformel", "vcmi.spellResearch.abort" : "Avbryt", + "vcmi.spellResearch.noMoreSpells" : "Det finns inga fler trollformler tillgängliga för forskning.", "vcmi.mainMenu.serverConnecting" : "Ansluter...", "vcmi.mainMenu.serverAddressEnter" : "Ange adress:", @@ -90,6 +114,12 @@ "vcmi.lobby.handicap.resource" : "Ger spelarna lämpliga resurser att börja med utöver de normala startresurserna. Negativa värden är tillåtna men är begränsade till 0 totalt (spelaren börjar aldrig med negativa resurser).", "vcmi.lobby.handicap.income" : "Ändrar spelarens olika inkomster i procent (resultaten avrundas uppåt).", "vcmi.lobby.handicap.growth" : "Ändrar tillväxttakten för varelser i de städer som ägs av spelaren (resultaten avrundas uppåt).", + "vcmi.lobby.deleteUnsupportedSave": "{Ostödda sparningar av spel hittades}\n\nVCMI har hittat %d sparade spelfiler som inte längre stöds, möjligen på grund av skillnader i VCMI-versioner.\n\nVill du ta bort dem?", + "vcmi.lobby.deleteSaveGameTitle" : "Välj ett sparat spel som ska raderas", + "vcmi.lobby.deleteMapTitle" : "Välj ett scenario som ska raderas", + "vcmi.lobby.deleteFile" : "Vill du radera följande fil?", + "vcmi.lobby.deleteFolder" : "Vill du radera följande mapp?", + "vcmi.lobby.deleteMode" : "Växla till raderingsläge och tillbaka", "vcmi.lobby.login.title" : "VCMI Online Lobby", "vcmi.lobby.login.username" : "Användarnamn:", @@ -159,6 +189,7 @@ "vcmi.server.errors.modsToEnable" : "{Följande modd(ar) krävs}", "vcmi.server.errors.modsToDisable" : "{Följande modd(ar) måste inaktiveras}", "vcmi.server.errors.modNoDependency" : "Misslyckades med att ladda modd {'%s'}!\n Den är beroende av modd {'%s'} som inte är aktiverad!\n", + "vcmi.server.errors.modDependencyLoop": "Misslyckades med att ladda modd {'%s'}!\n Den kanske är i en (mjuk) beroendeloop.", "vcmi.server.errors.modConflict" : "Misslyckades med att ladda modd {'%s'}!\n Konflikter med aktiverad modd {'%s'}!\n", "vcmi.server.errors.unknownEntity" : "Misslyckades med att ladda sparat spel! Okänd enhet '%s' hittades i sparat spel! Sparningen kanske inte är kompatibel med den aktuella versionen av moddarna!", @@ -536,6 +567,8 @@ "core.seerhut.quest.reachDate.visit.4" : "Stängt fram till %s.", "core.seerhut.quest.reachDate.visit.5" : "Stängt fram till %s.", + "mapObject.core.hillFort.object.description" : "Uppgraderar varelser. Nivåerna 1 - 4 är billigare än i associerad stad.", + "core.bonus.ADDITIONAL_ATTACK.name" : "Dubbelslag", "core.bonus.ADDITIONAL_ATTACK.description" : "Attackerar två gånger.", "core.bonus.ADDITIONAL_RETALIATION.name" : "Ytterligare motattacker", @@ -687,5 +720,9 @@ "core.bonus.DISINTEGRATE.name" : "Desintegrerar", "core.bonus.DISINTEGRATE.description" : "Ingen kropp lämnas kvar på slagfältet.", "core.bonus.INVINCIBLE.name" : "Oövervinnerlig", - "core.bonus.INVINCIBLE.description" : "Kan inte påverkas av någonting." + "core.bonus.INVINCIBLE.description" : "Kan inte påverkas av någonting.", + "core.bonus.MECHANICAL.name" : "Mekanisk", + "core.bonus.MECHANICAL.description" : "Immun mot många effekter, reparerbar.", + "core.bonus.PRISM_HEX_ATTACK_BREATH.name" : "Prism-andedräkt", + "core.bonus.PRISM_HEX_ATTACK_BREATH.description" : "Treriktad andedräkt." } diff --git a/Mods/vcmi/config/towerCreature.json b/Mods/vcmi/Content/config/towerCreature.json similarity index 100% rename from Mods/vcmi/config/towerCreature.json rename to Mods/vcmi/Content/config/towerCreature.json diff --git a/Mods/vcmi/config/towerFactions.json b/Mods/vcmi/Content/config/towerFactions.json similarity index 100% rename from Mods/vcmi/config/towerFactions.json rename to Mods/vcmi/Content/config/towerFactions.json diff --git a/Mods/vcmi/config/ukrainian.json b/Mods/vcmi/Content/config/ukrainian.json similarity index 100% rename from Mods/vcmi/config/ukrainian.json rename to Mods/vcmi/Content/config/ukrainian.json diff --git a/Mods/vcmi/config/vietnamese.json b/Mods/vcmi/Content/config/vietnamese.json similarity index 100% rename from Mods/vcmi/config/vietnamese.json rename to Mods/vcmi/Content/config/vietnamese.json diff --git a/Mods/vcmi/Data/settingsWindow/gear.png b/Mods/vcmi/Data/settingsWindow/gear.png deleted file mode 100644 index c5974983e..000000000 Binary files a/Mods/vcmi/Data/settingsWindow/gear.png and /dev/null differ diff --git a/Mods/vcmi/Sprites/QuickRecruitmentWindow/CreaturePurchaseCard.png b/Mods/vcmi/Sprites/QuickRecruitmentWindow/CreaturePurchaseCard.png deleted file mode 100644 index 5d7bfbfef..000000000 Binary files a/Mods/vcmi/Sprites/QuickRecruitmentWindow/CreaturePurchaseCard.png and /dev/null differ diff --git a/Mods/vcmi/Sprites/vcmi/battleQueue/defendBig.png b/Mods/vcmi/Sprites/vcmi/battleQueue/defendBig.png deleted file mode 100644 index ef9022ca6..000000000 Binary files a/Mods/vcmi/Sprites/vcmi/battleQueue/defendBig.png and /dev/null differ diff --git a/Mods/vcmi/Sprites/vcmi/battleQueue/defendSmall.png b/Mods/vcmi/Sprites/vcmi/battleQueue/defendSmall.png deleted file mode 100644 index b22a1b5d6..000000000 Binary files a/Mods/vcmi/Sprites/vcmi/battleQueue/defendSmall.png and /dev/null differ diff --git a/Mods/vcmi/Sprites/vcmi/battleQueue/statesBig.json b/Mods/vcmi/Sprites/vcmi/battleQueue/statesBig.json deleted file mode 100644 index e8383883c..000000000 --- a/Mods/vcmi/Sprites/vcmi/battleQueue/statesBig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "basepath": "vcmi/battleQueue/", - "images" : - [ - { "frame" : 0, "file" : "defendBig"}, - { "frame" : 1, "file" : "waitBig"} - ] -} diff --git a/Mods/vcmi/Sprites/vcmi/battleQueue/statesSmall.json b/Mods/vcmi/Sprites/vcmi/battleQueue/statesSmall.json deleted file mode 100644 index 796657130..000000000 --- a/Mods/vcmi/Sprites/vcmi/battleQueue/statesSmall.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "basepath": "vcmi/battleQueue/", - "images" : - [ - { "frame" : 0, "file" : "defendSmall"}, - { "frame" : 1, "file" : "waitSmall"} - ] -} diff --git a/Mods/vcmi/Sprites/vcmi/battleQueue/waitBig.png b/Mods/vcmi/Sprites/vcmi/battleQueue/waitBig.png deleted file mode 100644 index ed0b70ae6..000000000 Binary files a/Mods/vcmi/Sprites/vcmi/battleQueue/waitBig.png and /dev/null differ diff --git a/Mods/vcmi/Sprites/vcmi/battleQueue/waitSmall.png b/Mods/vcmi/Sprites/vcmi/battleQueue/waitSmall.png deleted file mode 100644 index da6ebed50..000000000 Binary files a/Mods/vcmi/Sprites/vcmi/battleQueue/waitSmall.png and /dev/null differ diff --git a/Mods/vcmi/mod.json b/Mods/vcmi/mod.json index b561b666f..0d1d6b65d 100644 --- a/Mods/vcmi/mod.json +++ b/Mods/vcmi/mod.json @@ -214,33 +214,5 @@ "config/rmg/symmetric/8xm12.JSON", "config/rmg/symmetric/8xm12a.JSON", "config/rmg/symmetric/8xm8.JSON" - ], - - "filesystem": - { - "CONFIG/" : - [ - {"type" : "dir", "path" : "/Config"} - ], - "DATA/" : - [ - {"type" : "dir", "path" : "/Data"} - ], - "SPRITES/": - [ - {"type" : "dir", "path" : "/Sprites"} - ], - "MAPS/": - [ - {"type" : "dir", "path" : "/Maps"} - ], - "SOUNDS/": - [ - {"type" : "dir", "path" : "/Sounds"} - ], - "VIDEO/": - [ - {"type" : "dir", "path" : "/Video"} - ] - } + ] } diff --git a/client/adventureMap/CList.cpp b/client/adventureMap/CList.cpp index 121853931..d25a612a3 100644 --- a/client/adventureMap/CList.cpp +++ b/client/adventureMap/CList.cpp @@ -450,7 +450,7 @@ void CTownList::CTownItem::open() void CTownList::CTownItem::showTooltip() { - CRClickPopup::createAndPush(town, GH.getCursorPosition()); + CRClickPopup::createAndPush(town, pos.center()); } void CTownList::CTownItem::gesture(bool on, const Point & initialPosition, const Point & finalPosition) diff --git a/client/battle/BattleInterfaceClasses.cpp b/client/battle/BattleInterfaceClasses.cpp index b7622316c..f9dde7e68 100644 --- a/client/battle/BattleInterfaceClasses.cpp +++ b/client/battle/BattleInterfaceClasses.cpp @@ -1066,11 +1066,13 @@ StackQueue::StackBox::StackBox(StackQueue * owner): roundRect = std::make_shared(Rect(0, 0, 15, 18), ColorRGBA(0, 0, 0, 255), ColorRGBA(241, 216, 120, 255)); round = std::make_shared(4, 2, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE); - int icon_x = pos.w - 17; - int icon_y = pos.h - 18; + Point iconPos(pos.w - 16, pos.h - 16); - stateIcon = std::make_shared(AnimationPath::builtin("VCMI/BATTLEQUEUE/STATESSMALL"), 0, 0, icon_x, icon_y); - stateIcon->visible = false; + defendIcon = std::make_shared(ImagePath::builtin("battle/QueueDefend"), iconPos); + waitIcon = std::make_shared(ImagePath::builtin("battle/QueueWait"), iconPos); + + defendIcon->setEnabled(false); + waitIcon->setEnabled(false); } roundRect->disable(); } @@ -1106,22 +1108,13 @@ void StackQueue::StackBox::setUnit(const battle::Unit * unit, size_t turn, std:: round->setText(tmp); } - if(stateIcon) + if(!owner->embedded) { - if(unit->defended((int)turn) || (turn > 0 && unit->defended((int)turn - 1))) - { - stateIcon->setFrame(0, 0); - stateIcon->visible = true; - } - else if(unit->waited((int)turn)) - { - stateIcon->setFrame(1, 0); - stateIcon->visible = true; - } - else - { - stateIcon->visible = false; - } + bool defended = unit->defended(turn) || (turn > 0 && unit->defended(turn - 1)); + bool waited = unit->waited(turn) && !defended; + + defendIcon->setEnabled(defended); + waitIcon->setEnabled(waited); } } else @@ -1131,9 +1124,11 @@ void StackQueue::StackBox::setUnit(const battle::Unit * unit, size_t turn, std:: icon->visible = false; icon->setFrame(0); amount->setText(""); - - if(stateIcon) - stateIcon->visible = false; + if(!owner->embedded) + { + defendIcon->setEnabled(false); + waitIcon->setEnabled(false); + } } } diff --git a/client/battle/BattleInterfaceClasses.h b/client/battle/BattleInterfaceClasses.h index 819ed3504..9465502bc 100644 --- a/client/battle/BattleInterfaceClasses.h +++ b/client/battle/BattleInterfaceClasses.h @@ -260,7 +260,8 @@ class StackQueue : public CIntObject std::shared_ptr background; std::shared_ptr icon; std::shared_ptr amount; - std::shared_ptr stateIcon; + std::shared_ptr waitIcon; + std::shared_ptr defendIcon; std::shared_ptr round; std::shared_ptr roundRect; diff --git a/client/lobby/RandomMapTab.cpp b/client/lobby/RandomMapTab.cpp index bf25bedbc..9555a7045 100644 --- a/client/lobby/RandomMapTab.cpp +++ b/client/lobby/RandomMapTab.cpp @@ -469,6 +469,8 @@ TeamAlignmentsWidget::TeamAlignmentsWidget(RandomMapTab & randomMapTab): variables["totalPlayers"].Integer() = totalPlayers; pos.w = variables["windowSize"]["x"].Integer() + totalPlayers * variables["cellMargin"]["x"].Integer(); + auto widthExtend = std::max(pos.w, 220) - pos.w; // too small for buttons + pos.w += widthExtend; pos.h = variables["windowSize"]["y"].Integer() + totalPlayers * variables["cellMargin"]["y"].Integer(); variables["backgroundRect"]["x"].Integer() = 0; variables["backgroundRect"]["y"].Integer() = 0; @@ -553,7 +555,7 @@ TeamAlignmentsWidget::TeamAlignmentsWidget(RandomMapTab & randomMapTab): for(int teamId = 0; teamId < totalPlayers; ++teamId) { - variables["point"]["x"].Integer() = variables["cellOffset"]["x"].Integer() + plId * variables["cellMargin"]["x"].Integer(); + variables["point"]["x"].Integer() = variables["cellOffset"]["x"].Integer() + plId * variables["cellMargin"]["x"].Integer() + (widthExtend / 2); variables["point"]["y"].Integer() = variables["cellOffset"]["y"].Integer() + teamId * variables["cellMargin"]["y"].Integer(); auto button = buildWidget(variables["button"]); players.back()->addToggle(teamId, std::dynamic_pointer_cast(button)); diff --git a/client/render/ImageLocator.cpp b/client/render/ImageLocator.cpp index aefbc6d30..515e767a0 100644 --- a/client/render/ImageLocator.cpp +++ b/client/render/ImageLocator.cpp @@ -15,15 +15,17 @@ #include "../../lib/json/JsonNode.h" - ImageLocator::ImageLocator(const JsonNode & config) - : image(ImagePath::fromJson(config["file"])) - , defFile(AnimationPath::fromJson(config["defFile"])) - , defFrame(config["defFrame"].Integer()) + : defFrame(config["defFrame"].Integer()) , defGroup(config["defGroup"].Integer()) , verticalFlip(config["verticalFlip"].Bool()) , horizontalFlip(config["horizontalFlip"].Bool()) { + if(!config["file"].isNull()) + image = ImagePath::fromJson(config["file"]); + + if(!config["defFile"].isNull()) + defFile = AnimationPath::fromJson(config["defFile"]); } ImageLocator::ImageLocator(const ImagePath & path) diff --git a/client/renderSDL/RenderHandler.cpp b/client/renderSDL/RenderHandler.cpp index ccfd5bec8..0447c9786 100644 --- a/client/renderSDL/RenderHandler.cpp +++ b/client/renderSDL/RenderHandler.cpp @@ -55,7 +55,7 @@ std::shared_ptr RenderHandler::getAnimationFile(const AnimationPath & return result; } -std::optional RenderHandler::getPathForScaleFactor(ResourcePath path, std::string factor) +std::optional RenderHandler::getPathForScaleFactor(const ResourcePath & path, const std::string & factor) { if(path.getType() == EResType::IMAGE) { @@ -80,7 +80,7 @@ std::optional RenderHandler::getPathForScaleFactor(ResourcePath pa return std::nullopt; } -std::pair RenderHandler::getScalePath(ResourcePath p) +std::pair RenderHandler::getScalePath(const ResourcePath & p) { auto path = p; int scaleFactor = 1; @@ -142,7 +142,13 @@ void RenderHandler::initFromJson(AnimationLayoutMap & source, const JsonNode & c JsonNode toAdd = node; JsonUtils::inherit(toAdd, base); - toAdd["file"].String() = basepath + node["file"].String(); + + if (toAdd.Struct().count("file")) + toAdd["file"].String() = basepath + node["file"].String(); + + if (toAdd.Struct().count("defFile")) + toAdd["defFile"].String() = basepath + node["defFile"].String(); + source[group][frame] = ImageLocator(toAdd); } } diff --git a/client/renderSDL/RenderHandler.h b/client/renderSDL/RenderHandler.h index d7b028762..43df617a1 100644 --- a/client/renderSDL/RenderHandler.h +++ b/client/renderSDL/RenderHandler.h @@ -29,8 +29,8 @@ class RenderHandler : public IRenderHandler std::map> fonts; std::shared_ptr getAnimationFile(const AnimationPath & path); - std::optional getPathForScaleFactor(ResourcePath path, std::string factor); - std::pair getScalePath(ResourcePath p); + std::optional getPathForScaleFactor(const ResourcePath & path, const std::string & factor); + std::pair getScalePath(const ResourcePath & p); AnimationLayoutMap & getAnimationLayout(const AnimationPath & path); void initFromJson(AnimationLayoutMap & layout, const JsonNode & config); diff --git a/client/renderSDL/SDLImage.cpp b/client/renderSDL/SDLImage.cpp index 449b3bbfe..84d37e7ee 100644 --- a/client/renderSDL/SDLImage.cpp +++ b/client/renderSDL/SDLImage.cpp @@ -283,7 +283,10 @@ std::shared_ptr SDLImageShared::scaleInteger(int factor, SDL if (factor <= 0) throw std::runtime_error("Unable to scale by integer value of " + std::to_string(factor)); - if (palette && surf && surf->format->palette) + if (!surf) + return shared_from_this(); + + if (palette && surf->format->palette) SDL_SetSurfacePalette(surf, palette); SDL_Surface * scaled = nullptr; @@ -306,7 +309,7 @@ std::shared_ptr SDLImageShared::scaleInteger(int factor, SDL // erase our own reference SDL_FreeSurface(scaled); - if (surf && surf->format->palette) + if (surf->format->palette) SDL_SetSurfacePalette(surf, originalPalette); return ret; @@ -314,8 +317,8 @@ std::shared_ptr SDLImageShared::scaleInteger(int factor, SDL std::shared_ptr SDLImageShared::scaleTo(const Point & size, SDL_Palette * palette) const { - float scaleX = float(size.x) / fullSize.x; - float scaleY = float(size.y) / fullSize.y; + float scaleX = static_cast(size.x) / fullSize.x; + float scaleY = static_cast(size.y) / fullSize.y; if (palette && surf->format->palette) SDL_SetSurfacePalette(surf, palette); diff --git a/client/widgets/CGarrisonInt.cpp b/client/widgets/CGarrisonInt.cpp index c859f0d83..78a809e72 100644 --- a/client/widgets/CGarrisonInt.cpp +++ b/client/widgets/CGarrisonInt.cpp @@ -370,6 +370,9 @@ void CGarrisonSlot::gesture(bool on, const Point & initialPosition, const Point if (!settings["input"]["radialWheelGarrisonSwipe"].Bool()) return; + if(GH.windows().topWindow()->isPopupWindow()) + return; + const auto * otherArmy = upg == EGarrisonType::UPPER ? owner->lowerArmy() : owner->upperArmy(); bool stackExists = myStack != nullptr; diff --git a/client/windows/CCastleInterface.cpp b/client/windows/CCastleInterface.cpp index eba40eedc..3d917712e 100644 --- a/client/windows/CCastleInterface.cpp +++ b/client/windows/CCastleInterface.cpp @@ -456,7 +456,7 @@ void CHeroGSlot::showPopupWindow(const Point & cursorPosition) { if(hero) { - GH.windows().createAndPushWindow(Point(pos.x + 175, pos.y + 100), hero); + GH.windows().createAndPushWindow(pos.center(), hero); } } diff --git a/client/windows/GUIClasses.cpp b/client/windows/GUIClasses.cpp index 209b03ef7..ddc78eace 100644 --- a/client/windows/GUIClasses.cpp +++ b/client/windows/GUIClasses.cpp @@ -951,8 +951,8 @@ CUniversityWindow::CUniversityWindow(const CGHeroInstance * _hero, BuildingID bu else if(auto uni = dynamic_cast(_market); uni->appearance) { titlePic = std::make_shared(uni->appearance->animationFile, 0, 0, 0, 0, CShowableAnim::CREATURE_MODE); - titleStr = uni->title; - speechStr = uni->speech; + titleStr = uni->getObjectName(); + speechStr = uni->getSpeechTranslated(); } else { diff --git a/client/windows/InfoWindows.cpp b/client/windows/InfoWindows.cpp index 2719c08d5..494192e4c 100644 --- a/client/windows/InfoWindows.cpp +++ b/client/windows/InfoWindows.cpp @@ -266,16 +266,6 @@ void CRClickPopupInt::mouseDraggedPopup(const Point & cursorPosition, const Poin close(); } -Point CInfoBoxPopup::toScreen(Point p) -{ - auto bounds = adventureInt->terrainAreaPixels(); - - vstd::abetween(p.x, bounds.top() + 100, bounds.bottom() - 100); - vstd::abetween(p.y, bounds.left() + 100, bounds.right() - 100); - - return p; -} - void CInfoBoxPopup::mouseDraggedPopup(const Point & cursorPosition, const Point & lastUpdateDistance) { if(!settings["adventure"]["rightButtonDrag"].Bool()) @@ -289,7 +279,7 @@ void CInfoBoxPopup::mouseDraggedPopup(const Point & cursorPosition, const Point CInfoBoxPopup::CInfoBoxPopup(Point position, const CGTownInstance * town) - : CWindowObject(RCLICK_POPUP | PLAYER_COLORED, ImagePath::builtin("TOWNQVBK"), toScreen(position)) + : CWindowObject(RCLICK_POPUP | PLAYER_COLORED, ImagePath::builtin("TOWNQVBK"), position) { InfoAboutTown iah; LOCPLINT->cb->getTownInfo(town, iah, LOCPLINT->localState->getCurrentArmy()); //todo: should this be nearest hero? @@ -298,10 +288,12 @@ CInfoBoxPopup::CInfoBoxPopup(Point position, const CGTownInstance * town) tooltip = std::make_shared(Point(9, 10), iah); addUsedEvents(DRAG_POPUP); + + fitToScreen(10); } CInfoBoxPopup::CInfoBoxPopup(Point position, const CGHeroInstance * hero) - : CWindowObject(RCLICK_POPUP | PLAYER_COLORED, ImagePath::builtin("HEROQVBK"), toScreen(position)) + : CWindowObject(RCLICK_POPUP | PLAYER_COLORED, ImagePath::builtin("HEROQVBK"), position) { InfoAboutHero iah; LOCPLINT->cb->getHeroInfo(hero, iah, LOCPLINT->localState->getCurrentArmy()); //todo: should this be nearest hero? @@ -310,10 +302,12 @@ CInfoBoxPopup::CInfoBoxPopup(Point position, const CGHeroInstance * hero) tooltip = std::make_shared(Point(9, 10), iah); addUsedEvents(DRAG_POPUP); + + fitToScreen(10); } CInfoBoxPopup::CInfoBoxPopup(Point position, const CGGarrison * garr) - : CWindowObject(RCLICK_POPUP | PLAYER_COLORED, ImagePath::builtin("TOWNQVBK"), toScreen(position)) + : CWindowObject(RCLICK_POPUP | PLAYER_COLORED, ImagePath::builtin("TOWNQVBK"), position) { InfoAboutTown iah; LOCPLINT->cb->getTownInfo(garr, iah); @@ -322,15 +316,19 @@ CInfoBoxPopup::CInfoBoxPopup(Point position, const CGGarrison * garr) tooltip = std::make_shared(Point(9, 10), iah); addUsedEvents(DRAG_POPUP); + + fitToScreen(10); } CInfoBoxPopup::CInfoBoxPopup(Point position, const CGCreature * creature) - : CWindowObject(RCLICK_POPUP | BORDERED, ImagePath::builtin("DIBOXBCK"), toScreen(position)) + : CWindowObject(RCLICK_POPUP | BORDERED, ImagePath::builtin("DIBOXBCK"), position) { OBJECT_CONSTRUCTION; tooltip = std::make_shared(Point(9, 10), creature); addUsedEvents(DRAG_POPUP); + + fitToScreen(10); } std::shared_ptr diff --git a/client/windows/InfoWindows.h b/client/windows/InfoWindows.h index 81b661339..468088dd2 100644 --- a/client/windows/InfoWindows.h +++ b/client/windows/InfoWindows.h @@ -90,7 +90,6 @@ public: class CInfoBoxPopup : public CWindowObject { std::shared_ptr tooltip; - Point toScreen(Point pos); Point dragDistance; diff --git a/config/gameConfig.json b/config/gameConfig.json index 0f51e2ea7..9692abfaf 100644 --- a/config/gameConfig.json +++ b/config/gameConfig.json @@ -56,6 +56,7 @@ "config/objects/lighthouse.json", "config/objects/magicSpring.json", "config/objects/magicWell.json", + "config/objects/markets.json", "config/objects/moddables.json", "config/objects/observatory.json", "config/objects/pyramid.json", diff --git a/config/objects/generic.json b/config/objects/generic.json index 238cfd848..3be342df6 100644 --- a/config/objects/generic.json +++ b/config/objects/generic.json @@ -18,115 +18,6 @@ } }, - "altarOfSacrifice" : { - "index" :2, - "handler" : "market", - "base" : { - "sounds" : { - "visit" : ["MYSTERY"] - } - }, - "types" : { - "object" : { - "index" : 0, - "aiValue" : 100, - "rmg" : { - "zoneLimit" : 1, - "value" : 100, - "rarity" : 20 - }, - "modes" : ["creature-experience", "artifact-experience"] - } - } - }, - "tradingPost" : { - "index" :221, - "handler" : "market", - "base" : { - "sounds" : { - "ambient" : ["LOOPMARK"], - "visit" : ["STORE"] - } - }, - "types" : { - "object" : { - "index" : 0, - "aiValue" : 100, - "rmg" : { - "zoneLimit" : 1, - "value" : 100, - "rarity" : 100 - }, - "modes" : ["resource-resource", "resource-player"], - "efficiency" : 5, - "title" : "core.genrltxt.159" - } - } - }, - "tradingPostDUPLICATE" : { - "index" :99, - "handler" : "market", - "base" : { - "sounds" : { - "ambient" : ["LOOPMARK"], - "visit" : ["STORE"] - } - }, - "types" : { - "object" : { - "index" : 0, - "aiValue" : 100, - "rmg" : { - "zoneLimit" : 1, - "value" : 100, - "rarity" : 100 - }, - "modes" : ["resource-resource", "resource-player"], - "efficiency" : 5, - "title" : "core.genrltxt.159" - } - } - }, - "freelancersGuild" : { - "index" :213, - "handler" : "market", - "types" : { - "object" : { - "index" : 0, - "aiValue" : 100, - "rmg" : { - "zoneLimit" : 1, - "value" : 100, - "rarity" : 100 - }, - "modes" : ["creature-resource"] - } - } - }, - - "blackMarket" : { - "index" :7, - "handler" : "market", - "base" : { - "sounds" : { - "ambient" : ["LOOPMARK"], - "visit" : ["MYSTERY"] - } - }, - "types" : { - "object" : { - "index" : 0, - "aiValue" : 8000, - "rmg" : { - "value" : 8000, - "rarity" : 20 - }, - "modes" : ["resource-artifact"], - "title" : "core.genrltxt.349" - } - } - }, - "pandoraBox" : { "index" :6, "handler" : "pandora", @@ -393,35 +284,6 @@ } } }, - "university" : { - "index" :104, - "handler" : "market", - "base" : { - "sounds" : { - "visit" : ["GAZEBO"] - } - }, - "types" : { - "object" : { - "index" : 0, - "aiValue" : 2500, - "rmg" : { - "value" : 2500, - "rarity" : 20 - }, - "modes" : ["resource-skill"], - "title" : "core.genrltxt.602", - "speech" : "core.genrltxt.603", - "offer": - [ - { "noneOf" : ["necromancy"] }, - { "noneOf" : ["necromancy"] }, - { "noneOf" : ["necromancy"] }, - { "noneOf" : ["necromancy"] } - ] - } - } - }, "questGuard" : { "index" :215, "handler" : "questGuard", diff --git a/config/objects/markets.json b/config/objects/markets.json new file mode 100644 index 000000000..ea5c517b9 --- /dev/null +++ b/config/objects/markets.json @@ -0,0 +1,138 @@ +{ + "altarOfSacrifice" : { + "index" :2, + "handler" : "market", + "base" : { + "sounds" : { + "visit" : ["MYSTERY"] + } + }, + "types" : { + "object" : { + "index" : 0, + "aiValue" : 100, + "rmg" : { + "zoneLimit" : 1, + "value" : 100, + "rarity" : 20 + }, + "modes" : ["creature-experience", "artifact-experience"] + } + } + }, + + "tradingPost" : { + "index" :221, + "handler" : "market", + "base" : { + "sounds" : { + "ambient" : ["LOOPMARK"], + "visit" : ["STORE"] + } + }, + "types" : { + "object" : { + "index" : 0, + "aiValue" : 100, + "rmg" : { + "zoneLimit" : 1, + "value" : 100, + "rarity" : 100 + }, + "modes" : ["resource-resource", "resource-player"], + "efficiency" : 5 + } + } + }, + + "tradingPostDUPLICATE" : { + "index" :99, + "handler" : "market", + "base" : { + "sounds" : { + "ambient" : ["LOOPMARK"], + "visit" : ["STORE"] + } + }, + "types" : { + "object" : { + "index" : 0, + "aiValue" : 100, + "rmg" : { + "zoneLimit" : 1, + "value" : 100, + "rarity" : 100 + }, + "modes" : ["resource-resource", "resource-player"], + "efficiency" : 5 + } + } + }, + + "freelancersGuild" : { + "index" :213, + "handler" : "market", + "types" : { + "object" : { + "index" : 0, + "aiValue" : 100, + "rmg" : { + "zoneLimit" : 1, + "value" : 100, + "rarity" : 100 + }, + "modes" : ["creature-resource"] + } + } + }, + + "blackMarket" : { + "index" :7, + "handler" : "market", + "base" : { + "sounds" : { + "ambient" : ["LOOPMARK"], + "visit" : ["MYSTERY"] + } + }, + "types" : { + "object" : { + "index" : 0, + "aiValue" : 8000, + "rmg" : { + "value" : 8000, + "rarity" : 20 + }, + "modes" : ["resource-artifact"] + } + } + }, + "university" : { + "index" :104, + "handler" : "market", + "base" : { + "sounds" : { + "visit" : ["GAZEBO"] + } + }, + "types" : { + "object" : { + "index" : 0, + "aiValue" : 2500, + "rmg" : { + "value" : 2500, + "rarity" : 20 + }, + "modes" : ["resource-skill"], + "speech" : "@core.genrltxt.603", + "offer": + [ + { "noneOf" : ["necromancy"] }, + { "noneOf" : ["necromancy"] }, + { "noneOf" : ["necromancy"] }, + { "noneOf" : ["necromancy"] } + ] + } + } + } +} \ No newline at end of file diff --git a/config/schemas/market.json b/config/schemas/market.json new file mode 100644 index 000000000..7554b453a --- /dev/null +++ b/config/schemas/market.json @@ -0,0 +1,50 @@ +{ + "type" : "object", + "$schema" : "http://json-schema.org/draft-04/schema", + "title" : "VCMI map object format", + "description" : "Description of map object class", + "required" : [ "modes" ], + + "additionalProperties" : false, + + "properties" : { + "description" : { + "description" : "Message that will be shown on right-clicking this object", + "type" : "string" + }, + + "speech" : { + "description" : "Message that will be shown to player on visiting this object", + "type" : "string" + }, + + "modes" : { + "type" : "array", + "items" : { + "enum" : [ "resource-resource", "resource-player", "creature-resource", "resource-artifact", "artifact-resource", "artifact-experience", "creature-experience", "creature-undead", "resource-skill" ], + "type" : "string" + } + }, + "efficiency" : { + "type" : "number", + "minimum" : 1, + "maximum" : 9 + }, + "offer" : { + "type" : "array" + }, + + // Properties that might appear since this node is shared with object config + "compatibilityIdentifiers" : { }, + "blockedVisitable" : { }, + "removable" : { }, + "aiValue" : { }, + "index" : { }, + "base" : { }, + "name" : { }, + "rmg" : { }, + "templates" : { }, + "battleground" : { }, + "sounds" : { } + } +} diff --git a/config/schemas/skill.json b/config/schemas/skill.json index 162f84de6..2332f0eaf 100644 --- a/config/schemas/skill.json +++ b/config/schemas/skill.json @@ -94,5 +94,9 @@ "onlyOnWaterMap" : { "type" : "boolean", "description" : "It true, skill won't be available on a map without water" + }, + "special" : { + "type" : "boolean", + "description" : "If true, skill is not available on maps at random" } } diff --git a/docs/modders/Entities_Format/Secondary_Skill_Format.md b/docs/modders/Entities_Format/Secondary_Skill_Format.md index 367ca775f..f157359d4 100644 --- a/docs/modders/Entities_Format/Secondary_Skill_Format.md +++ b/docs/modders/Entities_Format/Secondary_Skill_Format.md @@ -2,6 +2,15 @@ ## Main format +```jsonc +{ + // Skill be only be available on maps with water + "onlyOnWaterMap" : false, + // Skill is not available on maps at random + "special" : true +} +``` + ```jsonc { "skillName": diff --git a/docs/players/Installation_iOS.md b/docs/players/Installation_iOS.md index bf71d7225..4dfcd7478 100644 --- a/docs/players/Installation_iOS.md +++ b/docs/players/Installation_iOS.md @@ -8,9 +8,9 @@ The easiest and recommended way to install on a non-jailbroken device is to inst i) Use [AltStore Windows](https://faq.altstore.io/altstore-classic/how-to-install-altstore-windows) or [AltStore macOS](https://faq.altstore.io/altstore-classic/how-to-install-altstore-macos) instructions to install the store depending on the operating system you are using. -If you're having trouble enabling "sync with this iOS device over Wi-Fi" press on the rectangular shape below "Account". Example shown below. +If you're having trouble enabling "sync with this iOS device over Wi-Fi" press on the rectangular shape below "Account". Windows example from iTunes shown below: -![image](https://github.com/user-attachments/assets/74fe2ca2-b55c-4b05-b083-89df604248f3) +![iTunes](images/itunes.jpg) ii) Download the VCMI-iOS.ipa file on your iOS device directly from the [latest releases](https://github.com/vcmi/vcmi/releases/latest). @@ -50,7 +50,6 @@ To run on a non-jailbroken device you need to sign the IPA file, you have the fo The easiest way to install the ipa on your device is to do one of the following: - In AltStore go to >My Apps > press + in the top left corner. Select VCMI-iOS.ipa to install or - - Drag and drop the .ipa file into your iOS device in iTunes Alternatively, to install the signed ipa on your device, you can use Xcode or Apple Configurator (available on the Mac App Store for free). The latter also allows installing ipa from the command line, here's an example that assumes you have only 1 device connected to your Mac and the signed ipa is on your desktop: diff --git a/docs/players/images/itunes.jpg b/docs/players/images/itunes.jpg new file mode 100644 index 000000000..1301fbf6d Binary files /dev/null and b/docs/players/images/itunes.jpg differ diff --git a/launcher/translation/swedish.ts b/launcher/translation/swedish.ts index 2bd48e043..7ae569217 100644 --- a/launcher/translation/swedish.ts +++ b/launcher/translation/swedish.ts @@ -138,7 +138,7 @@ Other - Övrigt + Annan @@ -442,17 +442,17 @@ Gog files - + GOG-filer All files (*.*) - + Alla filer (*.*) Select files (configs, mods, maps, campaigns, gog files) to install... - + Välj filer (konfigurationsfiler, moddar, kartor, kampanjer och GOG-filer) som ska installeras... @@ -499,7 +499,7 @@ Installation framgångsrikt nedladdad? Installing chronicles - + Installera Chronicles @@ -704,7 +704,7 @@ Installation framgångsrikt nedladdad? Mods Validation - + Validering av moddar @@ -729,12 +729,12 @@ Installation framgångsrikt nedladdad? Full - + Hela Use scalable fonts - + Använd skalbara teckensnitt @@ -744,27 +744,27 @@ Installation framgångsrikt nedladdad? Cursor Scaling - + Skalning av markör Scalable - + Skalbar Miscellaneous - + Övrigt Font Scaling (experimental) - + Skalning av teckensnitt (experimentell) Original - + Original @@ -774,7 +774,7 @@ Installation framgångsrikt nedladdad? Basic - + Grundläggande @@ -1059,35 +1059,35 @@ Exklusivt helskärmsläge - spelet kommer att täcka hela skärmen och använda File cannot opened - + Filen kan inte öppnas Invalid file selected - Ogiltig fil vald + Ogiltig fil vald You have to select an gog installer file! - + Du måste välja en GOG-installationsfil! You have to select an chronicle installer file! - + Du måste välja en Chronicles-installationsfil! Extracting error! - Extraktionsfel! + Extraheringsfel! Heroes Chronicles - + Heroes Chronicles @@ -1420,18 +1420,18 @@ Vänligen välj en mapp som innehåller data från Heroes III: Complete Edition Stream error while extracting files! error reason: - Strömningsfel vid extrahering av filer! + Strömningsfel vid extrahering av filer! Orsak till fel: Not a supported Inno Setup installer! - Inno Setup-installationsprogrammet stöds inte! + Inno Setup-installationsprogrammet stöds inte! VCMI was compiled without innoextract support, which is needed to extract exe files! - + VCMI kompilerades utan stöd för innoextract, vilket behövs för att extrahera exe-filer! diff --git a/lib/CCreatureSet.cpp b/lib/CCreatureSet.cpp index 590002df9..46fa481cf 100644 --- a/lib/CCreatureSet.cpp +++ b/lib/CCreatureSet.cpp @@ -733,7 +733,7 @@ int CStackInstance::getExpRank() const int CStackInstance::getLevel() const { - return std::max(1, static_cast(getType()->getLevel())); + return std::max(1, getType()->getLevel()); } void CStackInstance::giveStackExp(TExpType exp) diff --git a/lib/CSkillHandler.cpp b/lib/CSkillHandler.cpp index 8207ca558..e5436ba08 100644 --- a/lib/CSkillHandler.cpp +++ b/lib/CSkillHandler.cpp @@ -32,7 +32,9 @@ CSkill::CSkill(const SecondarySkill & id, std::string identifier, bool obligator id(id), identifier(std::move(identifier)), obligatoryMajor(obligatoryMajor), - obligatoryMinor(obligatoryMinor) + obligatoryMinor(obligatoryMinor), + special(false), + onlyOnWaterMap(false) { gainChance[0] = gainChance[1] = 0; //affects CHeroClassHandler::afterLoadFinalization() levels.resize(NSecondarySkill::levels.size() - 1); @@ -216,6 +218,7 @@ std::shared_ptr CSkillHandler::loadFromJson(const std::string & scope, c skill->modScope = scope; skill->onlyOnWaterMap = json["onlyOnWaterMap"].Bool(); + skill->special = json["special"].Bool(); VLC->generaltexth->registerString(scope, skill->getNameTextID(), json["name"]); switch(json["gainChance"].getType()) @@ -275,7 +278,8 @@ std::set CSkillHandler::getDefaultAllowed() const std::set result; for (auto const & skill : objects) - result.insert(skill->getId()); + if (!skill->special) + result.insert(skill->getId()); return result; } diff --git a/lib/CSkillHandler.h b/lib/CSkillHandler.h index e54797268..ae89435eb 100644 --- a/lib/CSkillHandler.h +++ b/lib/CSkillHandler.h @@ -75,6 +75,7 @@ public: void serializeJson(JsonSerializeFormat & handler); bool onlyOnWaterMap; + bool special; friend class CSkillHandler; friend DLL_LINKAGE std::ostream & operator<<(std::ostream & out, const CSkill & skill); diff --git a/lib/battle/CBattleInfoCallback.cpp b/lib/battle/CBattleInfoCallback.cpp index d4ec621c6..251c1f9b7 100644 --- a/lib/battle/CBattleInfoCallback.cpp +++ b/lib/battle/CBattleInfoCallback.cpp @@ -1424,7 +1424,7 @@ AttackableTiles CBattleInfoCallback::getPotentiallyAttackableHexes( { //friendly stacks can also be damaged by Dragon Breath const auto * st = battleGetUnitByPos(nextHex, true); - if(st != nullptr) + if(st != nullptr && st != attacker) //but not unit itself (doublewide + prism attack) at.friendlyCreaturePositions.insert(nextHex); } } diff --git a/lib/constants/EntityIdentifiers.h b/lib/constants/EntityIdentifiers.h index c4a1f6272..3bc547247 100644 --- a/lib/constants/EntityIdentifiers.h +++ b/lib/constants/EntityIdentifiers.h @@ -298,7 +298,7 @@ public: HORDE_2_UPGR, GRAIL, EXTRA_TOWN_HALL, EXTRA_CITY_HALL, EXTRA_CAPITOL, DWELL_FIRST=30, DWELL_LVL_2, DWELL_LVL_3, DWELL_LVL_4, DWELL_LVL_5, DWELL_LVL_6, DWELL_LAST=36, DWELL_UP_FIRST=37, DWELL_LVL_2_UP, DWELL_LVL_3_UP, DWELL_LVL_4_UP, DWELL_LVL_5_UP, - DWELL_LVL_6_UP, DWELL_UP_LAST=43, DWELL_LVL_8=150, DWELL_LVL_8_UP=151, + DWELL_LVL_6_UP, DWELL_UP_LAST=43, DWELL_LVL_8=150, DWELL_LVL_8_UP=151, //150-154 reserved for 8. creature with potential upgrades DWELL_LVL_1 = DWELL_FIRST, DWELL_LVL_7 = DWELL_LAST, @@ -337,7 +337,10 @@ public: if (it != tmp.end()) return std::distance(tmp.begin(), it); } - return (dwelling - DWELL_FIRST) % (GameConstants::CREATURES_PER_TOWN - 1); + if(dwelling >= BuildingIDBase::DWELL_LVL_8 && dwelling < BuildingIDBase::DWELL_LVL_8 + 5) + return 7; + else + return (dwelling - DWELL_FIRST) % (GameConstants::CREATURES_PER_TOWN - 1); } static int getUpgradedFromDwelling(BuildingIDBase dwelling) @@ -349,15 +352,18 @@ public: if (it != tmp.end()) return i; } - return (dwelling - DWELL_FIRST) / (GameConstants::CREATURES_PER_TOWN - 1); + if(dwelling >= BuildingIDBase::DWELL_LVL_8 && dwelling < BuildingIDBase::DWELL_LVL_8 + 5) + return dwelling - BuildingIDBase::DWELL_LVL_8; + else + return (dwelling - DWELL_FIRST) / (GameConstants::CREATURES_PER_TOWN - 1); } static void advanceDwelling(BuildingIDBase & dwelling) { - if(dwelling != BuildingIDBase::DWELL_LVL_8) - dwelling.advance(GameConstants::CREATURES_PER_TOWN - 1); - else + if(dwelling >= BuildingIDBase::DWELL_LVL_8 && dwelling < BuildingIDBase::DWELL_LVL_8 + 5) dwelling.advance(1); + else + dwelling.advance(GameConstants::CREATURES_PER_TOWN - 1); } bool IsSpecialOrGrail() const diff --git a/lib/gameState/CGameState.cpp b/lib/gameState/CGameState.cpp index 91a58b796..7df3c63e9 100644 --- a/lib/gameState/CGameState.cpp +++ b/lib/gameState/CGameState.cpp @@ -62,7 +62,7 @@ boost::shared_mutex CGameState::mutex; HeroTypeID CGameState::pickNextHeroType(const PlayerColor & owner) { const PlayerSettings &ps = scenarioOps->getIthPlayersSettings(owner); - if(ps.hero >= HeroTypeID(0) && !isUsedHero(HeroTypeID(ps.hero))) //we haven't used selected hero + if(ps.hero.isValid() && !isUsedHero(HeroTypeID(ps.hero))) //we haven't used selected hero { return HeroTypeID(ps.hero); } diff --git a/lib/mapObjectConstructors/CommonConstructors.cpp b/lib/mapObjectConstructors/CommonConstructors.cpp index 57b52bd43..a3986304a 100644 --- a/lib/mapObjectConstructors/CommonConstructors.cpp +++ b/lib/mapObjectConstructors/CommonConstructors.cpp @@ -17,8 +17,10 @@ #include "../TerrainHandler.h" #include "../VCMI_Lib.h" +#include "../CConfigHandler.h" #include "../entities/faction/CTownHandler.h" #include "../entities/hero/CHeroClass.h" +#include "../json/JsonUtils.h" #include "../mapObjects/CGHeroInstance.h" #include "../mapObjects/CGMarket.h" #include "../mapObjects/CGTownInstance.h" @@ -242,10 +244,28 @@ AnimationPath BoatInstanceConstructor::getBoatAnimationName() const void MarketInstanceConstructor::initTypeData(const JsonNode & input) { + if (settings["mods"]["validation"].String() != "off") + JsonUtils::validate(input, "vcmi:market", getJsonKey()); + if (!input["description"].isNull()) { - description = input["description"].String(); - VLC->generaltexth->registerString(input.getModScope(), TextIdentifier(getBaseTextID(), "description"), description); + std::string description = input["description"].String(); + descriptionTextID = TextIdentifier(getBaseTextID(), "description").get(); + VLC->generaltexth->registerString( input.getModScope(), descriptionTextID, input["description"]); + } + + if (!input["speech"].isNull()) + { + std::string speech = input["speech"].String(); + if (!speech.empty() && speech.at(0) == '@') + { + speechTextID = speech.substr(1); + } + else + { + speechTextID = TextIdentifier(getBaseTextID(), "speech").get(); + VLC->generaltexth->registerString( input.getModScope(), speechTextID, input["speech"]); + } } for(auto & element : input["modes"].Vector()) @@ -256,14 +276,11 @@ void MarketInstanceConstructor::initTypeData(const JsonNode & input) marketEfficiency = input["efficiency"].isNull() ? 5 : input["efficiency"].Integer(); predefinedOffer = input["offer"]; - - title = input["title"].String(); - speech = input["speech"].String(); } bool MarketInstanceConstructor::hasDescription() const { - return !description.empty(); + return !descriptionTextID.empty(); } CGMarket * MarketInstanceConstructor::createObject(IGameCallback * cb) const @@ -283,21 +300,6 @@ CGMarket * MarketInstanceConstructor::createObject(IGameCallback * cb) const return new CGMarket(cb); } -void MarketInstanceConstructor::initializeObject(CGMarket * market) const -{ - market->marketEfficiency = marketEfficiency; - - if(auto university = dynamic_cast(market)) - { - university->title = market->getObjectName(); - if(!title.empty()) - university->title = VLC->generaltexth->translate(title); - - if(!speech.empty()) - university->speech = VLC->generaltexth->translate(speech); - } -} - const std::set & MarketInstanceConstructor::availableModes() const { return marketModes; @@ -315,4 +317,15 @@ void MarketInstanceConstructor::randomizeObject(CGMarket * object, vstd::RNG & r } } +std::string MarketInstanceConstructor::getSpeechTranslated() const +{ + assert(marketModes.count(EMarketMode::RESOURCE_SKILL)); + return VLC->generaltexth->translate(speechTextID); +} + +int MarketInstanceConstructor::getMarketEfficiency() const +{ + return marketEfficiency; +} + VCMI_LIB_NAMESPACE_END diff --git a/lib/mapObjectConstructors/CommonConstructors.h b/lib/mapObjectConstructors/CommonConstructors.h index 8d4abcc67..73ba43874 100644 --- a/lib/mapObjectConstructors/CommonConstructors.h +++ b/lib/mapObjectConstructors/CommonConstructors.h @@ -115,25 +115,23 @@ public: class MarketInstanceConstructor : public CDefaultObjectTypeHandler { -protected: - void initTypeData(const JsonNode & config) override; + std::string descriptionTextID; + std::string speechTextID; std::set marketModes; JsonNode predefinedOffer; int marketEfficiency; - - std::string description; - std::string title; - std::string speech; - + + void initTypeData(const JsonNode & config) override; public: CGMarket * createObject(IGameCallback * cb) const override; - void initializeObject(CGMarket * object) const override; void randomizeObject(CGMarket * object, vstd::RNG & rng) const override; const std::set & availableModes() const; bool hasDescription() const; + std::string getSpeechTranslated() const; + int getMarketEfficiency() const; }; VCMI_LIB_NAMESPACE_END diff --git a/lib/mapObjects/CGHeroInstance.cpp b/lib/mapObjects/CGHeroInstance.cpp index 421e7b354..6e84d0baf 100644 --- a/lib/mapObjects/CGHeroInstance.cpp +++ b/lib/mapObjects/CGHeroInstance.cpp @@ -661,8 +661,10 @@ void CGHeroInstance::pickRandomObject(vstd::RNG & rand) if (ID == Obj::RANDOM_HERO) { + auto selectedHero = cb->gameState()->pickNextHeroType(getOwner()); + ID = Obj::HERO; - subID = cb->gameState()->pickNextHeroType(getOwner()); + subID = selectedHero; randomizeArmy(getHeroClass()->faction); } diff --git a/lib/mapObjects/CGMarket.cpp b/lib/mapObjects/CGMarket.cpp index ff2118bf2..a7eef18ad 100644 --- a/lib/mapObjects/CGMarket.cpp +++ b/lib/mapObjects/CGMarket.cpp @@ -57,7 +57,7 @@ std::string CGMarket::getPopupText(const CGHeroInstance * hero) const int CGMarket::getMarketEfficiency() const { - return marketEfficiency; + return getMarketHandler()->getMarketEfficiency(); } int CGMarket::availableUnits(EMarketMode mode, int marketItemSerial) const @@ -125,6 +125,11 @@ std::vector CGUniversity::availableItemsIds(EMarketMode mode) cons } } +std::string CGUniversity::getSpeechTranslated() const +{ + return getMarketHandler()->getSpeechTranslated(); +} + void CGUniversity::onHeroVisit(const CGHeroInstance * h) const { cb->showObjectWindow(this, EOpenWindowMode::UNIVERSITY_WINDOW, h, true); diff --git a/lib/mapObjects/CGMarket.h b/lib/mapObjects/CGMarket.h index b28a386bc..6f4f92a42 100644 --- a/lib/mapObjects/CGMarket.h +++ b/lib/mapObjects/CGMarket.h @@ -19,11 +19,10 @@ class MarketInstanceConstructor; class DLL_LINKAGE CGMarket : public CGObjectInstance, public IMarket { +protected: std::shared_ptr getMarketHandler() const; public: - int marketEfficiency; - CGMarket(IGameCallback *cb); ///IObjectInterface void onHeroVisit(const CGHeroInstance * h) const override; //open trading window @@ -48,7 +47,12 @@ public: h & marketModes; } - h & marketEfficiency; + if (h.version < Handler::Version::MARKET_TRANSLATION_FIX) + { + int unused = 0; + h & unused; + } + if (h.version < Handler::Version::NEW_MARKETS) { std::string speech; @@ -103,8 +107,8 @@ class DLL_LINKAGE CGUniversity : public CGMarket { public: using CGMarket::CGMarket; - std::string speech; //currently shown only in university - std::string title; + + std::string getSpeechTranslated() const; std::vector skills; //available skills @@ -115,10 +119,11 @@ public: { h & static_cast(*this); h & skills; - if (h.version >= Handler::Version::NEW_MARKETS) + if (h.version >= Handler::Version::NEW_MARKETS && h.version < Handler::Version::MARKET_TRANSLATION_FIX) { - h & speech; - h & title; + std::string temp; + h & temp; + h & temp; } } }; diff --git a/lib/serializer/ESerializationVersion.h b/lib/serializer/ESerializationVersion.h index 5e038bbf0..fbf723a88 100644 --- a/lib/serializer/ESerializationVersion.h +++ b/lib/serializer/ESerializationVersion.h @@ -68,6 +68,7 @@ enum class ESerializationVersion : int32_t REMOVE_VLC_POINTERS, // 869 removed remaining pointers to VLC entities FOLDER_NAME_REWORK, // 870 - rework foldername REWARDABLE_GUARDS, // 871 - fix missing serialization of guards in rewardable objects + MARKET_TRANSLATION_FIX, // 872 - remove serialization of markets translateable strings - CURRENT = REWARDABLE_GUARDS + CURRENT = MARKET_TRANSLATION_FIX }; diff --git a/lib/spells/CSpellHandler.cpp b/lib/spells/CSpellHandler.cpp index e1154b107..79619ac51 100644 --- a/lib/spells/CSpellHandler.cpp +++ b/lib/spells/CSpellHandler.cpp @@ -544,8 +544,8 @@ void CSpell::serializeJson(JsonSerializeFormat & handler) ///CSpell::AnimationInfo CSpell::AnimationItem::AnimationItem() : verticalPosition(VerticalPosition::TOP), - pause(0), - transparency(1) + transparency(1), + pause(0) { } diff --git a/server/battles/BattleActionProcessor.cpp b/server/battles/BattleActionProcessor.cpp index 6855fd6c9..767cfc065 100644 --- a/server/battles/BattleActionProcessor.cpp +++ b/server/battles/BattleActionProcessor.cpp @@ -917,7 +917,7 @@ void BattleActionProcessor::makeAttack(const CBattleInfoCallback & battle, const handleAttackBeforeCasting(battle, ranged, attacker, defender); // If the attacker or defender is not alive before the attack action, the action should be skipped. - if((attacker && !attacker->alive()) || (defender && !defender->alive())) + if((!attacker->alive()) || (defender && !defender->alive())) return; FireShieldInfo fireShield;