private void OnCharacterLoaded(object diablo2File)
        {
            m_file = (Diablo2File)diablo2File;

            int offsetX = 0;
            int offsetY = 0;

            switch (Location)
            {
            case ItemLocation.Inventory:
                offsetX = 25;
                offsetY = 235;
                break;

            case ItemLocation.Stash:
                offsetX = 22;
                offsetY = 129;
                break;

            case ItemLocation.Cube:
                offsetX = 22;
                offsetY = 24;
                break;
            }

            var items = m_file.Items.GetItems();

            foreach (var item in items.Where(i => i.Location == Location))
            {
                RectItems.Add(new ItemModel {
                    X = (item.PositionX * GridSize) + offsetX, Y = (item.PositionY * GridSize) + offsetY, Width = GridSize, Height = GridSize, Item = item
                });
            }
        }
        private void OnCharacterLoaded(object diablo2File)
        {
            m_file = (Diablo2File)diablo2File;

            CharacterName = m_file.CharacterData.CharacterName;
            HeroClass     = m_file.CharacterData.HeroClass;

            Strength  = m_file.Statistics.GetStatistic(CharacterStatistic.Strength);
            Dexterity = m_file.Statistics.GetStatistic(CharacterStatistic.Dexterity);
            Vitality  = m_file.Statistics.GetStatistic(CharacterStatistic.Vitality);
            Energy    = m_file.Statistics.GetStatistic(CharacterStatistic.Energy);
            Points    = m_file.Statistics.GetStatistic(CharacterStatistic.StatsLeft);
        }
        private bool LoadCharacterFile(string path)
        {
            bool success = false;

            if (string.IsNullOrEmpty(path))
            {
                Status = "Click Open to load a character.";
            }
            else if (File.Exists(path))
            {
                var file = new Diablo2File(path);
                try
                {
                    file.Load();
                    m_file   = file;
                    FilePath = path;
                    Title    = $"Diablo 2 Hero Editor - {m_file.CharacterData.CharacterName}";
                    Status   = "Loaded successfully";

                    Settings.Default.LastLoadedCharacterFile = path;
                    Settings.Default.Save();

                    Mediator.NotifyColleagues(MediatorMessages.CharacterLoaded, m_file);
                    success = true;
                }
                catch (Diablo2FileFormatException ex)
                {
                    Status = $"Failed to load character file because {FileValidityReson(ex.Validity)}.";
                }
                catch (Exception ex)
                {
                    Status = $"Exception occured while trying to load character file. {ex.Message}";
                }
            }
            else
            {
                Status = "Failed to load character file because it doesn't exist.";
            }

            return(success);
        }
 private void OnCharacterLoaded(object diablo2File)
 {
     m_file = (Diablo2File)diablo2File;
 }