[Scummvm-git-logs] scummvm branch-2-2 -> 2f5a6df4dbd8fd912b71da7ade9096cd306304b3

sev- sev at scummvm.org
Wed Sep 2 16:42:20 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
2f5a6df4db ILLUSIONS: Fixed crash in Duckman demo on attempt to launch the menu


Commit: 2f5a6df4dbd8fd912b71da7ade9096cd306304b3
    https://github.com/scummvm/scummvm/commit/2f5a6df4dbd8fd912b71da7ade9096cd306304b3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-09-02T18:42:04+02:00

Commit Message:
ILLUSIONS: Fixed crash in Duckman demo on attempt to launch the menu

Fixes #11190

Changed paths:
    engines/illusions/duckman/menusystem_duckman.cpp
    engines/illusions/duckman/menusystem_duckman.h


diff --git a/engines/illusions/duckman/menusystem_duckman.cpp b/engines/illusions/duckman/menusystem_duckman.cpp
index b60722b6f5..d35e402118 100644
--- a/engines/illusions/duckman/menusystem_duckman.cpp
+++ b/engines/illusions/duckman/menusystem_duckman.cpp
@@ -77,6 +77,8 @@ BaseMenu *DuckmanMenuSystem::createMenuById(int menuId) {
 	switch (menuId) {
 	case kDuckmanMainMenu:
 		return createMainMenu();
+	case kDuckmanMainMenuDemo:
+		return createMainMenuDemo();
 	case kDuckmanPauseMenu:
 		return createPauseMenu();
 	case kDuckmanQueryRestartMenu:
@@ -107,6 +109,15 @@ BaseMenu *DuckmanMenuSystem::createMainMenu() {
 	return menu;
 }
 
+BaseMenu *DuckmanMenuSystem::createMainMenuDemo() {
+	BaseMenu *menu = new BaseMenu(this, 0x00120003, 12, 17, 11, 27, 0);
+	menu->addMenuItem(new MenuItem("Start New Game", new MenuActionReturnChoice(this, 2)));
+	menu->addMenuItem(new MenuItem("Load Saved Game", new MenuActionLoadGame(this, 1)));
+	menu->addMenuItem(new MenuItem("Options", new MenuActionEnterMenu(this, kDuckmanOptionsMenu)));
+	menu->addMenuItem(new MenuItem("Quit Game", new MenuActionEnterQueryMenu(this, kDuckmanQueryQuitMenu, 3)));
+	return menu;
+}
+
 BaseMenu *DuckmanMenuSystem::createLoadGameMenu() {
 	return 0; // TODO
 }
@@ -277,10 +288,9 @@ int DuckmanMenuSystem::convertRootMenuId(uint32 menuId) {
 	case 0x180007: // load game failed menu
 		return kDuckmanLoadGameFailedMenu;
 
-	/* TODO CHECKME Another pause menu?
 	case 0x180008:
-		menuData = &g_menuDataPause;
-	*/
+		return kDuckmanMainMenuDemo;
+
 	default:
 		error("DuckmanMenuSystem() Menu ID %08X not found", menuId);
 	}
diff --git a/engines/illusions/duckman/menusystem_duckman.h b/engines/illusions/duckman/menusystem_duckman.h
index bc67d73147..e1f2033c6a 100644
--- a/engines/illusions/duckman/menusystem_duckman.h
+++ b/engines/illusions/duckman/menusystem_duckman.h
@@ -36,6 +36,7 @@ enum SliderActionType {
 
 enum {
 	kDuckmanMainMenu,
+	kDuckmanMainMenuDemo,
 	kDuckmanLoadGameMenu,
 	kDuckmanLoadGameFailedMenu,
 	kDuckmanOptionsMenu,
@@ -66,6 +67,7 @@ public://protected:
 	BaseMenu *getMenuById(int menuId) override;
 	BaseMenu *createMenuById(int menuId);
 	BaseMenu *createMainMenu();
+	BaseMenu *createMainMenuDemo();
 	BaseMenu *createLoadGameMenu();
 	BaseMenu *createLoadGameFailedMenu();
 	BaseMenu *createOptionsMenu();




More information about the Scummvm-git-logs mailing list