[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