diff options
| author | jacksonmj <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) |
| commit | ade3fd9568e029b43bf8337a42034e3a5cd867fa (patch) | |
| tree | 63d355b0c7a2bac42086f342c9199cd92eff36bb /src | |
| parent | 5d5b8143a41cdd2bc1fe7a136e2370bfc9f61b0a (diff) | |
| download | powder-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.c | 8 | ||||
| -rw-r--r-- | src/save.c | 12 |
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) @@ -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; |
