rodecomp/Source/UI/Text/UIStaticText_LF.cpp
ragnarok-clanker b79407bc49 Decompile 2 functions in Source/UI/Window/UIRPImageWnd2.cpp, Source/UI/Window/UIRPImageWnd2.h, ...
Batch #6184 by eAthena: 0 byte-identical, 2 confirmed by peer review.

- fn_12951 UIRPImageWnd2::SetImage: logic confirmed by peer review
- fn_12966 UIStaticText_LF::SetText: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, alisonrag, System4z
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 20:58:52 +00:00

65 lines
2.1 KiB
C++

#include "UI/Text/UIStaticText_LF.h"
#include <cstdint>
#include <string>
// OFFSET: 0x0094ECF0
// FUNCTION: fn_12915
void UIStaticText_LF::Paint() {
this->ClearSurface(0xFFFF00FF);
this->sub_A84400(
0, 0,
*reinterpret_cast<const std::string*>(reinterpret_cast<const char*>(this) + 0x7C),
this->geometry.width,
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0x94),
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0x98),
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0x9C),
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0xA0),
*reinterpret_cast<const std::uint32_t*>(reinterpret_cast<const char*>(this) + 0xA4),
*reinterpret_cast<const unsigned char*>(reinterpret_cast<const char*>(this) + 0xA8)
);
}
// OFFSET: 0x0094EEA0
// FUNCTION: fn_12920
void UIStaticText_LF::Slot25(int x, int y) {
if (this->parent) {
this->parent->Slot25(x, y);
}
}
// OFFSET: 0x0094EFA0
// FUNCTION: fn_12925
void UIStaticText_LF::Slot31(int x, int y) {
if (this->parent) {
this->parent->Slot31(x, y);
}
}
// OFFSET: 0x0094F300
// FUNCTION: fn_12936
void UIStaticText_LF::Slot35(int delta) {
if (this->parent) {
this->parent->Slot35(delta);
}
}
// OFFSET: 0x00951BF0
// FUNCTION: fn_12966
void UIStaticText_LF::SetText(std::string text) {
*reinterpret_cast<std::string*>(reinterpret_cast<char*>(this) + 0x7C) = text;
std::list<std::string> lines;
this->WrapFormattedText(
text, &lines, this->geometry.width,
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0x9C),
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0xA0),
*reinterpret_cast<const unsigned char*>(reinterpret_cast<const char*>(this) + 0xA8)
);
const int count = static_cast<int>(lines.size());
this->Resize(
this->geometry.width,
(count - 1) * *reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0x94) +
*reinterpret_cast<const int*>(reinterpret_cast<const char*>(this) + 0xA0) * count
);
this->Invalidate();
}