]> ruin.nu Git - hbs.git/blobdiff - bs/bsdoc.h
Can now load the stats and race configurations..
[hbs.git] / bs / bsdoc.h
index 0c02c6fa3fe0a19773ba8acb44356d4f03c27f22..5cf0001e33716fd8b5f7012bd88f6028ccbcdb2d 100644 (file)
 // include files for QT
 #include <qobject.h>
 
+// standard library
+#include <map>
+
 // application specific includes
+#include "fleet.h"
 
-/**
-  * the Document Class
+//! The document class
+/** This class is holding all the data, handles the transportation of the
+  * data to a couple of different mediums and informs users of the data
+  * if it's changed (through the documentChnaged() signal)
+  * \bug it's too open.. 
+  * \todo make this class more closed.
+  * \author Michael Andreen
   */
 
 class BSDoc : public QObject
@@ -31,7 +40,7 @@ class BSDoc : public QObject
   Q_OBJECT
 
   public:
-    BSDoc();
+       BSDoc();
     ~BSDoc();
     void newDoc();
     bool save();
@@ -39,11 +48,32 @@ class BSDoc : public QObject
     bool load(const QString &filename);
     bool isModified() const;
 
+       /**Adds a new battle to the dokument and emits documentChanged.
+        * \todo add some checks to see if the battle exist and so and return the status.
+        * \return returns 0 if everything is ok.
+        */
+       int newBattle(QString name);
+
+       /**This returns the the data structure, so other can work on it, but not supposed
+        * change it.
+        * \todo remove this, and replace it with a better more closed interface.
+        */
+       std::map<QString, std::map<QString, std::map<QString, Fleet> > >& Battles();
+
   signals:
     void documentChanged();
 
   protected:
     bool modified;
+
+       /**This is the main datastructure of the battlecalc, it's more or less the
+        * core that everything else works around. A short explanation of the fields:
+        * -# The name of the battle (usually coordinates)
+        * -# The name of the group (ie. Friendly/Hostile)
+        * -# The fleetname (Home Planet, coordinates, irc nicks and so on)
+        * - and in the end you got the actual Fleet object with it's data.
+        */
+       std::map<QString, std::map<QString, std::map<QString, Fleet> > > m_Battles;
 };
 
 #endif