17#define TSF_ROTATE_CONTINOUSLY 2
22# define EPSILON (1.0f / 32.0f)
23# define MIN_EPSILON 0.0001f
52 for(
i = 0;
i < 4; ++
i)
113 distance =
sqrt((distance*distance) / (1.0 +
128 *dir_angle = atan(-
y /
x) * 180.0f/
M_PI;
131 *dir_angle += 180.0f;
152 static float rotation_angles[5] =
169 if(edge < 1 || edge > 4)
212 vec3_t left,
up, org, mforward, mleft, mup, middle;
213 float scale, dx, dy, hud_vs_screen;
215 float dir_angle = 0.0f;
221 switch(
model->sprite.sprnum_type)
246 Con_Printf(
"R_SpriteSetup: unknown sprite type %i\n",
model->sprite.sprnum_type);
306 if(hud_vs_screen <= 0.6)
308 else if(hud_vs_screen <= 1.41)
310 else if(hud_vs_screen <= 3.33)
328 if(hud_vs_screen == 1)
368 up[2] =
up[2] + dir_angle;
376 up[2] =
up[2] + dir_angle * 0.3;
391 RSurf_ActiveCustomEntity(&
identitymatrix, &
identitymatrix, ent->
flags, 0, ent->
colormod[0], ent->
colormod[1], ent->
colormod[2], ent->
alpha * ent->
frameblend[
i].
lerp, 4, vertex3f,
spritetexcoord2f,
NULL,
NULL,
NULL,
NULL, 2,
polygonelement3i,
polygonelement3s,
false,
false);
420 for (
i = 0;
i < 4;
i++)
void Con_Printf(const char *fmt,...)
Prints to all appropriate console targets.
unsigned short polygonelement3s[(POLYGONELEMENTS_MAXPOINTS-2) *3]
int polygonelement3i[(POLYGONELEMENTS_MAXPOINTS-2) *3]
r_framebufferstate_t r_fb
texture_t * R_GetCurrentTexture(texture_t *t)
void R_DebugLine(vec3_t start, vec3_t end)
void R_CalcSprite_Vertex3f(float *vertex3f, const vec3_t origin, const vec3_t left, const vec3_t up, float scalex1, float scalex2, float scaley1, float scaley2)
void R_DrawCustomSurface_Texture(texture_t *texture, const matrix4x4_t *texmatrix, int materialflags, int firstvertex, int numvertices, int firsttriangle, int numtriangles, qbool writedepth, qbool prepass, qbool ui)
void RSurf_ActiveCustomEntity(const matrix4x4_t *matrix, const matrix4x4_t *inversematrix, int entflags, double shadertime, float r, float g, float b, float a, int numvertices, const float *vertex3f, const float *texcoord2f, const float *normal3f, const float *svector3f, const float *tvector3f, const float *color4f, int numtriangles, const int *element3i, const unsigned short *element3s, qbool wantnormals, qbool wanttangents)
GLenum GLenum GLuint texture
GLint GLenum GLint GLint y
#define VectorNormalize(v)
#define VectorMAMAM(scale1, b1, scale2, b2, scale3, b3, out)
#define VectorSubtract(a, b, out)
#define CrossProduct(a, b, out)
#define PlaneDiff(point, plane)
#define VectorCopy(in, out)
#define VectorScale(in, scale, out)
#define VectorMAM(scale1, b1, scale2, b2, out)
#define VectorMA(a, scale, b, out)
void Matrix4x4_Transform(const matrix4x4_t *in, const float v[3], float out[3])
void Matrix4x4_ToVectors(const matrix4x4_t *in, float vx[3], float vy[3], float vz[3], float t[3])
const matrix4x4_t identitymatrix
void Matrix4x4_CreateRotate(matrix4x4_t *out, double angle, double x, double y, double z)
void Matrix4x4_OriginFromMatrix(const matrix4x4_t *in, float *out)
void R_MeshQueue_AddTransparent(dptransparentsortcategory_t category, const vec3_t center, void(*callback)(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist), const entity_render_t *ent, int surfacenumber, const rtlight_t *rtlight)
#define MATERIALFLAG_FULLBRIGHT
#define MATERIALFLAG_NODEPTHTEST
#define MATERIALFLAG_SHORTDEPTHRANGE
#define RENDER_WORLDOBJECT
#define RENDER_NODEPTHTEST
@ TRANSPARENTSORT_DISTANCE
static float spritetexcoord2f[4 *2]
cvar_t r_overheadsprites_pushback
#define TSF_ROTATE_CONTINOUSLY
static void R_TrackSprite(const entity_render_t *ent, vec3_t origin, vec3_t left, vec3_t up, int *edge, float *dir_angle)
static void R_Model_Sprite_Draw_TransparentCallback(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist)
cvar_t r_labelsprites_scale
void R_Model_Sprite_Draw(entity_render_t *ent)
cvar_t r_track_sprites_flags
cvar_t r_track_sprites_scaleh
cvar_t r_track_sprites_scalew
static void R_RotateSprite(const mspriteframe_t *frame, vec3_t origin, vec3_t left, vec3_t up, int edge, float dir_angle)
cvar_t r_labelsprites_roundtopixels
cvar_t r_overheadsprites_scalex
cvar_t r_overheadsprites_perspective
cvar_t r_overheadsprites_scaley
#define SPR_VP_PARALLEL_UPRIGHT
#define SPR_VP_PARALLEL_ORIENTED
#define SPR_FACING_UPRIGHT
frameblend_t frameblend[MAX_FRAMEBLENDS]
matrix4x4_t inverse_matrix
const rtlight_t * rtlight