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]["Friendly"]["Home Fleet"]->setRace("Terran");
72 m_Battles[name]["Hostile"]["Evil guy"]->setName("Evil guy");
75 emit documentChanged();
79 /////////////////////////////////////////////////////////////////////////
82 const BattleList& BSDoc::battles() const
87 //////////////////////////////////////////////////////////////////////////
89 const Fleet* BSDoc::specificFleet(QString battle, QString group, QString fleet) const
91 for (BattleList::const_iterator i = m_Battles.begin(); i != m_Battles.end(); ++i)
93 if (i->first == battle)
95 for (map<QString, map<QString, Fleet*> >::const_iterator j = i->second.begin(); j != i->second.end(); j++)
97 if (j->first == group)
99 for (map<QString, Fleet*>::const_iterator k = j->second.begin(); k != j->second.end(); ++k)
101 if (k->first == fleet)
113 //////////////////////////////////////////////////////////////////////////
115 void BSDoc::changeFleet(QString battle, QString group, QString fleet, const Fleet* fl)
117 delete m_Battles[battle][group][fleet];
119 const Planet* planet = 0;
120 if((planet = dynamic_cast<const Planet*>(fl)))
122 m_Battles[battle][group][fleet] = new Planet(*planet);
126 m_Battles[battle][group][fleet] = new Fleet(*fl);
128 emit documentChanged();
132 //////////////////////////////////////////////////////////////////////////
134 void BSDoc::newFleet(QString battle, QString group, QString fleet, Fleet* fl)
136 m_Battles[battle][group][fleet] = fl;
137 emit documentChanged();
140 //////////////////////////////////////////////////////////////////////////
142 void BSDoc::removeFleet(QString battle, QString group, QString fleet)
144 delete m_Battles[battle][group][fleet];
145 m_Battles[battle][group].erase(fleet);
146 emit documentChanged();
149 //////////////////////////////////////////////////////////////////////////
151 void BSDoc::runBattleSimulation()
153 for(BattleList::iterator i = m_Battles.begin(); i != m_Battles.end(); ++i)
155 map<QString, vector<Fleet*> > battle;
156 for (map<QString, map<QString, Fleet*> >::iterator j = i->second.begin(); j != i->second.end(); ++j)
158 for (map<QString, Fleet*>::iterator k = j->second.begin(); k != j->second.end(); ++k)
159 battle[j->first].push_back(k->second);
162 Planet* pl = dynamic_cast<Planet*>(i->second["Friendly"]["Home Planet"]);
166 pl->runBattle(battle["Friendly"], battle["Hostile"]);
170 emit documentChanged();