- moved all remaining fields from PClassActor to FActorInfo.

- added a few access functions for FActorInfo variables.

With PClassActor now empty the class descriptors can finally be converted back to static data outside the class hierarchy, like they were before the scripting merge, and untangle the game data from VM internals.
This commit is contained in:
Christoph Oelckers 2017-04-12 00:07:41 +02:00
commit e4d2380775
25 changed files with 122 additions and 118 deletions

View file

@ -323,7 +323,7 @@ static void CheckLabel(PClassActor *obj, FStateLabel *slb, int useflag, FName st
static void CheckStateLabels(PClassActor *obj, ENamedName *test, int useflag, const char *descript)
{
FStateLabels *labels = obj->StateList;
FStateLabels *labels = obj->GetStateLabels();
for (; *test != NAME_None; test++)
{
@ -353,9 +353,9 @@ static void CheckStates(PClassActor *obj)
{
CheckStateLabels(obj, pickupstates, SUF_ITEM, "CustomInventory state chain");
}
for (int i = 0; i < obj->ActorInfo()->NumOwnedStates; i++)
for (unsigned i = 0; i < obj->GetStateCount(); i++)
{
auto state = obj->ActorInfo()->OwnedStates + i;
auto state = obj->GetStates() + i;
if (state->NextState && (state->UseFlags & state->NextState->UseFlags) != state->UseFlags)
{
GetStateSource(state).Message(MSG_ERROR, TEXTCOLOR_RED "State %s links to a state with incompatible restrictions.\n",