mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +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_THUNDERSHIELD", // Shields
|
||||||
"MT_BUBBLESHIELD",
|
"MT_BUBBLESHIELD",
|
||||||
"MT_FLAMESHIELD",
|
"MT_FLAMESHIELD",
|
||||||
|
"MT_FLAMESHIELDPAPER",
|
||||||
"MT_BUBBLESHIELDTRAP",
|
"MT_BUBBLESHIELDTRAP",
|
||||||
|
|
||||||
"MT_SINK", // Kitchen Sink Stuff
|
"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|8, 2, {NULL}, 0, 0, S_FLAMESHIELD18}, // S_FLAMESHIELD17
|
||||||
{SPR_FLMS, FF_FULLBRIGHT|17, 2, {NULL}, 0, 0, S_FLAMESHIELD1}, // S_FLAMESHIELD18
|
{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, 2, {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, {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|2, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH4}, // S_FLAMESHIELDDASH3
|
||||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 1, 3, S_FLAMESHIELDDASH5}, // S_FLAMESHIELDDASH4
|
{SPR_FLMD, FF_FULLBRIGHT, 2, {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|3, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH6}, // S_FLAMESHIELDDASH5
|
||||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 2, 0, S_FLAMESHIELDDASH7}, // S_FLAMESHIELDDASH6
|
{SPR_FLMD, FF_FULLBRIGHT, 2, {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|4, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH8}, // S_FLAMESHIELDDASH7
|
||||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 3, 1, S_FLAMESHIELDDASH1}, // S_FLAMESHIELDDASH8
|
{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, 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
|
{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
|
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
|
{ // MT_BUBBLESHIELDTRAP
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BUBBLESHIELDTRAP1, // spawnstate
|
S_BUBBLESHIELDTRAP1, // spawnstate
|
||||||
|
|
|
||||||
|
|
@ -4801,6 +4801,7 @@ typedef enum mobj_type
|
||||||
MT_THUNDERSHIELD, // Shields
|
MT_THUNDERSHIELD, // Shields
|
||||||
MT_BUBBLESHIELD,
|
MT_BUBBLESHIELD,
|
||||||
MT_FLAMESHIELD,
|
MT_FLAMESHIELD,
|
||||||
|
MT_FLAMESHIELDPAPER,
|
||||||
MT_BUBBLESHIELDTRAP,
|
MT_BUBBLESHIELDTRAP,
|
||||||
|
|
||||||
MT_SINK, // Kitchen Sink Stuff
|
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);
|
flamemax = player->kartstuff[k_flamelength] * (TICRATE/4);
|
||||||
|
|
||||||
if (flamemax > 0)
|
if (flamemax > 0)
|
||||||
flamemax += (TICRATE/2);
|
flamemax += 3*(TICRATE/4);
|
||||||
|
|
||||||
if ((cmd->buttons & BT_ATTACK) && player->kartstuff[k_holdready])
|
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);
|
flamemax = player->kartstuff[k_flamelength] * (TICRATE/4);
|
||||||
if (flamemax > 0)
|
if (flamemax > 0)
|
||||||
flamemax += (TICRATE/2);
|
flamemax += 3*(TICRATE/4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->kartstuff[k_flamemeter] > flamemax)
|
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*/)
|
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]))]);
|
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 numframes = 104;
|
||||||
INT32 absolutemax = 16 * (TICRATE/4);
|
INT32 absolutemax = 16 * (TICRATE/4);
|
||||||
INT32 flamemax = stplyr->kartstuff[k_flamelength] * (TICRATE/4);
|
INT32 flamemax = stplyr->kartstuff[k_flamelength] * (TICRATE/4);
|
||||||
INT32 flen = 1;
|
INT32 flamemeter = min(stplyr->kartstuff[k_flamemeter], flamemax);
|
||||||
INT32 bf = 16 - (flamemax / (TICRATE/4));
|
|
||||||
INT32 ff = numframes - ((stplyr->kartstuff[k_flamemeter] * numframes) / absolutemax);
|
INT32 bf = 16 - stplyr->kartstuff[k_flamelength];
|
||||||
|
INT32 ff = numframes - ((flamemeter * numframes) / absolutemax);
|
||||||
|
INT32 fmin = (8 * (bf-1));
|
||||||
|
|
||||||
INT32 xo = 6, yo = 4;
|
INT32 xo = 6, yo = 4;
|
||||||
INT32 flip = 0;
|
INT32 flip = 0;
|
||||||
|
|
||||||
|
|
@ -9089,18 +9092,13 @@ static void K_drawKartItem(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stplyr->kartstuff[k_flamelength] > 0)
|
if (ff < fmin)
|
||||||
{
|
ff = fmin;
|
||||||
flen = (numframes * 16) / stplyr->kartstuff[k_flamelength];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ff < 0) {ff = 0;}
|
if (bf >= 0 && bf < 16)
|
||||||
if (ff > flen-1) {ff = flen-1;}
|
|
||||||
|
|
||||||
if (flamemax > 0)
|
|
||||||
V_DrawScaledPatch(fx-xo, fy-yo, V_HUDTRANS|fflags|flip, kp_flameshieldmeter_bg[bf][offset]);
|
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))
|
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);
|
INT32 perpendicular = ((i & 1) ? -ANGLE_90 : ANGLE_90);
|
||||||
fixed_t newx = actor->x + P_ReturnThrustX(NULL, actor->angle + perpendicular, 8*actor->scale);
|
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);
|
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);
|
P_SetScale(paper, actor->scale);
|
||||||
paper->destscale = actor->destscale;
|
paper->destscale = actor->destscale;
|
||||||
|
|
||||||
|
|
@ -9369,6 +9370,8 @@ void A_FlameShieldPaper(mobj_t *actor)
|
||||||
{
|
{
|
||||||
paper->frame |= framea;
|
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->target->y + FINESINE(mobj->angle >> ANGLETOFINESHIFT),
|
||||||
mobj->z + mobj->target->height * P_MobjFlip(mobj));
|
mobj->z + mobj->target->height * P_MobjFlip(mobj));
|
||||||
break;
|
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:
|
case MT_TIREGREASE:
|
||||||
if (!mobj->target || P_MobjWasRemoved(mobj->target) || !mobj->target->player
|
if (!mobj->target || P_MobjWasRemoved(mobj->target) || !mobj->target->player
|
||||||
|| !mobj->target->player->kartstuff[k_tiregrease])
|
|| !mobj->target->player->kartstuff[k_tiregrease])
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue