Commit Graph
100 Commits
Author SHA1 Message Date
Ivan SavenkoandGitHub 62234fcf92 Merge pull request #5645 from IvanSavenko/changelog_april
Updated changelog for 1.7.0
2025-04-27 14:57:04 +03:00
Ivan Savenko dcdd8f0e85 Updated changelog for 1.7.0 2025-04-27 14:16:39 +03:00
Ivan SavenkoandGitHub 4f20bc102b Merge pull request #5652 from kdmcser/hang_fix
Prevent AI from repeatedly swapping the same artifacts
2025-04-27 13:56:11 +03:00
Ivan SavenkoandGitHub 3921b9e214 Merge pull request #5650 from kdmcser/limiter
fix crash when bonus limiter is empty in OwnerUpdater
2025-04-27 13:38:18 +03:00
Ivan SavenkoandGitHub baae88cf59 Merge pull request #5646 from MichalZr6/necromancy_fix
Fix bug when no casualties but 1 skeleton is raised
2025-04-27 13:37:53 +03:00
Ivan SavenkoandGitHub be554f4260 Merge pull request #5641 from kdmcser/chinese_encoding
fix Chinese encoding problem in GBK
2025-04-27 13:37:26 +03:00
Ivan Savenko 0b126ebc8b Merge branch 'vcmi/master' into 'vcmi/develop' 2025-04-25 17:36:11 +03:00
Ivan SavenkoandGitHub a92e29e008 Merge pull request #5647 from vcmi/beta
Merge beta -> master
2025-04-24 22:50:03 +03:00
Ivan SavenkoandGitHub a00ec58284 Merge pull request #5644 from IvanSavenko/release_168
Release 1.6.8
2025-04-24 20:55:40 +03:00
Ivan Savenko 87975e4ac6 Backport hypnotize fix 2025-04-23 13:09:54 +03:00
Ivan Savenko 4cbc9c4468 Changelog for 1.6.8 2025-04-23 10:50:11 +03:00
Ivan Savenko 883d33b5bf Version bump to 1.6.8 2025-04-23 10:50:00 +03:00
Ivan Savenko e0adbb3237 Fix calculating of total cost if hero has non-max amount of points 2025-04-23 10:49:37 +03:00
Ivan SavenkoandGitHub f9c911bd25 Merge pull request #5633 from SoundSSGood/battle-query-fix
Fix end of battle for AI
2025-04-17 12:23:35 +03:00
Ivan SavenkoandGitHub a3c0cc9729 Merge pull request #5632 from SoundSSGood/crash-hotfix-visitBattleResultsApplied
Hotfix visitBattleResultsApplied
2025-04-16 11:32:01 +03:00
Ivan SavenkoandGitHub ce89a0d21b Merge pull request #5609 from SoundSSGood/end-of-battle-infowindows
End of battle infowindows refactoring
2025-04-15 22:50:35 +03:00
Ivan SavenkoandGitHub 204b13fc07 Merge pull request #5608 from Laserlicht/campaigneditor
campaign editor
2025-04-15 17:55:13 +03:00
Ivan SavenkoandGitHub 74452116d1 Merge pull request #5619 from Laserlicht/commander_health
fix health bar for commander
2025-04-15 17:53:42 +03:00
Ivan SavenkoandGitHub 8f338db0ec Merge pull request #5627 from IvanSavenko/bonus_fix
Bonus system fixes
2025-04-15 17:50:28 +03:00
Ivan SavenkoandGitHub 8400cfcc49 Merge pull request #5628 from GeorgeK1ng/infoWindow_alignFix
Info window align fix
2025-04-15 17:50:07 +03:00
Ivan SavenkoandGitHub 1b2cd60cc3 Merge pull request #5629 from GeorgeK1ng/haart_munlich
Fix Lord Haart vs Sir Mullich
2025-04-15 17:48:59 +03:00
Ivan Savenko db2e4c5f6d Include bonus from artifacts to Ballista damage, unify code 2025-04-14 15:50:10 +03:00
Ivan Savenko 1cb5f36ccb Fix handling of creature-specific limiters in noneOf limiter on hero
For example, if hero has specialty that provides primary skill bonuses
with "noneOf" limiter that contains limiter that can only be evaluated
in creature context (such as creature level or native terrain), limiter
itself would evaluate to DISCARD, and then will be inverted to ACCEPT by
noneOf limiter. As result, this would give hero bonus to primary skill
even though it is clearly intended to only target creatures.

