mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-05-26 10:41:33 +00:00
Merge 69dff75cba into 733ad1181b
This commit is contained in:
commit
c3d09bc4c5
16 changed files with 82 additions and 15 deletions
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "Výběr souboru"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "Pouze lokální model hráče"
|
||||
OPEN_DYNOS_FOLDER = "Otevřít složku DynOS"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFO"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODY"
|
|||
CATEGORIES = "Kategorie"
|
||||
WARNING = "\\#ffffa0\\Varování:\\#dcdcdc\\ Máte povoleno 10 nebo více módů, vypněte prosím některé, abyste zabránili nestabilitě nebo zpoždění."
|
||||
NO_MODS_FOUND = "Nebyly nalezeny žádné úpravy."
|
||||
BROWSE_MODS = "Prohlížet módy"
|
||||
OPEN_MOD_FOLDER = "Otevřít složku módů"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "Všechny"
|
||||
|
|
|
|||
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "File Select"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "Local Player Model Only"
|
||||
OPEN_DYNOS_FOLDER = "Open DynOS Folder"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFO"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODS"
|
|||
CATEGORIES = "Categories"
|
||||
WARNING = "\\#ffffa0\\Warning:\\#dcdcdc\\ You have 10 or more mods enabled, please disable some to prevent instability or lag."
|
||||
NO_MODS_FOUND = "No mods were found."
|
||||
BROWSE_MODS = "Browse Mod Site"
|
||||
OPEN_MOD_FOLDER = "Open Mods Folder"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "All"
|
||||
|
|
|
|||
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "Sélection de fichier"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "Modèle de joueur local seulement"
|
||||
OPEN_DYNOS_FOLDER = "Ouvrir le dossier DynOS"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFORMATIONS"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODS"
|
|||
CATEGORIES = "Catégories"
|
||||
WARNING = "\\#ffffa0\\Avertissement :\\#dcdcdc\\ 10 mods ou plus sont activés, veuillez en désactiver certains pour éviter l'instabilité ou le lag."
|
||||
NO_MODS_FOUND = "Aucun mod n'a été trouvé."
|
||||
BROWSE_MODS = "Rechercher des mods"
|
||||
OPEN_MOD_FOLDER = "Ouvrir le dossier mods"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "Tous"
|
||||
|
|
|
|||
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "Dateiauswahl"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "Nur lokales Spielermodell"
|
||||
OPEN_DYNOS_FOLDER = "DynOS-Ordner öffnen"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFO"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODS"
|
|||
CATEGORIES = "Kategorien"
|
||||
WARNING = "\\#ffffa0\\Warnung:\\#dcdcdc\\ Du hast 10 oder mehr Mods aktiviert, bitte deaktiviere einige, um Instabilität oder Lag zu vermeiden."
|
||||
NO_MODS_FOUND = "Es wurden keine Mods gefunden."
|
||||
BROWSE_MODS = "Mod-Seite durchsuchen"
|
||||
OPEN_MOD_FOLDER = "Mods-Ordner öffnen"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "Alle"
|
||||
|
|
|
|||
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "ファイルセレクト風"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "ローカルのキャラモデルに限定"
|
||||
OPEN_DYNOS_FOLDER = "DynOSフォルダを開く"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFO"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODS"
|
|||
CATEGORIES = "カテゴリ一覧"
|
||||
WARNING = "\\#ffffa0\\<注意>\\#dcdcdc\\ MODの数が10個以上になっています。ラグや不安定を防ぐため、いくつか無効にしてください。"
|
||||
NO_MODS_FOUND = "MODは見つかりませんでした。"
|
||||
BROWSE_MODS = "MODサイトを開く"
|
||||
OPEN_MOD_FOLDER = "MODフォルダを開く"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "すべて"
|
||||
|
|
|
|||
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "Seletor de Arquivo"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "Apenas modelo do jogador local"
|
||||
OPEN_DYNOS_FOLDER = "Abrir pasta DynOS"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFO"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODS"
|
|||
CATEGORIES = "Categorias"
|
||||
WARNING = "\\#ffffa0\\Aviso:\\#dcdcdc\\ Você tem 10 ou mais mods ativos. Desative alguns para evitar instabilidades ou travamentos."
|
||||
NO_MODS_FOUND = "Nenhum mod encontrado."
|
||||
BROWSE_MODS = "Abrir site de mods"
|
||||
OPEN_MOD_FOLDER = "Abrir pasta de mods"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "Todos"
|
||||
|
|
|
|||
|
|
@ -196,6 +196,7 @@ FILE_SELECT_THEME = "Selección de archivo"
|
|||
[DYNOS]
|
||||
DYNOS = "DYNOS"
|
||||
LOCAL_PLAYER_MODEL_ONLY = "Solo reemplazar el modelo del jugador local"
|
||||
OPEN_DYNOS_FOLDER = "Abrir carpeta de DynOS"
|
||||
|
||||
[HOST_MESSAGE]
|
||||
INFO_TITLE = "INFO"
|
||||
|
|
@ -210,6 +211,8 @@ MODS = "MODS"
|
|||
CATEGORIES = "Categoría"
|
||||
WARNING = "\\#ffffa0\\Advertencia:\\#dcdcdc\\ Tienes 10 o más mods activados, por favor desactiva algunos para prevenir inestabilidad o lag."
|
||||
NO_MODS_FOUND = "No se han encontrado mods."
|
||||
BROWSE_MODS = "Explorar mods"
|
||||
OPEN_MOD_FOLDER = "Abrir carpeta de mods"
|
||||
|
||||
[HOST_MOD_CATEGORIES]
|
||||
ALL = "Todos"
|
||||
|
|
|
|||
0
mods/day-night-cycle/a-utils.lua
Executable file → Normal file
0
mods/day-night-cycle/a-utils.lua
Executable file → Normal file
0
mods/day-night-cycle/b-time.lua
Executable file → Normal file
0
mods/day-night-cycle/b-time.lua
Executable file → Normal file
0
mods/day-night-cycle/main.lua
Executable file → Normal file
0
mods/day-night-cycle/main.lua
Executable file → Normal file
0
mods/day-night-cycle/skybox.lua
Executable file → Normal file
0
mods/day-night-cycle/skybox.lua
Executable file → Normal file
|
|
@ -41,6 +41,10 @@ static void djui_panel_dynos_destroy(UNUSED struct DjuiBase* caller) {
|
|||
gDjuiInPlayerMenu = false;
|
||||
}
|
||||
|
||||
static void djui_panel_dynos_open_folder(UNUSED struct DjuiBase* caller) {
|
||||
open_folder(fs_get_write_path("/dynos"));
|
||||
}
|
||||
|
||||
static void djui_panel_dynos_add_packs(struct DjuiBase* base) {
|
||||
int packCount = dynos_pack_get_count();
|
||||
for (int i = 0; i < packCount; i++) {
|
||||
|
|
@ -94,6 +98,7 @@ void djui_panel_dynos_create(struct DjuiBase* caller) {
|
|||
{
|
||||
djui_button_left_create(&rect1->base, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
djui_button_right_create(&rect1->base, DLANG(LOBBIES, REFRESH), DJUI_BUTTON_STYLE_NORMAL, djui_panel_dynos_refresh);
|
||||
djui_button_create(body, DLANG(DYNOS, OPEN_DYNOS_FOLDER), DJUI_BUTTON_STYLE_NORMAL, djui_panel_dynos_open_folder);
|
||||
}
|
||||
} else {
|
||||
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
|
|
|
|||
|
|
@ -224,6 +224,14 @@ static void djui_panel_menu_refresh(UNUSED struct DjuiBase* base) {
|
|||
}
|
||||
}
|
||||
|
||||
static void djui_mod_website_open(UNUSED struct DjuiBase* caller) {
|
||||
open_url("https://mods.sm64coopdx.com/mods/");
|
||||
}
|
||||
|
||||
static void djui_mod_folder_open(UNUSED struct DjuiBase* caller) {
|
||||
open_folder(fs_get_write_path("/mods"));
|
||||
}
|
||||
|
||||
void djui_panel_host_mods_create(struct DjuiBase* caller) {
|
||||
|
||||
mods_update_selectable();
|
||||
|
|
@ -251,15 +259,19 @@ void djui_panel_host_mods_create(struct DjuiBase* caller) {
|
|||
|
||||
if (gNetworkType == NT_NONE) {
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(body, 64);
|
||||
struct DjuiRect* rect2 = djui_rect_container_create(body, 64);
|
||||
{
|
||||
sBackButton = djui_button_left_create(&rect1->base, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
sRefreshButton = djui_button_right_create(&rect1->base, DLANG(LOBBIES, REFRESH), DJUI_BUTTON_STYLE_NORMAL, djui_panel_menu_refresh);
|
||||
|
||||
djui_button_left_create(&rect2->base, DLANG(HOST_MODS, BROWSE_MODS), DJUI_BUTTON_STYLE_NORMAL, djui_mod_website_open);
|
||||
djui_button_right_create(&rect2->base, DLANG(HOST_MODS, OPEN_MOD_FOLDER), DJUI_BUTTON_STYLE_NORMAL, djui_mod_folder_open);
|
||||
}
|
||||
} else {
|
||||
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
panel->bodySize.value = paginated->base.height.value + 64 + 64 + 64;
|
||||
djui_three_panel_recalculate_body_size(panel);
|
||||
}
|
||||
|
||||
panel->base.destroy = djui_panel_host_mods_destroy;
|
||||
|
|
|
|||
|
|
@ -13,20 +13,7 @@
|
|||
#endif
|
||||
|
||||
static void djui_panel_options_open_user_folder(UNUSED struct DjuiBase* caller) {
|
||||
#if defined(_WIN32)
|
||||
// Windows
|
||||
ShellExecuteA(NULL, "open", fs_get_write_path(""), NULL, NULL, SW_SHOWNORMAL);
|
||||
#elif __linux__
|
||||
// Linux
|
||||
char command[512];
|
||||
snprintf(command, sizeof(command), "xdg-open \"%s\"", fs_get_write_path(""));
|
||||
system(command);
|
||||
#elif __APPLE__
|
||||
// macOS
|
||||
char command[512];
|
||||
snprintf(command, sizeof(command), "open \"%s\"", fs_get_write_path(""));
|
||||
system(command);
|
||||
#endif
|
||||
open_folder(fs_get_write_path(""));
|
||||
}
|
||||
|
||||
#ifdef DEVELOPMENT
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@
|
|||
#include <stdbool.h>
|
||||
#include <time.h>
|
||||
#include <float.h>
|
||||
#include <sys/stat.h>
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
#include <windows.h>
|
||||
#include <direct.h>
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
|
||||
#include "misc.h"
|
||||
|
|
@ -603,6 +608,41 @@ void str_seperator_concat(char *output_buffer, int buffer_size, char** strings,
|
|||
}
|
||||
}
|
||||
|
||||
void open_url(const char* url) {
|
||||
#if defined(_WIN32) || defined(_WIN64) // windows
|
||||
ShellExecuteA(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
|
||||
|
||||
#elif __linux__ // linux
|
||||
char cmd[512];
|
||||
snprintf(cmd, sizeof(cmd), "xdg-open '%s'", url);
|
||||
system(cmd);
|
||||
|
||||
#elif __APPLE__ // macOS
|
||||
char cmd[512];
|
||||
snprintf(cmd, sizeof(cmd), "open '%s'", url);
|
||||
system(cmd);
|
||||
#endif
|
||||
}
|
||||
|
||||
void open_folder(const char* path) {
|
||||
#if defined(_WIN32) || defined(_WIN64) // windows
|
||||
_mkdir(path);
|
||||
ShellExecuteA(NULL, "open", path, NULL, NULL, SW_SHOWNORMAL);
|
||||
|
||||
#elif __linux__ // linux
|
||||
mkdir(path, 0777);
|
||||
char command[512];
|
||||
snprintf(command, sizeof(command), "xdg-open \"%s\"", path);
|
||||
system(command);
|
||||
|
||||
#elif __APPLE__ // macOS
|
||||
mkdir(path, 0777);
|
||||
char command[512];
|
||||
snprintf(command, sizeof(command), "open \"%s\"", path);
|
||||
system(command);
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *strstr_lowercased(const char *haystack, const char *needle) {
|
||||
// sanity check
|
||||
if (!*needle) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ void delta_interpolate_mtx(Mtx* out, Mtx* a, Mtx* b, f32 delta);
|
|||
void detect_and_skip_mtx_interpolation(Mtx** mtxPrev, Mtx** mtx);
|
||||
|
||||
void str_seperator_concat(char *output_buffer, int buffer_size, char** strings, int num_strings, char* seperator);
|
||||
void open_url(const char* url);
|
||||
void open_folder(const char* path);
|
||||
const char *strstr_lowercased(const char *haystack, const char *needle);
|
||||
|
||||
bool can_update_game(void);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue