diff --git a/src/engine/aa.cc b/src/engine/aa.cc index 62efa4f..a5c41fa 100644 --- a/src/engine/aa.cc +++ b/src/engine/aa.cc @@ -1,4 +1,6 @@ #include "aa.hh" + +#include "main.hh" // fatal #include "rendergl.hh" #include "renderlights.hh" #include "texture.hh" diff --git a/src/engine/blend.cc b/src/engine/blend.cc index eed4a6d..08abcce 100644 --- a/src/engine/blend.cc +++ b/src/engine/blend.cc @@ -2,6 +2,7 @@ #include "console.hh" /* conoutf */ #include "light.hh" +#include "main.hh" // multiplayer #include "octaedit.hh" #include "rendergl.hh" /* has* */ #include "renderva.hh" diff --git a/src/engine/command.cc b/src/engine/command.cc index 46909db..d94799b 100644 --- a/src/engine/command.cc +++ b/src/engine/command.cc @@ -4,6 +4,7 @@ #include "command.hh" #include "console.hh" +#include "main.hh" // fatal #include "engine.hh" diff --git a/src/engine/main.cc b/src/engine/main.cc index 3fd6856..8007cd1 100644 --- a/src/engine/main.cc +++ b/src/engine/main.cc @@ -28,6 +28,8 @@ static void swapbuffers(bool overlay = true); VAR(mainmenu, 1, 1, 0); +bool haslocalclients(); // game, FIXME + void clientkeepalive() {} bool multiplayer(bool msg) diff --git a/src/engine/main.hh b/src/engine/main.hh index 4acb337..f2c5c44 100644 --- a/src/engine/main.hh +++ b/src/engine/main.hh @@ -43,4 +43,9 @@ enum { TI_CONSOLE = 1<<0, TI_GUI = 1<<1 }; void textinput(bool on, int mask = ~0); +void fatal(const char *s, ...) PRINTFARGS(1, 2); + +bool isconnected(bool attempt = false, bool local = true); +bool multiplayer(bool msg = true); + #endif diff --git a/src/engine/octaedit.cc b/src/engine/octaedit.cc index ce2f3d4..a27a8a1 100644 --- a/src/engine/octaedit.cc +++ b/src/engine/octaedit.cc @@ -3,7 +3,7 @@ #include "blend.hh" #include "console.hh" /* conoutf */ #include "light.hh" -#include "main.hh" // mainmenu, keyrepeat, renderedframe, player +#include "main.hh" // mainmenu, keyrepeat, renderedframe, player, isconnected, multiplayer #include "material.hh" #include "octa.hh" #include "octarender.hh" diff --git a/src/engine/octarender.cc b/src/engine/octarender.cc index 4e1e01e..7fec8aa 100644 --- a/src/engine/octarender.cc +++ b/src/engine/octarender.cc @@ -6,7 +6,7 @@ #include "console.hh" /* conoutf */ #include "grass.hh" #include "light.hh" -#include "main.hh" // mainmenu, laodprogress +#include "main.hh" // mainmenu, laodprogress, isconnected #include "material.hh" #include "rendergl.hh" #include "renderlights.hh" diff --git a/src/engine/rendergl.cc b/src/engine/rendergl.cc index b496a82..7af9a83 100644 --- a/src/engine/rendergl.cc +++ b/src/engine/rendergl.cc @@ -4,7 +4,7 @@ #include "blend.hh" #include "console.hh" #include "grass.hh" -#include "main.hh" // mainmenu, renderbackground, getfps, getclockmillis, screenw/h, inbetweenframes, renderedframe, player +#include "main.hh" // mainmenu, renderbackground, getfps, getclockmillis, screenw/h, inbetweenframes, renderedframe, player, fatal #include "material.hh" #include "pvs.hh" #include "octaedit.hh" diff --git a/src/engine/renderlights.cc b/src/engine/renderlights.cc index d488b03..1f62c4e 100644 --- a/src/engine/renderlights.cc +++ b/src/engine/renderlights.cc @@ -3,7 +3,7 @@ #include "aa.hh" #include "dynlight.hh" #include "light.hh" -#include "main.hh" // initwarning +#include "main.hh" // initwarning, fatal #include "material.hh" #include "octaedit.hh" // editmode #include "octarender.hh" diff --git a/src/engine/renderparticles.cc b/src/engine/renderparticles.cc index 31fc1db..9a6b99f 100644 --- a/src/engine/renderparticles.cc +++ b/src/engine/renderparticles.cc @@ -10,6 +10,7 @@ #include "rendertext.hh" #include "renderva.hh" #include "shader.hh" +#include "stain.hh" #include "texture.hh" #include "water.hh" #include "world.hh" diff --git a/src/engine/rendertext.cc b/src/engine/rendertext.cc index 2cf02b2..41c228f 100644 --- a/src/engine/rendertext.cc +++ b/src/engine/rendertext.cc @@ -1,5 +1,6 @@ #include "rendertext.hh" +#include "main.hh" // fatal #include "rendergl.hh" // xtraverts #include "texture.hh" diff --git a/src/engine/shader.cc b/src/engine/shader.cc index 3d27965..a077325 100644 --- a/src/engine/shader.cc +++ b/src/engine/shader.cc @@ -4,7 +4,7 @@ #include "command.hh" // identflags #include "console.hh" /* conoutf */ -#include "main.hh" // loadprogress, renderprogress +#include "main.hh" // loadprogress, renderprogress, fatal #include "octarender.hh" #include "rendergl.hh" #include "rendermodel.hh" // cleanupmodels diff --git a/src/engine/stain.hh b/src/engine/stain.hh index 88afbfc..fbb36d6 100644 --- a/src/engine/stain.hh +++ b/src/engine/stain.hh @@ -13,4 +13,20 @@ bool renderstains(int sbuf, bool gbuf, int layer = 0); void cleanupstains(); void genstainmmtri(stainrenderer *s, const vec v[3]); +enum +{ + STAIN_BLOOD = 0, + STAIN_PULSE_SCORCH, + STAIN_RAIL_HOLE, + STAIN_PULSE_GLOW, + STAIN_RAIL_GLOW +}; + +extern void addstain(int type, const vec ¢er, const vec &surface, float radius, const bvec &color = bvec(0xFF, 0xFF, 0xFF), int info = 0); + +static inline void addstain(int type, const vec ¢er, const vec &surface, float radius, int color, int info = 0) +{ + addstain(type, center, surface, radius, bvec::hexcolor(color), info); +} + #endif diff --git a/src/engine/texture.cc b/src/engine/texture.cc index 65e69aa..676ba86 100644 --- a/src/engine/texture.cc +++ b/src/engine/texture.cc @@ -5,7 +5,7 @@ #include "command.hh" // identflags #include "console.hh" /* conoutf */ #include "light.hh" -#include "main.hh" // initwarning, loadprogress, renderprogress, screenw/h, renderedframe +#include "main.hh" // initwarning, loadprogress, renderprogress, screenw/h, renderedframe, fatal, multiplayer #include "material.hh" #include "octaedit.hh" #include "octarender.hh" diff --git a/src/engine/world.cc b/src/engine/world.cc index 6e3a107..60af5e5 100644 --- a/src/engine/world.cc +++ b/src/engine/world.cc @@ -4,7 +4,7 @@ #include "command.hh" #include "console.hh" /* conoutf */ #include "light.hh" -#include "main.hh" // clearmainmenu, player +#include "main.hh" // clearmainmenu, player, isconnected, multiplayer #include "octa.hh" #include "octaedit.hh" #include "octarender.hh" diff --git a/src/engine/worldio.cc b/src/engine/worldio.cc index ad3f14f..a006b33 100644 --- a/src/engine/worldio.cc +++ b/src/engine/worldio.cc @@ -3,7 +3,7 @@ #include "blend.hh" #include "command.hh" // idents, identflags #include "console.hh" /* conoutf */ -#include "main.hh" // clearmainmenu, renderbackground +#include "main.hh" // clearmainmenu, renderbackground, multiplayer #include "octa.hh" #include "octaedit.hh" // texmru #include "octarender.hh" diff --git a/src/shared/iengine.hh b/src/shared/iengine.hh index ac2832c..02b4a7d 100644 --- a/src/shared/iengine.hh +++ b/src/shared/iengine.hh @@ -85,13 +85,6 @@ extern void loopend(ident *id, identstack &stack); static inline void loopiter(ident *id, identstack &stack, int i) { tagval v; v.setint(i); loopiter(id, stack, v); } static inline void loopiter(ident *id, identstack &stack, float f) { tagval v; v.setfloat(f); loopiter(id, stack, v); } -// main -extern void fatal(const char *s, ...) PRINTFARGS(1, 2); - -// texture - -struct VSlot; - // rendergl extern physent *camera1; extern vec worldpos, camdir, camright, camup; @@ -117,23 +110,6 @@ extern void pushhudscale(float sx, float sy = 0); extern void pushhudtranslate(float tx, float ty, float sx = 0, float sy = 0); extern void resethudshader(); -// stain -enum -{ - STAIN_BLOOD = 0, - STAIN_PULSE_SCORCH, - STAIN_RAIL_HOLE, - STAIN_PULSE_GLOW, - STAIN_RAIL_GLOW -}; - -extern void addstain(int type, const vec ¢er, const vec &surface, float radius, const bvec &color = bvec(0xFF, 0xFF, 0xFF), int info = 0); - -static inline void addstain(int type, const vec ¢er, const vec &surface, float radius, int color, int info = 0) -{ - addstain(type, center, surface, radius, bvec::hexcolor(color), info); -} - // physics extern vec collidewall; extern int collideinside; @@ -159,8 +135,3 @@ extern void cleardynentcache(); extern void updatedynentcache(physent *d); extern bool entinmap(dynent *d, bool avoidplayers = false); extern void findplayerspawn(dynent *d, int forceent = -1, int tag = 0); - -// client -extern bool haslocalclients(); -extern bool isconnected(bool attempt = false, bool local = true); -extern bool multiplayer(bool msg = true); diff --git a/src/shared/igame.hh b/src/shared/igame.hh index dbb862e..ff50705 100644 --- a/src/shared/igame.hh +++ b/src/shared/igame.hh @@ -1,6 +1,7 @@ // the interface the engine uses to run the gameplay module struct selinfo; +struct VSlot; namespace entities {