mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-02-21 03:11:24 +00:00
Fix up fake and mine to use the trail code correctly
This commit is contained in:
parent
ee96b8c735
commit
3aed1df8eb
3 changed files with 25 additions and 22 deletions
14
src/k_kart.c
14
src/k_kart.c
|
@ -3109,14 +3109,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
player->kartstuff[k_eggmanheld] = 1;
|
||||
player->pflags |= PF_ATTACKDOWN;
|
||||
newangle = player->mo->angle;
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, mobjinfo[MT_FAKESHIELD].radius);
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, mobjinfo[MT_FAKESHIELD].radius);
|
||||
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_FAKESHIELD);
|
||||
mo->threshold = 10;
|
||||
mo->movecount = 1;
|
||||
mo->lastlook = 1;
|
||||
if (mo)
|
||||
{
|
||||
mo->scale = FRACUNIT/2;
|
||||
mo->threshold = 10;
|
||||
P_SetTarget(&mo->target, player->mo);
|
||||
P_SetTarget(&player->mo->hnext, mo);
|
||||
}
|
||||
|
@ -3272,10 +3272,12 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
player->kartstuff[k_itemheld] = 1;
|
||||
player->pflags |= PF_ATTACKDOWN;
|
||||
newangle = player->mo->angle;
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, mobjinfo[MT_SSMINE_SHIELD].radius);
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, mobjinfo[MT_SSMINE_SHIELD].radius);
|
||||
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_SSMINE_SHIELD);
|
||||
mo->threshold = 10;
|
||||
mo->movecount = 1;
|
||||
mo->lastlook = 1;
|
||||
if (mo)
|
||||
{
|
||||
P_SetTarget(&mo->target, player->mo);
|
||||
|
|
|
@ -2100,13 +2100,10 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|
|||
if (target->target->player->kartstuff[k_eggmanheld] && target->type == MT_FAKESHIELD)
|
||||
target->target->player->kartstuff[k_eggmanheld] = 0;
|
||||
|
||||
if ((target->target->player->kartstuff[k_itemheld])
|
||||
&& ((target->type == MT_GREENSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_ORBINAUT)
|
||||
|| (target->type == MT_JAWZ_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_JAWZ)
|
||||
|| (target->type == MT_BANANA_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_BANANA)
|
||||
|| (target->type == MT_SSMINE_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_MINE)))
|
||||
if (target->target->player->kartstuff[k_itemheld])
|
||||
{
|
||||
if ((target->type == MT_BANANA_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_BANANA)
|
||||
|
||||
if ((target->type == MT_BANANA_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_BANANA) // trail items
|
||||
|| (target->type == MT_SSMINE_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_MINE))
|
||||
{
|
||||
if (target->lastlook != 0 && target->lastlook < target->target->player->kartstuff[k_itemamount])
|
||||
|
@ -2117,17 +2114,21 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|
|||
}
|
||||
else
|
||||
target->target->player->kartstuff[k_itemamount]--;
|
||||
|
||||
if (!target->target->player->kartstuff[k_itemamount])
|
||||
target->target->player->kartstuff[k_itemheld] = 0;
|
||||
}
|
||||
else
|
||||
else if ((target->type == MT_GREENSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_ORBINAUT) // orbit items
|
||||
|| (target->type == MT_JAWZ_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_JAWZ))
|
||||
{
|
||||
if (target->lastlook > 0)
|
||||
target->target->player->kartstuff[k_itemamount] = target->lastlook-1;
|
||||
else
|
||||
target->target->player->kartstuff[k_itemamount]--;
|
||||
}
|
||||
|
||||
if (!target->target->player->kartstuff[k_itemamount])
|
||||
target->target->player->kartstuff[k_itemheld] = 0;
|
||||
if (!target->target->player->kartstuff[k_itemamount])
|
||||
target->target->player->kartstuff[k_itemheld] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
|
|
12
src/p_mobj.c
12
src/p_mobj.c
|
@ -6689,7 +6689,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
}
|
||||
case MT_GREENSHIELD: // Kart orbit items
|
||||
case MT_JAWZ_SHIELD:
|
||||
if (mobj->health > 0 && mobj->target && mobj->target->player && mobj->target->player->mo
|
||||
if (mobj->health > 0 && mobj->target && mobj->target->player
|
||||
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
|
||||
{
|
||||
fixed_t z;
|
||||
|
@ -6762,7 +6762,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
}
|
||||
}
|
||||
else if ((mobj->health > 0
|
||||
&& (!mobj->target || !mobj->target->player || !mobj->target->player->mo || mobj->target->player->health <= 0 || mobj->target->player->spectator))
|
||||
&& (!mobj->target || !mobj->target->player || mobj->target->player->health <= 0 || mobj->target->player->spectator))
|
||||
|| (mobj->health <= 0 && mobj->z <= mobj->floorz)
|
||||
|| P_CheckDeathPitCollide(mobj)) // When in death state
|
||||
{
|
||||
|
@ -6773,7 +6773,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
case MT_BANANA_SHIELD: // Kart trailing items
|
||||
case MT_SSMINE_SHIELD:
|
||||
case MT_FAKESHIELD:
|
||||
if (mobj->health > 0 && mobj->target && mobj->target->player && mobj->target->player->mo
|
||||
if (mobj->health > 0 && mobj->target && mobj->target->player
|
||||
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
|
||||
{
|
||||
if (mobj->lastlook == 1)
|
||||
|
@ -6822,15 +6822,15 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
if ((mobj->type == MT_BANANA_SHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_BANANA)
|
||||
|| (mobj->type == MT_SSMINE_SHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_MINE)
|
||||
|| (mobj->type == MT_FAKESHIELD && !mobj->target->player->kartstuff[k_eggmanheld])
|
||||
|| (mobj->type != MT_FAKESHIELD && !mobj->target->player->kartstuff[k_itemheld])
|
||||
|| (mobj->lastlook > 0 && mobj->target->player->kartstuff[k_itemamount] < mobj->lastlook))
|
||||
|| (mobj->type != MT_FAKESHIELD && (!mobj->target->player->kartstuff[k_itemheld]
|
||||
|| (mobj->lastlook > 0 && mobj->target->player->kartstuff[k_itemamount] < mobj->lastlook))))
|
||||
{
|
||||
P_RemoveMobj(mobj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if ((mobj->health > 0
|
||||
&& (!mobj->target || !mobj->target->player || !mobj->target->player->mo || mobj->target->player->health <= 0 || mobj->target->player->spectator))
|
||||
&& (!mobj->target || !mobj->target->player || mobj->target->player->health <= 0 || mobj->target->player->spectator))
|
||||
|| (mobj->health <= 0 && mobj->z <= mobj->floorz)
|
||||
|| P_CheckDeathPitCollide(mobj)) // When in death state
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue