Merge branch 'scripting'
Conflicts: src/actor.h src/g_doom/a_doomweaps.cpp src/g_hexen/a_blastradius.cpp src/p_enemy.cpp src/p_enemy.h src/thingdef/thingdef.h src/thingdef/thingdef_codeptr.cpp wadsrc/static/actors/constants.txt
This commit is contained in:
commit
b3b0886b64
230 changed files with 24061 additions and 8641 deletions
|
|
@ -22,7 +22,7 @@
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void BlastActor (AActor *victim, fixed_t strength, fixed_t speed, AActor * Owner, const PClass * blasteffect, bool dontdamage)
|
||||
void BlastActor (AActor *victim, fixed_t strength, fixed_t speed, AActor *Owner, PClassActor *blasteffect, bool dontdamage)
|
||||
{
|
||||
angle_t angle,ang;
|
||||
AActor *mo;
|
||||
|
|
@ -97,13 +97,13 @@ enum
|
|||
|
||||
DEFINE_ACTION_FUNCTION_PARAMS (AActor, A_Blast)
|
||||
{
|
||||
ACTION_PARAM_START(6);
|
||||
ACTION_PARAM_INT (blastflags, 0);
|
||||
ACTION_PARAM_FIXED(strength, 1);
|
||||
ACTION_PARAM_FIXED(radius, 2);
|
||||
ACTION_PARAM_FIXED(speed, 3);
|
||||
ACTION_PARAM_CLASS(blasteffect, 4);
|
||||
ACTION_PARAM_SOUND(blastsound, 5);
|
||||
PARAM_ACTION_PROLOGUE;
|
||||
PARAM_INT_OPT (blastflags) { blastflags = 0; }
|
||||
PARAM_INT_OPT (strength) { strength = 255; }
|
||||
PARAM_INT_OPT (radius) { radius = 255; }
|
||||
PARAM_FIXED_OPT (speed) { speed = 20; }
|
||||
PARAM_CLASS_OPT (blasteffect, AActor) { blasteffect = PClass::FindActor("BlastEffect"); }
|
||||
PARAM_SOUND_OPT (blastsound) { blastsound = "BlastRadius"; }
|
||||
|
||||
AActor *mo;
|
||||
TThinkerIterator<AActor> iterator;
|
||||
|
|
@ -111,15 +111,19 @@ DEFINE_ACTION_FUNCTION_PARAMS (AActor, A_Blast)
|
|||
|
||||
if (self->player && (blastflags & BF_USEAMMO) && ACTION_CALL_FROM_WEAPON())
|
||||
{
|
||||
AWeapon * weapon = self->player->ReadyWeapon;
|
||||
AWeapon *weapon = self->player->ReadyWeapon;
|
||||
if (weapon != NULL && !weapon->DepleteAmmo(weapon->bAltFire))
|
||||
return;
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
S_Sound (self, CHAN_AUTO, blastsound, 1, ATTN_NORM);
|
||||
|
||||
if (!(blastflags & BF_DONTWARN)) P_NoiseAlert (self, self);
|
||||
|
||||
if (!(blastflags & BF_DONTWARN))
|
||||
{
|
||||
P_NoiseAlert (self, self);
|
||||
}
|
||||
while ( (mo = iterator.Next ()) )
|
||||
{
|
||||
if ((mo == self) || ((mo->flags2 & MF2_BOSS) && !(blastflags & BF_AFFECTBOSSES))
|
||||
|
|
@ -149,4 +153,5 @@ DEFINE_ACTION_FUNCTION_PARAMS (AActor, A_Blast)
|
|||
}
|
||||
BlastActor (mo, strength, speed, self, blasteffect, !!(blastflags & BF_NOIMPACTDAMAGE));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue