Added compile-time flag to disable Discord SDK

In order to support ARM/Mac, discord must be disabled.
To disable compile with:
make DISCORD_SDK=0

Fixes #62
This commit is contained in:
MysterD 2020-09-19 00:51:40 -07:00
parent a67a06c17c
commit 4a7b9736b4
5 changed files with 61 additions and 25 deletions

View file

@ -48,8 +48,10 @@ EXT_OPTIONS_MENU ?= 1
TEXTSAVES ?= 0 TEXTSAVES ?= 0
# Load resources from external files # Load resources from external files
EXTERNAL_DATA ?= 0 EXTERNAL_DATA ?= 0
# Enable Discord Rich Presence # Enable Discord Rich Presence (outdated, no longer supported)
DISCORDRPC ?= 0 DISCORDRPC ?= 0
# Enable Discord Game SDK (used for Discord server hosting)
DISCORD_SDK ?= 1
# Enable docker build workarounds # Enable docker build workarounds
DOCKERBUILD ?= 0 DOCKERBUILD ?= 0
@ -289,13 +291,17 @@ LEVEL_DIRS := $(patsubst levels/%,%,$(dir $(wildcard levels/*/header.h)))
# Hi, I'm a PC # Hi, I'm a PC
SRC_DIRS := src src/engine src/game src/audio src/menu src/buffers actors levels bin data assets src/pc src/pc/gfx src/pc/audio src/pc/controller src/pc/fs src/pc/fs/packtypes SRC_DIRS := src src/engine src/game src/audio src/menu src/buffers actors levels bin data assets src/pc src/pc/gfx src/pc/audio src/pc/controller src/pc/fs src/pc/fs/packtypes
SRC_DIRS += src/pc/network src/pc/network/packets src/pc/network/socket src/pc/network/discord SRC_DIRS += src/pc/network src/pc/network/packets src/pc/network/socket
ASM_DIRS := ASM_DIRS :=
#ifeq ($(DISCORDRPC),1) #ifeq ($(DISCORDRPC),1)
# SRC_DIRS += src/pc/discord # SRC_DIRS += src/pc/discord
#endif #endif
ifeq ($(DISCORD_SDK),1)
SRC_DIRS += src/pc/network/discord
endif
BIN_DIRS := bin bin/$(VERSION) BIN_DIRS := bin bin/$(VERSION)
ULTRA_SRC_DIRS := lib/src lib/src/math ULTRA_SRC_DIRS := lib/src lib/src/math
@ -425,6 +431,7 @@ RPC_LIBS :=
#endif #endif
DISCORD_SDK_LIBS := DISCORD_SDK_LIBS :=
ifeq ($(DISCORD_SDK), 1)
ifeq ($(WINDOWS_BUILD),1) ifeq ($(WINDOWS_BUILD),1)
DISCORD_SDK_LIBS := lib/discordsdk/discord_game_sdk.dll DISCORD_SDK_LIBS := lib/discordsdk/discord_game_sdk.dll
else ifeq ($(OSX_BUILD),1) else ifeq ($(OSX_BUILD),1)
@ -433,6 +440,7 @@ else ifeq ($(OSX_BUILD),1)
else else
DISCORD_SDK_LIBS := lib/discordsdk/libdiscord_game_sdk.so DISCORD_SDK_LIBS := lib/discordsdk/libdiscord_game_sdk.so
endif endif
endif
# Automatic dependency files # Automatic dependency files
DEP_FILES := $(O_FILES:.o=.d) $(ULTRA_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d DEP_FILES := $(O_FILES:.o=.d) $(ULTRA_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
@ -460,19 +468,18 @@ else
CXX := emcc CXX := emcc
endif endif
LD := $(CXX)
#ifeq ($(DISCORDRPC),1) #ifeq ($(DISCORDRPC),1)
# LD := $(CXX) ifeq ($(DISCORD_SDK),1)
#else ifeq ($(WINDOWS_BUILD),1) LD := $(CXX)
# ifeq ($(CROSS),i686-w64-mingw32.static-) # fixes compilation in MXE on Linux and WSL else ifeq ($(WINDOWS_BUILD),1)
# LD := $(CC) ifeq ($(CROSS),i686-w64-mingw32.static-) # fixes compilation in MXE on Linux and WSL
# else ifeq ($(CROSS),x86_64-w64-mingw32.static-) LD := $(CC)
# LD := $(CC) else ifeq ($(CROSS),x86_64-w64-mingw32.static-)
# else LD := $(CC)
# LD := $(CXX) else
# endif LD := $(CXX)
#endif endif
endif
ifeq ($(WINDOWS_BUILD),1) # fixes compilation in MXE on Linux and WSL ifeq ($(WINDOWS_BUILD),1) # fixes compilation in MXE on Linux and WSL
CPP := cpp -P CPP := cpp -P
@ -621,6 +628,12 @@ endif
# CFLAGS += -DDISCORDRPC # CFLAGS += -DDISCORDRPC
#endif #endif
# Check for Discord SDK option
ifeq ($(DISCORD_SDK),1)
CC_CHECK += -DDISCORD_SDK
CFLAGS += -DDISCORD_SDK
endif
# Check for texture fix option # Check for texture fix option
ifeq ($(TEXTURE_FIX),1) ifeq ($(TEXTURE_FIX),1)
CC_CHECK += -DTEXTURE_FIX CC_CHECK += -DTEXTURE_FIX
@ -692,10 +705,14 @@ endif
ifeq ($(WINDOWS_BUILD),1) ifeq ($(WINDOWS_BUILD),1)
LDFLAGS += -L"ws2_32" -lwsock32 LDFLAGS += -L"ws2_32" -lwsock32
ifeq ($(DISCORD_SDK),1)
LDFLAGS += -Wl,-Bdynamic -ldiscord_game_sdk -Wl,-Bstatic LDFLAGS += -Wl,-Bdynamic -ldiscord_game_sdk -Wl,-Bstatic
endif
else else
ifeq ($(DISCORD_SDK),1)
LDFLAGS += -ldiscord_game_sdk -Wl,-rpath . -Wl,-rpath lib/discordsdk LDFLAGS += -ldiscord_game_sdk -Wl,-rpath . -Wl,-rpath lib/discordsdk
endif endif
endif
# End of LDFLAGS # End of LDFLAGS

View file

@ -72,17 +72,23 @@ static void host_menu_draw_strings(void) {
} }
static void host_menu_do_host(void) { static void host_menu_do_host(void) {
#ifndef DISCORD_SDK
configNetworkSystem = 1;
#endif
if (configNetworkSystem == 0) { if (configNetworkSystem == 0) {
network_set_system(NS_DISCORD); network_set_system(NS_DISCORD);
} } else {
else {
network_set_system(NS_SOCKET); network_set_system(NS_SOCKET);
} }
custom_menu_close_system(); custom_menu_close_system();
} }
static void host_menu_setting_network_system(void) { static void host_menu_setting_network_system(void) {
#ifdef DISCORD_SDK
configNetworkSystem = (configNetworkSystem == 0) ? 1 : 0; configNetworkSystem = (configNetworkSystem == 0) ? 1 : 0;
#else
configNetworkSystem = 1;
#endif
} }
static void host_menu_setting_interaction(void) { static void host_menu_setting_interaction(void) {

View file

@ -321,6 +321,10 @@ void configfile_load(const char *filename) {
} }
fs_close(file); fs_close(file);
#ifndef DISCORD_SDK
configNetworkSystem = 1;
#endif
} }
// Writes the config file to 'filename' // Writes the config file to 'filename'

View file

@ -3,7 +3,9 @@
#include "object_fields.h" #include "object_fields.h"
#include "object_constants.h" #include "object_constants.h"
#include "socket/socket.h" #include "socket/socket.h"
#ifdef DISCORD_SDK
#include "discord/discord.h" #include "discord/discord.h"
#endif
#include "pc/configfile.h" #include "pc/configfile.h"
#include "pc/debuglog.h" #include "pc/debuglog.h"
@ -11,7 +13,11 @@
extern s16 sCurrPlayMode; extern s16 sCurrPlayMode;
enum NetworkType gNetworkType = NT_NONE; enum NetworkType gNetworkType = NT_NONE;
#ifdef DISCORD_SDK
struct NetworkSystem* gNetworkSystem = &gNetworkSystemDiscord; struct NetworkSystem* gNetworkSystem = &gNetworkSystemDiscord;
#else
struct NetworkSystem* gNetworkSystem = &gNetworkSystemSocket;
#endif
#define LOADING_LEVEL_THRESHOLD 10 #define LOADING_LEVEL_THRESHOLD 10
u8 networkLoadingLevel = 0; u8 networkLoadingLevel = 0;
@ -27,7 +33,9 @@ struct ServerSettings gServerSettings = {
void network_set_system(enum NetworkSystemType nsType) { void network_set_system(enum NetworkSystemType nsType) {
switch (nsType) { switch (nsType) {
case NS_SOCKET: gNetworkSystem = &gNetworkSystemSocket; break; case NS_SOCKET: gNetworkSystem = &gNetworkSystemSocket; break;
#ifdef DISCORD_SDK
case NS_DISCORD: gNetworkSystem = &gNetworkSystemDiscord; break; case NS_DISCORD: gNetworkSystem = &gNetworkSystemDiscord; break;
#endif
default: LOG_ERROR("Unknown network system: %d", nsType); default: LOG_ERROR("Unknown network system: %d", nsType);
} }
} }

View file

@ -10,6 +10,7 @@
#define NETWORK_PLAYER_TIMEOUT 10 #define NETWORK_PLAYER_TIMEOUT 10
enum NetworkPlayerType { enum NetworkPlayerType {
NPT_UNKNOWN,
NPT_LOCAL, NPT_LOCAL,
NPT_SERVER, NPT_SERVER,
NPT_CLIENT, NPT_CLIENT,