[Scummvm-cvs-logs] SF.net SVN: scummvm:[53191] scummvm/trunk/engines/sword25

sev at users.sourceforge.net sev at users.sourceforge.net
Wed Oct 13 00:14:14 CEST 2010


Revision: 53191
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53191&view=rev
Author:   sev
Date:     2010-10-12 22:14:14 +0000 (Tue, 12 Oct 2010)

Log Message:
-----------
SWORD25: get rid of custom md5.cpp and Windows-specific debug stuff

All version ID generation is useless for ScummVM as we have our own clear
versions. Thus removing all of that.

Modified Paths:
--------------
    scummvm/trunk/engines/sword25/kernel/kernel_script.cpp
    scummvm/trunk/engines/sword25/kernel/persistenceservice.cpp
    scummvm/trunk/engines/sword25/module.mk

Removed Paths:
-------------
    scummvm/trunk/engines/sword25/kernel/debug/debugtools.cpp
    scummvm/trunk/engines/sword25/kernel/debug/debugtools.h
    scummvm/trunk/engines/sword25/kernel/md5.cpp
    scummvm/trunk/engines/sword25/kernel/md5.h
    scummvm/trunk/engines/sword25/kernel/wincodegenerator.cpp
    scummvm/trunk/engines/sword25/kernel/wincodegenerator.h
    scummvm/trunk/engines/sword25/kernel/wincodegenerator_win32.cpp

Deleted: scummvm/trunk/engines/sword25/kernel/debug/debugtools.cpp
===================================================================
--- scummvm/trunk/engines/sword25/kernel/debug/debugtools.cpp	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/debug/debugtools.cpp	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,171 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-#include <vector>
-#include <string>
-#include <sstream>
-#include <fstream>
-using namespace std;
-
-#include "sword25/kernel/md5.h"
-#include "sword25/kernel/filesystemutil.h"
-#include "sword25/kernel/debug/debugtools.h"
-
-// -----------------------------------------------------------------------------
-// Konstanten und Hilfsfunktionen
-// -----------------------------------------------------------------------------
-
-namespace
-{
-	const char *		VERSION_ID_ERROR = "???";
-	const unsigned int	READBUFFER_SIZE = 1024 * 100;
-
-	const char *		SUBVERSION_ENTRIES_FILENAME = ".svn\\entries";
-
-	// -------------------------------------------------------------------------
-
-	unsigned int ParseUnsignedInt(const string & Str, bool & Success)
-	{
-		istringstream iss(Str);
-
-		unsigned int Result = 0;
-		iss >> Result;
-
-		Success = !iss.fail();
-		
-		return Result;
-	}
-}
-
-// -----------------------------------------------------------------------------
-
-const char * BS_Debugtools::GetVersionID()
-{
-	// Falls die Versions-ID noch nicht bekannt ist, muss sie bestimmt werden
-	static string VersionIDString;
-	if (VersionIDString.size() == 0)
-	{
-		// Dateinamen der EXE-Datei bestimmen
-		char FileName[MAX_PATH + 1];
-		if (GetModuleFileName(0, FileName, sizeof(FileName)) == 0) return VERSION_ID_ERROR;
-
-		// Datei \xF6ffnen
-		HANDLE FileHandle = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
-		if (INVALID_HANDLE_VALUE == FileHandle) return VERSION_ID_ERROR;
-
-		// Datei st\xFCckchenweise Einlesen und MD5-Hash bilden
-		BS_MD5 md5;
-		std::vector<unsigned char> ReadBuffer(READBUFFER_SIZE);
-		DWORD BytesRead = 0;
-		do
-		{
-			// MD5-Hash f\xFCr das eingelesene Dateist\xFCck berechnen.
-			md5.Update(&ReadBuffer[0], BytesRead);
-
-			if (ReadFile(FileHandle, &ReadBuffer[0], READBUFFER_SIZE, &BytesRead, 0) == FALSE)
-			{
-				CloseHandle(FileHandle);
-				return VERSION_ID_ERROR;
-			}
-		} while (BytesRead > 0);
-
-		// Datei schlie\xDFen
-		CloseHandle(FileHandle);
-
-		// Falls sich das aktuelle Verzeichnis in einem Subversion-Repository befindet, wird auch die Subversion-Revision mit in die ID gehasht.
-		// Dieses stellt im Beta-Test sicher, dass jede \xC4nderung einer Datei, und nicht nur der EXE, zu einer neuen Versions-ID f\xFChrt.
-		unsigned int SubversionRevision = GetSubversionRevision();
-		if (SubversionRevision != 0) md5.Update(reinterpret_cast<unsigned char *>(&SubversionRevision), sizeof(unsigned int));
-
-		// MD5 abschlie\xDFen
-		unsigned char Digest[16];
-		md5.GetDigest(Digest);
-		
-		// VersionsID-String erstellen
-		std::ostringstream VersionIDBuf;
-		VersionIDBuf << std::hex;
-		for (unsigned int i = 0; i < sizeof(Digest); i++)
-		{
-			VersionIDBuf << (unsigned int) Digest[i];
-		}
-		VersionIDString = VersionIDBuf.str();
-	}
-
-	return VersionIDString.c_str();
-}
-
-// -----------------------------------------------------------------------------
-
-unsigned int BS_Debugtools::GetSubversionRevision()
-{
-	// Existiert eine entries Datei?
-	if (BS_FileSystemUtil::GetInstance().FileExists(SUBVERSION_ENTRIES_FILENAME))
-	{
-		bool Success;
-		char Buffer[512];
-
-		// entries Datei \xF6ffnen.
-		ifstream File(SUBVERSION_ENTRIES_FILENAME);
-		if (File.fail()) return 0;
-
-		// Das Format auslesen und feststellen, ob wir es unterst\xFCtzen.
-		File.getline(Buffer, sizeof(Buffer), 0x0A);
-		unsigned int FormatVersion = ParseUnsignedInt(Buffer, Success);
-		if (File.fail() || !Success || FormatVersion < 7) return 0;
-
-		// Den Namen des ersten Eintrages auslesen. Dieses muss ein leerer String sein und somit das aktuelle Verzeichnis benennen.
-		File.getline(Buffer, sizeof(Buffer), 0x0A);
-		if (File.fail() || strlen(Buffer) != 0) return 0;
-
-		// Den Typ des Eintrages auslesen. Dieser muss "dir" sein.
-		File.getline(Buffer, sizeof(Buffer), 0x0A);
-		if (File.fail() || strcmp(Buffer, "dir") != 0) return 0;
-
-		// Die Revision des Eintrages auslesen.
-		File.getline(Buffer, sizeof(Buffer), 0x0A);
-		unsigned int Revision = ParseUnsignedInt(Buffer, Success);
-		if (File.fail() || !Success) return 0;
-
-		return Revision;
-	}
-
-	return 0;
-}

