[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