Commit Graph

242 Commits

Author SHA1 Message Date
Michał Janiszewski e930a09f0b Free compressed map when failed to connect client 2016-08-03 07:39:55 +02:00
zsilencer 5d04e5e03e Multiplayer desync stuff 2016-08-01 20:47:21 +02:00
Michał Janiszewski 155bc054df Fix #4172: Expose ride-type changing capability in UI
This also allows changing ride type in multiplayer games. Very crashy.
2016-08-01 20:30:08 +02:00
Michał Janiszewski 84137738e3 Disconnect client in case map sending fails 2016-07-30 10:13:08 +02:00
Michał Janiszewski 64c0c594dc Check if memory was allocated successfully for server map
Somehow, there are cases where server thinks a map is around 2GiB in
size. Such allocation will most likely fail on 32-bit system and crash
the server. This provides *some* safety check and at least prevents
server from crashing in such cases.
2016-07-30 10:13:08 +02:00
Michał Janiszewski 04fb336d1f Fix typo in comment 2016-07-27 15:09:30 +02:00
Michał Janiszewski 1fe5fc56c0 Checksum sprites occasionally in multiplayer
This creates a checksum (SHA1) every so often on server and sends this
value together with PRNG seed for client to check it has still not
desynced.

It's useful to detect a desync early on, as PRNG seeds may remain
unchanged for some more time, while damage may have already been caused.
2016-07-27 15:54:02 +02:00
Michał Janiszewski 82d52b63e6 Verify NetworkActions access 2016-07-26 15:07:33 +01:00
Yaroslav Tretyakov 3116ec3e76 Fix issue in ReceiveData 2016-07-24 21:01:14 +01:00
Ted John e5722e1d9a Fix #4139: Windows first time firewall launch
std::string can not handle nullptr as argument. Create and use helper method instead.
2016-07-19 21:53:18 +01:00
Michał Janiszewski 836450cab4 Fix declarations of network-less builds 2016-07-14 14:11:50 +02:00
Michał Janiszewski a6d0e6916e Fix function definitions to match their declarations
This makes sure every function is properly declared, which includes
proper `extern` wrappers.
2016-07-14 14:11:49 +02:00
Marijn van der Werf 5204fb0ce9 Clean up string and sprite ID's (#3977) 2016-07-14 14:07:49 +02:00
Michał Janiszewski f3786b3130 Fix #3899: Game crashes after hosting my server
Catch exceptions when loading groups.json.
2016-07-04 17:50:09 +01:00
Michał Janiszewski 9041551b97 Guard server against null signature 2016-06-23 20:09:56 +01:00
Michał Janiszewski 644a36a310 Fixes to -Wall compilation
By default, not all warnings are enabled. This change makes sure that
the project compiles correctly with following options turned on:

    -Wall -Wno-unused-but-set-variable -Wno-missing-braces \
    -Wno-unknown-pragmas -Wno-unused-function
2016-06-20 13:46:27 +01:00
Marijn van der Werf 42ee299f65 Replace references to OS X 2016-06-13 19:49:06 +02:00
Yaroslav Tretyakov 379b85f94c send fix #3836 (#3850) 2016-06-09 23:04:02 +01:00
Ted John 1761907f57 handle bad map data and close connection 2016-06-09 18:37:12 +01:00
dVoCex 27b3c71588 Send the correct map size to the master server (#3821)
Signed-off-by: dVoCex <dVoCex@users.noreply.github.com>
2016-06-09 12:32:25 +01:00
Alexander Overvoorde ca1590c086 Add parameter to utf8_remove_formatting to allow colour codes (fixes #3638) (#3831) 2016-06-09 12:30:32 +01:00
Michał Janiszewski 4b152bac88 Make sure data sent out over wire is advanced properly (#3844) 2016-06-09 12:29:44 +01:00
X123M3-256 706b3db99e Chain lift cheat (#3818)
* Fix conflict with disable plant aging cheat

* Allow chain lift on any piece

* Keep chain toggled while building

* Ignore current chain lift state when cheat enabled

* Update string ids to one not already used

* Implement command for toggling cheat

* Allow chain on steep tracks when cheat is enabled

* Add checkbox for chain cheat

* Fix spacing

* Send cheat over network

* Change label for checkbox

* Replaced tabs with spaces
2016-06-07 22:08:38 +01:00
Michał Janiszewski e5cd157edc Fix memory leak in TcpSocket (#3815) 2016-06-03 23:29:25 +01:00
Michał Janiszewski 628e263094 Fix #3804: use-after-free in TcpSocket (#3810) 2016-06-03 14:30:00 +01:00
Ted John 82dd7601eb Merge pull request #3782 from janisozaur/desyncs
synchronise reset_0x69EBE4 over network
2016-06-03 10:47:01 +01:00
Michał Janiszewski 60630b9ad7 Drop `PACKED` attribute 2016-06-03 10:55:21 +02:00
Michał Janiszewski 3907fcd9d2 Explicitly pack structs 2016-06-03 10:55:21 +02:00
Michał Janiszewski 4955279b7b Synchronise reset_0x69EBE4 over network
Clients calling reset_0x69EBE4 not in sync is a major cause of desyncs,
this change tries to force sync across clients
2016-06-03 00:33:15 +02:00
Ted John a153d07637 handle exceptions when setting up the TCP listener 2016-06-02 18:51:29 +01:00
Michał Janiszewski e3d04ff96d Fix TcpSocket for Linux compilers (#13) 2016-06-02 09:13:25 +01:00
Ted John 8dfbabbd07 refactor network, create ITcpSocket
Abstracts all socket code into a new class TcpSocket which is only exposed by a light interface, ITcpSocket. This now means that platform specific headers like winsock2.h and sys/socket.h do not have to be included in OpenRCT2 header files reducing include load and other issues.
2016-06-01 23:01:20 +01:00
Ted John 27d846c2f4 fix #3786: Wrong server provider information 2016-05-31 19:24:07 +01:00
Ted John c66a755ef7 request server gameinfo for window 2016-05-31 17:16:08 +01:00
Ted John 2264027afa change directory name to 'chatlogs' 2016-05-30 18:03:31 +01:00
Ted John feb65ea93c add option to log chat history 2016-05-30 18:01:17 +01:00
Ted John 618d13a9a3 save chat logs 2016-05-30 16:25:06 +01:00
Ted John 8cf4a1f03f add default case to fix clang error 2016-05-30 11:28:41 +01:00
Ted John 00d4904ba9 make DISABLE_NETWORK compatible 2016-05-30 11:28:14 +01:00
Michał Janiszewski 3a697609a5 Fixes to network refactoring (#11) 2016-05-30 11:28:13 +01:00
Ted John d69ca7f479 conform to name convention 2016-05-30 11:28:09 +01:00
Ted John 623318a35d refactor NetworkPlayer 2016-05-30 11:18:07 +01:00
Ted John 3591026078 refactor NetworkAction 2016-05-30 11:18:07 +01:00
Ted John 31ac6e7fdf refactor NetworkConnection and NetworkPacket 2016-05-30 11:18:07 +01:00
Ted John 46ecd53a99 refactor NetworkAddress 2016-05-30 11:18:07 +01:00
Ted John 91b7db31d1 fix #3771: Crash when kicking player
The game did not check if the user hash existed in the map before trying to remove it.
2016-05-29 10:56:36 +01:00
CraigCraig c946d2fb06 Various Spelling Fixes - 5/29/16 (#3770) 2016-05-29 10:00:38 +01:00
Michał Janiszewski d29af84886 Make sure to hold string alive when using c_str() (#3760) 2016-05-27 22:32:11 +01:00
Michał Janiszewski 8e26f2c0d1 Only check for PASSWORDLESS permission if successfully verified 2016-05-27 23:00:31 +02:00
Michał Janiszewski 4699635086 Don't allow null keys 2016-05-27 22:56:23 +02:00