mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-30 15:52:09 +00:00
Using PickActor will only set the TID if the picked actor doesn't have a TID already. An optional 8th parameter (bool forceTID) was added to revert to the old behavior.
This commit is contained in:
parent
c9252d1919
commit
82255c4dfd
1 changed files with 16 additions and 4 deletions
|
@ -5619,15 +5619,27 @@ doplaysound: if (funcIndex == ACSF_PlayActorSound)
|
||||||
wallMask = args[6];
|
wallMask = args[6];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool forceTID = 0;
|
||||||
|
if (argCount >= 8)
|
||||||
|
{
|
||||||
|
if (args[7] != 0)
|
||||||
|
forceTID = 1;
|
||||||
|
}
|
||||||
|
|
||||||
AActor* pickedActor = P_LinePickActor(actor, args[1] << 16, args[3], args[2] << 16, actorMask, wallMask);
|
AActor* pickedActor = P_LinePickActor(actor, args[1] << 16, args[3], args[2] << 16, actorMask, wallMask);
|
||||||
if (pickedActor == NULL) {
|
if (pickedActor == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pickedActor->RemoveFromHash();
|
if (!(forceTID) && (args[4] == 0) && (pickedActor->tid == 0))
|
||||||
pickedActor->tid = args[4];
|
return 0;
|
||||||
pickedActor->AddToHash();
|
|
||||||
|
if ((pickedActor->tid == 0) || (forceTID))
|
||||||
|
{
|
||||||
|
pickedActor->RemoveFromHash();
|
||||||
|
pickedActor->tid = args[4];
|
||||||
|
pickedActor->AddToHash();
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue