Normalize quoted local relative include directives to remove redundant
path segments while preserving relative includes.
This applies the normalizer across the tree and updates 108 includes in
64 files, including cases where paths inside lib/* redundantly used
../../lib/... and now correctly use ../... .
These paths compiled before because include resolution normalized them,
but they were longer and harder to audit.
Many quoted local includes had an incorrect ../ depth and resolved to
non-existent files from the including file's directory.
This was easy to miss because normal target include directories and PCH
usage masked some failures, and several stale paths lived in files that
are only compiled in optional test configurations. As a result, the
problem mostly surfaced in stricter or broader fresh builds.
Audit all C++ and header local includes, keep them relative, and adjust
paths so each include resolves to an existing in-tree header. For
headers that were renamed or moved, update includes to their current
relative location instead of switching to include-root form.
A few legacy ERM tests also used dynamic_ptr_cast at call sites where we
had to replace stale headers. The helper/header path they relied on is
no longer present after 81af66d35b, so
those downcasts are now explicit dynamic_cast calls with the same intent.
As discussed on Discord:
- NKAI has been removed since it is now superseded by NKAI 2
- fuzzy logic as well as fuzzylite library itself is also removed - it
was disabled in 1.5 release or so, and AI developers have no interest in
using it
Player that use NKAI1 should automatically switch to NKAI2
Suggested on Discord
- implements STACK_EXPERIENCE_GAIN_PERCENT that modifies stack
experience received by units after combat
- removed "EXPERIENCE" primary skill. Changes to experience are now
applied through separate netpack
VCMI will now show icons for all heroes on visible part of minimap to
help with readability on large maps
Old behavior can be enable via toggle in game settings menu