1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-15 00:05:02 +02:00
Commit Graph

280 Commits

Author SHA1 Message Date
2ee5f2df02 Merge pull request #5295 from IvanSavenko/bugfixing
[1.6.4] Bugfixing for recently reported issues
2025-01-21 15:50:02 +02:00
ed70e94f9a Better reporting for configurable building initialization crash 2025-01-19 16:13:12 +00:00
82b81a7853 Added better error reporting for unclear crashes 2025-01-19 12:39:22 +00:00
e829d723b2 Replace global bonus tree change counter with per-node counter 2025-01-12 12:23:07 +00:00
4b7792075d map editor: option to set random town same as player faction 2025-01-05 21:57:11 +01:00
4ccd860b2f Fix possible crash on loading save with invalid buildings, e.g. Mage
Guild 4 in towns without one
2025-01-03 15:41:26 +00:00
95a07ee5cb Use bonus system cache whenever possible 2024-12-21 18:47:11 +00:00
f893c80192 Move UpgradeInfo class to header and source files 2024-12-19 14:13:09 +01:00
af9445c16f Fixes following review 2024-12-17 22:34:06 +01:00
d8d3948ac3 Fix AI to use hillFort all available upgrades. UpgradeInfo refactor. 2024-12-17 22:34:06 +01:00
7be31c94f2 Fixes from code review 2024-12-05 21:16:06 +01:00
e9be46af98 Merge branch 'develop' into timed_events_objects_removal 2024-12-03 17:27:24 +01:00
01d787fb5a Removed remaining cases of serialization of VLC entities 2024-10-30 16:48:18 +00:00
d3af9f1c67 Removed pointer to VLC entity from CStackBasicDescriptor 2024-10-30 16:47:02 +00:00
08fbcd5239 TerrainTile now uses identifiers instead of pointers to VLC 2024-10-30 16:22:11 +00:00
ee59bc4e71 Add bonus description generation for map objects 2024-10-25 18:36:02 +00:00
3dd4fa2528 Reduce usage of pointers to VLC entities
Final goal (of multiple PR's) is to remove all remaining pointers from
serializeable game state, and replace them with either identifiers or
with shared/unique pointers.

CGTownInstance::town and CGHeroInstance::type members have been removed.
Now this data is computed dynamically using subID member.

VLC entity of a town can now be accessed via following methods:
- getFactionID() returns ID of a faction
- getFaction() returns pointer to a faction
- getTown() returns pointer to a town

VLC entity of a hero can now be accessed via following methods:
- getHeroTypeID() returns ID of a hero
- getHeroClassID() returns ID of a hero class
- getHeroType() returns pointer to a hero
- getHeroClass() returns pointer to a hero class
2024-10-10 12:28:08 +00:00
a8f8c3f4b1 Replaced most of accesses to CGObjectInstance::pos with anchorPoint() 2024-10-09 15:43:46 +00:00
c0f5c7c0ea Replace pointer with reference in pack apply functions 2024-10-07 14:59:46 +00:00
87ebb22a55 map editor: fix reading town faction name for non random towns on h3m maps 2024-10-06 13:59:34 +02:00
9c6bd20159 code review 2024-10-01 16:32:28 +02:00
d078c5ff2d store ObjectInstanceID of objects to remove instead of their position 2024-09-30 20:44:40 +02:00
e50ba14bbe Use exact position of object to remove + add object name to list of objects to remove 2024-09-30 19:17:21 +02:00
713fcd6543 research per day & seperate config 2024-09-30 02:40:28 +02:00
d929bfb9d1 rename; introduce factor 2024-09-28 15:05:13 +02:00
2052a26031 code review 2024-09-28 14:25:11 +02:00
7707adc44f checks on server 2024-09-28 01:18:10 +02:00
39a2c29c97 Removed creatureBank flag from battle, battles now receive BattleLayout
struct that defines how units are placed in combat
2024-09-12 12:11:18 +00:00
6179521364 Merge pull request #4556 from IvanSavenko/town_building_visit
Implemented explicitly visitable town buildings, e.g. hota mana vortex
2024-09-05 17:21:21 +03:00
b09d9d501b Pass pointer to actual caller in showBlockingDialog callWith
Fixes activation of all rewardable buildings in town on blocking dialog
answer
2024-09-04 15:14:56 +00:00
ff65a33d44 fixes bug for 8th creature 2024-09-03 11:03:37 +02:00
39e5ba32f6 Merge pull request #4530 from IvanSavenko/town_fortifications
Support for configurable town fortifications
2024-08-31 13:59:40 +03:00
73459876bf Initial garrison of a town should now match H3 logic 2024-08-29 15:46:22 +00:00
b436290d16 Fix crash on right-clicking a neutral town 2024-08-29 15:45:46 +00:00
21fc80a315 Growth of town garrison in neutral towns now uses H3 logic 2024-08-29 15:22:31 +00:00
36c1ed670f Support for configurable town fortifications
Removed most of hardcoded checks for fort level or for presence of fort/
citadel/castle buildings.

It is now possible to define which parts of town fortifications are
provided by town buildings

Configuration for H3-like fortifications is provided in
buildingsLibrary.json and will be used automatically by mods as long as
mods have buidings named "fort", "citadel" and "castle".

Alternatively, mods can separately define:
- hitpoints of walls (shared value for all sections)
- hitpoints of central, upper and lower towers (separate values)
- presence of moat
- shooters for each tower (separate values)
2024-08-28 19:42:14 +00:00
408a632002 Deprecate artifact-related building types 2024-08-28 13:50:08 +00:00
8ef8ffa5c4 Implemented configurable blacksmith. Deprecated ballistaYard type 2024-08-28 13:49:42 +00:00
d49a61645c All objects that can be owned by player now implement IOwnableObject 2024-08-28 12:51:28 +00:00
a481f07daf PlayerState now stores all objects owned by player 2024-08-28 12:51:27 +00:00
0fd9dbf240 Unified income handling, added IOwnableObject interface 2024-08-28 12:40:44 +00:00
189cb1c762 Moved most of daily income handling to a separate method 2024-08-28 12:40:44 +00:00
20d5b33ea6 Remove marketModes as member
marketModes are now generated in runtime and are not a member of
IMarket. Was not a bad change, but towns load buildings before town type
is randomized, leading to case where market modes are not actually known
when building is added to town (like random towns with market built)

Since altar requires CArtifactSet for work, IMarket will now always
contain it, but it will only be accessible if market supports altar
mode.
2024-08-27 14:07:00 +00:00
f765f212bb Restore save compatibility 2024-08-26 20:52:37 +00:00
4035ab1550 added CMarketWindow::getMarketTitle() 2024-08-24 13:52:54 +03:00
0c5022cae8 Loading market modes from json 2024-08-24 11:51:57 +03:00
2e3e6b1553 market->getObjInstanceID() 2024-08-21 01:01:23 +03:00
58bb2b58e3 IMarket suggestions
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-08-20 18:49:48 +03:00
39bb6d5f39 IMarket now able to store artifacts 2024-08-20 18:49:47 +03:00
22a126cf2d Restored replacement of town building bonuses via building upgrade 2024-08-19 11:47:13 +00:00