Tomasz Zieliński
6d9f83a376
Protect lakes accessed from both zones with lock
2024-06-17 19:00:37 +02:00
Ivan Savenko
2d0bd94135
Fix rmg generation if player list is not continuous
2024-06-17 13:35:58 +00:00
Ivan Savenko
b8beb4fb13
Fixes for various minor issues detected by Sonar Cloud
2024-06-01 11:48:30 +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
5ecb527252
Merge pull request #3997 from IvanSavenko/serialization_refactor
...
[1.6] Serialization refactor
2024-05-30 19:13:21 +03: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
721b15d9de
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-17 08:26:37 +00:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Ivan Savenko
da9d82b697
Merge pull request #3973 from vcmi/master
...
Merge master -> beta
2024-05-14 16:59:10 +03:00
Ivan Savenko
62b564650d
Fix possibly hanging pointer to deleted CGObjectInstance
...
Was stored by CRemoveObjectOperation and accessed on destruction even
though it has been removed by the game
2024-05-13 16:19:14 +00:00
Tomasz Zieliński
5a979e42e2
Satisfy SonarCloud
2024-05-10 21:14:15 +02:00
Tomasz Zieliński
ee27a79aa1
Sonarcloud issues
2024-05-10 17:07:09 +02:00
Tomasz Zieliński
21bb61fc4d
Unused variable
2024-05-10 15:56:49 +02:00
Tomasz Zieliński
7cb17afe7a
Fix diagonal paths if we need to use them
2024-05-10 15:53:54 +02:00
Ivan Savenko
2521557f68
Fixed some newly reported issues from SonarCloud
2024-05-10 13:40:24 +00:00
Tomasz Zieliński
a6fa6855dc
Route roads away from zone borders
2024-05-10 15:35:33 +02:00
Ivan Savenko
b4af84a3ce
Merge pull request #3911 from vcmi/penrose_cleanup
...
Clean up excessive operations and logs
2024-05-08 22:43:28 +03:00
Tomasz Zieliński
2297e09fcb
Clean up excessive operations and logs
2024-05-08 15:51:42 +02:00
Ivan Savenko
718d42f0d6
Merge pull request #3910 from vcmi/center_penrose
...
Shift center of tiling to center of the map
2024-05-08 16:40:00 +03:00
Tomasz Zieliński
37d062f1eb
Fix incorrect comparison operator
2024-05-08 15:09:11 +02:00
Tomasz Zieliński
eece03d24f
Fix for centering the tiles, extra logs
2024-05-08 13:16:26 +02:00
Tomasz Zieliński
ec20e9e907
Shift center of tiling to center of the map
2024-05-08 12:16:42 +02:00
Ivan Savenko
f5824ccea4
Re-throw exception on RMG failure to prevent weird crashes later
2024-05-08 09:55:34 +00:00
Tomasz Zieliński
dd55188b77
Option to define surface or underground level for obstacle set
2024-05-07 07:15:00 +02:00
Tomasz Zieliński
20176521eb
Actually revert this change, it's not better.
2024-05-01 15:27:19 +02:00
Tomasz Zieliński
4d13c3b94f
Final fixes and tweaks
2024-05-01 13:58:24 +02:00
Tomasz Zieliński
186b6629c7
Do not hide roads behind objects
2024-05-01 12:15:07 +02:00
Tomasz Zieliński
d5b6e31223
Fix guard check
2024-05-01 11:38:44 +02:00
Tomasz Zieliński
5315beec8c
Fixes for guard condition
2024-05-01 11:34:34 +02:00
Tomasz Zieliński
acab1d38cf
Build fix
2024-05-01 10:45:01 +02:00
Tomasz Zieliński
7f3cf607a7
Allow guards not stronger than 1/3 max value next to roads
2024-05-01 10:24:21 +02:00
Tomasz Zieliński
67447acd0e
First implementation that works
2024-05-01 09:16:10 +02:00
Tomasz Zieliński
4d948e8c6d
Also, this
2024-05-01 07:58:47 +02:00
Tomasz Zieliński
9301bb9af5
Do not place guardes treasure on roads. Do not place guards next to roads.
2024-05-01 07:58:17 +02:00
Tomasz Zieliński
d22f42d58a
Tweak numbers to ensure tiling covers entire map
2024-04-14 07:25:52 +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
b1a5693612
Proof of concept with OH3 obstacles
2024-04-04 21:39:01 +02:00
Tomasz Zieliński
12da0196a0
Restrict reindexing to random maps
2024-04-03 20:05:35 +02:00
Tomasz Zieliński
a94286c23d
Code cleanup
2024-03-27 08:03:19 +01:00
Tomasz Zieliński
a89abf0289
Another attempt to fix build
2024-03-27 07:18:25 +01:00
Tomasz Zieliński
19633a0f62
Build fixes
2024-03-27 06:48:22 +01:00
Tomasz Zieliński
37f6993402
Clean the comments
2024-03-27 06:24:14 +01:00
Tomasz Zieliński
d8c93cb222
Protect every access to zone tiles with a mutex
2024-03-27 06:16:48 +01:00
Tomasz Zieliński
cfc4a26f55
Fix warning
2024-03-26 08:22:57 +01:00
Tomasz Zieliński
9d620b924d
Implement TODO
2024-03-26 07:55:18 +01:00
Tomasz Zieliński
0b8dc02d2b
Clean up duplicated code
2024-03-24 18:04:33 +01:00
Tomasz Zieliński
c6a9d94630
Fix crash with empty zone
2024-03-24 17:25:30 +01:00
Tomasz Zieliński
0c0a1bd777
Don't scale distance of large treasures beyond 30K value
2024-03-20 15:35:06 +01:00
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