- Used the one unused byte in the state structure as a flag to tell what type
the NextState parameter is. The code did some rather unsafe checks with it to determine its type. - moved all state related code into a new file: p_states.cpp. - merged all FindState functions. All the different variations are now inlined and call the same function to do the real work. SVN r1243 (trunk)
This commit is contained in:
parent
b523ebd2a7
commit
954955c5a5
16 changed files with 1001 additions and 904 deletions
|
|
@ -5230,16 +5230,13 @@ int DLevelScript::RunScript ()
|
|||
case PCD_SETACTORSTATE:
|
||||
{
|
||||
const char *statename = FBehavior::StaticLookupString (STACK(2));
|
||||
TArray<FName> statelist;
|
||||
FState *state;
|
||||
|
||||
MakeStateNameList(statename, &statelist);
|
||||
|
||||
if (STACK(3) == 0)
|
||||
{
|
||||
if (activator != NULL)
|
||||
{
|
||||
state = activator->GetClass()->ActorInfo->FindState (statelist.Size(), &statelist[0], !!STACK(1));
|
||||
state = activator->GetClass()->ActorInfo->FindStateByString (statename, !!STACK(1));
|
||||
if (state != NULL)
|
||||
{
|
||||
activator->SetState (state);
|
||||
|
|
@ -5259,7 +5256,7 @@ int DLevelScript::RunScript ()
|
|||
|
||||
while ( (actor = iterator.Next ()) )
|
||||
{
|
||||
state = actor->GetClass()->ActorInfo->FindState (statelist.Size(), &statelist[0], !!STACK(1));
|
||||
state = actor->GetClass()->ActorInfo->FindStateByString (statename, !!STACK(1));
|
||||
if (state != NULL)
|
||||
{
|
||||
actor->SetState (state);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue