GLK: FROTZ: Disable typographic niceties for Beyond Zork font

The Beyond Zork graphics font doesn't support Unicode, so allowing
it to convert things like straight quotes into curly ones can cause
ScummVM to crash. Disable these conversions while the Beyond Zork
graphics font is used to avoid that. This fixes bug #10865.
This commit is contained in:
Torbjörn Andersson 2019-02-21 18:12:10 +01:00 committed by Paul Gilbert
parent a6f82fc246
commit 0b9fe06d23
3 changed files with 25 additions and 0 deletions

View File

@ -22,6 +22,7 @@
#include "glk/frotz/processor.h"
#include "glk/frotz/frotz.h"
#include "glk/conf.h"
namespace Glk {
namespace Frotz {
@ -197,6 +198,11 @@ void Processor::initialize() {
op0_opcodes[9] = &Processor::z_catch;
op1_opcodes[15] = &Processor::z_call_n;
}
PropFontInfo &pi = g_conf->_propInfo;
_quotes = pi._quotes;
_dashes = pi._quotes;
_spaces = pi._spaces;
}
void Processor::load_operand(zbyte type) {

View File

@ -95,6 +95,10 @@ private:
bool istream_replay;
bool message;
Common::FixedStack<Redirect, MAX_NESTING> _redirect;
int _quotes;
int _dashes;
int _spaces;
protected:
/**
* \defgroup General support methods

View File

@ -22,6 +22,7 @@
#include "glk/frotz/processor.h"
#include "glk/frotz/frotz.h"
#include "glk/conf.h"
#include "glk/events.h"
namespace Glk {
@ -382,6 +383,20 @@ void Processor::z_set_font() {
store(0);
break;
}
PropFontInfo &pi = g_conf->_propInfo;
if (curr_font == GRAPHICS_FONT) {
_quotes = pi._quotes;
_dashes = pi._dashes;
_spaces = pi._spaces;
pi._quotes = 0;
pi._dashes = 0;
pi._spaces = 0;
} else {
pi._quotes = _quotes;
pi._dashes = _dashes;
pi._spaces = _spaces;
}
}
void Processor::z_set_cursor() {