#endif
}
-static int Mod_Q1BSP_LightPoint_RecursiveBSPNode(vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal, const mnode_t *node, float x, float y, float startz, float endz)
+static int Mod_Q1BSP_LightPoint_RecursiveBSPNode(model_t *model, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal, const mnode_t *node, float x, float y, float startz, float endz)
{
int side, distz = endz - startz;
float front, back;
}
// go down front side
- if (node->children[side]->plane && Mod_Q1BSP_LightPoint_RecursiveBSPNode(ambientcolor, diffusecolor, diffusenormal, node->children[side], x, y, startz, mid))
+ if (node->children[side]->plane && Mod_Q1BSP_LightPoint_RecursiveBSPNode(model, ambientcolor, diffusecolor, diffusenormal, node->children[side], x, y, startz, mid))
return true; // hit something
else
{
int i, ds, dt;
msurface_t *surface;
- surface = r_refdef.worldmodel->data_surfaces + node->firstsurface;
+ surface = model->data_surfaces + node->firstsurface;
for (i = 0;i < node->numsurfaces;i++, surface++)
{
if (!(surface->texture->basematerialflags & MATERIALFLAG_WALL) || !surface->lightmapinfo->samples)
void Mod_Q1BSP_LightPoint(model_t *model, const vec3_t p, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal)
{
- Mod_Q1BSP_LightPoint_RecursiveBSPNode(ambientcolor, diffusecolor, diffusenormal, model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode, p[0], p[1], p[2], p[2] - 65536);
+ Mod_Q1BSP_LightPoint_RecursiveBSPNode(model, ambientcolor, diffusecolor, diffusenormal, model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode, p[0], p[1], p[2], p[2] - 65536);
}
static void Mod_Q1BSP_DecompressVis(const qbyte *in, const qbyte *inend, qbyte *out, qbyte *outend)
out->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_WATERALPHA;
else
out->basematerialflags |= MATERIALFLAG_WALL;
- if (out->surfaceparms & Q3SURFACEPARM_TRANS)
+ if (out->textureflags & Q3TEXTUREFLAG_ALPHATEST)
+ {
+ // FIXME: support alpha test?
+ out->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_TRANSPARENT;
+ }
+ else if (out->surfaceparms & Q3SURFACEPARM_TRANS)
{
if (out->textureflags & Q3TEXTUREFLAG_ADDITIVE)
out->basematerialflags |= MATERIALFLAG_ADD | MATERIALFLAG_TRANSPARENT;
for (i = 0;i < count;i++, in++, out++)
{
- out->normal[0] = LittleLong(in->normal[0]);
- out->normal[1] = LittleLong(in->normal[1]);
- out->normal[2] = LittleLong(in->normal[2]);
- out->dist = LittleLong(in->dist);
+ out->normal[0] = LittleFloat(in->normal[0]);
+ out->normal[1] = LittleFloat(in->normal[1]);
+ out->normal[2] = LittleFloat(in->normal[2]);
+ out->dist = LittleFloat(in->dist);
PlaneClassify(out);
}
}