766 Commits

Author SHA1 Message Date
a
97bec67073 split steam_user_stats class into multiple files for readability 2024-08-18 05:02:40 +03:00
a
530a26f07b * don't load achievements icons in the constructor of steam_user_stats, instead wait for the next call to the run callback
* fix a bug where loaded image handle wasn't being saved
2024-08-18 05:01:46 +03:00
a
573e17b45a * new option to lazy load achievements icons in memory when they're requested, rather than loading them on the next call to the run callback
* move stats options in the ini to a separate section [main::stats]
2024-08-18 05:01:39 +03:00
a
167a64a496 generate random number for each debug log file 2024-08-18 05:01:32 +03:00
a
e04b6c9575 use a global constant for invalid image handle 2024-08-18 05:01:18 +03:00
a
4e5aa8085e * implement Steam_User_Stats::GetAchievementIcon()
* load all achievements icons in memory when loading the achievements schema
2024-08-18 05:00:21 +03:00
a
4d06c010a3 * encapsulate image load/get functions + fix access in current code
* don't add new image resource if current one exists
2024-08-18 04:59:52 +03:00
a
c65e0fc36a fix a bug in Steam_HTTP::SendHTTPRequest() where the ID of the triggered call-result from online requests was completely unrelated to the original request, resulting in timeout 2024-08-18 04:54:21 +03:00
a
afee4c4a72 workaround a problem in Steam_HTTP::SetHTTPRequestHeaderValue() where some games set a cache-control policy which allows only reponses from previous requests 2024-08-18 04:54:14 +03:00
a
d7fb8403d1 bypass ssl verification in steam_http when downloading requests 2024-08-18 04:53:40 +03:00
a
ed1eec0983 fix a buffer overrun bug in steam_http where the buffer size wasn't set correctly 2024-08-18 04:53:34 +03:00
a
50066cc105 verbose curl logging 2024-08-18 04:52:37 +03:00
a
72f4b85924 proper handling for SteamNetworkingSockets007 2024-08-18 04:48:57 +03:00
a
e8d36b3353 implement undocumented interfaces ISteamRemoteStorage015 + ISteamUGC011 2024-08-18 04:48:40 +03:00
a
b8869b60b0 implement undocumented interfaces ISteamNetworkingSockets010 + ISteamNetworkingSockets011 2024-08-18 04:48:31 +03:00
a
a450edfe28 minor missing implementation in CreateInterface() 2024-08-18 04:46:47 +03:00
Detanup01
79ee1dd707
Merge pull request #4 from otavepto/patch-2
Allow disabling the internal functionality which reports an achievement progress for stats that are tied to achievements
2024-08-03 20:54:11 +02:00
a
ee5c2bb4f9 allow disabling the internal functionality which reports an achievement progress for stats that are tied to achievements 2024-08-03 21:16:49 +03:00
a
97032cdc33 fix an inverted condition when parsing the ini option matchmaking_server_list_actual_type in configs.main.ini 2024-08-03 19:23:46 +03:00
a
bf55cecac2 fix a bad print modifier resulting in crash 2024-08-03 16:57:30 +03:00
a
26905df507 * add a new timeline state when game calls Steam_Timeline::SetTimelineGameMode()
* mimic real behavior in `Steam_Timeline::AddTimelineEvent()`
2024-08-03 16:57:30 +03:00
a
450a345333 * add instance of game_stats for servers, client and server instances are requested by games
* delete ended game_stats sessions after 15 seconds to reduce memory usage
2024-08-03 16:57:30 +03:00
a
19b5ea2e23 * add missing callback to steam_friends
* remove duplicate callback triggered in `Steam_Friends::SetPersonaName()`
2024-08-03 16:57:30 +03:00
a
f73d73e1bd * add missing callback to steam_user
* fix a potential problem in `Steam_User::GetUserDataFolder()` where an incomplete path might be copied
2024-08-03 16:57:30 +03:00
a
7b9bc9b3fe fix a scenario where call results might not be triggered in steam_http if the function arg was null 2024-08-03 16:57:30 +03:00
a
c207359bf7 add potentially missing callback to steam_networking_socketserialized 2024-08-03 16:57:30 +03:00
a
f14d9e8bf8 add missing callback to steam_utils 2024-08-03 16:57:30 +03:00
a
3c938208c2 add missing callbacks to steam_ugc 2024-08-03 16:57:30 +03:00
a
55e9ba41a9 add missing callbacks to steam_remote_storage 2024-08-03 16:57:30 +03:00
a
c61294bdcd * fix crash due to invalid usage of union in steam_remote_storage
* fix invalid overlapping of data in steam_remote_storage due to invalid usage of union
2024-08-03 16:57:30 +03:00
a
3369c046a9 fix crash due to invalid usage of union in steam_gamestats 2024-08-03 16:57:30 +03:00
Detanup01
fa75c9acb9
fixing STEAMTIMELINE_INTERFACE hopefully 2024-07-25 21:25:30 +02:00
Detanup01
5028aade9e
Fixing Steam Datagram Error. 2024-07-25 15:14:09 +02:00
Detanup01
4c0e1558ea
Adding STEAMTIMELINE_INTERFACE_VERSION check in GetISteamGenericInterface 2024-07-24 12:19:08 +02:00
otavepto
fd0126ee25 change Steam_Apps::SetDlcContext() according to review notes by universal963 2024-07-07 02:39:21 +03:00
otavepto
61d519bf0e fix the condition of Steam_Apps::SetActiveBeta() as noted by universal963 + remove deprecated build_id from gen_emu_config 2024-07-07 02:39:21 +03:00
otavepto
9443afbd00 * add 2 new properties to mods.json min_game_branch and max_game_branch according to sdk v1.60, no idea what they do
* make sure buffer is null terminated in `Steam_UGC::GetQueryUGCPreviewURL()`
* implement 2 new useless ugc stuff + use an already made function to check for handle validity
2024-07-07 02:39:21 +03:00
otavepto
3f7ec00719 * parse and use branches data from branches.json
* deprecate build_id in the .ini file
* change Steam_Apps::SetDlcContext() to mimic Steam_Apps::BIsDlcInstalled(), not sure if that's correct
2024-07-07 02:39:21 +03:00
otavepto
7f940079d1 * update the method of reading json to be less wasteful + get path as const ref whe loading json
* fix vs warnings in gamestats interface
* refactor logger slightly
2024-07-07 02:39:21 +03:00
otavepto
6c7f263810 thanks visual studio, dubious in so many ways! 2024-07-07 02:39:21 +03:00
otavepto
9076519a3c missing class resolution operator + todo/notes 2024-07-07 02:39:21 +03:00
otavepto
f3c6707219 add missing inheritance from steam ugc 018 + new apis declarations 2024-07-07 02:39:21 +03:00
otavepto
7f59c27adc add missing inheritance from steam video 002 2024-07-07 02:39:21 +03:00
otavepto
a307cc13e5 new option in mods.json for the new param of total files sizes 2024-07-07 02:39:21 +03:00
otavepto
f5ae22a1e6 basic impl for steam timeline 2024-07-07 02:39:21 +03:00
otavepto
ddda06d248 fix flat api 2024-07-07 02:39:21 +03:00
otavepto
89842a3f76 sanity check the arguments + print debug args + todo notes + add missing semicolon 2024-07-07 02:39:21 +03:00
otavepto
6abb636309 missing declarations + use same #ifdef + remove inline timeline interface accessor 2024-07-07 02:39:21 +03:00
Detanup01
a78a27f21f steam api 1.60 2024-07-07 02:39:21 +03:00
otavepto
6840b20bcb fix conditions for:
* Steam_Apps::BIsSubscribedApp
* Steam_Apps::BIsDlcInstalled
* Steam_Apps::BIsAppInstalled
2024-06-30 05:46:47 +03:00
otavepto
2556db1f84 use keyword auto for simplicity and avoiding false positive results when searching via ctrl+f 2024-06-30 03:18:39 +03:00
otavepto
638eb78f0f use the new logger in all dll code base 2024-06-30 03:18:39 +03:00
otavepto
26b8baefa6 use utfcpp lib to convert utf8<->utf16 strings instead of Windows specific apis 2024-06-30 03:18:39 +03:00
otavepto
e03ed9e1cd separate header file for OS detection 2024-06-30 03:18:39 +03:00
otavepto
92a38b2f2f settings_parser: use multibyte std::string 2024-06-30 03:18:39 +03:00
otavepto
e35e2e5a4e compare language value of steam_settings/achievements.json case-insensitive 2024-06-30 03:18:39 +03:00
otavepto
433dc405bd gen_emu_config: make sure each line in supported languages is lowercase 2024-06-30 03:18:39 +03:00
otavepto
4b49edbf5e improve usage of std::string_view, passing them as const ref is useless since they don't allocated anything and cheap to copy (no allocations) 2024-06-30 03:18:39 +03:00
otavepto
caea115cf7 update readmes + changlog & credits 2024-06-24 22:27:31 +03:00
otavepto
02432c7f8f fix that comment 2024-06-23 19:16:44 +03:00
otavepto
6ee0628750 add a new option save_only_higher_stat_achievement_progress and enable it by default toa void progress spam from stats which are tied to an achievement 2024-06-23 19:16:44 +03:00
otavepto
ace1a591e5 in Steam_User_Stats::ResetAllStats() reset progress only if it was defined in the original schema 2024-06-23 19:16:44 +03:00
otavepto
6bf45a35e2 avoid a scenario where progress might exist but not max_progress is user data 2024-06-23 19:16:44 +03:00
otavepto
de03379602 add an option to allow the game to change unknown stats 2024-06-23 19:16:44 +03:00
otavepto
b67cb48f38 change default notification duration 2024-06-21 21:53:53 +03:00
otavepto
fcb40ac86d allow specifying durations for each notification type 2024-06-20 21:49:22 +03:00
otavepto
0e47a2bd73 revert sharing progress with gameserver, pointless 2024-06-19 15:09:19 +03:00
otavepto
cd21b54e6b * always trigger UserStatsStored_t and UserAchievementStored_t callbacks in Steam_User_Stats::IndicateAchievementProgress() even if value wasn't updated, games my halt otherwise
* return false in Steam_User_Stats::GetAchievementProgressLimits() if the achievement has no progress
* share progress info with gameservers
2024-06-19 15:09:19 +03:00
otavepto
aa791b5256 * remove invalid condition when resetiing stats, only write to disk and share with gameserver if value isn't already the default
* try-catch access to progress and max_progress durong construction since they throw exception for achievements with no progress, making them standalone/safe
2024-06-19 15:09:19 +03:00
otavepto
9e15af4ec8 fix the conditions for progress indication + remove invalid code when resetting stats 2024-06-19 15:09:19 +03:00
otavepto
706422661a wrap proto includes to avoid build warnings 2024-06-16 19:09:01 +03:00
otavepto
eb78b5bf0b wrap mbedtls includes to avoid build warnings 2024-06-16 19:09:01 +03:00
otavepto
3bc609c9a3 move gamepad to libs/ 2024-06-16 19:09:01 +03:00
otavepto
d1d5416d62 implement isteamgamestats 2024-06-16 19:08:44 +03:00
Detanup01
65521debe6 fix those requests 2024-06-14 19:10:12 +03:00
Detanup01
4390cc1616 isteamvideo001 interface added 2024-06-14 19:10:12 +03:00
otavepto
0e7c4fef8b clear achievement progress in Steam_User_Stats::ResetAllStats() 2024-06-08 18:04:36 +03:00
otavepto
bb57733a8a ensure all default values are added to a user achievement on load 2024-06-08 18:04:10 +03:00
otavepto
c1cf889751 ensure binary mode for json read/write 2024-06-08 18:03:02 +03:00
otavepto
b75b5ee282 exit on missing interface instead of returning a pointer 2024-06-08 16:14:12 +03:00
otavepto
f2e9062242 refactor the PRINT_DEBUG, only one definition, and make the function name macro public 2024-06-07 20:20:41 +03:00
otavepto
2cd5f15376 allow the achievement clear function to reflect the status in the overlay 2024-06-07 19:57:14 +03:00
otavepto
06189e303f don't allow achievement trigger to propagate its error to next lines, this allows ahievements to be initialzied properly 2024-06-07 19:56:35 +03:00
otavepto
f7c7d79e0a restore accidentally removed flag for ipv6 for SteamClient020 + VS warning fix + small refactor 2024-06-07 19:55:30 +03:00
otavepto
57846cb133 fix more VS warnings 2024-06-06 23:19:13 +03:00
otavepto
05b6ccdcf8 implement the other overload of Steam_User_Stats::GetAchievementProgressLimits() 2024-06-06 23:19:13 +03:00
otavepto
9ee40181b1 * allow test achievement to include a progress randomly
* allow showing the progress indicator in the achievement notifications, not only in the achievements list
* don't play sound when showing progress notifications
* disable progress notifications if the setting in the .ini was set
2024-06-06 23:19:13 +03:00
otavepto
663f1a9350 new option to disable overlay progress notifications 2024-06-06 23:19:13 +03:00
otavepto
a384994ac2 fix gameid decoding bug in matchmaking servers 2024-06-04 21:58:04 +03:00
otavepto
c28a1f1f52 fix more VS2022 warnings 2024-06-04 21:58:04 +03:00
otavepto
5268683850 * make the overlay object oriented, that way when app shutdown then re-init steam api it would hold its own local state, avoiding racing troubles
* return early if the overlay was disabled without locking
* remove external checks for the disable_overlay flag, check for it inside the overlay code
2024-06-04 21:58:04 +03:00
otavepto
f81ba95732 * common helper for killable threads + remove dedicated class for background thread
* avoid overriding SteamPath env var in `SteamAPI_GetSteamInstallPath()`
2024-06-04 21:58:04 +03:00
otavepto
d769cbe419 log crash dump messages 2024-06-02 21:24:55 +03:00
otavepto
ad84a60912 properly declare then define the damn export g_pSteamClientGameServer, microsoft's compiler is dubious 2024-06-02 09:11:06 +03:00
otavepto
5def4c4148 fix api build error because of g_pSteamClientGameServer (defined as export & initialized) 2024-06-02 08:28:17 +03:00
otavepto
e63dcc8811 do a sanity check when shutting down, some apps despite being a regular client (not a gameserver) will still call gameserver_shutdown() 2024-06-02 05:16:22 +03:00
otavepto
4333808646 also delete background thread instance! 2024-06-02 05:16:22 +03:00
otavepto
8022fc04f4 reduce code for deleting steamclient instances 2024-06-02 05:16:22 +03:00
otavepto
545bbd17da spawn the background thread for gameservers as well 2024-06-02 05:16:22 +03:00
otavepto
86eb8aa2d0 refactor background thread into a separate .cpp file 2024-06-02 05:16:22 +03:00