diff --git a/src/engine/dynlight.cc b/src/engine/dynlight.cc index 72487f2..e19f8c9 100644 --- a/src/engine/dynlight.cc +++ b/src/engine/dynlight.cc @@ -1,3 +1,4 @@ +#include "pvs.hh" #include "renderva.hh" #include "engine.hh" diff --git a/src/engine/engine.hh b/src/engine/engine.hh index f455fa6..6a51460 100644 --- a/src/engine/engine.hh +++ b/src/engine/engine.hh @@ -35,21 +35,6 @@ extern void drawcubemap(int size, const vec &o, float yaw, float pitch, const cu extern void compacteditvslots(); extern void compactmruvslots(); -// pvs -extern void clearpvs(); -extern bool pvsoccluded(const ivec &bbmin, const ivec &bbmax); -extern bool pvsoccludedsphere(const vec ¢er, float radius); -extern bool waterpvsoccluded(int height); -extern void setviewcell(const vec &p); -extern void savepvs(stream *f); -extern void loadpvs(stream *f, int numpvs); -extern int getnumviewcells(); - -static inline bool pvsoccluded(const ivec &bborigin, int size) -{ - return pvsoccluded(bborigin, ivec(bborigin).add(size)); -} - // renderlights #include "renderlights.hh" diff --git a/src/engine/octaedit.cc b/src/engine/octaedit.cc index 3369287..8ee7480 100644 --- a/src/engine/octaedit.cc +++ b/src/engine/octaedit.cc @@ -1,6 +1,7 @@ #include "blend.hh" #include "material.hh" #include "octa.hh" +#include "pvs.hh" #include "rendergl.hh" #include "renderva.hh" #include "texture.hh" diff --git a/src/engine/pvs.cc b/src/engine/pvs.cc index 5740bac..7febc4a 100644 --- a/src/engine/pvs.cc +++ b/src/engine/pvs.cc @@ -1,3 +1,4 @@ +#include "pvs.hh" #include "octa.hh" #include "engine.hh" @@ -286,7 +287,7 @@ static struct vector matsurfs; } waterplanes[MAXWATERPVS]; static vector waterfalls; -uint numwaterplanes = 0; +static uint numwaterplanes = 0; struct pvsworker { @@ -1061,7 +1062,7 @@ static void findwaterplanes() if(waterfalls.length() > 0 && numwaterplanes < MAXWATERPVS) numwaterplanes++; } -void testpvs(int *vcsize) +static void testpvs(int *vcsize) { lockpvs_(false); @@ -1098,7 +1099,7 @@ void testpvs(int *vcsize) COMMAND(testpvs, "i"); -void genpvs(int *viewcellsize) +static void genpvs(int *viewcellsize) { if(worldsize > 1<<15) { @@ -1181,7 +1182,7 @@ void genpvs(int *viewcellsize) COMMAND(genpvs, "i"); -void pvsstats() +static void pvsstats() { conoutf("%d unique view cells totaling %.1f kB and averaging %d B", pvs.length(), pvsbuf.length()/1024.0f, pvsbuf.length()/max(pvs.length(), 1)); @@ -1252,7 +1253,7 @@ bool waterpvsoccluded(int height) return false; } -void saveviewcells(stream *f, viewcellnode &p) +static void saveviewcells(stream *f, viewcellnode &p) { f->putchar(p.leafmask); loopi(8) @@ -1280,7 +1281,7 @@ void savepvs(stream *f) saveviewcells(f, *viewcells); } -viewcellnode *loadviewcells(stream *f) +static viewcellnode *loadviewcells(stream *f) { viewcellnode *p = new viewcellnode; p->leafmask = f->getchar(); diff --git a/src/engine/pvs.hh b/src/engine/pvs.hh new file mode 100644 index 0000000..7086f01 --- /dev/null +++ b/src/engine/pvs.hh @@ -0,0 +1,20 @@ +#ifndef ENGINE_PVS_HH +#define ENGINE_PVS_HH + +#include + +void clearpvs(); +bool pvsoccluded(const ivec &bbmin, const ivec &bbmax); +bool pvsoccludedsphere(const vec ¢er, float radius); +bool waterpvsoccluded(int height); +void setviewcell(const vec &p); +void savepvs(stream *f); +void loadpvs(stream *f, int numpvs); +int getnumviewcells(); + +static inline bool pvsoccluded(const ivec &bborigin, int size) +{ + return pvsoccluded(bborigin, ivec(bborigin).add(size)); +} + +#endif diff --git a/src/engine/rendergl.cc b/src/engine/rendergl.cc index c7c64e4..f94e06d 100644 --- a/src/engine/rendergl.cc +++ b/src/engine/rendergl.cc @@ -4,6 +4,7 @@ #include "blend.hh" #include "grass.hh" #include "material.hh" +#include "pvs.hh" #include "rendergl.hh" #include "rendersky.hh" #include "rendertext.hh" diff --git a/src/engine/renderlights.cc b/src/engine/renderlights.cc index a0c5788..0e22542 100644 --- a/src/engine/renderlights.cc +++ b/src/engine/renderlights.cc @@ -2,6 +2,7 @@ #include "aa.hh" #include "material.hh" +#include "pvs.hh" #include "rendergl.hh" #include "rendersky.hh" #include "renderva.hh" diff --git a/src/engine/rendermodel.cc b/src/engine/rendermodel.cc index 45ae878..20281ac 100644 --- a/src/engine/rendermodel.cc +++ b/src/engine/rendermodel.cc @@ -1,4 +1,5 @@ #include "aa.hh" +#include "pvs.hh" #include "rendergl.hh" #include "renderva.hh" #include "shader.hh" diff --git a/src/engine/renderparticles.cc b/src/engine/renderparticles.cc index d8a1bce..badfb15 100644 --- a/src/engine/renderparticles.cc +++ b/src/engine/renderparticles.cc @@ -1,5 +1,6 @@ // renderparticles.cpp +#include "pvs.hh" #include "rendergl.hh" #include "rendertext.hh" #include "renderva.hh" diff --git a/src/engine/renderva.cc b/src/engine/renderva.cc index 58216fc..bed871a 100644 --- a/src/engine/renderva.cc +++ b/src/engine/renderva.cc @@ -3,6 +3,7 @@ #include "renderva.hh" #include "blend.hh" #include "grass.hh" +#include "pvs.hh" #include "rendergl.hh" #include "rendersky.hh" #include "texture.hh" diff --git a/src/engine/world.cc b/src/engine/world.cc index 89c9f0e..087fc06 100644 --- a/src/engine/world.cc +++ b/src/engine/world.cc @@ -2,6 +2,7 @@ #include "blend.hh" #include "octa.hh" +#include "pvs.hh" #include "rendergl.hh" /* fovy */ #include "renderlights.hh" #include "stain.hh" diff --git a/src/engine/worldio.cc b/src/engine/worldio.cc index ac910ed..2f309dc 100644 --- a/src/engine/worldio.cc +++ b/src/engine/worldio.cc @@ -2,6 +2,7 @@ #include "blend.hh" #include "octa.hh" +#include "pvs.hh" #include "texture.hh" #include "world.hh" #include "worldio.hh"