Merge commit 'fb9231a38d' into scripting
Conflicts: src/info.cpp src/thingdef/thingdef_expression.cpp wadsrc/static/actors/constants.txt (Scripting branch update part 2)
This commit is contained in:
commit
d6e3fc0567
76 changed files with 562 additions and 312 deletions
|
|
@ -2090,30 +2090,32 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_TakeFromSiblings)
|
|||
|
||||
enum SIX_Flags
|
||||
{
|
||||
SIXF_TRANSFERTRANSLATION = 1 << 0,
|
||||
SIXF_ABSOLUTEPOSITION = 1 << 1,
|
||||
SIXF_ABSOLUTEANGLE = 1 << 2,
|
||||
SIXF_ABSOLUTEVELOCITY = 1 << 3,
|
||||
SIXF_SETMASTER = 1 << 4,
|
||||
SIXF_NOCHECKPOSITION = 1 << 5,
|
||||
SIXF_TELEFRAG = 1 << 6,
|
||||
SIXF_CLIENTSIDE = 1 << 7, // only used by Skulldronum
|
||||
SIXF_TRANSFERAMBUSHFLAG = 1 << 8,
|
||||
SIXF_TRANSFERPITCH = 1 << 9,
|
||||
SIXF_TRANSFERPOINTERS = 1 << 10,
|
||||
SIXF_USEBLOODCOLOR = 1 << 11,
|
||||
SIXF_CLEARCALLERTID = 1 << 12,
|
||||
SIXF_MULTIPLYSPEED = 1 << 13,
|
||||
SIXF_TRANSFERSCALE = 1 << 14,
|
||||
SIXF_TRANSFERSPECIAL = 1 << 15,
|
||||
SIXF_CLEARCALLERSPECIAL = 1 << 16,
|
||||
SIXF_TRANSFERSTENCILCOL = 1 << 17,
|
||||
SIXF_TRANSFERALPHA = 1 << 18,
|
||||
SIXF_TRANSFERRENDERSTYLE = 1 << 19,
|
||||
SIXF_SETTARGET = 1 << 20,
|
||||
SIXF_SETTRACER = 1 << 21,
|
||||
SIXF_NOPOINTERS = 1 << 22,
|
||||
SIXF_ORIGINATOR = 1 << 23,
|
||||
SIXF_TRANSFERTRANSLATION = 0x00000001,
|
||||
SIXF_ABSOLUTEPOSITION = 0x00000002,
|
||||
SIXF_ABSOLUTEANGLE = 0x00000004,
|
||||
SIXF_ABSOLUTEVELOCITY = 0x00000008,
|
||||
SIXF_SETMASTER = 0x00000010,
|
||||
SIXF_NOCHECKPOSITION = 0x00000020,
|
||||
SIXF_TELEFRAG = 0x00000040,
|
||||
SIXF_CLIENTSIDE = 0x00000080, // only used by Skulldronum
|
||||
SIXF_TRANSFERAMBUSHFLAG = 0x00000100,
|
||||
SIXF_TRANSFERPITCH = 0x00000200,
|
||||
SIXF_TRANSFERPOINTERS = 0x00000400,
|
||||
SIXF_USEBLOODCOLOR = 0x00000800,
|
||||
SIXF_CLEARCALLERTID = 0x00001000,
|
||||
SIXF_MULTIPLYSPEED = 0x00002000,
|
||||
SIXF_TRANSFERSCALE = 0x00004000,
|
||||
SIXF_TRANSFERSPECIAL = 0x00008000,
|
||||
SIXF_CLEARCALLERSPECIAL = 0x00010000,
|
||||
SIXF_TRANSFERSTENCILCOL = 0x00020000,
|
||||
SIXF_TRANSFERALPHA = 0x00040000,
|
||||
SIXF_TRANSFERRENDERSTYLE = 0x00080000,
|
||||
SIXF_SETTARGET = 0x00100000,
|
||||
SIXF_SETTRACER = 0x00200000,
|
||||
SIXF_NOPOINTERS = 0x00400000,
|
||||
SIXF_ORIGINATOR = 0x00800000,
|
||||
SIXF_TRANSFERSPRITEFRAME = 0x01000000,
|
||||
SIXF_TRANSFERROLL = 0x02000000,
|
||||
};
|
||||
|
||||
static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
|
||||
|
|
@ -2259,6 +2261,17 @@ static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
|
|||
{
|
||||
mo->RenderStyle = self->RenderStyle;
|
||||
}
|
||||
|
||||
if (flags & SIXF_TRANSFERSPRITEFRAME)
|
||||
{
|
||||
mo->sprite = self->sprite;
|
||||
mo->frame = self->frame;
|
||||
}
|
||||
|
||||
if (flags & SIXF_TRANSFERROLL)
|
||||
{
|
||||
mo->roll = self->roll;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -4745,6 +4758,29 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Quake)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// A_QuakeEx
|
||||
//
|
||||
// Extended version of A_Quake. Takes individual axis into account and can
|
||||
// take a flag.
|
||||
//===========================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_QuakeEx)
|
||||
{
|
||||
PARAM_ACTION_PROLOGUE;
|
||||
PARAM_INT(intensityX);
|
||||
PARAM_INT(intensityY);
|
||||
PARAM_INT(intensityZ);
|
||||
PARAM_INT(duration);
|
||||
PARAM_INT(damrad);
|
||||
PARAM_INT(tremrad);
|
||||
PARAM_SOUND_OPT (sound) { sound = "world/quake"; }
|
||||
PARAM_INT_OPT(flags) { flags = 0; }
|
||||
P_StartQuakeXYZ(self, 0, intensityX, intensityY, intensityZ, duration, damrad, tremrad, sound, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// A_Weave
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue