aboutsummaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
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);
+}