]> ruin.nu Git - hbs.git/commitdiff
solved an evil bug in Fleet::distributeLossesGains and some other stuff
authorMichael Andreen <harv@ruin.nu>
Thu, 11 Apr 2002 13:40:55 +0000 (13:40 +0000)
committerMichael Andreen <harv@ruin.nu>
Thu, 11 Apr 2002 13:40:55 +0000 (13:40 +0000)
bs/fleet.cpp
bs/fleet.h
bs/fleetview.cpp
bs/main.cpp
bs/ui/tickviewbase.ui.h

index f0fb8e1dee9d07d45c42c8d0784d65d6f8b5c907..2daa5cf052920866b68d158819a42e7a23c554d9 100644 (file)
@@ -118,7 +118,7 @@ void Fleet::setUnits(UnitList& units)
        s_Units = units;
 
        
        s_Units = units;
 
        
-
+/*
        for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); i++)
        {
                cerr << s_Units[(*i).first].Name() << "\t\t"
        for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); i++)
        {
                cerr << s_Units[(*i).first].Name() << "\t\t"
@@ -140,6 +140,7 @@ void Fleet::setUnits(UnitList& units)
                        << s_Units[(*i).first].type() << endl;
        }
        
                        << s_Units[(*i).first].type() << endl;
        }
        
+       */
 }
 
 //////////////////////////////////////////////////////////////////////////
 }
 
 //////////////////////////////////////////////////////////////////////////
@@ -235,16 +236,21 @@ void Fleet::distributeLossesGains(std::vector<Fleet*> fleets, int tick = 0)
        for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i)
        {
                string unittype = i->first;
        for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i)
        {
                string unittype = i->first;
+
+               cerr << "Distributing type: " << unittype << endl;
+
                if (m_Fleet[unittype].size() < 1)
                if (m_Fleet[unittype].size() < 1)
-                       break;
-    if (m_Fleet[unittype][0] == 0)
-                       break;
+                       continue;
+               if (m_Fleet[unittype][0] == 0)
+                       continue;
 
                int totallost = m_Fleet[unittype][1] - m_Fleet[unittype][0];
 
                int totallost = m_Fleet[unittype][1] - m_Fleet[unittype][0];
+
                
                for (vector<Fleet*>::iterator j = fleets.begin(); j != fleets.end(); ++j)
                {
                        int lost =  totallost * ( (*j)->fleet(unittype, tick - 1) / m_Fleet[unittype][0] );
                
                for (vector<Fleet*>::iterator j = fleets.begin(); j != fleets.end(); ++j)
                {
                        int lost =  totallost * ( (*j)->fleet(unittype, tick - 1) / m_Fleet[unittype][0] );
+                       cerr << (*j)->name() << " gaining " << lost << " " << unittype << endl;
                        (*j)->setFleet(unittype, (*j)->fleet(unittype, tick - 1) + lost, tick);
                }
        }
                        (*j)->setFleet(unittype, (*j)->fleet(unittype, tick - 1) + lost, tick);
                }
        }
@@ -258,7 +264,10 @@ std::vector<Fleet*> Fleet::calculateSide(std::vector<Fleet*> fleets, int stays =
        for (vector<Fleet*>::iterator i = fleets.begin(); i != fleets.end(); ++i)
        {
                if (( tick - (*i)->ETA()) >= 0 && (tick - (*i)->ETA()) < stays)
        for (vector<Fleet*>::iterator i = fleets.begin(); i != fleets.end(); ++i)
        {
                if (( tick - (*i)->ETA()) >= 0 && (tick - (*i)->ETA()) < stays)
+               {
                        fl.push_back((*i));
                        fl.push_back((*i));
+                       cerr << "Using fleet " << (*i)->name() << " for tick " << tick;
+               }
                else if ((*i)->name() == "Home Planet")
                        fl.push_back((*i));
        }
                else if ((*i)->name() == "Home Planet")
                        fl.push_back((*i));
        }
@@ -442,3 +451,19 @@ int Fleet::resource(std::string type, int tick = 0) const
        return resource->at(tick);
 }
 
        return resource->at(tick);
 }
 
