jadeite/game_payload/src/utils.c

36 lines
903 B
C
Raw Normal View History

2023-06-05 21:23:08 +00:00
#include <windows.h>
#include <crc32.h>
2023-06-08 18:44:42 +00:00
#include <msg.h>
2023-06-05 21:23:08 +00:00
#include <utils.h>
uint32_t utils_file_crc32c(const char *filePath) {
HANDLE file = CreateFileA(filePath, FILE_READ_ACCESS, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (!file) {
2023-06-08 18:44:42 +00:00
msg_err_a("Could not open file: %s", filePath);
2023-06-05 21:23:08 +00:00
}
LARGE_INTEGER fileSize;
GetFileSizeEx(file, &fileSize);
HANDLE hMap = CreateFileMappingA(file, NULL, PAGE_READONLY, 0, 0, NULL);
char *map = MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0);
if (!map) {
2023-06-08 18:44:42 +00:00
msg_err_a("Could not create file mapping for %s", filePath);
2023-06-05 21:23:08 +00:00
}
uint32_t crc = crc32c(0, (unsigned char*)map, fileSize.QuadPart);
UnmapViewOfFile(map);
CloseHandle(hMap);
CloseHandle(file);
return crc;
}
2023-06-08 19:33:37 +00:00
char utils_env_enabled(const char *env) {
char *envText = getenv(env);
2023-07-03 14:04:32 +00:00
return envText && *envText;
2023-06-08 19:33:37 +00:00
}