mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-22 12:05:11 +00:00
Make user folder sm64coopdx instead of sm64ex-coop, add auto folder copy
This commit is contained in:
parent
6995b1a07c
commit
12aff40090
19 changed files with 68 additions and 5 deletions
|
@ -31,6 +31,7 @@ LOBBY_HOST = "host lobby"
|
||||||
UPDATE_AVAILABLE = "Nová aktualizace!"
|
UPDATE_AVAILABLE = "Nová aktualizace!"
|
||||||
LATEST_VERSION = "Nejnovější verze"
|
LATEST_VERSION = "Nejnovější verze"
|
||||||
YOUR_VERSION = "Vaše verze"
|
YOUR_VERSION = "Vaše verze"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Úspěch!\n\\#dcdcdc\\Složka uživatele sm64ex-coop byla zkopírována do nové složky sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "Vyhazování '@'!"
|
KICKING = "Vyhazování '@'!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "De Lobby's organisator."
|
||||||
UPDATE_AVAILABLE = "Nieuwe update!"
|
UPDATE_AVAILABLE = "Nieuwe update!"
|
||||||
LATEST_VERSION = "Laatste versie"
|
LATEST_VERSION = "Laatste versie"
|
||||||
YOUR_VERSION = "Uw versie"
|
YOUR_VERSION = "Uw versie"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Succes!\n\\#dcdcdc\\De gebruikersmap van sm64ex-coop is gekopieerd naar de nieuwe sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "'@' eruit schoppen!"
|
KICKING = "'@' eruit schoppen!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "the lobby's host"
|
||||||
UPDATE_AVAILABLE = "A new update is available!"
|
UPDATE_AVAILABLE = "A new update is available!"
|
||||||
LATEST_VERSION = "Latest version"
|
LATEST_VERSION = "Latest version"
|
||||||
YOUR_VERSION = "Your version"
|
YOUR_VERSION = "Your version"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Success!\n\\#dcdcdc\\The sm64ex-coop user folder has been copied over to the new sm64coopdx one."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "Kicking '@'!"
|
KICKING = "Kicking '@'!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "l'hôte de la partie"
|
||||||
UPDATE_AVAILABLE = "Nouvelle mise à jour !"
|
UPDATE_AVAILABLE = "Nouvelle mise à jour !"
|
||||||
LATEST_VERSION = "Dernière version"
|
LATEST_VERSION = "Dernière version"
|
||||||
YOUR_VERSION = "Votre version"
|
YOUR_VERSION = "Votre version"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Succès !\n\\#dcdcdc\\Le dossier utilisateur sm64ex-coop a été copié dans le nouveau sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "Vous avez expulsé '@' !"
|
KICKING = "Vous avez expulsé '@' !"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "Lobby-Hoster"
|
||||||
UPDATE_AVAILABLE = "Neues Update!"
|
UPDATE_AVAILABLE = "Neues Update!"
|
||||||
LATEST_VERSION = "Aktuellste Version"
|
LATEST_VERSION = "Aktuellste Version"
|
||||||
YOUR_VERSION = "Ihre Version"
|
YOUR_VERSION = "Ihre Version"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Erfolg!\n\\#dcdcdc\\Der Benutzerordner sm64ex-coop wurde in den neuen sm64coopdx kopiert."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "'@' wird hinausgeworfen!"
|
KICKING = "'@' wird hinausgeworfen!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "the lobby's host"
|
||||||
UPDATE_AVAILABLE = "Nuovo aggiornamento!"
|
UPDATE_AVAILABLE = "Nuovo aggiornamento!"
|
||||||
LATEST_VERSION = "Ultima versione"
|
LATEST_VERSION = "Ultima versione"
|
||||||
YOUR_VERSION = "La tua versione"
|
YOUR_VERSION = "La tua versione"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Successo!\n\\#dcdcdc\\La cartella utente sm64ex-coop è stata copiata nella nuova sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "Espulso '@'!"
|
KICKING = "Espulso '@'!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "Host lobby"
|
||||||
UPDATE_AVAILABLE = "Nowa aktualizacja!"
|
UPDATE_AVAILABLE = "Nowa aktualizacja!"
|
||||||
LATEST_VERSION = "Najnowsza wersja"
|
LATEST_VERSION = "Najnowsza wersja"
|
||||||
YOUR_VERSION = "Twoja wersja"
|
YOUR_VERSION = "Twoja wersja"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Sukces!\n\\#dcdcdc\\Folder użytkownika sm64ex-coop został skopiowany do nowego sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "Wyrzucanie gracza '@'!"
|
KICKING = "Wyrzucanie gracza '@'!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "o criador da partida"
|
||||||
UPDATE_AVAILABLE = "Nova atualização!"
|
UPDATE_AVAILABLE = "Nova atualização!"
|
||||||
LATEST_VERSION = "Versão mais recente"
|
LATEST_VERSION = "Versão mais recente"
|
||||||
YOUR_VERSION = "Sua versão"
|
YOUR_VERSION = "Sua versão"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Sucesso!\n\\#dcdcdc\\A pasta de usuário sm64ex-coop foi copiada para a nova sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "'@' foi expulso!"
|
KICKING = "'@' foi expulso!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "Создать группу"
|
||||||
UPDATE_AVAILABLE = "Новое обновление!"
|
UPDATE_AVAILABLE = "Новое обновление!"
|
||||||
LATEST_VERSION = "Последняя версия"
|
LATEST_VERSION = "Последняя версия"
|
||||||
YOUR_VERSION = "Ваша версия"
|
YOUR_VERSION = "Ваша версия"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\Успех!\n\\#dcdcdc\\Папка пользователя sm64ex-coop была скопирована в новую sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "'@' выгнан!"
|
KICKING = "'@' выгнан!"
|
||||||
|
|
|
@ -31,6 +31,7 @@ LOBBY_HOST = "la partida del anfitrión"
|
||||||
UPDATE_AVAILABLE = "¡Nueva actualización!"
|
UPDATE_AVAILABLE = "¡Nueva actualización!"
|
||||||
LATEST_VERSION = "Última versión"
|
LATEST_VERSION = "Última versión"
|
||||||
YOUR_VERSION = "Su versión"
|
YOUR_VERSION = "Su versión"
|
||||||
|
USER_FOLDER_COPIED = "\\#a0ffa0\\¡Éxito!\n\\#dcdcdc\\La carpeta de usuario sm64ex-coop ha sido copiada a la nueva sm64coopdx."
|
||||||
|
|
||||||
[CHAT]
|
[CHAT]
|
||||||
KICKING = "¡'@' ha sido expulsado!"
|
KICKING = "¡'@' ha sido expulsado!"
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "djui_hud_utils.h"
|
#include "djui_hud_utils.h"
|
||||||
#include "engine/math_util.h"
|
#include "engine/math_util.h"
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
|
#include "pc/startup.h"
|
||||||
|
|
||||||
static Gfx* sSavedDisplayListHead = NULL;
|
static Gfx* sSavedDisplayListHead = NULL;
|
||||||
|
|
||||||
|
@ -109,6 +110,10 @@ void djui_init_late(void) {
|
||||||
|
|
||||||
// djui_panel_debug_create();
|
// djui_panel_debug_create();
|
||||||
djui_cursor_create();
|
djui_cursor_create();
|
||||||
|
|
||||||
|
if (gUserFolderCopied) {
|
||||||
|
djui_popup_create(DLANG(NOTIF, USER_FOLDER_COPIED), 4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void djui_connect_menu_open(void) {
|
void djui_connect_menu_open(void) {
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
#include "pc/controller/controller_bind_mapping.h"
|
#include "pc/controller/controller_bind_mapping.h"
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
#include "pc/mods/mod_import.h"
|
#include "pc/mods/mod_import.h"
|
||||||
#include "pc/rom_checker.h"
|
#include "pc/startup.h"
|
||||||
|
|
||||||
#ifndef GL_MAX_SAMPLES
|
#ifndef GL_MAX_SAMPLES
|
||||||
#define GL_MAX_SAMPLES 0x8D57
|
#define GL_MAX_SAMPLES 0x8D57
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#include "loading.h"
|
#include "loading.h"
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
#include "pc/cliopts.h"
|
#include "pc/cliopts.h"
|
||||||
#include "rom_checker.h"
|
#include "startup.h"
|
||||||
|
|
||||||
extern ALIGNED8 u8 texture_coopdx_logo[];
|
extern ALIGNED8 u8 texture_coopdx_logo[];
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include "audio/audio_null.h"
|
#include "audio/audio_null.h"
|
||||||
|
|
||||||
#include "rom_assets.h"
|
#include "rom_assets.h"
|
||||||
#include "rom_checker.h"
|
#include "startup.h"
|
||||||
#include "pc_main.h"
|
#include "pc_main.h"
|
||||||
#include "loading.h"
|
#include "loading.h"
|
||||||
#include "cliopts.h"
|
#include "cliopts.h"
|
||||||
|
@ -373,6 +373,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
old_user_folder_handler();
|
||||||
|
|
||||||
const char *userpath = gCLIOpts.savePath[0] ? gCLIOpts.savePath : sys_user_path();
|
const char *userpath = gCLIOpts.savePath[0] ? gCLIOpts.savePath : sys_user_path();
|
||||||
fs_init(userpath);
|
fs_init(userpath);
|
||||||
configfile_load();
|
configfile_load();
|
||||||
|
|
|
@ -84,6 +84,28 @@ void sys_fatal(const char *fmt, ...) {
|
||||||
const char *sys_user_path(void) {
|
const char *sys_user_path(void) {
|
||||||
static char path[SYS_MAX_PATH] = { 0 };
|
static char path[SYS_MAX_PATH] = { 0 };
|
||||||
|
|
||||||
|
// get the new pref path from SDL
|
||||||
|
char *sdlpath = SDL_GetPrefPath("", "sm64coopdx");
|
||||||
|
if (sdlpath) {
|
||||||
|
const unsigned int len = strlen(sdlpath);
|
||||||
|
strncpy(path, sdlpath, sizeof(path));
|
||||||
|
path[sizeof(path)-1] = 0;
|
||||||
|
|
||||||
|
SDL_free(sdlpath);
|
||||||
|
|
||||||
|
if (path[len-1] == '/' || path[len-1] == '\\')
|
||||||
|
path[len-1] = 0; // strip the trailing separator
|
||||||
|
|
||||||
|
if (!fs_sys_dir_exists(path) && !fs_sys_mkdir(path))
|
||||||
|
path[0] = 0; // somehow failed, we got no user path
|
||||||
|
}
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *sys_old_user_path(void) {
|
||||||
|
static char path[SYS_MAX_PATH] = { 0 };
|
||||||
|
|
||||||
// get the new pref path from SDL
|
// get the new pref path from SDL
|
||||||
char *sdlpath = SDL_GetPrefPath("", "sm64ex-coop");
|
char *sdlpath = SDL_GetPrefPath("", "sm64ex-coop");
|
||||||
if (sdlpath) {
|
if (sdlpath) {
|
||||||
|
@ -135,6 +157,10 @@ const char *sys_user_path(void) {
|
||||||
return ".";
|
return ".";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *sys_old_user_path(void) {
|
||||||
|
return ".";
|
||||||
|
}
|
||||||
|
|
||||||
const char *sys_exe_path(void) {
|
const char *sys_exe_path(void) {
|
||||||
return ".";
|
return ".";
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ int sys_strcasecmp(const char *s1, const char *s2);
|
||||||
|
|
||||||
// path stuff
|
// path stuff
|
||||||
const char *sys_user_path(void);
|
const char *sys_user_path(void);
|
||||||
|
const char *sys_old_user_path(void);
|
||||||
const char *sys_exe_path(void);
|
const char *sys_exe_path(void);
|
||||||
const char *sys_file_extension(const char *fpath);
|
const char *sys_file_extension(const char *fpath);
|
||||||
const char *sys_file_name(const char *fpath);
|
const char *sys_file_name(const char *fpath);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include <PR/ultratypes.h>
|
#include <PR/ultratypes.h>
|
||||||
#include "rom_assets.h"
|
#include "rom_assets.h"
|
||||||
#include "pc/debuglog.h"
|
#include "pc/debuglog.h"
|
||||||
#include "rom_checker.h"
|
#include "startup.h"
|
||||||
|
|
||||||
struct RomAsset {
|
struct RomAsset {
|
||||||
void* ptr;
|
void* ptr;
|
||||||
|
|
|
@ -7,10 +7,12 @@ extern "C" {
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include "mods/mods_utils.h" // for str_ends_with
|
#include "mods/mods_utils.h" // for str_ends_with
|
||||||
#include "mods/mod_cache.h" // for md5 hashing
|
#include "mods/mod_cache.h" // for md5 hashing
|
||||||
|
#include "loading.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "loading.h"
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
bool gUserFolderCopied = false;
|
||||||
bool gRomIsValid = false;
|
bool gRomIsValid = false;
|
||||||
char gRomFilename[255] = "";
|
char gRomFilename[255] = "";
|
||||||
|
|
||||||
|
@ -28,6 +30,16 @@ static struct VanillaMD5 sVanillaMD5[] = {
|
||||||
{ NULL, NULL },
|
{ NULL, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void copy_old_user_folder() {
|
||||||
|
char* oldpath = (char*)sys_old_user_path();
|
||||||
|
char* newpath = (char*)sys_user_path();
|
||||||
|
|
||||||
|
if (fs::exists(oldpath) && (fs::is_empty(newpath) || !fs::exists(newpath))) {
|
||||||
|
fs::copy(oldpath, newpath);
|
||||||
|
gUserFolderCopied = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static bool is_rom_valid(const std::string romPath) {
|
static bool is_rom_valid(const std::string romPath) {
|
||||||
u8 dataHash[16] = { 0 };
|
u8 dataHash[16] = { 0 };
|
||||||
mod_cache_md5(romPath.c_str(), dataHash);
|
mod_cache_md5(romPath.c_str(), dataHash);
|
||||||
|
@ -71,6 +83,10 @@ inline static bool scan_path_for_rom(const char *dir) {
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
void old_user_folder_handler(void) {
|
||||||
|
copy_old_user_folder();
|
||||||
|
}
|
||||||
|
|
||||||
bool main_rom_handler(void) {
|
bool main_rom_handler(void) {
|
||||||
if (scan_path_for_rom(sys_user_path())) { return true; }
|
if (scan_path_for_rom(sys_user_path())) { return true; }
|
||||||
scan_path_for_rom(sys_exe_path());
|
scan_path_for_rom(sys_exe_path());
|
|
@ -1,7 +1,10 @@
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
|
extern bool gUserFolderCopied;
|
||||||
extern bool gRomIsValid;
|
extern bool gRomIsValid;
|
||||||
extern char gRomFilename[];
|
extern char gRomFilename[];
|
||||||
|
|
||||||
|
void old_user_folder_handler(void);
|
||||||
|
|
||||||
bool main_rom_handler(void);
|
bool main_rom_handler(void);
|
||||||
void rom_on_drop_file(const char *path);
|
void rom_on_drop_file(const char *path);
|
Loading…
Reference in a new issue