[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