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