Add a common include file.
parent
25ee1dfa52
commit
3e66261ac7
48
dll/base.cpp
48
dll/base.cpp
|
@ -17,13 +17,7 @@
|
||||||
|
|
||||||
#include "base.h"
|
#include "base.h"
|
||||||
|
|
||||||
#ifdef STEAM_WIN32
|
#ifdef __WINDOWS__
|
||||||
#include <windows.h>
|
|
||||||
#include <direct.h>
|
|
||||||
|
|
||||||
#define SystemFunction036 NTAPI SystemFunction036
|
|
||||||
#include <ntsecapi.h>
|
|
||||||
#undef SystemFunction036
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
randombytes(char * const buf, const size_t size)
|
randombytes(char * const buf, const size_t size)
|
||||||
|
@ -46,11 +40,6 @@ std::string get_env_variable(std::string name)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
static int fd = -1;
|
static int fd = -1;
|
||||||
|
|
||||||
static void randombytes(char *buf, size_t size)
|
static void randombytes(char *buf, size_t size)
|
||||||
|
@ -149,9 +138,19 @@ CSteamID generate_steam_id_lobby()
|
||||||
return CSteamID(generate_account_id(), k_unSteamUserDefaultInstance | k_EChatInstanceFlagLobby, k_EUniversePublic, k_EAccountTypeChat);
|
return CSteamID(generate_account_id(), k_unSteamUserDefaultInstance | k_EChatInstanceFlagLobby, k_EUniversePublic, k_EAccountTypeChat);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef STEAM_WIN32
|
bool check_timedout(std::chrono::high_resolution_clock::time_point old, double timeout)
|
||||||
#include <sys/types.h>
|
{
|
||||||
#include <dirent.h>
|
if (timeout == 0.0) return true;
|
||||||
|
|
||||||
|
std::chrono::high_resolution_clock::time_point now = std::chrono::high_resolution_clock::now();
|
||||||
|
if (std::chrono::duration_cast<std::chrono::duration<double>>(now - old).count() > timeout) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __LINUX__
|
||||||
std::string get_lib_path() {
|
std::string get_lib_path() {
|
||||||
std::string dir = "/proc/self/map_files";
|
std::string dir = "/proc/self/map_files";
|
||||||
DIR *dp;
|
DIR *dp;
|
||||||
|
@ -194,7 +193,7 @@ std::string get_lib_path() {
|
||||||
std::string get_full_lib_path()
|
std::string get_full_lib_path()
|
||||||
{
|
{
|
||||||
std::string program_path;
|
std::string program_path;
|
||||||
#if defined(STEAM_WIN32)
|
#if defined(__WINDOWS__)
|
||||||
char DllPath[MAX_PATH] = {0};
|
char DllPath[MAX_PATH] = {0};
|
||||||
GetModuleFileName((HINSTANCE)&__ImageBase, DllPath, _countof(DllPath));
|
GetModuleFileName((HINSTANCE)&__ImageBase, DllPath, _countof(DllPath));
|
||||||
program_path = DllPath;
|
program_path = DllPath;
|
||||||
|
@ -474,8 +473,7 @@ void Auth_Ticket_Manager::Callback(Common_Message *msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef EMU_EXPERIMENTAL_BUILD
|
#ifdef EMU_EXPERIMENTAL_BUILD
|
||||||
#ifdef STEAM_WIN32
|
#ifdef __WINDOWS__
|
||||||
#include "../detours/detours.h"
|
|
||||||
|
|
||||||
struct ips_test {
|
struct ips_test {
|
||||||
uint32_t ip_from;
|
uint32_t ip_from;
|
||||||
|
@ -596,13 +594,6 @@ inline bool file_exists (const std::string& name) {
|
||||||
return (stat (name.c_str(), &buffer) == 0);
|
return (stat (name.c_str(), &buffer) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DETOURS_64BIT
|
|
||||||
#define DLL_NAME "steam_api64.dll"
|
|
||||||
#else
|
|
||||||
#define DLL_NAME "steam_api.dll"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
HMODULE (WINAPI *Real_GetModuleHandleA)(LPCSTR lpModuleName) = GetModuleHandleA;
|
HMODULE (WINAPI *Real_GetModuleHandleA)(LPCSTR lpModuleName) = GetModuleHandleA;
|
||||||
HMODULE WINAPI Mine_GetModuleHandleA(LPCSTR lpModuleName)
|
HMODULE WINAPI Mine_GetModuleHandleA(LPCSTR lpModuleName)
|
||||||
{
|
{
|
||||||
|
@ -648,12 +639,6 @@ static void load_dll()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DETOURS_64BIT
|
|
||||||
#define LUMA_CEG_DLL_NAME "LumaCEG_Plugin_x64.dll"
|
|
||||||
#else
|
|
||||||
#define LUMA_CEG_DLL_NAME "LumaCEG_Plugin_x86.dll"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void load_lumaCEG()
|
static void load_lumaCEG()
|
||||||
{
|
{
|
||||||
std::string path = get_full_program_path();
|
std::string path = get_full_program_path();
|
||||||
|
@ -700,7 +685,6 @@ bool crack_SteamAPI_Init()
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#include <winhttp.h>
|
|
||||||
|
|
||||||
HINTERNET (WINAPI *Real_WinHttpConnect)(
|
HINTERNET (WINAPI *Real_WinHttpConnect)(
|
||||||
IN HINTERNET hSession,
|
IN HINTERNET hSession,
|
||||||
|
|
68
dll/base.h
68
dll/base.h
|
@ -18,78 +18,14 @@
|
||||||
#ifndef BASE_INCLUDE
|
#ifndef BASE_INCLUDE
|
||||||
#define BASE_INCLUDE
|
#define BASE_INCLUDE
|
||||||
|
|
||||||
#if defined(WIN64) || defined(_WIN64) || defined(__MINGW64__)
|
#include "common_includes.h"
|
||||||
#define __WINDOWS_64__
|
|
||||||
#elif defined(WIN32) || defined(_WIN32) || defined(__MINGW32__)
|
|
||||||
#define __WINDOWS_32__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__WINDOWS_32__) || defined(__WINDOWS_64__)
|
|
||||||
#define __WINDOWS__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__linux__) || defined(linux)
|
|
||||||
#if defined(__x86_64__)
|
|
||||||
#define __LINUX_64__
|
|
||||||
#else
|
|
||||||
#define __LINUX_32__
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__LINUX_32__) || defined(__LINUX_64__)
|
|
||||||
#define __LINUX__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__WINDOWS__)
|
|
||||||
#define STEAM_WIN32
|
|
||||||
#ifndef NOMINMAX
|
|
||||||
# define NOMINMAX
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define STEAM_API_EXPORTS
|
|
||||||
#include "../sdk_includes/steam_gameserver.h"
|
|
||||||
#include "../sdk_includes/steamdatagram_tickets.h"
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <vector>
|
|
||||||
#include <map>
|
|
||||||
#include <mutex>
|
|
||||||
|
|
||||||
//#define PRINT_DEBUG(...) {FILE *t = fopen("STEAM_LOG.txt", "a"); fprintf(t, __VA_ARGS__); fclose(t);}
|
|
||||||
#ifdef STEAM_WIN32
|
|
||||||
#include <winsock2.h>
|
|
||||||
#include <windows.h>
|
|
||||||
#include <ws2tcpip.h>
|
|
||||||
#include <processthreadsapi.h>
|
|
||||||
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
|
|
||||||
#define PATH_SEPARATOR "\\"
|
|
||||||
#ifndef EMU_RELEASE_BUILD
|
|
||||||
#define PRINT_DEBUG(a, ...) do {FILE *t = fopen("STEAM_LOG.txt", "a"); fprintf(t, "%u " a, GetCurrentThreadId(), __VA_ARGS__); fclose(t); WSASetLastError(0);} while (0)
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
#define PATH_SEPARATOR "/"
|
|
||||||
#ifndef EMU_RELEASE_BUILD
|
|
||||||
#define PRINT_DEBUG(...) {FILE *t = fopen("STEAM_LOG.txt", "a"); fprintf(t, __VA_ARGS__); fclose(t);}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
//#define PRINT_DEBUG(...) fprintf(stdout, __VA_ARGS__)
|
|
||||||
#ifdef EMU_RELEASE_BUILD
|
|
||||||
#define PRINT_DEBUG(...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "settings.h"
|
|
||||||
#include "local_storage.h"
|
|
||||||
#include "network.h"
|
|
||||||
|
|
||||||
#include "defines.h"
|
|
||||||
|
|
||||||
#define PUSH_BACK_IF_NOT_IN(vector, element) { if(std::find(vector.begin(), vector.end(), element) == vector.end()) vector.push_back(element); }
|
#define PUSH_BACK_IF_NOT_IN(vector, element) { if(std::find(vector.begin(), vector.end(), element) == vector.end()) vector.push_back(element); }
|
||||||
|
|
||||||
extern std::recursive_mutex global_mutex;
|
extern std::recursive_mutex global_mutex;
|
||||||
|
|
||||||
std::string get_env_variable(std::string name);
|
std::string get_env_variable(std::string name);
|
||||||
|
bool check_timedout(std::chrono::high_resolution_clock::time_point old, double timeout);
|
||||||
|
|
||||||
class CCallbackMgr
|
class CCallbackMgr
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,172 @@
|
||||||
|
/* Copyright (C) 2019 Mr Goldberg
|
||||||
|
This file is part of the Goldberg Emulator
|
||||||
|
|
||||||
|
The Goldberg Emulator is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 3 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The Goldberg Emulator is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the Goldberg Emulator; if not, see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#ifndef __INCLUDED_COMMON_INCLUDES__
|
||||||
|
#define __INCLUDED_COMMON_INCLUDES__
|
||||||
|
|
||||||
|
#if defined(WIN64) || defined(_WIN64) || defined(__MINGW64__)
|
||||||
|
#define __WINDOWS_64__
|
||||||
|
#elif defined(WIN32) || defined(_WIN32) || defined(__MINGW32__)
|
||||||
|
#define __WINDOWS_32__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__WINDOWS_32__) || defined(__WINDOWS_64__)
|
||||||
|
#define __WINDOWS__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || defined(linux)
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
#define __LINUX_64__
|
||||||
|
#else
|
||||||
|
#define __LINUX_32__
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LINUX_32__) || defined(__LINUX_64__)
|
||||||
|
#define __LINUX__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__WINDOWS__)
|
||||||
|
#define STEAM_WIN32
|
||||||
|
#ifndef NOMINMAX
|
||||||
|
#define NOMINMAX
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STEAM_API_EXPORTS
|
||||||
|
|
||||||
|
#if defined(__WINDOWS__)
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#include <processthreadsapi.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <direct.h>
|
||||||
|
#include <iphlpapi.h> // Include winsock2 before this, or winsock2 iphlpapi will be unavailable
|
||||||
|
#include <shlobj.h>
|
||||||
|
|
||||||
|
#define MSG_NOSIGNAL 0
|
||||||
|
|
||||||
|
#define SystemFunction036 NTAPI SystemFunction036
|
||||||
|
#include <ntsecapi.h>
|
||||||
|
#undef SystemFunction036
|
||||||
|
|
||||||
|
#ifndef EMU_RELEASE_BUILD
|
||||||
|
#define PRINT_DEBUG(a, ...) do {FILE *t = fopen("STEAM_LOG.txt", "a"); fprintf(t, "%u " a, GetCurrentThreadId(), __VA_ARGS__); fclose(t); WSASetLastError(0);} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
|
||||||
|
#define PATH_SEPARATOR "\\"
|
||||||
|
|
||||||
|
#ifdef EMU_EXPERIMENTAL_BUILD
|
||||||
|
#include <winhttp.h>
|
||||||
|
|
||||||
|
#include "../detours/detours.h"
|
||||||
|
|
||||||
|
#ifdef DETOURS_64BIT
|
||||||
|
#define LUMA_CEG_DLL_NAME "LumaCEG_Plugin_x64.dll"
|
||||||
|
#define DLL_NAME "steam_api64.dll"
|
||||||
|
#else
|
||||||
|
#define LUMA_CEG_DLL_NAME "LumaCEG_Plugin_x86.dll"
|
||||||
|
#define DLL_NAME "steam_api.dll"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(__LINUX__)
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/mount.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/statvfs.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <linux/netdevice.h>
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <dlfcn.h>
|
||||||
|
#include <utime.h>
|
||||||
|
|
||||||
|
#define PATH_MAX_STRING_SIZE 512
|
||||||
|
|
||||||
|
#ifndef EMU_RELEASE_BUILD
|
||||||
|
#define PRINT_DEBUG(...) {FILE *t = fopen("STEAM_LOG.txt", "a"); fprintf(t, __VA_ARGS__); fclose(t);}
|
||||||
|
#endif
|
||||||
|
#define PATH_SEPARATOR "/"
|
||||||
|
#endif
|
||||||
|
//#define PRINT_DEBUG(...) fprintf(stdout, __VA_ARGS__)
|
||||||
|
#ifdef EMU_RELEASE_BUILD
|
||||||
|
#define PRINT_DEBUG(...)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C/C++ includes
|
||||||
|
#include <cstdint>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <string>
|
||||||
|
#include <chrono>
|
||||||
|
#include <cctype>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <fstream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <iterator>
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <map>
|
||||||
|
#include <set>
|
||||||
|
#include <queue>
|
||||||
|
#include <list>
|
||||||
|
|
||||||
|
#include <thread>
|
||||||
|
#include <mutex>
|
||||||
|
#include <condition_variable>
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// Other libs includes
|
||||||
|
#include "../json/json.hpp"
|
||||||
|
#include "../controller/gamepad.h"
|
||||||
|
|
||||||
|
// Steamsdk includes
|
||||||
|
#include "../sdk_includes/steam_api.h"
|
||||||
|
#include "../sdk_includes/steam_gameserver.h"
|
||||||
|
#include "../sdk_includes/steamdatagram_tickets.h"
|
||||||
|
|
||||||
|
// Emulator includes
|
||||||
|
#include "net.pb.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "local_storage.h"
|
||||||
|
#include "network.h"
|
||||||
|
|
||||||
|
// Emulator defines
|
||||||
|
#define CLIENT_HSTEAMUSER 1
|
||||||
|
#define SERVER_HSTEAMUSER 1
|
||||||
|
|
||||||
|
#define DEFAULT_NAME "Goldberg"
|
||||||
|
#define PROGRAM_NAME "Goldberg SteamEmu"
|
||||||
|
#define DEFAULT_LANGUAGE "english"
|
||||||
|
|
||||||
|
#define LOBBY_CONNECT_APPID ((uint32)-2)
|
||||||
|
|
||||||
|
#endif//__INCLUDED_COMMON_INCLUDES__
|
|
@ -1,9 +0,0 @@
|
||||||
//TODO: put these in a common .h
|
|
||||||
#define CLIENT_HSTEAMUSER 1
|
|
||||||
#define SERVER_HSTEAMUSER 1
|
|
||||||
|
|
||||||
#define DEFAULT_NAME "Goldberg"
|
|
||||||
#define PROGRAM_NAME "Goldberg SteamEmu"
|
|
||||||
#define DEFAULT_LANGUAGE "english"
|
|
||||||
|
|
||||||
#define LOBBY_CONNECT_APPID ((uint32)-2)
|
|
|
@ -44,7 +44,6 @@ static char old_inventory[128] = "STEAMINVENTORY_INTERFACE_V001";
|
||||||
static char old_video[128] = "STEAMVIDEO_INTERFACE_V001";
|
static char old_video[128] = "STEAMVIDEO_INTERFACE_V001";
|
||||||
static char old_masterserver_updater[128] = "SteamMasterServerUpdater001";
|
static char old_masterserver_updater[128] = "SteamMasterServerUpdater001";
|
||||||
|
|
||||||
#include <fstream>
|
|
||||||
static void load_old_interface_versions()
|
static void load_old_interface_versions()
|
||||||
{
|
{
|
||||||
static bool loaded = false;
|
static bool loaded = false;
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#define STEAM_API_FUNCTIONS_IMPL
|
#define STEAM_API_FUNCTIONS_IMPL
|
||||||
#include "dll.h"
|
#include "dll.h"
|
||||||
#include "../sdk_includes/steam_api_flat.h"
|
#include "../sdk_includes/steam_api_flat.h"
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
STEAMAPI_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe( ISteamClient* self )
|
STEAMAPI_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe( ISteamClient* self )
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,11 +17,6 @@
|
||||||
|
|
||||||
#include "local_storage.h"
|
#include "local_storage.h"
|
||||||
|
|
||||||
#include <fstream>
|
|
||||||
#include <algorithm>
|
|
||||||
#include <iterator>
|
|
||||||
#include <iomanip>
|
|
||||||
|
|
||||||
struct File_Data {
|
struct File_Data {
|
||||||
std::string name;
|
std::string name;
|
||||||
};
|
};
|
||||||
|
@ -149,8 +144,7 @@ std::vector<std::string> Local_Storage::get_filenames_path(std::string path)
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#if defined(WIN32) || defined(_WIN32)
|
#if defined(__WINDOWS__)
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
static BOOL DirectoryExists(LPCSTR szPath)
|
static BOOL DirectoryExists(LPCSTR szPath)
|
||||||
{
|
{
|
||||||
|
@ -176,11 +170,6 @@ static void create_directory(std::string strPath)
|
||||||
createDirectoryRecursively(strPath);
|
createDirectoryRecursively(strPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
|
|
||||||
static std::vector<struct File_Data> get_filenames(std::string strPath)
|
static std::vector<struct File_Data> get_filenames(std::string strPath)
|
||||||
{
|
{
|
||||||
std::vector<struct File_Data> output;
|
std::vector<struct File_Data> output;
|
||||||
|
@ -251,13 +240,6 @@ static std::vector<struct File_Data> get_filenames_recursive(std::string base_pa
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
|
|
||||||
#define PATH_MAX_STRING_SIZE 512
|
|
||||||
|
|
||||||
/* recursive mkdir */
|
/* recursive mkdir */
|
||||||
static int mkdir_p(const char *dir, const mode_t mode) {
|
static int mkdir_p(const char *dir, const mode_t mode) {
|
||||||
|
@ -397,11 +379,6 @@ std::string Local_Storage::get_game_settings_path()
|
||||||
return get_program_path().append(game_settings_folder).append(PATH_SEPARATOR);
|
return get_program_path().append(game_settings_folder).append(PATH_SEPARATOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(STEAM_WIN32)
|
|
||||||
#include <shlobj.h>
|
|
||||||
#include <sstream>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
std::string Local_Storage::get_user_appdata_path()
|
std::string Local_Storage::get_user_appdata_path()
|
||||||
{
|
{
|
||||||
std::string user_appdata_path = "SAVE";
|
std::string user_appdata_path = "SAVE";
|
||||||
|
|
|
@ -15,14 +15,10 @@
|
||||||
License along with the Goldberg Emulator; if not, see
|
License along with the Goldberg Emulator; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h"
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#ifndef LOCAL_STORAGE_INCLUDE
|
#ifndef LOCAL_STORAGE_INCLUDE
|
||||||
#define LOCAL_STORAGE_INCLUDE
|
#define LOCAL_STORAGE_INCLUDE
|
||||||
|
|
||||||
#include <string>
|
#include "base.h"
|
||||||
#include "../json/json.hpp"
|
|
||||||
|
|
||||||
#define MAX_FILENAME_LENGTH 300
|
#define MAX_FILENAME_LENGTH 300
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ message Low_Level {
|
||||||
Types type = 1;
|
Types type = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Network {
|
message Network_pb {
|
||||||
uint32 channel = 1;
|
uint32 channel = 1;
|
||||||
bytes data = 2;
|
bytes data = 2;
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ message Common_Message {
|
||||||
Low_Level low_level = 4;
|
Low_Level low_level = 4;
|
||||||
Lobby lobby = 5;
|
Lobby lobby = 5;
|
||||||
Lobby_Messages lobby_messages = 6;
|
Lobby_Messages lobby_messages = 6;
|
||||||
Network network = 7;
|
Network_pb network = 7;
|
||||||
Gameserver gameserver = 8;
|
Gameserver gameserver = 8;
|
||||||
Friend friend = 9;
|
Friend friend = 9;
|
||||||
Auth_Ticket auth_ticket = 10;
|
Auth_Ticket auth_ticket = 10;
|
||||||
|
|
|
@ -17,22 +17,6 @@
|
||||||
|
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
|
|
||||||
#if defined(STEAM_WIN32)
|
|
||||||
|
|
||||||
#define MSG_NOSIGNAL 0
|
|
||||||
|
|
||||||
#else
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <linux/netdevice.h>
|
|
||||||
#include <netdb.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MAX_BROADCASTS 16
|
#define MAX_BROADCASTS 16
|
||||||
static int number_broadcasts = -1;
|
static int number_broadcasts = -1;
|
||||||
static IP_PORT broadcasts[MAX_BROADCASTS];
|
static IP_PORT broadcasts[MAX_BROADCASTS];
|
||||||
|
@ -45,8 +29,6 @@ static uint32_t upper_range_ips[MAX_BROADCASTS];
|
||||||
|
|
||||||
#if defined(STEAM_WIN32)
|
#if defined(STEAM_WIN32)
|
||||||
|
|
||||||
#include <iphlpapi.h>
|
|
||||||
|
|
||||||
//windows xp support
|
//windows xp support
|
||||||
static int
|
static int
|
||||||
inet_pton4(const char *src, uint32_t *dst)
|
inet_pton4(const char *src, uint32_t *dst)
|
||||||
|
@ -489,18 +471,6 @@ static bool recv_tcp(struct TCP_Socket &socket)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_timedout(std::chrono::high_resolution_clock::time_point old, double timeout)
|
|
||||||
{
|
|
||||||
if (timeout == 0.0) return true;
|
|
||||||
|
|
||||||
std::chrono::high_resolution_clock::time_point now = std::chrono::high_resolution_clock::now();
|
|
||||||
if (std::chrono::duration_cast<std::chrono::duration<double>>(now - old).count() > timeout) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void socket_timeouts(struct TCP_Socket &socket, double extra_time)
|
static void socket_timeouts(struct TCP_Socket &socket, double extra_time)
|
||||||
{
|
{
|
||||||
if (check_timedout(socket.last_heartbeat_sent, HEARTBEAT_TIMEOUT / 2.0)) {
|
if (check_timedout(socket.last_heartbeat_sent, HEARTBEAT_TIMEOUT / 2.0)) {
|
||||||
|
|
|
@ -15,13 +15,10 @@
|
||||||
License along with the Goldberg Emulator; if not, see
|
License along with the Goldberg Emulator; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h"
|
|
||||||
|
|
||||||
#ifndef NETWORK_INCLUDE
|
#ifndef NETWORK_INCLUDE
|
||||||
#define NETWORK_INCLUDE
|
#define NETWORK_INCLUDE
|
||||||
|
|
||||||
#include "net.pb.h"
|
#include "base.h"
|
||||||
#include <chrono>
|
|
||||||
|
|
||||||
inline bool protobuf_message_equal(const google::protobuf::MessageLite& msg_a,
|
inline bool protobuf_message_equal(const google::protobuf::MessageLite& msg_a,
|
||||||
const google::protobuf::MessageLite& msg_b) {
|
const google::protobuf::MessageLite& msg_b) {
|
||||||
|
@ -38,8 +35,6 @@ typedef unsigned int sock_t;
|
||||||
typedef int sock_t;
|
typedef int sock_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool check_timedout(std::chrono::high_resolution_clock::time_point old, double timeout);
|
|
||||||
|
|
||||||
struct IP_PORT {
|
struct IP_PORT {
|
||||||
uint32 ip;
|
uint32 ip;
|
||||||
uint16 port;
|
uint16 port;
|
||||||
|
|
|
@ -15,12 +15,11 @@
|
||||||
License along with the Goldberg Emulator; if not, see
|
License along with the Goldberg Emulator; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h"
|
|
||||||
#include <set>
|
|
||||||
|
|
||||||
#ifndef SETTINGS_INCLUDE
|
#ifndef SETTINGS_INCLUDE
|
||||||
#define SETTINGS_INCLUDE
|
#define SETTINGS_INCLUDE
|
||||||
|
|
||||||
|
#include "base.h"
|
||||||
|
|
||||||
struct DLC_entry {
|
struct DLC_entry {
|
||||||
AppId_t appID;
|
AppId_t appID;
|
||||||
std::string name;
|
std::string name;
|
||||||
|
|
|
@ -16,10 +16,6 @@
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "settings_parser.h"
|
#include "settings_parser.h"
|
||||||
#include <fstream>
|
|
||||||
#include <cctype>
|
|
||||||
#include <sstream>
|
|
||||||
#include <iterator>
|
|
||||||
|
|
||||||
static void consume_bom(std::ifstream &input)
|
static void consume_bom(std::ifstream &input)
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,8 +18,6 @@
|
||||||
#include "steam_client.h"
|
#include "steam_client.h"
|
||||||
#include "settings_parser.h"
|
#include "settings_parser.h"
|
||||||
|
|
||||||
#include <condition_variable>
|
|
||||||
|
|
||||||
static std::condition_variable kill_background_thread_cv;
|
static std::condition_variable kill_background_thread_cv;
|
||||||
static std::atomic_bool kill_background_thread;
|
static std::atomic_bool kill_background_thread;
|
||||||
static void background_thread(Steam_Client *client)
|
static void background_thread(Steam_Client *client)
|
||||||
|
|
|
@ -56,8 +56,6 @@
|
||||||
|
|
||||||
#include "../overlay_experimental/steam_overlay.h"
|
#include "../overlay_experimental/steam_overlay.h"
|
||||||
|
|
||||||
#include <thread>
|
|
||||||
|
|
||||||
enum Steam_Pipe {
|
enum Steam_Pipe {
|
||||||
NO_USER,
|
NO_USER,
|
||||||
CLIENT,
|
CLIENT,
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h"
|
#include "base.h"
|
||||||
#include "../controller/gamepad.h"
|
|
||||||
#include <cctype>
|
|
||||||
|
|
||||||
struct Controller_Map {
|
struct Controller_Map {
|
||||||
std::map<ControllerDigitalActionHandle_t, std::set<int>> active_digital;
|
std::map<ControllerDigitalActionHandle_t, std::set<int>> active_digital;
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h"
|
#include "base.h"
|
||||||
#include <queue>
|
|
||||||
|
|
||||||
class Steam_Game_Coordinator :
|
class Steam_Game_Coordinator :
|
||||||
public ISteamGameCoordinator
|
public ISteamGameCoordinator
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h" // For SteamItemDef_t
|
#include "base.h" // For SteamItemDef_t
|
||||||
#include "../json/json.hpp"
|
|
||||||
|
|
||||||
struct Steam_Inventory_Requests {
|
struct Steam_Inventory_Requests {
|
||||||
double timeout = 0.1;
|
double timeout = 0.1;
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "base.h"
|
#include "base.h"
|
||||||
#include <list>
|
|
||||||
|
|
||||||
//packet timeout in seconds for non connections
|
//packet timeout in seconds for non connections
|
||||||
#define ORPHANED_PACKET_TIMEOUT (20)
|
#define ORPHANED_PACKET_TIMEOUT (20)
|
||||||
|
@ -278,16 +277,16 @@ bool SendP2PPacket( CSteamID steamIDRemote, const void *pubData, uint32 cubData,
|
||||||
Common_Message msg;
|
Common_Message msg;
|
||||||
msg.set_source_id(settings->get_local_steam_id().ConvertToUint64());
|
msg.set_source_id(settings->get_local_steam_id().ConvertToUint64());
|
||||||
msg.set_dest_id(steamIDRemote.ConvertToUint64());
|
msg.set_dest_id(steamIDRemote.ConvertToUint64());
|
||||||
msg.set_allocated_network(new Network);
|
msg.set_allocated_network(new Network_pb);
|
||||||
|
|
||||||
if (!connection_exists(steamIDRemote)) {
|
if (!connection_exists(steamIDRemote)) {
|
||||||
msg.mutable_network()->set_type(Network::NEW_CONNECTION);
|
msg.mutable_network()->set_type(Network_pb::NEW_CONNECTION);
|
||||||
network->sendTo(&msg, true);
|
network->sendTo(&msg, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.mutable_network()->set_channel(nChannel);
|
msg.mutable_network()->set_channel(nChannel);
|
||||||
msg.mutable_network()->set_data(pubData, cubData);
|
msg.mutable_network()->set_data(pubData, cubData);
|
||||||
msg.mutable_network()->set_type(Network::DATA);
|
msg.mutable_network()->set_type(Network_pb::DATA);
|
||||||
|
|
||||||
struct Steam_Networking_Connection *conn = get_or_create_connection(steamIDRemote);
|
struct Steam_Networking_Connection *conn = get_or_create_connection(steamIDRemote);
|
||||||
new_connection_times.erase(steamIDRemote);
|
new_connection_times.erase(steamIDRemote);
|
||||||
|
@ -914,11 +913,11 @@ void Callback(Common_Message *msg)
|
||||||
}PRINT_DEBUG("\n");
|
}PRINT_DEBUG("\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (msg->network().type() == Network::DATA) {
|
if (msg->network().type() == Network_pb::DATA) {
|
||||||
unprocessed_messages.push_back(Common_Message(*msg));
|
unprocessed_messages.push_back(Common_Message(*msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg->network().type() == Network::NEW_CONNECTION) {
|
if (msg->network().type() == Network_pb::NEW_CONNECTION) {
|
||||||
std::lock_guard<std::recursive_mutex> lock(messages_mutex);
|
std::lock_guard<std::recursive_mutex> lock(messages_mutex);
|
||||||
auto msg_temp = std::begin(messages);
|
auto msg_temp = std::begin(messages);
|
||||||
while (msg_temp != std::end(messages)) {
|
while (msg_temp != std::end(messages)) {
|
||||||
|
|
|
@ -21,10 +21,6 @@
|
||||||
#include "base.h"
|
#include "base.h"
|
||||||
#include "../overlay_experimental/steam_overlay.h"
|
#include "../overlay_experimental/steam_overlay.h"
|
||||||
|
|
||||||
#include <iomanip>
|
|
||||||
#include <fstream>
|
|
||||||
#include "../json/json.hpp"
|
|
||||||
|
|
||||||
struct Steam_Leaderboard {
|
struct Steam_Leaderboard {
|
||||||
std::string name;
|
std::string name;
|
||||||
ELeaderboardSortMethod sort_method;
|
ELeaderboardSortMethod sort_method;
|
||||||
|
|
12
dll/wrap.cpp
12
dll/wrap.cpp
|
@ -28,18 +28,6 @@
|
||||||
#include "base.h"
|
#include "base.h"
|
||||||
#include "dll.h"
|
#include "dll.h"
|
||||||
|
|
||||||
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <dlfcn.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <sys/mount.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/statvfs.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <utime.h>
|
|
||||||
|
|
||||||
#define PATH_SEPARATOR_CHAR '/'
|
#define PATH_SEPARATOR_CHAR '/'
|
||||||
#define STEAM_PATH_CACHE_SIZE 4096
|
#define STEAM_PATH_CACHE_SIZE 4096
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sdk_includes/steam_api.h"
|
#include "sdk_includes/steam_api.h"
|
||||||
#include "dll/defines.h"
|
#include "dll/common_includes.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
Loading…
Reference in New Issue