aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/tsage/core.cpp17
-rw-r--r--engines/tsage/core.h2
-rw-r--r--engines/tsage/ringworld_scenes10.cpp22
3 files changed, 22 insertions, 19 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index d6f4ab8078..5ccb48f05b 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -1203,12 +1203,15 @@ void PaletteUnknown::signal() {
}
void PaletteUnknown::remove() {
- for (int i = 0; i < 256; i++)
- _scenePalette->_palette[i] = _palette[i];
- _scenePalette->refresh();
- if (_scenePalette->_listeners.contains(this))
- _scenePalette->_listeners.remove(this);
- delete this;
+ if (_scenePalette) {
+ for (int i = 0; i < 256; i++)
+ _scenePalette->_palette[i] = _palette[i];
+ _scenePalette->refresh();
+ if (_scenePalette->_listeners.contains(this))
+ _scenePalette->_listeners.remove(this);
+ delete this;
+ }
+
if (_action)
_action->signal();
}
@@ -1356,7 +1359,7 @@ PaletteRotation *ScenePalette::addRotation(int start, int end, int rotationMode,
return obj;
}
-PaletteUnknown *ScenePalette::addUnkPal(byte *arrBufferRGB, int unkNumb, bool disabled, Action *action) {
+PaletteUnknown *ScenePalette::addUnkPal(uint32 *arrBufferRGB, int unkNumb, bool disabled, Action *action) {
PaletteUnknown *paletteUnk = new PaletteUnknown();
paletteUnk->_action = action;
for (int i = 0; i < 256; i++) {
diff --git a/engines/tsage/core.h b/engines/tsage/core.h
index 78f5fcf276..5e3da6a170 100644
--- a/engines/tsage/core.h
+++ b/engines/tsage/core.h
@@ -385,7 +385,7 @@ public:
void clearListeners();
void fade(const byte *adjustData, bool fullAdjust, int percent);
PaletteRotation *addRotation(int start, int end, int rotationMode, int duration = 0, Action *action = NULL);
- PaletteUnknown *addUnkPal(byte *arrBufferRGB, int unkNumb, bool disabled, Action *action);
+ PaletteUnknown *addUnkPal(uint32 *arrBufferRGB, int unkNumb, bool disabled, Action *action);
static void changeBackground(const Rect &bounds, FadeMode fadeMode);
diff --git a/engines/tsage/ringworld_scenes10.cpp b/engines/tsage/ringworld_scenes10.cpp
index ae1e290189..5ea5077b74 100644
--- a/engines/tsage/ringworld_scenes10.cpp
+++ b/engines/tsage/ringworld_scenes10.cpp
@@ -1633,8 +1633,8 @@ void Scene9850::postInit(SceneObjectList *OwnerList) {
*
*--------------------------------------------------------------------------*/
void Scene9900::strAction1::signal() {
- static byte mask1[3]= {0xFF, 0xFF, 0xFF};
- static byte mask2[3]= {0x00, 0x00, 0x00};
+ static uint32 mask1 = 0xFFFFFF00;
+ static uint32 mask2 = 0x00000000;
Scene9900 *scene = (Scene9900 *)_globals->_sceneManager._scene;
@@ -1652,18 +1652,18 @@ void Scene9900::strAction1::signal() {
break;
case 1:
_palette1.getPalette();
- _globals->_scenePalette.addUnkPal(mask1, 1, true /*10*/, this);
+ _globals->_scenePalette.addUnkPal(&mask1, 1, true /*10*/, this);
break;
case 2:
_object9.remove();
- _globals->_scenePalette.addUnkPal(mask2, 1, true /*5*/, this);
+ _globals->_scenePalette.addUnkPal(&mask2, 1, true /*5*/, this);
break;
case 3:
_globals->_soundHandler.startSound(377, 0, 127);
setDelay(120);
break;
case 4:
- _globals->_scenePalette.addUnkPal((byte *)_palette1._palette, 256, 1, this);
+ _globals->_scenePalette.addUnkPal(_palette1._palette, 256, 1, this);
break;
case 5:
remove();
@@ -1769,25 +1769,25 @@ void Scene9900::strAction2::dispatch() {
}
void Scene9900::strAction3::signal() {
- static byte mask3[3]= {0xFF, 0x00, 0x00};
- static byte mask4[3]= {0x00, 0x00, 0x00};
+ static uint32 mask3 = 0xFF000000;
+ static uint32 mask4 = 0x00000000;
switch (_actionIndex++) {
case 0:
_palette2.getPalette();
_palette3.loadPalette(2003);
- _globals->_scenePalette.addUnkPal((byte *)_palette3._palette, 256, true /*5*/, this);
+ _globals->_scenePalette.addUnkPal(_palette3._palette, 256, true /*5*/, this);
break;
case 1:
- _globals->_scenePalette.addUnkPal(mask3, 1, true /*10*/, this);
+ _globals->_scenePalette.addUnkPal(&mask3, 1, true /*10*/, this);
break;
case 2:
- _globals->_scenePalette.addUnkPal(mask4, 1, true /*1*/, this);
+ _globals->_scenePalette.addUnkPal(&mask4, 1, true /*1*/, this);
break;
case 3:
_palette2.loadPalette(17);
_globals->_sceneManager._scene->loadScene(17);
- _globals->_scenePalette.addUnkPal((byte *)_palette2._palette, 256, true /*5*/, this);
+ _globals->_scenePalette.addUnkPal(_palette2._palette, 256, true /*5*/, this);
break;
case 4:
_globals->_game.endGame(9900, 61);