Deleted: scummvm/trunk/engines/sword25/kernel/debug/debugtools.h
===================================================================
--- scummvm/trunk/engines/sword25/kernel/debug/debugtools.h	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/debug/debugtools.h	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,67 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-#ifndef SWORD25_DEBUGTOOLS_H
-#define SWORD25_DEBUGTOOLS_H
-
-class BS_Debugtools
-{
-public:
-	/**
-	    @brief Gibt eine ID zur\xFCck, die die benutzte Programmversion eindeutig identifiziert.
-
-		Um die Version zu ermitteln wird der MD5-Hash \xFCber die EXE-Datei gebildet.
-		Falls die ausf\xFChrende Datei in einem SVN-Repository liegt wird zus\xE4tzlich die Revision des Verzeichnisses gehasht.
-
-		@return Gibt einen String zur\xFCck, der die Versions-ID des Programmes angibt.<br>
-				Falls die Versions-ID nicht bestimmt werden konnte wird "???" zur\xFCckgegeben.
-		@remark Diese Methode ist momentan nur f\xFCr WIN32 implementiert.
-	*/
-	static const char * GetVersionID();
-
-	/**
-
-		@brief Gibt die Subversion-Revisionsnummer der Engine zur\xFCck.
-
-		Diese Funktion versucht die aktuelle Revision aus der SVN entries Datei f\xFCr das aktuelle Verzeichnis zu extrahieren.
-		Dabei werden die SVN entries Formatversionen 7 und gr\xF6\xDFer unterst\xFCtzt.
-		Die neueste Version ist aktuell 9. F\xFCr folgende Versionen wird angenommen, dass sich das Format des Headers nicht mehr \xE4ndert.
-	
-		@return Gibt die Revisionsnummer zur\xFCck. Falls die ausf\xFChrende Datei nicht in einem SVN-Repository liegt oder die Revision nicht
-				festgestellt werden konnte wird 0 zur\xFCckgegeben.	
-	*/
-	static unsigned int GetSubversionRevision();
-};
-
-#endif

Modified: scummvm/trunk/engines/sword25/kernel/kernel_script.cpp
===================================================================
--- scummvm/trunk/engines/sword25/kernel/kernel_script.cpp	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/kernel_script.cpp	2010-10-12 22:14:14 UTC (rev 53191)
@@ -225,7 +225,7 @@
 
 static int GetWinCode(lua_State * L)
 {
-	lua_pushstring(L, BS_WinCodeGenerator::GetWinCode().c_str());
+	lua_pushstring(L, "ScummVM");
 	return 1;
 }
 
@@ -233,7 +233,8 @@
 
 static int GetSubversionRevision(lua_State * L)
 {
-	lua_pushnumber(L, BS_Debugtools::GetSubversionRevision());
+	// ScummVM is 1337
+	lua_pushnumber(L, 1337);
 	return 1;
 }
 

Deleted: scummvm/trunk/engines/sword25/kernel/md5.cpp
===================================================================
--- scummvm/trunk/engines/sword25/kernel/md5.cpp	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/md5.cpp	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,400 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-// The code in this file is based in part on code from Aladdin
-// Enterprises released under the following terms:
-//
-// Copyright (C) 1999, 2002 Aladdin Enterprises.  All rights reserved.
-//
-// This software is provided 'as-is', without any express or implied
-// warranty.  In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-// 3. This notice may not be removed or altered from any source distribution.
-//
-// L. Peter Deutsch
-// ghost at aladdin.com
-
-#include "sword25/kernel/md5.h"
-
-#undef BYTE_ORDER	/* 1 = big-endian, -1 = little-endian, 0 = unknown */
-#ifdef ARCH_IS_BIG_ENDIAN
-#  define BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1)
-#else
-#  define BYTE_ORDER 0
-#endif
-
-#define T_MASK ((md5_word_t)~0)
-#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87)
-#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9)
-#define T3    0x242070db
-#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111)
-#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050)
-#define T6    0x4787c62a
-#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec)
-#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe)
-#define T9    0x698098d8
-#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850)
-#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e)
-#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841)
-#define T13    0x6b901122
-#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c)
-#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71)
-#define T16    0x49b40821
-#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d)
-#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf)
-#define T19    0x265e5a51
-#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855)
-#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2)
-#define T22    0x02441453
-#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e)
-#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437)
-#define T25    0x21e1cde6
-#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829)
-#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278)
-#define T28    0x455a14ed
-#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa)
-#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07)
-#define T31    0x676f02d9
-#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375)
-#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd)
-#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e)
-#define T35    0x6d9d6122
-#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3)
-#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb)
-#define T38    0x4bdecfa9
-#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f)
-#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f)
-#define T41    0x289b7ec6
-#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805)
-#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a)
-#define T44    0x04881d05
-#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6)
-#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a)
-#define T47    0x1fa27cf8
-#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a)
-#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb)
-#define T50    0x432aff97
-#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58)
-#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6)
-#define T53    0x655b59c3
-#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d)
-#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82)
-#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e)
-#define T57    0x6fa87e4f
-#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f)
-#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb)
-#define T60    0x4e0811a1
-#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d)
-#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca)
-#define T63    0x2ad7d2bb
-#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e)
-
-
-static void
-md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/)
-{
-	md5_word_t
-		a = pms->abcd[0], b = pms->abcd[1],
-		c = pms->abcd[2], d = pms->abcd[3];
-	md5_word_t t;
-#if BYTE_ORDER > 0
-	/* Define storage only for big-endian CPUs. */
-	md5_word_t X[16];
-#else
-	/* Define storage for little-endian or both types of CPUs. */
-	md5_word_t xbuf[16];
-	const md5_word_t *X;
-#endif
-
-	{
-#if BYTE_ORDER == 0
-		/*
-		* Determine dynamically whether this is a big-endian or
-		* little-endian machine, since we can use a more efficient
-		* algorithm on the latter.
-		*/
-		static const int w = 1;
-
-		if (*((const md5_byte_t *)&w)) /* dynamic little-endian */
-#endif
-#if BYTE_ORDER <= 0		/* little-endian */
-		{
-			/*
-			* On little-endian machines, we can process properly aligned
-			* data without copying it.
-			*/
-			if (!((data - (const md5_byte_t *)0) & 3)) {
-				/* data are properly aligned */
-				X = (const md5_word_t *)data;
-			} else {
-				/* not aligned */
-				memcpy(xbuf, data, 64);
-				X = xbuf;
-			}
-		}
-#endif
-#if BYTE_ORDER == 0
-		else			/* dynamic big-endian */
-#endif
-#if BYTE_ORDER >= 0		/* big-endian */
-		{
-			/*
-			* On big-endian machines, we must arrange the bytes in the
-			* right order.
-			*/
-			const md5_byte_t *xp = data;
-			int i;
-
-#  if BYTE_ORDER == 0
-			X = xbuf;		/* (dynamic only) */
-#  else
-#    define xbuf X		/* (static only) */
-#  endif
-			for (i = 0; i < 16; ++i, xp += 4)
-				xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24);
-		}
-#endif
-	}
-
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
-
-	/* Round 1. */
-	/* Let [abcd k s i] denote the operation
-	a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
-#define F(x, y, z) (((x) & (y)) | (~(x) & (z)))
-#define SET(a, b, c, d, k, s, Ti)\
-	t = a + F(b,c,d) + X[k] + Ti;\
-	a = ROTATE_LEFT(t, s) + b
-	/* Do the following 16 operations. */
-	SET(a, b, c, d,  0,  7,  T1);
-	SET(d, a, b, c,  1, 12,  T2);
-	SET(c, d, a, b,  2, 17,  T3);
-	SET(b, c, d, a,  3, 22,  T4);
-	SET(a, b, c, d,  4,  7,  T5);
-	SET(d, a, b, c,  5, 12,  T6);
-	SET(c, d, a, b,  6, 17,  T7);
-	SET(b, c, d, a,  7, 22,  T8);
-	SET(a, b, c, d,  8,  7,  T9);
-	SET(d, a, b, c,  9, 12, T10);
-	SET(c, d, a, b, 10, 17, T11);
-	SET(b, c, d, a, 11, 22, T12);
-	SET(a, b, c, d, 12,  7, T13);
-	SET(d, a, b, c, 13, 12, T14);
-	SET(c, d, a, b, 14, 17, T15);
-	SET(b, c, d, a, 15, 22, T16);
-#undef SET
-
-	/* Round 2. */
-	/* Let [abcd k s i] denote the operation
-	a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
-#define G(x, y, z) (((x) & (z)) | ((y) & ~(z)))
-#define SET(a, b, c, d, k, s, Ti)\
-	t = a + G(b,c,d) + X[k] + Ti;\
-	a = ROTATE_LEFT(t, s) + b
-	/* Do the following 16 operations. */
-	SET(a, b, c, d,  1,  5, T17);
-	SET(d, a, b, c,  6,  9, T18);
-	SET(c, d, a, b, 11, 14, T19);
-	SET(b, c, d, a,  0, 20, T20);
-	SET(a, b, c, d,  5,  5, T21);
-	SET(d, a, b, c, 10,  9, T22);
-	SET(c, d, a, b, 15, 14, T23);
-	SET(b, c, d, a,  4, 20, T24);
-	SET(a, b, c, d,  9,  5, T25);
-	SET(d, a, b, c, 14,  9, T26);
-	SET(c, d, a, b,  3, 14, T27);
-	SET(b, c, d, a,  8, 20, T28);
-	SET(a, b, c, d, 13,  5, T29);
-	SET(d, a, b, c,  2,  9, T30);
-	SET(c, d, a, b,  7, 14, T31);
-	SET(b, c, d, a, 12, 20, T32);
-#undef SET
-
-	/* Round 3. */
-	/* Let [abcd k s t] denote the operation
-	a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define SET(a, b, c, d, k, s, Ti)\
-	t = a + H(b,c,d) + X[k] + Ti;\
-	a = ROTATE_LEFT(t, s) + b
-	/* Do the following 16 operations. */
-	SET(a, b, c, d,  5,  4, T33);
-	SET(d, a, b, c,  8, 11, T34);
-	SET(c, d, a, b, 11, 16, T35);
-	SET(b, c, d, a, 14, 23, T36);
-	SET(a, b, c, d,  1,  4, T37);
-	SET(d, a, b, c,  4, 11, T38);
-	SET(c, d, a, b,  7, 16, T39);
-	SET(b, c, d, a, 10, 23, T40);
-	SET(a, b, c, d, 13,  4, T41);
-	SET(d, a, b, c,  0, 11, T42);
-	SET(c, d, a, b,  3, 16, T43);
-	SET(b, c, d, a,  6, 23, T44);
-	SET(a, b, c, d,  9,  4, T45);
-	SET(d, a, b, c, 12, 11, T46);
-	SET(c, d, a, b, 15, 16, T47);
-	SET(b, c, d, a,  2, 23, T48);
-#undef SET
-
-	/* Round 4. */
-	/* Let [abcd k s t] denote the operation
-	a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
-#define I(x, y, z) ((y) ^ ((x) | ~(z)))
-#define SET(a, b, c, d, k, s, Ti)\
-	t = a + I(b,c,d) + X[k] + Ti;\
-	a = ROTATE_LEFT(t, s) + b
-	/* Do the following 16 operations. */
-	SET(a, b, c, d,  0,  6, T49);
-	SET(d, a, b, c,  7, 10, T50);
-	SET(c, d, a, b, 14, 15, T51);
-	SET(b, c, d, a,  5, 21, T52);
-	SET(a, b, c, d, 12,  6, T53);
-	SET(d, a, b, c,  3, 10, T54);
-	SET(c, d, a, b, 10, 15, T55);
-	SET(b, c, d, a,  1, 21, T56);
-	SET(a, b, c, d,  8,  6, T57);
-	SET(d, a, b, c, 15, 10, T58);
-	SET(c, d, a, b,  6, 15, T59);
-	SET(b, c, d, a, 13, 21, T60);
-	SET(a, b, c, d,  4,  6, T61);
-	SET(d, a, b, c, 11, 10, T62);
-	SET(c, d, a, b,  2, 15, T63);
-	SET(b, c, d, a,  9, 21, T64);
-#undef SET
-
-	/* Then perform the following additions. (That is increment each
-	of the four registers by the value it had before this block
-	was started.) */
-	pms->abcd[0] += a;
-	pms->abcd[1] += b;
-	pms->abcd[2] += c;
-	pms->abcd[3] += d;
-}
-
-void
-md5_init(md5_state_t *pms)
-{
-	pms->count[0] = pms->count[1] = 0;
-	pms->abcd[0] = 0x67452301;
-	pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476;
-	pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301;
-	pms->abcd[3] = 0x10325476;
-}
-
-void
-md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes)
-{
-	const md5_byte_t *p = data;
-	int left = nbytes;
-	int offset = (pms->count[0] >> 3) & 63;
-	md5_word_t nbits = (md5_word_t)(nbytes << 3);
-
-	if (nbytes <= 0)
-		return;
-
-	/* Update the message length. */
-	pms->count[1] += nbytes >> 29;
-	pms->count[0] += nbits;
-	if (pms->count[0] < nbits)
-		pms->count[1]++;
-
-	/* Process an initial partial block. */
-	if (offset) {
-		int copy = (offset + nbytes > 64 ? 64 - offset : nbytes);
-
-		memcpy(pms->buf + offset, p, copy);
-		if (offset + copy < 64)
-			return;
-		p += copy;
-		left -= copy;
-		md5_process(pms, pms->buf);
-	}
-
-	/* Process full blocks. */
-	for (; left >= 64; p += 64, left -= 64)
-		md5_process(pms, p);
-
-	/* Process a final partial block. */
-	if (left)
-		memcpy(pms->buf, p, left);
-}
-
-void
-md5_finish(md5_state_t *pms, md5_byte_t digest[16])
-{
-	static const md5_byte_t pad[64] = {
-		0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-	};
-	md5_byte_t data[8];
-	int i;
-
-	/* Save the length before padding. */
-	for (i = 0; i < 8; ++i)
-		data[i] = (md5_byte_t)(pms->count[i >> 2] >> ((i & 3) << 3));
-	/* Pad to 56 bytes mod 64. */
-	md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1);
-	/* Append the length. */
-	md5_append(pms, data, 8);
-	for (i = 0; i < 16; ++i)
-		digest[i] = (md5_byte_t)(pms->abcd[i >> 2] >> ((i & 3) << 3));
-}
-
-BS_MD5::BS_MD5()
-{
-	md5_init(&m_state);
-}
-
-void BS_MD5::Update(const unsigned char * Buffer, unsigned int Length)
-{
-	md5_append(&m_state, Buffer, Length);
-}
-
-void BS_MD5::GetDigest(unsigned char Digest[16])
-{
-	md5_finish(&m_state, Digest);
-}

