mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-24 00:42:32 +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_PART",
|
||||
"MT_MAGICIANBOX",
|
||||
"MT_MAGICIANBOX_SIDE",
|
||||
|
||||
"MT_SIGNSPARKLE",
|
||||
|
||||
|
|
|
|||
37
src/info.c
37
src/info.c
|
|
@ -22394,7 +22394,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_MAGICIANBOX
|
||||
{ // MT_MAGICIANBOX
|
||||
-1, // doomednum
|
||||
S_MAGICIANBOX, // spawnstate
|
||||
1000, // spawnhealth
|
||||
|
|
@ -22411,43 +22411,16 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
26*FRACUNIT, // radius
|
||||
26*FRACUNIT, // height
|
||||
20*FRACUNIT, // radius
|
||||
20*FRACUNIT, // height
|
||||
0, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
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
|
||||
},
|
||||
|
||||
|
||||
{ // MT_SIGNSPARKLE
|
||||
-1, // doomednum
|
||||
S_SIGNSPARK1, // spawnstate
|
||||
|
|
|
|||
|
|
@ -6330,7 +6330,6 @@ typedef enum mobj_type
|
|||
MT_ITEMCAPSULE,
|
||||
MT_ITEMCAPSULE_PART,
|
||||
MT_MAGICIANBOX,
|
||||
MT_MAGICIANBOX_SIDE,
|
||||
|
||||
MT_SIGNSPARKLE,
|
||||
|
||||
|
|
|
|||
21
src/p_mobj.c
21
src/p_mobj.c
|
|
@ -7610,6 +7610,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
}
|
||||
break;
|
||||
case MT_MAGICIANBOX:
|
||||
{
|
||||
fixed_t destx, desty, fakeangle;
|
||||
INT32 j;
|
||||
|
||||
|
|
@ -7635,6 +7636,14 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
else if (mobj->extravalue2 == TICRATE/3 && mobj->target)
|
||||
{
|
||||
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?
|
||||
{
|
||||
|
|
@ -7673,6 +7682,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
dust->color = color;
|
||||
dust->colorized = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -7697,8 +7707,17 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
destx += FixedMul(mobj->radius*2, FINECOSINE(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;
|
||||
}
|
||||
case MT_LIGHTNINGSHIELD:
|
||||
{
|
||||
fixed_t destx, desty;
|
||||
|
|
|
|||
|
|
@ -4177,7 +4177,8 @@ void P_PlayerThink(player_t *player)
|
|||
}
|
||||
else
|
||||
{
|
||||
SetRandomFakePlayerSkin(player);
|
||||
// "Don't halfass" - Oni
|
||||
// SetRandomFakePlayerSkin(player, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ void SetFakePlayerSkin(player_t* player, INT32 skinnum)
|
|||
}
|
||||
|
||||
// Loudly rerandomize
|
||||
void SetRandomFakePlayerSkin(player_t* player)
|
||||
void SetRandomFakePlayerSkin(player_t* player, boolean fast)
|
||||
{
|
||||
INT32 i;
|
||||
do {
|
||||
|
|
@ -364,15 +364,25 @@ void SetRandomFakePlayerSkin(player_t* player)
|
|||
|
||||
mobj_t *parent = player->mo;
|
||||
fixed_t rad = FixedDiv(FixedHypot(parent->radius, parent->radius), parent->scale);
|
||||
fixed_t baseangle = P_RandomRange(PR_DECORATION, 0, 359);
|
||||
INT32 j, k;
|
||||
|
||||
for (k = 0; k < 4; k++)
|
||||
{
|
||||
mobj_t *box = P_SpawnMobjFromMobj(parent, 0, 0, 0, MT_MAGICIANBOX);
|
||||
box->target = parent;
|
||||
box->angle = ANGLE_90 * k;
|
||||
box->extravalue1 = 1; // Rotation rate
|
||||
box->extravalue2 = 3*TICRATE/2; // Lifetime
|
||||
box->angle = FixedAngle((baseangle + k*90) * FRACUNIT);
|
||||
box->flags2 |= MF2_AMBUSH;
|
||||
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)
|
||||
box->cusval = 1; // Should play sounds when disappearing
|
||||
else
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ void R_InitSkins(void);
|
|||
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
||||
void SetPlayerSkinByNum(INT32 playernum,INT32 skinnum); // Tails 03-16-2002
|
||||
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);
|
||||
UINT32 R_GetSkinAvailabilities(void);
|
||||
INT32 R_SkinAvailable(const char *name);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue