1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

681 Commits

Author SHA1 Message Date
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
Ivan Savenko
8346d71c98 Remove more subID access 2023-11-01 14:44:05 +02:00
Ivan Savenko
7a09646009 Cleaned up dwelling randomization 2023-11-01 14:43:20 +02:00
Ivan Savenko
dcb8f4fc7b Moved object type randomization to object class 2023-11-01 14:43:20 +02:00
Ivan Savenko
03e1169781 Reduced number of accesses to CGObjectInstance::subID 2023-11-01 14:43:20 +02:00
SoundSSGood
ab2f6abb87 ArtifactLocation now use ID for artHolder identification part2 2023-10-29 17:46:13 +02:00
Ivan Savenko
5523f05284 Moved ArtifactLocation to a separate file 2023-10-23 19:02:28 +03:00
Ivan Savenko
b88a8da4e8 Split off some netpack structures into separate files 2023-10-23 13:59:15 +03:00
Ivan Savenko
3880ea58b9 Merge branch 'josch/dos2unix' into develop 2023-10-22 18:39:03 +03:00
Ivan Savenko
3867e512f7
Merge pull request #3064 from IvanSavenko/bonus_metaidentifier
Type-safe bonus system
2023-10-22 18:34:12 +03:00
Ivan Savenko
a5f0429691
Merge pull request #3083 from Nordsoft91/editor-improvements-1.4
Redesign map editor rendering
2023-10-22 16:56:39 +03:00
Ivan Savenko
4f47555977 Split OBJECT bonus source into OBJECT_TYPE and OBJECT_INSTANCE 2023-10-22 16:55:19 +03:00
Ivan Savenko
ac925bb786 Renamed new types for consistency with code style 2023-10-22 16:55:19 +03:00
Ivan Savenko
b394158dc9 Bonus Source ID now uses metaidentifier 2023-10-22 16:55:18 +03:00
Ivan Savenko
454ba44ac5
Merge pull request #2988 from IvanSavenko/configurable_extensions
Extension of configurable object functionality
2023-10-22 16:24:47 +03:00
nordsoft
b9a660f6c3 Redesign map editor rendering 2023-10-20 01:25:06 +02:00
Johannes Schauer Marin Rodrigues
a1a5bc28c2
convert line endings from CRLF (Windows) to LF (Linux/Unix)
Mixed line endings cause problems when exporting patches with
git-format-patch and then trying to "git am" a patch with mixed and
non-matching line endings. In such a situation git will fail to apply
the patch.

This commit runs the dos2unix tools on the remaining files with CRLF
(\r\n) line endings to convert them to line-feeds (\n) only.

Files that are Windows specific like *.vcxproj and *.props files were
not converted.

Closes: #3073
2023-10-19 16:23:21 +02:00
Ivan Savenko
ce480c8c84 Fixed Scholar handling 2023-10-18 17:14:22 +03:00
Alexandre Detiste
15e45f966c typos found by lintian 2023-10-17 22:06:08 +02:00
Ivan Savenko
e10de0594e Scholar is now configurable object (partial) 2023-10-16 00:12:39 +03:00
Ivan Savenko
bb05c2dea5 Implemented configurable shrine 2023-10-16 00:12:39 +03:00
Ivan Savenko
a3b2354481 Implemented visit mode "limiter". Fixed h3m variable loading 2023-10-16 00:12:38 +03:00
Ivan Savenko
fd01a25352 Implemented basic version of configurable Witch Hut 2023-10-16 00:12:38 +03:00
nordsoft
4651893b48 Fix hota quests 2023-10-14 00:15:15 +02:00
nordsoft
2bf8cdc9f5 Hota-related bugs were fixed 2023-10-13 12:52:45 +02:00
nordsoft
6093f042dd Text container fix 2023-10-11 01:26:07 +02:00
nordsoft
5b10b457cf Fix code review suggestions 2023-10-11 00:47:19 +02:00
nordsoft
62c4e8a98d Fix compiling 2023-10-10 23:44:29 +02:00
nordsoft
bb238f9b72 New quests work 2023-10-10 23:44:29 +02:00
nordsoft
1460541ee5 New limiter based quests 2023-10-10 23:44:29 +02:00
nordsoft
043f54698b Fix translations in map editor / fix crash on game end 2023-10-05 23:34:29 +02:00
Ivan Savenko
037efdf5fc Improvements to type safety of Identifier class
- Constructor of Identifier from integer is now explicit
- Lobby hero/town selection now uses Identifiers instead of int's
- Removed serialization workaround for hero portraits
- Added dummy objects for custom heroes portraits for ID resolver to use
- HeroInstance now stores portrait ID only in case of custom portrait
- Fixed loading of campaign heroes portraits on RoE maps
2023-10-04 18:05:23 +03:00
Nordsoft91
c57d5545c2
Merge pull request #2971 from Nordsoft91/translations
Multi-language support for network game and for VMAPs
2023-10-02 20:41:42 +02:00
nordsoft
10eb19758a Code review fixes 2023-10-01 18:00:36 +02:00
nordsoft
70796d232b Full support of maps translations 2023-09-29 00:24:45 +02:00
nordsoft
ae073ee35d Remove unused identifiers 2023-09-28 23:15:36 +02:00
nordsoft
98fde9ab1d Add string IDs in map editor 2023-09-28 14:38:31 +02:00
nordsoft
56eefab255 Fix headers 2023-09-28 13:28:24 +02:00
nordsoft
a710c88b07 Proper map translations loading 2023-09-28 13:09:01 +02:00
nordsoft
ba1dbbbb1d New version for map format 2023-09-28 04:23:14 +02:00
nordsoft
65f696b018 Cosmetic changes for json map reader 2023-09-28 03:02:46 +02:00
nordsoft
9098126684 Separate map text identifiers from global 2023-09-28 02:52:49 +02:00
nordsoft
5b97c323d3 Rename hero strings to text id 2023-09-28 00:04:05 +02:00
nordsoft
486091a915 Heroes switched to text id 2023-09-28 00:00:32 +02:00
nordsoft
0c94a4d891 Town name switched to id 2023-09-27 23:57:05 +02:00
nordsoft
41da252e67 Seerhut meta strings 2023-09-27 23:49:27 +02:00
nordsoft
00c8c2eb82 Event message meta string 2023-09-27 23:28:17 +02:00
nordsoft
f9f79255c5 Creature message meta string 2023-09-27 23:25:19 +02:00
nordsoft
0ac893b80f Rumors meta string 2023-09-27 23:22:45 +02:00
nordsoft
ab373f08ab Use meta string for messages 2023-09-27 23:11:11 +02:00
nordsoft
03c099d4fd First steps 2023-09-27 22:53:13 +02:00
Ivan Savenko
f4c33f49ee Removed excessive warning 2023-09-27 21:24:37 +03:00
Ivan Savenko
97097c20ad
Merge pull request #2874 from SoundSSGood/exchange-window-update
Exchange window update
2023-09-27 15:50:52 +03:00
Nordsoft91
c803b57c33
Merge pull request #2889 from Nordsoft91/mod-compatibility-check
Proper mod compatibility check logic
2023-09-26 19:29:46 +02:00
nordsoft
60eef59bc9 Show root mods for maps 2023-09-21 22:38:01 +02:00
nordsoft
4691907f9c Show root mods only 2023-09-21 22:28:29 +02:00
nordsoft
a05f8339ae Proper mod compatibility check system 2023-09-21 04:31:08 +02:00
Ivan Savenko
3f35ed000c Fixed parsing of some user-made H3M maps 2023-09-20 22:00:03 +03:00
Ivan Savenko
02dfecd38b Fixed hota maps templates loading 2023-09-20 21:59:16 +03:00
Ivan Savenko
921569e02e Fixed "Long Live the King", 1st scenario victory condition 2023-09-20 21:58:47 +03:00
SoundSSGood
f47def3588 refactoring 2023-09-19 13:31:57 +03:00
SoundSSGood
a83f290e13 bulk move artifacts only equipped, only backpack 2023-09-19 13:31:42 +03:00
nordsoft
e3538f24ab Fix components problem 2023-09-17 16:04:34 +02:00
nordsoft
44d72dce51 Use enum in h3m map parser 2023-09-17 15:06:49 +02:00
nordsoft
b5b5d881c4 Merge remote-tracking branch 'upstream/develop' into rewardable-quests 2023-09-15 21:08:22 +02:00
nordsoft
c1c13cfafb Pandora and events work as rewardable object 2023-09-15 15:29:41 +02:00
Ivan Savenko
f8541d0ae4 Merge branch 'vcmi/master' into 'vcmi/develop' 2023-09-15 13:59:02 +03:00
nordsoft
ef3f0174dd Rewardable seer hut and quest gate 2023-09-13 01:40:07 +02:00
Ivan Savenko
9ae7f53d66
Merge pull request #2791 from Nordsoft91/fix-2790
Fix for random dwellings
2023-09-12 12:38:55 +03:00
nordsoft
6e3817f18c Events serialization 2023-09-10 01:54:55 +02:00
nordsoft
cc3864a0fa Fix for random dwellings 2023-09-09 21:17:21 +02:00
nordsoft
01bf146640 Change string id 2023-09-09 14:31:44 +02:00
nordsoft
f6e3c6a487 Fix 2023-09-09 14:27:51 +02:00
Ivan Savenko
f39fbe5151
Merge pull request #2757 from IvanSavenko/filesystem_refactor
Filesystem refactor - part 1
2023-09-07 10:51:02 +03:00
Ivan Savenko
86a7f5f5cd Removed getStr(bool), replaced with similar toString() 2023-09-04 22:21:02 +03:00
Ivan Savenko
a30e7ba321 Remove bitmasks of PlayerColor's. Add encode/decode methods 2023-09-04 18:56:16 +03:00
Ivan Savenko
6a260a60cf Fix resource creation 2023-09-04 18:22:34 +03:00
Ivan Savenko
0f88b8969b Removed some usages of std string as resource path 2023-09-04 18:22:34 +03:00