mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-10-22 20:48:17 +08:00
more callbacks
This commit is contained in:
parent
a04a0d2f20
commit
f315bec961
@ -147,6 +147,10 @@ CSteamID generate_steam_id_lobby()
|
||||
return CSteamID(generate_account_id(), k_EChatInstanceFlagLobby | k_EChatInstanceFlagMMSLobby, k_EUniversePublic, k_EAccountTypeChat);
|
||||
}
|
||||
|
||||
/// @brief Check for a timeout given some initial timepoint and a timeout in sec.
|
||||
/// @param old The initial timepoint which will be compared against current time
|
||||
/// @param timeout The max allowed time in seconds
|
||||
/// @return true if the timepoint has exceeded the max allowed timeout, false otherwise
|
||||
bool check_timedout(std::chrono::high_resolution_clock::time_point old, double timeout)
|
||||
{
|
||||
if (timeout == 0.0) return true;
|
||||
|
@ -74,8 +74,10 @@ SteamAPICall_t CreateBrowser( const char *pchUserAgent, const char *pchUserCSS )
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
HTML_BrowserReady_t data;
|
||||
data.unBrowserHandle = 1234869;
|
||||
//callback too?
|
||||
return callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));;
|
||||
|
||||
auto ret = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -249,13 +249,23 @@ SteamAPICall_t SetPersonaName( const char *pchPersonaName )
|
||||
{
|
||||
PRINT_DEBUG_ENTRY();
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
SetPersonaNameResponse_t data;
|
||||
|
||||
SetPersonaNameResponse_t data{};
|
||||
data.m_bSuccess = true;
|
||||
data.m_bLocalSuccess = false;
|
||||
data.m_result = k_EResultOK;
|
||||
persona_change(settings->get_local_steam_id(), k_EPersonaChangeName);
|
||||
|
||||
return callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
auto ret = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
|
||||
{
|
||||
PersonaStateChange_t data2{};
|
||||
data2.m_nChangeFlags = EPersonaChange::k_EPersonaChangeName;
|
||||
data2.m_ulSteamID = settings->get_local_steam_id().ConvertToUint64();
|
||||
callbacks->addCBResult(data2.k_iCallback, &data2, sizeof(data2));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void SetPersonaName_old( const char *pchPersonaName )
|
||||
|
@ -825,10 +825,13 @@ STEAM_CALL_RESULT( SteamInventoryRequestPricesResult_t )
|
||||
SteamAPICall_t RequestPrices()
|
||||
{
|
||||
PRINT_DEBUG_ENTRY();
|
||||
SteamInventoryRequestPricesResult_t data;
|
||||
SteamInventoryRequestPricesResult_t data{};
|
||||
data.m_result = k_EResultOK;
|
||||
memcpy(data.m_rgchCurrency, "USD", 4);
|
||||
return callback_results->addCallResult(data.k_iCallback, &data, sizeof(data), 0.2);
|
||||
|
||||
auto ret = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data), 0.2);
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data), 0.2);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,36 +27,36 @@
|
||||
|
||||
|
||||
struct Pending_Joins {
|
||||
SteamAPICall_t api_id;
|
||||
CSteamID lobby_id;
|
||||
std::chrono::high_resolution_clock::time_point joined;
|
||||
bool message_sent;
|
||||
SteamAPICall_t api_id{};
|
||||
CSteamID lobby_id{};
|
||||
std::chrono::high_resolution_clock::time_point joined{};
|
||||
bool message_sent{};
|
||||
};
|
||||
|
||||
struct Pending_Creates {
|
||||
SteamAPICall_t api_id;
|
||||
std::chrono::high_resolution_clock::time_point created;
|
||||
ELobbyType eLobbyType;
|
||||
int cMaxMembers;
|
||||
SteamAPICall_t api_id{};
|
||||
std::chrono::high_resolution_clock::time_point created{};
|
||||
ELobbyType eLobbyType{};
|
||||
int cMaxMembers{};
|
||||
};
|
||||
|
||||
struct Data_Requested {
|
||||
CSteamID lobby_id;
|
||||
std::chrono::high_resolution_clock::time_point requested;
|
||||
CSteamID lobby_id{};
|
||||
std::chrono::high_resolution_clock::time_point requested{};
|
||||
};
|
||||
|
||||
struct Filter_Values {
|
||||
std::string key;
|
||||
std::string value_string;
|
||||
int value_int;
|
||||
bool is_int;
|
||||
ELobbyComparison eComparisonType;
|
||||
std::string key{};
|
||||
std::string value_string{};
|
||||
int value_int{};
|
||||
bool is_int{};
|
||||
ELobbyComparison eComparisonType{};
|
||||
};
|
||||
|
||||
struct Chat_Entry {
|
||||
std::string message;
|
||||
EChatEntryType type;
|
||||
CSteamID lobby_id, user_id;
|
||||
std::string message{};
|
||||
EChatEntryType type{};
|
||||
CSteamID lobby_id, user_id{};
|
||||
};
|
||||
|
||||
#define FILTER_MAX_DEFAULT 4096
|
||||
@ -72,30 +72,31 @@ public ISteamMatchmaking007,
|
||||
public ISteamMatchmaking008,
|
||||
public ISteamMatchmaking
|
||||
{
|
||||
class Settings *settings;
|
||||
class Networking *network;
|
||||
class SteamCallResults *callback_results;
|
||||
class SteamCallBacks *callbacks;
|
||||
class RunEveryRunCB *run_every_runcb;
|
||||
class Settings *settings{};
|
||||
class Networking *network{};
|
||||
class SteamCallResults *callback_results{};
|
||||
class SteamCallBacks *callbacks{};
|
||||
class RunEveryRunCB *run_every_runcb{};
|
||||
|
||||
std::vector<Lobby> lobbies;
|
||||
std::chrono::high_resolution_clock::time_point last_sent_lobbies;
|
||||
std::vector<struct Pending_Joins> pending_joins;
|
||||
std::vector<struct Pending_Creates> pending_creates;
|
||||
std::vector<Lobby> lobbies{};
|
||||
std::chrono::high_resolution_clock::time_point last_sent_lobbies{};
|
||||
std::vector<struct Pending_Joins> pending_joins{};
|
||||
std::vector<struct Pending_Creates> pending_creates{};
|
||||
|
||||
std::vector<struct Filter_Values> filter_values;
|
||||
int filter_max_results;
|
||||
std::vector<struct Filter_Values> filter_values_copy;
|
||||
int filter_max_results_copy;
|
||||
std::vector<CSteamID> filtered_lobbies;
|
||||
std::chrono::high_resolution_clock::time_point lobby_last_search;
|
||||
SteamAPICall_t search_call_api_id;
|
||||
bool searching;
|
||||
std::vector<struct Filter_Values> filter_values{};
|
||||
int filter_max_results{};
|
||||
std::vector<struct Filter_Values> filter_values_copy{};
|
||||
int filter_max_results_copy{};
|
||||
std::vector<CSteamID> filtered_lobbies{};
|
||||
std::chrono::high_resolution_clock::time_point lobby_last_search{};
|
||||
SteamAPICall_t search_call_api_id{};
|
||||
bool searching{};
|
||||
|
||||
std::vector<struct Chat_Entry> chat_entries;
|
||||
std::vector<struct Data_Requested> data_requested;
|
||||
std::vector<struct Chat_Entry> chat_entries{};
|
||||
std::vector<struct Data_Requested> data_requested{};
|
||||
|
||||
std::map<uint64, ::google::protobuf::Map<std::string, std::string>> self_lobby_member_data{};
|
||||
|
||||
std::map<uint64, ::google::protobuf::Map<std::string, std::string>> self_lobby_member_data;
|
||||
google::protobuf::Map<std::string,std::string>::const_iterator caseinsensitive_find(const ::google::protobuf::Map< ::std::string, ::std::string >& map, std::string key)
|
||||
{
|
||||
auto x = map.begin();
|
||||
@ -140,13 +141,12 @@ void trigger_lobby_dataupdate(CSteamID lobby, CSteamID member, bool success, dou
|
||||
{
|
||||
PRINT_DEBUG("%llu %llu", lobby.ConvertToUint64(), member.ConvertToUint64());
|
||||
LobbyDataUpdate_t data{};
|
||||
memset(&data, 0, sizeof(data));
|
||||
|
||||
data.m_ulSteamIDLobby = lobby.ConvertToUint64();
|
||||
data.m_bSuccess = success;
|
||||
data.m_ulSteamIDMember = member.ConvertToUint64();
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data), cb_timeout, true);
|
||||
|
||||
// if this was a user data update, then trigger another callback for the lobby itself
|
||||
if (lobby != member) {
|
||||
data.m_ulSteamIDMember = lobby.ConvertToUint64();
|
||||
//Is this really necessary?
|
||||
@ -277,6 +277,7 @@ void remove_lobbies()
|
||||
void on_self_enter_leave_lobby(CSteamID id, int type, bool leaving)
|
||||
{
|
||||
if (type == k_ELobbyTypeInvisible) return;
|
||||
|
||||
if (!leaving) {
|
||||
settings->set_lobby(id);
|
||||
} else {
|
||||
@ -544,9 +545,6 @@ SteamAPICall_t RequestLobbyList()
|
||||
searching = true;
|
||||
if (search_call_api_id) callback_results->rmCallBack(search_call_api_id, NULL);
|
||||
search_call_api_id = callback_results->reserveCallResult();
|
||||
|
||||
|
||||
|
||||
|
||||
return search_call_api_id;
|
||||
}
|
||||
@ -664,13 +662,13 @@ CSteamID GetLobbyByIndex( int iLobby )
|
||||
return id;
|
||||
}
|
||||
|
||||
static bool enter_lobby(Lobby *lobby, CSteamID id)
|
||||
static bool add_member_to_lobby(Lobby *lobby, CSteamID id)
|
||||
{
|
||||
if (get_lobby_member(lobby, id)) return false; // player already exists
|
||||
|
||||
Lobby_Member *member = lobby->add_members();
|
||||
member->set_id(id.ConvertToUint64());
|
||||
PRINT_DEBUG("added player %llu to lobby", (uint64)id.ConvertToUint64());
|
||||
PRINT_DEBUG("added lobby member %llu", (uint64)id.ConvertToUint64());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -691,7 +689,7 @@ void Create_pending_lobbies()
|
||||
auto p_c = std::begin(pending_creates);
|
||||
while (p_c != std::end(pending_creates)) {
|
||||
if (check_timedout(p_c->created, LOBBY_CREATE_DELAY)) {
|
||||
Lobby lobby;
|
||||
Lobby lobby{};
|
||||
CSteamID lobby_id = generate_steam_id_lobby();
|
||||
lobby.set_room_id(lobby_id.ConvertToUint64());
|
||||
lobby.set_joinable(true);
|
||||
@ -699,7 +697,7 @@ void Create_pending_lobbies()
|
||||
lobby.set_type(p_c->eLobbyType);
|
||||
lobby.set_owner(settings->get_local_steam_id().ConvertToUint64());
|
||||
lobby.set_appid(settings->get_local_game_id().AppID());
|
||||
enter_lobby(&lobby, settings->get_local_steam_id());
|
||||
add_member_to_lobby(&lobby, settings->get_local_steam_id());
|
||||
lobbies.push_back(lobby);
|
||||
|
||||
if (settings->disable_lobby_creation) {
|
||||
@ -714,17 +712,17 @@ void Create_pending_lobbies()
|
||||
data.m_ulSteamIDLobby = lobby.room_id();
|
||||
callback_results->addCallResult(p_c->api_id, data.k_iCallback, &data, sizeof(data));
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
|
||||
|
||||
{
|
||||
LobbyEnter_t data;
|
||||
data.m_ulSteamIDLobby = lobby.room_id();
|
||||
data.m_rgfChatPermissions = 0; //Unused - Always 0
|
||||
LobbyEnter_t data2{};
|
||||
data2.m_ulSteamIDLobby = lobby.room_id();
|
||||
data2.m_rgfChatPermissions = 0; //Unused - Always 0
|
||||
if (p_c->eLobbyType == k_ELobbyTypePrivate)
|
||||
data.m_bLocked = true;
|
||||
data2.m_bLocked = true;
|
||||
else
|
||||
data.m_bLocked = false;
|
||||
data.m_EChatRoomEnterResponse = k_EChatRoomEnterResponseSuccess;
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
data2.m_bLocked = false;
|
||||
data2.m_EChatRoomEnterResponse = k_EChatRoomEnterResponseSuccess;
|
||||
callbacks->addCBResult(data2.k_iCallback, &data2, sizeof(data2));
|
||||
}
|
||||
|
||||
on_self_enter_leave_lobby(lobby_id, p_c->eLobbyType, false);
|
||||
@ -749,7 +747,7 @@ SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers )
|
||||
{
|
||||
PRINT_DEBUG("type: %i max_members: %i", eLobbyType, cMaxMembers);
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
struct Pending_Creates p_c;
|
||||
struct Pending_Creates p_c{};
|
||||
p_c.api_id = callback_results->reserveCallResult();
|
||||
p_c.eLobbyType = eLobbyType;
|
||||
p_c.cMaxMembers = cMaxMembers;
|
||||
@ -760,6 +758,7 @@ SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers )
|
||||
|
||||
SteamAPICall_t CreateLobby( ELobbyType eLobbyType )
|
||||
{
|
||||
PRINT_DEBUG("old");
|
||||
return CreateLobby(eLobbyType, 0);
|
||||
}
|
||||
|
||||
@ -1431,8 +1430,9 @@ void RunCallbacks()
|
||||
PRINT_DEBUG("Lobby " "%" PRIu64 " use %u", l.room_id(), use);
|
||||
if (use) PUSH_BACK_IF_NOT_IN(filtered_lobbies, (uint64)l.room_id());
|
||||
if (filtered_lobbies.size() >= filter_max_results_copy) {
|
||||
PRINT_DEBUG("returning lobby search results, count=%zu", filtered_lobbies.size());
|
||||
searching = false;
|
||||
LobbyMatchList_t data;
|
||||
LobbyMatchList_t data{};
|
||||
data.m_nLobbiesMatching = filtered_lobbies.size();
|
||||
callback_results->addCallResult(search_call_api_id, data.k_iCallback, &data, sizeof(data));
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
@ -1443,7 +1443,7 @@ void RunCallbacks()
|
||||
|
||||
if (searching && check_timedout(lobby_last_search, LOBBY_SEARCH_TIMEOUT)) {
|
||||
PRINT_DEBUG("LOBBY_SEARCH_TIMEOUT %zu", filtered_lobbies.size());
|
||||
LobbyMatchList_t data;
|
||||
LobbyMatchList_t data{};
|
||||
data.m_nLobbiesMatching = filtered_lobbies.size();
|
||||
callback_results->addCallResult(search_call_api_id, data.k_iCallback, &data, sizeof(data));
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
@ -1615,7 +1615,7 @@ void Callback(Common_Message *msg)
|
||||
if (lobby->owner() == settings->get_local_steam_id().ConvertToUint64()) {
|
||||
if (msg->lobby_messages().type() == Lobby_Messages::JOIN) {
|
||||
PRINT_DEBUG("LOBBY MESSAGE: JOIN, lobby=%llu from=%llu", (uint64)lobby->room_id(), (uint64)msg->source_id());
|
||||
if (enter_lobby(lobby, (uint64)msg->source_id())) {
|
||||
if (add_member_to_lobby(lobby, (uint64)msg->source_id())) {
|
||||
trigger_lobby_member_join_leave((uint64)lobby->room_id(), (uint64)msg->source_id(), false, true, 0.01);
|
||||
}
|
||||
}
|
||||
@ -1625,7 +1625,7 @@ void Callback(Common_Message *msg)
|
||||
Lobby_Member *member = get_lobby_member(lobby, (uint64)msg->source_id());
|
||||
if (member) {
|
||||
for (auto const &p : msg->lobby_messages().map()) {
|
||||
PRINT_DEBUG("member data %s:%s", p.first.c_str(), p.second.c_str());
|
||||
PRINT_DEBUG("member data '%s'='%s'", p.first.c_str(), p.second.c_str());
|
||||
auto result = caseinsensitive_find(member->values(), p.first);
|
||||
if (result == member->values().end()) {
|
||||
(*member->mutable_values())[p.first] = p.second;
|
||||
@ -1659,7 +1659,7 @@ void Callback(Common_Message *msg)
|
||||
entry.message = msg->lobby_messages().bdata();
|
||||
entry.lobby_id = CSteamID((uint64)msg->lobby_messages().id());
|
||||
entry.user_id = CSteamID((uint64)msg->source_id());
|
||||
LobbyChatMsg_t data;
|
||||
LobbyChatMsg_t data{};
|
||||
data.m_ulSteamIDLobby = msg->lobby_messages().id();
|
||||
data.m_ulSteamIDUser = msg->source_id();
|
||||
data.m_eChatEntryType = entry.type;
|
||||
|
@ -273,7 +273,10 @@ SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle )
|
||||
data.m_unNumResultsReturned = request->results.size();
|
||||
data.m_unTotalMatchingResults = request->results.size();
|
||||
data.m_bCachedData = false;
|
||||
return callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
|
||||
auto ret = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -37,10 +37,11 @@ public ISteamUtils
|
||||
private:
|
||||
Settings *settings;
|
||||
class SteamCallResults *callback_results;
|
||||
class SteamCallBacks *callbacks{};
|
||||
Steam_Overlay* overlay;
|
||||
|
||||
public:
|
||||
Steam_Utils(Settings *settings, class SteamCallResults *callback_results, Steam_Overlay *overlay);
|
||||
Steam_Utils(Settings *settings, class SteamCallResults *callback_results, class SteamCallBacks *callbacks, Steam_Overlay *overlay);
|
||||
|
||||
// return the number of seconds since the user
|
||||
uint32 GetSecondsSinceAppActive();
|
||||
|
@ -80,13 +80,12 @@ Steam_Client::Steam_Client()
|
||||
|
||||
network = new Networking(settings_server->get_local_steam_id(), appid, settings_server->get_port(), &(settings_server->custom_broadcasts), settings_server->disable_networking);
|
||||
|
||||
callback_results_client = new SteamCallResults();
|
||||
callback_results_server = new SteamCallResults();
|
||||
callbacks_client = new SteamCallBacks(callback_results_client);
|
||||
callbacks_server = new SteamCallBacks(callback_results_server);
|
||||
run_every_runcb = new RunEveryRunCB();
|
||||
|
||||
PRINT_DEBUG("init: id: %llu server id: %llu, appid: %u, port: %u", settings_client->get_local_steam_id().ConvertToUint64(), settings_server->get_local_steam_id().ConvertToUint64(), appid, settings_server->get_port());
|
||||
PRINT_DEBUG(
|
||||
"init: id: %llu server id: %llu, appid: %u, port: %u",
|
||||
settings_client->get_local_steam_id().ConvertToUint64(), settings_server->get_local_steam_id().ConvertToUint64(), appid, settings_server->get_port()
|
||||
);
|
||||
|
||||
if (appid) {
|
||||
auto appid_str = std::to_string(appid);
|
||||
@ -95,11 +94,15 @@ Steam_Client::Steam_Client()
|
||||
set_env_variable("SteamOverlayGameId", appid_str);
|
||||
}
|
||||
|
||||
// client
|
||||
PRINT_DEBUG("init client");
|
||||
callback_results_client = new SteamCallResults();
|
||||
callbacks_client = new SteamCallBacks(callback_results_client);
|
||||
steam_overlay = new Steam_Overlay(settings_client, local_storage, callback_results_client, callbacks_client, run_every_runcb, network);
|
||||
|
||||
steam_user = new Steam_User(settings_client, local_storage, network, callback_results_client, callbacks_client);
|
||||
steam_friends = new Steam_Friends(settings_client, local_storage, network, callback_results_client, callbacks_client, run_every_runcb, steam_overlay);
|
||||
steam_utils = new Steam_Utils(settings_client, callback_results_client, steam_overlay);
|
||||
steam_utils = new Steam_Utils(settings_client, callback_results_client, callbacks_client, steam_overlay);
|
||||
|
||||
ugc_bridge = new Ugc_Remote_Storage_Bridge(settings_client);
|
||||
|
||||
@ -131,9 +134,13 @@ Steam_Client::Steam_Client()
|
||||
steam_remoteplay = new Steam_RemotePlay(settings_client, network, callback_results_client, callbacks_client, run_every_runcb);
|
||||
steam_tv = new Steam_TV(settings_client, network, callback_results_client, callbacks_client, run_every_runcb);
|
||||
|
||||
// server
|
||||
PRINT_DEBUG("init gameserver");
|
||||
callback_results_server = new SteamCallResults();
|
||||
callbacks_server = new SteamCallBacks(callback_results_server);
|
||||
|
||||
steam_gameserver = new Steam_GameServer(settings_server, network, callbacks_server);
|
||||
steam_gameserver_utils = new Steam_Utils(settings_server, callback_results_server, steam_overlay);
|
||||
steam_gameserver_utils = new Steam_Utils(settings_server, callback_results_server, callbacks_server, steam_overlay);
|
||||
steam_gameserverstats = new Steam_GameServerStats(settings_server, network, callback_results_server, callbacks_server, run_every_runcb);
|
||||
steam_gameserver_networking = new Steam_Networking(settings_server, network, callbacks_server, run_every_runcb);
|
||||
steam_gameserver_http = new Steam_HTTP(settings_server, network, callback_results_server, callbacks_server);
|
||||
|
@ -181,6 +181,7 @@ void Steam_HTTP::online_http_request(Steam_Http_Request *request, SteamAPICall_t
|
||||
}
|
||||
|
||||
if (pCallHandle) *pCallHandle = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data), 0.1);
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data), 0.1);
|
||||
};
|
||||
|
||||
std::size_t filename_part = request->target_filepath.find_last_of("\\/");
|
||||
@ -356,6 +357,7 @@ bool Steam_HTTP::SendHTTPRequest( HTTPRequestHandle hRequest, SteamAPICall_t *pC
|
||||
}
|
||||
|
||||
if (pCallHandle) *pCallHandle = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data), 0.1);
|
||||
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data), 0.1);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -367,7 +369,12 @@ bool Steam_HTTP::SendHTTPRequest( HTTPRequestHandle hRequest, SteamAPICall_t *pC
|
||||
// HTTPRequestDataReceived_t callbacks while streaming.
|
||||
bool Steam_HTTP::SendHTTPRequestAndStreamResponse( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle )
|
||||
{
|
||||
PRINT_DEBUG_ENTRY();
|
||||
// TODO this function triggers 3 callbacks:
|
||||
// https://partner.steamgames.com/doc/api/ISteamHTTP#SendHTTPRequestAndStreamResponse
|
||||
// Triggers a HTTPRequestDataReceived_t callback.
|
||||
// Triggers a HTTPRequestHeadersReceived_t callback.
|
||||
// Triggers a HTTPRequestCompleted_t callback.
|
||||
PRINT_DEBUG_TODO();
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
|
||||
return SendHTTPRequest(hRequest, pCallHandle);
|
||||
|
@ -1638,7 +1638,7 @@ SteamAPICall_t Steam_User_Stats::UploadLeaderboardScore( SteamLeaderboard_t hSte
|
||||
STEAM_CALL_RESULT( LeaderboardUGCSet_t )
|
||||
SteamAPICall_t Steam_User_Stats::AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC )
|
||||
{
|
||||
PRINT_DEBUG_ENTRY();
|
||||
PRINT_DEBUG_TODO();
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
LeaderboardUGCSet_t data{};
|
||||
if (hSteamLeaderboard > cached_leaderboards.size() || hSteamLeaderboard <= 0) {
|
||||
|
@ -19,9 +19,10 @@
|
||||
#include "dll/steam_utils.h"
|
||||
|
||||
|
||||
Steam_Utils::Steam_Utils(Settings *settings, class SteamCallResults *callback_results, Steam_Overlay *overlay):
|
||||
Steam_Utils::Steam_Utils(Settings *settings, class SteamCallResults *callback_results, class SteamCallBacks *callbacks, Steam_Overlay *overlay):
|
||||
settings(settings),
|
||||
callback_results(callback_results),
|
||||
callbacks(callbacks),
|
||||
overlay(overlay)
|
||||
{
|
||||
|
||||
@ -258,7 +259,10 @@ SteamAPICall_t Steam_Utils::CheckFileSignature( const char *szFileName )
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
CheckFileSignature_t data;
|
||||
data.m_eCheckFileSignature = k_ECheckFileSignatureValidSignature;
|
||||
return callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
auto ret = callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
// TODO callback too?
|
||||
// callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user