[Scummvm-git-logs] scummvm master -> 4b72eac24c45879dd18942039b124c2b672c8be4

mduggan mgithub at guarana.org
Sun Apr 25 04:43:15 UTC 2021


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

Summary:
79d61a59a2 ULTIMA8: Correct intrinsic count for Remorse
b499093e20 ULTIMA8: Handle missing subtitles gracefully
6215ebd8a4 ULTIMA8: Wire up more Remorse movie intrinsics
4b72eac24c ULTIMA8: Refine when to ignore waitFor


Commit: 79d61a59a291cd5c5df3a2a96a6cf43ea6f755dd
    https://github.com/scummvm/scummvm/commit/79d61a59a291cd5c5df3a2a96a6cf43ea6f755dd
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-25T13:01:43+09:00

Commit Message:
ULTIMA8: Correct intrinsic count for Remorse

Changed paths:
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 7801415111..890abc3c61 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -354,7 +354,7 @@ bool Ultima8Engine::startupGame() {
 	if (_gameInfo->_type == GameInfo::GAME_U8) {
 		_ucMachine = new UCMachine(U8Intrinsics, 256);
 	} else if (_gameInfo->_type == GameInfo::GAME_REMORSE) {
-		_ucMachine = new UCMachine(RemorseIntrinsics, 308);
+		_ucMachine = new UCMachine(RemorseIntrinsics, 311);
 	} else if (_gameInfo->_type == GameInfo::GAME_REGRET) {
 		_ucMachine = new UCMachine(RegretIntrinsics, 350);
 	} else {


Commit: b499093e205d4629d24d14b39d88d2790f6db490
    https://github.com/scummvm/scummvm/commit/b499093e205d4629d24d14b39d88d2790f6db490
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-25T13:02:05+09:00

Commit Message:
ULTIMA8: Handle missing subtitles gracefully

Changed paths:
    engines/ultima/ultima8/gumps/movie_gump.cpp


diff --git a/engines/ultima/ultima8/gumps/movie_gump.cpp b/engines/ultima/ultima8/gumps/movie_gump.cpp
index c310689c83..4c76525ba5 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.cpp
+++ b/engines/ultima/ultima8/gumps/movie_gump.cpp
@@ -157,6 +157,9 @@ ProcId MovieGump::U8MovieViewer(Common::SeekableReadStream *rs, bool fade, bool
 }
 
 void MovieGump::loadSubtitles(Common::SeekableReadStream *rs) {
+	if (!rs)
+		return;
+
 	const uint32 id = rs->readUint32BE();
 	rs->seek(0);
 


Commit: 6215ebd8a45d1ed620d2255121c6863067ef48e5
    https://github.com/scummvm/scummvm/commit/6215ebd8a45d1ed620d2255121c6863067ef48e5
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-25T13:02:35+09:00

Commit Message:
ULTIMA8: Wire up more Remorse movie intrinsics

Changed paths:
    engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
    engines/ultima/ultima8/usecode/remorse_intrinsics.h


diff --git a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
index 95954ecb6e..3915623f6e 100644
--- a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
+++ b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
@@ -196,7 +196,7 @@ const char* const ConvertUsecodeCrusader::_intrinsics[] = {
 	// 0090
 	"void MusicProcess::I_stopMusic(void)",
 	"void I_setSomeMovieGlobal(void)", // sets some global (cleared by 93)
-	"void I_playFlic092(char *)", // same coff as 0A9
+	"void I_playMovieCutsceneFullscreen(char *)", // same coff as 0A9
 	"void I_clearSomeMovieGlobal(void)", // clears some global (set by 91)
 	"void Game::I_playCredits(void)",
 	"byte Kernel::I_getCurrentKeyDown(void)", // get global - something about keyboard (by disasm)
@@ -220,7 +220,7 @@ const char* const ConvertUsecodeCrusader::_intrinsics[] = {
 	"int16 I_getAnimationsDisabled(void)", // From disasm. Not implemented, that's ok..
 	"int16 Egg::I_getEggXRange(Egg *)", // based on disasm
 	"void Actor::I_setDead(Actor *)", // part of same coff set 021, 060, 073, 0A0, 0A8, 0D8, 0E7, 135
-	"void I_playFlic0A9(char *)", // same coff as 092
+	"void I_playMovieCutsceneFullscreen(char *)", // same coff as 092
 	"void AudioProcess::I_playSFX(2 bytes)", // same coff as 0D4
 	"byte Actor::I_getField0x59Bit1(Actor *)",
 	"int16 Item::I_getFamilyOfType(Item *)", // per pentagram notes, matches disasm.
diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index 2d1468e265..a84cf0343e 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -190,7 +190,7 @@ Intrinsic RemorseIntrinsics[] = {
 	// 0x090
 	MusicProcess::I_stopMusic, // void Intrinsic090(void)
 	0, // void Intrinsic091(void)
-	0, // TODO: I_playFlic(char *)? void Intrinsic092(void)
+	MovieGump::I_playMovieCutsceneAlt, // TODO: not exactly the same, Alt includes a fade.
 	0, // void Intrinsic093(void)
 	Game::I_playCredits, // TODO: Implement this
 	Ultima8Engine::I_moveKeyDownRecently,
@@ -214,7 +214,7 @@ Intrinsic RemorseIntrinsics[] = {
 	0, // TODO: I_getAnimationsDisabled -> default to 0 (fine for now..)
 	Egg::I_getEggXRange, // void Intrinsic0A7(4 bytes)
 	Actor::I_setDead,
-	0, // I_playFlic(char *) Intrinsic0A9(void)
+	MovieGump::I_playMovieCutsceneAlt, // TODO: not exactly the same, Alt includes a fade.
 	AudioProcess::I_playSFX, // void Intrinsic0AA(2 bytes)
 	0, // int Actor::I_getFlag0x59Field1  Intrinsic0AB(4 bytes)
 	Item::I_getFamilyOfType, // void Intrinsic0AC(2 bytes)


Commit: 4b72eac24c45879dd18942039b124c2b672c8be4
    https://github.com/scummvm/scummvm/commit/4b72eac24c45879dd18942039b124c2b672c8be4
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-25T13:40:52+09:00

Commit Message:
ULTIMA8: Refine when to ignore waitFor

Waiting for PROC_TERM_DEFERRED processes is fine and needed for compatibility -
they will still notify other processes when they actually terminate.  Only
ignore the waitFor on processes which have already notified their waiters.

Changed paths:
    engines/ultima/ultima8/kernel/process.cpp


diff --git a/engines/ultima/ultima8/kernel/process.cpp b/engines/ultima/ultima8/kernel/process.cpp
index ec2495c19b..b91540ef24 100644
--- a/engines/ultima/ultima8/kernel/process.cpp
+++ b/engines/ultima/ultima8/kernel/process.cpp
@@ -80,7 +80,7 @@ void Process::waitFor(ProcId pid) {
 		// add this process to waiting list of other process
 		Process *p = kernel->getProcess(pid);
 		assert(p);
-		if (p->is_terminated()) {
+		if (p->getProcessFlags() & PROC_TERMINATED) {
 			warning("Proc %d wait for proc %d which is already terminated", _pid, pid);
 			return;
 		}




More information about the Scummvm-git-logs mailing list