[Scummvm-git-logs] scummvm master -> ca5d653810d6adf800c710babac8cbdfafcb1ce2

bluegr noreply at scummvm.org
Mon Jun 13 22:22:51 UTC 2022


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

Summary:
2bdf1deb31 CHEWY: Small refactoring in the parameters of load_tgp()
ca5d653810 CHEWY: Don't wait forever for the music to end while playing videos


Commit: 2bdf1deb31a6faca5c9898b221dfda2e665f4685
    https://github.com/scummvm/scummvm/commit/2bdf1deb31a6faca5c9898b221dfda2e665f4685
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-06-14T01:22:25+03:00

Commit Message:
CHEWY: Small refactoring in the parameters of load_tgp()

Changed paths:
    engines/chewy/dialogs/cinema.cpp
    engines/chewy/dialogs/credits.cpp
    engines/chewy/dialogs/files.cpp
    engines/chewy/dialogs/inventory.cpp
    engines/chewy/dialogs/options.cpp
    engines/chewy/room.cpp
    engines/chewy/room.h
    engines/chewy/t_event.cpp


diff --git a/engines/chewy/dialogs/cinema.cpp b/engines/chewy/dialogs/cinema.cpp
index f8cec6eed31..d6b0ee886a7 100644
--- a/engines/chewy/dialogs/cinema.cpp
+++ b/engines/chewy/dialogs/cinema.cpp
@@ -55,7 +55,7 @@ void Cinema::execute() {
 
 	_G(fontMgr)->setFont(_G(font6));
 
-	_G(room)->load_tgp(4, &_G(room_blk), 1, 0, GBOOK);
+	_G(room)->load_tgp(4, &_G(room_blk), 1, false, GBOOK);
 	showCur();
 	EVENTS_CLEAR;
 	g_events->_kbInfo._scanCode = 0;
diff --git a/engines/chewy/dialogs/credits.cpp b/engines/chewy/dialogs/credits.cpp
index f4c9d496de4..620a25c402e 100644
--- a/engines/chewy/dialogs/credits.cpp
+++ b/engines/chewy/dialogs/credits.cpp
@@ -196,7 +196,7 @@ void Credits::execute() {
 	int lineScrolled = 0;
 	int fontCol;
 
-	_G(room)->load_tgp(5, &_G(room_blk), 1, 0, GBOOK);
+	_G(room)->load_tgp(5, &_G(room_blk), 1, false, GBOOK);
 	_G(gameState).scrollx = 0;
 	_G(gameState).scrolly = 0;
 	_G(out)->setPointer((byte *)g_screen->getPixels());
diff --git a/engines/chewy/dialogs/files.cpp b/engines/chewy/dialogs/files.cpp
index b3d77c83d5b..72da8865cc8 100644
--- a/engines/chewy/dialogs/files.cpp
+++ b/engines/chewy/dialogs/files.cpp
@@ -57,7 +57,7 @@ bool Files::execute(bool isInGame) {
 	TafInfo *ti = _G(mem)->taf_adr(OPTION_TAF);
 	EVENTS_CLEAR;
 
-	_G(room)->load_tgp(1, &_G(room_blk), GBOOK_TGP, 0, GBOOK);
+	_G(room)->load_tgp(1, &_G(room_blk), GBOOK_TGP, false, GBOOK);
 	_G(out)->setPointer(_G(workptr));
 	_G(out)->map_spr2screen(_G(ablage)[_G(room_blk).AkAblage], 0, 0);
 	_G(out)->setPointer((byte *)g_screen->getPixels());
@@ -296,7 +296,7 @@ enter:
 
 	free(ti);
 
-	_G(room)->load_tgp(_G(gameState)._personRoomNr[P_CHEWY], &_G(room_blk), EPISODE1_TGP, GED_LOAD, EPISODE1);
+	_G(room)->load_tgp(_G(gameState)._personRoomNr[P_CHEWY], &_G(room_blk), EPISODE1_TGP, true, EPISODE1);
 
 	_G(fx_blend) = BLEND1;
 	_G(room)->set_ak_pal(&_G(room_blk));
diff --git a/engines/chewy/dialogs/inventory.cpp b/engines/chewy/dialogs/inventory.cpp
index db3a32f6021..4c41f6c441d 100644
--- a/engines/chewy/dialogs/inventory.cpp
+++ b/engines/chewy/dialogs/inventory.cpp
@@ -647,7 +647,7 @@ void Inventory::showDiary() {
 	_G(gameState).scrollx = 0;
 	_G(gameState).scrolly = 0;
 
-	_G(room)->load_tgp(DIARY_START, &_G(room_blk), GBOOK_TGP, 0, GBOOK);
+	_G(room)->load_tgp(DIARY_START, &_G(room_blk), GBOOK_TGP, false, GBOOK);
 	_G(out)->setPointer(_G(workptr));
 	_G(out)->map_spr2screen(_G(ablage)[_G(room_blk).AkAblage], _G(gameState).scrollx, _G(gameState).scrolly);
 	_G(out)->copyToScreen();
@@ -664,7 +664,7 @@ void Inventory::showDiary() {
 		SHOULD_QUIT_RETURN;
 	}
 
-	_G(room)->load_tgp(_G(gameState)._personRoomNr[P_CHEWY], &_G(room_blk), EPISODE1_TGP, GED_LOAD, EPISODE1);
+	_G(room)->load_tgp(_G(gameState)._personRoomNr[P_CHEWY], &_G(room_blk), EPISODE1_TGP, true, EPISODE1);
 	_G(gameState).scrollx = scrollx;
 	_G(gameState).scrolly = scrolly;
 	setupScreen(NO_SETUP);
diff --git a/engines/chewy/dialogs/options.cpp b/engines/chewy/dialogs/options.cpp
index 603b3789faf..e93f490d87d 100644
--- a/engines/chewy/dialogs/options.cpp
+++ b/engines/chewy/dialogs/options.cpp
@@ -47,7 +47,7 @@ namespace Dialogs {
 
 void Options::execute(TafInfo *ti) {
 	long akt_clock = 0, stop_clock = 0;
-	_G(room)->load_tgp(0, &_G(room_blk), GBOOK_TGP, 0, GBOOK);
+	_G(room)->load_tgp(0, &_G(room_blk), GBOOK_TGP, false, GBOOK);
 	_G(out)->setPointer(_G(workptr));
 	_G(out)->map_spr2screen(_G(ablage)[_G(room_blk).AkAblage], 0, 0);
 	_G(out)->setPointer((byte *)g_screen->getPixels());
@@ -249,7 +249,7 @@ void Options::execute(TafInfo *ti) {
 			--delay_count;
 	}
 
-	_G(room)->load_tgp(1, &_G(room_blk), GBOOK_TGP, 0, GBOOK);
+	_G(room)->load_tgp(1, &_G(room_blk), GBOOK_TGP, false, GBOOK);
 	_G(out)->setPointer(_G(workptr));
 	_G(out)->map_spr2screen(_G(ablage)[_G(room_blk).AkAblage], 0, 0);
 	_G(out)->setPointer((byte *)g_screen->getPixels());
diff --git a/engines/chewy/room.cpp b/engines/chewy/room.cpp
index 60adc671ba2..1d2b970922a 100644
--- a/engines/chewy/room.cpp
+++ b/engines/chewy/room.cpp
@@ -174,7 +174,7 @@ void Room::loadRoom(RaumBlk *Rb, int16 room_nr, GameState *player) {
 		Rb->DetKorrekt = Rb->Fti->correction;
 	}
 	_G(obj)->calc_all_static_detail();
-	load_tgp(_roomInfo->_imageNr, Rb, EPISODE1_TGP, GED_LOAD, EPISODE1);
+	load_tgp(_roomInfo->_imageNr, Rb, EPISODE1_TGP, true, EPISODE1);
 	set_pal(_ablagePal[Rb->AkAblage], Rb->LowPalMem);
 	calc_invent(Rb, player);
 
@@ -294,7 +294,7 @@ void Room::calc_invent(RaumBlk *Rb, GameState *player) {
 	delete spriteRes;
 }
 
-int16 Room::load_tgp(int16 nr, RaumBlk *Rb, int16 tgp_idx, int16 mode, const char *fileName) {
+int16 Room::load_tgp(int16 nr, RaumBlk *Rb, int16 tgp_idx, bool loadBarriers, const char *fileName) {
 	BackgroundResource *res = new BackgroundResource(fileName);
 	TBFChunk *img = res->getImage(nr, false);
 
@@ -312,9 +312,8 @@ int16 Room::load_tgp(int16 nr, RaumBlk *Rb, int16 tgp_idx, int16 mode, const cha
 		memcpy(_ablagePal[Rb->AkAblage], img->palette, 3 * 256);
 		set_ablage_info(Rb->AkAblage, nr + (1000 * tgp_idx), img->size);
 
-		if (mode == GED_LOAD) {
+		if (loadBarriers)
 			_barriers->init(nr, img->width, img->height);
-		}
 	}
 
 	delete img;
diff --git a/engines/chewy/room.h b/engines/chewy/room.h
index 12918a64239..5439a5684fc 100644
--- a/engines/chewy/room.h
+++ b/engines/chewy/room.h
@@ -37,7 +37,6 @@ extern const int16 SURIMY_TAF19_PHASES[4][2];
 #define MAX_ABLAGE 4
 
 #define ABLAGE_BLOCK_SIZE 64000l
-#define GED_LOAD 1
 
 class JungleRoom {
 protected:
@@ -79,7 +78,7 @@ public:
 	~Room();
 
 	void loadRoom(RaumBlk *Rb, int16 room_nr, GameState *player);
-	int16 load_tgp(int16 nr, RaumBlk *Rb, int16 tgp_idx, int16 mode, const char *fileName);
+	int16 load_tgp(int16 nr, RaumBlk *Rb, int16 tgp_idx, bool loadBarriers, const char *fileName);
 	byte *get_ablage(int16 nr);
 	byte **get_ablage();
 	void set_timer_start(int16 timer_start);
diff --git a/engines/chewy/t_event.cpp b/engines/chewy/t_event.cpp
index b015c7c02c3..38c9525a253 100644
--- a/engines/chewy/t_event.cpp
+++ b/engines/chewy/t_event.cpp
@@ -2168,7 +2168,7 @@ void calc_inv_use_txt(int16 test_nr) {
 		_G(gameState).scrollx = 0;
 		_G(gameState).scrolly = 0;
 
-		_G(room)->load_tgp(NOTEBOOK_START, &_G(room_blk), GBOOK_TGP, 0, GBOOK);
+		_G(room)->load_tgp(NOTEBOOK_START, &_G(room_blk), GBOOK_TGP, false, GBOOK);
 		_G(out)->setPointer(_G(workptr));
 		_G(out)->map_spr2screen(_G(ablage)[_G(room_blk).AkAblage], _G(gameState).scrollx, _G(gameState).scrolly);
 		_G(out)->copyToScreen();
@@ -2182,7 +2182,7 @@ void calc_inv_use_txt(int16 test_nr) {
 			SHOULD_QUIT_RETURN;
 		}
 
-		_G(room)->load_tgp(_G(gameState)._personRoomNr[P_CHEWY], &_G(room_blk), EPISODE1_TGP, GED_LOAD, EPISODE1);
+		_G(room)->load_tgp(_G(gameState)._personRoomNr[P_CHEWY], &_G(room_blk), EPISODE1_TGP, true, EPISODE1);
 
 		_G(gameState).scrollx = scrollx;
 		_G(gameState).scrolly = scrolly;


Commit: ca5d653810d6adf800c710babac8cbdfafcb1ce2
    https://github.com/scummvm/scummvm/commit/ca5d653810d6adf800c710babac8cbdfafcb1ce2
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-06-14T01:22:26+03:00

Commit Message:
CHEWY: Don't wait forever for the music to end while playing videos

Changed paths:
    engines/chewy/video/cfo_decoder.cpp


diff --git a/engines/chewy/video/cfo_decoder.cpp b/engines/chewy/video/cfo_decoder.cpp
index c0e498d7db6..1524c3bdc40 100644
--- a/engines/chewy/video/cfo_decoder.cpp
+++ b/engines/chewy/video/cfo_decoder.cpp
@@ -183,6 +183,7 @@ void CfoDecoder::CfoVideoTrack::handleCustomFrame() {
 	for (uint32 i = 0; i < chunkCount; ++i) {
 		uint32 frameSize = _fileStream->readUint32LE();
 		uint16 frameType = _fileStream->readUint16LE();
+		uint16 musicLoops = 0;
 
 		switch (frameType) {
 		case kChunkFadeIn:
@@ -235,7 +236,9 @@ void CfoDecoder::CfoVideoTrack::handleCustomFrame() {
 				while (g_system->getEventManager()->pollEvent(event)) {}	// ignore events
 				g_system->updateScreen();
 				g_system->delayMillis(10);
-			} while (_sound->isMusicActive());
+				// Await 100 loops (about 1 sec)
+				musicLoops++;
+			} while (_sound->isMusicActive() && musicLoops < 100);
 			break;
 		case kChunkSetMusicVolume:
 			volume = _fileStream->readUint16LE() * Audio::Mixer::kMaxChannelVolume / 63;




More information about the Scummvm-git-logs mailing list