Ivan Savenko
f70ad2c15b
Reorganized artifact-related classes
...
- files now generally contain only 1 class (except for tightly coupled
classes)
- files are now located in lib/entities/artifact directory
- removed excessive includes
No changes to functionality
2025-04-29 13:29:08 +03:00
Ivan Savenko
829739da24
Reduce usage of implicit conversions to int
2025-04-27 14:57:31 +03:00
Ivan Savenko
16a06179cf
Use ArtifactInstanceID in CGArtifact
2025-04-27 14:57:30 +03:00
Ivan Savenko
ab11d2b075
Remove quests from CMap, now solely owned by quest objects
2025-04-27 14:57:30 +03:00
Ivan Savenko
84cf7b052d
Map objects now use shared_ptr (rmg)
2025-04-27 14:57:30 +03:00
Ivan Savenko
2ca1748e96
Artifact instances are now owned solely by CMap
2025-04-27 14:57:30 +03:00
Ivan Savenko
797646cc05
Quests in map now use shared_ptr instead of const ptr
2025-04-27 14:57:30 +03:00
Ivan Savenko
645b95ba02
Renamed LibClasses * VLC
to GameLibrary * LIBRARY
2025-02-21 16:54:56 +00:00
Ivan Savenko
3dd4fa2528
Reduce usage of pointers to VLC entities
...
Final goal (of multiple PR's) is to remove all remaining pointers from
serializeable game state, and replace them with either identifiers or
with shared/unique pointers.
CGTownInstance::town and CGHeroInstance::type members have been removed.
Now this data is computed dynamically using subID member.
VLC entity of a town can now be accessed via following methods:
- getFactionID() returns ID of a faction
- getFaction() returns pointer to a faction
- getTown() returns pointer to a town
VLC entity of a hero can now be accessed via following methods:
- getHeroTypeID() returns ID of a hero
- getHeroClassID() returns ID of a hero class
- getHeroType() returns pointer to a hero
- getHeroClass() returns pointer to a hero class
2024-10-10 12:28:08 +00:00
Tomasz Zieliński
54ba4d50d6
Allow to ban spell scrolls
2024-09-23 17:09:46 +02:00
Tomasz Zieliński
ec603f46ae
- Handle new configurable banks
...
- Handle "all" object banned option
2024-09-21 13:36:28 +02:00
Tomasz Zieliński
2fe54504ab
Merge remote-tracking branch 'origin/develop' into custom_objects_per_zone
...
# Conflicts:
# lib/rmg/CRmgTemplate.cpp
2024-09-14 10:19:22 +02:00
Tomasz Zieliński
4d4538a48d
Use CompoundMapObjectID in ObjectInfo
2024-09-14 09:23:28 +02:00
Tomasz Zieliński
4b263b6d41
Add specific objects and configure their frequency / value
2024-09-12 21:04:27 +02:00
Tomasz Zieliński
bfe75a6a02
It is now possible to copy object settings between zones
2024-08-24 20:18:36 +02:00
Tomasz Zieliński
64fc2e5ed0
Move ObjectConfig to ObjectInfo.cpp. Preliminary version of banning object categories.
2024-08-24 15:12:22 +02:00
Tomasz Zieliński
85ee859b6e
First version that works - banning objects is possible
2024-08-21 20:16:41 +02:00
Ivan Savenko
63bcf7d83c
Replaced most of usages of CRandomGenerator with vstd::RNG in library
2024-07-16 13:13:07 +00:00
Alexander Wilms
02e429e973
Fix typos using https://github.com/crate-ci/typos
...
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
Ivan Savenko
7461df161c
lib now uses shared_ptr for entities. Removed manual memory management.
2024-05-17 15:04:05 +00:00
Tomasz Zieliński
186b6629c7
Do not hide roads behind objects
2024-05-01 12:15:07 +02:00
Tomasz Zieliński
5315beec8c
Fixes for guard condition
2024-05-01 11:34:34 +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
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
a94286c23d
Code cleanup
2024-03-27 08:03:19 +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
0c0a1bd777
Don't scale distance of large treasures beyond 30K value
2024-03-20 15:35:06 +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
1546a221d1
Best result so far
2024-03-20 08:36:02 +01: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
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
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
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
Tomasz Zieliński
afc9bd908c
Unused capture
2024-01-16 17:38:36 +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
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
Tomasz Zieliński
d5f9de5beb
Definitive solution for Corpse
2023-12-21 12:29:45 +01:00