diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/scumm/he/moonbase/net_main.cpp | 25 | ||||
-rw-r--r-- | engines/scumm/he/moonbase/net_main.h | 3 |
2 files changed, 26 insertions, 2 deletions
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp index c46746a580..0412b0bd95 100644 --- a/engines/scumm/he/moonbase/net_main.cpp +++ b/engines/scumm/he/moonbase/net_main.cpp @@ -284,8 +284,29 @@ void Net::setFakeLatency(int time) { bool Net::destroyPlayer(int32 playerDPID) { // bool PNETWIN_destroyplayer(DPID idPlayer) - warning("STUB: Net::destroyPlayer(%d)", playerDPID); - return false; + debug(1, "Net::destroyPlayer(%d)", playerDPID); + + Networking::PostRequest *rq = new Networking::PostRequest(_serverprefix + "/removeuser", + new Common::Callback<Net, Common::JSONValue *>(this, &Net::destroyPlayerCallback), + new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::destroyPlayerErrorCallback)); + + char *buf = (char *)malloc(MAX_PACKET_SIZE); + snprintf(buf, MAX_PACKET_SIZE, "{\"sessionid\":%d, \"userid\":%d}", _sessionid, playerDPID); + rq->setPostData((byte *)buf, strlen(buf)); + rq->setContentType("application/json"); + + rq->start(); + + ConnMan.addRequest(rq); + + return true; +} + +void Net::destroyPlayerCallback(Common::JSONValue *response) { +} + +void Net::destroyPlayerErrorCallback(Networking::ErrorResponse error) { + warning("Error in destroyPlayer(): %ld %s", error.httpResponseCode, error.response.c_str()); } int32 Net::startQuerySessions() { diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h index 31dba6730f..093cd0fdbf 100644 --- a/engines/scumm/he/moonbase/net_main.h +++ b/engines/scumm/he/moonbase/net_main.h @@ -84,6 +84,9 @@ private: void endSessionCallback(Common::JSONValue *response); void endSessionErrorCallback(Networking::ErrorResponse error); + void destroyPlayerCallback(Common::JSONValue *response); + void destroyPlayerErrorCallback(Networking::ErrorResponse error); + void remoteSendDataCallback(Common::JSONValue *response); void remoteSendDataErrorCallback(Networking::ErrorResponse error); |