diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-21 21:01:17 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-21 21:01:17 +0000 |
commit | 71b6b902732bfc0c53033d58f91a6b1e70e8371f (patch) | |
tree | 0ff75879667ff985c9d69f8057727f6c805ad8b4 /src/core/player.cc | |
parent | 8aa04fc836116a58f8ffd1e0c3539b9ea8a94ddf (diff) |
more minor updates
Diffstat (limited to 'src/core/player.cc')
-rw-r--r-- | src/core/player.cc | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/src/core/player.cc b/src/core/player.cc index f4ee6ea..488e407 100644 --- a/src/core/player.cc +++ b/src/core/player.cc @@ -25,18 +25,38 @@ void Player::clear() player_id = 0; player_name.clear(); player_dirty = false; - control = 0; + player_control = 0; +} + +void Player::serialize_client_update(std::ostream & os) const +{ + os << " " << player_color << " \"" << player_name << "\""; +} + +void Player::recieve_client_update(std::istream &is) +{ + is >> player_color; + + std::string n; + char c; + while ( (is.get(c)) && (c != '"')); + while ( (is.get(c)) && (c != '"')) + n += c; + + if (n.size()) + player_name = n; + } void Player::serialize_server_update(std::ostream & os) const { unsigned int co; - if (control) - co = control->id(); + if (player_control) + co = player_control->id(); else co = 0; - os << player_id << " " << co << " \"" << player_name << "\""; + os << player_id << " " << co << " " << player_color << " \"" << player_name << "\""; } void Player::recieve_server_update(std::istream &is) @@ -47,22 +67,25 @@ void Player::recieve_server_update(std::istream &is) if (co) { Entity *e = Entity::find(co); if (e && e->type() == Entity::Controlable) { - control = (EntityControlable *) e; + player_control = (EntityControlable *) e; } else { - control = 0; + player_control = 0; con_warn << "control set to unknown entity " << co << "\n"; } } else { - control = 0; + player_control = 0; } + is >> player_color; + std::string n; char c; while ( (is.get(c)) && (c != '"')); while ( (is.get(c)) && (c != '"')) n += c; - player_name = n; + if (n.size()) + player_name = n; } } |