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

mduggan mgithub at guarana.org
Tue Apr 14 23:59:18 UTC 2020


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:
3194526b7d ULTIMA8: Clip audio volume to 255 (fixes speech)
f6761f0088 ULTIMA8: Remove a few string copies


Commit: 3194526b7df6bd7cd78f82e2e89dd53954ed6486
    https://github.com/scummvm/scummvm/commit/3194526b7df6bd7cd78f82e2e89dd53954ed6486
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-04-15T08:57:46+09:00

Commit Message:
ULTIMA8: Clip audio volume to 255 (fixes speech)

Changed paths:
    engines/ultima/ultima8/audio/audio_process.cpp
    engines/ultima/ultima8/audio/audio_process.h


diff --git a/engines/ultima/ultima8/audio/audio_process.cpp b/engines/ultima/ultima8/audio/audio_process.cpp
index a456066b4c..7540ea35aa 100644
--- a/engines/ultima/ultima8/audio/audio_process.cpp
+++ b/engines/ultima/ultima8/audio/audio_process.cpp
@@ -33,6 +33,7 @@
 #include "ultima/ultima8/world/get_object.h"
 #include "ultima/ultima8/world/item.h"
 #include "ultima/ultima8/world/camera_process.h"
+#include "common/util.h"
 
 namespace Ultima {
 namespace Ultima8 {
@@ -93,6 +94,10 @@ bool AudioProcess::calculateSoundVolume(ObjId objId, int16 &lVol, int16 &rVol) c
 	lVol = (dist * lbal) / 160;
 	rVol = (dist * rbal) / 160;
 
+	// Clip to expected range of 0-255
+	lVol = CLIP(lVol, (int16)0, (int16)255);
+	rVol = CLIP(rVol, (int16)0, (int16)255);
+
 	return true;
 }
 
@@ -193,8 +198,8 @@ bool AudioProcess::loadData(Common::ReadStream *rs, uint32 version) {
 			int16 lVol = 0;
 			int16 rVol = 0;
 			if (objId != 0) {
-				lVol = 256;
-				rVol = 256;
+				lVol = 255;
+				rVol = 255;
 			}
 			playSFX(sfxNum, priority, objId, loops, false, pitchShift, volume, lVol, rVol);
 		} else {                // Speech
diff --git a/engines/ultima/ultima8/audio/audio_process.h b/engines/ultima/ultima8/audio/audio_process.h
index 8e0cb87905..2f2b63a558 100644
--- a/engines/ultima/ultima8/audio/audio_process.h
+++ b/engines/ultima/ultima8/audio/audio_process.h
@@ -96,7 +96,7 @@ public:
 	void setVolumeSFX(int sfxNum, uint8 volume);
 
 	bool playSpeech(const Std::string &barked, int shapenum, ObjId objId,
-					uint32 pitchShift = 0x10000, uint16 volume = 256);
+					uint32 pitchShift = 0x10000, uint16 volume = 255);
 	void stopSpeech(const Std::string &barked, int shapenum, ObjId objId);
 	bool isSpeechPlaying(const Std::string &barked, int shapenum);
 
@@ -106,7 +106,7 @@ public:
 	//! play a sample (without storing a SampleInfo)
 	//! returns channel sample is played on, or -1
 	int playSample(AudioSample *sample, int priority, int loops,
-				   uint32 pitchShift = 0x10000, int16 lVol = 256, int16 rVol = 256);
+				   uint32 pitchShift = 0x10000, int16 lVol = 255, int16 rVol = 255);
 
 	//! pause all currently playing samples
 	void pauseAllSamples();


Commit: f6761f0088f6cae6f123c45522797b7248f3e176
    https://github.com/scummvm/scummvm/commit/f6761f0088f6cae6f123c45522797b7248f3e176
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-04-15T08:59:05+09:00

Commit Message:
ULTIMA8: Remove a few string copies

Changed paths:
    engines/ultima/ultima8/games/game_data.cpp
    engines/ultima/ultima8/games/game_data.h
    engines/ultima/ultima8/games/u8_game.cpp


diff --git a/engines/ultima/ultima8/games/game_data.cpp b/engines/ultima/ultima8/games/game_data.cpp
index dd44fb478c..8a852328c7 100644
--- a/engines/ultima/ultima8/games/game_data.cpp
+++ b/engines/ultima/ultima8/games/game_data.cpp
@@ -174,7 +174,7 @@ void GameData::loadTranslation() {
 	}
 }
 
