diff options
Diffstat (limited to 'engines/sword25/gfx/fontresource.cpp')
-rw-r--r-- | engines/sword25/gfx/fontresource.cpp | 65 |
1 files changed, 25 insertions, 40 deletions
diff --git a/engines/sword25/gfx/fontresource.cpp b/engines/sword25/gfx/fontresource.cpp index 9f23133a71..dbb9c67fe5 100644 --- a/engines/sword25/gfx/fontresource.cpp +++ b/engines/sword25/gfx/fontresource.cpp @@ -34,38 +34,27 @@ #define BS_LOG_PREFIX "FONTRESOURCE" -// ----------------------------------------------------------------------------- -// Includes -// ----------------------------------------------------------------------------- - #include "sword25/kernel/kernel.h" -#include "sword25/kernel/string.h" #include "sword25/package/packagemanager.h" #include "sword25/gfx/fontresource.h" namespace Sword25 { -// ----------------------------------------------------------------------------- -// Konstanten -// ----------------------------------------------------------------------------- - -static const uint DEFAULT_LINEHEIGHT = 20; -static const uint DEFAULT_GAPWIDTH = 1; - -// ----------------------------------------------------------------------------- -// Konstruktion / Destruktion -// ----------------------------------------------------------------------------- +enum { + DEFAULT_LINEHEIGHT = 20, + DEFAULT_GAPWIDTH = 1 +}; -FontResource::FontResource(Kernel *pKernel, const Common::String &FileName) : +FontResource::FontResource(Kernel *pKernel, const Common::String &fileName) : _pKernel(pKernel), - _Valid(false), - Resource(FileName, Resource::TYPE_FONT), + _valid(false), + Resource(fileName, Resource::TYPE_FONT), Common::XMLParser() { // Get a pointer to the package manager BS_ASSERT(_pKernel); - PackageManager *pPackage = static_cast<PackageManager *>(_pKernel->GetService("package")); + PackageManager *pPackage = _pKernel->getPackage(); BS_ASSERT(pPackage); // Load the contents of the file @@ -80,73 +69,69 @@ FontResource::FontResource(Kernel *pKernel, const Common::String &FileName) : if (!loadBuffer((const byte *)xmlData, fileSize)) return; - _Valid = parse(); + _valid = parse(); close(); free(xmlData); } -// ----------------------------------------------------------------------------- - bool FontResource::parserCallback_font(ParserNode *node) { // Get the attributes of the font Common::String bitmapFilename = node->values["bitmap"]; - if (!parseIntegerKey(node->values["lineheight"].c_str(), 1, &_LineHeight)) { + if (!parseIntegerKey(node->values["lineheight"], 1, &_lineHeight)) { BS_LOG_WARNINGLN("Illegal or missing lineheight attribute in <font> tag in \"%s\". Assuming default (\"%d\").", getFileName().c_str(), DEFAULT_LINEHEIGHT); - _LineHeight = DEFAULT_LINEHEIGHT; + _lineHeight = DEFAULT_LINEHEIGHT; } - if (!parseIntegerKey(node->values["gap"].c_str(), 1, &_GapWidth)) { + if (!parseIntegerKey(node->values["gap"], 1, &_gapWidth)) { BS_LOG_WARNINGLN("Illegal or missing gap attribute in <font> tag in \"%s\". Assuming default (\"%d\").", getFileName().c_str(), DEFAULT_GAPWIDTH); - _GapWidth = DEFAULT_GAPWIDTH; + _gapWidth = DEFAULT_GAPWIDTH; } // Get a reference to the package manager BS_ASSERT(_pKernel); - PackageManager *pPackage = static_cast<PackageManager *>(_pKernel->GetService("package")); + PackageManager *pPackage = _pKernel->getPackage(); BS_ASSERT(pPackage); // Get the full path and filename for the bitmap resource - _BitmapFileName = pPackage->getAbsolutePath(bitmapFilename); - if (_BitmapFileName == "") { + _bitmapFileName = pPackage->getAbsolutePath(bitmapFilename); + if (_bitmapFileName == "") { BS_LOG_ERRORLN("Image file \"%s\" was specified in <font> tag of \"%s\" but could not be found.", - _BitmapFileName.c_str(), getFileName().c_str()); + _bitmapFileName.c_str(), getFileName().c_str()); } // Pre-cache the resource - if (!_pKernel->GetResourceManager()->PrecacheResource(_BitmapFileName)) { - BS_LOG_ERRORLN("Could not precache \"%s\".", _BitmapFileName.c_str()); + if (!_pKernel->getResourceManager()->precacheResource(_bitmapFileName)) { + BS_LOG_ERRORLN("Could not precache \"%s\".", _bitmapFileName.c_str()); } return true; } -// ----------------------------------------------------------------------------- - bool FontResource::parserCallback_character(ParserNode *node) { // Get the attributes of the character int charCode, top, left, right, bottom; - if (!parseIntegerKey(node->values["code"].c_str(), 1, &charCode) || (charCode < 0) || (charCode >= 256)) { + if (!parseIntegerKey(node->values["code"], 1, &charCode) || (charCode < 0) || (charCode >= 256)) { return parserError("Illegal or missing code attribute in <character> tag in \"%s\".", getFileName().c_str()); } - if (!parseIntegerKey(node->values["top"].c_str(), 1, &top) || (top < 0)) { + if (!parseIntegerKey(node->values["top"], 1, &top) || (top < 0)) { return parserError("Illegal or missing top attribute in <character> tag in \"%s\".", getFileName().c_str()); } - if (!parseIntegerKey(node->values["left"].c_str(), 1, &left) || (left < 0)) { + if (!parseIntegerKey(node->values["left"], 1, &left) || (left < 0)) { return parserError("Illegal or missing left attribute in <character> tag in \"%s\".", getFileName().c_str()); } - if (!parseIntegerKey(node->values["right"].c_str(), 1, &right) || (right < 0)) { + if (!parseIntegerKey(node->values["right"], 1, &right) || (right < 0)) { return parserError("Illegal or missing right attribute in <character> tag in \"%s\".", getFileName().c_str()); } - if (!parseIntegerKey(node->values["bottom"].c_str(), 1, &bottom) || (bottom < 0)) { + if (!parseIntegerKey(node->values["bottom"], 1, &bottom) || (bottom < 0)) { return parserError("Illegal or missing bottom attribute in <character> tag in \"%s\".", getFileName().c_str()); } - this->_CharacterRects[charCode] = Common::Rect(left, top, right, bottom); + this->_characterRects[charCode] = Common::Rect(left, top, right, bottom); return true; } |