[Scummvm-git-logs] scummvm master -> 023820099580b25247e3f5fa839312971d6149e4
mduggan
mgithub at guarana.org
Sun Jan 24 10:16:53 UTC 2021
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
8b496f3310 ULTIMA8: Add another Crusader movie intrinsic
1fa06c823f ULTIMA8: Avoid anim crash for one shape in Crusader
60e6405e60 ULTIMA8: Avoid another busy loop in AttackProcess
bdd1519fe6 ULTIMA8: Avoid assert fail on loaded games
0238200995 TWINE: Fix build where int16_t isn't defined
Commit: 8b496f33107f972e9638cc381452debe57ec6571
https://github.com/scummvm/scummvm/commit/8b496f33107f972e9638cc381452debe57ec6571
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-01-24T19:05:09+09:00
Commit Message:
ULTIMA8: Add another Crusader movie intrinsic
Changed paths:
engines/ultima/ultima8/gumps/movie_gump.cpp
engines/ultima/ultima8/gumps/movie_gump.h
engines/ultima/ultima8/usecode/remorse_intrinsics.h
diff --git a/engines/ultima/ultima8/gumps/movie_gump.cpp b/engines/ultima/ultima8/gumps/movie_gump.cpp
index 6050cbefa6..d5e254149f 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.cpp
+++ b/engines/ultima/ultima8/gumps/movie_gump.cpp
@@ -220,7 +220,6 @@ uint32 MovieGump::I_playMovieCutscene(const uint8 *args, unsigned int /*argsize*
if (item) {
Common::SeekableReadStream *rs = _tryLoadCruMovie(name);
if (rs) {
- // TODO: Support playback with gap lines for the CRT effect
Gump *gump = new MovieGump(x * 3, y * 3, rs, false);
gump->InitGump(nullptr, true);
gump->setRelativePosition(CENTER);
@@ -228,7 +227,26 @@ uint32 MovieGump::I_playMovieCutscene(const uint8 *args, unsigned int /*argsize*
}
return 0;
+}
+uint32 MovieGump::I_playMovieCutsceneAlt(const uint8 *args, unsigned int /*argsize*/) {
+ ARG_ITEM_FROM_PTR(item);
+ ARG_STRING(name);
+ ARG_UINT16(x);
+ ARG_UINT16(y);
+
+ warning("MovieGump::I_playMovieCutsceneAlt: TODO: This intrinsic should pause and fade the background to grey");
+
+ if (item) {
+ Common::SeekableReadStream *rs = _tryLoadCruMovie(name);
+ if (rs) {
+ Gump *gump = new MovieGump(x * 3, y * 3, rs, false);
+ gump->InitGump(nullptr, true);
+ gump->setRelativePosition(CENTER);
+ }
+ }
+
+ return 0;
}
diff --git a/engines/ultima/ultima8/gumps/movie_gump.h b/engines/ultima/ultima8/gumps/movie_gump.h
index 43cf138f37..dc23ea8aa0 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.h
+++ b/engines/ultima/ultima8/gumps/movie_gump.h
@@ -61,6 +61,7 @@ public:
INTRINSIC(I_playMovieOverlay);
INTRINSIC(I_playMovieCutscene);
+ INTRINSIC(I_playMovieCutsceneAlt);
protected:
MoviePlayer *_player;
diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index dd1faf6aa1..824785c8b6 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -50,7 +50,7 @@ Intrinsic RemorseIntrinsics[] = {
Ultima8Engine::I_setAvatarInStasis, // void Intrinsic00C(2 bytes)
Item::I_getDirToItem, // byte Intrinsic00D(6 bytes)
Actor::I_turnToward,
- 0, // TODO: VideoGump::I_playVideo(item, vidname, int16 sizex, int16 sizey)
+ MovieGump::I_playMovieCutsceneAlt,
// 0x010
Item::I_getQLo, // Based on having same coff as 02B
Actor::I_getMap, // int Intrinsic011(4 bytes)
Commit: 1fa06c823f6d75cb6f583c9a67d633aac5ea4b92
https://github.com/scummvm/scummvm/commit/1fa06c823f6d75cb6f583c9a67d633aac5ea4b92
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-01-24T19:05:09+09:00
Commit Message:
ULTIMA8: Avoid anim crash for one shape in Crusader
Changed paths:
engines/ultima/ultima8/world/item.cpp
diff --git a/engines/ultima/ultima8/world/item.cpp b/engines/ultima/ultima8/world/item.cpp
index f9be477a74..18464e8ecf 100644
--- a/engines/ultima/ultima8/world/item.cpp
+++ b/engines/ultima/ultima8/world/item.cpp
@@ -1732,7 +1732,7 @@ void Item::animateItem() {
break;
case 4:
- if (!(getRandom() % anim_data)) break;
+ if (anim_data && !(getRandom() % anim_data)) break;
_frame ++;
if (shp && _frame == shp->frameCount()) _frame = 0;
break;
Commit: 60e6405e604a5036bd046084c6502c94fd9f9ac2
https://github.com/scummvm/scummvm/commit/60e6405e604a5036bd046084c6502c94fd9f9ac2
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-01-24T19:05:09+09:00
Commit Message:
ULTIMA8: Avoid another busy loop in AttackProcess
Changed paths:
engines/ultima/ultima8/world/actors/attack_process.cpp
diff --git a/engines/ultima/ultima8/world/actors/attack_process.cpp b/engines/ultima/ultima8/world/actors/attack_process.cpp
index 588981bfc9..653e4da4a4 100644
--- a/engines/ultima/ultima8/world/actors/attack_process.cpp
+++ b/engines/ultima/ultima8/world/actors/attack_process.cpp
@@ -553,7 +553,11 @@ void AttackProcess::genericAttack() {
_field96 = true;
const ProcId pid = Kernel::get_instance()->addProcess(
new PathfinderProcess(a, x, y, z));
- waitFor(pid);
+ // add a tiny delay to avoid tight loops
+ Process *delayproc = new DelayProcess(2);
+ Kernel::get_instance()->addProcess(delayproc);
+ delayproc->waitFor(pid);
+ waitFor(delayproc);
return;
}
} else {
Commit: bdd1519fe6af8c777072b1a09c5e7f3d71de85c7
https://github.com/scummvm/scummvm/commit/bdd1519fe6af8c777072b1a09c5e7f3d71de85c7
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-01-24T19:05:09+09:00
Commit Message:
ULTIMA8: Avoid assert fail on loaded games
Changed paths:
engines/ultima/ultima8/gumps/cru_status_gump.cpp
diff --git a/engines/ultima/ultima8/gumps/cru_status_gump.cpp b/engines/ultima/ultima8/gumps/cru_status_gump.cpp
index 727c823619..228b02f4a2 100644
--- a/engines/ultima/ultima8/gumps/cru_status_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_status_gump.cpp
@@ -54,7 +54,7 @@ CruStatusGump::CruStatusGump(bool unused) : Gump(PX_FROM_LEFT, PX_FROM_BOTTOM, 5
}
CruStatusGump::~CruStatusGump() {
- assert(_instance == this);
+ assert(!_instance || _instance == this);
_instance = nullptr;
}
Commit: 023820099580b25247e3f5fa839312971d6149e4
https://github.com/scummvm/scummvm/commit/023820099580b25247e3f5fa839312971d6149e4
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-01-24T19:16:25+09:00
Commit Message:
TWINE: Fix build where int16_t isn't defined
Changed paths:
engines/twine/holomap.h
diff --git a/engines/twine/holomap.h b/engines/twine/holomap.h
index 552b285d19..6be9cb7cf7 100644
--- a/engines/twine/holomap.h
+++ b/engines/twine/holomap.h
@@ -61,13 +61,13 @@ private:
};
struct TrajectoryData {
- int16_t unk1;
- int16_t unk2;
- int16_t vehicleIdx;
- int16_t x;
- int16_t y;
- int16_t z;
- int16_t unk4;
+ int16 unk1;
+ int16 unk2;
+ int16 vehicleIdx;
+ int16 x;
+ int16 y;
+ int16 z;
+ int16 unk4;
/**
* The HQR index of the vehicle model for the holomap
More information about the Scummvm-git-logs
mailing list