[Scummvm-git-logs] scummvm master -> 3417916cdd42bb3dbfe2060afe5bb2e2c9b21c40

mgerhardy noreply at scummvm.org
Wed Oct 9 09:51:57 UTC 2024


This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8a1aa15544 TWINE: renamed palette members and functions to match the original sources
43d18713c9 TWINE: renaming (fla) to match the original sources
6be51ef289 TWINE: renamed to match original sources
9903a2afa2 TWINE: further renaming of variables to match the original sources
3417916cdd TWINE: extended debugger to show the current active palette


Commit: 8a1aa15544dcc6aeb3c23c6f369b07255e40ef5a
    https://github.com/scummvm/scummvm/commit/8a1aa15544dcc6aeb3c23c6f369b07255e40ef5a
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-10-09T08:53:04+02:00

Commit Message:
TWINE: renamed palette members and functions to match the original sources

Changed paths:
    engines/twine/debugger/console.cpp
    engines/twine/holomap_v1.cpp
    engines/twine/menu/menuoptions.cpp
    engines/twine/movies.cpp
    engines/twine/renderer/redraw.cpp
    engines/twine/renderer/screens.cpp
    engines/twine/renderer/screens.h
    engines/twine/resources/resources.cpp
    engines/twine/scene/gamestate.cpp
    engines/twine/scene/scene.cpp
    engines/twine/script/script_life.cpp
    engines/twine/script/script_life_v2.cpp
    engines/twine/script/script_move.cpp
    engines/twine/twine.cpp


diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index b191d02534b..e401df3c6cf 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -318,7 +318,7 @@ bool TwinEConsole::doGiveKashes(int argc, const char **argv) {
 }
 
 bool TwinEConsole::doToggleDarkPal(int argc, const char **argv) {
-	if (_engine->_screens->_useAlternatePalette) {
+	if (_engine->_screens->_flagPalettePcx) {
 		debugPrintf("Disabling dark palette\n");
 		_engine->_screens->setNormalPal();
 	} else {
diff --git a/engines/twine/holomap_v1.cpp b/engines/twine/holomap_v1.cpp
index b6aae1eb5d8..38f79ba59b3 100644
--- a/engines/twine/holomap_v1.cpp
+++ b/engines/twine/holomap_v1.cpp
@@ -338,7 +338,7 @@ void HolomapV1::drawHolomapTrajectory(int32 trajectoryIndex) {
 	_engine->_screens->clearScreen();
 
 	initHoloDatas();
-	_engine->setPalette(_engine->_screens->_paletteRGBACustom);
+	_engine->setPalette(_engine->_screens->_palettePcx);
 
 	ScopedEngineFreeze timeFreeze(_engine);
 	const int32 cameraPosX = _engine->width() / 2 + 80;
@@ -422,7 +422,7 @@ void HolomapV1::drawHolomapTrajectory(int32 trajectoryIndex) {
 	}
 
 	_engine->_screens->clearScreen();
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 	_engine->_gameState->init3DGame();
 	_engine->_interface->restoreClip();
 
@@ -527,11 +527,11 @@ void HolomapV1::holoMap() {
 
 	_engine->_gameState->init3DGame();
 
-	_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBA);
+	_engine->_screens->fadeToBlack(_engine->_screens->_ptrPal);
 	_engine->_sound->stopSamples();
 	_engine->_interface->unsetClip();
 	_engine->_screens->clearScreen();
-	_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBA);
+	_engine->_screens->fadeToBlack(_engine->_screens->_ptrPal);
 
 	initHoloDatas();
 
@@ -671,13 +671,13 @@ void HolomapV1::holoMap() {
 
 		if (flagpal) {
 			flagpal = false;
-			_engine->_screens->fadeToPal(_engine->_screens->_paletteRGBACustom);
+			_engine->_screens->fadeToPal(_engine->_screens->_palettePcx);
 		}
 	}
 
 	_engine->_screens->clearScreen();
 	_engine->_text->_flagMessageShade = true;
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 	_engine->_scene->_alphaLight = alphaLightTmp;
 	_engine->_scene->_betaLight = betaLightTmp;
 
diff --git a/engines/twine/menu/menuoptions.cpp b/engines/twine/menu/menuoptions.cpp
index b629c87c9d0..b057e81efa8 100644
--- a/engines/twine/menu/menuoptions.cpp
+++ b/engines/twine/menu/menuoptions.cpp
@@ -76,7 +76,7 @@ void MenuOptions::newGame() {
 		}
 		_engine->_cfgfile.FlagDisplayText = tmpFlagDisplayText;
 
-		_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
+		_engine->_screens->fadeToBlack(_engine->_screens->_palettePcx);
 		_engine->_screens->clearScreen();
 
 		if (!aborted) {
@@ -94,7 +94,7 @@ void MenuOptions::newGame() {
 	_engine->_text->_renderTextTriangle = false;
 
 	// set main palette back
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 }
 
 // TODO: dotemu has credits_<lang>.txt files
@@ -121,7 +121,7 @@ void MenuOptions::showEndSequence() {
 	_engine->_movie->playMovie(FLA_THEEND);
 
 	_engine->_screens->clearScreen();
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 }
 
 void MenuOptions::drawSelectableCharacter(int32 x, int32 y) {
diff --git a/engines/twine/movies.cpp b/engines/twine/movies.cpp
index 387a7941374..0d05806b2a7 100644
--- a/engines/twine/movies.cpp
+++ b/engines/twine/movies.cpp
@@ -201,8 +201,8 @@ void Movies::processFrame() {
 				// FLA movies don't use cross fade
 				// fade out tricky
 				if (_fadeOut != 1) {
-					_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBACustom);
-					_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
+					_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_palettePcx);
+					_engine->_screens->fadeToBlack(_engine->_screens->_palettePcx);
 					_fadeOut = 1;
 				}
 				break;
@@ -305,7 +305,7 @@ void Movies::prepareGIF(int index) {
 	debug(2, "Show gif with id %i from %s", index, Resources::HQR_FLAGIF_FILE);
 	delete stream;
 	_engine->delaySkip(5000);
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 }
 
 void Movies::playGIFMovie(const char *flaName) {
@@ -424,19 +424,19 @@ bool Movies::playMovie(const char *name) { // PlayAnimFla
 
 			// Only blit to screen if isn't a fade
 			if (_fadeOut == -1) {
-				_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBACustom);
+				_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_palettePcx);
 				if (currentFrame == 0) {
 					// fade in the first frame
-					_engine->_screens->fadeIn(_engine->_screens->_paletteRGBACustom);
+					_engine->_screens->fadeIn(_engine->_screens->_palettePcx);
 				} else {
-					_engine->setPalette(_engine->_screens->_paletteRGBACustom);
+					_engine->setPalette(_engine->_screens->_palettePcx);
 				}
 			}
 
 			// TRICKY: fade in tricky
 			if (_fadeOutFrames >= 2) {
-				_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBACustom);
-				_engine->_screens->fadeToPal(_engine->_screens->_paletteRGBACustom);
+				_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_palettePcx);
+				_engine->_screens->fadeToPal(_engine->_screens->_palettePcx);
 				_fadeOut = -1;
 				_fadeOutFrames = 0;
 			}
@@ -447,7 +447,7 @@ bool Movies::playMovie(const char *name) { // PlayAnimFla
 		warning("Unsupported fla version: %u, %s", version, fileNamePath.c_str());
 	}
 
-	_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
+	_engine->_screens->fadeToBlack(_engine->_screens->_palettePcx);
 
 	_engine->_sound->stopSamples();
 	return finished;
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 9c113c985ec..89f438f2091 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -881,7 +881,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
 	if (bgRedraw) {
 		_engine->freezeTime(false);
 		if (_engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_2) {
-			_engine->_screens->fadeOut(_engine->_screens->_paletteRGBA);
+			_engine->_screens->fadeOut(_engine->_screens->_ptrPal);
 		}
 		_engine->_screens->clearScreen();
 
@@ -894,7 +894,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
 		_engine->saveFrontBuffer();
 
 		if (_engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_2) {
-			_engine->_screens->fadeIn(_engine->_screens->_paletteRGBA);
+			_engine->_screens->fadeIn(_engine->_screens->_ptrPal);
 		}
 	} else {
 		blitBackgroundAreas();
@@ -928,13 +928,13 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
 		flipRedrawAreas();
 	}
 
-	if (_engine->_screens->_fadePalette) {
-		if (_engine->_screens->_useAlternatePalette) {
-			_engine->_screens->fadeToPal(_engine->_screens->_paletteRGBA);
+	if (_engine->_screens->_flagFade) {
+		if (_engine->_screens->_flagPalettePcx) {
+			_engine->_screens->fadeToPal(_engine->_screens->_ptrPal);
 		} else {
 			_engine->_screens->fadeToPal(_engine->_screens->_mainPaletteRGBA);
 		}
-		_engine->_screens->_fadePalette = false;
+		_engine->_screens->_flagFade = false;
 	}
 }
 
diff --git a/engines/twine/renderer/screens.cpp b/engines/twine/renderer/screens.cpp
index 380b33d2528..1c63a0c3a75 100644
--- a/engines/twine/renderer/screens.cpp
+++ b/engines/twine/renderer/screens.cpp
@@ -71,7 +71,7 @@ void Screens::loadCustomPalette(const TwineResource &resource) {
 		warning("Unexpected palette size %s:%i", resource.hqr, resource.index);
 	}
 	debug(3, "palette %s:%i with size %i", resource.hqr, resource.index, size);
-	convertPalToRGBA(_palette, _paletteRGBACustom);
+	convertPalToRGBA(_palette, _palettePcx);
 }
 
 void Screens::convertPalToRGBA(const uint8 *in, uint32 *out) {
@@ -95,10 +95,10 @@ void Screens::loadImage(TwineImage image, bool fadeIn) {
 	debug(0, "Load image: %i", image.image.index);
 	Graphics::ManagedSurface& target = _engine->_frontVideoBuffer;
 	target.transBlitFrom(src, src.getBounds(), target.getBounds(), 0, false, 0, 0xff, nullptr, true);
-	const uint32 *pal = _paletteRGBA;
+	const uint32 *pal = _ptrPal;
 	if (image.palette.index != -1) {
 		loadCustomPalette(image.palette);
-		pal = _paletteRGBACustom;
+		pal = _palettePcx;
 	}
 	if (fadeIn) {
 		fadeToPal(pal);
@@ -110,10 +110,10 @@ void Screens::loadImage(TwineImage image, bool fadeIn) {
 bool Screens::loadImageDelay(TwineImage image, int32 seconds) {
 	loadImage(image);
 	if (_engine->delaySkip(1000 * seconds)) {
-		adjustPalette(0, 0, 0, _paletteRGBACustom, 100);
+		adjustPalette(0, 0, 0, _palettePcx, 100);
 		return true;
 	}
-	fadeOut(_paletteRGBACustom);
+	fadeOut(_palettePcx);
 	return false;
 }
 
@@ -229,15 +229,15 @@ void Screens::adjustPalette(uint8 r, uint8 g, uint8 b, const uint32 *rgbaPal, in
 	_engine->_frontVideoBuffer.update();
 }
 
-void Screens::adjustCrossPalette(const uint32 *pal1, const uint32 *pal2) {
-	uint32 pal[NUMOFCOLORS];
+void Screens::fadePalToPal(const uint32 *ptrpal, const uint32 *ptrpal2) {
+	uint32 workpal[NUMOFCOLORS];
 
 	int32 counter = 0;
 	int32 intensity = 0;
 
-	const uint8 *pal1p = (const uint8 *)pal1;
-	const uint8 *pal2p = (const uint8 *)pal2;
-	uint8 *paletteOut = (uint8 *)pal;
+	const uint8 *pal1p = (const uint8 *)ptrpal;
+	const uint8 *pal2p = (const uint8 *)ptrpal2;
+	uint8 *paletteOut = (uint8 *)workpal;
 	do {
 		FrameMarker frame(_engine, DEFAULT_HZ);
 		counter = 0;
@@ -261,7 +261,7 @@ void Screens::adjustCrossPalette(const uint32 *pal1, const uint32 *pal2) {
 			counter += 4;
 		}
 
-		_engine->setPalette(pal);
+		_engine->setPalette(workpal);
 		intensity++;
 		_engine->_frontVideoBuffer.update();
 	} while (intensity <= 100);
@@ -305,39 +305,39 @@ void Screens::blackToWhite() {
 void Screens::setDarkPal() {
 	ScopedEngineFreeze scoped(_engine);
 	HQR::getEntry(_palette, Resources::HQR_RESS_FILE, RESSHQR_DARKPAL);
-	convertPalToRGBA(_palette, _paletteRGBA);
-	if (!_fadePalette) {
+	convertPalToRGBA(_palette, _ptrPal);
+	if (!_flagFade) {
 		// set the palette hard if it should not get faded
-		_engine->setPalette(_paletteRGBA);
+		_engine->setPalette(_ptrPal);
 	}
-	_useAlternatePalette = true;
+	_flagPalettePcx = true;
 }
 
 void Screens::setNormalPal() {
-	_useAlternatePalette = false;
-	if (!_fadePalette) {
+	_flagPalettePcx = false;
+	if (!_flagFade) {
 		// reset the palette hard if it should not get faded
 		_engine->setPalette(_mainPaletteRGBA);
 	}
 }
 
-void Screens::setBackPal() {
+void Screens::setBlackPal() {
 	memset(_palette, 0, sizeof(_palette));
-	memset(_paletteRGBA, 0, sizeof(_paletteRGBA));
+	memset(_ptrPal, 0, sizeof(_ptrPal));
 
-	_engine->setPalette(_paletteRGBA);
+	_engine->setPalette(_ptrPal);
 
 	_palResetted = true;
 }
 
-void Screens::fadePalRed(const uint32 *pal) {
+void Screens::fadeToRed(const uint32 *pal) {
 	for (int32 i = 100; i >= 0; i -= 2) {
 		FrameMarker frame(_engine, DEFAULT_HZ);
 		adjustPalette(0xFF, 0, 0, pal, i);
 	}
 }
 
-void Screens::fadeRedPal(const uint32 *pal) {
+void Screens::fadeRedToPal(const uint32 *pal) {
 	for (int32 i = 0; i <= 100; i += 2) {
 		FrameMarker frame(_engine, DEFAULT_HZ);
 		adjustPalette(0xFF, 0, 0, pal, i);
diff --git a/engines/twine/renderer/screens.h b/engines/twine/renderer/screens.h
index 41b2c6c7dd8..89c6e53d4a0 100644
--- a/engines/twine/renderer/screens.h
+++ b/engines/twine/renderer/screens.h
@@ -53,19 +53,19 @@ public:
 	int32 mapLba2Palette(int32 palIndex);
 
 	/** converted in-game palette */
-	uint32 _paletteRGBA[NUMOFCOLORS]{0};
+	uint32 _ptrPal[NUMOFCOLORS]{0};
 
 	/** converted custom palette */
-	uint32 _paletteRGBACustom[NUMOFCOLORS]{0};
+	uint32 _palettePcx[NUMOFCOLORS]{0};
 
 	/** flag to check in the game palette was changed */
 	bool _palResetted = false;
 
 	/** flag to check if the main flag is locked */
-	bool _fadePalette = false;
+	bool _flagFade = false;
 
 	/** flag to check if we are using a different palette than the main one */
-	bool _useAlternatePalette = false;
+	bool _flagPalettePcx = false;
 
 	/** converted in-game palette */
 	uint32 _mainPaletteRGBA[NUMOFCOLORS]{0};
@@ -141,7 +141,7 @@ public:
 	 * @param pal1 palette from adjust
 	 * @param pal2 palette to adjust
 	 */
-	void adjustCrossPalette(const uint32 *pal1, const uint32 *pal2);
+	void fadePalToPal(const uint32 *pal1, const uint32 *pal2);
 
 	/**
 	 * Fade image to black
@@ -159,19 +159,19 @@ public:
 	void blackToWhite();
 
 	/** Resets both in-game and sdl palettes */
-	void setBackPal();
+	void setBlackPal();
 
 	/**
 	 * Fade palette to red palette
 	 * @param palette current palette to fade
 	 */
-	void fadePalRed(const uint32 *palette);
+	void fadeToRed(const uint32 *palette);
 
 	/**
 	 * Fade red to palette
 	 * @param palette current palette to fade
 	 */
-	void fadeRedPal(const uint32 *palette);
+	void fadeRedToPal(const uint32 *palette);
 
 	/**
 	 * Copy a determinate screen buffer to another
diff --git a/engines/twine/resources/resources.cpp b/engines/twine/resources/resources.cpp
index 4e7a4de5d38..9de9c63b8b2 100644
--- a/engines/twine/resources/resources.cpp
+++ b/engines/twine/resources/resources.cpp
@@ -56,8 +56,8 @@ void Resources::initPalettes() {
 
 	memcpy(_engine->_screens->_palette, mainPalette, NUMOFCOLORS * 3);
 
-	_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBA);
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_ptrPal);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 	free(mainPalette);
 }
 
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 90521c386aa..e180972eff6 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -516,7 +516,7 @@ void GameState::processGameoverAnimation() {
 	_engine->_scene->_sceneHero->_staticFlags.bIsInvisible = 0;
 
 	// TODO: inSceneryView
-	_engine->setPalette(_engine->_screens->_paletteRGBA);
+	_engine->setPalette(_engine->_screens->_ptrPal);
 	_engine->saveFrontBuffer();
 	BodyData gameOverPtr;
 	if (!gameOverPtr.loadFromHQR(Resources::HQR_RESS_FILE, RESSHQR_GAMEOVERMDL, _engine->isLBA1())) {
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index b50d01bdc03..429070d7d30 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -636,7 +636,7 @@ void Scene::changeCube() {
 	_engine->_movements->_lastJoyFlag = true;
 	_engine->_grid->_useCellingGrid = -1;
 	_engine->_grid->_cellingGridIdx = -1;
-	_engine->_screens->_fadePalette = false;
+	_engine->_screens->_flagFade = false;
 	_engine->_renderer->setLightVector(_alphaLight, _betaLight, LBAAngles::ANGLE_0);
 
 	_needChangeScene = SCENE_CEILING_GRID_FADE_1;
diff --git a/engines/twine/script/script_life.cpp b/engines/twine/script/script_life.cpp
index 98c50c15f71..c8408401c33 100644
--- a/engines/twine/script/script_life.cpp
+++ b/engines/twine/script/script_life.cpp
@@ -1394,13 +1394,13 @@ int32 ScriptLife::lZOOM(TwinEEngine *engine, LifeScriptContext &ctx) {
 	if (zoomScreen && !engine->_redraw->_flagMCGA && engine->_cfgfile.SceZoom) {
 		engine->_screens->fadeToBlack(engine->_screens->_mainPaletteRGBA);
 		engine->extInitMcga();
-		engine->_screens->setBackPal();
-		engine->_screens->_fadePalette = true;
+		engine->_screens->setBlackPal();
+		engine->_screens->_flagFade = true;
 	} else if (!zoomScreen && engine->_redraw->_flagMCGA) {
 		engine->_screens->fadeToBlack(engine->_screens->_mainPaletteRGBA);
 		engine->extInitSvga();
-		engine->_screens->setBackPal();
-		engine->_screens->_fadePalette = true;
+		engine->_screens->setBlackPal();
+		engine->_screens->_flagFade = true;
 		engine->_redraw->_firstTime = true;
 	}
 
@@ -1514,7 +1514,7 @@ int32 ScriptLife::lPLAY_FLA(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::PLAY_FLA(%s)", movie);
 
 	engine->_movie->playMovie(movie);
-	engine->setPalette(engine->_screens->_paletteRGBA);
+	engine->setPalette(engine->_screens->_ptrPal);
 	engine->_redraw->_firstTime = true;
 
 	return 0;
@@ -1758,8 +1758,8 @@ int32 ScriptLife::lGRM_OFF(TwinEEngine *engine, LifeScriptContext &ctx) {
 int32 ScriptLife::lFADE_PAL_RED(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::FADE_PAL_RED()");
 	ScopedEngineFreeze scoped(engine);
-	engine->_screens->fadePalRed(engine->_screens->_mainPaletteRGBA);
-	engine->_screens->_useAlternatePalette = false;
+	engine->_screens->fadeToRed(engine->_screens->_mainPaletteRGBA);
+	engine->_screens->_flagPalettePcx = false;
 	return 0;
 }
 
@@ -1771,9 +1771,9 @@ int32 ScriptLife::lFADE_ALARM_RED(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::FADE_ALARM_RED()");
 	ScopedEngineFreeze scoped(engine);
 	HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
-	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
-	engine->_screens->fadePalRed(engine->_screens->_paletteRGBA);
-	engine->_screens->_useAlternatePalette = true;
+	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_ptrPal);
+	engine->_screens->fadeToRed(engine->_screens->_ptrPal);
+	engine->_screens->_flagPalettePcx = true;
 	return 0;
 }
 
@@ -1785,9 +1785,9 @@ int32 ScriptLife::lFADE_ALARM_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::FADE_ALARM_PAL()");
 	ScopedEngineFreeze scoped(engine);
 	HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
-	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
-	engine->_screens->adjustCrossPalette(engine->_screens->_paletteRGBA, engine->_screens->_mainPaletteRGBA);
-	engine->_screens->_useAlternatePalette = false;
+	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_ptrPal);
+	engine->_screens->fadePalToPal(engine->_screens->_ptrPal, engine->_screens->_mainPaletteRGBA);
+	engine->_screens->_flagPalettePcx = false;
 	return 0;
 }
 
@@ -1798,8 +1798,8 @@ int32 ScriptLife::lFADE_ALARM_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
 int32 ScriptLife::lFADE_RED_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::FADE_RED_PAL()");
 	ScopedEngineFreeze scoped(engine);
-	engine->_screens->fadeRedPal(engine->_screens->_mainPaletteRGBA);
-	engine->_screens->_useAlternatePalette = false;
+	engine->_screens->fadeRedToPal(engine->_screens->_mainPaletteRGBA);
+	engine->_screens->_flagPalettePcx = false;
 	return 0;
 }
 
@@ -1811,9 +1811,9 @@ int32 ScriptLife::lFADE_RED_ALARM(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::FADE_RED_ALARM()");
 	ScopedEngineFreeze scoped(engine);
 	HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
-	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
-	engine->_screens->fadeRedPal(engine->_screens->_paletteRGBA);
-	engine->_screens->_useAlternatePalette = true;
+	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_ptrPal);
+	engine->_screens->fadeRedToPal(engine->_screens->_ptrPal);
+	engine->_screens->_flagPalettePcx = true;
 	return 0;
 }
 
@@ -1825,9 +1825,9 @@ int32 ScriptLife::lFADE_PAL_ALARM(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::FADE_PAL_ALARM()");
 	ScopedEngineFreeze scoped(engine);
 	HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
-	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
-	engine->_screens->adjustCrossPalette(engine->_screens->_mainPaletteRGBA, engine->_screens->_paletteRGBA);
-	engine->_screens->_useAlternatePalette = true;
+	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_ptrPal);
+	engine->_screens->fadePalToPal(engine->_screens->_mainPaletteRGBA, engine->_screens->_ptrPal);
+	engine->_screens->_flagPalettePcx = true;
 	return 0;
 }
 
@@ -1898,7 +1898,7 @@ int32 ScriptLife::lMESSAGE_SENDELL(TwinEEngine *engine, LifeScriptContext &ctx)
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::MESSAGE_SENDELL()");
 	ScopedEngineFreeze scoped(engine);
 	engine->testRestoreModeSVGA(true);
-	engine->_screens->fadeToBlack(engine->_screens->_paletteRGBA);
+	engine->_screens->fadeToBlack(engine->_screens->_ptrPal);
 	engine->_screens->loadImage(TwineImage(Resources::HQR_RESS_FILE, 25, 26));
 	engine->_text->bigWinDial();
 	engine->_text->setFontCrossColor(COLOR_WHITE);
@@ -1909,9 +1909,9 @@ int32 ScriptLife::lMESSAGE_SENDELL(TwinEEngine *engine, LifeScriptContext &ctx)
 	engine->_cfgfile.FlagDisplayText = tmpFlagDisplayText;
 	engine->_text->_flagMessageShade = true;
 	engine->_text->normalWinDial();
-	engine->_screens->fadeToBlack(engine->_screens->_paletteRGBACustom);
+	engine->_screens->fadeToBlack(engine->_screens->_palettePcx);
 	engine->_screens->clearScreen();
-	engine->setPalette(engine->_screens->_paletteRGBA);
+	engine->setPalette(engine->_screens->_ptrPal);
 	return 0;
 }
 
diff --git a/engines/twine/script/script_life_v2.cpp b/engines/twine/script/script_life_v2.cpp
index fea2e50b2f9..97da5e9da13 100644
--- a/engines/twine/script/script_life_v2.cpp
+++ b/engines/twine/script/script_life_v2.cpp
@@ -203,9 +203,9 @@ int32 ScriptLifeV2::lPALETTE(TwinEEngine *engine, LifeScriptContext &ctx) {
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::PALETTE(%i)", palIndex);
 	ScopedEngineFreeze scoped(engine);
 	HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, palIndex);
-	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
-	engine->setPalette(engine->_screens->_paletteRGBA);
-	engine->_screens->_useAlternatePalette = true;
+	engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_ptrPal);
+	engine->setPalette(engine->_screens->_ptrPal);
+	engine->_screens->_flagPalettePcx = true;
 	return 0;
 }
 
@@ -567,7 +567,7 @@ int32 ScriptLifeV2::lPLAY_ACF(TwinEEngine *engine, LifeScriptContext &ctx) {
 
 	engine->_movie->playMovie(movie);
 	// TODO: lba2 is doing more stuff here - reset the cinema mode, init the scene and palette stuff
-	engine->setPalette(engine->_screens->_paletteRGBA);
+	engine->setPalette(engine->_screens->_ptrPal);
 	engine->_redraw->_firstTime = true;
 
 	return -1;
diff --git a/engines/twine/script/script_move.cpp b/engines/twine/script/script_move.cpp
index 40c24c06def..00a45a257ea 100644
--- a/engines/twine/script/script_move.cpp
+++ b/engines/twine/script/script_move.cpp
@@ -539,7 +539,7 @@ int32 ScriptMove::mPLAY_FLA(TwinEEngine *engine, MoveScriptContext &ctx) {
 
 	debugC(3, kDebugLevels::kDebugScripts, "MOVE::PLAY_FLA(%s)", movie);
 	engine->_movie->playMovie(movie);
-	engine->setPalette(engine->_screens->_paletteRGBA);
+	engine->setPalette(engine->_screens->_ptrPal);
 	engine->_screens->clearScreen();
 	return 0;
 }
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 6d884bbfcd5..ac2f6227d32 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -710,7 +710,7 @@ void TwinEEngine::processActorSamplePosition(int32 actorIdx) {
 }
 
 void TwinEEngine::processBookOfBu() {
-	_screens->fadeToBlack(_screens->_paletteRGBA);
+	_screens->fadeToBlack(_screens->_ptrPal);
 	_screens->loadImage(TwineImage(Resources::HQR_RESS_FILE, 15, 16));
 	_text->initDial(TextBankId::Inventory_Intro_and_Holomap);
 	_text->_flagMessageShade = false;
@@ -723,11 +723,11 @@ void TwinEEngine::processBookOfBu() {
 	_text->normalWinDial();
 	_text->_flagMessageShade = true;
 	_text->initSceneTextBank();
-	_screens->fadeToBlack(_screens->_paletteRGBACustom);
+	_screens->fadeToBlack(_screens->_palettePcx);
 	_screens->clearScreen();
 	// TODO: the palette handling here looks wrong
-	setPalette(_screens->_paletteRGBA);
-	_screens->_fadePalette = true;
+	setPalette(_screens->_ptrPal);
+	_screens->_flagFade = true;
 }
 
 void TwinEEngine::processBonusList() {
@@ -750,7 +750,7 @@ void TwinEEngine::processInventoryAction() {
 	switch (_loopInventoryItem) {
 	case kiHolomap:
 		_holomap->holoMap();
-		_screens->_fadePalette = true;
+		_screens->_flagFade = true;
 		break;
 	case kiMagicBall:
 		if (_gameState->_usingSabre) {
@@ -983,7 +983,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 			// unfreeze here - the redrawEngineActions is also doing a freeze
 			// see https://bugs.scummvm.org/ticket/14808
 			unfreezeTime();
-			_screens->_fadePalette = true;
+			_screens->_flagFade = true;
 			_redraw->redrawEngineActions(true);
 		}
 
@@ -1140,7 +1140,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 
 						_scene->_sceneHero->setLife(getMaxLife());
 						_redraw->_firstTime = true;
-						_screens->_fadePalette = true;
+						_screens->_flagFade = true;
 						_gameState->addLeafs(-1);
 						_actor->_cropBottomScreen = 0;
 					} else { // game over
@@ -1197,7 +1197,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 
 bool TwinEEngine::gameEngineLoop() {
 	_redraw->_firstTime = true;
-	_screens->_fadePalette = true;
+	_screens->_flagFade = true;
 	_movements->setActorAngle(LBAAngles::ANGLE_0, -LBAAngles::ANGLE_90, LBAAngles::ANGLE_1, &_loopMovePtr);
 
 	while (_sceneLoopState == SceneLoopState::Continue) {


Commit: 43d18713c94ae890e860807c4345f24eac0c8222
    https://github.com/scummvm/scummvm/commit/43d18713c94ae890e860807c4345f24eac0c8222
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-10-09T09:59:37+02:00

Commit Message:
TWINE: renaming (fla) to match the original sources

Changed paths:
    engines/twine/movies.cpp
    engines/twine/movies.h


diff --git a/engines/twine/movies.cpp b/engines/twine/movies.cpp
index 0d05806b2a7..e7f7b07cbc9 100644
--- a/engines/twine/movies.cpp
+++ b/engines/twine/movies.cpp
@@ -160,7 +160,7 @@ void Movies::scaleFla2x() {
 	}
 }
 
-void Movies::processFrame() {
+void Movies::drawNextFrameFla() {
 	FLASampleStruct sample;
 
 	_frameData.nbFrames = _file.readSint16LE();
@@ -207,7 +207,7 @@ void Movies::processFrame() {
 				}
 				break;
 			case 3:
-				_flaPaletteVar = true;
+				_flagFirst = true;
 				break;
 			case 4:
 				// TODO: fade out for 1 second before we stop it
@@ -407,7 +407,7 @@ bool Movies::playMovie(const char *name) { // PlayAnimFla
 
 		ScopedKeyMap scopedKeyMap(_engine, cutsceneKeyMapId);
 
-		_flaPaletteVar = true;
+		_flagFirst = true;
 		do {
 			FrameMarker frame(_engine, _flaHeaderData.speed);
 			_engine->readKeys();
@@ -418,7 +418,7 @@ bool Movies::playMovie(const char *name) { // PlayAnimFla
 				finished = true;
 				break;
 			}
-			processFrame();
+			drawNextFrameFla();
 			scaleFla2x();
 			_engine->_frontVideoBuffer.blitFrom(_engine->_imageBuffer, _engine->_imageBuffer.getBounds(), _engine->_frontVideoBuffer.getBounds());
 
diff --git a/engines/twine/movies.h b/engines/twine/movies.h
index 14859af865e..3c103df305f 100644
--- a/engines/twine/movies.h
+++ b/engines/twine/movies.h
@@ -65,7 +65,7 @@ private:
 	int32 _fadeOut = 0;
 	/** Auxiliar FLA fade out variable to count frames between the fade */
 	int32 _fadeOutFrames = 0;
-	bool _flaPaletteVar = false;
+	bool _flagFirst = false;
 
 	/** FLA movie file buffer */
 	uint8 _flaBuffer[FLASCREEN_WIDTH * FLASCREEN_HEIGHT] {0};
@@ -85,7 +85,7 @@ private:
 	 * to fullscreen or preserve it and use top and button black bars
 	 */
 	void scaleFla2x();
-	void processFrame();
+	void drawNextFrameFla();
 
 	void prepareGIF(int index);
 	void playGIFMovie(const char *flaName);


Commit: 6be51ef2894e63ae102fd876227fa0ace0a65d4c
    https://github.com/scummvm/scummvm/commit/6be51ef2894e63ae102fd876227fa0ace0a65d4c
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-10-09T10:01:26+02:00

Commit Message:
TWINE: renamed to match original sources

Changed paths:
    engines/twine/scene/scene.cpp
    engines/twine/scene/scene.h


diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 429070d7d30..25569cd13be 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -494,9 +494,10 @@ bool Scene::initScene(int32 index) {
 	return false;
 }
 
-void Scene::resetScene() {
+void Scene::clearScene() {
 	_engine->_extra->resetExtras();
 
+	// ClearFlagsCube
 	for (int32 i = 0; i < ARRAYSIZE(_listFlagCube); i++) {
 		_listFlagCube[i] = 0;
 	}
@@ -576,7 +577,7 @@ void Scene::changeCube() {
 
 	_engine->_sound->stopSamples();
 
-	resetScene();
+	clearScene();
 	_engine->_actor->loadHeroEntities();
 
 	_sceneHero->_controlMode = ControlMode::kManual;
diff --git a/engines/twine/scene/scene.h b/engines/twine/scene/scene.h
index db191260faf..7c1590064ce 100644
--- a/engines/twine/scene/scene.h
+++ b/engines/twine/scene/scene.h
@@ -129,7 +129,7 @@ private:
 	/** Initialize new scene */
 	bool initScene(int32 index);
 	/** Reset scene */
-	void resetScene();
+	void clearScene();
 
 	// the first actor is the own hero
 	ActorStruct _sceneActors[NUM_MAX_ACTORS]; // ListObjet


Commit: 9903a2afa250f6c278abb7d757f3d3d0ab8d2fad
    https://github.com/scummvm/scummvm/commit/9903a2afa250f6c278abb7d757f3d3d0ab8d2fad
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-10-09T11:29:53+02:00

Commit Message:
TWINE: further renaming of variables to match the original sources

Changed paths:
    engines/twine/debugger/console.cpp
    engines/twine/debugger/debugtools.cpp
    engines/twine/holomap_v1.cpp
    engines/twine/menu/menuoptions.cpp
    engines/twine/renderer/redraw.cpp
    engines/twine/scene/buggy.cpp
    engines/twine/scene/dart.cpp
    engines/twine/scene/gamestate.cpp
    engines/twine/scene/grid.cpp
    engines/twine/scene/scene.cpp
    engines/twine/scene/scene.h
    engines/twine/script/script_life.cpp
    engines/twine/script/script_move.cpp
    engines/twine/twine.cpp


diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index e401df3c6cf..ef4c4b1f075 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -200,7 +200,7 @@ bool TwinEConsole::doSetHolomapTrajectory(int argc, const char **argv) {
 		debugPrintf("Expected to get a holomap trajectory index as parameter\n");
 		return true;
 	}
-	_engine->_scene->_holomapTrajectory = atoi(argv[1]);
+	_engine->_scene->_numHolomapTraj = atoi(argv[1]);
 	_engine->_scene->reloadCurrentScene();
 	return false;
 }
@@ -379,7 +379,7 @@ bool TwinEConsole::doChangeScene(int argc, const char **argv) {
 		debugPrintf("Scene index out of bounds\n");
 		return true;
 	}
-	_engine->_scene->_needChangeScene = atoi(argv[1]);
+	_engine->_scene->_newCube = atoi(argv[1]);
 	_engine->_scene->_heroPositionType = ScenePositionType::kScene;
 	_engine->_scene->changeCube();
 	return true;
diff --git a/engines/twine/debugger/debugtools.cpp b/engines/twine/debugger/debugtools.cpp
index 6b2c487be8d..008265e1e6c 100644
--- a/engines/twine/debugger/debugtools.cpp
+++ b/engines/twine/debugger/debugtools.cpp
@@ -237,9 +237,9 @@ static void sceneSelectionCombo(TwinEEngine *engine) {
 			Common::U32String originalLocationName(engine->_holomap->getLocationName(i), Common::kDos850);
 			const Common::String locationName = originalLocationName.encode(Common::kUtf8);
 			Common::String name = Common::String::format("[%03d] %s", i, locationName.c_str());
-			if (ImGui::Selectable(name.c_str(), i == engine->_scene->_currentSceneIdx)) {
-				scene->_currentSceneIdx = i;
-				scene->_needChangeScene = scene->_currentSceneIdx;
+			if (ImGui::Selectable(name.c_str(), i == engine->_scene->_numCube)) {
+				scene->_numCube = i;
+				scene->_newCube = scene->_numCube;
 				engine->_redraw->_firstTime = true;
 			}
 		}
@@ -270,7 +270,7 @@ static void sceneDetailsWindows(TwinEEngine *engine) {
 	if (ImGui::Begin("Scene", &engine->_debugState->_sceneDetailsWindow)) {
 		Scene *scene = engine->_scene;
 		GameState *gameState = engine->_gameState;
-		ImGui::Text("Scene: %i", scene->_currentSceneIdx);
+		ImGui::Text("Scene: %i", scene->_numCube);
 		ImGui::Text("Scene name: %s", gameState->_sceneName);
 		sceneSelectionCombo(engine);
 
@@ -342,7 +342,7 @@ static void sceneDetailsWindows(TwinEEngine *engine) {
 				ImGui::SameLine();
 				Common::String buttonId = Common::String::format("Activate##activateTrajectory%i", i);
 				if (ImGui::Button(buttonId.c_str())) {
-					scene->_holomapTrajectory = i;
+					scene->_numHolomapTraj = i;
 					scene->reloadCurrentScene();
 				}
 				ImGui::Indent();
@@ -354,8 +354,8 @@ static void sceneDetailsWindows(TwinEEngine *engine) {
 				ImGui::Unindent();
 			}
 		}
-		ImGuiEx::InputInt("Previous scene index", &scene->_previousSceneIdx);
-		ImGuiEx::InputInt("Need change scene index", &scene->_needChangeScene);
+		ImGuiEx::InputInt("Previous scene index", &scene->_oldcube);
+		ImGuiEx::InputInt("Need change scene index", &scene->_newCube);
 
 		ImGui::Text("Climbing flag");
 		ImGui::SameLine();
diff --git a/engines/twine/holomap_v1.cpp b/engines/twine/holomap_v1.cpp
index 38f79ba59b3..31e8f54459e 100644
--- a/engines/twine/holomap_v1.cpp
+++ b/engines/twine/holomap_v1.cpp
@@ -461,7 +461,7 @@ int32 HolomapV1::searchPrevArrow(int32 num) const {
 void HolomapV1::drawListPos(int calpha, int cbeta, int cgamma, bool pos) {
 	int nbobjets = 0;
 	DrawListStruct listTri[MAX_HOLO_POS_2];
-	const int numCube = _engine->_scene->_currentSceneIdx;
+	const int numCube = _engine->_scene->_numCube;
 	const int maxHoloPos = _engine->numHoloPos();
 	for (int n = 0; n < maxHoloPos; ++n) {
 		if (!(_engine->_gameState->_holomapFlags[n] & HOLOMAP_CAN_FOCUS) && n != numCube) {
@@ -549,7 +549,7 @@ void HolomapV1::holoMap() {
 		error("Failed to load holomap image");
 	}
 
-	int32 current = _engine->_scene->_currentSceneIdx;
+	int32 current = _engine->_scene->_numCube;
 	_engine->_text->drawHolomapLocation(_listHoloPos[current].mess);
 
 	int32 otimer = _engine->timerRef;
@@ -575,7 +575,7 @@ void HolomapV1::holoMap() {
 		if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapPrev)) {
 			current = searchPrevArrow(current);
 			if (current == -1) {
-				current = _engine->_scene->_currentSceneIdx;
+				current = _engine->_scene->_numCube;
 			}
 			_engine->_text->drawHolomapLocation(_listHoloPos[current].mess);
 			oalpha = calpha;
@@ -588,7 +588,7 @@ void HolomapV1::holoMap() {
 		} else if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapNext)) {
 			current = searchNextArrow(current);
 			if (current == -1) {
-				current = _engine->_scene->_currentSceneIdx;
+				current = _engine->_scene->_numCube;
 			}
 			_engine->_text->drawHolomapLocation(_listHoloPos[current].mess);
 			oalpha = calpha;
diff --git a/engines/twine/menu/menuoptions.cpp b/engines/twine/menu/menuoptions.cpp
index b057e81efa8..fe070afacf8 100644
--- a/engines/twine/menu/menuoptions.cpp
+++ b/engines/twine/menu/menuoptions.cpp
@@ -102,8 +102,8 @@ void MenuOptions::showCredits() {
 	const int32 tmpShadowMode = _engine->_cfgfile.ShadowMode;
 	_engine->_cfgfile.ShadowMode = 0;
 	_engine->_gameState->initEngineVars();
-	_engine->_scene->_currentSceneIdx = LBA1SceneId::Credits_List_Sequence;
-	_engine->_scene->_needChangeScene = LBA1SceneId::Credits_List_Sequence;
+	_engine->_scene->_numCube = LBA1SceneId::Credits_List_Sequence;
+	_engine->_scene->_newCube = LBA1SceneId::Credits_List_Sequence;
 
 	flagCredits = true;
 	_engine->gameEngineLoop();
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 89f438f2091..fed78509490 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -880,7 +880,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
 
 	if (bgRedraw) {
 		_engine->freezeTime(false);
-		if (_engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_2) {
+		if (_engine->_scene->_newCube != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_newCube != SCENE_CEILING_GRID_FADE_2) {
 			_engine->_screens->fadeOut(_engine->_screens->_ptrPal);
 		}
 		_engine->_screens->clearScreen();
@@ -893,7 +893,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
 		updateOverlayTypePosition(tmp_projPosX, tmp_projPosY, _projPosScreen.x, _projPosScreen.y);
 		_engine->saveFrontBuffer();
 
-		if (_engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_2) {
+		if (_engine->_scene->_newCube != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_newCube != SCENE_CEILING_GRID_FADE_2) {
 			_engine->_screens->fadeIn(_engine->_screens->_ptrPal);
 		}
 	} else {
@@ -917,8 +917,8 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
 	_engine->_interface->unsetClip();
 
 	// need to be here to fade after drawing all actors in scene
-	if (_engine->_scene->_needChangeScene == SCENE_CEILING_GRID_FADE_2) {
-		_engine->_scene->_needChangeScene = SCENE_CEILING_GRID_FADE_1;
+	if (_engine->_scene->_newCube == SCENE_CEILING_GRID_FADE_2) {
+		_engine->_scene->_newCube = SCENE_CEILING_GRID_FADE_1;
 	}
 
 	if (bgRedraw) {
diff --git a/engines/twine/scene/buggy.cpp b/engines/twine/scene/buggy.cpp
index b3fa7482c9f..ad46bc93f2f 100644
--- a/engines/twine/scene/buggy.cpp
+++ b/engines/twine/scene/buggy.cpp
@@ -51,7 +51,7 @@ void Buggy::initBuggy(uint8 numobj, uint32 flaginit) {
 		|| (flaginit && !NumBuggy)) // first initialization
 									// because the empty buggy cannot be Twinsen
 	{
-		ptb->Cube = _engine->_scene->_currentSceneIdx; // Port-Ludo (Desert)
+		ptb->Cube = _engine->_scene->_numCube; // Port-Ludo (Desert)
 
 		ptb->X = ptrobj->_posObj.x;
 		ptb->Y = ptrobj->_posObj.y;
@@ -66,7 +66,7 @@ void Buggy::initBuggy(uint8 numobj, uint32 flaginit) {
 		if (_engine->_scene->getActor(OWN_ACTOR_SCENE_INDEX)->_controlMode != ControlMode::kBuggyManual && _engine->_scene->getActor(OWN_ACTOR_SCENE_INDEX)->_controlMode != ControlMode::kBuggy) {
 			int32 x, y;
 
-			if (_engine->_scene->_currentSceneIdx == ptb->Cube) {
+			if (_engine->_scene->_numCube == ptb->Cube) {
 				ptrobj->_posObj.x = ptb->X;
 				ptrobj->_posObj.y = ptb->Y;
 				ptrobj->_posObj.z = ptb->Z;
@@ -192,7 +192,7 @@ void Buggy::leaveBuggy(HeroBehaviourType behaviour) {
 	ptb->Y = ptrobj->_posObj.y;
 	ptb->Z = ptrobj->_posObj.z;
 	ptb->Beta = ptrobj->_beta;
-	ptb->Cube = _engine->_scene->_currentSceneIdx;
+	ptb->Cube = _engine->_scene->_numCube;
 
 	// TODO: ObjectClear(ptrobj);
 
diff --git a/engines/twine/scene/dart.cpp b/engines/twine/scene/dart.cpp
index f8586eb2ebc..7c71c638952 100644
--- a/engines/twine/scene/dart.cpp
+++ b/engines/twine/scene/dart.cpp
@@ -120,7 +120,7 @@ void Dart::CheckDartCol(ActorStruct *ptrobj) {
 	ptrd = ListDart;
 
 	for (n = 0; n < MAX_DARTS; n++, ptrd++) {
-		if (ptrd->NumCube == _engine->_scene->_currentSceneIdx && !(ptrd->Flags & DART_TAKEN)) {
+		if (ptrd->NumCube == _engine->_scene->_numCube && !(ptrd->Flags & DART_TAKEN)) {
 			xt0 = ptrd->PosX + ptrd->XMin;
 			xt1 = ptrd->PosX + ptrd->XMax;
 			yt0 = ptrd->PosY + ptrd->YMin;
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index e180972eff6..11d5acf7402 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -116,8 +116,8 @@ void GameState::initEngineVars() {
 	_engine->_scene->_newHeroPos.y = 24 * SIZE_BRICK_Y;
 	_engine->_scene->_newHeroPos.z = 16 * SIZE_BRICK_XZ;
 
-	_engine->_scene->_currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
-	_engine->_scene->_needChangeScene = LBA1SceneId::Citadel_Island_Prison;
+	_engine->_scene->_numCube = SCENE_CEILING_GRID_FADE_1;
+	_engine->_scene->_newCube = LBA1SceneId::Citadel_Island_Prison;
 	_engine->_sceneLoopState = SceneLoopState::Continue;
 	_engine->_scene->_mecaPenguinIdx = -1;
 	_engine->_menuOptions->flagCredits = false;
@@ -185,7 +185,7 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
 	for (uint8 i = 0; i < numGameFlags; ++i) {
 		setGameFlag(i, file->readByte());
 	}
-	_engine->_scene->_needChangeScene = file->readByte(); // scene index
+	_engine->_scene->_newCube = file->readByte(); // scene index
 	setChapter(file->readByte());
 
 	_engine->_actor->_heroBehaviour = (HeroBehaviourType)file->readByte();
@@ -227,7 +227,7 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
 		file->readUint32LE();
 	}
 
-	_engine->_scene->_currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
+	_engine->_scene->_numCube = SCENE_CEILING_GRID_FADE_1;
 	_engine->_scene->_heroPositionType = ScenePositionType::kReborn;
 	return true;
 }
@@ -242,7 +242,7 @@ bool GameState::saveGame(Common::WriteStream *file) {
 		Common::strlcpy(_engine->_menuOptions->_saveGameName, "TwinEngineSave", sizeof(_engine->_menuOptions->_saveGameName));
 	}
 
-	int32 sceneIdx = _engine->_scene->_currentSceneIdx;
+	int32 sceneIdx = _engine->_scene->_numCube;
 	if (sceneIdx == Polar_Island_end_scene || sceneIdx == Citadel_Island_end_sequence_1 || sceneIdx == Citadel_Island_end_sequence_2 || sceneIdx == Credits_List_Sequence) {
 		/* inventoryMagicPoints = 0x50 */
 		/* herobehaviour = 0 */
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index fa7d9c9ce0d..8bcc0249b80 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -792,7 +792,7 @@ ShapeType Grid::worldColBrickFull(int32 x, int32 y, int32 z, int32 y2, int32 act
 					const BlockDataEntry *blockPtr = getAdrBlock(block, 0);
 					if (blockPtr->brickType == WATER_BRICK) {
 						// Special check mount funfrock
-						if (_engine->_scene->_currentSceneIdx != LBA1SceneId::Polar_Island_on_the_rocky_peak) {
+						if (_engine->_scene->_numCube != LBA1SceneId::Polar_Island_on_the_rocky_peak) {
 							// full collision
 							return ShapeType::kSolid;
 						}
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 25569cd13be..d73f339cd25 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -441,7 +441,7 @@ bool Scene::loadSceneLBA1() {
 	}
 
 	if (_enableEnhancements) {
-		switch (_currentSceneIdx) {
+		switch (_numCube) {
 		case LBA1SceneId::Hamalayi_Mountains_landing_place:
 			_sceneActors[21]._posObj.x = _sceneActors[21]._oldPos.x = 6656 + 256;
 			_sceneActors[21]._posObj.z = _sceneActors[21]._oldPos.z = 768;
@@ -475,7 +475,7 @@ bool Scene::loadSceneLBA1() {
 	return true;
 }
 
-bool Scene::initScene(int32 index) {
+bool Scene::loadScene(int32 index) {
 	// load scene from file
 	if (_engine->isLBA2()) {
 		index++;
@@ -510,11 +510,11 @@ void Scene::clearScene() {
 }
 
 void Scene::reloadCurrentScene() {
-	_needChangeScene = _currentSceneIdx;
+	_newCube = _numCube;
 }
 
 void Scene::dumpSceneScript(const char *type, int actorIdx, const uint8* script, int size) const {
-	Common::String fname = Common::String::format("./dumps/%i-%i.%s", _currentSceneIdx, actorIdx, type);
+	Common::String fname = Common::String::format("./dumps/%i-%i.%s", _numCube, actorIdx, type);
 	Common::DumpFile out;
 	if (!out.open(fname.c_str(), true)) {
 		warning("Scene::dumpSceneScript(): Can not open dump file %s", fname.c_str());
@@ -536,7 +536,7 @@ void Scene::dumpSceneScripts() const {
 void Scene::changeCube() {
 	if (_engine->isLBA1()) {
 		if (_enableEnhancements) {
-			if (_currentSceneIdx == LBA1SceneId::Citadel_Island_Harbor && _needChangeScene == LBA1SceneId::Principal_Island_Harbor) {
+			if (_numCube == LBA1SceneId::Citadel_Island_Harbor && _newCube == LBA1SceneId::Principal_Island_Harbor) {
 				if (_sceneNumZones >= 15 && _sceneNumTracks >= 8) {
 					const ZoneStruct *zone = &_sceneZones[15];
 					const IVec3 &track = _sceneTracks[8];
@@ -551,26 +551,26 @@ void Scene::changeCube() {
 		}
 
 		// change twinsen house destroyed hard-coded
-		if (_needChangeScene == LBA1SceneId::Citadel_Island_near_twinsens_house && _engine->_gameState->hasOpenedFunfrocksSafe()) {
-			_needChangeScene = LBA1SceneId::Citadel_Island_Twinsens_house_destroyed;
+		if (_newCube == LBA1SceneId::Citadel_Island_near_twinsens_house && _engine->_gameState->hasOpenedFunfrocksSafe()) {
+			_newCube = LBA1SceneId::Citadel_Island_Twinsens_house_destroyed;
 		}
 	}
 
 	// local backup previous scene
-	_previousSceneIdx = _currentSceneIdx;
-	_currentSceneIdx = _needChangeScene;
+	_oldcube = _numCube;
+	_numCube = _newCube;
 
-	snprintf(_engine->_gameState->_sceneName, sizeof(_engine->_gameState->_sceneName), "%i %s", _currentSceneIdx, _engine->_holomap->getLocationName(_currentSceneIdx));
-	debug(2, "Entering scene %s (came from %i)", _engine->_gameState->_sceneName, _previousSceneIdx);
+	snprintf(_engine->_gameState->_sceneName, sizeof(_engine->_gameState->_sceneName), "%i %s", _numCube, _engine->_holomap->getLocationName(_numCube));
+	debug(2, "Entering scene %s (came from %i)", _engine->_gameState->_sceneName, _oldcube);
 
 	if (_engine->isLBA1()) {
-		if (_needChangeScene == LBA1SceneId::Polar_Island_end_scene) {
+		if (_newCube == LBA1SceneId::Polar_Island_end_scene) {
 			_engine->unlockAchievement("LBA_ACH_001");
 			// if you finish the game in less than 4 hours
 			if (_engine->getTotalPlayTime() <= 1000 * 60 * 60 * 4) {
 				_engine->unlockAchievement("LBA_ACH_005");
 			}
-		} else if (_needChangeScene == LBA1SceneId::Brundle_Island_Secret_room) {
+		} else if (_newCube == LBA1SceneId::Brundle_Island_Secret_room) {
 			_engine->unlockAchievement("LBA_ACH_006");
 		}
 	}
@@ -586,23 +586,23 @@ void Scene::changeCube() {
 	_sceneHero->_offsetTrack = -1;
 	_sceneHero->_labelTrack = -1;
 
-	initScene(_needChangeScene);
+	loadScene(_newCube);
 	if (ConfMan.getBool("dump_scripts")) {
 		dumpSceneScripts();
 	}
 
-	if (_holomapTrajectory != -1) {
+	if (_numHolomapTraj != -1) {
 		_engine->testRestoreModeSVGA(false);
-		_engine->_holomap->drawHolomapTrajectory(_holomapTrajectory);
-		_holomapTrajectory = -1;
+		_engine->_holomap->drawHolomapTrajectory(_numHolomapTraj);
+		_numHolomapTraj = -1;
 	}
 
-	if (_needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_1 || _needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_2) {
+	if (_newCube == LBA1SceneId::Citadel_Island_end_sequence_1 || _newCube == LBA1SceneId::Citadel_Island_end_sequence_2) {
 		_sceneTextBank = TextBankId::Tippet_Island;
 	}
 
 	_engine->_text->initSceneTextBank();
-	_engine->_grid->initGrid(_needChangeScene);
+	_engine->_grid->initGrid(_newCube);
 
 	if (_heroPositionType == ScenePositionType::kZone) {
 		_newHeroPos = _zoneHeroPos;
@@ -615,7 +615,7 @@ void Scene::changeCube() {
 
 	_engine->_renderer->setLightVector(_alphaLight, _betaLight, LBAAngles::ANGLE_0);
 
-	if (_previousSceneIdx != SCENE_CEILING_GRID_FADE_1 && _previousSceneIdx != _needChangeScene) {
+	if (_oldcube != SCENE_CEILING_GRID_FADE_1 && _oldcube != _newCube) {
 		_engine->_actor->_previousHeroBehaviour = _engine->_actor->_heroBehaviour;
 		_engine->_actor->_previousHeroAngle = _sceneHero->_beta;
 		_engine->autoSave();
@@ -640,13 +640,13 @@ void Scene::changeCube() {
 	_engine->_screens->_flagFade = false;
 	_engine->_renderer->setLightVector(_alphaLight, _betaLight, LBAAngles::ANGLE_0);
 
-	_needChangeScene = SCENE_CEILING_GRID_FADE_1;
+	_newCube = SCENE_CEILING_GRID_FADE_1;
 	_enableGridTileRendering = true;
 	_heroPositionType = ScenePositionType::kNoPosition;
 	_zoneHeroPos = IVec3();
 	_sampleAmbienceTime = 0;
 
-	debug(2, "Scene %i music track id: %i", _currentSceneIdx, _cubeJingle);
+	debug(2, "Scene %i music track id: %i", _numCube, _cubeJingle);
 	if (_cubeJingle != 255) {
 		_engine->_music->playMusic(_cubeJingle);
 	}
@@ -683,7 +683,7 @@ void Scene::initSceneVars() {
 
 void Scene::playSceneMusic() {
 	if (_engine->isLBA1()) {
-		if (_currentSceneIdx == LBA1SceneId::Tippet_Island_Twinsun_Cafe && _engine->_gameState->hasArrivedHamalayi()) {
+		if (_numCube == LBA1SceneId::Tippet_Island_Twinsun_Cafe && _engine->_gameState->hasArrivedHamalayi()) {
 			if (_engine->isCDROM()) {
 				_engine->_music->playCdTrack(8);
 			} else {
@@ -775,7 +775,7 @@ void Scene::checkZoneSce(int32 actorIdx) {
 				error("lba2 zone types not yet implemented");
 			case ZoneType::kCube:
 				if (IS_HERO(actorIdx) && actor->_lifePoint > 0) {
-					_needChangeScene = zone->num;
+					_newCube = zone->num;
 					_zoneHeroPos.x = actor->_posObj.x - zone->mins.x + zone->infoData.ChangeScene.x;
 					_zoneHeroPos.y = actor->_posObj.y - zone->mins.y + zone->infoData.ChangeScene.y;
 					_zoneHeroPos.z = actor->_posObj.z - zone->mins.z + zone->infoData.ChangeScene.z;
diff --git a/engines/twine/scene/scene.h b/engines/twine/scene/scene.h
index 7c1590064ce..465a5252f9e 100644
--- a/engines/twine/scene/scene.h
+++ b/engines/twine/scene/scene.h
@@ -127,7 +127,7 @@ private:
 	bool loadSceneLBA2();
 
 	/** Initialize new scene */
-	bool initScene(int32 index);
+	bool loadScene(int32 index);
 	/** Reset scene */
 	void clearScene();
 
@@ -163,13 +163,13 @@ public:
 	Scene(TwinEEngine *engine) : _engine(engine) {}
 	~Scene();
 
-	int32 _needChangeScene = LBA1SceneId::Citadel_Island_Prison;
-	int32 _currentSceneIdx = LBA1SceneId::Citadel_Island_Prison; // NumCube
-	int32 _previousSceneIdx = LBA1SceneId::Citadel_Island_Prison;
+	int32 _newCube = LBA1SceneId::Citadel_Island_Prison;
+	int32 _numCube = LBA1SceneId::Citadel_Island_Prison; // NumCube
+	int32 _oldcube = LBA1SceneId::Citadel_Island_Prison;
 
 	int32 _planet = -1;
 
-	int32 _holomapTrajectory = -1;
+	int32 _numHolomapTraj = -1;
 
 	TextBankId _sceneTextBank = TextBankId::None;
 	int32 _alphaLight = 0;
diff --git a/engines/twine/script/script_life.cpp b/engines/twine/script/script_life.cpp
index c8408401c33..322939ca282 100644
--- a/engines/twine/script/script_life.cpp
+++ b/engines/twine/script/script_life.cpp
@@ -922,7 +922,7 @@ int32 ScriptLife::lMESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
 
 	engine->_text->drawTextProgressive(textIdx);
 	if (engine->isLBA1()) {
-		if (engine->_scene->_currentSceneIdx == LBA1SceneId::Principal_Island_Library && engine->_scene->_talkingActor == 8 && textIdx == TextId::kStarWarsFanBoy) {
+		if (engine->_scene->_numCube == LBA1SceneId::Principal_Island_Library && engine->_scene->_talkingActor == 8 && textIdx == TextId::kStarWarsFanBoy) {
 			engine->unlockAchievement("LBA_ACH_008");
 		}
 	}
@@ -1314,7 +1314,7 @@ int32 ScriptLife::lGIVE_BONUS(TwinEEngine *engine, LifeScriptContext &ctx) {
 int32 ScriptLife::lCHANGE_CUBE(TwinEEngine *engine, LifeScriptContext &ctx) {
 	const int32 sceneIdx = ctx.stream.readByte();
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::CHANGE_CUBE(%i)", (int)sceneIdx);
-	engine->_scene->_needChangeScene = sceneIdx;
+	engine->_scene->_newCube = sceneIdx;
 	engine->_scene->_heroPositionType = ScenePositionType::kScene;
 	return 0;
 }
@@ -1415,7 +1415,7 @@ int32 ScriptLife::lPOS_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
 	const int32 trackIdx = ctx.stream.readByte();
 	debugC(3, kDebugLevels::kDebugScripts, "LIFE::POS_POINT(%i)", (int)trackIdx);
 	if (engine->_scene->_enableEnhancements) {
-		if (IS_HERO(ctx.actorIdx) && engine->_scene->_currentSceneIdx == LBA1SceneId::Citadel_Island_Harbor && trackIdx == 8) {
+		if (IS_HERO(ctx.actorIdx) && engine->_scene->_numCube == LBA1SceneId::Citadel_Island_Harbor && trackIdx == 8) {
 			ctx.stream.rewind(2);
 			ctx.stream.writeByte(0x34); // CHANGE_CUBE
 			ctx.stream.writeByte(LBA1SceneId::Principal_Island_Harbor);
@@ -1935,8 +1935,8 @@ int32 ScriptLife::lANIM_SET(TwinEEngine *engine, LifeScriptContext &ctx) {
  * @note Opcode @c 0x60
  */
 int32 ScriptLife::lHOLOMAP_TRAJ(TwinEEngine *engine, LifeScriptContext &ctx) {
-	engine->_scene->_holomapTrajectory = ctx.stream.readByte();
-	debugC(3, kDebugLevels::kDebugScripts, "LIFE::HOLOMAP_TRAJ(%i)", (int)engine->_scene->_holomapTrajectory);
+	engine->_scene->_numHolomapTraj = ctx.stream.readByte();
+	debugC(3, kDebugLevels::kDebugScripts, "LIFE::HOLOMAP_TRAJ(%i)", (int)engine->_scene->_numHolomapTraj);
 	return 0;
 }
 
@@ -1963,7 +1963,7 @@ int32 ScriptLife::lTHE_END(TwinEEngine *engine, LifeScriptContext &ctx) {
 	engine->_scene->_sceneHero->setLife(engine->getMaxLife());
 	engine->_gameState->setMagicPoints(80);
 	// TODO: lba2 has a different ending
-	engine->_scene->_currentSceneIdx = LBA1SceneId::Polar_Island_Final_Battle;
+	engine->_scene->_numCube = LBA1SceneId::Polar_Island_Final_Battle;
 	engine->_actor->_heroBehaviour = engine->_actor->_previousHeroBehaviour;
 	engine->_scene->_newHeroPos.x = -1;
 	engine->_scene->_sceneHero->_beta = engine->_actor->_previousHeroAngle;
diff --git a/engines/twine/script/script_move.cpp b/engines/twine/script/script_move.cpp
index 00a45a257ea..314d763bd96 100644
--- a/engines/twine/script/script_move.cpp
+++ b/engines/twine/script/script_move.cpp
@@ -185,7 +185,7 @@ int32 ScriptMove::mLABEL(TwinEEngine *engine, MoveScriptContext &ctx) {
 	ctx.actor->_labelTrack = ctx.stream.readByte();
 	ctx.actor->_offsetLabelTrack = ctx.stream.pos() - 2;
 	debugC(3, kDebugLevels::kDebugScripts, "MOVE::LABEL(%i)", (int)ctx.actor->_labelTrack);
-	if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 2 &&
+	if (engine->_scene->_numCube == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 2 &&
 		(ctx.actor->_labelTrack == 0 || ctx.actor->_labelTrack == 1)) {
 		engine->unlockAchievement("LBA_ACH_004");
 	}
@@ -414,7 +414,7 @@ int32 ScriptMove::mOPEN_GENERIC(TwinEEngine *engine, MoveScriptContext &ctx, int
 		ctx.actor->_speed = 1000;
 		engine->_movements->setActorAngle(LBAAngles::ANGLE_0, LBAAngles::ANGLE_351, LBAAngles::ANGLE_17, &ctx.actor->realAngle);
 	}
-	if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 16) {
+	if (engine->_scene->_numCube == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 16) {
 		engine->unlockAchievement("LBA_ACH_009");
 	}
 	return 0;
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index ac2f6227d32..97a057c6110 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -330,7 +330,7 @@ Common::Error TwinEEngine::run() {
 			_text->normalWinDial();
 			_text->_flagMessageShade = true;
 			_text->_renderTextTriangle = false;
-			_scene->_needChangeScene = sceneIndex;
+			_scene->_newCube = sceneIndex;
 			_scene->_heroPositionType = ScenePositionType::kScene;
 			_state = EngineState::GameLoop;
 		}
@@ -866,10 +866,10 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 		_queuedFlaMovie.clear();
 	}
 
-	if (_scene->_needChangeScene > -1) {
+	if (_scene->_newCube > -1) {
 		if (!isMod() && isDemo() && isLBA1()) {
 			// the demo only has these scenes
-			if (_scene->_needChangeScene != LBA1SceneId::Citadel_Island_Prison && _scene->_needChangeScene != LBA1SceneId::Citadel_Island_outside_the_citadel && _scene->_needChangeScene != LBA1SceneId::Citadel_Island_near_the_tavern) {
+			if (_scene->_newCube != LBA1SceneId::Citadel_Island_Prison && _scene->_newCube != LBA1SceneId::Citadel_Island_outside_the_citadel && _scene->_newCube != LBA1SceneId::Citadel_Island_near_the_tavern) {
 				_music->playMidiFile(6);
 				return true;
 			}
@@ -1131,7 +1131,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 					if (_gameState->_inventoryNumLeafs > 0) { // use clover leaf automaticaly
 						_scene->_sceneHero->_posObj = _scene->_newHeroPos;
 
-						_scene->_needChangeScene = _scene->_currentSceneIdx;
+						_scene->_newCube = _scene->_numCube;
 						_gameState->setMaxMagicPoints();
 
 						_grid->centerOnActor(_scene->_sceneHero);
@@ -1151,11 +1151,11 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 						actor->_beta = _actor->_previousHeroAngle;
 						actor->setLife(getMaxLife());
 
-						if (_scene->_previousSceneIdx != _scene->_currentSceneIdx) {
+						if (_scene->_oldcube != _scene->_numCube) {
 							_scene->_newHeroPos.x = -1;
 							_scene->_newHeroPos.y = -1;
 							_scene->_newHeroPos.z = -1;
-							_scene->_currentSceneIdx = _scene->_previousSceneIdx;
+							_scene->_numCube = _scene->_oldcube;
 							_scene->stopRunningGame();
 						}
 
@@ -1173,7 +1173,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 			}
 		}
 
-		if (_scene->_needChangeScene != -1) {
+		if (_scene->_newCube != -1) {
 			return false;
 		}
 	}
@@ -1189,7 +1189,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 		_scene->_sceneHero->_staticFlags.bIsInvisible = 0;
 	}
 
-	_scene->_needChangeScene = SCENE_CEILING_GRID_FADE_1;
+	_scene->_newCube = SCENE_CEILING_GRID_FADE_1;
 	_redraw->_firstTime = false;
 
 	return false;


Commit: 3417916cdd42bb3dbfe2060afe5bb2e2c9b21c40
    https://github.com/scummvm/scummvm/commit/3417916cdd42bb3dbfe2060afe5bb2e2c9b21c40
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-10-09T11:48:19+02:00

Commit Message:
TWINE: extended debugger to show the current active palette

Changed paths:
    engines/twine/debugger/debug_state.h
    engines/twine/debugger/debugtools.cpp


diff --git a/engines/twine/debugger/debug_state.h b/engines/twine/debugger/debug_state.h
index 3ba45478130..512876a2d3c 100644
--- a/engines/twine/debugger/debug_state.h
+++ b/engines/twine/debugger/debug_state.h
@@ -89,6 +89,7 @@ public:
 	bool _sceneDetailsWindow = false;
 	bool _actorDetailsWindow = true;
 	bool _sceneFlagsWindow = false;
+	bool _paletteWindow = false;
 
 	bool _useFreeCamera = false;
 	bool _disableGridRendering = false;
diff --git a/engines/twine/debugger/debugtools.cpp b/engines/twine/debugger/debugtools.cpp
index 008265e1e6c..ddba9115b2c 100644
--- a/engines/twine/debugger/debugtools.cpp
+++ b/engines/twine/debugger/debugtools.cpp
@@ -26,6 +26,7 @@
 #include "common/str-enc.h"
 #include "common/str.h"
 #include "common/util.h"
+#include "graphics/palette.h"
 #include "twine/debugger/debug_state.h"
 #include "twine/debugger/dt-internal.h"
 #include "twine/holomap.h"
@@ -166,6 +167,58 @@ static void holomapFlagsWindow(TwinEEngine *engine) {
 	ImGui::End();
 }
 
+static void addColor(float startingPosX, uint index, const Graphics::Palette &palette) {
+	uint8 r, g, b;
+	palette.get(index, r, g, b);
+	const float borderWidth = 1.0f;
+	ImDrawList *drawList = ImGui::GetWindowDrawList();
+	const ImDrawListFlags backupFlags = drawList->Flags;
+	drawList->Flags &= ~ImDrawListFlags_AntiAliasedLines;
+	const ImVec2 available = ImGui::GetContentRegionAvail();
+	const float contentRegionWidth = available.x + ImGui::GetCursorPosX();
+	const ImVec2 colorButtonSize(ImGui::GetFrameHeight(), ImGui::GetFrameHeight());
+	ImVec2 globalCursorPos = ImGui::GetCursorScreenPos();
+	const ImVec2 &windowPos = ImGui::GetWindowPos();
+	const ImVec2 v1(globalCursorPos.x + borderWidth, globalCursorPos.y + borderWidth);
+	const ImVec2 v2(globalCursorPos.x + colorButtonSize.x, globalCursorPos.y + colorButtonSize.y);
+	drawList->AddRectFilled(v1, v2, IM_COL32(r, g, b, 255));
+
+	ImGui::PushID((int)index);
+	if (ImGui::InvisibleButton("", colorButtonSize)) {
+	}
+	ImGui::SetItemTooltip("Index: %i, R(%d), G(%d), B(%d)", (int)index, (int)r, (int)g, (int)b);
+	ImGui::PopID();
+
+	globalCursorPos.x += colorButtonSize.x;
+	if (globalCursorPos.x > windowPos.x + contentRegionWidth - colorButtonSize.x) {
+		globalCursorPos.x = startingPosX;
+		globalCursorPos.y += colorButtonSize.y;
+	}
+	ImGui::SetCursorScreenPos(globalCursorPos);
+	// restore the draw list flags from above
+	drawList->Flags = backupFlags;
+}
+
+static void paletteWindow(TwinEEngine *engine) {
+	if (!engine->_debugState->_paletteWindow) {
+		return;
+	}
+
+	const ImVec2 available = ImGui::GetContentRegionAvail();
+	const float contentRegionHeight = available.y + ImGui::GetCursorPosY();
+	const ImVec2 windowSize(10.0f * ImGui::GetFrameHeight(), contentRegionHeight);
+	ImGui::SetNextWindowSize(windowSize, ImGuiCond_FirstUseEver);
+
+	if (ImGui::Begin("Palette", &engine->_debugState->_paletteWindow)) {
+		const Graphics::Palette &palette = engine->_frontVideoBuffer.getPalette();
+		const ImVec2 &pos = ImGui::GetCursorScreenPos();
+		for (uint palettePanelIdx = 0; palettePanelIdx < palette.size(); ++palettePanelIdx) {
+			addColor(pos.x, palettePanelIdx, palette);
+		}
+	}
+	ImGui::End();
+}
+
 static void sceneFlagsWindow(TwinEEngine *engine) {
 	if (!engine->_debugState->_sceneFlagsWindow) {
 		return;
@@ -732,6 +785,9 @@ static void debuggerMenu(TwinEEngine *engine) {
 			actor->_posObj.y += 1000;
 		}
 		if (ImGui::BeginMenu("Palettes")) {
+			if (ImGui::MenuItem("Show palette")) {
+				engine->_debugState->_paletteWindow = true;
+			}
 			if (ImGui::MenuItem("Dark palette")) {
 				engine->_screens->setDarkPal();
 			}
@@ -802,6 +858,7 @@ void onImGuiRender() {
 	menuTextsWindow(engine);
 	holomapFlagsWindow(engine);
 	gameFlagsWindow(engine);
+	paletteWindow(engine);
 	sceneFlagsWindow(engine);
 
 	if (engine->_debugState->_openPopup) {




More information about the Scummvm-git-logs mailing list