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
DjWarmonger
87ef3701aa
Probably better fitness function.
2016-07-10 16:37:54 +02:00
DjWarmonger
8ceceb897e
Fixed zones falling into negative cordinates. Should fix "assert(size)" crashes.
2016-07-10 14:32:45 +02:00
DjWarmonger
fb3adf762a
Improved zone placer - zones on different levels are allowed to overlap completely.
2016-07-10 13:32:33 +02:00
DjWarmonger
f139b70279
Changed Subterranean Gate placement algorithm - now they are meant to be equidistant from both zone centers.
2016-07-10 12:29:48 +02:00
DjWarmonger
a66893af28
Fixed bug with Subterranean Gates:
...
Failed to connect (-1,-1,-1) with center of teh zone.
2016-07-10 10:11:29 +02:00
DjWarmonger
cfacd1adc3
Random template format change:
...
Tempaltes now can have optional "name" parameter for different names than identifier.
2016-06-06 11:30:51 +02:00
DjWarmonger
4101cabc22
Hidden unnecessary log.
2016-06-05 10:25:52 +02:00
DjWarmonger
053b342721
Minor optimization for object selection.
2016-06-05 10:18:10 +02:00
DjWarmonger
8f1fba9551
Merge pull request #146 from vcmi/feature/VCMIMapFormat1
...
Ok let's try it.
2016-03-01 07:49:54 +01:00
DjWarmonger
fba1e86091
An experiment - instead of hard limit function use modulo wrap-around for zone placement. Should be more logical and give zones more space.
2016-02-23 12:11:25 +01:00
AlexVinS
150fcc9422
Merge remote-tracking branch 'remotes/origin/develop' into feature/VCMIMapFormat1
2016-02-15 13:39:00 +03:00
AlexVinS
4d9058e412
Whitespace cleanup. (No code changes.)
2016-02-15 13:34:37 +03:00
AlexVinS
800f32c4cb
Fix few cases of tempOwner initialization.
2016-02-14 12:13:30 +03:00
AlexVinS
0c21efb202
Start integration of map format into engine
2016-02-09 20:20:03 +03:00
AlexVinS
a00dbd3dd1
Merge remote-tracking branch 'remotes/origin/develop' into feature/VCMIMapFormat1
...
Conflicts:
lib/CMakeLists.txt
lib/VCMI_lib.cbp
lib/filesystem/CFileInputStream.cpp
lib/filesystem/CZipLoader.cpp
lib/rmg/CRmgTemplateZone.cpp
vcmi.workspace
2016-02-08 10:17:25 +03:00
DjWarmonger
441c94d56c
Remove log for Seer Huts.
2016-02-06 15:11:56 +01:00
AlexVinS
6e205a58b4
Merge remote-tracking branch 'remotes/origin/develop' into feature/VCMIMapFormat1
...
Conflicts:
lib/VCMI_lib.cbp
lib/filesystem/CZipLoader.cpp
lib/filesystem/CZipLoader.h
lib/mapObjects/CGTownInstance.cpp
2016-02-04 10:27:51 +03:00
DjWarmonger
327e95407e
- Compile fixes part 1
...
- Project settings for MSVS
2016-01-27 21:08:08 +01:00
AlexVinS
89d986fc6a
Merge remote-tracking branch 'remotes/origin/develop' into feature/VCMIMapFormat1
...
Conflicts:
lib/CArtHandler.h
lib/mapObjects/MiscObjects.cpp
2016-01-24 15:39:41 +03:00
DjWarmonger
ac730a591c
Fixed large treasure piles sometimes being uncovered.
2016-01-13 20:03:25 +01:00
DjWarmonger
8c5f93dd8f
Little refactoring for object placement.
2016-01-13 19:17:12 +01:00
DjWarmonger
dd1fc47c93
Workaround for Seer Hut offset. They seem to work fine now.
2016-01-08 21:51:55 +01:00
DjWarmonger
d840fb40eb
Fixed crashes with RMG Seer Huts. Now they are functional.
2016-01-08 21:14:57 +01:00
AlexVinS
37d0dad70a
Merge branch 'develop' into feature/VCMIMapFormat1
...
Conflicts:
lib/CArtHandler.cpp
2016-01-01 20:28:52 +03:00
Arseniy Shestakov
9fd1cff090
Refactoring: always use std prefix for shared_ptr, unique_ptr and make_shared
...
Long time ago it's was used without prefix to make future switch from boost to std version easier.
I discusses this with Ivan and decide to drop these using from Global.h now.
This change wouldn't break anything because there was already code with prefix for each of three cases.
2015-12-29 05:43:33 +03:00
AlexVinS
2d5a366e6c
Implemented (basic) object construction and placement
...
* contain refactoring of RMG and class handling (will be more)
2015-12-05 12:36:42 +03:00
Ivan Savenko
faa7cbff18
Fixed gcc/clang warnings
2015-12-04 01:17:43 +02:00
Ivan Savenko
c3ce4b25df
Removed all #include's of CMap.h from headers.
...
To all - please, avoid #include's in headers as much as possible
This kills incremental build compile times
2015-12-02 21:05:10 +02:00
Ivan Savenko
f9d9a38e53
Fixed gcc warnings
2015-12-02 20:59:38 +02:00
ArseniyShestakov
2276af70dc
PreGame: avoid crashing on random map options
...
Options is still broken, but at least we shouldn't crash there.
2015-11-25 07:25:44 +03:00
Vadim Markovtsev
e4b1ef1405
Add "override" to virtual overriden methods
2015-10-13 21:05:36 +03:00
DjWarmonger
f81b46088a
Fixed #2218
2015-09-29 11:01:59 +02:00
DjWarmonger
6b45f323ea
Fixed logic regression from previous commit.
2015-09-23 21:38:16 +02:00
AlexVinS
f24f744f4b
Fix a few warnings
2015-08-19 23:02:37 +03:00