Adapt diagonal springs to UDMF

This commit is contained in:
MascaraSnake 2021-12-27 21:28:42 +01:00
parent fd3fa9a924
commit 43a15387d2
4 changed files with 54 additions and 6 deletions

View file

@ -4722,6 +4722,16 @@ udmf
title = "Diagonal Yellow Spring";
sprite = "YSPRD2";
width = 16;
arg0
{
title = "Flags";
type = 12;
enum
{
1 = "Ignore gravity";
2 = "Rotate 22.5° CCW";
}
}
}
556
{
@ -4729,6 +4739,16 @@ udmf
title = "Diagonal Red Spring";
sprite = "RSPRD2";
width = 16;
arg0
{
title = "Flags";
type = 12;
enum
{
1 = "Ignore gravity";
2 = "Rotate 22.5° CCW";
}
}
}
557
{
@ -4736,6 +4756,16 @@ udmf
title = "Diagonal Blue Spring";
sprite = "BSPRD2";
width = 16;
arg0
{
title = "Flags";
type = 12;
enum
{
1 = "Ignore gravity";
2 = "Rotate 22.5° CCW";
}
}
}
558
{

View file

@ -13050,6 +13050,16 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean
if (maptol & TOL_XMAS)
P_SetMobjState(mobj, mobj->info->seestate);
break;
case MT_YELLOWDIAG:
case MT_REDDIAG:
case MT_BLUEDIAG:
mobj->angle = FixedAngle(mthing->angle << FRACBITS);
if (mthing->args[0] & TMDS_NOGRAVITY)
mobj->flags |= MF_NOGRAVITY;
if (mthing->args[0] & TMDS_ROTATEEXTRA)
mobj->angle += ANGLE_22h;
*doangle = false;
break;
default:
break;
}
@ -13065,9 +13075,6 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean
static void P_SetAmbush(mobj_t *mobj)
{
if (mobj->type == MT_YELLOWDIAG || mobj->type == MT_REDDIAG || mobj->type == MT_BLUEDIAG)
mobj->angle += ANGLE_22h;
if (mobj->flags & MF_NIGHTSITEM)
{
// Spawn already displayed
@ -13095,9 +13102,6 @@ static void P_SetAmbush(mobj_t *mobj)
static void P_SetObjectSpecial(mobj_t *mobj)
{
if (mobj->type == MT_YELLOWDIAG || mobj->type == MT_REDDIAG || mobj->type == MT_BLUEDIAG)
mobj->flags |= MF_NOGRAVITY;
if ((mobj->flags & MF_MONITOR) && mobj->info->speed != 0)
{
// flag for strong/weak random boxes

View file

@ -4990,6 +4990,14 @@ static void P_ConvertBinaryMap(void)
if (mapthings[i].options & MTF_AMBUSH)
mapthings[i].args[2] |= TMSF_INTANGIBLE;
break;
case 555: //Diagonal yellow spring
case 556: //Diagonal red spring
case 557: //Diagonal blue spring
if (mapthings[i].options & MTF_OBJECTSPECIAL)
mapthings[i].args[0] |= TMDS_NOGRAVITY;
if (mapthings[i].options & MTF_AMBUSH)
mapthings[i].args[0] |= TMDS_ROTATEEXTRA;
break;
case 750: //Slope vertex
mapthings[i].args[0] = mapthings[i].extrainfo;
break;

View file

@ -63,6 +63,12 @@ typedef enum
TMFH_CORONA = 1<<1,
} textmapflameholderflags_t;
typedef enum
{
TMDS_NOGRAVITY = 1,
TMDS_ROTATEEXTRA = 1<<1,
} textmapdiagonalspringflags_t;
//FOF flags
typedef enum
{