Логика основного меню в HoMM OE 0.32.13 заложена в файле HeroesOE_Data\Managed\Hex.dll. Данный файл удобнее всего декомпилировать утилитой dnSpy. Эта же утилита позволяет вносить изменения в файл.
Рядом с hex.dll лежит файл hex.BAK.dll - это оригинальный файл, правленный InsaneRamZes (нам он не нужен - но желающие могут сравнить и найти его правки).
Сперва (для удобства) я убрал мешающую строку "Work in progress. Does not represent the final quality of the product" - она находится в конце файла HeroesOE_Data\level0, достаточно просто заменить начало строки на нулевые байты.
Строка "Press F1 to open Bug Report Window" - находится в файле hex.dll (строку следует искать обычным поиском в dnSpy, только выбрав "Search for" - "Number/String"):
Чтобы убрать текст - надо нажать внутрь процедуры "OnStoreInit" правую кнопку мыши и выбрать "Edit Method (C#)...":
Я поменял строчку "this.textWm.text" на " " (пробел между кавычками):
После этого кнопка "Compile" (должно пройти без ошибок) и "File" - "Save module...".
Далее нас интересует класс, который отрисовывает главное меню. Я его нашел просто по названию - Hex.MainMenu и там класс MainMenuNavigationView:
Функция BindButtons, как мы видим, делает кнопки "серыми"
А для доступных кнопок - байндит к ним соответствующие функции.
Функции - есть в этом же классе, вот список:
public void OnQuickButton()
public void OnNewSkirmishButton() == "Multiplayer"
public void OnLoadSkirmishButton()
public void OnMatchmakingButton()
public void OnLobbyListButton()
public void OnLeaderboardButton()
public void OnMapEditorButton()
public void OnLicenseAgreementButton() == "License Agreement"
public void OnSettingsButtons() == "Settings"
public void OnExitButton() == "Exit to Desktop"
На экране у нас есть 5 неиспользующихся кнопок:
но я по названиям подобрал только 3: campaignButton, quickStartButton, creditsButton. На них назначаю функции: OnLoadSkirmishButton, OnQuickButton, OnMapEditorButton. Выбрал их тоже по названию - загрузка сейва, быстрая битва и редактор карты.
Правим функцию таким образом:
Обратите внимание на убранные "new Action(ххх)" (оставлено только то что внутри скобок) - иначе не скомпилируется, похоже на баг декомпилятора. И я поменял все SetAvailable(false) на true.
Компилируем, сохраняем.
Кнопки перестали быть серыми:
Кнопка Campaign теперь ведет на окно загрузки сейва:
Кнопка Quick Start - ведет на быстрый старт:
На следующих экранах можно будет выбрать фракцию/героя и карту.
Кнопка Credits - вызовет редактор:
Я не понял как в редакторе перемещать карту - но в остальном редактор более-менее понятен.
Подземелье, как я вижу, пока еще не завезли.