From fd1af0d7ff3f3de685aff940200ef741f381f527 Mon Sep 17 00:00:00 2001 From: universal963 <36097923+universal963@users.noreply.github.com> Date: Tue, 27 Aug 2024 02:08:13 +0800 Subject: [PATCH] More accurate api behaviors --- dll/steam_apps.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/dll/steam_apps.cpp b/dll/steam_apps.cpp index 8e7c0986..02ad3956 100644 --- a/dll/steam_apps.cpp +++ b/dll/steam_apps.cpp @@ -84,8 +84,12 @@ bool Steam_Apps::BIsSubscribedApp( AppId_t appID ) std::lock_guard lock(global_mutex); if (appID == 0) return false; // steam returns false if (appID == UINT32_MAX) return true; // steam returns true - if (appID == settings->get_local_game_id().AppID()) return true; // steam returns true - return settings->hasDLC(appID); + if (appID == settings->get_local_game_id().AppID() || settings->hasDLC(appID)) return true; // steam returns true + for (auto &d : settings->depots) { + if (d == appID) + return true; + } + return false; } @@ -112,15 +116,19 @@ uint32 Steam_Apps::GetEarliestPurchaseUnixTime( AppId_t nAppID ) std::lock_guard lock(global_mutex); if (nAppID == 0) return 0; // steam returns 0 if (nAppID == UINT32_MAX) return 0; // steam returns 0 + auto t = + // 4 days ago + startup_time + - std::chrono::hours(24 * 4); + auto duration = std::chrono::duration_cast(t.time_since_epoch()); if (nAppID == settings->get_local_game_id().AppID() || settings->hasDLC(nAppID)) { - auto t = - // 4 days ago - startup_time - - std::chrono::hours(24 * 4); - auto duration = std::chrono::duration_cast(t.time_since_epoch()); return (uint32)duration.count(); } - + for (auto &d : settings->depots) { + if (d == nAppID) + return (uint32)duration.count(); + } + //TODO ? return 0; }