Skip to content

Commit bf09102

Browse files
authored
Merge pull request #64 from Paliak/exception-check-create_directory
Add basic error checking to create_directory in `r_renderer_c::DoScreenshot` to prevent crash
2 parents 44f2951 + 01a9449 commit bf09102

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

engine/render/r_main.cpp

+11-6
Original file line numberDiff line numberDiff line change
@@ -1940,16 +1940,21 @@ void r_renderer_c::DoScreenshot(image_c* i, int type, const char* ext)
19401940
// curTimeSt.tm_mon+1, curTimeSt.tm_mday, curTimeSt.tm_year%100,
19411941
// curTimeSt.tm_hour, curTimeSt.tm_min, curTimeSt.tm_sec, ext);
19421942

1943+
19431944
// Make folder if it doesn't exist
1944-
std::filesystem::create_directory(CFG_DATAPATH "Screenshots");
1945-
1946-
// Save image
1945+
std::error_code ec;
1946+
std::filesystem::create_directory(CFG_DATAPATH "Screenshots", ec);
1947+
if (ec) {
1948+
sys->con->Print("Couldn't create screenshot folder!\n");
1949+
return;
1950+
}
1951+
19471952
if (i->Save(ssname.c_str())) {
19481953
sys->con->Print("Couldn't write screenshot!\n");
1954+
return;
19491955
}
1950-
else {
1951-
sys->con->Print(fmt::format("Wrote screenshot to {}\n", ssname).c_str());
1952-
}
1956+
1957+
sys->con->Print(fmt::format("Wrote screenshot to {}\n", ssname).c_str());
19531958
}
19541959

19551960
r_renderer_c::RenderTarget& r_renderer_c::GetDrawRenderTarget()

0 commit comments

Comments
 (0)