diff --git a/src/p_enemy.c b/src/p_enemy.c index c877528ad..a37b5ad04 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -13374,10 +13374,11 @@ void A_MayonakaArrow(mobj_t *actor) if (LUA_CallAction(A_MAYONAKAARROW, (actor))) return; - iswarning = actor->spawnpoint->options & MTF_OBJECTSPECIAL; // is our object a warning sign? + iswarning = (actor->spawnpoint->args[0] == TMMA_WARN); // is our object a warning sign? + // "animtimer" is replaced by "extravalue1" here. actor->extravalue1 = ((actor->extravalue1) ? (actor->extravalue1+1) : (P_RandomRange(PR_DECORATION, 0, (iswarning) ? (TICRATE/2) : TICRATE*3))); - flip = ((actor->spawnpoint->options & 1) ? (3) : (0)); // flip adds 3 frames, which is the flipped version of the sign. + flip = ((actor->spawnpoint->args[0] == TMMA_FLIP) ? (3) : (0)); // flip adds 3 frames, which is the flipped version of the sign. // special warning behavior: if (iswarning) flip = 6; diff --git a/src/p_setup.c b/src/p_setup.c index f0e9c4fb6..05aafd651 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -6579,6 +6579,12 @@ static void P_ConvertBinaryThingTypes(void) mapthings[i].args[2] |= TMBCF_BACKANDFORTH; } break; + case 3122: // MT_MAYONAKAARROW + if (mapthings[i].options & MTF_OBJECTSPECIAL) + mapthings[i].args[0] = TMMA_WARN; + else if (mapthings[i].options & MTF_EXTRA) + mapthings[i].args[0] = TMMA_FLIP; + break; case FLOOR_SLOPE_THING: case CEILING_SLOPE_THING: Tag_FSet(&mapthings[i].tags, mapthings[i].extrainfo); diff --git a/src/p_spec.h b/src/p_spec.h index 41b9315b8..91bc74150 100644 --- a/src/p_spec.h +++ b/src/p_spec.h @@ -49,26 +49,6 @@ typedef enum TMSF_INTANGIBLE = 1<<1, } textmapspikeflags_t; -typedef enum -{ - TMWPF_DISABLED = 1, - TMWPF_SHORTCUT = 1<<1, - TMWPF_NORESPAWN = 1<<2, - TMWPF_FINISHLINE = 1<<3, -} textmapwaypointflags_t; - -typedef enum -{ - TMBCF_BACKANDFORTH = 1, - TMBCF_REVERSE = 1<<1, -} textmapbattlecapsuleflags_t; - -typedef enum -{ - TMICF_INVERTTIMEATTACK = 1, - TMICF_INVERTSIZE = 1<<1, -} textmapitemcapsuleflags_t; - typedef enum { TMFF_AIMLESS = 1, @@ -141,6 +121,32 @@ typedef enum TMB_BARRIER = 1<<1, } textmapbrakflags_t; +typedef enum +{ + TMWPF_DISABLED = 1, + TMWPF_SHORTCUT = 1<<1, + TMWPF_NORESPAWN = 1<<2, + TMWPF_FINISHLINE = 1<<3, +} textmapwaypointflags_t; + +typedef enum +{ + TMBCF_BACKANDFORTH = 1, + TMBCF_REVERSE = 1<<1, +} textmapbattlecapsuleflags_t; + +typedef enum +{ + TMICF_INVERTTIMEATTACK = 1, + TMICF_INVERTSIZE = 1<<1, +} textmapitemcapsuleflags_t; + +typedef enum +{ + TMMA_WARN = 1, + TMMA_FLIP = 2, +} textmapmayarrow_t; + typedef enum { TMEF_SKIPTALLY = 1,