+//////////////////////////////////////////////////////////////////////////
+//
+void BSDoc::newFleet(QString battle, QString group, QString fleet, Fleet* fl)
+{
+ m_Battles[battle][group][fleet] = fl;
+ emit documentChanged();
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+void BSDoc::removeFleet(QString battle, QString group, QString fleet)
+{
+ delete m_Battles[battle][group][fleet];
+ m_Battles[battle][group].erase(fleet);
+ emit documentChanged();
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+void BSDoc::runBattleSimulation()
+{
+ for(BattleList::iterator i = m_Battles.begin(); i != m_Battles.end(); ++i)
+ {
+ map<QString, vector<Fleet*> > battle;
+ for (map<QString, map<QString, Fleet*> >::iterator j = i->second.begin(); j != i->second.end(); ++j)
+ {
+ for (map<QString, Fleet*>::iterator k = j->second.begin(); k != j->second.end(); ++k)
+ battle[j->first].push_back(k->second);
+ }
+
+ Planet* pl = dynamic_cast<Planet*>(i->second["Friendly"]["Home Planet"]);