diff options
author | Loic Blot <loic.blot@unix-experience.fr> | 2016-10-08 10:38:04 +0200 |
---|---|---|
committer | Ner'zhul <nerzhul@users.noreply.github.com> | 2016-10-08 11:36:28 +0200 |
commit | 8bcd10b872bc88c6f474913d6efb8d53c50c5ae1 (patch) | |
tree | 39a8af0048ed642eddc43c74ab9f736558663e9d /src/content_sao.cpp | |
parent | 0264e38bff12a3c6b81231ac1f6cd281179df744 (diff) | |
download | minetest-8bcd10b872bc88c6f474913d6efb8d53c50c5ae1.tar.gz minetest-8bcd10b872bc88c6f474913d6efb8d53c50c5ae1.tar.bz2 minetest-8bcd10b872bc88c6f474913d6efb8d53c50c5ae1.zip |
Player/LocalPlayer/RemotePlayer inheritance cleanup (part 1 on X)
* LocalPlayer take ownership of maxHudId as it's the only caller
* RemotePlayer take ownership of day night ratio as it's the only user
* Pass getPlayerControl as const reference to prevent object copy on each call (perf improvement in ObjectRef::l_get_player_control call)
* getPlayerSAO is now only RemotePlayer call
* get/setHotbarItemCount is now RemotePlayer owned
* Server: Use RemotePlayer instead of Player object on concerned call to properly fix the object type
* PlayerSAO now uses RemotePlayer instead of Player because it's only server side
* ObjectRef::getplayer also returns RemotePlayer as it's linked with PlayerSAO
Diffstat (limited to 'src/content_sao.cpp')
-rw-r--r-- | src/content_sao.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/content_sao.cpp b/src/content_sao.cpp index 895c26044..2317cbdfe 100644 --- a/src/content_sao.cpp +++ b/src/content_sao.cpp @@ -751,7 +751,7 @@ bool LuaEntitySAO::collideWithObjects(){ // No prototype, PlayerSAO does not need to be deserialized -PlayerSAO::PlayerSAO(ServerEnvironment *env_, Player *player_, u16 peer_id_, +PlayerSAO::PlayerSAO(ServerEnvironment *env_, RemotePlayer *player_, u16 peer_id_, const std::set<std::string> &privs, bool is_singleplayer): ServerActiveObject(env_, v3f(0,0,0)), m_player(player_), @@ -833,11 +833,10 @@ void PlayerSAO::addedToEnvironment(u32 dtime_s) void PlayerSAO::removingFromEnvironment() { ServerActiveObject::removingFromEnvironment(); - if(m_player->getPlayerSAO() == this) - { + if (m_player->getPlayerSAO() == this) { m_player->setPlayerSAO(NULL); m_player->peer_id = 0; - m_env->savePlayer((RemotePlayer*)m_player); + m_env->savePlayer(m_player); m_env->removePlayer(m_player); } } |