[Scummvm-cvs-logs] SF.net SVN: scummvm: [22826] scummvm/trunk/engines/simon/saveload.cpp

kirben at users.sourceforge.net kirben at users.sourceforge.net
Thu Jun 1 20:11:01 CEST 2006


Revision: 22826
Author:   kirben
Date:     2006-06-01 20:10:18 -0700 (Thu, 01 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22826&view=rev

Log Message:
-----------
Improve Hebrew support

Modified Paths:
--------------
    scummvm/trunk/engines/simon/saveload.cpp
Modified: scummvm/trunk/engines/simon/saveload.cpp
===================================================================
--- scummvm/trunk/engines/simon/saveload.cpp	2006-06-02 02:35:04 UTC (rev 22825)
+++ scummvm/trunk/engines/simon/saveload.cpp	2006-06-02 03:10:18 UTC (rev 22826)
@@ -197,16 +197,25 @@
 	} while (--i);
 }
 
+
+const byte hebrewKeyTable[96] = {
+	32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 90, 45, 85, 47, 48, 49, 50,
+	51, 52, 53, 54, 55, 56, 57, 83, 83, 90, 61, 85, 63, 35, 89, 80, 65, 66, 87,
+	75, 82, 73, 79, 71, 76, 74, 86, 78, 77, 84, 47, 88, 67, 64, 69, 68, 44, 81,
+	72, 70, 91, 92, 93, 94, 95, 96, 89, 80, 65, 66, 87, 75, 82, 73, 79, 71, 76,
+	74, 86, 78, 77, 84, 47, 88, 67, 64, 69, 68, 44, 81, 72, 70,
+	123, 124, 125, 126, 127,
+};
+
 void SimonEngine::saveOrLoadDialog(bool load) {
 	time_t save_time;
 	int number_of_savegames;
-	int i;
-	int unk132_result;
+	int i, name_len, unk132_result;
 	WindowBlock *window;
 	char *name;
-	int name_len;
 	bool b;
 	char buf[108];
+	int maxChar = (_language == Common::HB_ISR) ? 155: 128;
 
 	_saveOrLoad = load;
 
@@ -302,7 +311,7 @@
 				if (b) {
 					if (i == 205)
 						goto get_out;
-					enableBox(0xd0 + unk132_result);
+					enableBox(208 + unk132_result);
 					if (_saveLoadFlag) {
 						clearCharacter(_windowArray[5], 8);
 						// move code
@@ -312,11 +321,18 @@
 
 				// is_not_b
 				if (!_saveLoadFlag) {
-					enableBox(0xd0 + unk132_result);
+					enableBox(208 + unk132_result);
 					goto restart;
 				}
-			} while (i >= 0x80 || i == 0);
+			} while (i >= maxChar || i == 0);
 
+			if (_language == Common::HB_ISR) {
+				if (i >= 128)
+					i -= 64;
+				else if (i >= 32)
+					i = hebrewKeyTable[i - 32];
+			}
+
 			// after_do_2
 			clearCharacter(_windowArray[5], 8);
 			if (i == 10 || i == 13)


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