[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