Commit Graph
100 Commits
Author SHA1 Message Date
Arseniy Shestakov bf3f94a106 Travis CI: try to use 2 threads for Coverity Scan build
With GCC and Coverity together memory usage would be too high, but might work with Clang.
2016-11-28 00:09:51 +03:00
Arseniy Shestakov 2b916189f6 Travis CI: working configuration for Coverity Scan auto submission
Even with Clang, Ninja and debug set build takes extremely long and end just minute before timeout.

We should investigate using Gold linker for Linux builds on Travis and check what else can be done to speed up building process.
2016-11-27 07:59:33 +03:00
Arseniy Shestakov f8ccc27702 Travis CI: add notification email for Coverity 2016-11-25 03:24:14 +03:00
Arseniy Shestakov b880e2b586 Travis CI: fix 2016-11-24 21:33:06 +03:00
Arseniy Shestakov 438bf68ac7 Travis CI: one more fix 2016-11-24 21:18:41 +03:00
Arseniy Shestakov 7800524b48 Travis CI: fix config parse error 2016-11-24 21:13:50 +03:00
Arseniy Shestakov 880d3e8792 Travis CI: attempt to enable Coverity Scan integration 2016-11-24 21:08:47 +03:00
Arseniy Shestakov 30bc46877a Add Coverity Scan status badge 2016-11-24 19:53:30 +03:00
ArseniyShestakovandGitHub 6a9d3d07e9 Merge pull request #260 from dalerank/patch-1
set correct paths for libraries for game directory
2016-11-15 00:18:03 +03:00
ArseniyShestakovandGitHub 06437aa202 Merge pull request #258 from dydzio0614/spellingfix
Minor typo fixes. Fix issue #2596
2016-11-10 13:58:25 +03:00
Arseniy Shestakov 37f68713a7 Merge branch 'p254_4' into develop 2016-11-08 00:12:01 +03:00
ArseniyShestakovandGitHub 4477b7c35d Merge pull request #255 from vcmi/travisMXE
Travis: add Windows build via MXE
2016-11-06 06:36:18 +03:00
Arseniy Shestakov c7056c0302 Travis: add Windows build via MXE
Tests are disabled for MXE since they fail to build. Problem is lack of proper main, but fix might break them on other platforms.
Since we don't have many automated tests anyway better to disable it for now when it's built using MXE.
2016-11-06 05:36:50 +03:00
ArseniyShestakovandGitHub 43ebfe2aa8 Merge pull request #244 from FeniksFire/develop
0.99 released so we can now merge this one.
2016-11-01 21:43:36 +03:00
Arseniy Shestakov 99d593172d RPM: Fix date for 0.99 release 2016-11-01 21:26:09 +03:00
Arseniy Shestakov 6c8aa6e938 Linux version bump for 0.99 2016-11-01 20:45:50 +03:00
ArseniyShestakovandGitHub b0e78444ec Merge pull request #247 from vcmi/issue/2585
Relaxed cast requirements for Quicksand
2016-10-31 17:28:08 +03:00
Arseniy Shestakov e79c522c4b Serializer refactoring: fix FileStream usage for game loading
Miss this one rebase. Without this one non-English characters in paths to saves cause issues.
2016-10-30 15:46:44 +03:00
Arseniy Shestakov e13f98e38e Compilation fix for VS2015 suggested by Ivan and tested by @dydzio0614
It's compiled without it by Clang / GCC, but not MSVC++
2016-10-29 21:29:25 +03:00
Arseniy Shestakov ba5ad286cd Serializer refactoring: fix paths to work in Visual Studio 2016-10-28 13:52:42 +03:00
Arseniy Shestakov ba1929728a Drop old now unused serializer files 2016-10-27 18:44:00 +03:00
Arseniy Shestakov 5f1254a29e Apply some of Vadim's changes
I intentionally didn't transfer changes in CLoadIntegrityValidator since not really agree with them.
2016-10-27 18:39:17 +03:00
Arseniy Shestakov 15b4774076 Logging: always print version of client and server in the begining 2016-10-27 17:14:20 +03:00
Arseniy Shestakov cb3d6a24e7 Cmake: cleanup for commit hash in build version
Since it's available in lib we don't need to include it everywhere.
2016-10-27 17:01:29 +03:00
ArseniyShestakovandGitHub eec14028fe Merge pull request #242 from dydzio0614/MapScrollCursor
Implement adventure map scroll cursor change
2016-10-17 16:09:01 +03:00
ArseniyShestakovandGitHub 3cf000572a Merge pull request #234 from dreamer10/develop
Bug fix for berserk:
2016-10-08 17:43:22 +03:00
ArseniyShestakovandGitHub 8af4d97664 Merge pull request #233 from vmarkovtsev/develop
Bunch of random stuff
2016-10-03 22:25:39 +03:00
ArseniyShestakovandGitHub 6f82dc3e15 Merge pull request #230 from dydzio0614/CommanderExperience
Some repair for WoG commanders
2016-10-02 19:29:55 +03:00
ArseniyShestakovandGitHub 5593eb5769 Merge pull request #232 from vmarkovtsev/develop
Add the option to forcefully use bundled fuzzylite
2016-10-02 19:05:47 +03:00
ArseniyShestakovandGitHub 1c2a40592a Merge pull request #229 from vmarkovtsev/develop
Fix freshly recruited hero phantom in castle entrance
2016-10-02 18:26:40 +03:00
Arseniy Shestakov 7b7958c548 Cheat codes: add option to apply cheats on different players
All suitable codes can now be used with "ai", "all" color or with object ID:
vcminahar all - will apply cheat to all heroes of all players
vcminahar ai - will apply cheat  to all heroes of AI players
vcminahar blue - will apply it to all heroes of blue player
vcminahar 553 - will apply cheat to hero with instance id of 553 if it's exist
Cheats without options work as before.
2016-10-02 16:21:46 +03:00
Arseniy Shestakov bccb82ffcb Add important changes to ChangeLog 2016-10-02 11:49:46 +03:00
Arseniy Shestakov 04eb0e3787 CGameState::battleGetBattlefieldType: avoid crash on tile 0,0,0
Fix issue 2524
2016-10-02 08:39:01 +03:00
ArseniyShestakovandGitHub 95ee76977f Merge pull request #225 from dydzio0614/CreatureUpgradeWindow
Improve creature upgrade handling. Fix issue #2172
2016-09-30 22:31:07 +03:00
Arseniy Shestakov 84fc8770e9 Disable tests for Deb and RPM packages 2016-09-30 01:16:27 +03:00
Arseniy Shestakov 6e5ad22efc Revert "CMake: add usage of ccache if it's available"
This reverts commit 2576dd4692.

