[Scummvm-git-logs] scummvm master -> 58202e18397d08af20e5c56d5d5e15ee2d588f8f

dreammaster dreammaster at scummvm.org
Thu Jun 17 01:59:34 UTC 2021


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:
b6b138c25e AGS: Further fleshing out of AGSSock plugin
58202e1839 AGS: Fix window resolutions for game width > 1000


Commit: b6b138c25ecda142511b24802d66e26f0beaaaa8
    https://github.com/scummvm/scummvm/commit/b6b138c25ecda142511b24802d66e26f0beaaaa8
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-06-16T18:59:23-07:00

Commit Message:
AGS: Further fleshing out of AGSSock plugin

Changed paths:
    engines/ags/plugins/ags_sock/ags_sock.cpp


diff --git a/engines/ags/plugins/ags_sock/ags_sock.cpp b/engines/ags/plugins/ags_sock/ags_sock.cpp
index 7356eb11ed..864d1a5601 100644
--- a/engines/ags/plugins/ags_sock/ags_sock.cpp
+++ b/engines/ags/plugins/ags_sock/ags_sock.cpp
@@ -22,6 +22,7 @@
 
 #include "common/array.h"
 #include "common/str.h"
+#include "ags/engine/ac/dynobj/cc_ags_dynamic_object.h"
 #include "ags/plugins/ags_sock/ags_sock.h"
 
 namespace AGS3 {
@@ -30,17 +31,61 @@ namespace AGSSock {
 
 IAGSEngine *AGSSock::_engine;
 
-typedef Common::Array<byte> SockData;
+struct SockData : public IAGSScriptManagedObject, public Common::Array<byte> {
+public:
+	int Dispose(const char *address, bool force) override {
+		delete (SockData *)address;
+		return true;
+	}
+	const char *GetType() override {
+		return "SockData";
+	};
+	int Serialize(const char *address, char *buffer, int bufsize) override {
+		return 0;
+	}
+};
 
-class SockAddr {
+struct SockAddr : public IAGSScriptManagedObject {
 public:
 	int _port = 0;
 	Common::String _address;
 	Common::String _ip;
+
+	int Dispose(const char *address, bool force) override {
+		delete (SockAddr *)address;
+		return true;
+	}
+	const char *GetType() override {
+		return "SockAddr";
+	};
+	int Serialize(const char *address, char *buffer, int bufsize) override {
+		return 0;
+	}
 };
 
-class Socket {
+struct Socket : public IAGSScriptManagedObject {
 public:
+	int _id = 0;
+	int _domain = 0;
+	int _type = 0;
+	int _protocol = 0;
+	int _lastError = 0;
+	Common::String _tag;
+	SockAddr *_local = nullptr;
+	SockAddr *_remote = nullptr;
+	bool _valid = false;
+	Common::String _errorString;
+
+	int Dispose(const char *address, bool force) override {
+		delete (Socket *)address;
+		return true;
+	}
+	const char *GetType() override {
+		return "Socket";
+	};
+	int Serialize(const char *address, char *buffer, int bufsize) override {
+		return 0;
+	}
 };
 
 AGSSock::AGSSock() : PluginBase() {
@@ -55,6 +100,8 @@ const char *AGSSock::AGS_GetPluginName() {
 }
 
 void AGSSock::AGS_EngineStartup(IAGSEngine *engine) {
+	_engine = engine;
+
 	SCRIPT_METHOD_EXT(SockData::Create^2, SockData_Create);
 	SCRIPT_METHOD_EXT(SockData::CreateEmpty^0, SockData_CreateEmpty);
 	SCRIPT_METHOD_EXT(SockData::CreateFromString^1, SockData_CreateFromString);
@@ -109,6 +156,7 @@ void AGSSock::SockData_Create(ScriptMethodParams &params) {
 	PARAMS2(int, size, char, defchar);
 
 	SockData *data = new SockData();
+	_engine->RegisterManagedObject(data, data);
 	data->resize(size);
 	Common::fill(&(*data)[0], &(*data)[0] + size, defchar);
 
@@ -124,6 +172,7 @@ void AGSSock::SockData_CreateFromString(ScriptMethodParams &params) {
 	size_t len = strlen(str);
 
 	SockData *data = new SockData();
+	_engine->RegisterManagedObject(data, data);
 	data->resize(len + 1);
 	Common::copy(str, str + len + 1, &(*data)[0]);
 
@@ -162,42 +211,52 @@ void AGSSock::SockData_Clear(ScriptMethodParams &params) {
 
 void AGSSock::SockAddr_Create(ScriptMethodParams &params) {
 //	PARAMS1(int, type);
-	params._result = new SockAddr();
+	SockAddr *sockAddr = new SockAddr();
+	_engine->RegisterManagedObject(sockAddr, sockAddr);
+
+	params._result = sockAddr;
 }
 
 void AGSSock::SockAddr_CreateFromString(ScriptMethodParams &params) {
 //	PARAMS2(const char *, address, int, type);
 	PARAMS1(const char *, address);
 
-	SockAddr *sock = new SockAddr();
-	sock->_address = address;
+	SockAddr *sockAddr = new SockAddr();
+	_engine->RegisterManagedObject(sockAddr, sockAddr);
 
-	params._result = sock;
+	sockAddr->_address = address;
+	params._result = sockAddr;
 }
 
 void AGSSock::SockAddr_CreateFromData(ScriptMethodParams &params) {
 //	PARAMS1(const SockData *, data);
-	params._result = new SockAddr();
+	SockAddr *sockAddr = new SockAddr();
+	_engine->RegisterManagedObject(sockAddr, sockAddr);
+
+	params._result = sockAddr;
 }
 
 void AGSSock::SockAddr_CreateIP(ScriptMethodParams &params) {
 	PARAMS2(const char *, address, int, port);
 
-	SockAddr *sock = new SockAddr();
-	sock->_address = address;
-	sock->_port = port;
+	SockAddr *sockAddr = new SockAddr();
+	_engine->RegisterManagedObject(sockAddr, sockAddr);
 
-	params._result = sock;
+	sockAddr->_address = address;
+	sockAddr->_port = port;
+
+	params._result = sockAddr;
 }
 
 void AGSSock::SockAddr_CreateIPv6(ScriptMethodParams &params) {
 	//PARAMS2(const char *, address, int, port);
 	PARAMS1(const char *, address);
 
-	SockAddr *sock = new SockAddr();
-	sock->_address = address;
+	SockAddr *sockAddr = new SockAddr();
+	_engine->RegisterManagedObject(sockAddr, sockAddr);
 
-	params._result = sock;
+	sockAddr->_address = address;
+	params._result = sockAddr;
 }
 
 void AGSSock::SockAddr_get_Port(ScriptMethodParams &params) {
@@ -238,37 +297,69 @@ void AGSSock::SockAddr_GetData(ScriptMethodParams &params) {
 
 void AGSSock::Socket_Create(ScriptMethodParams &params) {
 	//PARAMS3(int, domain, int, type, int, protocol);
-	params._result = new Socket();
+
+	Socket *socket = new Socket();
+	_engine->RegisterManagedObject(socket, socket);
+
+	params._result = socket;
 }
 
 void AGSSock::Socket_CreateUDP(ScriptMethodParams &params) {
+	Socket *socket = new Socket();
+	_engine->RegisterManagedObject(socket, socket);
+
+	params._result = socket;
 }
 
 void AGSSock::Socket_CreateTCP(ScriptMethodParams &params) {
+	Socket *socket = new Socket();
+	_engine->RegisterManagedObject(socket, socket);
+
+	params._result = socket;
 }
 
 void AGSSock::Socket_CreateUDPv6(ScriptMethodParams &params) {
+	Socket *socket = new Socket();
+	_engine->RegisterManagedObject(socket, socket);
+
+	params._result = socket;
 }
 
 void AGSSock::Socket_CreateTCPv6(ScriptMethodParams &params) {
+	Socket *socket = new Socket();
+	_engine->RegisterManagedObject(socket, socket);
+
+	params._result = socket;
 }
 
 void AGSSock::Socket_get_Tag(ScriptMethodParams &params) {
+	PARAMS1(const Socket *, socket);
+	params._result = socket->_tag.c_str();
 }
 
 void AGSSock::Socket_set_Tag(ScriptMethodParams &params) {
+	PARAMS2(Socket *, socket, const char *, tag);
+	socket->_tag = tag;
 }
 
 void AGSSock::Socket_get_Local(ScriptMethodParams &params) {
+	PARAMS1(const Socket *, socket);
+	params._result = socket->_local;
 }
 
 void AGSSock::Socket_get_Remote(ScriptMethodParams &params) {
+	PARAMS1(const Socket *, socket);
+	params._result = socket->_remote;
 }
 
 void AGSSock::Socket_get_Valid(ScriptMethodParams &params) {
+	PARAMS1(const Socket *, socket);
+	params._result = socket->_valid;
 }
 
 void AGSSock::Socket_ErrorString(ScriptMethodParams &params) {
+	PARAMS1(const Socket *, socket);
+	params._result = socket->_errorString.c_str();
 }
 
 void AGSSock::Socket_Bind(ScriptMethodParams &params) {
@@ -278,6 +369,8 @@ void AGSSock::Socket_Listen(ScriptMethodParams &params) {
 }
 
 void AGSSock::Socket_Connect(ScriptMethodParams &params) {
+	// Fail the connection
+	params._result = 0;
 }
 
 void AGSSock::Socket_Accept(ScriptMethodParams &params) {


Commit: 58202e18397d08af20e5c56d5d5e15ee2d588f8f
    https://github.com/scummvm/scummvm/commit/58202e18397d08af20e5c56d5d5e15ee2d588f8f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-06-16T18:59:23-07:00

Commit Message:
AGS: Fix window resolutions for game width > 1000

Changed paths:
    engines/ags/engine/platform/base/sys_main.cpp


diff --git a/engines/ags/engine/platform/base/sys_main.cpp b/engines/ags/engine/platform/base/sys_main.cpp
index 74bb4a980f..80253ecf4e 100644
--- a/engines/ags/engine/platform/base/sys_main.cpp
+++ b/engines/ags/engine/platform/base/sys_main.cpp
@@ -54,8 +54,8 @@ const int DEFAULT_DISPLAY_INDEX = 0; // TODO: is this always right?
 int sys_get_desktop_resolution(int &width, int &height) {
 	// TODO: ScummVM has a hardcoded dummy desktop resolution. See if there's any
 	// need to change the values, given we're hardcoded for pretend full-screen
-	width = 1000;
-	height = 1000;
+	width = 9999;
+	height = 9999;
 
 	return 0;
 }




More information about the Scummvm-git-logs mailing list