[Scummvm-git-logs] scummvm master -> 17d73513ccb25490f591ebb6e15622b1c019fae6

OMGPizzaGuy 48367439+OMGPizzaGuy at users.noreply.github.com
Tue Aug 25 02:44:05 UTC 2020


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:
17d73513cc ULTIMA8: Finish actor turn with stand animation instead appending after turn.


Commit: 17d73513ccb25490f591ebb6e15622b1c019fae6
    https://github.com/scummvm/scummvm/commit/17d73513ccb25490f591ebb6e15622b1c019fae6
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-08-24T21:43:45-05:00

Commit Message:
ULTIMA8: Finish actor turn with stand animation instead appending after turn.

This prevents a head snaping animation at the of a turn and allows the next queued animation to not have an addition wait before starting.

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


diff --git a/engines/ultima/ultima8/world/actors/actor.cpp b/engines/ultima/ultima8/world/actors/actor.cpp
index 16503df330..bff7d85737 100644
--- a/engines/ultima/ultima8/world/actors/actor.cpp
+++ b/engines/ultima/ultima8/world/actors/actor.cpp
@@ -584,6 +584,7 @@ uint16 Actor::turnTowardDir(Direction targetdir) {
 		standanim = Animation::surrenderStand;
 	}
 
+	ProcId animpid = 0;
 	ProcId prevpid = 0;
 
 	// Create a sequence of turn animations from
@@ -600,28 +601,22 @@ uint16 Actor::turnTowardDir(Direction targetdir) {
 
 	bool done = false;
 	for (Direction dir = curdir; !done; dir = Direction_TurnByDelta(dir, stepDelta, mode)) {
-		ProcId animpid = doAnim(turnanim, dir);
+		Animation::Sequence nextanim = turnanim;
+		if (dir == targetdir) {
+			nextanim = standanim;
+			done = true;
+		}
 
+		animpid = doAnim(nextanim, dir);
 		if (prevpid) {
 			Process *proc = Kernel::get_instance()->getProcess(animpid);
 			assert(proc);
 			proc->waitFor(prevpid);
 		}
 
-		done = (dir == targetdir);
 		prevpid = animpid;
 	}
 
-	ProcId animpid = prevpid;
-	if (turnanim != standanim) {
-		animpid = doAnim(standanim, targetdir);
-		if (prevpid) {
-			Process *proc = Kernel::get_instance()->getProcess(animpid);
-			assert(proc);
-			proc->waitFor(prevpid);
-		}
-	}
-
 	return animpid;
 }
 




More information about the Scummvm-git-logs mailing list