informative edittoggle

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5687 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
flowtron
2010-09-11 14:38:51 +00:00
parent e02f72d31f
commit e4bc0ea4c6
5 changed files with 32 additions and 31 deletions
+10 -6
View File
@@ -79,10 +79,14 @@ void correctsel() // ensures above invaria
if(sel.xs<=0 || sel.ys<=0) selset = false;
}
bool noteditmode()
bool noteditmode(const char* func)
{
correctsel();
if(!editmode) conoutf("this function is only allowed in edit mode");
if(!editmode)
{
if(func && func[0]!='\0') conoutf("\f4[\f3%s\f4]\f5 is only allowed in edit mode", func);
else conoutf("this function is only allowed in edit mode");
}
return !editmode;
}
@@ -92,9 +96,9 @@ bool noselection()
return !selset;
}
#define EDITSEL if(noteditmode() || noselection()) return;
#define EDITSELMP if(noteditmode() || noselection() || multiplayer()) return;
#define EDITMP if(noteditmode() || multiplayer()) return;
#define EDITSEL if(noteditmode("EDITSEL") || noselection()) return;
#define EDITSELMP if(noteditmode("EDITSELMP") || noselection() || multiplayer()) return;
#define EDITMP if(noteditmode("EDITMP") || multiplayer()) return;
void selectpos(int x, int y, int xs, int ys)
{
@@ -470,7 +474,7 @@ void perlin(int scale, int seed, int psize)
VARF(fullbright, 0, 0, 1,
if(fullbright)
{
if(noteditmode()) return;
if(noteditmode("fullbright")) return;
fullbrightlight();
}
else calclight();
+1 -4
View File
@@ -190,7 +190,7 @@ void sethomedir(const char *dir)
clientlogf("Using home directory: %s", tmpdir);
#endif
if(fixpackagedir(tmpdir) > 0)
if(fixpackagedir(tmpdir) > 0)
{
copystring(homedir, tmpdir);
createdir(homedir);
@@ -381,9 +381,6 @@ struct filestream : stream
if(file && strchr(mode,'w'))
{
int fail = fstatvfs(fileno(file), &buf);
#ifndef STANDALONE
// if(!fail) conoutf("file test %lu %lu %lu",buf.f_frsize,buf.f_bsize, buf.f_bavail);
#endif
if (fail || buf.f_frsize * buf.f_bavail < MINFSSIZE)
{
close();
+15 -15
View File
@@ -4,7 +4,7 @@ int wx1, wy1, wx2, wy2;
float wsx1, wsy1, wsx2, wsy2;
VARP(watersubdiv, 1, 4, 64);
VARF(waterlevel, -128, -128, 127, if(!noteditmode()) hdr.waterlevel = waterlevel);
VARF(waterlevel, -128, -128, 127, if(!noteditmode("waterlevel")) hdr.waterlevel = waterlevel);
void setwatercolor(const char *r, const char *g, const char *b, const char *a)
{
@@ -84,7 +84,7 @@ void setprojtexmatrix()
void setupmultitexrefract(GLuint reflecttex, GLuint refracttex)
{
setuptmu(0, "K , T @ Ka");
colortmu(0, hdr.watercolor[0]/255.0f, hdr.watercolor[1]/255.0f, hdr.watercolor[2]/255.0f, hdr.watercolor[3]/255.0f);
glBindTexture(GL_TEXTURE_2D, refracttex);
@@ -92,9 +92,9 @@ void setupmultitexrefract(GLuint reflecttex, GLuint refracttex)
glActiveTexture_(GL_TEXTURE1_ARB);
glEnable(GL_TEXTURE_2D);
setuptmu(1, "P , T @ C~a");
glBindTexture(GL_TEXTURE_2D, reflecttex);
setprojtexmatrix();
@@ -104,7 +104,7 @@ void setupmultitexrefract(GLuint reflecttex, GLuint refracttex)
void setupmultitexreflect(GLuint reflecttex)
{
setuptmu(0, "T , K @ Ca", "Ka * P~a");
float a = hdr.watercolor[3]/255.0f;
colortmu(0, hdr.watercolor[0]/255.0f*a, hdr.watercolor[1]/255.0f*a, hdr.watercolor[2]/255.0f*a, 1.0f-a);
@@ -116,9 +116,9 @@ void cleanupmultitex(GLuint reflecttex, GLuint refracttex)
{
resettmu(0);
glLoadIdentity();
if(refracttex)
{
{
glActiveTexture_(GL_TEXTURE1_ARB);
glDisable(GL_TEXTURE_2D);
resettmu(1);
@@ -133,7 +133,7 @@ VARP(mtwater, 0, 1, 1);
int renderwater(float hf, GLuint reflecttex, GLuint refracttex)
{
if(wx1<0) return nquads;
wx1 -= wx1%watersubdiv;
wy1 -= wy1%watersubdiv;
@@ -143,7 +143,7 @@ int renderwater(float hf, GLuint reflecttex, GLuint refracttex)
{
if(refracttex)
{
setupmultitexrefract(reflecttex, refracttex);
setupmultitexrefract(reflecttex, refracttex);
renderwaterstrips(vertwmtc, hf, t);
}
else
@@ -157,11 +157,11 @@ int renderwater(float hf, GLuint reflecttex, GLuint refracttex)
glDepthMask(GL_TRUE);
}
cleanupmultitex(reflecttex, refracttex);
return nquads;
}
if(!refracttex)
if(!refracttex)
{
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
@@ -175,7 +175,7 @@ int renderwater(float hf, GLuint reflecttex, GLuint refracttex)
{
glColor4ubv(hdr.watercolor);
renderwaterstrips(vertw, hf, t);
glEnable(GL_TEXTURE_2D);
}
@@ -184,7 +184,7 @@ int renderwater(float hf, GLuint reflecttex, GLuint refracttex)
glBindTexture(GL_TEXTURE_2D, refracttex ? refracttex : reflecttex);
}
if(refracttex)
if(refracttex)
{
glColor3f(1, 1, 1);
renderwaterstrips(vertwt, hf, t);
@@ -205,7 +205,7 @@ int renderwater(float hf, GLuint reflecttex, GLuint refracttex)
glDisable(GL_BLEND);
if(!refracttex) glDepthMask(GL_TRUE);
return nquads;
}
@@ -246,7 +246,7 @@ void calcwaterscissor()
sy2 = max(sy2, y);
}
}
if(sx1 >= sx2 || sy1 >= sy2)
if(sx1 >= sx2 || sy1 >= sy2)
{
sx1 = sy1 = -1;
sx2 = sy2 = 1;
+4 -4
View File
@@ -130,7 +130,7 @@ COMMAND(closestenttype, ARG_1STR);
int closestent() // used for delent and edit mode ent display
{
if(noteditmode()) return -1;
if(noteditmode("closestent")) return -1;
int best = -1, bcnt = 0;
float bdist = 99999;
loopj(3)
@@ -297,7 +297,7 @@ COMMAND(entset, ARG_5STR);
void clearents(char *name)
{
int type = findtype(name);
if(noteditmode() || multiplayer()) return;
if(noteditmode("clearents") || multiplayer()) return;
loopv(ents)
{
entity &e = ents[i];
@@ -357,7 +357,7 @@ void nextplayerstart(char *type)
{
static int cycle = -1;
if(noteditmode()) return;
if(noteditmode("nextplayerstart")) return;
cycle = type[0] ? findentity(PLAYERSTART, cycle + 1, atoi(type)) : findentity(PLAYERSTART, cycle + 1);
if(cycle >= 0)
{
@@ -419,7 +419,7 @@ bool worldbordercheck(int x1, int x2, int y1, int y2, int z1, int z2) // check
bool empty_world(int factor, bool force) // main empty world creation routine, if passed factor -1 will enlarge old world by 1, factor -2 will shrink old world by 1
{
if(!force && noteditmode()) return false;
if(!force && noteditmode("empty world")) return false;
if(factor == -2 && !worldbordercheck(ssize/4 + MINBORD, ssize/4 + MINBORD, ssize/4 + MINBORD, ssize/4 + MINBORD, 0, 0)) { conoutf("map does not fit into smaller world"); return false; }
block *ow = NULL, be = { 0, 0, ssize, ssize }, bs = { ssize/4, ssize/4, ssize/2, ssize/2 };
int oldfactor = sfactor;
+2 -2
View File
@@ -158,12 +158,12 @@ void fullbrightlight(int level)
lastcalclight = totalmillis;
}
VARF(ambient, 0, 0, 0xFFFFFF, if(!noteditmode()) { hdr.ambient = ambient; calclight(); });
VARF(ambient, 0, 0, 0xFFFFFF, if(!noteditmode("ambient")) { hdr.ambient = ambient; calclight(); });
void calclight()
{
bvec acol((hdr.ambient>>16)&0xFF, (hdr.ambient>>8)&0xFF, hdr.ambient&0xFF);
if(!acol.x && !acol.y)
if(!acol.x && !acol.y)
{
if(!acol.z) acol.z = 10;
acol.x = acol.y = acol.z;