1
0
mirror of https://github.com/vcmi/vcmi.git synced 2026-04-26 20:02:20 +02:00

338 Commits

Author SHA1 Message Date
Ivan Savenko bd60bc8233 Add workaround for crash on loading hota 1.8 map without hota 1.8 2026-02-15 12:54:32 +02:00
Ivan Savenko f7c1cab99c Add movement points limiter to rewardable objects
Now movement points have same level of functionality/checks as mana
points:

- support for test for movement points in limiter
- support for test for movement points percentage in limiter
- support to block granted movement points to go above hero limit
2026-01-27 18:21:51 +00:00
Ivan Savenko 474d6487b9 Fix Trapper Lodge docs & parsing of Sea Barrel objects from HotA 2026-01-22 23:18:57 +00:00
Ivan Savenko b4581bd729 Fix on-map configuration of hota-only objects 2026-01-19 19:25:43 +00:00
Ivan Savenko 605477304f Add docs for preconfigured map objects, cleanup corresponding code 2026-01-19 05:57:17 +00:00
Ivan Savenko 825c60552c Fix issues with map support discovered after testing 2026-01-17 11:51:07 +00:00
Ivan Savenko 77972858d0 Fix build 2026-01-15 23:30:03 +00:00
Ivan Savenko 40072e8e72 Cleanup Hota 1.8 h3m support 2026-01-15 22:21:54 +00:00
Ivan Savenko 3b42e0a96e Support for parsing hota 1.8 maps 2026-01-15 22:21:54 +00:00
Ivan Savenko 3552261d3c Fix initialization of creture banks with random preset on hota maps 2026-01-15 22:21:54 +00:00
Ivan Savenko ad70c317d4 Support for on-map object configuration
Following objects now support on-map configuration of rewards on HotA
maps:

H3 - Campfire, Wagon, Lean-to
HotA - Grave, Ancient Lamp, Sea Barrel (requires mod adjustment)
2026-01-15 22:21:31 +00:00
Ivan Savenko 32a4261fc8 Support custom guards in abandoned mine 2026-01-15 21:53:44 +00:00
Ivan Savenko 46b36ddaf8 Implement remaining new properties for creatures in hota h3m 2026-01-15 21:53:06 +00:00
Laserlicht 00a3409203 map layer types 2026-01-03 21:07:57 +01:00
Ivan Savenko 8014b05399 Improvements for HotA h3m support
Mostly based on the mysterious island map test results

Added support for:
- Pandoras or map events can now grant movement points
- Pandoras or map events can now specify map difficulties on which these
objects are present
- Timed events and town events can now specify map difficulties on which
these objects are present
- Creature banks now support selection of difficulty preset (number of
guards/reward) instead of random-selection
- Wandering monsters "joins only for money" flag is now supported
- Wandering monsters presence of upgraded stack can now be configured in
map
- Pyramid can now grant specific spell configured in map
- Treasure Chest, Corpse, Sea Chest, Flotsam, Tree of Knowledge can now
grant specific reward instead of randomly selected one
- Treasure Chest, Corpse, Warrior's Tomb, Shipwreck Survivor and Sea
Chest can now grant specific artifact configured in map
2025-12-23 12:38:29 +02:00
kdmcser 86502f58b6 implement HotA map stack count 2025-12-16 23:59:47 +08:00
Ivan Savenko 21d3f690b8 Fix handling of artifacts in Seer Huts on HotA maps
Fixed bug that caused artifacts in Pandora Boxes, Seer Huts/Border
guards quests, and Seer Hut rewards fail to load, resulting in
potentially broken map objects
2025-10-27 21:18:41 +02:00
Michał Zaremba 249c9507e7 Fix remove artifacts during map load 2025-09-18 10:56:53 +02:00
Ivan Savenko 118029b2ba Merge pull request #5964 from Laserlicht/levels
multilevel support
2025-08-14 11:03:42 +03:00
Laserlicht ecfe09f6b1 multilevel support 2025-08-01 02:21:44 +02:00
Ivan Savenko 760eff8139 Fix crash on loading town with unit that has ability propagated to army 2025-07-31 21:57:28 +03:00
Ivan Savenko 1f9a1dbf37 Fix artifacts providing hero with banned spells
Tomes of X Spells and Spellbinder's Hat (and any other sources for such
bonuses from mods) will no longer provide spells that are banned on map.

Option is only active for random maps and for HotA h3m's. RoE-SoD .h3m's
work as before.

If needed, behavior can be changed in config
2025-07-26 19:44:00 +03:00
Ivan Savenko 2ad186130f Split MapDefines file on .h per class basis 2025-07-07 18:16:42 +03:00
Ivan Savenko 74e697d41c Fix regression from bonus system changes 2025-07-01 13:34:30 +03:00
Laserlicht bd090059da small refactoring 2025-06-22 00:31:33 +02:00
Ivan Savenko 6d359e4112 Create heroes in pool via handler to properly initialize appearance 2025-06-17 14:36:17 +03:00
Ivan Savenko 463c404a83 Use bonus only as shared_ptr to avoid memory corruption 2025-06-16 16:22:21 +03:00
Ivan Savenko ae2e6f0357 Add workaround for strange/unknown hota h3m quirk 2025-06-15 17:01:29 +03:00
Ivan Savenko 1ea2ce7959 Identifier remapping support for campaigns 2025-06-15 17:01:28 +03:00
Ivan Savenko 5ccb32aa4e Fix parsing of hota 1.7.3 maps/campaigns 2025-06-09 21:40:11 +03:00
Ivan Savenko 4d4da0454f map objects hierarchy now uses IGameInfoCallback 2025-05-14 18:33:20 +03:00
Ivan Savenko 6f20235d07 Merge CPrivilegedInfoCallback into CGameInfoCallback 2025-05-14 13:42:20 +03:00
Ivan Savenko 716da918f8 Completely remove IGameCallback class
- CClient now inherits directly from CPrivilegedInfoCallback, like
IGameCallback did before. However CClient no longer needs dummy
implementation of IGameEventCallback
- CGObjectInstance hierarchy now uses CPrivilegedInfoCallback for
callback. Actual events can only be emitted in calls that receive
IGameEventCallback pointer, e.g. heroVisit
- CGameHandler now inherits directly from both CPrivilegedInfoCallback
and IGameEventCallback as it did before via IGameCallback
2025-05-14 13:39:41 +03:00
Ivan Savenko 0e2ea99283 Implemented option to emulate H3 seer hut full-army quest bug 2025-05-07 19:16:58 +03:00
Ivan Savenko 92c4bcbf68 Unify checks for creature limiter 2025-05-07 16:35:15 +03:00
Ivan Savenko f1d9d8479f Extend rewards & limiters functionality 2025-05-06 17:28:12 +03:00
Ivan Savenko 5dec3efa2f Spell scrolls as a reward 2025-05-06 17:28:12 +03:00
Ivan Savenko 62e774c91e Add new rewards for configurable objects 2025-05-06 17:28:11 +03:00
Ivan Savenko 283adc37d7 Unit stack rebalancing rework
- CStackInstance::count is now private with accessor methods
- CStackInstance::experience renamed to totalExperience and now stores
total stack experience (multiplied by stack size) to reduce rounding
errors
- CStackInstance::totalExperience is now private with accessors methods
- stack experience is now automatically reallocated on stack management
- Removed buggy BulkSmartRebalanceStacks pack, that mostly duplicates
BulkRebalanceStacks
- Renamed BulkSmartSplitStack to BulkSplitAndRebalanceStack to drop
unclear "smart" in name
- Reworked split-and-rebalance logic to correctly reallocate stack
experience
2025-05-01 18:18:30 +03:00
Ivan Savenko f70ad2c15b Reorganized artifact-related classes
- files now generally contain only 1 class (except for tightly coupled
classes)
- files are now located in lib/entities/artifact directory
- removed excessive includes

No changes to functionality
2025-04-29 13:29:08 +03:00
Ivan Savenko 4e8e85e3e4 Fix issues reported by Sonar, review fixes 2025-04-27 14:57:31 +03:00
Ivan Savenko f3a57f754c Fix loading of SoD & later maps 2025-04-27 14:57:31 +03:00
Ivan Savenko a89cf280e3 Fix campaigns progression 2025-04-27 14:57:31 +03:00
Ivan Savenko 912c2eae94 Fix regressions 2025-04-27 14:57:31 +03:00
Ivan Savenko cd7732456a Remove pointer to objects from TerrainTile 2025-04-27 14:57:30 +03:00
Ivan Savenko 63d00b080e Removed pointer to army from StackInstance 2025-04-27 14:57:30 +03:00
Ivan Savenko 16a06179cf Use ArtifactInstanceID in CGArtifact 2025-04-27 14:57:30 +03:00
Ivan Savenko ab11d2b075 Remove quests from CMap, now solely owned by quest objects 2025-04-27 14:57:30 +03:00
Ivan Savenko c02a8a84fd Stacks of armed instance are now unique_ptr 2025-04-27 14:57:30 +03:00
Ivan Savenko bdae7285ae Objects list is now private member of CMap 2025-04-27 14:57:30 +03:00