1 /***************************************************************************
2 bcdoc.cpp - description
4 begin : Sun May 27 22:13:58 CEST 2001
5 copyright : (C) 2001 by Michael Andreen
7 ***************************************************************************/
9 /***************************************************************************
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
16 ***************************************************************************/
42 bool BSDoc::saveAs(const QString &filename)
44 QString test = filename;
48 bool BSDoc::load(const QString &filename)
50 QString test = filename;
51 emit documentChanged();
55 bool BSDoc::isModified() const
60 ///////////////////////////////////////////////////////////////////////////
63 int BSDoc::newBattle(QString name)
65 m_Battles[name]["Friendly"]["Home Planet"] = new Planet();;
66 m_Battles[name]["Friendly"]["Home Fleet"] = new Fleet();
67 m_Battles[name]["Hostile"]["Evil guy"] = new Fleet();
69 m_Battles[name]["Friendly"]["Home Planet"]->setName("Home Planet");
70 m_Battles[name]["Friendly"]["Home Fleet"]->setName("Home Fleet");
71 m_Battles[name]["Hostile"]["Evil guy"]->setName("Evil guy");
72 //Planet* pl = dynamic_cast<Planet*>(m_Battles[name]["Friendly"]["Home Planet"]);
74 emit documentChanged();
78 /////////////////////////////////////////////////////////////////////////
81 const BattleList& BSDoc::battles() const
86 //////////////////////////////////////////////////////////////////////////
88 const Fleet* BSDoc::specificFleet(QString battle, QString group, QString fleet) const
90 for (BattleList::const_iterator i = m_Battles.begin(); i != m_Battles.end(); ++i)
92 if (i->first == battle)
94 for (map<QString, map<QString, Fleet*> >::const_iterator j = i->second.begin(); j != i->second.end(); j++)
96 if (j->first == group)
98 for (map<QString, Fleet*>::const_iterator k = j->second.begin(); k != j->second.end(); ++k)
100 if (k->first == fleet)
112 //////////////////////////////////////////////////////////////////////////
114 void BSDoc::changeFleet(QString battle, QString group, QString fleet, const Fleet* fl)
116 delete m_Battles[battle][group][fleet];
118 const Planet* planet = 0;
119 if((planet = dynamic_cast<const Planet*>(fl)))
121 m_Battles[battle][group][fleet] = new Planet(*planet);
125 m_Battles[battle][group][fleet] = new Fleet(*fl);
127 emit documentChanged();
131 //////////////////////////////////////////////////////////////////////////
133 void BSDoc::newFleet(QString battle, QString group, QString fleet, Fleet* fl)
135 m_Battles[battle][group][fleet] = fl;
136 emit documentChanged();
139 //////////////////////////////////////////////////////////////////////////
141 void BSDoc::removeFleet(QString battle, QString group, QString fleet)
143 delete m_Battles[battle][group][fleet];
144 m_Battles[battle][group].erase(fleet);
145 emit documentChanged();
148 //////////////////////////////////////////////////////////////////////////
150 void BSDoc::runBattleSimulation()
152 for(BattleList::iterator i = m_Battles.begin(); i != m_Battles.end(); ++i)
154 map<QString, vector<Fleet*> > battle;
155 for (map<QString, map<QString, Fleet*> >::iterator j = i->second.begin(); j != i->second.end(); ++j)
157 for (map<QString, Fleet*>::iterator k = j->second.begin(); k != j->second.end(); ++k)
158 battle[j->first].push_back(k->second);
161 Planet* pl = dynamic_cast<Planet*>(i->second["Friendly"]["Home Planet"]);
165 pl->runBattle(battle["Friendly"], battle["Hostile"]);
169 emit documentChanged();