[Scummvm-git-logs] scummvm master -> 5379162f79c25ec5ee3f21189f0f45dff8bf0e01

bluegr bluegr at gmail.com
Tue Mar 3 00:04:19 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:
5379162f79 PINK: Simplify the PDA country subjects code, and fix Egypt subjects


Commit: 5379162f79c25ec5ee3f21189f0f45dff8bf0e01
    https://github.com/scummvm/scummvm/commit/5379162f79c25ec5ee3f21189f0f45dff8bf0e01
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2020-03-03T02:03:38+02:00

Commit Message:
PINK: Simplify the PDA country subjects code, and fix Egypt subjects

Changed paths:
    engines/pink/gui.cpp
    engines/pink/pink.h


diff --git a/engines/pink/gui.cpp b/engines/pink/gui.cpp
index fb1a42441a..815faadff6 100644
--- a/engines/pink/gui.cpp
+++ b/engines/pink/gui.cpp
@@ -140,6 +140,9 @@ void PinkEngine::initMenu() {
 }
 
 void PinkEngine::executeMenuCommand(uint id) {
+	if (executePageChangeCommand(id))
+		return;
+
 	switch (id) {
 	case kNewGameAction: {
 		const Common::String moduleName = _modules[0]->getName();
@@ -171,155 +174,7 @@ void PinkEngine::executeMenuCommand(uint id) {
 		_actor->loadPDA(kNavigatePage);
 		break;
 
-	case kShowAustraliaArt:
-		_actor->loadPDA("AUSART");
-		break;
-	case kShowAustraliaCloth:
-		_actor->loadPDA("AUSCLO");
-		break;
-	case kShowAustraliaFood:
-		_actor->loadPDA("AUSFOO");
-		break;
-	case kShowAustraliaHistory:
-		_actor->loadPDA("AUSHIS");
-		break;
-	case kShowAustraliaNature:
-		_actor->loadPDA("AUSNAT");
-		break;
-	case kShowAustraliaPeople:
-		_actor->loadPDA("AUSPEO");
-		break;
-	case kShowAustraliaPlaces:
-		_actor->loadPDA("AUSPLA");
-		break;
-	case kShowAustraliaReligion:
-		_actor->loadPDA("AUSREL");
-		break;
-
-	case kShowBhutanArt:
-		_actor->loadPDA("BHUART");
-		break;
-	case kShowBhutanCloth:
-		_actor->loadPDA("BHUCLO");
-		break;
-	case kShowBhutanFood:
-		_actor->loadPDA("BHUFOO");
-		break;
-	case kShowBhutanHistory:
-		_actor->loadPDA("BHUHIS");
-		break;
-	case kShowBhutanNature:
-		_actor->loadPDA("BHUNAT");
-		break;
-	case kShowBhutanPeople:
-		_actor->loadPDA("BHUPEO");
-		break;
-	case kShowBhutanPlaces:
-		_actor->loadPDA("BHUPLA");
-		break;
-	case kShowBhutanReligion:
-		_actor->loadPDA("BHUREL");
-		break;
-
-	case kShowChinaArt:
-		_actor->loadPDA("CHIART");
-		break;
-	case kShowChinaCloth:
-		_actor->loadPDA("CHICLO");
-		break;
-	case kShowChinaFood:
-		_actor->loadPDA("CHIFOO");
-		break;
-	case kShowChinaHistory:
-		_actor->loadPDA("CHIHIS");
-		break;
-	case kShowChinaNature:
-		_actor->loadPDA("CHINAT");
-		break;
-	case kShowChinaPeople:
-		_actor->loadPDA("CHIPEO");
-		break;
-	case kShowChinaPlaces:
-		_actor->loadPDA("CHIPLA");
-		break;
-	case kShowChinaReligion:
-		_actor->loadPDA("CHIREL");
-		break;
-
-	case kShowEnglandArt:
-		_actor->loadPDA("BRIART");
-		break;
-	case kShowEnglandCloth:
-		_actor->loadPDA("BRICLO");
-		break;
-	case kShowEnglandFood:
-		_actor->loadPDA("BRIFOO");
-		break;
-	case kShowEnglandHistory:
-		_actor->loadPDA("BRIHIS");
-		break;
-	case kShowEnglandNature:
-		_actor->loadPDA("BRINAT");
-		break;
-	case kShowEnglandPeople:
-		_actor->loadPDA("BRIPEO");
-		break;
-	case kShowEnglandPlaces:
-		_actor->loadPDA("BRIPLA");
-		break;
-	case kShowEnglandReligion:
-		_actor->loadPDA("BRIREL");
-		break;
-
-	case kShowEgyptArt:
-		_actor->loadPDA("BRIART");
-		break;
-	case kShowEgyptCloth:
-		_actor->loadPDA("BRICLO");
-		break;
-	case kShowEgyptFood:
-		_actor->loadPDA("BRIFOO");
-		break;
-	case kShowEgyptHistory:
-		_actor->loadPDA("BRIHIS");
-		break;
-	case kShowEgyptNature:
-		_actor->loadPDA("BRINAT");
-		break;
-	case kShowEgyptPeople:
-		_actor->loadPDA("BRIPEO");
-		break;
-	case kShowEgyptPlaces:
-		_actor->loadPDA("BRIPLA");
-		break;
-	case kShowEgyptReligion:
-		_actor->loadPDA("BRIREL");
-		break;
-
-	case kShowIndiaArt:
-		_actor->loadPDA("INDART");
-		break;
-	case kShowIndiaCloth:
-		_actor->loadPDA("INDCLO");
-		break;
-	case kShowIndiaFood:
-		_actor->loadPDA("INDFOO");
-		break;
-	case kShowIndiaHistory:
-		_actor->loadPDA("INDHIS");
-		break;
-	case kShowIndiaNature:
-		_actor->loadPDA("INDNAT");
-		break;
-	case kShowIndiaPeople:
-		_actor->loadPDA("INDPEO");
-		break;
-	case kShowIndiaPlaces:
-		_actor->loadPDA("INDPLA");
-		break;
-	case kShowIndiaReligion:
-		_actor->loadPDA("INDREL");
-		break;
+	// Cases kShowAustraliaArt - kShowIndiaReligion are handled in executePageChangeCommand()
 
 	case kShowContent:
 		_actor->loadPDA("TOC");
@@ -362,6 +217,22 @@ void PinkEngine::executeMenuCommand(uint id) {
 	}
 }
 
+// Australia, Bhutan, China, Britain, Egypt, India
+static const char *pageChangePrefixes[] = { "AUS", "BHU", "CHI", "BRI", "EGY", "IND" };
+// Art, Cloth, Food, History, Nature, People, Places, Religion
+static const char *pageChangeSuffixes[] = { "ART", "CLO", "FOO", "HIS", "NAT", "PEO", "PLA", "REL" };
+
+bool PinkEngine::executePageChangeCommand(uint id) {
+	if (id >= kShowAustraliaArt && id <= kShowIndiaReligion) {
+		Common::String prefix = pageChangePrefixes[(id - kShowAustraliaArt) / 8];
+		Common::String suffix = pageChangeSuffixes[(id - kShowAustraliaArt) % 8];
+		_actor->loadPDA(prefix + suffix);
+		return true;
+	}
+
+	return false;
+}
+
 void PinkEngine::openLocalWebPage(const Common::String &pageName) const {
 	Common::FSNode gameFolder= Common::FSNode(ConfMan.get("path"));
 	Common::FSNode filePath = gameFolder.getChild("INSTALL").getChild(pageName);
diff --git a/engines/pink/pink.h b/engines/pink/pink.h
index 6d4a922b4e..6f5ddba2c7 100644
--- a/engines/pink/pink.h
+++ b/engines/pink/pink.h
@@ -123,6 +123,7 @@ public:
 	bool checkValueOfVariable(const Common::String &variable, const Common::String &value) const;
 
 	void executeMenuCommand(uint id);
+	bool executePageChangeCommand(uint id);
 
 	Common::Language getLanguage() const;
 	OrbFile *getOrb()  { return &_orb; }




More information about the Scummvm-git-logs mailing list