-Std::string GameData::translate(Std::string text) {
+Std::string GameData::translate(const Std::string &text) {
 	// TODO: maybe cache these lookups? config calls may be expensive
 
 	ConfigFileManager *config = ConfigFileManager::get_instance();
@@ -378,7 +378,7 @@ void GameData::setupJPOverrides() {
 	jpkeyvals = config->listKeyValues("language/jpfonts");
 	for (iter = jpkeyvals.begin(); iter != jpkeyvals.end(); ++iter) {
 		int fontnum = Std::atoi(iter->_key.c_str());
-		Std::string fontdesc = iter->_value;
+		const Std::string &fontdesc = iter->_value;
 
 		Std::vector<Std::string> vals;
 		SplitString(fontdesc, ',', vals);
@@ -416,7 +416,7 @@ void GameData::setupTTFOverrides(const char *configkey, bool SJIS) {
 	ttfkeyvals = config->listKeyValues(configkey);
 	for (iter = ttfkeyvals.begin(); iter != ttfkeyvals.end(); ++iter) {
 		int fontnum = Std::atoi(iter->_key.c_str());
-		Std::string fontdesc = iter->_value;
+		const Std::string &fontdesc = iter->_value;
 
 		Std::vector<Std::string> vals;
 		SplitString(fontdesc, ',', vals);
@@ -425,7 +425,7 @@ void GameData::setupTTFOverrides(const char *configkey, bool SJIS) {
 			continue;
 		}
 
-		Std::string filename = vals[0];
+		const Std::string &filename = vals[0];
 		int pointsize = Std::atoi(vals[1].c_str());
 		uint32 col32 = Std::strtol(vals[2].c_str(), 0, 0);
 		int border = Std::atoi(vals[3].c_str());
@@ -450,7 +450,7 @@ SpeechFlex *GameData::getSpeechFlex(uint32 shapeNum) {
 
 	FileSystem *filesystem = FileSystem::get_instance();
 
-	Std::string u8_sound_ = "@game/sound/";
+	static const Std::string u8_sound_ = "@game/sound/";
 	char num_flx [32];
 	snprintf(num_flx , 32, "%i.flx", shapeNum);
 
diff --git a/engines/ultima/ultima8/games/game_data.h b/engines/ultima/ultima8/games/game_data.h
index 0b71e92269..6fc16fd0b7 100644
--- a/engines/ultima/ultima8/games/game_data.h
+++ b/engines/ultima/ultima8/games/game_data.h
@@ -91,7 +91,7 @@ public:
 	Shape *getShape(FrameID frameid) const;
 	const ShapeFrame *getFrame(FrameID frameid) const;
 
-	Std::string translate(Std::string text);
+	Std::string translate(const Std::string &text);
 	FrameID translate(FrameID frame);
 
 	enum ShapeFlexId {
diff --git a/engines/ultima/ultima8/games/u8_game.cpp b/engines/ultima/ultima8/games/u8_game.cpp
index f88ab21228..0c071b7e23 100644
--- a/engines/ultima/ultima8/games/u8_game.cpp
+++ b/engines/ultima/ultima8/games/u8_game.cpp
@@ -179,7 +179,7 @@ ProcId U8Game::playIntroMovie(bool fade) {
 }
 
 ProcId U8Game::playEndgameMovie(bool fade) {
-	Std::string filename = "@game/static/endgame.skf";
+	static const Std::string filename = "@game/static/endgame.skf";
 	FileSystem *filesys = FileSystem::get_instance();
 	Common::SeekableReadStream *skf = filesys->ReadFile(filename);
 	if (!skf) {
@@ -221,7 +221,7 @@ void U8Game::playCredits() {
 }
 
 void U8Game::playQuotes() {
-	Std::string filename = "@game/static/quotes.dat";
+	static const Std::string filename = "@game/static/quotes.dat";
 
 	Common::SeekableReadStream *rs = FileSystem::get_instance()->ReadFile(filename);
 	if (!rs) {
@@ -229,7 +229,7 @@ void U8Game::playQuotes() {
 		     << filename << Std::endl;
 		return;
 	}
-	Std::string text = getCreditText(rs);
+	const Std::string text = getCreditText(rs);
 	delete rs;
 
 	MusicProcess *musicproc = MusicProcess::get_instance();




More information about the Scummvm-git-logs mailing list