This commit is contained in:
Christoph Oelckers 2022-08-11 22:39:53 +02:00
commit 283c5d688c
7 changed files with 78 additions and 2 deletions

View File

@ -52,6 +52,10 @@
#include "version.h"
#include "findfile.h"
#include "md5.h"
#include "i_specialpaths.h"
void I_OpenShellFolder(const char*);
void I_OpenShellFile(const char*);
extern FILE* Logfile;
@ -336,3 +340,19 @@ CCMD(printlocalized)
}
}
CCMD(opensaves)
{
I_OpenShellFolder(M_GetSavegamesPath().GetChars());
}
CCMD(openscreenshots)
{
I_OpenShellFolder(M_GetScreenshotsPath().GetChars());
}
CCMD(openconfig)
{
I_OpenShellFile(M_GetConfigPath(false).GetChars());
}

View File

@ -170,3 +170,18 @@ unsigned int I_MakeRNGSeed()
{
return static_cast<unsigned int>(arc4random());
}
void I_OpenShellFolder(const char* folder)
{
std::string x = (std::string)"open " + (std::string)folder;
Printf("Opening folder: %s\n", folder);
std::system(x.c_str());
}
void I_OpenShellFile(const char* file)
{
std::string x = (std::string)"open " + (std::string)file;
x.erase(x.find_last_of('/'), std::string::npos);
Printf("Opening folder to file: %s\n", file);
std::system(x.c_str());
}

View File

@ -431,3 +431,19 @@ unsigned int I_MakeRNGSeed()
}
return seed;
}
void I_OpenShellFolder(const char* folder)
{
std::string x = (std::string)"xdg-open " + (std::string)folder;
Printf("Opening folder: %s\n", folder);
std::system(x.c_str());
}
void I_OpenShellFile(const char* file)
{
std::string x = (std::string)"xdg-open " + (std::string)file;
x.erase(x.find_last_of('/'), std::string::npos);
Printf("Opening folder to file: %s\n", file);
std::system(x.c_str());
}

View File

@ -283,7 +283,7 @@ FString M_GetScreenshotsPath()
if (!UseKnownFolders())
{
path << progdir << "/Screenshots/";
path << progdir << "Screenshots/";
}
else if (GetKnownFolder(-1, MyFOLDERID_Screenshots, true, path))
{

View File

@ -6,6 +6,7 @@
** Copyright 1998-2009 Randy Heit
** Copyright (C) 2007-2012 Skulltag Development Team
** Copyright (C) 2007-2016 Zandronum Development Team
** Copyright (C) 2017-2022 GZDoom Development Team
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
@ -49,6 +50,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdexcept>
#include <process.h>
#include <time.h>
#include <map>
@ -62,6 +64,8 @@
#include <wincrypt.h>
#include <shlwapi.h>
#include <shellapi.h>
#include "hardware.h"
#include "printf.h"
@ -955,3 +959,21 @@ void I_SetThreadNumaNode(std::thread &thread, int numaNode)
SetThreadAffinityMask(handle, (DWORD_PTR)numaNodes[numaNode].affinityMask);
}
}
void I_OpenShellFolder(const char* folder)
{
FString proc = folder;
proc.ReplaceChars('/', '\\');
Printf("Opening folder: %s\n", proc.GetChars());
ShellExecuteW(NULL, L"open", L"explorer.exe", proc.WideString().c_str(), NULL, SW_SHOWNORMAL);
}
void I_OpenShellFile(const char* file)
{
FString proc = file;
proc.ReplaceChars('/', '\\');
Printf("Opening folder to file: %s\n", proc.GetChars());
proc.Format("/select,%s", proc.GetChars());
ShellExecuteW(NULL, L"open", L"explorer.exe", proc.WideString().c_str(), NULL, SW_SHOWNORMAL);
}

View File

@ -73,7 +73,7 @@
extern FILE *Logfile;
extern bool insave;
CVAR (Bool, sv_cheats, false, CVAR_SERVERINFO | CVAR_LATCH)
CVAR (Bool, sv_cheats, false, CVAR_SERVERINFO)
CVAR (Bool, sv_unlimited_pickup, false, CVAR_SERVERINFO)
CVAR (Int, cl_blockcheats, 0, 0)

View File

@ -380,6 +380,9 @@ OptionMenu "OptionsMenu" protected
SafeCommand "$OPTMNU_WRITEINI", "writeini"
Command "$OPTMNU_CONSOLE", "menuconsole"
Command "$OPTMNU_OPENCONFIG", "openconfig"
Command "$OPTMNU_OPENSCREENSHOTS", "openscreenshots"
Command "$OPTMNU_OPENSAVES", "opensaves"
StaticText " "
}