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
otavepto
ba1de0165d
refactor steam_client a little + create setters/getters instead of directly modifying fields
2024-06-02 05:16:22 +03:00
otavepto
5da9e44344
static_cast instance getter vs c-style cast
2024-06-02 05:16:22 +03:00
otavepto
cae3e5617f
added a way to pretty-print functions for MinGw
2024-06-02 05:15:45 +03:00
otavepto
d2ee753b78
win32_lean_and_mean
2024-06-02 05:15:45 +03:00
otavepto
e38172dc1b
fix steamclient_experimental compilation with mingw
2024-06-02 05:15:45 +03:00
otavepto
9289cc9528
add missing functions (SDK) defs for msys2 (GNU/Windows) on windows
2024-06-02 05:15:45 +03:00
otavepto
10f1e89736
fix a buffer overrun in Steam_User_Stats::UpdateAvgRateStat
2024-06-02 05:15:45 +03:00
otavepto
36943fbfe6
trial to see if this dummy implementation will fix msys2 compilation on windows
2024-06-02 05:15:45 +03:00
otavepto
77c2d76bb2
fix inverted condition resulting in a missing import for the api dll
2024-06-01 02:19:42 +03:00
Detanup01
1fde9f21f1
addrsize fix on network
2024-05-27 23:24:38 +03:00
Detanup01
e4f488bbdc
Fix errrors in network.
...
(linux and windows C++ things arent the same [I HATE BOTH OF YOU WHY NOT STANDARDIZE!])
revert "&" checks on type instead of "=="
2024-05-27 23:24:38 +03:00
Detanup01
7c5b4e5325
Its done
...
(only left like the >or < comparision with unsigned/signed)
steam_matchmaking.cpp(241,40) has C4244 issue, look into it!
2024-05-27 23:24:38 +03:00
Detanup01
3a6a7cef73
more stuff
2024-05-27 23:24:38 +03:00
Detanup01
6a464fd295
fixing some errors via types
...
(might ebe worng)
2024-05-27 23:24:38 +03:00
otavepto
6c1ea7edd5
solve compile error due to usage of microsoft-specific constructor when building on win with msys2
2024-05-22 05:29:20 +03:00
otavepto
1f51518734
use the macro extension ##__VA_ARGS on windows to allow gcc compilation via msys2
2024-05-22 03:27:47 +03:00
otavepto
7b3b9f89ee
fix compilation when gnu++17
c++ variant is used on linux
2024-05-21 23:38:22 +03:00
schmurger
7b37cdd181
Use integer instead of floats for achievement progress.
2024-05-21 19:29:20 +03:00
schmurger
5aa1e2d08d
Initialize user achievement stats correctly
2024-05-21 19:29:20 +03:00
schmurger
e30cc2957f
Removed update_achievement_progress function
2024-05-21 19:29:20 +03:00
schmurger
6b26ca1b4c
Fix build
2024-05-21 19:29:20 +03:00
schmurger
b0cffd485b
Added realtime progress update
2024-05-21 19:29:20 +03:00
schmurger
4e8f2505b5
Add achievement progress
2024-05-21 19:29:20 +03:00
otavepto
fd522b36c9
fix usage of uninit var
2024-05-17 13:53:16 +03:00
otavepto
f2579ee7f8
nah screw it
2024-05-12 19:38:16 +03:00
otavepto
8e73e0c516
todo note to detect macos during build
2024-05-12 05:33:23 +03:00
otavepto
25043697c3
ensure GNUC is defined for linux builds + warn for unrecognized os
2024-05-12 05:03:56 +03:00
otavepto
efbd091a80
Revert all fake changes
2024-05-11 17:38:32 +03:00
otavepto
a65d6852ad
simulate any change
2024-05-11 17:38:32 +03:00
Detanup01
c477a031ac
steam screenshot
2024-05-10 19:43:03 +03:00
Detanup01
a01c35187d
note on interface versions
2024-05-10 19:15:27 +03:00
otavepto
27a8bba702
* corrected callbacks vs call results + a missing callback in UGC
...
* another missed spam in overlay
2024-05-07 06:22:34 +03:00
otavepto
6fbc37630b
* special function for the overlay Steam_Friends::get_friend_rich_presence_silent
to avoid spamming the debug log
...
* refactor private method name
2024-05-06 21:29:59 +03:00
otavepto
f660b29100
decrease this spam debug message
2024-05-06 21:16:45 +03:00
otavepto
d662d0ec8e
initialize all temp pointers to null
2024-05-05 17:20:18 +03:00
otavepto
e92bf25f02
more missed c-style casts, no more (void*) casts are left
2024-05-05 17:20:18 +03:00
otavepto
856449597e
print k_iCallback for call result and call complete
2024-05-05 17:20:18 +03:00
otavepto
86fbd21ec0
reduce this annoying spam
2024-05-05 17:20:18 +03:00
otavepto
2ede507e96
* refactor Steam_Client
class implementation, by moving all interfaces getters into a separate .cpp file
...
* use C++ casts instead of C-Style casts, allowing the compiler to throw errors for invalid usages/casts
2024-05-05 17:20:18 +03:00
otavepto
60e003a925
added missing inheritance from interface ISteamUser022
to the class Steam_User
2024-05-05 17:20:18 +03:00
otavepto
06c2bfd0a3
lots of comments and notes in the callsystem
2024-05-05 17:20:18 +03:00
otavepto
e5d1a8bda7
separate .h/.cpp files
2024-05-03 03:33:46 +03:00
otavepto
6e4c42410c
* added 2 new options to the overlay appearance Notification_Margin_x
and Notification_Margin_y
...
* updated the built-in overlay appearance & the example overlay ini file with a darker look and feel + changed some defaults
2024-04-30 08:38:38 +03:00
otavepto
5cd5f814e6
* use corresponding steam types for auth functions
...
* corrected the ticket size in `Auth_Manager::getWebApiTicket`
2024-04-30 00:26:43 +03:00
Detanup01
d6a4b7f0ba
no more copy if the size is bigger than the ticket
2024-04-29 22:52:33 +03:00
Detanup01
be42ac9b13
Checking if its bigger than max
...
and returning 0 if it is
2024-04-29 22:52:33 +03:00
Detanup01
5e4eafd6fb
) bonus removed
2024-04-29 22:52:33 +03:00
Detanup01
5d3a749fe1
Fix allocating the size for the ticket.
2024-04-29 22:52:33 +03:00
otavepto
e2980d100e
* use std::filesystem::u8path to support utf-8
...
* don't sanitize paths in settings_parser since it removes the colon ':', preventing the usage of absolute paths on Windows like 'C:\aa\bb'
2024-04-28 19:44:56 +03:00
otavepto
303cdd2878
* don't merge steam preowned ids with user dlc list or installed apps list
...
* disable steam preowned ids by default and make it an opt-in option
* deprecate `disable_steam_preowned_ids` in favor of `enable_steam_preowned_ids`
2024-04-28 19:44:10 +03:00
otavepto
9f1e09b97a
* fix the animation timing, the notification start_time
must be in millisec to avoid losing precision
...
* convert the animation duration to millisec once during settings parsing
* decrease the notification margin from 10.0 to 5.0, it looked way shifted on larger screens
* pass around instances on std::chrono instead of float, use float in the final stage when processing/operating-on the time (if needed)
* decrease the animation duration to 0.35 sec, looks more swishy!
2024-04-28 10:30:01 +03:00
schmurger
2eab708bb6
Added configuration for notification animation duration
2024-04-28 10:30:01 +03:00
otavepto
1b07a290f2
some logs
2024-04-27 01:52:17 +03:00
otavepto
21cce304e8
* revert the changes to the notifications heights + calculate all notifications heights dynamically
...
* added a new button to the overlay `"Test achievement"` which triggeres a test achievement
* added a new overlay appearance option `Achievement_Unlock_Datetime_Format` which allows changing the date/time format of the unlocked achievements
* removed the condition which disabled the overlay sounds when it is shown
2024-04-25 03:17:36 +02:00
schmurger
12fe4b9796
minor formatting fix
2024-04-24 19:52:05 +02:00
schmurger
d0193b953d
Improve achievement notification
2024-04-24 19:52:05 +02:00
otavepto
36ccb0b34c
fixed the behavior of local save + prevent loading global settings/configs in that case for a true portable behavior
2024-04-23 05:03:39 +02:00
otavepto
ad07ff0fb1
revert the changes to the old steam interfaces parser
2024-04-23 04:58:36 +02:00
otavepto
6b71752fc0
don't bypass local_storage when saving .ini files in settings_parser
2024-04-23 02:16:02 +02:00
otavepto
68a65696e5
don't use global appdata path in matchmaking + matchmaking_servers, instead used current/active save directory, in case we're using local_save_path
2024-04-23 02:16:02 +02:00
otavepto
3dc17a8bc4
ability to get global settings files size + current user save path in local_storage, needed in case we are now using a custom local_save_path
2024-04-23 02:16:02 +02:00
otavepto
48373bfc88
make the preowned IDs opt-out option
2024-04-21 21:33:08 +02:00
otavepto
65147c22b9
small note and refactor
2024-04-21 00:41:59 +02:00
otavepto
d8f9741459
revert the changes to Steam_Apps::BIsAppInstalled()
, not it will return true for owned DLCs
2024-04-20 19:30:29 +02:00
otavepto
2bde7e4eba
disable friend avatar functionality by default + new option to enable it
2024-04-20 19:29:54 +02:00
otavepto
3fab2f39b1
fixed a bug in the flag which enables the overlay + added missing settings file + some refactoring
2024-04-20 19:28:50 +02:00
otavepto
ed3d2cfc44
new option add_steam_preowned_ids
to unlock pre-owned Steam Apps
2024-04-20 19:26:55 +02:00
otavepto
0e694f1e86
* write dlc to [app:dlcs] inside .ini
...
* fix a mistake when mixing output from generate_emu_config tool
* ensure output from generate_emu_config tool is written as soon as possible in case another stage threw an exception
* fix a bug when writing .ini, ensure everything is a string
* new readme for the migration tool
2024-04-20 17:30:04 +02:00
otavepto
0c4344e1bf
fix that problem for Linux compilation
2024-04-20 17:24:26 +02:00
otavepto
e1f4f3038d
chagne default user name + set default IP country
2024-04-20 01:22:16 +02:00
otavepto
8b4d9eca8f
removed obsolete settings for overlay warnings
2024-04-20 01:21:45 +02:00
otavepto
dde8fd0f97
ensure old interfaces are always loaded in all cases
2024-04-20 01:20:10 +02:00
otavepto
87d8b459f0
parse old interfaces using the new method
2024-04-20 01:18:57 +02:00
otavepto
455123f487
new format for all settings
2024-04-20 01:17:32 +02:00
otavepto
893f566375
workaround to make Steam Input work, not guaranteed
2024-04-20 01:13:10 +02:00
otavepto
f0c42efcbf
changed default saves folder name from "Goldberg SteamEmu Saves" to "GSE Saves"
2024-04-20 01:10:40 +02:00
otavepto
aa53202022
some refactoring
2024-04-20 01:09:55 +02:00
otavepto
77592c3b4f
move everything inside a different ini
2024-04-17 21:20:34 +02:00
otavepto
35c0c408b9
* allow changing the name of the base folder used to store save data via saves_folder_name
, by default it would be Goldberg SteamEmu Saves
...
* changed the environment variable `SteamAppPath` to `GseAppPath`
* allow loading `config.ini` from global settings path + merge it with the local one, and allow the local one to override the global one
* fixed the path returned by `get_user_appdata_path()` to include the path separator
* updated readmes
2024-04-16 22:59:27 +02:00
otavepto
2ee64147bd
allow creating the file local_save.txt
inside the steam_settings
folder
2024-04-15 21:13:11 +02:00
otavepto
7a5d4f75c6
fix a mistake
2024-04-14 21:27:21 +02:00
otavepto
d36ec05f1b
output verbose func signature on linux
2024-04-14 20:56:18 +02:00
otavepto
d7ffeee063
fixed some mistakes + debug messages
2024-04-14 19:10:35 +02:00
otavepto
f50db936e2
* parse all ini entries
...
* added missing example for local_save.txt
2024-04-14 18:41:09 +02:00
otavepto
77ea53b59e
initial shape
2024-04-14 11:09:18 +02:00
otavepto
484fc2a982
* set these env vars for a more accurate emulation:
...
- `SteamAppUser`
- `SteamUser`
- `SteamClientLaunch`
- `SteamEnv`
- `SteamPath`
2024-04-13 17:35:10 +02:00
otavepto
ca8fb4bc35
increase run callbacks background thread polling time to ~200ms
2024-04-12 10:25:34 +02:00