Commands in signs, some don't fit
This commit is contained in:
parent
e882dfecf9
commit
b08c37342b
@ -2961,9 +2961,23 @@ void render_signs(pixel *vid_buf)
|
|||||||
}
|
}
|
||||||
drawtext(vid_buf, x+3, y+3, buff, 0, 191, 255, 255);
|
drawtext(vid_buf, x+3, y+3, buff, 0, 191, 255, 255);
|
||||||
}
|
}
|
||||||
|
if(sregexp(signs[i].text, "^{e:.*|.*}$")==0)
|
||||||
|
{
|
||||||
|
int sldr, startm;
|
||||||
|
memset(buff, 0, sizeof(buff));
|
||||||
|
for(sldr=3; signs[i].text[sldr-1] != '|'; sldr++)
|
||||||
|
startm = sldr + 1;
|
||||||
|
sldr = startm;
|
||||||
|
while(signs[i].text[sldr] != '}')
|
||||||
|
{
|
||||||
|
buff[sldr - startm] = signs[i].text[sldr];
|
||||||
|
sldr++;
|
||||||
|
}
|
||||||
|
drawtext(vid_buf, x+3, y+3, buff, 0, 255, 215, 255);
|
||||||
|
}
|
||||||
|
|
||||||
//Usual text
|
//Usual text
|
||||||
if(strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$"))
|
if(strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$") && sregexp(signs[i].text, "^{e:.*|.*}$"))
|
||||||
drawtext(vid_buf, x+3, y+3, signs[i].text, 255, 255, 255, 255);
|
drawtext(vid_buf, x+3, y+3, signs[i].text, 255, 255, 255, 255);
|
||||||
|
|
||||||
x = signs[i].x;
|
x = signs[i].x;
|
||||||
|
@ -105,9 +105,25 @@ void get_sign_pos(int i, int *x0, int *y0, int *w, int *h)
|
|||||||
}
|
}
|
||||||
*w = textwidth(buff) + 5;
|
*w = textwidth(buff) + 5;
|
||||||
}
|
}
|
||||||
|
if(sregexp(signs[i].text, "^{e:.*|.*}$")==0)//character width limit in signs need to be incresed, as most commands don't fit..
|
||||||
|
{
|
||||||
|
int sldr, startm;
|
||||||
|
char buff[256];
|
||||||
|
memset(buff, 0, sizeof(buff));
|
||||||
|
for(sldr=3; signs[i].text[sldr-1] != '|'; sldr++)
|
||||||
|
startm = sldr + 1;
|
||||||
|
|
||||||
|
sldr = startm;
|
||||||
|
while(signs[i].text[sldr] != '}')
|
||||||
|
{
|
||||||
|
buff[sldr - startm] = signs[i].text[sldr];
|
||||||
|
sldr++;
|
||||||
|
}
|
||||||
|
*w = textwidth(buff) + 5;
|
||||||
|
}
|
||||||
|
|
||||||
//Ususal width
|
//Ususal width
|
||||||
if (strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$"))
|
if (strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$") && sregexp(signs[i].text, "^{e:.*|.*}$"))
|
||||||
*w = textwidth(signs[i].text) + 5;
|
*w = textwidth(signs[i].text) + 5;
|
||||||
*h = 14;
|
*h = 14;
|
||||||
*x0 = (signs[i].ju == 2) ? signs[i].x - *w :
|
*x0 = (signs[i].ju == 2) ? signs[i].x - *w :
|
||||||
|
22
src/main.c
22
src/main.c
@ -2353,6 +2353,7 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
if(!bq)
|
if(!bq)
|
||||||
for(signi=0; signi<MAXSIGNS; signi++)
|
for(signi=0; signi<MAXSIGNS; signi++)
|
||||||
|
{
|
||||||
if(sregexp(signs[signi].text, "^{c:[0-9]*|.*}$")==0)
|
if(sregexp(signs[signi].text, "^{c:[0-9]*|.*}$")==0)
|
||||||
{
|
{
|
||||||
int signx, signy, signw, signh;
|
int signx, signy, signw, signh;
|
||||||
@ -2373,6 +2374,27 @@ int main(int argc, char *argv[])
|
|||||||
open_ui(vid_buf, buff2, 0);
|
open_ui(vid_buf, buff2, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(sregexp(signs[signi].text, "^{e:.*|.*}$")==0)
|
||||||
|
{
|
||||||
|
int signx, signy, signw, signh;
|
||||||
|
get_sign_pos(signi, &signx, &signy, &signw, &signh);
|
||||||
|
if(x>=signx && x<=signx+signw && y>=signy && y<=signy+signh)
|
||||||
|
{
|
||||||
|
char buff[256];
|
||||||
|
int sldr;
|
||||||
|
|
||||||
|
memset(buff, 0, sizeof(buff));
|
||||||
|
|
||||||
|
for(sldr=3; signs[signi].text[sldr] != '|'; sldr++)
|
||||||
|
buff[sldr-3] = signs[signi].text[sldr];
|
||||||
|
|
||||||
|
char buff2[sldr-2]; //TODO: Fix this for Visual Studio
|
||||||
|
memset(buff2, 0, sizeof(buff2));
|
||||||
|
memcpy(&buff2, &buff, sldr-3);
|
||||||
|
process_command(vid_buf, buff2,console_error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c==WL_SIGN+100)
|
if (c==WL_SIGN+100)
|
||||||
|
Reference in New Issue
Block a user