[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