28 uint sx =
TileX(start);
29 uint sy =
TileY(start);
33 if (sx > ex)
Swap(sx, ex);
34 if (sy > ey)
Swap(sy, ey);
37 this->
w = ex - sx + 1;
38 this->
h = ey - sy + 1;
56 uint ex = sx + this->
w - 1;
57 uint ey = sy + this->
h - 1;
59 uint ax =
TileX(to_add);
60 uint ay =
TileY(to_add);
68 this->w = ex - sx + 1;
69 this->h = ey - sy + 1;
79 if (ta.
w == 0 || this->w == 0)
return false;
81 assert(ta.
w != 0 && ta.
h != 0 && this->w != 0 && this->h != 0);
85 uint right1 = left1 + this->
w - 1;
86 uint bottom1 = top1 + this->
h - 1;
90 uint right2 = left2 + ta.
w - 1;
91 uint bottom2 = top2 + ta.
h - 1;
108 if (this->
w == 0)
return false;
110 assert(this->
w != 0 && this->
h != 0);
112 uint left =
TileX(this->tile);
113 uint top =
TileY(this->tile);
114 uint tile_x =
TileX(tile);
115 uint tile_y =
TileY(tile);
173 int start_a =
TileY(this->tile) +
TileX(this->tile);
174 int start_b =
TileY(this->tile) -
TileX(this->tile);
176 int end_a = start_a + this->
a;
177 int end_b = start_b + this->
b;
180 if (start_a > end_a) {
185 if (start_b > end_b) {
191 return (a >= start_a && a < end_a && b >= start_b && b < end_b);
202 bool new_line =
false;
208 if (this->
b_max > 0) {
215 if (this->
a_max > 0) {
228 if (this->
b_max > 0) {