Ivan Savenko
c68f2da977
Fix initialization of gold pile from random resource with fixed amount
2024-06-17 20:08:07 +00:00
Andrey Filipenkov
bf832d4b13
fix building editor with Apple Clang 15
2024-06-13 06:38:15 +03:00
Ivan Savenko
df83fa33a1
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-31 09:34:21 +00:00
Ivan Savenko
5d6470e527
Merge pull request #4025 from IvanSavenko/shared_ptr_lib
...
[1.6] Use shared_ptr for library entities
2024-05-30 19:14:06 +03:00
Ivan Savenko
49138e3de9
Fixes Adrienne starting without Inferno spell in campaign
2024-05-29 14:28:36 +00:00
Ivan Savenko
7461df161c
lib now uses shared_ptr for entities. Removed manual memory management.
2024-05-17 15:04:05 +00:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Ivan Savenko
0ce78cae06
Merge pull request #3926 from IvanSavenko/optimize_map_list_load
...
[1.5.1] Improve performance of parsing of map headers for map list
2024-05-11 21:56:58 +03:00
Ivan Savenko
31401e219f
Fix possible crash on nullptr dereference
2024-05-11 13:19:07 +00:00
Ivan Savenko
3acc1f1845
Improve performance of parsing of map headers for map list
2024-05-10 14:30:39 +00:00
Ivan Savenko
6ba6e0d55b
Moved serialization of ModCompatibilityInfo from MapFormat
2024-04-23 17:15:59 +03:00
Ivan Savenko
a6dead7725
Fixed loading of text strings for hota quests
2024-04-22 13:49:17 +03:00
Tomasz Zieliński
9305f360d1
Actually, lava will only have 3 obstacle sets without mods
2024-04-13 20:56:05 +02:00
Tomasz Zieliński
50ae067a60
Build fix
2024-04-13 19:33:47 +02:00
Tomasz Zieliński
f491f10d81
Final tweaks
2024-04-13 19:21:01 +02:00
Tomasz Zieliński
4fa7f0e93d
Also allow filtering biomes by faction(s)
2024-04-12 10:25:13 +02:00
Tomasz Zieliński
a356fdaf2a
Allow filtering obstacles by faction aligmnment
2024-04-11 18:10:14 +02:00
Tomasz Zieliński
d9a598ad9c
Merge remote-tracking branch 'origin/develop' into biome_system
2024-04-08 15:01:17 +02:00
Tomasz Zieliński
3e3959d360
Move all OH3 objects and obstacle sets to a mod
2024-04-08 12:50:41 +02:00
Tomasz Zieliński
86cffb3a77
Removed unused variable
2024-04-06 18:12:44 +02:00
Tomasz Zieliński
73ec53a9e0
Fix build
2024-04-06 15:29:15 +02:00
Tomasz Zieliński
b0cff23c37
Cleanup
2024-04-06 15:06:08 +02:00
Tomasz Zieliński
305e2bdf2f
Load obstacle sets from json in mods
2024-04-05 08:31:05 +02:00
Tomasz Zieliński
b1a5693612
Proof of concept with OH3 obstacles
2024-04-04 21:39:01 +02:00
Tomasz Zieliński
8ed940d538
cleanup
2024-04-03 22:24:19 +02:00
Tomasz Zieliński
9f048888dd
Restore previous removeObject
2024-04-03 22:17:36 +02:00
Tomasz Zieliński
12da0196a0
Restrict reindexing to random maps
2024-04-03 20:05:35 +02:00
Tomasz Zieliński
2a213f2276
Reindex objects to show interactive objects on top
2024-04-03 14:48:04 +02:00
Tomasz Zieliński
263d439605
Fix uninitialized variable
2024-03-24 07:54:11 +01:00
Ivan Savenko
922966dcf8
Renamed JsonNode::meta to more logical modScope. Member is now private
2024-02-26 12:55:49 +02:00
Ivan Savenko
08a27663f9
Reworked JsonNode constructors to more logical form
2024-02-26 12:55:49 +02:00
Ivan Savenko
54796c7c56
Rename toJson to toString/toCompactString for consistency
2024-02-26 12:55:49 +02:00
Ivan Savenko
c3957c2c2a
Moved json files to new directory, split on per-class basis
2024-02-14 13:08:24 +02:00
Ivan Savenko
7790acae3a
Fix save compatiblity with 1.4
2024-02-11 17:31:30 +02:00
Ivan Savenko
fd17133da3
Fix editor build
2024-02-06 00:40:26 +02:00
Ivan Savenko
9e09fe08e1
Fixed duplicated hero check - was used too early, before hero type is
...
loaded
2024-02-05 21:55:48 +02:00
Ivan Savenko
87059be67b
Added range checks to values read from h3m.
...
Fixes reading of morale/luck values (-3..3) as unsigned leading to
overflow.
2024-02-05 21:27:55 +02:00
Ivan Savenko
4af4d1a75e
Remove excessive logging
2024-02-05 21:11:00 +02:00
Ivan Savenko
2e4895766a
Implemented tracking of objects destroyed by players
2024-01-31 01:37:33 +02:00
Ivan Savenko
2a193effcc
Merge branch 'master' into 'develop'
2024-01-25 16:23:13 +02: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
8e8d42bfa2
Try to simplify / cleanup code to localize crash
2024-01-20 18:40:03 +02:00
Ivan Savenko
ffd604c114
Removed unnecessary access to IHandler::objects
2024-01-19 13:56:06 +02:00
Ivan Savenko
60ffb81b33
Replaced remaining placeholder code with callbacks
2024-01-19 13:55:22 +02:00
Ivan Savenko
e67e4430ba
Removed most of non-const static fields in lib. Reduced header includes.
2024-01-19 13:55:22 +02:00
Ivan Savenko
a15366f5a5
Make IObjectInterface::cb non-static
2024-01-19 13:55:21 +02:00
Ivan Savenko
d5c4478816
Remove most of non-const access to VLC entities
2024-01-19 13:54:49 +02:00
Ivan Savenko
bd5682ecc3
Merge remote-tracking branch 'vcmi/master' into develop
2024-01-19 13:49:54 +02:00
Ivan Savenko
b1bd44de1e
Merge pull request #3298 from vcmi/random_prison_distributor
...
Fixes to hero / prison distribution
2024-01-18 16:03:08 +02:00
Alexander Wilms
73019c204d
Replace redundant types with auto
for the lvalues of template factory functions for smart pointers
...
grep -r --include \*.h --include \*.cpp "= std::" * | grep -v auto | grep -Po ".*[^ ]+ [^ ]+ [^ ]*[ ]*=.*;" | grep -v "auto\|int\|char\|bool\|float|\double\|for\|if\|googletest\|fuzzylite\|size_t\|using\|return" | grep -v double | grep -v si64 | grep -v si32 | grep -v ui32 | grep \< | grep -v float | tr -d '\t' | grep -v assert > redundant_types.txt
import re
with open("redundant_types.txt") as f:
for line in f:
line = line.strip()
path = line.split(":", 1)[0]
original_code = ":".join(line.split(":")[1:]).strip()
print()
print(path)
print(original_code)
prefix = "auto "
if original_code.startswith("static"):
static = True
else:
static = False
cpp_type = " ".join(original_code.split("=")[0].strip().split(" ")[0:-1])
print(cpp_type)
if static:
new_code = "static auto "+ " ".join(original_code.split(" ")[2:])
else:
new_code = "auto "+ " ".join(original_code.split(" ")[1:])
print(new_code)
if True:
with open(path, "r") as f:
filedata = f.read()
filedata = filedata.replace(original_code, new_code)
with open(path, "w") as f:
f.write(filedata)
2024-01-17 12:50:00 +00:00
Alexander Wilms
cca08e29da
Remove duplicate semicolons
2024-01-16 19:02:39 +00:00
Ivan Savenko
c7897300c0
Fixed missing translation strings on loading campaign save
...
- campaign header now contains text container and stores campaign texts
- map header now contains text container instead of inheriting it
- moved text container registration logic to a wraper class
- fixed registration of copied text containers (from copied map header)
2024-01-15 13:10:25 +02:00
Tomasz Zieliński
3aa67b3e5f
Merge remote-tracking branch 'origin/beta' into random_prison_distributor
2024-01-13 21:02:08 +01:00
Alexander Wilms
5e9f98b15c
Resolve intentionality issues
2024-01-10 00:23:24 +00:00
Alexander Wilms
f3277b7953
Define each identifier in a dedicated statement
2024-01-10 00:22:23 +00:00
Laserlicht
8b262e49a6
add sort for changedate
2024-01-07 20:17:44 +01:00
Ivan Savenko
480a0f19c0
Fix missing modded spells in magic guilds for h3m maps
2024-01-05 16:47:23 +02:00
Tomasz Zieliński
ebf2055afc
- Unban hero if related Prison is destroyed during map generation
...
- Move prison counter to PrisonHeroPlacer
2023-12-24 09:36:26 +01:00
Tomasz Zieliński
b0f0e9caa8
Merge remote-tracking branch 'origin/beta' into random_prison_distributor
2023-12-24 06:46:18 +01:00
Ivan Savenko
20ede710c2
Merge pull request #3362 from IvanSavenko/terrain_decorations
...
Terrain decorations level
2023-12-22 23:39:32 +02:00
Ivan Savenko
8916ae7bcd
Fix water generation, try to improve decoration level a bit
2023-12-22 18:35:38 +02:00
Ivan Savenko
19e851ddff
Implemented configurable level of decorations for terrains
2023-12-22 17:41:30 +02:00
Ivan Savenko
48a8826aa1
Merge pull request #3308 from vcmi/improve_treasure_placement
...
Improve treasure placement
2023-12-22 16:32:59 +02:00
Ivan Savenko
44a79c1ff4
Merge pull request #3327 from Laserlicht/datetime
...
date time format
2023-12-18 13:21:01 +02:00
Laserlicht
9299eaed36
code review
2023-12-16 21:10:27 +01:00
Laserlicht
56562ad8dc
date time format
2023-12-16 18:57:38 +01:00
Ivan Savenko
9ff00d75dc
Do not crash if Scholar is not a rewardable object
2023-12-16 13:46:29 +02:00
Tomasz Zieliński
b9193ecb73
Do not calculate area for invalid positions
2023-12-13 22:06:47 +01:00
Ivan Savenko
337e090ee9
Avoid crash in case if Witch Hut or Shrine is not a rewardable object
2023-12-13 16:52:44 +02:00
Tomasz Zieliński
8fe6a103cd
- Move Hero / Prison distribution to separate modificator
...
- Protect rolling and banning hero with mutex
2023-12-11 07:37:23 +01:00
Ivan Savenko
cd5d6a8f77
Fix loading of artifact ID for "transport item" victory condition
2023-12-03 19:45:18 +02:00
Ivan Savenko
a7d6068bf6
Do not ignore block-visit objects when computing guardian locations
2023-11-28 19:32:03 +02:00
Ivan Savenko
ee46fc806a
Add workaround to loading old map format
2023-11-27 14:09:08 +02:00
Ivan Savenko
e00d871082
Fix few more warnings on game start
2023-11-27 14:08:49 +02:00
Ivan Savenko
68de34e508
Workaround for starting map with invalid witch huts
2023-11-27 14:08:49 +02:00
Ivan Savenko
560a1231a6
Fix loading of maps with Grail or Diplomat Suit placed on map
2023-11-27 14:08:49 +02:00
Ivan Savenko
e979fb7056
Better fix for allowed heroes in h3m - allow all heroes from mods
2023-11-22 19:11:22 +02:00
Ivan Savenko
83ca09f483
Fix loading of allowed heroes from h3m maps
2023-11-21 17:23:46 +02:00
Ivan Savenko
ff6260e5c5
Merge pull request #3195 from IvanSavenko/identifier_string_serialization
...
Serialize Identifiers that can be added by mods as strings
2023-11-20 14:07:24 +02:00
Ivan Savenko
f7ef474201
Fix format of custom win/loss conditions for h3 campaigns
2023-11-19 23:59:49 +02:00
Ivan Savenko
c872f8418f
Implemented serialization of MapObjectSubID, refactoring of related code
2023-11-17 21:18:34 +02:00
Ivan Savenko
9f906ff1d2
Remove pointer to CGObjectInstance from map header
2023-11-17 16:39:15 +02:00
Ivan Savenko
f53a53051b
Fixed map startup
2023-11-17 16:19:07 +02:00
Ivan Savenko
76956cfe3a
Merge pull request #3188 from IvanSavenko/remove_identifier_implicit_int_conversion2
...
Remove implicit conversion of identifier to integer
2023-11-16 17:26:32 +02:00
Ivan Savenko
52050d0ef1
Fix build
2023-11-15 15:55:19 +02:00
Ivan Savenko
6cb1f6ff11
Remove all remaining implicit conversion in lib
2023-11-15 15:55:19 +02:00
Ivan Savenko
96c81be68e
Win/loss conditions now use VariantIdentifier. Removed non-implemented
...
options
2023-11-15 15:55:19 +02:00
Ivan Savenko
34338f4eaa
Remove few more implicit conversions
2023-11-15 15:55:19 +02:00
Ivan Savenko
abad4b01ce
Remove explicit convesion to int in operators
2023-11-15 15:55:19 +02:00
Ivan Savenko
0842f5afee
Removed remaining usages of std::vector<bool>
2023-11-15 15:55:18 +02:00
Ivan Savenko
20ef3a69e7
Fix most of memleaks discovered by valgrind
2023-11-13 16:27:15 +02:00
Ivan Savenko
5c810df36f
Reorganized types registration code
2023-11-11 00:39:08 +02:00
Ivan Savenko
eb167d94a6
Mod compatibility check is now in a separate class and not part of
...
ModHandler
2023-11-08 21:27:05 +02:00
Ivan Savenko
5487f07d3b
added toEntity overload that accepts generic Services class
2023-11-04 17:04:53 +02:00
Ivan Savenko
184f5a72cc
Use toEntity/toXXX methods in Identifier instead VLC objects access
2023-11-03 16:03:29 +02:00
Ivan Savenko
8d5fa41a19
Minor fixes
2023-11-03 16:03:29 +02:00
Ivan Savenko
3634fb2158
Remove int <=> Identifier comparisons
2023-11-03 16:03:29 +02:00
Ivan Savenko
885dce0c27
Replace static_cast's of Identifiers with getNum call
2023-11-03 16:03:29 +02:00
Ivan Savenko
2b9c362d5b
Explicitly convert identifier to underlying enumeration
2023-11-03 16:03:29 +02:00
Ivan Savenko
b42f073f0c
Stabilization
2023-11-01 18:26:57 +02:00