summaryrefslogtreecommitdiff
path: root/src/gui/widgets/tabs/socialplayerstab.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets/tabs/socialplayerstab.h')
-rw-r--r--src/gui/widgets/tabs/socialplayerstab.h198
1 files changed, 0 insertions, 198 deletions
diff --git a/src/gui/widgets/tabs/socialplayerstab.h b/src/gui/widgets/tabs/socialplayerstab.h
deleted file mode 100644
index c43093fca..000000000
--- a/src/gui/widgets/tabs/socialplayerstab.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2011-2017 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef GUI_WIDGETS_TABS_SOCIALPLAYERSTAB_H
-#define GUI_WIDGETS_TABS_SOCIALPLAYERSTAB_H
-
-#include "gui/widgets/tabs/socialtab.h"
-
-#include "actormanager.h"
-#include "party.h"
-
-#include "being/being.h"
-
-#include "gui/models/beingslistmodel.h"
-
-#include "utils/gettext.h"
-#include "utils/delete2.h"
-#include "utils/stringutils.h"
-
-#include "localconsts.h"
-
-class Avatar;
-class Being;
-
-class SocialPlayersTab final : public SocialTab
-{
- public:
- SocialPlayersTab(const Widget2 *const widget,
- const std::string &name,
- const Opaque showBackground) :
- SocialTab(widget),
- mBeings(new BeingsListModel)
- {
- createControls(mBeings, showBackground);
-
- getPlayersAvatars();
- setCaption(name);
- mMenuAction = "players";
- }
-
- A_DELETE_COPY(SocialPlayersTab)
-
- ~SocialPlayersTab()
- {
- delete2(mList)
- delete2(mScroll)
- delete2(mBeings)
- }
-
- void updateList() override final
- {
- getPlayersAvatars();
- }
-
- void updateAvatar(const std::string &name) override final
- {
- if (actorManager == nullptr)
- return;
-
- BLOCK_START("SocialPlayersTab::updateAvatar")
- Avatar *const avatar = findAvatarbyName(name);
- if (avatar == nullptr)
- return;
- if (Party::getParty(1) != nullptr)
- {
- const PartyMember *const
- pm = Party::getParty(1)->getMember(name);
- if ((pm != nullptr) && pm->getMaxHp() > 0)
- {
- avatar->setMaxHp(pm->getMaxHp());
- avatar->setHp(pm->getHp());
- }
- }
- const Being *const being = actorManager->findBeingByName(
- name, ActorType::Player);
- if (being != nullptr)
- {
- avatar->setDamageHp(being->getDamageTaken());
- avatar->setLevel(being->getLevel());
- avatar->setGender(being->getGender());
- avatar->setIp(being->getIp());
- avatar->setPoison(being->getPoison());
- }
- BLOCK_END("SocialPlayersTab::updateAvatar")
- }
-
- void resetDamage(const std::string &name) override final
- {
- if (actorManager == nullptr)
- return;
-
- Avatar *const avatar = findAvatarbyName(name);
- if (avatar == nullptr)
- return;
- avatar->setDamageHp(0);
- Being *const being = actorManager->findBeingByName(
- name, ActorType::Player);
-
- if (being != nullptr)
- being->setDamageTaken(0);
- }
-
- Avatar* findAvatarbyName(const std::string &name)
- {
- STD_VECTOR<Avatar*> *const avatars = mBeings->getMembers();
- Avatar *ava = nullptr;
- STD_VECTOR<Avatar*>::const_iterator i = avatars->begin();
- const STD_VECTOR<Avatar*>::const_iterator i_end = avatars->end();
- while (i != i_end)
- {
- ava = (*i);
- if ((ava != nullptr) && ava->getName() == name)
- return ava;
- ++i;
- }
- ava = new Avatar(name);
- ava->setOnline(true);
- avatars->push_back(ava);
- return ava;
- }
-
- void getPlayersAvatars()
- {
- STD_VECTOR<Avatar*> *const avatars = mBeings->getMembers();
- if (actorManager != nullptr)
- {
- StringVect names;
- actorManager->getPlayerNames(names, NpcNames_false);
-
- STD_VECTOR<Avatar*>::iterator ai = avatars->begin();
- while (ai != avatars->end())
- {
- bool finded = false;
- const Avatar *const ava = (*ai);
- if (ava == nullptr)
- break;
-
- StringVectCIter i = names.begin();
- const StringVectCIter i_end = names.end();
- while (i != i_end)
- {
- if (ava->getName() == (*i) && !(*i).empty())
- {
- finded = true;
- break;
- }
- ++i;
- }
-
- if (!finded)
- {
- delete *ai;
- ai = avatars->erase(ai);
- }
- else
- {
- ++ai;
- }
- }
-
- StringVectCIter i = names.begin();
- const StringVectCIter i_end = names.end();
-
- while (i != i_end)
- {
- if (!(*i).empty())
- updateAvatar(*i);
- ++i;
- }
- }
- // TRANSLATORS: social window label
- mCounterString = strprintf(_("Visible players: %d"),
- CAST_S32(avatars->size()));
- updateCounter();
- }
-
- private:
- BeingsListModel *mBeings;
-};
-
-#endif // GUI_WIDGETS_TABS_SOCIALPLAYERSTAB_H