summaryrefslogtreecommitdiffstats
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
parent3a096bed018254f9d662f9ae85792b8ae5df4837 (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
-rw-r--r--CMakeLists.txt2
-rw-r--r--Changelog9
-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
-rw-r--r--sigen.nsi44
-rwxr-xr-xsigen.pro1
-rw-r--r--sigen.spec12
-rw-r--r--sigmod/Sigmod.cpp2
-rw-r--r--sigmodr/FractionWidget.h6
-rw-r--r--sigmodr/ItemUI.h4
-rw-r--r--sigmodr/MapUI.h4
-rw-r--r--sigmodr/MapWarpUI.h4
-rw-r--r--sigmodr/ObjectUI.cpp44
-rw-r--r--sigmodr/ObjectUI.h20
-rw-r--r--sigmodr/PointWidget.h4
-rw-r--r--sigmodr/ScriptWidget.h4
-rw-r--r--sigmodr/SigmodUI.h8
-rw-r--r--sigmodr/SigmodrUI.cpp82
-rw-r--r--sigmodr/SigmodrUI.h6
-rw-r--r--sigmodr/SoundUI.h8
-rw-r--r--sigmodr/models/BaseModel.h6
-rw-r--r--signet/CMakeLists.txt49
-rw-r--r--signet/Client.h43
-rw-r--r--signet/Global.h36
-rw-r--r--signet/Server.cpp90
-rw-r--r--signet/Server.h59
-rw-r--r--signet/signet.pro28
-rw-r--r--sigscript/Global.h18
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
diff --git a/Changelog b/Changelog
index 151689d1..a7a84011 100644
--- a/Changelog
+++ b/Changelog
@@ -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;
diff --git a/sigen.nsi b/sigen.nsi
index 87df3a81..f19f2e68 100644
--- a/sigen.nsi
+++ b/sigen.nsi
@@ -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
diff --git a/sigen.pro b/sigen.pro
index cb65dd90..9e0250c5 100755
--- a/sigen.pro
+++ b/sigen.pro
@@ -5,6 +5,7 @@ CONFIG += ordered
SUBDIRS = sigmod \
sigscript \
sigbattle \
+ signet \
sigmodr
sigmodr.depends = sigmod
diff --git a/sigen.spec b/sigen.spec
index de78ffe7..983614c1 100644
--- a/sigen.spec
+++ b/sigen.spec
@@ -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