rodecomp/Source/Utility/CRC32.h
ragnarok-clanker 0e34f07e13 Decompile 10 functions in Source/Utility/CRC32.cpp, Source/Utility/CRC32.h
Batch #850 by ragnarok-clanker: 0 byte-identical, 10 confirmed by peer review.

- fn_00142 CRC32::CRC32: logic confirmed by peer review
- fn_00143 CRC32::~CRC32: logic confirmed by peer review
- fn_00144 CRC32::Update: logic confirmed by peer review
- fn_00145 CRC32::UpdateFile: logic confirmed by peer review
- fn_00146 CRC32::Calculate: logic confirmed by peer review
- fn_00147 CRC32::Calculate: logic confirmed by peer review
- fn_00148 CRC32::CalculateLowercase: logic confirmed by peer review
- fn_00149 CRC32::CalculateLowercase: logic confirmed by peer review
- fn_00150 CRC32::Calculate: logic confirmed by peer review
- fn_00151 CRC32::CalculateFile: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
Adds to the build: Source/Utility/CRC32.cpp
2026-10-26 22:52:17 +00:00

36 lines
952 B
C++

#ifndef RAGNAROK_SOURCE_UTILITY_CRC32_H
#define RAGNAROK_SOURCE_UTILITY_CRC32_H
#include <cstddef>
#include <windows.h>
class CRC32 {
public:
enum Error : DWORD {
InvalidArgument = 1,
FileOpenFailed = 2,
FileReadFailed = 3,
FileSeekFailed = 4
};
/* 0000 */ DWORD m_table[256];
/* 0400 */ DWORD m_error;
CRC32();
~CRC32();
bool Update(const BYTE* data, int length, DWORD* checksum);
bool UpdateFile(const WCHAR* filename, LONG offset, DWORD length, DWORD* checksum);
DWORD Calculate(const char* text);
DWORD Calculate(const WCHAR* text);
DWORD CalculateLowercase(const char* text);
DWORD CalculateLowercase(const WCHAR* text);
bool Calculate(const BYTE* data, int length, DWORD* checksum);
bool CalculateFile(const WCHAR* filename, DWORD* checksum);
};
static_assert(offsetof(CRC32, m_table) == 0x0000);
static_assert(offsetof(CRC32, m_error) == 0x0400);
static_assert(sizeof(CRC32) == 0x0404);
#endif