- finished the state usage parser.
- added state usage specifiers to Actor and Inventory. The states in these classes must be set to full access so that any existing mod can link to them.
This commit is contained in:
parent
c797319314
commit
4f998fa879
4 changed files with 36 additions and 2 deletions
|
|
@ -2387,6 +2387,39 @@ void ZCCCompiler::CompileStates()
|
|||
|
||||
for (auto s : c->States)
|
||||
{
|
||||
int flags;
|
||||
if (s->Flags != nullptr)
|
||||
{
|
||||
flags = 0;
|
||||
auto p = s->Flags;
|
||||
do
|
||||
{
|
||||
switch (p->Id)
|
||||
{
|
||||
case NAME_Actor:
|
||||
flags |= SUF_ACTOR;
|
||||
break;
|
||||
case NAME_Overlay:
|
||||
flags |= SUF_OVERLAY;
|
||||
break;
|
||||
case NAME_Weapon:
|
||||
flags |= SUF_WEAPON;
|
||||
break;
|
||||
case NAME_Item:
|
||||
flags |= SUF_ITEM;
|
||||
break;
|
||||
default:
|
||||
Error(p, "Unknown States qualifier %s", FName(p->Id).GetChars());
|
||||
break;
|
||||
}
|
||||
|
||||
p = static_cast<decltype(p)>(p->SiblingNext);
|
||||
} while (p != s->Flags);
|
||||
}
|
||||
else
|
||||
{
|
||||
flags = static_cast<PClassActor *>(c->Type())->DefaultStateUsage;
|
||||
}
|
||||
auto st = s->Body;
|
||||
if (st != nullptr) do
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue