[Scummvm-cvs-logs] scummvm master -> f80d676f3b8d137581e7ec8f250a1c402e77a422

sev- sev at scummvm.org
Sun May 29 14:32:12 CEST 2016


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
05ba3fdb3b SCUMM HE: Fix warning
f80d676f3b SCUMM HE: Explicit type conversion


Commit: 05ba3fdb3bfc5808c34ae19d67d66431f7dc11fd
    https://github.com/scummvm/scummvm/commit/05ba3fdb3bfc5808c34ae19d67d66431f7dc11fd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-05-29T14:30:28+02:00

Commit Message:
SCUMM HE: Fix warning

Changed paths:
    engines/scumm/he/wiz_he.cpp



diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp
index 428960f..d730cb2 100644
--- a/engines/scumm/he/wiz_he.cpp
+++ b/engines/scumm/he/wiz_he.cpp
@@ -1748,7 +1748,7 @@ void Wiz::copyCompositeWizImage(uint8 *dst, uint8 *wizPtr, uint8 *compositeInfoB
 			drawFlags = flags;
 		}
 
-		uint srcw1, srch1;
+		uint srcw1 = 0, srch1 = 0;
 		if (drawFlags & (kWIFFlipX | kWIFFlipY)) {
 			uint8 *wizh = _vm->findWrappedBlock(MKTAG('W','I','Z','H'), wizPtr, subState, 0);
 			assert(wizh);


Commit: f80d676f3b8d137581e7ec8f250a1c402e77a422
    https://github.com/scummvm/scummvm/commit/f80d676f3b8d137581e7ec8f250a1c402e77a422
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-05-29T14:31:40+02:00

Commit Message:
SCUMM HE: Explicit type conversion

Changed paths:
    engines/scumm/he/moonbase/ai_defenseunit.cpp
    engines/scumm/he/moonbase/ai_main.cpp
    engines/scumm/he/moonbase/ai_targetacquisition.cpp
    engines/scumm/he/moonbase/ai_traveller.cpp
    engines/scumm/he/moonbase/ai_tree.cpp



diff --git a/engines/scumm/he/moonbase/ai_defenseunit.cpp b/engines/scumm/he/moonbase/ai_defenseunit.cpp
index 37ce303..ab61297 100644
--- a/engines/scumm/he/moonbase/ai_defenseunit.cpp
+++ b/engines/scumm/he/moonbase/ai_defenseunit.cpp
@@ -80,14 +80,14 @@ Common::Point *AntiAirUnit::createTargetPos(int index, int distance, int weaponT
 			targetPos->y = getPosY();
 		} else {
 			ratio = MAX(0, (getRadius() / distance));
-			targetPos->x = getPosX() - ratio * (getPosX() - sourceX);
-			targetPos->y = getPosY() - ratio * (getPosY() - sourceY);
+			targetPos->x = (int16)(getPosX() - ratio * (getPosX() - sourceX));
+			targetPos->y = (int16)(getPosY() - ratio * (getPosY() - sourceY));
 		}
 
 		break;
 
 	case ITEM_EMP:
-		if (getRadius() + 215 > distance) { //emp radius
+		if (getRadius() + 215 > distance) { // Emp radius
 			double x1 = static_cast<double>(sourceX);
 			double y1 = static_cast<double>(sourceY);
 			double x2 = static_cast<double>(getPosX());
@@ -96,17 +96,17 @@ Common::Point *AntiAirUnit::createTargetPos(int index, int distance, int weaponT
 			double r2 = static_cast<double>(getRadius() + 3);
 			double d = static_cast<double>(distance);
 
-			//formulae for calculating one point of intersection of two circles
+			// Formulae for calculating one point of intersection of two circles
 			float root = sqrt((((r1 + r2) * (r1 + r2)) - (d * d)) * ((d * d) - ((r2 - r1) * (r2 - r1))));
-			int x = ((x1 + x2) / 2) + ((x2 - x1) * (r1 * r1 - r2 * r2)) / (2 * d * d) + ((y2 - y1) / (2 * d * d)) * root;
-			int y = ((y1 + y2) / 2) + ((y2 - y1) * (r1 * r1 - r2 * r2)) / (2 * d * d) - ((x2 - x1) / (2 * d * d)) * root;
+			int x = (int)(((x1 + x2) / 2) + ((x2 - x1) * (r1 * r1 - r2 * r2)) / (2 * d * d) + ((y2 - y1) / (2 * d * d)) * root);
+			int y = (int)(((y1 + y2) / 2) + ((y2 - y1) * (r1 * r1 - r2 * r2)) / (2 * d * d) - ((x2 - x1) / (2 * d * d)) * root);
 
 			targetPos->x = x;
 			targetPos->y = y;
 		} else {
 			ratio = 1 - (getRadius() / static_cast<float>(distance - 20));
-			targetPos->x = sourceX + ratio * (getPosX() - sourceX);
-			targetPos->y = sourceY + ratio * (getPosY() - sourceY);
+			targetPos->x = (int16)(sourceX + ratio * (getPosX() - sourceX));
+			targetPos->y = (int16)(sourceY + ratio * (getPosY() - sourceY));
 		}
 
 		break;
@@ -188,7 +188,7 @@ Common::Point *ShieldUnit::createTargetPos(int index, int distance, int weaponTy
 			break;
 
 		case ITEM_EMP:
-			if (getRadius() + 215 > distance) { //emp radius
+			if (getRadius() + 215 > distance) { // Emp radius
 				double x1 = static_cast<double>(sourceX);
 				double y1 = static_cast<double>(sourceY);
 				double x2 = static_cast<double>(getPosX());
@@ -197,17 +197,17 @@ Common::Point *ShieldUnit::createTargetPos(int index, int distance, int weaponTy
 				double r2 = static_cast<double>(getRadius() + 10);
 				double d = static_cast<double>(distance);
 
-				//formulae for calculating one point of intersection of two circles
+				// Formulae for calculating one point of intersection of two circles
 				float root = sqrt((((r1 + r2) * (r1 + r2)) - (d * d)) * ((d * d) - ((r2 - r1) * (r2 - r1))));
-				int x = ((x1 + x2) / 2) + ((x2 - x1) * (r1 * r1 - r2 * r2)) / (2 * d * d) + ((y2 - y1) / (2 * d * d)) * root;
-				int y = ((y1 + y2) / 2) + ((y2 - y1) * (r1 * r1 - r2 * r2)) / (2 * d * d) - ((x2 - x1) / (2 * d * d)) * root;
+				int x = (int)(((x1 + x2) / 2) + ((x2 - x1) * (r1 * r1 - r2 * r2)) / (2 * d * d) + ((y2 - y1) / (2 * d * d)) * root);
+				int y = (int)(((y1 + y2) / 2) + ((y2 - y1) * (r1 * r1 - r2 * r2)) / (2 * d * d) - ((x2 - x1) / (2 * d * d)) * root);
 
 				targetPos->x = x;
 				targetPos->y = y;
 			} else {
 				ratio = 1 - (getRadius() / static_cast<float>(distance - 20));
-				targetPos->x = sourceX + ratio * (getPosX() - sourceX);
-				targetPos->y = sourceY + ratio * (getPosY() - sourceY);
+				targetPos->x = (int16)(sourceX + ratio * (getPosX() - sourceX));
+				targetPos->y = (int16)(sourceY + ratio * (getPosY() - sourceY));
 			}
 
 			if (distance < getRadius()) {
@@ -282,8 +282,8 @@ Common::Point *MineUnit::createTargetPos(int index, int distance, int weaponType
 
 	case ITEM_EMP:
 		ratio = 1 - (getRadius() / static_cast<float>(distance - 20));
-		targetPos->x = sourceX + ratio * (getPosX() - sourceX);
-		targetPos->y = sourceY + ratio * (getPosY() - sourceY);
+		targetPos->x = (int16)(sourceX + ratio * (getPosX() - sourceX));
+		targetPos->y = (int16)(sourceY + ratio * (getPosY() - sourceY));
 		break;
 
 	default:
diff --git a/engines/scumm/he/moonbase/ai_main.cpp b/engines/scumm/he/moonbase/ai_main.cpp
index 7ca4fbd..9c9ff8b 100644
--- a/engines/scumm/he/moonbase/ai_main.cpp
+++ b/engines/scumm/he/moonbase/ai_main.cpp
@@ -817,8 +817,7 @@ int AI::masterControlProgram(const int paramCount, const int32 *params) {
 
 		{
 			// ANGLE setting
-			int angleAdjustment = 0;
-			angleAdjustment = _vm->_rnd.getRandomNumber(_aiType[getCurrentPlayer()]->getAngleVariation() * AI_VAR_BASE_ANGLE) * 3.6;
+			int angleAdjustment = (int)(_vm->_rnd.getRandomNumber(_aiType[getCurrentPlayer()]->getAngleVariation() * AI_VAR_BASE_ANGLE) * 3.6);
 			//pos or neg choice
 			angleAdjustment *= ((_vm->_rnd.getRandomNumber(1) * 2) - 1);
 			angleAdjustment *= randomAttenuation;
diff --git a/engines/scumm/he/moonbase/ai_targetacquisition.cpp b/engines/scumm/he/moonbase/ai_targetacquisition.cpp
index 938a02d..02c49dc 100644
--- a/engines/scumm/he/moonbase/ai_targetacquisition.cpp
+++ b/engines/scumm/he/moonbase/ai_targetacquisition.cpp
@@ -226,7 +226,7 @@ IContainedObject *Sortie::createChildObj(int index, int &completionFlag) {
 				if (!_ai->_vm->_rnd.getRandomNumber(4))
 					currentWeapon->setTypeID(ITEM_MINE);
 
-				(*i)->setDamage(thisDamage);
+				(*i)->setDamage((int)thisDamage);
 
 				// Apply emp effect
 				if (currentWeapon->getTypeID() == ITEM_EMP) {
@@ -278,7 +278,8 @@ float Sortie::calcH() {
 }
 
 int Sortie::checkSuccess() {
-	if (!_enemyDefenses.size()) return SUCCESS;
+	if (!_enemyDefenses.size())
+		return SUCCESS;
 
 	int targetX = getTargetPosX();
 	int targetY = getTargetPosY();
@@ -431,8 +432,8 @@ int Defender::calculateDefenseUnitPosition(int targetX, int targetY, int index)
 			int randAngle = directAngleToHub + _ai->_vm->_rnd.getRandomNumber(179) - 90;
 			int randDist = _ai->_vm->_rnd.getRandomNumber(109) + 40;
 
-			int x = targetX + randDist * cos(_ai->degToRad(randAngle));
-			int y = targetY + randDist * sin(_ai->degToRad(randAngle));
+			int x = (int)(targetX + randDist * cos(_ai->degToRad(randAngle)));
+			int y = (int)(targetY + randDist * sin(_ai->degToRad(randAngle)));
 
 			int powAngle = _ai->getPowerAngleFromPoint(hubX, hubY, x, y, 20);
 
@@ -496,8 +497,8 @@ int Defender::calculateDefenseUnitPosition(int targetX, int targetY, int index)
 
 					int xDist = xCoord - x;
 					int yDist = yCoord - y;
-					x = xCoord + (terrainSquareSize * 1.414 * (xDist / (abs(xDist) + 1)));
-					y = yCoord + (terrainSquareSize * 1.414 * (yDist / (abs(yDist) + 1)));
+					x = (int)(xCoord + (terrainSquareSize * 1.414 * (xDist / (abs(xDist) + 1))));
+					y = (int)(yCoord + (terrainSquareSize * 1.414 * (yDist / (abs(yDist) + 1))));
 
 					setTargetX(x);
 					setTargetY(y);
diff --git a/engines/scumm/he/moonbase/ai_traveller.cpp b/engines/scumm/he/moonbase/ai_traveller.cpp
index 8294ea3..b1c9985 100644
--- a/engines/scumm/he/moonbase/ai_traveller.cpp
+++ b/engines/scumm/he/moonbase/ai_traveller.cpp
@@ -143,10 +143,10 @@ IContainedObject *Traveller::createChildObj(int index, int &completionFlag) {
 		if (directDist > _maxDist + 120)
 			maxPower = _ai->getMaxPower();
 		else
-			maxPower = (static_cast<float>(directDist) / static_cast<float>(_maxDist + 120)) * _ai->getMaxPower();
+			maxPower = (int)((static_cast<float>(directDist) / static_cast<float>(_maxDist + 120)) * _ai->getMaxPower());
 
 		maxPower -= 70;
-		power = maxPower * (1 - ((index % NUM_POWER_STEPS) * SIZE_POWER_STEP));
+		power = (int)(maxPower * (1 - ((index % NUM_POWER_STEPS) * SIZE_POWER_STEP)));
 	}
 
 	retTraveller->setAngleTo(angle);
@@ -188,8 +188,8 @@ IContainedObject *Traveller::createChildObj(int index, int &completionFlag) {
 		float pwr = _ai->getMinPower() * .3;
 		float cosine = cos((static_cast<float>(angle) / 360) * (2 * M_PI));
 		float sine = sin((static_cast<float>(angle) / 360) * (2 * M_PI));
-		int xParam = xCoord + (pwr * cosine);
-		int yParam = yCoord + (pwr * sine);
+		int xParam = (int)(xCoord + (pwr * cosine));
+		int yParam = (int)(yCoord + (pwr * sine));
 
 		if (xParam < 0)
 			xParam += _ai->getMaxX();
@@ -233,8 +233,8 @@ IContainedObject *Traveller::createChildObj(int index, int &completionFlag) {
 
 			int xDist = xCoord - _posX;
 			int yDist = yCoord - _posY;
-			retTraveller->setPosX(xCoord + (terrainSquareSize * 1.414 * (xDist / (abs(xDist) + 1))));
-			retTraveller->setPosY(yCoord + (terrainSquareSize * 1.414 * (yDist / (abs(yDist) + 1))));
+			retTraveller->setPosX((int)(xCoord + (terrainSquareSize * 1.414 * (xDist / (abs(xDist) + 1)))));
+			retTraveller->setPosY((int)(yCoord + (terrainSquareSize * 1.414 * (yDist / (abs(yDist) + 1)))));
 
 			int closestHub = _ai->getClosestUnit(retTraveller->getPosX(), retTraveller->getPosY(), _ai->getMaxX(), _ai->getCurrentPlayer(), 1, BUILDING_MAIN_BASE, 1, 110);
 
diff --git a/engines/scumm/he/moonbase/ai_tree.cpp b/engines/scumm/he/moonbase/ai_tree.cpp
index e3098a7..d185368 100644
--- a/engines/scumm/he/moonbase/ai_tree.cpp
+++ b/engines/scumm/he/moonbase/ai_tree.cpp
@@ -29,7 +29,12 @@
 namespace Scumm {
 
 static int compareTreeNodes(const void *a, const void *b) {
-	return ((const TreeNode *)a)->value - ((const TreeNode *)b)->value;
+	if (((const TreeNode *)a)->value < ((const TreeNode *)b)->value)
+		return -1;
+	else if (((const TreeNode *)a)->value > ((const TreeNode *)b)->value)
+		return 1;
+	else
+		return 0;
 }
 
 Tree::Tree(AI *ai) : _ai(ai) {






More information about the Scummvm-git-logs mailing list