From a95028547981614e06ea7a6d22b853b85418cea3 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Wed, 15 Apr 2009 17:08:51 +0000 Subject: added info registry, list_info added network info transfer added info based buy menu and related game changes --- src/core/netserver.cc | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/core/netserver.cc') diff --git a/src/core/netserver.cc b/src/core/netserver.cc index 62d9b74..5b3a991 100644 --- a/src/core/netserver.cc +++ b/src/core/netserver.cc @@ -525,7 +525,7 @@ void NetServer::send_player_update(NetClient *client) void NetServer::send_player_update(NetClient *client, Player *player) { std::ostringstream msg; - msg << "pif " << player->id() << " "; + msg << "pif " << player->id() << ' '; client->player()->serialize_server_update(msg); msg << '\n'; client->send_raw(msg.str()); @@ -539,6 +539,16 @@ void NetServer::send_player_disconnect_info(NetClient *client, Player *player) client->send_raw(msg.str()); } +// send a "inf" info record +void NetServer::send_info_update(NetClient *client, Info *info) +{ + std::ostringstream msg; + msg << "inf " << '"' << info->label() << '"' << ' '; + info->serialize_server_update(msg); + msg << '\n'; + client->send_raw(msg.str()); +} + // parse incoming client messages /** @@ -547,6 +557,7 @@ void NetServer::send_player_disconnect_info(NetClient *client, Player *player) * disconnect * cmd * cup + * inf * pif * ping * say @@ -641,6 +652,23 @@ void NetServer::parse_incoming_message(NetClient *client, const std::string & me return; } + if (command == "inf") { + std::string n; + char c; + + while ( (msgstream.get(c)) && (c != '"')); + while ( (msgstream.get(c)) && (c != '"')) + n += c; + + if (n.size()) { + Info *info = Info::find(n); + if (info) { + send_info_update(client, info); + client->transmit(); + } + } + } + if (command == "rcon") { if ((message.size() > command.size()+1) && Cvar::sv_password->str().size()) { if ((Cvar::sv_password->str().compare(client->player()->rconpassword()) == 0)) { -- cgit v1.2.3