Decompile fn_09813 (UIMacroDetectorWnd::Paint)

Batch #3931 by bigodeira: 0 byte-identical, 1 confirmed by peer review.

- fn_09813 UIMacroDetectorWnd::Paint: logic confirmed by peer review

Peer-reviewed-by: youko, superintelligence, kyoshi
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
ragnarok-clanker 2026-10-30 00:12:07 +00:00
commit 6728cfef89
2 changed files with 52 additions and 1 deletions

View file

@ -1,7 +1,49 @@
#include "UI/UICaptchaPreviewWnd.h"
#include "UI/UIMacroDetectorWnd.h"
#include "UI/Window/WindowBorder.h"
#include "Contents/MessageTable.h"
#include "Utility/Text/FormatString.h"
#include <windows.h>
#include <timeapi.h>
// OFFSET: 0x007ED950
// FUNCTION: fn_09812
void UICaptchaPreviewWnd::Paint() {
this->ClearSurface(0xFFFFFFFF);
}
// OFFSET: 0x007ED960
// FUNCTION: fn_09813
void UIMacroDetectorWnd::Paint() {
this->sub_8D2CE0(false, "", 0);
this->DrawButtonBar(0, 0, 1);
this->FillRegion(0, 16, this->geometry.width, this->geometry.height - 36, 0xFFFFFFFF);
DrawRectangleBorder(*this, 0, 16, this->geometry.width, this->geometry.height - 36, 0xC6C6C6);
this->sub_A84360(25, 28, LookupMessage(2883), 0, 0, 12, 0, 1, 0);
this->sub_A84360(25, 45, LookupMessage(2884), 0, 0, 12, 0, 1, 0);
this->sub_A84360(25, 62, LookupMessage(2885), 0, 0, 12, 0, 1, 0);
this->sub_A84360(25, 82, this->message.c_str(), 0, 0, 12, 0x2323FF, 1, 0);
this->FillRegion(59, 158, 222, 92, 0xC6C6C6);
this->FillRegion(60, 97, 220, 30, 0xC6C6C6);
DWORD now = timeGetTime();
std::uint32_t remaining = (this->messageDuration + this->startTick) - now;
if (remaining != 0) {
float width = (static_cast<float>(remaining) / static_cast<float>(this->totalDuration)) * 220.0f;
this->FillRegion(60, 97, static_cast<int>(width), 30, 0xFF);
unsigned int seconds = remaining / 1000;
{
std::string str = FormatOwnedString("%2d : %2d", seconds / 60, seconds);
this->sub_A86440(280, 138, str.c_str(), 0, 0, 13, 0xFF2323, 1);
}
{
std::string str = FormatOwnedString(LookupMessage(2886), this->unknown_00D0);
this->sub_A84360(60, 138, str.c_str(), 0, 0, 13, 0x2323FF, 1, 0);
}
}
}

View file

@ -9,11 +9,20 @@
class UIMacroDetectorWnd : public UIFrameWnd {
public:
void Slot19() override;
void Paint() override;
void Slot25(int x, int y) override;
void Slot27(int x, int y) override;
void Slot31(int x, int y) override;
/* 00B4 */ unsigned char unknown_00B4[0x28];
void sub_8D2CE0(bool closeButton, const char* title, int width);
void sub_A84360(int x, int y, const char* text, int bytes, int family, int height, std::uint32_t color, unsigned char bold, unsigned char italic);
void sub_A86440(int right, int y, const char* text, int bytes, int family, int height, std::uint32_t color, unsigned char bold);
/* 00BC */ unsigned char unknown_00BC[0x14];
/* 00D0 */ unsigned char unknown_00D0;
/* 00D1 */ unsigned char unknown_00D1[3];
/* 00D4 */ std::uint32_t totalDuration;
/* 00D8 */ std::uint32_t startTick;
/* 00DC */ std::uint32_t messageDuration;
/* 00E0 */ unsigned char unknown_00E0[0x18];
/* 00F8 */ std::string message;