nordsoft
89d0de53da
Merge remote-tracking branch 'upstream/develop' into features/cpp-map-editor
...
# Conflicts:
# .github/workflows/github.yml
# launcher/modManager/cmodlist.cpp
# lib/CModHandler.cpp
# lib/CModHandler.h
2022-09-22 17:09:47 +04:00
Andrii Danylchenko
b4d3445559
Merge pull request #971 from kambala-decapitator/fix-warnings
...
Fix most project warnings
2022-09-22 16:05:32 +03:00
Andrii Danylchenko
3d3c513603
Merge pull request #929 from Nordsoft91/branch-merge-versioning
...
Mods versioning [part 3]
2022-09-22 14:56:20 +03:00
Andrey Filipenkov
c9c79887a7
remove unused variables
2022-09-22 11:54:10 +03:00
Tomasz Zieliński
494b0f0226
First version that compiles
2022-09-21 11:34:23 +02:00
Tomasz Zieliński
b20f649521
stash
2022-09-19 16:13:58 +02:00
nordsoft
c348c1a053
Revert "Load template name from user settings"
...
This reverts commit 73cc606ee2
.
# Conflicts:
# lib/rmg/CRmgTemplateStorage.cpp
# lib/rmg/CRmgTemplateStorage.h
# mapeditor/windownewmap.cpp
2022-09-19 02:46:01 +04:00
Nordsoft91
60264aae29
Apply suggestions from code review
...
Co-authored-by: Andrey Filipenkov <decapitator@ukr.net>
2022-09-19 01:18:17 +04:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +03:00
nordsoft
1b6f4a5cf3
Rebase on develop
2022-09-17 17:43:59 +04:00
Nordsoft91
e4ac0d4370
Editor prerequisites [part 2] ( #889 )
2022-09-17 14:04:01 +03:00
DjWarmonger
3d2dc2335b
Switch ObjectTemplate to shared_ptr<const> ( #870 )
2022-09-11 16:13:53 +03:00
nordsoft
cf9314507b
Fix crash in rmg
2022-09-11 11:31:27 +03:00
DjWarmonger
f81d869b4a
Mine roads ( #808 )
...
* Create dirt roads to mines if there are no roads in a zone.
2022-09-11 11:31:27 +03:00
nordsoft
670bca2fdb
Randomly shuffle required objects to avoid patterns
2022-09-11 11:31:27 +03:00
Nordsoft91
8f0dcf928c
Fix problems with water zone ( #784 )
2022-09-11 11:31:27 +03:00
Nordsoft91
e028875fe3
Fix RMG bug with incorrect town placement ( #779 )
...
* Fix RMG bug with incorrect town placement
* Readability tweak
2022-09-11 11:31:27 +03:00
Nordsoft91
454889598f
Improve treasure placement logic ( #775 )
...
Improve treasure placement logic (#775 )
2022-09-11 11:31:27 +03:00
Nordsoft91
1451385a9b
Fix problem with empty areas ( #772 )
...
* Fixes for obstacles and treasures
2022-09-11 11:31:27 +03:00
Nordsoft91
2edf9ef3a4
Fix for sealed-off treasures ( #771 )
...
Fix for sealer-off treasures
2022-09-11 11:31:27 +03:00
Nordsoft91
4bd0ff680a
Random map generator refactoring ( #762 )
...
random map generator refactoring and improvements
2022-09-11 11:31:27 +03:00
Andrii Danylchenko
4b4cc3cf4b
battlefields in VLC and custom bonuses for terrain patches
2022-09-11 11:31:27 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Nordsoft91
5054ee011a
Rmg water support ( #751 )
...
* Roads added to shipyard
* Load general rmg parameters from config
* Fix issue with default zone guard
* Move magic numbers related to balance to randomMap.json
2022-06-11 18:40:24 +03:00
Nordsoft91
5c1a66ab69
Rmg water support ( #745 )
...
* RMG: water support and refactoring
* Fix seers hut bug
2022-06-11 18:40:24 +03:00
Nordsoft91
9d06e51631
Place proper towns in underground ( #743 )
...
Implement feature of proper town selection in underground and surface
* Some minor refactoring of rmg
2022-05-28 16:03:50 +03:00
Nordsoft91
a8265c7052
[0002285] Implement feature with extra resources near mines ( #742 )
...
* RMG: clear start position
* [0002285] some heaps of resources are placed nearby mines
* Fix leak in case of inability to place resource
* Fix indentation according to vcmi style
* Add constant for random amount of resources
* Code review fixes
2022-05-23 13:08:36 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) ( #739 )
...
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet
Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Andrii Danylchenko
8b11b42aaf
Fix RMG to place special dwellings like elemental conflux
2022-04-09 10:57:24 +03:00
AlexVinS
ecaa9f5d0b
Entities redesign and a few ERM features
...
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
Dmitry Orlov
55b3f0b24c
Fix: Map objects sometimes do not increment primary skills for some heroes
2021-02-13 00:24:14 +03:00
Dmitry Orlov
3cb0dfb143
Fix: RMG issues: 1) hota 2) assertions
2020-10-25 01:03:32 +03:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
laikh
edc1d06f4e
Random Map Generator Option: Allow having more computer only players than human/computer players
...
Remove unused variable humanPlayersCount and function getHumanOnlyPlayerCount()
2020-07-07 19:45:53 +08:00
Michał Kalinowski
ac6b477aa2
Simplify statements
...
-Simplify return statements across the code
2019-03-31 09:43:14 +03:00
Alexander Shishkin
b00e935e4d
Warnings fixes ( #538 )
...
Warnings fixes
* Suppress `missing-braces` for Clang
* Fixed many C4275 warnings
* Fixed almost all Clang/GCC warnings
* Silence most frequent MSVC warning.
* Fixed some pessimizing-move warnings
* Fixed some unused capture warnings
2019-01-19 13:52:02 +03:00
Michał Janiszewski
7be9aa4868
Prevent shadowing of function arguments by local vars
2018-10-29 16:56:14 +01:00
Alexander Shishkin
f563712782
fix formatting
...
Co-Authored-By: godric3 <godric3@users.noreply.github.com>
2018-10-28 16:36:11 +01:00
godric3
7ded9dbda8
Fix crash when generating random map with random number of players
2018-10-27 18:18:08 +02:00
DJWarmonger
273802c92c
I have no idea what I'm doing
2018-07-26 12:14:29 +02:00
Johannes 'josch' Schauer
95bec98936
lib/rmg/CRmgTemplateZone.cpp: Remove a variable that was introduced in 2016 but never used
2018-04-19 15:07:21 +02:00
Johannes 'josch' Schauer
56fefca806
lib/rmg/CRmgTemplateZone.cpp: Add parenthesis to make operator precedence unambiguous
2018-04-19 15:06:26 +02:00
Arseniy Shestakov
ac66fc7f42
Full rework of pre-game interface and networking
...
New features for players:
* Loading for multiplayer. Any save could be used for multiplayer.
* Restart for multiplayer. All clients will restart together.
* Loading from single save.
* Hotseat mixed with network game. Multiple players per client.
* Now connection to server could be cancelled.
* Return to menu on disconnections instead of crashes.
* Restoring of last selected map, save or campaign on next run.
TLDR on important changes in engine code:
* UI: work with server separated from UI
* UI: all explitic blitting replaced with IntObject's
* UI: all new code use smart pointers instead of DISPOSE
* Gameplay always start through lobby controlled by server.
* Threads receiving netpacks now shared for lobby and gameplay.
* Campaigns: heroes for crossover now serialized as JsonNode.
2018-04-04 14:24:26 +07:00
AlexVinS
9d108d59db
Redone RMG template serialization using JSON serializer, added tests
2018-03-10 19:36:19 +03:00
AlexVinS
26aad17295
Actually copy zone data from map generator template
...
* fixes https://bugs.vcmi.eu/view.php?id=2482
2018-03-05 17:05:48 +03:00
Nikolay Shalakin
3795985de9
Eliminate warnings / errors. Pull request #388
2018-02-11 15:17:14 +03:00
Michał Kalinowski
26a222ac62
Change JsonType to enum class ( #393 )
...
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
DJWarmonger
8f42cdea67
Refactoring: use private pointer to CMapGenerator
2017-11-03 21:03:51 +01:00
AlexVinS
0868164147
(int) -> static_cast<int>
2017-08-12 15:43:41 +03:00
AlexVinS
15138c23de
Finished conversion to new logging API
...
* removed logger streams
* (float3|int3)::operator() -> (float3|int3)::toString(), it was too ugly and confusing.
2017-08-11 23:06:27 +03:00
AlexVinS
143ff682bc
Logging cleanup
2017-08-10 21:59:55 +03:00
AlexVinS
85e952f25f
Logging cleanup 3
2017-08-10 20:17:10 +03:00
AlexVinS
61e241308d
Logging cleanup
2017-08-10 19:52:05 +03:00
ArseniyShestakov
9d9c026c85
Code style: serialize everything on own lines for easier debugging ( #357 )
2017-07-31 16:35:42 +03:00
Arseniy Shestakov
cdd9dbc7f1
Code style: avoid some ambiguous else if indentation
...
If some code intentionally want to break else if to achieve specific indentation there must be braces.
2017-07-19 03:42:26 +03:00
ArseniyShestakov
a4c0ad94b1
Code style: remove default value hints in definitions ( #342 )
...
Some are outdated and this is something IDE are useful for.
2017-07-15 14:08:20 +03:00
Arseniy Shestakov
f1e5797834
Code style: move or add licensing information on top of every file
2017-07-14 01:26:03 +03:00
Arseniy Shestakov
dbcd79c48a
Code cleanup: remove double and unneded semicolons
2017-07-12 22:01:10 +03:00
DJWarmonger
4d1fb67594
Sanity check for Coverity #1366290 .
...
(Vector should never be empty, especially for chosen zone).
2017-05-27 21:37:05 +02:00
DJWarmonger
346d2ac588
Possible fix for #2681 .
2017-05-27 14:57:45 +02:00
AlexVinS
a85b4cf2a5
* WIP on event condition format
...
* Hero portrait serialization
* Fix town spells serialization
* Added support for float exponential part in Json
* Added support for int64 in Json
* Added basic Hero definitions serialization
* Added rumors serialization
* Advanced player info serialization.
* Added Disposed heroes serialization, (!) not covered with tests yet
* Added Local event serialization
* Added Pandoras box serialization
* Added Seer hut reward serialization
* Added CQuest serialization
* Added API for map object instance names serialization.
* Added random dwelling options serialization
* Advanced town options serialization
* Advanced hero options serialization
* More map format tests
* A lot of fixes, cleanup and refactoring
2017-05-27 00:23:19 +03:00
DjWarmonger
73c62f1b4c
Restore cut ring around main town.
2016-12-21 22:23:55 +01:00
DjWarmonger
4b3a878c00
Fix for passability.
2016-12-21 13:37:19 +01:00
DjWarmonger
a0596ebecf
Add clearance under town to ensure passability.
2016-12-21 10:43:24 +01:00
DjWarmonger
cc452bdfa9
Improved road routing so they can go under any passable object.
2016-12-21 10:10:37 +01:00
DjWarmonger
f78b524731
- Remove obstacle in front of player-owned towns
...
- Allow obstacles to touch town object
2016-12-20 15:23:47 +01:00
DjWarmonger
e37c35e439
Zone guard will cause object be placed as far away from it as possible in both zones.
2016-12-20 11:58:39 +01:00
DjWarmonger
ee3aec55f2
Correct implementations of A* algorithm. Seemingly fixes #2496 , it's also faster.
2016-12-15 16:29:23 +01:00
DjWarmonger
63d33a1e7c
Extract priority queue construction for reuse.
2016-12-15 12:58:16 +01:00
DjWarmonger
4102546977
Corrected road generation - they will be straight whenever possible.
2016-12-15 12:36:47 +01:00
AlexVinS
609c6f81bd
Fixed a few CWE-457
2016-11-27 22:37:41 +03:00
DjWarmonger
56b201e7e8
Fixed CID 1366289 and 1366290.
2016-11-25 19:32:54 +01:00
AlexVinS
5a3854a8de
Fixed CID 1288852, CID 1243202
2016-11-25 16:51:31 +03:00
AlexVinS
db40e125eb
Fixed CID 1243181, CID 1197449, CID 1366374, CID 1366377, CID 1366359
2016-11-24 21:56:30 +03:00
dydzio
5c07e1c432
Minor typo fixes
2016-11-10 11:51:47 +01:00
Vadim Markovtsev
c696746017
Fix some compilation warnings
2016-10-28 08:07:05 +02:00
AlexVinS
42e7128acc
Fixed possible use-after-free crash with artifacts registration in RMG.
2016-09-08 14:48:48 +03:00
AlexVinS
6dc47a2de0
Fixed use-after-free crash with quests registration in RMG.
...
* code taken from PR #200
2016-09-08 14:48:46 +03:00
Arseniy Shestakov
452e28d183
Remove some useless includes found by cppclean
...
This of course was tested and shouldn't break anything
2016-08-26 04:42:16 +03:00
DjWarmonger
dea39b8497
Complete solution for Subterranean Gate placement.
2016-08-15 21:37:38 +02:00
DjWarmonger
7600f8cf08
Quick fix - stop spawning Subterranean Gates at the edge of the map.
2016-08-14 08:36:15 +02:00
DjWarmonger
f995756973
First part of Subterranean Gates rework. Fixes # http://bugs.vcmi.eu/view.php?id=2450
2016-08-13 19:48:44 +02:00
DjWarmonger
8186fcae99
Removed some legacy code, work in progress.
2016-08-13 12:42:45 +02:00
DjWarmonger
452027cd8d
Handle ObjectInfo via pointer to avoid expensive copy.
2016-08-11 10:49:19 +02:00
DjWarmonger
2410f0af61
- WeightedRule optimization - part 1
...
- comments, style
2016-08-11 07:49:08 +02:00
DjWarmonger
2bffd4e5c1
Moar optimization!
2016-08-09 13:40:46 +02:00
DjWarmonger
7f0b852449
Huge optimization based on profiling - cut generation time by almost half (Jebus XL+U).
2016-08-09 10:12:13 +02:00
DjWarmonger
08dccb4cc3
Use binary search for roulette wheel. TODO: implement in other places.
2016-08-08 22:16:31 +02:00
DjWarmonger
7db2fc6d25
Fixes. Works correctly only for player factions configured in RMG options.
2016-08-06 12:16:13 +02:00
DjWarmonger
f980de7107
Place starting zones on surface/underground depending on player faction - first draft.
2016-08-06 10:04:03 +02:00
AlexVinS
57e588cba1
attempt to fix travis build
2016-07-28 13:15:19 +03:00
DjWarmonger
5a1383fea8
Correct implementation for previous fix.
2016-07-25 18:37:42 +02:00
DjWarmonger
d9556332e1
Hopefully fixed zone guards misplaced due to paths connecting at acute angles.
2016-07-24 18:15:23 +02:00
DjWarmonger
40f28778c2
Minor optimization, saves few seconds.
2016-07-14 14:24:11 +02:00
DjWarmonger
7d7b51d0db
Generated zones can now have different sizes depending on template.
2016-07-13 10:35:31 +02:00
DjWarmonger
1d8fb01f46
More even distribution of surface / underground zones + refactoring.
2016-07-13 07:54:52 +02:00
DjWarmonger
ac68dca328
Fixed zone placer so it now correctly evaluates found solution.
2016-07-12 21:23:45 +02:00
DjWarmonger
aecf834cc1
Fixed placing of close objects #2447 . Some additional refactoring.
2016-07-12 11:42:03 +02:00
DjWarmonger
e1e520f0a2
Removed "growing" zones which don't fit the rest of algorithm. Zones are now better connected on complex maps.
2016-07-11 15:44:24 +02:00
DjWarmonger
c3cbe89e2a
Last improvement: attract zones and push them bakc in separate steps.
2016-07-10 18:16:32 +02:00