[Scummvm-git-logs] scummvm master -> ce11c13ffa245d6db6bbb14f25330e7cf4739b70
mduggan
mgithub at guarana.org
Tue May 19 09:20:35 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:
194c370645 ULTIMA8: Small const improvements
ce11c13ffa ULTIMA8: Fix guardian speech
Commit: 194c370645c9f5da605a6f49fc7e4b67afabc4d2
https://github.com/scummvm/scummvm/commit/194c370645c9f5da605a6f49fc7e4b67afabc4d2
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-19T15:55:14+09:00
Commit Message:
ULTIMA8: Small const improvements
Changed paths:
engines/ultima/ultima8/games/game.cpp
engines/ultima/ultima8/games/game.h
engines/ultima/ultima8/games/remorse_game.h
engines/ultima/ultima8/games/u8_game.cpp
engines/ultima/ultima8/kernel/core_app.cpp
engines/ultima/ultima8/kernel/core_app.h
diff --git a/engines/ultima/ultima8/games/game.cpp b/engines/ultima/ultima8/games/game.cpp
index a223702ca5..ea2e168867 100644
--- a/engines/ultima/ultima8/games/game.cpp
+++ b/engines/ultima/ultima8/games/game.cpp
@@ -45,7 +45,7 @@ Game::~Game() {
// static
-Game *Game::createGame(GameInfo *info) {
+Game *Game::createGame(const GameInfo *info) {
switch (info->_type) {
case GameInfo::GAME_U8:
return new U8Game();
diff --git a/engines/ultima/ultima8/games/game.h b/engines/ultima/ultima8/games/game.h
index 7e1e49cee2..19f3b4b49c 100644
--- a/engines/ultima/ultima8/games/game.h
+++ b/engines/ultima/ultima8/games/game.h
@@ -55,7 +55,7 @@ public:
virtual void playCredits() = 0;
virtual void playQuotes() = 0;
- static Game *createGame(GameInfo *info);
+ static Game *createGame(const GameInfo *info);
INTRINSIC(I_playEndgame);
diff --git a/engines/ultima/ultima8/games/remorse_game.h b/engines/ultima/ultima8/games/remorse_game.h
index 28ef88e89b..30012acedc 100644
--- a/engines/ultima/ultima8/games/remorse_game.h
+++ b/engines/ultima/ultima8/games/remorse_game.h
@@ -51,8 +51,6 @@ public:
void playCredits() override;
void playQuotes() override { };
- static Game *createGame(GameInfo *info);
-
protected:
static Game *_game;
};
diff --git a/engines/ultima/ultima8/games/u8_game.cpp b/engines/ultima/ultima8/games/u8_game.cpp
index 62926ad63c..0c71bfaf5a 100644
--- a/engines/ultima/ultima8/games/u8_game.cpp
+++ b/engines/ultima/ultima8/games/u8_game.cpp
@@ -58,7 +58,7 @@ U8Game::U8Game() : Game() {
settingman->setDefault("footsteps", true);
settingman->setDefault("targetedjump", true);
- GameInfo *info = Ultima8Engine::get_instance()->getGameInfo();
+ const GameInfo *info = Ultima8Engine::get_instance()->getGameInfo();
if (info->_language == GameInfo::GAMELANG_JAPANESE) {
settingman->setDefault("textdelay", 20);
} else {
@@ -157,7 +157,7 @@ bool U8Game::startInitialUsecode(int saveSlot) {
ProcId U8Game::playIntroMovie(bool fade) {
- GameInfo *gameinfo = CoreApp::get_instance()->getGameInfo();
+ const GameInfo *gameinfo = CoreApp::get_instance()->getGameInfo();
char langletter = gameinfo->getLanguageFileLetter();
if (!langletter) {
perr << "U8Game::playIntro: Unknown language." << Std::endl;
@@ -191,7 +191,7 @@ ProcId U8Game::playEndgameMovie(bool fade) {
}
void U8Game::playCredits() {
- GameInfo *gameinfo = CoreApp::get_instance()->getGameInfo();
+ const GameInfo *gameinfo = CoreApp::get_instance()->getGameInfo();
char langletter = gameinfo->getLanguageFileLetter();
if (!langletter) {
perr << "U8Game::playCredits: Unknown language." << Std::endl;
diff --git a/engines/ultima/ultima8/kernel/core_app.cpp b/engines/ultima/ultima8/kernel/core_app.cpp
index 9d2d8fe435..07997e22db 100644
--- a/engines/ultima/ultima8/kernel/core_app.cpp
+++ b/engines/ultima/ultima8/kernel/core_app.cpp
@@ -191,7 +191,7 @@ void CoreApp::killGame() {
}
-bool CoreApp::getGameInfo(istring &game, GameInfo *ginfo) {
+bool CoreApp::getGameInfo(const istring &game, GameInfo *ginfo) {
// first try getting the information from the config file
// if that fails, try to autodetect it
diff --git a/engines/ultima/ultima8/kernel/core_app.h b/engines/ultima/ultima8/kernel/core_app.h
index 7f7ce730a1..b58a20db15 100644
--- a/engines/ultima/ultima8/kernel/core_app.h
+++ b/engines/ultima/ultima8/kernel/core_app.h
@@ -69,7 +69,7 @@ public:
void startup();
//! Get current GameInfo struct
- GameInfo *getGameInfo() const {
+ const GameInfo *getGameInfo() const {
return _gameInfo;
}
@@ -105,7 +105,7 @@ private:
//! \param game The id of the game to check (from pentagram.cfg)
//! \param gameinfo The GameInfo struct to fill
//! \return true if detected all the fields, false if detection failed
- bool getGameInfo(istring &game, GameInfo *gameinfo);
+ bool getGameInfo(const istring &game, GameInfo *gameinfo);
//! load configuration files
void loadConfig();
Commit: ce11c13ffa245d6db6bbb14f25330e7cf4739b70
https://github.com/scummvm/scummvm/commit/ce11c13ffa245d6db6bbb14f25330e7cf4739b70
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-19T18:20:17+09:00
Commit Message:
ULTIMA8: Fix guardian speech
Changed paths:
engines/ultima/ultima8/audio/speech_flex.cpp
diff --git a/engines/ultima/ultima8/audio/speech_flex.cpp b/engines/ultima/ultima8/audio/speech_flex.cpp
index e54760562f..8e8767094d 100644
--- a/engines/ultima/ultima8/audio/speech_flex.cpp
+++ b/engines/ultima/ultima8/audio/speech_flex.cpp
@@ -38,8 +38,11 @@ SpeechFlex::SpeechFlex(Common::SeekableReadStream *rs) : SoundFlex(rs) {
// hold multiple null-terminated strings.
unsigned int off = 0;
while (off < size) {
- istring str(cbuf + off, size - off);
- off += str.size() + 1;
+ unsigned int slen = 0;
+ while (off + slen < size && cbuf[off + slen])
+ slen++;
+ istring str(cbuf + off, slen);
+ off += slen + 1;
TabsToSpaces(str, 1);
TrimSpaces(str);
More information about the Scummvm-git-logs
mailing list