[Scummvm-cvs-logs] SF.net SVN: scummvm:[54656] scummvm/trunk/engines/mohawk

fuzzie at users.sourceforge.net fuzzie at users.sourceforge.net
Tue Nov 30 00:19:59 CET 2010


Revision: 54656
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54656&view=rev
Author:   fuzzie
Date:     2010-11-29 23:19:59 +0000 (Mon, 29 Nov 2010)

Log Message:
-----------
MOHAWK: implement hard-coded LB language/options GUI

Modified Paths:
--------------
    scummvm/trunk/engines/mohawk/livingbooks.cpp
    scummvm/trunk/engines/mohawk/livingbooks.h

Modified: scummvm/trunk/engines/mohawk/livingbooks.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/livingbooks.cpp	2010-11-29 23:19:43 UTC (rev 54655)
+++ scummvm/trunk/engines/mohawk/livingbooks.cpp	2010-11-29 23:19:59 UTC (rev 54656)
@@ -72,6 +72,7 @@
 	_screenWidth = _screenHeight = 0;
 
 	_curLanguage = 1;
+	_curSelectedPage = 1;
 
 	_alreadyShowedIntro = false;
 
@@ -342,7 +343,7 @@
 
 			switch (_curPage) {
 			case 1:
-				debug(2, "updatePage() for control page 1");
+				debug(2, "updatePage() for control page 1 (menu)");
 
 				for (uint16 i = 0; i < _numLanguages; i++) {
 					item = getItemById(100 + i);
@@ -372,7 +373,7 @@
 				break;
 
 			case 2:
-				debug(2, "updatePage() for control page 2");
+				debug(2, "updatePage() for control page 2 (quit)");
 
 				item = getItemById(12);
 				if (item)
@@ -383,7 +384,24 @@
 				break;
 
 			case 3:
-				// TODO: hard-coded handling
+				debug(2, "updatePage() for control page 3 (options)");
+
+				for (uint i = 0; i < _numLanguages; i++) {
+					item = getItemById(100 + i);
+					if (item)
+						item->setVisible(_curLanguage == i + 1);
+				}
+				for (uint i = 0; i < _numPages; i++) {
+					item = getItemById(1000 + i);
+					if (item)
+						item->setVisible(_curSelectedPage == i + 1);
+					item = getItemById(1100 + i);
+					if (item)
+						item->setVisible(_curSelectedPage == i + 1);
+				}
+				item = getItemById(202);
+				if (item)
+					item->setVisible(false);
 				break;
 			}
 		}
@@ -699,8 +717,13 @@
 
 			default:
 				if (event.param >= 100 && event.param < 100 + (uint)_numLanguages) {
-					// TODO: language selection?
-					warning("no language selection yet");
+					uint newLanguage = event.param - 99;
+					if (newLanguage == _curLanguage)
+						break;
+					item = getItemById(99 + _curLanguage);
+					if (item)
+						item->seek(1);
+					_curLanguage = newLanguage;
 				} else if (event.param >= 200 && event.param < 200 + (uint)_numLanguages) {
 					// start game, in read mode
 					loadPage(kLBReadMode, 1, 0);
@@ -764,17 +787,43 @@
 				break;
 
 			case 2:
+				// back
 				item = getItemById(2);
 				if (item)
 					item->seek(1);
-				// TODO: book seeking
+				if (_curSelectedPage == 1) {
+					_curSelectedPage = _numPages;
+				} else {
+					_curSelectedPage--;
+				}
+				for (uint i = 0; i < _numPages; i++) {
+					item = getItemById(1000 + i);
+					if (item)
+						item->setVisible(_curSelectedPage == i + 1);
+					item = getItemById(1100 + i);
+					if (item)
+						item->setVisible(_curSelectedPage == i + 1);
+				}
 				break;
 
 			case 3:
+				// forward
 				item = getItemById(3);
 				if (item)
 					item->seek(1);
-				// TODO: book seeking
+				if (_curSelectedPage == _numPages) {
+					_curSelectedPage = 1;
+				} else {
+					_curSelectedPage++;
+				}
+				for (uint i = 0; i < _numPages; i++) {
+					item = getItemById(1000 + i);
+					if (item)
+						item->setVisible(_curSelectedPage == i + 1);
+					item = getItemById(1100 + i);
+					if (item)
+						item->setVisible(_curSelectedPage == i + 1);
+				}
 				break;
 
 			case 4:
@@ -786,7 +835,9 @@
 				break;
 
 			case 202:
-				// TODO: loadPage(kLBPlayMode, book);
+				if (!loadPage(kLBPlayMode, _curSelectedPage, 0))
+					if (!loadPage(kLBPlayMode, _curSelectedPage, 1))
+						error("failed to load page %d", _curSelectedPage);
 				break;
 			}
 			break;

Modified: scummvm/trunk/engines/mohawk/livingbooks.h
===================================================================
--- scummvm/trunk/engines/mohawk/livingbooks.h	2010-11-29 23:19:43 UTC (rev 54655)
+++ scummvm/trunk/engines/mohawk/livingbooks.h	2010-11-29 23:19:59 UTC (rev 54656)
@@ -456,6 +456,7 @@
 	bool _poetryMode;
 
 	uint16 _curLanguage;
+	uint16 _curSelectedPage;
 	bool _alreadyShowedIntro;
 
 	// String Manipulation Functions


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list