Dydzio
aafad18121
Style fixes
2019-02-12 19:47:19 +01:00
AlexVinS
14e294553d
Enabled GIF format for images (not GIF-animations) as requested by user.
2019-02-07 03:23:14 +03:00
AlexVinS
b3c26615df
Fixed map format regression: there is no default difficulty.
2019-01-26 17:05:35 +03:00
Mikko
ae7821462d
Update ISpellMechanics.cpp
2019-01-24 15:09:01 +00:00
Mikko
a77cbc311e
Update JsonSerializer.cpp
2019-01-24 14:49:30 +00:00
Mikko
eba4f1b514
Update CBattleInfoEssentials.cpp
2019-01-24 14:48:38 +00:00
Michał Kalinowski
a0d1808b62
CMake transitive compile dependency
...
Moving to more target focusing code that provides better transitive scope
2019-01-19 17:38:54 +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
AlexVinS
da20aa2388
Use the same cost value in Pathfinder and fuzzy evaluations.
2019-01-17 10:54:41 +03:00
AlexVinS
4b5910c2f4
VCAI performance improvements
...
* Node graph initialization optimized.
* Fixed "Unathorized obstacle access".
* Pathfinding tracing disabled with ifdef.
* Misc bonus calculation optimizations.
* Removed timestamp from log lines. Date formatting eats too much CPU.
* Paths for all heroes in Client are now cached
2019-01-17 10:50:56 +03:00
Andrii Danylchenko
8fee46de7c
AI: town portal support
2019-01-17 10:40:23 +03:00
Dydzio
216d50788b
Fix AI build, update default Windows SDK version for projects
2018-12-31 15:18:42 +01:00
Andrii Danylchenko
035d279ae8
Refactor CGHeroInstance, make spells private
2018-12-23 15:49:26 +03:00
DJWarmonger
f4a8a1294e
Optimizations based on MSVS profiler.
2018-12-16 15:46:48 +01:00
Andrii Danylchenko
83531f4355
Rename typo in NetPacksServer.cpp
2018-11-17 21:58:54 +02:00
Alexander Shishkin
845f0fbf5c
Merge pull request #512 from godric3/jsonSchemas
...
Support for using relative file path in json schema references
2018-11-02 13:07:34 +03:00
Arseniy Shestakov
708705aa96
CGLighthouse: workaround crash on map initialization. Fix issue 3020
...
Dirty hack here since proper fix would require to break saves
2018-11-01 23:31:23 +03:00
Michał Janiszewski
0ff2e1180d
Throw std::runtime_exception instead of a pointer to new one
...
cf. https://isocpp.org/wiki/faq/exceptions#what-to-throw
2018-10-31 07:27:54 +01:00
Alexander Shishkin
2a282c9a8e
Merge pull request #509 from godric3/bonusDescription
...
Skill and hero specialty bonus description
2018-10-31 00:59:05 +03:00
godric3
8650a8eea8
allow json schema references to use relative file path
2018-10-30 22:30:56 +01:00
godric3
1586868a5d
make source id optional in functions converting deprecated specialty bonuses
2018-10-30 20:58:22 +01:00
Alexander Shishkin
e26f6ff15f
Merge pull request #505 from janisozaur/catch-by-ref
...
Catch exceptions by const-ref, not by value
2018-10-30 05:08:30 +03:00
godric3
f9ac46576b
Add description for bonuses from hero specialty
2018-10-29 21:33:13 +01:00
godric3
c8ba3de821
Change skill bonuses description to use name instead of identifier
2018-10-29 20:53:13 +01:00
Michał Janiszewski
7be9aa4868
Prevent shadowing of function arguments by local vars
2018-10-29 16:56:14 +01:00
Michał Janiszewski
9822a8f2df
Catch exceptions by const-ref, not by value
2018-10-29 16:41:54 +01:00
Alexander Shishkin
e814aca29f
Merge pull request #500 from godric3/rmgCrash
...
Fix crash when generating random map with random number of players
2018-10-29 01:38:10 +03: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
Andrii Danylchenko
72aff02418
AI pathfinding: buy boat
2018-10-21 14:17:55 +03:00
Andrii Danylchenko
cbaa834589
AI pathfinding: bug fix after refactoring
2018-10-10 14:51:57 +03:00
Andrii Danylchenko
f327c46fa3
AI pathfinding: rename and add const to functions
2018-10-07 14:51:27 +03:00
Andrii Danylchenko
49c872e4ec
AI: replace SectorMap with new PathfinderManager
2018-10-06 16:35:31 +03:00
Andrii Danylchenko
eb17313f7f
AI: pathfinder extensibility - add one more rule for movement to destination and some refactoring
2018-09-23 15:26:53 +03:00
Andrii Danylchenko
7150fc9f71
AI: pathfinder api supports configuration
2018-09-23 15:26:53 +03:00
Andrii Danylchenko
9ab44b950a
AI: pathfinder rework, rules refactored a bit.
2018-09-23 15:26:53 +03:00
Andrii Danylchenko
24221f3fb4
AI: move teleportation handling to pathfinder helper and neighbour finder
2018-09-23 15:26:53 +03:00
Andrii Danylchenko
6ac987794c
AI: first rule extracted for pathfinder
2018-09-23 15:26:53 +03:00
Andrii Danylchenko
9af0032f84
AI: try to add some pathfinder extensibility. Extracted neighbour nodes finder
2018-09-23 15:26:53 +03:00
Fior.in
cca46e311d
Fixed schemas for battle animation overwritting an solo attribute instead images attribute dependant. Now working for replacing battle sprites on pre-existant heroes too ( #490 )
2018-09-13 02:33:34 +03:00
Fior.in
47ba3b2476
Hero scheme: allow each hero to have a unique battle animation ( #480 )
...
* attribute for battle image added on hero class, allowing on hero schemes each hero have a unique battle .def in 'images' structures sided with portraits and specialties images
2018-08-27 09:42:36 +03:00
Dydzio
1471043cae
Update visual studio project files
2018-08-22 17:31:48 +03:00
Konstantin Vukolov
96215233bc
macOS: fix packet deserialization ( #479 )
2018-08-14 01:03:45 +03:00
Aleksei Iupinov
7ed318d156
Stop awarding single scenario bonuses in campaigns
2018-08-05 05:42:54 +03:00
Dydzio
2288e9b8aa
Merge branch 'develop' into AIMapObjectEvaluation
2018-07-30 01:33:49 +02:00
Dydzio
393b25eb7f
Minor tweaks/fixes
2018-07-29 19:31:01 +02:00
Dydzio
b37ba8e046
Initial version of AI object value config
2018-07-28 00:43:56 +02:00
Dydzio
615df6203d
Oprator overload correction...
2018-07-26 16:43:40 +02:00
DJWarmonger
273802c92c
I have no idea what I'm doing
2018-07-26 12:14:29 +02:00
Dydzio
21c1f47a78
Fixes
2018-07-22 19:12:11 +02:00
Dydzio
2c1d91e2ff
Move object ID struct to lib
2018-07-22 18:38:45 +02:00
Alexander Shishkin
9bd662b2f3
Merge pull request #459 from vcmi/issue2969
...
Fix for isuue 2969
2018-07-17 04:28:59 +03:00
Dydzio
6174df0a72
Revert only launcher saving to settings.json from PR441
2018-07-16 22:05:42 +02:00
AlexVinS
d6f889f08a
Setup town`s war machine in finalization step
...
* fixes https://bugs.vcmi.eu/view.php?id=2969
2018-07-16 15:16:55 +03:00
Dydzio
260981d586
Update project files to match vcmi code changes
2018-07-06 18:52:51 +02:00
Andrii Danylchenko
dcbcff41dc
apply review comments for CAndroidVMHelper
2018-05-26 14:50:49 +03:00
Andrii Danylchenko
ee033e9c9c
fix android build
2018-05-25 22:57:29 +03:00
Karlis Senko
224ea28433
Fix various memory errors related to server and connections.
...
* keep connection when restarting scenario
* wrong double free in Connection
* multiple use after free when stopping server
* double free of StartInfo
2018-05-01 00:04:20 +03:00
Karlis Senko
69330de89c
Avoid integer overflow and conversion related UB.
2018-05-01 00:02:07 +03:00
Karlis Senko
40e6292ed2
Fix memory leaks in launcher.
2018-05-01 00:01:20 +03:00
Johannes 'josch' Schauer
8ead3e3b91
lib/CGeneralTextHandler.cpp: fix misleading indentation
2018-04-19 15:12:18 +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
godric3
d9d01f0b68
Exposed more of existing limiters for modders ( #449 )
...
* Exposed alignment, faction and terrain limiters
* Limiters toString() use now boost:format
2018-04-17 19:59:30 +07:00
AlexVinS
d9d5b7b6e5
[c::b] update projects
2018-04-08 18:37:54 +03:00
Henning Koehler
2ede3783dd
Settings: savefrequency is now configurable in launcher
...
* Client command-line can modify arbitrary settings now
* Only launcher auto-saves to settings.json
2018-04-08 17:12:29 +07:00
Alexander Shishkin
5c09f751b3
Gui cleanup3 - UI refactoring to use smart pointers ( #440 )
...
* Changed most gui classes to use shared pointers
* Store and use IImage as shared_ptr
* CSpellWindow redesign
* AdventureMapClasses cleanup
* CLabel: store background as smart pointer
* Store CObjectList items as smart pointers
* Removed destroy function of list item
* Store toggle buttons as smart pointers
* Use CComponent as smart pointer
* Attempt to fix artifact merchant drawing
2018-04-07 18:34:11 +07:00
AlexVinS
a8e1c51c36
[c::b] projects update
2018-04-05 21:12:21 +03:00
ArseniyShestakov
1a6f456ac0
Merge pull request #402 from vcmi/feature/multiplayer
...
Refactoring of all pre-gameplay UI and networking code.
This will break some things, but I'll be able to fix them without constant rebasing.
2018-04-05 23:29:27 +07:00
Arseniy Shestakov
f5d8e5b0cc
Move Boost Asio compatibility code to Global.h. Fix by @dydzio06143
2018-04-05 19:35:08 +07:00
Arseniy Shestakov
74e5c5bf05
CGameHandler: rename CPackForClient argument and add network logging
2018-04-04 14:24:32 +07: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
1fb25c46d3
cleanup
2018-04-03 21:46:12 +03:00
Henning Koehler
82f334b503
Enable Limiter nesting with AllOf, AnyOf, NoneOf ( #439 )
...
* Renamed LimiterList to AllOfLimiter and added AnyOfLimiter, NoneOfLimiter
* Updated bonus schema to new limiter format
2018-04-01 18:17:34 +07:00
Henning Koehler
6ddcb079a4
Enabled new secondary skills to be created ( #438 )
...
* Universities, Scholars and Witch Huts may offer new skills
* Moved encode/decodeSkill to CSkillHandler
* Refactored CSkill interface and CSkill::LevelInfo image storage
* Legacy game constants renamed to ORIGINAL_XXX_QUANTITY
2018-03-31 12:56:40 +07:00
Henning Koehler
02b5a5e830
Make bonus stacking configurable + fix duplicate propagation/inheritance ( #433 )
...
Addresses several related problems:
* Propagation / unpropagation of duplicate bonuses is inconsistent, causing bugs
* Duplicate bonuses never stack, which is not always intended behaviour (e.g. multiple copies of resource generating artifacts)
* Different bonuses always stack, which is not always intended behaviour (e.g. Angel + Archangel morale bonuses)
This is addressed as follows:
* Duplicate bonuses are never eliminated during propagation/inheritance.
* Unpropagation eliminates only a single copy of duplicated bonus
* Bonus receives a new field stacking that determines stacking behaviour:
* * empty string = no stacking with duplicates (default)
* * "ALWAYS" = stacks with duplicates & everything else
* * some other value = no stacking with bonuses with same stacking value
Also Morale/Luck window now hides non-stacking bonuses.
2018-03-27 14:54:58 +07:00
Henning Koehler
2b64bf29ed
Fix Issue 2214 ( #437 )
...
CGameInfoCallback::getAvailableHeroes: add checks for tavern
2018-03-22 18:14:43 +07:00
Henning Koehler
591928fc4b
fixed bug introduced in last CAddInfo fix
2018-03-20 12:58:02 +13:00
Henning Koehler
1685641357
Flexible necromancy ( #430 )
...
* made IMPROVED_NECROMANCY bonus configurable
* updated cloak of the undead king
2018-03-17 16:46:16 +08:00
AlexVinS
e666b2740c
Do not use CCreature in CSimpleArmy
2018-03-17 13:24:12 +08:00
AlexVinS
03cfd2cb78
Do not use StackLocation in netpacks
2018-03-17 13:24:12 +08:00
AlexVinS
8cec07afbd
Replaced CGHeroInstance and CGObjectInstance with ObjectInstanceID in NetPacks
2018-03-17 13:24:12 +08:00
Henning Koehler
8e7aa910cb
spacing fix
2018-03-17 11:32:30 +13:00
Henning Koehler
68b757eb53
fixed CAddInfo::operator[] (mutable version)
2018-03-17 11:03:02 +13:00
Henning Koehler
7f76648a7c
Extend Bonus.addInfo to integer vector ( #427 )
...
* changed Bonus::additionalInfo to integer vector
* fixed deserialization for old savegames
* removed newline from JsonNode::toJson()
* updated bonus schema; SPELL_AFTER_ATTACK and SPELL_BEFORE_ATTACK use new addInfo format
* removed unnecessary init in Bonus constructor
2018-03-12 08:20:18 +03:00
Raphnalor
83c6ffbda0
Reflect changes in boost::asio released in Boost 1.66. ( #428 )
...
The service template parameters are disabled by default for now.
Use BOOST_ASIO_ENABLE_OLD_SERVICES macro to enable the old interface.
2018-03-11 21:02:20 +08:00
AlexVinS
9d108d59db
Redone RMG template serialization using JSON serializer, added tests
2018-03-10 19:36:19 +03:00
AlexVinS
7d27d144a5
Possible fix for https://bugs.vcmi.eu/view.php?id=2913
2018-03-10 19:35:20 +03:00
ArseniyShestakov
079cd470c2
Merge pull request #425 from vcmi/CatapultRework
...
Catapult rework
2018-03-06 01:16:53 +08:00
Henning Koehler
e455d97fc7
cleanup of CBonusSystemNode::removeBonusesRecursive
2018-03-05 22:13:23 +08:00
Henning Koehler
6263c4c3eb
renamed CGHeroInstance::updateSkill to updateSkillBonus
2018-03-05 22:13:23 +08:00
Henning Koehler
d3e4fc6e7a
renamed CBonusSystemNode::popBonuses to removeBonusesRecursive
2018-03-05 22:13:23 +08:00
Henning Koehler
4c0a67041b
secondary skill bonuses get updated via replacement (issue 2796)
2018-03-05 22:13:23 +08: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
Dydzio
07cf59592b
Updated catapult spell effect to match new code
2018-03-05 12:55:44 +01:00
Henning Koehler
4ee9d7f65a
Configure JSON merge behaviour via #override flag ( #423 )
...
* added json flags; override flag affects how structs are merged
2018-03-05 11:30:10 +08:00
AlexVinS
f126a34a5e
Fixed https://bugs.vcmi.eu/view.php?id=2904
2018-03-04 11:15:24 +03:00
AlexVinS
5ea1888a14
Summon effect fixes.
2018-03-03 20:37:49 +03:00
Dydzio
44d653b835
Update VS files to match latest develop ( #424 )
2018-03-02 14:32:00 +03:00
Alexander Shishkin
8b002ad774
Issue2888 ( #421 )
...
Fixed issue 2888
* Merged AFTER_ATTACK & BEFORE_ATTACK cast modes.
* Introduced new caster class for creature ability usage
* Added few tests
2018-03-02 13:22:51 +03:00
ArseniyShestakov
7fd090786c
Merge pull request #379 from henningkoehlernz/hero_specialty_scaling
...
Hero specialty scaling
2018-02-28 15:03:24 +08:00
AlexVinS
f917ec5254
Revert "Fixed ancient backward compatibility regression"
...
This reverts commit 3c67e12620
.
2018-02-28 15:00:38 +08:00
AlexVinS
166c04e2e0
Hack fixed serializer assertion by completely disabling AI goals serialization
2018-02-28 15:00:38 +08:00
AlexVinS
3c67e12620
Fixed ancient backward compatibility regression
2018-02-24 19:48:49 +03:00
AlexVinS
080a81db3a
Fixed summoned units not being removed after battle
2018-02-23 21:58:05 +03:00
Henning Koehler
6c443d7094
SPECIAL_SPELL_LEV and SPECIAL_BLESS_DAMAGE no longer scale with hero level
2018-02-21 09:56:20 +13:00
AlexVinS
6d8536b12a
Fixed https://bugs.vcmi.eu/view.php?id=2882
2018-02-20 14:29:06 +03:00
Henning Koehler
89cb7b2780
formatting fix and code simplification in HeroBonus
2018-02-20 23:36:00 +13:00
AlexVinS
2b49df2cab
[Spells] Do not use Unit State in heal effect
2018-02-20 13:19:01 +03:00
AlexVinS
2add0e443e
[Spells] Added "summonByHealth" option to Summon effect
...
* with summonByHealth on, effect power (levelPower * SP) treated as HP
* default behavior (effect power = amount) not changed
* tests included
2018-02-20 08:08:34 +03:00
Henning Koehler
9850e7254e
updated serialization version to 781
2018-02-18 23:32:52 +13:00
Henning Koehler
e2f2568221
added extra debug info for Json parsing
2018-02-18 20:59:05 +13:00
Henning Koehler
6442842731
added one-line option for standard creature specialty; also fixes bug for creatures where upgrades have different attack/defense
2018-02-18 20:59:05 +13:00
Henning Koehler
95e2b44319
added TimesStackLevelUpdater
2018-02-18 20:36:24 +13:00
Henning Koehler
552bad08b3
added TimesHeroLevelUpdater; renamed ScalingUpdater to GrowsWithLevelUpdater
2018-02-18 20:36:24 +13:00
Henning Koehler
f9a8cb2876
fixed formatting and other small issues
2018-02-18 20:22:23 +13:00
Henning Koehler
73f782aa39
fixed various specialty bugs retained during conversion
2018-02-18 20:22:23 +13:00
Henning Koehler
2b8f111a81
converted special.json; fixed bugs in specialty json construction
2018-02-18 20:22:23 +13:00
Henning Koehler
dc7132d8b7
converted castle.json; fixed bugs in Bonus::toJsonNode()
2018-02-18 20:22:23 +13:00
Henning Koehler
00f51e0f98
Updaters replace bonuses during inheritance
2018-02-18 20:22:23 +13:00
Henning Koehler
ad5a9f7205
made HeroSpecial public again
2018-02-18 20:08:34 +13:00
Henning Koehler
20172dba7c
indentation fix
2018-02-18 20:08:34 +13:00
Henning Koehler
ee46862784
replaced JsonNode::isEmpty() with JsonNode::containsBaseData()
2018-02-18 20:08:34 +13:00
Henning Koehler
6414cd18e8
fixed bug with old specialty conversion
2018-02-18 20:08:34 +13:00
Henning Koehler
de6d4d8367
fixed indentation for switch statements
2018-02-18 20:08:34 +13:00
Henning Koehler
6037c19b9a
removed specialtyDeprecated from CGHeroInstance; improved savegame compatibility
2018-02-18 19:47:38 +13:00
Henning Koehler
81c44dac41
minor fixes
2018-02-18 19:47:38 +13:00
Henning Koehler
ab7ce6625e
moved nameForBonus into Bonus class
2018-02-18 19:47:37 +13:00
Henning Koehler
ba7709da50
middle-aged specialty format is converted properly and logged
2018-02-18 19:27:24 +13:00
Henning Koehler
16f59fb213
fixed base merging and limiter creation
2018-02-18 19:27:24 +13:00
Henning Koehler
6ae103dd63
print json in compact format
2018-02-18 19:27:24 +13:00
Henning Koehler
a002df399e
updated json loading and schema to fit new specialty format
2018-02-18 19:27:24 +13:00
Henning Koehler
038cb4bf19
remove base json from specialty bonuses
2018-02-18 19:27:24 +13:00
Henning Koehler
eb02ce0f31
changed specialty json format to struct with base (WIP)
2018-02-18 19:27:24 +13:00
Henning Koehler
d7942fd929
fixed typo in specialty log
2018-02-18 18:53:01 +13:00
Henning Koehler
c31950612c
convert spec format in afterLoadFinalization
2018-02-18 18:53:01 +13:00
Henning Koehler
26862b4c51
improved/fixed specialty json encoding
2018-02-18 18:25:49 +13:00
Henning Koehler
05838b3827
Bonuse::toJsonNode uses string constants for type/subtype
2018-02-18 17:33:23 +13:00
Henning Koehler
c79b776f3c
Limiters (at least creature type limiters) are printed as well
2018-02-18 17:33:23 +13:00
Henning Koehler
89b1ba7538
added basics for specialty format updating
2018-02-18 17:33:23 +13:00
Henning Koehler
5d3f6c3b91
removed CHeroInstance::specialty
2018-02-18 17:33:23 +13:00
Henning Koehler
2703b035a6
added updater to Bonus json format
2018-02-18 17:33:23 +13:00
Henning Koehler
f8a8f6ac72
re-fixed type registration bug properly
2018-02-18 17:33:23 +13:00
Henning Koehler
9a335cdb59
fixed type registration bug (order matters\!)
2018-02-18 17:33:23 +13:00
Henning Koehler
ef7900d0a2
added support for older saves (fails)
2018-02-18 17:33:23 +13:00
Henning Koehler
d594845c32
fixed serialization issues
2018-02-18 17:33:23 +13:00
Henning Koehler
3e0022be27
added support for new specialty json format; old format is converted to bonuses with updaters
2018-02-18 17:33:23 +13:00
Henning Koehler
f867b1a37e
invalidate bonus caching on update
2018-02-18 16:55:15 +13:00
Henning Koehler
f1fd00f005
renamed & reused CBonusSystemNode::updateBonuses; tweaked updater signature
2018-02-18 16:55:15 +13:00
Henning Koehler
67330efa4a
added basics for Bonus updater
2018-02-18 16:34:15 +13:00