Delete signs when cutting; change sign location check when saving
Save signs within the original box that was drawn by the user, not within the box that has been expanded to match the wall grid
This commit is contained in:
parent
5d5b8143a4
commit
ade3fd9568
@ -2794,6 +2794,7 @@ void clear_area(int area_x, int area_y, int area_w, int area_h)
|
||||
{
|
||||
int cx = 0;
|
||||
int cy = 0;
|
||||
int i;
|
||||
for (cy=0; cy<area_h; cy++)
|
||||
{
|
||||
for (cx=0; cx<area_w; cx++)
|
||||
@ -2802,6 +2803,13 @@ void clear_area(int area_x, int area_y, int area_w, int area_h)
|
||||
delete_part(cx+area_x, cy+area_y, 0);
|
||||
}
|
||||
}
|
||||
for (i=0; i<MAXSIGNS; i++)
|
||||
{
|
||||
if (signs[i].x>=area_x && signs[i].x<area_x+area_w && signs[i].y>=area_y && signs[i].y<area_y+area_h)
|
||||
{
|
||||
signs[i].text[0] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void create_box(int x1, int y1, int x2, int y2, int c, int flags)
|
||||
|
12
src/save.c
12
src/save.c
@ -707,7 +707,7 @@ void *build_save_OPS(int *size, int orig_x0, int orig_y0, int orig_w, int orig_h
|
||||
signsCount = 0;
|
||||
for(i = 0; i < MAXSIGNS; i++)
|
||||
{
|
||||
if(signs[i].text[0] && signs[i].x>=fullX && signs[i].x<=fullX+fullW && signs[i].y>=fullY && signs[i].y<=fullY+fullH)
|
||||
if(signs[i].text[0] && signs[i].x>=orig_x0 && signs[i].x<=orig_x0+orig_w && signs[i].y>=orig_y0 && signs[i].y<=orig_y0+orig_h)
|
||||
{
|
||||
signsCount++;
|
||||
}
|
||||
@ -717,7 +717,7 @@ void *build_save_OPS(int *size, int orig_x0, int orig_y0, int orig_w, int orig_h
|
||||
bson_append_start_array(&b, "signs");
|
||||
for(i = 0; i < MAXSIGNS; i++)
|
||||
{
|
||||
if(signs[i].text[0] && signs[i].x>=fullX && signs[i].x<=fullX+fullW && signs[i].y>=fullY && signs[i].y<=fullY+fullH)
|
||||
if(signs[i].text[0] && signs[i].x>=orig_x0 && signs[i].x<=orig_x0+orig_w && signs[i].y>=orig_y0 && signs[i].y<=orig_y0+orig_h)
|
||||
{
|
||||
bson_append_start_object(&b, "sign");
|
||||
bson_append_string(&b, "text", signs[i].text);
|
||||
@ -1642,14 +1642,14 @@ void *build_save_PSv(int *size, int orig_x0, int orig_y0, int orig_w, int orig_h
|
||||
j = 0;
|
||||
for (i=0; i<MAXSIGNS; i++)
|
||||
if (signs[i].text[0] &&
|
||||
signs[i].x>=x0 && signs[i].x<x0+w &&
|
||||
signs[i].y>=y0 && signs[i].y<y0+h)
|
||||
signs[i].x>=orig_x0 && signs[i].x<orig_x0+orig_w &&
|
||||
signs[i].y>=orig_y0 && signs[i].y<orig_y0+orig_h)
|
||||
j++;
|
||||
d[p++] = j;
|
||||
for (i=0; i<MAXSIGNS; i++)
|
||||
if (signs[i].text[0] &&
|
||||
signs[i].x>=x0 && signs[i].x<x0+w &&
|
||||
signs[i].y>=y0 && signs[i].y<y0+h)
|
||||
signs[i].x>=orig_x0 && signs[i].x<orig_x0+orig_w &&
|
||||
signs[i].y>=orig_y0 && signs[i].y<orig_y0+orig_h)
|
||||
{
|
||||
d[p++] = (signs[i].x-x0);
|
||||
d[p++] = (signs[i].x-x0)>>8;
|
||||
|
Reference in New Issue
Block a user