diff options
author | Stijn Buys <ingar@osirion.org> | 2013-11-09 15:22:44 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2013-11-09 15:22:44 +0000 |
commit | 977a9a68d2465818a331643399a9ecc998d0cbb3 (patch) | |
tree | 5e19904a95119ebc22cfffedcf4bd7b2094e4e31 /src/core/netserver.cc | |
parent | d0b6e591fbaf3db5fc9898e75913e57a3c32169a (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.cc | 16 |
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) { |