actually add Dirs files

This commit is contained in:
HJfod 2022-11-30 19:19:37 +02:00
parent f73d1042a3
commit f9b6595073
2 changed files with 130 additions and 0 deletions

View file

@ -0,0 +1,59 @@
#pragma once
#include "../external/filesystem/fs/filesystem.hpp"
#include "../DefaultInclude.hpp"
namespace geode::dirs {
/**
* Directory where Geometry Dash is
*/
GEODE_DLL ghc::filesystem::path getGameDir();
/**
* Directory where GD saves its files
*/
GEODE_DLL ghc::filesystem::path getSaveDir();
/**
* Directory where Geode is
*/
GEODE_DLL ghc::filesystem::path getGeodeDir();
/**
* Directory where Geode saves its files
*/
GEODE_DLL ghc::filesystem::path getGeodeSaveDir();
/**
* Directory where Geode's resources are stored
*/
GEODE_DLL ghc::filesystem::path getGeodeResourcesDir();
/**
* Directory where Geode's resources are stored
*/
GEODE_DLL ghc::filesystem::path getGeodeLogDir();
/**
* Directory to store temporary files
*/
GEODE_DLL ghc::filesystem::path getTempDir();
/**
* Directory where mods are stored by default
*/
GEODE_DLL ghc::filesystem::path getModsDir();
/**
* Directory where mods' save data is stored
*/
GEODE_DLL ghc::filesystem::path getModsSaveDir();
/**
* Directory where mods' unzipped packages are stored at runtime
*/
GEODE_DLL ghc::filesystem::path getModRuntimeDir();
/**
* Directory where mods' config files lie
*/
GEODE_DLL ghc::filesystem::path getModConfigDir();
/**
* Directory where Geode stores the cached index
*/
GEODE_DLL ghc::filesystem::path getIndexDir();
/**
* Directory where crashlogs are stored
*/
GEODE_DLL ghc::filesystem::path getCrashlogsDir();
}

View file

@ -0,0 +1,71 @@
#include <Geode/loader/Dirs.hpp>
#include <cocos2d.h>
#include <crashlog.hpp>
USE_GEODE_NAMESPACE();
ghc::filesystem::path dirs::getGameDir() {
return ghc::filesystem::path(CCFileUtils::sharedFileUtils()->getWritablePath2().c_str());
}
ghc::filesystem::path dirs::getSaveDir() {
#ifdef GEODE_IS_MACOS
// not using ~/Library/Caches
return ghc::filesystem::path("/Users/Shared/Geode");
#elif defined(GEODE_IS_WINDOWS)
return ghc::filesystem::path(
ghc::filesystem::weakly_canonical(
CCFileUtils::sharedFileUtils()->getWritablePath().c_str()
).string()
);
#else
return ghc::filesystem::path(
CCFileUtils::sharedFileUtils()->getWritablePath().c_str()
);
#endif
}
ghc::filesystem::path dirs::getGeodeDir() {
return dirs::getGameDir() / "geode";
}
ghc::filesystem::path dirs::getGeodeSaveDir() {
return dirs::getSaveDir() / "geode";
}
ghc::filesystem::path dirs::getGeodeResourcesDir() {
return dirs::getGeodeDir() / "resources";
}
ghc::filesystem::path dirs::getGeodeLogDir() {
return dirs::getGeodeDir() / "logs";
}
ghc::filesystem::path dirs::getTempDir() {
return getGeodeDir() / "temp";
}
ghc::filesystem::path dirs::getModsDir() {
return getGeodeDir() / "mods";
}
ghc::filesystem::path dirs::getModsSaveDir() {
return getGeodeSaveDir() / "mods";
}
ghc::filesystem::path dirs::getModRuntimeDir() {
return dirs::getGeodeDir() / "unzipped";
}
ghc::filesystem::path dirs::getModConfigDir() {
return dirs::getGeodeDir() / "config";
}
ghc::filesystem::path dirs::getIndexDir() {
return dirs::getGeodeDir() / "index";
}
ghc::filesystem::path dirs::getCrashlogsDir() {
return crashlog::getCrashLogDirectory();
}