mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-19 09:12:19 +00:00
Switch new players to DDNet config dir, support Teeworlds as fallback
This way new players will get DDNet directory, old ones can switch directory if they want, or keep using the old one. If we ever enforce a switch in a future version, this will make it easier since older DDNet versions will also support the DDNet directory already.
This commit is contained in:
parent
9be59a990b
commit
790c1cc0aa
|
@ -2670,6 +2670,8 @@ set(CPACK_GEN_FILES
|
|||
|
||||
if(TARGET_OS STREQUAL "windows")
|
||||
list(APPEND CPACK_FILES other/config_directory.bat)
|
||||
else()
|
||||
list(APPEND CPACK_FILES other/config_directory.sh)
|
||||
endif()
|
||||
|
||||
if(NOT DEV)
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
@start explorer %APPDATA%\Teeworlds
|
||||
if exist %APPDATA%\DDNet\ (
|
||||
@start explorer %APPDATA%\DDNet\
|
||||
) else (
|
||||
@start explorer %APPDATA%\Teeworlds\
|
||||
)
|
||||
|
|
21
other/config_directory.sh
Executable file
21
other/config_directory.sh
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh
|
||||
case "$(uname -s)" in
|
||||
CYGWIN*|MINGW*|MSYS*)
|
||||
if [ -d "$APPDATA/DDNet/" ]; then
|
||||
explorer "$APPDATA/DDNet/"
|
||||
else
|
||||
explorer "$APPDATA/Teeworlds/"
|
||||
fi;;
|
||||
Darwin*)
|
||||
if [ -d "$HOME/Library/Application Support/DDNet/" ]; then
|
||||
open "$HOME/Library/Application Support/DDNet/"
|
||||
else
|
||||
open "$HOME/Library/Application Support/Teeworlds/"
|
||||
fi;;
|
||||
*)
|
||||
if [ -d "$HOME/.ddnet/" ]; then
|
||||
xdg-open "$HOME/.ddnet/"
|
||||
else
|
||||
xdg-open "$HOME/.teeworlds/"
|
||||
fi;;
|
||||
esac
|
|
@ -1799,7 +1799,7 @@ int fs_rename(const char *oldname, const char *newname);
|
|||
modified - Pointer to time_t
|
||||
|
||||
Returns:
|
||||
0 on success non-zero on failure
|
||||
0 on success, non-zero on failure
|
||||
|
||||
Remarks:
|
||||
- Returned time is in seconds since UNIX Epoch
|
||||
|
|
|
@ -4325,7 +4325,7 @@ int main(int argc, const char **argv)
|
|||
// create the components
|
||||
IEngine *pEngine = CreateEngine(GAME_NAME, Silent, 2);
|
||||
IConsole *pConsole = CreateConsole(CFGFLAG_CLIENT);
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_CLIENT, argc, (const char **)argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_CLIENT, argc, (const char **)argv);
|
||||
IConfigManager *pConfigManager = CreateConfigManager();
|
||||
IEngineSound *pEngineSound = CreateEngineSound();
|
||||
IEngineInput *pEngineInput = CreateEngineInput();
|
||||
|
|
|
@ -3646,7 +3646,7 @@ int main(int argc, const char **argv)
|
|||
IGameServer *pGameServer = CreateGameServer();
|
||||
IConsole *pConsole = CreateConsole(CFGFLAG_SERVER | CFGFLAG_ECON);
|
||||
IEngineMasterServer *pEngineMasterServer = CreateEngineMasterServer();
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_SERVER, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_SERVER, argc, argv);
|
||||
IConfigManager *pConfigManager = CreateConfigManager();
|
||||
IEngineAntibot *pEngineAntibot = CreateEngineAntibot();
|
||||
|
||||
|
|
|
@ -28,10 +28,17 @@ public:
|
|||
m_aUserdir[0] = 0;
|
||||
}
|
||||
|
||||
int Init(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments)
|
||||
int Init(int StorageType, int NumArgs, const char **ppArguments)
|
||||
{
|
||||
// get userdir
|
||||
fs_storage_path(pApplicationName, m_aUserdir, sizeof(m_aUserdir));
|
||||
char aFallbackUserdir[IO_MAX_PATH_LENGTH];
|
||||
fs_storage_path("DDNet", m_aUserdir, sizeof(m_aUserdir));
|
||||
fs_storage_path("Teeworlds", aFallbackUserdir, sizeof(aFallbackUserdir));
|
||||
|
||||
if(!fs_is_dir(m_aUserdir) && fs_is_dir(aFallbackUserdir))
|
||||
{
|
||||
str_copy(m_aUserdir, aFallbackUserdir, sizeof(m_aUserdir));
|
||||
}
|
||||
|
||||
// get datadir
|
||||
FindDatadir(ppArguments[0]);
|
||||
|
@ -559,10 +566,10 @@ public:
|
|||
return pBuffer;
|
||||
}
|
||||
|
||||
static IStorage *Create(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments)
|
||||
static IStorage *Create(int StorageType, int NumArgs, const char **ppArguments)
|
||||
{
|
||||
CStorage *p = new CStorage();
|
||||
if(p && p->Init(pApplicationName, StorageType, NumArgs, ppArguments))
|
||||
if(p && p->Init(StorageType, NumArgs, ppArguments))
|
||||
{
|
||||
dbg_msg("storage", "initialisation failed");
|
||||
delete p;
|
||||
|
@ -600,9 +607,9 @@ const char *IStorage::FormatTmpPath(char *aBuf, unsigned BufSize, const char *pP
|
|||
return aBuf;
|
||||
}
|
||||
|
||||
IStorage *CreateStorage(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments)
|
||||
IStorage *CreateStorage(int StorageType, int NumArgs, const char **ppArguments)
|
||||
{
|
||||
return CStorage::Create(pApplicationName, StorageType, NumArgs, ppArguments);
|
||||
return CStorage::Create(StorageType, NumArgs, ppArguments);
|
||||
}
|
||||
|
||||
IStorage *CreateLocalStorage()
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
static const char *FormatTmpPath(char *aBuf, unsigned BufSize, const char *pPath);
|
||||
};
|
||||
|
||||
extern IStorage *CreateStorage(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments);
|
||||
extern IStorage *CreateStorage(int StorageType, int NumArgs, const char **ppArguments);
|
||||
extern IStorage *CreateLocalStorage();
|
||||
extern IStorage *CreateTempStorage(const char *pDirectory);
|
||||
|
||||
|
|
|
@ -333,7 +333,7 @@ int main(int argc, const char **argv)
|
|||
mem_copy(m_CountDataLegacy.m_Header, SERVERBROWSE_COUNT_LEGACY, sizeof(SERVERBROWSE_COUNT_LEGACY));
|
||||
|
||||
IKernel *pKernel = IKernel::Create();
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
IConfigManager *pConfigManager = CreateConfigManager();
|
||||
m_pConsole = CreateConsole(CFGFLAG_MASTER);
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ int main(int argc, const char **argv)
|
|||
{
|
||||
cmdline_fix(&argc, &argv);
|
||||
dbg_logger_stdout();
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_SERVER, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_SERVER, argc, argv);
|
||||
CreateEmptyMap(pStorage);
|
||||
cmdline_free(argc, argv);
|
||||
return 0;
|
||||
|
|
|
@ -138,7 +138,7 @@ int main(int argc, const char **argv)
|
|||
cmdline_fix(&argc, &argv);
|
||||
dbg_logger_stdout();
|
||||
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
|
||||
if(argc < 2 || argc > 3)
|
||||
{
|
||||
|
|
|
@ -81,7 +81,7 @@ int main(int argc, const char **argv)
|
|||
cmdline_fix(&argc, &argv);
|
||||
dbg_logger_stdout();
|
||||
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
int ID = 0, Type = 0, Size;
|
||||
void *pPtr;
|
||||
char aFileName[IO_MAX_PATH_LENGTH];
|
||||
|
|
|
@ -113,7 +113,7 @@ int main(int argc, const char **argv)
|
|||
cmdline_fix(&argc, &argv);
|
||||
dbg_logger_stdout();
|
||||
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
|
||||
if(argc != 5)
|
||||
{
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
int main(int argc, const char **argv)
|
||||
{
|
||||
cmdline_fix(&argc, &argv);
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
IStorage *pStorage = CreateStorage(IStorage::STORAGETYPE_BASIC, argc, argv);
|
||||
int Index, ID = 0, Type = 0, Size;
|
||||
void *pPtr;
|
||||
char aFileName[IO_MAX_PATH_LENGTH];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
####
|
||||
# This specifies where and in which order Teeworlds looks
|
||||
# This specifies where and in which order DDNet looks
|
||||
# for its data (sounds, skins, ...). The search goes top
|
||||
# down which means the first path has the highest priority.
|
||||
# Furthermore the top entry also defines the save path where
|
||||
|
@ -7,8 +7,9 @@
|
|||
# There are 3 special paths available:
|
||||
# $USERDIR
|
||||
# - ~/.appname on UNIX based systems
|
||||
# - ~/Library/Applications Support/appname on macOS
|
||||
# - ~/Library/Applications Support/Appname on macOS
|
||||
# - %APPDATA%/Appname on Windows based systems
|
||||
# Appname is DDNet, if that doesn't exist Teeworlds is used as a fallback
|
||||
# $DATADIR
|
||||
# - the 'data' directory which is part of an official
|
||||
# release
|
||||
|
|
Loading…
Reference in a new issue