[Scummvm-git-logs] scummvm master -> 67b4415967f429f50f36c7d722949ed11b26da74

sev- noreply at scummvm.org
Sun Aug 13 08:55:31 UTC 2023


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:
f37039c375 CRAB: Display error dialogbox when reading savefiles fail
efda2cce7a CRAB: Fix PVS V768: Handle return values of Button::handleEvents() properly
aaff90a358 CRAB: Fix PVS V730: Properly initialize values of AlphaImage class in constructor
0582d26e30 CRAB: Fix PVS V560 in TraitMenu.cpp
63284e5d3b CRAB: Fix PVS V1048: Simplfy logic in TriggerSet::evaluate()
67b4415967 CRAB: Fix PVS V1037: Use an intended fallthrough for some cases in Manager::internalEvents()


Commit: f37039c375a537762add17181ecea9e138498d26
    https://github.com/scummvm/scummvm/commit/f37039c375a537762add17181ecea9e138498d26
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-08-13T10:55:26+02:00

Commit Message:
CRAB: Display error dialogbox when reading savefiles fail

Changed paths:
    engines/crab/crab.cpp
    engines/crab/game.cpp
    engines/crab/game.h


diff --git a/engines/crab/crab.cpp b/engines/crab/crab.cpp
index 0bd7deb65ec..06c89dccfb1 100644
--- a/engines/crab/crab.cpp
+++ b/engines/crab/crab.cpp
@@ -149,20 +149,23 @@ Common::Error CrabEngine::saveGameState(int slot, const Common::String &desc, bo
 }
 
 Common::Error CrabEngine::loadGameState(int slot) {
+	Common::Error res = Common::kReadingFailed;
 	saveAutosaveIfEnabled();
 
 	Common::InSaveFile *saveFile = _saveFileMan->openForLoading(getSaveStateName(slot));
 
 	if (!saveFile)
-		return Common::kReadingFailed;
+		return res;
 
-	_app->getGame()->loadState(saveFile);
-	ExtendedSavegameHeader header;
-	if (MetaEngine::readSavegameHeader(saveFile, &header))
-		setTotalPlayTime(header.playtime);
+	if (_app->getGame()->loadState(saveFile)) {
+		ExtendedSavegameHeader header;
+		if (MetaEngine::readSavegameHeader(saveFile, &header))
+			setTotalPlayTime(header.playtime);
+		res = Common::kNoError;
+	}
 
 	delete saveFile;
-	return Common::kNoError;
+	return res;
 }
 
 Common::Error CrabEngine::syncGame(Common::Serializer &s) {
diff --git a/engines/crab/game.cpp b/engines/crab/game.cpp
index 8e976d32454..f7e3a444749 100644
--- a/engines/crab/game.cpp
+++ b/engines/crab/game.cpp
@@ -668,14 +668,11 @@ void Game::applyResult(LevelResult result) {
 //------------------------------------------------------------------------
 // Purpose: Save/load game
 //------------------------------------------------------------------------
-void Game::loadState(Common::SeekableReadStream *stream) {
-	if (!_isInited)
-		loadGame();
-
+bool Game::loadState(Common::SeekableReadStream *stream) {
 	Common::String data = stream->readString();
 	uint64 end = data.findLastOf(">");
-	if (end == Common::String::npos)
-		error("Invalid save file");
+	if (end == Common::String::npos) // invalid save file, returning false from here will display "Reading data failed" dialogbox
+		return false;
 
 	// +1 to include > as well
 	end++;
@@ -685,6 +682,9 @@ void Game::loadState(Common::SeekableReadStream *stream) {
 	memcpy(dataC, data.c_str(), end);
 	XMLDoc conf(dataC);
 
+	if (!_isInited)
+		loadGame();
+
 	if (conf.ready()) {
 		rapidxml::xml_node<char> *node = conf.doc()->first_node("save");
 		if (nodeValid(node)) {
@@ -717,6 +717,8 @@ void Game::loadState(Common::SeekableReadStream *stream) {
 			_clock.start(playtime);
 		}
 	}
+
+	return true;
 }
 //------------------------------------------------------------------------
 // Purpose: Write game state to file
diff --git a/engines/crab/game.h b/engines/crab/game.h
index 895f2dbc9fa..cacb0ccba32 100644
--- a/engines/crab/game.h
+++ b/engines/crab/game.h
@@ -133,7 +133,7 @@ public:
 	void internalEvents(bool &shouldChangeState, GameStateID &newStateId);
 	void draw();
 
-	void loadState(Common::SeekableReadStream *stream);
+	bool loadState(Common::SeekableReadStream *stream);
 
 	// Raw function to save game to file - generally, using the CreateSaveGame function is recommended
 	void saveState(Common::SeekableWriteStream *stream);


Commit: efda2cce7aaab9690b09926fd1c34cb016b0b7d6
    https://github.com/scummvm/scummvm/commit/efda2cce7aaab9690b09926fd1c34cb016b0b7d6
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-08-13T10:55:26+02:00

Commit Message:
CRAB: Fix PVS V768: Handle return values of Button::handleEvents() properly

Changed paths:
    engines/crab/mainmenu.cpp
    engines/crab/ui/ChapterIntro.cpp
    engines/crab/ui/CreditScreen.cpp
    engines/crab/ui/DevConsole.cpp
    engines/crab/ui/GeneralSettingMenu.cpp
    engines/crab/ui/GfxSettingMenu.cpp
    engines/crab/ui/OptionMenu.cpp


diff --git a/engines/crab/mainmenu.cpp b/engines/crab/mainmenu.cpp
index 6c16ec111ee..0a7dfecc82b 100644
--- a/engines/crab/mainmenu.cpp
+++ b/engines/crab/mainmenu.cpp
@@ -199,7 +199,8 @@ void MainMenu::handleEvents(Common::Event &event, bool &shouldChangeState, GameS
 		}
 	}
 
-	if (g_engine->_inputManager->state(IU_BACK) || (_back.handleEvents(event) && (_state != STATE_SAVENAME && _state != STATE_CREDITS))) {
+	if (g_engine->_inputManager->state(IU_BACK) || ((_back.handleEvents(event) != BUAC_IGNORE) &&
+	   (_state != STATE_SAVENAME && _state != STATE_CREDITS))) {
 		if (_state == STATE_SAVENAME)
 			changeState(STATE_DIFF);
 		else if (_state != STATE_NORMAL)
@@ -254,7 +255,7 @@ void MainMenu::handleEvents(Common::Event &event, bool &shouldChangeState, GameS
 	} break;
 
 	case STATE_SAVENAME:
-		if (_save.handleEvents(event) || _accept.handleEvents(event)) {
+		if (_save.handleEvents(event) || (_accept.handleEvents(event)) != BUAC_IGNORE) {
 			if (_save._text != "") {
 				g_engine->_tempData->_filename = _save._text;
 				g_engine->_tempData->_ironman = true;
@@ -262,7 +263,7 @@ void MainMenu::handleEvents(Common::Event &event, bool &shouldChangeState, GameS
 				newStateId = GAMESTATE_NEW_GAME;
 			} else
 				debug("Please enter a valid filename for the iron man save.");
-		} else if (_cancel.handleEvents(event))
+		} else if (_cancel.handleEvents(event) != BUAC_IGNORE)
 			changeState(STATE_DIFF);
 
 		break;
diff --git a/engines/crab/ui/ChapterIntro.cpp b/engines/crab/ui/ChapterIntro.cpp
index 449790a67ef..5ad805a667f 100644
--- a/engines/crab/ui/ChapterIntro.cpp
+++ b/engines/crab/ui/ChapterIntro.cpp
@@ -48,7 +48,7 @@ void ChapterIntro::load(rapidxml::xml_node<char> *node) {
 }
 
 bool ChapterIntro::handleEvents(Common::Event &event) {
-	if (_traits.handleEvents(event))
+	if (_traits.handleEvents(event) != BUAC_IGNORE)
 		_showTraits = true;
 
 	return _dialog.handleEvents(event);
diff --git a/engines/crab/ui/CreditScreen.cpp b/engines/crab/ui/CreditScreen.cpp
index e860b6bb845..22958e70953 100644
--- a/engines/crab/ui/CreditScreen.cpp
+++ b/engines/crab/ui/CreditScreen.cpp
@@ -115,9 +115,9 @@ bool CreditScreen::handleEvents(Common::Event &event) {
 	else if (_reverse.handleEvents(event) == BUAC_LCLICK)
 		_speed._cur = _speed._reverse;
 
-	if (_website.handleEvents(event))
+	if (_website.handleEvents(event) != BUAC_IGNORE)
 		g_system->openUrl("http://pyrodactyl.com");
-	else if (_twitter.handleEvents(event))
+	else if (_twitter.handleEvents(event) != BUAC_IGNORE)
 		g_system->openUrl("https://www.twitter.com/pyrodactylgames");
 
 	return (_back.handleEvents(event) == BUAC_LCLICK);
diff --git a/engines/crab/ui/DevConsole.cpp b/engines/crab/ui/DevConsole.cpp
index 623414d7901..e56571e599d 100644
--- a/engines/crab/ui/DevConsole.cpp
+++ b/engines/crab/ui/DevConsole.cpp
@@ -111,7 +111,7 @@ void DebugConsole::handleEvents(const Common::Event &event) {
 			}
 		}
 
-		if (_back.handleEvents(event)) {
+		if (_back.handleEvents(event) != BUAC_IGNORE) {
 			_state = STATE_NORMAL;
 		}
 		break;
diff --git a/engines/crab/ui/GeneralSettingMenu.cpp b/engines/crab/ui/GeneralSettingMenu.cpp
index 91a98e61400..b4c65f648df 100644
--- a/engines/crab/ui/GeneralSettingMenu.cpp
+++ b/engines/crab/ui/GeneralSettingMenu.cpp
@@ -79,10 +79,10 @@ void GeneralSettingMenu::handleEvents(const Common::Event &event) {
 		g_engine->_musicManager->volEffects(_volEffects.Value());
 
 	// No need to change screen here
-	if (_saveOnExit.handleEvents(event))
+	if (_saveOnExit.handleEvents(event) != BUAC_IGNORE)
 		g_engine->_screenSettings->_saveOnExit = !g_engine->_screenSettings->_saveOnExit;
 
-	if (_mouseTrap.handleEvents(event)) {
+	if (_mouseTrap.handleEvents(event) != BUAC_IGNORE) {
 		g_engine->_screenSettings->_mouseTrap = !g_engine->_screenSettings->_mouseTrap;
 	}
 
diff --git a/engines/crab/ui/GfxSettingMenu.cpp b/engines/crab/ui/GfxSettingMenu.cpp
index 0a95b7b4bf9..90690967e15 100644
--- a/engines/crab/ui/GfxSettingMenu.cpp
+++ b/engines/crab/ui/GfxSettingMenu.cpp
@@ -91,24 +91,24 @@ void GfxSettingMenu::draw() {
 // Purpose: Handle input
 //------------------------------------------------------------------------
 int GfxSettingMenu::handleEvents(const Common::Event &event) {
-	if (_fullscreen.handleEvents(event)) {
+	if (_fullscreen.handleEvents(event) != BUAC_IGNORE) {
 		// Setting video flags is necessary when toggling fullscreen
 		g_engine->_screenSettings->_fullscreen = !g_engine->_screenSettings->_fullscreen;
 	}
 
 	// Vsync doesn't need to set the change value
-	if (_vsync.handleEvents(event)) {
+	if (_vsync.handleEvents(event) != BUAC_IGNORE) {
 		g_engine->_screenSettings->_vsync = !g_engine->_screenSettings->_vsync;
 	}
 
 	// Quality and resolution can only be changed in the main menu
 	if (!g_engine->_screenSettings->_inGame) {
-		if (_quality.handleEvents(event))
+		if (_quality.handleEvents(event) != BUAC_IGNORE)
 			g_engine->_screenSettings->_quality = !g_engine->_screenSettings->_quality;
 	}
 
 	// Window border doesn't matter if you are in fullscreen
-	if (_border.handleEvents(event) && !g_engine->_screenSettings->_fullscreen) {
+	if (_border.handleEvents(event) && !g_engine->_screenSettings->_fullscreen != BUAC_IGNORE) {
 		g_engine->_screenSettings->_border = !g_engine->_screenSettings->_border;
 	}
 
diff --git a/engines/crab/ui/OptionMenu.cpp b/engines/crab/ui/OptionMenu.cpp
index 908f64698fa..5baeed0aab4 100644
--- a/engines/crab/ui/OptionMenu.cpp
+++ b/engines/crab/ui/OptionMenu.cpp
@@ -201,10 +201,10 @@ bool OptionMenu::handleEvents(Button &back, const Common::Event &event) {
 
 			break;
 		case STATE_CONFIRM:
-			if (_accept.handleEvents(event)) {
+			if (_accept.handleEvents(event) != BUAC_IGNORE) {
 				_state = STATE_GRAPHICS;
 				_timer.stop();
-			} else if (_cancel.handleEvents(event)) {
+			} else if (_cancel.handleEvents(event) != BUAC_IGNORE) {
 				_gfx.SetInfo();
 				_state = STATE_GRAPHICS;
 			}


Commit: aaff90a358e3626cd459f3388ac017bb4f9a767e
    https://github.com/scummvm/scummvm/commit/aaff90a358e3626cd459f3388ac017bb4f9a767e
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-08-13T10:55:26+02:00

Commit Message:
CRAB: Fix PVS V730: Properly initialize values of AlphaImage class in constructor

Changed paths:
    engines/crab/ui/AlphaImage.h


diff --git a/engines/crab/ui/AlphaImage.h b/engines/crab/ui/AlphaImage.h
index fb7600f802f..a0e346c1640 100644
--- a/engines/crab/ui/AlphaImage.h
+++ b/engines/crab/ui/AlphaImage.h
@@ -66,9 +66,11 @@ class AlphaImage {
 	} alpha;
 
 public:
-	AlphaImage() {}
-	AlphaImage(rapidxml::xml_node<char> *node) {
+	AlphaImage() {
 		_img = 0;
+	}
+
+	AlphaImage(rapidxml::xml_node<char> *node) : AlphaImage() {
 		load(node);
 	}
 


Commit: 0582d26e303b164da91fc31aac1aae1325740bf1
    https://github.com/scummvm/scummvm/commit/0582d26e303b164da91fc31aac1aae1325740bf1
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-08-13T10:55:26+02:00

Commit Message:
CRAB: Fix PVS V560 in TraitMenu.cpp

Changed paths:
    engines/crab/ui/TraitMenu.cpp


diff --git a/engines/crab/ui/TraitMenu.cpp b/engines/crab/ui/TraitMenu.cpp
index 67facbc4672..aabe9b643ab 100644
--- a/engines/crab/ui/TraitMenu.cpp
+++ b/engines/crab/ui/TraitMenu.cpp
@@ -93,10 +93,8 @@ void TraitMenu::handleEvents(pyrodactyl::people::Person *obj, const Common::Even
 		_menu._element[choice].state(true);
 		_select = choice;
 
-		if (obj != nullptr) {
-			if (_select > -1 && (uint)_select < obj->_trait.size())
-				obj->_trait[_select]._unread = false;
-		}
+		if (obj != nullptr && (uint)_select < obj->_trait.size())
+			obj->_trait[_select]._unread = false;
 	}
 }
 


Commit: 63284e5d3b3d3dbf44569600eb98ef51bedd15b0
    https://github.com/scummvm/scummvm/commit/63284e5d3b3d3dbf44569600eb98ef51bedd15b0
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-08-13T10:55:26+02:00

Commit Message:
CRAB: Fix PVS V1048: Simplfy logic in TriggerSet::evaluate()

Changed paths:
    engines/crab/event/triggerset.cpp


diff --git a/engines/crab/event/triggerset.cpp b/engines/crab/event/triggerset.cpp
index 76797a232f2..2de8eea9ba0 100644
--- a/engines/crab/event/triggerset.cpp
+++ b/engines/crab/event/triggerset.cpp
@@ -50,7 +50,6 @@ bool TriggerSet::evaluate(pyrodactyl::event::Info &info) {
 
 	if (_statement.empty() == false) {
 		RelOp nextOp = OP_AND;
-		_result = true;
 		bool curResult = false;
 
 		for (auto &i : _statement) {
@@ -66,8 +65,7 @@ bool TriggerSet::evaluate(pyrodactyl::event::Info &info) {
 
 			nextOp = i._rel;
 		}
-	} else
-		_result = true;
+	}
 
 	return _result;
 }


Commit: 67b4415967f429f50f36c7d722949ed11b26da74
    https://github.com/scummvm/scummvm/commit/67b4415967f429f50f36c7d722949ed11b26da74
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-08-13T10:55:26+02:00

Commit Message:
CRAB: Fix PVS V1037: Use an intended fallthrough for some cases in Manager::internalEvents()

Changed paths:
    engines/crab/event/gameeventmanager.cpp


diff --git a/engines/crab/event/gameeventmanager.cpp b/engines/crab/event/gameeventmanager.cpp
index ae3478d1221..892198767c1 100644
--- a/engines/crab/event/gameeventmanager.cpp
+++ b/engines/crab/event/gameeventmanager.cpp
@@ -186,6 +186,10 @@ void Manager::internalEvents(Info &info, Level &level, Common::Array<EventResult
 		if (_eventMap[info.curLocID()].eventInProgress(_activeSeq)) {
 			switch (_curEvent->_type) {
 			case EVENT_DIALOG:
+			// fallthrough intended
+			case EVENT_REPLY:
+			// fallthrough intended
+			case EVENT_SPLASH:
 				updateDialogBox(info, level);
 				break;
 			case EVENT_ANIM: {
@@ -203,12 +207,6 @@ void Manager::internalEvents(Info &info, Level &level, Common::Array<EventResult
 			case EVENT_SILENT:
 				_eventMap[info.curLocID()].nextEvent(_activeSeq, info, level.playerId(), result, _endSeq);
 				break;
-			case EVENT_REPLY:
-				updateDialogBox(info, level);
-				break;
-			case EVENT_SPLASH:
-				updateDialogBox(info, level);
-				break;
 			default:
 				break;
 			}




More information about the Scummvm-git-logs mailing list