Fix missing bottom half of double size text in passive objects
This commit is contained in:
13
decode.cpp
13
decode.cpp
@@ -848,8 +848,17 @@ void TeletextPageDecode::decodeRow(int r)
|
|||||||
painter->bottomHalfCell[c].fragment = DoubleSizeBottomLeftQuarter;
|
painter->bottomHalfCell[c].fragment = DoubleSizeBottomLeftQuarter;
|
||||||
painter->rightHalfCell = painter->result;
|
painter->rightHalfCell = painter->result;
|
||||||
painter->rightHalfCell.fragment = DoubleSizeTopRightQuarter;
|
painter->rightHalfCell.fragment = DoubleSizeTopRightQuarter;
|
||||||
painter->bottomHalfCell[c+1] = painter->result;
|
// The right half of this "if" statement (without the t != 2) is meant
|
||||||
painter->bottomHalfCell[c+1].fragment = DoubleSizeBottomRightQuarter;
|
// to a fix a bug where the bottom half of double-size characters in
|
||||||
|
// Passive Objects didn't appear.
|
||||||
|
// But the fix also caused the bottom right quarter of double-size
|
||||||
|
// characters in Active Objects to go missing when they overlapped
|
||||||
|
// the bottom half of a Level 1 double-height row.
|
||||||
|
// Hence the t != 2
|
||||||
|
if (t != 2 || painter->bottomHalfCell[c+1].character.code == 0x00) {
|
||||||
|
painter->bottomHalfCell[c+1] = painter->result;
|
||||||
|
painter->bottomHalfCell[c+1].fragment = DoubleSizeBottomRightQuarter;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Double height
|
// Double height
|
||||||
painter->result.fragment = DoubleHeightTopHalf;
|
painter->result.fragment = DoubleHeightTopHalf;
|
||||||
|
|||||||
Reference in New Issue
Block a user