mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'gainax' into 'master'
Gainax Eyesparkle See merge request KartKrew/Kart!450
This commit is contained in:
commit
c44ef9f5f1
8 changed files with 123 additions and 15 deletions
|
|
@ -62,7 +62,7 @@ typedef enum
|
|||
PF_ATTACKDOWN = 1,
|
||||
PF_ACCELDOWN = 1<<1,
|
||||
PF_BRAKEDOWN = 1<<2,
|
||||
PF_WPNDOWN = 1<<3, // reserved - gonna turn this into lookback when i'm done with all the major reengineering
|
||||
PF_LOOKDOWN = 1<<3,
|
||||
|
||||
// Accessibility and cheats
|
||||
PF_KICKSTARTACCEL = 1<<4, // Is accelerate in kickstart mode?
|
||||
|
|
|
|||
|
|
@ -4593,6 +4593,11 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
|||
"S_RINGSPARKS14",
|
||||
"S_RINGSPARKS15",
|
||||
|
||||
"S_GAINAX_TINY",
|
||||
"S_GAINAX_HUGE",
|
||||
"S_GAINAX_MID1",
|
||||
"S_GAINAX_MID2",
|
||||
|
||||
"S_DRAFTDUST1",
|
||||
"S_DRAFTDUST2",
|
||||
"S_DRAFTDUST3",
|
||||
|
|
@ -5730,6 +5735,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
|||
|
||||
"MT_KARMAFIREWORK",
|
||||
"MT_RINGSPARKS",
|
||||
"MT_GAINAX",
|
||||
"MT_DRAFTDUST",
|
||||
"MT_SPBDUST",
|
||||
"MT_TIREGREASE",
|
||||
|
|
@ -5852,7 +5858,7 @@ const char *const PLAYERFLAG_LIST[] = {
|
|||
"ATTACKDOWN",
|
||||
"ACCELDOWN",
|
||||
"BRAKEDOWN",
|
||||
"WPNDOWN", // reserved - gonna turn this into lookback when i'm done with all the major reengineering
|
||||
"LOOKDOWN",
|
||||
|
||||
// Accessibility and cheats
|
||||
"KICKSTARTACCEL", // Is accelerate in kickstart mode?
|
||||
|
|
|
|||
32
src/info.c
32
src/info.c
|
|
@ -727,6 +727,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
"FWRK",
|
||||
"MXCL",
|
||||
"RGSP",
|
||||
"LENS",
|
||||
"DRAF",
|
||||
"GRES",
|
||||
|
||||
|
|
@ -5178,6 +5179,11 @@ state_t states[NUMSTATES] =
|
|||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|13, 1, {NULL}, 0, 0, S_RINGSPARKS15}, // S_RINGSPARKS14
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|14, 1, {NULL}, 0, 0, S_NULL}, // S_RINGSPARKS15
|
||||
|
||||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|11, -1, {NULL}, 3, 1, S_NULL}, // S_GAINAX_TINY
|
||||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE, 5, {NULL}, 5, 1, S_GAINAX_MID1}, // S_GAINAX_HUGE
|
||||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|5, 14, {NULL}, 14, 1, S_GAINAX_MID2}, // S_GAINAX_MID1
|
||||
{SPR_LENS, FF_FULLBRIGHT|FF_ADD|FF_TRANS10|FF_ANIMATE|19, -1, {NULL}, 1, 1, S_NULL}, // S_GAINAX_MID2
|
||||
|
||||
{SPR_DRAF, 0, 2, {NULL}, 0, 0, S_DRAFTDUST2}, // S_DRAFTDUST1
|
||||
{SPR_DRAF, 1, 1, {NULL}, 0, 0, S_DRAFTDUST3}, // S_DRAFTDUST2
|
||||
{SPR_DRAF, 2, 1, {NULL}, 0, 0, S_DRAFTDUST4}, // S_DRAFTDUST3
|
||||
|
|
@ -28683,6 +28689,32 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
{ // MT_GAINAX
|
||||
-1, // doomednum
|
||||
S_INVISIBLE, // 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_DRAFTDUST
|
||||
-1, // doomednum
|
||||
|
|
|
|||
|
|
@ -1270,6 +1270,7 @@ typedef enum sprite
|
|||
SPR_FWRK,
|
||||
SPR_MXCL,
|
||||
SPR_RGSP,
|
||||
SPR_LENS,
|
||||
SPR_DRAF,
|
||||
SPR_GRES,
|
||||
|
||||
|
|
@ -5588,6 +5589,11 @@ typedef enum state
|
|||
S_RINGSPARKS14,
|
||||
S_RINGSPARKS15,
|
||||
|
||||
S_GAINAX_TINY,
|
||||
S_GAINAX_HUGE,
|
||||
S_GAINAX_MID1,
|
||||
S_GAINAX_MID2,
|
||||
|
||||
S_DRAFTDUST1,
|
||||
S_DRAFTDUST2,
|
||||
S_DRAFTDUST3,
|
||||
|
|
@ -6742,6 +6748,7 @@ typedef enum mobj_type
|
|||
|
||||
MT_KARMAFIREWORK,
|
||||
MT_RINGSPARKS,
|
||||
MT_GAINAX,
|
||||
MT_DRAFTDUST,
|
||||
MT_SPBDUST,
|
||||
MT_TIREGREASE,
|
||||
|
|
|
|||
25
src/k_kart.c
25
src/k_kart.c
|
|
@ -2206,7 +2206,11 @@ void K_KartMoveAnimation(player_t *player)
|
|||
turndir = 1;
|
||||
}
|
||||
|
||||
if (lookback == true && drift == 0)
|
||||
if (!lookback)
|
||||
{
|
||||
player->pflags &= ~PF_LOOKDOWN;
|
||||
}
|
||||
else if (drift == 0)
|
||||
{
|
||||
// Prioritize looking back frames over turning
|
||||
turndir = 0;
|
||||
|
|
@ -2218,6 +2222,7 @@ void K_KartMoveAnimation(player_t *player)
|
|||
destGlanceDir = -(2*intsign(player->aizdriftturn));
|
||||
player->glanceDir = destGlanceDir;
|
||||
drift = turndir = 0;
|
||||
player->pflags &= ~PF_LOOKDOWN;
|
||||
}
|
||||
else if (player->aizdriftturn)
|
||||
{
|
||||
|
|
@ -2232,6 +2237,7 @@ void K_KartMoveAnimation(player_t *player)
|
|||
|
||||
if (lookback == true)
|
||||
{
|
||||
statenum_t gainaxstate = S_GAINAX_TINY;
|
||||
if (destGlanceDir == 0)
|
||||
{
|
||||
if (player->glanceDir != 0)
|
||||
|
|
@ -2256,6 +2262,20 @@ void K_KartMoveAnimation(player_t *player)
|
|||
{
|
||||
// Looking back AND glancing? Amplify the look!
|
||||
destGlanceDir *= 2;
|
||||
if (player->itemamount && player->itemtype)
|
||||
gainaxstate = S_GAINAX_HUGE;
|
||||
else
|
||||
gainaxstate = S_GAINAX_MID1;
|
||||
}
|
||||
|
||||
if (destGlanceDir && !(player->pflags & PF_LOOKDOWN))
|
||||
{
|
||||
mobj_t *gainax = P_SpawnMobjFromMobj(player->mo, 0, 0, 0, MT_GAINAX);
|
||||
gainax->movedir = (destGlanceDir < 0) ? (ANGLE_270-ANG10) : (ANGLE_90+ANG10);
|
||||
P_SetTarget(&gainax->target, player->mo);
|
||||
P_SetMobjState(gainax, gainaxstate);
|
||||
gainax->flags2 |= MF2_AMBUSH;
|
||||
player->pflags |= PF_LOOKDOWN;
|
||||
}
|
||||
}
|
||||
else if (K_GetForwardMove(player) < 0 && destGlanceDir == 0)
|
||||
|
|
@ -2511,6 +2531,9 @@ void K_KartMoveAnimation(player_t *player)
|
|||
player->glanceDir++;
|
||||
}
|
||||
|
||||
if (!player->glanceDir)
|
||||
player->pflags &= ~PF_LOOKDOWN;
|
||||
|
||||
// Update lastspeed value -- we use to display slow driving frames instead of fast driving when slowing down.
|
||||
player->lastspeed = player->speed;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1996,6 +1996,8 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
player->sneakertimer = player->numsneakers = 0;
|
||||
player->driftboost = player->strongdriftboost = 0;
|
||||
player->ringboost = 0;
|
||||
player->glanceDir = 0;
|
||||
player->pflags &= ~PF_LOOKDOWN;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
|
|
|
|||
46
src/p_mobj.c
46
src/p_mobj.c
|
|
@ -6783,7 +6783,51 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
|
||||
P_TeleportMove(mobj, mobj->target->x + FINECOSINE(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;
|
||||
case MT_GAINAX:
|
||||
if (!mobj->target || P_MobjWasRemoved(mobj->target) // sanity
|
||||
|| !mobj->target->player // ditto
|
||||
|| !mobj->target->player->glanceDir // still glancing?
|
||||
|| mobj->target->player->aizdriftturn // only other circumstance where can glance
|
||||
|| ((K_GetKartButtons(mobj->target->player) & BT_LOOKBACK) != BT_LOOKBACK)) // it's a lookback indicator...
|
||||
{
|
||||
P_RemoveMobj(mobj);
|
||||
return false;
|
||||
}
|
||||
|
||||
mobj->angle = mobj->target->player->drawangle;
|
||||
mobj->z = mobj->target->z;
|
||||
|
||||
K_MatchGenericExtraFlags(mobj, mobj->target);
|
||||
mobj->renderflags = (mobj->renderflags & ~RF_DONTDRAW)|K_GetPlayerDontDrawFlag(mobj->target->player);
|
||||
|
||||
P_TeleportMove(mobj, mobj->target->x + FixedMul(34 * mapobjectscale, FINECOSINE((mobj->angle + mobj->movedir) >> ANGLETOFINESHIFT)),
|
||||
mobj->target->y + FixedMul(34 * mapobjectscale, FINESINE((mobj->angle + mobj->movedir) >> ANGLETOFINESHIFT)),
|
||||
mobj->z + (32 * mapobjectscale * P_MobjFlip(mobj)));
|
||||
|
||||
{
|
||||
statenum_t gainaxstate = mobj->state-states;
|
||||
if (gainaxstate == S_GAINAX_TINY)
|
||||
{
|
||||
if (abs(mobj->target->player->glanceDir) > 1)
|
||||
{
|
||||
if (mobj->target->player->itemamount && mobj->target->player->itemtype)
|
||||
gainaxstate = S_GAINAX_HUGE;
|
||||
else
|
||||
gainaxstate = S_GAINAX_MID1;
|
||||
P_SetMobjState(mobj, gainaxstate);
|
||||
}
|
||||
}
|
||||
else if (abs(mobj->target->player->glanceDir) <= 1)
|
||||
{
|
||||
if (mobj->flags2 & MF2_AMBUSH)
|
||||
mobj->flags2 &= ~MF2_AMBUSH;
|
||||
else
|
||||
P_SetMobjState(mobj, S_GAINAX_TINY);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case MT_FLAMESHIELDPAPER:
|
||||
if (!mobj->target || P_MobjWasRemoved(mobj->target))
|
||||
|
|
|
|||
16
src/p_user.c
16
src/p_user.c
|
|
@ -467,6 +467,7 @@ void P_ResetPlayer(player_t *player)
|
|||
|
||||
//player->drift = player->driftcharge = 0;
|
||||
player->trickpanel = 0;
|
||||
player->glanceDir = 0;
|
||||
}
|
||||
|
||||
//
|
||||
|
|
@ -2003,6 +2004,8 @@ void P_MovePlayer(player_t *player)
|
|||
P_SetPlayerMobjState(player->mo, S_KART_SPINOUT);
|
||||
player->drawangle -= ANGLE_22h;
|
||||
player->mo->rollangle = 0;
|
||||
player->glanceDir = 0;
|
||||
player->pflags &= ~PF_LOOKDOWN;
|
||||
}
|
||||
else if ((player->pflags & PF_FAULT) || (player->spinouttimer > 0))
|
||||
{
|
||||
|
|
@ -2021,17 +2024,6 @@ void P_MovePlayer(player_t *player)
|
|||
|
||||
player->mo->rollangle = 0;
|
||||
}
|
||||
/*else if (player->pflags & PF_FAULT) -- v1 fault
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_SPINOUT);
|
||||
|
||||
if (((player->nocontrol + 5) % 20) < 10)
|
||||
player->drawangle += ANGLE_11hh;
|
||||
else
|
||||
player->drawangle -= ANGLE_11hh;
|
||||
|
||||
player->mo->rollangle = 0;
|
||||
}*/
|
||||
else
|
||||
{
|
||||
K_KartMoveAnimation(player);
|
||||
|
|
@ -4406,6 +4398,8 @@ void P_PlayerThink(player_t *player)
|
|||
else
|
||||
player->pflags &= ~PF_BRAKEDOWN;
|
||||
|
||||
// PF_LOOKDOWN handled in K_KartMoveAnimation
|
||||
|
||||
// Counters, time dependent power ups.
|
||||
// Time Bonus & Ring Bonus count settings
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue