Add new built-in mod categories

This commit is contained in:
Agent X 2026-05-09 15:03:31 -04:00
parent 6a099714d3
commit 63f0067f3b
14 changed files with 65 additions and 27 deletions

View file

@ -214,7 +214,11 @@ MISC = "Různé"
ROMHACKS = "Romhacks"
GAMEMODES = "Herní režimy"
MOVESETS = "Sady pohybů"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Grafika"
QOL = "Vylepšení"
UTILITY = "Nástroje"
AUDIO = "Zvuk"
CHARACTERS = "Postavy"
[HOST_SAVE]
SAVE_TITLE = "UKLADACI SLOT"

View file

@ -214,7 +214,11 @@ MISC = "Diverse"
ROMHACKS = "Romhacks"
GAMEMODES = "Spelmodi"
MOVESETS = "Bewegingssets"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Grafische instellingen"
QOL = "Gebruiksgemak"
UTILITY = "Hulpmiddelen"
AUDIO = "Audio"
CHARACTERS = "Personages"
[HOST_SAVE]
SAVE_TITLE = "OPSLAAN"

View file

@ -214,7 +214,11 @@ MISC = "Misc"
ROMHACKS = "Romhacks"
GAMEMODES = "Gamemodes"
MOVESETS = "Movesets"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Graphics"
QOL = "QoL"
UTILITY = "Utility"
AUDIO = "Audio"
CHARACTERS = "Characters"
[HOST_SAVE]
SAVE_TITLE = "SAVE"

View file

@ -214,7 +214,11 @@ MISC = "Autres"
ROMHACKS = "Romhacks"
GAMEMODES = "Modes de jeu"
MOVESETS = "Movesets"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Graphismes"
QOL = "Confort de jeu"
UTILITY = "Utilitaires"
AUDIO = "Audio"
CHARACTERS = "Personnages"
[HOST_SAVE]
SAVE_TITLE = "SAUVEGARDE"

View file

@ -214,7 +214,11 @@ MISC = "Sonstiges"
ROMHACKS = "Rom-Hacks"
GAMEMODES = "Spielmodi"
MOVESETS = "Movesets"
CHARACTER_SELECT = "Charakterauswahl"
GRAPHICS = "Grafik"
QOL = "Komfortfunktionen"
UTILITY = "Dienstprogramme"
AUDIO = "Audio"
CHARACTERS = "Charaktere"
[HOST_SAVE]
SAVE_TITLE = "SPEICHERN"

View file

@ -212,7 +212,11 @@ MISC = "Varie"
ROMHACKS = "Romhack"
GAMEMODES = "Modalità di gioco"
MOVESETS = "Set di spostamenti"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Grafica"
QOL = "Miglioramenti"
UTILITY = "Utilità"
AUDIO = "Audio"
CHARACTERS = "Personaggi"
[HOST_SAVE]
SAVE_TITLE = "SALVATAGGI"

View file

@ -214,7 +214,11 @@ MISC = "その他"
ROMHACKS = "ロムハック系"
GAMEMODES = "ゲームモード系"
MOVESETS = "ムーブセット系"
CHARACTER_SELECT = "追加キャラクター系"
GRAPHICS = "グラフィック"
QOL = "快適性"
UTILITY = "ユーティリティ"
AUDIO = "オーディオ"
CHARACTERS = "キャラクター"
[HOST_SAVE]
SAVE_TITLE = "SAVE"

View file

@ -214,7 +214,11 @@ MISC = "Pozostałe"
ROMHACKS = "ROM hacki"
GAMEMODES = "Tryby gry"
MOVESETS = "Zestawy ruchów"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Grafika"
QOL = "Ułatwienia"
UTILITY = "Narzędzia"
AUDIO = "Audio"
CHARACTERS = "Postacie"
[HOST_SAVE]
SAVE_TITLE = "ZAPISY"

View file

@ -214,7 +214,11 @@ MISC = "Outros"
ROMHACKS = "Romhacks"
GAMEMODES = "Modos de jogo"
MOVESETS = "Movesets"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Gráficos"
QOL = "Qualidade de Vida"
UTILITY = "Utilitários"
AUDIO = "Áudio"
CHARACTERS = "Personagens"
[HOST_SAVE]
SAVE_TITLE = "ARQUIVO"

View file

@ -213,7 +213,11 @@ MISC = "Разное"
ROMHACKS = "Romhacks"
GAMEMODES = "Игровые режимы"
MOVESETS = "Наборы движений"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Графика"
QOL = "Улучшения"
UTILITY = "Утилиты"
AUDIO = "Аудио"
CHARACTERS = "Персонажи"
[HOST_SAVE]
SAVE_TITLE = "SAVE"

View file

@ -214,7 +214,11 @@ MISC = "Otros"
ROMHACKS = "Romhacks"
GAMEMODES = "Modos de juego"
MOVESETS = "Movimientos"
CHARACTER_SELECT = "Character Select"
GRAPHICS = "Gráficos"
QOL = "Mejoras calidad de vida"
UTILITY = "Utilidades"
AUDIO = "Audio"
CHARACTERS = "Personajes"
[HOST_SAVE]
SAVE_TITLE = "ARCHIVOS DE\nGUARDADO"

View file

@ -37,7 +37,11 @@ struct ModCategory sCategories[] = {
{ "ROMHACKS", "romhack" },
{ "GAMEMODES", "gamemode" },
{ "MOVESETS", "moveset" },
{ "CHARACTER_SELECT", "cs" },
{ "GRAPHICS", "graphics" },
{ "QOL", "qol" },
{ "UTILITY", "utility" },
{ "AUDIO", "audio" },
{ "CHARACTERS", "character" }
};
static const int numCategories = sizeof(sCategories) / sizeof(sCategories[0]);
@ -95,7 +99,7 @@ static void djui_mod_checkbox_on_hover_end(UNUSED struct DjuiBase* base) {
static void djui_mod_checkbox_on_value_change(UNUSED struct DjuiBase* base) {
mods_update_selectable();
if (mods_get_enabled_count() - mods_get_character_select_count() >= 10) {
if (mods_get_enabled_count() >= 10) {
if (!sWarned) {
sWarned = true;
djui_popup_create(DLANG(HOST_MODS, WARNING), 3);
@ -135,6 +139,10 @@ void djui_panel_host_mods_add_mods(struct DjuiBase* layoutBase) {
for (int i = 0; i < gLocalMods.entryCount; i++) {
struct Mod* mod = gLocalMods.entries[i];
char* category = mod->category != NULL ? mod->category : mod->incompatible;
if (category != NULL) {
category = !strcmp(category, "cs") ? "character" : category;
}
switch (sSelectedCategory) {
case MOD_CATEGORY_ALL: { break; }
case MOD_CATEGORY_MISC: {

View file

@ -56,19 +56,6 @@ u16 mods_get_enabled_count(void) {
return enabled;
}
u16 mods_get_character_select_count(void) {
u16 enabled = 0;
for (u16 i = 0; i < gLocalMods.entryCount; i++) {
struct Mod* mod = gLocalMods.entries[i];
if (mod->enabled && mod->category && strcmp(mod->category, "cs") == 0) {
enabled++;
}
}
return enabled;
}
bool mods_get_all_pausable(void) {
bool pausable = true;

View file

@ -24,7 +24,6 @@ extern char gRemoteModsBasePath[];
void mods_get_main_mod_name(char* destination, u32 maxSize);
u16 mods_get_enabled_count(void);
u16 mods_get_character_select_count(void);
bool mods_get_all_pausable(void);
bool mods_generate_remote_base_path(void);
void mods_activate(struct Mods* mods);