mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 22:11:43 +00:00
- call level compatibility handlers for all levels and pass the map name as a second parameter.
This is for user-made handlers for which the checksum is rather useless both for deciding whether to call the handler and for identifying the map.
This commit is contained in:
parent
68f0cf111d
commit
b2ee99c7cc
2 changed files with 13 additions and 13 deletions
|
@ -353,21 +353,18 @@ IMPLEMENT_CLASS(DLevelCompatibility, true, false);
|
||||||
|
|
||||||
void MapLoader::SetCompatibilityParams(FName checksum)
|
void MapLoader::SetCompatibilityParams(FName checksum)
|
||||||
{
|
{
|
||||||
if (checksum != NAME_None)
|
auto lc = Create<DLevelCompatibility>();
|
||||||
|
lc->loader = this;
|
||||||
|
lc->Level = Level;
|
||||||
|
for(auto cls : PClass::AllClasses)
|
||||||
{
|
{
|
||||||
auto lc = Create<DLevelCompatibility>();
|
if (cls->IsDescendantOf(RUNTIME_CLASS(DLevelCompatibility)))
|
||||||
lc->loader = this;
|
|
||||||
lc->Level = Level;
|
|
||||||
for(auto cls : PClass::AllClasses)
|
|
||||||
{
|
{
|
||||||
if (cls->IsDescendantOf(RUNTIME_CLASS(DLevelCompatibility)))
|
PFunction *const func = dyn_cast<PFunction>(cls->FindSymbol("Apply", false));
|
||||||
|
if (func != nullptr)
|
||||||
{
|
{
|
||||||
PFunction *const func = dyn_cast<PFunction>(cls->FindSymbol("Apply", false));
|
VMValue param[] = { lc, checksum.GetIndex(), &Level->MapName };
|
||||||
if (func != nullptr)
|
VMCall(func->Variants[0].Implementation, param, 3, nullptr, 0);
|
||||||
{
|
|
||||||
VMValue param[] = { lc, (int)checksum };
|
|
||||||
VMCall(func->Variants[0].Implementation, param, 2, nullptr, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,13 @@ class LevelCompatibility native play
|
||||||
{
|
{
|
||||||
native LevelLocals level;
|
native LevelLocals level;
|
||||||
|
|
||||||
protected void Apply(Name checksum)
|
protected void Apply(Name checksum, String mapname)
|
||||||
{
|
{
|
||||||
switch (checksum)
|
switch (checksum)
|
||||||
{
|
{
|
||||||
|
case 'none':
|
||||||
|
return;
|
||||||
|
|
||||||
case '9BC9E12781903D7C2D5697A5E0AEFD6F': // HACX.WAD map05 from 21.10.2010
|
case '9BC9E12781903D7C2D5697A5E0AEFD6F': // HACX.WAD map05 from 21.10.2010
|
||||||
case '9527DD0809FDA39CCFC316A21D135783': // HACX.WAD map05 from 20.10.2010
|
case '9527DD0809FDA39CCFC316A21D135783': // HACX.WAD map05 from 20.10.2010
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue