aboutsummaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2023-02-27 22:58:41 +0000
committerGitHub <noreply@github.com>2023-02-27 22:58:41 +0000
commit39f4d26177ec1c8f246133c532a42ef7429bc36d (patch)
tree910b6a6635adf37eaba1d7410e83fad14f15bb90 /src/network
parentfbbdae93ee324584089efaf8e880a1378f6a2ad6 (diff)
downloadminetest-39f4d26177ec1c8f246133c532a42ef7429bc36d.tar.xz
Add minetest.get_player_window_information() (#12367)
Diffstat (limited to 'src/network')
-rw-r--r--src/network/clientopcodes.cpp1
-rw-r--r--src/network/networkprotocol.h10
-rw-r--r--src/network/serveropcodes.cpp1
-rw-r--r--src/network/serverpackethandler.cpp16
4 files changed, 27 insertions, 1 deletions
diff --git a/src/network/clientopcodes.cpp b/src/network/clientopcodes.cpp
index 6a78b4652..bff318155 100644
--- a/src/network/clientopcodes.cpp
+++ b/src/network/clientopcodes.cpp
@@ -223,4 +223,5 @@ const ServerCommandFactory serverCommandFactoryTable[TOSERVER_NUM_MSG_TYPES] =
{ "TOSERVER_FIRST_SRP", 1, true }, // 0x50
{ "TOSERVER_SRP_BYTES_A", 1, true }, // 0x51
{ "TOSERVER_SRP_BYTES_M", 1, true }, // 0x52
+ { "TOSERVER_UPDATE_CLIENT_INFO", 1, true }, // 0x53
};
diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h
index d456f19bf..d420101c8 100644
--- a/src/network/networkprotocol.h
+++ b/src/network/networkprotocol.h
@@ -1062,7 +1062,15 @@ enum ToServerCommand
std::string bytes_M
*/
- TOSERVER_NUM_MSG_TYPES = 0x53,
+ TOSERVER_UPDATE_CLIENT_INFO = 0x53,
+ /*
+ v2s16 render_target_size
+ f32 gui_scaling
+ f32 hud_scaling
+ v2f32 max_fs_info
+ */
+
+ TOSERVER_NUM_MSG_TYPES = 0x54,
};
enum AuthMechanism
diff --git a/src/network/serveropcodes.cpp b/src/network/serveropcodes.cpp
index cd2ff64fd..1165bb065 100644
--- a/src/network/serveropcodes.cpp
+++ b/src/network/serveropcodes.cpp
@@ -107,6 +107,7 @@ const ToServerCommandHandler toServerCommandTable[TOSERVER_NUM_MSG_TYPES] =
{ "TOSERVER_FIRST_SRP", TOSERVER_STATE_NOT_CONNECTED, &Server::handleCommand_FirstSrp }, // 0x50
{ "TOSERVER_SRP_BYTES_A", TOSERVER_STATE_NOT_CONNECTED, &Server::handleCommand_SrpBytesA }, // 0x51
{ "TOSERVER_SRP_BYTES_M", TOSERVER_STATE_NOT_CONNECTED, &Server::handleCommand_SrpBytesM }, // 0x52
+ { "TOSERVER_UPDATE_CLIENT_INFO", TOSERVER_STATE_INGAME, &Server::handleCommand_UpdateClientInfo }, // 0x53
};
const static ClientCommandFactory null_command_factory = { "TOCLIENT_NULL", 0, false };
diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index a5ee81a9c..89e2e2a1c 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -40,6 +40,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "util/pointedthing.h"
#include "util/serialize.h"
#include "util/srp.h"
+#include "clientdynamicinfo.h"
void Server::handleCommand_Deprecated(NetworkPacket* pkt)
{
@@ -1841,3 +1842,18 @@ void Server::handleCommand_HaveMedia(NetworkPacket *pkt)
}
}
}
+
+void Server::handleCommand_UpdateClientInfo(NetworkPacket *pkt)
+{
+ ClientDynamicInfo info;
+ *pkt >> info.render_target_size.X;
+ *pkt >> info.render_target_size.Y;
+ *pkt >> info.real_gui_scaling;
+ *pkt >> info.real_hud_scaling;
+ *pkt >> info.max_fs_size.X;
+ *pkt >> info.max_fs_size.Y;
+
+ session_t peer_id = pkt->getPeerId();
+ RemoteClient *client = getClient(peer_id, CS_Invalid);
+ client->setDynamicInfo(info);
+}