diff --git a/src/objects/battle-ufo.cpp b/src/objects/battle-ufo.cpp index 055567beb..e4a0dc961 100644 --- a/src/objects/battle-ufo.cpp +++ b/src/objects/battle-ufo.cpp @@ -123,6 +123,8 @@ public: ufo->sprzoff(ofs * spawner->scale()); ufo->spawner(spawner); + + ufo->extravalue1 = 0; // Lifetime } }; @@ -134,6 +136,8 @@ void Obj_BattleUFOThink(mobj_t *mobj) { UFO* ufo = static_cast(mobj); + ufo->extravalue1++; + ufo->bob(); if ((leveltime/2) & 1) @@ -141,7 +145,12 @@ void Obj_BattleUFOThink(mobj_t *mobj) ufo->spawn_beam(); } - if (!battleovertime.enabled) + if ((ufo->extravalue1 % (TICRATE*2)) == 0) + { + S_StartSound(ufo, sfx_gbrk); // for debug because it's loud af, use s3k95 probably + } + + if (!battleovertime.enabled && ufo->extravalue1 <= 5*TICRATE) { Obj_PointPlayersToXY(mobj->x, mobj->y); } diff --git a/src/p_inter.c b/src/p_inter.c index 5dae5dc82..dfe72f981 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3163,6 +3163,10 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da Obj_EndBungee(player); K_BumperInflate(target->player); + // Explosions are explicit combo setups. + if (damagetype & DMG_EXPLODE) + player->bumperinflate = 0; + if (player->spectator == false && !(player->charflags & SF_IRONMAN)) { UINT32 skinflags = (demo.playback) diff --git a/src/sounds.c b/src/sounds.c index 1339fd384..2157cad3a 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -550,7 +550,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"s3k92", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Ghost"}, {"s3k93", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Gas release"}, {"s3k94", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Spike"}, - {"s3k95", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Lava burst"}, + {"s3k95", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR, "Lava burst"}, // Also used for bufo {"s3k96", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Landing"}, {"s3k97", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Wind"}, {"s3k98", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Falling spike"},