From eb79838ffb7d90f3aa39769e091838d1d5b38472 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Tue, 20 May 2025 16:39:55 -0400 Subject: [PATCH 1/2] Ballhog buffs --- src/info.c | 4 ++-- src/k_collide.cpp | 3 +++ src/p_map.c | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/info.c b/src/info.c index b543282a6..01efdaa1e 100644 --- a/src/info.c +++ b/src/info.c @@ -15257,13 +15257,13 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL, // xdeathstate sfx_None, // deathsound 0, // speed - 16*FRACUNIT, // radius + 32*FRACUNIT, // radius 32*FRACUNIT, // height 0, // display offset 100, // mass 1, // damage sfx_None, // activesound - MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP, // flags + MF_NOGRAVITY|MF_DONTENCOREMAP, // flags S_NULL // raisestate }, diff --git a/src/k_collide.cpp b/src/k_collide.cpp index 3d503077f..6fac60d23 100644 --- a/src/k_collide.cpp +++ b/src/k_collide.cpp @@ -72,6 +72,9 @@ boolean K_BananaBallhogCollide(mobj_t *t1, mobj_t *t2) if (t1->type == MT_BALLHOG && t2->type == MT_BALLHOG) return true; // Ballhogs don't collide with eachother + if (t1->type == MT_BALLHOGBOOM && t2->type == MT_BALLHOGBOOM) + return true; // Ballhogs don't collide with eachother + if (K_TryPickMeUp(t1, t2)) return true; diff --git a/src/p_map.c b/src/p_map.c index 68c487acf..bdec595d7 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -1084,7 +1084,7 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing) return Obj_OrbinautJawzCollide(thing, g_tm.thing) ? BMIT_CONTINUE : BMIT_ABORT; } - if (g_tm.thing->type == MT_BANANA || g_tm.thing->type == MT_BANANA_SHIELD || g_tm.thing->type == MT_BALLHOG) + if (g_tm.thing->type == MT_BANANA || g_tm.thing->type == MT_BANANA_SHIELD || g_tm.thing->type == MT_BALLHOG || g_tm.thing->type == MT_BALLHOGBOOM) { // see if it went over / under if (g_tm.thing->z > thing->z + thing->height) @@ -1094,7 +1094,7 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing) return K_BananaBallhogCollide(g_tm.thing, thing) ? BMIT_CONTINUE : BMIT_ABORT; } - else if (thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD || thing->type == MT_BALLHOG) + else if (thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD || thing->type == MT_BALLHOG || thing->type == MT_BALLHOGBOOM) { // see if it went over / under if (g_tm.thing->z > thing->z + thing->height) From 3c4ca02408e458c96f4ffa22d5152c48163c2d3f Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Tue, 20 May 2025 17:29:35 -0400 Subject: [PATCH 2/2] Source BALLHOGBOOM damage, allow BALLHOGBOOM pickup --- src/k_kart.c | 1 + src/p_enemy.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/k_kart.c b/src/k_kart.c index 84a88b75f..a9dc33bab 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -15591,6 +15591,7 @@ static boolean K_PickUp(player_t *player, mobj_t *picked) type = KITEM_JAWZ; break; case MT_BALLHOG: + case MT_BALLHOGBOOM: type = KITEM_BALLHOG; break; case MT_LANDMINE: diff --git a/src/p_enemy.c b/src/p_enemy.c index 270c20aea..21f1a1c93 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -12203,6 +12203,7 @@ void A_BallhogExplode(mobj_t *actor) mo2 = P_SpawnMobj(actor->x, actor->y, actor->z, MT_BALLHOGBOOM); P_SetScale(mo2, actor->scale*2); mo2->destscale = mo2->scale; + P_SetTarget(&mo2->target, actor->target); S_StartSound(mo2, actor->info->deathsound); return; }