Unfortunately I didn't manage to fix older combination of CMake+Clang with ccache.
Newer version of Clang that I use can't compile older FuzzyLite from VCMI repository anyway.
2016-09-28 08:26:31 +03:00
Arseniy Shestakov 2576dd4692 CMake: add usage of ccache if it's available
ccache obviously don't give any real betefit with PCH, but still nice option to test.
2016-09-27 08:36:52 +03:00
Arseniy Shestakov 99dcb44851 Add option hideSystemMessages to hide server messages on client
Use "set hideSystemMessages on" in client console to activate.
2016-09-26 16:05:27 +03:00
ArseniyShestakovandGitHub 6c63041d1a Merge pull request #198 from vcmi/SpellsRefactoring8
No reason to not merge this now.
2016-09-24 05:29:55 +03:00
Arseniy Shestakov bb05db90e5 CRewardableObject::onHeroVisit: avoid crash on pickable objects
Missed this problem when tested #214
2016-09-23 11:47:07 +03:00
ArseniyShestakovandGitHub 50b271393c Merge pull request #214 from Chocimier/iss1975
Properly check if corpse was visited
2016-09-23 06:26:10 +03:00
Arseniy Shestakov 9963b9e02b New command line option for testing: testingsavefrequency
Saving is slowest part of VCMI and for testing purposes like benchmarking it's helpful to create saves less often.
When --testingsavefrequency=N is specified client going to save only once in N days.

Option only active if other testing options are specified too.
2016-09-22 03:43:30 +03:00
Arseniy Shestakov dba58e5eb1 Faerie Dragon: decrease Magic Mirror cast chance from 30 to 20 percent
Povelitel find out it's work too often and FizMiG doc confirms this.
2016-09-21 19:09:02 +03:00
Arseniy Shestakov 58f90b736b New cheat vcmiungoliant: hide all tiles that out of sight radius 2016-09-20 10:51:57 +03:00
Arseniy Shestakov f721d22dfb CClient::loadGame: throw proper error if server save is missing 2016-09-19 04:56:20 +03:00
Arseniy Shestakov 02a45007e7 VCAI::showGarrisonDialog: don't try to pick army from locked garrison 2016-09-19 03:30:55 +03:00
Arseniy Shestakov 75cffa7d0b CGameHandler::arrangeStacks: honour removableUnits of CGGarrison
Now server properly check allowed actions for CGGarrison. Fix issue 2303
Server now allow all stack arrangement as long as troops stay inside garrison.
It's possible to put more troops inside using swap/merge/split, but not take anything out if it.
2016-09-19 03:20:44 +03:00
ArseniyShestakovandGitHub 540d239df6 Merge pull request #217 from dydzio0614/patch-1
Block surrender via escape tunnel. Fix issue 2398
2016-09-18 23:59:01 +03:00
Arseniy Shestakov 58d11d6074 donotstartserver: ask for IP and port even for "host" player
When "--donotstartserver" option specified client will show dialog to use any IP/port for host player.
2016-09-18 23:24:08 +03:00
Arseniy Shestakov 1d45d214e5 CGameHandler refactoring: when possible only use const data
We only change gamestate via netpacks so there is absolutely no reason to use non-const pointers and functions in GH.
2016-09-18 11:53:51 +03:00
Arseniy Shestakov 635c48f889 CGHeroInstance::setType: fix to give proper subID to random heroes
Hero class id is used to determine hero object appearance, but after than we use subID to store it's unique id.
This change should fix issues 2127 and 2277 since random heroes not going to override others in heroesPool.
2016-09-18 10:01:09 +03:00
Arseniy Shestakov f6df107a55 Replace more magic subIDs with readable enums 2016-09-18 00:53:37 +03:00
ArseniyShestakovandGitHub 6ff0c5d58d Merge pull request #216 from dydzio0614/patch-1
Correcting random amount of gold in gold piles
2016-09-18 00:36:01 +03:00
ArseniyShestakovandGitHub 512908b989 Merge pull request #215 from dydzio0614/patch-1
Fix for compile error in VS 2015
2016-09-17 14:21:36 +03:00
Arseniy Shestakov 7ae4e70134 CGameHandler: fix player id logging 2016-09-17 00:05:10 +03:00
Arseniy Shestakov 1cbe9e1b8b Client: add donotstartserver option. Alternative way to start a game
Option is useful for server profiling also let me test MP over network and much more.
Also there is issues with boost::interprocess on some systems under Windows and this is the way to bypass them.
2016-09-16 20:01:44 +03:00
Arseniy Shestakov ea65fb15c2 CVCMIServer: do not crash if port not specified 2016-09-16 20:01:07 +03:00
Arseniy Shestakov 84137dcaa5 Add DLL_LINKAGE to getStr and fix player id logging in VCAI 2016-09-16 05:45:00 +03:00
Arseniy Shestakov 30042cac3d VCAI::performTypicalActions: always check that hero is still available
It's weird why this only appear now so if you have ideas check issue 2479.
2016-09-16 04:52:17 +03:00
Arseniy Shestakov c8090c78ec CGameState::updateRumor: fix infinite loop with only one map rumor 2016-09-15 23:22:25 +03:00
Arseniy Shestakov fdca75b4b0 PlayerColor: add getStr and getStrCap functions with optional L10n 2016-09-15 18:22:54 +03:00
Arseniy Shestakov ca0fe8fdc4 VCAI: do not attempt artefact and army exchange with ally hero
While visits of ally heroes supposedly occur accidentally It's still nice to handle it's gracefully.
No reason to prevent visits completely as they useful if hero have skill like Scholar.
2016-09-14 13:34:22 +03:00
Arseniy Shestakov 7ec9601acd VCAI: safety checks to avoid crashes with boat objects
Probably we should rewrite boat-related code to make AI boat handling easier.
2016-09-14 03:44:35 +03:00
Arseniy Shestakov f623865991 CCastleBuildings: add dialog for shipyard when there is boat already 2016-09-14 03:32:03 +03:00
ArseniyShestakovandGitHub b5fa97b697 Merge pull request #211 from Chocimier/iss2321
Tested. Everthing looks fine so merging.
2016-09-14 00:37:17 +03:00
ArseniyShestakovandGitHub fedc4b7295 Merge pull request #213 from Chocimier/shrine
Check if hero knows spell even without wisdom
2016-09-14 00:09:11 +03:00
Arseniy Shestakov 6dcb9a6068 VCAI: don't remove flagged objects from visitableObjs
This make my new shipyard-related changes work properly and might improve owned dwelling usage.
In case there still some code that might cause useless visits it's better just rewrite it insted of removing objects from visitableObjs.
2016-09-13 23:39:32 +03:00
Arseniy Shestakov 1e60ba6516 Only delete CQuest in CMap destructor and not with IQuestObject
Quest information must remain accessible even if map object removed. Fix issue 2472
2016-09-13 01:30:47 +03:00
ArseniyShestakovandGitHub 2543e068ac Merge pull request #209 from vcmi/fix/saveDesyncs
Think I tested it enough to merge it
2016-09-11 21:36:42 +03:00
Arseniy Shestakov 9ab7650746 SetHeroesInTown: properly update all client interfaces in multiplayer
All interfaces that hero or town visible for must be updated when hero position in town changes. Fix issue 2089
2016-09-11 13:56:00 +03:00
Arseniy Shestakov fe6c0cf89b Use RandomGeneratorUtil::randomShuffle for reproducible gameplay 2016-09-11 00:10:52 +03:00
Arseniy Shestakov c8faca8f39 Refactoring: only use RNGs explicitly to avoid bug prone code in future
Now server-side code should always use CRandomGenerator::getDefault which is serialized in GH.
CGameState::getRandomGenerator should be only used from GS code and CPackForClient-based applyGs.
2016-09-11 00:10:46 +03:00
Arseniy Shestakov 70abae9b51 CGameState::battleGetBattlefieldType: use RNG by ref
For now I not sure about proper place for battleGetBattlefieldType so I left it in GS
2016-09-09 23:16:43 +03:00
Arseniy Shestakov ea63497b19 Move CGameState::setupBattle code to CGameHandler::setupBattle
No reason to keep this code in GS.
2016-09-09 23:16:43 +03:00
Arseniy Shestakov 53502e84e3 Add PrepareHeroLevelUp netpack to keep secondary skills RNG in sync 2016-09-09 23:16:43 +03:00
Arseniy Shestakov ca819b3cda CGHeroInstance::nextPrimarySkill: don't use GS RNG directly
Code used from both GS and CGameHandler.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov c8bcb14d34 CCallbackBase: add CRandomGenerator to all callbacks
This is easiest way to make server RNG available to CBattleInfoCallback.

Now server, client and gamestate have own RNG instance.
Only server and gamestate RNGs are serialized.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov 85f49bc968 CGHeroInstance::initArmy: don't use GS RNG. Get RNG through a ref
This function used by both server-side and gamestate so it's must use appropriate random source.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov 2ba3b20928 Multiple changes to RNG usage to both client and server
Server should never use RNG from CGameState directly.
Instead server get's own RNG that's state is secret for client.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov 960d93ff5f CGameState: don't use RNG directly for easier desync debugging
Only access random generator via CGameState::getRandomGenerator
2016-09-09 23:16:42 +03:00
Arseniy Shestakov 6747555339 CGameHandler: use ObjProperty enum instead of magic numbers 2016-09-09 17:42:16 +03:00
Arseniy Shestakov 9296382bc6 More fixes for clang warning... 2016-09-08 19:58:01 +03:00
Arseniy Shestakov 02f70464fb Fix mismatched-tags Clang warnings
They're not important at all, but sicne there only few of them left just fix them.
2016-09-08 19:42:59 +03:00
Arseniy Shestakov d06d07a39b Add ChangeFormation netpack to avoid MP desyncs
Previous code was working fine for single client, but would cause desync in multiplayer. Fix issue 2460.
2016-09-08 19:29:15 +03:00
Arseniy Shestakov 78a560767b VCAI compareArtifacts: consider that art with highest price is best
That is suboptimal way as well, but let us avoid infinite loop there. Fix issue 2461
2016-09-08 04:29:27 +03:00
Arseniy Shestakov e16552c2c6 Merge branch 'PlayerStateFix' into develop
This is additional fix for old saves that were corrupt after PR #202 is fixed. Should probably make them all work properly.

