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);