From d1739feda97634dbdc543b01dbd78b115c7b888b Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 22 Dec 2023 23:54:43 -0800 Subject: [PATCH 1/2] Only let items and player hit special UFO --- src/objects/ufo.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/objects/ufo.c b/src/objects/ufo.c index 3ed9614f4..a85383644 100644 --- a/src/objects/ufo.c +++ b/src/objects/ufo.c @@ -834,6 +834,14 @@ static UINT8 GetUFODamage(mobj_t *inflictor, UINT8 damageType) ret = 10; break; } + case MT_GARDENTOP: + { + // Garden Top is not classified as a "field + // item" because the player can ride it. So + // an explicit case is necessary. + ret = 10; + break; + } case MT_PLAYER: { // Players deal damage relative to how many sneakers they used. @@ -849,6 +857,11 @@ static UINT8 GetUFODamage(mobj_t *inflictor, UINT8 damageType) } default: { + // General hazards cannot damage the UFO + if (P_IsKartFieldItem(inflictor->type) == false) + { + return 0; + } break; } } From 166391531d3b3c820f027dede2e1002ea20d523f Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 23 Dec 2023 09:56:31 -0800 Subject: [PATCH 2/2] Fix SPB not properly damaging special UFO --- src/objects/ufo.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/objects/ufo.c b/src/objects/ufo.c index a85383644..bbb215878 100644 --- a/src/objects/ufo.c +++ b/src/objects/ufo.c @@ -813,9 +813,13 @@ static UINT8 GetUFODamage(mobj_t *inflictor, UINT8 damageType) break; } case MT_SPB: + case MT_SPBEXPLOSION: { + if (inflictor->type != MT_SPBEXPLOSION || inflictor->threshold == KITEM_SPB) + { + targetdamaging |= UFOD_SPB; + } // SPB deals triple damage. - targetdamaging |= UFOD_SPB; ret = 30; break; }