mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-15 14:11:19 +00:00
Merge branch 'rotate-the-md2' into 'master'
Rotate the MD2 See merge request KartKrew/Kart!108
This commit is contained in:
commit
59f59c8042
7 changed files with 24 additions and 7 deletions
|
@ -104,7 +104,7 @@ typedef struct
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
FLOAT x,y,z; // position
|
FLOAT x,y,z; // position
|
||||||
FLOAT anglex,angley; // aimingangle / viewangle
|
FLOAT anglex,angley,anglez; // aimingangle / viewangle
|
||||||
FLOAT scalex,scaley,scalez;
|
FLOAT scalex,scaley,scalez;
|
||||||
FLOAT fovxangle, fovyangle;
|
FLOAT fovxangle, fovyangle;
|
||||||
UINT8 splitscreen;
|
UINT8 splitscreen;
|
||||||
|
|
|
@ -5968,6 +5968,7 @@ void HWR_RenderSkyboxView(INT32 viewnumber, player_t *player)
|
||||||
// It should replace all other gr_viewxxx when finished
|
// It should replace all other gr_viewxxx when finished
|
||||||
atransform.anglex = (float)(aimingangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
atransform.anglex = (float)(aimingangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
||||||
atransform.angley = (float)(viewangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
atransform.angley = (float)(viewangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
||||||
|
atransform.anglez = 0.0f;
|
||||||
|
|
||||||
if (*type == postimg_flip)
|
if (*type == postimg_flip)
|
||||||
atransform.flip = true;
|
atransform.flip = true;
|
||||||
|
@ -6230,6 +6231,7 @@ void HWR_RenderPlayerView(INT32 viewnumber, player_t *player)
|
||||||
// It should replace all other gr_viewxxx when finished
|
// It should replace all other gr_viewxxx when finished
|
||||||
atransform.anglex = (float)(aimingangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
atransform.anglex = (float)(aimingangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
||||||
atransform.angley = (float)(viewangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
atransform.angley = (float)(viewangle>>ANGLETOFINESHIFT)*(360.0f/(float)FINEANGLES);
|
||||||
|
atransform.anglez = 0.0f;
|
||||||
|
|
||||||
if (*type == postimg_flip)
|
if (*type == postimg_flip)
|
||||||
atransform.flip = true;
|
atransform.flip = true;
|
||||||
|
|
|
@ -963,7 +963,7 @@ spritemd2found:
|
||||||
// (See this same define in k_kart.c!)
|
// (See this same define in k_kart.c!)
|
||||||
#define SETBRIGHTNESS(brightness,r,g,b) \
|
#define SETBRIGHTNESS(brightness,r,g,b) \
|
||||||
brightness = (UINT8)(((1063*((UINT16)r)/5000) + (3576*((UINT16)g)/5000) + (361*((UINT16)b)/5000)) / 3)
|
brightness = (UINT8)(((1063*((UINT16)r)/5000) + (3576*((UINT16)g)/5000) + (361*((UINT16)b)/5000)) / 3)
|
||||||
|
|
||||||
static void HWR_CreateBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, GLMipmap_t *grmip, INT32 skinnum, skincolors_t color)
|
static void HWR_CreateBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, GLMipmap_t *grmip, INT32 skinnum, skincolors_t color)
|
||||||
{
|
{
|
||||||
UINT8 i;
|
UINT8 i;
|
||||||
|
@ -1389,6 +1389,18 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
p.angley = FIXED_TO_FLOAT(anglef);
|
p.angley = FIXED_TO_FLOAT(anglef);
|
||||||
}
|
}
|
||||||
p.anglex = 0.0f;
|
p.anglex = 0.0f;
|
||||||
|
p.anglez = 0.0f;
|
||||||
|
if (spr->mobj->standingslope)
|
||||||
|
{
|
||||||
|
fixed_t tempz = spr->mobj->standingslope->normal.z;
|
||||||
|
fixed_t tempy = spr->mobj->standingslope->normal.y;
|
||||||
|
fixed_t tempx = spr->mobj->standingslope->normal.x;
|
||||||
|
fixed_t tempangle = AngleFixed(R_PointToAngle2(0, 0, FixedSqrt(FixedMul(tempy, tempy) + FixedMul(tempz, tempz)), tempx));
|
||||||
|
p.anglez = FIXED_TO_FLOAT(tempangle);
|
||||||
|
tempangle = -AngleFixed(R_PointToAngle2(0, 0, tempz, tempy));
|
||||||
|
p.anglex = FIXED_TO_FLOAT(tempangle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
color[0] = Surf.FlatColor.s.red;
|
color[0] = Surf.FlatColor.s.red;
|
||||||
color[1] = Surf.FlatColor.s.green;
|
color[1] = Surf.FlatColor.s.green;
|
||||||
|
|
|
@ -1962,8 +1962,9 @@ static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, INT32 duration,
|
||||||
pglTranslatef(pos->x, pos->z, pos->y);
|
pglTranslatef(pos->x, pos->z, pos->y);
|
||||||
if (flipped)
|
if (flipped)
|
||||||
scaley = -scaley;
|
scaley = -scaley;
|
||||||
pglRotatef(pos->angley, 0.0f, -1.0f, 0.0f);
|
pglRotatef(pos->anglez, 0.0f, 0.0f, -1.0f);
|
||||||
pglRotatef(pos->anglex, -1.0f, 0.0f, 0.0f);
|
pglRotatef(pos->anglex, -1.0f, 0.0f, 0.0f);
|
||||||
|
pglRotatef(pos->angley, 0.0f, -1.0f, 0.0f);
|
||||||
|
|
||||||
val = *gl_cmd_buffer++;
|
val = *gl_cmd_buffer++;
|
||||||
|
|
||||||
|
|
|
@ -1423,7 +1423,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
// Make sure they aren't able to damage you ANYWHERE along the Z axis, you have to be TOUCHING the person.
|
// Make sure they aren't able to damage you ANYWHERE along the Z axis, you have to be TOUCHING the person.
|
||||||
&& !(thing->z + thing->height < tmthing->z || thing->z > tmthing->z + tmthing->height))
|
&& !(thing->z + thing->height < tmthing->z || thing->z > tmthing->z + tmthing->height))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (tmthing->scale > thing->scale + (mapheaderinfo[gamemap-1]->mobj_scale/8)) // SRB2kart - Handle squishes first!
|
if (tmthing->scale > thing->scale + (mapheaderinfo[gamemap-1]->mobj_scale/8)) // SRB2kart - Handle squishes first!
|
||||||
K_SquishPlayer(thing->player, tmthing);
|
K_SquishPlayer(thing->player, tmthing);
|
||||||
else if (thing->scale > tmthing->scale + (mapheaderinfo[gamemap-1]->mobj_scale/8))
|
else if (thing->scale > tmthing->scale + (mapheaderinfo[gamemap-1]->mobj_scale/8))
|
||||||
|
|
|
@ -1938,7 +1938,9 @@ void P_XYMovement(mobj_t *mo)
|
||||||
FIXED_TO_FLOAT(AngleFixed(newangle)),
|
FIXED_TO_FLOAT(AngleFixed(newangle)),
|
||||||
FIXED_TO_FLOAT(AngleFixed(oldangle-newangle))
|
FIXED_TO_FLOAT(AngleFixed(oldangle-newangle))
|
||||||
);*/
|
);*/
|
||||||
} else if (predictedz-mo->z > abs(slopemom.z/2)) { // Now check if we were supposed to stick to this slope
|
// Sryder 2018-11-26: Don't launch here if it's a slope without physics, we stick to those like glue anyway
|
||||||
|
} else if (predictedz-mo->z > abs(slopemom.z/2)
|
||||||
|
&& !(mo->standingslope->flags & SL_NOPHYSICS)) { // Now check if we were supposed to stick to this slope
|
||||||
//CONS_Printf("%d-%d > %d\n", (predictedz), (mo->z), (slopemom.z/2));
|
//CONS_Printf("%d-%d > %d\n", (predictedz), (mo->z), (slopemom.z/2));
|
||||||
P_SlopeLaunch(mo);
|
P_SlopeLaunch(mo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,8 +31,8 @@ static UINT16 slopecount = 0;
|
||||||
// Calculate line normal
|
// Calculate line normal
|
||||||
void P_CalculateSlopeNormal(pslope_t *slope) {
|
void P_CalculateSlopeNormal(pslope_t *slope) {
|
||||||
slope->normal.z = FINECOSINE(slope->zangle>>ANGLETOFINESHIFT);
|
slope->normal.z = FINECOSINE(slope->zangle>>ANGLETOFINESHIFT);
|
||||||
slope->normal.x = -FixedMul(FINESINE(slope->zangle>>ANGLETOFINESHIFT), slope->d.x);
|
slope->normal.x = -FixedMul(FINESINE(slope->zangle>>ANGLETOFINESHIFT), -slope->d.x);
|
||||||
slope->normal.y = -FixedMul(FINESINE(slope->zangle>>ANGLETOFINESHIFT), slope->d.y);
|
slope->normal.y = -FixedMul(FINESINE(slope->zangle>>ANGLETOFINESHIFT), -slope->d.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
// With a vertex slope that has its vertices set, configure relevant slope info
|
// With a vertex slope that has its vertices set, configure relevant slope info
|
||||||
|
|
Loading…
Reference in a new issue