mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-18 23:41:48 +00:00
Merge remote-tracking branch 'refs/remotes/origin/flair' into sonicitems
# Conflicts: # src/k_kart.c # src/k_kart.h # src/p_enemy.c
This commit is contained in:
commit
00af56aa2a
5 changed files with 15 additions and 7 deletions
|
@ -2688,7 +2688,7 @@ state_t states[NUMSTATES] =
|
|||
{SPR_SSMN, 3, 3, {A_GrenadeRing}, 0, 0, S_BOMBITEM3}, // S_BOMBITEM2
|
||||
{SPR_SSMN, 2, 3, {A_GrenadeRing}, 0, 0, S_BOMBITEM4}, // S_BOMBITEM3
|
||||
{SPR_SSMN, 1, 3, {A_GrenadeRing}, 0, 0, S_BOMBITEM1}, // S_BOMBITEM4
|
||||
{SPR_MINE, 3, 1, {A_MineExplode}, MT_BOMBEXPLOSION, 0, S_NULL}, // S_BOMBEXPLODE
|
||||
{SPR_SSMN, 3, 1, {A_MineExplode}, MT_BOMBEXPLOSION, 0, S_NULL}, // S_BOMBEXPLODE
|
||||
{SPR_NULL, 0, 6, {NULL}, 0, 0, S_BOMBEXPLOSION2}, // S_BOMBEXPLOSION1
|
||||
{SPR_NULL, 1, 22, {A_ForceStop}, 0, 0, S_NULL}, // S_BOMBEXPLOSION2
|
||||
|
||||
|
|
|
@ -1765,7 +1765,7 @@ void K_SpawnKartExplosion(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32
|
|||
}
|
||||
|
||||
// Spawns the purely visual explosion
|
||||
void K_SpawnMineExplosion(mobj_t *source)
|
||||
void K_SpawnMineExplosion(mobj_t *source, UINT8 color)
|
||||
{
|
||||
INT32 i, radius, height;
|
||||
mobj_t *smoldering = P_SpawnMobj(source->x, source->y, source->z, MT_SMOLDERING);
|
||||
|
@ -1777,6 +1777,9 @@ void K_SpawnMineExplosion(mobj_t *source)
|
|||
radius = source->radius>>FRACBITS;
|
||||
height = source->height>>FRACBITS;
|
||||
|
||||
if (!color)
|
||||
color = SKINCOLOR_RED;
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
dust = P_SpawnMobj(source->x, source->y, source->z, MT_SMOKE);
|
||||
|
@ -1796,6 +1799,7 @@ void K_SpawnMineExplosion(mobj_t *source)
|
|||
truc->momy = P_RandomRange(-speed, speed)*FRACUNIT;
|
||||
speed = FixedMul(20*FRACUNIT, source->scale)>>FRACBITS;
|
||||
truc->momz = P_RandomRange(-speed, speed)*FRACUNIT;
|
||||
truc->color = color;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
|
@ -1822,6 +1826,7 @@ void K_SpawnMineExplosion(mobj_t *source)
|
|||
if (P_RandomChance(FRACUNIT/2))
|
||||
truc->momz = -truc->momz;
|
||||
truc->tics = TICRATE*2;
|
||||
truc->color = color;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ void K_SquishPlayer(player_t *player, mobj_t *source);
|
|||
void K_ExplodePlayer(player_t *player, mobj_t *source);
|
||||
void K_StealBalloon(player_t *player, player_t *victim, boolean force);
|
||||
void K_SpawnKartExplosion(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32 number, mobjtype_t type, angle_t rotangle, boolean spawncenter, boolean ghostit, mobj_t *source);
|
||||
void K_SpawnMineExplosion(mobj_t *source);
|
||||
void K_SpawnMineExplosion(mobj_t *source, UINT8 color);
|
||||
void K_SpawnDriftTrail(player_t *player);
|
||||
void K_DoSneaker(player_t *player, boolean doPFlag, boolean startboost);
|
||||
void K_DoBouncePad(mobj_t *mo, fixed_t vertispeed);
|
||||
|
|
|
@ -8272,7 +8272,10 @@ void A_MineExplode(mobj_t *actor)
|
|||
for (d = 0; d < 16; d++)
|
||||
K_SpawnKartExplosion(actor->x, actor->y, actor->z, actor->info->painchance + 32*FRACUNIT, 32, type, d*(ANGLE_45/4), true, false, actor->target); // 32 <-> 64
|
||||
|
||||
K_SpawnMineExplosion(actor);
|
||||
if (actor->target->player)
|
||||
K_SpawnMineExplosion(actor, actor->target->player->skincolor);
|
||||
else
|
||||
K_SpawnMineExplosion(actor, SKINCOLOR_RED);
|
||||
|
||||
P_SpawnMobj(actor->x, actor->y, actor->z, MT_BOMBEXPLOSIONSOUND);
|
||||
|
||||
|
|
|
@ -6710,6 +6710,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
P_SetMobjState(smoke, S_QUICKBOOM1);
|
||||
smoke->scale = mobj->scale/2;
|
||||
smoke->destscale = mobj->scale;
|
||||
smoke->color = mobj->color;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -7909,11 +7910,10 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
P_SpawnGhostMobj(mobj);
|
||||
if (mobj->z <= mobj->floorz)
|
||||
{
|
||||
if (mobj->state == &states[S_BOMBAIR1] || mobj->state == &states[S_BOMBAIR2])
|
||||
P_SetMobjState(mobj, S_BOMBDEPLOY1);
|
||||
if (mobj->health > mobj->info->spawnhealth-1)
|
||||
{
|
||||
if (mobj->state == &states[S_BOMBAIR1] || mobj->state == &states[S_BOMBAIR2])
|
||||
P_SetMobjState(mobj, S_BOMBDEPLOY1);
|
||||
|
||||
mobj->momx = mobj->momy = 0;
|
||||
S_StartSound(mobj, mobj->info->activesound);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue