aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
authorPaul Gilbert2011-10-20 22:33:21 +1100
committerPaul Gilbert2011-10-20 23:15:25 +1100
commit96d9b566a2e0dda4acddfea081030603493eebbc (patch)
tree904094a1ab002616c7cb2f9b39dc8d3b426d0b85 /engines/tsage
parent2c735008421c82aeb0b3756b760d5bc5e8fd4c96 (diff)
downloadscummvm-rg350-96d9b566a2e0dda4acddfea081030603493eebbc.tar.gz
scummvm-rg350-96d9b566a2e0dda4acddfea081030603493eebbc.tar.bz2
scummvm-rg350-96d9b566a2e0dda4acddfea081030603493eebbc.zip
TSAGE: Bugfixes for the PalettedScene::transition method
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/blue_force/blueforce_logic.cpp12
-rw-r--r--engines/tsage/blue_force/blueforce_logic.h2
2 files changed, 6 insertions, 8 deletions
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index 48512c774a..c249791759 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -895,14 +895,12 @@ void PalettedScene::add2Faders(const byte *arrBufferRGB, int step, int paletteNu
BF_GLOBALS._scenePalette.addFader(_palette._palette, 256, step, action);
}
-void PalettedScene::sub15E4F(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag) {
+void PalettedScene::transition(const byte *arrBufferRGB, int percent, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag) {
byte tmpPalette[768];
- warning("sub15E4F");
- return;
_palette.loadPalette(paletteNum);
_palette.loadPalette(2);
- if (!flag) {
+ if (flag) {
for (int i = fromColor1; i <= fromColor2; i++) {
tmpPalette[(3 * i)] = BF_GLOBALS._scenePalette._palette[(3 * i)];
tmpPalette[(3 * i) + 1] = BF_GLOBALS._scenePalette._palette[(3 * i) + 1];
@@ -917,9 +915,9 @@ void PalettedScene::sub15E4F(const byte *arrBufferRGB, int arg8, int paletteNum,
}
for (int i = toColor1; i <= toColor2; i++) {
- tmpPalette[i] = _palette._palette[i] - ((_palette._palette[i] - arrBufferRGB[0]) * (100 - arg8)) / 100;
- tmpPalette[i + 1] = _palette._palette[i + 1] - ((_palette._palette[i + 1] - arrBufferRGB[1]) * (100 - arg8)) / 100;
- tmpPalette[i + 2] = _palette._palette[i + 2] - ((_palette._palette[i + 2] - arrBufferRGB[2]) * (100 - arg8)) / 100;
+ tmpPalette[i * 3] = _palette._palette[i * 3] - ((_palette._palette[i * 3] - arrBufferRGB[i * 3]) * (100 - percent)) / 100;
+ tmpPalette[i * 3 + 1] = _palette._palette[i * 3 + 1] - ((_palette._palette[i * 3 + 1] - arrBufferRGB[i * 3 + 1]) * (100 - percent)) / 100;
+ tmpPalette[i * 3 + 2] = _palette._palette[i * 3 + 2] - ((_palette._palette[i * 3 + 2] - arrBufferRGB[i * 3 + 2]) * (100 - percent)) / 100;
}
BF_GLOBALS._scenePalette.addFader((const byte *)tmpPalette, 256, 100, action);
diff --git a/engines/tsage/blue_force/blueforce_logic.h b/engines/tsage/blue_force/blueforce_logic.h
index d3cff57bd2..fc4170f112 100644
--- a/engines/tsage/blue_force/blueforce_logic.h
+++ b/engines/tsage/blue_force/blueforce_logic.h
@@ -239,7 +239,7 @@ public:
virtual void remove();
PaletteFader *addFader(const byte *arrBufferRGB, int step, Action *action);
void add2Faders(const byte *arrBufferRGB, int step, int paletteNum, Action *action);
- void sub15E4F(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag);
+ void transition(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag);
};
class SceneHandlerExt: public SceneHandler {