[Scummvm-git-logs] scummvm master -> 20db21a3b7acfaf697f3a1dad7c22ffe96dab73b

mduggan mgithub at guarana.org
Sun Jul 11 23:11:58 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:
20db21a3b7 ULTIMA8: Update shield zap location with Crusader move


Commit: 20db21a3b7acfaf697f3a1dad7c22ffe96dab73b
    https://github.com/scummvm/scummvm/commit/20db21a3b7acfaf697f3a1dad7c22ffe96dab73b
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-12T08:09:44+09:00

Commit Message:
ULTIMA8: Update shield zap location with Crusader move

Changed paths:
    engines/ultima/ultima8/world/actors/main_actor.cpp
    engines/ultima/ultima8/world/actors/main_actor.h
    engines/ultima/ultima8/world/item.h


diff --git a/engines/ultima/ultima8/world/actors/main_actor.cpp b/engines/ultima/ultima8/world/actors/main_actor.cpp
index eddb57513e..101b8a765d 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.cpp
+++ b/engines/ultima/ultima8/world/actors/main_actor.cpp
@@ -349,6 +349,17 @@ const ShapeInfo *MainActor::getShapeInfoFromGameInstance() const {
 	return _kneelingShapeInfo;
 }
 
+void MainActor::move(int32 x, int32 y, int32 z) {
+	Actor::move(x, y, z);
+	if (_shieldSpriteProc != 0) {
+		SpriteProcess *sprite = dynamic_cast<SpriteProcess *>(
+			Kernel::get_instance()->getProcess(_shieldSpriteProc));
+		if (sprite) {
+			sprite->move(x, y, z);
+		}
+	}
+}
+
 void MainActor::teleport(int mapNum, int32 x, int32 y, int32 z) {
 	World *world = World::get_instance();
 
diff --git a/engines/ultima/ultima8/world/actors/main_actor.h b/engines/ultima/ultima8/world/actors/main_actor.h
index 2fd16e8683..2e98268590 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.h
+++ b/engines/ultima/ultima8/world/actors/main_actor.h
@@ -51,6 +51,8 @@ public:
 	//! when Crusader is kneeling.
 	const ShapeInfo *getShapeInfoFromGameInstance() const override;
 
+	void move(int32 X, int32 Y, int32 Z) override;
+
 	//! Add item to avatar's inventory, but with some extra logic to do things like combine
 	//! ammo and credits, use batteries, etc.
 	int16 addItemCru(Item *item, bool showtoast);
diff --git a/engines/ultima/ultima8/world/item.h b/engines/ultima/ultima8/world/item.h
index 56faf6427e..b5e4274911 100644
--- a/engines/ultima/ultima8/world/item.h
+++ b/engines/ultima/ultima8/world/item.h
@@ -72,7 +72,7 @@ public:
 
 	//! Move an item. This moves an item to the new location, and updates
 	//! CurrentMap and fastArea if necessary.
-	void move(int32 x, int32 y, int32 z);
+	virtual void move(int32 x, int32 y, int32 z);
 
 	//! Move, but with a point struct.
 	void move(const Point3 &pt);




More information about the Scummvm-git-logs mailing list