[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