mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-18 06:51:47 +00:00
external tga skin loading, doesn't work for players (teamcolor stuff)
This commit is contained in:
parent
9dedd21158
commit
778af4276e
6 changed files with 68 additions and 0 deletions
|
@ -455,6 +455,7 @@ mleaf_t *Mod_PointInLeaf (const vec3_t p, model_t *model);
|
||||||
byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model);
|
byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model);
|
||||||
model_t *Mod_FindName (const char *name);
|
model_t *Mod_FindName (const char *name);
|
||||||
void Mod_ProcessTexture(miptex_t *mt, texture_t *tx);
|
void Mod_ProcessTexture(miptex_t *mt, texture_t *tx);
|
||||||
|
void Mod_LoadExternalSkins (model_t * mod);
|
||||||
void Mod_LoadExternalTextures (model_t * mod);
|
void Mod_LoadExternalTextures (model_t * mod);
|
||||||
void Mod_LoadLighting (lump_t *l);
|
void Mod_LoadLighting (lump_t *l);
|
||||||
int Mod_CalcFullbright (byte *in, byte *out, int pixels);
|
int Mod_CalcFullbright (byte *in, byte *out, int pixels);
|
||||||
|
|
|
@ -45,6 +45,9 @@ static const char rcsid[] =
|
||||||
#include "QF/qendian.h"
|
#include "QF/qendian.h"
|
||||||
#include "QF/skin.h"
|
#include "QF/skin.h"
|
||||||
#include "QF/sys.h"
|
#include "QF/sys.h"
|
||||||
|
#include "QF/texture.h"
|
||||||
|
#include "QF/tga.h"
|
||||||
|
#include "QF/vfs.h"
|
||||||
#include "QF/vid.h"
|
#include "QF/vid.h"
|
||||||
#include "QF/GL/qf_textures.h"
|
#include "QF/GL/qf_textures.h"
|
||||||
|
|
||||||
|
@ -263,3 +266,50 @@ Mod_FinalizeAliasModel (model_t *m, aliashdr_t *hdr)
|
||||||
VectorScale (hdr->mdl.scale, 2, hdr->mdl.scale);
|
VectorScale (hdr->mdl.scale, 2, hdr->mdl.scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Mod_LoadExternalSkin (maliasskindesc_t *pskindesc, char *filename)
|
||||||
|
{
|
||||||
|
VFile *f;
|
||||||
|
tex_t *targa;
|
||||||
|
|
||||||
|
COM_FOpenFile (filename, &f);
|
||||||
|
if (f)
|
||||||
|
{
|
||||||
|
targa = LoadTGA (f);
|
||||||
|
Qclose (f);
|
||||||
|
if (targa->format < 4)
|
||||||
|
pskindesc->texnum = GL_LoadTexture ("", targa->width,
|
||||||
|
targa->height, targa->data, true, false, 3);
|
||||||
|
else
|
||||||
|
pskindesc->texnum = GL_LoadTexture ("", targa->width,
|
||||||
|
targa->height, targa->data, true, true, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Mod_LoadExternalSkins (model_t *mod)
|
||||||
|
{
|
||||||
|
char filename[MAX_QPATH + 4];
|
||||||
|
aliashdr_t *paliashdr;
|
||||||
|
maliasskindesc_t *pskindesc;
|
||||||
|
maliasskingroup_t *pskingroup;
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
paliashdr = Cache_Get (&mod->cache);
|
||||||
|
for (i = 0; i < paliashdr->mdl.numskins; i++) {
|
||||||
|
pskindesc = ((maliasskindesc_t *)
|
||||||
|
((byte *) paliashdr + paliashdr->skindesc)) + i;
|
||||||
|
if (pskindesc->type == ALIAS_SKIN_SINGLE) {
|
||||||
|
snprintf (filename, sizeof (filename), "%s_%i.tga", mod->name, i);
|
||||||
|
Mod_LoadExternalSkin (pskindesc, filename);
|
||||||
|
} else {
|
||||||
|
pskingroup = (maliasskingroup_t *)
|
||||||
|
((byte *) paliashdr + pskindesc->skin);
|
||||||
|
for (j = 0; j < pskingroup->numskins; j++) {
|
||||||
|
snprintf (filename, sizeof (filename), "%s_%i_%i.tga", mod->name, i, j);
|
||||||
|
Mod_LoadExternalSkin (pskingroup->skindescs + j, filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -218,3 +218,9 @@ void
|
||||||
Mod_FinalizeAliasModel (model_t *m, aliashdr_t *hdr)
|
Mod_FinalizeAliasModel (model_t *m, aliashdr_t *hdr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Mod_LoadExternalSkins (model_t *mod)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -217,6 +217,7 @@ Mod_RealLoadModel (model_t *mod, qboolean crash, cache_allocator_t allocator)
|
||||||
case IDPOLYHEADER:
|
case IDPOLYHEADER:
|
||||||
case POLYHEADER16:
|
case POLYHEADER16:
|
||||||
Mod_LoadAliasModel (mod, buf, allocator);
|
Mod_LoadAliasModel (mod, buf, allocator);
|
||||||
|
Mod_LoadExternalSkins (mod);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDSPRITEHEADER:
|
case IDSPRITEHEADER:
|
||||||
|
|
|
@ -67,6 +67,11 @@ Mod_ProcessTexture (miptex_t *mx, texture_t *tx)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Mod_LoadExternalSkins (model_t *mod)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Mod_LoadExternalTextures (model_t *mod)
|
Mod_LoadExternalTextures (model_t *mod)
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,6 +67,11 @@ Mod_ProcessTexture (miptex_t *mx, texture_t *tx)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Mod_LoadExternalSkins (model_t *mod)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Mod_LoadExternalTextures (model_t *mod)
|
Mod_LoadExternalTextures (model_t *mod)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue