mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Ironman: animation fixes, don't transform in POSITION
This commit is contained in:
parent
8fe89c3dcd
commit
2a46af5a44
7 changed files with 42 additions and 41 deletions
|
|
@ -5282,7 +5282,6 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
||||||
"MT_ITEMCAPSULE",
|
"MT_ITEMCAPSULE",
|
||||||
"MT_ITEMCAPSULE_PART",
|
"MT_ITEMCAPSULE_PART",
|
||||||
"MT_MAGICIANBOX",
|
"MT_MAGICIANBOX",
|
||||||
"MT_MAGICIANBOX_SIDE",
|
|
||||||
|
|
||||||
"MT_SIGNSPARKLE",
|
"MT_SIGNSPARKLE",
|
||||||
|
|
||||||
|
|
|
||||||
35
src/info.c
35
src/info.c
|
|
@ -22394,7 +22394,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_MAGICIANBOX
|
{ // MT_MAGICIANBOX
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_MAGICIANBOX, // spawnstate
|
S_MAGICIANBOX, // spawnstate
|
||||||
1000, // spawnhealth
|
1000, // spawnhealth
|
||||||
|
|
@ -22411,40 +22411,13 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
0, // speed
|
0, // speed
|
||||||
26*FRACUNIT, // radius
|
20*FRACUNIT, // radius
|
||||||
26*FRACUNIT, // height
|
20*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
100, // mass
|
100, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
sfx_None, // activesound
|
||||||
MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT, // flags
|
MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT, // flags
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_MAGICIANBOX_SIDE
|
|
||||||
-1, // doomednum
|
|
||||||
S_MAGICIANBOX, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
0, // 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
|
|
||||||
26*FRACUNIT, // radius
|
|
||||||
14*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
0, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SCENERY|MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT, // flags
|
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6330,7 +6330,6 @@ typedef enum mobj_type
|
||||||
MT_ITEMCAPSULE,
|
MT_ITEMCAPSULE,
|
||||||
MT_ITEMCAPSULE_PART,
|
MT_ITEMCAPSULE_PART,
|
||||||
MT_MAGICIANBOX,
|
MT_MAGICIANBOX,
|
||||||
MT_MAGICIANBOX_SIDE,
|
|
||||||
|
|
||||||
MT_SIGNSPARKLE,
|
MT_SIGNSPARKLE,
|
||||||
|
|
||||||
|
|
|
||||||
21
src/p_mobj.c
21
src/p_mobj.c
|
|
@ -7610,6 +7610,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MT_MAGICIANBOX:
|
case MT_MAGICIANBOX:
|
||||||
|
{
|
||||||
fixed_t destx, desty, fakeangle;
|
fixed_t destx, desty, fakeangle;
|
||||||
INT32 j;
|
INT32 j;
|
||||||
|
|
||||||
|
|
@ -7636,6 +7637,14 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
{
|
{
|
||||||
mobj->target->renderflags &= ~RF_DONTDRAW;
|
mobj->target->renderflags &= ~RF_DONTDRAW;
|
||||||
|
|
||||||
|
mobj->momx = mobj->target->momx;
|
||||||
|
mobj->momy = mobj->target->momy;
|
||||||
|
mobj->momz = mobj->target->momz;
|
||||||
|
|
||||||
|
P_Thrust(mobj, mobj->angle + ANGLE_90, 32*mapobjectscale);
|
||||||
|
mobj->flags &= ~MF_NOGRAVITY;
|
||||||
|
mobj->momz += 10*mapobjectscale;
|
||||||
|
|
||||||
if (mobj->cusval) // Are we the side selected to play a sound?
|
if (mobj->cusval) // Are we the side selected to play a sound?
|
||||||
{
|
{
|
||||||
S_StartSound(mobj, sfx_kc2e);
|
S_StartSound(mobj, sfx_kc2e);
|
||||||
|
|
@ -7673,6 +7682,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
dust->color = color;
|
dust->color = color;
|
||||||
dust->colorized = true;
|
dust->colorized = true;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -7697,8 +7707,17 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
destx += FixedMul(mobj->radius*2, FINECOSINE(FixedAngle(fakeangle*FRACUNIT) >> ANGLETOFINESHIFT));
|
destx += FixedMul(mobj->radius*2, FINECOSINE(FixedAngle(fakeangle*FRACUNIT) >> ANGLETOFINESHIFT));
|
||||||
desty += FixedMul(mobj->radius*2, FINESINE(FixedAngle(fakeangle*FRACUNIT) >> ANGLETOFINESHIFT));
|
desty += FixedMul(mobj->radius*2, FINESINE(FixedAngle(fakeangle*FRACUNIT) >> ANGLETOFINESHIFT));
|
||||||
|
|
||||||
P_MoveOrigin(mobj, destx, desty, mobj->target->z);
|
if (mobj->flags2 & MF2_AMBUSH)
|
||||||
|
{
|
||||||
|
P_SetOrigin(mobj, destx, desty, mobj->target->z);
|
||||||
|
mobj->flags2 &= ~MF2_AMBUSH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
P_MoveOrigin(mobj, destx, desty, mobj->target->z);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case MT_LIGHTNINGSHIELD:
|
case MT_LIGHTNINGSHIELD:
|
||||||
{
|
{
|
||||||
fixed_t destx, desty;
|
fixed_t destx, desty;
|
||||||
|
|
|
||||||
|
|
@ -4177,7 +4177,8 @@ void P_PlayerThink(player_t *player)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetRandomFakePlayerSkin(player);
|
// "Don't halfass" - Oni
|
||||||
|
// SetRandomFakePlayerSkin(player, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -348,7 +348,7 @@ void SetFakePlayerSkin(player_t* player, INT32 skinnum)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loudly rerandomize
|
// Loudly rerandomize
|
||||||
void SetRandomFakePlayerSkin(player_t* player)
|
void SetRandomFakePlayerSkin(player_t* player, boolean fast)
|
||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i;
|
||||||
do {
|
do {
|
||||||
|
|
@ -364,15 +364,25 @@ void SetRandomFakePlayerSkin(player_t* player)
|
||||||
|
|
||||||
mobj_t *parent = player->mo;
|
mobj_t *parent = player->mo;
|
||||||
fixed_t rad = FixedDiv(FixedHypot(parent->radius, parent->radius), parent->scale);
|
fixed_t rad = FixedDiv(FixedHypot(parent->radius, parent->radius), parent->scale);
|
||||||
|
fixed_t baseangle = P_RandomRange(PR_DECORATION, 0, 359);
|
||||||
INT32 j, k;
|
INT32 j, k;
|
||||||
|
|
||||||
for (k = 0; k < 4; k++)
|
for (k = 0; k < 4; k++)
|
||||||
{
|
{
|
||||||
mobj_t *box = P_SpawnMobjFromMobj(parent, 0, 0, 0, MT_MAGICIANBOX);
|
mobj_t *box = P_SpawnMobjFromMobj(parent, 0, 0, 0, MT_MAGICIANBOX);
|
||||||
box->target = parent;
|
box->target = parent;
|
||||||
box->angle = ANGLE_90 * k;
|
box->angle = FixedAngle((baseangle + k*90) * FRACUNIT);
|
||||||
box->extravalue1 = 1; // Rotation rate
|
box->flags2 |= MF2_AMBUSH;
|
||||||
box->extravalue2 = 3*TICRATE/2; // Lifetime
|
if (fast)
|
||||||
|
{
|
||||||
|
box->extravalue1 = 25; // Rotation rate
|
||||||
|
box->extravalue2 = 3*TICRATE/4; // Lifetime
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
box->extravalue1 = 1;
|
||||||
|
box->extravalue2 = 3*TICRATE/2;
|
||||||
|
}
|
||||||
if (k == 0)
|
if (k == 0)
|
||||||
box->cusval = 1; // Should play sounds when disappearing
|
box->cusval = 1; // Should play sounds when disappearing
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ void R_InitSkins(void);
|
||||||
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
||||||
void SetPlayerSkinByNum(INT32 playernum,INT32 skinnum); // Tails 03-16-2002
|
void SetPlayerSkinByNum(INT32 playernum,INT32 skinnum); // Tails 03-16-2002
|
||||||
void SetFakePlayerSkin(player_t* player, INT32 skinnum);
|
void SetFakePlayerSkin(player_t* player, INT32 skinnum);
|
||||||
void SetRandomFakePlayerSkin(player_t* player);
|
void SetRandomFakePlayerSkin(player_t* player, boolean fast);
|
||||||
boolean R_SkinUsable(INT32 playernum, INT32 skinnum);
|
boolean R_SkinUsable(INT32 playernum, INT32 skinnum);
|
||||||
UINT32 R_GetSkinAvailabilities(void);
|
UINT32 R_GetSkinAvailabilities(void);
|
||||||
INT32 R_SkinAvailable(const char *name);
|
INT32 R_SkinAvailable(const char *name);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue