mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 14:51:15 +00:00
fix: MxPalette::SetPalette is now functionally matching
Not assembly matching yet because of MSVC weirdness. At some point it will probably start matching, because the structure seems to be accurate.
This commit is contained in:
parent
5a6fcde97b
commit
5dd157fe6c
@ -367,16 +367,57 @@ void MxPalette::Detach()
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf170
|
||||
MxResult MxPalette::SetPalette(LPPALETTEENTRY p_palette)
|
||||
MxResult MxPalette::SetPalette(LPPALETTEENTRY p_entries)
|
||||
{
|
||||
int i = 0;
|
||||
MxResult ret = SUCCESS;
|
||||
if (this->m_palette != NULL) {
|
||||
for(int i = 0; i <= 10; i++) {
|
||||
MxS32 i;
|
||||
MxResult status = 0;
|
||||
|
||||
if ( this->m_palette )
|
||||
{
|
||||
for ( i = 0; i < 10; i++ )
|
||||
this->m_entries[i].peFlags = 0x80;
|
||||
for ( i = 10; i < 136; i++ )
|
||||
{
|
||||
this->m_entries[i].peFlags = 68;
|
||||
this->m_entries[i].peRed = p_entries[i].peRed;
|
||||
this->m_entries[i].peGreen = p_entries[i].peGreen;
|
||||
this->m_entries[i].peBlue = p_entries[i].peBlue;
|
||||
}
|
||||
for ( i = 136; i < 140; i++ )
|
||||
{
|
||||
this->m_entries[i].peFlags = 132;
|
||||
this->m_entries[i].peRed = p_entries[i].peRed;
|
||||
this->m_entries[i].peGreen = p_entries[i].peGreen;
|
||||
this->m_entries[i].peBlue = p_entries[i].peBlue;
|
||||
}
|
||||
if ( !this->m_overrideSkyColor )
|
||||
{
|
||||
this->m_entries[140].peFlags = 0x44;
|
||||
this->m_entries[140].peRed = p_entries[140].peRed;
|
||||
this->m_entries[140].peGreen = p_entries[140].peGreen;
|
||||
this->m_entries[140].peBlue = p_entries[140].peBlue;
|
||||
this->m_entries[141].peFlags = 0x84;
|
||||
this->m_entries[141].peRed = p_entries[141].peRed;
|
||||
this->m_entries[141].peGreen = p_entries[141].peGreen;
|
||||
this->m_entries[141].peBlue = p_entries[141].peBlue;
|
||||
}
|
||||
|
||||
for ( i = 142; i < 246; i++ )
|
||||
{
|
||||
this->m_entries[i].peFlags = 132;
|
||||
this->m_entries[i].peRed = p_entries[i].peRed;
|
||||
this->m_entries[i].peGreen = p_entries[i].peGreen;
|
||||
this->m_entries[i].peBlue = p_entries[i].peBlue;
|
||||
}
|
||||
|
||||
for ( i = 246; i < 256; i++ )
|
||||
this->m_entries[i].peFlags = 0x80;
|
||||
|
||||
if ( this->m_palette->SetEntries(0, 0, 256, this->m_entries) )
|
||||
status = -1;
|
||||
}
|
||||
return ret;
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf2d0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user