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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun Sep 20 15:21:18 CEST 2009


Revision: 44208
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44208&view=rev
Author:   lordhoto
Date:     2009-09-20 13:21:18 +0000 (Sun, 20 Sep 2009)

Log Message:
-----------
Fix bug in LoLEngine::decodeSjis.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/lol.cpp

Modified: scummvm/trunk/engines/kyra/lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/lol.cpp	2009-09-20 13:19:12 UTC (rev 44207)
+++ scummvm/trunk/engines/kyra/lol.cpp	2009-09-20 13:21:18 UTC (rev 44208)
@@ -1060,29 +1060,22 @@
 	char d[3];
 	s[1] = 0;
 
-	uint8 cmd = *src++;
-
-	while (cmd) {
+	uint8 cmd = 0;
+	while ((cmd = *src++) != 0) {
 		if (cmd == 27) {
-			cmd = *src & 0x7f;
-			src++;
-
-			for (int i = 0; i < cmd; i ++) {
-				*dst++ = *src++;
-				*dst++ = *src++;
-			}
-			cmd = *src++;
-
+			cmd = *src++ & 0x7f;
+			memcpy(dst, src, cmd * 2);
+			dst += cmd * 2;
+			src += cmd * 2;
 		} else {
-			s[0] = *src++;
-			Util::decodeString1(s, d);
-			*dst++ = d[0];
-			cmd = *src++;
+			s[0] = cmd;
+			int size = Util::decodeString1(s, d);
+			memcpy(dst, d, size);
+			dst += size;
 		}
 	}
 
-	if (!cmd)
-		*dst = 0;
+	*dst = 0;
 }
 
 bool LoLEngine::addCharacter(int id) {


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