From ebcab0fac09d9d530556b511e8a6e16aeebad4f3 Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 18 Feb 2023 22:10:58 -0800 Subject: [PATCH] Remove Garden Top grounded arrow --- src/info.c | 2 +- src/objects/gardentop.c | 71 ++++------------------------------------- 2 files changed, 7 insertions(+), 66 deletions(-) diff --git a/src/info.c b/src/info.c index cdfa6f088..037fcc535 100644 --- a/src/info.c +++ b/src/info.c @@ -4371,7 +4371,7 @@ state_t states[NUMSTATES] = {SPR_GTOP, 4, 1, {NULL}, 5, 1, S_GARDENTOP_SINKING1}, // S_GARDENTOP_SINKING3 {SPR_GTOP, FF_ANIMATE, 100, {A_Scream}, 5, 1, S_NULL}, // S_GARDENTOP_DEAD {SPR_BDRF, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 5, 2, S_NULL}, // S_GARDENTOPSPARK - {SPR_GTAR, FF_FULLBRIGHT, -1, {NULL}, 5, 2, S_NULL}, // S_GARDENTOPARROW + {SPR_GTAR, FF_FULLBRIGHT|FF_PAPERSPRITE, -1, {NULL}, 5, 2, S_NULL}, // S_GARDENTOPARROW {SPR_HYUU, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_HYUDORO diff --git a/src/objects/gardentop.c b/src/objects/gardentop.c index 6b8cf780a..4c20b7e9f 100644 --- a/src/objects/gardentop.c +++ b/src/objects/gardentop.c @@ -57,7 +57,6 @@ enum { }; #define arrow_top(o) ((o)->target) -#define arrow_kind(o) ((o)->reactiontime) static inline player_t * get_rider_player (mobj_t *rider) @@ -212,47 +211,16 @@ spawn_grind_spark (mobj_t *top) } } -static mobj_t * -spawn_arrow -( mobj_t * top, - UINT32 ff, - UINT8 kind) +static void +spawn_arrow (mobj_t *top) { mobj_t *arrow = P_SpawnMobjFromMobj( top, 0, 0, 0, MT_GARDENTOPARROW); P_SetTarget(&arrow_top(arrow), top); - arrow_kind(arrow) = kind; - arrow->frame |= ff; - - return arrow; -} - -static void -spawn_arrow_pair (mobj_t *top) -{ - { - mobj_t *x = spawn_arrow(top, - FF_PAPERSPRITE, ARROW_OVERHEAD); - - // overhead arrow is slightly smaller - P_SetScale(x, (x->destscale = 3 * x->scale / 4)); - } - - { - mobj_t *x = spawn_arrow(top, - FF_FLOORSPRITE | FF_ADD, ARROW_IN_FRONT); - - x->renderflags |= RF_SLOPESPLAT | RF_NOSPLATBILLBOARD; - - // Let splat be flat, useful later for - // Obj_GardenTopArrowThink reverse gravity. - x->height = 0; - - // Make the arrow wider (sprite length is horizontal). - x->spriteyscale = 2*FRACUNIT; - } + P_SetScale(arrow, + (arrow->destscale = 3 * arrow->scale / 4)); } static void @@ -547,24 +515,6 @@ anchor_arrow_overhead (mobj_t *arrow) anchor(arrow, top, rider->angle + ANGLE_180, 0); } -static void -anchor_arrow_in_front (mobj_t *arrow) -{ - mobj_t *top = arrow_top(arrow); - mobj_t *rider = top_rider(top); - - anchor(arrow, top, rider->angle, 2 * rider->radius); - - arrow->angle += ANGLE_90; - - if (P_IsObjectFlipped(arrow)) - { - arrow->angle += ANGLE_180; - } - - arrow->floorspriteslope = rider->standingslope; -} - void Obj_GardenTopDeploy (mobj_t *rider) { @@ -591,7 +541,7 @@ Obj_GardenTopDeploy (mobj_t *rider) spawn_spark_circle(top, 6); - spawn_arrow_pair(top); + spawn_arrow(top); } mobj_t * @@ -712,16 +662,7 @@ Obj_GardenTopArrowThink (mobj_t *arrow) return; } - switch (arrow_kind(arrow)) - { - case ARROW_OVERHEAD: - anchor_arrow_overhead(arrow); - break; - - case ARROW_IN_FRONT: - anchor_arrow_in_front(arrow); - break; - } + anchor_arrow_overhead(arrow); if (rider->player) {