mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-25 16:06:09 +00:00
wip ring sparkles
This commit is contained in:
parent
b5645a81b9
commit
6733a485cf
5 changed files with 118 additions and 5 deletions
|
|
@ -7165,6 +7165,21 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_OPAQUESMOKE5",
|
||||
|
||||
"S_RINGDEBT",
|
||||
"S_RINGSPARKS1",
|
||||
"S_RINGSPARKS2",
|
||||
"S_RINGSPARKS3",
|
||||
"S_RINGSPARKS4",
|
||||
"S_RINGSPARKS5",
|
||||
"S_RINGSPARKS6",
|
||||
"S_RINGSPARKS7",
|
||||
"S_RINGSPARKS8",
|
||||
"S_RINGSPARKS9",
|
||||
"S_RINGSPARKS10",
|
||||
"S_RINGSPARKS11",
|
||||
"S_RINGSPARKS12",
|
||||
"S_RINGSPARKS13",
|
||||
"S_RINGSPARKS14",
|
||||
"S_RINGSPARKS15",
|
||||
|
||||
#ifdef SEENAMES
|
||||
"S_NAMECHECK",
|
||||
|
|
@ -7952,6 +7967,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
"MT_LIONMAN",
|
||||
|
||||
"MT_KARMAFIREWORK",
|
||||
"MT_RINGSPARKS",
|
||||
|
||||
#ifdef SEENAMES
|
||||
"MT_NAMECHECK",
|
||||
|
|
|
|||
47
src/info.c
47
src/info.c
|
|
@ -69,7 +69,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
"CNDL","DOCH","DUCK","GTRE","CHES","CHIM","DRGN","LZMN","PGSS","ZTCH",
|
||||
"MKMA","MKMP","RTCH","BOWL","BOWH","BRRL","BRRR","HRSE","TOAH","BFRT",
|
||||
"OFRT","RFRT","PFRT","ASPK","HBST","HBSO","HBSF","WBLZ","WBLN","FWRK",
|
||||
"MXCL","XMS4","XMS5","VIEW"
|
||||
"MXCL","RGSP","XMS4","XMS5","VIEW"
|
||||
};
|
||||
|
||||
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
|
||||
|
|
@ -3415,6 +3415,22 @@ state_t states[NUMSTATES] =
|
|||
|
||||
{SPR_MXCL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_RINGDEBT
|
||||
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_RINGSPARKS2}, // S_RINGSPARKS1
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_RINGSPARKS3}, // S_RINGSPARKS2
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_RINGSPARKS4}, // S_RINGSPARKS3
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_RINGSPARKS5}, // S_RINGSPARKS4
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_RINGSPARKS6}, // S_RINGSPARKS5
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|5, 1, {NULL}, 0, 0, S_RINGSPARKS7}, // S_RINGSPARKS6
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|6, 1, {NULL}, 0, 0, S_RINGSPARKS8}, // S_RINGSPARKS7
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|7, 1, {NULL}, 0, 0, S_RINGSPARKS9}, // S_RINGSPARKS8
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|8, 1, {NULL}, 0, 0, S_RINGSPARKS10}, // S_RINGSPARKS9
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|9, 1, {NULL}, 0, 0, S_RINGSPARKS11}, // S_RINGSPARKS10
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|10, 1, {NULL}, 0, 0, S_RINGSPARKS12}, // S_RINGSPARKS11
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|11, 1, {NULL}, 0, 0, S_RINGSPARKS13}, // S_RINGSPARKS12
|
||||
{SPR_RGSP, FF_PAPERSPRITE|FF_FULLBRIGHT|12, 1, {NULL}, 0, 0, S_RINGSPARKS14}, // S_RINGSPARKS13
|
||||
{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
|
||||
|
||||
#ifdef SEENAMES
|
||||
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_NAMECHECK
|
||||
#endif
|
||||
|
|
@ -5461,7 +5477,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_SPRK1, // deathstate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_itemup, // deathsound
|
||||
38*FRACUNIT, // speed
|
||||
|
|
@ -20073,6 +20089,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_RINGSPARKS
|
||||
-1, // doomednum
|
||||
S_RINGSPARKS1, // 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
|
||||
},
|
||||
|
||||
// ============================================================================================================================//
|
||||
|
||||
#ifdef SEENAMES
|
||||
|
|
|
|||
17
src/info.h
17
src/info.h
|
|
@ -776,6 +776,7 @@ typedef enum sprite
|
|||
|
||||
SPR_FWRK,
|
||||
SPR_MXCL,
|
||||
SPR_RGSP,
|
||||
|
||||
// Xmas-specific sprites that don't fit aboxe
|
||||
SPR_XMS4,
|
||||
|
|
@ -4072,6 +4073,21 @@ typedef enum state
|
|||
S_OPAQUESMOKE5,
|
||||
|
||||
S_RINGDEBT,
|
||||
S_RINGSPARKS1,
|
||||
S_RINGSPARKS2,
|
||||
S_RINGSPARKS3,
|
||||
S_RINGSPARKS4,
|
||||
S_RINGSPARKS5,
|
||||
S_RINGSPARKS6,
|
||||
S_RINGSPARKS7,
|
||||
S_RINGSPARKS8,
|
||||
S_RINGSPARKS9,
|
||||
S_RINGSPARKS10,
|
||||
S_RINGSPARKS11,
|
||||
S_RINGSPARKS12,
|
||||
S_RINGSPARKS13,
|
||||
S_RINGSPARKS14,
|
||||
S_RINGSPARKS15,
|
||||
|
||||
#ifdef SEENAMES
|
||||
S_NAMECHECK,
|
||||
|
|
@ -4876,6 +4892,7 @@ typedef enum mobj_type
|
|||
MT_LIONMAN,
|
||||
|
||||
MT_KARMAFIREWORK,
|
||||
MT_RINGSPARKS,
|
||||
|
||||
#ifdef SEENAMES
|
||||
MT_NAMECHECK,
|
||||
|
|
|
|||
|
|
@ -3582,12 +3582,18 @@ void A_AttractChase(mobj_t *actor)
|
|||
|
||||
if (actor->extravalue1 >= 21)
|
||||
{
|
||||
UINT8 i;
|
||||
// Base add is 3 tics for 9,9, adds 1.5 tics for each point closer to the 1,1 end
|
||||
actor->target->player->kartstuff[k_ringboost] += ((3*RINGBOOSTPWR)/2) + 3;
|
||||
S_StartSound(actor->target, sfx_s1b5);
|
||||
actor->momx = (3*actor->target->momx)/4;
|
||||
actor->momy = (3*actor->target->momy)/4;
|
||||
actor->momz = (3*actor->target->momz)/4;
|
||||
// ring sparkle effect
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
mobj_t *sparkle = P_SpawnMobj(actor->target->x, actor->target->y, actor->target->z, MT_RINGSPARKS);
|
||||
P_SetTarget(&sparkle->target, actor->target);
|
||||
sparkle->extravalue1 = i;
|
||||
}
|
||||
|
||||
P_KillMobj(actor, actor->target, actor->target);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
31
src/p_mobj.c
31
src/p_mobj.c
|
|
@ -8285,6 +8285,37 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
K_MatchGenericExtraFlags(mobj, mobj->target);
|
||||
P_TeleportMove(mobj, mobj->target->x, mobj->target->y, mobj->target->z + (mobj->target->height/2) + mobj->movefactor);
|
||||
break;
|
||||
case MT_RINGSPARKS:
|
||||
if (!mobj->target || P_MobjWasRemoved(mobj->target))
|
||||
{
|
||||
P_RemoveMobj(mobj);
|
||||
return;
|
||||
}
|
||||
|
||||
K_MatchGenericExtraFlags(mobj, mobj->target);
|
||||
mobj->angle = mobj->target->angle;
|
||||
|
||||
switch (mobj->extravalue1)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
mobj->angle += ANGLE_90;
|
||||
break;
|
||||
case 1:
|
||||
mobj->angle -= ANGLE_90;
|
||||
break;
|
||||
case 2:
|
||||
mobj->angle += ANGLE_45;
|
||||
break;
|
||||
case 3:
|
||||
mobj->angle -= ANGLE_45;
|
||||
break;
|
||||
}
|
||||
|
||||
P_TeleportMove(mobj, mobj->target->x + FINECOSINE(mobj->angle >> ANGLETOFINESHIFT),
|
||||
mobj->target->y + FINESINE(mobj->angle >> ANGLETOFINESHIFT),
|
||||
mobj->target->z + mobj->target->height);
|
||||
break;
|
||||
case MT_THUNDERSHIELD:
|
||||
{
|
||||
fixed_t destx, desty;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue