mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 23:01:50 +00:00
- Allow for ACS_NamedExecute and friends to be used with SetThingSpecial.
SVN r3389 (trunk)
This commit is contained in:
parent
87f23f6d38
commit
7106c06811
2 changed files with 24 additions and 6 deletions
|
@ -5776,6 +5776,16 @@ int DLevelScript::RunScript ()
|
||||||
|
|
||||||
case PCD_SETTHINGSPECIAL:
|
case PCD_SETTHINGSPECIAL:
|
||||||
{
|
{
|
||||||
|
int specnum = STACK(6);
|
||||||
|
int arg0 = STACK(5);
|
||||||
|
|
||||||
|
// Convert named ACS "specials" into real specials.
|
||||||
|
if (specnum >= -ACSF_ACS_NamedExecuteAlways && specnum <= -ACSF_ACS_NamedExecute)
|
||||||
|
{
|
||||||
|
specnum = NamedACSToNormalACS[-specnum - ACSF_ACS_NamedExecute];
|
||||||
|
arg0 = -FName(FBehavior::StaticLookupString(arg0));
|
||||||
|
}
|
||||||
|
|
||||||
if (STACK(7) != 0)
|
if (STACK(7) != 0)
|
||||||
{
|
{
|
||||||
FActorIterator iterator (STACK(7));
|
FActorIterator iterator (STACK(7));
|
||||||
|
@ -5783,8 +5793,8 @@ int DLevelScript::RunScript ()
|
||||||
|
|
||||||
while ( (actor = iterator.Next ()) )
|
while ( (actor = iterator.Next ()) )
|
||||||
{
|
{
|
||||||
actor->special = STACK(6);
|
actor->special = specnum;
|
||||||
actor->args[0] = STACK(5);
|
actor->args[0] = arg0;
|
||||||
actor->args[1] = STACK(4);
|
actor->args[1] = STACK(4);
|
||||||
actor->args[2] = STACK(3);
|
actor->args[2] = STACK(3);
|
||||||
actor->args[3] = STACK(2);
|
actor->args[3] = STACK(2);
|
||||||
|
@ -5793,8 +5803,8 @@ int DLevelScript::RunScript ()
|
||||||
}
|
}
|
||||||
else if (activator != NULL)
|
else if (activator != NULL)
|
||||||
{
|
{
|
||||||
activator->special = STACK(6);
|
activator->special = specnum;
|
||||||
activator->args[0] = STACK(5);
|
activator->args[0] = arg0;
|
||||||
activator->args[1] = STACK(4);
|
activator->args[1] = STACK(4);
|
||||||
activator->args[2] = STACK(3);
|
activator->args[2] = STACK(3);
|
||||||
activator->args[3] = STACK(2);
|
activator->args[3] = STACK(2);
|
||||||
|
|
|
@ -260,8 +260,16 @@ void AActor::Serialize (FArchive &arc)
|
||||||
<< tracer
|
<< tracer
|
||||||
<< floorclip
|
<< floorclip
|
||||||
<< tid
|
<< tid
|
||||||
<< special
|
<< special;
|
||||||
<< args[0] << args[1] << args[2] << args[3] << args[4]
|
if (P_IsACSSpecial(special))
|
||||||
|
{
|
||||||
|
P_SerializeACSScriptNumber(arc, args[0], false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arc << args[0];
|
||||||
|
}
|
||||||
|
arc << args[1] << args[2] << args[3] << args[4]
|
||||||
<< goal
|
<< goal
|
||||||
<< waterlevel
|
<< waterlevel
|
||||||
<< MinMissileChance
|
<< MinMissileChance
|
||||||
|
|
Loading…
Reference in a new issue