diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-09-05 20:41:05 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-09-05 20:41:05 +0000 |
| commit | b81f5bffa2772eb9bd3c67fb35485ab1ee2d96e7 (patch) | |
| tree | 6609f31b1635d948cf7a216c7fea72cfb3c905a0 /pokebattle/ATBTimer.cpp | |
| parent | b99ffef4aa68dd5f0af64de9aec0f610e267d8cc (diff) | |
[FIX] Moving stuff for the move to the new name, Sigma Game Engine (sigen for short)
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@249 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokebattle/ATBTimer.cpp')
| -rw-r--r-- | pokebattle/ATBTimer.cpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/pokebattle/ATBTimer.cpp b/pokebattle/ATBTimer.cpp deleted file mode 100644 index d2f42ce2..00000000 --- a/pokebattle/ATBTimer.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2008 Ben Boeckel <MathStuf@gmail.com> - * - * 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 3 of the License, or - * (at your option) 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/>. - */ - -// Header include -#include "ATBTimer.h" - -// Pokebattle includes -#include "ATBArena.h" - -// Qt includes -#include <QtCore/QtConcurrentFilter> -#include <QtCore/QtConcurrentMap> -#include <QtCore/QFuture> -#include <QtCore/QMultiMap> -#include <QtCore/QTimer> - -// STL includes -#include <functional> - -Pokebattle::ATBTimer::ATBTimer(ATBArena* arena, ActionQueue& actions) : - QThread(arena), - m_arena(arena), - m_actions(actions), - m_timer(new QTimer(this)) -{ - connect(m_timer, SIGNAL(timeout()), this, SLOT(update())); -} - -void Pokebattle::ATBTimer::update() -{ - const QList<TeamMember*> active = m_timeStates.keys(); - QtConcurrent::blockingMap(active, std::bind1st(std::mem_fun(&Pokebattle::ATBTimer::increaseMeter), this)); - // TODO: adjust max time if needed - QList<TeamMember*> overflow = QtConcurrent::blockingFiltered(active, std::bind1st(std::mem_fun(&Pokebattle::ATBTimer::isOverflowed), this)); - QMultiMap<double, TeamMember*> sorter; - foreach (TeamMember* teamMember, overflow) - sorter.insert(m_timeStates[teamMember], teamMember); - overflow = sorter.values(); - foreach(TeamMember* teamMember, overflow) - m_actions.enqueue(requestDecision(teamMember)); -} - -void Pokebattle::ATBTimer::run() -{ - m_timer->start(50); - exec(); -} - -void Pokebattle::ATBTimer::increaseMeter(const TeamMember* teamMember) -{ - // TODO: tweak this(?) - m_timeStates[const_cast<TeamMember*>(teamMember)] += teamMember->statValue(Pokemod::ST_Speed) / 10; -} - -bool Pokebattle::ATBTimer::isOverflowed(const TeamMember* teamMember) const -{ - return m_threshold < m_timeStates[const_cast<TeamMember*>(teamMember)]; -} |
