aboutsummaryrefslogtreecommitdiff
path: root/engines/glk
diff options
context:
space:
mode:
Diffstat (limited to 'engines/glk')
-rw-r--r--engines/glk/frotz/windows.cpp70
-rw-r--r--engines/glk/frotz/windows.h9
2 files changed, 9 insertions, 70 deletions
diff --git a/engines/glk/frotz/windows.cpp b/engines/glk/frotz/windows.cpp
index 8bdfafd879..b49c6d1413 100644
--- a/engines/glk/frotz/windows.cpp
+++ b/engines/glk/frotz/windows.cpp
@@ -20,77 +20,17 @@
*
*/
-#include "glk/frotz/screen.h"
-#include "glk/conf.h"
-#include "common/file.h"
-#include "graphics/fonts/ttf.h"
-#include "image/bmp.h"
+#include "glk/frotz/windows.h"
namespace Glk {
namespace Frotz {
-FrotzScreen::FrotzScreen() : Glk::Screen() {
- g_conf->_tStyles[style_User1].font = CUSTOM;
- g_conf->_gStyles[style_User1].font = CUSTOM;
- g_conf->_tStyles[style_User2].font = CUSTOM2;
+Windows::Windows() : _lower(_windows[0]), _upper(_windows[1]) {
}
-void FrotzScreen::loadFonts(Common::Archive *archive) {
- Screen::loadFonts(archive);
-
- // Add character graphics font
- Image::BitmapDecoder decoder;
- Common::File f;
- if (!f.open("infocom_graphics.bmp", *archive))
- error("Could not load font");
-
- Common::Point fontSize(_fonts[0]->getMaxCharWidth(), _fonts[0]->getFontHeight());
- decoder.loadStream(f);
- _fonts.push_back(new Frotz::BitmapFont(*decoder.getSurface(), fontSize));
- f.close();
-
- // Add Runic font. It provides cleaner versions of the runic characters in the
- // character graphics font
- if (!f.open("NotoSansRunic-Regular.ttf", *archive))
- error("Could not load font");
-
- _fonts.push_back(Graphics::loadTTFFont(f, g_conf->_propInfo._size, Graphics::kTTFSizeModeCharacter));
- f.close();
-}
-
-/*--------------------------------------------------------------------------*/
-
-BitmapFont::BitmapFont(const Graphics::Surface &src, const Common::Point &size,
- uint srcWidth, uint srcHeight, unsigned char startingChar) :
- _startingChar(startingChar), _size(size) {
- assert(src.format.bytesPerPixel == 1);
- assert((src.w % srcWidth) == 0);
- assert((src.h % srcHeight) == 0);
-
- // Set up a characters array
- _chars.resize((src.w / srcWidth) * (src.h / srcHeight));
-
- // Iterate through loading characters
- Common::Rect r(srcWidth, srcHeight);
- int charsPerRow = src.w / srcWidth;
- for (uint idx = 0; idx < _chars.size(); ++idx) {
- r.moveTo((idx % charsPerRow) * srcWidth, (idx / charsPerRow) * srcHeight);
-
- _chars[idx].create(size.x, size.y, src.format);
- _chars[idx].transBlitFrom(src, r, Common::Rect(0, 0, size.x, size.y));
- }
-}
-
-void BitmapFont::drawChar(Graphics::Surface *dst, uint32 chr, int x, int y, uint32 color) const {
- const Graphics::ManagedSurface &c = _chars[chr - _startingChar];
- for (int yCtr = 0; yCtr < c.h; ++yCtr) {
- const byte *srcP = (const byte *)c.getBasePtr(0, yCtr);
-
- for (int xCtr = 0; xCtr < c.w; ++xCtr, ++srcP) {
- if (!*srcP)
- dst->hLine(x + xCtr, y + yCtr, x + xCtr, color);
- }
- }
+Window &Windows::operator[](uint idx) {
+ assert(idx < 8);
+ return _windows[idx];
}
} // End of namespace Scott
diff --git a/engines/glk/frotz/windows.h b/engines/glk/frotz/windows.h
index 566d2fd5c8..ef300fbb4c 100644
--- a/engines/glk/frotz/windows.h
+++ b/engines/glk/frotz/windows.h
@@ -23,6 +23,8 @@
#ifndef GLK_FROTZ_WINDOWS
#define GLK_FROTZ_WINDOWS
+#include "glk/windows.h"
+
namespace Glk {
namespace Frotz {
@@ -80,15 +82,12 @@ public:
/**
* Constructor
*/
- Windows() : _lower(_windows[0]), _upper(_windows[1]) {}
+ Windows();
/**
* Array access
*/
- Window &operator[](uint idx) {
- assert(idx < 8);
- return _windows[idx];
- }
+ Window &operator[](uint idx);
};
} // End of namespace Frotz