diff --git a/CMakeLists.txt b/CMakeLists.txt index 48c6728..cf2305e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -315,37 +315,39 @@ IF(APPLE) ENDIF() # Steamshim -IF(NOT WIN32) - set(STEAMSHIM_SOURCES - steamshim_parent/steamshim_parent.cpp - ) +IF(STEAM) + IF(NOT WIN32) + set(STEAMSHIM_SOURCES + steamshim_parent/steamshim_parent.cpp + ) - include_directories(${STEAMWORKS_PATH}/public) + include_directories(${STEAMWORKS_PATH}/public) - add_definitions(-DGAME_LAUNCH_NAME="${GAME_LAUNCH_NAME}") + add_definitions(-DGAME_LAUNCH_NAME="${GAME_LAUNCH_NAME}") - IF(DEBUG) - add_definitions(-DSTEAMSHIM_DEBUG) - ENDIF() + IF(DEBUG) + add_definitions(-DSTEAMSHIM_DEBUG) + ENDIF() - IF(APPLE) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/osx32) - ELSEIF(WIN32) - list(APPEND STEAMSHIM_SOURCES steamshim_parent/resources.rc) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/win64) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows") - ELSEIF(LINUX) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/linux64) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64") - ENDIF() + IF(APPLE) + link_directories(${STEAMWORKS_PATH}/redistributable_bin/osx32) + ELSEIF(WIN32) + list(APPEND STEAMSHIM_SOURCES steamshim_parent/resources.rc) + link_directories(${STEAMWORKS_PATH}/redistributable_bin/win64) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows") + ELSEIF(LINUX) + link_directories(${STEAMWORKS_PATH}/redistributable_bin/linux64) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64") + ENDIF() - add_executable(steamshim - ${STEAMSHIM_SOURCES} - ) + add_executable(steamshim + ${STEAMSHIM_SOURCES} + ) - IF(WIN32) - target_link_libraries(steamshim steam_api64) - ELSE() - target_link_libraries(steamshim steam_api) + IF(WIN32) + target_link_libraries(steamshim steam_api64) + ELSE() + target_link_libraries(steamshim steam_api) + ENDIF() ENDIF() ENDIF() diff --git a/README.md b/README.md index 434c663..232ee30 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Thanks to [hunternet93](https://github.com/hunternet93) for starting the reimple * Ruby * Python 3 (journal reimplementation only) * PyQt5 for Python 3 (journal reimplementation only) +* Steamworks SDK (optional, place contents of sdk folder in ZIP into "steamworks" folder in root) ### Building with Conan diff --git a/make-oneshot-mac.command b/make-oneshot-mac.command index 9eecc45..af333f5 100755 --- a/make-oneshot-mac.command +++ b/make-oneshot-mac.command @@ -7,8 +7,6 @@ cd `dirname $0` mac_version="1.1.0" make_threads=8 ONESHOT_PATH=$HOME/Library/Application\ Support/Steam/steamapps/common/OneShot -STEAMWORKS_PATH=$HOME/Developer/downloaded/steamworks - # Colors white="\033[0;37m" # White - Regular bold="\033[1;37m" # White - Bold @@ -30,7 +28,7 @@ if [[ $use_qmake == True ]] echo "-> ${cyan}Compile steamshim...${color_reset}" cd steamshim_parent mkdir build && cd build - cmake -DSTEAMWORKS_PATH=${STEAMWORKS_PATH} .. + cmake .. make -j${make_threads} cd ../.. else diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 8bf1cf8..69b51dd 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -40,11 +40,8 @@ #include #ifdef __APPLE__ -#define OS_OSX -#endif - -#ifdef OS_OSX -#include + #define OS_OSX + #include #endif struct SDLRWIoContext @@ -465,7 +462,7 @@ struct FontSetsCBData }; static PHYSFS_EnumerateCallbackResult -findFontsFolderCB (void *data, const char *dir, const char *fname) +fontSetEnumCB (void *data, const char *dir, const char *fname) { FontSetsCBData *d = static_cast(data); @@ -503,11 +500,31 @@ findFontsFolderCB (void *data, const char *dir, const char *fname) return PHYSFS_ENUM_OK; } +/* Basically just a case-insensitive search + * for the folder "Fonts"... */ +static PHYSFS_EnumerateCallbackResult +findFontsFolderCB(void *data, const char *, const char *fname) +{ + size_t i = 0; + char buffer[512]; + const char *s = fname; + + while (s && i < sizeof(buffer)) + buffer[i++] = tolower(*s++); + + buffer[i] = '\0'; + + if (strcmp(buffer, "fonts") == 0) + PHYSFS_enumerate(fname, fontSetEnumCB, data); + + return PHYSFS_ENUM_OK; +} + void FileSystem::initFontSets(SharedFontState &sfs) { FontSetsCBData d = { p, &sfs }; - PHYSFS_enumerate("Fonts", findFontsFolderCB, &d); + PHYSFS_enumerate("", findFontsFolderCB, &d); } struct OpenReadEnumData