Conflicts:
	wadsrc/static/actors/constants.txt
This commit is contained in:
Christoph Oelckers 2014-10-12 08:43:46 +02:00
commit 0f19356e24
2 changed files with 11 additions and 7 deletions

View File

@ -1768,6 +1768,7 @@ enum SIX_Flags
SIXF_SETTARGET = 1 << 20, SIXF_SETTARGET = 1 << 20,
SIXF_SETTRACER = 1 << 21, SIXF_SETTRACER = 1 << 21,
SIXF_NOPOINTERS = 1 << 22, SIXF_NOPOINTERS = 1 << 22,
SIXF_ORIGINATOR = 1 << 23,
}; };
static bool InitSpawnedItem(AActor *self, AActor *mo, int flags) static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
@ -1803,11 +1804,13 @@ static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
{ {
mo->pitch = self->pitch; mo->pitch = self->pitch;
} }
while (originator && originator->isMissile()) if (!(flags & SIXF_ORIGINATOR))
{ {
originator = originator->target; while (originator && originator->isMissile())
{
originator = originator->target;
}
} }
if (flags & SIXF_TELEFRAG) if (flags & SIXF_TELEFRAG)
{ {
P_TeleportMove(mo, mo->x, mo->y, mo->z, true); P_TeleportMove(mo, mo->x, mo->y, mo->z, true);
@ -5003,7 +5006,7 @@ static void DoKill(AActor *killtarget, AActor *self, FName damagetype, int flags
//since that's the whole point of it. //since that's the whole point of it.
if ((!(killtarget->flags2 & MF2_INVULNERABLE) || (flags & KILS_FOILINVUL)) && !(killtarget->flags5 & MF5_NODAMAGE)) if ((!(killtarget->flags2 & MF2_INVULNERABLE) || (flags & KILS_FOILINVUL)) && !(killtarget->flags5 & MF5_NODAMAGE))
{ {
P_ExplodeMissile(self->target, NULL, NULL); P_ExplodeMissile(killtarget, NULL, NULL);
} }
} }
if (!(flags & KILS_NOMONSTERS)) if (!(flags & KILS_NOMONSTERS))
@ -5113,9 +5116,9 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_KillSiblings)
enum RMVF_flags enum RMVF_flags
{ {
RMVF_MISSILES = 1 << 0, RMVF_MISSILES = 1 << 0,
RMVF_NOMONSTERS = 1 << 1, RMVF_NOMONSTERS = 1 << 1,
RMVF_MISC = 1 << 2, RMVF_MISC = 1 << 2,
RMVF_EVERYTHING = 1 << 3, RMVF_EVERYTHING = 1 << 3,
}; };

View File

@ -70,6 +70,7 @@ const int SXF_TRANSFERRENDERSTYLE = 1 << 19;
const int SXF_SETTARGET = 1 << 20; const int SXF_SETTARGET = 1 << 20;
const int SXF_SETTRACER = 1 << 21; const int SXF_SETTRACER = 1 << 21;
const int SXF_NOPOINTERS = 1 << 22; const int SXF_NOPOINTERS = 1 << 22;
const int SXF_ORIGINATOR = 1 << 23;
// Flags for A_Chase // Flags for A_Chase
const int CHF_FASTCHASE = 1; const int CHF_FASTCHASE = 1;