[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