From c1978bbb883e3e940b3b768f71c5bc7ed0dbd0f2 Mon Sep 17 00:00:00 2001
From: Atony <75191600+AtonyGit@users.noreply.github.com>
Date: Wed, 14 Oct 2026 23:09:08 -0500
Subject: [PATCH] Add sprites for settings in wiki
---
MiraAPI/GameOptions/AbstractOptionGroup.cs | 15 ++++++++++++++-
MiraAPI/Patches/RoleGuidePatches.cs | 18 +++++++++++++++++-
MiraAPI/Utilities/GuideOptionsPatches.cs | 6 +++++-
3 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/MiraAPI/GameOptions/AbstractOptionGroup.cs b/MiraAPI/GameOptions/AbstractOptionGroup.cs
index 1478602..b62b803 100644
--- a/MiraAPI/GameOptions/AbstractOptionGroup.cs
+++ b/MiraAPI/GameOptions/AbstractOptionGroup.cs
@@ -3,8 +3,10 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
+using Il2CppInterop.Runtime.Attributes;
using MiraAPI.Modifiers;
using MiraAPI.Roles;
+using MiraAPI.Utilities.Assets;
using UnityEngine;
namespace MiraAPI.GameOptions;
@@ -26,6 +28,12 @@ public abstract class AbstractOptionGroup
///
public abstract string GroupName { get; }
+ ///
+ /// Gets the sprite of the group that is displayed in the match info guide.
+ ///
+ [HideFromIl2Cpp]
+ public virtual LoadableAsset Sprite => MiraAssets.IconSettings;
+
///
/// Gets the Optionable type of the group.
///
@@ -52,7 +60,12 @@ public abstract class AbstractOptionGroup
///
/// Gets a value indicating whether this group's options are shown in the Match Info Guide.
///
- public virtual bool ShowInMatchInfoGuide => true;
+ public virtual bool ShowInMatchInfoGuide => ParentMenu is MenuCategory.Game;
+
+ ///
+ /// Gets the name title of the group when it is in the match info guide.
+ ///
+ public virtual string RoleGuideTitle => GroupName;
///
/// Gets the group . This is used to color the group in the options menu.
diff --git a/MiraAPI/Patches/RoleGuidePatches.cs b/MiraAPI/Patches/RoleGuidePatches.cs
index 44f9d46..395a16d 100644
--- a/MiraAPI/Patches/RoleGuidePatches.cs
+++ b/MiraAPI/Patches/RoleGuidePatches.cs
@@ -1544,7 +1544,7 @@ public static class RoleGuidePatches
break;
case SettingsTabIndex:
_titleText.text = GetSettingsTitle();
- _titleIcon.sprite = MiraAssets.IconSettings.LoadAsset();
+ _titleIcon.sprite = GetSettingsIcon();
break;
case RolesTabIndex:
_titleText.text = MiraLocaleManager.Get("Roles");
@@ -2103,11 +2103,27 @@ public static class RoleGuidePatches
: $"{pageTitle} Settings {counter}";
}
+ private static Sprite GetSettingsIcon()
+ {
+ if (!_uiInitialized || _settingsSearching || _settingsPage == 0 || _settingsPages.Count == 0)
+ {
+ return MiraAssets.IconSettings;
+ }
+
+ return _settingsPages[_settingsPage - 1].Sprite;
+ }
+
private static void UpdateSettingsTitle()
{
if (_titleText && IsSettingsTabActive)
{
_titleText.text = GetSettingsTitle();
+ if (_titleIcon)
+ {
+ _titleIcon.sprite = GetSettingsIcon();
+
+ _titleIcon.SetSizeLimit(0.55f);
+ }
}
}
diff --git a/MiraAPI/Utilities/GuideOptionsPatches.cs b/MiraAPI/Utilities/GuideOptionsPatches.cs
index a26699f..63f5617 100644
--- a/MiraAPI/Utilities/GuideOptionsPatches.cs
+++ b/MiraAPI/Utilities/GuideOptionsPatches.cs
@@ -7,7 +7,9 @@ using MiraAPI.GameOptions;
using MiraAPI.GameOptions.OptionTypes;
using MiraAPI.PluginLoading;
using MiraAPI.Translation;
+using MiraAPI.Utilities.Assets;
using Reactor.Utilities;
+using UnityEngine;
namespace MiraAPI.Utilities;
@@ -22,7 +24,9 @@ internal sealed class GuideOptionPage(AbstractOptionGroup group, string modAbbre
{
public AbstractOptionGroup Group { get; } = group;
- public string Title { get; } = group.GroupName.Translate();
+ public string Title { get; } = group.RoleGuideTitle;
+
+ public LoadableAsset Sprite { get; } = group.Sprite;
public string ModAbbreviation { get; } = modAbbreviation;