1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-28 23:06:24 +02:00
Commit Graph

471 Commits

Author SHA1 Message Date
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
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