Commit Graph
100 Commits
Author SHA1 Message Date
Arseniy Shestakov 940c8a0b82 CMake: add $ORIGIN into RPATH for single-directory installation
End up that single-directory installation is useful for Snap package.
2017-09-08 03:43:44 +03:00
ArseniyShestakov d01ecbba90 Merge pull request #372 from vcmi/guiCleanup2
Gui cleanup2
2017-09-07 02:46:54 +03:00
Arseniy Shestakov 610740011c CMake: print useful debug information on every build
That way we don't need to ask more questions regarding system where build failed.
2017-09-06 13:15:49 +03:00
ArseniyShestakov ca066841f1 Merge pull request #370 from vcmi/issue/2780
Issue/2780
2017-09-05 01:21:58 +03:00
ArseniyShestakov 898f2908d8 Merge pull request #369 from henningkoehlernz/skill_mod
Allow modding of secondary skills via skills.json
2017-09-05 00:20:40 +03:00
Arseniy Shestakov d7f76fc433 README: add more text and provide links to instructions on wiki 2017-09-02 16:25:42 +03:00
Arseniy Shestakov 8180e4d5c5 VCMIDirs: improvements for development on Mac and Linux
Also added /usr/share/games in VCMIDirsXDG::dataPaths for mantis#2189.
2017-08-25 08:43:27 +03:00
Arseniy Shestakov 1110dd27d1 Launcher: use QDesktopWidget to get display list instead of SDL2
First of all SDL2 trying to use dbus and this conflict with Qt. Check mantis#2704.
And there no reason to use SDL2 in launcher when Qt can do the same thing as well.
2017-08-24 04:55:44 +03:00
Arseniy Shestakov c6ff28936d Client: change intro video position 2017-08-24 03:29:37 +03:00
Arseniy Shestakov 525ee8771a Launcher: avoid menu items not overlap so it's look slightly better
It's still very ugly, but less ugly than it's was.
2017-08-24 03:04:40 +03:00
Arseniy Shestakov dfe781945b CMake: try to enable automated DS_Store generation for Mac
We should see in AppleScript from CMake would work on Travis CI.
Also use VCMI as volume name of DMG for now and update pre-generated DS_Store for it.
2017-08-21 17:04:53 +03:00
Arseniy Shestakov 97db21043d Documentation: remove README.linux. Information moved to wiki
https://wiki.vcmi.eu/index.php?title=How_to_build_VCMI_(Linux)

Time is limited and duplication not make it any easier to maintain documentation.
Since we have wiki already we must move all important information here and keep it up to date.
2017-08-21 02:45:50 +03:00
ArseniyShestakov 2f65e27464 Merge pull request #368 from dydzio0614/vstweak
Visual Studio files tweaks
2017-08-19 18:07:25 +03:00
Arseniy Shestakov c7fbbb1248 Travis CI: improve package name generation script 2017-08-17 12:01:03 +03:00
ArseniyShestakov d0bd4efbc7 Merge pull request #362 from vcmi/appveyor/vcpkg
AppVeyor builds with Vcpkg and CMake improvements
2017-08-17 01:47:43 +03:00
Arseniy Shestakov 5fce56d23e CMake: add ENABLE_DEBUG_CONSOLE option for Windows enabled by default
For now we'll keep console, but in future we need a way to toggle it at runtime.
2017-08-16 23:45:38 +03:00
Arseniy Shestakov 03c7bf5ee6 CMake: installer building improvements for Windows
- Implement support for BundleUtilities when Vcpkg is used
- Add some hacky code to copy Qt plugins install directory
- Use same icon for launcher as used for VCMI, launcher one is ugly
2017-08-16 18:34:46 +03:00
Arseniy Shestakov adbfa09e31 CMake: restore some of old MinGW code and improve ENABLE_PCH option
- MinGW: restore DLL deploy for MXE builds
- MinGW: restore linking options for: dbghelp, mswsock, iconv, etc
- MinGW: build with -Og when Debug is used to avoid crashes / freezes
- Cotire: when ENABLE_PCH is OFF we won't include Cotire at all
- FuzzyLite: enable FORCE_BUNDLED_FL by default for Linux to avoid FL5 usage
- Remove Version.cpp from lib source list so it's won't appear in projects
- Add option ENABLE_GITVERSION to disable Version.cpp usage
2017-08-16 16:12:36 +03:00
Arseniy Shestakov 2b3a467728 CMake: structure changes and other small improvements
- Now cmake_minimum_required used properly and set to 2.8.12
- cmake_modules/CMakeCPackOptions.cmake.in is removed
2017-08-16 16:10:08 +03:00
Arseniy Shestakov fee999300e VCMIDirs: add hack to run from single directory on Mac and Linux
Also change working directory to where binary is on all platforms except Android
2017-08-16 16:10:08 +03:00
Arseniy Shestakov 40af43c46e CMake: massive rework for Mac build and other improvements
- macOS: RPATH-related code all removed or disabled
- macOS: new osx/CMakeLists.txt to run some install-code running after all subdirectories
- Assets copying into the runtime output directory implemented for Mac and Linux development
2017-08-16 16:10:07 +03:00
Arseniy Shestakov 7dca95c8cc CMake: multiple improvements for builds and project generation
- Change default build output directory name from "build" to "bin"
- Implement new function vcmi_get_cmake_debug_info
- Link client with SDL2main on Windows and disable debug console
- Remove all old MinGW-specific options since they outdated and MXE work fine
- Set AUTOGEN_TARGETS_FOLDER for better Xcode and Visual Studio projects
- Remove useless vcmitestFiles custom target for less garbage in project files
2017-08-16 16:10:07 +03:00
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
ArseniyShestakov 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
ArseniyShestakov 4388e12a3a Merge pull request #358 from Chocimier/altar
Fixed bugs in Altar
2017-08-05 02:25:41 +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 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
ArseniyShestakov b2f74a93cf Code style: add empty parameter list to all lambda expressions (#345) 2017-07-17 15:35:57 +03:00
ArseniyShestakov b52cfe5283 Code style: use parentheses for creating heap-based objects (#344) 2017-07-16 12:58:05 +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
ArseniyShestakov ea0ceb1805 Merge pull request #323 from vcmi/CStackTweaks
CStack tweaks
2017-07-15 00:42:08 +03:00
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov a9c10633ab Merge pull request #336 from dydzio0614/blackmarketfix
Fix black market behavior to match H3
2017-07-12 15:08:42 +03:00
ArseniyShestakov 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
ArseniyShestakov fcd63cd982 Merge pull request #333 from dydzio0614/RealFullscreen
Add optional real fullscreen mode support
2017-07-10 21:04:24 +03:00
ArseniyShestakov 3634af10ba Merge pull request #330 from dydzio0614/AmountBoxTweaks
Tweak battle creatures amount box hiding
2017-07-08 15:54:18 +03:00
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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
ArseniyShestakov 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