[Scummvm-git-logs] scummvm master -> 32264e9fcf7218c65d2e00d03fc6cc3a3c95d82c
mgerhardy
noreply at scummvm.org
Thu Oct 10 09:43:26 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:
32264e9fcf TWINE: unified with original sources
Commit: 32264e9fcf7218c65d2e00d03fc6cc3a3c95d82c
https://github.com/scummvm/scummvm/commit/32264e9fcf7218c65d2e00d03fc6cc3a3c95d82c
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-10-10T11:43:10+02:00
Commit Message:
TWINE: unified with original sources
Changed paths:
engines/twine/renderer/screens.cpp
engines/twine/renderer/screens.h
diff --git a/engines/twine/renderer/screens.cpp b/engines/twine/renderer/screens.cpp
index 5599bbf567d..debeb416551 100644
--- a/engines/twine/renderer/screens.cpp
+++ b/engines/twine/renderer/screens.cpp
@@ -75,18 +75,6 @@ void Screens::loadCustomPalette(const TwineResource &resource) {
convertPalToRGBA(_palette.data(), _palettePcx);
}
-void Screens::convertPalToRGBA(const uint8 *in, uint32 *out) {
- uint8 *paletteOut = (uint8 *)out;
- for (int i = 0; i < NUMOFCOLORS; i++) {
- paletteOut[0] = in[0];
- paletteOut[1] = in[1];
- paletteOut[2] = in[2];
- paletteOut[3] = 0xFF;
- paletteOut += 4;
- in += 3;
- }
-}
-
void Screens::loadImage(TwineImage image, bool fadeIn) {
Graphics::ManagedSurface& src = _engine->_imageBuffer;
if (HQR::getEntry((uint8 *)src.getPixels(), image.image) == 0) {
@@ -183,6 +171,25 @@ bool Screens::loadBitmapDelay(const char *image, int32 seconds) {
return false;
}
+int32 Screens::lerp(int32 val1, int32 val2, int32 nbstep, int32 step) { // RegleTrois32
+ if (nbstep < 0) {
+ return val2;
+ }
+ return (((val2 - val1) * step) / nbstep) + val1;
+}
+
+void Screens::convertPalToRGBA(const uint8 *in, uint32 *out) {
+ uint8 *paletteOut = (uint8 *)out;
+ for (int i = 0; i < NUMOFCOLORS; i++) {
+ paletteOut[0] = in[0];
+ paletteOut[1] = in[1];
+ paletteOut[2] = in[2];
+ paletteOut[3] = 0xFF;
+ paletteOut += 4;
+ in += 3;
+ }
+}
+
void Screens::fadeIn(const uint32 *pal) {
fadeToPal(pal);
@@ -193,13 +200,6 @@ void Screens::fadeOut(const uint32 *pal) {
fadeToBlack(pal);
}
-int32 Screens::lerp(int32 val1, int32 val2, int32 nbstep, int32 step) { // RegleTrois32
- if (nbstep < 0) {
- return val2;
- }
- return (((val2 - val1) * step) / nbstep) + val1;
-}
-
void Screens::fadePal(uint8 r, uint8 g, uint8 b, const uint32 *rgbaPal, int32 intensity) {
uint32 pal[NUMOFCOLORS];
@@ -230,6 +230,58 @@ void Screens::fadePal(uint8 r, uint8 g, uint8 b, const uint32 *rgbaPal, int32 in
_engine->_frontVideoBuffer.update();
}
+void Screens::fadeToBlack(const uint32 *ptrpal) {
+ if (_fadeBlackPal) {
+ return;
+ }
+
+ for (int32 n = 100; n >= 0; n -= 2) {
+ FrameMarker frame(_engine, DEFAULT_HZ); // VSync()
+ fadePal(0, 0, 0, ptrpal, n);
+ }
+
+ _fadeBlackPal = true;
+}
+
+void Screens::whiteFade() {
+ uint32 workpal[NUMOFCOLORS];
+
+ for (int32 n = 0; n < 255; n += 3) {
+ FrameMarker frame(_engine, DEFAULT_HZ); // VSync()
+ memset(workpal, n, sizeof(workpal));
+
+ _engine->setPalette(workpal);
+ _engine->_frontVideoBuffer.update();
+ }
+}
+
+void Screens::fadeWhiteToPal(const uint32 *ptrpal) {
+ for (int32 n = 0; n <= 100; ++n) {
+ FrameMarker frame(_engine, DEFAULT_HZ); // VSync()
+ fadePal(255, 255, 255, ptrpal, n);
+ }
+}
+
+void Screens::fadeToPal(const uint32 *pal) {
+ for (int32 i = 0; i <= 100; i += 3) {
+ FrameMarker frame(_engine, DEFAULT_HZ); // VSync()
+ fadePal(0, 0, 0, pal, i);
+ }
+
+ _engine->setPalette(pal);
+
+ _fadeBlackPal = false;
+}
+
+void Screens::setBlackPal() {
+ _palette.clear();
+ memset(_ptrPal, 0, sizeof(_ptrPal));
+
+ _engine->setPalette(_ptrPal);
+
+ _fadeBlackPal = true;
+}
+
void Screens::fadePalToPal(const uint32 *ptrpal, const uint32 *ptrpal2) {
Graphics::Palette workpal{NUMOFCOLORS};
@@ -257,38 +309,17 @@ void Screens::fadePalToPal(const uint32 *ptrpal, const uint32 *ptrpal2) {
} while (intensity <= 100);
}
-void Screens::fadeToBlack(const uint32 *pal) {
- if (_palResetted) {
- return;
- }
-
- for (int32 i = 100; i >= 0; i -= 3) {
+void Screens::fadeToRed(const uint32 *pal) {
+ for (int32 i = 100; i >= 0; i -= 2) {
FrameMarker frame(_engine, DEFAULT_HZ);
- fadePal(0, 0, 0, pal, i);
+ fadePal(255, 0, 0, pal, i);
}
-
- _palResetted = true;
}
-void Screens::fadeToPal(const uint32 *pal) {
- for (int32 i = 0; i <= 100; i += 3) {
+void Screens::fadeRedToPal(const uint32 *pal) {
+ for (int32 i = 0; i <= 100; i += 2) {
FrameMarker frame(_engine, DEFAULT_HZ);
- fadePal(0, 0, 0, pal, i);
- }
-
- _engine->setPalette(pal);
-
- _palResetted = false;
-}
-
-void Screens::blackToWhite() {
- uint32 pal[NUMOFCOLORS];
-
- for (int32 i = 0; i < NUMOFCOLORS; i += 3) {
- memset(pal, i, sizeof(pal));
-
- _engine->setPalette(pal);
- _engine->_frontVideoBuffer.update();
+ fadePal(255, 0, 0, pal, i);
}
}
@@ -313,29 +344,6 @@ void Screens::setNormalPal() {
}
}
-void Screens::setBlackPal() {
- _palette.clear();
- memset(_ptrPal, 0, sizeof(_ptrPal));
-
- _engine->setPalette(_ptrPal);
-
- _palResetted = true;
-}
-
-void Screens::fadeToRed(const uint32 *pal) {
- for (int32 i = 100; i >= 0; i -= 2) {
- FrameMarker frame(_engine, DEFAULT_HZ);
- fadePal(0xFF, 0, 0, pal, i);
- }
-}
-
-void Screens::fadeRedToPal(const uint32 *pal) {
- for (int32 i = 0; i <= 100; i += 2) {
- FrameMarker frame(_engine, DEFAULT_HZ);
- fadePal(0xFF, 0, 0, pal, i);
- }
-}
-
void Screens::copyScreen(const Graphics::ManagedSurface &source, Graphics::ManagedSurface &destination) {
destination.blitFrom(source);
}
diff --git a/engines/twine/renderer/screens.h b/engines/twine/renderer/screens.h
index bf995a177f8..8d55b6c379c 100644
--- a/engines/twine/renderer/screens.h
+++ b/engines/twine/renderer/screens.h
@@ -60,7 +60,7 @@ public:
uint32 _palettePcx[NUMOFCOLORS]{0};
/** flag to check in the game palette was changed */
- bool _palResetted = false;
+ bool _fadeBlackPal = false;
/** flag to check if the main flag is locked */
bool _flagFade = false;
@@ -149,6 +149,7 @@ public:
* @param palette current palette to fade
*/
void fadeToBlack(const uint32 *palette);
+ void fadeWhiteToPal(const uint32 *ptrpal);
/**
* Fade image with another palette source
@@ -157,7 +158,7 @@ public:
void fadeToPal(const uint32 *palette);
/** Fade black palette to white palette */
- void blackToWhite();
+ void whiteFade();
/** Resets both in-game and sdl palettes */
void setBlackPal();
More information about the Scummvm-git-logs
mailing list