Skip to content

Commit 2303ce1

Browse files
committed
feature(TheatreFile::Load,Theatre): improved filepath-related code
1 parent 3584cc3 commit 2303ce1

4 files changed

Lines changed: 14 additions & 10 deletions

File tree

Nostalgia/theatre/theatre.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,13 @@ void Theatre::LoadTheatreData(Shared<TheatreFile::TheatreData> inData)
7070
mInitStatus = OK;
7171
}
7272

73-
Error Theatre::LoadFile(Sarg inFilePath)
73+
Error Theatre::LoadFile(std::string inFilePath)
7474
{
7575
Shutdown();
76-
FileData theatre_file{};
77-
if(not print_error_enum(theatre_file.LoadFile(inFilePath))
78-
or not print_error_enum(TheatreFile::Load(theatre_file, m_pInitialState)))
76+
if(not print_error_enum(TheatreFile::Load(inFilePath, m_pInitialState)))
7977
{ return mInitStatus = ERR_INIT_FAILED; }
78+
mTheatreFileDirectory = FileSystem::GetDir(inFilePath, true);
8079
mWasLoadedFromFile = true;
81-
mTheatreFileDirectory = FileSystem::GetDir(theatre_file.filepath(), true);
8280
mName = m_pInitialState->name;
8381
mIndex = m_pInitialState->index;
8482
return mInitStatus = OK;

Nostalgia/theatre/theatre.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Theatre
2626

2727
virtual void LoadTheatreData(Shared<TheatreFile::TheatreData> inTheatreData);
2828
virtual Error LoadData(Farg<FileData> inData);
29-
virtual Error LoadFile(Sarg inFilePath);
29+
virtual Error LoadFile(std::string inFilePath);
3030
virtual Error Save(Sarg inOutputFilePath, FileOverwriteAction = RENAME);
3131
virtual bool Startup();
3232
virtual bool Shutdown();

Nostalgia/theatre/theatre_file.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,14 @@ bool TheatreFile::gDebugPrintLexerLogs{false},
1010
static void sDebugPrintLexerLogs(Farg<TokenArray>);
1111
static void sDebugPrintParserLogs(Farg<std::vector<ThingData>>);
1212

13-
Error TheatreFile::Load(Sarg inPathToFile,
14-
Shared<TheatreData>& outData)
15-
{ return Load(FileData{inPathToFile}, outData); }
13+
Error TheatreFile::Load(std::string& ioPathToFile, Shared<TheatreData>& outData)
14+
{
15+
FileData theatre_file{};
16+
if(not theatre_file.LoadFile(ioPathToFile))
17+
{ return ERR_FILE_LOAD; }
18+
ioPathToFile = theatre_file.filepath();
19+
return Load(theatre_file, outData);
20+
}
1621

1722
Error TheatreFile::Load(Farg<FileData> inFileData,
1823
Shared<TheatreData>& outData)

Nostalgia/theatre/theatre_file.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ namespace TheatreFile
5656

5757
Error Lex(Farg<FileData> inFileData, TokenArray& outTokens);
5858
Error Parse(Farg<TokenArray> inTokens, Shared<TheatreData>& outData);
59-
Error Load(Sarg inPathToFile, Shared<TheatreData>& outData);
59+
// `ioFilepath` will be changed if needed, according to the file lookup code in `FileData::LoadFile`
60+
Error Load(std::string& ioFilepath, Shared<TheatreData>& outData);
6061
Error Load(Farg<FileData> inFileData, Shared<TheatreData>& outData);
6162
}
6263

0 commit comments

Comments
 (0)