[Scummvm-git-logs] scummvm master -> 6b2bfe3b0757194ec56ddf3776f89ae92e3ffc2e

OMGPizzaGuy noreply at scummvm.org
Mon Jan 29 00:06:58 UTC 2024


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:
eb7cd9675c ULTIMA8: Allow climbing during directional movement.
6b2bfe3b07 ULTIMA8: Allow attack in current direction during movement


Commit: eb7cd9675cf9e7f611ac149b4595cef796a0930c
    https://github.com/scummvm/scummvm/commit/eb7cd9675cf9e7f611ac149b4595cef796a0930c
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2024-01-28T18:05:54-06:00

Commit Message:
ULTIMA8: Allow climbing during directional movement.

Changed paths:
    engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp


diff --git a/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp b/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp
index 23a64f6354d..c495dceca68 100644
--- a/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp
+++ b/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp
@@ -475,6 +475,23 @@ void U8AvatarMoverProcess::handleNormalMode() {
 		else if ((hasMovementFlags(MOVE_MOUSE_DIRECTION) && mouselength == 0) || hasMovementFlags(MOVE_STEP)) {
 			nextanim = Animation::jumpUp;
 		}
+		else if (!hasMovementFlags(MOVE_MOUSE_DIRECTION)) {
+			// check if there's something we can climb up onto here
+			Animation::Sequence climbanim = Animation::climb72;
+			while (climbanim >= Animation::climb16) {
+				if (avatar->tryAnim(climbanim, direction) ==
+					Animation::SUCCESS) {
+					nextanim = climbanim;
+				}
+				climbanim = static_cast<Animation::Sequence>(climbanim - 1);
+			}
+
+			if (nextanim >= Animation::climb16 && nextanim <= Animation::climb72) {
+				// climbing gives str/dex
+				avatar->accumulateStr(2 + nextanim - Animation::climb16);
+				avatar->accumulateDex(2 * (2 + nextanim - Animation::climb16));
+			}
+		}
 
 		nextanim = Animation::checkWeapon(nextanim, lastanim);
 		waitFor(avatar->doAnim(nextanim, direction));
@@ -506,7 +523,7 @@ void U8AvatarMoverProcess::handleNormalMode() {
 			jump(Animation::jump, direction);
 		}
 		else {
-			if (nextanim != Animation::jumpUp) {
+			if (nextanim >= Animation::climb16 && nextanim <= Animation::climb72) {
 				// climbing gives str/dex
 				avatar->accumulateStr(2 + nextanim - Animation::climb16);
 				avatar->accumulateDex(2 * (2 + nextanim - Animation::climb16));


Commit: 6b2bfe3b0757194ec56ddf3776f89ae92e3ffc2e
    https://github.com/scummvm/scummvm/commit/6b2bfe3b0757194ec56ddf3776f89ae92e3ffc2e
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2024-01-28T18:05:54-06:00

Commit Message:
ULTIMA8: Allow attack in current direction during movement

Changed paths:
    engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp


diff --git a/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp b/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp
index c495dceca68..c2a1a63ba0f 100644
--- a/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp
+++ b/engines/ultima/ultima8/world/actors/u8_avatar_mover_process.cpp
@@ -156,12 +156,14 @@ void U8AvatarMoverProcess::handleCombatMode() {
 
 		if (canAttack()) {
 			// double left click = attack
-//			debugC(kDebugActor, "AvatarMover: combat attack");
-
-			if (checkTurn(mousedir, false))
-				return;
+			if (hasMovementFlags(MOVE_ANY_DIRECTION)) {
+				waitFor(avatar->doAnim(Animation::attack, direction));
+			} else {
+				if (checkTurn(mousedir, false))
+					return;
 
-			waitFor(avatar->doAnim(Animation::attack, mousedir));
+				waitFor(avatar->doAnim(Animation::attack, mousedir));
+			}
 			_lastAttack = Kernel::get_instance()->getFrameNum();
 
 			// attacking gives str/dex
@@ -188,12 +190,14 @@ void U8AvatarMoverProcess::handleCombatMode() {
 
 		if (canAttack()) {
 			// double right click = kick
-//			debugC(kDebugActor, "AvatarMover: combat kick");
-
-			if (checkTurn(mousedir, false))
-				return;
+			if (hasMovementFlags(MOVE_ANY_DIRECTION)) {
+				waitFor(avatar->doAnim(Animation::kick, direction));
+			} else {
+				if (checkTurn(mousedir, false))
+					return;
 
-			waitFor(avatar->doAnim(Animation::kick, mousedir));
+				waitFor(avatar->doAnim(Animation::kick, mousedir));
+			}
 			_lastAttack = Kernel::get_instance()->getFrameNum();
 
 			// kicking gives str/dex




More information about the Scummvm-git-logs mailing list