[Scummvm-git-logs] scummvm master -> 2b4785f262d3b7f718e67a8f75fb76b50ef16098
mduggan
mgithub at guarana.org
Wed May 5 11:57:54 UTC 2021
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:
12f8e8679e ULTIMA8: Make loading work with different path configurations
2b4785f262 ULTIMA8: Fix Crusader animated flames, steam, etc.
Commit: 12f8e8679efe14a86c3c009a1c970b59cd72cd8b
https://github.com/scummvm/scummvm/commit/12f8e8679efe14a86c3c009a1c970b59cd72cd8b
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-05T20:57:46+09:00
Commit Message:
ULTIMA8: Make loading work with different path configurations
Changed paths:
engines/ultima/ultima8/filesys/file_system.cpp
engines/ultima/ultima8/games/remorse_game.cpp
diff --git a/engines/ultima/ultima8/filesys/file_system.cpp b/engines/ultima/ultima8/filesys/file_system.cpp
index 7522aab6ce..0a5394b410 100644
--- a/engines/ultima/ultima8/filesys/file_system.cpp
+++ b/engines/ultima/ultima8/filesys/file_system.cpp
@@ -47,8 +47,13 @@ FileSystem::~FileSystem() {
// Open a streaming file as readable. Streamed (0 on failure)
Common::SeekableReadStream *FileSystem::ReadFile(const string &vfn) {
Common::SeekableReadStream *readStream;
- if (!rawOpen(readStream, vfn))
- return nullptr;
+ if (!rawOpen(readStream, vfn)) {
+ // Some games have some files in a "data" subdir.
+ string altpath = string::format("data/%s", vfn.c_str());
+ if (!rawOpen(readStream, altpath)) {
+ return nullptr;
+ }
+ }
return readStream;
}
diff --git a/engines/ultima/ultima8/games/remorse_game.cpp b/engines/ultima/ultima8/games/remorse_game.cpp
index 0d123381c8..f9028447f5 100644
--- a/engines/ultima/ultima8/games/remorse_game.cpp
+++ b/engines/ultima/ultima8/games/remorse_game.cpp
@@ -75,8 +75,8 @@ bool RemorseGame::loadFiles() {
if (!loadPalette("static/gamepal.pal", PaletteManager::Pal_Game))
return false;
if (GAME_IS_REGRET) {
- if (!loadPalette("static/cred.pal", PaletteManager::Pal_Cred))
- return false;
+ // This one is not used at the moment, so allowed to fail
+ loadPalette("static/cred.pal", PaletteManager::Pal_Cred);
}
if (!loadPalette("static/diff.pal", PaletteManager::Pal_Diff))
return false;
@@ -84,8 +84,8 @@ bool RemorseGame::loadFiles() {
return false;
if (!loadPalette("static/misc2.pal", PaletteManager::Pal_Misc2))
return false;
- if (!loadPalette("static/star.pal", PaletteManager::Pal_Star))
- return false;
+ // We don't use his one at the moment, ok to fail.
+ loadPalette("static/star.pal", PaletteManager::Pal_Star);
pout << "Load GameData" << Std::endl;
GameData::get_instance()->loadRemorseData();
Commit: 2b4785f262d3b7f718e67a8f75fb76b50ef16098
https://github.com/scummvm/scummvm/commit/2b4785f262d3b7f718e67a8f75fb76b50ef16098
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-05T20:57:46+09:00
Commit Message:
ULTIMA8: Fix Crusader animated flames, steam, etc.
Changed paths:
engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
engines/ultima/ultima8/usecode/regret_intrinsics.h
engines/ultima/ultima8/usecode/remorse_intrinsics.h
engines/ultima/ultima8/world/item.cpp
engines/ultima/ultima8/world/item.h
diff --git a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
index 8808200256..d240fcf6cc 100644
--- a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
+++ b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
@@ -217,7 +217,7 @@ const char* const ConvertUsecodeCrusader::_intrinsics[] = {
"void Egg::I_setEggXRange(Egg *, int)", // based on disasm
"byte Item::I_overlaps(Item *, uint16 unk)", // same disasm as U8
"byte Item::I_isOn(Item *, itemno)", // part of same coff set 044, 046, 048, 04A, 04C, 04E, 0A5, 0BC, 0C5, 0DC, 0F1, 0FA, 12C
- "int16 I_getAnimationsDisabled(void)", // From disasm. Not implemented, that's ok..
+ "int16 I_getAnimationsEnabled(void)",
"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_playMovieCutsceneFullscreen(char *)", // same coff as 092
diff --git a/engines/ultima/ultima8/usecode/regret_intrinsics.h b/engines/ultima/ultima8/usecode/regret_intrinsics.h
index e24fc7c285..a19a22c605 100644
--- a/engines/ultima/ultima8/usecode/regret_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/regret_intrinsics.h
@@ -38,7 +38,7 @@ Intrinsic RegretIntrinsics[] = {
Item::I_getStatus, // Intrinsic004()
Item::I_orStatus, // Intrinsic005()
Item::I_equip, // Intrinsic006()
- Item::I_isOnScreen, // Intrinsic007()
+ Item::I_isPartlyOnScreen, // Intrinsic007()
Actor::I_isNPC, // Intrinsic008()
Item::I_getZ, // Intrinsic009()
World::I_gameDifficulty, // Intrinsic00A()
diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index 907fdea7f0..d12db7f5f6 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -42,7 +42,7 @@ Intrinsic RemorseIntrinsics[] = {
Item::I_getStatus,
Item::I_orStatus,
Item::I_equip, // void Intrinsic006(6 bytes)
- Item::I_isOnScreen, //
+ Item::I_isPartlyOnScreen, //
Actor::I_isNPC, // byte Intrinsic008(Item *)
Item::I_getZ, // byte Intrinsic009(Item *)
Item::I_destroy, // void Intrinsic00A(Item *)
@@ -211,7 +211,7 @@ Intrinsic RemorseIntrinsics[] = {
Egg::I_setEggXRange, // void Intrinsic0A3(6 bytes)
Item::I_overlaps,
Item::I_isOn,
- 0, // TODO: I_getAnimationsDisabled -> default to 0 (fine for now..)
+ UCMachine::I_true, // I_getAnimationsEnabled -> default to true (animations enabled)
Egg::I_getEggXRange, // void Intrinsic0A7(4 bytes)
Actor::I_setDead,
MovieGump::I_playMovieCutsceneAlt, // TODO: not exactly the same, Alt includes a fade.
diff --git a/engines/ultima/ultima8/world/item.cpp b/engines/ultima/ultima8/world/item.cpp
index 1b611e6364..1651d9dd8a 100644
--- a/engines/ultima/ultima8/world/item.cpp
+++ b/engines/ultima/ultima8/world/item.cpp
@@ -3901,11 +3901,11 @@ uint32 Item::I_inFastArea(const uint8 *args, unsigned int /*argsize*/) {
return item->hasFlags(FLG_FASTAREA);
}
-uint32 Item::I_isOnScreen(const uint8 *args, unsigned int /*argsize*/) {
+uint32 Item::I_isPartlyOnScreen(const uint8 *args, unsigned int /*argsize*/) {
ARG_ITEM_FROM_PTR(item);
if (!item) return 0;
- return item->isOnScreen();
+ return item->isPartlyOnScreen();
}
uint32 Item::I_fireWeapon(const uint8 *args, unsigned int /*argsize*/) {
diff --git a/engines/ultima/ultima8/world/item.h b/engines/ultima/ultima8/world/item.h
index 7c116713f1..54393dab14 100644
--- a/engines/ultima/ultima8/world/item.h
+++ b/engines/ultima/ultima8/world/item.h
@@ -598,7 +598,7 @@ public:
INTRINSIC(I_equip);
INTRINSIC(I_unequip);
INTRINSIC(I_avatarStoleSomething);
- INTRINSIC(I_isOnScreen);
+ INTRINSIC(I_isPartlyOnScreen);
INTRINSIC(I_fireWeapon);
INTRINSIC(I_fireDistance);
More information about the Scummvm-git-logs
mailing list