[Scummvm-git-logs] scummvm branch-2-5 -> 61ecd4a76e395df323c13bfcf0a7b9caa4f6abde

sev- sev at scummvm.org
Mon Oct 11 20:00:56 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:
61ecd4a76e PETKA: fix scene scrolling


Commit: 61ecd4a76e395df323c13bfcf0a7b9caa4f6abde
    https://github.com/scummvm/scummvm/commit/61ecd4a76e395df323c13bfcf0a7b9caa4f6abde
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2021-10-11T23:00:46+03:00

Commit Message:
PETKA: fix scene scrolling

Changed paths:
    engines/petka/interfaces/main.cpp
    engines/petka/objects/heroes.cpp
    engines/petka/objects/object_bg.cpp
    engines/petka/q_system.cpp


diff --git a/engines/petka/interfaces/main.cpp b/engines/petka/interfaces/main.cpp
index b9e23b09b4..9b3616c3b2 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -99,7 +99,8 @@ void InterfaceMain::loadRoom(int id, bool fromSave) {
 
 	auto surface = resMgr->getSurface(room->_resourceId);
 	if (surface) {
-		sys->_sceneWidth = surface->w;
+		assert(surface->w >= 640);
+		sys->_sceneWidth = MAX<int>(surface->w, 640);
 		sys->_xOffset = 0;
 	}
 
@@ -292,7 +293,7 @@ void InterfaceMain::update(uint time) {
 			xOff -= 8;
 			xOff = MAX<int>(xOff, reqOffset);
 		}
-		sys->_xOffset = CLIP(xOff, sys->_sceneWidth - 640, 0);
+		sys->_xOffset = CLIP(xOff, 0, sys->_sceneWidth - 640);
 		g_vm->videoSystem()->makeAllDirty();
 	}
 	Interface::update(time);
diff --git a/engines/petka/objects/heroes.cpp b/engines/petka/objects/heroes.cpp
index 0715bac5b3..421c7102b6 100644
--- a/engines/petka/objects/heroes.cpp
+++ b/engines/petka/objects/heroes.cpp
@@ -412,7 +412,7 @@ void QObjectPetka::recalcOffset() {
 	if (_x_ < xOff + 160 || _x_ > xOff + 480) {
 		sys->_reqOffset = _x_ - 320;
 	}
-	sys->_reqOffset = CLIP<int>(sys->_reqOffset, sys->_sceneWidth - 640, 0);
+	sys->_reqOffset = CLIP<int>(sys->_reqOffset, 0, sys->_sceneWidth - 640);
 }
 
 QObjectChapayev::QObjectChapayev() {
diff --git a/engines/petka/objects/object_bg.cpp b/engines/petka/objects/object_bg.cpp
index 6fb95e3612..9d77524c00 100644
--- a/engines/petka/objects/object_bg.cpp
+++ b/engines/petka/objects/object_bg.cpp
@@ -150,7 +150,7 @@ void QObjectBG::setEntrance(const Common::String &name) {
 		sys->getPetka()->setPos(Common::Point(entrance->_walkX, entrance->_walkY), false);
 		sys->getChapay()->setPos(Common::Point(entrance->_walkX, entrance->_walkY - 2), false);
 
-		sys->_xOffset = CLIP<int32>(entrance->_walkX - 320, sys->_sceneWidth - 640, 0);
+		sys->_xOffset = CLIP<int32>(entrance->_walkX - 320, 0, sys->_sceneWidth - 640);
 		sys->_reqOffset = sys->_xOffset;
 	}
 	g_vm->videoSystem()->makeAllDirty();
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index 55734da8e5..0cf4ffed90 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -252,7 +252,7 @@ void QSystem::load(Common::ReadStream *s) {
 
 	petka->setPos(pos, false);
 
-	_xOffset = CLIP<int>(pos.x - 320, _sceneWidth - 640, 0);
+	_xOffset = CLIP<int>(pos.x - 320, 0, _sceneWidth - 640);
 
 	pos.x = s->readSint32LE();
 	pos.y = s->readSint32LE();




More information about the Scummvm-git-logs mailing list