a6c7fda649
avoid one loop in BonusList::totalValue()
2024-09-04 23:10:54 +02:00
82c37573fa
Removed save compatibility with 1.4
...
All save compatibility checks targeting 1.4 saves have now been removed.
Saves from 1.5 can still be loaded in 1.6
Implemeted few TODO's in serialization that were postponed to avoid
breaking save compatibility in MP for 1.5.X releases.
Fixed missed case for loading black market object from 1.5 saves
2024-08-29 18:51:53 +00:00
55fd7bd7aa
Thieves guild information level is now a bonus type
2024-08-28 13:50:07 +00:00
8371232d29
Merge pull request #4504 from Laserlicht/hota_bonus
...
disintegrate bonus
2024-08-28 14:00:11 +03:00
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
9c4d4e89d6
disintegrate
2024-08-24 00:29:36 +02:00
162535e6d8
Workaround on crash on visiting configurable building with "bonus"
...
duration
2024-08-14 17:03:25 +00:00
97f1a310df
Fix miscellaneous issues discovered by Sonar
2024-08-12 18:26:30 +00:00
48c92711f2
Fixed deserialization of new artifacts (and possibly some other objects)
...
Was broken in my previous PR, since pointer graph serialization was
enabled by default, leading to deserializationFix triggering on netpack
apply.
Cleaned up / clarified code
2024-07-29 18:19:15 +00:00
37cf788079
Merge pull request #4317 from IvanSavenko/split_townhandler
...
Split CTownHandler into smaller chunks
2024-07-22 17:42:48 +03:00
e8aa6efbb9
Merge pull request #4261 from kaja47/shrinkage
...
Reduce size of Bonus struct from 320 bytes to 296 bytes.
2024-07-22 17:12:08 +03:00
c1e6bbddfe
Reduce size of Bonus struct from 320 bytes to 296 bytes.
...
- Internal enums were resized to occupy single byte.
- Duration bitmask uses 16 bit integer directly instead of std::bitset<11> which consumed 8 bytes.
- Fields shuffled to minimise padding and keep the most useful data on first 2 cache lines.
2024-07-22 14:59:31 +02:00
4aa73b40c9
Split CTownHandler into smaller chunks
2024-07-21 18:21:48 +00:00
1aa391fdf8
Split CGeneralTextHandler file into 1 file per class form
...
All text processing code is now located in lib/texts.
No changes other than code being moved around and adjustment of includes
Moved without changes:
Languages.h -> texts/Languages.h
MetaString.* -> texts/MetaString.*
TextOperations.* -> texts/TextOperations.*
Split into parts:
CGeneralTextHandler.* -> texts/CGeneralTextHandler.*
-> texts/CLegacyConfigParser.*
-> texts/TextLocalizationContainer.*
-> texts/TextIdentifier.h
2024-07-20 12:55:17 +00:00
c00a1e1b0c
Fixed new issues detected by SonarCloud
2024-07-15 07:46:40 +00:00
6b8f94e6e7
Merge remote-tracking branch 'vcmi/master' into develop
2024-07-11 17:43:44 +00:00
a19b3b61ad
Fixed missing addInfo when owner updater is used
2024-07-08 20:57:14 +00:00
ad972eb7e2
Optimize BonusList::totalValue
2024-07-04 19:55:09 +00:00
31e1d39f92
Fix issues introduced by fixing typos
2024-06-27 08:38:04 +00:00
02e429e973
Fix typos using https://github.com/crate-ci/typos
...
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
3bea383b59
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-21 12:58:36 +00:00
1ac98e305f
Fix potential data race if two threads attempt to select bonuses with
...
different durations
2024-06-12 18:11:22 +00:00
e32b6bd807
Fix potentially uninitialized members
2024-06-12 18:10:38 +00:00
df83fa33a1
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-31 09:34:21 +00:00
28081085a8
Create separate instance of updater for every bonus
2024-05-28 16:43:28 +00:00
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
914cea5877
Tweaks
2024-04-26 19:33:26 +02:00
04691c851f
Fixes issue of bonuses not correctly removed
2024-04-26 19:22:20 +02:00
b351946afd
Add some utility bonuses for player resources boosting
2024-04-15 21:18:45 +02:00
50e8d1fd82
Add save compatibility check
2024-04-09 16:42:20 +03:00
42616cf4e8
Fix text formatting, fix todo's
2024-04-09 16:13:30 +03:00
18ece6dcf6
Remove some usages of server-side translations
2024-04-09 16:13:30 +03:00
9e49587749
Replace bonus string description with metastring that can properly
...
handle translations
2024-04-09 16:13:30 +03:00
25125f96da
Fix: licenses, pragma guards, StdInc
2024-03-29 07:48:52 +02:00
27ba4f10be
Fix BonusLimitEffect #3070
...
Change BonusList::getBonus() to return bonuses with any BonusLimitEffect by default (returned only bonuses with BonusLimitEffect::NO_LIMIT previously)
2024-03-25 23:31:58 +01:00
ff35a27176
Fix loading saved games (add ESerializationVersion)
2024-03-23 22:03:06 +01:00
05bbb45824
change MANA_PER_KNOWLEGDE to percentage
2024-03-23 20:28:49 +01:00
922966dcf8
Renamed JsonNode::meta to more logical modScope. Member is now private
2024-02-26 12:55:49 +02:00
08a27663f9
Reworked JsonNode constructors to more logical form
2024-02-26 12:55:49 +02:00
54796c7c56
Rename toJson to toString/toCompactString for consistency
2024-02-26 12:55:49 +02:00
c3957c2c2a
Moved json files to new directory, split on per-class basis
2024-02-14 13:08:24 +02:00
678cacbd25
Remove more redundant virtual
specifiers
...
`grep -nr "virtual " | grep -v googletest | grep " override" | grep -v overriden > ../redundant_virtual.txt`
```python
import os
with open("../redundant_virtual.txt") as f:
for line in f:
print()
line: str = line.strip()
print(line)
tmp = line.split(":",2)
file = tmp[0].strip()
code = tmp[-1].strip()
print(file)
print(code)
new_code = code.replace("virtual ", "", 1)
# https://superuser.com/a/802490/578501
command = f"export FIND='{code}' && export REPLACE='{new_code}' && ruby -p -i -e \"gsub(ENV['FIND'], ENV['REPLACE'])\" {file}"
os.system(command)
```
2024-02-13 15:21:30 +01:00
522cb571b3
Remove redundant virtual
specifiers
...
`grep -nr virtual | grep -v googletest | grep override > ../redundant_virtual.txt`
```python
import os
with open("../redundant_virtual.txt") as f:
for line in f:
print()
line: str = line.strip()
print(line)
tmp = line.split(":")
file = tmp[0].strip()
code = tmp[-1].strip()
print(file)
print(code)
new_code = code.replace("virtual ", "", 1)
# https://superuser.com/a/802490/578501
command = f"export FIND='{code}' && export REPLACE='{new_code}' && ruby -p -i -e \"gsub(ENV['FIND'], ENV['REPLACE'])\" {file}"
os.system(command)
```
2024-02-10 20:46:13 +01:00
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
d04241b10a
Code cleanup
2024-01-19 23:02:00 +02:00
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
ea1f05d15a
Stabilization
2024-01-19 13:55:22 +02:00
e67e4430ba
Removed most of non-const static fields in lib. Reduced header includes.
2024-01-19 13:55:22 +02:00
c37ce05d06
Attempt to make constant bonus system nodes (CCreature / CArtifact)
...
fully constant
2024-01-19 13:54:49 +02:00
2c4cad7d9c
Slight simplification of bonus system node class
2024-01-19 13:54:49 +02:00