mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-05-05 00:12:16 +00:00
Post-merge fixes (todo: spr2)
This commit is contained in:
parent
14df513db6
commit
7cdf16e733
1 changed files with 24 additions and 45 deletions
|
|
@ -860,13 +860,8 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
GLPatch_t *gpatch;
|
GLPatch_t *gpatch;
|
||||||
INT32 durs = spr->mobj->state->tics;
|
INT32 durs = spr->mobj->state->tics;
|
||||||
INT32 tics = spr->mobj->tics;
|
INT32 tics = spr->mobj->tics;
|
||||||
<<<<<<< HEAD
|
|
||||||
//mdlframe_t *next = NULL;
|
//mdlframe_t *next = NULL;
|
||||||
const UINT8 flip = (UINT8)((spr->mobj->eflags & MFE_VERTICALFLIP) == MFE_VERTICALFLIP);
|
const UINT8 flip = (UINT8)((spr->mobj->eflags & MFE_VERTICALFLIP) == MFE_VERTICALFLIP);
|
||||||
=======
|
|
||||||
md2_frame_t *curr, *next = NULL;
|
|
||||||
const UINT8 flip = (UINT8)(!(spr->mobj->eflags & MFE_VERTICALFLIP) != !(spr->mobj->frame & FF_VERTICALFLIP));
|
|
||||||
>>>>>>> origin/master
|
|
||||||
spritedef_t *sprdef;
|
spritedef_t *sprdef;
|
||||||
spriteframe_t *sprframe;
|
spriteframe_t *sprframe;
|
||||||
float finalscale;
|
float finalscale;
|
||||||
|
|
@ -955,17 +950,10 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
tics = spr->mobj->anim_duration;
|
tics = spr->mobj->anim_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
//FIXME: this is not yet correct
|
|
||||||
frame = (spr->mobj->frame & FF_FRAMEMASK) % md2->model->meshes[0].numFrames;
|
|
||||||
|
|
||||||
#ifdef USE_MODEL_NEXTFRAME
|
|
||||||
if (cv_grmdls.value == 1 && tics <= durs)
|
|
||||||
=======
|
|
||||||
#define INTERPOLERATION_LIMIT TICRATE/4
|
#define INTERPOLERATION_LIMIT TICRATE/4
|
||||||
|
|
||||||
|
#if 0
|
||||||
if (spr->mobj->skin && spr->mobj->sprite == SPR_PLAY && md2->model->spr2frames)
|
if (spr->mobj->skin && spr->mobj->sprite == SPR_PLAY && md2->model->spr2frames)
|
||||||
>>>>>>> origin/master
|
|
||||||
{
|
{
|
||||||
UINT8 spr2 = P_GetModelSprite2(md2, spr->mobj->skin, spr->mobj->sprite2, spr->mobj->player);
|
UINT8 spr2 = P_GetModelSprite2(md2, spr->mobj->skin, spr->mobj->sprite2, spr->mobj->player);
|
||||||
UINT8 mod = md2->model->spr2frames[spr2*2 + 1] ? md2->model->spr2frames[spr2*2 + 1] : md2->model->header.numFrames;
|
UINT8 mod = md2->model->spr2frames[spr2*2 + 1] ? md2->model->spr2frames[spr2*2 + 1] : md2->model->header.numFrames;
|
||||||
|
|
@ -979,13 +967,6 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
curr = &md2->model->frames[md2->model->spr2frames[spr2*2] + frame];
|
curr = &md2->model->frames[md2->model->spr2frames[spr2*2] + frame];
|
||||||
if (cv_grmd2.value == 1 && tics <= durs && tics <= INTERPOLERATION_LIMIT)
|
if (cv_grmd2.value == 1 && tics <= durs && tics <= INTERPOLERATION_LIMIT)
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
|
||||||
nextFrame = (spr->mobj->frame & FF_FRAMEMASK) + 1;
|
|
||||||
if (nextFrame >= spr->mobj->state->var1)
|
|
||||||
nextFrame = (spr->mobj->state->frame & FF_FRAMEMASK);
|
|
||||||
nextFrame %= md2->model->meshes[0].numFrames;
|
|
||||||
//next = &md2->model->meshes[0].frames[nextFrame];
|
|
||||||
=======
|
|
||||||
if (durs > INTERPOLERATION_LIMIT)
|
if (durs > INTERPOLERATION_LIMIT)
|
||||||
durs = INTERPOLERATION_LIMIT;
|
durs = INTERPOLERATION_LIMIT;
|
||||||
|
|
||||||
|
|
@ -999,46 +980,38 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
if (frame || !(spr->mobj->state->frame & FF_SPR2ENDSTATE))
|
if (frame || !(spr->mobj->state->frame & FF_SPR2ENDSTATE))
|
||||||
next = &md2->model->frames[md2->model->spr2frames[spr2*2] + frame];
|
next = &md2->model->frames[md2->model->spr2frames[spr2*2] + frame];
|
||||||
}
|
}
|
||||||
>>>>>>> origin/master
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
//FIXME: this is not yet correct
|
//FIXME: this is not yet correct
|
||||||
frame = (spr->mobj->frame & FF_FRAMEMASK) % md2->model->header.numFrames;
|
frame = (spr->mobj->frame & FF_FRAMEMASK) % md2->model->meshes[0].numFrames;
|
||||||
buff = md2->model->glCommandBuffer;
|
|
||||||
curr = &md2->model->frames[frame];
|
|
||||||
if (cv_grmd2.value == 1 && tics <= durs && tics <= INTERPOLERATION_LIMIT)
|
|
||||||
{
|
|
||||||
if (durs > INTERPOLERATION_LIMIT)
|
|
||||||
durs = INTERPOLERATION_LIMIT;
|
|
||||||
|
|
||||||
|
#ifdef USE_MODEL_NEXTFRAME
|
||||||
|
if (cv_grmdls.value == 1 && tics <= durs)
|
||||||
|
{
|
||||||
// frames are handled differently for states with FF_ANIMATE, so get the next frame differently for the interpolation
|
// frames are handled differently for states with FF_ANIMATE, so get the next frame differently for the interpolation
|
||||||
if (spr->mobj->frame & FF_ANIMATE)
|
if (spr->mobj->frame & FF_ANIMATE)
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
nextFrame = (spr->mobj->frame & FF_FRAMEMASK) + 1;
|
||||||
nextFrame = (states[spr->mobj->state->nextstate].frame & FF_FRAMEMASK) % md2->model->meshes[0].numFrames;
|
if (nextFrame >= spr->mobj->state->var1)
|
||||||
|
nextFrame = (spr->mobj->state->frame & FF_FRAMEMASK);
|
||||||
|
nextFrame %= md2->model->meshes[0].numFrames;
|
||||||
//next = &md2->model->meshes[0].frames[nextFrame];
|
//next = &md2->model->meshes[0].frames[nextFrame];
|
||||||
=======
|
|
||||||
UINT32 nextframe = (spr->mobj->frame & FF_FRAMEMASK) + 1;
|
|
||||||
if (nextframe >= (UINT32)spr->mobj->state->var1)
|
|
||||||
nextframe = (spr->mobj->state->frame & FF_FRAMEMASK);
|
|
||||||
nextframe %= md2->model->header.numFrames;
|
|
||||||
next = &md2->model->frames[nextframe];
|
|
||||||
>>>>>>> origin/master
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (spr->mobj->state->nextstate != S_NULL
|
if (spr->mobj->state->nextstate != S_NULL && states[spr->mobj->state->nextstate].sprite != SPR_NULL
|
||||||
&& states[spr->mobj->state->nextstate].sprite == spr->mobj->sprite)
|
&& !(spr->mobj->player && (spr->mobj->state->nextstate == S_PLAY_TAP1 || spr->mobj->state->nextstate == S_PLAY_TAP2) && spr->mobj->state == &states[S_PLAY_STND]))
|
||||||
{
|
{
|
||||||
const UINT32 nextframe = (states[spr->mobj->state->nextstate].frame & FF_FRAMEMASK) % md2->model->header.numFrames;
|
nextFrame = (states[spr->mobj->state->nextstate].frame & FF_FRAMEMASK) % md2->model->meshes[0].numFrames;
|
||||||
next = &md2->model->frames[nextframe];
|
//next = &md2->model->meshes[0].frames[nextFrame];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#undef INTERPOLERATION_LIMIT
|
#undef INTERPOLERATION_LIMIT
|
||||||
|
|
||||||
|
|
@ -1046,13 +1019,13 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
p.x = FIXED_TO_FLOAT(spr->mobj->x);
|
p.x = FIXED_TO_FLOAT(spr->mobj->x);
|
||||||
p.y = FIXED_TO_FLOAT(spr->mobj->y)+md2->offset;
|
p.y = FIXED_TO_FLOAT(spr->mobj->y)+md2->offset;
|
||||||
|
|
||||||
if (flip)
|
if (spr->mobj->eflags & MFE_VERTICALFLIP)
|
||||||
p.z = FIXED_TO_FLOAT(spr->mobj->z + spr->mobj->height);
|
p.z = FIXED_TO_FLOAT(spr->mobj->z + spr->mobj->height);
|
||||||
else
|
else
|
||||||
p.z = FIXED_TO_FLOAT(spr->mobj->z);
|
p.z = FIXED_TO_FLOAT(spr->mobj->z);
|
||||||
|
|
||||||
if (spr->mobj->skin && spr->mobj->sprite == SPR_PLAY)
|
if (spr->mobj->skin && spr->mobj->sprite == SPR_PLAY)
|
||||||
sprdef = &((skin_t *)spr->mobj->skin)->sprites[spr->mobj->sprite2];
|
sprdef = &((skin_t *)spr->mobj->skin)->spritedef;
|
||||||
else
|
else
|
||||||
sprdef = &sprites[spr->mobj->sprite];
|
sprdef = &sprites[spr->mobj->sprite];
|
||||||
|
|
||||||
|
|
@ -1060,7 +1033,13 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
|
|
||||||
if (sprframe->rotate)
|
if (sprframe->rotate)
|
||||||
{
|
{
|
||||||
const fixed_t anglef = AngleFixed((spr->mobj->player ? spr->mobj->player->drawangle : spr->mobj->angle));
|
fixed_t anglef = AngleFixed(spr->mobj->angle);
|
||||||
|
|
||||||
|
if (spr->mobj->player)
|
||||||
|
anglef = AngleFixed(spr->mobj->player->frameangle);
|
||||||
|
else
|
||||||
|
anglef = AngleFixed(spr->mobj->angle);
|
||||||
|
|
||||||
p.angley = FIXED_TO_FLOAT(anglef);
|
p.angley = FIXED_TO_FLOAT(anglef);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue