nordsoft
8a8716ce8a
Pass loaded game over network too
2022-09-29 21:33:44 +04:00
nordsoft
b888e640f3
Fix compilation
2022-09-29 21:18:30 +04:00
nordsoft
fea05a4320
Finally game restart works
...
# Conflicts:
# lib/CGameState.cpp
# server/CVCMIServer.cpp
2022-09-29 21:08:05 +04:00
Andrii Danylchenko
dae726b82d
Merge pull request #1005 from kambala-decapitator/ios-min-12
...
raise iOS deployment target to 12.0
2022-09-29 19:57:04 +03:00
DjWarmonger
58a3abb643
Merge pull request #963 from vcmi/terrain-rewrite
...
Terrain rewrite
2022-09-29 18:24:05 +02:00
Andrii Danylchenko
878aabd4d6
Merge pull request #981 from kambala-decapitator/fix-analyzer-warnings
...
Fix Clang Analyzer warnings
2022-09-29 19:23:24 +03:00
Andrey Filipenkov
836d7dc2d6
prohibit digging while waiting for your turn to start
2022-09-29 15:52:28 +03:00
Andrey Filipenkov
8c8394b6ed
fix passing coordinates of the status bar when triggering in-game console input
2022-09-29 13:24:23 +03:00
Andrey Filipenkov
593df25df5
[iOS] use SDL's standard input handling for in-game chat
2022-09-29 13:23:15 +03:00
Andrey Filipenkov
e8a1709fc4
fix typo in file name
2022-09-29 12:47:31 +03:00
Tomasz Zieliński
20c102e648
Remove T prefix from new typedefs
2022-09-29 11:44:46 +02:00
nordsoft
0eb589fb58
Load map by itself
2022-09-29 00:09:18 +04:00
nordsoft
2eb497b477
Looks like everything works
2022-09-28 23:38:41 +04:00
nordsoft
7ee4fca120
Pass whole gamestate over network
2022-09-28 23:15:05 +04:00
Tomasz Zieliński
475f835769
More style tweaks
2022-09-28 11:38:08 +02:00
Andrey Filipenkov
76b36b8951
iOS can use any resolution
2022-09-27 11:56:12 +03:00
Andrey Filipenkov
6e6bf1e77b
don't list resolutions larger than the current screen's in the game options
2022-09-27 11:56:12 +03:00
Andrey Filipenkov
f0b909f772
code improvement
2022-09-27 11:56:12 +03:00
Tomasz Zieliński
f386f42166
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
# lib/battle/CBattleInfoEssentials.cpp
# lib/rmg/ObstaclePlacer.cpp
# lib/rmg/RiverPlacer.cpp
2022-09-27 07:50:17 +02:00
Andrey Filipenkov
1dc7ccb7d0
remove declaration of non-existent function
2022-09-27 07:06:17 +03:00
Andrey Filipenkov
53ac61b52b
iOS: don't create unused CConsoleHandler
2022-09-27 07:05:10 +03:00
Andrey Filipenkov
70c51e4370
iOS: don't compile unused function
2022-09-27 07:01:16 +03:00
Andrey Filipenkov
802147c5b7
add some asserts that shouldn't fire
2022-09-26 14:06:55 +03:00
Tomasz Zieliński
25f66097cc
Handle RoadType by value / reference
2022-09-26 10:20:39 +02:00
Tomasz Zieliński
f804f8a326
Store RiverType by value, handle by reference
2022-09-26 09:51:36 +02:00
Tomasz Zieliński
11dd71515a
comment
2022-09-26 09:18:01 +02:00
Tomasz Zieliński
2bd30556a3
Store TerrainType by havlue and handle by reference
2022-09-26 09:17:55 +02:00
Tomasz Zieliński
cd3a1a02c2
More style tweaks
2022-09-25 21:47:44 +02:00
Andrii Danylchenko
27dbee6069
Merge pull request #975 from Nordsoft91/incomatibility-response
...
Incompatibility response
2022-09-25 18:26:02 +03:00
Andrii Danylchenko
d6c2d05376
Merge pull request #992 from kambala-decapitator/msvc-ai-dlls
...
[MSVC] place AI dependencies into the right location at build time
2022-09-25 17:53:16 +03:00
Andrii Danylchenko
127a7e6653
Merge pull request #959 from kambala-decapitator/fix-cursor-attack
...
fix cursor image on hover when there're multiple creatures nearby
2022-09-25 17:44:10 +03:00
Andrey Filipenkov
3286eb613d
[msvc] move AI dll dependencies to the main bin dir after build
2022-09-25 14:09:09 +03:00
Andrey Filipenkov
96c2db4d56
remove useless variable
2022-09-25 13:13:37 +03:00
Nordsoft91
d4f97aadf0
Merge branch 'develop' into incomatibility-response
2022-09-25 13:26:07 +04:00
Tomasz Zieliński
4ea57ea7fc
A variety of suggested style tweaks
2022-09-25 09:33:56 +02:00
Andrey Filipenkov
72feb538ce
add explicit null pointer checks
2022-09-25 10:05:16 +03:00
Andrey Filipenkov
9f46bf5bff
Apply suggestions from code review
...
Co-authored-by: Nordsoft91 <nordsoft@yahoo.com>
2022-09-24 15:55:26 +03:00
Andrey Filipenkov
b8eef4ce35
support building against iOS SDK < 13.0
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
d2ded404bb
use system background color for the keyboard textfield
...
fix kambala-decapitator/vcmi#45
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
605d5b6481
add dedicated macro when building as single process
...
fix kambala-decapitator/vcmi#40
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
f56acf8a80
fix crash on exiting Custom Campaign
...
fix kambala-decapitator/vcmi#46
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
ef2e45a977
stop text input on connection start
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
3ab21d8491
show loading indicator when starting local server
...
single player or hosting a multiplayer game
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
031ba967d3
fix indentation
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
e1c9903a45
extract iOS helpers into a shared lib
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
84111d99ca
add VCMI logo to splash screen
...
fix kambala-decapitator/vcmi#42
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
7b411a5fc4
fix building vcmiERM for iOS
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
f115a49926
update app icon
...
fix kambala-decapitator/vcmi#41
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
5b50d69db1
use Android's letterboxing code and code style cleanup
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
902de3af7c
CMake cleanup
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
7631e7ef06
move linking to system frameworks to appropriate Find* scripts
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
8dcd3146e7
generate zip with ipa structure using cpack
...
fix kambala-decapitator/vcmi#6
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
1bb6a20b76
get rid of the custom toolchain
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
7d8f09c6d4
add overriding launch type via environment variable VCMI_LAUNCH_TYPE
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
5f24307ac8
fix observing SDL window's view creation on iOS 15
...
also improves observers handling
fix kambala-decapitator/vcmi#38
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
fab3216df0
add setting to control app launch type: launcher or game
...
- removes custom AppDelegate
- now starting launcher using qt_main_wrapper
- when starting SDL from launcher, SDLUIKitDelegate is created and assigned as app delegate
fix kambala-decapitator/vcmi#33
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
89f14ea586
improve setting window resolution
...
fix kambala-decapitator/vcmi#3
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
1c17ad2585
remove locking light mode
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
d113155634
use best scale quality
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
74ba228961
ignore window events: no need to refresh screen
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
1e01780d17
start app with launcher, start SDL from launcher
...
kambala-decapitator/vcmi#33
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
ba9ace46ad
fix compiling storyboard without the need to edit generated xcodeproj manually
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
352358b493
move launch storyboard to iOS subdirectory
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
f43d333721
add UIApplicationSupportsIndirectInputEvents to Info.plist
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
bb00ec8ce2
remove entitlements and shared container usage
...
they're no longer required since we have a single app now
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
5e838008df
merge launcher and client
...
launcher is a static lib now
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
cd4b68c034
fix repeated launches of single player
...
now server actually terminates
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
b7bc8495d8
remove copy-paste
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
342a859a3f
fix typo
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
7f3baf6831
require fullscreen and only landscape on iPad
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
24a5dd797c
fix starting local server
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
de05479532
Revert "attempt to run server in a separate app"
...
This reverts commit 99fe55b295ad95033626c15011cfe49779269156.
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
c6e51852d0
add ability to build VCMI as single process
...
"Client process -> shared VCMI lib <- Server process" is turned into "shared Client-VCMI lib -> process <- static Server-VCMI lib"
- adds lib_client and lib_server targets that define distinct namespaces
- lib_client is a dynamic library which is shared with AI libs, lib_server is static
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
ff635edc0b
wrap all library code into namespace if VCMI_LIB_NAMESPACE is defined
...
preparation for having client and server in a single process
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
1319c8f197
fix building Client with the latest cmake
...
for some reason cmake injects compile flag to Client's resources which breaks ibtool call
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
ede9f33328
fix linking with FFmpeg
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
3388583089
use component-based install to copy only what's needed for every app
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
fae295da88
allow building without codesigning
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
fb32dd0ffc
adapt config to new dependencies
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
9dc5f3ed8b
improve RPATH handling, apply RPATH when installing dylibs
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
67ef0c234d
build Qt launcher, launch Client with it
...
kambala-decapitator/vcmi#17
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
bb9d19deee
fix whitespace
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
f97ff108a7
show SDL's textfield above the keyboard for game chat, extract handling to separate class
...
kambala-decapitator/vcmi#4 kambala-decapitator/vcmi#31
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
217c83a7e7
convert text input rect to screen coordinates
...
workarounds SDL bug related to moving window ensuring that the input is always above the native keyboard
kambala-decapitator/vcmi#31
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
1a45b97f5e
improve keyboard hide detection
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
bca46d9560
fix focusing input on Save screen
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
123fd5933e
trigger chat message with pinch gesture
...
kambala-decapitator/vcmi#4
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
44d0e19c71
remove focus from active text input after keyboard is closed
...
allows focusing same text input again
kambala-decapitator/vcmi#4 kambala-decapitator/vcmi#10
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
27b7cb8f1f
show long press hints higher
...
kambala-decapitator/vcmi#29
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
783c0eab26
fix coordinates of long press (right click)
...
kambala-decapitator/vcmi#1 kambala-decapitator/vcmi#26
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
fd92150566
use same aspect ratio fix as on android
...
kambala-decapitator/vcmi#26
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
4647bd8981
add App Group entitlement
...
kambala-decapitator/vcmi#9
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
d716db942c
fall back to OpenGLES if Metal is unavailable
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
5823a384bd
show keyboard automatically when joining multiplayer
...
kambala-decapitator/vcmi#10
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
59fe73e454
some random cleanup
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
e3539049cd
implement RMB click as long press
...
kambala-decapitator/vcmi#1
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
2b1e6ca342
prevent showing keyboard automatically in main menu
...
closes kambala-decapitator/vcmi#10
2022-09-24 15:55:18 +03:00
Andrey Filipenkov
7def214740
more Xcode-compatible Info.plist
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
13dd451ff5
add simple app icons
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
dde9a5d5d2
todo updates
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
d2b1cc00e8
enable same adventure map tweaks as on android
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
6e41e3154c
fix running on device from Xcode
...
proper codesigning
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
cfa22c33ad
use rpath properly
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
b6c4126bed
install files after building server/client
...
package required files inside app bundle
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
92a7936202
add Info.plist to sources
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
93e9bc4e51
restrict both apps to 64-bit iPad with multitasking and Metal
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
e72e5cea6f
attempt to run server in a separate app
...
partially reverts 3258f8bb40487e3731bf452dbda1add6294ff4b2
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
2e18299897
make server a static lib, run it in a separate thread
...
issues to solve:
- dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. 13CPackForLobby, 20LobbyClientConnected, 20LobbyClientConnected.
- error setting socket option: set_option: No buffer space available
2022-09-24 15:55:16 +03:00
Andrey Filipenkov
a33db4f03b
fix creating SDL window, enforce landscape
2022-09-24 15:55:16 +03:00
Andrey Filipenkov
fe86ac97b6
make app launch
...
although it crashes on start because of boost.filesystem
2022-09-24 15:55:16 +03:00
Andrey Filipenkov
c4233ad706
exclude some code similar to android
2022-09-24 15:55:16 +03:00
Andrey Filipenkov
d6a92f23aa
fix leading whitespace
2022-09-24 15:55:16 +03:00
Andrey Filipenkov
7a50620e61
enable clang modules and framework auto-linking
2022-09-24 15:55:16 +03:00
Andrey Filipenkov
b824a90295
initial iOS support to fix building
...
tested with Xcode and Unix Makefiles
2022-09-24 15:55:15 +03:00
Tomasz Zieliński
a5077245a8
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
2022-09-23 20:01:13 +02:00
Tomasz Zieliński
ebe45d512d
Moved roads and rivers to TerrainTypeHandler, by analogy to TerrainType.
2022-09-23 16:24:01 +02:00
nordsoft
e74890c4b1
Add system message about mods incompatibility
2022-09-23 15:02:45 +04:00
Andrii Danylchenko
2b0f02c832
Merge pull request #944 from AgostonSzepessy/dev/agos/937
...
Add right click to Quick Recruit Window
2022-09-23 14:01:52 +03:00
Andrii Danylchenko
1c62f9db1a
Merge pull request #970 from Nordsoft91/srv-healthcheck
...
Add simple server healthcheck
2022-09-23 14:00:45 +03:00
nordsoft
7de4d94aff
Move text string to translations.json
2022-09-22 20:06:14 +04:00
Andrii Danylchenko
43a1a8b76d
Merge pull request #928 from kambala-decapitator/quick-recruit-no-creatures
...
show message instead of the Quick Recruit dialog when there're no creatures in town
2022-09-22 18:21:45 +03:00
Andrii Danylchenko
b4d3445559
Merge pull request #971 from kambala-decapitator/fix-warnings
...
Fix most project warnings
2022-09-22 16:05:32 +03:00
nordsoft
c2f5628fc5
Add system message
...
# Conflicts:
# client/CServerHandler.cpp
2022-09-22 15:42:43 +04:00
Andrey Filipenkov
c9c79887a7
remove unused variables
2022-09-22 11:54:10 +03:00
Andrey Filipenkov
2ce78ba8c9
fix operator precedence
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
a1cf120ea6
add missing virtual destructors
2022-09-22 11:54:09 +03:00
nordsoft
667d97d300
Add simple healthcheck
2022-09-22 05:06:49 +04:00
Andrey Filipenkov
7e6ed0583c
disable all scripting code when configuring without scripting modules
2022-09-21 19:31:42 +03:00
Tomasz Zieliński
fa31309eed
Fixed minimap colors
2022-09-21 14:42:22 +02:00
Tomasz Zieliński
11e1bb44a2
Load sounds for new terrains later
2022-09-21 13:43:00 +02:00
Tomasz Zieliński
494b0f0226
First version that compiles
2022-09-21 11:34:23 +02:00
Tomasz Zieliński
b20f649521
stash
2022-09-19 16:13:58 +02:00
Agoston Szepessy
411038195c
Add clickeable area on top of creature picture
...
A class that wraps an instance of `CIntObject` creates an area
that users can right click to view information about the creature
they're buying.
The constants were based off the existing ones in the code and were
refined by guessing and checking where clicking falls inside/outside
the border of the rectangle.
2022-09-18 22:53:11 -07:00
Agoston Szepessy
dfdaf57803
Set position for CreaturePurchaseCard
...
This will make it pick up on right clicks. It was 0 before, so it wasn't
doing it.
2022-09-18 16:00:54 -07:00
Andrey Filipenkov
beeef8527f
Apply suggestions from code review
...
Co-authored-by: Nordsoft91 <nordsoft@yahoo.com>
2022-09-18 17:43:40 +03:00
Andrey Filipenkov
81dec1405f
fix typo: purhase -> purchase
2022-09-18 17:43:40 +03:00
Andrey Filipenkov
a320af837d
fix includes in client subdirectories
2022-09-18 17:43:40 +03:00
Andrey Filipenkov
0163190ac5
move hardcoded strings to JSON file
2022-09-18 17:43:37 +03:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +03:00
Andrey Filipenkov
90d355dd05
check availability only of town creatures
...
QRD shows only town creatures ignoring Summoning Portal
2022-09-18 15:58:15 +03:00
Andrey Filipenkov
a0832c39f9
show message instead of the Quick Recruit dialog when there're no creatures in town
2022-09-18 15:50:06 +03:00
Andrey Filipenkov
e85f8a56bb
make FFmpeg dependency optional
2022-09-18 09:25:10 +03:00
Andrey Filipenkov
99af5bbe4c
add dedicated method to get logs path
2022-09-18 09:24:36 +03:00
Nordsoft91
ad01c7ffce
Vlc obstacles [part 1] ( #888 )
...
* obstacles content handler, entity service and VLC integration
2022-09-15 11:06:54 +03:00
DjWarmonger
3d2dc2335b
Switch ObjectTemplate to shared_ptr<const> ( #870 )
2022-09-11 16:13:53 +03:00
Andrey Filipenkov
e6e7679a2c
activate battle hexes after heroes
...
gives hexes higher priority when performing "hit test" for mouse click as CGuiHandler::handleElementActivate() uses push_front to a list
this fixes RMB click on the topmost corner stacks: now it shows stack info instead of hero
2022-09-11 13:40:38 +03:00
Andrey Filipenkov
bccc658e8b
fix launching server when Windows user name has non-latin characters
2022-09-11 11:31:28 +03:00
Andrey Filipenkov
d44780d2ac
add standard hotkeys to the Quick Recruitment dialog
2022-09-11 11:31:28 +03:00
Nordsoft91
4bd0ff680a
Random map generator refactoring ( #762 )
...
random map generator refactoring and improvements
2022-09-11 11:31:27 +03:00
Andrii Danylchenko
4b4cc3cf4b
battlefields in VLC and custom bonuses for terrain patches
2022-09-11 11:31:27 +03:00
Nordsoft91
c4035134e5
New battlegrounds ( #758 )
2022-09-11 11:31:26 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Andrii Danylchenko
23bbb69eb9
#793 U shortcut for creature stack stats window
2022-09-04 10:18:25 +03:00
Andrey Filipenkov
d7650ce9c0
use Conan to make macOS CI builds for both Intel and ARM ( #782 )
...
* [CI] append platform to output artifact name if it's given
2022-08-30 17:29:00 +03:00
Nordsoft91
4f1f9e3c5d
Fix start game button for rmg without templates ( #781 )
2022-08-30 08:30:21 +03:00
Evgeniy Meshcheryakov
ff00747ecf
Fixed 3206 Bugged 'Start Walking' animation
2022-08-15 09:23:35 +03:00
Andrey Filipenkov
c0825149cf
fix error C2338 when building Client on Windows
...
Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined.
2022-08-06 11:47:09 +03:00
Andrey Filipenkov
7150ee565a
[macOS] text input handling must be done on main thread
...
Xcode's Main Thread Checker warns about that
2022-08-03 12:09:49 +03:00
Andrey Filipenkov
f2187f6767
fix infinite recursion when using SDL_mixer v2.6
...
Mix_HaltChannel -> soundFinishedCallback -> Mix_FreeChunk -> soundFinishedCallback -> ...
2022-08-03 12:08:41 +03:00
Andrey Filipenkov
0429ff61b0
don't link client to TBB
2022-07-29 11:18:36 +03:00
nordsoft
53b9434a22
Fix crash
2022-07-29 11:08:38 +03:00
Evgeniy Meshcheryakov
e38b822303
Fix crash in scenario information window if campaign has no difficulty settings
2022-07-28 11:35:14 +03:00
Andrii Danylchenko
c4dec67acc
Fix movement freeze after battle in teleport
2022-06-20 09:05:05 +03:00
Soar Qin
188607b05f
Replace cotire with CMake builtin precompiled headers support (Requires CMake version >= 3.16)
2022-06-17 17:20:08 +03:00
Andrii Danylchenko
2521e7bac9
Fix flickering in fullscreen
2022-06-13 16:11:53 +03:00
Andrii Danylchenko
1128abc593
Fix hero movement animation
2022-06-07 15:00:39 +03:00
Soar Qin
b061c4988c
Changes to resolution check on window creation ( #747 )
...
* Changes to resolution check on window creation:
1. Allow scaled rendering in window mode
2. Match closest logical rendering resolution while scaling is used
2022-06-06 09:46:24 +03:00
nordsoft
d92356f085
Fixed game crash: divide by zero due to threads racing
2022-05-28 14:34:36 +03:00
Konstantin
8fc14369a4
CMake presets. ( #744 )
...
* CI: use single build action
* CMake: use imported targets
* CI: do not build boost for linux
* CMake: add FORCE_BUNDLED_MINIZIP option
* linux: use external minizip and fuzzylite
* CMake: add presets
* .gitignore: ignore cmake build dirs
* github: use cmake presets
2022-05-26 08:55:20 +03:00
Andrii Danylchenko
c293b655f5
Fix one more battle ai related crash.
2022-05-21 15:41:56 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) ( #739 )
...
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet
Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Andrii Danylchenko
b269d7fed6
Fix case when defender creature is killed with pre-attack spell like liches death ripple
2022-05-14 17:38:06 +03:00
Andrii Danylchenko
6c36a1a2f6
Tray notifications for MXE
2022-05-14 13:23:09 +03:00
Andrii Danylchenko
2fc7cf02b0
tray notification for windows
2022-05-14 13:23:09 +03:00
Konstantin
8757a577e3
CVideoHandler: fix codecContext according to docs
2022-05-14 13:22:41 +03:00
Konstantin
e7b753c222
CVideoHandler: use new ffmpeg
2022-05-14 13:22:41 +03:00
Andrii Danylchenko
1e97859fbf
Fix crash when clicking scenario info during campaign gameplay.
2022-05-10 09:48:05 +03:00
Andrii Danylchenko
2710d1df50
Android: make keyboard appear and disappear only on demand
2022-05-08 17:09:17 +03:00
Andrii Danylchenko
0d15089dd4
Do not remove hero if left only with commander
2022-05-01 09:30:30 +03:00
Andrii Danylchenko
e0e3787748
When the battle is won with only summoned creatures - defeat
2022-05-01 09:30:30 +03:00
Andrii Danylchenko
fa9a420f99
Fix a few crashes
2022-04-17 09:10:53 +03:00
Andrii Danylchenko
4defbc314a
Fix saves when some humans become AI. (PlayerInterface destructor clears LOCPLINT)
2022-03-21 09:38:14 +02:00
Dmitry Orlov
ea2931c6ea
Fix: Get rid of 'Tile is not visible' error message
2022-01-30 12:31:07 +02:00
Andrii Danylchenko
84948820b2
exchange window move single stacks buttons
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
0fd13d2f3b
Change HD mod assets
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
78efd09e2e
Refactor HD mod army exchange
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
3c0935a5b9
Artifact exchange
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
8fa0b30985
Army exchange implementation
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
2ce73fd4e1
Army exchange implementation
2022-01-03 15:13:46 +02:00
Arseniy Lartsev
222a0e40c7
Added code to display some HD mod buttons in hero exchange window
2022-01-03 15:13:46 +02:00
Arseniy Lartsev
24d2d5b702
New layout for hero exchange dialog with HD mod features
2022-01-03 15:13:46 +02:00
Arseniy Lartsev
c502cfc223
Added constructor with target size argument for CAnimImage
...
The image will be scaled to the given width (height is ignored)
2022-01-03 15:13:46 +02:00
Dmitry Orlov
8cae3398ba
Feature: Army Management Shortcuts should work as in HD+ Mod
2021-11-28 20:00:43 +02:00
Dmitry Orlov
a65feb29f5
Fixed: Advanced options window issues
2021-11-13 17:02:11 +02:00
Dmitry Orlov
1ce7701168
Fixed: Animation errors should not lead to hanging
2021-11-10 20:32:54 +02:00
Dmitry Orlov
0427fa45dd
Fix: Terrain description should be shown correctly
2021-11-08 21:01:30 +02:00
Dmitry Orlov
7cfd1fe0ca
Fix: Captured town should not be duplicated on the UI
2021-10-31 17:33:26 +02:00
Dmitry Orlov
30b879ae5d
Fixed: duplicated bonusing building. Improved: opposite bonus propagation
2021-09-12 14:30:54 +03:00
Dmitry Orlov
25d9ea1ddf
Feature: Opposite Side Limiter
2021-09-04 14:15:38 +03:00
Dmitry Orlov
6f0864b47c
Feature: Town Negative Bonuses. Fix: Negative bonus bearers should not be affected
2021-09-04 14:15:37 +03:00
Andrii Danylchenko
83f690e059
change SDL color key alpha to transparent
2021-08-21 09:32:52 +03:00
Andrii Danylchenko
27b3a88dda
Replace App Veyor
2021-08-21 09:32:52 +03:00
Sergei Trofimovich
23215e039c
client/CVideoHandler.cpp: fix crash on video playback
...
Avoid buffer overflow caused by sws_scale():
http://trac.ffmpeg.org/ticket/9254
Currently (ffmpeg-4.4 with SSE3 enabled) sws_scale()
has a few requirements for target data buffers on rescaling:
1. buffer has to be aligned to be usable for SIMD instructions
2. buffer has to be padded to allow small overflow by SIMD instructions
Unfortunately SDL_Surface does not provide these guarantees.
This means that atempt to rescale directly into SDL surface causes
memory corruption. Usually it happens on campaign selection screen
where short video moves start spinning on mouse hover.
To fix [1.] we use av_malloc() for memory allocation.
To fix [2.] we add an `ffmpeg_pad` that provides plenty of space.
We have to use intermdiate buffer and then use memcpy() to land it
to SDL_Surface.
Without the change crash has the following backtrace:
```
(gdb) bt
(c=0x47508940, src=0x1ffeffef50, srcStride=0x1ffeffef30, srcSliceY=0, srcSliceH=116, dst=0x1ffeffef70, dstStride=0x1ffeffef40) at src/libswscale/x86/yuv2rgb_template.c:119
(c=<optimized out>, srcSlice=<optimized out>, srcStride=0x432afa20, srcSliceY=<optimized out>, srcSliceH=116, dst=<optimized out>, dstStride=0x1ffefff0a0) at src/libswscale/swscale.c:969
(this=0x1abaa330, x=90, y=72, dst=0x1a85a4c0, forceRedraw=<optimized out>, update=<optimized out>)
at ../vcmi-9999/client/CVideoHandler.cpp:332
at ../vcmi-9999/client/gui/CIntObject.cpp:83
at ../vcmi-9999/client/gui/CGuiHandler.cpp:462
```
valgrind points to corruption right in sws_scale():
```
Invalid write of size 8
at 0x6C50BD3: ??? (in /usr/lib64/libswscale.so.5.7.100)
by 0x6C4FAE6: yuv420_rgb32_ssse3 (yuv2rgb_template.c:119)
by 0x6C28DF2: sws_scale (swscale.c:969)
by 0x4566F6: CVideoPlayer::nextFrame() (CVideoHandler.cpp:293)
by 0x4573A6: CVideoPlayer::update(int, int, SDL_Surface*, bool, bool) (CVideoHandler.cpp:332)
by 0x25EC94: CIntObject::show(SDL_Surface*) [clone .part.0] (CIntObject.cpp:83)
by 0x34E855: CMainMenu::update() (CMainMenu.cpp:319)
by 0x25D589: CGuiHandler::renderFrame() (CGuiHandler.cpp:462)
by 0x1F7450: mainLoop (CMT.cpp:1387)
by 0x1F7450: main (CMT.cpp:513)
Address 0x475088a8 is 0 bytes after a block of size 92,840 alloc'd
at 0x483F7E5: malloc (vg_replace_malloc.c:380)
by 0x52B4E23: SDL_malloc_REAL (SDL_malloc.c:5387)
by 0x5266237: SDL_SIMDAlloc_REAL (SDL_cpuinfo.c:963)
by 0x52EF042: SDL_CreateRGBSurfaceWithFormat_REAL (SDL_surface.c:123)
by 0x2649AC: CSDL_Ext::newSurface(int, int, SDL_Surface*) (SDL_Extensions.cpp:42)
by 0x457B20: CVideoPlayer::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool) (CVideoHandler.cpp:182)
by 0x457C60: CVideoPlayer::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (CVideoHandler.cpp:84)
by 0x35B14E: CCampaignScreen::CCampaignButton::show(SDL_Surface*) (CCampaignScreen.cpp:126)
by 0x25EC94: CIntObject::show(SDL_Surface*) [clone .part.0] (CIntObject.cpp:83)
by 0x34E855: CMainMenu::update() (CMainMenu.cpp:319)
by 0x25D589: CGuiHandler::renderFrame() (CGuiHandler.cpp:462)
by 0x1F7450: mainLoop (CMT.cpp:1387)
by 0x1F7450: main (CMT.cpp:513)
```
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2021-07-31 14:35:31 +03:00
Andrii Danylchenko
3fa7e0976f
Nullkiller: update / fix build, core changes required for Nullkiller AI
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b4241670ba
Nullkiller: rename VCAI to AIGateway
2021-07-26 21:02:50 +03:00
Sergei Trofimovich
e407d4e547
client/lobby/CBonusSelection.cpp: fix difficulty overflow in bonus UI
...
Before the change campaign bonus selection screen had inconsistent
overflow behaviour for difficulty selection:
```
0 1 2 3 4 | available buttons: '-' to decrease
^ | '+' to increase
```
Before the change:
1. If we click '+' 5 times we will end up on difficulty=4 (ok, saturated).
2. If we click '-' 5 times we will end up on difficulty=1 (unexpected, wrap around).
After the change:
1. If we click '+' 5 times we will end up on difficulty=4 (saturated).
2. If we click '-' 5 times we will end up on difficulty=0 (saturated).
The inconsistency happens because `difficulty` variable has `ui8` type
and server uses `difficulty = vstd::abetween(difficulty, 0, 4)` to
implement the saturation.
For large positive values saturation works as expected:
vstd::abetween(difficulty=5, 0, 4) -> 4
For small values it does not:
vstd::abetween(difficulty=-1, 0, 4) -> 4
The change makes client to avoid using negative values.
2021-07-25 21:01:17 +03:00
Sergei Trofimovich
e4dd2f6dd8
client/lobby/SelectionTab.cpp: initialize generalSortingBy before use
...
Noticed use of uninitialized value when built vcmi with -fsanitize=undefined:
```
Established connection with
VCMI 0.99 b310f2e61e
(server).
UUID: bab9a90d-7416-4566-8817-e367ffcac7c1
../vcmi-9999/client/lobby/SelectionTab.cpp:138:16:
runtime error: load of value 32717, which is not a valid value for type 'ESortBy'
/usr/lib/gcc/x86_64-pc-linux-gnu/12.0.0/include/g++-v12/tuple:190:4:
runtime error: load of value 32717, which is not a valid value for type 'ESortBy'
/usr/lib/gcc/x86_64-pc-linux-gnu/12.0.0/include/g++-v12/tuple:190:4:
runtime error: load of value 32717, which is not a valid value for type 'ESortBy'
```
Here (before the change) `SelectionTab()` used `generalSortingBy` before
first use:
```
SelectionTab::SelectionTab(ESelectionScreen Type) {
...
if(tabType != ESelectionScreen::campaignList)
{
...
ESortBy criteria = (ESortBy)i;
if(criteria == _name)
criteria = generalSortingBy;
buttonsSortBy.push_back(... std::bind(&SelectionTab::sortBy, this, criteria)));
...
}
...
switch(tabType)
{
case ESelectionScreen::newGame:
generalSortingBy = ESortBy::_name;
....
```
The change moves `generalSortingBy` initialization before first use.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2021-07-25 21:00:31 +03:00
Andrii Danylchenko
9c8d776398
Merge branch 'develop' into handlersAbstraction
...
# Conflicts:
# CI/linux/before_install.sh
# CI/mac/before_install.sh
# CI/mxe/before_install.sh
# lib/CModHandler.cpp
# lib/mapObjects/CObjectClassesHandler.cpp
# lib/mapObjects/CObjectClassesHandler.h
# lib/mapObjects/CommonConstructors.cpp
# server/CGameHandler.cpp
# test/CMakeLists.txt
# test/spells/effects/TeleportTest.cpp
2021-07-16 00:32:13 +03:00
AlexVinS
483a4689ce
Fixes for code review issues
2021-02-20 04:57:50 +03:00
Vladislav Yakovlev
8e57d36b8c
[3167] Fix SDL_StopTextInput extra calls
2021-02-15 21:11:18 +03:00
AlexVinS
a59e12ca5f
tweaks
2021-02-15 15:03:32 +03:00
AlexVinS
ecaa9f5d0b
Entities redesign and a few ERM features
...
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
Alexander Shishkin
db1f9a15b0
Merge pull request #675 from ShubusCorporation/do/fix/mod_system_and_interface_bugs
...
Fixed: Mods dependency issues leading to hanging & 'Restart Scenario' button functionality
2021-02-08 07:32:09 +03:00
Andrii Danylchenko
ade84699b0
found a bug in code where AI can change client gamestate directly causing sorting crash
2021-01-30 17:29:49 +02:00
Alexander Shishkin
5dc6d782f7
Merge pull request #674 from ShubusCorporation/do/fix/game_interface/load_and_main_menu_buttons
...
Fix: 'Load' and 'Main Menu' in-game buttons should work properly
2021-01-20 21:52:51 +03:00
Dmitry Orlov
3add3156e2
Fix: 'Restart Scenario' button should work properly
2021-01-20 21:29:50 +03:00
Dmitry Orlov
c99b8b54e6
Fix: 'Load' and 'Main menu' in-game buttons should work properly
2021-01-17 19:18:26 +03:00
Dmitry Orlov
8cd1af6998
Fix: Siege crashes when creature on the archer's tower is not a shooter
2021-01-17 15:02:58 +03:00
Dmitry Orlov
854a2e6c39
Feature: Mods system improvement, Part III. Bunusing buildings customization.
2021-01-14 01:02:13 +03:00
Dmitry Orlov
9cf953157a
Fix: client crashes while browsing saves, if some factions are removed
2021-01-06 17:19:59 +03:00
Dmitry Orlov
39de2f6435
Fix: Morale bonus should be shown correctly
2020-11-11 22:43:40 +03:00
Alexander Shishkin
9ca9c809c6
Merge pull request #660 from ShubusCorporation/shc_rmg_issue
...
Mod system improvement: Patch 2
2020-10-26 09:26:14 +03:00
John Bolton
bb58d349cb
Fixed potential race condition
2020-10-24 23:38:39 -07:00
Dmitry Orlov
d6a4767865
Mod system improvement: Patch 2
2020-10-25 01:04:34 +03:00
Alexander Shishkin
ff7fd2077a
Merge pull request #658 from ShubusCorporation/shc_test_centered
...
Fix: Issue #3151 - text centralization
2020-10-16 08:33:37 +03:00
Dmitry Orlov
e7665ba5de
Fix: Issue #3151 - text centralization
2020-10-16 06:08:59 +03:00
Dmitry Orlov
934c4e511d
Special buildings support : Patch 1
2020-10-15 15:03:01 +03:00
Dmitry Orlov
195fb8ff41
Mod system improvement Part I : Fix content losing after deserialization
2020-10-10 00:31:23 +03:00
Dmitry Orlov
f4816b0824
Mod system improvement Part I : Special buildings should work in the modders towns
2020-10-07 12:35:11 +03:00
John Bolton
c61bae4060
Fixed RETURN_IF_BATTLE(). Undid disabled warnings. Fixed indentation.
2020-10-05 16:28:28 -07:00
John Bolton
1722d15276
Update client/windows/CCreatureWindow.h
...
Removed leftover debugging code.
Co-authored-by: Alexander Shishkin <alexvins@users.noreply.github.com>
2020-10-05 16:13:13 -07:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
John Bolton
6d8f1e4530
Fixed incorrect usage of const std::shared_ptr. Resolves 0003142.
...
Replaced const TBonusListPtr with TConstBonusListPtr where necessary
Replaced const std::shared_ptr<T> with std::shared_ptr<const T> where necessary.
Removed superfluous use of const.
Replaced const std::shared_ptr<T> with const std::shared_ptr<T> & in function parameters and ranged for-loops.
2020-09-30 22:56:28 -07:00
Dmitry Orlov
38fd05f655
Minor fix: apply Monday bonuses to heroes who have slept overnight
2020-09-28 01:32:33 +03:00
laikh
edc1d06f4e
Random Map Generator Option: Allow having more computer only players than human/computer players
...
Remove unused variable humanPlayersCount and function getHumanOnlyPlayerCount()
2020-07-07 19:45:53 +08:00
laikh
90e2ab58a8
Include header SDL_Compat.h in AdventureMapClasses.cpp
2020-07-05 21:10:29 +08:00
Victor Luchits
f68b449e5e
More formatting
2020-05-17 11:21:49 +03:00
Victor Luchits
604246bc7a
VS 2019/Windows 10 Kit fix
2020-05-05 15:25:07 +03:00
Victor Luchits
febbeaeeed
Close the global log targets on exit, flushing log files to disk
2020-05-05 15:25:07 +03:00
Arseniy Lartsev
fca9bcdd7f
Fixed possible freezes while dragging visible area on minimap ( #638 )
2020-05-03 01:26:30 +03:00
AlexVinS
55b54024a8
Cherry-picked essential fix from #631 . This fixes https://bugs.vcmi.eu/view.php?id=3074 .
2020-03-18 00:06:07 +03:00
Alexander Shishkin
00de1fd734
Merge pull request #625 from Toneyisnow/toneyisnow/Battle_Clone_Effect
...
Implement the Clone Effect in battle.
2020-01-27 13:42:58 +03:00
toneyisnow
1319175bdc
Removed the create functions in the ColorShifter classes.
2020-01-27 00:34:59 -08:00
toneyisnow
a03e696ec0
Updated const.
2020-01-26 16:18:07 -08:00
toneyisnow
8db638c054
Fix tiny space issue and remove reference of SDL.h
2020-01-26 00:05:38 -08:00
toneyisnow
468584d469
Update the originalPalette, and use SDL_Palette methods to improve memory management.
2020-01-26 00:01:48 -08:00
toneyisnow
0f4a9e5106
Updated resolved some issues.
2020-01-25 18:49:53 -08:00
toneyisnow
0f3dabab9a
Initialize the change:
...
1. Make color shifter for CAnimation, and use that in the clone effect.
2. Update the original position of the cloned object.
2020-01-25 01:21:26 -08:00
Alexander Shishkin
304b6e2fb2
Merge pull request #624 from Toneyisnow/toneyisnow/Fixbug_LobbyScreen_LoadGame
...
Fix bug: LobbyScreen UI has a bug on the Difficulty toggle group.
2020-01-23 16:13:51 +03:00
toneyisnow
8341ba3c27
Update according to comments.
2020-01-22 23:07:20 -08:00