[Scummvm-git-logs] scummvm master -> 396b4fbd67578a05aa6871be555ebb0d2c81bca6

alxpnv noreply at scummvm.org
Wed Dec 1 10:33:20 UTC 2021


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

Summary:
c1e64b20c5 ASYLUM: fix chapter titles in load screens (French/German versions)
7868bbdd5d ASYLUM: fix garbage at the end of the credits (French/German versions)
396b4fbd67 ASYLUM: fix Load Game screen flickering


Commit: c1e64b20c53e444e90f9ddda69a37cf12db27a8d
    https://github.com/scummvm/scummvm/commit/c1e64b20c53e444e90f9ddda69a37cf12db27a8d
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-01T13:37:29+03:00

Commit Message:
ASYLUM: fix chapter titles in load screens (French/German versions)

Bug no. 13118

Changed paths:
    engines/asylum/views/scenetitle.cpp
    engines/asylum/views/scenetitle.h


diff --git a/engines/asylum/views/scenetitle.cpp b/engines/asylum/views/scenetitle.cpp
index 69ce0287eb..24250f6d58 100644
--- a/engines/asylum/views/scenetitle.cpp
+++ b/engines/asylum/views/scenetitle.cpp
@@ -37,6 +37,21 @@ namespace Asylum {
 
 SceneTitle::SceneTitle(AsylumEngine *engine): _vm(engine),
 	_start(0), _done(false), _spinnerFrameIndex(0), _spinnerProgress(0), _spinnerFrameCount(0) {
+
+	switch (_vm->getLanguage()) {
+	default:
+	case Common::EN_ANY:
+		_chapterTitlesOffset = 1811;
+		break;
+
+	case Common::DE_DEU:
+		_chapterTitlesOffset = 1734;
+		break;
+
+	case Common::FR_FRA:
+		_chapterTitlesOffset = 1715;
+		break;
+	}
 }
 
 void SceneTitle::load() {
@@ -65,7 +80,7 @@ void SceneTitle::update(int32 tick) {
 
 	getScreen()->draw(getWorld()->sceneTitleGraphicResourceId);
 	getScreen()->draw(MAKE_RESOURCE(kResourcePackSound, 17), _spinnerFrameIndex, Common::Point((int16)(((_spinnerProgress / 590.0) * 580.0) - 290), 0), kDrawFlagNone, false);
-	getText()->drawCentered(Common::Point(320, 30), 24, MAKE_RESOURCE(kResourcePackText, getWorld()->chapter + 1811));
+	getText()->drawCentered(Common::Point(320, 30), 24, MAKE_RESOURCE(kResourcePackText, getWorld()->chapter + _chapterTitlesOffset));
 	getScreen()->copyBackBufferToScreen();
 
 	// This is not from the original. It's just some arbitrary math to throttle the progress indicator.
diff --git a/engines/asylum/views/scenetitle.h b/engines/asylum/views/scenetitle.h
index 4e26b1eeca..e361b7a02c 100644
--- a/engines/asylum/views/scenetitle.h
+++ b/engines/asylum/views/scenetitle.h
@@ -48,6 +48,7 @@ private:
 	uint32 _spinnerFrameIndex;
 	int32  _spinnerProgress;
 	uint32 _spinnerFrameCount;
+	uint32 _chapterTitlesOffset;
 };
 
 } // End of namespace Asylum


Commit: 7868bbdd5d6ad6db043d50ac3ac4fd4b67e850f6
    https://github.com/scummvm/scummvm/commit/7868bbdd5d6ad6db043d50ac3ac4fd4b67e850f6
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-01T13:37:29+03:00

Commit Message:
ASYLUM: fix garbage at the end of the credits (French/German versions)

Bug no. 13118

Changed paths:
    engines/asylum/views/menu.cpp
    engines/asylum/views/menu.h


diff --git a/engines/asylum/views/menu.cpp b/engines/asylum/views/menu.cpp
index 8147bfbbba..9f2c0168a2 100644
--- a/engines/asylum/views/menu.cpp
+++ b/engines/asylum/views/menu.cpp
@@ -67,7 +67,6 @@ Menu::Menu(AsylumEngine *vm): _vm(vm) {
 	_dword_456288 = 0;
 	_caretBlink = 0;
 	_startIndex = 0;
-	_creditsFrameIndex = 0;
 	_showMovie = false;
 	memset(&_iconFrames, 0, sizeof(_iconFrames));
 
@@ -79,6 +78,23 @@ Menu::Menu(AsylumEngine *vm): _vm(vm) {
 	// Savegames
 	_prefixWidth = 0;
 	_loadingDuringStartup = false;
+
+	// Credits
+	_creditsFrameIndex = 0;
+	switch (_vm->getLanguage()) {
+	default:
+	case Common::EN_ANY:
+		_creditsNumSteps = 8688;
+		break;
+
+	case Common::DE_DEU:
+		_creditsNumSteps = 6840;
+		break;
+
+	case Common::FR_FRA:
+		_creditsNumSteps = 6384;
+		break;
+	}
 }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1586,7 +1602,7 @@ void Menu::updateShowCredits() {
 
 		step += 24;
 		++index;
-	} while (step < 8688);
+	} while (step < _creditsNumSteps);
 
 	if (_vm->isGameFlagSet(kGameFlagFinishGame)) {
 		if (!_dword_455D4C && !getSound()->isPlaying(MAKE_RESOURCE(kResourcePackShared, 56))) {
@@ -1597,7 +1613,7 @@ void Menu::updateShowCredits() {
 	}
 
 	_startIndex -= 2;
-	if (_startIndex < -8712)   // 8688 + 24
+	if (_startIndex < -(_creditsNumSteps + 24))
 		closeCredits();
 }
 
diff --git a/engines/asylum/views/menu.h b/engines/asylum/views/menu.h
index 4cb7329028..00e3a4205a 100644
--- a/engines/asylum/views/menu.h
+++ b/engines/asylum/views/menu.h
@@ -117,6 +117,7 @@ private:
 	int32            _caretBlink;
 	int32            _startIndex;
 	int32            _creditsFrameIndex;
+	int32            _creditsNumSteps;
 	bool             _showMovie;
 	uint32           _iconFrames[12];
 


Commit: 396b4fbd67578a05aa6871be555ebb0d2c81bca6
    https://github.com/scummvm/scummvm/commit/396b4fbd67578a05aa6871be555ebb0d2c81bca6
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-01T13:37:29+03:00

Commit Message:
ASYLUM: fix Load Game screen flickering

Bug no. 13108

Changed paths:
    engines/asylum/views/menu.cpp
    engines/asylum/views/menu.h


diff --git a/engines/asylum/views/menu.cpp b/engines/asylum/views/menu.cpp
index 9f2c0168a2..31eaa7c42b 100644
--- a/engines/asylum/views/menu.cpp
+++ b/engines/asylum/views/menu.cpp
@@ -735,6 +735,14 @@ void Menu::updateNewGame() {
 	getText()->draw(MAKE_RESOURCE(kResourcePackText, 1323));
 }
 
+void Menu::adjustCoordinates(Common::Point &point) {
+	if (!g_system->isOverlayVisible())
+		return;
+
+	point.x *= 640.0 / g_system->getOverlayWidth();
+	point.y *= 480.0 / g_system->getOverlayHeight();
+}
+
 bool Menu::hasThumbnail(int index) {
 	if (getSaveLoad()->hasSavegame(index + _startIndex))
 		return _vm->getMetaEngine()->querySaveMetaInfos(_vm->getTargetName().c_str(), index + _startIndex).getThumbnail();
@@ -758,7 +766,14 @@ void Menu::showThumbnail(int index) {
 	overlay.create(overlayWidth, overlayHeight, overlayFormat);
 	if (!g_system->hasFeature(OSystem::kFeatureOverlaySupportsAlpha)) {
 		Graphics::Surface *screen = getScreen()->getSurface().convertTo(overlayFormat, getScreen()->getPalette());
-		overlay.copyRectToSurface(screen->getPixels(), screen->pitch, 0, 0, 640, 480);
+		if (screen->w != overlayWidth || screen->h != overlayHeight) {
+			Graphics::Surface *screen1 = screen->scale(overlayWidth, overlayHeight);
+			overlay.copyRectToSurface(screen1->getPixels(), screen1->pitch, 0, 0, screen1->w, screen1->h);
+			screen1->free();
+			delete screen1;
+		} else {
+			overlay.copyRectToSurface(screen->getPixels(), screen->pitch, 0, 0, 640, 480);
+		}
 		screen->free();
 		delete screen;
 	}
@@ -776,14 +791,7 @@ void Menu::showThumbnail(int index) {
 
 void Menu::updateLoadGame() {
 	Common::Point cursor = getCursor()->position();
-
-	if (g_system->isOverlayVisible()
-	 && g_system->getFeatureState(OSystem::kFeatureFullscreenMode)
-	 && ConfMan.get("gfx_mode") == "opengl") {
-
-		cursor.x *= 640.0 / g_system->getOverlayWidth();
-		cursor.y *= 480.0 / g_system->getOverlayHeight();
-	}
+	adjustCoordinates(cursor);
 
 	char text[100];
 
@@ -1639,14 +1647,7 @@ void Menu::clickNewGame() {
 
 void Menu::clickLoadGame() {
 	Common::Point cursor = getCursor()->position();
-
-	if (g_system->isOverlayVisible()
-	 && g_system->getFeatureState(OSystem::kFeatureFullscreenMode)
-	 && ConfMan.get("gfx_mode") == "opengl") {
-
-		cursor.x *= 640.0 / g_system->getOverlayWidth();
-		cursor.y *= 480.0 / g_system->getOverlayHeight();
-	}
+	adjustCoordinates(cursor);
 
 	g_system->hideOverlay();
 
diff --git a/engines/asylum/views/menu.h b/engines/asylum/views/menu.h
index 00e3a4205a..9953c7aecc 100644
--- a/engines/asylum/views/menu.h
+++ b/engines/asylum/views/menu.h
@@ -208,6 +208,7 @@ private:
 	bool click(const AsylumEvent &evt);
 
 	// Thumbnails
+	void adjustCoordinates(Common::Point &point);
 	bool hasThumbnail(int index);
 	void showThumbnail(int index);
 




More information about the Scummvm-git-logs mailing list