[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