Add Option to Save Active Palette as Preset (#899)
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled

* Update djui_panel_player.c

* Update Czech.ini

* Update Dutch.ini

* Update English.ini

* Update French.ini

* Update German.ini

* Update Italian.ini

* Update Japanese.ini

* Update Polish.ini

* Update Portuguese.ini

* Update Russian.ini

* Update Spanish.ini

* Update djui_panel_player.c
This commit is contained in:
Baconator2558 2025-08-20 13:55:24 -05:00 committed by GitHub
parent 89366ed5ee
commit d2860d70da
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 72 additions and 0 deletions

View file

@ -386,6 +386,7 @@ NAME = "Jméno"
MODEL = "Model"
PALETTE_PRESET = "Přednastavení barev"
EDIT_PALETTE = "Upravit barvy"
ACTIVE_PALETTE = "Uložit paletu jako předvolbu"
PRESET_NAME = "Název"
DELETE_PRESET = "Smazat"
SAVE_PRESET = "Uložit"

View file

@ -386,6 +386,7 @@ NAME = "Naam"
MODEL = "Model"
PALETTE_PRESET = "Palet voor-instelling"
EDIT_PALETTE = "Bewerk Palet"
ACTIVE_PALETTE = "Sla Actief Op Als Palet Preset"
PRESET_NAME = "Naam"
DELETE_PRESET = "Verwijderen"
SAVE_PRESET = "Opslaan"

View file

@ -386,6 +386,7 @@ NAME = "Name"
MODEL = "Character"
PALETTE_PRESET = "Palette Preset"
EDIT_PALETTE = "Edit Palette"
ACTIVE_PALETTE = "Save Active Palette as Preset"
PRESET_NAME = "Preset Name"
DELETE_PRESET = "Delete Preset"
SAVE_PRESET = "Save Preset"

View file

@ -386,6 +386,7 @@ NAME = "Pseudo"
MODEL = "Personnage"
PALETTE_PRESET = "Palettes par défaut"
EDIT_PALETTE = "Modifier la palette"
ACTIVE_PALETTE = "Enregistrer la palette active en tant que préréglage"
PRESET_NAME = "Nom"
DELETE_PRESET = "Supprimer"
SAVE_PRESET = "Enregistrer"

View file

@ -386,6 +386,7 @@ NAME = "Name"
MODEL = "Modell"
PALETTE_PRESET = "Paletten-Vorlage"
EDIT_PALETTE = "Palette bearbeiten"
ACTIVE_PALETTE = "Aktive Palette als Vorlage speichern"
PRESET_NAME = "Name"
DELETE_PRESET = "Löschen"
SAVE_PRESET = "Speichern"

View file

@ -384,6 +384,7 @@ NAME = "Nome"
MODEL = "Modello"
PALETTE_PRESET = "Opzioni Palette"
EDIT_PALETTE = "Modifica Palette"
ACTIVE_PALETTE = "Salva Palette Attiva"
PRESET_NAME = "Nome"
DELETE_PRESET = "Elimina"
SAVE_PRESET = "Salva"

View file

@ -387,6 +387,7 @@ NAME = "名前"
MODEL = "キャラクター"
PALETTE_PRESET = "パレットのプリセット"
EDIT_PALETTE = "パレットの変更"
ACTIVE_PALETTE = "使用中のパレットを保存する"
PRESET_NAME = "プリセットの名前"
DELETE_PRESET = "プリセットを消す"
SAVE_PRESET = "プリセットを保存する"

View file

@ -386,6 +386,7 @@ NAME = "Nazwa"
MODEL = "Model"
PALETTE_PRESET = "Preset Palety"
EDIT_PALETTE = "Edytuj Paletę"
ACTIVE_PALETTE = "Ustaw Aktywne Kolory jako Szablon"
PRESET_NAME = "Nazwa presetu"
DELETE_PRESET = "Usuń preset"
SAVE_PRESET = "Zapisz preset"

View file

@ -386,6 +386,7 @@ NAME = "Nome"
MODEL = "Personagem"
PALETTE_PRESET = "Paleta"
EDIT_PALETTE = "Editar paleta"
ACTIVE_PALETTE = "Salvar Paleta Atual como Predefinição"
PRESET_NAME = "Nome da paleta"
DELETE_PRESET = "Excluir"
SAVE_PRESET = "Salvar"

View file

@ -385,6 +385,7 @@ NAME = "Имя"
MODEL = "Модель"
PALETTE_PRESET = "Предустановка палитры"
EDIT_PALETTE = "Редактировать палитру"
ACTIVE_PALETTE = "Сохранить Текущую Палитру как Шаблон"
PRESET_NAME = "Имя"
DELETE_PRESET = "Удалить"
SAVE_PRESET = "Сохранить"

View file

@ -386,6 +386,7 @@ NAME = "Nombre"
MODEL = "Modelo"
PALETTE_PRESET = "Paletas predeterminadas"
EDIT_PALETTE = "Editar Paleta"
ACTIVE_PALETTE = "Guardar la paleta actual como determinada"
PRESET_NAME = "Nombre"
DELETE_PRESET = "Eliminar"
SAVE_PRESET = "Guardar"

View file

@ -183,6 +183,7 @@ static void djui_panel_player_edit_palette_delete(UNUSED struct DjuiBase* caller
// }
player_palette_delete(fs_get_write_path(PALETTES_DIRECTORY), sPalettePresetNameTextBox->buffer, false);
sReloadPalettePresetSelection = true;
djui_panel_menu_back(caller);
}
static void djui_panel_player_edit_palette_export(UNUSED struct DjuiBase* caller) {
@ -190,6 +191,13 @@ static void djui_panel_player_edit_palette_export(UNUSED struct DjuiBase* caller
sReloadPalettePresetSelection = true;
}
static void djui_panel_player_active_palette_export(UNUSED struct DjuiBase* caller) {
configPlayerPalette = gNetworkPlayers[0].overridePalette;
player_palette_export(sPalettePresetNameTextBox->buffer);
sReloadPalettePresetSelection = true;
djui_panel_menu_back(caller);
}
static void (*sSavedDestroy)(struct DjuiBase*);
static void djui_panel_player_edit_palette_destroy(struct DjuiBase* caller) {
if (gNetworkType != NT_NONE) {
@ -326,6 +334,58 @@ static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) {
djui_panel_add(caller, panel, NULL);
}
static void djui_panel_player_name_active_palette(struct DjuiBase* caller) {
gDjuiInPlayerMenu = true;
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(PLAYER, PALETTE), true);
// A bit of a gross hack to send out palette changes and update the palette preset selection box on unpause AND
// pressing the Back button
sSavedDestroy = panel->base.destroy;
panel->base.destroy = djui_panel_player_edit_palette_destroy;
struct DjuiBase* body = djui_three_panel_get_body(panel);
{
struct DjuiRect* rect2 = djui_rect_container_create(body, 32);
{
struct DjuiText* text1 = djui_text_create(&rect2->base, DLANG(PLAYER, PRESET_NAME));
djui_base_set_size_type(&text1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_color(&text1->base, 220, 220, 220, 255);
djui_base_set_size(&text1->base, 0.585f, 64);
djui_base_set_alignment(&text1->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
djui_text_set_drop_shadow(text1, 64, 64, 64, 100);
sPalettePresetNameTextBox = djui_inputbox_create(&rect2->base, 32);
djui_inputbox_set_text(sPalettePresetNameTextBox, djui_panel_player_edit_palette_preset_name_get_text());
djui_base_set_size_type(&sPalettePresetNameTextBox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(&sPalettePresetNameTextBox->base, 0.45f, 32);
djui_base_set_alignment(&sPalettePresetNameTextBox->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
djui_interactable_hook_value_change(&sPalettePresetNameTextBox->base, djui_panel_player_edit_palette_preset_name_text_change);
djui_interactable_hook_focus(&sPalettePresetNameTextBox->base, djui_inputbox_on_focus_begin, NULL, djui_panel_player_edit_palette_preset_name_on_focus_end);
}
struct DjuiRect* rect3 = djui_rect_container_create(body, 32);
{
struct DjuiButton* button1 = djui_button_left_create(&rect3->base, DLANG(MENU, CANCEL), DJUI_BUTTON_STYLE_NORMAL, djui_panel_menu_back);
djui_base_set_size(&button1->base, 0.485f, 32);
struct DjuiButton* button2 = djui_button_right_create(&rect3->base, DLANG(PLAYER, SAVE_PRESET), DJUI_BUTTON_STYLE_NORMAL, djui_panel_player_active_palette_export);
djui_base_set_size(&button2->base, 0.485f, 32);
}
{
struct DjuiText *text = djui_text_create(body, DLANG(PLAYER, CAP_TOGGLE));
djui_text_set_alignment(text, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP);
djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(&text->base, 1.0f, 64);
gDjuiPaletteToggle = text;
}
}
djui_panel_add(caller, panel, NULL);
}
//////////////////
// player panel //
@ -463,6 +523,7 @@ void djui_panel_player_create(struct DjuiBase* caller) {
sPalettePresetSelection = djui_selectionbox_create(body, DLANG(PLAYER, PALETTE_PRESET), palettePresets, gPresetPaletteCount + 1, &sPalettePresetIndex, djui_panel_player_update_preset_palette);
djui_button_create(body, DLANG(PLAYER, EDIT_PALETTE), DJUI_BUTTON_STYLE_NORMAL, djui_panel_player_edit_palette_create);
djui_button_create(body, DLANG(PLAYER, ACTIVE_PALETTE), DJUI_BUTTON_STYLE_NORMAL, djui_panel_player_name_active_palette);
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
{