Deleted: scummvm/trunk/engines/sword25/kernel/md5.h
===================================================================
--- scummvm/trunk/engines/sword25/kernel/md5.h	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/md5.h	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,71 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-#ifndef SWORD25_MD5_H
-#define SWORD25_MD5_H
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#include "sword25/kernel/common.h"
-#include "sword25/kernel/bs_stdint.h"
-
-// -----------------------------------------------------------------------------
-// Klassendefinition
-// -----------------------------------------------------------------------------
-
-typedef uint8_t md5_byte_t; /* 8-bit byte */
-typedef uint32_t md5_word_t; /* 32-bit word */
-
-/* Define the state of the MD5 Algorithm. */
-typedef struct md5_state_s {
-	md5_word_t count[2];	/* message length in bits, lsw first */
-	md5_word_t abcd[4];		/* digest buffer */
-	md5_byte_t buf[64];		/* accumulate block */
-} md5_state_t;
-
-class BS_MD5
-{
-public:
-	BS_MD5();
-
-	void Update(const unsigned char * Buffer, unsigned int Length);
-	void GetDigest(unsigned char Digest[16]);
-
-private:
-	md5_state_t m_state;
-};
-
-#endif

Modified: scummvm/trunk/engines/sword25/kernel/persistenceservice.cpp
===================================================================
--- scummvm/trunk/engines/sword25/kernel/persistenceservice.cpp	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/persistenceservice.cpp	2010-10-12 22:14:14 UTC (rev 53191)
@@ -71,6 +71,7 @@
 	const char *		FILE_MARKER = "BS25SAVEGAME";
 	const unsigned int	SLOT_COUNT = 18;
 	const unsigned int	FILE_COPY_BUFFER_SIZE = 1024 * 10;
