mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-29 20:20:43 +00:00
get larger player skins working in gl
This commit is contained in:
parent
e8baa18abd
commit
f7b4dffcc0
6 changed files with 42 additions and 8 deletions
|
@ -50,7 +50,7 @@ typedef struct skin_s
|
||||||
int numfb;
|
int numfb;
|
||||||
} skin_t;
|
} skin_t;
|
||||||
|
|
||||||
extern byte player_8bit_texels[320 * 200];
|
extern byte player_8bit_texels[640 * 400];
|
||||||
extern skin_t skin_cache[MAX_CACHED_SKINS];
|
extern skin_t skin_cache[MAX_CACHED_SKINS];
|
||||||
extern int skin_textures;
|
extern int skin_textures;
|
||||||
extern int skin_fb_textures;
|
extern int skin_fb_textures;
|
||||||
|
@ -70,6 +70,7 @@ void Skin_Set_Translate (int top, int bottom, void *_dest);
|
||||||
void Skin_Do_Translation (skin_t *player_skin, int slot, skin_t *skin);
|
void Skin_Do_Translation (skin_t *player_skin, int slot, skin_t *skin);
|
||||||
void Skin_Do_Translation_Model (struct model_s *model, int skinnum,
|
void Skin_Do_Translation_Model (struct model_s *model, int skinnum,
|
||||||
int slot, skin_t *skin);
|
int slot, skin_t *skin);
|
||||||
|
void Skin_Player_Model (struct model_s *model);
|
||||||
void Skin_Process (skin_t *skin, struct tex_s *);
|
void Skin_Process (skin_t *skin, struct tex_s *);
|
||||||
|
|
||||||
skin_t *Skin_NewTempSkin (void);
|
skin_t *Skin_NewTempSkin (void);
|
||||||
|
|
|
@ -52,7 +52,7 @@ static const char rcsid[] =
|
||||||
|
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
|
||||||
byte player_8bit_texels[320 * 200];
|
byte player_8bit_texels[640 * 400];
|
||||||
|
|
||||||
|
|
||||||
// a pose is a single set of vertexes. a frame may be
|
// a pose is a single set of vertexes. a frame may be
|
||||||
|
|
|
@ -52,6 +52,8 @@ static const char rcsid[] =
|
||||||
static byte translate[256];
|
static byte translate[256];
|
||||||
static unsigned int translate32[256];
|
static unsigned int translate32[256];
|
||||||
|
|
||||||
|
static int player_width = 296;
|
||||||
|
static int player_height = 194;
|
||||||
|
|
||||||
void
|
void
|
||||||
Skin_Set_Translate (int top, int bottom, void *_dest)
|
Skin_Set_Translate (int top, int bottom, void *_dest)
|
||||||
|
@ -191,10 +193,11 @@ Skin_Do_Translation (skin_t *player_skin, int slot, skin_t *skin)
|
||||||
original = skin_texels->data;
|
original = skin_texels->data;
|
||||||
} else {
|
} else {
|
||||||
original = player_8bit_texels;
|
original = player_8bit_texels;
|
||||||
inwidth = 296;
|
inwidth = player_width;
|
||||||
inheight = 194;
|
inheight = player_height;
|
||||||
}
|
}
|
||||||
build_skin (texnum, original, inwidth, inheight, 296, 194, false);
|
build_skin (texnum, original, inwidth, inheight,
|
||||||
|
player_width, player_height, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -231,6 +234,24 @@ Skin_Do_Translation_Model (model_t *model, int skinnum, int slot, skin_t *skin)
|
||||||
Cache_Release (&model->cache);
|
Cache_Release (&model->cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Skin_Player_Model (model_t *model)
|
||||||
|
{
|
||||||
|
aliashdr_t *paliashdr;
|
||||||
|
|
||||||
|
player_width = 296;
|
||||||
|
player_height = 194;
|
||||||
|
if (!model) // player doesn't have a model yet
|
||||||
|
return;
|
||||||
|
if (model->type != mod_alias) // only translate skins on alias models
|
||||||
|
return;
|
||||||
|
|
||||||
|
paliashdr = Cache_Get (&model->cache);
|
||||||
|
player_width = paliashdr->mdl.skinwidth;
|
||||||
|
player_height = paliashdr->mdl.skinheight;
|
||||||
|
Cache_Release (&model->cache);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Skin_Init_Translation (void)
|
Skin_Init_Translation (void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -88,6 +88,12 @@ Skin_Do_Translation_Model (model_t *model, int skinnum, int slot, skin_t *skin)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Skin_Player_Model (model_t *model)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Skin_Init_Translation (void)
|
Skin_Init_Translation (void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -181,7 +181,12 @@ Skin_Do_Translation (skin_t *player_skin, int slot, skin_t *skin)
|
||||||
void
|
void
|
||||||
Skin_Do_Translation_Model (model_t *model, int skinnum, int slot, skin_t *skin)
|
Skin_Do_Translation_Model (model_t *model, int skinnum, int slot, skin_t *skin)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Skin_Player_Model (model_t *model)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -308,15 +308,16 @@ Model_NextDownload (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strequal (cl.model_name[i], "progs/player.mdl")
|
if (strequal (cl.model_name[i], "progs/player.mdl")
|
||||||
&& cl.model_precache[i]->type == mod_alias)
|
&& cl.model_precache[i]->type == mod_alias) {
|
||||||
info_key = pmodel_name;
|
info_key = pmodel_name;
|
||||||
|
Skin_Player_Model (cl.model_precache[i]);
|
||||||
|
}
|
||||||
if (strequal (cl.model_name[i], "progs/eyes.mdl")
|
if (strequal (cl.model_name[i], "progs/eyes.mdl")
|
||||||
&& cl.model_precache[i]->type == mod_alias)
|
&& cl.model_precache[i]->type == mod_alias)
|
||||||
info_key = emodel_name;
|
info_key = emodel_name;
|
||||||
|
|
||||||
if (info_key && cl_model_crcs->int_val) {
|
if (info_key && cl_model_crcs->int_val) {
|
||||||
aliashdr_t *ahdr = Cache_Get
|
aliashdr_t *ahdr = Cache_Get (&cl.model_precache[i]->cache);
|
||||||
(&cl.model_precache[i]->cache);
|
|
||||||
Info_SetValueForKey (cls.userinfo, info_key, va ("%d", ahdr->crc),
|
Info_SetValueForKey (cls.userinfo, info_key, va ("%d", ahdr->crc),
|
||||||
0);
|
0);
|
||||||
MSG_WriteByte (&cls.netchan.message, clc_stringcmd);
|
MSG_WriteByte (&cls.netchan.message, clc_stringcmd);
|
||||||
|
|
Loading…
Reference in a new issue