[Scummvm-cvs-logs] SF.net SVN: scummvm: [28935] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Sep 18 01:32:25 CEST 2007


Revision: 28935
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28935&view=rev
Author:   thebluegr
Date:     2007-09-17 16:32:25 -0700 (Mon, 17 Sep 2007)

Log Message:
-----------
Added a debug command for font mapping

Modified Paths:
--------------
    scummvm/trunk/engines/saga/console.cpp
    scummvm/trunk/engines/saga/console.h
    scummvm/trunk/engines/saga/font.cpp
    scummvm/trunk/engines/saga/font.h

Modified: scummvm/trunk/engines/saga/console.cpp
===================================================================
--- scummvm/trunk/engines/saga/console.cpp	2007-09-17 22:56:28 UTC (rev 28934)
+++ scummvm/trunk/engines/saga/console.cpp	2007-09-17 23:32:25 UTC (rev 28935)
@@ -76,6 +76,9 @@
 	DCmd_Register("current_panel_mode",	WRAP_METHOD(Console, cmdCurrentPanelMode));
 	DCmd_Register("set_panel_mode",		WRAP_METHOD(Console, cmdSetPanelMode));
 
+	// Font commands
+	DCmd_Register("set_font_mapping",	WRAP_METHOD(Console, cmdSetFontMapping));
+
 	// Global flags commands
 	DCmd_Register("global_flags_info",	WRAP_METHOD(Console, cmdGlobalFlagsInfo));
 	DCmd_Register("set_global_flag",	WRAP_METHOD(Console, cmdSetGlobalFlag));
@@ -163,6 +166,16 @@
 	return true;
 }
 
+bool Console::cmdSetFontMapping(int argc, const char **argv) {
+	if (argc != 2) {
+		DebugPrintf("Sets font mapping\nUsage: %s <Font mapping flag>\n", argv[0]);
+		DebugPrintf("Mapping flags:\n0 - default game behavior\n1 - force font mapping\n2 - ignore font mapping\n");
+	} else {
+		_vm->_font->setFontMapping(atoi(argv[1]));
+	}
+	return true;
+}
+
 bool Console::cmdGlobalFlagsInfo(int argc, const char **argv) {
 	DebugPrintf("Global flags status for IHNM:\n");
 

Modified: scummvm/trunk/engines/saga/console.h
===================================================================
--- scummvm/trunk/engines/saga/console.h	2007-09-17 22:56:28 UTC (rev 28934)
+++ scummvm/trunk/engines/saga/console.h	2007-09-17 23:32:25 UTC (rev 28935)
@@ -55,6 +55,8 @@
 	bool cmdCurrentPanelMode(int argc, const char **argv);
 	bool cmdSetPanelMode(int argc, const char **argv);
 
+	bool cmdSetFontMapping(int argc, const char **argv);
+
 	bool cmdGlobalFlagsInfo(int argc, const char **argv);
 	bool cmdSetGlobalFlag(int argc, const char **argv);
 	bool cmdClearGlobalFlag(int argc, const char **argv);

Modified: scummvm/trunk/engines/saga/font.cpp
===================================================================
--- scummvm/trunk/engines/saga/font.cpp	2007-09-17 22:56:28 UTC (rev 28934)
+++ scummvm/trunk/engines/saga/font.cpp	2007-09-17 23:32:25 UTC (rev 28935)
@@ -49,6 +49,7 @@
 	}
 
 	_initialized = true;
+	_fontMapping = 0;
 }
 
 Font::~Font(void) {
@@ -325,8 +326,16 @@
 		c_code = *textPointer & 0xFFU;
 
 		// Translate character
-		if (!(flags & kFontDontmap))
+		if (_fontMapping == 0) {	// Check font mapping debug flag
+			// Default game behavior
+			if (!(flags & kFontDontmap))
+				c_code = _charMap[c_code];
+		} else if (_fontMapping == 1) {
+			// Force font mapping
 			c_code = _charMap[c_code];
+		} else {
+			// In all other cases, ignore font mapping
+		}
 		assert(c_code < FONT_CHARCOUNT);
 
 		// Check if character is defined

Modified: scummvm/trunk/engines/saga/font.h
===================================================================
--- scummvm/trunk/engines/saga/font.h	2007-09-17 22:56:28 UTC (rev 28934)
+++ scummvm/trunk/engines/saga/font.h	2007-09-17 23:32:25 UTC (rev 28935)
@@ -141,8 +141,11 @@
 	}
 	void textDrawRect(KnownFont font, Surface *ds, const char *text, const Common::Rect &rect, int color, int effectColor, FontEffectFlags flags) {
 		textDrawRect(knownFont2FontIdx(font), ds, text, rect, color, effectColor, flags);
+	}	
+	void setFontMapping(int mapping) {
+		_fontMapping = mapping;
 	}
-	
+
  private:
 	 enum FontId {
 		 kSmallFont,
@@ -197,6 +200,7 @@
 	SagaEngine *_vm;
 
 	bool _initialized;
+	int _fontMapping;
 
 	int _loadedFonts;
 	FontData **_fonts;


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