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

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Fri Apr 4 03:12:35 CEST 2008


Revision: 31373
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31373&view=rev
Author:   athrxx
Date:     2008-04-03 18:12:35 -0700 (Thu, 03 Apr 2008)

Log Message:
-----------
This fixes the menus for fm-towns and floppy versions (only load and death menu atm).

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui_v2.cpp
    scummvm/trunk/engines/kyra/gui_v2.h
    scummvm/trunk/engines/kyra/staticres.cpp

Modified: scummvm/trunk/engines/kyra/gui_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_v2.cpp	2008-04-03 23:41:24 UTC (rev 31372)
+++ scummvm/trunk/engines/kyra/gui_v2.cpp	2008-04-04 01:12:35 UTC (rev 31373)
@@ -581,21 +581,21 @@
 	if (!menu.menuNameId)
 		return 0;
 
-	return _vm->getTableString(menu.menuNameId, _vm->_optionsBuffer, 1);
+	return _vm->getTableString(menu.menuNameId, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 1);
 }
 
 const char *GUI_v2::getMenuItemTitle(const MenuItem &menuItem) {
 	if (!menuItem.itemId)
 		return 0;
 
-	return _vm->getTableString(menuItem.itemId, _vm->_optionsBuffer, 1);
+	return _vm->getTableString(menuItem.itemId, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 1);
 }
 
 const char *GUI_v2::getMenuItemLabel(const MenuItem &menuItem) {
 	if (!menuItem.labelId)
 		return 0;
 
-	return _vm->getTableString(menuItem.labelId, _vm->_optionsBuffer, 1);
+	return _vm->getTableString(menuItem.labelId, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 1);
 }
 
 #pragma mark -
@@ -1329,7 +1329,7 @@
 
 void GUI_v2::setupSavegameNames(Menu &menu, int num) {
 	for (int i = 0; i < num; ++i) {
-		strcpy(_vm->getTableString(menu.item[i].itemId, _vm->_optionsBuffer, 0), "");
+		strcpy(_vm->getTableString(menu.item[i].itemId, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 0), "");
 		menu.item[i].saveSlot = -1;
 		menu.item[i].enabled = false;
 	}
@@ -1338,16 +1338,16 @@
 	Common::InSaveFile *in;
 	for (int i = 0; i < num; ++i) {
 		if ((in = _vm->openSaveForReading(_vm->getSavegameFilename(i + _savegameOffset), header)) != 0) {
-			strncpy(_vm->getTableString(menu.item[i].itemId, _vm->_optionsBuffer, 0), header.description.c_str(), 80);
+			strncpy(_vm->getTableString(menu.item[i].itemId, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 0), header.description.c_str(), 80);
 			menu.item[i].saveSlot = i + _savegameOffset;
 			menu.item[i].enabled = true;
 			delete in;
 		}
 	}
-
+	
 	if (_savegameOffset == 0) {
-		char *dst = _vm->getTableString(menu.item[0].itemId, _vm->_optionsBuffer, 0);
-		const char *src = _vm->getTableString(34, _vm->_optionsBuffer, 0);
+		char *dst = _vm->getTableString(menu.item[0].itemId, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 0);
+		const char *src = _vm->getTableString(_vm->gameFlags().isTalkie ? 34 : 42, _vm->gameFlags().isTalkie ? _vm->_optionsBuffer : _vm->_cCodeBuffer, 0);
 		strcpy(dst, src);
 	}
 }

Modified: scummvm/trunk/engines/kyra/gui_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/gui_v2.h	2008-04-03 23:41:24 UTC (rev 31372)
+++ scummvm/trunk/engines/kyra/gui_v2.h	2008-04-04 01:12:35 UTC (rev 31373)
@@ -163,6 +163,9 @@
 	// load menu
 	int loadMenu(Button *caller);
 	int clickLoadSlot(Button *caller);
+
+	static const uint16 MenuStrings_TALKIE[];
+	static const uint16 MenuStrings_OTHER[];
 };
 
 } // end of namespace Kyra

Modified: scummvm/trunk/engines/kyra/staticres.cpp
===================================================================
--- scummvm/trunk/engines/kyra/staticres.cpp	2008-04-03 23:41:24 UTC (rev 31372)
+++ scummvm/trunk/engines/kyra/staticres.cpp	2008-04-04 01:12:35 UTC (rev 31373)
@@ -1508,7 +1508,9 @@
 	Button::Callback clickLoadSlotFunctor = BUTTON_FUNCTOR(GUI_v2, this, &GUI_v2::clickLoadSlot);
 	Button::Callback clickLoadMenuFunctor = BUTTON_FUNCTOR(GUI_v2, this, &GUI_v2::loadMenu);
 
-	GUI_V2_MENU(_loadMenu, -1, -1, 0x120, 0xA0, 0xF8, 0xF9, 0xFA, 8, 0xFB, -1, 8, 0, 6, 0x84, 0x16, 0x84, 0x7C);
+	const uint16 *menuStr = _vm->gameFlags().isTalkie ? MenuStrings_TALKIE : MenuStrings_OTHER;
+	
+	GUI_V2_MENU(_loadMenu, -1, -1, 0x120, 0xA0, 0xF8, 0xF9, 0xFA, menuStr[4 * 8], 0xFB, -1, 8, 0, 6, 0x84, 0x16, 0x84, 0x7C);
 	GUI_V2_MENU_ITEM(_loadMenu.item[0], 1, 0x29, -1, 0x27, 0x100, 0xF, 0xFC, 0xFD, 5, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
 	GUI_V2_MENU_ITEM(_loadMenu.item[1], 1, 0x2A, -1, 0x38, 0x100, 0xF, 0xFC, 0xFD, 5, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
 	GUI_V2_MENU_ITEM(_loadMenu.item[2], 1, 0x2B, -1, 0x49, 0x100, 0xF, 0xFC, 0xFD, 5, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
@@ -1516,18 +1518,43 @@
 	GUI_V2_MENU_ITEM(_loadMenu.item[4], 1, 0x2D, -1, 0x6B, 0x100, 0xF, 0xFC, 0xFD, 5, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
 	for (int i = 0; i <= 4; ++i)
 		_loadMenu.item[i].callback = clickLoadSlotFunctor;
-
 	GUI_V2_MENU_ITEM(_loadMenu.item[5], 1, 0x0B, 0xB8, 0x86, 0x58, 0xF, 0xFC, 0xFD, -1, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
-	_loadMenu.item[6].enabled = false;
+		_loadMenu.item[6].enabled = false;
+	for (int i = 0; i < 7; ++i)
+		_loadMenu.item[i].itemId = menuStr[4 * 8 + i + 1];
 
-	GUI_V2_MENU(_deathMenu, -1, -1, 0xD0, 0x4C, 0xF8, 0xF9, 0xFA, 0xE, 0xFB, -1, 8, 0, 2, -1, -1, -1, -1);
+	GUI_V2_MENU(_deathMenu, -1, -1, 0xD0, 0x4C, 0xF8, 0xF9, 0xFA, menuStr[7 * 8], 0xFB, -1, 8, 0, 2, -1, -1, -1, -1);
 	GUI_V2_MENU_ITEM(_deathMenu.item[0], 1, 2, -1, 0x1E, 0xB4, 0x0F, 0xFC, 0xFD, 8, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
 	_deathMenu.item[0].callback = clickLoadMenuFunctor;
 	GUI_V2_MENU_ITEM(_deathMenu.item[1], 1, 5, -1, 0x2F, 0xB4, 0x0F, 0xFC, 0xFD, 8, 0xF8, 0xF9, 0xFA, -1, 0, 0, 0, 0);
 	for (int i = 2; i <= 6; ++i)
 		_deathMenu.item[i].enabled = false;
+	for (int i = 0; i < 2; ++i)
+		_deathMenu.item[i].itemId = menuStr[7 * 8 + i + 1];
 }
 
+const uint16 GUI_v2::MenuStrings_TALKIE[] =	{
+	0x001, 0x002, 0x003, 0x023, 0x004, 0x025, 0x005, 0x006,	// Main Menu String IDs
+	0x025, 0x000, 0x000, 0x000, 0x010, 0x000, 0x000, 0x000,	// Options Menu String IDs
+	0x007, 0x000, 0x000, 0x000, 0x010, 0x000, 0x000, 0x000,	// Audio Menu String IDs
+	0x000, 0x014, 0x013, 0x000, 0x000, 0x000, 0x000, 0x000,	// Menu3 Menu String IDs
+	0x008, 0x029, 0x02A, 0x02B, 0x02C, 0x02D, 0x00B, 0x000,	// Load Menu String IDs
+	0x009, 0x029, 0x02A, 0x02B, 0x02C, 0x02D, 0x00B, 0x000,	// Save Menu String IDs
+	0x00C, 0x00D, 0x00B, 0x000, 0x000, 0x000, 0x000, 0x000,	// Menu6 Menu String IDs
+	0x00E, 0x002, 0x005, 0x000, 0x000, 0x000, 0x000, 0x000	// Death Menu String IDs
+};
+
+const uint16 GUI_v2::MenuStrings_OTHER[] =	{
+	0x009, 0x00A, 0x00B, 0x001, 0x00C, 0x00D, 0x00E, 0x000,	// Main Menu String IDs
+	0x00F, 0x02B, 0x02C, 0x02D, 0x02E, 0x018, 0x000, 0x000,	// Options Menu String IDs
+	0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,	// Dummy
+	0x000, 0x01C, 0x01B, 0x000, 0x000, 0x000, 0x000, 0x000,	// Menu3 Menu String IDs
+	0x010, 0x02F, 0x030, 0x031, 0x032, 0x033, 0x013, 0x000,	// Load Menu String IDs
+	0x011, 0x02F, 0x030, 0x031, 0x032, 0x033, 0x013, 0x000,	// Save Menu String IDs
+	0x014, 0x015, 0x013, 0x3E8, 0x000, 0x000, 0x000, 0x000,	// Menu6 String IDs
+	0x016, 0x00A, 0x00D, 0x000, 0x000, 0x000, 0x000, 0x000	// Death Menu String IDs
+};
+
 const uint16 KyraEngine_v2::_itemMagicTable[] = {
 	0x0D,  0x0A,  0x0B,    0,
 	0x0D,  0x0B,  0x0A,    0,


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