[Scummvm-git-logs] scummvm master -> f7e07c0eb08dc377e8cea8d393e11778583cc851

mduggan mgithub at guarana.org
Mon May 10 08:23:52 UTC 2021


This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
4cb6c0a087 ULTIMA8: Add a TODO for No Regret
927e7ca3b0 ULTIMA8: Add comments about some Remorse intrinsics
f456e268ec ULTIMA8: Avoid potential null reference
b73d04844e ULTIMA8: Avoid small leak on invalid data
ebbfb88174 ULTIMA8: Fix array size, thanks Coverity.
f7e07c0eb0 ULTIMA8: Fix uninitialized members identified by Coverity


Commit: 4cb6c0a087fdca3660e2707249448b8cb130f707
    https://github.com/scummvm/scummvm/commit/4cb6c0a087fdca3660e2707249448b8cb130f707
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-10T11:47:51+09:00

Commit Message:
ULTIMA8: Add a TODO for No Regret

Changed paths:
    engines/ultima/ultima8/world/fire_type.cpp


diff --git a/engines/ultima/ultima8/world/fire_type.cpp b/engines/ultima/ultima8/world/fire_type.cpp
index 32cccbef64..665d18b03d 100644
--- a/engines/ultima/ultima8/world/fire_type.cpp
+++ b/engines/ultima/ultima8/world/fire_type.cpp
@@ -31,6 +31,7 @@
 #include "ultima/ultima8/usecode/uc_list.h"
 #include "ultima/ultima8/kernel/kernel.h"
 #include "ultima/ultima8/audio/audio_process.h"
