[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