1
0
Fork 0
mirror of https://github.com/galaxyhaxz/devilution synced 2025-02-22 12:34:59 +00:00
devilution/2020_03_31/Source/restrict.cpp

72 lines
1.1 KiB
C++
Raw Normal View History

2020-11-28 18:24:54 -06:00
#include "diablo.h"
BOOL SystemSupported()
{
BOOL v0; // di
struct _OSVERSIONINFOA VersionInformation; // [esp+4h] [ebp-94h]
v0 = 0;
memset(&VersionInformation, 0, 0x94u);
VersionInformation.dwOSVersionInfoSize = 148;
if ( GetVersionEx(&VersionInformation)
&& VersionInformation.dwPlatformId == 2
&& VersionInformation.dwMajorVersion >= 5 )
{
v0 = 1;
}
return v0;
}
BOOL RestrictedTest()
{
BOOL v0; // si
FILE *v2; // eax
char Buffer[260]; // [esp+4h] [ebp-104h]
v0 = 0;
if ( SystemSupported() && GetWindowsDirectory(Buffer, 0x104u) )
{
strcat(Buffer, "\\Diablo1RestrictedTest.foo");
v2 = fopen(Buffer, "wt");
if ( v2 )
{
fclose(v2);
remove(Buffer);
}
else
{
v0 = 1;
}
}
return v0;
}
BOOL ReadOnlyTest()
{
BOOL v0; // si
char *v1; // eax
FILE *v2; // eax
char Filename[260]; // [esp+4h] [ebp-104h]
v0 = 0;
if ( GetModuleFileName(ghInst, Filename, 0x104u) )
{
v1 = strrchr(Filename, '\\');
if ( v1 )
{
strcpy(v1 + 1, "Diablo1ReadOnlyTest.foo");
v2 = fopen(Filename, "wt");
if ( v2 )
{
fclose(v2);
remove(Filename);
}
else
{
v0 = 1;
}
}
}
return v0;
}