diff options
author | Paul Gilbert | 2011-10-20 22:33:21 +1100 |
---|---|---|
committer | Paul Gilbert | 2011-10-20 23:15:25 +1100 |
commit | 96d9b566a2e0dda4acddfea081030603493eebbc (patch) | |
tree | 904094a1ab002616c7cb2f9b39dc8d3b426d0b85 /engines/tsage/blue_force | |
parent | 2c735008421c82aeb0b3756b760d5bc5e8fd4c96 (diff) | |
download | scummvm-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/blue_force')
-rw-r--r-- | engines/tsage/blue_force/blueforce_logic.cpp | 12 | ||||
-rw-r--r-- | engines/tsage/blue_force/blueforce_logic.h | 2 |
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 { |