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

OMGPizzaGuy noreply at scummvm.org
Sun May 12 22:38:38 UTC 2024


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:
bca1dde768 ULTIMA8: Set EXT_CAMERA on item during camera process.


Commit: bca1dde768cba0b427e804868ecdf40a8898dcc5
    https://github.com/scummvm/scummvm/commit/bca1dde768cba0b427e804868ecdf40a8898dcc5
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2024-05-12T17:37:51-05:00

Commit Message:
ULTIMA8: Set EXT_CAMERA on item during camera process.
This flag was sometimes not properly set, preventing fast area updates during main actor teleport.
Fixes #13279

Changed paths:
    engines/ultima/ultima8/world/camera_process.cpp


diff --git a/engines/ultima/ultima8/world/camera_process.cpp b/engines/ultima/ultima8/world/camera_process.cpp
index c6bf49cb4f6..d4b8ffeaa1b 100644
--- a/engines/ultima/ultima8/world/camera_process.cpp
+++ b/engines/ultima/ultima8/world/camera_process.cpp
@@ -66,10 +66,12 @@ void CameraProcess::ResetCameraProcess() {
 void CameraProcess::moveToLocation(int32 x, int32 y, int32 z) {
 	if (_itemNum) {
 		Item *item = getItem(_itemNum);
-		if (item) item->clearExtFlag(Item::EXT_CAMERA);
+		if (item)
+			item->clearExtFlag(Item::EXT_CAMERA);
+		_itemNum = 0;
 	}
 
-	_sx = _sy = _sz = _time = _elapsed = _lastFrameNum = _itemNum = 0;
+	_sx = _sy = _sz = _time = _elapsed = _lastFrameNum = 0;
 	_eqX = _eqY = _earthquake = 0;
 	_ex = x;
 	_ey = y;
@@ -148,7 +150,9 @@ CameraProcess::CameraProcess(int32 x, int32 y, int32 z, int32 time) :
 void CameraProcess::terminate() {
 	if (_itemNum) {
 		Item *item = getItem(_itemNum);
-		if (item) item->clearExtFlag(Item::EXT_CAMERA);
+		if (item)
+			item->clearExtFlag(Item::EXT_CAMERA);
+		_itemNum = 0;
 	}
 
 	Process::terminate();
@@ -220,6 +224,7 @@ void CameraProcess::GetLerped(int32 &x, int32 &y, int32 &z, int32 factor, bool n
 					Item *item = getItem(_itemNum);
 					// Got it
 					if (item) {
+						item->setExtFlag(Item::EXT_CAMERA);
 						_sx = _ex;
 						_sy = _ey;
 						_sz = _ez;




More information about the Scummvm-git-logs mailing list