mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-03-10 03:02:21 +00:00
- do two-step init of CVARs to ensure that flag and mask vars always find their master CVar.
This commit is contained in:
parent
da33b0f9c3
commit
2b805e196d
2 changed files with 24 additions and 11 deletions
|
@ -102,16 +102,6 @@ void C_InitCVars(int which)
|
||||||
newcvar = new FStringCVar(cvInfo->name, cvInfo->defaultval.String, cvInfo->flags, reinterpret_cast<callbacktype>(cvInfo->callbackp), cvInfo->description);
|
newcvar = new FStringCVar(cvInfo->name, cvInfo->defaultval.String, cvInfo->flags, reinterpret_cast<callbacktype>(cvInfo->callbackp), cvInfo->description);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CVAR_Flag:
|
|
||||||
{
|
|
||||||
newcvar = new FFlagCVar(cvInfo->name, *cvInfo->defaultval.Pointer->get(), cvInfo->flags, cvInfo->description);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case CVAR_Mask:
|
|
||||||
{
|
|
||||||
newcvar = new FMaskCVar(cvInfo->name, *cvInfo->defaultval.Pointer->get(), cvInfo->flags, cvInfo->description);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case CVAR_Color:
|
case CVAR_Color:
|
||||||
{
|
{
|
||||||
using callbacktype = void (*)(FColorCVar &);
|
using callbacktype = void (*)(FColorCVar &);
|
||||||
|
@ -122,6 +112,28 @@ void C_InitCVars(int which)
|
||||||
}
|
}
|
||||||
*(void**)cvInfo->refAddr = newcvar;
|
*(void**)cvInfo->refAddr = newcvar;
|
||||||
});
|
});
|
||||||
|
AutoSegs::CVarDecl.ForEach([](FCVarDecl* cvInfo)
|
||||||
|
{
|
||||||
|
FBaseCVar* newcvar;
|
||||||
|
switch (cvInfo->type)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
|
||||||
|
case CVAR_Flag:
|
||||||
|
{
|
||||||
|
newcvar = new FFlagCVar(cvInfo->name, *cvInfo->defaultval.Pointer->get(), cvInfo->flags, cvInfo->description);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CVAR_Mask:
|
||||||
|
{
|
||||||
|
newcvar = new FMaskCVar(cvInfo->name, *cvInfo->defaultval.Pointer->get(), cvInfo->flags, cvInfo->description);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
*(void**)cvInfo->refAddr = newcvar;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void C_UninitCVars()
|
void C_UninitCVars()
|
||||||
|
|
|
@ -66,7 +66,8 @@ FImageSource *AnmImage_TryCreate(FileReader & file, int lumpnum)
|
||||||
{
|
{
|
||||||
file.Seek(0, FileReader::SeekSet);
|
file.Seek(0, FileReader::SeekSet);
|
||||||
char check[4];
|
char check[4];
|
||||||
file.Read(check, 4);
|
auto num = file.Read(check, 4);
|
||||||
|
if (num < 4) return nullptr;
|
||||||
if (memcmp(check, "LPF ", 4)) return nullptr;
|
if (memcmp(check, "LPF ", 4)) return nullptr;
|
||||||
file.Seek(0, FileReader::SeekSet);
|
file.Seek(0, FileReader::SeekSet);
|
||||||
auto buffer = file.ReadPadded(1);
|
auto buffer = file.ReadPadded(1);
|
||||||
|
|
Loading…
Reference in a new issue