From 5cda1d7c90f7ac2a1d8a851edbe426f07a032946 Mon Sep 17 00:00:00 2001 From: truebrain Date: Mon, 19 Dec 2011 20:50:44 +0000 Subject: (svn r23603) -Add: support for control commands in strings, in both network and safe/load (Rubidium) --- src/network/network_command.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/network/network_command.cpp') diff --git a/src/network/network_command.cpp b/src/network/network_command.cpp index 070e810d8..02ee6acf8 100644 --- a/src/network/network_command.cpp +++ b/src/network/network_command.cpp @@ -294,16 +294,16 @@ const char *NetworkGameSocketHandler::ReceiveCommand(Packet *p, CommandPacket *c { cp->company = (CompanyID)p->Recv_uint8(); cp->cmd = p->Recv_uint32(); + if (!IsValidCommand(cp->cmd)) return "invalid command"; + if (GetCommandFlags(cp->cmd) & CMD_OFFLINE) return "offline only command"; + if ((cp->cmd & CMD_FLAGS_MASK) != 0) return "invalid command flag"; + cp->p1 = p->Recv_uint32(); cp->p2 = p->Recv_uint32(); cp->tile = p->Recv_uint32(); - p->Recv_string(cp->text, lengthof(cp->text)); + p->Recv_string(cp->text, lengthof(cp->text), (!_network_server && GetCommandFlags(cp->cmd) & CMD_STR_CTRL) != 0 ? SVS_ALLOW_CONTROL_CODE | SVS_REPLACE_WITH_QUESTION_MARK : SVS_REPLACE_WITH_QUESTION_MARK); byte callback = p->Recv_uint8(); - - if (!IsValidCommand(cp->cmd)) return "invalid command"; - if (GetCommandFlags(cp->cmd) & CMD_OFFLINE) return "offline only command"; - if ((cp->cmd & CMD_FLAGS_MASK) != 0) return "invalid command flag"; if (callback >= lengthof(_callback_table)) return "invalid callback"; cp->callback = _callback_table[callback]; -- cgit v1.2.3-54-g00ecf