Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions Managers/LuaMan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ namespace RTE {
.def("RangeRand", &LuaStateWrapper::RangeRand)
.def("PosRand", &LuaStateWrapper::PosRand)
.def("NormalRand", &LuaStateWrapper::NormalRand)
.def("GetDirectoryList", &LuaStateWrapper::DirectoryList, luabind::return_stl_iterator)
.def("GetFileList", &LuaStateWrapper::FileList, luabind::return_stl_iterator)
.def("GetDirectoryList", &LuaStateWrapper::DirectoryList, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator)
.def("GetFileList", &LuaStateWrapper::FileList, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator)
.def("FileExists", &LuaStateWrapper::FileExists)
.def("FileOpen", &LuaStateWrapper::FileOpen)
.def("FileClose", &LuaStateWrapper::FileClose)
Expand Down Expand Up @@ -273,8 +273,8 @@ namespace RTE {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Passthrough LuaMan Functions
const std::vector<std::string>& LuaStateWrapper::DirectoryList(const std::string& relativeDirectory) { return g_LuaMan.DirectoryList(relativeDirectory); }
const std::vector<std::string>& LuaStateWrapper::FileList(const std::string& relativeDirectory) { return g_LuaMan.FileList(relativeDirectory); }
const std::vector<std::string>* LuaStateWrapper::DirectoryList(const std::string& relativeDirectory) { return g_LuaMan.DirectoryList(relativeDirectory); }
const std::vector<std::string>* LuaStateWrapper::FileList(const std::string& relativeDirectory) { return g_LuaMan.FileList(relativeDirectory); }
bool LuaStateWrapper::FileExists(const std::string &fileName) { return g_LuaMan.FileExists(fileName); }
int LuaStateWrapper::FileOpen(const std::string& fileName, const std::string& accessMode) { return g_LuaMan.FileOpen(fileName, accessMode); }
void LuaStateWrapper::FileClose(int fileIndex) { return g_LuaMan.FileClose(fileIndex); }
Expand Down Expand Up @@ -923,24 +923,22 @@ namespace RTE {

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

const std::vector<std::string> & LuaMan::DirectoryList(const std::string &filePath) {
thread_local std::vector<std::string> directoryPaths;
directoryPaths.clear();
const std::vector<std::string> * LuaMan::DirectoryList(const std::string &filePath) {
auto *directoryPaths = new std::vector<std::string>();

for (const std::filesystem::directory_entry &directoryEntry : std::filesystem::directory_iterator(System::GetWorkingDirectory() + filePath)) {
if (directoryEntry.is_directory()) { directoryPaths.emplace_back(directoryEntry.path().filename().generic_string()); }
if (directoryEntry.is_directory()) { directoryPaths->emplace_back(directoryEntry.path().filename().generic_string()); }
}
return directoryPaths;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

const std::vector<std::string> & LuaMan::FileList(const std::string &filePath) {
thread_local std::vector<std::string> filePaths;
filePaths.clear();
const std::vector<std::string> * LuaMan::FileList(const std::string &filePath) {
auto *filePaths = new std::vector<std::string>();

for (const std::filesystem::directory_entry &directoryEntry : std::filesystem::directory_iterator(System::GetWorkingDirectory() + filePath)) {
if (directoryEntry.is_regular_file()) { filePaths.emplace_back(directoryEntry.path().filename().generic_string()); }
if (directoryEntry.is_regular_file()) { filePaths->emplace_back(directoryEntry.path().filename().generic_string()); }
}
return filePaths;
}
Expand Down
8 changes: 4 additions & 4 deletions Managers/LuaMan.h
Original file line number Diff line number Diff line change
Expand Up @@ -284,8 +284,8 @@ namespace RTE {
double PosRand();

#pragma region Passthrough LuaMan Functions
const std::vector<std::string>& DirectoryList(const std::string& relativeDirectory);
const std::vector<std::string>& FileList(const std::string& relativeDirectory);
const std::vector<std::string>* DirectoryList(const std::string& relativeDirectory);
const std::vector<std::string>* FileList(const std::string& relativeDirectory);
bool FileExists(const std::string &fileName);
int FileOpen(const std::string& fileName, const std::string& accessMode);
void FileClose(int fileIndex);
Expand Down Expand Up @@ -433,15 +433,15 @@ namespace RTE {
/// </summary>
/// <param name="relativeDirectory">Directory path relative to the working directory.</param>
/// <returns>A vector of the directories in relativeDirectory.</returns>
const std::vector<std::string> & DirectoryList(const std::string &relativeDirectory);
const std::vector<std::string> * DirectoryList(const std::string &relativeDirectory);

/// <summary>
/// Returns a vector of all the files in relativeDirectory, which is relative to the working directory.
/// Note that a call to this method overwrites any previously returned vector from DirectoryList() or FileList().
/// </summary>
/// <param name="relativeDirectory">Directory path relative to the working directory.</param>
/// <returns>A vector of the files in relativeDirectory.</returns>
const std::vector<std::string> & FileList(const std::string &relativeDirectory);
const std::vector<std::string> * FileList(const std::string &relativeDirectory);

/// <summary>
/// Returns whether or not the specified file exists. You can only check for files inside .rte folders in the working directory.
Expand Down