+//////////////////////////////////////////////////////////////////////////
+//
+void Fleet::printFleet()
+{
+       for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i)
+       {
+               for (int tick = 0; tick < 5 ;++tick)
+               {
+                       int num = fleet(i->first, tick);
+
+                       if (num <= 0)
+                               break;
+                       cerr << num << " " << i->first << " during tick: " << tick << endl;
+               }
+       }
+}
index b706bbd919bdb03b3a358ed1ee27a9c8a6b52e1c..74e4e8653404d7e6264aee6d3e646290e8be5e38 100644 (file)
@@ -113,6 +113,8 @@ public:
        
        void takeShoot(std::string unittype, int number, std::map<std::string, int>& hitunits);
        void takeEMP(std::string unittype, int number);
        
        void takeShoot(std::string unittype, int number, std::map<std::string, int>& hitunits);
        void takeEMP(std::string unittype, int number);
+
+       void printFleet();
 protected:
 
 
 protected:
 
 
index 3f2ff192957bdd842bb64e8209a52311e08f9ebb..5cbed5377caa4797c794f8a3bba2f167779298fe 100644 (file)
@@ -43,6 +43,7 @@ FleetView::FleetView(const Fleet* fleet, bool friendly, QWidget *parent, const c
                m_bHome = false;
        }
        
                m_bHome = false;
        }
        
+       m_Fleet->printFleet();
        m_bFriendly = friendly;
 
        //m_ChangesMapper = new QSignalMapper(this);
        m_bFriendly = friendly;
 
        //m_ChangesMapper = new QSignalMapper(this);
@@ -90,6 +91,7 @@ void FleetView::viewFleet(const Fleet* fleet, bool friendly)
        {
                m_Fleet = new Fleet(*fleet);
        }
        {
                m_Fleet = new Fleet(*fleet);
        }
+       m_Fleet->printFleet();
        fillTable();
 }
 
        fillTable();
 }
 
index 387e302169dc2394fb5bc6158e6a0a6b49acdae3..6f56e877c3bba5b2e66fd2e5b92653469da916e9 100644 (file)
@@ -39,7 +39,7 @@ int main(int argc, char *argv[])
        BSApp *bs=new BSApp();
        a.setMainWidget(bs);
 
        BSApp *bs=new BSApp();
        a.setMainWidget(bs);
 
-       bs->setCaption("Harv's BattleSystem" VERSION);
+       bs->setCaption("Harv's BattleSystem " VERSION);
        //eonsl->showMaximized();
        bs->resize(800,600);
        bs->show();
        //eonsl->showMaximized();
        bs->resize(800,600);
        bs->show();
index 83c23f7be9cfe42ebe9c91e6cd05194129e9b6f2..026be8c2d28c392201f9190d58670142a6a7edd6 100644 (file)
@@ -28,7 +28,9 @@ void CTickViewBase::slotTickChanged(int i)
    if ( oneTickCheck->isChecked())
     {
        maxTickSpin->setValue(i);
    if ( oneTickCheck->isChecked())
     {
        maxTickSpin->setValue(i);
-       minTickSpin->setValue(i);
+       //minTickSpin->setValue(i-1);
+       emit ticksChanged( maxTickSpin->value() - 1, maxTickSpin->value());
+       return;
     }
    emit ticksChanged( minTickSpin->value(), maxTickSpin->value());
 }
     }
    emit ticksChanged( minTickSpin->value(), maxTickSpin->value());
 }
@@ -38,10 +40,12 @@ void CTickViewBase::slotOneTick( bool b )
     if(b)
     {
        maxTickSpin->setMinValue(0);
     if(b)
     {
        maxTickSpin->setMinValue(0);
+       minTickSpin->setDisabled(true);
        minTickSpin->setMaxValue(99);
     }
     else
     {
        minTickSpin->setMaxValue(99);
     }
     else
     {
+       minTickSpin->setEnabled(true);
        maxTickSpin->setMinValue( minTickSpin->value());
        minTickSpin->setMaxValue( maxTickSpin->value());
     }
        maxTickSpin->setMinValue( minTickSpin->value());
        minTickSpin->setMaxValue( maxTickSpin->value());
     }