From 690f340922eca515d1cc1364365dae018a01ecb7 Mon Sep 17 00:00:00 2001 From: "G.K.MacGregor" Date: Sun, 18 Apr 2021 19:33:32 +0100 Subject: [PATCH] Fix wrong positioning of subobjects within objects --- render.cpp | 2 +- render.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/render.cpp b/render.cpp index 30793fb..9d79e1b 100644 --- a/render.cpp +++ b/render.cpp @@ -187,7 +187,7 @@ void TeletextPageRender::buildEnhanceMap(TextLayer *enhanceLayer, int tripletNum EnhanceLayer *newLayer = new EnhanceLayer; m_textLayer.push_back(newLayer); newLayer->setObjectType(x26Triplet->mode() & 0x03); - newLayer->setOrigin(activePosition.row()+originModifierR, activePosition.column()+originModifierC); + newLayer->setOrigin(enhanceLayer->originR() + activePosition.row() + originModifierR, enhanceLayer->originC() + activePosition.column() + originModifierC); buildEnhanceMap(newLayer, tripletPointer+1); } else qDebug("POP or GPOP"); diff --git a/render.h b/render.h index 9700395..3994316 100644 --- a/render.h +++ b/render.h @@ -107,6 +107,8 @@ public: virtual int fullRowColour(int) const =0; virtual bool fullRowDownwards(int) const =0; virtual int objectType() const =0; + virtual int originR() const { return 0; }; + virtual int originC() const { return 0; }; void setFullScreenColour(int); void setFullRowColour(int, int, bool); @@ -131,6 +133,8 @@ public: int fullRowColour(int r) const { return m_layerFullRowColour[r]; }; bool fullRowDownwards(int r) const { return m_layerFullRowDownwards[r]; }; int objectType() const { return m_objectType; }; + int originR() const { return m_originR; }; + int originC() const { return m_originC; }; void setObjectType(int); void setOrigin(int, int);