disable net
This commit is contained in:
parent
41fc648397
commit
f1e2b9b192
|
@ -41,6 +41,7 @@ option(DETHRACE_WERROR "Treat warnings as errors")
|
|||
option(DETHRACE_FIX_BUGS "Fix Dethrace bugs" ON)
|
||||
option(DETHRACE_3DFX_PATCH "Include changes from VOODOO2C.EXE" ON)
|
||||
option(DETHRACE_SOUND_ENABLED "Include audio support" ON)
|
||||
option(DETHRACE_NET_ENABLED "Include net support" ON)
|
||||
|
||||
function(add_compile_flag_if_supported TARGET FLAG)
|
||||
cmake_parse_arguments(ARGS "" "" "LANGUAGES" ${ARGN})
|
||||
|
|
|
@ -5,12 +5,12 @@ option(DETHRACE_REPLAY_DEBUG "Debug replay" OFF)
|
|||
|
||||
target_include_directories(dethrace_obj
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
common
|
||||
pd
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
common
|
||||
pd
|
||||
)
|
||||
|
||||
if (DETHRACE_ASAN)
|
||||
if(DETHRACE_ASAN)
|
||||
target_compile_options(dethrace_obj PUBLIC -fsanitize=address)
|
||||
target_link_options(dethrace_obj PUBLIC -fsanitize=address)
|
||||
endif()
|
||||
|
@ -36,10 +36,13 @@ else()
|
|||
-Wstrict-prototypes
|
||||
)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(dethrace_obj PRIVATE INSIDE_DETHRACE)
|
||||
|
||||
if(DETHRACE_FIX_BUGS)
|
||||
target_compile_definitions(dethrace_obj PRIVATE DETHRACE_FIX_BUGS)
|
||||
endif()
|
||||
|
||||
if(DETHRACE_3DFX_PATCH)
|
||||
target_compile_definitions(dethrace_obj PRIVATE DETHRACE_3DFX_PATCH)
|
||||
endif()
|
||||
|
@ -162,8 +165,6 @@ target_sources(dethrace_obj PRIVATE
|
|||
pd/net.h
|
||||
pd/sys.h
|
||||
|
||||
# dethrace-added cross platform sys and network implementation
|
||||
pc-all/allnet.c
|
||||
pc-all/allsys.c
|
||||
|
||||
# original win95 sys and network
|
||||
|
@ -172,10 +173,17 @@ target_sources(dethrace_obj PRIVATE
|
|||
# pc-win95/ssdx.h
|
||||
|
||||
# original dos sys and network
|
||||
#pc-dos/dosnet.c
|
||||
# pc-dos/dosnet.c
|
||||
# pc-dos/dossys.c
|
||||
)
|
||||
|
||||
if(DETHRACE_NET_ENABLED)
|
||||
# dethrace-added cross platform sys and network implementation
|
||||
target_sources(dethrace_obj PRIVATE pc-all/allnet.c)
|
||||
else()
|
||||
target_sources(dethrace_obj PRIVATE pc-none/nonet.c)
|
||||
endif()
|
||||
|
||||
# Create our main game binary.
|
||||
add_executable(dethrace
|
||||
WIN32
|
||||
|
@ -200,6 +208,7 @@ if(DETHRACE_IDE_ROOT_DIR)
|
|||
VS_DEBUGGER_ENVIRONMENT "DETHRACE_ROOT_DIR=${DETHRACE_IDE_ROOT_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(DETHRACE_IDE_ARGUMENTS)
|
||||
message(STATUS "before: ${DETHRACE_IDE_ARGUMENTS}")
|
||||
separate_arguments(DETHRACE_IDE_ARGUMENTS NATIVE_COMMAND "${DETHRACE_IDE_ARGUMENTS}")
|
||||
|
@ -241,7 +250,6 @@ if(DETHRACE_INSTALL)
|
|||
"
|
||||
COMPONENT RUNTIME
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
|
@ -249,12 +257,14 @@ if(DETHRACE_INSTALL)
|
|||
DESTINATION "."
|
||||
OPTIONAL
|
||||
)
|
||||
|
||||
if(DETHRACE_PLATFORM_SDL_DYNAMIC)
|
||||
if(DETHRACE_PLATFORM_SDL1)
|
||||
get_filename_component(sdl1_lib_dir "${SDL_LIBRARY}" DIRECTORY)
|
||||
get_filename_component(sdl1_root_dir "${SDL_LIBRARY}" PATH)
|
||||
set(sdl1_bin_dir "${sdl1_root_dir}/bin" PATH)
|
||||
find_file(SDL1DLL_PATH NAMES "SDL.dll" PATHS ${sdl1_lib_dir} ${sdl1_root_dir} PATH_SUFFIXES "bin" REQUIRED)
|
||||
|
||||
if(SDL1DLL_PATH)
|
||||
install(FILES "${SDL1DLL_PATH}"
|
||||
DESTINATION "."
|
||||
|
@ -262,6 +272,7 @@ if(DETHRACE_INSTALL)
|
|||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(DETHRACE_PLATFORM_SDL2)
|
||||
install(FILES "$<TARGET_FILE:SDL2::SDL2>"
|
||||
DESTINATION "."
|
||||
|
|
|
@ -1,38 +1,36 @@
|
|||
#ifndef WIN95_NET_TYPES_H
|
||||
#define WIN95_NET_TYPES_H
|
||||
#ifndef PC_ALL_NET_TYPES_H
|
||||
#define PC_ALL_NET_TYPES_H
|
||||
|
||||
// #include "dr_types.h"
|
||||
#include "harness/win95_polyfill.h"
|
||||
#include "harness/winsock.h"
|
||||
#include <dr_types.h>
|
||||
|
||||
// dethrace: have switched out IPX implementation for IP
|
||||
// This file added dethrace
|
||||
// - have switched out IPX implementation for IP
|
||||
// - cross-platform instead of per-platform implementation
|
||||
|
||||
// cannot be a regular sockaddr_in because it is transmitted between OS's
|
||||
typedef struct tCopyable_sockaddr_in {
|
||||
#if _MSC_VER == 1020
|
||||
long address;
|
||||
long port;
|
||||
#else
|
||||
uint64_t address;
|
||||
uint32_t port;
|
||||
#endif
|
||||
|
||||
} tCopyable_sockaddr_in;
|
||||
|
||||
typedef struct tPD_net_player_info {
|
||||
// struct sockaddr_ipx addr_ipx;
|
||||
// cannot be a regular sockaddr_in because it is transmitted between machines
|
||||
// cannot be a regular sockaddr_in because it is transmitted between OS's
|
||||
tCopyable_sockaddr_in addr_in;
|
||||
// added by dethrace
|
||||
// tU32 pad0;
|
||||
|
||||
} tPD_net_player_info;
|
||||
|
||||
// has to match `tPD_net_player_info`
|
||||
// has to match `tPD_net_player_info` - see `PDNetGetNextJoinGame`
|
||||
typedef struct tPD_net_game_info {
|
||||
// struct sockaddr_ipx addr_ipx;
|
||||
// cannot be a regular sockaddr_in because it is transmitted between machines
|
||||
// cannot be a regular sockaddr_in because it is transmitted between OS's
|
||||
tCopyable_sockaddr_in addr_in;
|
||||
|
||||
tU32 last_response;
|
||||
uint32_t last_response;
|
||||
} tPD_net_game_info;
|
||||
|
||||
// typedef struct tIPX_netnum {
|
||||
// unsigned char bNetwork[4];
|
||||
// } tIPX_netnum;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,219 @@
|
|||
#include "pd/net.h"
|
||||
|
||||
#include "brender.h"
|
||||
#include "dr_types.h"
|
||||
#include "errors.h"
|
||||
#include "globvrpb.h"
|
||||
#include "harness/config.h"
|
||||
#include "harness/hooks.h"
|
||||
#include "harness/os.h"
|
||||
#include "harness/trace.h"
|
||||
#include "net_types.h"
|
||||
#include "network.h"
|
||||
#include "pd/net.h"
|
||||
#include "pd/sys.h"
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
// IDA: void __cdecl ClearupPDNetworkStuff()
|
||||
void ClearupPDNetworkStuff(void) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: void __usercall MATTMessageCheck(char *pFunction_name@<EAX>, tNet_message *pMessage@<EDX>, int pAlleged_size@<EBX>)
|
||||
void MATTMessageCheck(char* pFunction_name, tNet_message* pMessage, int pAlleged_size) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __usercall GetProfileText@<EAX>(char *pDest@<EAX>, int pDest_len@<EDX>, char *pFname@<EBX>, char *pKeyname@<ECX>)
|
||||
int GetProfileText(char* pDest, int pDest_len, char* pFname, char* pKeyname) {
|
||||
FILE* fp;
|
||||
char in_buf[256];
|
||||
int i;
|
||||
int j;
|
||||
int len;
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __cdecl GetSocketNumberFromProfileFile()
|
||||
int GetSocketNumberFromProfileFile(void) {
|
||||
char str[256];
|
||||
int sscanf_res;
|
||||
tU32 socknum;
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __usercall GetMessageTypeFromMessage@<EAX>(char *pMessage_str@<EAX>)
|
||||
int GetMessageTypeFromMessage(char* pMessage_str) {
|
||||
char* real_msg;
|
||||
int msg_type_int;
|
||||
|
||||
return 999;
|
||||
}
|
||||
|
||||
// IDA: void __usercall MakeMessageToSend(int pMessage_type@<EAX>)
|
||||
void MakeMessageToSend(int pMessage_type) {
|
||||
}
|
||||
|
||||
// IDA: int __cdecl ReceiveHostResponses()
|
||||
int ReceiveHostResponses(void) {
|
||||
char str[256];
|
||||
int i;
|
||||
int already_registered;
|
||||
|
||||
char addr_string[32];
|
||||
unsigned int sa_len;
|
||||
int error;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: int __cdecl BroadcastMessage()
|
||||
int BroadcastMessage(void) {
|
||||
int i;
|
||||
int errors;
|
||||
char broadcast_addr_string[32];
|
||||
char* real_msg;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: int __cdecl PDNetInitialise()
|
||||
int PDNetInitialise(void) {
|
||||
tU32 timenow;
|
||||
char profile_string[32];
|
||||
char key_name[32];
|
||||
int sscanf_res;
|
||||
int i;
|
||||
tU32 netnum;
|
||||
char str[256];
|
||||
int mess_num;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: int __cdecl PDNetShutdown()
|
||||
int PDNetShutdown(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: void __cdecl PDNetStartProducingJoinList()
|
||||
void PDNetStartProducingJoinList(void) {
|
||||
}
|
||||
|
||||
// IDA: void __cdecl PDNetEndJoinList()
|
||||
void PDNetEndJoinList(void) {
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetGetNextJoinGame@<EAX>(tNet_game_details *pGame@<EAX>, int pIndex@<EDX>)
|
||||
int PDNetGetNextJoinGame(tNet_game_details* pGame, int pIndex) {
|
||||
static tU32 next_broadcast_time = 0;
|
||||
int i;
|
||||
int j;
|
||||
int number_of_hosts_has_changed;
|
||||
char str[256];
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetDisposeGameDetails(tNet_game_details *pDetails@<EAX>)
|
||||
void PDNetDisposeGameDetails(tNet_game_details* pDetails) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetHostGame@<EAX>(tNet_game_details *pDetails@<EAX>, char *pHost_name@<EDX>, void **pHost_address@<EBX>)
|
||||
int PDNetHostGame(tNet_game_details* pDetails, char* pHost_name, void** pHost_address) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetJoinGame@<EAX>(tNet_game_details *pDetails@<EAX>, char *pPlayer_name@<EDX>)
|
||||
int PDNetJoinGame(tNet_game_details* pDetails, char* pPlayer_name) {
|
||||
dr_dprintf("PDNetJoinGame()");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetLeaveGame(tNet_game_details *pDetails@<EAX>)
|
||||
void PDNetLeaveGame(tNet_game_details* pDetails) {
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetHostFinishGame(tNet_game_details *pDetails@<EAX>)
|
||||
void PDNetHostFinishGame(tNet_game_details* pDetails) {
|
||||
}
|
||||
|
||||
// IDA: tU32 __usercall PDNetExtractGameID@<EAX>(tNet_game_details *pDetails@<EAX>)
|
||||
tU32 PDNetExtractGameID(tNet_game_details* pDetails) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: tPlayer_ID __usercall PDNetExtractPlayerID@<EAX>(tNet_game_details *pDetails@<EAX>)
|
||||
tPlayer_ID PDNetExtractPlayerID(tNet_game_details* pDetails) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetObtainSystemUserName(char *pName@<EAX>, int pMax_length@<EDX>)
|
||||
void PDNetObtainSystemUserName(char* pName, int pMax_length) {
|
||||
int result;
|
||||
char* found;
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetSendMessageToPlayer@<EAX>(tNet_game_details *pDetails@<EAX>, tNet_message *pMessage@<EDX>, tPlayer_ID pPlayer@<EBX>)
|
||||
int PDNetSendMessageToPlayer(tNet_game_details* pDetails, tNet_message* pMessage, tPlayer_ID pPlayer) {
|
||||
char str[256];
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetSendMessageToAllPlayers@<EAX>(tNet_game_details *pDetails@<EAX>, tNet_message *pMessage@<EDX>)
|
||||
int PDNetSendMessageToAllPlayers(tNet_game_details* pDetails, tNet_message* pMessage) {
|
||||
char str[256];
|
||||
int i;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: tNet_message* __usercall PDNetGetNextMessage@<EAX>(tNet_game_details *pDetails@<EAX>, void **pSender_address@<EDX>)
|
||||
tNet_message* PDNetGetNextMessage(tNet_game_details* pDetails, void** pSender_address) {
|
||||
char* receive_buffer;
|
||||
char str[256];
|
||||
int msg_type;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: tNet_message* __usercall PDNetAllocateMessage@<EAX>(tU32 pSize@<EAX>, tS32 pSize_decider@<EDX>)
|
||||
tNet_message* PDNetAllocateMessage(tU32 pSize, tS32 pSize_decider) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetDisposeMessage(tNet_game_details *pDetails@<EAX>, tNet_message *pMessage@<EDX>)
|
||||
void PDNetDisposeMessage(tNet_game_details* pDetails, tNet_message* pMessage) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetSetPlayerSystemInfo(tNet_game_player_info *pPlayer@<EAX>, void *pSender_address@<EDX>)
|
||||
void PDNetSetPlayerSystemInfo(tNet_game_player_info* pPlayer, void* pSender_address) {
|
||||
}
|
||||
|
||||
// IDA: void __usercall PDNetDisposePlayer(tNet_game_player_info *pPlayer@<EAX>)
|
||||
void PDNetDisposePlayer(tNet_game_player_info* pPlayer) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetSendMessageToAddress@<EAX>(tNet_game_details *pDetails@<EAX>, tNet_message *pMessage@<EDX>, void *pAddress@<EBX>)
|
||||
int PDNetSendMessageToAddress(tNet_game_details* pDetails, tNet_message* pMessage, void* pAddress) {
|
||||
char str[256];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IDA: int __usercall PDNetInitClient@<EAX>(tNet_game_details *pDetails@<EAX>)
|
||||
int PDNetInitClient(tNet_game_details* pDetails) {
|
||||
NOT_IMPLEMENTED();
|
||||
}
|
||||
|
||||
// IDA: int __cdecl PDNetGetHeaderSize()
|
||||
int PDNetGetHeaderSize(void) {
|
||||
return 0;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -103,17 +103,23 @@ if(DETHRACE_PLATFORM_SDL_DYNAMIC)
|
|||
target_link_libraries(harness PRIVATE ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(!DETHRACE_NET_ENABLED)
|
||||
target_sources(harness PRIVATE
|
||||
os/windows.c
|
||||
)
|
||||
target_link_libraries(harness PRIVATE dbghelp ws2_32)
|
||||
elseif(APPLE)
|
||||
target_sources(harness PRIVATE
|
||||
os/macos.c
|
||||
os/null.c
|
||||
)
|
||||
else()
|
||||
target_sources(harness PRIVATE
|
||||
os/linux.c
|
||||
)
|
||||
if(WIN32)
|
||||
target_sources(harness PRIVATE
|
||||
os/windows.c
|
||||
)
|
||||
target_link_libraries(harness PRIVATE dbghelp ws2_32)
|
||||
elseif(APPLE)
|
||||
target_sources(harness PRIVATE
|
||||
os/macos.c
|
||||
)
|
||||
else()
|
||||
target_sources(harness PRIVATE
|
||||
os/linux.c
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
void OS_InstallSignalHandler(char* program_name) {
|
||||
}
|
||||
|
||||
char* OS_GetFirstFileInDirectory(char* path) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Required: continue directory iteration. If no more files, return NULL
|
||||
char* OS_GetNextFileInDirectory(void) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
FILE* OS_fopen(const char* pathname, const char* mode) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
size_t OS_ConsoleReadPassword(char* pBuffer, size_t pBufferLen) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
char* OS_Dirname(const char* path) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char* OS_Basename(const char* path) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char* OS_GetWorkingDirectory(char* argv0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int OS_GetAdapterAddress(char* name, void* pSockaddr_in) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int OS_InitSockets(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int OS_GetLastSocketError(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void OS_CleanupSockets(void) {
|
||||
}
|
||||
|
||||
int OS_SetSocketNonBlocking(int socket) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int OS_CloseSocket(int socket) {
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue