Quick fix to keep the "white ambient" flag from being enabled in MP1/2
This commit is contained in:
parent
1727a337c6
commit
8c722c8308
|
@ -25,19 +25,19 @@ public:
|
||||||
// Enums
|
// Enums
|
||||||
enum EMaterialOption
|
enum EMaterialOption
|
||||||
{
|
{
|
||||||
eNoSettings = 0,
|
eNoSettings = 0,
|
||||||
eKonst = 0x8,
|
eKonst = 0x8,
|
||||||
eTransparent = 0x10,
|
eTransparent = 0x10,
|
||||||
ePunchthrough = 0x20,
|
ePunchthrough = 0x20,
|
||||||
eReflection = 0x40,
|
eReflection = 0x40,
|
||||||
eDepthWrite = 0x80,
|
eDepthWrite = 0x80,
|
||||||
eSurfaceReflection = 0x100,
|
eSurfaceReflection = 0x100,
|
||||||
eOccluder = 0x200,
|
eOccluder = 0x200,
|
||||||
eIndStage = 0x400,
|
eIndStage = 0x400,
|
||||||
eLightmap = 0x800,
|
eLightmap = 0x800,
|
||||||
eShortTexCoord = 0x2000,
|
eShortTexCoord = 0x2000,
|
||||||
eDrawWhiteAmbient = 0x80000, // this flag is possibly incorrect! attempted fix for black world models in DKCR
|
eAllMP1Settings = 0x2FF8,
|
||||||
eAllSettings = 0x82FF8
|
eDrawWhiteAmbientDKCR = 0x80000
|
||||||
};
|
};
|
||||||
DECLARE_FLAGS(EMaterialOption, FMaterialOptions)
|
DECLARE_FLAGS(EMaterialOption, FMaterialOptions)
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ CMaterial* CMaterialLoader::ReadPrimeMaterial()
|
||||||
pMat->mEnableBloom = false;
|
pMat->mEnableBloom = false;
|
||||||
|
|
||||||
// Flags
|
// Flags
|
||||||
pMat->mOptions = (mpFile->ReadLong() & CMaterial::eAllSettings);
|
pMat->mOptions = (mpFile->ReadLong() & CMaterial::eAllMP1Settings);
|
||||||
|
|
||||||
// Textures
|
// Textures
|
||||||
u32 NumTextures = mpFile->ReadLong();
|
u32 NumTextures = mpFile->ReadLong();
|
||||||
|
@ -263,7 +263,7 @@ CMaterial* CMaterialLoader::ReadCorruptionMaterial()
|
||||||
|
|
||||||
if (Flags & 0x10) pMat->mOptions |= CMaterial::ePunchthrough;
|
if (Flags & 0x10) pMat->mOptions |= CMaterial::ePunchthrough;
|
||||||
if (Flags & 0x100) pMat->mOptions |= CMaterial::eOccluder;
|
if (Flags & 0x100) pMat->mOptions |= CMaterial::eOccluder;
|
||||||
if (Flags & 0x80000) pMat->mOptions |= CMaterial::eDrawWhiteAmbient;
|
if (Flags & 0x80000) pMat->mOptions |= CMaterial::eDrawWhiteAmbientDKCR;
|
||||||
mHas0x400 = ((Flags & 0x400) != 0);
|
mHas0x400 = ((Flags & 0x400) != 0);
|
||||||
|
|
||||||
mpFile->Seek(0x8, SEEK_CUR); // Don't know what any of this is
|
mpFile->Seek(0x8, SEEK_CUR); // Don't know what any of this is
|
||||||
|
|
|
@ -58,7 +58,7 @@ void CStaticNode::Draw(FRenderOptions Options, int ComponentIndex, const SViewIn
|
||||||
if (!mpModel) return;
|
if (!mpModel) return;
|
||||||
|
|
||||||
bool IsLightingEnabled = CGraphics::sLightMode == CGraphics::eWorldLighting || ViewInfo.GameMode;
|
bool IsLightingEnabled = CGraphics::sLightMode == CGraphics::eWorldLighting || ViewInfo.GameMode;
|
||||||
bool UseWhiteAmbient = (mpModel->GetMaterial()->Options() & CMaterial::eDrawWhiteAmbient) != 0;
|
bool UseWhiteAmbient = (mpModel->GetMaterial()->Options() & CMaterial::eDrawWhiteAmbientDKCR) != 0;
|
||||||
|
|
||||||
if (IsLightingEnabled)
|
if (IsLightingEnabled)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue