Commit Graph

591 Commits

Author SHA1 Message Date
Mr_Goldberg
42d9217f00
Fix build issue. 2019-10-19 12:06:39 -04:00
Mr_Goldberg
828e5d456c
Inventory/achivements bug fixes/improvements/cleanups. 2019-10-19 12:02:30 -04:00
Mr_Goldberg
815e3de361
Merge branch 'achievements_support' of gitlab.com:Nemirtingas/goldberg_emulator 2019-10-19 11:58:29 -04:00
Nemirtingas
dbc4e7e08b Update base.cpp 2019-10-16 17:31:46 +00:00
Nemirtingas
04d376ce25 Fix the address being out of the range lower_bound < addr < upper_bound 2019-10-16 17:00:08 +02:00
Nemirtingas
19c444de7f Remove the inventory folder 2019-10-13 15:27:17 +02:00
Nemirtingas
22b52df279 Fix the disabled functions prototype 2019-10-13 11:19:18 +00:00
Nemirtingas
8c45ab2003 Rework inventory loading
More generic json loading allows to load a json from a specified folder rather than the "inventory" directory.
Also changed achievements location to <appid> root diectory
2019-10-13 12:26:22 +02:00
Nemirtingas
f15b2b0458 Steam returns true even if the achievement is already set 2019-10-11 16:08:46 +02:00
Nemirtingas
c60a763f68 Don't overwrite achievement date
Don't overwrite achievement date when setting the achievement and it was already set.
2019-10-10 23:13:21 +02:00
Nemirtingas
7ce278fc47 Merge branch 'master' into achievements_support 2019-10-10 08:28:20 +02:00
Mr_Goldberg
0a29ed5a9a
Implement a few functions in steam networking utils. 2019-10-09 17:36:36 -04:00
Nemirtingas
8d22fb72ae Merge branch 'master' into 'achievements_support'
# Conflicts:
#   dll/steam_remote_storage.h
2019-10-05 19:48:41 +00:00
Mr_Goldberg
736d1a9090
Make isteamutils call result functions respect callback delays. 2019-10-05 15:41:28 -04:00
Mr_Goldberg
1427a4bcef
More accurate steam remote storage behavior. 2019-10-05 15:40:29 -04:00
Mr_Goldberg
bd921b0939
Add a way to disable all the networking functionality in the emulator. 2019-10-05 15:39:50 -04:00
soft as HELL
787cac47db Add delay to FileWriteAsync callback 2019-10-04 19:01:17 +03:00
soft as HELL
9508326732 Add validation to writes 2019-10-03 16:17:34 +03:00
Nemirtingas
846ed27397 Add a default inventory support
Put a file in <steam_api.dll directory>/steam_settings/default_items.json with all default items you want (same syntax as the inventory file)
2019-09-23 19:06:24 +02:00
Mr_Goldberg
75dd582dec
Fix crash when one of the lobby keys which was supposed to be an int was not an int. 2019-09-22 11:35:27 -04:00
Mr_Goldberg
5ed9a7aa77
Fix dumb bug. 2019-09-20 11:04:04 -04:00
Nemirtingas
5ad434e190 Merge branch 'master' into overlay_h 2019-09-20 13:26:34 +02:00
Nemirtingas
1545e375a2 Fix wrong broadcast addr on windows 2019-09-20 13:12:42 +02:00
Mr_Goldberg
b77b4e2ef5
Fix older ActionOrigins functions. 2019-09-20 06:14:08 -04:00
Nemirtingas
6c19056fbb Change inventory files place.
inventory is now in %appdata%/goldberg.../<appid>/inventory just like remote and stats.
It is also affected by the local_save.txt
2019-09-18 14:54:09 +02:00
Mr_Goldberg
ee4722cb33
Activate the action set if there is only one present. 2019-09-14 18:32:26 -04:00
Mr_Goldberg
03a1627d07
SteamInput GetDigitalActionOrigins and GetAnalogActionOrigins implemented. 2019-09-14 17:24:05 -04:00
Mr_Goldberg
09704ae243
Fixed issue where GetAnalogActionData magnitude of joystick was always maximum. 2019-09-12 07:21:11 -04:00
Mr_Goldberg
663728edca
Allow action names to be used in more than one action set at the same time. 2019-09-11 09:08:05 -04:00
Mr_Goldberg
8b9e0e25ca
Forgot this in last commit. 2019-09-10 23:58:27 -04:00
Mr_Goldberg
2af93427fe
Initial Xinput ISteamInput/ISteamController support. 2019-09-10 14:54:54 -04:00
Mr_Goldberg
4db580d945
Add missing older steam api SteamUnifiedMessages() function. 2019-09-07 10:35:55 -04:00
Mr_Goldberg
58083e0863
Started work on a real avatars implementation.
Fix issue where since the image ids changed for
every get avatar call mudrunner would keep allocating
memory indefinitely.
2019-09-07 09:39:41 -04:00
Nemirtingas
86b178f55b Fixed definition update not being called
Should update definition when inventory is requested and definition is not loaded
2019-09-01 21:33:29 +02:00
Nemirtingas
dd13377be7 Added linux arch define 2019-09-01 20:47:46 +02:00
Nemirtingas
495bc957cd Added some os detection
Need to detect linux x86 or x64
2019-09-01 20:46:55 +02:00
Nemirtingas
d9b9b990f3 Update settings_parser.cpp 2019-08-26 17:55:31 +00:00
Nemirtingas
7a59f48000 Merge branch 'master' into achievements_support 2019-08-26 19:45:58 +02:00
Nemirtingas
2365b50c38 Merge branch 'master' into overlay_h 2019-08-26 19:32:06 +02:00
Mr_Goldberg
bca4bd6dc1
Added a way to configure stats and moved parser logic to other file. 2019-08-26 13:01:45 -04:00
Nemirtingas
f1118030e8 Added the forgotten size update if copied less chars. 2019-08-25 00:29:05 +02:00
Nemirtingas
abb26d402f Fix 2019-08-24 18:10:56 +02:00
Nemirtingas
21e08ed220 Achievements support & inventory customization.
Added achievements support. Achievements are saved like real steam, see your inventory directory.(like items, uses a .json, tool can be used to dump achievements from steam public api).
You will need a public apikey. (See https://steamcommunity.com/dev)
Reworked item support to split inventory items to defined items.
2019-08-24 17:42:39 +02:00
Nemirtingas
ea4588f442 (WIP) achievements support
build is also WIP
2019-08-21 20:52:36 +02:00
Nemirtingas
7daf605511 Merge branch 'master' into overlay_h 2019-08-18 12:30:51 +02:00
Mr_Goldberg
ced9b77afc
Tweaked auth delays. 2019-08-17 18:15:18 -04:00
Mr_Goldberg
06b4332187
Add some commented out code to disable https in winhttp. 2019-08-17 18:03:21 -04:00
Mr_Goldberg
0e17aeef76
Basic steamclient.dll emulation.
Build with STEAMCLIENT_DLL defined to build in steamclient.dll mode.
2019-08-17 18:02:15 -04:00
Mr_Goldberg
e044205e71
Make encrypted ticket size more realistic. 2019-08-17 18:00:31 -04:00
Nemirtingas
8abd24ca54 Re-enabled auto join if overlay is not ready 2019-08-16 00:12:11 +02:00
Nemirtingas
cb67853e45 Fixed build for 64bits 2019-08-14 18:54:38 +02:00
Nemirtingas
6224350142 Fixed compilation for windows 2019-08-14 18:11:00 +02:00
Nemirtingas
f9ee123a05 Merge branch 'master' into overlay_h 2019-08-12 16:47:58 +02:00
Mr_Goldberg
1d19d49419
Increase return value of GetAppBuildId. 2019-08-12 10:40:16 -04:00
Nemirtingas
03d02b497b Merge branch 'master' into overlay_h 2019-08-06 12:14:51 +02:00
Mr_Goldberg
07af5737b4
Merge branch 'DLC-comments' of gitlab.com:Lyberta/goldberg_emulator 2019-08-05 18:34:50 -04:00
Nemirtingas
2930f12420 Merge branch 'master' into overlay_h 2019-08-04 21:00:43 +02:00
Mr_Goldberg
35860efa3a
Only set g_pSteamClientGameServer in steam gameserver init functions. 2019-08-04 14:36:28 -04:00
Lyberta
b41517cd91 Added hash comments to DLC.txt 2019-08-04 14:10:22 +00:00
Nemirtingas
f30b0c9fb2 Merge branch 'master' into overlay_h 2019-08-04 11:11:40 +02:00
Mr_Goldberg
35c59044fd
SteamGameServerClient should return NULL if the gameserver is not initialized. 2019-08-03 19:00:31 -04:00
Mr_Goldberg
bf4847452e
SteamAPI_Shutdown actually does something now. 2019-08-03 18:58:23 -04:00
Mr_Goldberg
f4ab249f36
Add a way to configure which leaderboards are seen by the game. 2019-08-03 18:55:08 -04:00
Nemirtingas
4f9e67d700 Support for chat message (WIP) 2019-08-03 12:58:48 +02:00
Nemirtingas
2a373bbf79 Now I set the invite instead of adding it.
You should send a lobby invite or a rich invite, but not both.
2019-08-02 23:01:24 +02:00
Nemirtingas
8fe7c2267a User must now accept invite 2019-08-02 13:02:20 +02:00
Nemirtingas
156bee1564 Invitation & Chat support (WIP) 2019-08-02 11:16:30 +02:00
Nemirtingas
a1037e3bf2 size() returns a size_t. 2019-08-01 19:08:09 +02:00
Nemirtingas
884f147e1b Merge branch 'master' into overlay_h 2019-08-01 15:56:43 +02:00
Nemirtingas
e6826d8ead Basic & Ugly implementation of overlay.
Overlay still WIP, don't look too much into the code.
I will do it better soon.
2019-08-01 15:47:47 +02:00
Mr_Goldberg
7939796680
Fix build. 2019-07-31 10:25:05 -04:00
Mr_Goldberg
26c5b7949f
Implemented some ugc remote storage functions related to fileshare. 2019-07-31 10:01:55 -04:00
Mr_Goldberg
8723dad025
Update to sdk 1.46 2019-07-28 09:02:09 -04:00
Nemirtingas
a60a106daf Implementing overlay into existing code. 2019-07-25 23:33:28 +02:00
Mr_Goldberg
bb9c516775
Fix crash in crazy taxi. 2019-07-20 14:45:50 -04:00
Mr_Goldberg
55835de708
Untested version of GetInstalledDepots. 2019-07-20 14:45:37 -04:00
Nemirtingas
d2fba40cb4 Small improvements
Its always better to reserve memory when we can for a vector. Also, STL implements a lot of algorithms, its better to use them in case someday you need to change it to something alike. Like reversing the copy, use transform instead, etc...
2019-07-18 22:21:55 +02:00
Mr_Goldberg
514f2ddbd9
Some small cleanups. 2019-07-17 15:55:12 -04:00
Mr_Goldberg
2a659043d3
Fix build. 2019-07-17 13:54:23 -04:00
Mr_Goldberg
59a9fcee0d
Some cleanups.
Load items json only if there's an inventory request.

Launch callbacks only when loading is done.

Copy over original unformatted json.hpp
2019-07-17 13:25:35 -04:00
Mr_Goldberg
f56503fcd0
Merge branch 'issue_#5' of https://gitlab.com/Nemirtingas/goldberg_emulator into inventory_pr 2019-07-17 13:22:35 -04:00
Nemirtingas
fb31aef9b2 Set items to static
Set items to static and call the json load only once.
2019-07-17 17:28:39 +02:00
Mr_Goldberg
66932785c3
Beggining of a actually working steam networking sockets implementation. 2019-07-15 20:00:52 -04:00
Mr_Goldberg
e252f83e8a
Make auth stuff behave more like real steam. 2019-07-15 10:07:34 -04:00
Nemirtingas
7853451b01 Added buffer size check while populating it. 2019-07-14 22:47:33 +02:00
Mr_Goldberg
0677b8e2ff
Tweak some delays to get the game ignite working. 2019-07-14 16:25:16 -04:00
Nemirtingas
0b134e98a9 Added debug message 2019-07-14 22:24:56 +02:00
Nemirtingas
98c556d6dc atomic_bool is not copy_constructible 2019-07-14 21:01:42 +02:00
Nemirtingas
3273b1482b steam_items.json renamed
steam_items.json has been renamed to items.json and now lives in steam_settings beside the steam_api.dll
2019-07-14 20:53:20 +02:00
Nemirtingas
332c0479bb Moved json.hpp to its own folder. 2019-07-14 20:51:47 +02:00
Nemirtingas
573a01212b Switch to atomic_bool for thread synchronisation. 2019-07-14 20:51:23 +02:00
Nemirtingas
5c66c21f53 Modified Inventory to match steam's implementation 2019-07-14 19:22:30 +02:00
Nemirtingas
06f88d4687 Added the missing use cases
If pchPropertyName == NULL and/or pchValueBuffer == NULL
2019-07-12 22:26:45 +02:00
Mr_Goldberg
f3e968b54c
SteamInternal_CreateInterface should return NULL if not called with "SteamClient" 2019-07-12 15:54:26 -04:00
Nemirtingas
0a9b950d2e Merge branch 'master' into issue_#5 2019-07-12 21:04:11 +02:00
Mr_Goldberg
6dd7f517e6
Fix last pull request. 2019-07-12 11:26:07 -04:00
Mr_Goldberg
ba1591d8e7
Merge branch 'Nemirtingas/goldberg_emulator-issue_#14' 2019-07-12 11:25:22 -04:00
Mr_Goldberg
aa9e3c0c46
Small improvements to last commit. 2019-07-10 08:03:40 -04:00
Nemirtingas
19659da6c2 Fixed crash on load.
Fixed dll crash on load by adding a check if the Json file exists or not.
2019-07-09 15:07:10 +02:00
Nemirtingas
5f67d359b3 Fixed typo because of merging 2019-06-25 15:53:00 +02:00
Nemirtingas
bbf6a3b6ff Added partial inventory support.
For now, I load items and add them to the inventory and to the market.
2019-06-25 15:10:33 +02:00
Nemirtingas
5265382d9d Added Json item loader
Added Json item loader
2019-06-25 15:04:09 +02:00
Nemirtingas
38f05f2fc7 Added function definition to load item database.
Added function definition to load item database.
2019-06-25 15:03:23 +02:00
Nemirtingas
2039b04887 Added C++ Json support.
Added C++ Json template library.
Source: https://github.com/nlohmann/json
2019-06-25 14:59:40 +02:00
Nemirtingas
72d7d15adc Added the line to push dir name on linux 2019-06-19 18:43:14 +02:00
Nemirtingas
a1d336bf56 Pass dir_name by reference
Passing dir_name by reference will save a copy constructor.
2019-06-19 18:39:14 +02:00
Nemirtingas
717808e796 Updated for the linux case. 2019-06-18 10:55:17 +02:00
Nemirtingas
b034ee8781 Changed param source in strncpy
In strncpy its the destination size that should be in the 3rd parameter.
2019-06-18 00:25:56 +02:00
Nemirtingas
e54072918f Added check on directory in Local_Storage::file_exists
Added check on directory in Local_Storage::file_exists.
Added check in get_filenames_recursive if last char is the path separator (some use cases were adding a path separator even if there were already one).

In base.h, added check on s and r, that will avoid an out-of-range vector exception on Visual Studio, same for network.cpp.
2019-06-17 23:08:23 +02:00
Nemirtingas
b093ca90d3 Fix issue #14
This commit fixes game crash in ETS2.
The parameter order is wrong, 1st param is what to replace and 2nd param is with what to replace.
2019-06-16 15:14:21 +02:00
Nemirtingas
6d22c4989e Modified Sanitize
Modified Sanitize to allow all ANSI printable chars.
2019-06-16 12:10:51 +02:00
Nemirtingas
32b8a8b169 Update local_storage.cpp, replace_with string parameters should be const. (Fix build error on VisualStudio) 2019-06-08 08:45:09 +00:00
Mr_Goldberg
794469c4cf
Create lobby even if the run callbacks function is never run. 2019-06-01 13:11:27 -04:00
Mr_Goldberg
c4e0c855df
Experimental build: Load luma ceg plugin dll if present. 2019-05-30 12:59:53 -04:00
Mr_Goldberg
1f79ca9231
Basic IsUserInSource implementation for the main lobby. 2019-05-30 07:58:03 -04:00
Mr_Goldberg
51a5e3bc27
Some steam networking accuracy improvements. 2019-05-30 07:56:00 -04:00
Mr_Goldberg
968cd6d601
Only call server request callback if not NULL. 2019-05-26 13:46:43 -04:00
Mr_Goldberg
9a9c3e1a4b
Fix remote folder so that directory structure is exactly like in real steam. 2019-05-23 09:35:12 -04:00
Mr_Goldberg
68b8e0241a
Add support for isteamgameserver 005-011 2019-05-20 12:35:55 -04:00
Mr_Goldberg
1717323cd7
Add delay to p2p session request callback to fix aoe2hd. 2019-05-17 14:15:12 -04:00
Mr_Goldberg
8daa896c86
Cleanup. 2019-05-17 14:13:48 -04:00
Mr_Goldberg
cf05e58266
Add program to generate steam_interfaces.txt 2019-05-15 08:24:39 -04:00
Mr_Goldberg
c20944ca0a
More accurate behavior. 2019-05-11 14:44:06 -04:00
Mr_Goldberg
a36f6e8e68
Add support for setting app/DLC paths. 2019-05-09 08:10:03 -04:00
Mr_Goldberg
fae4df7012
Fix custom broadcasts not resolving on windows. 2019-05-08 16:31:23 -04:00
Mr_Goldberg
147fc50be1
custom broadcasts file can now contain domains.
custom broadcasts can now be put in the steam_settings folder.
2019-05-08 15:43:25 -04:00
Mr_Goldberg
106d4025bb
Make the inventory result callback respect the result timeout. 2019-05-03 21:54:32 -04:00
Mr_Goldberg
2ba58d9f78
Fix build. 2019-05-03 09:09:06 -04:00
Mr_Goldberg
701eba17e8
Custom broadcasts file is more appropriate in:
Goldberg SteamEmu Saves/settings/custom_broadcasts.txt

Use C++ vector instead of C arrays.
2019-05-03 08:50:10 -04:00
Mr_Goldberg
9cdf99c63a
Merge branch 'Arkhist/goldberg_emulator-custom_broadcasts' into HEAD 2019-05-03 07:02:48 -04:00
Arkhist
b9e2b5fa40 Added custom broadcasts file 2019-04-22 14:09:21 +02:00
Mr_Goldberg
e3ddc8d89f
Very basic steam game coordinator emulation. 2019-04-21 16:48:32 -04:00
Mr_Goldberg
08a96883e7
Fix bug. 2019-04-21 16:47:54 -04:00
Mr_Goldberg
5af7508e2f
Add steam offline mode and change steam_appid.txt priority. 2019-04-21 16:47:45 -04:00
Mr_Goldberg
5cf841c603
Made some friends function behavior more accurate. 2019-04-16 17:59:03 -04:00
Mr_Goldberg
fb7c8ea35b
Make lobby_connect work on Linux.
Fix a bug with it not finding rich presence.

Code is all open source now so no need to ship the lobby connect source in the release.
2019-04-16 17:58:08 -04:00
soft as HELL
52cad2114d
Simplify default path creation 2019-04-16 07:46:40 +03:00
soft as HELL
1c19f418c6
Respect XDG_DATA_HOME 2019-04-15 19:25:54 +03:00
Mr_Goldberg
b7b5f78e7f
Load all interface versions that matter from steam_interfaces.txt 2019-04-14 08:40:09 -04:00
Mr_Goldberg
06b0d1c67f
Fix build issue on latest vs build tools. 2019-04-13 12:29:32 -04:00
Mr_Goldberg
d968c3e1b5
Initial commit. 2019-04-13 12:21:56 -04:00