[Scummvm-git-logs] scummvm master -> 65b16668df21aa957b2d7d98b0e9f70b630efe9a

LittleToonCat noreply at scummvm.org
Sat Sep 23 00:25:31 UTC 2023


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
65b16668df SCUMM HE: Remove pause for RELIABLE_TIMED packets.


Commit: 65b16668df21aa957b2d7d98b0e9f70b630efe9a
    https://github.com/scummvm/scummvm/commit/65b16668df21aa957b2d7d98b0e9f70b630efe9a
Author: Little Cat (toontownlittlecat at gmail.com)
Date: 2023-09-22T21:25:24-03:00

Commit Message:
SCUMM HE: Remove pause for RELIABLE_TIMED packets.

This is done due to feedback from players who are reporting multiple
problems playing online including lag and game desyncs.

The ALL_RELIABLE_TIMED message is kept and used for completion shakes.

Changed paths:
    engines/scumm/he/intern_he.h
    engines/scumm/he/net/net_defines.h
    engines/scumm/he/net/net_main.cpp
    engines/scumm/he/net/net_main.h
    engines/scumm/vars.cpp


diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h
index b51ae878cc8..4f2e382924c 100644
--- a/engines/scumm/he/intern_he.h
+++ b/engines/scumm/he/intern_he.h
@@ -744,7 +744,6 @@ protected:
 	byte VAR_REMOTE_START_SCRIPT;
 	byte VAR_NETWORK_AVAILABLE;
 	byte VAR_NETWORK_RECEIVE_ARRAY_SCRIPT;
-	byte VAR_NETWORK_NET_LAG;
 
 public:
 	int networkSessionDialog();
@@ -1053,7 +1052,6 @@ protected:
 	byte VAR_REMOTE_START_SCRIPT;
 	byte VAR_NETWORK_AVAILABLE;
 	byte VAR_NETWORK_RECEIVE_ARRAY_SCRIPT;
-	byte VAR_NETWORK_NET_LAG;
 };
 
 class ScummEngine_vCUPhe : public Engine {
diff --git a/engines/scumm/he/net/net_defines.h b/engines/scumm/he/net/net_defines.h
index 3044d723c08..6a561899852 100644
--- a/engines/scumm/he/net/net_defines.h
+++ b/engines/scumm/he/net/net_defines.h
@@ -47,9 +47,6 @@ namespace Scumm {
 #define PACKETTYPE_REMOTESTARTSCRIPTRETURN			2
 #define PACKETTYPE_REMOTESTARTSCRIPTRESULT			3
 #define PACKETTYPE_REMOTESENDSCUMMARRAY				4
-// ScummVM specific type, used for determine
-// net lag
-#define PACKETTYPE_RELIABLETIMEDRESP				5
 
 const int MAX_PACKET_SIZE = 4096;	// bytes
 const int MAX_HOSTNAME_SIZE = 256;
diff --git a/engines/scumm/he/net/net_main.cpp b/engines/scumm/he/net/net_main.cpp
index 6c8adf3e643..7a7b7daf2f4 100644
--- a/engines/scumm/he/net/net_main.cpp
+++ b/engines/scumm/he/net/net_main.cpp
@@ -71,8 +71,6 @@ Net::Net(ScummEngine_v90he *vm) : _latencyTime(1), _fakeLatency(false), _vm(vm)
 
 	_hostDataQueue = Common::Queue<Common::JSONValue *>();
 	_peerIndexQueue = Common::Queue<int>();
-
-	_waitForTimedResp = false;
 }
 
 Net::~Net() {
@@ -763,11 +761,6 @@ int Net::remoteSendData(int typeOfSend, int sendTypeParam, int type, Common::Str
 		_peerIndexQueue.push(sendTypeParam - 1);
 	} else {
 		_sessionHost->send(res.c_str(), 0, 0, reliable);
-		if (typeOfSend == PN_SENDTYPE_ALL_RELIABLE_TIMED) {
-			// Wait for a response to determine net lag.
-			_savedTime = g_system->getMillis();
-			_waitForTimedResp = true;
-		}
 	}
 	return defaultRes;
 }
@@ -1162,11 +1155,6 @@ void Net::remoteReceiveData() {
 					_vm->VAR(253) = 26; // gGameMode = GAME-OVER
 					_vm->runScript(2104, 1, 0, 0); // leave-game
 				}
-			} else {
-				// Football/Baseball
-
-				// We have lost our only other opponent, do not wait for a timed response.
-				_waitForTimedResp = false;
 			}
 			break;
 		}
@@ -1267,9 +1255,6 @@ void Net::doNetworkOnceAFrame(int msecs) {
 	if (!_enet || !_sessionHost)
 		return;
 
-	uint tickCount = 0;
-
-receiveData:
 	remoteReceiveData();
 
 	if (_sessionServerHost)
@@ -1285,26 +1270,12 @@ receiveData:
 		int peerIndex = _peerIndexQueue.pop();
 		handleGameDataHost(json, peerIndex);
 	}
-
-	if (_waitForTimedResp) {
-		g_system->delayMillis(msecs);
-
-		// Wait for 3 seconds for a response before giving up.
-		tickCount += msecs;
-		if (tickCount >= 3000) {
-			_savedTime = 0;
-			_waitForTimedResp = false;
-			return;
-		}
-		goto receiveData;
-	}
 }
 
 void Net::handleGameData(Common::JSONValue *json, int peerIndex) {
 	if (!_enet || !_sessionHost)
 		return;
 	_fromUserId = json->child("from")->asIntegerNumber();
-	uint to = json->child("to")->asIntegerNumber();
 	uint type = json->child("type")->asIntegerNumber();
 
 	uint32 *params;
@@ -1420,25 +1391,9 @@ void Net::handleGameData(Common::JSONValue *json, int peerIndex) {
 			_vm->runScript(_vm->VAR(_vm->VAR_NETWORK_RECEIVE_ARRAY_SCRIPT), 1, 0, (int *)_tmpbuffer);
 		}
 		break;
-	case PACKETTYPE_RELIABLETIMEDRESP:
-		{
-			int savedTime = ((g_system->getMillis() - _savedTime) / 2) ;	//div by 2 for one-way lag.
-			_vm->VAR(_vm->VAR_NETWORK_NET_LAG) = savedTime;
-			_waitForTimedResp = false;
-		}
-		break;
-
 	default:
 		warning("NETWORK: Received unknown network command %d", type);
 	}
-
-	if (to == PN_SENDTYPE_ALL_RELIABLE_TIMED) {
-		if (_fromUserId != _myUserId) {
-			// Send a response
-			remoteSendData(PN_SENDTYPE_INDIVIDUAL, _fromUserId, PACKETTYPE_RELIABLETIMEDRESP, "", PN_PRIORITY_HIGH);
-		}
-	}
-
 }
 
 void Net::handleGameDataHost(Common::JSONValue *json, int peerIndex) {
@@ -1497,17 +1452,6 @@ void Net::handleGameDataHost(Common::JSONValue *json, int peerIndex) {
 						_sessionHost->send(str.c_str(), i, 0, reliable);
 				}
 			}
-
-			if (to == PN_SENDTYPE_ALL_RELIABLE_TIMED) {
-				if (from == _myUserId) {
-					// That's us, wait for a response to determine net lag.
-					// Don't wait if we're the only ones here (our opponent disconnected).
-					if (getTotalPlayers() > 1) {
-						_savedTime = g_system->getMillis();
-						_waitForTimedResp = true;
-					}
-				}
-			}
 		}
 		break;
 	default:
diff --git a/engines/scumm/he/net/net_main.h b/engines/scumm/he/net/net_main.h
index 37209fae331..7433feaf122 100644
--- a/engines/scumm/he/net/net_main.h
+++ b/engines/scumm/he/net/net_main.h
@@ -552,10 +552,6 @@ private:
 	bool _gotSessions;
 	int _sessionServerPeer;
 	bool _isRelayingGame; ///< If we're relaying in-game data over the session server or not.
-
-	// Used to determine net lag between players.
-	int _savedTime;
-	bool _waitForTimedResp;
 };
 
 } // End of namespace Scumm
diff --git a/engines/scumm/vars.cpp b/engines/scumm/vars.cpp
index c0dcce667ea..14d548a7207 100644
--- a/engines/scumm/vars.cpp
+++ b/engines/scumm/vars.cpp
@@ -350,7 +350,6 @@ void ScummEngine_v90he::setupScummVars() {
 			VAR_REMOTE_START_SCRIPT = 98;
 			VAR_NETWORK_AVAILABLE = 100;
 			VAR_NETWORK_RECEIVE_ARRAY_SCRIPT = 101;
-			VAR_NETWORK_NET_LAG = 136;
 		}
 #endif
 		VAR_MAIN_SCRIPT = 127;
@@ -372,8 +371,6 @@ void ScummEngine_v100he::setupScummVars() {
 		VAR_U32_USER_VAR_D = 111;
 		VAR_U32_USER_VAR_E = 112;
 		VAR_U32_USER_VAR_F = 113;
-		VAR_NETWORK_NET_LAG = 136;
-
 	}
 }
 #endif




More information about the Scummvm-git-logs mailing list