33 lines
1.2 KiB
C++
33 lines
1.2 KiB
C++
#ifndef RAGNAROK_SOURCE_CONTENTS_CLIENTMESSENGER_H
|
|
#define RAGNAROK_SOURCE_CONTENTS_CLIENTMESSENGER_H
|
|
|
|
#include "Contents/MessengerMember.h"
|
|
|
|
#include <list>
|
|
|
|
struct PartyMemberEffects;
|
|
|
|
// Non-owning source view, not a replacement client singleton. Original client
|
|
// owns party at +0x17DC and friends at +0x17E4, each an MSVC std::list value.
|
|
struct ClientMessenger {
|
|
std::list<MessengerMember>& party;
|
|
std::list<MessengerMember>& friends;
|
|
|
|
static std::int32_t MemberColor(int index);
|
|
void AddFriend(MessengerMember& member);
|
|
void AddPartyMember(MessengerMember& member, PartyMemberEffects& effects);
|
|
void ClearFriends();
|
|
int FriendCount() const;
|
|
int PartyCount() const;
|
|
int OnlinePartyCount() const;
|
|
MessengerMember FriendAt(int index) const;
|
|
MessengerMember PartyAt(int index) const;
|
|
MessengerMember PartyByAccount(std::uint32_t accountId) const;
|
|
MessengerMember PartyByCharacter(std::uint32_t characterId) const;
|
|
MessengerMember PartyByName(const char* name) const;
|
|
void SetPartyDead(std::uint32_t accountId, int dead);
|
|
void SetPartyJobLevel(std::uint32_t accountId, std::uint16_t job, std::uint16_t level);
|
|
void SetPartyLeader(std::uint32_t accountId, int leader);
|
|
};
|
|
|
|
#endif
|