summaryrefslogtreecommitdiffstats
path: root/sigbattle
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-10-11 14:40:58 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-10-11 14:40:58 +0000
commit927c42e73cce66acccc7056ea330a2362b455a00 (patch)
treefd37832bb336c19c2dc5d6776c36e6fff0b969d0 /sigbattle
parent3a096bed018254f9d662f9ae85792b8ae5df4837 (diff)
downloadsigen-927c42e73cce66acccc7056ea330a2362b455a00.tar.gz
sigen-927c42e73cce66acccc7056ea330a2362b455a00.tar.xz
sigen-927c42e73cce66acccc7056ea330a2362b455a00.zip
[FIX] Reordered sections in class declarations
[FIX] Using QSet rather than QList for players [ADD] Started signet library (compilation fails) git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@273 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'sigbattle')
-rw-r--r--sigbattle/ATBArena.cpp20
-rw-r--r--sigbattle/ATBArena.h8
-rw-r--r--sigbattle/ATBTimer.cpp19
-rw-r--r--sigbattle/ATBTimer.h5
-rw-r--r--sigbattle/ActionQueue.h16
-rw-r--r--sigbattle/Arena.cpp3
-rw-r--r--sigbattle/Arena.h19
-rw-r--r--sigbattle/Bot.h4
-rw-r--r--sigbattle/Containment.h4
-rw-r--r--sigbattle/Global.h18
-rw-r--r--sigbattle/Player.h4
-rw-r--r--sigbattle/Team.h4
-rw-r--r--sigbattle/TeamMember.h58
-rw-r--r--sigbattle/TurnArena.cpp14
-rw-r--r--sigbattle/TurnArena.h8
15 files changed, 99 insertions, 105 deletions
diff --git a/sigbattle/ATBArena.cpp b/sigbattle/ATBArena.cpp
index 6da6f96c..b88ddf5d 100644
--- a/sigbattle/ATBArena.cpp
+++ b/sigbattle/ATBArena.cpp
@@ -24,7 +24,7 @@
// Qt includes
#include <QtCore/QTimer>
-Sigbattle::ATBArena::ATBArena(Sigscript::SigmodWrapper* sigmod, QList<Player*> players, const bool isWild, QObject* parent) :
+Sigbattle::ATBArena::ATBArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent) :
Arena(sigmod, players, isWild, parent)
{
setupBattle();
@@ -40,6 +40,15 @@ void Sigbattle::ATBArena::handleAction(TeamMember* teamMember, TeamMember::Actio
Arena::handleAction(teamMember, action);
}
+void Sigbattle::ATBArena::setupBattle()
+{
+ m_atbTimer = new ATBTimer(this, m_decisions);
+ m_processTicker = new QTimer(this);
+ connect(m_processTicker, SIGNAL(timeout()), this, SLOT(processActions()));
+ m_processTicker->start(100);
+ Arena::setupBattle();
+}
+
void Sigbattle::ATBArena::processActions()
{
if (!m_decisions.isEmpty())
@@ -60,12 +69,3 @@ void Sigbattle::ATBArena::cleanUp()
m_processTicker = NULL;
Arena::cleanUp();
}
-
-void Sigbattle::ATBArena::setupBattle()
-{
- m_atbTimer = new ATBTimer(this, m_decisions);
- m_processTicker = new QTimer(this);
- connect(m_processTicker, SIGNAL(timeout()), this, SLOT(processActions()));
- m_processTicker->start(100);
- Arena::setupBattle();
-}
diff --git a/sigbattle/ATBArena.h b/sigbattle/ATBArena.h
index acdddaa1..b037f3a8 100644
--- a/sigbattle/ATBArena.h
+++ b/sigbattle/ATBArena.h
@@ -34,16 +34,16 @@ class SIGBATTLE_EXPORT ATBArena : public Arena
Q_OBJECT
public:
- ATBArena(Sigscript::SigmodWrapper* sigmod, QList<Player*> players, const bool isWild, QObject* parent);
+ ATBArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent);
void handleAction(TeamMember* teamMember, TeamMember::Action action);
- signals:
public slots:
+ signals:
+ protected:
+ void setupBattle();
protected slots:
void processActions();
void cleanUp();
- protected:
- void setupBattle();
private:
ActionQueue m_decisions;
ATBTimer* m_atbTimer;
diff --git a/sigbattle/ATBTimer.cpp b/sigbattle/ATBTimer.cpp
index d7f0ad83..d41b9db6 100644
--- a/sigbattle/ATBTimer.cpp
+++ b/sigbattle/ATBTimer.cpp
@@ -54,11 +54,22 @@ Sigbattle::ATBTimer::ATBTimer(ATBArena* arena, ActionQueue& actions) :
QThread(arena),
m_arena(arena),
m_actions(actions),
- m_timer(new QTimer(this))
+ m_timer(new QTimer)
{
connect(m_timer, SIGNAL(timeout()), this, SLOT(update()));
}
+Sigbattle::ATBTimer::~ATBTimer()
+{
+ delete m_timer;
+}
+
+void Sigbattle::ATBTimer::run()
+{
+ m_timer->start(50);
+ exec();
+}
+
void Sigbattle::ATBTimer::update()
{
const QList<TeamMember*> active = m_arena->active();
@@ -81,9 +92,3 @@ void Sigbattle::ATBTimer::update()
m_timer->start(50);
}
}
-
-void Sigbattle::ATBTimer::run()
-{
- m_timer->start(50);
- exec();
-}
diff --git a/sigbattle/ATBTimer.h b/sigbattle/ATBTimer.h
index d273487e..d198d0ac 100644
--- a/sigbattle/ATBTimer.h
+++ b/sigbattle/ATBTimer.h
@@ -40,10 +40,11 @@ class SIGBATTLE_EXPORT ATBTimer : public QThread
public:
ATBTimer(ATBArena* arena, ActionQueue& actions);
- protected slots:
- void update();
+ ~ATBTimer();
protected:
void run();
+ protected slots:
+ void update();
private:
ATBArena* m_arena;
ActionQueue& m_actions;
diff --git a/sigbattle/ActionQueue.h b/sigbattle/ActionQueue.h
index 9c456c84..fc3a8232 100644
--- a/sigbattle/ActionQueue.h
+++ b/sigbattle/ActionQueue.h
@@ -34,13 +34,9 @@ class SIGBATTLE_EXPORT ActionQueue
public:
TeamMember::RequestedAction dequeue();
void enqueue(const TeamMember::RequestedAction& action);
-
- bool isEmpty();
-
TeamMember::RequestedAction& head();
- void lock();
- void unlock();
+ bool isEmpty();
private:
QQueue<TeamMember::RequestedAction> m_queue;
QMutex m_mutex;
@@ -70,16 +66,6 @@ inline bool ActionQueue::isEmpty()
return m_queue.isEmpty();
}
-inline void ActionQueue::lock()
-{
- m_mutex.lock();
-}
-
-inline void ActionQueue::unlock()
-{
- m_mutex.unlock();
-}
-
}
#endif
diff --git a/sigbattle/Arena.cpp b/sigbattle/Arena.cpp
index 874fb44b..212f9eee 100644
--- a/sigbattle/Arena.cpp
+++ b/sigbattle/Arena.cpp
@@ -50,7 +50,7 @@ Sigbattle::TeamMember::Action Sigbattle::decision(TeamMember* teamMember)
return teamMember->requestAction();
}
-Sigbattle::Arena::Arena(Sigscript::SigmodWrapper* sigmod, QList<Player*> players, const bool isWild, QObject* parent) :
+Sigbattle::Arena::Arena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent) :
Sigscript::Config(parent),
m_sigmod(sigmod),
m_isWild(isWild),
@@ -229,6 +229,7 @@ void Sigbattle::Arena::distributeWinnings()
void Sigbattle::Arena::checkForLosers()
{
+ static QSet<Player*> losers;
foreach (Player* player, m_players)
{
diff --git a/sigbattle/Arena.h b/sigbattle/Arena.h
index 3b4108c4..54802d26 100644
--- a/sigbattle/Arena.h
+++ b/sigbattle/Arena.h
@@ -56,25 +56,25 @@ class SIGBATTLE_EXPORT Arena : public Sigscript::Config
public:
typedef QPair<int, int> Spoil;
- ~Arena();
-
QList<TeamMember*> active() const;
int numActiveTeams() const;
bool isOver() const;
Sigscript::SigmodWrapper* sigmod() const;
+ public slots:
+// void addClient(Client* client);
+// void removeClient(Client* client);
+
+ void registerScript(const Sigmod::Script& script);
signals:
void battleStart();
void battleEnd();
void aboutToClearActions();
- public slots:
- void registerScript(const Sigmod::Script& script);
- protected slots:
- virtual void cleanUp();
protected:
- Arena(Sigscript::SigmodWrapper* sigmod, QList<Player*> players, const bool isWild, QObject* parent);
+ Arena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent);
+ ~Arena();
virtual void handleAction(TeamMember* teamMember, TeamMember::Action action);
@@ -88,9 +88,12 @@ class SIGBATTLE_EXPORT Arena : public Sigscript::Config
Sigscript::SigmodWrapper* m_sigmod;
const bool m_isWild;
bool m_isOver;
- QList<Player*> m_players;
+// QSet<Client*> m_clients;
+ QSet<Player*> m_players;
Kross::ActionCollection* m_actions;
QMap<Player*, Spoil> m_spoils;
+ protected slots:
+ virtual void cleanUp();
private:
const QUuid m_id;
};
diff --git a/sigbattle/Bot.h b/sigbattle/Bot.h
index fb21fb95..2b7913d9 100644
--- a/sigbattle/Bot.h
+++ b/sigbattle/Bot.h
@@ -41,10 +41,10 @@ class SIGBATTLE_EXPORT Bot : public Player
public:
Bot(const Sigmod::MapTrainer& trainer);
- signals:
public slots:
- protected slots:
+ signals:
protected:
+ protected slots:
private:
long alphaBeta(const Arena& arena, const int trainerClass, const long alpha = LONG_MIN, const long beta = LONG_MAX);
diff --git a/sigbattle/Containment.h b/sigbattle/Containment.h
index e3c901e4..6b75876c 100644
--- a/sigbattle/Containment.h
+++ b/sigbattle/Containment.h
@@ -51,12 +51,12 @@ class SIGBATTLE_EXPORT Containment : public QObject
TeamMember* findMember(const QUuid& id) const;
Sigscript::SigmodWrapper* sigmod() const;
- signals:
public slots:
- protected slots:
+ signals:
protected:
Sigscript::SigmodWrapper* m_sigmod;
QList<TeamMember*> m_members;
+ protected slots:
};
}
Q_DECLARE_METATYPE(Sigbattle::Containment*)
diff --git a/sigbattle/Global.h b/sigbattle/Global.h
index 8a2ea409..bbea4e43 100644
--- a/sigbattle/Global.h
+++ b/sigbattle/Global.h
@@ -22,17 +22,15 @@
#include <kdemacros.h>
#ifndef SIGBATTLE_EXPORT
-# ifdef MAKE_SIGBATTLE_LIB
- /* We are building this library */
-# define SIGBATTLE_EXPORT KDE_EXPORT
-# else
- /* We are using this library */
-# define SIGBATTLE_EXPORT KDE_IMPORT
-# endif
+# ifdef MAKE_SIGBATTLE_LIB
+# define SIGBATTLE_EXPORT KDE_EXPORT
+# else
+# define SIGBATTLE_EXPORT KDE_IMPORT
+# endif
#endif
-# ifndef SIGBATTLE_EXPORT_DEPRECATED
-# define SIGBATTLE_EXPORT_DEPRECATED KDE_DEPRECATED SIGBATTLE_EXPORT
-# endif
+#ifndef SIGBATTLE_EXPORT_DEPRECATED
+# define SIGBATTLE_EXPORT_DEPRECATED KDE_DEPRECATED SIGBATTLE_EXPORT
+#endif
#endif
diff --git a/sigbattle/Player.h b/sigbattle/Player.h
index 1c256bd3..dbe11a8a 100644
--- a/sigbattle/Player.h
+++ b/sigbattle/Player.h
@@ -50,7 +50,6 @@ class SIGBATTLE_EXPORT Player : public Team
void switchOut(TeamMember* oldActive, TeamMember* newActive);
int money() const;
- signals:
public slots:
void exitArena();
@@ -58,11 +57,12 @@ class SIGBATTLE_EXPORT Player : public Team
void takeMoney(const int amount);
virtual TeamMember::Action requestAction(const TeamMember* teamMember) const = 0;
- protected slots:
+ signals:
protected:
QList<TeamMember*> m_active;
Arena* m_arena;
int m_money;
+ protected slots:
};
}
Q_DECLARE_METATYPE(Sigbattle::Player*)
diff --git a/sigbattle/Team.h b/sigbattle/Team.h
index d0da4ed2..4db01b47 100644
--- a/sigbattle/Team.h
+++ b/sigbattle/Team.h
@@ -34,12 +34,12 @@ class SIGBATTLE_EXPORT Team : public Containment
Team(Sigscript::SigmodWrapper* sigmod, QObject* parent);
virtual bool isMutable() const;
+ public slots:
signals:
void teamKnockedOut();
- public slots:
- protected slots:
protected:
Arena* m_arena;
+ protected slots:
};
}
Q_DECLARE_METATYPE(Sigbattle::Team*)
diff --git a/sigbattle/TeamMember.h b/sigbattle/TeamMember.h
index 674f8e30..0dffa982 100644
--- a/sigbattle/TeamMember.h
+++ b/sigbattle/TeamMember.h
@@ -111,6 +111,30 @@ class SIGBATTLE_EXPORT TeamMember : public Sigscript::Config
long long timer() const;
Sigscript::SigmodWrapper* sigmod() const;
+ public slots:
+ void boostLevels(const int levels);
+
+ void evolveInto(Sigscript::SpeciesWrapper* newSpecies);
+
+ void setName(const QString& name);
+ void cureStatus(Sigscript::StatusWrapper* status);
+ void giveStatus(Sigscript::StatusWrapper* status);
+ void giveLevelExp(const int exp);
+ void giveStatExp(const Sigmod::Stat stat, const int exp);
+ void takeItem(Sigscript::ItemWrapper* item);
+ void giveItem(Sigscript::ItemWrapper* item);
+ void forgetMove(Sigscript::MoveWrapper* move);
+ void teachMove(Sigscript::MoveWrapper* move);
+
+ Action requestAction();
+ Action latestAction() const;
+
+ void makeActive(Arena* arena);
+ void leaveArena();
+
+ void advanceTimer(const long long jump);
+
+ virtual void writeBack();
signals:
void speciesChanged(Sigscript::SpeciesWrapper* species);
@@ -139,35 +163,6 @@ class SIGBATTLE_EXPORT TeamMember : public Sigscript::Config
void unlearnableMove(Sigscript::MoveWrapper* move);
void knockedOut();
- public slots:
- void boostLevels(const int levels);
-
- void evolveInto(Sigscript::SpeciesWrapper* newSpecies);
-
- void setName(const QString& name);
- void cureStatus(Sigscript::StatusWrapper* status);
- void giveStatus(Sigscript::StatusWrapper* status);
- void giveLevelExp(const int exp);
- void giveStatExp(const Sigmod::Stat stat, const int exp);
- void takeItem(Sigscript::ItemWrapper* item);
- void giveItem(Sigscript::ItemWrapper* item);
- void forgetMove(Sigscript::MoveWrapper* move);
- void teachMove(Sigscript::MoveWrapper* move);
-
- Action requestAction();
- Action latestAction() const;
-
- void makeActive(Arena* arena);
- void leaveArena();
-
- void advanceTimer(const long long jump);
-
- virtual void writeBack();
- protected slots:
- void setSpecies(Sigscript::SpeciesWrapper* species);
- void setLevel(const int level);
- private slots:
- void levelGrown();
protected:
bool checkWeight(const Sigscript::ItemWrapper* item);
@@ -194,6 +189,9 @@ class SIGBATTLE_EXPORT TeamMember : public Sigscript::Config
QList<Kross::Action*> m_abilityBattleScripts;
QList<Kross::Action*> m_statusBattleScripts;
+ protected slots:
+ void setSpecies(Sigscript::SpeciesWrapper* species);
+ void setLevel(const int level);
private:
void makeConnections();
@@ -204,6 +202,8 @@ class SIGBATTLE_EXPORT TeamMember : public Sigscript::Config
void initMoves(const QList<Sigscript::MoveWrapper*>& initial = QList<Sigscript::MoveWrapper*>());
void initNatures(const QList<Sigscript::NatureWrapper*>& initial = QList<Sigscript::NatureWrapper*>());
void initStats();
+ private slots:
+ void levelGrown();
};
int actionPriority(TeamMember* teamMember, const TeamMember::Action& action);
diff --git a/sigbattle/TurnArena.cpp b/sigbattle/TurnArena.cpp
index 285bf983..3542298c 100644
--- a/sigbattle/TurnArena.cpp
+++ b/sigbattle/TurnArena.cpp
@@ -55,7 +55,7 @@ bool Sigbattle::sortActions(const TeamMember::RequestedAction& reqAction1, const
return false;
}
-Sigbattle::TurnArena::TurnArena(Sigscript::SigmodWrapper* sigmod, QList<Player*> players, const bool isWild, QObject* parent) :
+Sigbattle::TurnArena::TurnArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent) :
Arena(sigmod, players, isWild, parent),
m_watcher(new QFutureWatcher<TeamMember::RequestedAction>(this)),
m_timer(new QTimer(this))
@@ -65,6 +65,12 @@ Sigbattle::TurnArena::TurnArena(Sigscript::SigmodWrapper* sigmod, QList<Player*>
connect(m_timer, SIGNAL(timeout()), m_watcher, SLOT(cancel()));
}
+void Sigbattle::TurnArena::setupBattle()
+{
+ // TODO: setup everything for the arena to do with the turns
+ Arena::setupBattle();
+}
+
void Sigbattle::TurnArena::processRound()
{
emit(roundAboutToStart());
@@ -107,9 +113,3 @@ void Sigbattle::TurnArena::processRound()
if (!isOver())
processRound();
}
-
-void Sigbattle::TurnArena::setupBattle()
-{
- // TODO: setup everything for the arena to do with the turns
- Arena::setupBattle();
-}
diff --git a/sigbattle/TurnArena.h b/sigbattle/TurnArena.h
index 4fe57272..9df0681d 100644
--- a/sigbattle/TurnArena.h
+++ b/sigbattle/TurnArena.h
@@ -35,17 +35,17 @@ class SIGBATTLE_EXPORT TurnArena : public Arena
Q_OBJECT
public:
- TurnArena(Sigscript::SigmodWrapper* sigmod, QList<Player*> players, const bool isWild, QObject* parent);
+ TurnArena(Sigscript::SigmodWrapper* sigmod, QSet<Player*> players, const bool isWild, QObject* parent);
+ public slots:
signals:
void roundAboutToStart();
void roundStart();
void roundAboutToEnd();
void roundEnd();
- public slots:
- protected slots:
- void processRound();
protected:
void setupBattle();
+ protected slots:
+ void processRound();
private:
QFutureWatcher<TeamMember::RequestedAction>* m_watcher;
QTimer* m_timer;