Implemented ISteamGameServer

This commit is contained in:
acidicoala
2025-08-26 05:07:17 +05:00
parent 902476cb3e
commit 9f84425e4e
59 changed files with 151 additions and 123 deletions

View File

@@ -1,7 +1,6 @@
#include <set>
#include <koalabox/logger.hpp>
#include <koalabox/util.hpp>
#include "smoke_api/interfaces/steam_apps.hpp"
#include "smoke_api/api.hpp"
@@ -88,7 +87,7 @@ namespace smoke_api::steam_apps {
const std::function<bool()>& original_function
) {
try {
const auto unlocked = smoke_api::config::is_dlc_unlocked(
const auto unlocked = config::is_dlc_unlocked(
app_id,
dlc_id,
original_function
@@ -172,10 +171,10 @@ namespace smoke_api::steam_apps {
);
};
const auto inject_dlc = [&](const DLC& dlc) {
const auto output_dlc = [&](const DLC& dlc) {
// Fill the output pointers
*pDlcId = dlc.get_id();
*pbAvailable = smoke_api::config::is_dlc_unlocked(
*pbAvailable = config::is_dlc_unlocked(
app_id,
*pDlcId,
[&] {
@@ -192,7 +191,7 @@ namespace smoke_api::steam_apps {
const auto& dlcs = app_dlcs[app_id];
if(iDLC >= 0 && iDLC < dlcs.size()) {
inject_dlc(dlcs[iDLC]);
output_dlc(dlcs[iDLC]);
print_dlc_info("injected");
return true;
}
@@ -204,7 +203,7 @@ namespace smoke_api::steam_apps {
const auto success = original_function();
if(success) {
*pbAvailable = smoke_api::config::is_dlc_unlocked(
*pbAvailable = config::is_dlc_unlocked(
app_id,
*pDlcId,
[&] {

View File

@@ -59,7 +59,7 @@ namespace smoke_api::steam_inventory {
"{} -> handle: {}, pOutItemsArray: {}, arraySize: {}",
function_name,
resultHandle,
fmt::ptr(pOutItemsArray),
reinterpret_cast<void*>(pOutItemsArray),
*punOutItemsArraySize
);
@@ -140,26 +140,32 @@ namespace smoke_api::steam_inventory {
const uint32_t* punValueBufferSizeOut,
const std::function<bool()>& original_function
) {
const auto common_info = fmt::format(
LOG_DEBUG(
"{} -> Handle: {}, Index: {}, Name: '{}'",
function_name,
resultHandle,
unItemIndex,
pchPropertyName
// can be empty, in which case steam responds with property list in csv format
pchPropertyName ? pchPropertyName : "nullptr"
);
const auto success = original_function();
if(!success) {
LOG_WARN("{}, Result is false", common_info);
LOG_WARN("{} -> Result is false", function_name);
return false;
}
LOG_DEBUG(
"{}, Buffer: '{}'",
common_info,
std::string(pchValueBuffer, *punValueBufferSizeOut - 1)
);
if(
pchValueBuffer && *pchValueBuffer &&
punValueBufferSizeOut && *punValueBufferSizeOut > 0
) {
LOG_DEBUG(
R"({} -> Buffer: "{}")",
function_name,
std::string(pchValueBuffer, *punValueBufferSizeOut - 1)
);
}
return success;
}