コード例 #1
0
    public static void Servidor_Dados()
    {
        // Limpa os dados
        Limpar.Servidor_Dados();

        // Se o arquivo não existir, não é necessário carregá-lo
        if (!Diretórios.Servidor_Dados.Exists)
        {
            Escrever.Servidor_Dados();
            return;
        }

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

        // Lê os dados
        Listas.Servidor_Dados.Game_Nome       = Binário.ReadString();
        Listas.Servidor_Dados.Mensagem        = Binário.ReadString();
        Listas.Servidor_Dados.Porta           = Binário.ReadInt16();
        Listas.Servidor_Dados.Máx_Jogadores   = Binário.ReadByte();
        Listas.Servidor_Dados.Máx_Personagens = Binário.ReadByte();
        Listas.Servidor_Dados.Num_Classes     = Binário.ReadByte();
        Listas.Servidor_Dados.Num_Azulejos    = Binário.ReadByte();
        Listas.Servidor_Dados.Num_Mapas       = Binário.ReadInt16();
        Listas.Servidor_Dados.Num_NPCs        = Binário.ReadInt16();
        Listas.Servidor_Dados.Num_Itens       = Binário.ReadInt16();

        // Fecha o sistema
        Binário.Dispose();
    }
コード例 #2
0
    public static void Definir_Servidor()
    {
        string Diretório = Listas.Opções.Diretório_Servidor;

        // Previni erros
        if (!Directory.Exists(Diretório))
        {
            Listas.Opções.Diretório_Servidor = string.Empty;
            Escrever.Opções();
            return;
        }

        // Demonstra o diretório
        Seleção.Objetos.txtServidor_Diretório.Text = Diretório;

        // Define os diretórios
        Servidor_Dados = new FileInfo(Diretório + @"\Dados\Gerais" + Formato);
        Classes_Dados  = new DirectoryInfo(Diretório + @"\Dados\Classes\");
        Azulejos_Dados = new DirectoryInfo(Diretório + @"\Dados\Azulejos\");
        Mapas_Dados    = new DirectoryInfo(Diretório + @"\Dados\Mapas\");
        NPCs_Dados     = new DirectoryInfo(Diretório + @"\Dados\NPCs\");
        Itens_Dados    = new DirectoryInfo(Diretório + @"\Dados\Itens\");

        // Cria os diretórios
        Servidor_Dados.Directory.Create();
        Classes_Dados.Create();
        Azulejos_Dados.Create();
        NPCs_Dados.Create();
        Mapas_Dados.Create();
        Itens_Dados.Create();

        // Lê os dados gerais do servidor
        Ler.Servidor_Dados();
    }
コード例 #3
0
    public static void Marcador_Dados(byte Índice)
    {
        FileInfo Arquivo = new FileInfo(Diretórios.Marcadores_Dados.FullName + Índice + Diretórios.Formato);

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

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

        // Carrega os dados
        Listas.Marcador[Índice].Geral.Nome      = Binário.ReadString();
        Listas.Marcador[Índice].Geral.Posição.X = Binário.ReadInt32();
        Listas.Marcador[Índice].Geral.Posição.Y = Binário.ReadInt32();
        Listas.Marcador[Índice].Geral.Visível   = Binário.ReadBoolean();
        Listas.Marcador[Índice].Texto           = Binário.ReadString();
        Listas.Marcador[Índice].Estado          = Binário.ReadBoolean();

        // Fecha o sistema
        Binário.Dispose();
    }
コード例 #4
0
    public static void Opções()
    {
        // Defini os dados das opções
        Listas.Opções.Diretório_Cliente  = string.Empty;
        Listas.Opções.Diretório_Servidor = string.Empty;

        // Salva o que foi modificado
        Escrever.Opções();
    }
コード例 #5
0
    private void butSalvar_Click(object sender, EventArgs e)
    {
        // Salva os dados
        Escrever.Azulejos();

        // Volta à janela de seleção
        Visible = false;
        Seleção.Objetos.Visible = true;
    }
コード例 #6
0
ファイル: Program.cs プロジェクト: hcostapuc/Desafios-70-483
        static void Main(string[] args)
        {
            var nota = new NotaFiscal {
                Numero = 1210, Chave = "NFE1023023012302103012202"
            };
            var escrever = new Escrever();

            escrever.Log(nota);
            Console.ReadKey();
        }
コード例 #7
0
    private void butSalvar_Click(object sender, EventArgs e)
    {
        // Salva a dimensão da estrutura
        Listas.Servidor_Dados.Num_NPCs = (byte)Listas.NPC.GetUpperBound(0);
        Escrever.Servidor_Dados();
        Escrever.NPCs();

        // Volta à janela de seleção
        Visible = false;
        Seleção.Objetos.Visible = true;
    }
コード例 #8
0
    private void butSalvar_Click(object sender, EventArgs e)
    {
        // Salva a dimensão da estrutura
        Listas.Cliente_Dados.Num_Botões          = (byte)Listas.Botão.GetUpperBound(0);
        Listas.Cliente_Dados.Num_Digitalizadores = (byte)Listas.Digitalizador.GetUpperBound(0);
        Listas.Cliente_Dados.Num_Paineis         = (byte)Listas.Painel.GetUpperBound(0);
        Listas.Cliente_Dados.Num_Marcadores      = (byte)Listas.Marcador.GetUpperBound(0);
        Escrever.Cliente_Dados();
        Escrever.Ferramentas();

        // Volta à janela de seleção
        Visible = false;
        Seleção.Objetos.Visible = true;
    }
コード例 #9
0
    private void butSalvar_Click(object sender, System.EventArgs e)
    {
        // Salva os dados
        Listas.Servidor_Dados.Game_Nome       = Objetos.txtGame_Nome.Text;
        Listas.Servidor_Dados.Mensagem        = Objetos.txtMensagem.Text;
        Listas.Servidor_Dados.Porta           = (short)Objetos.numPorta.Value;
        Listas.Servidor_Dados.Máx_Jogadores   = (byte)Objetos.numMáx_Jogadores.Value;
        Listas.Servidor_Dados.Máx_Personagens = (byte)Objetos.numMáx_Personagens.Value;
        Escrever.Servidor_Dados();

        // Volta à janela de seleção
        Visible = false;
        Seleção.Objetos.Visible = true;
    }
コード例 #10
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);
        }
    }
コード例 #11
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();
    }
コード例 #12
0
    private void butSelecionarDiretório_Servidor_Click(object sender, EventArgs e)
    {
        // Seleciona o diretório atual
        Diretório_Servidor.SelectedPath = Listas.Opções.Diretório_Servidor;

        // Apenas se já estiver selecionado um diretório
        if (Diretório_Servidor.ShowDialog() != DialogResult.OK)
        {
            return;
        }

        // Salva os dados
        Listas.Opções.Diretório_Servidor = Diretório_Servidor.SelectedPath;
        Escrever.Opções();

        // Define e cria os diretórios
        Diretórios.Definir_Servidor();
    }
コード例 #13
0
    public static void Item(byte Índice)
    {
        FileInfo Arquivo = new FileInfo(Diretórios.Itens_Dados.FullName + Índice + Diretórios.Formato);

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

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

        // Lê os dados
        Listas.Item[Índice].Nome              = Binário.ReadString();
        Listas.Item[Índice].Descrição         = Binário.ReadString();
        Listas.Item[Índice].Textura           = Binário.ReadInt16();
        Listas.Item[Índice].Tipo              = Binário.ReadByte();
        Listas.Item[Índice].Preço             = Binário.ReadInt16();
        Listas.Item[Índice].Empilhável        = Binário.ReadBoolean();
        Listas.Item[Índice].NãoDropável       = Binário.ReadBoolean();
        Listas.Item[Índice].Req_Level         = Binário.ReadInt16();
        Listas.Item[Índice].Req_Classe        = Binário.ReadByte();
        Listas.Item[Índice].Poção_Experiência = Binário.ReadInt16();
        for (byte i = 0; i <= (byte)Globais.Vitais.Quantidade - 1; i++)
        {
            Listas.Item[Índice].Poção_Vital[i] = Binário.ReadInt16();
        }
        Listas.Item[Índice].Equip_Tipo = Binário.ReadByte();
        for (byte i = 0; i <= (byte)Globais.Atributos.Quantidade - 1; i++)
        {
            Listas.Item[Índice].Equip_Atributo[i] = Binário.ReadInt16();
        }
        Listas.Item[Índice].Arma_Dano = Binário.ReadInt16();

        // Fecha o sistema
        Binário.Dispose();
    }
コード例 #14
0
    public static void NPC(byte Índice)
    {
        FileInfo Arquivo = new FileInfo(Diretórios.NPCs_Dados.FullName + Índice + Diretórios.Formato);

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

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

        // Lê os dados
        Listas.NPC[Índice].Nome          = Binário.ReadString();
        Listas.NPC[Índice].Textura       = Binário.ReadInt16();
        Listas.NPC[Índice].Agressividade = Binário.ReadByte();
        Listas.NPC[Índice].Aparecimento  = Binário.ReadByte();
        Listas.NPC[Índice].Visão         = Binário.ReadByte();
        Listas.NPC[Índice].Experiência   = Binário.ReadByte();
        for (byte i = 0; i <= (byte)Globais.Vitais.Quantidade - 1; i++)
        {
            Listas.NPC[Índice].Vital[i] = Binário.ReadInt16();
        }
        for (byte i = 0; i <= (byte)Globais.Atributos.Quantidade - 1; i++)
        {
            Listas.NPC[Índice].Atributo[i] = Binário.ReadInt16();
        }
        for (byte i = 0; i <= Globais.Máx_NPC_Queda - 1; i++)
        {
            Listas.NPC[Índice].Queda[i].Item_Num   = Binário.ReadInt16();
            Listas.NPC[Índice].Queda[i].Quantidade = Binário.ReadInt16();
            Listas.NPC[Índice].Queda[i].Chance     = Binário.ReadByte();
        }

        // Fecha o sistema
        Binário.Dispose();
    }
コード例 #15
0
        static void Main(string[] args)
        {
            var objToLog = new List <ClassePai>();

            var objP1 = new ClassePai {
                NomePai = "Papai", Filhos = new List <ClasseFilho>()
            };
            var objF1 = new ClasseFilho {
                NomeFilho = "Filho 1"
            };
            var objF2 = new ClasseFilho {
                NomeFilho = "Filho 2"
            };

            objP1.Filhos.Add(objF1);
            objP1.Filhos.Add(objF2);

            var objP2 = new ClassePai {
                NomePai = "Papai 2", Filhos = new List <ClasseFilho>()
            };
            var objF3 = new ClasseFilho {
                NomeFilho = "Filho 3"
            };
            var objF4 = new ClasseFilho {
                NomeFilho = "Filho 4"
            };

            objP2.Filhos.Add(objF3);
            objP2.Filhos.Add(objF4);

            objToLog.Add(objP1);
            objToLog.Add(objP2);

            var escrever = new Escrever();

            escrever.LogGenerico(objToLog);
            Console.ReadKey();
        }
コード例 #16
0
    public static void Classe(byte Índice)
    {
        FileInfo Arquivo = new FileInfo(Diretórios.Classes_Dados.FullName + Índice + Diretórios.Formato);

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

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

        // Lê os dados
        Listas.Classe[Índice].Nome = Binário.ReadString();
        Listas.Classe[Índice].Textura_Masculina = Binário.ReadInt16();
        Listas.Classe[Índice].Textura_Feminina  = Binário.ReadInt16();
        Listas.Classe[Índice].Aparecer_Mapa     = Binário.ReadInt16();
        Listas.Classe[Índice].Aparecer_Direção  = Binário.ReadByte();
        Listas.Classe[Índice].Aparecer_X        = Binário.ReadByte();
        Listas.Classe[Índice].Aparecer_Y        = Binário.ReadByte();

        // Vitais
        for (byte i = 0; i <= (byte)Globais.Vitais.Quantidade - 1; i++)
        {
            Listas.Classe[Índice].Vital[i] = Binário.ReadInt16();
        }

        // Atributos
        for (byte i = 0; i <= (byte)Globais.Atributos.Quantidade - 1; i++)
        {
            Listas.Classe[Índice].Atributo[i] = Binário.ReadInt16();
        }

        // Fecha o sistema
        Binário.Dispose();
    }
コード例 #17
0
    public static void Cliente_Dados()
    {
        // Limpa os dados
        Limpar.Cliente_Dados();

        // Se o arquivo não existir, não é necessário carregá-lo
        if (!Diretórios.Cliente_Dados.Exists)
        {
            Escrever.Cliente_Dados();
            return;
        }

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

        // Lê os dados
        Listas.Cliente_Dados.Num_Botões          = Binário.ReadByte();
        Listas.Cliente_Dados.Num_Digitalizadores = Binário.ReadByte();
        Listas.Cliente_Dados.Num_Paineis         = Binário.ReadByte();
        Listas.Cliente_Dados.Num_Marcadores      = Binário.ReadByte();

        // Fecha o sistema
        Binário.Dispose();
    }
コード例 #18
0
    public static void Definir_Cliente()
    {
        string Diretório = Listas.Opções.Diretório_Cliente;

        // Previni erros
        if (!Directory.Exists(Diretório))
        {
            Listas.Opções.Diretório_Cliente = string.Empty;
            Escrever.Opções();
            return;
        }

        // Demonstra o diretório
        Seleção.Objetos.txtCliente_Diretório.Text = Diretório;

        // Cliente
        Fontes                = new DirectoryInfo(Diretório + @"\Fontes\");
        Sons                  = new DirectoryInfo(Diretório + @"\Aúdio\Sons\");
        Músicas               = new DirectoryInfo(Diretório + @"\Aúdio\Músicas\");
        Cliente_Dados         = new FileInfo(Diretório + @"\Dados\Gerais" + Formato);
        Botões_Dados          = new DirectoryInfo(Diretório + @"\Dados\Ferramentas\Botões\");
        Digitalizadores_Dados = new DirectoryInfo(Diretório + @"\Dados\Ferramentas\Digitalizadores\");
        Paineis_Dados         = new DirectoryInfo(Diretório + @"\Dados\Ferramentas\Paineis\");
        Marcadores_Dados      = new DirectoryInfo(Diretório + @"\Dados\Ferramentas\Marcadores\");
        Tex_Panoramas         = new DirectoryInfo(Diretório + @"\Gráficos\Panoramas\");
        Tex_Luzes             = new DirectoryInfo(Diretório + @"\Gráficos\Luzes\");
        Tex_Fumaças           = new DirectoryInfo(Diretório + @"\Gráficos\Fumaças\");
        Tex_Personagens       = new DirectoryInfo(Diretório + @"\Gráficos\Personagens\");
        Tex_Faces             = new DirectoryInfo(Diretório + @"\Gráficos\Faces\");
        Tex_Paineis           = new DirectoryInfo(Diretório + @"\Gráficos\Interface\Ferramentas\Paineis\");
        Tex_Botões            = new DirectoryInfo(Diretório + @"\Gráficos\Interface\Ferramentas\Botões\");
        Tex_Marcador          = new FileInfo(Diretório + @"\Gráficos\Interface\Ferramentas\Marcador");
        Tex_Digitalizador     = new FileInfo(Diretório + @"\Gráficos\Interface\Ferramentas\Digitalizador");
        Tex_Azulejos          = new DirectoryInfo(Diretório + @"\Gráficos\Azulejos\");
        Tex_Grade             = new FileInfo(Diretório + @"\Gráficos\Grade");
        Tex_Clima             = new FileInfo(Diretório + @"\Gráficos\Clima");
        Tex_Preenchido        = new FileInfo(Diretório + @"\Gráficos\Preenchido");
        Tex_Direções          = new FileInfo(Diretório + @"\Gráficos\Direções");
        Tex_Transparente      = new FileInfo(Diretório + @"\Gráficos\Transparente");
        Tex_Iluminação        = new FileInfo(Diretório + @"\Gráficos\Iluminação");
        Tex_Itens             = new DirectoryInfo(Diretório + @"\Gráficos\Itens\");

        // Cria os diretórios
        Fontes.Create();
        Sons.Create();
        Músicas.Create();
        Cliente_Dados.Directory.Create();
        Botões_Dados.Create();
        Digitalizadores_Dados.Create();
        Paineis_Dados.Create();
        Marcadores_Dados.Create();
        Tex_Panoramas.Create();
        Tex_Fumaças.Create();
        Tex_Luzes.Create();
        Tex_Personagens.Create();
        Tex_Faces.Create();
        Tex_Paineis.Create();
        Tex_Botões.Create();
        Tex_Marcador.Directory.Create();
        Tex_Digitalizador.Directory.Create();
        Tex_Azulejos.Create();
        Tex_Grade.Directory.Create();
        Tex_Clima.Directory.Create();
        Tex_Preenchido.Directory.Create();
        Tex_Direções.Directory.Create();
        Tex_Transparente.Directory.Create();
        Tex_Iluminação.Directory.Create();
        Tex_Itens.Create();

        // Lê os dados gerais do cliente
        Ler.Cliente_Dados();
        Gráficos.LerTexturas();
        Áudio.Som.Ler();
    }
コード例 #19
0
    public static void Mapa(short Índice)
    {
        FileInfo Arquivo = new FileInfo(Diretórios.Mapas_Dados.FullName + Índice + Diretórios.Formato);

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

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

        // Lê os dados
        Listas.Mapa[Índice].Revisão              = Binário.ReadInt16();
        Listas.Mapa[Índice].Nome                 = Binário.ReadString();
        Listas.Mapa[Índice].Largura              = Binário.ReadByte();
        Listas.Mapa[Índice].Altura               = Binário.ReadByte();
        Listas.Mapa[Índice].Moral                = Binário.ReadByte();
        Listas.Mapa[Índice].Panorama             = Binário.ReadByte();
        Listas.Mapa[Índice].Música               = Binário.ReadByte();
        Listas.Mapa[Índice].Coloração            = Binário.ReadInt32();
        Listas.Mapa[Índice].Clima.Tipo           = Binário.ReadByte();
        Listas.Mapa[Índice].Clima.Intensidade    = Binário.ReadByte();
        Listas.Mapa[Índice].Fumaça.Textura       = Binário.ReadByte();
        Listas.Mapa[Índice].Fumaça.VelocidadeX   = Binário.ReadSByte();
        Listas.Mapa[Índice].Fumaça.VelocidadeY   = Binário.ReadSByte();
        Listas.Mapa[Índice].Fumaça.Transparência = Binário.ReadByte();
        Listas.Mapa[Índice].LuzGlobal            = Binário.ReadByte();
        Listas.Mapa[Índice].Iluminação           = Binário.ReadByte();

        // Ligações
        for (short i = 0; i <= (short)Globais.Direções.Quantidade - 1; i++)
        {
            Listas.Mapa[Índice].Ligação[i] = Binário.ReadInt16();
        }

        // Quantidade de camadas
        byte NumCamadas = Binário.ReadByte();

        Listas.Mapa[Índice].Camada = new System.Collections.Generic.List <Listas.Estruturas.Camada>();

        // Camadas
        for (byte i = 0; i <= NumCamadas; i++)
        {
            // Dados básicos
            Listas.Mapa[Índice].Camada.Add(new Listas.Estruturas.Camada());
            Listas.Mapa[Índice].Camada[i].Nome = Binário.ReadString();
            Listas.Mapa[Índice].Camada[i].Tipo = Binário.ReadByte();

            // Redimensiona os azulejos
            Listas.Mapa[Índice].Camada[i].Azulejo = new Listas.Estruturas.Azulejo_Dados[Listas.Mapa[Índice].Largura + 1, Listas.Mapa[Índice].Altura + 1];

            // Azulejos
            for (byte x = 0; x <= Listas.Mapa[Índice].Largura; x++)
            {
                for (byte y = 0; y <= Listas.Mapa[Índice].Altura; y++)
                {
                    Listas.Mapa[Índice].Camada[i].Azulejo[x, y].x          = Binário.ReadByte();
                    Listas.Mapa[Índice].Camada[i].Azulejo[x, y].y          = Binário.ReadByte();
                    Listas.Mapa[Índice].Camada[i].Azulejo[x, y].Azulejo    = Binário.ReadByte();
                    Listas.Mapa[Índice].Camada[i].Azulejo[x, y].Automático = Binário.ReadBoolean();
                    Listas.Mapa[Índice].Camada[i].Azulejo[x, y].Mini       = new Point[4];
                }
            }
        }

        // Dados específicos dos azulejos
        Listas.Mapa[Índice].Azulejo = new Listas.Estruturas.Mapas_Azulejo_Dados[Listas.Mapa[Índice].Largura + 1, Listas.Mapa[Índice].Altura + 1];
        for (byte x = 0; x <= Listas.Mapa[Índice].Largura; x++)
        {
            for (byte y = 0; y <= Listas.Mapa[Índice].Altura; y++)
            {
                Listas.Mapa[Índice].Azulejo[x, y].Atributo = Binário.ReadByte();
                Listas.Mapa[Índice].Azulejo[x, y].Dado_1   = Binário.ReadInt16();
                Listas.Mapa[Índice].Azulejo[x, y].Dado_2   = Binário.ReadInt16();
                Listas.Mapa[Índice].Azulejo[x, y].Dado_3   = Binário.ReadInt16();
                Listas.Mapa[Índice].Azulejo[x, y].Dado_4   = Binário.ReadInt16();
                Listas.Mapa[Índice].Azulejo[x, y].Zona     = Binário.ReadByte();
                Listas.Mapa[Índice].Azulejo[x, y].Bloqueio = new bool[(byte)Globais.Direções.Quantidade];

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

        // Luzes
        byte NumLuzes = Binário.ReadByte();

        Listas.Mapa[Índice].Luz = new System.Collections.Generic.List <Listas.Estruturas.Luz_Estrutura>();
        if (NumLuzes > 0)
        {
            for (byte i = 0; i <= NumLuzes - 1; i++)
            {
                Listas.Mapa[Índice].Luz.Add(new Listas.Estruturas.Luz_Estrutura(new Rectangle(Binário.ReadByte(), Binário.ReadByte(), Binário.ReadByte(), Binário.ReadByte())));
            }
        }

        // NPCs
        byte NumNPCs = Binário.ReadByte();

        Listas.Mapa[Índice].NPC = new System.Collections.Generic.List <Listas.Estruturas.Mapa_NPC>();
        Listas.Estruturas.Mapa_NPC NPC = new Listas.Estruturas.Mapa_NPC();
        if (NumNPCs > 0)
        {
            for (byte i = 0; i <= NumNPCs - 1; i++)
            {
                NPC.Índice   = Binário.ReadInt16();
                NPC.Zona     = Binário.ReadByte();
                NPC.Aparecer = Binário.ReadBoolean();
                NPC.X        = Binário.ReadByte();
                NPC.Y        = Binário.ReadByte();
                Listas.Mapa[Índice].NPC.Add(NPC);
            }
        }

        // Fecha o sistema
        Binário.Dispose();
    }