You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1003 B
41 lines
1003 B
/** |
|
* @file restrict.cpp |
|
* |
|
* Implementation of functionality for checking if the game will be able run on the system. |
|
*/ |
|
|
|
#include <string> |
|
|
|
#include "appfat.h" |
|
#include "utils/file_util.h" |
|
#include "utils/paths.h" |
|
|
|
#ifdef USE_SDL3 |
|
#include <SDL3/SDL_iostream.h> |
|
#else |
|
#include <SDL.h> |
|
#endif |
|
|
|
#include "utils/sdl_compat.h" |
|
|
|
namespace devilution { |
|
|
|
void ReadOnlyTest() |
|
{ |
|
#ifdef __DREAMCAST__ |
|
// On Dreamcast, VMU filesystem has been verified in InitDreamcast(). |
|
// SDL_IOFromFile doesn't work reliably with KOS's /vmu/ paths, |
|
// but direct file operations do work (as shown by "VMUFS: file written"). |
|
// Skip this test - saves will fail gracefully if VMU is unavailable. |
|
return; |
|
#endif |
|
const std::string path = paths::PrefPath() + "Diablo1ReadOnlyTest.foo"; |
|
SDL_IOStream *file = SDL_IOFromFile(path.c_str(), "w"); |
|
if (file == nullptr) { |
|
DirErrorDlg(paths::PrefPath()); |
|
} |
|
SDL_CloseIO(file); |
|
RemoveFile(path.c_str()); |
|
} |
|
|
|
} // namespace devilution
|
|
|