This commit is contained in:
acidicoala
2022-12-30 02:50:27 +03:00
parent 636f9186a3
commit d6828e3bfb
24 changed files with 97 additions and 74 deletions

View File

@@ -1,5 +1,5 @@
#include <smoke_api/smoke_api.hpp>
#include <steam_impl/steam_impl.hpp>
#include <steam_impl/steam_apps.hpp>
#include <koalabox/io.hpp>
@@ -163,8 +163,6 @@ namespace steam_apps {
logger->debug("{} -> App ID: {}", function_name, app_id);
}
// Compute count only once
// FIXME: This doesn't work in Koalageddon mode
original_dlc_count = original_function();
logger->debug("{} -> Original DLC count: {}", function_name, original_dlc_count);

View File

@@ -0,0 +1,22 @@
#include <steam_functions/steam_functions.hpp>
using namespace smoke_api;
namespace steam_apps {
bool IsDlcUnlocked(const String& function_name, AppId_t app_id, AppId_t dlc_id);
int GetDLCCount(const String& function_name, AppId_t app_id, const std::function<int()>& original_function);
bool GetDLCDataByIndex(
const String& function_name,
AppId_t app_id,
int iDLC,
AppId_t* pDlcId,
bool* pbAvailable,
char* pchName,
int cchNameBufferSize,
const std::function<bool()>& original_function
);
}

View File

@@ -1,6 +1,9 @@
#include <steam_impl/steam_impl.hpp>
#include <smoke_api/smoke_api.hpp>
#include <steam_functions/steam_functions.hpp>
namespace steam_client{
using namespace smoke_api;
namespace steam_client {
void* GetGenericInterface(
const String& function_name,

View File

@@ -0,0 +1,14 @@
#include <smoke_api/smoke_api.hpp>
#include <steam_functions/steam_functions.hpp>
using namespace smoke_api;
namespace steam_client {
void* GetGenericInterface(
const String& function_name,
const String& interface_version,
const std::function<void*()>& original_function
);
}

View File

@@ -1,5 +1,5 @@
#include <steam_impl/steam_impl.hpp>
#include <smoke_api/smoke_api.hpp>
#include <steam_impl/steam_inventory.hpp>
// TODO: Figure out why it doesn't work in koalageddon mode
namespace steam_inventory {
@@ -25,7 +25,7 @@ namespace steam_inventory {
const std::function<bool(SteamItemDef_t*, uint32_t*)>& get_item_definition_ids
) {
static std::mutex section;
std::lock_guard<std::mutex> guard(section);
const std::lock_guard<std::mutex> guard(section);
const auto success = original_function();
@@ -120,7 +120,7 @@ namespace steam_inventory {
uint32_t unItemIndex,
const char* pchPropertyName,
char* pchValueBuffer,
uint32_t* punValueBufferSizeOut,
const uint32_t* punValueBufferSizeOut,
const std::function<bool()>& original_function
) {
const auto common_info = fmt::format(

View File

@@ -1,45 +1,7 @@
#include <smoke_api/smoke_api.hpp>
#include <steam_functions/steam_functions.hpp>
using namespace koalabox;
namespace steam_apps {
bool IsDlcUnlocked(const String& function_name, AppId_t app_id, AppId_t dlc_id);
int GetDLCCount(const String& function_name, AppId_t app_id, const std::function<int()>& original_function);
bool GetDLCDataByIndex(
const String& function_name,
AppId_t app_id,
int iDLC,
AppId_t* pDlcId,
bool* pbAvailable,
char* pchName,
int cchNameBufferSize,
const std::function<bool()>& original_function
);
}
namespace steam_user {
EUserHasLicenseForAppResult UserHasLicenseForApp(
const String& function_name,
AppId_t appID,
const std::function<EUserHasLicenseForAppResult()>& original_function
);
}
namespace steam_client {
void* GetGenericInterface(
const String& function_name,
const String& interface_version,
const std::function<void*()>& original_function
);
}
using namespace smoke_api;
namespace steam_inventory {
@@ -64,7 +26,7 @@ namespace steam_inventory {
uint32_t unItemIndex,
const char* pchPropertyName,
char* pchValueBuffer,
uint32_t* punValueBufferSizeOut,
const uint32_t* punValueBufferSizeOut,
const std::function<bool()>& original_function
);

View File

@@ -1,4 +1,4 @@
#include <steam_impl/steam_impl.hpp>
#include <steam_impl/steam_user.hpp>
#include <smoke_api/smoke_api.hpp>
namespace steam_user {

View File

@@ -0,0 +1,14 @@
#include <smoke_api/smoke_api.hpp>
#include <steam_functions/steam_functions.hpp>
using namespace smoke_api;
namespace steam_user {
EUserHasLicenseForAppResult UserHasLicenseForApp(
const String& function_name,
AppId_t appID,
const std::function<EUserHasLicenseForAppResult()>& original_function
);
}