Fix mirrors, poly draw (WIP), and game over screen. Temp disable high scores.

This commit is contained in:
elasota
2019-12-28 19:50:29 -05:00
parent d9e61cffac
commit 08fac98637
42 changed files with 666 additions and 333 deletions

View File

@@ -20,11 +20,14 @@ namespace PortabilityLayer
, m_clipRegion(nullptr)
, m_penInvert(false)
, m_penMask(false)
, m_havePattern8x8(false)
{
m_backUnresolvedColor.r = m_backUnresolvedColor.g = m_backUnresolvedColor.b = m_backUnresolvedColor.a = 255;
m_foreUnresolvedColor.r = m_foreUnresolvedColor.g = m_foreUnresolvedColor.b = 0;
m_foreUnresolvedColor.a = 255;
m_penPos.h = m_penPos.v = 0;
memset(m_pattern8x8, 0, sizeof(m_pattern8x8));
}
void QDState::SetForeColor(const RGBAColor &color)
@@ -81,4 +84,39 @@ namespace PortabilityLayer
return resolvedColor;
}
}
void QDState::SetPenPattern8x8(const uint8_t *pattern)
{
if (!pattern)
{
m_havePattern8x8 = false;
return;
}
bool isSolid = true;
for (int i = 0; i < 8; i++)
{
if (pattern[i] != 0xff)
{
isSolid = false;
break;
}
}
if (isSolid)
m_havePattern8x8 = false;
else
{
m_havePattern8x8 = true;
memcpy(m_pattern8x8, pattern, sizeof(m_pattern8x8));
}
}
const uint8_t *QDState::GetPattern8x8() const
{
if (m_havePattern8x8)
return m_pattern8x8;
return nullptr;
}
}