} /* add_small_castle() */

/***********************************************************
*
*   Method:
*       add_stairs
*
*   Description:
*       Adds stairs to the map.
*
***********************************************************/

        public void add_stairs(int x, int y, int h, block_type block, Boolean up)
        {
            for (int i = 0; i < h; i++)
            {
                for (int j = 0; j < h; j++)
                {
                    if (i >= j && up)
                    {
                        blocks[(x + i), (y - j)] = block;
                    }
                    if (i < (h - j) && !up)
                    {
                        blocks[(x + i), (y - j)] = block;
                    }
                }
            }
        } /* add_stairs() */
/*--------------------------------------------------------------------
*                          ATTRIBUTES
*  --------------------------------------------------------------------*/

/*--------------------------------------------------------------------
*                           METHODS
*  --------------------------------------------------------------------*/

/***********************************************************
*
*   Method:
*       map_1_1_type
*
*   Description:
*       Constructor.
*
***********************************************************/

        public map_1_1_type()
        {
            int x = 0;

/*----------------------------------------------------------
*  Set up level tiers
*  ----------------------------------------------------------*/
            tier_count  = 2;
            tier_widths = new int[tier_count];
            tier_colors = new Color[tier_count];

            tier_colors[0] = new Color(92, 147, 255);
            tier_colors[1] = Color.Black;

            height         = 15;
            tier_widths[0] = 225;
            tier_widths[1] = 17;

            width = 0;
            for (int i = 0; i < tier_count; i++)
            {
                width += tier_widths[i];
            }

            flag_loc.Height = 10 * Blocks.size.Height;
            flag_loc.Width  = 1 * Blocks.size.Width;
            flag_loc.X      = 198 * Blocks.size.Width;
            flag_loc.Y      = 2 * Blocks.size.Height;

            exit_loc_x = (204 * Blocks.size.Width + 2) << 12;

            view_locks.Add(new Rectangle(tier_widths[0] * Blocks.size.Width, 0, 17 * Blocks.size.Width, 13 * Blocks.size.Height));

/*----------------------------------------------------------
*  Set up map sizes
*  ----------------------------------------------------------*/
            blocks = new block_type[width, height];

            for (int i = 0; i < width; i++)
            {
                for (int j = 0; j < height; j++)
                {
                    blocks[i, j] = null;
                }
            }

/*----------------------------------------------------------
*  Add static blocks
*  ----------------------------------------------------------*/
/*----------------------------------------------
*  Tier 0
*  ----------------------------------------------*/
            block_type cobble = new block_red_cobble_type();
            block_type stair  = new block_stair_type();

            for (int i = 0; i < tier_widths[0]; i++)
            {
                for (int j = height - 2; j < height; j++)
                {
                    if ((i != 69 && i != 70 && i != 86) &&
                        (i != 87 && i != 88 && i != 153) && i != 154)
                    {
                        blocks[i, j] = cobble;
                    }
                }
            }

            blocks[flag_loc.X / Blocks.size.Width, 12] = stair;

            add_stairs(134, 12, 4, stair, true);
            add_stairs(140, 12, 4, stair, false);

            add_stairs(148, 12, 4, stair, true);
            for (int j = 9; j < 13; j++)
            {
                blocks[152, j] = stair;
            }
            add_stairs(155, 12, 4, stair, false);

            add_stairs(181, 12, 8, stair, true);
            for (int j = 5; j < 13; j++)
            {
                blocks[189, j] = stair;
            }

/*----------------------------------------------
*  Tier 1
*  ----------------------------------------------*/
            block_type blue_cobble = new block_blue_cobble_type();

            for (int i = 0; i < tier_widths[1]; i++)
            {
                for (int j = height - 2; j < height; j++)
                {
                    blocks[tier_widths[0] + i, j] = blue_cobble;
                }
            }

/*----------------------------------------------------------
*  Add non-static blocks
*  ----------------------------------------------------------*/
/*----------------------------------------------
*  Tier 0
*  ----------------------------------------------*/
            blocks[16, 9] = new block_question_type();
            blocks[20, 9] = new block_brick_type();
            blocks[21, 9] = new block_question_type();
            blocks[22, 9] = new block_brick_type();
            blocks[22, 5] = new block_question_type();
            blocks[23, 9] = new block_question_type();
            blocks[24, 9] = new block_brick_type();

            blocks[77, 9] = new block_brick_type();
            blocks[78, 9] = new block_question_type();
            blocks[79, 9] = new block_brick_type();

            for (int i = 80; i < 88; i++)
            {
                blocks[i, 5] = new block_brick_type();
            }

            for (int i = 91; i < 94; i++)
            {
                blocks[i, 5] = new block_brick_type();
            }

            blocks[94, 5]  = new block_question_type();
            blocks[94, 9]  = new block_brick_type();
            blocks[100, 9] = new block_brick_type();
            blocks[101, 9] = new block_brick_type();
            blocks[106, 9] = new block_question_type();
            blocks[109, 9] = new block_question_type();
            blocks[109, 5] = new block_question_type();
            blocks[112, 9] = new block_question_type();
            blocks[118, 9] = new block_brick_type();
            blocks[121, 5] = new block_brick_type();
            blocks[122, 5] = new block_brick_type();
            blocks[123, 5] = new block_brick_type();
            blocks[128, 5] = new block_brick_type();
            blocks[129, 9] = new block_brick_type();
            blocks[130, 9] = new block_brick_type();
            blocks[131, 5] = new block_brick_type();
            blocks[129, 5] = new block_question_type();
            blocks[130, 5] = new block_question_type();
            blocks[168, 9] = new block_brick_type();
            blocks[169, 9] = new block_brick_type();
            blocks[170, 9] = new block_question_type();
            blocks[171, 9] = new block_brick_type();

/*----------------------------------------------
*  Tier 1
*  ----------------------------------------------*/
            for (int j = 2; j < height - 2; j++)
            {
                blocks[tier_widths[0], j] = new block_brick_blue_type();
            }

            for (int i = 4; i < 11; i++)
            {
                blocks[tier_widths[0] + i, 2]  = new block_brick_blue_type();
                blocks[tier_widths[0] + i, 10] = new block_brick_blue_type();
                blocks[tier_widths[0] + i, 11] = new block_brick_blue_type();
                blocks[tier_widths[0] + i, 12] = new block_brick_blue_type();
            }

/*----------------------------------------------------------
*  Add pipes
*  ----------------------------------------------------------*/
/*----------------------------------------------
*  Tier 0
*  ----------------------------------------------*/
            pipes.Add(new pipe_type(this, 28, 11, true, 2));
            pipes.Add(new pipe_type(this, 38, 10, true, 3));
            pipes.Add(new pipe_type(this, 46, 9, true, 4));
            pipes.Add(new pipe_type(this, 57, 9, true, 4));
            pipes.Add(new pipe_type(this, 163, 11, true, 2));
            pipes.Add(new pipe_type(this, 179, 11, true, 2));

/*----------------------------------------------
*  Tier 1
*  ----------------------------------------------*/
            pipes.Add(new pipe_type(this, tier_widths[0] + 15, 1, true, 12));
            pipes.Add(new pipe_type(this, tier_widths[0] + 13, 11, false, 3));
            blocks[tier_widths[0] + 15, 1] = null;
            blocks[tier_widths[0] + 15, 1] = null;

/*----------------------------------------------------------
*  Add pipe links
*  ----------------------------------------------------------*/
            pipes[3].link_pipe(new int_vector2_type((tier_widths[0] + 2) * Blocks.size.Width, Blocks.size.Height));
            pipes[7].link_pipe(pipes[4]);

/*----------------------------------------------------------
*  Add decoration
*  ----------------------------------------------------------*/
            x = 0;
            for (int i = 0; i < 5; i++)
            {
                decors.Add(new decor_hill_type(0 + x, 173));
                decors.Add(new decor_cloud_type(136 + x, 49, 1));
                decors.Add(new decor_bush_type(184 + x, 192, 3));
                decors.Add(new decor_hill_type(241 + x, 189));
                decors.Add(new decor_cloud_type(312 + x, 33, 1));
                decors.Add(new decor_bush_type(377 + x, 192, 1));
                decors.Add(new decor_cloud_type(440 + x, 49, 3));

                if (i < 4)
                {
                    decors.Add(new decor_cloud_type(584 + x, 33, 2));
                    decors.Add(new decor_bush_type(664 + x, 192, 2));
                }

                x += 768;
            }

            decors.Add(new decor_pole_type(flag_loc.X, flag_loc.Y));
            flag = new decor_flag_type((flag_loc.X) - 8, flag_loc.Y + 17);
            decors.Add(flag);

            add_small_castle(202, 12);
        } /* map_1_1_type() */