mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-27 06:00:51 +00:00
[util] Make bsp_t counts size_t
and other bsp data counts unsigned, and clean up the resulting mess.
This commit is contained in:
parent
40367e5bca
commit
674ffa0941
26 changed files with 288 additions and 323 deletions
|
@ -52,8 +52,8 @@
|
||||||
#define TOOLVERSION 2
|
#define TOOLVERSION 2
|
||||||
|
|
||||||
typedef struct lump_s {
|
typedef struct lump_s {
|
||||||
int32_t fileofs;
|
uint32_t fileofs;
|
||||||
int32_t filelen;
|
uint32_t filelen;
|
||||||
} lump_t;
|
} lump_t;
|
||||||
|
|
||||||
#define LUMP_ENTITIES 0
|
#define LUMP_ENTITIES 0
|
||||||
|
@ -76,19 +76,19 @@ typedef struct lump_s {
|
||||||
typedef struct dmodel_s {
|
typedef struct dmodel_s {
|
||||||
float mins[3], maxs[3];
|
float mins[3], maxs[3];
|
||||||
float origin[3];
|
float origin[3];
|
||||||
int32_t headnode[MAX_MAP_HULLS];
|
uint32_t headnode[MAX_MAP_HULLS];
|
||||||
int32_t visleafs; // not including the solid leaf 0
|
uint32_t visleafs; // not including the solid leaf 0
|
||||||
int32_t firstface, numfaces;
|
uint32_t firstface, numfaces;
|
||||||
} dmodel_t;
|
} dmodel_t;
|
||||||
|
|
||||||
typedef struct dheader_s {
|
typedef struct dheader_s {
|
||||||
int32_t version;
|
uint32_t version;
|
||||||
lump_t lumps[HEADER_LUMPS];
|
lump_t lumps[HEADER_LUMPS];
|
||||||
} dheader_t;
|
} dheader_t;
|
||||||
|
|
||||||
typedef struct dmiptexlump_s {
|
typedef struct dmiptexlump_s {
|
||||||
int32_t nummiptex;
|
uint32_t nummiptex;
|
||||||
int32_t dataofs[4]; // [nummiptex]
|
uint32_t dataofs[4]; // [nummiptex]
|
||||||
} dmiptexlump_t;
|
} dmiptexlump_t;
|
||||||
|
|
||||||
#define MIPTEXNAME 16
|
#define MIPTEXNAME 16
|
||||||
|
@ -138,7 +138,7 @@ typedef struct dplane_s {
|
||||||
|
|
||||||
//BSP2 version (bsp 29 version is in bspfile.c)
|
//BSP2 version (bsp 29 version is in bspfile.c)
|
||||||
typedef struct dnode_s {
|
typedef struct dnode_s {
|
||||||
int32_t planenum;
|
uint32_t planenum;
|
||||||
int32_t children[2]; // negative numbers are -(leafs+1), not nodes
|
int32_t children[2]; // negative numbers are -(leafs+1), not nodes
|
||||||
float mins[3]; // for sphere culling
|
float mins[3]; // for sphere culling
|
||||||
float maxs[3];
|
float maxs[3];
|
||||||
|
@ -148,15 +148,15 @@ typedef struct dnode_s {
|
||||||
|
|
||||||
//BSP2 version (bsp 29 version is in bspfile.c)
|
//BSP2 version (bsp 29 version is in bspfile.c)
|
||||||
typedef struct dclipnode_s {
|
typedef struct dclipnode_s {
|
||||||
int32_t planenum;
|
uint32_t planenum;
|
||||||
int32_t children[2]; // negative numbers are contents
|
int32_t children[2]; // negative numbers are contents
|
||||||
} dclipnode_t;
|
} dclipnode_t;
|
||||||
|
|
||||||
|
|
||||||
typedef struct texinfo_s {
|
typedef struct texinfo_s {
|
||||||
float vecs[2][4]; // [s/t][xyz offset]
|
float vecs[2][4]; // [s/t][xyz offset]
|
||||||
int32_t miptex;
|
uint32_t miptex;
|
||||||
int32_t flags;
|
uint32_t flags;
|
||||||
} texinfo_t;
|
} texinfo_t;
|
||||||
#define TEX_SPECIAL 1 // sky or slime, no lightmap or 256 subdivision
|
#define TEX_SPECIAL 1 // sky or slime, no lightmap or 256 subdivision
|
||||||
#define TEX_MISSING 2 // this texinfo does not have a texture
|
#define TEX_MISSING 2 // this texinfo does not have a texture
|
||||||
|
@ -171,16 +171,16 @@ typedef struct dedge_s {
|
||||||
#define MAXLIGHTMAPS 4
|
#define MAXLIGHTMAPS 4
|
||||||
//BSP2 version (bsp 29 version is in bspfile.c)
|
//BSP2 version (bsp 29 version is in bspfile.c)
|
||||||
typedef struct dface_s {
|
typedef struct dface_s {
|
||||||
int32_t planenum;
|
uint32_t planenum;
|
||||||
int32_t side;
|
int32_t side;
|
||||||
|
|
||||||
int32_t firstedge; // we must support > 64k edges
|
uint32_t firstedge; // we must support > 64k edges
|
||||||
int32_t numedges;
|
uint32_t numedges;
|
||||||
int32_t texinfo;
|
uint32_t texinfo;
|
||||||
|
|
||||||
// lighting info
|
// lighting info
|
||||||
byte styles[MAXLIGHTMAPS];
|
byte styles[MAXLIGHTMAPS];
|
||||||
int32_t lightofs; // start of [numstyles*surfsize] samples
|
uint32_t lightofs; // start of [numstyles*surfsize] samples
|
||||||
} dface_t;
|
} dface_t;
|
||||||
|
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ typedef struct bsp_s {
|
||||||
dheader_t *header;
|
dheader_t *header;
|
||||||
|
|
||||||
int own_models;
|
int own_models;
|
||||||
int nummodels;
|
size_t nummodels;
|
||||||
dmodel_t *models;
|
dmodel_t *models;
|
||||||
|
|
||||||
int own_visdata;
|
int own_visdata;
|
||||||
|
@ -234,43 +234,43 @@ typedef struct bsp_s {
|
||||||
char *entdata;
|
char *entdata;
|
||||||
|
|
||||||
int own_leafs;
|
int own_leafs;
|
||||||
int numleafs;
|
size_t numleafs;
|
||||||
dleaf_t *leafs;
|
dleaf_t *leafs;
|
||||||
|
|
||||||
int own_planes;
|
int own_planes;
|
||||||
int numplanes;
|
size_t numplanes;
|
||||||
dplane_t *planes;
|
dplane_t *planes;
|
||||||
|
|
||||||
int own_vertexes;
|
int own_vertexes;
|
||||||
int numvertexes;
|
size_t numvertexes;
|
||||||
dvertex_t *vertexes;
|
dvertex_t *vertexes;
|
||||||
|
|
||||||
int own_nodes;
|
int own_nodes;
|
||||||
int numnodes;
|
size_t numnodes;
|
||||||
dnode_t *nodes;
|
dnode_t *nodes;
|
||||||
|
|
||||||
int own_texinfo;
|
int own_texinfo;
|
||||||
int numtexinfo;
|
size_t numtexinfo;
|
||||||
texinfo_t *texinfo;
|
texinfo_t *texinfo;
|
||||||
|
|
||||||
int own_faces;
|
int own_faces;
|
||||||
int numfaces;
|
size_t numfaces;
|
||||||
dface_t *faces;
|
dface_t *faces;
|
||||||
|
|
||||||
int own_clipnodes;
|
int own_clipnodes;
|
||||||
int numclipnodes;
|
size_t numclipnodes;
|
||||||
dclipnode_t *clipnodes;
|
dclipnode_t *clipnodes;
|
||||||
|
|
||||||
int own_edges;
|
int own_edges;
|
||||||
int numedges;
|
size_t numedges;
|
||||||
dedge_t *edges;
|
dedge_t *edges;
|
||||||
|
|
||||||
int own_marksurfaces;
|
int own_marksurfaces;
|
||||||
int nummarksurfaces;
|
size_t nummarksurfaces;
|
||||||
uint32_t *marksurfaces;
|
uint32_t *marksurfaces;
|
||||||
|
|
||||||
int own_surfedges;
|
int own_surfedges;
|
||||||
int numsurfedges;
|
size_t numsurfedges;
|
||||||
int32_t *surfedges;
|
int32_t *surfedges;
|
||||||
} bsp_t;
|
} bsp_t;
|
||||||
|
|
||||||
|
|
|
@ -206,7 +206,7 @@ typedef struct mleaf_s {
|
||||||
} mleaf_t;
|
} mleaf_t;
|
||||||
|
|
||||||
typedef struct mclipnode_s {
|
typedef struct mclipnode_s {
|
||||||
int planenum;
|
unsigned planenum;
|
||||||
int children[2];
|
int children[2];
|
||||||
} mclipnode_t;
|
} mclipnode_t;
|
||||||
|
|
||||||
|
@ -222,47 +222,47 @@ typedef struct hull_s {
|
||||||
} hull_t;
|
} hull_t;
|
||||||
|
|
||||||
typedef struct mod_brush_s {
|
typedef struct mod_brush_s {
|
||||||
int firstmodelsurface, nummodelsurfaces;
|
unsigned firstmodelsurface, nummodelsurfaces;
|
||||||
|
|
||||||
int numsubmodels;
|
unsigned numsubmodels;
|
||||||
dmodel_t *submodels;
|
dmodel_t *submodels;
|
||||||
|
|
||||||
int numplanes;
|
unsigned numplanes;
|
||||||
plane_t *planes;
|
plane_t *planes;
|
||||||
|
|
||||||
unsigned modleafs; ///< number of leafs in model, including 0
|
unsigned modleafs; ///< number of leafs in model, including 0
|
||||||
unsigned visleafs; ///< number of visible leafs, not counting 0
|
unsigned visleafs; ///< number of visible leafs, not counting 0
|
||||||
mleaf_t *leafs;
|
mleaf_t *leafs;
|
||||||
|
|
||||||
int numvertexes;
|
unsigned numvertexes;
|
||||||
mvertex_t *vertexes;
|
mvertex_t *vertexes;
|
||||||
|
|
||||||
int numedges;
|
unsigned numedges;
|
||||||
medge_t *edges;
|
medge_t *edges;
|
||||||
|
|
||||||
int numnodes;
|
unsigned numnodes;
|
||||||
mnode_t *nodes;
|
mnode_t *nodes;
|
||||||
int depth; ///< maximum depth of the tree
|
int depth; ///< maximum depth of the tree
|
||||||
|
|
||||||
int numtexinfo;
|
unsigned numtexinfo;
|
||||||
mtexinfo_t *texinfo;
|
mtexinfo_t *texinfo;
|
||||||
|
|
||||||
int numsurfaces;
|
unsigned numsurfaces;
|
||||||
msurface_t *surfaces;
|
msurface_t *surfaces;
|
||||||
|
|
||||||
int numsurfedges;
|
unsigned numsurfedges;
|
||||||
int *surfedges;
|
int *surfedges;
|
||||||
|
|
||||||
int numclipnodes;
|
unsigned numclipnodes;
|
||||||
mclipnode_t *clipnodes;
|
mclipnode_t *clipnodes;
|
||||||
|
|
||||||
int nummarksurfaces;
|
unsigned nummarksurfaces;
|
||||||
msurface_t **marksurfaces;
|
msurface_t **marksurfaces;
|
||||||
|
|
||||||
hull_t hulls[MAX_MAP_HULLS];
|
hull_t hulls[MAX_MAP_HULLS];
|
||||||
hull_t *hull_list[MAX_MAP_HULLS];
|
hull_t *hull_list[MAX_MAP_HULLS];
|
||||||
|
|
||||||
int numtextures;
|
unsigned numtextures;
|
||||||
texture_t **textures;
|
texture_t **textures;
|
||||||
texture_t *skytexture;
|
texture_t *skytexture;
|
||||||
|
|
||||||
|
|
|
@ -65,11 +65,10 @@ static glsltex_t glsl_notexture = { };
|
||||||
static void
|
static void
|
||||||
glsl_brush_clear (model_t *m, void *data)
|
glsl_brush_clear (model_t *m, void *data)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
mod_brush_t *brush = &m->brush;
|
mod_brush_t *brush = &m->brush;
|
||||||
|
|
||||||
m->needload = true;
|
m->needload = true;
|
||||||
for (i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
// NOTE: some maps (eg e1m2) have empty texture slots
|
// NOTE: some maps (eg e1m2) have empty texture slots
|
||||||
glsltex_t *tex = 0;
|
glsltex_t *tex = 0;
|
||||||
if (brush->textures[i]) {
|
if (brush->textures[i]) {
|
||||||
|
@ -82,7 +81,7 @@ glsl_brush_clear (model_t *m, void *data)
|
||||||
tex->gl_texturenum = 0;
|
tex->gl_texturenum = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 0; i < brush->numsurfaces; i++) {
|
for (unsigned i = 0; i < brush->numsurfaces; i++) {
|
||||||
if (brush->surfaces[i].polys) {
|
if (brush->surfaces[i].polys) {
|
||||||
free (brush->surfaces[i].polys);
|
free (brush->surfaces[i].polys);
|
||||||
brush->surfaces[i].polys = 0;
|
brush->surfaces[i].polys = 0;
|
||||||
|
|
|
@ -247,7 +247,7 @@ static void
|
||||||
Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
{
|
{
|
||||||
dmiptexlump_t *m;
|
dmiptexlump_t *m;
|
||||||
int i, j, pixels, num, max, altmax;
|
int pixels, num, max, altmax;
|
||||||
miptex_t *mt;
|
miptex_t *mt;
|
||||||
texture_t *tx, *tx2;
|
texture_t *tx, *tx2;
|
||||||
texture_t *anims[10], *altanims[10];
|
texture_t *anims[10], *altanims[10];
|
||||||
|
@ -264,13 +264,13 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
m->nummiptex * sizeof (*brush->textures),
|
m->nummiptex * sizeof (*brush->textures),
|
||||||
mod->name);
|
mod->name);
|
||||||
|
|
||||||
for (i = 0; i < m->nummiptex; i++) {
|
for (uint32_t i = 0; i < m->nummiptex; i++) {
|
||||||
if (m->dataofs[i] == -1)
|
if (m->dataofs[i] == ~0u)
|
||||||
continue;
|
continue;
|
||||||
mt = (miptex_t *) ((byte *) m + m->dataofs[i]);
|
mt = (miptex_t *) ((byte *) m + m->dataofs[i]);
|
||||||
mt->width = LittleLong (mt->width);
|
mt->width = LittleLong (mt->width);
|
||||||
mt->height = LittleLong (mt->height);
|
mt->height = LittleLong (mt->height);
|
||||||
for (j = 0; j < MIPLEVELS; j++)
|
for (int j = 0; j < MIPLEVELS; j++)
|
||||||
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
||||||
|
|
||||||
if ((mt->width & 15) || (mt->height & 15))
|
if ((mt->width & 15) || (mt->height & 15))
|
||||||
|
@ -284,7 +284,7 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
mod_unique_miptex_name (brush->textures, tx, i);
|
mod_unique_miptex_name (brush->textures, tx, i);
|
||||||
tx->width = mt->width;
|
tx->width = mt->width;
|
||||||
tx->height = mt->height;
|
tx->height = mt->height;
|
||||||
for (j = 0; j < MIPLEVELS; j++)
|
for (int j = 0; j < MIPLEVELS; j++)
|
||||||
tx->offsets[j] =
|
tx->offsets[j] =
|
||||||
mt->offsets[j] + sizeof (texture_t) - sizeof (miptex_t);
|
mt->offsets[j] + sizeof (texture_t) - sizeof (miptex_t);
|
||||||
// the pixels immediately follow the structures
|
// the pixels immediately follow the structures
|
||||||
|
@ -300,7 +300,7 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
render_data = Hunk_AllocName (0, m->nummiptex * render_size,
|
render_data = Hunk_AllocName (0, m->nummiptex * render_size,
|
||||||
mod->name);
|
mod->name);
|
||||||
}
|
}
|
||||||
for (i = 0; i < m->nummiptex; i++) {
|
for (uint32_t i = 0; i < m->nummiptex; i++) {
|
||||||
if (!(tx = brush->textures[i])) {
|
if (!(tx = brush->textures[i])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -313,7 +313,7 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
}
|
}
|
||||||
|
|
||||||
// sequence the animations
|
// sequence the animations
|
||||||
for (i = 0; i < m->nummiptex; i++) {
|
for (uint32_t i = 0; i < m->nummiptex; i++) {
|
||||||
tx = brush->textures[i];
|
tx = brush->textures[i];
|
||||||
if (!tx || tx->name[0] != '+')
|
if (!tx || tx->name[0] != '+')
|
||||||
continue;
|
continue;
|
||||||
|
@ -340,7 +340,7 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
} else
|
} else
|
||||||
Sys_Error ("Bad animating texture %s", tx->name);
|
Sys_Error ("Bad animating texture %s", tx->name);
|
||||||
|
|
||||||
for (j = i + 1; j < m->nummiptex; j++) {
|
for (uint32_t j = i + 1; j < m->nummiptex; j++) {
|
||||||
tx2 = brush->textures[j];
|
tx2 = brush->textures[j];
|
||||||
if (!tx2 || tx2->name[0] != '+')
|
if (!tx2 || tx2->name[0] != '+')
|
||||||
continue;
|
continue;
|
||||||
|
@ -366,7 +366,7 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
|
|
||||||
#define ANIM_CYCLE 2
|
#define ANIM_CYCLE 2
|
||||||
// link them all together
|
// link them all together
|
||||||
for (j = 0; j < max; j++) {
|
for (int j = 0; j < max; j++) {
|
||||||
tx2 = anims[j];
|
tx2 = anims[j];
|
||||||
if (!tx2)
|
if (!tx2)
|
||||||
Sys_Error ("Missing frame %i of %s", j, tx->name);
|
Sys_Error ("Missing frame %i of %s", j, tx->name);
|
||||||
|
@ -377,7 +377,7 @@ Mod_LoadTextures (model_t *mod, bsp_t *bsp)
|
||||||
if (altmax)
|
if (altmax)
|
||||||
tx2->alternate_anims = altanims[0];
|
tx2->alternate_anims = altanims[0];
|
||||||
}
|
}
|
||||||
for (j = 0; j < altmax; j++) {
|
for (int j = 0; j < altmax; j++) {
|
||||||
tx2 = altanims[j];
|
tx2 = altanims[j];
|
||||||
if (!tx2)
|
if (!tx2)
|
||||||
Sys_Error ("Missing frame %i of %s", j, tx->name);
|
Sys_Error ("Missing frame %i of %s", j, tx->name);
|
||||||
|
@ -490,7 +490,7 @@ static void
|
||||||
Mod_LoadTexinfo (model_t *mod, bsp_t *bsp)
|
Mod_LoadTexinfo (model_t *mod, bsp_t *bsp)
|
||||||
{
|
{
|
||||||
float len1, len2;
|
float len1, len2;
|
||||||
int count, miptex, i, j;
|
unsigned count, miptex, i, j;
|
||||||
mtexinfo_t *out;
|
mtexinfo_t *out;
|
||||||
texinfo_t *in;
|
texinfo_t *in;
|
||||||
|
|
||||||
|
@ -853,7 +853,7 @@ Mod_LoadClipnodes (model_t *mod, bsp_t *bsp)
|
||||||
|
|
||||||
for (i = 0; i < count; i++, out++, in++) {
|
for (i = 0; i < count; i++, out++, in++) {
|
||||||
out->planenum = in->planenum;
|
out->planenum = in->planenum;
|
||||||
if (out->planenum < 0 || out->planenum >= brush->numplanes)
|
if (out->planenum >= brush->numplanes)
|
||||||
Sys_Error ("Mod_LoadClipnodes: planenum out of bounds");
|
Sys_Error ("Mod_LoadClipnodes: planenum out of bounds");
|
||||||
out->children[0] = in->children[0];
|
out->children[0] = in->children[0];
|
||||||
out->children[1] = in->children[1];
|
out->children[1] = in->children[1];
|
||||||
|
@ -913,7 +913,7 @@ Mod_MakeHull0 (model_t *mod)
|
||||||
static void
|
static void
|
||||||
Mod_LoadMarksurfaces (model_t *mod, bsp_t *bsp)
|
Mod_LoadMarksurfaces (model_t *mod, bsp_t *bsp)
|
||||||
{
|
{
|
||||||
int count, i, j;
|
unsigned count, i, j;
|
||||||
msurface_t **out;
|
msurface_t **out;
|
||||||
uint32_t *in;
|
uint32_t *in;
|
||||||
mod_brush_t *brush = &mod->brush;
|
mod_brush_t *brush = &mod->brush;
|
||||||
|
@ -1037,7 +1037,7 @@ void
|
||||||
Mod_LoadBrushModel (model_t *mod, void *buffer)
|
Mod_LoadBrushModel (model_t *mod, void *buffer)
|
||||||
{
|
{
|
||||||
dmodel_t *bm;
|
dmodel_t *bm;
|
||||||
int i, j;
|
unsigned i, j;
|
||||||
bsp_t *bsp;
|
bsp_t *bsp;
|
||||||
|
|
||||||
mod->type = mod_brush;
|
mod->type = mod_brush;
|
||||||
|
|
|
@ -73,7 +73,7 @@ static void vulkan_brush_clear (model_t *mod, void *data)
|
||||||
|
|
||||||
QFV_DeviceWaitIdle (device);
|
QFV_DeviceWaitIdle (device);
|
||||||
|
|
||||||
for (int i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
texture_t *tx = brush->textures[i];
|
texture_t *tx = brush->textures[i];
|
||||||
if (!tx) {
|
if (!tx) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -173,7 +173,7 @@ load_textures (model_t *mod, vulkan_ctx_t *ctx)
|
||||||
size_t image_count = 0;
|
size_t image_count = 0;
|
||||||
size_t copy_count = 0;
|
size_t copy_count = 0;
|
||||||
size_t memsize = 0;
|
size_t memsize = 0;
|
||||||
for (int i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
texture_t *tx = brush->textures[i];
|
texture_t *tx = brush->textures[i];
|
||||||
if (!tx) {
|
if (!tx) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -210,7 +210,7 @@ load_textures (model_t *mod, vulkan_ctx_t *ctx)
|
||||||
qfv_packet_t *packet = QFV_PacketAcquire (stage);
|
qfv_packet_t *packet = QFV_PacketAcquire (stage);
|
||||||
buffer = QFV_PacketExtend (packet, memsize);
|
buffer = QFV_PacketExtend (packet, memsize);
|
||||||
|
|
||||||
for (int i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
texture_t *tx = brush->textures[i];
|
texture_t *tx = brush->textures[i];
|
||||||
byte *palette = vid.palette32;
|
byte *palette = vid.palette32;
|
||||||
if (!tx) {
|
if (!tx) {
|
||||||
|
@ -263,7 +263,7 @@ load_textures (model_t *mod, vulkan_ctx_t *ctx)
|
||||||
|
|
||||||
__auto_type barriers = QFV_AllocImageBarrierSet (image_count, malloc);
|
__auto_type barriers = QFV_AllocImageBarrierSet (image_count, malloc);
|
||||||
barriers->size = 0;
|
barriers->size = 0;
|
||||||
for (int i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
texture_t *tx = brush->textures[i];
|
texture_t *tx = brush->textures[i];
|
||||||
if (!tx) {
|
if (!tx) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -281,7 +281,7 @@ load_textures (model_t *mod, vulkan_ctx_t *ctx)
|
||||||
dfunc->vkCmdPipelineBarrier (packet->cmd, ib.srcStages, ib.dstStages,
|
dfunc->vkCmdPipelineBarrier (packet->cmd, ib.srcStages, ib.dstStages,
|
||||||
0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0,
|
||||||
barriers->size, barriers->a);
|
barriers->size, barriers->a);
|
||||||
for (int i = 0, j = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0, j = 0; i < brush->numtextures; i++) {
|
||||||
texture_t *tx = brush->textures[i];
|
texture_t *tx = brush->textures[i];
|
||||||
if (!tx) {
|
if (!tx) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -92,7 +92,7 @@ typedef struct bsp29_s {
|
||||||
dheader_t *header;
|
dheader_t *header;
|
||||||
|
|
||||||
int own_models;
|
int own_models;
|
||||||
int nummodels;
|
size_t nummodels;
|
||||||
dmodel_t *models;
|
dmodel_t *models;
|
||||||
|
|
||||||
int own_visdata;
|
int own_visdata;
|
||||||
|
@ -112,56 +112,55 @@ typedef struct bsp29_s {
|
||||||
char *entdata;
|
char *entdata;
|
||||||
|
|
||||||
int own_leafs;
|
int own_leafs;
|
||||||
int numleafs;
|
size_t numleafs;
|
||||||
dleaf29_t *leafs;
|
dleaf29_t *leafs;
|
||||||
|
|
||||||
int own_planes;
|
int own_planes;
|
||||||
int numplanes;
|
size_t numplanes;
|
||||||
dplane_t *planes;
|
dplane_t *planes;
|
||||||
|
|
||||||
int own_vertexes;
|
int own_vertexes;
|
||||||
int numvertexes;
|
size_t numvertexes;
|
||||||
dvertex_t *vertexes;
|
dvertex_t *vertexes;
|
||||||
|
|
||||||
int own_nodes;
|
int own_nodes;
|
||||||
int numnodes;
|
size_t numnodes;
|
||||||
dnode29_t *nodes;
|
dnode29_t *nodes;
|
||||||
|
|
||||||
int own_texinfo;
|
int own_texinfo;
|
||||||
int numtexinfo;
|
size_t numtexinfo;
|
||||||
texinfo_t *texinfo;
|
texinfo_t *texinfo;
|
||||||
|
|
||||||
int own_faces;
|
int own_faces;
|
||||||
int numfaces;
|
size_t numfaces;
|
||||||
dface29_t *faces;
|
dface29_t *faces;
|
||||||
|
|
||||||
int own_clipnodes;
|
int own_clipnodes;
|
||||||
int numclipnodes;
|
size_t numclipnodes;
|
||||||
dclipnode29_t *clipnodes;
|
dclipnode29_t *clipnodes;
|
||||||
|
|
||||||
int own_edges;
|
int own_edges;
|
||||||
int numedges;
|
size_t numedges;
|
||||||
dedge29_t *edges;
|
dedge29_t *edges;
|
||||||
|
|
||||||
int own_marksurfaces;
|
int own_marksurfaces;
|
||||||
int nummarksurfaces;
|
size_t nummarksurfaces;
|
||||||
uint16_t *marksurfaces;
|
uint16_t *marksurfaces;
|
||||||
|
|
||||||
int own_surfedges;
|
int own_surfedges;
|
||||||
int numsurfedges;
|
size_t numsurfedges;
|
||||||
int32_t *surfedges;
|
int32_t *surfedges;
|
||||||
} bsp29_t;
|
} bsp29_t;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
{
|
{
|
||||||
int c, i, j;
|
|
||||||
dmiptexlump_t *mtl;
|
dmiptexlump_t *mtl;
|
||||||
dmodel_t *d;
|
dmodel_t *d;
|
||||||
|
|
||||||
if (bsp29->header) {
|
if (bsp29->header) {
|
||||||
bsp29->header->version = LittleLong (bsp29->header->version);
|
bsp29->header->version = LittleLong (bsp29->header->version);
|
||||||
for (i = 0; i < HEADER_LUMPS; i++) {
|
for (int i = 0; i < HEADER_LUMPS; i++) {
|
||||||
bsp29->header->lumps[i].fileofs =
|
bsp29->header->lumps[i].fileofs =
|
||||||
LittleLong (bsp29->header->lumps[i].fileofs);
|
LittleLong (bsp29->header->lumps[i].fileofs);
|
||||||
bsp29->header->lumps[i].filelen =
|
bsp29->header->lumps[i].filelen =
|
||||||
|
@ -170,17 +169,17 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// models
|
// models
|
||||||
for (i=0 ; i<bsp29->nummodels ; i++) {
|
for (size_t i=0 ; i<bsp29->nummodels ; i++) {
|
||||||
d = &bsp29->models[i];
|
d = &bsp29->models[i];
|
||||||
|
|
||||||
for (j=0 ; j<MAX_MAP_HULLS ; j++)
|
for (int j = 0; j < MAX_MAP_HULLS; j++)
|
||||||
d->headnode[j] = LittleLong (d->headnode[j]);
|
d->headnode[j] = LittleLong (d->headnode[j]);
|
||||||
|
|
||||||
d->visleafs = LittleLong (d->visleafs);
|
d->visleafs = LittleLong (d->visleafs);
|
||||||
d->firstface = LittleLong (d->firstface);
|
d->firstface = LittleLong (d->firstface);
|
||||||
d->numfaces = LittleLong (d->numfaces);
|
d->numfaces = LittleLong (d->numfaces);
|
||||||
|
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
d->mins[j] = LittleFloat(d->mins[j]);
|
d->mins[j] = LittleFloat(d->mins[j]);
|
||||||
d->maxs[j] = LittleFloat(d->maxs[j]);
|
d->maxs[j] = LittleFloat(d->maxs[j]);
|
||||||
d->origin[j] = LittleFloat(d->origin[j]);
|
d->origin[j] = LittleFloat(d->origin[j]);
|
||||||
|
@ -188,25 +187,25 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// vertexes
|
// vertexes
|
||||||
for (i=0 ; i<bsp29->numvertexes ; i++) {
|
for (size_t i = 0; i < bsp29->numvertexes; i++) {
|
||||||
dvertex_t *vertex = &bsp29->vertexes[i];
|
dvertex_t *vertex = &bsp29->vertexes[i];
|
||||||
for (j=0 ; j<3 ; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
vertex->point[j] = LittleFloat (vertex->point[j]);
|
vertex->point[j] = LittleFloat (vertex->point[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// planes
|
// planes
|
||||||
for (i=0 ; i<bsp29->numplanes ; i++) {
|
for (size_t i = 0; i < bsp29->numplanes; i++) {
|
||||||
dplane_t *plane = &bsp29->planes[i];
|
dplane_t *plane = &bsp29->planes[i];
|
||||||
for (j=0 ; j<3 ; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
plane->normal[j] = LittleFloat (plane->normal[j]);
|
plane->normal[j] = LittleFloat (plane->normal[j]);
|
||||||
plane->dist = LittleFloat (plane->dist);
|
plane->dist = LittleFloat (plane->dist);
|
||||||
plane->type = LittleLong (plane->type);
|
plane->type = LittleLong (plane->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
// texinfos
|
// texinfos
|
||||||
for (i=0 ; i<bsp29->numtexinfo ; i++) {
|
for (size_t i = 0; i < bsp29->numtexinfo; i++) {
|
||||||
texinfo_t *texinfo = &bsp29->texinfo[i];
|
texinfo_t *texinfo = &bsp29->texinfo[i];
|
||||||
for (j=0 ; j < 4 ; j++) {
|
for (int j = 0; j < 4; j++) {
|
||||||
texinfo->vecs[0][j] = LittleFloat (texinfo->vecs[0][j]);
|
texinfo->vecs[0][j] = LittleFloat (texinfo->vecs[0][j]);
|
||||||
texinfo->vecs[1][j] = LittleFloat (texinfo->vecs[1][j]);
|
texinfo->vecs[1][j] = LittleFloat (texinfo->vecs[1][j]);
|
||||||
}
|
}
|
||||||
|
@ -215,7 +214,7 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// faces
|
// faces
|
||||||
for (i=0 ; i<bsp29->numfaces ; i++) {
|
for (size_t i = 0; i < bsp29->numfaces; i++) {
|
||||||
const dface_t *face2 = &bsp2->faces[i];
|
const dface_t *face2 = &bsp2->faces[i];
|
||||||
dface29_t *face29 = &bsp29->faces[i];
|
dface29_t *face29 = &bsp29->faces[i];
|
||||||
face29->planenum = LittleShort (face2->planenum);
|
face29->planenum = LittleShort (face2->planenum);
|
||||||
|
@ -228,11 +227,11 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// nodes
|
// nodes
|
||||||
for (i=0 ; i<bsp29->numnodes ; i++) {
|
for (size_t i = 0; i < bsp29->numnodes; i++) {
|
||||||
const dnode_t *node2 = &bsp2->nodes[i];
|
const dnode_t *node2 = &bsp2->nodes[i];
|
||||||
dnode29_t *node29 = &bsp29->nodes[i];
|
dnode29_t *node29 = &bsp29->nodes[i];
|
||||||
node29->planenum = LittleLong (node2->planenum);
|
node29->planenum = LittleLong (node2->planenum);
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
node29->mins[j] = LittleShort ((int16_t) node2->mins[j]);
|
node29->mins[j] = LittleShort ((int16_t) node2->mins[j]);
|
||||||
node29->maxs[j] = LittleShort ((int16_t) node2->maxs[j]);
|
node29->maxs[j] = LittleShort ((int16_t) node2->maxs[j]);
|
||||||
}
|
}
|
||||||
|
@ -243,11 +242,11 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// leafs
|
// leafs
|
||||||
for (i=0 ; i<bsp29->numleafs ; i++) {
|
for (size_t i = 0; i < bsp29->numleafs; i++) {
|
||||||
const dleaf_t *leaf2 = &bsp2->leafs[i];
|
const dleaf_t *leaf2 = &bsp2->leafs[i];
|
||||||
dleaf29_t *leaf29 = &bsp29->leafs[i];
|
dleaf29_t *leaf29 = &bsp29->leafs[i];
|
||||||
leaf29->contents = LittleLong (leaf2->contents);
|
leaf29->contents = LittleLong (leaf2->contents);
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
leaf29->mins[j] = LittleShort ((int16_t) leaf2->mins[j]);
|
leaf29->mins[j] = LittleShort ((int16_t) leaf2->mins[j]);
|
||||||
leaf29->maxs[j] = LittleShort ((int16_t) leaf2->maxs[j]);
|
leaf29->maxs[j] = LittleShort ((int16_t) leaf2->maxs[j]);
|
||||||
}
|
}
|
||||||
|
@ -260,7 +259,7 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// clipnodes
|
// clipnodes
|
||||||
for (i=0 ; i<bsp29->numclipnodes ; i++) {
|
for (size_t i = 0; i < bsp29->numclipnodes; i++) {
|
||||||
const dclipnode_t *clipnode2 = &bsp2->clipnodes[i];
|
const dclipnode_t *clipnode2 = &bsp2->clipnodes[i];
|
||||||
dclipnode29_t *clipnode29 = (dclipnode29_t *) &bsp29->clipnodes[i];
|
dclipnode29_t *clipnode29 = (dclipnode29_t *) &bsp29->clipnodes[i];
|
||||||
clipnode29->planenum = LittleLong (clipnode2->planenum);
|
clipnode29->planenum = LittleLong (clipnode2->planenum);
|
||||||
|
@ -272,27 +271,27 @@ swap_to_bsp29 (bsp29_t *bsp29, const bsp_t *bsp2)
|
||||||
if (bsp29->texdatasize) {
|
if (bsp29->texdatasize) {
|
||||||
mtl = (dmiptexlump_t *)bsp29->texdata;
|
mtl = (dmiptexlump_t *)bsp29->texdata;
|
||||||
//miptexlumps have not yet been swapped
|
//miptexlumps have not yet been swapped
|
||||||
c = mtl->nummiptex;
|
uint32_t c = mtl->nummiptex;
|
||||||
mtl->nummiptex = LittleLong (mtl->nummiptex);
|
mtl->nummiptex = LittleLong (mtl->nummiptex);
|
||||||
for (i=0 ; i<c ; i++)
|
for (uint32_t i = 0; i < c ; i++)
|
||||||
mtl->dataofs[i] = LittleLong(mtl->dataofs[i]);
|
mtl->dataofs[i] = LittleLong(mtl->dataofs[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// marksurfaces
|
// marksurfaces
|
||||||
for (i=0 ; i<bsp29->nummarksurfaces ; i++) {
|
for (size_t i = 0 ; i < bsp29->nummarksurfaces; i++) {
|
||||||
const uint32_t *marksurface2 = &bsp2->marksurfaces[i];
|
const uint32_t *marksurface2 = &bsp2->marksurfaces[i];
|
||||||
uint16_t *marksurface29 = (uint16_t *) &bsp29->marksurfaces[i];
|
uint16_t *marksurface29 = (uint16_t *) &bsp29->marksurfaces[i];
|
||||||
*marksurface29 = LittleShort (*marksurface2);
|
*marksurface29 = LittleShort (*marksurface2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// surfedges
|
// surfedges
|
||||||
for (i=0 ; i<bsp29->numsurfedges ; i++) {
|
for (size_t i = 0; i < bsp29->numsurfedges; i++) {
|
||||||
int32_t *surfedge = &bsp29->surfedges[i];
|
int32_t *surfedge = &bsp29->surfedges[i];
|
||||||
*surfedge = LittleLong (*surfedge);
|
*surfedge = LittleLong (*surfedge);
|
||||||
}
|
}
|
||||||
|
|
||||||
// edges
|
// edges
|
||||||
for (i=0 ; i<bsp29->numedges ; i++) {
|
for (size_t i = 0; i < bsp29->numedges; i++) {
|
||||||
const dedge_t *edge2 = &bsp2->edges[i];
|
const dedge_t *edge2 = &bsp2->edges[i];
|
||||||
dedge29_t *edge29 = (dedge29_t *) &bsp29->edges[i];
|
dedge29_t *edge29 = (dedge29_t *) &bsp29->edges[i];
|
||||||
edge29->v[0] = LittleShort (edge2->v[0]);
|
edge29->v[0] = LittleShort (edge2->v[0]);
|
||||||
|
@ -304,13 +303,12 @@ static void
|
||||||
swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
void (*cb) (const bsp_t *, void *), void *cbdata)
|
void (*cb) (const bsp_t *, void *), void *cbdata)
|
||||||
{
|
{
|
||||||
int c, i, j;
|
|
||||||
dmiptexlump_t *mtl;
|
dmiptexlump_t *mtl;
|
||||||
dmodel_t *d;
|
dmodel_t *d;
|
||||||
|
|
||||||
if (bsp2->header) {
|
if (bsp2->header) {
|
||||||
bsp2->header->version = LittleLong (bsp2->header->version);
|
bsp2->header->version = LittleLong (bsp2->header->version);
|
||||||
for (i = 0; i < HEADER_LUMPS; i++) {
|
for (int i = 0; i < HEADER_LUMPS; i++) {
|
||||||
bsp2->header->lumps[i].fileofs =
|
bsp2->header->lumps[i].fileofs =
|
||||||
LittleLong (bsp2->header->lumps[i].fileofs);
|
LittleLong (bsp2->header->lumps[i].fileofs);
|
||||||
bsp2->header->lumps[i].filelen =
|
bsp2->header->lumps[i].filelen =
|
||||||
|
@ -321,17 +319,17 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
}
|
}
|
||||||
|
|
||||||
// models
|
// models
|
||||||
for (i=0 ; i<bsp2->nummodels ; i++) {
|
for (size_t i = 0; i < bsp2->nummodels; i++) {
|
||||||
d = &bsp2->models[i];
|
d = &bsp2->models[i];
|
||||||
|
|
||||||
for (j=0 ; j<MAX_MAP_HULLS ; j++)
|
for (int j = 0; j < MAX_MAP_HULLS; j++)
|
||||||
d->headnode[j] = LittleLong (d->headnode[j]);
|
d->headnode[j] = LittleLong (d->headnode[j]);
|
||||||
|
|
||||||
d->visleafs = LittleLong (d->visleafs);
|
d->visleafs = LittleLong (d->visleafs);
|
||||||
d->firstface = LittleLong (d->firstface);
|
d->firstface = LittleLong (d->firstface);
|
||||||
d->numfaces = LittleLong (d->numfaces);
|
d->numfaces = LittleLong (d->numfaces);
|
||||||
|
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
d->mins[j] = LittleFloat(d->mins[j]);
|
d->mins[j] = LittleFloat(d->mins[j]);
|
||||||
d->maxs[j] = LittleFloat(d->maxs[j]);
|
d->maxs[j] = LittleFloat(d->maxs[j]);
|
||||||
d->origin[j] = LittleFloat(d->origin[j]);
|
d->origin[j] = LittleFloat(d->origin[j]);
|
||||||
|
@ -339,25 +337,25 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
}
|
}
|
||||||
|
|
||||||
// vertexes
|
// vertexes
|
||||||
for (i=0 ; i<bsp2->numvertexes ; i++) {
|
for (size_t i = 0; i < bsp2->numvertexes; i++) {
|
||||||
dvertex_t *vertex = &bsp2->vertexes[i];
|
dvertex_t *vertex = &bsp2->vertexes[i];
|
||||||
for (j=0 ; j<3 ; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
vertex->point[j] = LittleFloat (vertex->point[j]);
|
vertex->point[j] = LittleFloat (vertex->point[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// planes
|
// planes
|
||||||
for (i=0 ; i<bsp2->numplanes ; i++) {
|
for (size_t i = 0; i < bsp2->numplanes; i++) {
|
||||||
dplane_t *plane = &bsp2->planes[i];
|
dplane_t *plane = &bsp2->planes[i];
|
||||||
for (j=0 ; j<3 ; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
plane->normal[j] = LittleFloat (plane->normal[j]);
|
plane->normal[j] = LittleFloat (plane->normal[j]);
|
||||||
plane->dist = LittleFloat (plane->dist);
|
plane->dist = LittleFloat (plane->dist);
|
||||||
plane->type = LittleLong (plane->type);
|
plane->type = LittleLong (plane->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
// texinfos
|
// texinfos
|
||||||
for (i=0 ; i<bsp2->numtexinfo ; i++) {
|
for (size_t i = 0; i < bsp2->numtexinfo; i++) {
|
||||||
texinfo_t *texinfo = &bsp2->texinfo[i];
|
texinfo_t *texinfo = &bsp2->texinfo[i];
|
||||||
for (j=0 ; j < 4 ; j++) {
|
for (int j = 0; j < 4; j++) {
|
||||||
texinfo->vecs[0][j] = LittleFloat (texinfo->vecs[0][j]);
|
texinfo->vecs[0][j] = LittleFloat (texinfo->vecs[0][j]);
|
||||||
texinfo->vecs[1][j] = LittleFloat (texinfo->vecs[1][j]);
|
texinfo->vecs[1][j] = LittleFloat (texinfo->vecs[1][j]);
|
||||||
}
|
}
|
||||||
|
@ -366,7 +364,7 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
}
|
}
|
||||||
|
|
||||||
// faces
|
// faces
|
||||||
for (i=0 ; i<bsp2->numfaces ; i++) {
|
for (size_t i = 0; i < bsp2->numfaces; i++) {
|
||||||
dface_t *face2 = &bsp2->faces[i];
|
dface_t *face2 = &bsp2->faces[i];
|
||||||
const dface29_t *face29 = &bsp29->faces[i];
|
const dface29_t *face29 = &bsp29->faces[i];
|
||||||
face2->planenum = LittleShort (face29->planenum);
|
face2->planenum = LittleShort (face29->planenum);
|
||||||
|
@ -379,17 +377,17 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
}
|
}
|
||||||
|
|
||||||
// nodes
|
// nodes
|
||||||
for (i=0 ; i<bsp2->numnodes ; i++) {
|
for (size_t i = 0; i < bsp2->numnodes; i++) {
|
||||||
dnode_t *node2 = &bsp2->nodes[i];
|
dnode_t *node2 = &bsp2->nodes[i];
|
||||||
const dnode29_t *node29 = &bsp29->nodes[i];
|
const dnode29_t *node29 = &bsp29->nodes[i];
|
||||||
node2->planenum = LittleLong (node29->planenum);
|
node2->planenum = LittleLong (node29->planenum);
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
node2->mins[j] = (int16_t) LittleShort (node29->mins[j]);
|
node2->mins[j] = (int16_t) LittleShort (node29->mins[j]);
|
||||||
node2->maxs[j] = (int16_t) LittleShort (node29->maxs[j]);
|
node2->maxs[j] = (int16_t) LittleShort (node29->maxs[j]);
|
||||||
}
|
}
|
||||||
for (j = 0; j < 2; j++) {
|
for (int j = 0; j < 2; j++) {
|
||||||
node2->children[j] = LittleShort (node29->children[j]);
|
node2->children[j] = LittleShort (node29->children[j]);
|
||||||
if (node2->children[j] >= bsp2->numnodes)
|
if (node2->children[j] >= (int32_t) bsp2->numnodes)
|
||||||
node2->children[j] = (int16_t) node2->children[j];
|
node2->children[j] = (int16_t) node2->children[j];
|
||||||
}
|
}
|
||||||
node2->firstface = LittleShort (node29->firstface);
|
node2->firstface = LittleShort (node29->firstface);
|
||||||
|
@ -397,11 +395,11 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
}
|
}
|
||||||
|
|
||||||
// leafs
|
// leafs
|
||||||
for (i=0 ; i<bsp2->numleafs ; i++) {
|
for (size_t i = 0; i < bsp2->numleafs; i++) {
|
||||||
dleaf_t *leaf2 = &bsp2->leafs[i];
|
dleaf_t *leaf2 = &bsp2->leafs[i];
|
||||||
const dleaf29_t *leaf29 = &bsp29->leafs[i];
|
const dleaf29_t *leaf29 = &bsp29->leafs[i];
|
||||||
leaf2->contents = LittleLong (leaf29->contents);
|
leaf2->contents = LittleLong (leaf29->contents);
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
leaf2->mins[j] = (int16_t) LittleShort (leaf29->mins[j]);
|
leaf2->mins[j] = (int16_t) LittleShort (leaf29->mins[j]);
|
||||||
leaf2->maxs[j] = (int16_t) LittleShort (leaf29->maxs[j]);
|
leaf2->maxs[j] = (int16_t) LittleShort (leaf29->maxs[j]);
|
||||||
}
|
}
|
||||||
|
@ -414,7 +412,7 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
}
|
}
|
||||||
|
|
||||||
// clipnodes
|
// clipnodes
|
||||||
for (i=0 ; i<bsp2->numclipnodes ; i++) {
|
for (size_t i = 0; i < bsp2->numclipnodes; i++) {
|
||||||
dclipnode_t *clipnode2 = &bsp2->clipnodes[i];
|
dclipnode_t *clipnode2 = &bsp2->clipnodes[i];
|
||||||
const dclipnode29_t *clipnode29 = &bsp29->clipnodes[i];
|
const dclipnode29_t *clipnode29 = &bsp29->clipnodes[i];
|
||||||
clipnode2->planenum = LittleLong (clipnode29->planenum);
|
clipnode2->planenum = LittleLong (clipnode29->planenum);
|
||||||
|
@ -425,27 +423,27 @@ swap_from_bsp29 (bsp_t *bsp2, const bsp29_t *bsp29,
|
||||||
// miptex
|
// miptex
|
||||||
if (bsp2->texdatasize) {
|
if (bsp2->texdatasize) {
|
||||||
mtl = (dmiptexlump_t *)bsp2->texdata;
|
mtl = (dmiptexlump_t *)bsp2->texdata;
|
||||||
c = LittleLong(mtl->nummiptex);
|
uint32_t c = LittleLong (mtl->nummiptex);
|
||||||
mtl->nummiptex = LittleLong (mtl->nummiptex);
|
mtl->nummiptex = LittleLong (mtl->nummiptex);
|
||||||
for (i=0 ; i<c ; i++)
|
for (uint32_t i = 0; i < c; i++)
|
||||||
mtl->dataofs[i] = LittleLong (mtl->dataofs[i]);
|
mtl->dataofs[i] = LittleLong (mtl->dataofs[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// marksurfaces
|
// marksurfaces
|
||||||
for (i=0 ; i<bsp2->nummarksurfaces ; i++) {
|
for (size_t i = 0; i < bsp2->nummarksurfaces; i++) {
|
||||||
uint32_t *marksurface2 = &bsp2->marksurfaces[i];
|
uint32_t *marksurface2 = &bsp2->marksurfaces[i];
|
||||||
const uint16_t *marksurface29 = &bsp29->marksurfaces[i];
|
const uint16_t *marksurface29 = &bsp29->marksurfaces[i];
|
||||||
*marksurface2 = LittleShort (*marksurface29);
|
*marksurface2 = LittleShort (*marksurface29);
|
||||||
}
|
}
|
||||||
|
|
||||||
// surfedges
|
// surfedges
|
||||||
for (i=0 ; i<bsp2->numsurfedges ; i++) {
|
for (size_t i = 0; i < bsp2->numsurfedges; i++) {
|
||||||
int32_t *surfedge = &bsp2->surfedges[i];
|
int32_t *surfedge = &bsp2->surfedges[i];
|
||||||
*surfedge = LittleLong (*surfedge);
|
*surfedge = LittleLong (*surfedge);
|
||||||
}
|
}
|
||||||
|
|
||||||
// edges
|
// edges
|
||||||
for (i=0 ; i<bsp2->numedges ; i++) {
|
for (size_t i = 0; i < bsp2->numedges; i++) {
|
||||||
dedge_t *edge2 = &bsp2->edges[i];
|
dedge_t *edge2 = &bsp2->edges[i];
|
||||||
const dedge29_t *edge29 = &bsp29->edges[i];
|
const dedge29_t *edge29 = &bsp29->edges[i];
|
||||||
edge2->v[0] = LittleShort (edge29->v[0]);
|
edge2->v[0] = LittleShort (edge29->v[0]);
|
||||||
|
@ -457,13 +455,12 @@ static void
|
||||||
swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
void *cbdata)
|
void *cbdata)
|
||||||
{
|
{
|
||||||
int c, i, j;
|
|
||||||
dmiptexlump_t *mtl;
|
dmiptexlump_t *mtl;
|
||||||
dmodel_t *d;
|
dmodel_t *d;
|
||||||
|
|
||||||
if (bsp->header) {
|
if (bsp->header) {
|
||||||
bsp->header->version = LittleLong (bsp->header->version);
|
bsp->header->version = LittleLong (bsp->header->version);
|
||||||
for (i = 0; i < HEADER_LUMPS; i++) {
|
for (int i = 0; i < HEADER_LUMPS; i++) {
|
||||||
bsp->header->lumps[i].fileofs =
|
bsp->header->lumps[i].fileofs =
|
||||||
LittleLong (bsp->header->lumps[i].fileofs);
|
LittleLong (bsp->header->lumps[i].fileofs);
|
||||||
bsp->header->lumps[i].filelen =
|
bsp->header->lumps[i].filelen =
|
||||||
|
@ -474,17 +471,17 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
}
|
}
|
||||||
|
|
||||||
// models
|
// models
|
||||||
for (i=0 ; i<bsp->nummodels ; i++) {
|
for (size_t i = 0; i < bsp->nummodels; i++) {
|
||||||
d = &bsp->models[i];
|
d = &bsp->models[i];
|
||||||
|
|
||||||
for (j=0 ; j<MAX_MAP_HULLS ; j++)
|
for (int j = 0; j < MAX_MAP_HULLS; j++)
|
||||||
d->headnode[j] = LittleLong (d->headnode[j]);
|
d->headnode[j] = LittleLong (d->headnode[j]);
|
||||||
|
|
||||||
d->visleafs = LittleLong (d->visleafs);
|
d->visleafs = LittleLong (d->visleafs);
|
||||||
d->firstface = LittleLong (d->firstface);
|
d->firstface = LittleLong (d->firstface);
|
||||||
d->numfaces = LittleLong (d->numfaces);
|
d->numfaces = LittleLong (d->numfaces);
|
||||||
|
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
d->mins[j] = LittleFloat(d->mins[j]);
|
d->mins[j] = LittleFloat(d->mins[j]);
|
||||||
d->maxs[j] = LittleFloat(d->maxs[j]);
|
d->maxs[j] = LittleFloat(d->maxs[j]);
|
||||||
d->origin[j] = LittleFloat(d->origin[j]);
|
d->origin[j] = LittleFloat(d->origin[j]);
|
||||||
|
@ -492,25 +489,25 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
}
|
}
|
||||||
|
|
||||||
// vertexes
|
// vertexes
|
||||||
for (i=0 ; i<bsp->numvertexes ; i++) {
|
for (size_t i = 0; i < bsp->numvertexes; i++) {
|
||||||
dvertex_t *vertex = &bsp->vertexes[i];
|
dvertex_t *vertex = &bsp->vertexes[i];
|
||||||
for (j=0 ; j<3 ; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
vertex->point[j] = LittleFloat (vertex->point[j]);
|
vertex->point[j] = LittleFloat (vertex->point[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// planes
|
// planes
|
||||||
for (i=0 ; i<bsp->numplanes ; i++) {
|
for (size_t i = 0; i < bsp->numplanes; i++) {
|
||||||
dplane_t *plane = &bsp->planes[i];
|
dplane_t *plane = &bsp->planes[i];
|
||||||
for (j=0 ; j<3 ; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
plane->normal[j] = LittleFloat (plane->normal[j]);
|
plane->normal[j] = LittleFloat (plane->normal[j]);
|
||||||
plane->dist = LittleFloat (plane->dist);
|
plane->dist = LittleFloat (plane->dist);
|
||||||
plane->type = LittleLong (plane->type);
|
plane->type = LittleLong (plane->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
// texinfos
|
// texinfos
|
||||||
for (i=0 ; i<bsp->numtexinfo ; i++) {
|
for (size_t i = 0; i < bsp->numtexinfo; i++) {
|
||||||
texinfo_t *texinfo = &bsp->texinfo[i];
|
texinfo_t *texinfo = &bsp->texinfo[i];
|
||||||
for (j=0 ; j < 4 ; j++) {
|
for (int j = 0; j < 4; j++) {
|
||||||
texinfo->vecs[0][j] = LittleFloat (texinfo->vecs[0][j]);
|
texinfo->vecs[0][j] = LittleFloat (texinfo->vecs[0][j]);
|
||||||
texinfo->vecs[1][j] = LittleFloat (texinfo->vecs[1][j]);
|
texinfo->vecs[1][j] = LittleFloat (texinfo->vecs[1][j]);
|
||||||
}
|
}
|
||||||
|
@ -519,7 +516,7 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
}
|
}
|
||||||
|
|
||||||
// faces
|
// faces
|
||||||
for (i=0 ; i<bsp->numfaces ; i++) {
|
for (size_t i = 0; i < bsp->numfaces; i++) {
|
||||||
dface_t *face = &bsp->faces[i];
|
dface_t *face = &bsp->faces[i];
|
||||||
face->texinfo = LittleLong (face->texinfo);
|
face->texinfo = LittleLong (face->texinfo);
|
||||||
face->planenum = LittleLong (face->planenum);
|
face->planenum = LittleLong (face->planenum);
|
||||||
|
@ -530,10 +527,10 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
}
|
}
|
||||||
|
|
||||||
// nodes
|
// nodes
|
||||||
for (i=0 ; i<bsp->numnodes ; i++) {
|
for (size_t i = 0; i < bsp->numnodes; i++) {
|
||||||
dnode_t *node = &bsp->nodes[i];
|
dnode_t *node = &bsp->nodes[i];
|
||||||
node->planenum = LittleLong (node->planenum);
|
node->planenum = LittleLong (node->planenum);
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
node->mins[j] = LittleFloat (node->mins[j]);
|
node->mins[j] = LittleFloat (node->mins[j]);
|
||||||
node->maxs[j] = LittleFloat (node->maxs[j]);
|
node->maxs[j] = LittleFloat (node->maxs[j]);
|
||||||
}
|
}
|
||||||
|
@ -544,10 +541,10 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
}
|
}
|
||||||
|
|
||||||
// leafs
|
// leafs
|
||||||
for (i=0 ; i<bsp->numleafs ; i++) {
|
for (size_t i = 0; i < bsp->numleafs; i++) {
|
||||||
dleaf_t *leaf = &bsp->leafs[i];
|
dleaf_t *leaf = &bsp->leafs[i];
|
||||||
leaf->contents = LittleLong (leaf->contents);
|
leaf->contents = LittleLong (leaf->contents);
|
||||||
for (j=0 ; j<3 ; j++) {
|
for (int j = 0; j < 3 ; j++) {
|
||||||
leaf->mins[j] = LittleFloat (leaf->mins[j]);
|
leaf->mins[j] = LittleFloat (leaf->mins[j]);
|
||||||
leaf->maxs[j] = LittleFloat (leaf->maxs[j]);
|
leaf->maxs[j] = LittleFloat (leaf->maxs[j]);
|
||||||
}
|
}
|
||||||
|
@ -558,7 +555,7 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
}
|
}
|
||||||
|
|
||||||
// clipnodes
|
// clipnodes
|
||||||
for (i=0 ; i<bsp->numclipnodes ; i++) {
|
for (size_t i = 0; i < bsp->numclipnodes; i++) {
|
||||||
dclipnode_t *clipnode = &bsp->clipnodes[i];
|
dclipnode_t *clipnode = &bsp->clipnodes[i];
|
||||||
clipnode->planenum = LittleLong (clipnode->planenum);
|
clipnode->planenum = LittleLong (clipnode->planenum);
|
||||||
clipnode->children[0] = LittleLong (clipnode->children[0]);
|
clipnode->children[0] = LittleLong (clipnode->children[0]);
|
||||||
|
@ -568,29 +565,30 @@ swap_bsp (bsp_t *bsp, int todisk, void (*cb) (const bsp_t *, void *),
|
||||||
// miptex
|
// miptex
|
||||||
if (bsp->texdatasize) {
|
if (bsp->texdatasize) {
|
||||||
mtl = (dmiptexlump_t *) bsp->texdata;
|
mtl = (dmiptexlump_t *) bsp->texdata;
|
||||||
|
uint32_t c;
|
||||||
if (todisk)
|
if (todisk)
|
||||||
c = mtl->nummiptex;
|
c = mtl->nummiptex;
|
||||||
else
|
else
|
||||||
c = LittleLong(mtl->nummiptex);
|
c = LittleLong(mtl->nummiptex);
|
||||||
mtl->nummiptex = LittleLong (mtl->nummiptex);
|
mtl->nummiptex = LittleLong (mtl->nummiptex);
|
||||||
for (i=0 ; i<c ; i++)
|
for (uint32_t i = 0; i < c; i++)
|
||||||
mtl->dataofs[i] = LittleLong(mtl->dataofs[i]);
|
mtl->dataofs[i] = LittleLong(mtl->dataofs[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// marksurfaces
|
// marksurfaces
|
||||||
for (i=0 ; i<bsp->nummarksurfaces ; i++) {
|
for (size_t i = 0; i < bsp->nummarksurfaces; i++) {
|
||||||
uint32_t *marksurface = &bsp->marksurfaces[i];
|
uint32_t *marksurface = &bsp->marksurfaces[i];
|
||||||
*marksurface = LittleLong (*marksurface);
|
*marksurface = LittleLong (*marksurface);
|
||||||
}
|
}
|
||||||
|
|
||||||
// surfedges
|
// surfedges
|
||||||
for (i=0 ; i<bsp->numsurfedges ; i++) {
|
for (size_t i = 0; i < bsp->numsurfedges; i++) {
|
||||||
int32_t *surfedge = &bsp->surfedges[i];
|
int32_t *surfedge = &bsp->surfedges[i];
|
||||||
*surfedge = LittleLong (*surfedge);
|
*surfedge = LittleLong (*surfedge);
|
||||||
}
|
}
|
||||||
|
|
||||||
// edges
|
// edges
|
||||||
for (i=0 ; i<bsp->numedges ; i++) {
|
for (size_t i = 0; i < bsp->numedges; i++) {
|
||||||
dedge_t *edge = &bsp->edges[i];
|
dedge_t *edge = &bsp->edges[i];
|
||||||
edge->v[0] = LittleLong (edge->v[0]);
|
edge->v[0] = LittleLong (edge->v[0]);
|
||||||
edge->v[1] = LittleLong (edge->v[1]);
|
edge->v[1] = LittleLong (edge->v[1]);
|
||||||
|
|
|
@ -549,9 +549,8 @@ gl_R_BlendLightmaps (void)
|
||||||
void
|
void
|
||||||
gl_overbright_f (cvar_t *var)
|
gl_overbright_f (cvar_t *var)
|
||||||
{
|
{
|
||||||
int num, i, j;
|
int num;
|
||||||
model_t *m;
|
model_t *m;
|
||||||
msurface_t *surf;
|
|
||||||
entity_t *ent;
|
entity_t *ent;
|
||||||
mod_brush_t *brush;
|
mod_brush_t *brush;
|
||||||
|
|
||||||
|
@ -608,8 +607,8 @@ gl_overbright_f (cvar_t *var)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
brush = &m->brush;
|
brush = &m->brush;
|
||||||
for (j = 0, surf = brush->surfaces; j < brush->numsurfaces;
|
for (unsigned j = 0; j < brush->numsurfaces; j++) {
|
||||||
j++, surf++) {
|
msurface_t *surf = brush->surfaces + j;
|
||||||
if (surf->flags & (SURF_DRAWTURB | SURF_DRAWSKY))
|
if (surf->flags & (SURF_DRAWTURB | SURF_DRAWSKY))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -626,7 +625,8 @@ gl_overbright_f (cvar_t *var)
|
||||||
|
|
||||||
brush = &r_worldentity.renderer.model->brush;
|
brush = &r_worldentity.renderer.model->brush;
|
||||||
|
|
||||||
for (i = 0, surf = brush->surfaces; i < brush->numsurfaces; i++, surf++) {
|
for (unsigned i = 0; i < brush->numsurfaces; i++) {
|
||||||
|
msurface_t *surf = brush->surfaces + i;
|
||||||
if (surf->flags & (SURF_DRAWTURB | SURF_DRAWSKY))
|
if (surf->flags & (SURF_DRAWTURB | SURF_DRAWSKY))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -709,7 +709,6 @@ GL_CreateSurfaceLightmap (mod_brush_t *brush, msurface_t *surf)
|
||||||
void
|
void
|
||||||
GL_BuildLightmaps (model_t **models, int num_models)
|
GL_BuildLightmaps (model_t **models, int num_models)
|
||||||
{
|
{
|
||||||
int i, j;
|
|
||||||
model_t *m;
|
model_t *m;
|
||||||
mod_brush_t *brush;
|
mod_brush_t *brush;
|
||||||
|
|
||||||
|
@ -750,7 +749,7 @@ GL_BuildLightmaps (model_t **models, int num_models)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 1; j < num_models; j++) {
|
for (int j = 1; j < num_models; j++) {
|
||||||
m = models[j];
|
m = models[j];
|
||||||
if (!m)
|
if (!m)
|
||||||
break;
|
break;
|
||||||
|
@ -762,7 +761,7 @@ GL_BuildLightmaps (model_t **models, int num_models)
|
||||||
r_pcurrentvertbase = brush->vertexes;
|
r_pcurrentvertbase = brush->vertexes;
|
||||||
gl_currentmodel = m;
|
gl_currentmodel = m;
|
||||||
// non-bsp models don't have surfaces.
|
// non-bsp models don't have surfaces.
|
||||||
for (i = 0; i < brush->numsurfaces; i++) {
|
for (unsigned i = 0; i < brush->numsurfaces; i++) {
|
||||||
if (brush->surfaces[i].flags & SURF_DRAWTURB)
|
if (brush->surfaces[i].flags & SURF_DRAWTURB)
|
||||||
continue;
|
continue;
|
||||||
if (gl_sky_divide->int_val && (brush->surfaces[i].flags &
|
if (gl_sky_divide->int_val && (brush->surfaces[i].flags &
|
||||||
|
@ -774,7 +773,7 @@ GL_BuildLightmaps (model_t **models, int num_models)
|
||||||
}
|
}
|
||||||
|
|
||||||
// upload all lightmaps that were filled
|
// upload all lightmaps that were filled
|
||||||
for (i = 0; i < MAX_LIGHTMAPS; i++) {
|
for (int i = 0; i < MAX_LIGHTMAPS; i++) {
|
||||||
if (!allocated[i][0])
|
if (!allocated[i][0])
|
||||||
break; // no more used
|
break; // no more used
|
||||||
gl_lightmap_modified[i] = false;
|
gl_lightmap_modified[i] = false;
|
||||||
|
|
|
@ -170,10 +170,9 @@ gl_R_Init (void)
|
||||||
static void
|
static void
|
||||||
register_textures (mod_brush_t *brush)
|
register_textures (mod_brush_t *brush)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
texture_t *tex;
|
texture_t *tex;
|
||||||
|
|
||||||
for (i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
tex = brush->textures[i];
|
tex = brush->textures[i];
|
||||||
if (!tex)
|
if (!tex)
|
||||||
continue;
|
continue;
|
||||||
|
@ -211,7 +210,7 @@ gl_R_NewMap (model_t *worldmodel, struct model_s **models, int num_models)
|
||||||
// identify sky texture
|
// identify sky texture
|
||||||
gl_mirrortexturenum = -1;
|
gl_mirrortexturenum = -1;
|
||||||
gl_R_ClearTextures ();
|
gl_R_ClearTextures ();
|
||||||
for (int i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
tex = brush->textures[i];
|
tex = brush->textures[i];
|
||||||
if (!tex)
|
if (!tex)
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -160,12 +160,10 @@ gl_R_AddTexture (texture_t *tx)
|
||||||
void
|
void
|
||||||
gl_R_InitSurfaceChains (mod_brush_t *brush)
|
gl_R_InitSurfaceChains (mod_brush_t *brush)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
if (static_chains)
|
if (static_chains)
|
||||||
free (static_chains);
|
free (static_chains);
|
||||||
static_chains = calloc (brush->nummodelsurfaces, sizeof (instsurf_t));
|
static_chains = calloc (brush->nummodelsurfaces, sizeof (instsurf_t));
|
||||||
for (i = 0; i < brush->nummodelsurfaces; i++)
|
for (unsigned i = 0; i < brush->nummodelsurfaces; i++)
|
||||||
brush->surfaces[i].instsurf = static_chains + i;
|
brush->surfaces[i].instsurf = static_chains + i;
|
||||||
|
|
||||||
release_instsurfs ();
|
release_instsurfs ();
|
||||||
|
@ -527,8 +525,6 @@ void
|
||||||
gl_R_DrawBrushModel (entity_t *e)
|
gl_R_DrawBrushModel (entity_t *e)
|
||||||
{
|
{
|
||||||
float dot, radius;
|
float dot, radius;
|
||||||
int i;
|
|
||||||
unsigned int k;
|
|
||||||
msurface_t *surf;
|
msurface_t *surf;
|
||||||
qboolean rotated;
|
qboolean rotated;
|
||||||
vec3_t mins, maxs;
|
vec3_t mins, maxs;
|
||||||
|
@ -581,7 +577,7 @@ gl_R_DrawBrushModel (entity_t *e)
|
||||||
if (brush->firstmodelsurface != 0 && r_dlight_lightmap->int_val) {
|
if (brush->firstmodelsurface != 0 && r_dlight_lightmap->int_val) {
|
||||||
vec3_t lightorigin;
|
vec3_t lightorigin;
|
||||||
|
|
||||||
for (k = 0; k < r_maxdlights; k++) {
|
for (unsigned k = 0; k < r_maxdlights; k++) {
|
||||||
if ((r_dlights[k].die < vr_data.realtime)
|
if ((r_dlights[k].die < vr_data.realtime)
|
||||||
|| (!r_dlights[k].radius))
|
|| (!r_dlights[k].radius))
|
||||||
continue;
|
continue;
|
||||||
|
@ -600,7 +596,7 @@ gl_R_DrawBrushModel (entity_t *e)
|
||||||
surf = &brush->surfaces[brush->firstmodelsurface];
|
surf = &brush->surfaces[brush->firstmodelsurface];
|
||||||
|
|
||||||
// draw texture
|
// draw texture
|
||||||
for (i = 0; i < brush->nummodelsurfaces; i++, surf++) {
|
for (unsigned i = 0; i < brush->nummodelsurfaces; i++, surf++) {
|
||||||
// find which side of the node we are on
|
// find which side of the node we are on
|
||||||
plane_t *plane = surf->plane;
|
plane_t *plane = surf->plane;
|
||||||
|
|
||||||
|
|
|
@ -325,12 +325,10 @@ glsl_R_AddTexture (texture_t *tx)
|
||||||
static void
|
static void
|
||||||
glsl_R_InitSurfaceChains (mod_brush_t *brush)
|
glsl_R_InitSurfaceChains (mod_brush_t *brush)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
release_static_instsurfs ();
|
release_static_instsurfs ();
|
||||||
release_instsurfs ();
|
release_instsurfs ();
|
||||||
|
|
||||||
for (i = 0; i < brush->nummodelsurfaces; i++) {
|
for (unsigned i = 0; i < brush->nummodelsurfaces; i++) {
|
||||||
brush->surfaces[i].instsurf = get_static_instsurf ();
|
brush->surfaces[i].instsurf = get_static_instsurf ();
|
||||||
brush->surfaces[i].instsurf->surface = &brush->surfaces[i];
|
brush->surfaces[i].instsurf->surface = &brush->surfaces[i];
|
||||||
}
|
}
|
||||||
|
@ -414,10 +412,9 @@ chain_surface (glslbspctx_t *bctx, msurface_t *surf)
|
||||||
static void
|
static void
|
||||||
register_textures (mod_brush_t *brush)
|
register_textures (mod_brush_t *brush)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
texture_t *tex;
|
texture_t *tex;
|
||||||
|
|
||||||
for (i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
tex = brush->textures[i];
|
tex = brush->textures[i];
|
||||||
if (!tex)
|
if (!tex)
|
||||||
continue;
|
continue;
|
||||||
|
@ -553,7 +550,6 @@ build_surf_displist (model_t **models, msurface_t *surf, int base,
|
||||||
void
|
void
|
||||||
glsl_R_BuildDisplayLists (model_t **models, int num_models)
|
glsl_R_BuildDisplayLists (model_t **models, int num_models)
|
||||||
{
|
{
|
||||||
int i, j;
|
|
||||||
int vertex_index_base;
|
int vertex_index_base;
|
||||||
model_t *m;
|
model_t *m;
|
||||||
dmodel_t *dm;
|
dmodel_t *dm;
|
||||||
|
@ -571,7 +567,7 @@ glsl_R_BuildDisplayLists (model_t **models, int num_models)
|
||||||
// now run through all surfaces, chaining them to their textures, thus
|
// now run through all surfaces, chaining them to their textures, thus
|
||||||
// effectively sorting the surfaces by texture (without worrying about
|
// effectively sorting the surfaces by texture (without worrying about
|
||||||
// surface order on the same texture chain).
|
// surface order on the same texture chain).
|
||||||
for (i = 0; i < num_models; i++) {
|
for (int i = 0; i < num_models; i++) {
|
||||||
m = models[i];
|
m = models[i];
|
||||||
if (!m)
|
if (!m)
|
||||||
continue;
|
continue;
|
||||||
|
@ -581,7 +577,7 @@ glsl_R_BuildDisplayLists (model_t **models, int num_models)
|
||||||
brush = &m->brush;
|
brush = &m->brush;
|
||||||
// non-bsp models don't have surfaces.
|
// non-bsp models don't have surfaces.
|
||||||
dm = brush->submodels;
|
dm = brush->submodels;
|
||||||
for (j = 0; j < brush->numsurfaces; j++) {
|
for (uint32_t j = 0; j < brush->numsurfaces; j++) {
|
||||||
glsltex_t *tex;
|
glsltex_t *tex;
|
||||||
if (j == dm->firstface + dm->numfaces) {
|
if (j == dm->firstface + dm->numfaces) {
|
||||||
dm++;
|
dm++;
|
||||||
|
@ -608,7 +604,7 @@ glsl_R_BuildDisplayLists (model_t **models, int num_models)
|
||||||
// Run through the textures, using their chains to build display maps.
|
// Run through the textures, using their chains to build display maps.
|
||||||
// For animated textures, if a surface is on one texture of the group, it
|
// For animated textures, if a surface is on one texture of the group, it
|
||||||
// will be on all.
|
// will be on all.
|
||||||
for (i = 0; i < r_num_texture_chains; i++) {
|
for (int i = 0; i < r_num_texture_chains; i++) {
|
||||||
glsltex_t *tex;
|
glsltex_t *tex;
|
||||||
instsurf_t *is;
|
instsurf_t *is;
|
||||||
elechain_t *ec = 0;
|
elechain_t *ec = 0;
|
||||||
|
@ -663,7 +659,6 @@ static void
|
||||||
R_DrawBrushModel (entity_t *e)
|
R_DrawBrushModel (entity_t *e)
|
||||||
{
|
{
|
||||||
float dot, radius;
|
float dot, radius;
|
||||||
int i;
|
|
||||||
unsigned k;
|
unsigned k;
|
||||||
model_t *model = e->renderer.model;
|
model_t *model = e->renderer.model;
|
||||||
mod_brush_t *brush = &model->brush;
|
mod_brush_t *brush = &model->brush;
|
||||||
|
@ -722,7 +717,7 @@ R_DrawBrushModel (entity_t *e)
|
||||||
|
|
||||||
surf = &brush->surfaces[brush->firstmodelsurface];
|
surf = &brush->surfaces[brush->firstmodelsurface];
|
||||||
|
|
||||||
for (i = 0; i < brush->nummodelsurfaces; i++, surf++) {
|
for (unsigned i = 0; i < brush->nummodelsurfaces; i++, surf++) {
|
||||||
// find the node side on which we are
|
// find the node side on which we are
|
||||||
plane = surf->plane;
|
plane = surf->plane;
|
||||||
|
|
||||||
|
|
|
@ -203,7 +203,7 @@ create_surf_lightmap (msurface_t *surf)
|
||||||
void
|
void
|
||||||
glsl_R_BuildLightmaps (model_t **models, int num_models)
|
glsl_R_BuildLightmaps (model_t **models, int num_models)
|
||||||
{
|
{
|
||||||
int i, j, size;
|
int size;
|
||||||
model_t *m;
|
model_t *m;
|
||||||
mod_brush_t *brush;
|
mod_brush_t *brush;
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ glsl_R_BuildLightmaps (model_t **models, int num_models)
|
||||||
glsl_R_BuildLightMap = R_BuildLightMap_1;
|
glsl_R_BuildLightMap = R_BuildLightMap_1;
|
||||||
|
|
||||||
bl_extents[1] = bl_extents[0] = 0;
|
bl_extents[1] = bl_extents[0] = 0;
|
||||||
for (j = 1; j < num_models; j++) {
|
for (int j = 1; j < num_models; j++) {
|
||||||
m = models[j];
|
m = models[j];
|
||||||
if (!m)
|
if (!m)
|
||||||
break;
|
break;
|
||||||
|
@ -226,7 +226,7 @@ glsl_R_BuildLightmaps (model_t **models, int num_models)
|
||||||
}
|
}
|
||||||
brush = &m->brush;
|
brush = &m->brush;
|
||||||
// non-bsp models don't have surfaces.
|
// non-bsp models don't have surfaces.
|
||||||
for (i = 0; i < brush->numsurfaces; i++) {
|
for (unsigned i = 0; i < brush->numsurfaces; i++) {
|
||||||
msurface_t *surf = brush->surfaces + i;
|
msurface_t *surf = brush->surfaces + i;
|
||||||
surf->lightpic = 0; // paranoia
|
surf->lightpic = 0; // paranoia
|
||||||
if (surf->flags & SURF_DRAWTURB)
|
if (surf->flags & SURF_DRAWTURB)
|
||||||
|
@ -238,7 +238,7 @@ glsl_R_BuildLightmaps (model_t **models, int num_models)
|
||||||
}
|
}
|
||||||
size = bl_extents[0] * bl_extents[1] * 3; // * 3 for rgb support
|
size = bl_extents[0] * bl_extents[1] * 3; // * 3 for rgb support
|
||||||
blocklights = realloc (blocklights, size * sizeof (blocklights[0]));
|
blocklights = realloc (blocklights, size * sizeof (blocklights[0]));
|
||||||
for (j = 1; j < num_models; j++) {
|
for (int j = 1; j < num_models; j++) {
|
||||||
m = models[j];
|
m = models[j];
|
||||||
if (!m)
|
if (!m)
|
||||||
break;
|
break;
|
||||||
|
@ -248,7 +248,7 @@ glsl_R_BuildLightmaps (model_t **models, int num_models)
|
||||||
}
|
}
|
||||||
brush = &m->brush;
|
brush = &m->brush;
|
||||||
// non-bsp models don't have surfaces.
|
// non-bsp models don't have surfaces.
|
||||||
for (i = 0; i < brush->numsurfaces; i++) {
|
for (unsigned i = 0; i < brush->numsurfaces; i++) {
|
||||||
msurface_t *surf = brush->surfaces + i;
|
msurface_t *surf = brush->surfaces + i;
|
||||||
if (surf->lightpic)
|
if (surf->lightpic)
|
||||||
glsl_R_BuildLightMap (0, brush, surf);
|
glsl_R_BuildLightMap (0, brush, surf);
|
||||||
|
|
|
@ -171,12 +171,11 @@ static void
|
||||||
init_surface_chains (mod_brush_t *brush, vulkan_ctx_t *ctx)
|
init_surface_chains (mod_brush_t *brush, vulkan_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
bspctx_t *bctx = ctx->bsp_context;
|
bspctx_t *bctx = ctx->bsp_context;
|
||||||
int i;
|
|
||||||
|
|
||||||
release_static_instsurfs (bctx);
|
release_static_instsurfs (bctx);
|
||||||
release_instsurfs (bctx);
|
release_instsurfs (bctx);
|
||||||
|
|
||||||
for (i = 0; i < brush->nummodelsurfaces; i++) {
|
for (unsigned i = 0; i < brush->nummodelsurfaces; i++) {
|
||||||
brush->surfaces[i].instsurf = get_static_instsurf (bctx);
|
brush->surfaces[i].instsurf = get_static_instsurf (bctx);
|
||||||
brush->surfaces[i].instsurf->surface = &brush->surfaces[i];
|
brush->surfaces[i].instsurf->surface = &brush->surfaces[i];
|
||||||
}
|
}
|
||||||
|
@ -242,10 +241,9 @@ chain_surface (msurface_t *surf, vulkan_ctx_t *ctx)
|
||||||
static void
|
static void
|
||||||
register_textures (mod_brush_t *brush, vulkan_ctx_t *ctx)
|
register_textures (mod_brush_t *brush, vulkan_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
texture_t *tex;
|
texture_t *tex;
|
||||||
|
|
||||||
for (i = 0; i < brush->numtextures; i++) {
|
for (unsigned i = 0; i < brush->numtextures; i++) {
|
||||||
tex = brush->textures[i];
|
tex = brush->textures[i];
|
||||||
if (!tex)
|
if (!tex)
|
||||||
continue;
|
continue;
|
||||||
|
@ -394,7 +392,6 @@ Vulkan_BuildDisplayLists (model_t **models, int num_models, vulkan_ctx_t *ctx)
|
||||||
qfv_device_t *device = ctx->device;
|
qfv_device_t *device = ctx->device;
|
||||||
qfv_devfuncs_t *dfunc = device->funcs;
|
qfv_devfuncs_t *dfunc = device->funcs;
|
||||||
bspctx_t *bctx = ctx->bsp_context;
|
bspctx_t *bctx = ctx->bsp_context;
|
||||||
int i, j;
|
|
||||||
int vertex_index_base;
|
int vertex_index_base;
|
||||||
model_t *m;
|
model_t *m;
|
||||||
dmodel_t *dm;
|
dmodel_t *dm;
|
||||||
|
@ -414,7 +411,7 @@ Vulkan_BuildDisplayLists (model_t **models, int num_models, vulkan_ctx_t *ctx)
|
||||||
// run through all surfaces, chaining them to their textures, thus
|
// run through all surfaces, chaining them to their textures, thus
|
||||||
// effectively sorting the surfaces by texture (without worrying about
|
// effectively sorting the surfaces by texture (without worrying about
|
||||||
// surface order on the same texture chain).
|
// surface order on the same texture chain).
|
||||||
for (i = 0; i < num_models; i++) {
|
for (int i = 0; i < num_models; i++) {
|
||||||
m = models[i];
|
m = models[i];
|
||||||
if (!m)
|
if (!m)
|
||||||
continue;
|
continue;
|
||||||
|
@ -424,7 +421,7 @@ Vulkan_BuildDisplayLists (model_t **models, int num_models, vulkan_ctx_t *ctx)
|
||||||
continue;
|
continue;
|
||||||
brush = &m->brush;
|
brush = &m->brush;
|
||||||
dm = brush->submodels;
|
dm = brush->submodels;
|
||||||
for (j = 0; j < brush->numsurfaces; j++) {
|
for (unsigned j = 0; j < brush->numsurfaces; j++) {
|
||||||
vulktex_t *tex;
|
vulktex_t *tex;
|
||||||
if (j == dm->firstface + dm->numfaces) {
|
if (j == dm->firstface + dm->numfaces) {
|
||||||
// move on to the next sub-model
|
// move on to the next sub-model
|
||||||
|
@ -581,7 +578,6 @@ static void
|
||||||
R_DrawBrushModel (entity_t *e, vulkan_ctx_t *ctx)
|
R_DrawBrushModel (entity_t *e, vulkan_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
float dot, radius;
|
float dot, radius;
|
||||||
int i;
|
|
||||||
model_t *model;
|
model_t *model;
|
||||||
plane_t *plane;
|
plane_t *plane;
|
||||||
msurface_t *surf;
|
msurface_t *surf;
|
||||||
|
@ -625,7 +621,7 @@ R_DrawBrushModel (entity_t *e, vulkan_ctx_t *ctx)
|
||||||
|
|
||||||
surf = &brush->surfaces[brush->firstmodelsurface];
|
surf = &brush->surfaces[brush->firstmodelsurface];
|
||||||
|
|
||||||
for (i = 0; i < brush->nummodelsurfaces; i++, surf++) {
|
for (unsigned i = 0; i < brush->nummodelsurfaces; i++, surf++) {
|
||||||
// find the node side on which we are
|
// find the node side on which we are
|
||||||
plane = surf->plane;
|
plane = surf->plane;
|
||||||
|
|
||||||
|
|
|
@ -1105,7 +1105,6 @@ SV_SpawnServer (const char *server)
|
||||||
{
|
{
|
||||||
byte *buf;
|
byte *buf;
|
||||||
QFile *ent_file;
|
QFile *ent_file;
|
||||||
int i;
|
|
||||||
edict_t *ent;
|
edict_t *ent;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1162,7 +1161,7 @@ SV_SpawnServer (const char *server)
|
||||||
|
|
||||||
// leave slots at start for only clients
|
// leave slots at start for only clients
|
||||||
sv.num_edicts = svs.maxclients + 1;
|
sv.num_edicts = svs.maxclients + 1;
|
||||||
for (i = 0; i < svs.maxclients; i++) {
|
for (int i = 0; i < svs.maxclients; i++) {
|
||||||
ent = EDICT_NUM (&sv_pr_state, i + 1);
|
ent = EDICT_NUM (&sv_pr_state, i + 1);
|
||||||
svs.clients[i].edict = ent;
|
svs.clients[i].edict = ent;
|
||||||
}
|
}
|
||||||
|
@ -1190,7 +1189,7 @@ SV_SpawnServer (const char *server)
|
||||||
|
|
||||||
sv.model_precache[0] = sv_pr_state.pr_strings;
|
sv.model_precache[0] = sv_pr_state.pr_strings;
|
||||||
sv.model_precache[1] = sv.modelname;
|
sv.model_precache[1] = sv.modelname;
|
||||||
for (i = 1; i < sv.worldmodel->brush.numsubmodels; i++) {
|
for (unsigned i = 1; i < sv.worldmodel->brush.numsubmodels; i++) {
|
||||||
sv.model_precache[1 + i] = localmodels[i];
|
sv.model_precache[1 + i] = localmodels[i];
|
||||||
sv.models[i + 1] = Mod_ForName (localmodels[i], false);
|
sv.models[i + 1] = Mod_ForName (localmodels[i], false);
|
||||||
}
|
}
|
||||||
|
@ -1244,10 +1243,12 @@ SV_SpawnServer (const char *server)
|
||||||
sv.signon.cursize);
|
sv.signon.cursize);
|
||||||
|
|
||||||
// send serverinfo to all connected clients
|
// send serverinfo to all connected clients
|
||||||
for (i = 0, host_client = svs.clients; i < svs.maxclients; i++,
|
for (int i = 0; i < svs.maxclients; i++) {
|
||||||
host_client++)
|
host_client = svs.clients + i;
|
||||||
if (host_client->active)
|
if (host_client->active) {
|
||||||
SV_SendServerinfo (host_client);
|
SV_SendServerinfo (host_client);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Sys_MaskPrintf (SYS_dev, "Server spawned.\n");
|
Sys_MaskPrintf (SYS_dev, "Server spawned.\n");
|
||||||
S_UnblockSound ();
|
S_UnblockSound ();
|
||||||
|
|
|
@ -320,7 +320,6 @@ SV_SpawnServer (const char *server)
|
||||||
{
|
{
|
||||||
byte *buf;
|
byte *buf;
|
||||||
edict_t *ent;
|
edict_t *ent;
|
||||||
int i;
|
|
||||||
void *so_buffers;
|
void *so_buffers;
|
||||||
int *so_sizes;
|
int *so_sizes;
|
||||||
int max_so;
|
int max_so;
|
||||||
|
@ -384,7 +383,7 @@ SV_SpawnServer (const char *server)
|
||||||
|
|
||||||
// leave slots at start for only clients
|
// leave slots at start for only clients
|
||||||
sv.num_edicts = MAX_CLIENTS + 1;
|
sv.num_edicts = MAX_CLIENTS + 1;
|
||||||
for (i = 0; i < MAX_CLIENTS; i++) {
|
for (int i = 0; i < MAX_CLIENTS; i++) {
|
||||||
ent = EDICT_NUM (&sv_pr_state, i + 1);
|
ent = EDICT_NUM (&sv_pr_state, i + 1);
|
||||||
svs.clients[i].edict = ent;
|
svs.clients[i].edict = ent;
|
||||||
// ZOID - make sure we update frags right
|
// ZOID - make sure we update frags right
|
||||||
|
@ -407,7 +406,7 @@ SV_SpawnServer (const char *server)
|
||||||
sv.model_precache[0] = sv_pr_state.pr_strings;
|
sv.model_precache[0] = sv_pr_state.pr_strings;
|
||||||
sv.model_precache[1] = sv.modelname;
|
sv.model_precache[1] = sv.modelname;
|
||||||
sv.models[1] = sv.worldmodel;
|
sv.models[1] = sv.worldmodel;
|
||||||
for (i = 1; i < sv.worldmodel->brush.numsubmodels; i++) {
|
for (unsigned i = 1; i < sv.worldmodel->brush.numsubmodels; i++) {
|
||||||
sv.model_precache[1 + i] = localmodels[i];
|
sv.model_precache[1 + i] = localmodels[i];
|
||||||
sv.models[i + 1] = Mod_ForName (localmodels[i], false);
|
sv.models[i + 1] = Mod_ForName (localmodels[i], false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -531,7 +531,7 @@ create_image (long width, long height)
|
||||||
static image_t *
|
static image_t *
|
||||||
render_map (bsp_t *bsp)
|
render_map (bsp_t *bsp)
|
||||||
{
|
{
|
||||||
long i = 0, j = 0, k = 0, x = 0;
|
long j = 0, k = 0, x = 0;
|
||||||
|
|
||||||
dvertex_t *vertexlist, *vert1, *vert2;
|
dvertex_t *vertexlist, *vert1, *vert2;
|
||||||
dedge_t *edgelist;
|
dedge_t *edgelist;
|
||||||
|
@ -567,14 +567,14 @@ render_map (bsp_t *bsp)
|
||||||
exit (2);
|
exit (2);
|
||||||
}
|
}
|
||||||
/* initialize the array */
|
/* initialize the array */
|
||||||
for (i = 0; i < bsp->numedges; i++) {
|
for (unsigned i = 0; i < bsp->numedges; i++) {
|
||||||
edge_extra[i].num_face_ref = 0;
|
edge_extra[i].num_face_ref = 0;
|
||||||
for (j = 0; j < MAX_REF_FACES; j++) {
|
for (int j = 0; j < MAX_REF_FACES; j++) {
|
||||||
edge_extra[i].ref_faces[j] = -1;
|
edge_extra[i].ref_faces[j] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < bsp->numfaces; i++) {
|
for (unsigned i = 0; i < bsp->numfaces; i++) {
|
||||||
/* calculate the normal (cross product) */
|
/* calculate the normal (cross product) */
|
||||||
/* starting edge: edgelist[ledges[facelist[i].firstedge]] */
|
/* starting edge: edgelist[ledges[facelist[i].firstedge]] */
|
||||||
/* number of edges: facelist[i].numedges; */
|
/* number of edges: facelist[i].numedges; */
|
||||||
|
@ -647,7 +647,7 @@ render_map (bsp_t *bsp)
|
||||||
|
|
||||||
printf ("Collecting min/max\n");
|
printf ("Collecting min/max\n");
|
||||||
/* Collect min and max */
|
/* Collect min and max */
|
||||||
for (i = 0; i < bsp->numvertexes; i++) {
|
for (unsigned i = 0; i < bsp->numvertexes; i++) {
|
||||||
|
|
||||||
/* Ugly hack - flip stuff around for different camera angles */
|
/* Ugly hack - flip stuff around for different camera angles */
|
||||||
switch (options.camera_axis) {
|
switch (options.camera_axis) {
|
||||||
|
@ -788,7 +788,7 @@ render_map (bsp_t *bsp)
|
||||||
fprintf (stderr, "Plotting edges...");
|
fprintf (stderr, "Plotting edges...");
|
||||||
k = 0;
|
k = 0;
|
||||||
drawcol = (options.edgeremove) ? 64 : 32;
|
drawcol = (options.edgeremove) ? 64 : 32;
|
||||||
for (i = 0; i < bsp->numedges; i++) {
|
for (unsigned i = 0; i < bsp->numedges; i++) {
|
||||||
/* Do a check on this line ... see if we keep this line or not */
|
/* Do a check on this line ... see if we keep this line or not */
|
||||||
|
|
||||||
/* run through all referenced faces */
|
/* run through all referenced faces */
|
||||||
|
@ -840,7 +840,7 @@ render_map (bsp_t *bsp)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
printf ("%d edges plotted", bsp->numedges);
|
printf ("%zd edges plotted", bsp->numedges);
|
||||||
if (options.edgeremove) {
|
if (options.edgeremove) {
|
||||||
printf (" (%ld edges removed)\n", k);
|
printf (" (%ld edges removed)\n", k);
|
||||||
} else {
|
} else {
|
||||||
|
@ -848,7 +848,7 @@ render_map (bsp_t *bsp)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Little gradient */
|
/* Little gradient */
|
||||||
for (i = 0; i <= 255; i++) {
|
for (unsigned i = 0; i <= 255; i++) {
|
||||||
// across from top left
|
// across from top left
|
||||||
plotpoint (image, i, 0, 255 - i);
|
plotpoint (image, i, 0, 255 - i);
|
||||||
// down from top left
|
// down from top left
|
||||||
|
@ -872,8 +872,8 @@ render_map (bsp_t *bsp)
|
||||||
|
|
||||||
/* Negate image if necessary */
|
/* Negate image if necessary */
|
||||||
if (options.negative_image) {
|
if (options.negative_image) {
|
||||||
for (i = 0; i < image->height; i++) {
|
for (int i = 0; i < image->height; i++) {
|
||||||
for (j = 0; j < image->width; j++) {
|
for (int j = 0; j < image->width; j++) {
|
||||||
image->image[i * image->width + j] =
|
image->image[i * image->width + j] =
|
||||||
255 - image->image[i * image->width + j];
|
255 - image->image[i * image->width + j];
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ bspinfo ()
|
||||||
lump->fileofs, lump->filelen, lump->filelen / info->size);
|
lump->fileofs, lump->filelen, lump->filelen / info->size);
|
||||||
|
|
||||||
}
|
}
|
||||||
for (int i = 0; i < bsp->nummodels; i++) {
|
for (unsigned i = 0; i < bsp->nummodels; i++) {
|
||||||
dmodel_t *model = &bsp->models[i];
|
dmodel_t *model = &bsp->models[i];
|
||||||
printf ("model: *%d\n", i);
|
printf ("model: *%d\n", i);
|
||||||
printf (" mins : [%g, %g, %g]\n", VectorExpand (model->mins));
|
printf (" mins : [%g, %g, %g]\n", VectorExpand (model->mins));
|
||||||
|
|
|
@ -122,10 +122,11 @@ FindMiptex (const char *name)
|
||||||
static int
|
static int
|
||||||
FindTexinfo (texinfo_t *t)
|
FindTexinfo (texinfo_t *t)
|
||||||
{
|
{
|
||||||
int i, j;
|
size_t i;
|
||||||
|
int j;
|
||||||
texinfo_t *tex;
|
texinfo_t *tex;
|
||||||
|
|
||||||
if (t->miptex < 0)
|
if (t->miptex == ~0u)
|
||||||
return t->miptex; // it's HINT or SKIP
|
return t->miptex; // it's HINT or SKIP
|
||||||
|
|
||||||
// set the special flag
|
// set the special flag
|
||||||
|
@ -545,7 +546,7 @@ LoadMapFile (const char *filename)
|
||||||
qprintf ("%5i brushes (%i detail)\n", nummapbrushes, numdetailbrushes);
|
qprintf ("%5i brushes (%i detail)\n", nummapbrushes, numdetailbrushes);
|
||||||
qprintf ("%5i entities\n", num_entities);
|
qprintf ("%5i entities\n", num_entities);
|
||||||
qprintf ("%5i textures\n", nummiptexnames);
|
qprintf ("%5i textures\n", nummiptexnames);
|
||||||
qprintf ("%5i texinfo\n", bsp->numtexinfo);
|
qprintf ("%5zd texinfo\n", bsp->numtexinfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -103,7 +103,7 @@ ProcessEntity (int entnum)
|
||||||
worldmodel = false;
|
worldmodel = false;
|
||||||
if (entnum == 1)
|
if (entnum == 1)
|
||||||
qprintf ("--- Internal Entities ---\n");
|
qprintf ("--- Internal Entities ---\n");
|
||||||
sprintf (mod, "*%i", bsp->nummodels);
|
sprintf (mod, "*%zd", bsp->nummodels);
|
||||||
if (options.verbosity)
|
if (options.verbosity)
|
||||||
PrintEntity (ent);
|
PrintEntity (ent);
|
||||||
|
|
||||||
|
@ -225,7 +225,6 @@ WriteClipHull (void)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
dclipnode_t *d;
|
dclipnode_t *d;
|
||||||
dplane_t *p;
|
dplane_t *p;
|
||||||
int i;
|
|
||||||
|
|
||||||
options.hullfile[strlen (options.hullfile) - 1] = '0' + hullnum;
|
options.hullfile[strlen (options.hullfile) - 1] = '0' + hullnum;
|
||||||
|
|
||||||
|
@ -236,18 +235,18 @@ WriteClipHull (void)
|
||||||
if (!f)
|
if (!f)
|
||||||
Sys_Error ("Couldn't open %s", options.hullfile);
|
Sys_Error ("Couldn't open %s", options.hullfile);
|
||||||
|
|
||||||
fprintf (f, "%i\n", bsp->nummodels);
|
fprintf (f, "%zd\n", bsp->nummodels);
|
||||||
|
|
||||||
for (i = 0; i < bsp->nummodels; i++)
|
for (size_t i = 0; i < bsp->nummodels; i++)
|
||||||
fprintf (f, "%i\n", bsp->models[i].headnode[hullnum]);
|
fprintf (f, "%i\n", bsp->models[i].headnode[hullnum]);
|
||||||
|
|
||||||
fprintf (f, "\n%i\n", bsp->numclipnodes);
|
fprintf (f, "\n%zd\n", bsp->numclipnodes);
|
||||||
|
|
||||||
for (i = 0; i < bsp->numclipnodes; i++) {
|
for (size_t i = 0; i < bsp->numclipnodes; i++) {
|
||||||
d = &bsp->clipnodes[i];
|
d = &bsp->clipnodes[i];
|
||||||
p = &bsp->planes[d->planenum];
|
p = &bsp->planes[d->planenum];
|
||||||
// the node number is written out only for human readability
|
// the node number is written out only for human readability
|
||||||
fprintf (f, "%5i : %f %f %f %f : %5i %5i\n", i, p->normal[0],
|
fprintf (f, "%5zd : %f %f %f %f : %5i %5i\n", i, p->normal[0],
|
||||||
p->normal[1], p->normal[2], p->dist, d->children[0],
|
p->normal[1], p->normal[2], p->dist, d->children[0],
|
||||||
d->children[1]);
|
d->children[1]);
|
||||||
}
|
}
|
||||||
|
@ -268,7 +267,8 @@ ReadClipHull (int hullnum)
|
||||||
plane_t p;
|
plane_t p;
|
||||||
dplane_t dp;
|
dplane_t dp;
|
||||||
float f1, f2, f3, f4;
|
float f1, f2, f3, f4;
|
||||||
int firstclipnode, junk, c1, c2, i, j, n;
|
int firstclipnode, junk, c1, c2;
|
||||||
|
size_t i, j, n;
|
||||||
int flip;
|
int flip;
|
||||||
|
|
||||||
options.hullfile[strlen (options.hullfile) - 1] = '0' + hullnum;
|
options.hullfile[strlen (options.hullfile) - 1] = '0' + hullnum;
|
||||||
|
@ -277,21 +277,21 @@ ReadClipHull (int hullnum)
|
||||||
if (!f)
|
if (!f)
|
||||||
Sys_Error ("Couldn't open %s", options.hullfile);
|
Sys_Error ("Couldn't open %s", options.hullfile);
|
||||||
|
|
||||||
if (fscanf (f, "%d\n", &n) != 1)
|
if (fscanf (f, "%zd\n", &n) != 1)
|
||||||
Sys_Error ("Error parsing %s", options.hullfile);
|
Sys_Error ("Error parsing %s", options.hullfile);
|
||||||
|
|
||||||
if (n != bsp->nummodels)
|
if (n != bsp->nummodels)
|
||||||
Sys_Error ("ReadClipHull: hull had %i models, base had %i", n,
|
Sys_Error ("ReadClipHull: hull had %zd models, base had %zd", n,
|
||||||
bsp->nummodels);
|
bsp->nummodels);
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
if (fscanf (f, "%d\n", &j) != 1)
|
if (fscanf (f, "%zd\n", &j) != 1)
|
||||||
Sys_Error ("Error parsing %s", options.hullfile);
|
Sys_Error ("Error parsing %s", options.hullfile);
|
||||||
bsp->models[i].headnode[hullnum] = bsp->numclipnodes + j;
|
bsp->models[i].headnode[hullnum] = bsp->numclipnodes + j;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (fscanf (f, "\n%d\n", &n) != 1)
|
if (fscanf (f, "\n%zd\n", &n) != 1)
|
||||||
Sys_Error ("Error parsing %s", options.hullfile);
|
Sys_Error ("Error parsing %s", options.hullfile);
|
||||||
firstclipnode = bsp->numclipnodes;
|
firstclipnode = bsp->numclipnodes;
|
||||||
|
|
||||||
|
|
|
@ -102,10 +102,9 @@ load_planes (void)
|
||||||
{
|
{
|
||||||
const dplane_t *p;
|
const dplane_t *p;
|
||||||
plane_t tp = { };
|
plane_t tp = { };
|
||||||
int i;
|
|
||||||
|
|
||||||
planes.size = 0;
|
planes.size = 0;
|
||||||
for (i = 0; i < bsp->numplanes; i++) {
|
for (size_t i = 0; i < bsp->numplanes; i++) {
|
||||||
p = bsp->planes + i;
|
p = bsp->planes + i;
|
||||||
VectorCopy (p->normal, tp.normal);
|
VectorCopy (p->normal, tp.normal);
|
||||||
tp.dist = p->dist;
|
tp.dist = p->dist;
|
||||||
|
@ -124,11 +123,10 @@ static void
|
||||||
load_faces (void)
|
load_faces (void)
|
||||||
{
|
{
|
||||||
const dface_t *f;
|
const dface_t *f;
|
||||||
int i, j;
|
|
||||||
winding_t *points;
|
winding_t *points;
|
||||||
|
|
||||||
mfaces = calloc (bsp->numfaces, sizeof (face_t));
|
mfaces = calloc (bsp->numfaces, sizeof (face_t));
|
||||||
for (i = 0; i < bsp->numfaces; i++) {
|
for (size_t i = 0; i < bsp->numfaces; i++) {
|
||||||
f = bsp->faces + i;
|
f = bsp->faces + i;
|
||||||
mfaces[i].planenum = f->planenum;
|
mfaces[i].planenum = f->planenum;
|
||||||
mfaces[i].planeside = f->side;
|
mfaces[i].planeside = f->side;
|
||||||
|
@ -138,7 +136,7 @@ load_faces (void)
|
||||||
|
|
||||||
points = mfaces[i].points;
|
points = mfaces[i].points;
|
||||||
points->numpoints = f->numedges;
|
points->numpoints = f->numedges;
|
||||||
for (j = 0; j < points->numpoints; j++) {
|
for (int j = 0; j < points->numpoints; j++) {
|
||||||
int e = mfaces[i].edges[j];
|
int e = mfaces[i].edges[j];
|
||||||
int v;
|
int v;
|
||||||
|
|
||||||
|
@ -162,11 +160,9 @@ static void
|
||||||
load_leafs (void)
|
load_leafs (void)
|
||||||
{
|
{
|
||||||
const dleaf_t *l;
|
const dleaf_t *l;
|
||||||
int i;
|
|
||||||
unsigned j;
|
|
||||||
|
|
||||||
leafs = calloc (bsp->numleafs, sizeof (node_t));
|
leafs = calloc (bsp->numleafs, sizeof (node_t));
|
||||||
for (i = 0; i < bsp->numleafs; i++) {
|
for (size_t i = 0; i < bsp->numleafs; i++) {
|
||||||
l = bsp->leafs + i;
|
l = bsp->leafs + i;
|
||||||
leafs[i].planenum = -1;
|
leafs[i].planenum = -1;
|
||||||
leafs[i].contents = l->contents;
|
leafs[i].contents = l->contents;
|
||||||
|
@ -174,7 +170,7 @@ load_leafs (void)
|
||||||
VectorCopy (l->maxs, leafs[i].maxs);
|
VectorCopy (l->maxs, leafs[i].maxs);
|
||||||
leafs[i].markfaces = calloc (l->nummarksurfaces + 1,
|
leafs[i].markfaces = calloc (l->nummarksurfaces + 1,
|
||||||
sizeof (face_t *));
|
sizeof (face_t *));
|
||||||
for (j = 0; j < l->nummarksurfaces; j++) {
|
for (uint32_t j = 0; j < l->nummarksurfaces; j++) {
|
||||||
unsigned short ms = l->firstmarksurface + j;
|
unsigned short ms = l->firstmarksurface + j;
|
||||||
leafs[i].markfaces[j] = mfaces + marksurfaces[ms];
|
leafs[i].markfaces[j] = mfaces + marksurfaces[ms];
|
||||||
}
|
}
|
||||||
|
@ -185,19 +181,16 @@ static void
|
||||||
load_nodes (void)
|
load_nodes (void)
|
||||||
{
|
{
|
||||||
const dnode_t *n;
|
const dnode_t *n;
|
||||||
face_t *f;
|
|
||||||
int i;
|
|
||||||
unsigned j;
|
|
||||||
|
|
||||||
nodes = calloc (bsp->numnodes, sizeof (node_t));
|
nodes = calloc (bsp->numnodes, sizeof (node_t));
|
||||||
for (i = 0; i < bsp->numnodes; i++) {
|
for (size_t i = 0; i < bsp->numnodes; i++) {
|
||||||
n = bsp->nodes + i;
|
n = bsp->nodes + i;
|
||||||
VectorCopy (n->mins, nodes[i].mins);
|
VectorCopy (n->mins, nodes[i].mins);
|
||||||
VectorCopy (n->maxs, nodes[i].maxs);
|
VectorCopy (n->maxs, nodes[i].maxs);
|
||||||
nodes[i].planenum = n->planenum;
|
nodes[i].planenum = n->planenum;
|
||||||
nodes[i].firstface = n->firstface;
|
nodes[i].firstface = n->firstface;
|
||||||
nodes[i].numfaces = n->numfaces;
|
nodes[i].numfaces = n->numfaces;
|
||||||
for (j = 0; j < 2; j++) {
|
for (int j = 0; j < 2; j++) {
|
||||||
if (n->children[j] < 0) {
|
if (n->children[j] < 0) {
|
||||||
nodes[i].children[j] = leafs - n->children[j] - 1;
|
nodes[i].children[j] = leafs - n->children[j] - 1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -206,7 +199,8 @@ load_nodes (void)
|
||||||
}
|
}
|
||||||
if (nodes[i].numfaces) {
|
if (nodes[i].numfaces) {
|
||||||
nodes[i].faces = mfaces + nodes[i].firstface;
|
nodes[i].faces = mfaces + nodes[i].firstface;
|
||||||
for (j = 0, f = nodes[i].faces; j < n->numfaces - 1; j++, f++) {
|
for (uint32_t j = 0; j < n->numfaces - 1; j++) {
|
||||||
|
face_t *f = nodes[i].faces + j;
|
||||||
f->next = f + 1;
|
f->next = f + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -375,7 +369,7 @@ extract_textures (void)
|
||||||
{
|
{
|
||||||
const dmiptexlump_t *miptexlump = (dmiptexlump_t *) bsp->texdata;
|
const dmiptexlump_t *miptexlump = (dmiptexlump_t *) bsp->texdata;
|
||||||
miptex_t *miptex;
|
miptex_t *miptex;
|
||||||
int i, mtsize, pixels;
|
int mtsize, pixels;
|
||||||
const char *wadfile;
|
const char *wadfile;
|
||||||
wad_t *wad;
|
wad_t *wad;
|
||||||
const char *uname;
|
const char *uname;
|
||||||
|
@ -387,15 +381,15 @@ extract_textures (void)
|
||||||
wad_add_data (wad, "PALETTE", TYP_PALETTE, default_palette,
|
wad_add_data (wad, "PALETTE", TYP_PALETTE, default_palette,
|
||||||
sizeof (default_palette));
|
sizeof (default_palette));
|
||||||
|
|
||||||
for (i = 0; i < miptexlump->nummiptex; i++) {
|
for (size_t i = 0; i < miptexlump->nummiptex; i++) {
|
||||||
if (miptexlump->dataofs[i] == -1)
|
if (miptexlump->dataofs[i] == ~0u)
|
||||||
continue;
|
continue;
|
||||||
miptex = (miptex_t *)(bsp->texdata + miptexlump->dataofs[i]);
|
miptex = (miptex_t *)(bsp->texdata + miptexlump->dataofs[i]);
|
||||||
pixels = miptex->width * miptex->height / 64 * 85;
|
pixels = miptex->width * miptex->height / 64 * 85;
|
||||||
mtsize = sizeof (miptex_t) + pixels;
|
mtsize = sizeof (miptex_t) + pixels;
|
||||||
uname = unique_name (wad, miptex->name);
|
uname = unique_name (wad, miptex->name);
|
||||||
#if 1
|
#if 1
|
||||||
printf ("%3d %6d ", i, miptexlump->dataofs[i]);
|
printf ("%3zd %6d ", i, miptexlump->dataofs[i]);
|
||||||
printf ("%16.16s %16.16s %3dx%-3d %d %d %d %d %d %d\n",
|
printf ("%16.16s %16.16s %3dx%-3d %d %d %d %d %d %d\n",
|
||||||
miptex->name, uname, miptex->width,
|
miptex->name, uname, miptex->width,
|
||||||
miptex->height, miptex->offsets[0], miptex->offsets[1],
|
miptex->height, miptex->offsets[0], miptex->offsets[1],
|
||||||
|
@ -432,7 +426,6 @@ extract_hull (void)
|
||||||
{
|
{
|
||||||
// hullfile = output_file (".c");
|
// hullfile = output_file (".c");
|
||||||
const char *hullfile;
|
const char *hullfile;
|
||||||
int i, j;
|
|
||||||
QFile *hf;
|
QFile *hf;
|
||||||
|
|
||||||
hullfile = output_file (".c");
|
hullfile = output_file (".c");
|
||||||
|
@ -441,14 +434,14 @@ extract_hull (void)
|
||||||
else
|
else
|
||||||
hf = Qopen (hullfile, "wt");
|
hf = Qopen (hullfile, "wt");
|
||||||
|
|
||||||
printf ("%d\n", bsp->nummodels);
|
printf ("%zd\n", bsp->nummodels);
|
||||||
for (i = 0; i < bsp->nummodels; i++) {
|
for (size_t i = 0; i < bsp->nummodels; i++) {
|
||||||
dmodel_t *m = bsp->models + i;
|
dmodel_t *m = bsp->models + i;
|
||||||
printf ("mins: (%g, %g, %g)\n", m->mins[0], m->mins[1], m->mins[2]);
|
printf ("mins: (%g, %g, %g)\n", m->mins[0], m->mins[1], m->mins[2]);
|
||||||
printf ("maxs: (%g, %g, %g)\n", m->maxs[0], m->maxs[1], m->maxs[2]);
|
printf ("maxs: (%g, %g, %g)\n", m->maxs[0], m->maxs[1], m->maxs[2]);
|
||||||
printf ("origin: (%g, %g, %g)\n",
|
printf ("origin: (%g, %g, %g)\n",
|
||||||
m->origin[0], m->origin[1], m->origin[2]);
|
m->origin[0], m->origin[1], m->origin[2]);
|
||||||
for (j = 0; j < MAX_MAP_HULLS; j++)
|
for (int j = 0; j < MAX_MAP_HULLS; j++)
|
||||||
printf ("headnodes[%d]: %d\n", j, m->headnode[j]);
|
printf ("headnodes[%d]: %d\n", j, m->headnode[j]);
|
||||||
printf ("visleafs: %d\n", m->visleafs);
|
printf ("visleafs: %d\n", m->visleafs);
|
||||||
printf ("firstface: %d\n", m->firstface);
|
printf ("firstface: %d\n", m->firstface);
|
||||||
|
@ -456,7 +449,7 @@ extract_hull (void)
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
}
|
}
|
||||||
Qprintf (hf, "dclipnode_t clipnodes[] = {\n");
|
Qprintf (hf, "dclipnode_t clipnodes[] = {\n");
|
||||||
for (i = 0; i < bsp->numnodes; i++) {
|
for (size_t i = 0; i < bsp->numnodes; i++) {
|
||||||
int c0, c1;
|
int c0, c1;
|
||||||
c0 = bsp->nodes[i].children[0];
|
c0 = bsp->nodes[i].children[0];
|
||||||
c1 = bsp->nodes[i].children[1];
|
c1 = bsp->nodes[i].children[1];
|
||||||
|
@ -464,13 +457,13 @@ extract_hull (void)
|
||||||
c0 = bsp->leafs[-1 - c0].contents;
|
c0 = bsp->leafs[-1 - c0].contents;
|
||||||
if (c1 < 0)
|
if (c1 < 0)
|
||||||
c1 = bsp->leafs[-1 - c1].contents;
|
c1 = bsp->leafs[-1 - c1].contents;
|
||||||
Qprintf (hf, "\t{%d, {%d, %d}},\t// %d\n", bsp->nodes[i].planenum,
|
Qprintf (hf, "\t{%d, {%d, %d}},\t// %zd\n", bsp->nodes[i].planenum,
|
||||||
c0, c1, i);
|
c0, c1, i);
|
||||||
}
|
}
|
||||||
Qprintf (hf, "};\n");
|
Qprintf (hf, "};\n");
|
||||||
Qprintf (hf, "mplane_t planes[] = {\n");
|
Qprintf (hf, "mplane_t planes[] = {\n");
|
||||||
for (i = 0; i < bsp->numplanes; i++) {
|
for (size_t i = 0; i < bsp->numplanes; i++) {
|
||||||
Qprintf (hf, "\t{{%g, %g, %g}, %g, %d, 0, {0, 0}},\t// %d\n",
|
Qprintf (hf, "\t{{%g, %g, %g}, %g, %d, 0, {0, 0}},\t// %zd\n",
|
||||||
bsp->planes[i].normal[0], bsp->planes[i].normal[1],
|
bsp->planes[i].normal[0], bsp->planes[i].normal[1],
|
||||||
bsp->planes[i].normal[2],
|
bsp->planes[i].normal[2],
|
||||||
bsp->planes[i].dist, bsp->planes[i].type,
|
bsp->planes[i].dist, bsp->planes[i].type,
|
||||||
|
|
|
@ -163,21 +163,19 @@ RecursiveGrowRegion (dface_t *r, face_t *f)
|
||||||
static void
|
static void
|
||||||
CountRealNumbers (void)
|
CountRealNumbers (void)
|
||||||
{
|
{
|
||||||
int c, i;
|
qprintf ("%5zd regions\n", bsp->numfaces - firstmodelface);
|
||||||
|
|
||||||
qprintf ("%5i regions\n", bsp->numfaces - firstmodelface);
|
size_t c = 0;
|
||||||
|
for (size_t i = firstmodelface; i < bsp->numfaces; i++)
|
||||||
c = 0;
|
|
||||||
for (i = firstmodelface; i < bsp->numfaces; i++)
|
|
||||||
c += bsp->faces[i].numedges;
|
c += bsp->faces[i].numedges;
|
||||||
qprintf ("%5i real marksurfaces\n", c);
|
qprintf ("%5zd real marksurfaces\n", c);
|
||||||
|
|
||||||
c = 0;
|
c = 0;
|
||||||
for (i = firstmodeledge; i < bsp->numedges; i++)
|
for (size_t i = firstmodeledge; i < bsp->numedges; i++)
|
||||||
if (edgefaces[i].f[0])
|
if (edgefaces[i].f[0])
|
||||||
c++; // not removed
|
c++; // not removed
|
||||||
|
|
||||||
qprintf ("%5i real edges\n", c);
|
qprintf ("%5zd real edges\n", c);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -204,7 +204,7 @@ int c_cornerverts;
|
||||||
static PR_RESMAP (hashvert_t) hvertex;
|
static PR_RESMAP (hashvert_t) hvertex;
|
||||||
|
|
||||||
#define EDGEFACE_CHUNK 4096
|
#define EDGEFACE_CHUNK 4096
|
||||||
int numedgefaces = 0;
|
size_t numedgefaces = 0;
|
||||||
edgeface_t *edgefaces = 0;
|
edgeface_t *edgefaces = 0;
|
||||||
int firstmodeledge = 1;
|
int firstmodeledge = 1;
|
||||||
int firstmodelface;
|
int firstmodelface;
|
||||||
|
@ -336,12 +336,12 @@ int c_tryedges;
|
||||||
\return The edge number. For a re-used edge, the edge number will
|
\return The edge number. For a re-used edge, the edge number will
|
||||||
be negative, indicating the ends of the edge are reversed.
|
be negative, indicating the ends of the edge are reversed.
|
||||||
*/
|
*/
|
||||||
static int
|
static size_t
|
||||||
GetEdge (const vec3_t p1, const vec3_t p2, face_t *f)
|
GetEdge (const vec3_t p1, const vec3_t p2, face_t *f)
|
||||||
{
|
{
|
||||||
dedge_t edge;
|
dedge_t edge;
|
||||||
unsigned v1, v2;
|
unsigned v1, v2;
|
||||||
int i;
|
size_t i;
|
||||||
|
|
||||||
if (!f->contents[0])
|
if (!f->contents[0])
|
||||||
Sys_Error ("GetEdge: 0 contents");
|
Sys_Error ("GetEdge: 0 contents");
|
||||||
|
|
|
@ -53,10 +53,8 @@ int firstface;
|
||||||
int
|
int
|
||||||
FindFinalPlane (const dplane_t *p)
|
FindFinalPlane (const dplane_t *p)
|
||||||
{
|
{
|
||||||
const dplane_t *dplane;
|
for (size_t i = 0; i < bsp->numplanes; i++) {
|
||||||
int i;
|
const dplane_t *dplane = bsp->planes + i;
|
||||||
|
|
||||||
for (i = 0, dplane = bsp->planes; i < bsp->numplanes; i++, dplane++) {
|
|
||||||
if (p->type != dplane->type)
|
if (p->type != dplane->type)
|
||||||
continue;
|
continue;
|
||||||
if (p->dist != dplane->dist)
|
if (p->dist != dplane->dist)
|
||||||
|
|
|
@ -71,7 +71,7 @@ get_tex_name (int texindex)
|
||||||
if (bsp->texdatasize) {
|
if (bsp->texdatasize) {
|
||||||
mtl = (dmiptexlump_t *) bsp->texdata;
|
mtl = (dmiptexlump_t *) bsp->texdata;
|
||||||
miptex = bsp->texinfo[texindex].miptex;
|
miptex = bsp->texinfo[texindex].miptex;
|
||||||
if (mtl->dataofs[miptex] != -1) {
|
if (mtl->dataofs[miptex] != ~0u) {
|
||||||
mt = (miptex_t *) (bsp->texdata + mtl->dataofs[miptex]);
|
mt = (miptex_t *) (bsp->texdata + mtl->dataofs[miptex]);
|
||||||
return mt->name;
|
return mt->name;
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,6 @@ CalcFaceVectors (lightinfo_t *l, vec3_t faceorg)
|
||||||
static void
|
static void
|
||||||
CalcFaceExtents (lightinfo_t *l)
|
CalcFaceExtents (lightinfo_t *l)
|
||||||
{
|
{
|
||||||
int i, j, e;
|
|
||||||
vec_t mins[2], maxs[2], val;
|
vec_t mins[2], maxs[2], val;
|
||||||
dface_t *s;
|
dface_t *s;
|
||||||
dvertex_t *v;
|
dvertex_t *v;
|
||||||
|
@ -185,14 +184,14 @@ CalcFaceExtents (lightinfo_t *l)
|
||||||
|
|
||||||
tex = &bsp->texinfo[s->texinfo];
|
tex = &bsp->texinfo[s->texinfo];
|
||||||
|
|
||||||
for (i = 0; i < s->numedges; i++) {
|
for (uint32_t i = 0; i < s->numedges; i++) {
|
||||||
e = bsp->surfedges[s->firstedge + i];
|
int e = bsp->surfedges[s->firstedge + i];
|
||||||
if (e >= 0)
|
if (e >= 0)
|
||||||
v = bsp->vertexes + bsp->edges[e].v[0];
|
v = bsp->vertexes + bsp->edges[e].v[0];
|
||||||
else
|
else
|
||||||
v = bsp->vertexes + bsp->edges[-e].v[1];
|
v = bsp->vertexes + bsp->edges[-e].v[1];
|
||||||
|
|
||||||
for (j = 0; j < 2; j++) {
|
for (int j = 0; j < 2; j++) {
|
||||||
val = DotProduct (v->point, tex->vecs[j]) + tex->vecs[j][3];
|
val = DotProduct (v->point, tex->vecs[j]) + tex->vecs[j][3];
|
||||||
if (val < mins[j])
|
if (val < mins[j])
|
||||||
mins[j] = val;
|
mins[j] = val;
|
||||||
|
@ -201,7 +200,7 @@ CalcFaceExtents (lightinfo_t *l)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
l->exactmins[i] = mins[i];
|
l->exactmins[i] = mins[i];
|
||||||
l->exactmaxs[i] = maxs[i];
|
l->exactmaxs[i] = maxs[i];
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ dstring_t *lightdata;
|
||||||
dstring_t *rgblightdata;
|
dstring_t *rgblightdata;
|
||||||
|
|
||||||
dmodel_t *bspmodel;
|
dmodel_t *bspmodel;
|
||||||
int bspfileface; // next surface to dispatch
|
size_t bspfileface; // next surface to dispatch
|
||||||
int bspfileent; // next entity to dispatch
|
int bspfileent; // next entity to dispatch
|
||||||
|
|
||||||
vec3_t bsp_origin;
|
vec3_t bsp_origin;
|
||||||
|
@ -119,13 +119,13 @@ VisThread (void *junk)
|
||||||
static void *
|
static void *
|
||||||
LightThread (void *l)
|
LightThread (void *l)
|
||||||
{
|
{
|
||||||
int i;
|
size_t i;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
LOCK;
|
LOCK;
|
||||||
i = bspfileface++;
|
i = bspfileface++;
|
||||||
if (i < bsp->numfaces) {
|
if (i < bsp->numfaces) {
|
||||||
printf ("%5d / %d\r", i, bsp->numfaces);
|
printf ("%5zd / %zd\r", i, bsp->numfaces);
|
||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
}
|
}
|
||||||
UNLOCK;
|
UNLOCK;
|
||||||
|
@ -139,22 +139,21 @@ LightThread (void *l)
|
||||||
static void
|
static void
|
||||||
FindFaceOffsets (void)
|
FindFaceOffsets (void)
|
||||||
{
|
{
|
||||||
int i, j;
|
|
||||||
entity_t *ent;
|
entity_t *ent;
|
||||||
vec3_t org;
|
vec3_t org;
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
surfaceorgs = (vec3_t *) calloc (bsp->numfaces, sizeof (vec3_t));
|
surfaceorgs = (vec3_t *) calloc (bsp->numfaces, sizeof (vec3_t));
|
||||||
|
|
||||||
for (i = 1; i < bsp->nummodels; i++) {
|
for (size_t i = 1; i < bsp->nummodels; i++) {
|
||||||
ent = FindEntityWithKeyPair ("model", name = va (0, "*%d", i));
|
ent = FindEntityWithKeyPair ("model", name = va (0, "*%zd", i));
|
||||||
VectorZero (org);
|
VectorZero (org);
|
||||||
if (!ent)
|
if (!ent)
|
||||||
Sys_Error ("FindFaceOffsets: Couldn't find entity for model %s.\n",
|
Sys_Error ("FindFaceOffsets: Couldn't find entity for model %s.\n",
|
||||||
name);
|
name);
|
||||||
if (!strncmp (ValueForKey (ent, "classname"), "rotate_", 7))
|
if (!strncmp (ValueForKey (ent, "classname"), "rotate_", 7))
|
||||||
GetVectorForKey (ent, "origin", org);
|
GetVectorForKey (ent, "origin", org);
|
||||||
for (j = 0; j < bsp->models[i].numfaces; j++)
|
for (uint32_t j = 0; j < bsp->models[i].numfaces; j++)
|
||||||
VectorCopy (org, surfaceorgs[bsp->models[i].firstface]);
|
VectorCopy (org, surfaceorgs[bsp->models[i].firstface]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,9 +145,6 @@ VisEntity (int ent_index)
|
||||||
entity_t *entity = entities + ent_index;
|
entity_t *entity = entities + ent_index;
|
||||||
dleaf_t *leaf;
|
dleaf_t *leaf;
|
||||||
int ignorevis = false;
|
int ignorevis = false;
|
||||||
int i;
|
|
||||||
unsigned j;
|
|
||||||
uint32_t *mark;
|
|
||||||
byte *vis, *surfacehit;
|
byte *vis, *surfacehit;
|
||||||
int vis_size;
|
int vis_size;
|
||||||
|
|
||||||
|
@ -193,19 +190,19 @@ VisEntity (int ent_index)
|
||||||
memset (surfacehit, 0, (bsp->numfaces + 7) / 8);
|
memset (surfacehit, 0, (bsp->numfaces + 7) / 8);
|
||||||
|
|
||||||
DecompressVis (bsp->visdata + leaf->visofs, vis, vis_size);
|
DecompressVis (bsp->visdata + leaf->visofs, vis, vis_size);
|
||||||
for (i = 0, leaf = bsp->leafs + 1; i < bsp->models[0].visleafs;
|
for (uint32_t i = 0; i < bsp->models[0].visleafs; i++) {
|
||||||
i++, leaf++) {
|
leaf = bsp->leafs + 1 + i;
|
||||||
if (!leaf->nummarksurfaces)
|
if (!leaf->nummarksurfaces)
|
||||||
continue;
|
continue;
|
||||||
if (vis[i >> 3] & (1 << (i & 7))) {
|
if (vis[i >> 3] & (1 << (i & 7))) {
|
||||||
for (j = 0, mark = bsp->marksurfaces + leaf->firstmarksurface;
|
uint32_t *mark = bsp->marksurfaces + leaf->firstmarksurface;
|
||||||
j < leaf->nummarksurfaces; j++, mark++) {
|
for (size_t j = 0; j < leaf->nummarksurfaces; j++) {
|
||||||
mark_face (*mark, surfacehit, entity);
|
mark_face (*mark++, surfacehit, entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 1; i < bsp->nummodels; i++) {
|
for (size_t i = 1; i < bsp->nummodels; i++) {
|
||||||
for (j = 0; (int) j < bsp->models[i].numfaces; j++) {
|
for (uint32_t j = 0; j < bsp->models[i].numfaces; j++) {
|
||||||
//FIXME vis
|
//FIXME vis
|
||||||
mark_face (bsp->models[i].firstface + j, surfacehit, entity);
|
mark_face (bsp->models[i].firstface + j, surfacehit, entity);
|
||||||
}
|
}
|
||||||
|
@ -216,8 +213,6 @@ VisEntity (int ent_index)
|
||||||
void
|
void
|
||||||
VisStats (void)
|
VisStats (void)
|
||||||
{
|
{
|
||||||
int i, count;
|
|
||||||
|
|
||||||
printf ("%4i lights\n", counts.lights);
|
printf ("%4i lights\n", counts.lights);
|
||||||
printf ("%4i air\n", counts.empty);
|
printf ("%4i air\n", counts.empty);
|
||||||
printf ("%4i solid\n", counts.solid);
|
printf ("%4i solid\n", counts.solid);
|
||||||
|
@ -227,10 +222,11 @@ VisStats (void)
|
||||||
printf ("%4i sky\n", counts.sky);
|
printf ("%4i sky\n", counts.sky);
|
||||||
printf ("%4i unknown\n", counts.misc);
|
printf ("%4i unknown\n", counts.misc);
|
||||||
|
|
||||||
for (i = count = 0; i < bsp->numfaces; i++)
|
size_t count = 0;
|
||||||
|
for (size_t i = 0; i < bsp->numfaces; i++)
|
||||||
if (surfacelightchain[i])
|
if (surfacelightchain[i])
|
||||||
count++;
|
count++;
|
||||||
printf ("%i faces, %i (%i%%) may receive light\n", bsp->numfaces,
|
printf ("%zd faces, %zd (%zd%%) may receive light\n", bsp->numfaces,
|
||||||
count, count * 100 / bsp->numfaces);
|
count, count * 100 / bsp->numfaces);
|
||||||
if (counts.solid || counts.sky)
|
if (counts.solid || counts.sky)
|
||||||
printf ("warning: %i lights of %i lights (%i%%) were found in sky\n"
|
printf ("warning: %i lights of %i lights (%i%%) were found in sky\n"
|
||||||
|
@ -238,6 +234,6 @@ VisStats (void)
|
||||||
"out of the solid or sky to accelerate compiling\n",
|
"out of the solid or sky to accelerate compiling\n",
|
||||||
counts.solid + counts.sky, counts.lights,
|
counts.solid + counts.sky, counts.lights,
|
||||||
(counts.solid + counts.sky) * 100 / counts.lights);
|
(counts.solid + counts.sky) * 100 / counts.lights);
|
||||||
printf ("%i lights will be cast onto %i surfaces, %i casts will "
|
printf ("%i lights will be cast onto %zd surfaces, %i casts will "
|
||||||
"be performed\n", counts.lights, bsp->numfaces, counts.cast);
|
"be performed\n", counts.lights, bsp->numfaces, counts.cast);
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,21 +70,20 @@ static byte *surf_ambients;
|
||||||
static void
|
static void
|
||||||
SurfaceBBox (dface_t *s, vec3_t mins, vec3_t maxs)
|
SurfaceBBox (dface_t *s, vec3_t mins, vec3_t maxs)
|
||||||
{
|
{
|
||||||
int vi, e, i, j;
|
|
||||||
float *v;
|
|
||||||
|
|
||||||
mins[0] = mins[1] = mins[2] = 999999;
|
mins[0] = mins[1] = mins[2] = 999999;
|
||||||
maxs[0] = maxs[1] = maxs[2] = -99999;
|
maxs[0] = maxs[1] = maxs[2] = -99999;
|
||||||
|
|
||||||
for (i = 0; i < s->numedges; i++) {
|
for (uint32_t i = 0; i < s->numedges; i++) {
|
||||||
e = bsp->surfedges[s->firstedge + i];
|
int e = bsp->surfedges[s->firstedge + i];
|
||||||
|
int vi;
|
||||||
|
|
||||||
if (e >= 0)
|
if (e >= 0)
|
||||||
vi = bsp->edges[e].v[0];
|
vi = bsp->edges[e].v[0];
|
||||||
else
|
else
|
||||||
vi = bsp->edges[-e].v[1];
|
vi = bsp->edges[-e].v[1];
|
||||||
v = bsp->vertexes[vi].point;
|
float *v = bsp->vertexes[vi].point;
|
||||||
|
|
||||||
for (j = 0; j < 3; j++) {
|
for (int j = 0; j < 3; j++) {
|
||||||
if (v[j] < mins[j])
|
if (v[j] < mins[j])
|
||||||
mins[j] = v[j];
|
mins[j] = v[j];
|
||||||
if (v[j] > maxs[j])
|
if (v[j] > maxs[j])
|
||||||
|
@ -104,7 +103,7 @@ init_surf_ambients (void)
|
||||||
|
|
||||||
dmiptexlump_t *miptex = (dmiptexlump_t *) bsp->texdata;
|
dmiptexlump_t *miptex = (dmiptexlump_t *) bsp->texdata;
|
||||||
|
|
||||||
for (int i = 0; i < bsp->numfaces; i++) {
|
for (size_t i = 0; i < bsp->numfaces; i++) {
|
||||||
dface_t *surf = &bsp->faces[i];
|
dface_t *surf = &bsp->faces[i];
|
||||||
texinfo_t *info = &bsp->texinfo[surf->texinfo];
|
texinfo_t *info = &bsp->texinfo[surf->texinfo];
|
||||||
int ofs = miptex->dataofs[info->miptex];
|
int ofs = miptex->dataofs[info->miptex];
|
||||||
|
|
Loading…
Reference in a new issue