1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

58 Commits

Author SHA1 Message Date
Ivan Savenko
35954dc41b Simple workaround to fix vcmiserver shutdown procedure
At the moment, vcmilobby *requires* async writes in order to handle
multiple connections with different speeds and at optimal performance,
without hanging if one player is too slow and can't eat all data server
sent to him at once.

However server (and potentially - client) can not handle this mode and
may shutdown either socket or entire asio service too early, before all
writes are performed, leading to weird freeze on ending scenario where
client would not receive notifications about end of game.
2024-05-14 19:40:20 +00:00
Ivan Savenko
7188849aa4 Show active room invites and invited players in UI 2024-05-13 12:12:55 +00:00
Ivan Savenko
a4ea74fbbc Send list of active invites as part of room description 2024-05-13 11:43:28 +00:00
Ivan Savenko
8b15836547 Do not attempt to load Json from empty string 2024-05-12 19:26:08 +00:00
Ivan Savenko
e5f8cefa7f Store and send mod list and game version for game rooms 2024-04-23 17:15:59 +03:00
Ivan Savenko
7bc81101a2 Add logging for when account or match server disconnects 2024-03-30 10:24:13 +02:00
Ivan Savenko
2deca842de Log sucessful logins for convenience 2024-03-29 15:04:03 +02:00
Ivan Savenko
2a717a6d66 Fix typo 2024-03-29 15:03:42 +02:00
Ivan Savenko
671b61c64e Implement various todo's and review suggestions 2024-03-27 13:10:55 +02:00
Ivan Savenko
89d091a386 Set matches that never reached gameplay state to 'cancelled' state 2024-03-27 13:10:55 +02:00
Ivan Savenko
69f7b3169e UI improvements for lobby:
- Added notifications sounds for invites and chat messages
- Added notifications for unread chat messages in inactive channels
- Added click sound when switching between channels
- Added workaround to prevent clicks due to list recreation
- Partial support for receiving invites
2024-03-27 13:10:55 +02:00
Ivan Savenko
4dce0479ba UI improvements for lobby screen:
- Show description of current chat room in header
- Show count of online accounts / active rooms
- Highlight currently selected chat room
2024-03-27 13:10:55 +02:00
Ivan Savenko
489dd781c2 Show match creation date in history 2024-03-27 13:10:55 +02:00
Ivan Savenko
829b754091 Implemented matches history in lobby 2024-03-27 13:10:55 +02:00
Ivan Savenko
4ed961fb96 Partially unified handling of pregame and in-game chats 2024-03-27 13:10:55 +02:00
Ivan Savenko
df5af589ae Implemented per-language, player-player and (untested) match channels. 2024-03-27 13:10:55 +02:00
Ivan Savenko
5d188024db Set room status to "In Game" once gameplay starts 2024-03-27 13:10:55 +02:00
Ivan Savenko
7c9aa9d953 Show all rooms (including private) in room list 2024-03-27 13:10:55 +02:00
Ivan Savenko
3023db6f0f Store and show correct player room limit in UI 2024-03-27 13:10:55 +02:00
Ivan Savenko
715e094f5c Implemented room description display (map/template name) 2024-03-27 13:10:55 +02:00
Ivan Savenko
be641d1710 Split 'loginSuccess' into server and client-specific versions 2024-03-27 13:10:55 +02:00
Ivan Savenko
c21e5bb0fb Always validate messages in debug mode. Fixes for schemas 2024-03-08 16:32:40 +02:00
Ivan Savenko
456dfd9e3d Added debug validation of lobby protocol on every send/receive 2024-03-08 16:32:40 +02:00
Ivan Savenko
6120fd2faa Lobby server will now validate incoming messages 2024-03-08 16:32:39 +02:00
Ivan Savenko
5b1549200a Renamed openGameRoom to more clear activateGameRoom 2024-03-08 16:32:39 +02:00
Ivan Savenko
08a27663f9 Reworked JsonNode constructors to more logical form 2024-02-26 12:55:49 +02:00
Ivan Savenko
0b7bf56597 Remove old files 2024-02-14 14:02:41 +02:00
Ivan Savenko
7c34d48258 Minor fixes and corrections to network-related code. No functionality
changes.
2024-02-12 18:57:20 +02:00
Ivan Savenko
1a144fc516 Some progress on private rooms support 2024-02-10 19:02:25 +02:00
Ivan Savenko
7dee24edae Cleanup 2024-02-03 23:30:16 +02:00
Ivan Savenko
f97ffd8e9a Better handling of disconnects, code cleanup 2024-02-02 15:32:06 +02:00
Ivan Savenko
03fcfe3392 Use std::byte in serializer 2024-02-02 13:09:12 +02:00
Ivan Savenko
29c0989849 Use std::byte to manage network data 2024-02-02 02:02:09 +02:00
Ivan Savenko
c12558bf8a Simplified code 2024-02-02 01:26:53 +02:00
Ivan Savenko
ad547fcae0 Added basic logging 2024-02-02 00:21:52 +02:00
Ivan Savenko
c9ebf32efd Send error messages if operation fails 2024-02-02 00:12:30 +02:00
Ivan Savenko
c5c46a7c9a Implemented connecting to server via proxy 2024-01-30 21:31:41 +02:00
Ivan Savenko
bed05eb52d WIP: Implemented joining public rooms 2024-01-28 00:04:54 +02:00
Ivan Savenko
6d2ca070ea Show number of players in open room 2024-01-27 23:41:36 +02:00
Ivan Savenko
eaca128c99 Code cleanup 2024-01-26 19:15:57 +02:00
Ivan Savenko
388ca6e776 Added list of active accounts and rooms to UI. Added room creation logic 2024-01-26 16:32:36 +02:00
Ivan Savenko
80e960bc8e Finalized new TCP networking API 2024-01-19 23:52:28 +02:00
Ivan Savenko
476a05fed3 Formatting 2024-01-19 23:52:28 +02:00
Ivan Savenko
47f72af556 Client-side update, adapted and fixed login and chat 2024-01-19 23:49:59 +02:00
Ivan Savenko
4271fb3c95 Extension of lobby server functionality
Support for:
- listing of active players
- listing of active rooms
- joining and leaving rooms
- placeholder support for multiple chat rooms
- proxy connections
- invites into private rooms

(only lobby server side for now, client and match server need work)
2024-01-19 23:49:59 +02:00
Ivan Savenko
50c1452221 Fix code style consistency in lobby server project 2024-01-19 23:49:59 +02:00
Ivan Savenko
428a71087a Reorganization of lobby server project for future extension 2024-01-19 23:49:59 +02:00
Ivan Savenko
461bca73f3 Minor cleanup - move reinterpret_cast to jsonNode 2024-01-19 23:49:59 +02:00
Ivan Savenko
55b504792e Implemented basic version of login window and persistent connection on
client
2024-01-19 23:49:59 +02:00
Ivan Savenko
78833a1015 Split LobbyWindow file into one file per class 2024-01-19 23:49:59 +02:00