[Scummvm-git-logs] scummvm master -> dc25c091cde108d3be54091ef7983f468e0e15f7

mduggan mgithub at guarana.org
Sat Jul 3 08:17:45 UTC 2021


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:
bffcca22f7 ULTIMA8: Resolve 2 unknown Crusader ES intrinsics
dc25c091cd ULTIMA8: Loiter process improvements


Commit: bffcca22f7174df109f0c7a755d7ede25470f0ce
    https://github.com/scummvm/scummvm/commit/bffcca22f7174df109f0c7a755d7ede25470f0ce
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-03T17:16:17+09:00

Commit Message:
ULTIMA8: Resolve 2 unknown Crusader ES intrinsics

Changed paths:
    engines/ultima/ultima8/usecode/remorse_intrinsics.h


diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index 95f5705a3a..3ce60b2273 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -729,7 +729,7 @@ Intrinsic RemorseEsIntrinsics[] = {
 	Item::I_popToCoords,
 	Actor::I_setDead,
 	Item::I_push,
-	0, // TODO: Intrinsic028 10b0:2622,
+	Item::I_getEtherealTop,
 	Item::I_setShape,
 	Item::I_touch,
 	Item::I_getQHi,
@@ -908,7 +908,7 @@ Intrinsic RemorseEsIntrinsics[] = {
 	Item::I_hurl,
 	Item::I_getQHi,
 	Actor::I_addHp,
-	0, // TODO: Intrinsic0DB 1028:049c,
+	MainActor::I_switchMap, // TODO: Intrinsic0DB 1028:049c,
 	Actor::I_setActivity,
 	Actor::I_isInCombat,
 	Item::I_setQAndCombine,


Commit: dc25c091cde108d3be54091ef7983f468e0e15f7
    https://github.com/scummvm/scummvm/commit/dc25c091cde108d3be54091ef7983f468e0e15f7
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-03T17:16:17+09:00

Commit Message:
ULTIMA8: Loiter process improvements

1. Stop any pathfinders when starting new loiter, to avoid duplicates
2. Use the Cru Pathfinder type in Crusader games

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


diff --git a/engines/ultima/ultima8/world/actors/loiter_process.cpp b/engines/ultima/ultima8/world/actors/loiter_process.cpp
index d2ead9d50b..a1b201567e 100644
--- a/engines/ultima/ultima8/world/actors/loiter_process.cpp
+++ b/engines/ultima/ultima8/world/actors/loiter_process.cpp
@@ -23,6 +23,7 @@
 #include "ultima/ultima8/world/actors/loiter_process.h"
 #include "ultima/ultima8/world/actors/actor.h"
 #include "ultima/ultima8/world/actors/pathfinder_process.h"
+#include "ultima/ultima8/world/actors/cru_pathfinder_process.h"
 #include "ultima/ultima8/kernel/kernel.h"
 #include "ultima/ultima8/kernel/delay_process.h"
 #include "ultima/ultima8/ultima8.h"
@@ -49,6 +50,9 @@ LoiterProcess::LoiterProcess(Actor *actor, int32 c) : _count(c) {
 	Process *previous = Kernel::get_instance()->findProcess(_itemNum, _type);
 	if (previous)
 		previous->terminate();
+	Process *prevpf = Kernel::get_instance()->findProcess(_itemNum, PathfinderProcess::PATHFINDER_PROC_TYPE);
+	if (prevpf)
+		prevpf->terminate();
 }
 
 void LoiterProcess::run() {
@@ -73,7 +77,12 @@ void LoiterProcess::run() {
 	x += 32 * ((getRandom() % 20) - 10);
 	y += 32 * ((getRandom() % 20) - 10);
 
-	PathfinderProcess *pfp = new PathfinderProcess(a, x, y, z);
+	Process *pfp;
+	if (GAME_IS_U8)
+		pfp = new PathfinderProcess(a, x, y, z);
+	else
+		pfp = new CruPathfinderProcess(a, x, y, z, 0xc, 0x80, false);
+
 	Kernel::get_instance()->addProcess(pfp);
 
 	bool hasidle1 = a->hasAnim(Animation::idle1);




More information about the Scummvm-git-logs mailing list