Jelajahi Sumber

Missing file.

DjWarmonger 15 tahun lalu
induk
melakukan
adb1d9181d
1 mengubah file dengan 11 tambahan dan 4 penghapusan
  1. 11 4
      lib/CCreatureHandler.cpp

+ 11 - 4
lib/CCreatureHandler.cpp

@@ -631,7 +631,9 @@ void CCreatureHandler::loadCreatures()
 		si32 creid = -1;
 		Bonus b; //prototype with some default properties
 		b.source = Bonus::STACK_EXPERIENCE;
+		b.duration = Bonus::PERMANENT;
 		b.valType = Bonus::ADDITIVE_VALUE;
+		b.effectRange = Bonus::NO_LIMIT;
 		b.additionalInfo = 0;
 		BonusList bl;
 
@@ -642,7 +644,7 @@ void CCreatureHandler::loadCreatures()
 		BOOST_FOREACH(Bonus * b, bl)
 			addBonusForAllCreatures(b); //health bonus is common for all
 
-		loadToIt (dump2, buf, it, 4); //crop comment
+		loadToIt (dump2, buf, it, 3); //crop comment
 		for (i = 1; i < 8; ++i)
 		{
 			for (int j = 0; j < 4; ++j) //four modifiers common for tiers
@@ -693,6 +695,7 @@ void CCreatureHandler::loadCreatures()
 		si32 val;
 		for (i = 1; i < 8; ++i)
 		{
+			loadToIt (dump2, buf, it, 4); //index
 			loadToIt (dump2, buf, it, 4); //float multiplier -> hardcoded
 			loadToIt (dump2, buf, it, 4); //ignore upgrade mod? ->hardcoded
 			loadToIt (dump2, buf, it, 4); //already calculated
@@ -816,7 +819,9 @@ void CCreatureHandler::loadStackExp(Bonus & b, BonusList & bl, std::string & src
 		b.subtype = 1;
 		break;
 	case 'S':
-		b.type = Bonus::STACKS_SPEED; break;
+		b.type = Bonus::STACKS_SPEED;
+		b.additionalInfo = 0;
+		break;
 
 	case 'b':
 		b.type = Bonus::ENEMY_DEFENCE_REDUCTION; break;
@@ -964,6 +969,7 @@ void CCreatureHandler::loadStackExp(Bonus & b, BonusList & bl, std::string & src
 			loadToIt (curVal, src, it, 4);
 			if (curVal == 1)
 			{
+				b.val = curVal;
 				b.limiter.reset (new RankRangeLimiter(i));
 				bl.push_back(new Bonus(b));
 				break; //never turned off it seems
@@ -976,9 +982,10 @@ void CCreatureHandler::loadStackExp(Bonus & b, BonusList & bl, std::string & src
 		for (int i = 1; i < 11; ++i)
 		{
 			loadToIt (curVal, src, it, 4);
-			if (curVal > lastVal) //threshold, add last bonus
+			if (curVal > lastVal) //threshold, add new bonus
 			{
-				b.val = lastVal;
+				b.val = curVal - lastVal;
+				lastVal = curVal;
 				b.limiter.reset (new RankRangeLimiter(i));
 				bl.push_back(new Bonus(b));
 				lastLev = i; //start new range from here, i = previous rank