]> ruin.nu Git - hbs.git/blobdiff - bs/bsdoc.h
adding, removing and chaning fleets now works.
[hbs.git] / bs / bsdoc.h
index 5cf0001e33716fd8b5f7012bd88f6028ccbcdb2d..bcfcfd08e450123c32a0aa6322d0280f3e06698a 100644 (file)
@@ -26,6 +26,7 @@
 // application specific includes
 #include "fleet.h"
 
+typedef std::map<QString, std::map<QString, std::map<QString, Fleet*> > > BattleList;
 //! 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
@@ -58,8 +59,23 @@ class BSDoc : public QObject
         * 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();
+       const BattleList& battles() const;
 
+       
+       /**Looks for the fleet with the specified name, in the specified group in the
+        * specified battle.
+        * \return Returns '\0' (NULL) if the fleet isn't found, if it is found it
+        * returns a const pointer to the fleet.
+        */
+       const Fleet* specificFleet(QString battle, QString group, QString fleet) const;
+
+       void changeFleet(QString battle, QString group, QString fleet, const Fleet* fl);
+
+       void newFleet(QString battle, QString group, QString fleet, Fleet* fl);
+
+       void removeFleet(QString battle, QString group, QString fleet);
+
+       void runBattleSimulation();
   signals:
     void documentChanged();
 
@@ -73,7 +89,7 @@ class BSDoc : public QObject
         * -# 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;
+        BattleList m_Battles;
 };
 
 #endif