Commit Graph
100 Commits
Author SHA1 Message Date
Arseniy Shestakov 56f89270db macOS: full rework of Mac packaging process
- Most of outdated CMakeLists code removed.
- All Mac-specific code is removed include Sparkle support and vcmibuilder app.
- DMG buidling reimplemented using macdeployqt command.
2017-08-16 16:10:07 +03:00
Arseniy Shestakov 193f492b99 CMake: cleanup, project generation and other improvements
- Use EXCLUDE_FROM_ALL for FuzzyLite and GoogleTest to avoid inclusion of unneded headers and libraries into installers.
- Set minimum CMake version only in main CMakeLists.txt
- Set project name only in main CMakeLists.txt
- Visual Studio: add assign_source_group function to generate proper filesystem tree
- Visual Studio: set PROJECT_LABEL so generated projects have same names binaries on Windows
- Visual Studio: enabled USE_FOLDERS for projects grouping. This also possibly affect other IDEs.
- Added add_subdirectory_with_folder function to make sure 3rd-party libraries are affected by USE_FOLDERS.
2017-08-16 16:10:07 +03:00
Arseniy Shestakov b3b29cfda9 CMake: update cotire to 516d78476f 2017-08-16 16:10:07 +03:00
Arseniy Shestakov 7daaa604cc AppVeyor: add scripts for Coverity Scan build submission
I thought we could use AppVeyor due to it's higher timeout of 1 hour, but it's stuck on lib compilation.
I'll still keep scripts in place so we can use them in future in case something changed
2017-08-16 16:10:07 +03:00
Arseniy Shestakov caf0edf618 AppVeyor: change config to use Vcpkg-generated deps
There also extended build matrix for toolchain_test branch.
2017-08-16 16:10:07 +03:00
Arseniy Shestakov 440226f7af CMake: use dynamic linking for Boost 2017-08-16 16:10:07 +03:00
Arseniy Shestakov 82d107b934 Merge branch 'jcrada-develop' into develop 2017-08-15 18:28:08 +03:00
Arseniy Shestakov c3e6195cc9 CServerHandler: one more small fix when server is crashed 2017-08-13 23:17:56 +03:00
Arseniy Shestakov 9c7c47c754 CServerHandler: for now don't stop client if server crashed
Currently server stable enough and only crash on shutdown.
It's certainly more annoying to crash on end of game than get freeze.
Unfortunately it's crash on shutdown almost every time on macOS.
2017-08-13 23:09:23 +03:00
Arseniy Shestakov 1a1d7c27cb Travis CI: download MXE packages with -q --yes instead of -qq
MXE server is slow and downloads could take more than 10 minutes.
2017-08-13 22:22:57 +03:00
Arseniy Shestakov fad2a0a3fb Fix memory leak and remove some garbage files added in last commit 2017-08-13 22:15:25 +03:00
Arseniy Shestakov cd98dd0b89 CGuiHandler: make terminate_cond non-static
Static variable might be not yet initialized by the time it's used inside CGuiHandler constructor.
This fix let us avoid crash that occur when built with Xcode 8.2.1
2017-08-13 21:54:07 +03:00
Arseniy Shestakov 21074e13c3 macOS: always change working directory for launcher and server
This make relative paths work properly when launched from DMG or from different directory.
2017-08-09 01:33:12 +03:00
ArseniyShestakovandGitHub cb40c093f8 Avoid boost::optional assignment for Boost 1.64 compatibility (#360)
Two options here: to use emplace from 1.56 or boost::make_optional.
Unfortunately Ubuntu 14.04 is using 1.54 and I'd rather not to break it.
2017-08-05 16:09:29 +03:00
ArseniyShestakovandGitHub 4388e12a3a Merge pull request #358 from Chocimier/altar
Fixed bugs in Altar
2017-08-05 02:25:41 +03:00
ArseniyShestakovandGitHub 9d9c026c85 Code style: serialize everything on own lines for easier debugging (#357) 2017-07-31 16:35:42 +03:00
Arseniy Shestakov 1b9daecd27 CMake: remove Boost.Test requirement 2017-07-22 03:19:17 +03:00
Arseniy Shestakov df82380d93 AUTHORS: add FeniksFire. Again
Let's hope Warmonger won't remove him on merge ;-)
2017-07-20 19:00:02 +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
Arseniy Shestakov 6d9f99d4de Code style: and one more pass on lambda expressions parameter list 2017-07-19 02:11:17 +03:00
Arseniy Shestakov b540ab73ed Code style: add empty parameters list to more lambda expressions 2017-07-19 01:39:38 +03:00
Arseniy Shestakov 2da3d8a563 Code style: remove senseless comments 2017-07-18 00:04:00 +03:00
ArseniyShestakovandGitHub b2f74a93cf Code style: add empty parameter list to all lambda expressions (#345) 2017-07-17 15:35:57 +03:00
ArseniyShestakovandGitHub b52cfe5283 Code style: use parentheses for creating heap-based objects (#344) 2017-07-16 12:58:05 +03:00
ArseniyShestakovandGitHub 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
ArseniyShestakovandGitHub ea0ceb1805 Merge pull request #323 from vcmi/CStackTweaks
CStack tweaks
2017-07-15 00:42:08 +03:00
ArseniyShestakovandGitHub 006fa6c6df Merge pull request #332 from FeniksFire/SmallBugFix
Fix handling damage from obstacles
2017-07-15 00:09:37 +03:00
Arseniy Shestakov 6abc88c2bf CMake: set _WIN32_WINNT to 0x0600 for FuzzyLite 6
Now CMake builds will require Windows Vista or newer
2017-07-14 21:35:49 +03:00
Arseniy Shestakov 98406d127d CGMonolith: fix crash on initialization here too 2017-07-14 16:50:29 +03:00
ArseniyShestakovandGitHub 77ca27b90b Merge pull request #340 from dydzio0614/navalbattlefieldfix2
Add proper handling for ship-to-ship battlefield
2017-07-14 16:30:40 +03:00
Arseniy Shestakov 4bf1c9a9a3 Campaigns: fix crash on CMap::instanceNames serialization 2017-07-14 15:37:40 +03:00
Arseniy Shestakov ee7862b12f CGSubterraneanGate: fix crash on initialization
There is some reason it's appear in campaign maps.
2017-07-14 15:03:55 +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
ArseniyShestakovandGitHub 564cf05117 Merge pull request #339 from dydzio0614/vscleanup
Visual Studio project files tweaks
2017-07-13 21:16:23 +03:00
Arseniy Shestakov 99d3b9e37a CMake: add all launcher headers to CMakeLists.txt 2017-07-13 02:44:58 +03:00
Arseniy Shestakov dbcd79c48a Code cleanup: remove double and unneded semicolons 2017-07-12 22:01:10 +03:00
ArseniyShestakovandGitHub a9c10633ab Merge pull request #336 from dydzio0614/blackmarketfix
Fix black market behavior to match H3
2017-07-12 15:08:42 +03:00
ArseniyShestakovandGitHub 2cf7c7b234 Merge pull request #335 from dydzio0614/bug2476_fix2
Fix #2 for bug #2476
2017-07-11 15:40:35 +03:00
Arseniy Shestakov 7e9b9ccad8 AppVeyor: build all branches 2017-07-10 22:41:17 +03:00
ArseniyShestakovandGitHub fcd63cd982 Merge pull request #333 from dydzio0614/RealFullscreen
Add optional real fullscreen mode support
2017-07-10 21:04:24 +03:00
ArseniyShestakovandGitHub 3634af10ba Merge pull request #330 from dydzio0614/AmountBoxTweaks
Tweak battle creatures amount box hiding
2017-07-08 15:54:18 +03:00
ArseniyShestakovandGitHub d0e603a418 Merge pull request #329 from viciious/cmake_msvc
Change output path for cmake builds
2017-07-08 12:31:46 +03:00
Arseniy Shestakov fab6f409f6 Fix 2017-07-04 22:07:24 +03:00
Arseniy Shestakov 6084950f31 CMake: restore Android build 2017-07-04 22:06:00 +03:00
Arseniy Shestakov e024c4f7b1 AppVeyor: add notifications to Slack #notifications channel 2017-07-04 04:30:37 +03:00
Arseniy Shestakov cb669dcca4 AppVeyor: add status badge README.md 2017-07-04 04:08:13 +03:00
Arseniy Shestakov 823e28fe69 AppVeyor CI: small path fix 2017-07-04 03:46:15 +03:00
Arseniy Shestakov eed36c3b7c Merge pull request #320 from viciious/msvc
AppVeyor integration
2017-07-04 03:41:18 +03:00
ArseniyShestakovandGitHub b670bcb46f Merge pull request #313 from vcmi/spellCastQuery
Spell cast query
2017-07-04 02:43:22 +03:00
Arseniy Shestakov 01a1353fe1 Cleanup: remove old editor code and adjust related project files
It's useless and will fail build if accidentally enabled in CMake.
For anyone interested it's always available in git history.
2017-07-03 21:59:57 +03:00
ArseniyShestakovandGitHub 5dfb7a5771 Merge pull request #317 from vcmi/attackerOwned
Refactored CStack::attackerOwned to CStack::side
2017-07-03 16:19:54 +03:00
Arseniy Shestakov c059f95e2e CClient::loadGame: pass correct save version for BinaryDeserializer
Fix loading crashes that appear after duel mode removal.
2017-07-03 05:11:58 +03:00
Arseniy Shestakov a1c2307f61 README: add link to Slack invite page 2017-07-02 18:09:33 +03:00
ArseniyShestakovandGitHub b9112b82a0 Merge pull request #319 from dydzio0614/vsfix
Improve VS build filters file + precompiled header path fix
2017-07-02 13:45:27 +03:00
ArseniyShestakovandGitHub 2f305cc68d Remove code related to duel mode (#312)
Remove code related to duel mode
2017-07-01 16:30:13 +03:00
Arseniy Shestakov 29e50cc21c Fix include for SiegeInfo / SideInBattle. Lost them on rebase 2017-06-29 02:27:41 +03:00
Arseniy Shestakov fb19a3a068 CMake: update all CMakeLists to include actual sources and headers
This make it easier to use project with newer CMake and Qt Creator.
I decided against using GLOB since we don't rename files that much.
2017-06-29 02:03:37 +03:00
Arseniy Shestakov 2ce02202c1 Fix more includes and move SideInBattle / SiegeInfo into battle 2017-06-29 02:02:05 +03:00
ArseniyShestakovandGitHub bd27636cd9 Merge pull request #316 from FeniksFire/improvingTheBattle
Refactoring.
2017-06-28 19:55:03 +03:00
Arseniy Shestakov 0fd775151f Travis CI: disable package upload for external PR 2017-06-28 02:46:56 +03:00
Arseniy Shestakov eeff7ee315 Few minor code improvements
* All command line options now case insensetive.
* SDL_VIDEO_X11_DGAMOUS unused in SDL2 so it's removed.
* Added current year into the --help output for client and server.
* Moved DO_NOT_START_SERVER into session settings.
2017-06-26 04:56:28 +03:00
Arseniy Shestakov 6c8192956e PreGame: implement campaign saves list and improve filtering
There no campaign info screen, but dedicated list for campaign saves.
2017-06-24 03:14:32 +03:00
Arseniy Shestakov fa02900e91 Travis CI: disable cache for Mac build
Usual install via brew takes 800-900 seconds, but cache doesn't help much.
Sadly cache not shared between branches and it's initial upload takes too long.
2017-06-14 19:56:07 +03:00
Arseniy Shestakov 41bb47ca0d Travis CI: fix coverity branch build and improve formatting
Also try to cache /usr/local/Cellar for OS X builds.
2017-06-14 15:22:55 +03:00
ArseniyShestakovandGitHub 872c2363be Merge pull request #250 from vcmi/spellsImprovements
Cumulative spell effects
2017-06-13 23:54:35 +03:00
Arseniy Shestakov 0c7eeeaa5c Travis CI: update config and upload artifacts after build 2017-06-13 20:32:43 +03:00
Arseniy Shestakov 859c8ede8a Update Travis CI configuration
* Remove Clang 3.5 since compilation with 3.4 and 3.6 is enough.
* Building for Coverity Scan with 3 threads and without launcher since it's timeout otherwise.
* Add Slack notifications to #notifications channel.
* Direct email notifications to noreply at vcmi.eu. We can later add redirection to those who want them.
2017-06-09 15:06:31 +03:00
ArseniyShestakovandGitHub 64531e060d Merge pull request #310 from Fayth/feature/swipe-support
Adventure map swipe support for non-android platforms
2017-06-09 10:38:21 +03:00
ArseniyShestakovandGitHub 1f9c154ec2 Merge pull request #306 from vcmi/feature/debugOptions
Debug features: auto tests, headless and spectator modes
2017-06-06 10:34:06 +03:00
Arseniy Shestakov 1a60c1a94b Shared memory refactoring and command line control options
Now client accept following options:
 --disable-shm - disable shared memory usage
 --enable-shm-uuid - use UUID for shared memory identifier
UUID is useful when a lot of clients starting simultaneously.
Needed for testing and was easier to implement than alternatives.
2017-06-06 07:30:16 +03:00
Arseniy Shestakov a2284c3209 Automated testing: graceful shutdown for when game is ended
Before when CloseServer / LeaveGame applied there was no thread sync on server.
Now server use std::atomic bool for synchronization and graceful shutdown.
2017-06-06 07:30:16 +03:00
Arseniy Shestakov 3f7cb9f893 Client: add some shortcuts for spectator mode
Following mode only work when client is started in spectator mode:
F5 - Pause / resume game by locking of pim
F6 - Toggle spectate-ignore-hero
F7 - Toggle spectate-skip-battle
F8 - Toggle spectate-skip-battle-result
F9 - Skip current battle
2017-06-06 07:30:16 +03:00
Arseniy Shestakov 18161d3688 Client: implement spectator mode via command-line options
If running with --spectate/-s CPlayerInterface will appear even without human players.
Following command-line options also available:
 --spectate-ignore-hero
 --spectate-hero-speed=N
 --spectate-battle-speed=N
 --spectate-skip-battle
 --spectate-skip-battle-result
Boolean options can also be changed in runtime via client console:
 set spectate-ignore-hero on / off
Spectator mode also:
 - Work with --onlyAI option when starting game or loading saves.
 - Allow to use any cheat codes.
 - Give recon on towns and heroes.
2017-06-06 07:30:16 +03:00
Arseniy Shestakov d95c74941b Client: add onlyAI option support for saved games
When --onlyAI option used all human players will be replaced with AIs during loading.
2017-06-06 07:30:16 +03:00
Arseniy Shestakov f7f7fe1d32 Client: fix headless mode and add automated testing mode
Command-line option --noGUI replaced with --headless.
Added option --testmap that will run specified map with AI players
2017-06-06 07:30:16 +03:00
Arseniy Shestakov d84f61fc96 CConnection: use std::static for port conversion
Apperantly boost::lexical on Windows will add commas into output.
2017-06-04 16:48:04 +03:00
Arseniy Shestakov 6642816b1e Client: server port and testing options cleanup
Now we only pass port as ui16 instead of std::string
2017-06-04 08:49:23 +03:00
Arseniy Shestakov 4a302d4fe5 CBattleHero::clickRight: more elegant code for side detection 2017-06-03 04:28:03 +03:00
ArseniyShestakovandGitHub 5b0a0d5959 Merge pull request #305 from vcmi/networkImprovements
Network and multiplayer improvements
2017-06-02 15:27:08 +03:00
Arseniy Shestakov bc6f65af04 PlayerCheated: new netpack to apply losing / winning cheat code 2017-06-02 03:34:50 +03:00
Arseniy Shestakov 4b0f702e7e Add LeaveGame netpack and avoid replying on it and CloseServer 2017-06-02 02:51:44 +03:00
Arseniy Shestakov c7e7a4d7be Make usage of boost::interprocess optional
If shared memory allocation failed on client server will be started without shared memory option.
Only downside of this is that server wouldn't be able to fallback to random port if default is busy.
2017-06-02 02:44:41 +03:00
Arseniy Shestakov cc163c4e05 Refactoring of networking code on server and client
* Avoid server crash on dummy connect / disconnect.
* Avoid server crash when host left from PreGame.
* Server print it's state with name when it's waiting for connection or in pregame.
* Server will use random port if specified port is busy.
2017-06-02 02:44:39 +03:00
Arseniy Shestakov 9b867808a7 Multiplayer: threat disconnected player just like if he lost
Now even if player disconnected on it's own turn game will continue.
2017-05-31 08:04:31 +03:00
Arseniy Shestakov db5a52a0f8 Multiplayer: gracefully handle player loss unless it's a host
We don't want server to shutdown after just one of players lost the game.
2017-05-31 08:04:26 +03:00
Arseniy Shestakov 5d8e943787 Launcher: add sanity checks for QDir::removeRecursively. Issue 2673
I'm not always fail to uninstall mod, but when I do I remove $HOME
Bumblebee developers should be proud of us...
2017-05-25 03:03:02 +03:00
ArseniyShestakovandGitHub bdb0db819d Merge pull request #300 from Chocimier/iss1761
Correctly display visiting army in kingdom overview, fixes #1761
2017-05-23 03:53:11 +03:00
Arseniy Shestakov 09d593e59b CBattleInterface: avoid freezes on end of battle. Fix issue 1897 2017-03-19 05:15:31 +03:00
Arseniy Shestakov d4091db172 CInfoBar: only pop up when adventure map interface is on top 2017-03-14 00:03:15 +03:00
Arseniy Shestakov d0f6ad6e66 Travis CI: disable tests for Coverity Scan builds too 2017-03-09 22:08:56 +03:00
Arseniy Shestakov 98ab9821a5 Travis CI: for now disable tests for Linux
Tests we have now depend on Boost 1.59+ features not available in 14.04.
There is no alive PPA for Boost / Trusty I can find.

Xenial support might arrive to Travis or we'll rework config.
2017-03-09 02:52:13 +03:00
Arseniy Shestakov 48f4f42fff Travis CI: update Qt PPA name 2017-03-09 01:44:38 +03:00
ArseniyShestakovandGitHub 75461cfa0f Merge pull request #262 from dydzio0614/patch-2
Further fix for mantis #2599
2016-12-11 22:12:33 +04:00
Arseniy Shestakov fd3992ddc9 GatherTroops: avoid crash if nearest dwelling wasn't found. Issue 2624 2016-11-29 21:57:00 +03:00
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