Added (hacky) shader support, but mdl should go out anyway

This commit is contained in:
cholleme 2003-02-15 18:02:58 +00:00
parent c4528b5109
commit 10f1a0023e

View file

@ -307,12 +307,17 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
Con_Printf("Loading q3 map\n"); Con_Printf("Loading q3 map\n");
ModQ3_LoadBrushModel(mod, buf); ModQ3_LoadBrushModel(mod, buf);
break; break;
default:
Sys_Error("Unknown model type\n");
break;
}
/*
default: default:
is_q3map = false; is_q3map = false;
Mod_LoadBrushModel (mod, buf); Mod_LoadBrushModel (mod, buf);
break; break;
} }
*/
return mod; return mod;
} }
@ -365,6 +370,7 @@ byte *mod_base;
Mod_LoadTextures Mod_LoadTextures
================= =================
*/ */
/*
void Mod_LoadTextures (lump_t *l) void Mod_LoadTextures (lump_t *l)
{ {
int i, j, pixels, num, max, altmax; int i, j, pixels, num, max, altmax;
@ -516,12 +522,12 @@ void Mod_LoadTextures (lump_t *l)
} }
} }
} }
*/
/* /*
================= =================
Mod_LoadLighting Mod_LoadLighting
================= =================
*/ *//*
void Mod_LoadLighting (lump_t *l) void Mod_LoadLighting (lump_t *l)
{ {
if (!l->filelen) if (!l->filelen)
@ -533,12 +539,12 @@ void Mod_LoadLighting (lump_t *l)
memcpy (loadmodel->lightdata, mod_base + l->fileofs, l->filelen); memcpy (loadmodel->lightdata, mod_base + l->fileofs, l->filelen);
} }
*/
/* /*
================= =================
Mod_LoadVisibility Mod_LoadVisibility
================= =================
*/ *//*
void Mod_LoadVisibility (lump_t *l) void Mod_LoadVisibility (lump_t *l)
{ {
if (!l->filelen) if (!l->filelen)
@ -550,12 +556,12 @@ void Mod_LoadVisibility (lump_t *l)
memcpy (loadmodel->visdata, mod_base + l->fileofs, l->filelen); memcpy (loadmodel->visdata, mod_base + l->fileofs, l->filelen);
} }
*/
/* /*
================= =================
Mod_LoadEntities Mod_LoadEntities
================= =================
*/ *//*
void Mod_LoadEntities (lump_t *l) void Mod_LoadEntities (lump_t *l)
{ {
FILE *f; FILE *f;
@ -580,13 +586,13 @@ void Mod_LoadEntities (lump_t *l)
loadmodel->entities = Hunk_AllocName ( l->filelen, loadname); loadmodel->entities = Hunk_AllocName ( l->filelen, loadname);
memcpy (loadmodel->entities, mod_base + l->fileofs, l->filelen); memcpy (loadmodel->entities, mod_base + l->fileofs, l->filelen);
} }
*/
/* /*
================= =================
Mod_LoadVertexes Mod_LoadVertexes
================= =================
*/ *//*
void Mod_LoadVertexes (lump_t *l) void Mod_LoadVertexes (lump_t *l)
{ {
dvertex_t *in; dvertex_t *in;
@ -609,12 +615,12 @@ void Mod_LoadVertexes (lump_t *l)
out->position[2] = LittleFloat (in->point[2]); out->position[2] = LittleFloat (in->point[2]);
} }
} }
*/
/* /*
================= =================
Mod_LoadSubmodels Mod_LoadSubmodels
================= =================
*/ *//*
void Mod_LoadSubmodels (lump_t *l) void Mod_LoadSubmodels (lump_t *l)
{ {
dmodel_t *in; dmodel_t *in;
@ -645,12 +651,12 @@ void Mod_LoadSubmodels (lump_t *l)
out->numfaces = LittleLong (in->numfaces); out->numfaces = LittleLong (in->numfaces);
} }
} }
*/
/* /*
================= =================
Mod_LoadEdges Mod_LoadEdges
================= =================
*/ *//*
void Mod_LoadEdges (lump_t *l) void Mod_LoadEdges (lump_t *l)
{ {
dedge_t *in; dedge_t *in;
@ -672,12 +678,12 @@ void Mod_LoadEdges (lump_t *l)
out->v[1] = (unsigned short)LittleShort(in->v[1]); out->v[1] = (unsigned short)LittleShort(in->v[1]);
} }
} }
*/
/* /*
================= =================
Mod_LoadTexinfo Mod_LoadTexinfo
================= =================
*/ *//*
void Mod_LoadTexinfo (lump_t *l) void Mod_LoadTexinfo (lump_t *l)
{ {
texinfo_t *in; texinfo_t *in;
@ -738,14 +744,14 @@ void Mod_LoadTexinfo (lump_t *l)
} }
} }
} }
*/
/* /*
================ ================
CalcSurfaceExtents CalcSurfaceExtents
Fills in s->texturemins[] and s->extents[] Fills in s->texturemins[] and s->extents[]
================ ================
*/ *//*
void CalcSurfaceExtents (msurface_t *s) void CalcSurfaceExtents (msurface_t *s)
{ {
float mins[2], maxs[2], val; float mins[2], maxs[2], val;
@ -787,17 +793,17 @@ void CalcSurfaceExtents (msurface_t *s)
s->texturemins[i] = bmins[i] * 16; s->texturemins[i] = bmins[i] * 16;
s->extents[i] = (bmaxs[i] - bmins[i]) * 16; s->extents[i] = (bmaxs[i] - bmins[i]) * 16;
if ( !(tex->flags & TEX_SPECIAL) && s->extents[i] > 512 /* 256 */ ) if ( !(tex->flags & TEX_SPECIAL) && s->extents[i] > 512 )
Sys_Error ("Bad surface extents"); Sys_Error ("Bad surface extents");
} }
} }
*/
/* /*
================= =================
Mod_LoadFaces Mod_LoadFaces
================= =================
*/ *//*
void Mod_LoadFaces (lump_t *l) void Mod_LoadFaces (lump_t *l)
{ {
dface_t *in; dface_t *in;
@ -897,13 +903,13 @@ void Mod_LoadFaces (lump_t *l)
} }
} }
*/
/* /*
================= =================
Mod_SetParent Mod_SetParent
================= =================
*/ *//*
void Mod_SetParent (mnode_t *node, mnode_t *parent) void Mod_SetParent (mnode_t *node, mnode_t *parent)
{ {
node->parent = parent; node->parent = parent;
@ -912,12 +918,12 @@ void Mod_SetParent (mnode_t *node, mnode_t *parent)
Mod_SetParent (node->children[0], node); Mod_SetParent (node->children[0], node);
Mod_SetParent (node->children[1], node); Mod_SetParent (node->children[1], node);
} }
*/
/* /*
================= =================
Mod_LoadNodes Mod_LoadNodes
================= =================
*/ *//*
void Mod_LoadNodes (lump_t *l) void Mod_LoadNodes (lump_t *l)
{ {
int i, j, count, p; int i, j, count, p;
@ -959,12 +965,12 @@ void Mod_LoadNodes (lump_t *l)
Mod_SetParent (loadmodel->nodes, NULL); // sets nodes and leafs Mod_SetParent (loadmodel->nodes, NULL); // sets nodes and leafs
} }
*/
/* /*
================= =================
Mod_LoadLeafs Mod_LoadLeafs
================= =================
*/ *//*
void Mod_LoadLeafs (lump_t *l) void Mod_LoadLeafs (lump_t *l)
{ {
dleaf_t *in; dleaf_t *in;
@ -1052,12 +1058,12 @@ void Mod_LoadLeafs (lump_t *l)
out->index = i; out->index = i;
} }
} }
*/
/* /*
================= =================
Mod_LoadClipnodes Mod_LoadClipnodes
================= =================
*/ *//*
void Mod_LoadClipnodes (lump_t *l) void Mod_LoadClipnodes (lump_t *l)
{ {
dclipnode_t *in, *out; dclipnode_t *in, *out;
@ -1104,14 +1110,14 @@ void Mod_LoadClipnodes (lump_t *l)
out->children[1] = LittleShort(in->children[1]); out->children[1] = LittleShort(in->children[1]);
} }
} }
*/
/* /*
================= =================
Mod_MakeHull0 Mod_MakeHull0
Deplicate the drawing hull structure as a clipping hull Deplicate the drawing hull structure as a clipping hull
================= =================
*/ *//*
void Mod_MakeHull0 (void) void Mod_MakeHull0 (void)
{ {
mnode_t *in, *child; mnode_t *in, *child;
@ -1143,12 +1149,12 @@ void Mod_MakeHull0 (void)
} }
} }
} }
*/
/* /*
================= =================
Mod_LoadMarksurfaces Mod_LoadMarksurfaces
================= =================
*/ *//*
void Mod_LoadMarksurfaces (lump_t *l) void Mod_LoadMarksurfaces (lump_t *l)
{ {
int i, j, count; int i, j, count;
@ -1172,12 +1178,12 @@ void Mod_LoadMarksurfaces (lump_t *l)
out[i] = loadmodel->surfaces + j; out[i] = loadmodel->surfaces + j;
} }
} }
*/
/* /*
================= =================
Mod_LoadSurfedges Mod_LoadSurfedges
================= =================
*/ *//*
void Mod_LoadSurfedges (lump_t *l) void Mod_LoadSurfedges (lump_t *l)
{ {
int i, count; int i, count;
@ -1195,13 +1201,13 @@ void Mod_LoadSurfedges (lump_t *l)
for ( i=0 ; i<count ; i++) for ( i=0 ; i<count ; i++)
out[i] = LittleLong (in[i]); out[i] = LittleLong (in[i]);
} }
*/
/* /*
================= =================
Mod_LoadPlanes Mod_LoadPlanes
================= =================
*/ *//*
void Mod_LoadPlanes (lump_t *l) void Mod_LoadPlanes (lump_t *l)
{ {
int i, j; int i, j;
@ -1234,7 +1240,7 @@ void Mod_LoadPlanes (lump_t *l)
out->signbits = bits; out->signbits = bits;
} }
} }
*/
/* /*
================= =================
RadiusFromBounds RadiusFromBounds
@ -1257,7 +1263,7 @@ float RadiusFromBounds (vec3_t mins, vec3_t maxs)
================= =================
Mod_LoadBrushModel Mod_LoadBrushModel
================= =================
*/ *//*
void Mod_LoadBrushModel (model_t *mod, void *buffer) void Mod_LoadBrushModel (model_t *mod, void *buffer)
{ {
int i, j; int i, j;
@ -1336,7 +1342,7 @@ void Mod_LoadBrushModel (model_t *mod, void *buffer)
} }
} }
} }
*/
/* /*
============================================================================== ==============================================================================
@ -1548,7 +1554,7 @@ void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype)
Sys_Error ("Mod_LoadAliasModel: Invalid # of skins: %d\n", numskins); Sys_Error ("Mod_LoadAliasModel: Invalid # of skins: %d\n", numskins);
s = pheader->skinwidth * pheader->skinheight; s = pheader->skinwidth * pheader->skinheight;
for (i=0 ; i<numskins ; i++) for (i=0 ; i<numskins ; i++)
{ {
if (pskintype->type == ALIAS_SKIN_SINGLE) { if (pskintype->type == ALIAS_SKIN_SINGLE) {
@ -1560,6 +1566,7 @@ void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype)
pheader->texels[i] = texels - (byte *)pheader; pheader->texels[i] = texels - (byte *)pheader;
memcpy (texels, (byte *)(pskintype + 1), s); memcpy (texels, (byte *)(pskintype + 1), s);
// } // }
/*
sprintf (name, "%s_%i", loadmodel->name, i); sprintf (name, "%s_%i", loadmodel->name, i);
pheader->gl_texturenum[i][0] = pheader->gl_texturenum[i][0] =
pheader->gl_texturenum[i][1] = pheader->gl_texturenum[i][1] =
@ -1572,7 +1579,7 @@ void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype)
pheader->gl_lumatex[i][2] = pheader->gl_lumatex[i][2] =
pheader->gl_lumatex[i][3] = pheader->gl_lumatex[i][3] =
GL_LoadLuma (name, true); GL_LoadLuma (name, true);
*/
pskintype = (daliasskintype_t *)((byte *)(pskintype+1) + s); pskintype = (daliasskintype_t *)((byte *)(pskintype+1) + s);
} else { } else {
// animating skin group. yuck. // animating skin group. yuck.
@ -1591,21 +1598,23 @@ void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype)
pheader->texels[i] = texels - (byte *)pheader; pheader->texels[i] = texels - (byte *)pheader;
memcpy (texels, (byte *)(pskintype), s); memcpy (texels, (byte *)(pskintype), s);
} }
/*
sprintf (name, "%s_%i_%i", loadmodel->name, i,j); sprintf (name, "%s_%i_%i", loadmodel->name, i,j);
pheader->gl_texturenum[i][j&3] = pheader->gl_texturenum[i][j&3] =
GL_LoadTexture (name, pheader->skinwidth, GL_LoadTexture (name, pheader->skinwidth,
pheader->skinheight, (byte *)(pskintype), true, false, true); pheader->skinheight, (byte *)(pskintype), true, false, true);
pheader->gl_lumatex[i][j&3] = GL_LoadLuma(name, true); pheader->gl_lumatex[i][j&3] = GL_LoadLuma(name, true);
*/
pskintype = (daliasskintype_t *)((byte *)(pskintype) + s); pskintype = (daliasskintype_t *)((byte *)(pskintype) + s);
} }
k = j; k = j;
for (/* */; j < 4; j++) //for (; j < 4; j++)
pheader->gl_texturenum[i][j&3] = //pheader->gl_texturenum[i][j&3] =
pheader->gl_texturenum[i][j - k]; // pheader->gl_texturenum[i][j - k];
} }
} }
return (void *)pskintype; return (void *)pskintype;
} }
@ -1628,6 +1637,7 @@ void Mod_LoadAliasModel (model_t *mod, void *buffer)
daliasskintype_t *pskintype; daliasskintype_t *pskintype;
int start, end, total; int start, end, total;
alias3data_t *palias3; alias3data_t *palias3;
char shadername[128];
start = Hunk_LowMark (); start = Hunk_LowMark ();
@ -1705,6 +1715,10 @@ void Mod_LoadAliasModel (model_t *mod, void *buffer)
pskintype = (daliasskintype_t *)&pinmodel[1]; pskintype = (daliasskintype_t *)&pinmodel[1];
pskintype = Mod_LoadAllSkins (pheader->numskins, pskintype); pskintype = Mod_LoadAllSkins (pheader->numskins, pskintype);
//load a hard coded skin
sprintf(shadername,"textures/skins/%s",loadname);
pheader->shader = GL_ShaderForName(shadername);
// //
// load base s and t vertices // load base s and t vertices
// //