+#include "ultima/ultima8/ultima8.h"
 
 namespace Ultima {
 namespace Ultima8 {
@@ -68,6 +69,11 @@ void FireType::makeBulletSplashShapeAndPlaySound(int32 x, int32 y, int32 z) cons
 	int16 shape = 0;
 
 	// First randomize the sprite and sound
+	if (GAME_IS_REGRET) {
+		// there are some differences which we need to implement.
+		warning("TODO: update FireType::makeBulletSplashShapeAndPlaySound for No Regret");
+	}
+
 	switch (_typeNo) {
 		case 1:
 		case 0xb:


Commit: 927e7ca3b02f67f38932f59e6f25be8b4404355e
    https://github.com/scummvm/scummvm/commit/927e7ca3b02f67f38932f59e6f25be8b4404355e
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-10T11:47:51+09:00

Commit Message:
ULTIMA8: Add comments about some Remorse 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 d240fcf6cc..f9ae82e704 100644
--- a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
+++ b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
@@ -195,9 +195,9 @@ const char* const ConvertUsecodeCrusader::_intrinsics[] = {
 	"void PaletteFaderProcess::I_jumpToAllBlack(void)",
 	// 0090
 	"void MusicProcess::I_stopMusic(void)",
-	"void I_setSomeMovieGlobal(void)", // sets some global (cleared by 93)
+	"void I_setSomeMovieGlobal(void)", // sets global (cleared by 93) to control palette cycling
 	"void I_playMovieCutsceneFullscreen(char *)", // same coff as 0A9
-	"void I_clearSomeMovieGlobal(void)", // clears some global (set by 91)
+	"void I_clearSomeMovieGlobal(void)", // clears global (set by 91) to control palette cycling
 	"void Game::I_playCredits(void)",
 	"byte Kernel::I_getCurrentKeyDown(void)", // get global - something about keyboard (by disasm)
 	"int16 MainActor::I_teleportToEgg(int, int)", // a bit different to the U8 one - uses main actor map by default.
diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index d12db7f5f6..ad60dc5af6 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -189,9 +189,9 @@ Intrinsic RemorseIntrinsics[] = {
 	PaletteFaderProcess::I_jumpToAllBlack, // TODO: should also resume cycle process.
 	// 0x090
 	MusicProcess::I_stopMusic, // void Intrinsic090(void)
-	0, // void Intrinsic091(void)
+	0, // pause cycler - not needed as our cycler does not run when paused
 	MovieGump::I_playMovieCutsceneAlt, // TODO: not exactly the same, Alt includes a fade.
-	0, // void Intrinsic093(void)
+	0, // resume cycler - not needed as our cycler does not run when paused
 	Game::I_playCredits, // TODO: Implement this
 	Ultima8Engine::I_moveKeyDownRecently,
 	MainActor::I_teleportToEgg, // void Intrinsic096(4 bytes)


Commit: f456e268ec56ec015dfbd030104e499a0d4c9e96
    https://github.com/scummvm/scummvm/commit/f456e268ec56ec015dfbd030104e499a0d4c9e96
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-10T14:50:36+09:00

Commit Message:
ULTIMA8: Avoid potential null reference

Changed paths:
    engines/ultima/ultima8/world/damage_info.cpp


diff --git a/engines/ultima/ultima8/world/damage_info.cpp b/engines/ultima/ultima8/world/damage_info.cpp
index a849103af3..9b7957bba3 100644
--- a/engines/ultima/ultima8/world/damage_info.cpp
+++ b/engines/ultima/ultima8/world/damage_info.cpp
@@ -69,7 +69,8 @@ bool DamageInfo::applyToItem(Item *item, uint16 points) const {
 	if (_sound) {
 		AudioProcess *audio = AudioProcess::get_instance();
 		if (audio) {
-			audio->playSFX(_sound, 0x10, item->getObjId(), 1, true);
+			ObjId objid = item ? item->getObjId() : 0;
+			audio->playSFX(_sound, 0x10, objid, 1, true);
 		}
 	}
 	if (replaceItem()) {


Commit: b73d04844ea8f3296c44afbd71679f4eac4992a8
    https://github.com/scummvm/scummvm/commit/b73d04844ea8f3296c44afbd71679f4eac4992a8
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-10T14:51:05+09:00

Commit Message:
ULTIMA8: Avoid small leak on invalid data

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 36bb4ddda6..04dffeb374 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -2421,7 +2421,10 @@ bool UCMachine::loadLists(Common::ReadStream *rs, uint32 version) {
 		uint16 lid = rs->readUint16LE();
 		UCList *l = new UCList(2); // the "2" will be ignored by load()
 		bool ret = l->load(rs, version);
-		if (!ret) return false;
+		if (!ret) {
+			delete l;
+			return false;
+		}
 
 		_listHeap[lid] = l;
 	}


Commit: ebbfb8817457e9a910137a6a8f6ee097f13bbd07
    https://github.com/scummvm/scummvm/commit/ebbfb8817457e9a910137a6a8f6ee097f13bbd07
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-10T14:51:37+09:00

Commit Message:
ULTIMA8: Fix array size, thanks Coverity.

Changed paths:
    engines/ultima/ultima8/world/actors/actor.cpp


diff --git a/engines/ultima/ultima8/world/actors/actor.cpp b/engines/ultima/ultima8/world/actors/actor.cpp
index 73ab86b87b..1d6b433600 100644
--- a/engines/ultima/ultima8/world/actors/actor.cpp
+++ b/engines/ultima/ultima8/world/actors/actor.cpp
@@ -1402,7 +1402,7 @@ ProcId Actor::dieCru(uint16 damageType, uint16 damagePts, Direction srcDir) {
 	if (!created_koresh) {
 		bool fall_backwards = true;
 		bool fall_random_dir = false;
-		Direction dirtest[8];
+		Direction dirtest[9];
 		/* 0x383 == 899 (robot), 1423 = plasma death, 1430 = fire death skeleton */
 		if (getShape() != 899 && getShape() != 0x58f && getShape() != 0x596) {
 			dirtest[0] = _direction;


Commit: f7e07c0eb08dc377e8cea8d393e11778583cc851
    https://github.com/scummvm/scummvm/commit/f7e07c0eb08dc377e8cea8d393e11778583cc851
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-10T14:54:16+09:00

Commit Message:
ULTIMA8: Fix uninitialized members identified by Coverity

Changed paths:
    engines/ultima/ultima8/gumps/movie_gump.cpp
    engines/ultima/ultima8/world/actors/cru_pathfinder_process.cpp


diff --git a/engines/ultima/ultima8/gumps/movie_gump.cpp b/engines/ultima/ultima8/gumps/movie_gump.cpp
index be5e869d51..5476890132 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.cpp
+++ b/engines/ultima/ultima8/gumps/movie_gump.cpp
@@ -96,7 +96,7 @@ static Common::SeekableReadStream *_tryLoadCruSubtitle(const Std::string &filena
 
 DEFINE_RUNTIME_CLASSTYPE_CODE(MovieGump)
 
-MovieGump::MovieGump() : ModalGump(), _player(nullptr) {
+MovieGump::MovieGump() : ModalGump(), _player(nullptr), _subtitleWidget(0) {
 
 }
 
diff --git a/engines/ultima/ultima8/world/actors/cru_pathfinder_process.cpp b/engines/ultima/ultima8/world/actors/cru_pathfinder_process.cpp
index 5ebfe8b08e..5c43c64412 100644
--- a/engines/ultima/ultima8/world/actors/cru_pathfinder_process.cpp
+++ b/engines/ultima/ultima8/world/actors/cru_pathfinder_process.cpp
@@ -47,7 +47,7 @@ CruPathfinderProcess::CruPathfinderProcess() : Process(),
 		_nextTurn(false), _turnAtEnd(false), _lastDir(dir_current),
 		_nextDir(dir_current), _nextDir2(dir_current),
 		_solidObject(true), _directPathBlocked(false), _noShotAvailable(true),
-		_dir16Flag(false), _stopDistance(0)
+		_dir16Flag(false), _stopDistance(0), _maxSteps(0)
 {
 }
 




More information about the Scummvm-git-logs mailing list