Ivan Savenko
1d2d189e4a
Add tests for bonus system propagation, fix discovered issues
2025-08-04 12:23:38 +03:00
Ivan Savenko
6ac57a7cfc
Improvements to bonus system node types / propagators
...
- Node type is now set on construction and never changes
- Added army propagator that also checks for TOWN and HERO
- Renamed existing propagators to be in sync with enumeration
2025-06-25 17:34:20 +03:00
Ivan Savenko
1e3e2f665c
Remove strange & unused double-selector logic
2025-06-24 12:06:23 +03:00
Ivan Savenko
0ebe9bd414
Fix invalidation of bonus propagation updaters
2025-06-24 11:27:34 +03:00
Ivan Savenko
3f4ff58a5e
Merged bonus names with bonus descriptions, since they are never used
...
separately
2025-05-25 11:56:54 +03:00
Ivan Savenko
e6a8e5d4bd
Correctly restore bonus system on deserialization
2025-04-27 14:57:31 +03:00
Ivan Savenko
e829d723b2
Replace global bonus tree change counter with per-node counter
2025-01-12 12:23:07 +00:00
Ivan Savenko
42b960417c
Reworked bonus caching locking scheme:
...
- use concurrent map from tbb for faster access to already cached values
- use std::shared_mutex instead of boost::mutex to access bonuses
- accessing to values existing in cache is now done without locking main
mutex
2024-12-21 14:43:09 +00:00
K
bda1adbdfd
miniscule bonus system cleanup
...
update comments, remove one never used method, make another method private
2024-09-18 16:41:41 +02:00
K
462c79e190
remove never used code in CBonusSystemNode
...
Method CBonusSystemNode::getAllBonuses have 'root' parameter which is never
set to anythig else than nullptr. This patch removes the parameter and all
code that depends on it as preparatory work for further bonus system
optimization.
2024-08-25 14:15:21 +02:00
Alexander Wilms
02e429e973
Fix typos using https://github.com/crate-ci/typos
...
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Ivan Savenko
0c07384293
Refactoring of serialization versioning handling
...
- Removed 'version' field from serialize() method
- Handler classes - Binary(De)Serializer now have 'version' field
- Serialization versioning now uses named enum
Save compatibility with 1.4.X saves should be intact
2024-01-20 20:34:51 +02:00
Ivan Savenko
6e629a6a5f
split getBonusLocalFirst into two distinct method:
...
- const method getFirstBonus that returns single matching bonusToString
- non-const method getLocalBonus that returns bonus from current node
2024-01-19 13:56:06 +02:00
Ivan Savenko
ea1f05d15a
Stabilization
2024-01-19 13:55:22 +02:00
Ivan Savenko
c37ce05d06
Attempt to make constant bonus system nodes (CCreature / CArtifact)
...
fully constant
2024-01-19 13:54:49 +02:00
Ivan Savenko
2c4cad7d9c
Slight simplification of bonus system node class
2024-01-19 13:54:49 +02:00
Konstantin
e60a4318c3
vcmi: a bunch of forward definitions
2023-05-07 20:37:32 +03:00
Konstantin P
0cbc2e458c
CBonusSystemNode: remove description
...
It was almost unused, but this change is save-breaking
2023-05-05 18:57:11 +03:00
Konstantin P
d0e6205688
CBonusSystemNode: make some properties private
2023-05-05 18:57:11 +03:00
Konstantin
29c76fb9bf
HeroBonus: split BonusList
2023-05-02 00:54:53 +03:00
Konstantin
4866c2fe5c
vcmi: split IBonusBearer
2023-05-02 00:54:53 +03:00
Konstantin
1d34c73c2d
vcmi: split CBonusSystemNode, BonusParams and prop
...
More splitting of HeroBonus.h
2023-05-02 00:54:53 +03:00