Batch #10019 by ragnarok-clanker: forced by an admin (23 lower score(s), 187 changed function(s)); checked with 447 compiled unit(s), including every includer of Source/Client/Input/Language.h, Source/Client/Mode/ModeDragState.h, Source/Contents/Async/AsyncWorkMgr.h, Source/Contents/Emblems/EmblemCache.h, Source/Contents/Party/AdventurerAgencyMgr.h, Source/Contents/Party/AgencyRequestContext.h, Source/Contents/Party/ChangePartyMasterAsyncWork.h, Source/Contents/Party/LoadMyPartyAsyncWork.h, Source/Contents/Party/LoadPartyInfoAsyncWork.h, Source/Contents/Party/LoadPartyListAsyncWork.h, Source/Contents/Party/PartyInvitation.h, Source/Contents/Party/RegisterPartyAsyncWork.h, Source/Contents/Party/StopRecruitingAsyncWork.h, Source/Contents/Skills/PlayerSkillBundle.h, Source/Contents/UserData/CharacterConfigLoad.h, Source/Network/Packets/PartyJoinPacket.h, Source/UI/Chat/ChatSuggestions.h, Source/UI/Dialogs/UIWaitDBSaveWnd.h, Source/UI/Edit/UIEditCtrl.h, Source/UI/Lists/UIListBox.h, Source/UI/Party/UIRequestJoinPartyMgr.h, Source/UI/Shortcuts/NormalItemSlotLoad.h, Source/UI/Shortcuts/ShortcutDetails.h, Source/UI/Shortcuts/ShortcutPress.h, Source/UI/UIBasicCtrl.h, Source/UI/UIStaticItem.h, Source/UI/Window/FrameFocus.h, Source/UI/Window/UIFrameWnd.h, Source/UI/Window/UIVideoWnd.h, Source/UI/Window/WindowManagerWindows.h, Source/UI/Window/WindowMouseHit.h, Source/UI/Window/WindowOrdering.h.
62 lines
2.3 KiB
C++
62 lines
2.3 KiB
C++
#ifndef RAGNAROK_SOURCE_NETWORK_PACKETS_PARTYJOINPACKET_H
|
|
#define RAGNAROK_SOURCE_NETWORK_PACKETS_PARTYJOINPACKET_H
|
|
|
|
#include "Network/Connection/Connection.h"
|
|
#include "Network/Packets/PacketLengths.h"
|
|
#include "UI/Window/WindowManagerWindows.h"
|
|
|
|
#include <cstdint>
|
|
#include <cstring>
|
|
#include <string>
|
|
|
|
class CConnection;
|
|
class PacketLengths;
|
|
#include "UI/Window/WindowManagerWindows.h"
|
|
|
|
void SendPartyJoin(CConnection& connection, const PacketLengths& lengths, const std::uint32_t* accountId, const std::uint32_t* characterId);
|
|
void SendPartyJoinDecision(CConnection& connection, const PacketLengths& lengths, std::uint32_t characterId, bool accepted, const std::uint32_t* accountId);
|
|
void ReceivePartyJoinRequest(const void* packet);
|
|
void SendPartyInvitationDecision(
|
|
CConnection& connection, const PacketLengths& lengths, WindowManagerWindows& windows, std::string& pendingName, std::uint32_t identity, bool accepted
|
|
);
|
|
|
|
// INLINED
|
|
inline void SendPartyJoin(CConnection& connection, const PacketLengths& lengths, const std::uint32_t* accountId, const std::uint32_t* characterId) {
|
|
unsigned char packet[10];
|
|
const std::uint16_t id = 0x0AE6;
|
|
std::memcpy(packet, &id, sizeof(id));
|
|
std::memcpy(packet + 6, accountId, sizeof(*accountId));
|
|
std::memcpy(packet + 2, characterId, sizeof(*characterId));
|
|
connection.Send(lengths.FixedLength(id), packet);
|
|
}
|
|
|
|
// INLINED
|
|
inline void SendPartyJoinDecision(CConnection& connection, const PacketLengths& lengths, std::uint32_t characterId, bool accepted, const std::uint32_t* accountId) {
|
|
unsigned char packet[11];
|
|
const std::uint16_t id = 0x0AF8;
|
|
std::memcpy(packet, &id, sizeof(id));
|
|
std::memcpy(packet + 2, &characterId, sizeof(characterId));
|
|
packet[10] = accepted;
|
|
std::memcpy(packet + 6, accountId, sizeof(*accountId));
|
|
connection.Send(lengths.FixedLength(id), packet);
|
|
}
|
|
|
|
// INLINED
|
|
inline void SendPartyInvitationDecision(
|
|
CConnection& connection, const PacketLengths& lengths, WindowManagerWindows& windows, std::string& pendingName, std::uint32_t identity, bool accepted
|
|
) {
|
|
if (accepted) {
|
|
windows.EnsureWindow(34);
|
|
} else {
|
|
pendingName.assign("", 0);
|
|
}
|
|
|
|
unsigned char packet[7];
|
|
const std::uint16_t id = 0x02C7;
|
|
std::memcpy(packet, &id, sizeof(id));
|
|
packet[6] = accepted;
|
|
std::memcpy(packet + 2, &identity, sizeof(identity));
|
|
connection.Send(lengths.FixedLength(id), packet);
|
|
}
|
|
|
|
#endif
|