Procházet zdrojové kódy

Fixed bank randomization.

DjWarmonger před 10 roky
rodič
revize
abe02247b5
1 změnil soubory, kde provedl 4 přidání a 6 odebrání
  1. 4 6
      lib/mapObjects/CommonConstructors.cpp

+ 4 - 6
lib/mapObjects/CommonConstructors.cpp

@@ -313,17 +313,15 @@ void CBankInstanceConstructor::configureObject(CGObjectInstance * object, CRando
 	si32 selectedChance = rng.nextInt(totalChance - 1);
 	//logGlobal->debugStream() << "Selected chance for bank config is " << selectedChance;
 
+	int cumulativeChance = 0;
 	for (auto & node : levels)
 	{
-		if (selectedChance < node["chance"].Float())
+		cumulativeChance += node["chance"].Float();
+		if (selectedChance < cumulativeChance)
 		{
 			 bank->setConfig(generateConfig(node, rng));
+			 break;
 		}
-		else
-		{
-			selectedChance -= node["chance"].Float();
-		}
-
 	}
 }