This introduces NOT_APPLICABLE limiter decision that is not inverted by
noneOf limiter
2025-04-13 23:31:37 +03:00
Ivan Savenko 83099f9288 Fix crash on initializing off-map hero 2025-04-13 23:15:49 +03:00
Ivan Savenko 38a9dc83ba Fix bonuses from battlefield not showing up in creature window 2025-04-13 23:15:15 +03:00
Ivan Savenko 6d8bf24f94 Invalidate hero bonuses on moving to another terrain 2025-04-13 22:23:36 +03:00
Ivan Savenko 2b812be9cd Correctly show results of CreatureTerrainLimiter outside of combat 2025-04-13 22:23:12 +03:00
Ivan Savenko 975d9aedc9 Merge branch 'vcmi/beta' into 'vcmi/develop' 2025-04-13 18:53:54 +03:00
Ivan SavenkoandGitHub 3d4ae903d7 Merge pull request #5620 from IvanSavenko/adela_fix
Better support for Adela specialty (+new modding functionality for it)
2025-04-13 18:42:23 +03:00
Ivan Savenko 896a7ec88e Better support for Adela specialty (+new modding functionality for it)
Fixes Adela specialty that was apparently broken back in #1518 and
replaced with logic that was clearly not tested - it was neither
functional, nor it was following H3 behavior.

- `HAS_ANOTHER_BONUS_LIMITER` now accepts `null` in place of bonus type,
for cases when limiting is needed by bonus source or bonus subtype. This
allows Adela Bless specialty to always work, irregardless of which
bonuses are provided by Bless.
- Implemented `DIVIDE_STACK_LEVEL` updater that functions same as
`TIMES_STACK_LEVEL`, but it divides bonus value, instead of multiplying
it (to make Adela specialty weaker for high-tier units, as in H3)
- Implemented `TIMES_HERO_LEVEL_DIVIDE_STACK_LEVEL` updater that
combines two existing updaters, to implement `val * heroLevel /
unitLevel` formula needed for Adela specialty
- Removed deprecated `ARMY_MOVEMENT` updater. Its functionality has
already been removed in 1.6.X releases, and it was remaining only as a
placeholder
- Updated modding documentation to account for these changes & to remove
some TODO's

