632 Commits

Author SHA1 Message Date
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
otavepto
f315bec961 more callbacks 2024-04-11 14:08:04 +02:00
otavepto
4d895b63b0 more accurate implementation for callbacks and call results in UserStats and GameServerStats interfaces 2024-04-11 06:40:29 +02:00
otavepto
1b18338579 debug log for entry and exit of settings parser 2024-04-11 02:56:38 +02:00
otavepto
9be27ffd85 * allow loading the overlay fonts from the global settings folder Goldberg SteamEmu Settings/settings/fonts 2024-04-11 01:16:53 +02:00
otavepto
3c2b849601 fix that stupid mistake in overlay when loading audio buffers 2024-04-10 12:27:37 +02:00
otavepto
e62f9251df allow injecting id string during build via command line switch +build_str <str> 2024-04-10 11:05:26 +02:00
otavepto
9fe55f2e81 for the overlay:
* reduce code duplication
* avoid bypassing local_storage when loading sounds
* avoid alloating sound buffers via new-delete, use std::vector
* clear/reset all global objects on destroy
2024-04-10 11:05:26 +02:00
otavepto
048b9a94cd make sure allocated data ptr in null (not garbage) 2024-04-10 11:05:26 +02:00
otavepto
d802dba47d fix size check bug in matchmaking_servers 2024-04-10 11:05:26 +02:00
otavepto
4afa1926ad refactor settings parser code + remove deprecated setting for local save location, already saved in local_storage 2024-04-10 11:05:26 +02:00
otavepto
b01486c765 * cleanup custom sound buffers on destroy + cleanup entire overlay class on destroy
* fix sound for auto-accept invites
2024-04-10 11:05:26 +02:00
otavepto
53533ee4af don't bypass local_storage in steam_friends class 2024-04-10 11:05:26 +02:00
otavepto
28da5747db const ref args in some places 2024-04-09 19:10:04 +02:00
otavepto
2deda8a2eb disable the overlay by default, and only enable it via the config file enable_experimental_overlay.txt, avoiding many crashes 2024-04-09 15:45:54 +02:00
otavepto
b4d061e949 force add gameserver if always_lan_type was specified, not necessary but just in case 2024-04-09 11:13:36 +02:00
otavepto
c48b5c4a37 note for reference 2024-04-08 00:33:10 +02:00
otavepto
4f0df79940 properly format some debug messages in auth 2024-04-06 22:58:47 +02:00
otavepto
392305c1e3 run the background thread for callbacks earlier inside Steam_Client::ConnectToGlobalUser()
since some games don't call `SteamAPI_RunCallbacks()` or `SteamAPI_ManualDispatch_RunFrame()` or `Steam_BGetCallback()`
hence all run_callbacks() will never run, also networking callbacks won't run
2024-04-06 08:30:08 +02:00
otavepto
0b5d38ae7e * properly implement Steam_Apps::GetAvailableGameLanguages()
* ensure current emu language is inside supported_languages list
2024-04-06 08:30:08 +02:00
otavepto
8576d149d3 remove functions names prefixes in debug logs 2024-04-06 08:30:08 +02:00
otavepto
28cdb2c74e output func name in debug log 2024-04-06 08:30:07 +02:00
otavepto
5ddbfccfdd * load overlay fonts with relative paths from steam_settings\fonts
* remove invalid parameters from `overlay_appearance.txt`
* example funny font!
2024-04-03 20:26:39 +02:00
detiam
bfdca710f4 allow load custom ttf 2024-04-03 12:19:47 +02:00
detiam
ac709e78e6 change overlay builtin font to unifont 2024-04-03 12:19:47 +02:00
otavepto
b5b9dfe437 descriptive var name for these tests 2024-04-02 22:33:04 +02:00
otavepto
3cedf8dbe3 refactor line ending + error string 2024-04-02 02:48:57 +02:00
Detanup01
7e3f2e0900 i hate myself 2024-04-02 01:15:42 +02:00
Detanup01
bfd2235684 Update for 159 2024-04-02 01:15:42 +02:00
otavepto
0672139f46 properly implement Steam_User_Stats::ResetAllStats() 2024-04-01 19:23:55 +02:00
otavepto
51197c5348 allow user_stats to send data immediately via config file 2024-04-01 19:23:55 +02:00
otavepto
0ed6dc6808 prefer udp when sending leaderboards 2024-04-01 19:23:55 +02:00
otavepto
e31f030d55 allow gameserver to send data as soon as possible via immediate_gameserver_stats.txt 2024-04-01 19:23:55 +02:00
otavepto
2f5b0a4bea sanity check in gameserver_stats if the msg source steamid was similar to us! 2024-04-01 19:23:55 +02:00
otavepto
e143a6dd82 * new function in networking to send to all gameservers only
* broadcast user stats with gameservers only
2024-04-01 19:23:55 +02:00
otavepto
04e7a7d476 opt-in sharing leaderboards instead of opt-out 2024-04-01 19:23:55 +02:00
otavepto
93172e642e allow disabling the new options via config files 2024-04-01 19:23:55 +02:00
otavepto
a36cadbf12 allow empty board entries, don't force and entry for current user 2024-04-01 19:23:55 +02:00
otavepto
4d03c5b402 fix a memory leak 2024-04-01 19:23:55 +02:00
otavepto
d8a91edcf5 only accept leaderboards updates from the same appid 2024-04-01 19:23:55 +02:00
otavepto
caa9401369 * for gameserver_stats & user_stats: distinguish between stats update requests from server and client, avoiding a scenario where a client would overwrite another client's stats
* fixed linux compilation error
2024-04-01 19:23:55 +02:00
otavepto
995a296e59 fix that clang warning 2024-04-01 19:23:55 +02:00
otavepto
d2f23fbea5 share leaderboards scores with connected players, adjust players ranks locally, and sort entries as needed by the game 2024-04-01 19:23:55 +02:00
otavepto
c17cb8a4f7 in gameserver_stats: remove & timeout pending requests if the user disconnected 2024-04-01 19:23:55 +02:00
otavepto
f423b07eef * common function to do case insensitive compare
* some const + ref in different places
* some logs, comments & refactoring
2024-04-01 19:23:55 +02:00
otavepto
4809a7565c * separate the config file disable_leaderboards_create_unknown.txt
* some refactoring
2024-03-26 23:48:57 +02:00
otavepto
af77ce4f5a log messages 2024-03-26 21:39:52 +02:00
otavepto
dfbd928311 decrease min server latency to 2ms 2024-03-26 21:39:52 +02:00