Merge branch 'mace-maintenance' into 'master'

Mace maintenance (resolves #1069, #1645)

Closes #1069 and #1645

See merge request kart-krew-dev/ring-racers-internal!2785
This commit is contained in:
Oni VelocitOni 2025-08-31 00:44:38 +00:00
commit af5dacace9

View file

@ -13329,6 +13329,10 @@ static boolean P_SetupMace(mapthing_t *mthing, mobj_t *mobj)
mobjeflag_t meflagsapply;
const size_t mthingi = (size_t)(mthing - mapthings);
mflagsapply = 0;
mflags2apply = 0;
meflagsapply = 0;
mlength = abs(mthing->thing_args[0]);
mnumspokes = mthing->thing_args[1] + 1;
mspokeangle = FixedAngle((360*FRACUNIT)/mnumspokes) >> ANGLETOFINESHIFT;
@ -13378,6 +13382,10 @@ static boolean P_SetupMace(mapthing_t *mthing, mobj_t *mobj)
case MT_CUSTOMMACEPOINT:
macetype = mthing->thing_stringargs[0] ? get_number(mthing->thing_stringargs[0]) : MT_NULL;
chainlink = mthing->thing_stringargs[1] ? get_number(mthing->thing_stringargs[1]) : MT_NULL;
if (mthing->thing_args[8] & TMM_DOUBLESIZE)
{
mflags2apply |= MF2_BOSSDEAD; // Basically nothing except Item Boxes use this
}
break;
case MT_CHAINPOINT:
if (mthing->thing_args[8] & TMM_DOUBLESIZE)
@ -13406,6 +13414,17 @@ static boolean P_SetupMace(mapthing_t *mthing, mobj_t *mobj)
break;
}
if (modeattacking & ATTACKING_SPB)
{
// SPB Attack item filter
if (macetype == MT_RING || macetype == MT_RANDOMITEM)
macetype = MT_NULL;
if (chainlink == MT_RING || chainlink == MT_RANDOMITEM)
chainlink = MT_NULL;
}
if (!macetype && !chainlink)
return true;
@ -13449,9 +13468,9 @@ static boolean P_SetupMace(mapthing_t *mthing, mobj_t *mobj)
mchainlike = (firsttype == chainlink);
widthfactor = (mchainlike ? 1 : 2);
mflagsapply = (mthing->thing_args[8] & TMM_CLIP) ? 0 : (MF_NOCLIP|MF_NOCLIPHEIGHT);
mflags2apply = ((mthing->options & MTF_OBJECTFLIP) ? MF2_OBJECTFLIP : 0);
meflagsapply = ((mthing->options & MTF_OBJECTFLIP) ? MFE_VERTICALFLIP : 0);
mflagsapply |= (mthing->thing_args[8] & TMM_CLIP) ? 0 : (MF_NOCLIP|MF_NOCLIPHEIGHT);
mflags2apply |= ((mthing->options & MTF_OBJECTFLIP) ? MF2_OBJECTFLIP : 0);
meflagsapply |= ((mthing->options & MTF_OBJECTFLIP) ? MFE_VERTICALFLIP : 0);
msound = (mchainlike ? 0 : (mwidth & 1));