Fixed regression from #777 that could led to either duplicated bonuses
or to multiple application of updaters. It introduced double-recursion -
node parents were gathered recursively, and then bonuses were also
collected recursively within each parent. This created situation where
updater could be applied different number of times. For example, hero
bonus that is propagated to unit in combat could be selected directly,
or via hero->combat unit chain, or via hero->garrison unit->combat unit
chains, leading to different calls to updaters if updater handles
garrison unit node type
2025-04-13 16:24:51 +03:00
Ivan SavenkoandGitHub 439c9a7888 Merge pull request #5622 from IvanSavenko/hypno_fix
Fix hypnotize spell
2025-04-13 16:21:14 +03:00
Ivan SavenkoandGitHub 65fd4d55d9 Merge pull request #5605 from GeorgeK1ng/drag_drop
Enable drag & drop for Map Editor
2025-04-12 11:13:22 +03:00
Ivan SavenkoandGitHub f3ca06c3d0 Merge pull request #5593 from kdmcser/limiter
make OwnerUpdater not hardcode OppositeSideLimiter
2025-04-12 10:53:31 +03:00
Ivan SavenkoandGitHub 56fde609a8 Merge pull request #5616 from IvanSavenko/spellicon_fix
Fix loading of spell immunity icons for corresponding bonus
2025-04-12 10:51:02 +03:00
Ivan SavenkoandGitHub 0d5e936bc0 Merge pull request #5617 from IvanSavenko/keybinding_fix
Use SDL scancodes instead of keycodes for keybindings
2025-04-12 10:50:37 +03:00
Ivan SavenkoandGitHub 9f07c13c1e Merge pull request #5618 from IvanSavenko/battle_fix
Fixes for recently reported combat issues
2025-04-12 10:49:48 +03:00
Ivan Savenko 1f70f27b2d Fix hypnotize spell
- Fix testing for Hypnotized status
- Fix handling of three-headed & all-around attack (Cerberi / Hydras)
while hypnotized
2025-04-11 18:01:49 +03:00
Ivan SavenkoandGitHub b518b79505 Merge pull request #5615 from IvanSavenko/locale_fix
Fixes to locale/unicode handling
2025-04-11 17:06:11 +03:00
Ivan Savenko dcb7a9e9f3 Fixes to locale/unicode handling
- Fixes crash on opening spellbook (recent regression)
- Fix crash if `haystack` string is shorter than `needle`
- Levenstein distance computation is now case-insensitive
- Text similarity computation now assumes utf-8 strings, not ascii
- Fix corruption of utf-8 string on life drain
2025-04-11 16:27:26 +03:00
Ivan Savenko b6c341f7c0 Likely fix for inability to shoot if there was adjacent cloned unit 2025-04-11 00:35:11 +03:00
Ivan Savenko d150b3907d Fix crash on using life drain with area attacks, like magog w life drain 2025-04-11 00:34:39 +03:00
Ivan Savenko 2f149b59ca Fix unit spellcasting when defending in a hotseat pvp battle
Check interface of player that is currently acting in combat, not player
that is making turn on map
2025-04-11 00:33:21 +03:00
Ivan Savenko f05dc412f0 Use SDL scancodes instead of keycodes for keybindings 2025-04-10 22:47:43 +03:00
Ivan Savenko e51ba74214 Fix loading of spell immunity icons for corresponding bonus 2025-04-10 22:24:22 +03:00
Ivan SavenkoandGitHub 0b437e8b1d Merge pull request #5611 from GeorgeK1ng/custom_directories
Allow changing default directories in Windows
2025-04-10 17:31:41 +03:00
Ivan SavenkoandGitHub 2c8f562182 Merge pull request #5603 from MichalZr6/locale_fix
Fix crash when setting up locale on Android
2025-04-09 17:25:28 +03:00
Ivan SavenkoandGitHub 6247ed80d2 Merge pull request #5592 from GeorgeK1ng/mod_types
Add "Campaigns" mod type
2025-04-09 17:24:32 +03:00
Ivan SavenkoandGitHub fb97891cd3 Merge pull request #5610 from IvanSavenko/beta_crashfixes
Beta crashfixes
2025-04-09 17:23:32 +03:00
Ivan Savenko 49e215a7c3 Bump fuzzylite submodule to latest commit 2025-04-06 18:45:30 +03:00
Ivan Savenko dcbf12ef26 Fix rare crash on merging two stacks in town garrison with stack
artifacts equipped
2025-04-06 18:44:44 +03:00
Ivan Savenko cbfaefd805 Fix rare crash if player selects maximum movement speed and moves hero
across event that grants enough XP to level up
2025-04-06 18:43:55 +03:00
Ivan Savenko 87caec6be1 Check for presence of builtin ttf fonts & report on start to avoid
strange crashes on font loading
2025-04-06 18:41:20 +03:00
Ivan Savenko 4555b2d228 Increase system RAM for xbrz2 auto-activation to 4Gb due to crashes on
Android
2025-04-06 18:40:27 +03:00
Ivan Savenko 6c1cb3ac54 Workaround / debug info for crash on failure to render ttf text 2025-04-06 18:39:53 +03:00
Ivan Savenko 3dd15beede Fix rare crash if player changes starting hero in MP while another has
town right-click popup open
2025-04-06 18:39:29 +03:00
Ivan SavenkoandGitHub e1be9af5e6 Merge pull request #5602 from IvanSavenko/fuzzy_bump
Bump fuzzylite submodule to latest commit
2025-04-02 16:01:34 +03:00
Ivan SavenkoandGitHub f2ffe32d5c Merge pull request #5597 from BenFradet/fix-dwellings
Fix dwellings recruitment text
2025-04-02 13:57:12 +03:00
Ivan SavenkoandGitHub 549a729e20 Merge pull request #5591 from IvanSavenko/vector_replace
Support for replacement of individual entries in json lists
2025-04-02 13:55:19 +03:00
Ivan SavenkoandGitHub dd823d1681 Merge pull request #5560 from GeorgeK1ng/campaigns
[1.7] Campaigns configurations improvements
2025-04-02 13:54:50 +03:00
Ivan SavenkoandGitHub 76418e7f14 Merge pull request #5522 from XCOM-HUB/patch-2
Update swedish.json (beta)
2025-04-02 13:54:39 +03:00
Ivan Savenko 40870d8f64 Bump fuzzylite submodule to latest commit 2025-04-01 17:58:21 +03:00
Ivan SavenkoandGitHub efe2f4e0ba Merge pull request #5596 from BenFradet/fix-fedora-building
Fix fedora building instructions
2025-03-30 21:24:36 +03:00
Ivan Savenko 58a6aabd4c Switch list patching to more user-friendly 1-based indexing 2025-03-30 17:18:47 +03:00
Ivan Savenko 4dc82284b4 Add docs 2025-03-30 17:12:42 +03:00
Ivan Savenko aeb6c0be26 Support for replacement of individual entries in json lists
It is now possible for mods to modify json lists precisely, without full
replacement. Supported options:
- `append`: appends a single item to end of list
- `appendItems`: appends multiple items to end of list
- `insert@NUM`: inserts a single item *before* item NUM (item counting
is 0-based)
- `modify@NUM`: allows editing of a single item NUM (item counting is 0-
based)

Example - addition of a new item into town hall slots:
```json
"hallSlots":
{
	"modify@4" : {
		"append" : [ "dwellingLvl7B", "dwellingUpLvl7B" ]
	}
},
```
This would modify 4th element (last row) by appending new entry to the
end of last row

```json
{
	"modify@4" : {
		"insert@1" : [ "dwellingLvl5B", "dwellingUpLvl5B" ]
	}
},
```
This would add new slot not in the end of last row, but before 1st item
(between 5th and 6th dwellings)
2025-03-27 19:22:50 +00:00
Ivan SavenkoandGitHub 4cf0211600 Merge pull request #5587 from IvanSavenko/crashfixes_beta
Fixes for beta
2025-03-27 13:51:34 +02:00
Ivan SavenkoandGitHub 4df4438f59 Merge pull request #5588 from IvanSavenko/ci_fix
Fix CI failure in develop branch
2025-03-26 22:33:09 +02:00
Ivan Savenko 8771ecdf57 Workaround for crash due to static destruction order 2025-03-26 20:32:55 +00:00
Ivan Savenko c6a541752e Fix unused variable on serialization 2025-03-26 19:55:56 +00:00
Ivan Savenko 7d3e59d7d3 Do not track clipboard on mobile systems to avoid permissions prompt 2025-03-26 16:00:31 +00:00
Ivan Savenko 8a0fed7b3a Temporarily(?) use weak_ptr to reduce ram usage increase during long
game sessions
2025-03-26 15:37:38 +00:00
Ivan Savenko ded12f2df9 Disable auto-selection of xbrz on 32-bit systems 2025-03-26 15:37:38 +00:00
Ivan Savenko 9da598dcaf Fix possible crash on accessing content rect with nullptr surface 2025-03-26 15:37:38 +00:00
Ivan SavenkoandGitHub 1c96489721 Merge pull request #5569 from Laserlicht/configeditor
Editor for JSON config in launcher
2025-03-26 17:28:26 +02:00
Ivan SavenkoandGitHub 0197d226c9 Merge pull request #5565 from kdmcser/new_morale_luck
support setting dice molecule for rolling morale and luck
2025-03-26 16:53:13 +02:00
Ivan SavenkoandGitHub 3ca0c7661a Merge pull request #5584 from kambala-decapitator/macos-launcher-quit
[launcher] restore quitting launcher when starting game on Windows and macOS
2025-03-26 16:48:32 +02:00
Ivan SavenkoandGitHub 33f708c744 Merge pull request #5577 from GeorgeK1ng/skill_removal
Skill removal as reward
2025-03-26 16:47:37 +02:00
Ivan SavenkoandGitHub dfbe6d1965 Merge pull request #5572 from IvanSavenko/old_banks_remove
Remove deprecated support for banks in 1.5 format
2025-03-26 16:45:56 +02:00
Ivan SavenkoandGitHub bc07fa2fa3 Merge pull request #5571 from IvanSavenko/boost_old_remove
Remove old boost includes and defines
2025-03-26 16:45:39 +02:00
Ivan SavenkoandGitHub 356eaae716 Merge pull request #5543 from kambala-decapitator/ios-portrait-mode
[iOS] enable portrait mode
2025-03-19 10:09:47 +02:00
Ivan Savenko c73116a010 Reduce boost includes further 2025-03-19 08:03:56 +00:00
Ivan Savenko 7a3e1409d0 Remove old boost includes and defines 2025-03-19 08:03:56 +00:00
Ivan Savenko 2b286378e8 Remove logic for banks in 1.5 format 2025-03-19 08:02:39 +00:00
Ivan SavenkoandGitHub 8e1bd64799 Merge pull request #5570 from IvanSavenko/savecompat_150
Remove save compatibility with 1.5.X
2025-03-19 10:01:57 +02:00
Ivan Savenko ca8dcf30ed Fix build 2025-03-18 11:56:22 +00:00
Ivan Savenko eb3b51a6cf Remove save compatibility with 1.5.X 2025-03-18 11:35:15 +00:00
Ivan SavenkoandGitHub 81759143f4 Merge pull request #5436 from MichalZr6/fix_map_sorting
Small improvements to map sorting and search mapobjects feature
2025-03-16 19:19:44 +02:00
Ivan SavenkoandGitHub 860f65ea62 Merge branch 'develop' into fix_map_sorting 2025-03-16 19:19:27 +02:00
Ivan SavenkoandGitHub 134535ee15 Merge pull request #5562 from kambala-decapitator/editorconfig
add EditorConfig configuration
2025-03-16 19:09:37 +02:00
Ivan SavenkoandGitHub 64aaaf68d5 Merge pull request #5549 from MichalZr6/BattleHexArray_update
Fix BattleHexArray::contains() and fix no damage chance for catapult
2025-03-16 19:09:28 +02:00
Ivan SavenkoandGitHub 8ed3126a36 Merge pull request #5547 from kambala-decapitator/ios-mute-switch
[iOS] add setting to honor mute switch
2025-03-16 19:09:06 +02:00
Ivan SavenkoandGitHub 6ed1aad11b Merge pull request #5545 from Laserlicht/video_skip_harominize
optimize skip video keys
2025-03-16 19:08:57 +02:00
Ivan SavenkoandGitHub cb7c2d2f07 Merge pull request #5544 from IvanSavenko/fix_shutdown
Fix shutdown
2025-03-16 19:08:41 +02:00
Ivan Savenko ed4079e83b Code cleanup, add comments where relevant 2025-03-12 15:57:06 +00:00
Ivan Savenko 6877bbfe3a Fix issues found by Valgrind 2025-03-12 15:56:52 +00:00
Ivan Savenko 96d691b40c Fix crash on closing game during background image upscaling 2025-03-12 14:18:44 +00:00
Ivan Savenko 6855b895a0 Fix possible crashes on audio shutdown 2025-03-12 13:33:12 +00:00
Ivan Savenko 4684756c49 Do not create ENGINE in headless mode 2025-03-12 13:33:12 +00:00
Ivan Savenko eaad6f9ce0 Fix crash on trasferring to next scenario in campaign 2025-03-12 13:33:12 +00:00
Ivan Savenko e73d05933d Quick shutdown of ConsoleHandler thread 2025-03-12 13:33:12 +00:00