[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