rodecomp/Source/UI/Party/UIPartyInfoWnd.h
ragnarok-clanker a47d20f8be Reconstruct readable C++ and organize cohesive source subsystems
Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.

Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
2026-10-25 07:42:41 +00:00

53 lines
1.4 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_PARTY_UIPARTYINFOWND_H
#define RAGNAROK_SOURCE_UI_PARTY_UIPARTYINFOWND_H
#include "Contents/Party/AdvenPartyInfo.h"
#include "UI/Buttons/UIBitmapButton.h"
class PartyRowServices {
public:
virtual bool IsFriend(const std::string& name) = 0;
virtual bool IsGuildMember(std::uint32_t accountId) = 0;
virtual std::string CharacterCode(std::uint32_t characterId) = 0;
virtual void ShowCharacter(const char* name, const char* relationship, const char* code) = 0;
protected:
~PartyRowServices() = default;
};
struct PartyRowContext {
const std::uint32_t& accountId;
const std::uint32_t& characterId;
PartyRowServices& services;
};
class UIPartyInfoWnd : public UIBitmapButton {
public:
UIPartyInfoWnd(UIWindowContext& windows, UIButtonContext& buttons, PartyRowContext& row);
~UIPartyInfoWnd() override;
void Paint() override;
void Slot31(int x, int y) override;
void Slot33(int x, int y) override;
void SetInfo(const CAdvenPartyInfo& value);
void Reset();
static const char* TypeName(int type, ButtonServices& services);
/* 0120 */ std::string memo;
/* 0138 */ std::string levels;
/* 0150 */ int type;
/* 0154 */ int tanker;
/* 0158 */ int dealer;
/* 015C */ int healer;
/* 0160 */ int assist;
/* 0164 */ std::string name;
/* 017C */ CAdvenPartyInfo info;
private:
PartyRowContext* m_row;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(UIPartyInfoWnd) == 468);
#endif
#endif