예제 #1
0
    public static void Azulejos()
    {
        Listas.Servidor_Dados.Num_Azulejos = (byte)Gráficos.Tex_Azulejo.GetUpperBound(0);
        Listas.Azulejo = new Listas.Estruturas.Azulejos_Azulejo[Listas.Servidor_Dados.Num_Azulejos + 1];

        // Salva a quantidade dos azulejos
        Escrever.Servidor_Dados();

        // Limpa e lê os dados
        for (byte i = 1; i <= Listas.Azulejo.GetUpperBound(0); i++)
        {
            Limpar.Azulejo(i);
            Azulejo(i);
        }
    }
예제 #2
0
    public static void Azulejo(byte Índice)
    {
        FileInfo Arquivo         = new FileInfo(Diretórios.Azulejos_Dados.FullName + Índice + Diretórios.Formato);
        Size     Textura_Tamanho = Gráficos.TTamanho(Gráficos.Tex_Azulejo[Índice]);
        Size     Tamanho         = new Size(Textura_Tamanho.Width / Globais.Grade - 1, Textura_Tamanho.Height / Globais.Grade - 1);

        // Cria o arquivo caso ele não existir
        if (!Arquivo.Exists)
        {
            Escrever.Azulejo(Índice);
            return;
        }

        // Cria um sistema binário para a manipulação dos dados
        BinaryReader Binário = new BinaryReader(Arquivo.OpenRead());

        // Dados básicos
        Listas.Azulejo[Índice].Largura = Binário.ReadByte();
        Listas.Azulejo[Índice].Altura  = Binário.ReadByte();

        // Previni erros (Foi trocado de azulejo)
        if (Tamanho != new Size(Listas.Azulejo[Índice].Largura, Listas.Azulejo[Índice].Altura))
        {
            Binário.Dispose();
            Limpar.Azulejo(Índice);
            Escrever.Azulejo(Índice);
            return;
        }

        for (byte x = 0; x <= Tamanho.Width; x++)
        {
            for (byte y = 0; y <= Tamanho.Height; y++)
            {
                // Atributos
                Listas.Azulejo[Índice].Azulejo[x, y].Atributo = Binário.ReadByte();

                // Bloqueio direcional
                for (byte i = 0; i <= (byte)Globais.Direções.Quantidade - 1; i++)
                {
                    Listas.Azulejo[Índice].Azulejo[x, y].Bloqueio[i] = Binário.ReadBoolean();
                }
            }
        }

        // Fecha o sistema
        Binário.Dispose();
    }
예제 #3
0
 private void butLimpar_Click(object sender, EventArgs e)
 {
     // Limpa os dados
     Limpar.Azulejo((byte)scrlAzulejo.Value);
 }