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

934 Commits

Author SHA1 Message Date
Tomasz Zieliński
433765714f Add less obstacles in zones with low treasure value 2024-03-20 14:42:09 +01:00
Tomasz Zieliński
02fc410a98 Sonarcloud fixes 2024-03-20 13:51:16 +01:00
Tomasz Zieliński
68cdcb893e Include treasure value in min distance calculation 2024-03-20 12:39:07 +01:00
Tomasz Zieliński
a8d1d72b15 Cleaned logs 2024-03-20 10:12:48 +01:00
Tomasz Zieliński
662bb0d1f6 Cut straight paths for better passability 2024-03-20 10:03:26 +01:00
Tomasz Zieliński
25a62b504f Perfection achieved? 2024-03-20 09:05:27 +01:00
Tomasz Zieliński
1546a221d1 Best result so far 2024-03-20 08:36:02 +01:00
DjWarmonger
306896601a
Merge pull request #3636 from vcmi/rmg_tweaks
Rmg tweaks
2024-03-14 19:54:25 +01:00
Tomasz Zieliński
28f76b2839 Actually, avoid guarded object altogether 2024-03-01 18:17:17 +01:00
Tomasz Zieliński
4e88290962 Actually avoid only monsters 2024-03-01 18:10:05 +01:00
Tomasz Zieliński
8f1638f78a Try to not route roads through passable objects 2024-03-01 17:48:07 +01:00
Tomasz Zieliński
b7320bbc8a Cleanup 2024-02-29 13:04:48 +01:00
Tomasz Zieliński
2c32c770f7 First version that works in lobby 2024-02-29 12:45:08 +01:00
Tomasz Zieliński
af0207470d - Increased minimal obstacle density on surface
- Decreased minimal obstacle density in the underground
2024-02-25 12:25:23 +01:00
Tomasz Zieliński
2e8801084d Clean up RMG logs 2024-02-25 11:40:01 +01:00
Ivan Savenko
45c971a405 Replace throws() with nothrow 2024-02-14 12:07:07 +02:00
Ivan Savenko
7359b66f99 Do not use floating point equality checks 2024-02-14 12:07:07 +02:00
Alexander Wilms
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
Ivan Savenko
4c70abbeb5 Reduced usage of global variables - removed or made const / constexpr 2024-02-12 13:49:45 +02:00
Ivan Savenko
c03196257f Fix "identical expressions on both sides of comparison" 2024-02-12 12:32:35 +02:00
Ivan Savenko
ef8eb330d6
Merge branch 'develop' into random_template_description 2024-02-11 17:54:18 +02:00
Ivan Savenko
f1a8e78f0b
Merge pull request #3596 from vcmi/fixes_for_water
Fixes for RMG water
2024-02-11 17:53:46 +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
Tomasz Zieliński
af3c6450a7 Update comments 2024-02-04 08:56:45 +01:00
Tomasz Zieliński
7ce3553a6d Fix race condition when placing object at teh shore 2024-02-04 08:56:21 +01:00
Tomasz Zieliński
6528124c1e Do not fill water zone with obstacles 2024-02-04 08:55:51 +01:00
Tomasz Zieliński
b7df6064cd Add random map description and display it in RMG menu 2024-02-03 16:23:56 +01:00
Tomasz Zieliński
e6f0afd586 Tweaking parameters, cleanup 2024-02-02 15:50:33 +01:00
Tomasz Zieliński
178f960533 First working version 2024-02-02 14:27:32 +01:00
Tomasz Zieliński
9f7c986621 First version that compiles successfully 2024-02-02 10:37:08 +01:00
Tomasz Zieliński
c5aa31f46a First sketch 2024-01-30 18:04:15 +01:00
Ivan Savenko
b51e58cddc
Merge pull request #3544 from vcmi/fix_leaky_connections
Do not place zone guards adjacent to 3rd zone
2024-01-23 13:39:11 +02:00
Tomasz Zieliński
b3adb9e554 Do not place zone guards adjacent to 3rd zone 2024-01-22 09:27:30 +01: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
6b760089a4
Merge pull request #3473 from IvanSavenko/const_lib
[1.5] Remove non-const global variables from library
2024-01-20 19:22:46 +02:00
Ivan Savenko
339fad6e27
Merge pull request #3528 from vcmi/master
Merge master -> develop
2024-01-19 21:19:20 +02:00
Ivan Savenko
aa02d5787a Better solution for rmg crash fix 2024-01-19 17:26:51 +02:00
Ivan Savenko
789c96d9b0 Fixed binding lambda to a reference to a temporary on stack 2024-01-19 16:17:59 +02:00
Ivan Savenko
e50f586d8b Stabilization 2024-01-19 14:21:13 +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
b698b6e79d
Merge pull request #3512 from Alexander-Wilms/use-auto-with-template-factory-functions-for-smart-pointers
Use auto with template factory functions for smart pointers
2024-01-18 16:05:05 +02:00
Ivan Savenko
9025744cc5
Merge pull request #3510 from Alexander-Wilms/remove-semicolons-from-macros
Remove trailing semicolons from more macros
2024-01-18 16:03:55 +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
DjWarmonger
4f28cd42b7
Update lib/rmg/modificators/PrisonHeroPlacer.h
Co-authored-by: Alexander Wilms <Alexander-Wilms@users.noreply.github.com>
2024-01-17 10:11:55 +01:00
DjWarmonger
91a20c2bfd
Update lib/rmg/CMapGenerator.h
Co-authored-by: Alexander Wilms <Alexander-Wilms@users.noreply.github.com>
2024-01-17 10:11:50 +01:00
Tomasz Zieliński
66efb07e52 More 2024-01-17 07:45:53 +01:00
Tomasz Zieliński
a568a9b3fb Fix lambda capture 2024-01-17 07:26:51 +01:00
Tomasz Zieliński
253f1dc7e6 Refactor duplicated code as suggested by SonarCloud 2024-01-17 07:18:14 +01:00
Alexander Wilms
ccac73fb69 Remove trailing semicolons from more macros 2024-01-16 19:46:21 +00:00
Alexander Wilms
cca08e29da Remove duplicate semicolons 2024-01-16 19:02:39 +00:00
Tomasz Zieliński
afc9bd908c Unused capture 2024-01-16 17:38:36 +01:00
Tomasz Zieliński
aa5bb27d20 Style 2024-01-16 17:16:15 +01:00
Tomasz Zieliński
71844d4d92 Unban artifacts if RMG fails to place Seer Hut (unlikely) 2024-01-16 17:15:35 +01:00
Tomasz Zieliński
0273d9c36b Remove unused variable 2024-01-15 07:59:50 +01:00
Tomasz Zieliński
285bafdbf4 Do not ban heroes in Prisons, they might be rehired after they are defeated.
Restore hero to pool if Prison fails to be placed.
2024-01-15 07:41:29 +01:00
Tomasz Zieliński
ee6c331bad Merge remote-tracking branch 'origin/beta' into random_prison_distributor 2024-01-14 21:56:49 +01:00
Ivan Savenko
fd499e318d Review suggestion 2024-01-14 15:36:29 +02:00
Tomasz Zieliński
3e623565a2 Fix redundant class 2024-01-13 21:39:17 +01:00
Ivan Savenko
ca2df49fbb Block usage of preselected starting heroes for prisons in RMG 2024-01-13 14:08:36 +02:00
Alexander Wilms
f3277b7953 Define each identifier in a dedicated statement 2024-01-10 00:22:23 +00: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
bbbf676d38 spaces -> tabs 2023-12-22 23:22:33 +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
Tomasz Zieliński
f9e5d73014 Missed optimization case 2023-12-21 17:56:21 +01:00
Tomasz Zieliński
d6336d7c45 Reverted change that seems to cause regression 2023-12-21 17:55:08 +01:00
Tomasz Zieliński
d4216a9191 Fixed routing roads behind Sub Gates, Monoliths and Mines 2023-12-21 13:22:23 +01:00
Tomasz Zieliński
d5f9de5beb Definitive solution for Corpse 2023-12-21 12:29:45 +01:00
Tomasz Zieliński
e22f6dd07e Fix for choosing most specific templates. Also seems to fix the Prisons. 2023-12-21 09:58:39 +01:00
Tomasz Zieliński
ad82eff225 Final and perfect treasue nd obstacle density 2023-12-19 09:24:43 +01:00
Tomasz Zieliński
916aedb13c Obvious fix 2023-12-19 09:24:01 +01:00
Tomasz Zieliński
bbb3e701ab Reverted incorrect logic. Likely the fix for hota Prison. 2023-12-18 17:18:13 +01:00
Tomasz Zieliński
9b12f54972 Compile fix 2023-12-18 14:49:05 +01:00
Tomasz Zieliński
7f7df93e12 Style fix 2023-12-18 14:25:07 +01:00
Tomasz Zieliński
c701d42781 Multiple optimizations to avoid copying and allocating tiles for rmg::Area 2023-12-18 13:52:03 +01:00
Tomasz Zieliński
985a2682ae Place Monoliths at max distance in Junction zone 2023-12-18 11:12:52 +01:00
Tomasz Zieliński
bd5361a108 Possible fix to https://github.com/vcmi/vcmi/issues/3334 2023-12-18 10:55:40 +01:00
Tomasz Zieliński
24f74875ef Do not fractalize tiles near the edge of the map to avoid paths adjacent to map edge 2023-12-18 08:14:48 +01:00
Tomasz Zieliński
339627731c Fixes 2023-12-15 18:26:59 +01:00
Tomasz Zieliński
99870be24c Tiny optimizations to avoid copies 2023-12-13 22:20:23 +01:00
Tomasz Zieliński
d31789e745 Extra cache for search area 2023-12-13 22:13:42 +01:00
Tomasz Zieliński
bfea30e318 Optimization tweaks 2023-12-13 22:12:16 +01:00
Tomasz Zieliński
8602a14e6f Minor optimizations 2023-12-13 22:10:39 +01:00
Tomasz Zieliński
2d3b8ee866 Increased amount of generated treasure piles without increasing density 2023-12-12 12:50:27 +01:00
Tomasz Zieliński
e5f60f063c - Check full object area for minimum distance requirement
- Add option to optimize both for max distance and custom weight
2023-12-12 07:40:54 +01:00
Tomasz Zieliński
109139c913 Build fix 2023-12-11 08:27:57 +01:00
Tomasz Zieliński
8a93b1083f Merge remote-tracking branch 'origin/beta' into random_prison_distributor 2023-12-11 07:49:43 +01: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
6fe8ed7a03
Merge pull request #3127 from vcmi/fix_random_object_templates
Use the object templates with least terrains allowed
2023-12-10 23:11:20 +02:00
Tomasz Zieliński
d0e100c1bb Fix unused variable 2023-12-10 09:50:25 +01:00
Tomasz Zieliński
91ebac3c2e Fix incorrect check 2023-12-10 09:46:20 +01:00
Ivan Savenko
c9de10ea74
Merge pull request #3259 from vcmi/fix_corpse
Fix corpse
2023-12-07 23:55:07 +02:00
Tomasz Zieliński
c316087950 Distribute objects among zones in random order 2023-12-07 17:41:41 +01:00
Tomasz Zieliński
7fa01a3497 Fix for randomly banning or exceeding limits of zone objects 2023-12-07 17:41:09 +01:00
Tomasz Zieliński
f17d8babc5 Do not route road through the Corpse 2023-12-07 12:57:39 +01:00
Tomasz Zieliński
5ad682048f Fix 2023-12-06 21:47:20 +01:00
Tomasz Zieliński
69ff1734b0 Use reference 2023-12-06 21:05:27 +01:00
Tomasz Zieliński
6cd19b81dd Working fir for Corpse issue:
- Do not place guard next to blockVis object, if possible
- Do not place two blockVis objects next to each other
2023-12-06 20:49:28 +01:00
Tomasz Zieliński
03fa75c51e Some refactoring, commiting current state after tests 2023-12-06 09:49:41 +01:00
Ivan Savenko
0d6bd0c60a Fix assertion failure in RMG 2023-11-28 16:37:21 +02:00
Ivan Savenko
13763cad8e Remove few more implicit conversions 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
DjWarmonger
ad9acd4b5e
Merge pull request #3131 from vcmi/improve_subterranean_gates
More tolerance for Subterranean Gates placement
2023-11-15 09:23:21 +01:00
Tomasz Zieliński
01f70475ad Missing change 2023-11-07 20:58:22 +01:00
Tomasz Zieliński
c909bd766e Merge remote-tracking branch 'origin/develop' into fix_rmg_teams
# Conflicts:
#	lib/rmg/CMapGenOptions.cpp
#	lib/rmg/CMapGenOptions.h
2023-11-07 20:54:04 +01:00
Ivan Savenko
2bf599bbee
Merge pull request #3119 from Nordsoft91/rmg-fix
Fix crash caused by duplicated delete
2023-11-05 17:09:52 +02:00
Ivan Savenko
04aeea9b68 use toEnum instead of getNum for switch'es 2023-11-03 19:20:25 +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
2b9c362d5b Explicitly convert identifier to underlying enumeration 2023-11-03 16:03:29 +02:00
Ivan Savenko
8346d71c98 Remove more subID access 2023-11-01 14:44:05 +02:00
Ivan Savenko
03e1169781 Reduced number of accesses to CGObjectInstance::subID 2023-11-01 14:43:20 +02:00
Tomasz Zieliński
29f023eaa5 More tolerance for Subterranean Gates placement 2023-10-31 16:04:21 +01:00
Tomasz Zieliński
6625831cf6 Use the object templates with least terrains allowed. 2023-10-31 09:07:53 +01:00
Tomasz Zieliński
6e7b68d0e6 Unused variable, unused code 2023-10-30 21:33:49 +01:00
Tomasz Zieliński
80198f21d8 Revert "Fix unused variable"
This reverts commit c753a1fdf7.
2023-10-30 21:07:50 +01:00
Tomasz Zieliński
3b7b21bcc8 Fix unused variable 2023-10-30 21:07:14 +01:00
Tomasz Zieliński
c753a1fdf7 Fix unused variable 2023-10-30 20:59:13 +01:00
Tomasz Zieliński
e105b23a37 Merge remote-tracking branch 'origin/develop' into fix_rmg_teams
# Conflicts:
#	Mods/vcmi/config/vcmi/rmg/heroes3/newcomers.JSON
#	Mods/vcmi/config/vcmi/rmg/heroes3/southOfHell.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/2sm0k.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/2sm2i(2).JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/3sb0b.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/3sb0c.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/5sb0a.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/5sb0b.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/7sb0b.JSON
#	Mods/vcmi/config/vcmi/rmg/symmetric/7sb0c.JSON
#	client/lobby/RandomMapTab.cpp
2023-10-30 20:08:13 +01:00
Tomasz Zieliński
5962e5c0e0 Fix infinite loop 2023-10-30 19:47:59 +01:00
Tomasz Zieliński
ec0bf05163 Rename "cpu" parameter to correct "humans" 2023-10-30 17:21:03 +01:00
Tomasz Zieliński
f39edf9413 Update ally and enemy flags when selecting new template 2023-10-30 07:48:51 +01:00
Tomasz Zieliński
4f2cde018c Fixed most of reported issues, removed unused code. 2023-10-29 21:25:39 +01:00
Tomasz Zieliński
368a185008 Cleaning up the code 2023-10-29 10:05:24 +01:00
nordsoft
35e7fbb366 Fix crash cause by duplicated delete 2023-10-28 22:22:30 +02:00
Tomasz Zieliński
07dac8b6d4 Works more or less 2023-10-28 20:30:38 +02:00
Alexander Wilms
2b21001743 lib/rmg/RoadPlacer.cpp: Remove "e" from this "throw" statement to rethrow the original exception.
The original exception object should be rethrown
2023-10-27 14:35:03 +00:00
Tomasz Zieliński
36911d1e0a Merge remote-tracking branch 'origin/develop' into fix_rmg_teams
# Conflicts:
#	client/lobby/RandomMapTab.cpp
2023-10-26 10:31:41 +02:00
nordsoft
5b10b457cf Fix code review suggestions 2023-10-11 00:47:19 +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
Nordsoft91
80be1e9f4c
Merge pull request #2981 from Nordsoft91/rmg-template
Select random object template instead of first
2023-10-02 20:42:39 +02:00
nordsoft
3ea7988883 Treasure placement uses random templates now 2023-09-30 23:06:38 +02:00
nordsoft
ce62ab3e66 Select random object template instead of first 2023-09-30 01:19:18 +02:00
nordsoft
03c099d4fd First steps 2023-09-27 22:53:13 +02:00
nordsoft
c1c13cfafb Pandora and events work as rewardable object 2023-09-15 15:29:41 +02:00
nordsoft
ef3f0174dd Rewardable seer hut and quest gate 2023-09-13 01:40:07 +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
1a82280cb2 Fix build 2023-09-05 13:16:08 +03:00
Ivan Savenko
b6a1a8f0da Json Serializer should now use identifers storage properly 2023-09-04 22:23:20 +03:00
Ivan Savenko
9735fa6d06 Fix regresssion - crash 2023-09-04 22:22:45 +03:00
Ivan Savenko
82989e6302 Use pointers in containers to guaranteed fixed address 2023-09-04 18:56:16 +03:00