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

yuv422 noreply at scummvm.org
Tue Dec 10 11:55:30 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:
e553855aea DARKSEED: Fix palette flashing when changing rooms at dusk.


Commit: e553855aea21bbf2ae5da24d15252adc9745695e
    https://github.com/scummvm/scummvm/commit/e553855aea21bbf2ae5da24d15252adc9745695e
Author: Eric Fry (yuv422 at reversedgames.com)
Date: 2024-12-10T22:51:57+11:00

Commit Message:
DARKSEED: Fix palette flashing when changing rooms at dusk.

Changed paths:
    engines/darkseed/room.cpp
    engines/darkseed/room.h


diff --git a/engines/darkseed/room.cpp b/engines/darkseed/room.cpp
index 11711821b18..b25c7dde583 100644
--- a/engines/darkseed/room.cpp
+++ b/engines/darkseed/room.cpp
@@ -243,6 +243,8 @@ bool Room::load() {
 	}
 
 	_pal.load(g_engine->getPictureFilePath(Common::Path(Common::String::format("%s.pal", filenameBase.c_str()))), false);
+	_workPal.load(_pal);
+	_palLoaded = false;
 
 	loadLocationSprites(Common::Path(Common::String::format("%s.nsp", filenameBase.c_str())));
 
@@ -292,7 +294,7 @@ Common::String Room::stripSpaces(const Common::String &source) {
 
 void Room::draw() {
 	if (!_palLoaded) {
-		_pal.installPalette();
+		_workPal.installPalette();
 		_palLoaded = true;
 	}
 	_pic.draw(0x45, 0x28);
@@ -1390,24 +1392,25 @@ void Room::loadRoom61AWalkableLocations() {
 }
 
 void Room::restorePalette() {
+	_workPal.load(_pal);
 	_palLoaded = false;
 }
 
 void Room::darkenSky() {
 	if (isOutside() && g_engine->_currentTimeInSeconds / 3600 > 16) {
-		Pal workPal(_pal);
+		_workPal.load(_pal);
 		int timeOffset = g_engine->_currentTimeInSeconds - 61200;
 		if (timeOffset == 0) {
 			timeOffset = 1;
 		}
 		for (int i = 0; i < DARKSEED_PAL_SIZE; i++) {
-			uint8 p = workPal._palData[i];
+			uint8 p = _workPal._palData[i];
 			if (p == 0) {
 				p = 1;
 			}
-			workPal._palData[i] = p - (p / (26 - timeOffset / 750));
+			_workPal._palData[i] = p - (p / (26 - timeOffset / 750));
 		}
-		workPal.installPalette();
+		_palLoaded = false;
 	}
 }
 
diff --git a/engines/darkseed/room.h b/engines/darkseed/room.h
index 56b723d0b94..e41c6cc6685 100644
--- a/engines/darkseed/room.h
+++ b/engines/darkseed/room.h
@@ -62,6 +62,7 @@ public:
 	uint8 _roomNumber;
 	Pic _pic;
 	Pal _pal;
+	Pal _workPal; // used to darken the sky.
 	Nsp _locationSprites;
 	Common::Array<int16> _locObjFrame;
 	Common::Array<int16> _locObjFrameTimer;




More information about the Scummvm-git-logs mailing list