+	const char *VERSIONID = "1";
 
 	// -------------------------------------------------------------------------
 
@@ -186,7 +187,7 @@
 					// Der Slot wird als belegt markiert.
 					CurSavegameInfo.IsOccupied = true;
 					// Speichern, ob der Spielstand kompatibel mit der aktuellen Engine-Version ist.
-					CurSavegameInfo.IsCompatible = (StoredVersionID == BS_Debugtools::GetVersionID());
+					CurSavegameInfo.IsCompatible = (StoredVersionID == string(VERSIONID));
 					// Dateinamen des Spielstandes speichern.
 					CurSavegameInfo.Filename = GenerateSavegameFilename(SlotID);
 					// Die Beschreibung des Spielstandes besteht aus einer textuellen Darstellung des \xC4nderungsdatums der Spielstanddatei.
@@ -321,7 +322,7 @@
 
 		// Spielstanddatei \xF6ffnen und die Headerdaten schreiben.
 		ofstream File(Filename.c_str(), ofstream::binary);
-		File << string(FILE_MARKER) << " " << string(BS_Debugtools::GetVersionID()) << " ";
+		File << string(FILE_MARKER) << " " << string(VERSIONID) << " ";
 		if (!File.good())
 		{
 			BS_LOG_ERRORLN("Unable to write header data to savegame file \"%s\".", Filename.c_str());

Deleted: scummvm/trunk/engines/sword25/kernel/wincodegenerator.cpp
===================================================================
--- scummvm/trunk/engines/sword25/kernel/wincodegenerator.cpp	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/wincodegenerator.cpp	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,87 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#include "sword25/kernel/md5.h"
-#include "sword25/kernel/wincodegenerator.h"
-using namespace std;
-
-// -----------------------------------------------------------------------------
-// Hilfsfunktionen und Konstanten
-// -----------------------------------------------------------------------------
-
-namespace
-{
-	const char SECRET[] = "LSZNRVWQJHITMIEGESJMZAYVKGTCDT";
-
-	// -------------------------------------------------------------------------
-
-	string EncodeValue(unsigned int Value)
-	{
-		string Result;
-
-		for (unsigned int i = 0; i < 7; ++i)
-		{
-			Result.push_back(65 + Value % 26);
-			Value /= 26;
-		}
-
-		return Result;
-	}
-}
-
-// -----------------------------------------------------------------------------
-
-string BS_WinCodeGenerator::GetWinCode()
-{
-	// Die System-ID generieren und als String codieren.
-	string SystemID = EncodeValue(GetSystemID());
-
-	// Den Hashwert der System-ID mit dem geheimen String berechnen.
-	BS_MD5 md5;
-	string HashData = SystemID + SECRET;
-	md5.Update(reinterpret_cast<const unsigned char *>(&HashData[0]), HashData.size());
-	unsigned char Digest[16];
-	md5.GetDigest(Digest);
-
-	// Die ersten 32-Bit des Digest werden aus dem Digest extrahiert. Zudem wird das oberste Bit ausmaskiert.
-	// So ist es einfacher den Code serverseitig zu \xFCberpr\xFCfen, da viele Scriptsprachen mit 32-Bit signed integern rechnen.
-	unsigned int ValidationHash = ((Digest[3] & 0x7f) << 24) + (Digest[2] << 16) + (Digest[1] << 8) + Digest[0];
-	
-	// Der Code besteht aus der codierten System-ID und dem codierten Hash.
-	return SystemID + EncodeValue(ValidationHash);
-}

Deleted: scummvm/trunk/engines/sword25/kernel/wincodegenerator.h
===================================================================
--- scummvm/trunk/engines/sword25/kernel/wincodegenerator.h	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/wincodegenerator.h	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,58 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-#ifndef SWORD25_WIN_CODE_GENERATOR_H
-#define SWORD25_WIN_CODE_GENERATOR_H
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#include <string>
-#include "sword25/kernel/common.h"
-
-// -----------------------------------------------------------------------------
-// Klassendefinition
-// -----------------------------------------------------------------------------
-
-class BS_WinCodeGenerator
-{
-public:
-	static std::string GetWinCode();
-
-private:
-	static unsigned int GetSystemID();
-};
-
-#endif

Deleted: scummvm/trunk/engines/sword25/kernel/wincodegenerator_win32.cpp
===================================================================
--- scummvm/trunk/engines/sword25/kernel/wincodegenerator_win32.cpp	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/kernel/wincodegenerator_win32.cpp	2010-10-12 22:14:14 UTC (rev 53191)
@@ -1,143 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* 
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <LMCons.h>
-
-#include <vector>
-using namespace std;
-
-#include "sword25/kernel/md5.h"
-#include "sword25/kernel/wincodegenerator.h"
-
-// -----------------------------------------------------------------------------
-// Hilfsfunktionen
-// -----------------------------------------------------------------------------
-
-namespace
-{
-	void AddedFixedDrivesEntropy(BS_MD5 & md5)
-	{
-		if (DWORD LogicalDrivesMask = ::GetLogicalDrives())
-		{
-			// \xDCber alle Laufwerke iterieren.
-			char CurrentDriveLetter[] = "A:\\";
-			while (LogicalDrivesMask && CurrentDriveLetter[0] <= 'Z')
-			{
-				if (LogicalDrivesMask & 1)
-				{
-					// Nur feste Laufwerke werden betrachtet, ansonsten w\xFCrde sich die System-ID \xE4ndern, wenn jemand einen USB-Stick ansteckt oder
-					// eine CD einlegt.
-					if (::GetDriveTypeA(CurrentDriveLetter) == DRIVE_FIXED)
-					{
-						// Laufwerksinformationen auslesen.
-						CHAR VolumeNameBuffer[MAX_PATH + 1];
-						DWORD SerialNumber;
-						DWORD MaximumComponentLength;
-						DWORD FileSystemFlags;
-						CHAR FileSystemNameBuffer[MAX_PATH + 1];
-						if (::GetVolumeInformationA(CurrentDriveLetter,
-							VolumeNameBuffer, sizeof(VolumeNameBuffer),
-							&SerialNumber,
-							&MaximumComponentLength,
-							&FileSystemFlags,
-							FileSystemNameBuffer, sizeof(FileSystemNameBuffer)))
-						{
-							// Als Entropie werden genutzt: Laufwerksbuchstabe, Laufwerksbezeichnung, Seriennummer und Dateisystemname.
-							md5.Update(reinterpret_cast<const unsigned char *>(CurrentDriveLetter), strlen(CurrentDriveLetter));
-							md5.Update(reinterpret_cast<const unsigned char *>(VolumeNameBuffer), strlen(VolumeNameBuffer));
-							md5.Update(reinterpret_cast<const unsigned char *>(&SerialNumber), sizeof(SerialNumber));
-							md5.Update(reinterpret_cast<const unsigned char *>(FileSystemNameBuffer), strlen(FileSystemNameBuffer));
-						}
-					}
-				}
-
-				LogicalDrivesMask >>= 1;
-				++CurrentDriveLetter[0];
-			}
-		}
-	}
-
-	// -------------------------------------------------------------------------
-
-	void AddUserNameEntropy(BS_MD5 & md5)
-	{
-		// Benutzernamen auslesen und als Entropie nutzen.
-		DWORD UserNameLength = UNLEN + 1;
-		CHAR UserName[UNLEN + 1];
-		if (::GetUserNameA(UserName, &UserNameLength))
-		{
-			md5.Update(reinterpret_cast<const unsigned char *>(&UserName[0]), strlen(UserName));
-		}		
-	}
-
-	// -------------------------------------------------------------------------
-
-	void AddOSVersionEntropy(BS_MD5 & md5)
-	{
-		// Windows-Version auslesen und in die Einzelkomponenten MajorVersion, MinorVersion und Build aufspalten.
-		DWORD VersionInfo = ::GetVersion();
-
-		DWORD MajorVersion = (DWORD)(LOBYTE(LOWORD(VersionInfo)));
-		DWORD MinorVersion = (DWORD)(HIBYTE(LOWORD(VersionInfo)));
-		DWORD Build = 0;
-		if (VersionInfo < 0x80000000) Build = (DWORD)(HIWORD(VersionInfo));
-
-		// Diese drei Informationen als Entropie nutzen.
-		md5.Update(reinterpret_cast<const unsigned char *>(&MajorVersion), sizeof(DWORD));
-		md5.Update(reinterpret_cast<const unsigned char *>(&MinorVersion), sizeof(DWORD));
-		md5.Update(reinterpret_cast<const unsigned char *>(&Build), sizeof(DWORD));
-	}
-}
-
-// -----------------------------------------------------------------------------
-
-unsigned int BS_WinCodeGenerator::GetSystemID()
-{
-	BS_MD5 md5;
-
-	AddedFixedDrivesEntropy(md5);
-	AddUserNameEntropy(md5);
-	AddOSVersionEntropy(md5);
-
-	unsigned char Digest[16];
-	md5.GetDigest(Digest);
-
-	return (Digest[3] << 24) + (Digest[2] << 16) + (Digest[1] << 8) + Digest[0];
-}

Modified: scummvm/trunk/engines/sword25/module.mk
===================================================================
--- scummvm/trunk/engines/sword25/module.mk	2010-10-12 22:13:43 UTC (rev 53190)
+++ scummvm/trunk/engines/sword25/module.mk	2010-10-12 22:14:14 UTC (rev 53191)
@@ -46,13 +46,11 @@
 	input/inputengine_script.o \
 	input/stdwininput.o \
 	kernel/callbackregistry.o \
-	kernel/debug/debugtools.o \
 	kernel/filesystemutil.o \
 	kernel/inputpersistenceblock.o \
 	kernel/kernel.o \
 	kernel/kernel_script.o \
 	kernel/log.o \
-	kernel/md5.o \
 	kernel/memleaks.o \
 	kernel/outputpersistenceblock.o \
 	kernel/persistenceservice.o \
@@ -60,8 +58,6 @@
 	kernel/resource.o \
 	kernel/timer.o \
 	kernel/win32window.o \
-	kernel/wincodegenerator.o \
-	kernel/wincodegenerator_win32.o \
 	kernel/window.o \
 	math/geometry.o \
 	math/geometry_script.o \


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