From bff134a0803f68a7bf69cf2f1121824137d4b2fb Mon Sep 17 00:00:00 2001 From: Chuck Miller Date: Tue, 5 May 2009 18:37:34 -0400 Subject: Moved code for hiding / showing player names from Player::logic() to a the configure listener system --- src/player.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/player.cpp') diff --git a/src/player.cpp b/src/player.cpp index 14a9c97f..abc01152 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -44,10 +44,12 @@ Player::Player(int id, int job, Map *map): mIsGM(false), mInParty(false) { + config.addListener("visiblenames", this); } Player::~Player() { + config.removeListener("visiblenames", this); delete mName; } @@ -135,18 +137,6 @@ void Player::logic() break; } - if (getType() == Being::PLAYER && player_node != this) - { - if (!config.getValue("visiblenames", 1) && mName) - { - delete mName; - mName = NULL; - } - else if (config.getValue("visiblenames", 1) && !mName && !(getName().empty())) - { - setName(getName()); - } - } Being::logic(); } #endif @@ -296,3 +286,20 @@ void Player::setInParty(bool value) { mInParty = value; } + +void Player::optionChanged(const std::string &value) +{ + if (value == "visiblenames" && getType() == Being::PLAYER && player_node != this) + { + bool value = config.getValue("visiblenames", 1); + if (!value && mName) + { + delete mName; + mName = NULL; + } + else if (value && !mName && !(getName().empty())) + { + setName(getName()); + } + } +} -- cgit v1.2.3-70-g09d2