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); } }
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(); }
private void butLimpar_Click(object sender, EventArgs e) { // Limpa os dados Limpar.Azulejo((byte)scrlAzulejo.Value); }