Get rid of global variable.

This commit is contained in:
Voxel 2018-08-12 16:54:02 +01:00
parent 738daf8bae
commit f3f8d5d0a3
3 changed files with 5 additions and 6 deletions

View File

@ -4100,6 +4100,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexData4f)
}
int o = g_InlineVertexBuffer_TableOffset;
static bool m_DiffuseSet = false;
uint FVFPosType = g_InlineVertexBuffer_FVF & D3DFVF_POSITION_MASK;
switch(Register)
@ -4113,11 +4114,11 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexData4f)
g_InlineVertexBuffer_Table[o].Position.z = c;
g_InlineVertexBuffer_Table[o].Rhw = d; // Was : 1.0f; // Dxbx note : Why set Rhw to 1.0? And why ignore d?
if (o > 0 && g_InlineVertexBuffer_DiffuseFlag == 0) {
if (o > 0 && !m_DiffuseSet) {
g_InlineVertexBuffer_Table[o].Diffuse = g_InlineVertexBuffer_Table[o - 1].Diffuse;
}
g_InlineVertexBuffer_DiffuseFlag = 0;
m_DiffuseSet = false;
switch (g_InlineVertexBuffer_FVF & D3DFVF_POSITION_MASK) {
case 0:
@ -4197,7 +4198,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexData4f)
{
g_InlineVertexBuffer_Table[o].Diffuse = D3DCOLOR_COLORVALUE(a, b, c, d);
g_InlineVertexBuffer_FVF |= D3DFVF_DIFFUSE;
g_InlineVertexBuffer_DiffuseFlag = 1;
m_DiffuseSet = true;
break;
}

View File

@ -60,7 +60,6 @@ extern DWORD XTL::g_InlineVertexBuffer_FVF = 0;
extern struct XTL::_D3DIVB *XTL::g_InlineVertexBuffer_Table = nullptr;
extern UINT XTL::g_InlineVertexBuffer_TableLength = 0;
extern UINT XTL::g_InlineVertexBuffer_TableOffset = 0;
extern UINT XTL::g_InlineVertexBuffer_DiffuseFlag = 0;
FLOAT *g_InlineVertexBuffer_pData = nullptr;
UINT g_InlineVertexBuffer_DataSize = 0;

View File

@ -118,8 +118,7 @@ extern struct _D3DIVB
*g_InlineVertexBuffer_Table;
extern UINT g_InlineVertexBuffer_TableLength;
extern UINT g_InlineVertexBuffer_TableOffset;
extern UINT g_InlineVertexBuffer_DiffuseFlag;
extern UINT g_InlineVertexBuffer_TableOffset;
extern VOID EmuFlushIVB();