diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2008-10-11 14:40:58 +0000 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2008-10-11 14:40:58 +0000 |
commit | 927c42e73cce66acccc7056ea330a2362b455a00 (patch) | |
tree | fd37832bb336c19c2dc5d6776c36e6fff0b969d0 /sigbattle | |
parent | 3a096bed018254f9d662f9ae85792b8ae5df4837 (diff) | |
download | sigen-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.cpp | 20 | ||||
-rw-r--r-- | sigbattle/ATBArena.h | 8 | ||||
-rw-r--r-- | sigbattle/ATBTimer.cpp | 19 | ||||
-rw-r--r-- | sigbattle/ATBTimer.h | 5 | ||||
-rw-r--r-- | sigbattle/ActionQueue.h | 16 | ||||
-rw-r--r-- | sigbattle/Arena.cpp | 3 | ||||
-rw-r--r-- | sigbattle/Arena.h | 19 | ||||
-rw-r--r-- | sigbattle/Bot.h | 4 | ||||
-rw-r--r-- | sigbattle/Containment.h | 4 | ||||
-rw-r--r-- | sigbattle/Global.h | 18 | ||||
-rw-r--r-- | sigbattle/Player.h | 4 | ||||
-rw-r--r-- | sigbattle/Team.h | 4 | ||||
-rw-r--r-- | sigbattle/TeamMember.h | 58 | ||||
-rw-r--r-- | sigbattle/TurnArena.cpp | 14 | ||||
-rw-r--r-- | sigbattle/TurnArena.h | 8 |
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; |