X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=bs%2Fbsdoc.cpp;h=d7e04ce336f0e3253c04af305ae94952b0942d1b;hb=c2dd8856c3d97667953a0b73403b5e5cade5ce9b;hp=47688a7bfd06e20b37cf312b818fcc8e676a973c;hpb=ba016135c4c232c79cb35c92f239579ca3d84df3;p=hbs.git diff --git a/bs/bsdoc.cpp b/bs/bsdoc.cpp index 47688a7..d7e04ce 100644 --- a/bs/bsdoc.cpp +++ b/bs/bsdoc.cpp @@ -17,6 +17,8 @@ #include "bsdoc.h" +#include "planet.h" + using namespace std; BSDoc::BSDoc() @@ -39,12 +41,14 @@ bool BSDoc::save() bool BSDoc::saveAs(const QString &filename) { + QString test = filename; return true; } bool BSDoc::load(const QString &filename) { - emit documentChanged(); + QString test = filename; + emit documentChanged(); return true; } @@ -58,10 +62,11 @@ bool BSDoc::isModified() const int BSDoc::newBattle(QString name) { - m_Battles[name]["Friendly"]["Home Planet"].setRace("Planet"); - m_Battles[name]["Friendly"]["Home Fleet"]; + m_Battles[name]["Friendly"]["Home Planet"] = new Planet();; + m_Battles[name]["Friendly"]["Home Fleet"] = new Fleet(); m_Battles[name]["Hostile"]; + //Planet* pl = dynamic_cast(m_Battles[name]["Friendly"]["Home Planet"]); modified = true; emit documentChanged(); return 0; @@ -70,24 +75,24 @@ int BSDoc::newBattle(QString name) ///////////////////////////////////////////////////////////////////////// // -const std::map > >& BSDoc::battles() const +const BattleList& BSDoc::battles() const { return m_Battles; } ////////////////////////////////////////////////////////////////////////// // -Fleet BSDoc::specificFleet(QString battle, QString group, QString fleet) const +const Fleet* BSDoc::specificFleet(QString battle, QString group, QString fleet) const { - for (map > >::const_iterator i = m_Battles.begin(); i != m_Battles.end(); ++i) + for (BattleList::const_iterator i = m_Battles.begin(); i != m_Battles.end(); ++i) { if (i->first == battle) { - for (map >::const_iterator j = i->second.begin(); j != i->second.end(); j++) + for (map >::const_iterator j = i->second.begin(); j != i->second.end(); j++) { if (j->first == group) { - for (map::const_iterator k = j->second.begin(); k != j->second.end(); ++k) + for (map::const_iterator k = j->second.begin(); k != j->second.end(); ++k) { if (k->first == fleet) { @@ -98,7 +103,49 @@ Fleet BSDoc::specificFleet(QString battle, QString group, QString fleet) const } } } - return Fleet(); + return '\0'; +} + +////////////////////////////////////////////////////////////////////////// +// +void BSDoc::changeFleet(QString battle, QString group, QString fleet, const Fleet* fl) +{ + delete m_Battles[battle][group][fleet]; + + const Planet* planet = 0; + if((planet = dynamic_cast(fl))) + { + m_Battles[battle][group][fleet] = new Planet(*planet); + } + else + { + m_Battles[battle][group][fleet] = new Fleet(*fl); + } + emit documentChanged(); } +////////////////////////////////////////////////////////////////////////// +// +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() +{ + + emit documentChanged(); +}