[Scummvm-git-logs] scummvm master -> 93c18db9d8b108a7342b870cef34807b6cfa7c7c

a-yyg 76591232+a-yyg at users.noreply.github.com
Wed Aug 18 06:55:31 UTC 2021


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

Summary:
93c18db9d8 SAGA2: Fix getRandomNumber ranges


Commit: 93c18db9d8b108a7342b870cef34807b6cfa7c7c
    https://github.com/scummvm/scummvm/commit/93c18db9d8b108a7342b870cef34807b6cfa7c7c
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-18T15:54:30+09:00

Commit Message:
SAGA2: Fix getRandomNumber ranges

Changed paths:
    engines/saga2/actor.cpp
    engines/saga2/objproto.cpp
    engines/saga2/path.cpp
    engines/saga2/task.cpp


diff --git a/engines/saga2/actor.cpp b/engines/saga2/actor.cpp
index 6ff1b24625..e006dfe686 100644
--- a/engines/saga2/actor.cpp
+++ b/engines/saga2/actor.cpp
@@ -593,7 +593,7 @@ bool ActorProto::acceptStrikeAction(
 			if (!a->isDead()) {
 				int16 pmass = a->proto()->mass;
 
-				if (pmass <= 100 || (int16)g_vm->_rnd->getRandomNumber(154) >= pmass - 100) {
+				if (pmass <= 100 || (int16)g_vm->_rnd->getRandomNumber(155) >= pmass - 100) {
 					if (g_vm->_rnd->getRandomNumber(7) == 0)
 						MotionTask::fallDown(*a, *enactorPtr);
 					else
@@ -2775,7 +2775,7 @@ void Actor::handleDamageTaken(uint8 damage) {
 	        &&  !hasEffect(actorRepelUndead)) {
 		if (flags & afraid) {
 			//  Let's give monsters a small chance of regaining their courage
-			if ((uint16)g_vm->_rnd->getRandomNumber(65534) <= 0x3fff)
+			if ((uint16)g_vm->_rnd->getRandomNumber(0xffff) <= 0x3fff)
 				flags &= ~afraid;
 		} else {
 			int16       i,
@@ -2811,7 +2811,7 @@ void Actor::handleDamageTaken(uint8 damage) {
 			moraleBase -= bonus * moraleBase >> 16;
 
 			//  Test this actor's morale
-			if ((uint16)g_vm->_rnd->getRandomNumber(65534) <= moraleBase)
+			if ((uint16)g_vm->_rnd->getRandomNumber(0xffff) <= moraleBase)
 				flags |= afraid;
 		}
 	}
@@ -3081,7 +3081,7 @@ void Actor::removeFollower(Actor *bandMember) {
 
 				moraleBase -= moraleBase * moraleBonus >> 16;
 
-				if ((uint16)g_vm->_rnd->getRandomNumber(65534) <= moraleBase)
+				if ((uint16)g_vm->_rnd->getRandomNumber(0xffff) <= moraleBase)
 					follower->flags |= afraid;
 			}
 		}
@@ -3383,7 +3383,7 @@ bool areActorsInitialized(void) {
 }
 
 int16 GetRandomBetween(int start, int end) {
-	return g_vm->_rnd->getRandomNumberRng(start, end);
+	return g_vm->_rnd->getRandomNumberRng(start, end - 1);
 }
 
 void updateActorStates(void) {
diff --git a/engines/saga2/objproto.cpp b/engines/saga2/objproto.cpp
index 7f92bb3876..d29167a620 100644
--- a/engines/saga2/objproto.cpp
+++ b/engines/saga2/objproto.cpp
@@ -1797,7 +1797,7 @@ void BludgeoningWeaponProto::applySkillGrowth(ObjectID enactor, uint8 points) {
 
 		player->skillAdvance(skillIDBludgeon, points);
 
-		if (g_vm->_rnd->getRandomNumber(65534) & 1)
+		if (g_vm->_rnd->getRandomNumber(1))
 			player->skillAdvance(skillIDBrawn, points);
 	}
 }
@@ -1834,7 +1834,7 @@ void SlashingWeaponProto::applySkillGrowth(ObjectID enactor, uint8 points) {
 
 		player->skillAdvance(skillIDSwordcraft, points);
 
-		if (g_vm->_rnd->getRandomNumber(65534) & 1)
+		if (g_vm->_rnd->getRandomNumber(1))
 			player->skillAdvance(skillIDBrawn, points);
 	}
 }
@@ -2161,7 +2161,7 @@ void ArrowProto::applySkillGrowth(ObjectID enactor, uint8 points) {
 
 		player->skillAdvance(skillIDArchery, points);
 
-		if (g_vm->_rnd->getRandomNumber(65534) & 1)
+		if (g_vm->_rnd->getRandomNumber(1))
 			player->skillAdvance(skillIDBrawn, points);
 	}
 }
@@ -2385,7 +2385,7 @@ void ShieldProto::applySkillGrowth(ObjectID enactor, uint8 points) {
 
 		player->skillAdvance(skillIDShieldcraft, points);
 
-		if (g_vm->_rnd->getRandomNumber(65534) & 1)
+		if (g_vm->_rnd->getRandomNumber(1))
 			player->skillAdvance(skillIDBrawn, points);
 	}
 }
@@ -2854,7 +2854,7 @@ void EncounterGeneratorProto::doBackgroundUpdate(GameObject *obj) {
 
 			//  Now, roll to see if we got an encounter!
 
-			if ((g_vm->_rnd->getRandomNumber(65534) & 0x0000ffff) < (uint)prob) {
+			if (g_vm->_rnd->getRandomNumber(0xffff) < (uint)prob) {
 				scriptCallFrame scf;
 
 #if DEBUG
diff --git a/engines/saga2/path.cpp b/engines/saga2/path.cpp
index 726dfe0a69..2772511547 100644
--- a/engines/saga2/path.cpp
+++ b/engines/saga2/path.cpp
@@ -2676,7 +2676,7 @@ TilePoint selectNearbySite(
 			spush(TilePoint(qi.u + tDir->u,
 			                qi.v + tDir->v,
 			                testPt.z),
-			      qi.cost + (g_vm->_rnd->getRandomNumber(65534) & 3),
+			      qi.cost + g_vm->_rnd->getRandomNumber(3),
 			      dir);
 		}
 	}
diff --git a/engines/saga2/task.cpp b/engines/saga2/task.cpp
index e7f5659900..25f5acd26c 100644
--- a/engines/saga2/task.cpp
+++ b/engines/saga2/task.cpp
@@ -3248,7 +3248,7 @@ TaskResult HuntToKillTask::atTargetUpdate(void) {
 	Actor   *a = stack->getActor();
 
 	//  If we're ready to attack, attack
-	if (a->isInterruptable() && g_vm->_rnd->getRandomNumber(6) == 0) {
+	if (a->isInterruptable() && g_vm->_rnd->getRandomNumber(7) == 0) {
 		a->attack(currentTarget);
 		flags |= evalWeapon;
 	}




More information about the Scummvm-git-logs mailing list