@@ -151,12 +151,15 @@ BOOST_AUTO_TEST_CASE(TradeArmoredFigures)
151151
152152 const unsigned officerSoldiersTraded = 3 ;
153153 const unsigned officerSoldiersWithArmor = 2 ;
154+ const unsigned initialNumSoldiers = numSoldiers[getSoldierRank (Job::Officer)];
155+ const unsigned initialNumArmoredSoldiers = numArmoredSoldiers[getSoldierRank (Job::Officer)];
156+ const unsigned initialNumHelpers = numHelpers;
154157
155158 // For figures we don't need donkeys
156- BOOST_TEST_REQUIRE (numArmoredSoldiers[getSoldierRank (Job::Officer)] == 2u );
157- BOOST_TEST_REQUIRE (numSoldiers[getSoldierRank (Job::Officer)] == 3u );
159+ BOOST_TEST_REQUIRE (numArmoredSoldiers[getSoldierRank (Job::Officer)] == officerSoldiersWithArmor );
160+ BOOST_TEST_REQUIRE (numSoldiers[getSoldierRank (Job::Officer)] == officerSoldiersTraded );
158161
159- this ->TradeOverLand (players[0 ]->GetHQPos (), Job::Officer, 3 );
162+ this ->TradeOverLand (players[0 ]->GetHQPos (), Job::Officer, officerSoldiersTraded );
160163 numArmoredSoldiers[getSoldierRank (Job::Officer)] -= officerSoldiersWithArmor;
161164 numSoldiers[getSoldierRank (Job::Officer)] -= officerSoldiersTraded;
162165 numHelpers -= 1 ; // Trade leader
@@ -167,15 +170,12 @@ BOOST_AUTO_TEST_CASE(TradeArmoredFigures)
167170 unsigned distance = world.CalcDistance (curWh->GetPos (), players[0 ]->GetHQPos ()) + 2 ;
168171 RTTR_SKIP_GFS (20 * distance);
169172
170- // Some were produced (at least every 170 GFs)
171- numHelpers += (20 * distance) / 170 ;
172173 curWh = world.GetSpecObj <nobBaseWarehouse>(players[0 ]->GetHQPos ());
173174 BOOST_TEST_REQUIRE (curWh);
174- // Expected amount is our amount + 2 times the stuff send (1 because we did not send anything, and 2 as we received
175- // them)
176- numSoldiers[getSoldierRank (Job::Officer)] += 2 * officerSoldiersTraded;
177- numArmoredSoldiers[getSoldierRank (Job::Officer)] += 2 * officerSoldiersWithArmor;
178- numHelpers += 2 * 1 ; // Trade leader
175+ numSoldiers[getSoldierRank (Job::Officer)] = initialNumSoldiers + officerSoldiersTraded;
176+ numArmoredSoldiers[getSoldierRank (Job::Officer)] = initialNumArmoredSoldiers + officerSoldiersWithArmor;
177+ numHelpers = initialNumHelpers + 1 // Trade leader
178+ + (20 * distance) / 170 ; // Some were produced(at least every 170 GFs)
179179 // helpers can be produced in the meantime
180180 BOOST_TEST_REQUIRE (curWh->GetNumRealFigures (Job::Helper) >= numHelpers);
181181 numHelpers = curWh->GetNumRealFigures (Job::Helper);
0 commit comments