Ivan Savenko
50838f24bf
Auto-recover from cases when active preset is invalid
2024-12-15 19:43:43 +00:00
Ivan Savenko
4682ae537d
Prefer local mod data, unless repository has newer mod
2024-12-10 13:53:49 +00:00
Ivan Savenko
0fde7942d2
Implemented preset management for Start Game tab
2024-12-10 11:29:08 +00:00
Ivan Savenko
21f6815187
Fix loading of 1.5 and older 1.6 saves
2024-12-01 16:00:09 +00:00
Ivan Savenko
3fccd85500
Use mod ID instead of translated mod name for console output
2024-11-27 14:04:03 +00:00
Ivan Savenko
a80f65439b
Do not inform of mod update if remote version is older than local
2024-11-26 21:05:18 +00:00
Ivan Savenko
8a0d327ac2
Fix uncaught exception if newly updated mod has removed a submod
2024-11-26 21:04:56 +00:00
Ivan Savenko
eab03c24ee
Fix installation of mods with complex dependencies such as H3Evo
2024-11-26 13:56:29 +00:00
Ivan Savenko
1678b137d8
Automatically enable all applicable compatibility patches
2024-11-26 13:55:46 +00:00
Ivan Savenko
6bad88ba99
Fix display of active submods of disabled root mods
2024-11-26 13:55:46 +00:00
Ivan Savenko
4aaa6c1eb4
Fix enabling and disabling of mods
2024-11-26 13:55:46 +00:00
Ivan Savenko
34a59d049b
Implement remaining todo's, fix handling of mods with invalid
...
dependencies
2024-11-26 13:55:46 +00:00
Ivan Savenko
fef19f4846
Fix installation of multiple mods at once
2024-11-26 13:55:46 +00:00
Ivan Savenko
00f97fb8cd
Allow mod operations such as install when possible
2024-11-26 13:55:46 +00:00
Ivan Savenko
879eb2184f
Implement some TODO's, fix sonar warnings
2024-11-26 13:55:46 +00:00
Ivan Savenko
85ffb449ca
Fixes mod install / uninstall / updates
2024-11-26 13:55:46 +00:00
Ivan Savenko
30ed066cea
Restored mod uninstall functionality, restored translatable mod fields,
...
added more fields to translatable list
2024-11-26 13:55:46 +00:00
Ivan Savenko
2fcda48c65
Implemented enabling and disabling of mods with dependencies resolving
2024-11-26 13:55:46 +00:00
Ivan Savenko
37e975036c
Restored display of enabled and disabled mods in Launcher
2024-11-26 13:55:46 +00:00
Ivan Savenko
ac3aecba81
Reimplemented computation of installed mod size for Launcher
2024-11-26 13:55:46 +00:00
Ivan Savenko
f72fb53117
Implemented missing mod description fields
2024-11-26 13:55:46 +00:00
Ivan Savenko
41466238fc
Cleanup code
2024-11-26 13:55:46 +00:00
Ivan Savenko
87a665fb7f
Restored all disabled mod functinality that was used by client
2024-11-26 13:55:46 +00:00
Ivan Savenko
67fdd14dca
Cleanup
2024-11-26 13:55:46 +00:00
Ivan Savenko
06ce71087e
Restored mod list display functionality in launcher
2024-11-26 13:55:46 +00:00
Ivan Savenko
f8724b9558
Reworked mod handling in Launcher in order to unify code with lib
2024-11-26 13:55:46 +00:00
Ivan Savenko
4945370fe3
Implemented validation of preset - removal of non-existing mods,
...
addition of newly installed mods
2024-11-26 13:55:46 +00:00
Ivan Savenko
ba9e3dca9d
Mod management rework, part 1
...
- Replaced CModInfo class with constant ModDescription class
- Simplified mod loading logic
- Extracted some functionality from ModHandler into separate classes for
future reuse by Launcher
2024-11-26 13:55:46 +00:00
Ivan Savenko
c57120f0dd
Initial support for mod presets system
2024-11-26 13:55:46 +00:00
Ivan Savenko
a2c2b28dfe
Merge pull request #4859 from IvanSavenko/map_encoding_fix
...
Fix selection of encoding from maps
2024-11-06 22:00:59 +02:00
Ivan Savenko
ee88cfa150
Fix selection of encoding from maps
...
Fixes typo from previous PR
2024-11-01 13:40:29 +00:00
Ivan Savenko
6056d385ed
Always load json configs from mod that references it
...
This should fix rather common problem with mods, where two unrelated mods
accidentally use same file name for a config file, leading to very unclear
conflict since this result in a file override.
Now all config files referenced in mod.json are loaded specifically from
filesystem of mod that referenced it. In other words, it is no longer
possible for one mod to override config from another mod.
As a side effect, this allows mods to use shorter directory layout, e.g.
`config/modName/xxx.json` can now be safely replaced with `config/
xxx.json` without fear of broken mod if there is another mod with same
path to config. Similarly, now all mods can use `config/translation/
language.json` scheme for translation files
Since this is no longer a problem, I've also simplified directory layout
of our built-in 'vcmi' mod, by moving all files from `config/vcmi`
directory directly to `config` directory.
- Overrides for miscellaneous configs like mainmenu.json should works as
before
- Images / animations (png's or def's) work as before (and may still
result in confict)
- Rebalance mods work as before and can modify another mod via standard
`modName:objectName` syntax
2024-10-31 14:49:11 +00:00
Ivan Savenko
e714a02063
Merge pull request #4849 from IvanSavenko/map_encoding
...
Better handling of encoding detection for maps and campaigns
2024-10-31 15:07:36 +02:00
Ivan Savenko
22f517686d
Better handling of encoding detection for maps and campaigns
...
Now VCMI will use either preferred language or install language to load
maps and campaigns that are part of "core" mod, or, in other words -
placed in Maps directory of H3 data (like most of manually downloaded
maps and campaigns are)
If game data is in English, then game can safely use encoding of player-
selected language (such as Chinese) to load maps. After all, both GBK
and all Win-125X encoding are superset of ASCII, so English map will
always load up correctly.
Maps that are part of a mod still use mod language as before - it is up
to mod maker to correctly set up mod language.
2024-10-30 11:54:35 +00:00
Ivan Savenko
c1c9e2e4f0
Merge pull request #4820 from kdmcser/softDenpendency
...
add support for soft dependencies
2024-10-30 13:31:46 +02:00
kdmcser
5c5bac12eb
Update lib/modding/CModHandler.cpp
...
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-10-29 00:35:32 +08:00
kdmcser
123f3923d3
Update lib/modding/ContentTypeHandler.cpp
...
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-10-29 00:35:03 +08:00
Ivan Savenko
565c02d61c
Added 'translate missing' command for convenience
2024-10-26 12:54:35 +00:00
kdmcser
3b72594743
add support for soft dependencies
2024-10-26 19:15:12 +08:00
Ivan Savenko
604e3b5c67
Merge pull request #4763 from IvanSavenko/herohandler_split
...
Split CHeroHandler.cpp/.h into 1 file per class
2024-10-14 19:05:48 +03:00
Ivan Savenko
10ad0fc760
Split CHeroHandler.cpp/.h into 1 file per class
...
All parts of CHeroHandler.cpp are now in lib/entities/hero
Adjusted includes to use new paths
No functionality changes
2024-10-13 14:01:09 +00:00
Ivan Savenko
a8e84c55f6
Fix some of the new warnings from sonarcloud
2024-10-11 10:45:29 +00:00
Ivan Savenko
2399a5a765
Merge pull request #4712 from IvanSavenko/detect_conflict
...
Detection of potential conflicts between mods
2024-10-07 17:57:52 +03:00
Ivan Savenko
8e4152bc81
It is now possible to define objects directly in mod.json instead of
...
using path to file with object definition
2024-10-06 19:42:15 +00:00
Ivan Savenko
1488629628
Add simple support for translation of strings that were changed by
...
another mod
2024-10-06 19:42:15 +00:00
Ivan Savenko
b85ccccb37
Minor refactoring of translations:
...
- removed unsuccessful and broken validation of translations
- pass JsonNode when registering strings to provide information on mod
source
2024-10-06 19:42:15 +00:00
Ivan Savenko
66fdad145c
Added an option to configure validation level in launcher
2024-10-06 19:21:33 +00:00
Ivan Savenko
3e3f842fbe
Respect dependencies when checking for filesystem conflicts
2024-10-06 17:20:58 +00:00
Ivan Savenko
d849e53499
Implement detection of mod compatibility patches
2024-10-06 16:11:32 +00:00
Ivan Savenko
d0aba56a5e
Analyze json object modifications to detect mod conflicts
2024-10-06 13:58:41 +00:00