Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2013-11-09 15:22:44 +0000
committerStijn Buys <ingar@osirion.org>2013-11-09 15:22:44 +0000
commit977a9a68d2465818a331643399a9ecc998d0cbb3 (patch)
tree5e19904a95119ebc22cfffedcf4bd7b2094e4e31 /src/core/netserver.cc
parentd0b6e591fbaf3db5fc9898e75913e57a3c32169a (diff)
Bumped network protocol to version 27,
send player reputation and stats from server to client, send entity faction to clients, improved list_entity.
Diffstat (limited to 'src/core/netserver.cc')
-rw-r--r--src/core/netserver.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/netserver.cc b/src/core/netserver.cc
index aae806e..84ed76c 100644
--- a/src/core/netserver.cc
+++ b/src/core/netserver.cc
@@ -407,6 +407,11 @@ void NetServer::client_frame(NetClient *client, unsigned long timestamp)
}
}
+ // send reputation updates
+ if (client->player()->reputation().dirty()) {
+ send_player_reputation(client);
+ }
+
// send inventory update for control
// FIXME this should be done for all player assets
if (client->player()->control() && client->player()->control()->inventory() && client->player()->control()->inventory()->dirty()) {
@@ -470,6 +475,7 @@ void NetServer::frame(unsigned long timestamp)
if (client->player()->dirty() || client->player()->zonechange()) {
client->player()->set_dirty(false);
client->player()->set_zonechange(false);
+ client->player()->reputation().set_dirty(false);
}
}
}
@@ -628,6 +634,16 @@ void NetServer::send_player_update(NetClient *client)
client->send_raw(msg.str());
}
+// send a "rep" update player reputation to a single player
+void NetServer::send_player_reputation(NetClient *client)
+{
+ std::ostringstream msg;
+ msg << "rep ";
+ client->player()->reputation().serialize_server_update(msg);
+ msg << '\n';
+ client->send_raw(msg.str());
+}
+
// send a short "pif" update player information to a single player
void NetServer::send_player_update(NetClient *client, Player *player)
{