mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-28 06:53:40 +00:00
- fixed: The counters for the whirlwind were initialized too late, the first time they are needed is in P_CheckMissileSpawn, which gets called from inside P_SpawnMissile. Also took the opportunity and moved them to properties that are accessible from DECORATE.
This commit is contained in:
parent
43b4d452db
commit
c940c2ba81
6 changed files with 20 additions and 9 deletions
|
@ -131,8 +131,6 @@ DEFINE_ACTION_FUNCTION(AActor, A_LichAttack)
|
||||||
{
|
{
|
||||||
mo->AddZ(-32*FRACUNIT, false);
|
mo->AddZ(-32*FRACUNIT, false);
|
||||||
mo->tracer = target;
|
mo->tracer = target;
|
||||||
mo->special1 = 60;
|
|
||||||
mo->special2 = 50; // Timer for active sound
|
|
||||||
mo->health = 20*TICRATE; // Duration
|
mo->health = 20*TICRATE; // Duration
|
||||||
S_Sound (self, CHAN_BODY, "ironlich/attack3", 1, ATTN_NORM);
|
S_Sound (self, CHAN_BODY, "ironlich/attack3", 1, ATTN_NORM);
|
||||||
}
|
}
|
||||||
|
@ -158,9 +156,9 @@ DEFINE_ACTION_FUNCTION(AActor, A_WhirlwindSeek)
|
||||||
self->flags &= ~MF_MISSILE;
|
self->flags &= ~MF_MISSILE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((self->special2 -= 3) < 0)
|
if ((self->threshold -= 3) < 0)
|
||||||
{
|
{
|
||||||
self->special2 = 58 + (pr_seek() & 31);
|
self->threshold = 58 + (pr_seek() & 31);
|
||||||
S_Sound (self, CHAN_BODY, "ironlich/attack3", 1, ATTN_NORM);
|
S_Sound (self, CHAN_BODY, "ironlich/attack3", 1, ATTN_NORM);
|
||||||
}
|
}
|
||||||
if (self->tracer && self->tracer->flags&MF_SHADOW)
|
if (self->tracer && self->tracer->flags&MF_SHADOW)
|
||||||
|
|
|
@ -1353,7 +1353,7 @@ void P_ExplodeMissile (AActor *mo, line_t *line, AActor *target)
|
||||||
{
|
{
|
||||||
if (mo->flags3 & MF3_EXPLOCOUNT)
|
if (mo->flags3 & MF3_EXPLOCOUNT)
|
||||||
{
|
{
|
||||||
if (++mo->special2 < mo->special1)
|
if (++mo->threshold < mo->DefThreshold)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -516,7 +516,7 @@ void P_SerializeWorld (FArchive &arc)
|
||||||
arc << zn->Environment;
|
arc << zn->Environment;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SaveVersion >= 4533)
|
if (SaveVersion >= 4532)
|
||||||
{
|
{
|
||||||
arc << linePortals;
|
arc << linePortals;
|
||||||
}
|
}
|
||||||
|
|
|
@ -547,14 +547,25 @@ DEFINE_PROPERTY(painthreshold, I, Actor)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_PROPERTY(chasethreshold, I, Actor)
|
DEFINE_PROPERTY(defthreshold, I, Actor)
|
||||||
{
|
{
|
||||||
PROP_INT_PARM(id, 0);
|
PROP_INT_PARM(id, 0);
|
||||||
if (id < 0)
|
if (id < 0)
|
||||||
I_Error("ChaseThreshold cannot be negative.");
|
I_Error("DefThreshold cannot be negative.");
|
||||||
defaults->DefThreshold = id;
|
defaults->DefThreshold = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
DEFINE_PROPERTY(threshold, I, Actor)
|
||||||
|
{
|
||||||
|
PROP_INT_PARM(id, 0);
|
||||||
|
if (id < 0)
|
||||||
|
I_Error("Threshold cannot be negative.");
|
||||||
|
defaults->threshold = id;
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -31,7 +31,7 @@ ACTOR Actor native //: Thinker
|
||||||
RipperLevel 0
|
RipperLevel 0
|
||||||
RipLevelMin 0
|
RipLevelMin 0
|
||||||
RipLevelMax 0
|
RipLevelMax 0
|
||||||
ChaseThreshold 100
|
DefThreshold 100
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
native bool CheckClass(class<Actor> checkclass, int ptr_select = AAPTR_DEFAULT, bool match_superclass = false);
|
native bool CheckClass(class<Actor> checkclass, int ptr_select = AAPTR_DEFAULT, bool match_superclass = false);
|
||||||
|
|
|
@ -154,6 +154,8 @@ ACTOR Whirlwind native
|
||||||
+EXPLOCOUNT
|
+EXPLOCOUNT
|
||||||
+StepMissile
|
+StepMissile
|
||||||
RenderStyle Translucent
|
RenderStyle Translucent
|
||||||
|
DefThreshold 60
|
||||||
|
Threshold 50
|
||||||
Alpha 0.4
|
Alpha 0.4
|
||||||
|
|
||||||
action native A_WhirlwindSeek();
|
action native A_WhirlwindSeek();
|
||||||
|
|
Loading…
Reference in a new issue