Alexander Wilms
c8f1512a3f
Use correct address to decide whether we're connecting to a remote server or a local one
2023-10-06 23:33:51 +02:00
nordsoft
a09c595cf4
Support simturn timers
2023-10-06 18:17:05 +02:00
nordsoft
043f54698b
Fix translations in map editor / fix crash on game end
2023-10-05 23:34:29 +02:00
Ivan Savenko
e322d0a084
Merge pull request #2966 from IvanSavenko/simplify_ui_lock
...
Simplified locking of game UI state
2023-10-04 16:50:23 +03:00
Alexander Wilms
b58cca7770
100 connection attempts is not always enough
2023-10-03 22:06:32 +02:00
Alexander Wilms
a66d8ecb8f
Use ui16 instead of uint for connectionAttemptCount to fix MinGW build
2023-10-03 22:06:32 +02:00
Alexander Wilms
e1401d26c5
hostAddress can be localhost, return from justConnectToServer() is maximum number of attempts is exceeded
2023-10-03 22:06:32 +02:00
Alexander Wilms
39427d6658
Use different delay and maximum number of connection attempts for local and remote servers
2023-10-03 22:06:32 +02:00
Alexander Wilms
9f9930a9dd
CServerHandler::justConnectToServer(): Read settings only once
2023-10-03 22:06:32 +02:00
Alexander Wilms
614d000376
Sleep for 10 ms instead of 1000 ms while waiting for server connection
2023-10-03 22:06:32 +02:00
Nordsoft91
4620d2c96d
Merge pull request #2980 from Nordsoft91/proxy-reconnect
...
Allow to reconnect to proxy server
2023-10-02 20:42:11 +02:00
nordsoft
f3fa0f8652
Allow to reconnect to proxy server
2023-09-29 19:49:18 +02:00
nordsoft
03c099d4fd
First steps
2023-09-27 22:53:13 +02:00
Ivan Savenko
03a939fd52
Remove redundant thread name - this method is not thread entry point
2023-09-27 19:13:26 +03:00
Ivan Savenko
d6b9fa8fbd
Replaced CPlayerInterface::pim with CGuiHandler::interfaceLock
...
- Removed CPlayerInterface::pim since this lock does not actually
protects LOCPLINT but rather entire game UI state
- added more logical CGuiHandler::interfaceLock
- interface lock is now non-recursive and is locked only once by initial
caller that want to access GUI
2023-09-27 18:33:52 +03:00
Ivan Savenko
71a1ed816a
Merge pull request #2892 from Laserlicht/highscore_menu
...
Highscore Menu & end video
2023-09-27 15:48:47 +03:00
Ivan Savenko
94dbde05a0
Merge pull request #2868 from IvanSavenko/simultaneous_turns
...
Simultaneous turns
2023-09-27 15:45:02 +03:00
Nordsoft91
c803b57c33
Merge pull request #2889 from Nordsoft91/mod-compatibility-check
...
Proper mod compatibility check logic
2023-09-26 19:29:46 +02:00
nordsoft
056cba55a8
Show loading screen immediately on restart
2023-09-26 15:45:46 +02:00
Ivan Savenko
5b21a5ffbc
Simturn duration is now part of StartInfo
2023-09-26 13:42:20 +03:00
Laserlicht
c3373ea34c
code review
2023-09-25 18:06:40 +02:00
Laserlicht
6f8b62d77d
codereview
2023-09-23 20:41:30 +02:00
Laserlicht
e3edcb6cd8
rmb; bugfix; tabs
2023-09-23 14:51:39 +02:00
Laserlicht
d2398b804a
implement adding
2023-09-23 13:14:45 +02:00
Laserlicht
e18a4a09a9
forward declaration
2023-09-23 02:14:45 +02:00
Laserlicht
d3f007453d
win screen ready
2023-09-23 01:36:01 +02:00
nordsoft
dce1ac1538
Redesign mod incompatibility message
2023-09-23 00:32:48 +02:00
Laserlicht
1a0f5cf159
calc preperation
2023-09-23 00:21:36 +02:00
Laserlicht
30c6cf3b98
video & audio correction; win/lose
2023-09-22 21:45:12 +02:00
Laserlicht
a4cb74f0dc
highscore input window
2023-09-22 20:39:20 +02:00
Laserlicht
9e78f9c69c
CodeReview
2023-09-21 23:41:00 +02:00
nordsoft
4691907f9c
Show root mods only
2023-09-21 22:28:29 +02:00
Laserlicht
5fd2eee3e8
code review
2023-09-21 21:27:06 +02:00
nordsoft
a05f8339ae
Proper mod compatibility check system
2023-09-21 04:31:08 +02:00
Laserlicht
48231f5f4f
save results only if from set
2023-09-20 22:28:45 +02:00
Laserlicht
dfb5ccbeaf
add persistent storage & completed campaign support
2023-09-20 22:18:53 +02:00
Laserlicht
52b86eb9c1
get back to campaignmenu
2023-09-20 21:18:13 +02:00
Laserlicht
34182069f5
campaignset
2023-09-20 03:13:54 +02:00
Ivan Savenko
f8541d0ae4
Merge branch 'vcmi/master' into 'vcmi/develop'
2023-09-15 13:59:02 +03:00
Ivan Savenko
538665fe42
Fix "Start game" blocking status:
...
- Start game is now initially blocked
- Receiving valid startInfo from server will unlock button
2023-09-12 21:15:15 +03:00
Ivan Savenko
823ffa7a07
Always use ResourcePath for referencing images and animations
2023-09-04 18:22:34 +03:00
nordsoft
d758727c23
Basic timer ui is almost complete
2023-08-28 17:10:52 +04:00
Ivan Savenko
a44c08a847
Slightly better thread names
2023-08-23 16:32:29 +03:00
Ivan Savenko
0613756abc
Remove unused code
2023-08-23 16:32:29 +03:00
Ivan Savenko
44d16b32fe
Use API identical to std classes where possible
2023-08-23 16:32:29 +03:00
Ivan Savenko
142889e3a5
Give all threads created by client human-readable name for debug
2023-08-23 16:32:29 +03:00
nordsoft
d50edc28ab
Merge remote-tracking branch 'upstream/develop' into turn-timer
...
# Conflicts:
# server/CGameHandler.cpp
# server/CGameHandler.h
2023-08-22 00:54:38 +04:00
Nordsoft91
ef4fddd0c4
Merge pull request #2570 from Laserlicht/town_selection_window
...
Town selection window
2023-08-20 17:37:45 +04:00
Nordsoft91
4a6deedd5e
Merge pull request #2530 from Nordsoft91/tutorial
...
Support tutorial
2023-08-19 18:06:15 +04:00
Ivan Savenko
d0b3319f6a
Merge remote-tracking branch 'vcmi/beta' into develop
2023-08-18 15:08:23 +03:00
Michael
e1e16018d1
code review first batch
2023-08-17 17:29:31 +02:00
Ivan Savenko
074fd42d84
Added missing includes
2023-08-17 10:26:01 +03:00
nordsoft
3c9c302fd2
TurnTimerInfo
2023-08-14 02:16:25 +04:00
Michael
bb5ada3bb3
not from this PR
2023-08-14 00:10:06 +02:00
Michael
1d76f456ad
change servercode to make it more robust
2023-08-14 00:08:48 +02:00
Ivan Savenko
f13a53c1d9
Merge remote-tracking branch 'vcmi/beta' into develop
2023-08-12 17:28:47 +03:00
Ivan Savenko
626664b8f6
Fix possible thread race on accessing GuiHandler from server handler
...
thread without acquiring lock
2023-08-12 14:16:47 +03:00
nordsoft
70d04ad957
Replace thread approach with callback based
2023-08-11 20:04:14 +04:00
nordsoft
f4869cbfb0
Tutorial load game mode
2023-08-09 15:29:48 +04:00
Ivan Savenko
c524caee5c
Fixed possible uncaught exception on starting map
2023-08-06 17:46:49 +03:00
Ivan Savenko
7f72f7a82c
Cleanup server connection code a bit
2023-07-30 20:15:32 +03:00
Ivan Savenko
593b82d178
Removed all references to boost::interprocess library
2023-07-30 20:14:57 +03:00
Ivan Savenko
21e794268b
Attempt to fix & improve error detection:
...
- use std::fstream instead of boost::iostreams for properly working flush
- removed some catch-all blocks
- reduce catch scope of some try/catch blocks to clearly indicate intent
2023-07-24 18:48:56 +03:00
Ivan Savenko
cefbe5152e
Merge pull request #2359 from IvanSavenko/crashfixing
...
Fix crashes from 1.2.1 statistics on Google Play
2023-07-21 15:44:37 +03:00
Ivan Savenko
9168a1150f
Remove catch-all that only blocks debugging (and Google Play reports)
2023-07-18 17:31:21 +03:00
Ivan Savenko
8750aa2c5b
Merged server savegame and (broken and unused) client savegame files
2023-07-09 15:30:47 +03:00
Ivan Savenko
88566cb1ef
Fix another unprotected UI access
2023-06-26 22:14:21 +03:00
Ivan Savenko
0f8d53e978
Replaced SDL user events list with dispatching of arbitrary functors
2023-06-26 21:51:10 +03:00
Ivan Savenko
8420a90aa4
Reorganization of campaigns code
2023-06-26 17:15:59 +03:00
Ivan Savenko
d1e5a347ff
Refactoring of campaign handler: rename types and use strong typing
2023-06-26 17:15:59 +03:00
Ivan Savenko
57df1c3e0d
Implemented gesture for town/hero lists and town/hero selection
2023-06-05 19:12:24 +03:00
Ivan Savenko
acac42291e
Remove excessive CMap.h includes
2023-05-31 23:18:38 +03:00
Ivan Savenko
5e86b00dda
Moved input handling from GuiHandler to set of classes in eventsSDL dir
2023-05-20 01:51:49 +03:00
Ivan Savenko
ad3e54e6c0
Reduced usage of topWindow() method
2023-05-16 21:57:45 +03:00
Ivan Savenko
e2ef136003
Renamed "Int" -> "Window" in WindowHandler API
2023-05-16 19:10:22 +03:00
Ivan Savenko
7838190ef4
Moved window stack management from GuiHandler to new class
2023-05-16 19:10:21 +03:00
Ivan Savenko
c688411bab
Extracted window management from CMT to new class
2023-05-09 13:10:33 +03:00
Ivan Savenko
383387ef29
Integrated defaultMods into mod system
2023-03-16 17:55:09 +02:00
Konstantin
5366f9190e
vcmi: reduce boost::lexical_cast usage
2023-03-09 16:36:46 +03:00
Andrey Filipenkov
fd56f86a84
introduce VCMI_MOBILE macro
2023-03-02 12:09:49 +03:00
Andrey Filipenkov
c4e7e91850
fix single process build for Android
2023-03-02 12:09:48 +03:00
Andrii Danylchenko
9f55666931
rework netpacks to avoid double typeinfo
2023-02-13 20:26:39 +02:00
Ivan Savenko
b1821d4442
Removed some SDL access from non-SDL code
2023-02-03 11:39:40 +02:00
Ivan Savenko
e1bd0d2a04
API for custom events no longer requires SDL access
2023-02-03 11:39:40 +02:00
Ivan Savenko
9c3030603d
Removed most SDL includes from headers, removed SDL int's
2023-01-30 19:55:32 +02:00
Ivan Savenko
bdb8e0ee5c
Introduced string identifiers for H3 texts, still WIP
2023-01-01 14:56:44 +02:00
Ivan Savenko
eb20a4b208
Merge remote-tracking branch 'vcmi/develop' into warnings_fix
2022-12-23 14:40:45 +02:00
Ivan Savenko
facf77b3ae
vstd::unique -> std::unique
2022-12-07 23:36:20 +02:00
Ivan Savenko
6463e906d5
vcmi can be compiled as single app on Linux
...
TODO: check compilation on Win/Mac using Github Actions
2022-12-05 21:36:02 +02:00
nordsoft
915d215076
Fix connections amount problem
2022-11-15 22:09:47 +04:00
nordsoft
e7a8466e2b
Merge remote-tracking branch 'upstream/develop' into lobby
2022-11-15 22:09:46 +04:00
lainon
79bc82af63
Fix [3144]
2022-11-13 05:35:16 +03:00
nordsoft
56757bb5c2
Pass port from client to server for ios
2022-11-11 18:35:40 +04:00
nordsoft
9ffc50457a
Bypass command line args to vcmiserver
2022-11-08 18:05:47 +04:00
nordsoft
97e5fc8a07
Lobby works
2022-11-08 04:44:34 +04:00
nordsoft
e21c2a02ce
Merge remote-tracking branch 'upstream/develop' into lobby
2022-11-02 18:33:33 +04:00
nordsoft
27bff89e66
Write port override
2022-10-30 19:59:43 +04:00
nordsoft
dd45d1a9cf
Develop game part
2022-10-25 05:27:53 +04:00
nordsoft
ea49b8cf40
Cleanup code
2022-10-06 17:56:54 +04:00
nordsoft
930f03e812
uuid check
2022-10-04 20:54:40 +04:00
nordsoft
83f4a5b561
Use host and port from config
2022-10-04 18:45:54 +04:00
nordsoft
0ea5a8fbe7
Merge remote-tracking branch 'upstream/develop' into mp-disconnection
...
# Conflicts:
# server/CVCMIServer.cpp
2022-10-04 17:41:43 +04:00
nordsoft
722acb2a1d
Reconnection works
2022-10-04 05:42:14 +04:00
nordsoft
16a5414247
Reconnection partially works
2022-10-04 05:09:03 +04:00
Andrii Danylchenko
04490b709a
Merge pull request #1000 from vcmi/multiplayer
...
Multiplayer
2022-10-03 20:16:39 +03:00
nordsoft
512cf014aa
Freeze current state
2022-10-03 20:47:00 +04:00
Andrey Filipenkov
8f51a8756b
restore last used address in Multiplayer join dialog
...
in all other cases (when machine is host) hardcoded localhost address is displayed
2022-10-01 17:41:12 +03:00
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
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
Nordsoft91
d4f97aadf0
Merge branch 'develop' into incomatibility-response
2022-09-25 13:26:07 +04: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
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
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
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
dde9a5d5d2
todo updates
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
c4233ad706
exclude some code similar to android
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
nordsoft
e74890c4b1
Add system message about mods incompatibility
2022-09-23 15:02:45 +04: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
nordsoft
c2f5628fc5
Add system message
...
# Conflicts:
# client/CServerHandler.cpp
2022-09-22 15:42:43 +04:00
nordsoft
667d97d300
Add simple healthcheck
2022-09-22 05:06:49 +04:00
Andrey Filipenkov
99af5bbe4c
add dedicated method to get logs path
2022-09-18 09:24:36 +03:00
Andrey Filipenkov
bccc658e8b
fix launching server when Windows user name has non-latin characters
2022-09-11 11:31:28 +03:00
Andrii Danylchenko
b4241670ba
Nullkiller: rename VCAI to AIGateway
2021-07-26 21:02:50 +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
Dmitry Orlov
3add3156e2
Fix: 'Restart Scenario' button should work properly
2021-01-20 21:29:50 +03: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
Ewilhan
b5243602ca
Fix wrong savefiles shown while playing Hotseat Mode ( #585 )
...
* Fix wrong save files shown in HotSeat mode
Previous condition only checked for players' connection ID. HotSeat mode does not use multiple connection IDs, so getLoadMode() thought it was SPMode.
Now checking number of interfaces to cover offline-multiplayer.
2019-05-04 16:56:17 +03:00
Dydzio
1cc2ef537b
Add proper thread synchronization for campaigns
2019-03-30 00:28:33 +01:00
Dydzio
97869fc36f
Fixed single map victory crash
2019-03-29 22:01:51 +01:00
Konstantin Vukolov
96215233bc
macOS: fix packet deserialization ( #479 )
2018-08-14 01:03:45 +03:00
Alexander Shishkin
75f8c8b29a
Gui cleanup4 ( #446 )
...
* use smart pointers for almost all widget fields
* use SDL2 texture for cursor
* a lot af small tweaks and formatting
* removed CompImage class, it is actually useless as long as regular SDLImage support margins
* CGuiHandler: use smart pointers for [push|pop]Int
2018-07-25 01:36:48 +03:00
Dydzio
e4a9ce3efe
Do not create main menu UI for game restart ( #462 )
2018-07-19 00:58:38 +03:00
Andrii Danylchenko
dcbcff41dc
apply review comments for CAndroidVMHelper
2018-05-26 14:50:49 +03:00
Andrii Danylchenko
ee033e9c9c
fix android build
2018-05-25 22:57:29 +03:00
Karlis Senko
224ea28433
Fix various memory errors related to server and connections.
...
* keep connection when restarting scenario
* wrong double free in Connection
* multiple use after free when stopping server
* double free of StartInfo
2018-05-01 00:04:20 +03:00
Arseniy Shestakov
4af288aee4
Refactoring of main menu related code
...
We need to make sure it's not stay active during gameplay.
Proper fix would require actually removing menu interface from GH, but then GH needs refactoring too.
2018-04-07 18:44:21 +07:00
Arseniy Shestakov
ac66fc7f42
Full rework of pre-game interface and networking
...
New features for players:
* Loading for multiplayer. Any save could be used for multiplayer.
* Restart for multiplayer. All clients will restart together.
* Loading from single save.
* Hotseat mixed with network game. Multiple players per client.
* Now connection to server could be cancelled.
* Return to menu on disconnections instead of crashes.
* Restoring of last selected map, save or campaign on next run.
TLDR on important changes in engine code:
* UI: work with server separated from UI
* UI: all explitic blitting replaced with IntObject's
* UI: all new code use smart pointers instead of DISPOSE
* Gameplay always start through lobby controlled by server.
* Threads receiving netpacks now shared for lobby and gameplay.
* Campaigns: heroes for crossover now serialized as JsonNode.
2018-04-04 14:24:26 +07:00