Skip to content

CactusPie/Heroes3MapReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heroes 3 Map Reader

A modern, cross-platform utility for reading, analyzing, and visualizing Heroes of Might and Magic III map files (.h3m). Built with .NET 8 and Avalonia UI.

Currently supports all vanilla maps as well as HotA maps up to version 1.8 (Bulwark).

image

Features

  • Map Parsing: Reads detailed metadata from .h3m files including:
    • Map Name and Description
    • Difficulty, Size, and Format (RoE, AB, SoD, HotA)
    • Player counts and specific player details
    • Victory and Loss conditions
    • Teams and Alliances
    • Playable Factions
    • Banned Spells
  • Minimap Generation: Renders visual previews of maps including terrain and underground levels.
  • Map Browser:
    • Scan directories for map files recursively.
    • Filter maps by Size, Player Count, Difficulty, Victory Condition, and Format.
    • Filter by Playable Factions and Available Spells.
    • Sort and view map details in a responsive grid.
  • Performance: Multi-threaded loading for handling large collections of maps efficiently.

Technologies

  • Core: .NET 8.0
  • UI Framework: Avalonia UI (Cross-platform)
  • MVVM: CommunityToolkit.Mvvm
  • Imaging: SixLabors.ImageSharp

Getting Started

Build Prerequisites

Building the Application

  1. Clone the repository

    git clone https://github.com/CactusPie/Heroes3MapReader.git
    cd Heroes3MapReader
  2. Build the solution

    dotnet build
  3. Run the UI application

    cd Heroes3MapReader.UI
    dotnet run

Usage

  1. Launch the application.
  2. Click "Select Map Directory" to choose a folder containing .h3m files (e.g., your Heroes 3 Maps directory).
  3. Click "Load Maps" to scan the directory.
  4. Use the filters at the top (including Factions and Spells) to narrow down the list of maps.
  5. Select a map from the list to view its generated minimap and detailed information.

Project Structure

  • Heroes3MapReader.Logic: The core class library containing the map parsing logic, GZIP decompression, and data models.
  • Heroes3MapReader.UI: The Avalonia-based desktop application providing the graphical interface.

Acknowledgments

  • The H3M file reading used in this project was based entirely on VCMI implementation.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages