private void StressTest2_Button_Click(object sender, RoutedEventArgs e)
        {
            /*
             * Нагрузочный тест на Орду
             */

            Scena scn = Gl.curr_scena;

            if ((bool)comboBox_Rows.IsChecked)
            {
                for (int i = 0; i < scn.size_map_x; i++)
                {
                    for (int j = 0; j < scn.size_map_y; j++)
                    {
                        scn.set_Ground_region_tile(j, i, 1, scn.spriteSet[(i * scn.size_map_y + j) % scn.spriteSet.Count].SpriteId, true);
                    }
                }
            }
            else if ((bool)comboBox_Columns.IsChecked)
            {
                for (int i = 0; i < scn.size_map_x; i++)
                {
                    for (int j = 0; j < scn.size_map_y; j++)
                    {
                        scn.set_Ground_region_tile(i, j, 1, scn.spriteSet[(i * scn.size_map_y + j) % scn.spriteSet.Count].SpriteId, true);
                    }
                }
            }

            Gl.main.HistoryWrite();
        }
        private void FillMap_tile_Button_Click(object sender, RoutedEventArgs e)
        {
            if (Gl.palette.selected_sprite < 0)
            {
                return;
            }


            Scena scn = Gl.curr_scena;

            //int step = Gl.palette.curr_ground_brush_size;
            int step = 1;

            //if (step == 0)
            //    return;

            Thread newWindowThread = Gl.CreateProgressDetWindow("Filling...");

            Gl.ProgressDetProgressChange(0);
            Gl.ProgressDetStatusChange("Draw map..");

            #region get rect
            int sx = 0;
            int sy = 0;
            int ex = scn.size_map_x + step;
            int ey = scn.size_map_y + step;

            double dp = (double)100 / (double)scn.size_map_x * (double)4;

            //if (!(bool)AllMap_toggleButton.IsChecked)
            if (Gl.main.select_land_mode)
            {
                sx = (int)Canvas.GetLeft(Gl.main.rectangle_select_land); //Gl.main.rectangle_select_land. ;
                sy = (int)Canvas.GetTop(Gl.main.rectangle_select_land);;
                ex = (int)(Gl.main.rectangle_select_land.Width - 1);
                ey = (int)(Gl.main.rectangle_select_land.Height - 1);

                sx /= 32;
                sy /= 32;
                ex /= 32;
                ey /= 32;

                sx += step / 2;
                sy += step / 2;
                //ex += sx;
                //ey += sy;

                dp = (double)100 / (double)(ex - sx) * (double)4;
            }
            #endregion get rect


            for (int i = sx; i < ex; i += step)
            {
                for (int j = sy; j < ey; j += step)
                {
                    scn.set_Ground_region_tile(i, j, step, Gl.palette.selected_sprite, true);
                }

                if (i % (4 * step) == 0)
                {
                    Gl.ProgressDetProgressInc(dp);
                    if (Gl.main.select_land_mode)
                    {
                        Gl.ProgressDetStatusChange("Draw.. (" + (i - sx) + "/" + (ex - sx) + ")");
                    }
                    else
                    {
                        Gl.ProgressDetStatusChange("Draw.. (" + i + "/" + scn.size_map_x + ")");
                    }
                }
            }

            Gl.main.HistoryWrite();

            Gl.CloseProgressDetWindow(newWindowThread);
        }