Background: many years ago CBonusSystemNode didn't have proper serialization or at least PlayerState had some nissues with it.
Then bonus system was refactored many times, but that hack was forgotten or everyone just decide to not touch it.

Now it's end up this code wasn't needed probably for long time so we can finally remove it.
2016-09-07 18:18:23 +03:00
Arseniy Shestakov 8e94b1c4d2 VCAI::objectRemoved: handle hero boat removal. Fix issue 2350
Avoid situation when AI attempt to visit boat after it's killed hero who used it.
2016-09-04 15:44:42 +03:00
ArseniyShestakovandGitHub f4f170bf92 Merge pull request #202 from vcmi/noncopyableBonusSystemNode2
Didn't manage to find any crashes in newly created games. Merging.

Keep in mind that even if most of old saves will load properly some of them still corrupted beyond repair and after some turns they might eventually crash.
2016-09-04 11:06:05 +03:00
ArseniyShestakovandGitHub 5fc1fd4daf Merge pull request #206 from Chocimier/fixes
genBuildingRequirements is tricky one, but in tests it's seems everything is okay
2016-09-04 09:02:34 +03:00
Arseniy Shestakov 076924166a CPlayerInterface: always choose hero if there no town. Fix issue 2073 2016-09-01 07:08:37 +03:00
Arseniy Shestakov 0236309d25 CArtifactsOfHero: use shared_ptr for SCommonPart 2016-08-30 07:05:31 +03:00
Arseniy Shestakov 668cd83ee5 More work on static variable desyncs 2016-08-29 23:07:52 +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
Arseniy Shestakov 94bb5b9901 CGKeys::wasMyColorVisited: fix to not change playerKeyMap on client 2016-08-25 16:47:52 +03:00
Arseniy Shestakov a90b657b86 Add reset to some static variables on client 2016-08-25 15:52:20 +03:00
Arseniy Shestakov f020fa06fd CPlayerInterface::buildChanged: fix update of advInt townlist
Fix issue when town icon on adventure interface is not updated from village after vcmiarmenelos cheat used.
This didn't occur during normal gameplay since usually castleInt is active when you build something.
2016-08-24 06:19:25 +03:00
Arseniy Shestakov 5a387cdaf1 Town: update appearance in applyGs to avoid desyncs. Fix issue 2464
Netpacks NewStructures and RazeStructures
2016-08-24 05:15:04 +03:00
Arseniy Shestakov 25a68c3ca1 Add "citadel" and "fort" to all town templates. Lazy fix for issue 1911
Without this capitol appearance tend to be used by default.
HotA mod have all templates and actual different DEFs so it's was never affected.
2016-08-24 05:06:21 +03:00
Arseniy Shestakov abad3cfb17 PlayerState::daysWithoutCastle: change in netpacks only. Fix issue 2462
Moving code from CGameHandler to NetPacksLib without changes.
2016-08-23 08:02:04 +03:00
Arseniy Shestakov 355f0a74ab CGSeerHut: add initialization to constructor 2016-08-23 01:19:03 +03:00