mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Slow down animation speed, fix meter bugs
This commit is contained in:
parent
bf221c7afa
commit
7ec398e579
6 changed files with 79 additions and 25 deletions
|
|
@ -7872,6 +7872,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
"MT_THUNDERSHIELD", // Shields
|
||||
"MT_BUBBLESHIELD",
|
||||
"MT_FLAMESHIELD",
|
||||
"MT_FLAMESHIELDPAPER",
|
||||
"MT_BUBBLESHIELDTRAP",
|
||||
|
||||
"MT_SINK", // Kitchen Sink Stuff
|
||||
|
|
|
|||
45
src/info.c
45
src/info.c
|
|
@ -2919,16 +2919,16 @@ state_t states[NUMSTATES] =
|
|||
{SPR_FLMS, FF_FULLBRIGHT|8, 2, {NULL}, 0, 0, S_FLAMESHIELD18}, // S_FLAMESHIELD17
|
||||
{SPR_FLMS, FF_FULLBRIGHT|17, 2, {NULL}, 0, 0, S_FLAMESHIELD1}, // S_FLAMESHIELD18
|
||||
|
||||
{SPR_FLMD, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH2}, // S_FLAMESHIELDDASH1
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 0, 2, S_FLAMESHIELDDASH3}, // S_FLAMESHIELDDASH2
|
||||
{SPR_FLMD, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH4}, // S_FLAMESHIELDDASH3
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 1, 3, S_FLAMESHIELDDASH5}, // S_FLAMESHIELDDASH4
|
||||
{SPR_FLMD, FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH6}, // S_FLAMESHIELDDASH5
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 2, 0, S_FLAMESHIELDDASH7}, // S_FLAMESHIELDDASH6
|
||||
{SPR_FLMD, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH8}, // S_FLAMESHIELDDASH7
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 3, 1, S_FLAMESHIELDDASH1}, // S_FLAMESHIELDDASH8
|
||||
{SPR_FLMD, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH2}, // S_FLAMESHIELDDASH1
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 0, 2, S_FLAMESHIELDDASH3}, // S_FLAMESHIELDDASH2
|
||||
{SPR_FLMD, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH4}, // S_FLAMESHIELDDASH3
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 1, 3, S_FLAMESHIELDDASH5}, // S_FLAMESHIELDDASH4
|
||||
{SPR_FLMD, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH6}, // S_FLAMESHIELDDASH5
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 2, 0, S_FLAMESHIELDDASH7}, // S_FLAMESHIELDDASH6
|
||||
{SPR_FLMD, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH8}, // S_FLAMESHIELDDASH7
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 3, 1, S_FLAMESHIELDDASH1}, // S_FLAMESHIELDDASH8
|
||||
|
||||
{SPR_FLMP, FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDPAPER
|
||||
{SPR_FLMP, FF_FULLBRIGHT|FF_PAPERSPRITE, 3, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDPAPER
|
||||
|
||||
{SPR_SINK, 0, 1, {A_SmokeTrailer}, MT_SINKTRAIL, 0, S_SINK}, // S_SINK
|
||||
{SPR_SINK, 0|FF_TRANS80|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_SINK_SHIELD}, // S_SINK_SHIELD
|
||||
|
|
@ -16271,6 +16271,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLAMESHIELDPAPER
|
||||
-1, // doomednum
|
||||
S_FLAMESHIELDPAPER, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
8<<FRACBITS, // radius
|
||||
16<<FRACBITS, // height
|
||||
1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_BUBBLESHIELDTRAP
|
||||
-1, // doomednum
|
||||
S_BUBBLESHIELDTRAP1, // spawnstate
|
||||
|
|
|
|||
|
|
@ -4801,6 +4801,7 @@ typedef enum mobj_type
|
|||
MT_THUNDERSHIELD, // Shields
|
||||
MT_BUBBLESHIELD,
|
||||
MT_FLAMESHIELD,
|
||||
MT_FLAMESHIELDPAPER,
|
||||
MT_BUBBLESHIELDTRAP,
|
||||
|
||||
MT_SINK, // Kitchen Sink Stuff
|
||||
|
|
|
|||
28
src/k_kart.c
28
src/k_kart.c
|
|
@ -7586,7 +7586,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
flamemax = player->kartstuff[k_flamelength] * (TICRATE/4);
|
||||
|
||||
if (flamemax > 0)
|
||||
flamemax += (TICRATE/2);
|
||||
flamemax += 3*(TICRATE/4);
|
||||
|
||||
if ((cmd->buttons & BT_ATTACK) && player->kartstuff[k_holdready])
|
||||
{
|
||||
|
|
@ -7636,7 +7636,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
|
||||
flamemax = player->kartstuff[k_flamelength] * (TICRATE/4);
|
||||
if (flamemax > 0)
|
||||
flamemax += (TICRATE/2);
|
||||
flamemax += 3*(TICRATE/4);
|
||||
}
|
||||
|
||||
if (player->kartstuff[k_flamemeter] > flamemax)
|
||||
|
|
@ -9067,14 +9067,17 @@ static void K_drawKartItem(void)
|
|||
if (stplyr->kartstuff[k_eggmanexplode] > 1 /*&& stplyr->kartstuff[k_eggmanexplode] <= 3*TICRATE*/)
|
||||
V_DrawScaledPatch(fx+17, fy+13-offset, V_HUDTRANS|fflags, kp_eggnum[min(3, G_TicsToSeconds(stplyr->kartstuff[k_eggmanexplode]))]);
|
||||
|
||||
if (stplyr->kartstuff[k_itemtype] == KITEM_FLAMESHIELD)
|
||||
if (stplyr->kartstuff[k_itemtype] == KITEM_FLAMESHIELD && stplyr->kartstuff[k_flamelength] > 0)
|
||||
{
|
||||
INT32 numframes = 104;
|
||||
INT32 absolutemax = 16 * (TICRATE/4);
|
||||
INT32 flamemax = stplyr->kartstuff[k_flamelength] * (TICRATE/4);
|
||||
INT32 flen = 1;
|
||||
INT32 bf = 16 - (flamemax / (TICRATE/4));
|
||||
INT32 ff = numframes - ((stplyr->kartstuff[k_flamemeter] * numframes) / absolutemax);
|
||||
INT32 flamemeter = min(stplyr->kartstuff[k_flamemeter], flamemax);
|
||||
|
||||
INT32 bf = 16 - stplyr->kartstuff[k_flamelength];
|
||||
INT32 ff = numframes - ((flamemeter * numframes) / absolutemax);
|
||||
INT32 fmin = (8 * (bf-1));
|
||||
|
||||
INT32 xo = 6, yo = 4;
|
||||
INT32 flip = 0;
|
||||
|
||||
|
|
@ -9089,18 +9092,13 @@ static void K_drawKartItem(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (stplyr->kartstuff[k_flamelength] > 0)
|
||||
{
|
||||
flen = (numframes * 16) / stplyr->kartstuff[k_flamelength];
|
||||
}
|
||||
if (ff < fmin)
|
||||
ff = fmin;
|
||||
|
||||
if (ff < 0) {ff = 0;}
|
||||
if (ff > flen-1) {ff = flen-1;}
|
||||
|
||||
if (flamemax > 0)
|
||||
if (bf >= 0 && bf < 16)
|
||||
V_DrawScaledPatch(fx-xo, fy-yo, V_HUDTRANS|fflags|flip, kp_flameshieldmeter_bg[bf][offset]);
|
||||
|
||||
if (stplyr->kartstuff[k_flamemeter] > 0)
|
||||
if (ff >= 0 && ff < numframes && stplyr->kartstuff[k_flamemeter] > 0)
|
||||
{
|
||||
if (stplyr->kartstuff[k_flamemeter] > (flamemax - (TICRATE/4)) && (leveltime & 1))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9350,8 +9350,9 @@ void A_FlameShieldPaper(mobj_t *actor)
|
|||
INT32 perpendicular = ((i & 1) ? -ANGLE_90 : ANGLE_90);
|
||||
fixed_t newx = actor->x + P_ReturnThrustX(NULL, actor->angle + perpendicular, 8*actor->scale);
|
||||
fixed_t newy = actor->y + P_ReturnThrustY(NULL, actor->angle + perpendicular, 8*actor->scale);
|
||||
mobj_t *paper = P_SpawnMobj(newx + actor->momx, newy + actor->momy, actor->z + actor->momz, MT_THOK);
|
||||
mobj_t *paper = P_SpawnMobj(newx, newy, actor->z, MT_FLAMESHIELDPAPER);
|
||||
|
||||
P_SetTarget(&paper->target, actor);
|
||||
P_SetScale(paper, actor->scale);
|
||||
paper->destscale = actor->destscale;
|
||||
|
||||
|
|
@ -9369,6 +9370,8 @@ void A_FlameShieldPaper(mobj_t *actor)
|
|||
{
|
||||
paper->frame |= framea;
|
||||
}
|
||||
|
||||
paper->extravalue1 = i;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
24
src/p_mobj.c
24
src/p_mobj.c
|
|
@ -8370,6 +8370,30 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
mobj->target->y + FINESINE(mobj->angle >> ANGLETOFINESHIFT),
|
||||
mobj->z + mobj->target->height * P_MobjFlip(mobj));
|
||||
break;
|
||||
case MT_FLAMESHIELDPAPER:
|
||||
if (!mobj->target || P_MobjWasRemoved(mobj->target))
|
||||
{
|
||||
P_RemoveMobj(mobj);
|
||||
return;
|
||||
}
|
||||
|
||||
mobj->z = mobj->target->z;
|
||||
|
||||
K_MatchGenericExtraFlags(mobj, mobj->target);
|
||||
|
||||
{
|
||||
INT32 perpendicular = ((mobj->extravalue1 & 1) ? -ANGLE_90 : ANGLE_90);
|
||||
fixed_t newx = mobj->target->x + P_ReturnThrustX(NULL, mobj->target->angle + perpendicular, 8*mobj->target->scale);
|
||||
fixed_t newy = mobj->target->y + P_ReturnThrustY(NULL, mobj->target->angle + perpendicular, 8*mobj->target->scale);
|
||||
|
||||
P_TeleportMove(mobj, newx, newy, mobj->target->z);
|
||||
|
||||
if (mobj->extravalue1 & 1)
|
||||
mobj->angle = mobj->target->angle - ANGLE_45;
|
||||
else
|
||||
mobj->angle = mobj->target->angle + ANGLE_45;
|
||||
}
|
||||
break;
|
||||
case MT_TIREGREASE:
|
||||
if (!mobj->target || P_MobjWasRemoved(mobj->target) || !mobj->target->player
|
||||
|| !mobj->target->player->kartstuff[k_tiregrease])
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue