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) {