diff --git a/src/info.c b/src/info.c index 642aaa447..3befd920f 100644 --- a/src/info.c +++ b/src/info.c @@ -14998,7 +14998,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_SINK, // spawnstate 105, // spawnhealth S_NULL, // seestate - sfx_None, // seesound + sfx_tossed, // seesound 8, // reactiontime sfx_None, // attacksound 256*FRACUNIT, // painstate @@ -15016,7 +15016,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 100, // mass 1, // damage sfx_bomb, // activesound - MF_BOUNCE|MF_FLOAT|MF_NOCLIPTHING|MF_MISSILE|MF_SHOOTABLE, // flags + MF_BOUNCE|MF_SHOOTABLE, // flags S_NULL // raisestate }, diff --git a/src/k_kart.c b/src/k_kart.c index afeae691a..74cf713a8 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2113,7 +2113,7 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map { if (player->kartstuff[k_throwdir] == 1) dir = 2; - else if (player->kartstuff[k_throwdir] == -1) + else if (player->kartstuff[k_throwdir] == -1 && mapthing != MT_SINK) dir = -1; else dir = 1; diff --git a/src/p_mobj.c b/src/p_mobj.c index 2249165f5..f1c2b15e6 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1404,6 +1404,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo) case MT_BANANA: case MT_FAKEITEM: case MT_SSMINE: + case MT_SINK: gravityadd = FixedMul(gravityadd, 5*FRACUNIT/2); default: break; @@ -8123,6 +8124,8 @@ void P_MobjThinker(mobj_t *mobj) mobj->threshold--; break; case MT_SINK: + if (mobj->momx || mobj->momy) + P_SpawnGhostMobj(mobj); if (mobj->z <= mobj->floorz) { S_StartSound(mobj, mobj->info->deathsound); @@ -9071,12 +9074,13 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) case MT_BIGMACE: case MT_SMALLMACE: case MT_FALLINGROCK: //case MT_RANDOMITEM: + case MT_BATTLEBALLOON: case MT_BANANA: case MT_BANANA_SHIELD: + case MT_FAKEITEM: case MT_FAKESHIELD: case MT_GREENITEM: case MT_GREENSHIELD: case MT_JAWZ: case MT_JAWZ_DUD: case MT_JAWZ_SHIELD: - case MT_BATTLEBALLOON: case MT_FIREBALL: - case MT_FAKEITEM: case MT_FAKESHIELD: case MT_SSMINE: case MT_SSMINE_SHIELD: + case MT_FIREBALL: case MT_SINK: P_SpawnShadowMobj(mobj); default: break;