Ivan Savenko
ed70e94f9a
Better reporting for configurable building initialization crash
2025-01-19 16:13:12 +00:00
Ivan Savenko
82b81a7853
Added better error reporting for unclear crashes
2025-01-19 12:39:22 +00:00
godric3
4b7792075d
map editor: option to set random town same as player faction
2025-01-05 21:57:11 +01:00
Ivan Savenko
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
Ivan Savenko
95a07ee5cb
Use bonus system cache whenever possible
2024-12-21 18:47:11 +00:00
MichalZr6
f893c80192
Move UpgradeInfo class to header and source files
2024-12-19 14:13:09 +01:00
MichalZr6
af9445c16f
Fixes following review
2024-12-17 22:34:06 +01:00
MichalZr6
d8d3948ac3
Fix AI to use hillFort all available upgrades. UpgradeInfo refactor.
2024-12-17 22:34:06 +01:00
Dydzio
7be31c94f2
Fixes from code review
2024-12-05 21:16:06 +01:00
Dydzio
e9be46af98
Merge branch 'develop' into timed_events_objects_removal
2024-12-03 17:27:24 +01:00
Ivan Savenko
01d787fb5a
Removed remaining cases of serialization of VLC entities
2024-10-30 16:48:18 +00:00
Ivan Savenko
d3af9f1c67
Removed pointer to VLC entity from CStackBasicDescriptor
2024-10-30 16:47:02 +00:00
Ivan Savenko
08fbcd5239
TerrainTile now uses identifiers instead of pointers to VLC
2024-10-30 16:22:11 +00:00
Ivan Savenko
ee59bc4e71
Add bonus description generation for map objects
2024-10-25 18:36:02 +00:00
Ivan Savenko
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
Ivan Savenko
a8f8c3f4b1
Replaced most of accesses to CGObjectInstance::pos with anchorPoint()
2024-10-09 15:43:46 +00:00
Ivan Savenko
c0f5c7c0ea
Replace pointer with reference in pack apply functions
2024-10-07 14:59:46 +00:00
godric3
87ebb22a55
map editor: fix reading town faction name for non random towns on h3m maps
2024-10-06 13:59:34 +02:00
Laserlicht
9c6bd20159
code review
2024-10-01 16:32:28 +02:00
godric3
d078c5ff2d
store ObjectInstanceID of objects to remove instead of their position
2024-09-30 20:44:40 +02:00
godric3
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
Laserlicht
713fcd6543
research per day & seperate config
2024-09-30 02:40:28 +02:00
Laserlicht
d929bfb9d1
rename; introduce factor
2024-09-28 15:05:13 +02:00
Laserlicht
2052a26031
code review
2024-09-28 14:25:11 +02:00
Laserlicht
7707adc44f
checks on server
2024-09-28 01:18:10 +02:00
Ivan Savenko
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
Ivan Savenko
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
Ivan Savenko
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
Laserlicht
ff65a33d44
fixes bug for 8th creature
2024-09-03 11:03:37 +02:00
Ivan Savenko
39e5ba32f6
Merge pull request #4530 from IvanSavenko/town_fortifications
...
Support for configurable town fortifications
2024-08-31 13:59:40 +03:00
Ivan Savenko
73459876bf
Initial garrison of a town should now match H3 logic
2024-08-29 15:46:22 +00:00
Ivan Savenko
b436290d16
Fix crash on right-clicking a neutral town
2024-08-29 15:45:46 +00:00
Ivan Savenko
21fc80a315
Growth of town garrison in neutral towns now uses H3 logic
2024-08-29 15:22:31 +00:00
Ivan Savenko
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
Ivan Savenko
408a632002
Deprecate artifact-related building types
2024-08-28 13:50:08 +00:00
Ivan Savenko
8ef8ffa5c4
Implemented configurable blacksmith. Deprecated ballistaYard type
2024-08-28 13:49:42 +00:00
Ivan Savenko
d49a61645c
All objects that can be owned by player now implement IOwnableObject
2024-08-28 12:51:28 +00:00
Ivan Savenko
a481f07daf
PlayerState now stores all objects owned by player
2024-08-28 12:51:27 +00:00
Ivan Savenko
0fd9dbf240
Unified income handling, added IOwnableObject interface
2024-08-28 12:40:44 +00:00
Ivan Savenko
189cb1c762
Moved most of daily income handling to a separate method
2024-08-28 12:40:44 +00:00
Ivan Savenko
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
Ivan Savenko
f765f212bb
Restore save compatibility
2024-08-26 20:52:37 +00:00
SoundSSGood
4035ab1550
added CMarketWindow::getMarketTitle()
2024-08-24 13:52:54 +03:00
SoundSSGood
0c5022cae8
Loading market modes from json
2024-08-24 11:51:57 +03:00
SoundSSGood
2e3e6b1553
market->getObjInstanceID()
2024-08-21 01:01:23 +03:00
SoundSSGood
58bb2b58e3
IMarket suggestions
...
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-08-20 18:49:48 +03:00
SoundSSGood
39bb6d5f39
IMarket now able to store artifacts
2024-08-20 18:49:47 +03:00
Ivan Savenko
22a126cf2d
Restored replacement of town building bonuses via building upgrade
2024-08-19 11:47:13 +00:00
Ivan Savenko
2f3f3c21df
Rename town building types to more clear names
2024-08-19 11:47:13 +00:00
Ivan Savenko
01a9509ccb
Remove unused code, reduce includes
2024-08-19 11:47:13 +00:00