[Scummvm-cvs-logs] SF.net SVN: scummvm:[44608] scummvm/trunk/engines/kyra

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Sun Oct 4 17:12:05 CEST 2009


Revision: 44608
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44608&view=rev
Author:   athrxx
Date:     2009-10-04 15:12:05 +0000 (Sun, 04 Oct 2009)

Log Message:
-----------
LOL/PC-98: fixed save menu

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui_lol.cpp
    scummvm/trunk/engines/kyra/screen_lol.cpp

Modified: scummvm/trunk/engines/kyra/gui_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lol.cpp	2009-10-04 15:06:50 UTC (rev 44607)
+++ scummvm/trunk/engines/kyra/gui_lol.cpp	2009-10-04 15:12:05 UTC (rev 44608)
@@ -2437,10 +2437,14 @@
 			int my = d->sy - 1;
 			int mw = (d->w << 3) + 1;
 			int mh = d->h + 1;
-			if (_vm->gameFlags().use16ColorMode)
-				_screen->drawShadedBox(mx, my, mx + mw, my + mh, 0xdd, 0xff);
-			else
+			if (_vm->gameFlags().use16ColorMode) {
+				_screen->drawShadedBox(mx, my, mx + mw + 1, my + mh + 1, 0xdd, 0xff);
+				_screen->drawLine(true, mx + mw + 1, my, mh + 1, 0xcc);
+				_screen->drawLine(false, mx, my + mh + 1, mw + 2, 0xcc);
+			} else {
 				_screen->drawShadedBox(mx, my, mx + mw, my + mh, 227, 223);
+			}
+
 			int pg = _screen->setCurPage(0);
 			_vm->_txt->clearDim(8);
 			textCursorTimer = 0;
@@ -2455,7 +2459,7 @@
 
 			_screen->fprintString("%s", (d->sx << 3), d->sy + 2, d->unk8, d->unkA, 0, _saveDescription);
 			f = _screen->setFont(f);
-			_screen->fillRect((d->sx << 3) + fC, d->sy, (d->sx << 3) + fC + wW, d->sy + d->h - 1, d->unk8, 0);
+			_screen->fillRect((d->sx << 3) + fC, d->sy, (d->sx << 3) + fC + wW, d->sy + d->h - (_vm->gameFlags().use16ColorMode ? 2 : 1), d->unk8, 0);
 			_screen->setCurPage(pg);
 		}
 
@@ -2468,17 +2472,33 @@
 					fC = _screen->getTextWidth(_saveDescription);
 					textCursorStatus ^= 1;
 					textCursorTimer = _vm->_system->getMillis() + 20 * _vm->_tickLength;
-					_screen->fillRect((d->sx << 3) + fC, d->sy, (d->sx << 3) + fC + wW, d->sy + d->h - 1, textCursorStatus ? d->unk8 : d->unkA, 0);
+					_screen->fillRect((d->sx << 3) + fC, d->sy, (d->sx << 3) + fC + wW, d->sy + d->h - (_vm->gameFlags().use16ColorMode ? 2 : 1), textCursorStatus ? d->unk8 : d->unkA, 0);
 					_screen->updateScreen();
 					f = _screen->setFont(f);
 				}
 			}
 
 			if (getInput()) {
-				if (!_newMenu)
-					_newMenu = (_currentMenu != &_audioOptions) ? _currentMenu : 0;
-				else
+				if (!_newMenu) {
+					if (_currentMenu == &_savenameMenu) {
+						Screen::FontId f = _screen->setFont(Screen::FID_9_FNT);
+						_screen->fillRect((d->sx << 3) + fC, d->sy, (d->sx << 3) + fC + wW, d->sy + d->h - (_vm->gameFlags().use16ColorMode ? 2 : 1), d->unkA, 0);
+						fC = _screen->getTextWidth(_saveDescription);
+						while (fC >= fW) {
+							_saveDescription[strlen(_saveDescription) - 1] = 0;
+							fC = _screen->getTextWidth(_saveDescription);
+						}
+						_screen->fprintString("%s", (d->sx << 3), d->sy + 2, d->unk8, d->unkA, 0, _saveDescription);
+						_screen->fillRect((d->sx << 3) + fC, d->sy, (d->sx << 3) + fC + wW, d->sy + d->h - (_vm->gameFlags().use16ColorMode ? 2 : 1), textCursorStatus ? d->unk8 : d->unkA, 0);
+						f = _screen->setFont(f);
+						textCursorTimer = 0;
+						textCursorStatus = 0;
+					} else {
+						_newMenu = (_currentMenu != &_audioOptions) ? _currentMenu : 0;
+					}
+				} else {
 					_lastMenu = _menuResult == -1 ? _lastMenu : _currentMenu;
+				}
 			}
 
 			if (!_menuResult)

Modified: scummvm/trunk/engines/kyra/screen_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen_lol.cpp	2009-10-04 15:06:50 UTC (rev 44607)
+++ scummvm/trunk/engines/kyra/screen_lol.cpp	2009-10-04 15:12:05 UTC (rev 44608)
@@ -161,7 +161,7 @@
 	drawClippedLine(x1 + 1, y2 - 1, x2, y2 - 1, color2);
 	drawClippedLine(x1, y2, x2, y2, color2);
 
-	if (_use16ColorMode)
+	if (_use16ColorMode && color1 > color2)
 		drawBox(x1, y1, x2, y2, 0);
 
 	showMouse();


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