rodecomp/Source/Utility/GuidParse.cpp
ragnarok-clanker 07897c8bea Maintenance: Annotation cleanup, no code change (resubmission of 10984). Every // FUNCTION: line now has // OFFSET: <its address from
Batch #11163 by ragnarok-clanker: no function's compiled code changes; checked with 226 compiled unit(s), including every includer of Source/Client/Application/UnhandledExceptionHandler.h, Source/Contents/ReputeMgrLoad.inl, Source/Render/RenderSystemBase.h, Source/UI/Lists/UIListBoxTemplate.h, Source/Utility/Async/NRecycleObject.h.
2026-11-04 21:29:46 +00:00

39 lines
1.6 KiB
C++

#include "Utility/GuidParse.h"
#include "Utility/Text/FormatString.h"
#include <cstdarg>
#include <cstdio>
namespace {
// OFFSET: 0x00AFA440
// FUNCTION: fn_18290
int Scan(const char* text, std::size_t bytes, const char* format, ...) {
va_list arguments;
va_start(arguments, format);
const int count = __stdio_common_vsscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, text, bytes, format, nullptr, arguments);
va_end(arguments);
return count;
}
}
// OFFSET: 0x00AF7610
// FUNCTION: fn_18260
int ParseGuid(const char* text, std::size_t bytes, GUID& output, bool braced) {
const char* format = braced ? "{%8X-%4hX-%4hX-%2hhX%2hhX-%2hhX%2hhX%2hhX%2hhX%2hhX%2hhX}" : "%8X-%4hX-%4hX-%2hhX%2hhX-%2hhX%2hhX%2hhX%2hhX%2hhX%2hhX";
const int count = Scan(
text, bytes, format, &output.Data1, &output.Data2, &output.Data3, &output.Data4[0], &output.Data4[1], &output.Data4[2], &output.Data4[3], &output.Data4[4],
&output.Data4[5], &output.Data4[6], &output.Data4[7]
);
return count == 11 ? 1 : count == EOF ? -1 : 0;
}
// OFFSET: 0x00AF75B0
// FUNCTION: fn_18259
int FormatGuid(char* text, std::size_t bytes, const GUID& value, bool braced) {
const char* format = braced ? "{%08X-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}" : "%08X-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX";
return StringFormat(
text, bytes, static_cast<std::size_t>(-1), format, value.Data1, value.Data2, value.Data3, value.Data4[0], value.Data4[1], value.Data4[2], value.Data4[3],
value.Data4[4], value.Data4[5], value.Data4[6], value.Data4[7]
);
}