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
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
otavepto
3c9b327fb5
* cleanup/remove all networking callbacks on object destruction
...
* reset pointers on client destruction
2024-03-26 21:39:52 +02:00
otavepto
b6c7df40b6
* implemented the missing interface ISteamGameServerStats
, allowing game servers to exchange user stats with players
...
* add rmCallback() to networking
* refactor gameserver_stats into a separate .cpp file
2024-03-26 21:39:52 +02:00
otavepto
75bb4ff03d
* missing delete for ubc_bridge in steam_client
...
* Steam_UserStats: use const ref when getting the stats list/map
* Steam_UserStats: don't fail in `GetStat()`/`GetAchievement()` if output buffer is null
* change datatype for default int stat, should be signed
* some logging & comments
2024-03-26 21:39:52 +02:00
otavepto
2427ee12fd
* use const ref for get/set env var
...
* lock global mutex when generating steam api call id
2024-03-26 21:39:52 +02:00
otavepto
166e7db122
more logging
2024-03-20 00:25:54 +02:00
otavepto
846fd6815e
allow overlay invitations to obscure game input to be able to accept/reject the request
2024-03-18 05:57:24 +02:00
otavepto
206732dc8e
don't log the periodic callback messages, they fill the log with non-useful events
2024-03-18 01:19:24 +02:00
otavepto
c193a8d4ce
more debug messages in matchmaking
2024-03-17 04:29:49 +02:00
otavepto
5417e0e4c2
Steam_Apps::GetCurrentBetaName()
make sure the out buffer is null terminated
2024-03-17 01:58:57 +02:00
otavepto
f00fdac3ac
update comment + changelog
2024-03-17 01:22:18 +02:00
bitsynth
5a7fa86310
fix Age of Empires 2: Definitive Edition
...
this game expects the current app to exist as a owned DLC. if not true, the game will only load the "Return of Rome" game mode, if that DLC is owned, or load the base game with most options disabled if it is not
2024-03-17 01:15:08 +02:00
otavepto
db07e4aadf
in Steam_Utils::IsAPICallCompleted initialize the pFailed param to false
2024-03-16 07:14:04 +02:00
otavepto
325631e1fd
* run SteamAPI_ManualDispatch_Init() only once
...
* don't run callbacks background thread when calling Steam_BGetCallback()
2024-03-16 05:43:44 +02:00
otavepto
28f097c9c1
log when adding callresult
2024-03-16 05:41:05 +02:00
otavepto
37261bedb8
* don't run callbacks in steam_utils::runframe()
...
* initialize a param in steam_utils::isapicompleted()
2024-03-16 05:20:40 +02:00
otavepto
09979e8eca
add a param to prevent running the callbacks background thread, for manual dispatch
2024-03-16 05:19:04 +02:00
otavepto
7700cd5dda
log message
2024-03-15 15:40:33 +02:00
otavepto
3dbfbb76b1
* refactor steam_utils into a separate cpp file
...
* call RunCallbacks() inside Steam_Utils::RunFrame()
2024-03-15 02:43:59 +02:00
otavepto
af237639d5
* initially attempt to load the icons of all achievements, this will slow things down at startup,
...
but avoids having to load the achievement icon during gameplay which causes micro-stutter
2024-03-15 00:03:41 +02:00
otavepto
0b86464374
* load the icons of a single achievement each overlay callback invokation, will slow things down during startup
...
but this avoids having to load the achievement icon during gameplay which causes micro-stutter
* avoid loading and resizing the achievement icon each time it's unlocked
* Local_Storage: avoid allocating buffers unless `stbi_load()` was successfull
2024-03-15 00:03:41 +02:00
otavepto
2020c514d1
prefix a debug message
2024-03-09 13:47:59 +02:00
otavepto
896dfd736f
revert the initial delay for the overlay renderer detector back to 0
2024-03-08 21:28:17 +02:00
otavepto
875e3e4859
allow changing the font glyph spacing
2024-03-08 18:13:29 +02:00
otavepto
65edb7081a
allow controlling the renderer detector timeout via a config file
2024-03-08 18:13:29 +02:00
otavepto
88203b5c6f
* fixed a bug in settings parser where lines with single characters would be completely removed when stripped of spaces
...
* refactored and moved all helper functions into the relevant helpers source file
2024-03-08 18:13:29 +02:00
otavepto
3f09a4c929
spicify float literal
2024-03-08 18:13:29 +02:00
otavepto
0dd755df84
decrease the default overlay hook delay to 3 sec
2024-03-08 18:13:29 +02:00
otavepto
5df75be04b
attempt to load the locked achievement icon from the json key icongray
if the normal one failed, adding compatibility with older format
2024-03-08 18:13:29 +02:00
otavepto
4d23a859f3
* new config file overlay_hook_delay_sec.txt
to control the initial delay for the overlay's renderer detector
...
* send the value of the `accept_overlay_invites` to settings_server too!
2024-03-08 18:13:29 +02:00
otavepto
6a5fbf2b7d
formatting
2024-03-08 18:13:29 +02:00
otavepto
5c312306d4
use const ref in many places
2024-03-08 18:13:29 +02:00