Add SteamWorks_SendMessageToGC (untested as well).
This commit is contained in:
committed by
Josh Allard
parent
3da8a5d831
commit
5cd391a31b
@@ -11,6 +11,7 @@ project.sources += [
|
||||
'swgshooks.cpp',
|
||||
'swgsdetours.cpp',
|
||||
'ssnatives.cpp',
|
||||
'gcnatives.cpp',
|
||||
'swhttp.cpp',
|
||||
'swhttprequest.cpp',
|
||||
'swgchooks.cpp',
|
||||
|
||||
@@ -56,11 +56,13 @@ bool SteamWorks::SDK_OnLoad(char *error, size_t maxlength, bool late)
|
||||
this->pGSDetours = new SteamWorksGSDetours;
|
||||
this->pSSNatives = new SteamWorksSSNatives;
|
||||
this->pGCHooks = new SteamWorksGCHooks;
|
||||
this->pGCNatives = new SteamWorksGCNatives;
|
||||
return true;
|
||||
}
|
||||
|
||||
void SteamWorks::SDK_OnUnload()
|
||||
{
|
||||
delete this->pGCNatives;
|
||||
delete this->pGCHooks;
|
||||
delete this->pSSNatives;
|
||||
delete this->pGSDetours;
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "swgshooks.h"
|
||||
#include "swgchooks.h"
|
||||
#include "ssnatives.h"
|
||||
#include "gcnatives.h"
|
||||
#include "swgsdetours.h"
|
||||
#include "swhttp.h"
|
||||
|
||||
@@ -144,6 +145,7 @@ public:
|
||||
SteamWorksHTTP *pSWHTTP;
|
||||
SteamWorksHTTPNatives *pSWHTTPNatives;
|
||||
SteamWorksGCHooks *pGCHooks;
|
||||
SteamWorksGCNatives *pGCNatives;
|
||||
};
|
||||
|
||||
extern SteamWorks g_SteamWorks;
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
This file is part of SourcePawn SteamWorks.
|
||||
|
||||
SourcePawn SteamWorks is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, as per version 3 of the License.
|
||||
|
||||
SourcePawn SteamWorks is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with SourcePawn SteamWorks. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Author: Kyle Sanderson (KyleS).
|
||||
*/
|
||||
|
||||
#include "gcnatives.h"
|
||||
|
||||
static ISteamGameCoordinator *GetSteamGCPointer(void)
|
||||
{
|
||||
return g_SteamWorks.pSWGameServer->GetGameCoordinator();
|
||||
}
|
||||
|
||||
static cell_t sm_GCSendMessage(IPluginContext *pContext, const cell_t *params)
|
||||
{
|
||||
ISteamGameCoordinator *pGC = GetSteamGCPointer();
|
||||
if (pGC == NULL)
|
||||
{
|
||||
return static_cast<cell_t>(k_EGCResultNotLoggedOn);
|
||||
}
|
||||
|
||||
char *pData;
|
||||
pContext->LocalToString(params[2], &pData);
|
||||
|
||||
return static_cast<cell_t>(pGC->SendMessage(params[1], pData, params[3]));
|
||||
}
|
||||
|
||||
static sp_nativeinfo_t gcnatives[] = {
|
||||
{"SteamWorks_SendMessageToGC", sm_GCSendMessage},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
SteamWorksGCNatives::SteamWorksGCNatives()
|
||||
{
|
||||
sharesys->AddNatives(myself, gcnatives);
|
||||
}
|
||||
|
||||
SteamWorksGCNatives::~SteamWorksGCNatives()
|
||||
{
|
||||
/* We tragically can't remove ourselves... hopefully no one uses this class, you know, like a class. */
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
This file is part of SourcePawn SteamWorks.
|
||||
|
||||
SourcePawn SteamWorks is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, as per version 3 of the License.
|
||||
|
||||
SourcePawn SteamWorks is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with SourcePawn SteamWorks. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Author: Kyle Sanderson (KyleS).
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "steam_gameserver.h"
|
||||
#include "isteamgamecoordinator.h"
|
||||
|
||||
#include "smsdk_ext.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#undef SendMessage
|
||||
#endif
|
||||
|
||||
class SteamWorksGCNatives
|
||||
{
|
||||
public:
|
||||
SteamWorksGCNatives();
|
||||
~SteamWorksGCNatives();
|
||||
};
|
||||
|
||||
#include "extension.h"
|
||||
@@ -299,6 +299,8 @@ forward EGCResults:SteamWorks_GCSendMessage(unMsgType, const String:pubData[], c
|
||||
forward SteamWorks_GCMsgAvailable(cubData);
|
||||
forward EGCResults:SteamWorks_GCRetreiveMessage(punMsgType, const String:pubDest[], cubDest, pcubMsgSize);
|
||||
|
||||
native EGCResults:SteamWorks_SendMessageToGC(unMsgType, const String:pubData[], cubData);
|
||||
|
||||
public Extension:__ext_SteamWorks =
|
||||
{
|
||||
name = "SteamWorks",
|
||||
|
||||
Reference in New Issue
Block a user