mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 12:32:34 +00:00
- Added Blzut3's noextratic fix.
SVN r4231 (trunk)
This commit is contained in:
parent
d2ef6d81da
commit
4bc60ec900
1 changed files with 18 additions and 11 deletions
|
@ -3498,22 +3498,29 @@ void AActor::Tick ()
|
|||
// cycle through states, calling action functions at transitions
|
||||
if (tics != -1)
|
||||
{
|
||||
tics--;
|
||||
|
||||
// you can cycle through multiple states in a tic
|
||||
// [RH] Use <= 0 instead of == 0 so that spawnstates
|
||||
// of 0 tics work as expected.
|
||||
if (tics <= 0)
|
||||
// [BL] If we reach here with a 0 duration state, we
|
||||
// have created an extra tic, so account for it.
|
||||
int newtics;
|
||||
do
|
||||
{
|
||||
assert (state != NULL);
|
||||
if (state == NULL)
|
||||
newtics = --tics;
|
||||
|
||||
// [RH] Use tics <= 0 instead of == 0 so that spawnstates
|
||||
// of 0 tics work as expected.
|
||||
if (tics <= 0)
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
assert (state != NULL);
|
||||
if (state == NULL)
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
if (!SetState (state->GetNextState()))
|
||||
return; // freed itself
|
||||
}
|
||||
if (!SetState (state->GetNextState()))
|
||||
return; // freed itself
|
||||
}
|
||||
while (newtics < 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue