mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-11 10:02:27 +01:00
Merge pull request #1820 from janisozaur/disable_network
disable network
This commit is contained in:
@@ -29,6 +29,11 @@ add_definitions(-DCURL_STATICLIB)
|
|||||||
#uncomment the line bellow if you don't want to build openrct2 with twitch integration
|
#uncomment the line bellow if you don't want to build openrct2 with twitch integration
|
||||||
#add_definitions(-DDISABLE_HTTP -DDISABLE_TWITCH)
|
#add_definitions(-DDISABLE_HTTP -DDISABLE_TWITCH)
|
||||||
|
|
||||||
|
option(DISABLE_NETWORK "Disable multiplayer functionality. Mainly for testing.")
|
||||||
|
if (DISABLE_NETWORK)
|
||||||
|
add_definitions(-DDISABLE_NETWORK)
|
||||||
|
endif (DISABLE_NETWORK)
|
||||||
|
|
||||||
set(ORCTLIBS_INCLUDE /usr/local/cross-tools/orctlibs/include)
|
set(ORCTLIBS_INCLUDE /usr/local/cross-tools/orctlibs/include)
|
||||||
set(JANSSON_INCLUDE /usr/local/cross-tools/orctlibs/include/jansson)
|
set(JANSSON_INCLUDE /usr/local/cross-tools/orctlibs/include/jansson)
|
||||||
set(ORCTLIBS_LIB_DIR /usr/local/cross-tools/orctlibs/lib)
|
set(ORCTLIBS_LIB_DIR /usr/local/cross-tools/orctlibs/lib)
|
||||||
@@ -44,7 +49,10 @@ file(GLOB_RECURSE ORCT2_SOURCES "src/*.c" "src/*.cpp" "lib/*.c")
|
|||||||
if (UNIX)
|
if (UNIX)
|
||||||
# force 32bit build for now and set necessary flags to compile code as is
|
# force 32bit build for now and set necessary flags to compile code as is
|
||||||
set(CMAKE_C_FLAGS "-m32 -masm=intel -std=gnu99")
|
set(CMAKE_C_FLAGS "-m32 -masm=intel -std=gnu99")
|
||||||
set(CMAKE_LDFLAGS_FLAGS "-m32")
|
set(CMAKE_CXX_FLAGS "-m32 -std=gnu++11 -masm=intel")
|
||||||
|
set(LIB32 /usr/lib32)
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "-m32 -Wl,-melf_i386 -L${LIB32} -lSDL2_ttf")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS})
|
||||||
|
|
||||||
# find and include SDL2
|
# find and include SDL2
|
||||||
INCLUDE(FindPkgConfig)
|
INCLUDE(FindPkgConfig)
|
||||||
|
|||||||
7
build.sh
7
build.sh
@@ -8,6 +8,9 @@ mkdir -p $cachedir
|
|||||||
if [[ ! -d build ]]; then
|
if [[ ! -d build ]]; then
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
fi
|
fi
|
||||||
|
if [[ ! -d build_nonet ]]; then
|
||||||
|
mkdir -p build_nonet
|
||||||
|
fi
|
||||||
|
|
||||||
libversion=2
|
libversion=2
|
||||||
libVFile="./libversion"
|
libVFile="./libversion"
|
||||||
@@ -58,6 +61,10 @@ pushd build
|
|||||||
cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt -DCMAKE_BUILD_TYPE=Debug ..
|
cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
make
|
make
|
||||||
popd
|
popd
|
||||||
|
pushd build_nonet
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt -DCMAKE_BUILD_TYPE=Debug -DDISABLE_NETWORK=ON ..
|
||||||
|
make
|
||||||
|
popd
|
||||||
|
|
||||||
if [[ ! -h openrct2.dll ]]; then
|
if [[ ! -h openrct2.dll ]]; then
|
||||||
ln -s build/openrct2.dll openrct2.dll
|
ln -s build/openrct2.dll openrct2.dll
|
||||||
|
|||||||
@@ -46,9 +46,11 @@ typedef int (*cmdline_action)(const char **argv, int argc);
|
|||||||
|
|
||||||
int gExitCode = 0;
|
int gExitCode = 0;
|
||||||
|
|
||||||
|
#ifndef DISABLE_NETWORK
|
||||||
int gNetworkStart = NETWORK_MODE_NONE;
|
int gNetworkStart = NETWORK_MODE_NONE;
|
||||||
char gNetworkStartHost[128];
|
char gNetworkStartHost[128];
|
||||||
int gNetworkStartPort = NETWORK_DEFAULT_PORT;
|
int gNetworkStartPort = NETWORK_DEFAULT_PORT;
|
||||||
|
#endif // DISABLE_NETWORK
|
||||||
|
|
||||||
static void print_launch_information();
|
static void print_launch_information();
|
||||||
static int cmdline_call_action(const char **argv, int argc);
|
static int cmdline_call_action(const char **argv, int argc);
|
||||||
@@ -96,6 +98,7 @@ int cmdline_run(const char **argv, int argc)
|
|||||||
if (verbose)
|
if (verbose)
|
||||||
_log_levels[DIAGNOSTIC_LEVEL_VERBOSE] = 1;
|
_log_levels[DIAGNOSTIC_LEVEL_VERBOSE] = 1;
|
||||||
|
|
||||||
|
#ifndef DISABLE_NETWORK
|
||||||
if (port != 0) {
|
if (port != 0) {
|
||||||
gNetworkStart = NETWORK_MODE_SERVER;
|
gNetworkStart = NETWORK_MODE_SERVER;
|
||||||
gNetworkStartPort = port;
|
gNetworkStartPort = port;
|
||||||
@@ -105,6 +108,7 @@ int cmdline_run(const char **argv, int argc)
|
|||||||
gNetworkStart = NETWORK_MODE_CLIENT;
|
gNetworkStart = NETWORK_MODE_CLIENT;
|
||||||
strncpy(gNetworkStartHost, server, sizeof(gNetworkStartHost));
|
strncpy(gNetworkStartHost, server, sizeof(gNetworkStartHost));
|
||||||
}
|
}
|
||||||
|
#endif // DISABLE_NETWORK
|
||||||
|
|
||||||
if (argc != 0) {
|
if (argc != 0) {
|
||||||
gExitCode = cmdline_call_action(argv, argc);
|
gExitCode = cmdline_call_action(argv, argc);
|
||||||
@@ -188,4 +192,4 @@ static int cmdline_call_action(const char **argv, int argc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return cmdline_for_none(argv, argc);
|
return cmdline_for_none(argv, argc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,14 +18,18 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "network.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "../addresses.h"
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef DISABLE_NETWORK
|
#ifndef DISABLE_NETWORK
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include "network.h"
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "../addresses.h"
|
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
#include "../game.h"
|
#include "../game.h"
|
||||||
#include "../interface/chat.h"
|
#include "../interface/chat.h"
|
||||||
@@ -566,7 +570,7 @@ void Network::Server_Send_MAP(NetworkConnection* connection)
|
|||||||
int size = (int)SDL_RWtell(rw);
|
int size = (int)SDL_RWtell(rw);
|
||||||
int chunksize = 1000;
|
int chunksize = 1000;
|
||||||
for (int i = 0; i < size; i += chunksize) {
|
for (int i = 0; i < size; i += chunksize) {
|
||||||
int datasize = min(chunksize, size - i);
|
int datasize = std::min(chunksize, size - i);
|
||||||
std::unique_ptr<NetworkPacket> packet = std::move(NetworkPacket::Allocate());
|
std::unique_ptr<NetworkPacket> packet = std::move(NetworkPacket::Allocate());
|
||||||
*packet << (uint32)NETWORK_COMMAND_MAP << (uint32)size << (uint32)i;
|
*packet << (uint32)NETWORK_COMMAND_MAP << (uint32)size << (uint32)i;
|
||||||
packet->Write(&buffer[i], datasize);
|
packet->Write(&buffer[i], datasize);
|
||||||
@@ -1099,4 +1103,19 @@ void network_send_gamecmd(uint32 eax, uint32 ebx, uint32 ecx, uint32 edx, uint32
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* DISABLE_NETWORK */
|
#else
|
||||||
|
int network_get_mode() { return NETWORK_MODE_NONE; }
|
||||||
|
void network_tick() {}
|
||||||
|
uint32 network_get_server_tick() { return RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32); }
|
||||||
|
void network_send_gamecmd(uint32 eax, uint32 ebx, uint32 ecx, uint32 edx, uint32 esi, uint32 edi, uint32 ebp, uint8 callback) {}
|
||||||
|
void network_send_map() {}
|
||||||
|
void network_update() {}
|
||||||
|
int network_begin_client(const char *host, int port) { return 1; }
|
||||||
|
int network_begin_server(int port) { return 1; }
|
||||||
|
int network_get_num_players() { return 1; }
|
||||||
|
const char* network_get_player_name(unsigned int index) { return "local (OpenRCT2 compiled without MP)"; }
|
||||||
|
uint32 network_get_player_flags(unsigned int index) { return 0; }
|
||||||
|
int network_get_player_ping(unsigned int index) { return 0; }
|
||||||
|
void network_send_chat(const char* text) {}
|
||||||
|
void network_close() {}
|
||||||
|
#endif /* DISABLE_NETWORK */
|
||||||
|
|||||||
@@ -21,16 +21,29 @@
|
|||||||
#ifndef _NETWORK_H_
|
#ifndef _NETWORK_H_
|
||||||
#define _NETWORK_H_
|
#define _NETWORK_H_
|
||||||
|
|
||||||
#ifndef DISABLE_NETWORK
|
|
||||||
|
|
||||||
#define NETWORK_DEFAULT_PORT 11753
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NETWORK_MODE_NONE,
|
NETWORK_MODE_NONE,
|
||||||
NETWORK_MODE_CLIENT,
|
NETWORK_MODE_CLIENT,
|
||||||
NETWORK_MODE_SERVER
|
NETWORK_MODE_SERVER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NETWORK_PLAYER_FLAG_ISSERVER = 1 << 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NETWORK_DEFAULT_PORT 11753
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
#include "../common.h"
|
||||||
|
#include "../platform/platform.h"
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
#ifndef DISABLE_NETWORK
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NETWORK_AUTH_NONE,
|
NETWORK_AUTH_NONE,
|
||||||
NETWORK_AUTH_REQUESTED,
|
NETWORK_AUTH_REQUESTED,
|
||||||
@@ -40,20 +53,13 @@ enum {
|
|||||||
NETWORK_AUTH_BADPASSWORD
|
NETWORK_AUTH_BADPASSWORD
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
|
||||||
NETWORK_PLAYER_FLAG_ISSERVER = 1 << 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
|
#include <set>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
extern "C" {
|
|
||||||
#include "../common.h"
|
|
||||||
#include "../platform/platform.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
template <std::size_t size>
|
template <std::size_t size>
|
||||||
struct ByteSwapT { };
|
struct ByteSwapT { };
|
||||||
@@ -215,17 +221,20 @@ private:
|
|||||||
int Server_Handle_READY(NetworkConnection& connection, NetworkPacket& packet);
|
int Server_Handle_READY(NetworkConnection& connection, NetworkPacket& packet);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern "C" {
|
#endif // __cplusplus
|
||||||
#endif
|
#endif /* DISABLE_NETWORK */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
int network_init();
|
int network_init();
|
||||||
void network_close();
|
void network_close();
|
||||||
int network_begin_client(const char *host, int port);
|
int network_begin_client(const char *host, int port);
|
||||||
int network_begin_server(int port);
|
int network_begin_server(int port);
|
||||||
|
|
||||||
|
int network_get_mode();
|
||||||
void network_update();
|
void network_update();
|
||||||
void network_tick();
|
void network_tick();
|
||||||
int network_get_mode();
|
|
||||||
int network_get_authstatus();
|
int network_get_authstatus();
|
||||||
uint32 network_get_server_tick();
|
uint32 network_get_server_tick();
|
||||||
uint8 network_get_player_id();
|
uint8 network_get_player_id();
|
||||||
@@ -242,8 +251,6 @@ void network_print_error();
|
|||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* DISABLE_NETWORK */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -245,9 +245,11 @@ void openrct2_launch()
|
|||||||
|
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) = SCREEN_FLAGS_PLAYING;
|
RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) = SCREEN_FLAGS_PLAYING;
|
||||||
|
|
||||||
|
#ifndef DISABLE_NETWORK
|
||||||
if (gNetworkStart == NETWORK_MODE_SERVER) {
|
if (gNetworkStart == NETWORK_MODE_SERVER) {
|
||||||
network_begin_server(gNetworkStartPort);
|
network_begin_server(gNetworkStartPort);
|
||||||
}
|
}
|
||||||
|
#endif // DISABLE_NETWORK
|
||||||
break;
|
break;
|
||||||
case STARTUP_ACTION_EDIT:
|
case STARTUP_ACTION_EDIT:
|
||||||
if (strlen(gOpenRCT2StartupActionPath) == 0) {
|
if (strlen(gOpenRCT2StartupActionPath) == 0) {
|
||||||
@@ -258,9 +260,11 @@ void openrct2_launch()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DISABLE_NETWORK
|
||||||
if (gNetworkStart == NETWORK_MODE_CLIENT) {
|
if (gNetworkStart == NETWORK_MODE_CLIENT) {
|
||||||
network_begin_client(gNetworkStartHost, gNetworkStartPort);
|
network_begin_client(gNetworkStartHost, gNetworkStartPort);
|
||||||
}
|
}
|
||||||
|
#endif // DISABLE_NETWORK
|
||||||
|
|
||||||
openrct2_loop();
|
openrct2_loop();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user