[Scummvm-git-logs] scummvm master -> 2721dd2fef4169d8bba29051383f28b85022f55d
sev-
sev at scummvm.org
Mon Nov 4 10:15:23 CET 2019
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4d4e8d3a25 SCUMM HE: MBC: Cleanup
2721dd2fef SCUMM HE: MBC: Query sessions asynchronously
Commit: 4d4e8d3a25b55236905517e6dc6304ddb1d184da
https://github.com/scummvm/scummvm/commit/4d4e8d3a25b55236905517e6dc6304ddb1d184da
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-11-04T10:05:53+01:00
Commit Message:
SCUMM HE: MBC: Cleanup
Changed paths:
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index 99b46a9..cca97aa 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -443,7 +443,7 @@ int Net::remoteStartScriptFunction(int typeOfSend, int sendTypeParam, int priori
else
res += "]";
- warning("STUB: Net::remoteStartScriptFunction(%d, %d, %d, %d, %d, ...)", typeOfSend, sendTypeParam, priority, defaultReturnValue, argsCount); // PN_RemoteStartScriptFunction
+ debug(1, "Net::remoteStartScriptFunction(%d, %d, %d, %d, %d, ...)", typeOfSend, sendTypeParam, priority, defaultReturnValue, argsCount); // PN_RemoteStartScriptFunction
return remoteSendData(typeOfSend, sendTypeParam, PACKETTYPE_REMOTESTARTSCRIPTRETURN, res, defaultReturnValue, true);
}
@@ -636,10 +636,6 @@ void Net::remoteReceiveDataErrorCallback(Networking::ErrorResponse error) {
warning("Error in remoteReceiveData(): %ld %s", error.httpResponseCode, error.response.c_str());
}
-void Net::unpackageArray(int arrayId, byte *data, int len) {
- warning("STUB: unpackageArray");
-}
-
void Net::doNetworkOnceAFrame(int msecs) {
if (_sessionid == -1 || _myUserId == -1)
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index a482f0e..b219b66 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -65,7 +65,6 @@ public:
void remoteSendArray(int typeOfSend, int sendTypeParam, int priority, int arrayIndex);
int remoteStartScriptFunction(int typeOfSend, int sendTypeParam, int priority, int defaultReturnValue, int argsCount, int32 *args);
void doNetworkOnceAFrame(int msecs);
- void unpackageArray(int arrayId, byte *data, int len);
private:
bool remoteReceiveData();
Commit: 2721dd2fef4169d8bba29051383f28b85022f55d
https://github.com/scummvm/scummvm/commit/2721dd2fef4169d8bba29051383f28b85022f55d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-11-04T10:13:07+01:00
Commit Message:
SCUMM HE: MBC: Query sessions asynchronously
Changed paths:
engines/scumm/he/moonbase/net_main.cpp
engines/scumm/he/moonbase/net_main.h
diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index cca97aa..a315c92 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -36,6 +36,8 @@ Net::Net(ScummEngine_v100he *vm) : _latencyTime(1), _fakeLatency(false), _vm(vm)
_myUserId = -1;
_lastResult = 0;
+ _sessionsBeingQueried = false;
+
_sessionid = -1;
_sessions = nullptr;
_packetdata = nullptr;
@@ -48,6 +50,7 @@ Net::~Net() {
free(_packbuffer);
delete _sessions;
+ delete _packetdata;
}
int Net::hostGame(char *sessionName, char *userName) {
@@ -237,18 +240,16 @@ bool Net::destroyPlayer(int32 playerDPID) {
}
int32 Net::startQuerySessions() {
- debug(1, "Net::startQuerySessions()"); // StartQuerySessions
-
- Networking::PostRequest rq(_serverprefix + "/lobbies",
- new Common::Callback<Net, Common::JSONValue *>(this, &Net::startQuerySessionsCallback),
- new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::startQuerySessionsErrorCallback));
+ if (!_sessionsBeingQueried) { // Do not run parallel queries
+ debug(1, "Net::startQuerySessions()"); // StartQuerySessions
- delete _sessions;
+ Networking::PostRequest rq(_serverprefix + "/lobbies",
+ new Common::Callback<Net, Common::JSONValue *>(this, &Net::startQuerySessionsCallback),
+ new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::startQuerySessionsErrorCallback));
- rq.start();
+ _sessionsBeingQueried = true;
- while(rq.state() == Networking::PROCESSING) {
- g_system->delayMillis(5);
+ rq.start();
}
if (!_sessions)
@@ -262,11 +263,17 @@ int32 Net::startQuerySessions() {
void Net::startQuerySessionsCallback(Common::JSONValue *response) {
debug(1, "startQuerySessions: Got: '%s' which is %lu", response->stringify().c_str(), response->countChildren());
+ _sessionsBeingQueried = false;
+
+ delete _sessions;
+
_sessions = new Common::JSONValue(*response);
}
void Net::startQuerySessionsErrorCallback(Networking::ErrorResponse error) {
warning("Error in startQuerySessions(): %ld %s", error.httpResponseCode, error.response.c_str());
+
+ _sessionsBeingQueried = false;
}
int32 Net::updateQuerySessions() {
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index b219b66..aaa5b9a 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -112,6 +112,8 @@ public:
int _sessionid;
+ bool _sessionsBeingQueried;
+
Common::JSONValue *_sessions;
Common::JSONValue *_packetdata;
More information about the Scummvm-git-logs
mailing list