2017-08-21 00:02:41 +02:00
|
|
|
#ifndef _CORE_NETWORK_PACKETS_LOBBY_SERVER_IPC_H
|
|
|
|
#define _CORE_NETWORK_PACKETS_LOBBY_SERVER_IPC_H
|
|
|
|
|
2018-03-06 22:22:19 +01:00
|
|
|
#include <Common.h>
|
|
|
|
#include <Network/CommonNetwork.h>
|
2017-08-21 00:02:41 +02:00
|
|
|
|
|
|
|
namespace Core {
|
|
|
|
namespace Network {
|
|
|
|
namespace Packets {
|
|
|
|
namespace Server {
|
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcRetainerList :
|
|
|
|
FFXIVIpcBasePacket< LobbyRetainerList >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint8_t padding[0x210];
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
2017-08-21 00:02:41 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcServiceIdInfo :
|
|
|
|
FFXIVIpcBasePacket< LobbyServiceAccountList >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint64_t seq;
|
|
|
|
uint8_t padding;
|
|
|
|
uint8_t numServiceAccounts;
|
|
|
|
uint8_t u1;
|
|
|
|
uint8_t u2;
|
|
|
|
uint32_t padding1;
|
2017-08-22 21:36:20 +02:00
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct
|
|
|
|
{
|
|
|
|
uint32_t id;
|
|
|
|
uint32_t unknown;
|
|
|
|
uint32_t index;
|
|
|
|
char name[0x44];
|
|
|
|
} serviceAccount[8];
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
2017-08-21 00:02:41 +02:00
|
|
|
|
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcServerList :
|
|
|
|
FFXIVIpcBasePacket< LobbyServerList >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint64_t seq;
|
|
|
|
uint16_t final;
|
|
|
|
uint16_t offset;
|
|
|
|
uint32_t numServers;
|
|
|
|
uint32_t padding;
|
|
|
|
uint32_t padding1;
|
2017-08-21 00:02:41 +02:00
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct
|
|
|
|
{
|
|
|
|
uint16_t id;
|
|
|
|
uint16_t index;
|
|
|
|
uint32_t flags; // 0x02 = World not accepting new characters
|
|
|
|
uint32_t padding1;
|
|
|
|
uint32_t icon; // 2 = bonus XP star
|
|
|
|
uint32_t padding2;
|
|
|
|
char name[0x40];
|
|
|
|
} server[6];
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
2017-08-21 00:02:41 +02:00
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcCharList :
|
|
|
|
FFXIVIpcBasePacket< LobbyCharList >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint64_t seq;
|
|
|
|
uint8_t counter; // current packet count * 4, count * 4 +1 on last packet.
|
|
|
|
uint8_t numInPacket; // always 2??
|
|
|
|
uint16_t padding;
|
|
|
|
uint8_t unknown1;
|
|
|
|
uint8_t unknown2;
|
|
|
|
uint8_t unknown3;
|
|
|
|
uint8_t unknown4; // 0x80 in case of last packet
|
|
|
|
uint32_t unknown5[7];
|
|
|
|
uint8_t unknown6; // 0x80 in case of last packet
|
|
|
|
uint8_t veteranRank;
|
|
|
|
uint8_t unknown7;
|
|
|
|
uint8_t padding1;
|
|
|
|
uint32_t daysSubscribed;
|
|
|
|
uint32_t remainingDays;
|
|
|
|
uint32_t daysToNextRank;
|
|
|
|
uint16_t maxCharOnWorld;
|
|
|
|
uint16_t unknown8;
|
|
|
|
uint32_t entitledExpansion;
|
|
|
|
uint32_t padding2;
|
2017-08-21 00:02:41 +02:00
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct CharaDetails
|
|
|
|
{
|
|
|
|
uint32_t uniqueId;
|
|
|
|
uint32_t padding;
|
|
|
|
uint64_t contentId;
|
|
|
|
uint32_t index;
|
|
|
|
uint32_t padding2;
|
|
|
|
uint16_t serverId;
|
|
|
|
uint16_t serverId1;
|
|
|
|
char nameChara[32];
|
|
|
|
char nameServer[32];
|
|
|
|
char nameServer1[32];
|
|
|
|
char charDetailJson[1028];
|
|
|
|
} charaDetails[2];
|
2017-08-21 00:02:41 +02:00
|
|
|
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
2017-08-21 00:02:41 +02:00
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcEnterWorld :
|
|
|
|
FFXIVIpcBasePacket< LobbyEnterWorld >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint64_t seq;
|
|
|
|
uint32_t charId;
|
|
|
|
uint32_t padding;
|
|
|
|
uint64_t contentId;
|
|
|
|
uint32_t padding2;
|
|
|
|
char sid[66];
|
|
|
|
uint16_t port;
|
|
|
|
char host[48];
|
|
|
|
uint64_t padding3;
|
|
|
|
uint64_t padding4;
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcCharCreate :
|
|
|
|
FFXIVIpcBasePacket< LobbyCharCreate >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint64_t seq;
|
|
|
|
uint8_t unknown;
|
|
|
|
uint8_t unknown_2;
|
|
|
|
uint8_t type;
|
|
|
|
uint8_t padding;
|
|
|
|
uint32_t unknown_3;
|
|
|
|
uint32_t unknown_4;
|
|
|
|
uint32_t unknown_5;
|
|
|
|
uint64_t content_id;
|
|
|
|
uint16_t unknown_7;
|
|
|
|
uint16_t unknown_8;
|
|
|
|
uint32_t unknown_9;
|
|
|
|
uint16_t unknown_10;
|
|
|
|
char name[32];
|
|
|
|
char world[32];
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
struct FFXIVIpcLobbyError :
|
|
|
|
FFXIVIpcBasePacket< LobbyError >
|
2017-08-22 21:36:20 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
uint64_t seq;
|
|
|
|
uint32_t error_id;
|
|
|
|
uint32_t param;
|
|
|
|
uint16_t message_id;
|
|
|
|
char message[516];
|
2017-08-22 21:36:20 +02:00
|
|
|
};
|
2017-08-21 00:02:41 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-12-18 12:36:52 +01:00
|
|
|
#endif
|