mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-07 08:21:55 +00:00
renders: check min/max on nodes load
This commit is contained in:
parent
50a0609af8
commit
1fdb0f81e6
7 changed files with 45 additions and 16 deletions
|
@ -80,8 +80,8 @@ Mod_NumberLeafs(mleaf_t *leafs, mnode_t *node, int *r_leaftovis, int *r_vistolea
|
|||
|
||||
static void
|
||||
Mod_LoadQNodes(const char *name, cplane_t *planes, int numplanes, mleaf_t *leafs,
|
||||
int numleafs, mnode_t **nodes, int *numnodes, const byte *mod_base,
|
||||
const lump_t *l)
|
||||
int numleafs, mnode_t **nodes, int *numnodes, vec3_t mins, vec3_t maxs,
|
||||
const byte *mod_base, const lump_t *l)
|
||||
{
|
||||
dqnode_t *in;
|
||||
mnode_t *out;
|
||||
|
@ -101,6 +101,24 @@ Mod_LoadQNodes(const char *name, cplane_t *planes, int numplanes, mleaf_t *leafs
|
|||
*nodes = out;
|
||||
*numnodes = count;
|
||||
|
||||
/* Set initial min/max */
|
||||
if (count)
|
||||
{
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
mins[i] = in->mins[i];
|
||||
maxs[i] = in->maxs[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
mins[i] = 0;
|
||||
maxs[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < count; i++, in++, out++)
|
||||
{
|
||||
int j, planenum;
|
||||
|
@ -109,6 +127,17 @@ Mod_LoadQNodes(const char *name, cplane_t *planes, int numplanes, mleaf_t *leafs
|
|||
{
|
||||
out->minmaxs[j] = in->mins[j];
|
||||
out->minmaxs[3 + j] = in->maxs[j];
|
||||
|
||||
/* update min/max */
|
||||
if (mins[j] > in->mins[j])
|
||||
{
|
||||
mins[j] = in->mins[j];
|
||||
}
|
||||
|
||||
if (maxs[j] < in->maxs[j])
|
||||
{
|
||||
maxs[j] = in->maxs[j];
|
||||
}
|
||||
}
|
||||
|
||||
planenum = LittleLong(in->planenum) & 0xFFFFFFFF;
|
||||
|
@ -156,8 +185,8 @@ Mod_LoadQNodes(const char *name, cplane_t *planes, int numplanes, mleaf_t *leafs
|
|||
|
||||
void
|
||||
Mod_LoadQBSPNodes(const char *name, cplane_t *planes, int numplanes, mleaf_t *leafs,
|
||||
int numleafs, mnode_t **nodes, int *numnodes, const byte *mod_base,
|
||||
const lump_t *l, int ident)
|
||||
int numleafs, mnode_t **nodes, int *numnodes, vec3_t mins, vec3_t maxs,
|
||||
const byte *mod_base, const lump_t *l, int ident)
|
||||
{
|
||||
int *r_leaftovis, *r_vistoleaf;
|
||||
int numvisleafs;
|
||||
|
@ -172,7 +201,7 @@ Mod_LoadQBSPNodes(const char *name, cplane_t *planes, int numplanes, mleaf_t *le
|
|||
}
|
||||
|
||||
Mod_LoadQNodes(name, planes, numplanes, leafs, numleafs, nodes, numnodes,
|
||||
mod_base, l);
|
||||
mins, maxs, mod_base, l);
|
||||
|
||||
Mod_SetParent(*nodes, NULL); /* sets nodes and leafs */
|
||||
|
||||
|
|
|
@ -386,8 +386,8 @@ Mod_LoadBrushModel(model_t *mod, const void *buffer, int modfilelen)
|
|||
mod->marksurfaces, mod->nummarksurfaces, &mod->numclusters,
|
||||
mod_base, &header->lumps[LUMP_LEAFS]);
|
||||
Mod_LoadQBSPNodes(mod->name, mod->planes, mod->numplanes, mod->leafs,
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod_base,
|
||||
&header->lumps[LUMP_NODES], header->ident);
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod->mins, mod->maxs,
|
||||
mod_base, &header->lumps[LUMP_NODES], header->ident);
|
||||
Mod_LoadSubmodels(mod, mod_base, &header->lumps[LUMP_MODELS]);
|
||||
mod->numframes = 2; /* regular and alternate animation */
|
||||
|
||||
|
|
|
@ -387,8 +387,8 @@ Mod_LoadBrushModel(gl3model_t *mod, const void *buffer, int modfilelen)
|
|||
mod->marksurfaces, mod->nummarksurfaces, &mod->numclusters,
|
||||
mod_base, &header->lumps[LUMP_LEAFS]);
|
||||
Mod_LoadQBSPNodes(mod->name, mod->planes, mod->numplanes, mod->leafs,
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod_base,
|
||||
&header->lumps[LUMP_NODES], header->ident);
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod->mins, mod->maxs,
|
||||
mod_base, &header->lumps[LUMP_NODES], header->ident);
|
||||
Mod_LoadSubmodels(mod, mod_base, &header->lumps[LUMP_MODELS]);
|
||||
mod->numframes = 2; /* regular and alternate animation */
|
||||
|
||||
|
|
|
@ -387,8 +387,8 @@ Mod_LoadBrushModel(gl4model_t *mod, const void *buffer, int modfilelen)
|
|||
mod->marksurfaces, mod->nummarksurfaces, &mod->numclusters,
|
||||
mod_base, &header->lumps[LUMP_LEAFS]);
|
||||
Mod_LoadQBSPNodes(mod->name, mod->planes, mod->numplanes, mod->leafs,
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod_base,
|
||||
&header->lumps[LUMP_NODES], header->ident);
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod->mins, mod->maxs,
|
||||
mod_base, &header->lumps[LUMP_NODES], header->ident);
|
||||
Mod_LoadSubmodels(mod, mod_base, &header->lumps[LUMP_MODELS]);
|
||||
mod->numframes = 2; /* regular and alternate animation */
|
||||
|
||||
|
|
|
@ -332,7 +332,7 @@ extern void Mod_LoadQBSPMarksurfaces(const char *name, msurface_t ***marksurface
|
|||
unsigned int *nummarksurfaces, msurface_t *surfaces, int numsurfaces,
|
||||
const byte *mod_base, const lump_t *lMod_LoadQBSPMarksurfaces);
|
||||
extern void Mod_LoadQBSPNodes(const char *name, cplane_t *planes, int numplanes,
|
||||
mleaf_t *leafs, int numleafs, mnode_t **nodes, int *numnodes,
|
||||
mleaf_t *leafs, int numleafs, mnode_t **nodes, int *numnodes, vec3_t mins, vec3_t maxs,
|
||||
const byte *mod_base, const lump_t *l, int ident);
|
||||
extern void Mod_LoadQBSPLeafs(const char *name, mleaf_t **leafs, int *numleafs,
|
||||
msurface_t **marksurfaces, unsigned int nummarksurfaces,
|
||||
|
|
|
@ -392,8 +392,8 @@ Mod_LoadBrushModel(model_t *mod, const void *buffer, int modfilelen)
|
|||
mod->marksurfaces, mod->nummarksurfaces, &mod->numclusters,
|
||||
mod_base, &header->lumps[LUMP_LEAFS]);
|
||||
Mod_LoadQBSPNodes(mod->name, mod->planes, mod->numplanes, mod->leafs,
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod_base,
|
||||
&header->lumps[LUMP_NODES], header->ident);
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod->mins, mod->maxs,
|
||||
mod_base, &header->lumps[LUMP_NODES], header->ident);
|
||||
Mod_LoadSubmodels(mod, mod_base, &header->lumps[LUMP_MODELS]);
|
||||
mod->numframes = 2; /* regular and alternate animation */
|
||||
|
||||
|
|
|
@ -361,8 +361,8 @@ Mod_LoadBrushModel(model_t *mod, const void *buffer, int modfilelen)
|
|||
mod->marksurfaces, mod->nummarksurfaces, &mod->numclusters,
|
||||
mod_base, &header->lumps[LUMP_LEAFS]);
|
||||
Mod_LoadQBSPNodes(mod->name, mod->planes, mod->numplanes, mod->leafs,
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod_base,
|
||||
&header->lumps[LUMP_NODES], header->ident);
|
||||
mod->numleafs, &mod->nodes, &mod->numnodes, mod->mins, mod->maxs,
|
||||
mod_base, &header->lumps[LUMP_NODES], header->ident);
|
||||
Mod_LoadSubmodels(mod, mod_base, &header->lumps[LUMP_MODELS]);
|
||||
mod->numframes = 2; /* regular and alternate animation */
|
||||
|
||||
|
|
Loading…
Reference in a new issue