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 | |
| parent | 3a096bed018254f9d662f9ae85792b8ae5df4837 (diff) | |
[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
41 files changed, 579 insertions, 218 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c243a168..f398a90b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ LINK_DIRECTORIES( ADD_SUBDIRECTORY(sigmod) ADD_SUBDIRECTORY(sigscript) +ADD_SUBDIRECTORY(signet) ADD_SUBDIRECTORY(sigbattle) ADD_SUBDIRECTORY(sigmodr) @@ -69,6 +70,7 @@ ADD_DEPENDENCIES(sigscript ) ADD_DEPENDENCIES(sigbattle sigscript + signet ) ADD_DEPENDENCIES(sigmodr sigmod @@ -1,4 +1,13 @@ ----------------- +Rev: 273 +Date: 11 October 2008 +User: MathStuf +----------------- +[FIX] Reordered sections in class declarations +[FIX] Using QSet rather than QList for players +[ADD] Started signet library (compilation fails) + +----------------- Rev: 272 Date: 6 October 2008 User: MathStuf 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; @@ -178,6 +178,32 @@ SectionEnd RMDir /R "$INSTDIR\src\sigscript" !macroend +Section /o "Signet" signet_bin + DetailPrint "*** Installing Signet..." + setOutPath "$INSTDIR\bin" + CreateDirectory "$INSTDIR\bin" + file bin/signet0.dll +SectionEnd +!macro Remove_${signet_bin} + DetailPrint "*** Removing Signet..." + Delete "$INSTDIR\bin\signet0.dll" +!macroend + +Section /o "Signet sources" signet_src + DetailPrint "*** Installing Signet sources..." + setOutPath "$INSTDIR\src\signet" + CreateDirectory "$INSTDIR\src\signet" + file signet/CMakeLists.txt + file signet/signet.pro + file signet/TODO + file signet/*.h + file signet/*.cpp +SectionEnd +!macro Remove_${signet_src} + DetailPrint "*** Removing Signet sources..." + RMDir /R "$INSTDIR\src\signet" +!macroend + Section /o "Sigbattle" sigbattle_bin DetailPrint "*** Installing Sigbattle..." setOutPath "$INSTDIR\bin" @@ -252,6 +278,8 @@ SectionEnd !insertmacro "${MacroName}" "sigmod_src" !insertmacro "${MacroName}" "sigscript_bin" !insertmacro "${MacroName}" "sigscript_src" + !insertmacro "${MacroName}" "signet_bin" + !insertmacro "${MacroName}" "signet_src" !insertmacro "${MacroName}" "sigbattle_bin" !insertmacro "${MacroName}" "sigbattle_src" !insertmacro "${MacroName}" "sigmodr_bin" @@ -278,6 +306,10 @@ Function deselect_sigscript_src_dependents !insertmacro UnselectDependent sigbattle_src FunctionEnd +Function deselect_signet_src_dependents + !insertmacro UnselectDependent sigbattle_src +FunctionEnd + Function deselect_sigbattle_src_dependents FunctionEnd @@ -293,6 +325,10 @@ Function deselect_sigscript_bin_dependents !insertmacro UnselectDependent sigbattle_bin FunctionEnd +Function deselect_signet_bin_dependents + !insertmacro UnselectDependent sigbattle_bin +FunctionEnd + Function deselect_sigbattle_bin_dependents FunctionEnd @@ -310,8 +346,12 @@ Function select_sigscript_src_dependencies !insertmacro SelectDependency sigmod_src FunctionEnd +Function select_signet_src_dependencies +FunctionEnd + Function select_sigbattle_src_dependencies !insertmacro SelectDependency sigscript_src + !insertmacro SelectDependency signet_src FunctionEnd Function select_sigmodr_src_dependencies @@ -325,8 +365,12 @@ Function select_sigscript_bin_dependencies !insertmacro SelectDependency sigmod_bin FunctionEnd +Function select_signet_bin_dependencies +FunctionEnd + Function select_sigbattle_bin_dependencies !insertmacro SelectDependency sigscript_bin + !insertmacro SelectDependency signet_bin FunctionEnd Function select_sigmodr_bin_dependencies @@ -5,6 +5,7 @@ CONFIG += ordered SUBDIRS = sigmod \ sigscript \ sigbattle \ + signet \ sigmodr sigmodr.depends = sigmod @@ -17,17 +17,22 @@ BuildRequires: cmake BuildRequires: kdelibs4-devel >= 4.1.0 BuildRequires: qt-devel >= 4.4.0 BuildRequires: tetex-latex +BuildRequires: doxygen +BuildRequires: dot BuildRequires: desktop-file-utils +# BuildRequires: kdelibs4-apidocs >= 4.1.0 +BuildRequires: kdelibs4 >= 4.1.0 Requires: qt >= 4.4.0 %description The Sigma Game Engine is an RPG/Strategy game engine. The following libraries and tools are provided: Sigmod - library for loading, editing, and saving Sigmod files -Sigmodr - modding program for Sigmod files +Sigmodr - modding application for Sigmod files Sigscript - library for scripts to use the data in a Sigmod Sigbattle - library for the battle system +Signet - library for network communications %package devel Summary: Files needed to develop programs which use the Sigma Game Engine @@ -38,7 +43,7 @@ Requires: qt-devel >= 4.4.0 %description devel Development files used for creating apps based on the Sigma Game -Engine libraries and tools +Engine libraries and tools. %prep @@ -127,6 +132,8 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %{_libdir}/libsigscript.so.0.0.2 %{_libdir}/libsigbattle.so.0 %{_libdir}/libsigbattle.so.0.0.2 +%{_libdir}/libsignet.so.0 +%{_libdir}/libsignet.so.0.0.2 %{_datadir}/mime/packages/sigmodr.xml %{_datadir}/mimelnk/application/x-sigmod+xml.desktop %{_datadir}/applications/sigmodr.desktop @@ -139,6 +146,7 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %{_libdir}/libsigmod.so %{_libdir}/libsigscript.so %{_libdir}/libsigbattle.so +%{_libdir}/libsignet.so %{_includedir}/%{name} diff --git a/sigmod/Sigmod.cpp b/sigmod/Sigmod.cpp index 753847c3..5d143173 100644 --- a/sigmod/Sigmod.cpp +++ b/sigmod/Sigmod.cpp @@ -942,7 +942,7 @@ Sigmod::Item* Sigmod::Sigmod::item(const int index) const Sigmod::Item* Sigmod::Sigmod::itemById(const int id) const { return item(itemIndex(id)); -} +} Sigmod::Item* Sigmod::Sigmod::itemById(const int id) { diff --git a/sigmodr/FractionWidget.h b/sigmodr/FractionWidget.h index 05a39adf..2f956114 100644 --- a/sigmodr/FractionWidget.h +++ b/sigmodr/FractionWidget.h @@ -49,14 +49,14 @@ class FractionWidget : public QWidget, private Ui::formFraction Behavior behavior() const; Sigmod::Fraction value() const; - signals: - void valueChanged(const Sigmod::Fraction&); - void behaviorChanged(const Behavior); public slots: void setBehavior(const Behavior behavior); void setValue(const Sigmod::Fraction& value); void updateValue(); + signals: + void valueChanged(const Sigmod::Fraction&); + void behaviorChanged(const Behavior); protected slots: void on_varNumerator_valueChanged(const int numerator); void on_varDenominator_valueChanged(const int denominator); diff --git a/sigmodr/ItemUI.h b/sigmodr/ItemUI.h index 9584f303..846c6cc6 100644 --- a/sigmodr/ItemUI.h +++ b/sigmodr/ItemUI.h @@ -51,11 +51,11 @@ class ItemUI : public ObjectUI, private Ui::formItem void on_varWeight_valueChanged(const int weight); void on_varDescription_textChanged(const QString& description); void on_varScript_valueChanged(const Sigmod::Script& script); + private: + int m_lastType; private slots: void refreshGui(); void setGui(); - private: - int m_lastType; }; } diff --git a/sigmodr/MapUI.h b/sigmodr/MapUI.h index 488a74a6..d57ae934 100644 --- a/sigmodr/MapUI.h +++ b/sigmodr/MapUI.h @@ -57,12 +57,12 @@ class MapUI : public ObjectUI, private Ui::formMap void on_buttonInsertColumn_pressed(); void on_buttonInsertRow_pressed(); void on_varTile_activated(const int tile); + private: + QModelIndex m_index; private slots: void initGui(); void refreshGui(); void setGui(); - private: - QModelIndex m_index; }; } diff --git a/sigmodr/MapWarpUI.h b/sigmodr/MapWarpUI.h index 5e5f9ef3..22679f8e 100644 --- a/sigmodr/MapWarpUI.h +++ b/sigmodr/MapWarpUI.h @@ -49,12 +49,12 @@ class MapWarpUI : public ObjectUI, private Ui::formMapWarp void on_varToMap_activated(const int toMap); void on_varToWarp_activated(const int toWarp); void on_varScript_valueChanged(const Sigmod::Script& script); + private: + int m_lastMap; private slots: void initGui(); void refreshGui(); void setGui(); - private: - int m_lastMap; }; } diff --git a/sigmodr/ObjectUI.cpp b/sigmodr/ObjectUI.cpp index 6bd22808..e9559921 100644 --- a/sigmodr/ObjectUI.cpp +++ b/sigmodr/ObjectUI.cpp @@ -84,6 +84,28 @@ Sigmod::Object* Sigmodr::ObjectUI::modified() return m_object_mod; } +void Sigmodr::ObjectUI::setObjects(Sigmod::Object* original, Sigmod::Object* modified) +{ + m_object = original; + m_object_mod = modified; + if (m_validator) + delete m_validator; + m_validator = new ValidationDialog(m_object, this); + connect(m_object_mod, SIGNAL(changed()), this, SIGNAL(changed())); + connect(m_object_mod, SIGNAL(changed()), this, SLOT(setGui())); + connect(m_object_mod, SIGNAL(error(QString)), this, SLOT(setGui())); + connect(m_object_mod, SIGNAL(error(QString)), this, SLOT(errorMessage(QString))); + connect(m_object_mod, SIGNAL(warning(QString)), this, SLOT(warningMessage(QString))); + init(); +} + +void Sigmodr::ObjectUI::init() +{ + initGui(); + reload(); + emit(changed(false)); +} + void Sigmodr::ObjectUI::setChanged(const bool changed) { m_changed = changed; @@ -126,25 +148,3 @@ void Sigmodr::ObjectUI::validate() apply(); m_validator->show(); } - -void Sigmodr::ObjectUI::setObjects(Sigmod::Object* original, Sigmod::Object* modified) -{ - m_object = original; - m_object_mod = modified; - if (m_validator) - delete m_validator; - m_validator = new ValidationDialog(m_object, this); - connect(m_object_mod, SIGNAL(changed()), this, SIGNAL(changed())); - connect(m_object_mod, SIGNAL(changed()), this, SLOT(setGui())); - connect(m_object_mod, SIGNAL(error(QString)), this, SLOT(setGui())); - connect(m_object_mod, SIGNAL(error(QString)), this, SLOT(errorMessage(QString))); - connect(m_object_mod, SIGNAL(warning(QString)), this, SLOT(warningMessage(QString))); - init(); -} - -void Sigmodr::ObjectUI::init() -{ - initGui(); - reload(); - emit(changed(false)); -} diff --git a/sigmodr/ObjectUI.h b/sigmodr/ObjectUI.h index 500024ca..a550546a 100644 --- a/sigmodr/ObjectUI.h +++ b/sigmodr/ObjectUI.h @@ -50,11 +50,15 @@ class ObjectUI : public QWidget Sigmod::Object* original(); const Sigmod::Object* modified() const; Sigmod::Object* modified(); - signals: - void changed(bool = true); public slots: virtual void apply() = 0; virtual void discard() = 0; + signals: + void changed(bool = true); + protected: + void setObjects(Sigmod::Object* original, Sigmod::Object* modified); + + void init(); protected slots: void setChanged(const bool changed = true); void errorMessage(const QString& message); @@ -63,14 +67,6 @@ class ObjectUI : public QWidget virtual void initGui(); virtual void refreshGui(); virtual void setGui() = 0; - private slots: - void contextMenu(const QPoint& pos); - - void validate(); - protected: - void setObjects(Sigmod::Object* original, Sigmod::Object* modified); - - void init(); private: bool m_changed; @@ -78,6 +74,10 @@ class ObjectUI : public QWidget Sigmod::Object* m_object; Sigmod::Object* m_object_mod; + private slots: + void contextMenu(const QPoint& pos); + + void validate(); }; } diff --git a/sigmodr/PointWidget.h b/sigmodr/PointWidget.h index 009f1334..be50d0d5 100644 --- a/sigmodr/PointWidget.h +++ b/sigmodr/PointWidget.h @@ -35,11 +35,11 @@ class PointWidget : public QWidget, private Ui::formPoint explicit PointWidget(QWidget* parent, const QPoint& value = QPoint(0, 0)); QPoint value() const; - signals: - void valueChanged(const QPoint&); public slots: void setValue(const QPoint& value); void setMaximum(const QPoint& maximum); + signals: + void valueChanged(const QPoint&); protected slots: void on_varX_valueChanged(const int x); void on_varY_valueChanged(const int y); diff --git a/sigmodr/ScriptWidget.h b/sigmodr/ScriptWidget.h index 09856fa6..ea6ca348 100644 --- a/sigmodr/ScriptWidget.h +++ b/sigmodr/ScriptWidget.h @@ -46,10 +46,10 @@ class ScriptWidget : public QWidget, private Ui::formScript ~ScriptWidget(); Sigmod::Script value() const; - signals: - void valueChanged(const Sigmod::Script&); public slots: void setValue(const Sigmod::Script& value); + signals: + void valueChanged(const Sigmod::Script&); protected slots: void setGui(); diff --git a/sigmodr/SigmodUI.h b/sigmodr/SigmodUI.h index 7610f078..96ae8904 100644 --- a/sigmodr/SigmodUI.h +++ b/sigmodr/SigmodUI.h @@ -51,14 +51,14 @@ class SigmodUI : public ObjectUI, private Ui::formSigmod void on_varWarp_activated(const int warp); void on_varTypechart_clicked(const QModelIndex& index); void on_varEffectiveness_valueChanged(const Sigmod::Fraction& multiplier); - private slots: - void initGui(); - void refreshGui(); - void setGui(); private: bool m_changingMult; int m_lastMap; QModelIndex m_index; + private slots: + void initGui(); + void refreshGui(); + void setGui(); }; } diff --git a/sigmodr/SigmodrUI.cpp b/sigmodr/SigmodrUI.cpp index 20a24fd8..5505c45e 100644 --- a/sigmodr/SigmodrUI.cpp +++ b/sigmodr/SigmodrUI.cpp @@ -89,6 +89,47 @@ Sigmodr::SigmodrUI::~SigmodrUI() closeAllSigmods(true); } +void Sigmodr::SigmodrUI::dragEnterEvent(QDragEnterEvent* event) +{ + const QMimeData* data = event->mimeData(); + if (data->hasFormat("application/x-sigmod+xml") || data->hasFormat("text/uri-list")) + event->acceptProposedAction(); +} + +void Sigmodr::SigmodrUI::dropEvent(QDropEvent* event) +{ + const QMimeData* data = event->mimeData(); + bool loaded = false; + event->setDropAction(Qt::CopyAction); + if (data->hasFormat("application/x-sigmod+xml")) + { + QDomDocument xml; + QString error; + int line; + int column; + if (xml.setContent(data->data("application/x-sigmod+xml"), &error, &line, &column)) + { + if (xml.doctype().name() == "Sigmod") + { + treeSigmod->addSigmod(new Sigmod::Sigmod(xml.documentElement())); + loaded = true; + } + else + KMessageBox::error(this, "The file is not a Sigmod.", "Invalid Sigmod"); + } + else + KMessageBox::error(this, QString("%1 at line %2, column %3").arg(error).arg(line).arg(column), "XML Error"); + } + else if (data->hasFormat("text/uri-list")) + { + QList<QUrl> urls = data->urls(); + foreach (const QUrl& url, urls) + loaded = openSigmod(url); + } + if (loaded) + event->acceptProposedAction(); +} + void Sigmodr::SigmodrUI::update() { treeSigmod->update(treeSigmod->currentIndex()); @@ -428,47 +469,6 @@ void Sigmodr::SigmodrUI::on_treeSigmod_customContextMenuRequested(const QPoint& } } -void Sigmodr::SigmodrUI::dragEnterEvent(QDragEnterEvent* event) -{ - const QMimeData* data = event->mimeData(); - if (data->hasFormat("application/x-sigmod+xml") || data->hasFormat("text/uri-list")) - event->acceptProposedAction(); -} - -void Sigmodr::SigmodrUI::dropEvent(QDropEvent* event) -{ - const QMimeData* data = event->mimeData(); - bool loaded = false; - event->setDropAction(Qt::CopyAction); - if (data->hasFormat("application/x-sigmod+xml")) - { - QDomDocument xml; - QString error; - int line; - int column; - if (xml.setContent(data->data("application/x-sigmod+xml"), &error, &line, &column)) - { - if (xml.doctype().name() == "Sigmod") - { - treeSigmod->addSigmod(new Sigmod::Sigmod(xml.documentElement())); - loaded = true; - } - else - KMessageBox::error(this, "The file is not a Sigmod.", "Invalid Sigmod"); - } - else - KMessageBox::error(this, QString("%1 at line %2, column %3").arg(error).arg(line).arg(column), "XML Error"); - } - else if (data->hasFormat("text/uri-list")) - { - QList<QUrl> urls = data->urls(); - foreach (const QUrl& url, urls) - loaded = openSigmod(url); - } - if (loaded) - event->acceptProposedAction(); -} - void Sigmodr::SigmodrUI::setupActions() { KStandardAction::openNew(this, SLOT(newSigmod()), actionCollection()); diff --git a/sigmodr/SigmodrUI.h b/sigmodr/SigmodrUI.h index 55a5705e..9334f063 100644 --- a/sigmodr/SigmodrUI.h +++ b/sigmodr/SigmodrUI.h @@ -47,6 +47,9 @@ class SigmodrUI : public KXmlGuiWindow, private Ui::formSigmodr public: SigmodrUI(QWidget* parent = 0); ~SigmodrUI(); + protected: + void dragEnterEvent(QDragEnterEvent* event); + void dropEvent(QDropEvent* event); protected slots: void update(); @@ -78,9 +81,6 @@ class SigmodrUI : public KXmlGuiWindow, private Ui::formSigmodr void on_splitter_splitterMoved(); void on_treeSigmod_clicked(const QModelIndex& index); void on_treeSigmod_customContextMenuRequested(const QPoint& position); - protected: - void dragEnterEvent(QDragEnterEvent* event); - void dropEvent(QDropEvent* event); private: void setupActions(); diff --git a/sigmodr/SoundUI.h b/sigmodr/SoundUI.h index 141d5ed2..a6efffa7 100644 --- a/sigmodr/SoundUI.h +++ b/sigmodr/SoundUI.h @@ -55,14 +55,14 @@ class SoundUI : public ObjectUI, private Ui::formSound void stateChanged(Phonon::State newState, Phonon::State /*oldState*/); void resetAudioData(); void tick(qint64 time); - private slots: - void initGui(); - void refreshGui(); - void setGui(); private: Phonon::AudioOutput* m_output; Phonon::MediaObject* m_media; QBuffer* m_buffer; + private slots: + void initGui(); + void refreshGui(); + void setGui(); }; } diff --git a/sigmodr/models/BaseModel.h b/sigmodr/models/BaseModel.h index 1636578c..ba98d6b0 100644 --- a/sigmodr/models/BaseModel.h +++ b/sigmodr/models/BaseModel.h @@ -70,15 +70,15 @@ class BaseModel : public QObject signals: void rowChanged(const int row); void rowsChanged(const QList<int>& rows); - protected slots: - void childRowChanged(const int row); - void childRowsChanged(const QList<int>& rows); protected: virtual int findChild(BaseModel* /*model*/) const = 0; BaseModel* m_parent; Sigmod::Object* m_object; QString m_name; + protected slots: + void childRowChanged(const int row); + void childRowsChanged(const QList<int>& rows); }; } diff --git a/signet/CMakeLists.txt b/signet/CMakeLists.txt new file mode 100644 index 00000000..5b2825ed --- /dev/null +++ b/signet/CMakeLists.txt @@ -0,0 +1,49 @@ +PROJECT(signet) + +IF(NOT BUILT_FROM_ROOT) + MESSAGE(FATAL_ERROR "Not built from source root") +ENDIF(NOT BUILT_FROM_ROOT) + +ADD_DEFINITIONS(-DMAKE_SIGNET_LIB) + +SET(signet_MOC_HEADERS + Server.h +) +QT4_WRAP_CPP(signet_MOC_SRCS ${signet_MOC_HEADERS}) +SET(signet_HEADERS + ${signet_MOC_HEADERS} + Global.h +) +SET(signet_DEVEL + ${signet_HEADERS} +) +SET(signet_SRCS + Server.cpp +) + +ADD_LIBRARY(signet + ${signet_SRCS} + ${signet_MOC_SRCS} +) +SET_TARGET_PROPERTIES(signet + PROPERTIES + VERSION ${SIGEN_VERSION} + SOVERSION ${SIGEN_SOVERSION} + LINK_INTERFACE_LIBRARIES "" +) +TARGET_LINK_LIBRARIES(signet + ${QT_QTCORE_LIBRARY} + ${QT_QTNETWORK_LIBRARY} +) + +INSTALL( + TARGETS signet + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} + COMPONENT runtime +) + +INSTALL( + FILES ${signet_DEVEL} + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${CMAKE_PROJECT_NAME}/${PROJECT_NAME} + COMPONENT development +) diff --git a/signet/Client.h b/signet/Client.h new file mode 100644 index 00000000..245d7bb5 --- /dev/null +++ b/signet/Client.h @@ -0,0 +1,43 @@ +/* + * 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/>. + */ + +#ifndef SIGBATTLE_CLIENT +#define SIGBATTLE_CLIENT + +// Qt includes +#include <QtCore/QObject> + +namespace Sigbattle +{ +class SIGBATTLE_EXPORT Client : public QObject +{ + Q_OBJECT + + public: + public slots: + virtual sendData(const QByteArray& data) = 0; + signals: + void dataReceived(const QByteArray& data); + protected: + Client(const Client& client, QObject* parent); + Client(QObject* parent); + ~Client(); + protected slots: +}; +} + +#endif diff --git a/signet/Global.h b/signet/Global.h new file mode 100644 index 00000000..dc68ead7 --- /dev/null +++ b/signet/Global.h @@ -0,0 +1,36 @@ +/* + * 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/>. + */ + +#ifndef SIGNET_GLOBAL +#define SIGNET_GLOBAL + +// KDE includes +#include <kdemacros.h> + +#ifndef SIGNET_EXPORT +# ifdef MAKE_SIGNET_LIB +# define SIGNET_EXPORT KDE_EXPORT +# else +# define SIGNET_EXPORT KDE_IMPORT +# endif +#endif + +#ifndef SIGNET_EXPORT_DEPRECATED +# define SIGNET_EXPORT_DEPRECATED KDE_DEPRECATED SIGNET_EXPORT +#endif + +#endif diff --git a/signet/Server.cpp b/signet/Server.cpp new file mode 100644 index 00000000..7c7b44d5 --- /dev/null +++ b/signet/Server.cpp @@ -0,0 +1,90 @@ +/* + * 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 "Server.h" + +// Signet includes +#include "Room.h" +#include "ServerConnectionHandler.h" + +// KDE includes +#include <KConfig> +#include <KGlobal> + +// Qt includes +#include <QtNetwork/QHostAddress> +#include <QtNetwork/QTcpSocket> + +Signet::Server::Server(QObject* parent) : + QObject(parent) +{ + m_handler->connectToMaster(KGlobal::config()->group("Master Server")); +// QHostAddress masterAddress; +// int port; +// QString key; +// int timeout; +// if (config->hasGroup("Master Server")) +// { +// const KConfigGroup& group = config->group("Master Server"); +// QString address = group.readEntry("Address", ""); +// if (!masterAddress.setAddress(address)) +// qFatal(QString("Invalid address for the master server: %1").arg(address)); +// port = group.readEntry("Port", -1); +// if (port < 0) +// qFatal(QString("Invalid port for the master server: %1").arg(port)); +// key = group.readEntry("Key", ""); +// timeout = group.readEntry("Timeout", 30000); +// } +// else +// { +// // TODO: Configuration not complete +// } +// // TODO: Proxy support? +// m_masterServer->connectToHost(masterAddress, port); +// if (!m_masterServer->waitForConnect(timeout)) +// { +// // TODO: Connect failed +// } +} + +void Signet::Server::createRoom(const QString& room) +{ + if (m_rooms.contains(room)) + return; + m_rooms[room] = new Room(room, this); +} + +void Signet::Server::closeRoom(const QString& room) +{ + if (m_rooms.contains(room)) + { + delete m_rooms[room]; + m_rooms.remove(room); + } +} + +bool Signet::Server::joinRoom(Client* client, const QString& roomName) +{ + if (!m_rooms.contains(roomName)) + createRoom(roomName); + m_rooms[room]->addClient(client); +} + +void Signet::Server::receiveData(const QByteArray& data) +{ +} diff --git a/signet/Server.h b/signet/Server.h new file mode 100644 index 00000000..53cc6ef4 --- /dev/null +++ b/signet/Server.h @@ -0,0 +1,59 @@ +/* + * 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/>. + */ + +#ifndef SIGNET_SERVER +#define SIGNET_SERVER + +// Signet includes +#include "Global.h" + +// Qt includes +#include <QtCore/QMap> +#include <QtCore/QObject> + +// Forward declarations +class QTcpSocket; + +namespace Signet +{ +class Client; +class Room; +class ServerConnectionHandler; + +class SIGNET_EXPORT Server : public QObject +{ + Q_OBJECT + + public: + Server(QObject* parent); + public slots: + signals: + void globalMessage(const QString& message); + protected: + void createRoom(const QString& room); + void closeRoom(const QString& room); + + bool verifyUser(Client* client); + protected slots: + bool joinRoom(Client* client, const QString& roomName); + private: + QMap<QString, Room*> m_rooms; + ServerConnectionHandler* m_handler; +}; +} + +#endif diff --git a/signet/signet.pro b/signet/signet.pro new file mode 100644 index 00000000..561a3c15 --- /dev/null +++ b/signet/signet.pro @@ -0,0 +1,28 @@ +include(../version.pri) +TEMPLATE = lib +OBJECTS_DIR = .obj +MOC_DIR = .moc +DOC_DIR = ../doc +DESTDIR = ../bin +INSTALLDIR = lib$$system(kde4-config --libsuffix) +LIBS += -L../bin + +CONFIG += qt \ + warn_on \ + dll + +QT -= gui +QT += network + +DEFINES += MAKE_SIGNET_LIB + +include(../install.pri) +include(../kde4.pri) + +SOURCES += Server.cpp + +HEADERS += Client.h \ + Global.h \ + Server.h + +include(../headers.pri) diff --git a/sigscript/Global.h b/sigscript/Global.h index 9a84749a..095d29de 100644 --- a/sigscript/Global.h +++ b/sigscript/Global.h @@ -22,17 +22,15 @@ #include <kdemacros.h> #ifndef SIGSCRIPT_EXPORT -# ifdef MAKE_SIGSCRIPT_LIB - /* We are building this library */ -# define SIGSCRIPT_EXPORT KDE_EXPORT -# else - /* We are using this library */ -# define SIGSCRIPT_EXPORT KDE_IMPORT -# endif +# ifdef MAKE_SIGSCRIPT_LIB +# define SIGSCRIPT_EXPORT KDE_EXPORT +# else +# define SIGSCRIPT_EXPORT KDE_IMPORT +# endif #endif -# ifndef SIGSCRIPT_EXPORT_DEPRECATED -# define SIGSCRIPT_EXPORT_DEPRECATED KDE_DEPRECATED SIGSCRIPT_EXPORT -# endif +#ifndef SIGSCRIPT_EXPORT_DEPRECATED +# define SIGSCRIPT_EXPORT_DEPRECATED KDE_DEPRECATED SIGSCRIPT_EXPORT +#endif #endif |
