[Scummvm-cvs-logs] SF.net SVN: scummvm:[44820] scummvm/trunk/engines/sci/gui
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Fri Oct 9 14:04:07 CEST 2009
Revision: 44820
http://scummvm.svn.sourceforge.net/scummvm/?rev=44820&view=rev
Author: m_kiewitz
Date: 2009-10-09 12:04:07 +0000 (Fri, 09 Oct 2009)
Log Message:
-----------
SCI/newgui: SciGuiFont now locks the resourcedata, fixes broken fonts in games
Modified Paths:
--------------
scummvm/trunk/engines/sci/gui/gui_font.cpp
scummvm/trunk/engines/sci/gui/gui_font.h
Modified: scummvm/trunk/engines/sci/gui/gui_font.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_font.cpp 2009-10-09 12:01:22 UTC (rev 44819)
+++ scummvm/trunk/engines/sci/gui/gui_font.cpp 2009-10-09 12:04:07 UTC (rev 44820)
@@ -32,7 +32,7 @@
namespace Sci {
SciGuiFont::SciGuiFont(ResourceManager *resMan, GuiResourceId resourceId)
- : _resourceId(resourceId) {
+ : _resourceId(resourceId), _resMan(resMan) {
assert(resourceId != -1);
// Workaround: lsl1sci mixes its own internal fonts with the global
@@ -40,11 +40,11 @@
if (!resMan->testResource(ResourceId(kResourceTypeFont, resourceId)))
resourceId = resourceId & 0x7ff;
- Resource *fontResource = resMan->findResource(ResourceId(kResourceTypeFont, resourceId), false);
- if (!fontResource) {
+ _resource = resMan->findResource(ResourceId(kResourceTypeFont, resourceId), true);
+ if (!_resource) {
error("font resource %d not found", resourceId);
}
- _resourceData = fontResource->data;
+ _resourceData = _resource->data;
_numChars = READ_LE_UINT16(_resourceData + 2);
_fontHeight = READ_LE_UINT16(_resourceData + 4);
@@ -58,6 +58,7 @@
}
SciGuiFont::~SciGuiFont() {
+ _resMan->unlockResource(_resource);
}
GuiResourceId SciGuiFont::getResourceId() {
Modified: scummvm/trunk/engines/sci/gui/gui_font.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_font.h 2009-10-09 12:01:22 UTC (rev 44819)
+++ scummvm/trunk/engines/sci/gui/gui_font.h 2009-10-09 12:04:07 UTC (rev 44820)
@@ -43,6 +43,9 @@
void draw(SciGuiScreen *screen, int16 chr, int16 top, int16 left, byte color, byte textface);
private:
+ ResourceManager *_resMan;
+
+ Resource *_resource;
GuiResourceId _resourceId;
byte *_resourceData;
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