[Scummvm-git-logs] scummvm master -> 0ab9a4b5fee4e47d24041e8ce4dce6eb0a6a936a
mduggan
mgithub at guarana.org
Sat Feb 13 00:14:44 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:
f6715015e3 ULTIMA8: Fix music in No Regret
6ce212a09d ULTIMA8: No Regret intrinsic fixes
ab01803e4b ULTIMA8: Fix Avatar ID global for No Regret
0ab9a4b5fe ULTIMA8: Remove duplicate load/save code
Commit: f6715015e3e3dedc565ab7c2c3873ced25134a17
https://github.com/scummvm/scummvm/commit/f6715015e3e3dedc565ab7c2c3873ced25134a17
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-02-13T08:44:14+09:00
Commit Message:
ULTIMA8: Fix music in No Regret
Changed paths:
engines/ultima/ultima8/audio/remorse_music_process.cpp
diff --git a/engines/ultima/ultima8/audio/remorse_music_process.cpp b/engines/ultima/ultima8/audio/remorse_music_process.cpp
index 0c51114983..de383dc20c 100644
--- a/engines/ultima/ultima8/audio/remorse_music_process.cpp
+++ b/engines/ultima/ultima8/audio/remorse_music_process.cpp
@@ -25,6 +25,9 @@
#include "ultima/ultima8/filesys/file_system.h"
#include "audio/mods/mod_xm_s3m.h"
+#include "ultima/ultima8/world/world.h"
+#include "ultima/ultima8/world/current_map.h"
+
namespace Ultima {
namespace Ultima8 {
@@ -83,6 +86,11 @@ static const char *TRACK_FILE_NAMES_REGRET[] = {
"xmas" // for demo
};
+static const int REGRET_MAP_TRACKS[] = {
+ 0, 1, 10, 2, 0, 3, 11, 4,
+ 16, 5, 20, 6, 0, 7, 13, 8,
+ 15, 9, 12, 10, 19, 14, 21, 0};
+
// p_dynamic_cast stuff
DEFINE_RUNTIME_CLASSTYPE_CODE(RemorseMusicProcess)
@@ -99,6 +107,22 @@ RemorseMusicProcess::~RemorseMusicProcess() {
}
void RemorseMusicProcess::playMusic(int track) {
+ if (GAME_IS_REGRET && track == 0x45) {
+ // Play the default track for the current map
+ uint32 curmap = World::get_instance()->getCurrentMap()->getNum();
+ if (curmap < ARRAYSIZE(REGRET_MAP_TRACKS)) {
+ track = REGRET_MAP_TRACKS[curmap];
+ } else {
+ track = 0;
+ }
+
+ // Regret has a Christmas music easter egg.
+ TimeDate t;
+ g_system->getTimeAndDate(t);
+ if (t.tm_mon == 11 && t.tm_mday >= 24) {
+ track = 22;
+ }
+ }
playMusic_internal(track);
}
@@ -131,6 +155,7 @@ void RemorseMusicProcess::restoreTrackState() {
void RemorseMusicProcess::playMusic_internal(int track) {
if (track < 0 || track > _maxTrack) {
+ warning("Not playing track %d (max is %d)", track, _maxTrack);
playMusic_internal(0);
return;
}
Commit: 6ce212a09df481124ab2c414c07b9656126179cf
https://github.com/scummvm/scummvm/commit/6ce212a09df481124ab2c414c07b9656126179cf
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-02-13T08:44:14+09:00
Commit Message:
ULTIMA8: No Regret intrinsic fixes
Changed paths:
engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
engines/ultima/ultima8/usecode/regret_intrinsics.h
diff --git a/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h b/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
index 727162fc9f..571cb58288 100644
--- a/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
+++ b/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
@@ -219,7 +219,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Item::getQHi(void)",
"Actor::I_getLastAnimSet()",
"Item::getCY(void)",
- "Intrinsic00A9()",
+ "Intrinsic00A9()", // Equivalent to Intrinsic00BB() in Remorse
"Item::isOn(uint16)",
"Actor::isDead(void)",
"Item::hurl(sint16,sint16,sint16,sint16)",
@@ -272,7 +272,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Actor::I_getDefaultActivity1()",
"Actor::I_getDefaultActivity2()",
"Actor::I_getLastAnimSet()",
- "Actor::I_isInCombat()",
+ "Actor::I_isFalling()",
"Item::getQLo(void)",
"Item::getQHi(void)",
"Item::getNpcNum(void)",
diff --git a/engines/ultima/ultima8/usecode/regret_intrinsics.h b/engines/ultima/ultima8/usecode/regret_intrinsics.h
index 679309426a..f6f95f3959 100644
--- a/engines/ultima/ultima8/usecode/regret_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/regret_intrinsics.h
@@ -210,7 +210,7 @@ Intrinsic RegretIntrinsics[] = {
Item::I_getQHi, // Intrinsic0A6()
Actor::I_getLastAnimSet, // Intrinsic0A7()
Item::I_getCY, // Intrinsic0A8()
- 0, // Intrinsic0A9()
+ CurrentMap::I_canExistAt, // Intrinsic0A9()
Item::I_isOn, // Intrinsic0AA()
Actor::I_isDead, // Intrinsic0AB()
Item::I_hurl, // Intrinsic0AC()
@@ -263,7 +263,7 @@ Intrinsic RegretIntrinsics[] = {
Actor::I_getDefaultActivity1, // Intrinsic0D8()
Actor::I_getDefaultActivity2, // Intrinsic0D9()
Actor::I_getLastAnimSet, // Intrinsic0DA()
- 0, // Actor::GetFlag0x77Field1()
+ 0, // Actor::I_isFalling()
Item::I_getQLo, // Intrinsic0DC()
Item::I_getQHi, // Intrinsic0DD()
Actor::I_getNpcNum, // Intrinsic0DE()
@@ -369,7 +369,7 @@ Intrinsic RegretIntrinsics[] = {
Item::I_getCY, // Intrinsic13C()
Item::I_getCZ, // Intrinsic13D()
Item::I_setFrame, // Intrinsic13E()
- AudioProcess::I_playAmbientSFX, // Intrinsic13F()
+ AudioProcess::I_playSFX, // Intrinsic13F()
// 0140
AudioProcess::I_isSFXPlaying, // Intrinsic140()
0, // TODO: World::I_clrAlertActive, but not the same as remorse
Commit: ab01803e4bb6e350c296f68f018f929d70e4981f
https://github.com/scummvm/scummvm/commit/ab01803e4bb6e350c296f68f018f929d70e4981f
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-02-13T08:44:14+09:00
Commit Message:
ULTIMA8: Fix Avatar ID global for No Regret
Changed paths:
engines/ultima/ultima8/usecode/uc_machine.cpp
diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index 72ee04c821..69baee4bf4 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -98,8 +98,7 @@ UCMachine::UCMachine(Intrinsic *iset, unsigned int icount) {
} else {
_globals = new ByteSet(0x1000);
// slight hack: set global 003C to start as avatar number.
- // TODO: is this the same offset in regret?
- _globals->setEntries(0x3C, 2, 1);
+ _globals->setEntries(0x1E, 2, 1);
_convUse = new ConvertUsecodeRegret();
}
Commit: 0ab9a4b5fee4e47d24041e8ce4dce6eb0a6a936a
https://github.com/scummvm/scummvm/commit/0ab9a4b5fee4e47d24041e8ce4dce6eb0a6a936a
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-02-13T08:44:14+09:00
Commit Message:
ULTIMA8: Remove duplicate load/save code
Changed paths:
engines/ultima/ultima8/gumps/remorse_menu_gump.cpp
diff --git a/engines/ultima/ultima8/gumps/remorse_menu_gump.cpp b/engines/ultima/ultima8/gumps/remorse_menu_gump.cpp
index f758ff47af..778b775e7d 100644
--- a/engines/ultima/ultima8/gumps/remorse_menu_gump.cpp
+++ b/engines/ultima/ultima8/gumps/remorse_menu_gump.cpp
@@ -190,45 +190,16 @@ void RemorseMenuGump::ChildNotify(Gump *child, uint32 message) {
}
}
-static void _openScummVmSaveLoad(bool isSave) {
- GUI::SaveLoadChooser *dialog;
- Common::String desc;
- int slot;
-
- if (isSave) {
- dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"), true);
-
- slot = dialog->runModalWithCurrentTarget();
- desc = dialog->getResultString();
-
- if (desc.empty()) {
- // create our own description for the saved game, the user didnt enter it
- desc = dialog->createDefaultSaveDescription(slot);
- }
-
- if (desc.size() > 28)
- desc = Common::String(desc.c_str(), 28);
- } else {
- dialog = new GUI::SaveLoadChooser(_("Restore game:"), _("Restore"), false);
- slot = dialog->runModalWithCurrentTarget();
- }
-
- delete dialog;
-
- if (isSave)
- Ultima8Engine::get_instance()->saveGame(slot, desc);
- else
- Ultima8Engine::get_instance()->loadGameState(slot);
-}
-
void RemorseMenuGump::selectEntry(int entry) {
switch (entry) {
case 1: // New Game
Game::get_instance()->playIntroMovie(true);
break;
case 2:
+ Ultima8Engine::get_instance()->loadGameDialog();
+ break;
case 3: // Load/Save Game
- _openScummVmSaveLoad(entry == 3);
+ Ultima8Engine::get_instance()->saveGameDialog();
break;
case 4: {
// Options - show the ScummVM options dialog
More information about the Scummvm-git-logs
mailing list