diff --git a/.idea/.gitignore b/.idea/.gitignore index b58b603..85444e1 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -3,3 +3,4 @@ /workspace.xml # Editor-based HTTP Client requests /httpRequests/ +vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index dd72b2c..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index da39652..ba3f9f7 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,14 @@ SmokeAPI does not require any manual configuration. By default, it uses the most [SmokeAPI.json]: res/SmokeAPI.json [manually maintained list of DLC IDs]: https://github.com/acidicoala/public-entitlements/blob/main/steam/v1/dlc.json +## ℹ Extra info + +### How SmokeAPI works in games with large number of DLCs + +Some games that have a lot of DLCs begin ownership verification by querying the Steamworks API for a list of all available DLCs. Once the game receives the list, it will go over each item and check the ownership. The issue arises from the fact that response from Steamworks SDK may max out at 64, depending on how much unowned DLC the user has. To alleviate this issue, SmokeAPI will make a web request to Steam API for a full list of DLCs, which works well most of the time. Unfortunately, even the web API does not solve all of our problems, because it will only return DLCs that are available in Steam store. This means that DLCs without a dedicated store offer, such as pre-order DLCs will be left out. That's where the `dlc_ids` config option comes into play. You can specify those missing DLC IDs there, and SmokeAPI will make them available to the game. However, this introduces the need for manual configuration, which goes against the ideals of this project. To remedy this issue SmokeAPI will also fetch [this document] stored in a GitHub repository. It contains all the DLC IDs missing from Steam store. The document is hand-crafted using data from https://steamdb.com. This enables SmokeAPI to unlock all DLCs without any config file at all. Feel free to report games that have more than 64 DLCs, *and* have DLCs without a dedicated store page. They will be added to the list of missing DLC IDs to facilitate configless operation. + +[this document]: https://github.com/acidicoala/public-entitlements/blob/main/steam/v1/dlc.json + ## 👋 Acknowledgements SmokeAPI makes use of the following open source projects: diff --git a/res/dll/steamworks_sdk_145/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_145/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 4a06775..0000000 Binary files a/res/dll/steamworks_sdk_145/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_146/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_146/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 2243190..0000000 Binary files a/res/dll/steamworks_sdk_146/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_147/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_147/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 42ff283..0000000 Binary files a/res/dll/steamworks_sdk_147/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_148a/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_148a/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 97b6446..0000000 Binary files a/res/dll/steamworks_sdk_148a/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_149/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_149/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 8b4a95a..0000000 Binary files a/res/dll/steamworks_sdk_149/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_150/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_150/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 5cba9b0..0000000 Binary files a/res/dll/steamworks_sdk_150/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_151/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_151/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index d89750e..0000000 Binary files a/res/dll/steamworks_sdk_151/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_152/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_152/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 638d8eb..0000000 Binary files a/res/dll/steamworks_sdk_152/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/res/dll/steamworks_sdk_153a/sdk/redistributable_bin/osx/libsteam_api.dylib b/res/dll/steamworks_sdk_153a/sdk/redistributable_bin/osx/libsteam_api.dylib deleted file mode 100644 index 8d3c5ee..0000000 Binary files a/res/dll/steamworks_sdk_153a/sdk/redistributable_bin/osx/libsteam_api.dylib and /dev/null differ diff --git a/src/vstdlib/vstdlib.cpp b/src/vstdlib/vstdlib.cpp index ee3abfa..dae08a9 100644 --- a/src/vstdlib/vstdlib.cpp +++ b/src/vstdlib/vstdlib.cpp @@ -19,15 +19,15 @@ VIRTUAL(bool) SharedLibraryStopPlaying(PARAMS(void* arg)) { // NOLINT(misc-unuse struct CallbackData { [[maybe_unused]] void* pad1[1]; - void* set_callback_name_address; - [[maybe_unused]] void* pad15[15]; - void* callback_address; + void* set_callback_name_address; // to_do: fetch online + [[maybe_unused]] void* pad19[17]; + void* callback_address; // to_do: fetch online }; struct CoroutineData { - CallbackData* callback_data; - [[maybe_unused]] uint32_t pad3[3]; - const char* callback_name; + CallbackData* callback_data; // to_do: fetch online + [[maybe_unused]] uint32_t pad4[3]; + const char* callback_name; // to_do: fetch online }; VIRTUAL(void) set_callback_name(PARAMS(const char** p_name)) {