Commit Graph

269 Commits (c162ca79d51988b8fc45c9c67a48365547530c83)

Author SHA1 Message Date
Mr_Goldberg 81830efd58
Close background thread on steamclient shutdown. 2020-01-15 12:40:18 -05:00
Mr_Goldberg 11cb3ce998
Fix some major issues (networking didn't work, gameservers didn't work) with the steamclient version.
Implemented a basic steampipe alloc system and fixed build.
2020-01-15 10:11:37 -05:00
Mr_Goldberg 4e6aa809de
Kill background thread on client shutdown. 2020-01-13 13:47:47 -05:00
Mr_Goldberg 71e265f52b
Add env variable to set app path. 2020-01-13 13:47:14 -05:00
Mr_Goldberg 106fb03bb0
Fix build issue. 2020-01-12 14:43:25 -05:00
Mr_Goldberg 282ac22a46
Use the better api for linux controller support and include it in the auto builds. 2020-01-12 14:28:57 -05:00
gion 1ef69bec74 Add missing Linux exports. 2020-01-10 13:14:09 +01:00
Nemirtingas 118dee9278 Merge remote-tracking branch 'Mr_Goldberg/master' into overlay_h 2020-01-10 08:16:16 +01:00
Mr_Goldberg e9513d4733
Add linux steamclient builds. 2020-01-08 18:43:18 -05:00
Mr_Goldberg 2faba9bed9
Try to support windows xp. 2020-01-08 18:26:42 -05:00
Mr_Goldberg a66779ed00
Fix network not working because game calls WSACleanup on startup. 2020-01-02 14:10:01 -05:00
Mr_Goldberg 2bbf9ef6df
Add small delay to new lobby member callbacks. 2019-12-20 15:05:28 -05:00
Mr_Goldberg b8aa74af0e
GetAppInstallDir accuracy improvements. 2019-12-12 14:11:05 -05:00
Mr_Goldberg cb1bb895c4
Forgot this when updating sdk. 2019-12-11 19:17:47 -05:00
Mr_Goldberg 0f0bbba319
GetGlyphForActionOrigin implementation. 2019-12-11 12:06:19 -05:00
Mr_Goldberg 262ee1d18f
Update to sdk 1.47 2019-12-09 12:49:55 -05:00
Nemirtingas c8028d6a98 Update steam_user_stats.cpp 2019-12-09 06:35:33 +00:00
Mr_Goldberg afa12b5846
Remove useless code. 2019-12-06 14:42:29 -05:00
Nemirtingas d1a4adc5bd Merge branch 'master' into 'overlay_h'
# Conflicts:
#   .gitlab-ci.yml
#   dll/steam_client.cpp
#   dll/steam_inventory.h
#   dll/steam_user_stats.h
2019-12-06 12:44:43 +00:00
Mr_Goldberg 949a327b8a
Implement inventory functions.
Fix CI build.
2019-12-04 08:44:14 -05:00
Mr_Goldberg 33cdf77c77 Set lobby member data should be available right away to getlobbymemberdata 2019-11-08 16:01:10 +01:00
Nemirtingas 56957abc99 Little improvements
steam_user_stats: Use the value stored in the JSON object.
steal_inventory: use 'empty' that is guaranteed to be constant in time.
2019-11-08 16:00:49 +01:00
Nemirtingas 02ef03b3f2 Fix my_master build 2019-11-08 15:59:29 +01:00
Nemirtingas a318e04959 Merge branch 'master' into my_master 2019-11-08 15:58:54 +01:00
Nemirtingas c8288d6bf3 Added file to disable overlay
Disable the overlay by creating a file disable_overlay.txt next to steam_api.dll
2019-11-08 15:57:04 +01:00
Nemirtingas ce79df1c26 Added customizable notification
Notification can have a type depending on what to show.
2019-11-08 15:52:38 +01:00
Mr_Goldberg 2986b01d0c
Set lobby member data should be available right away to getlobbymemberdata 2019-10-25 18:34:37 -04:00
Nemirtingas ef5693d9f8 Little improvements
steam_user_stats: Use the value stored in the JSON object.
steal_inventory: use 'empty' that is guaranteed to be constant in time.
2019-10-20 13:46:25 +02:00
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