* Change/add a handful of sounds.

* Make Orbinaut Shields animate at 3 tics per frame, not 1.
* Make dead items flash in and out of visibility.
* Related to above, fix a few circumstances where returning was not properly handled after removing a mobj in mobjthinker.
This commit is contained in:
toaster 2018-08-05 16:38:46 +01:00
parent fb5ddf44d6
commit 59c64e1ec7
3 changed files with 33 additions and 10 deletions

View File

@ -2646,12 +2646,12 @@ state_t states[NUMSTATES] =
{SPR_ORBN, 4, 1, {NULL}, 0, 0, S_ORBINAUT6}, // S_ORBINAUT5
{SPR_ORBN, 5, 1, {NULL}, 0, 0, S_ORBINAUT1}, // S_ORBINAUT6
{SPR_ORBN, 0, 175, {NULL}, 0, 0, S_NULL}, // S_ORBINAUT_DEAD
{SPR_ORBN, 6, 1, {NULL}, 0, 0, S_ORBINAUT_SHIELD2}, // S_ORBINAUT_SHIELD1
{SPR_ORBN, 7, 1, {NULL}, 0, 0, S_ORBINAUT_SHIELD3}, // S_ORBINAUT_SHIELD2
{SPR_ORBN, 8, 1, {NULL}, 0, 0, S_ORBINAUT_SHIELD4}, // S_ORBINAUT_SHIELD3
{SPR_ORBN, 9, 1, {NULL}, 0, 0, S_ORBINAUT_SHIELD5}, // S_ORBINAUT_SHIELD4
{SPR_ORBN, 10, 1, {NULL}, 0, 0, S_ORBINAUT_SHIELD6}, // S_ORBINAUT_SHIELD5
{SPR_ORBN, 11, 1, {NULL}, 0, 0, S_ORBINAUT_SHIELD1}, // S_ORBINAUT_SHIELD6
{SPR_ORBN, 6, 3, {NULL}, 0, 0, S_ORBINAUT_SHIELD2}, // S_ORBINAUT_SHIELD1
{SPR_ORBN, 7, 3, {NULL}, 0, 0, S_ORBINAUT_SHIELD3}, // S_ORBINAUT_SHIELD2
{SPR_ORBN, 8, 3, {NULL}, 0, 0, S_ORBINAUT_SHIELD4}, // S_ORBINAUT_SHIELD3
{SPR_ORBN, 9, 3, {NULL}, 0, 0, S_ORBINAUT_SHIELD5}, // S_ORBINAUT_SHIELD4
{SPR_ORBN, 10, 3, {NULL}, 0, 0, S_ORBINAUT_SHIELD6}, // S_ORBINAUT_SHIELD5
{SPR_ORBN, 11, 3, {NULL}, 0, 0, S_ORBINAUT_SHIELD1}, // S_ORBINAUT_SHIELD6
{SPR_ORBN, 6, 175, {NULL}, 0, 0, S_NULL}, // S_ORBINAUT_SHIELDDEAD
{SPR_JAWZ, 0, 1, {A_JawzChase}, 0, 0, S_JAWZ2}, // S_JAWZ1
@ -14816,7 +14816,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // display offset
100, // mass
1, // damage
sfx_bomb, // activesound
sfx_s3k5c, // activesound
MF_BOUNCE|MF_SHOOTABLE, // flags
S_NULL // raisestate
},

View File

@ -3647,6 +3647,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
//K_PlayTauntSound(player->mo);
player->kartstuff[k_itemheld] = 1;
player->pflags |= PF_ATTACKDOWN;
S_StartSound(player->mo, sfx_s254);
for (moloop = 0; moloop < player->kartstuff[k_itemamount]; moloop++)
{
@ -3677,6 +3678,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->kartstuff[k_itemamount]--;
player->kartstuff[k_eggmanheld] = 1;
player->pflags |= PF_ATTACKDOWN;
S_StartSound(player->mo, sfx_s254);
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_FAKESHIELD);
mo->threshold = 10;
mo->movecount = 1;
@ -3782,6 +3784,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
mobj_t *mo;
player->kartstuff[k_itemheld] = 1;
player->pflags |= PF_ATTACKDOWN;
S_StartSound(player->mo, sfx_s254);
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_SSMINE_SHIELD);
mo->threshold = 10;
mo->movecount = 1;
@ -3892,7 +3895,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{
player->kartstuff[k_itemamount]--;
player->pflags |= PF_ATTACKDOWN;
K_DoHyudoroSteal(player);
K_DoHyudoroSteal(player); // yes. yes they do.
}
break;
case KITEM_POGOSPRING:
@ -4089,8 +4092,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
// Determine the outcome of your charge.
if (leveltime > starttime && player->kartstuff[k_boostcharge])
{
// Not even trying?
if (player->kartstuff[k_boostcharge] < 35)
{
if (player->kartstuff[k_boostcharge] > 17)
S_StartSound(player->mo, sfx_cdfm00); // chosen instead of a conventional skid because it's more engine-like
}
// Get an instant boost!
if (player->kartstuff[k_boostcharge] >= 35 && player->kartstuff[k_boostcharge] <= 50)
else if (player->kartstuff[k_boostcharge] <= 50)
{
player->kartstuff[k_sneakertimer] = -((21*(player->kartstuff[k_boostcharge]*player->kartstuff[k_boostcharge]))/425)+131; // max time is 70, min time is 7; yay parabooolas
if (!player->kartstuff[k_floorboost] || player->kartstuff[k_floorboost] == 3)

View File

@ -7462,12 +7462,23 @@ void P_MobjThinker(mobj_t *mobj)
case MT_BANANA:
case MT_FAKEITEM:
if (mobj->z <= mobj->floorz)
{
P_RemoveMobj(mobj);
return;
}
// fallthru
case MT_ORBINAUT_SHIELD:
case MT_BANANA_SHIELD:
case MT_FAKESHIELD:
mobj->flags2 ^= MF2_DONTDRAW;
break;
case MT_JAWZ:
case MT_JAWZ_DUD:
if (mobj->z <= mobj->floorz)
P_SetMobjState(mobj, mobj->info->xdeathstate);
// fallthru
case MT_JAWZ_SHIELD:
mobj->flags2 ^= MF2_DONTDRAW;
break;
case MT_SSMINE:
case MT_BLUEEXPLOSION:
@ -7477,11 +7488,14 @@ void P_MobjThinker(mobj_t *mobj)
mobj->health = -100;
}
else
{
P_RemoveMobj(mobj);
return;
}
break;
case MT_MINEEXPLOSIONSOUND:
P_RemoveMobj(mobj);
break;
return;
//}
default:
break;