Decompile fn_07713 (UIMessengerGroupWnd::Slot25)

Batch #6094 by alisonrag: 0 byte-identical, 1 confirmed by peer review.

- fn_07713 UIMessengerGroupWnd::Slot25: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, Lumen, superintelligence, kyoshi, Snow
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 19:46:34 +00:00
commit f14d528cb7

View file

@ -114,6 +114,7 @@ public:
class UIMessengerGroupWnd : public UIFrameWnd {
public:
void Slot11() override;
void Slot25(int x, int y) override;
void Slot26(int x, int y) override;
void Slot27(int x, int y) override;
void Slot31(int x, int y) override;
@ -659,6 +660,36 @@ void UIMessengerGroupWnd::Slot26(int, int) {
}
}
// OFFSET: 0x0073D460
// FUNCTION: fn_07713
void UIMessengerGroupWnd::Slot25(int x, int y) {
if (g_messengerGroupCollapsed) {
return;
}
const int previous = this->selected;
this->selected = -1;
if (x >= 2 && x <= this->geometry.width - 2 && y > 16 && y < this->visibleRows * this->rowHeight + 17) {
const int index = (y - 17) / this->rowHeight + this->scrollTop;
int position = 0;
for (auto member = this->members.begin(); member != this->members.end(); ++member, ++position) {
if (position == index) {
this->selected = index;
break;
}
}
}
if (previous != this->selected) {
this->Invalidate();
}
if (this->selected != -1) {
this->SendMsg(nullptr, 49, 0, 0, 0, 0);
}
}
// OFFSET: 0x0073D080
// FUNCTION: fn_07710
void UIMessengerGroupWnd::Slot31(int x, int y) {
@ -885,4 +916,4 @@ void UIWindowMgr::RetireTransientWindow() {
this->Schedule(transient);
this->window_4F250 = nullptr;
}
}
}