summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2012-04-28 23:11:54 (GMT)
committer jacksonmj <mj-pt@jacksonmj.co.uk>2012-04-28 23:11:54 (GMT)
commitade3fd9568e029b43bf8337a42034e3a5cd867fa (patch)
tree63d355b0c7a2bac42086f342c9199cd92eff36bb /src
parent5d5b8143a41cdd2bc1fe7a136e2370bfc9f61b0a (diff)
downloadpowder-ade3fd9568e029b43bf8337a42034e3a5cd867fa.zip
powder-ade3fd9568e029b43bf8337a42034e3a5cd867fa.tar.gz
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
Diffstat (limited to 'src')
-rw-r--r--src/powder.c8
-rw-r--r--src/save.c12
2 files changed, 14 insertions, 6 deletions
diff --git a/src/powder.c b/src/powder.c
index 354c788..e0ddd5c 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -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)
diff --git a/src/save.c b/src/save.c
index 0e8c086..f6ad26f 100644
--- a/src/save.c
+++ b/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;