168 lines
3.6 KiB
C
168 lines
3.6 KiB
C
#include "global.h"
|
|
#include "link_rfu.h"
|
|
#include "pokemon_jump.h"
|
|
|
|
struct MonInfoPacket
|
|
{
|
|
u8 id; // packet id
|
|
u16 species;
|
|
u32 personality;
|
|
u32 otId;
|
|
};
|
|
|
|
void sub_8149A6C(struct PokemonJump1_MonInfo *arg0)
|
|
{
|
|
struct MonInfoPacket packet;
|
|
packet.id = 1,
|
|
packet.species = arg0->species,
|
|
packet.otId = arg0->otId,
|
|
packet.personality = arg0->personality,
|
|
RfuPrepareSend0x2f00(&packet);
|
|
}
|
|
|
|
bool32 sub_8149A90(int multiplayerId, struct PokemonJump1_MonInfo *arg0)
|
|
{
|
|
struct MonInfoPacket packet;
|
|
|
|
if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
|
|
return FALSE;
|
|
|
|
memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
|
|
if (packet.id == 1)
|
|
{
|
|
arg0->species = packet.species;
|
|
arg0->otId = packet.otId;
|
|
arg0->personality = packet.personality;
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
struct UnkPacket2
|
|
{
|
|
u8 id; // packet id
|
|
u32 unk4;
|
|
u32 unk8;
|
|
};
|
|
|
|
void sub_8149AE0(u32 arg0)
|
|
{
|
|
struct UnkPacket2 packet;
|
|
packet.id = 2;
|
|
packet.unk4 = arg0;
|
|
RfuPrepareSend0x2f00(&packet);
|
|
}
|
|
|
|
struct UnkPacket3
|
|
{
|
|
u8 id; // packet id
|
|
u8 unk1;
|
|
u8 unk2;
|
|
u8 unk3_0:5;
|
|
u8 unk3_1:3;
|
|
u16 unk4;
|
|
u16 unk6;
|
|
u32 unk8_0:15;
|
|
u32 unk8_1:17;
|
|
};
|
|
|
|
void sub_8149AF8(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
|
|
{
|
|
struct UnkPacket3 packet;
|
|
packet.id = 3;
|
|
packet.unk8_1 = arg1->unk8;
|
|
packet.unk3_0 = arg1->unk1;
|
|
packet.unk1 = arg1->unk0;
|
|
packet.unk6 = arg1->unk2;
|
|
packet.unk8_0 = arg1->unk4;
|
|
packet.unk2 = arg0->unk10;
|
|
packet.unk3_1 = arg0->unk14;
|
|
packet.unk4 = arg0->unkE;
|
|
RfuPrepareSend0x2f00(&packet);
|
|
}
|
|
|
|
bool32 sub_8149B7C(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
|
|
{
|
|
struct UnkPacket3 packet;
|
|
|
|
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
|
|
return FALSE;
|
|
|
|
memcpy(&packet, &gRecvCmds[0][1], sizeof(packet));
|
|
if (packet.id != 3)
|
|
return FALSE;
|
|
|
|
arg1->unk8 = packet.unk8_1;
|
|
arg1->unk1 = packet.unk3_0;
|
|
arg1->unk0 = packet.unk1;
|
|
arg1->unk2 = packet.unk6;
|
|
arg1->unk4 = packet.unk8_0;
|
|
arg0->unk10 = packet.unk2;
|
|
arg0->unk14 = packet.unk3_1;
|
|
arg0->unkE = packet.unk4;
|
|
return TRUE;
|
|
}
|
|
|
|
struct UnkPacket4
|
|
{
|
|
u8 id; // packet id
|
|
u8 unk1;
|
|
u8 unk2;
|
|
u8 unk3;
|
|
u16 unk4;
|
|
u8 unk6;
|
|
u16 unk8;
|
|
};
|
|
|
|
void sub_8149BF4(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2)
|
|
{
|
|
struct UnkPacket4 packet;
|
|
packet.id = 4;
|
|
packet.unk1 = arg0->unk10;
|
|
packet.unk2 = arg0->unk14;
|
|
packet.unk3 = arg0->unk18;
|
|
packet.unk4 = arg0->unkE;
|
|
packet.unk6 = arg1;
|
|
packet.unk8 = arg2;
|
|
RfuPrepareSend0x2f00(&packet);
|
|
}
|
|
|
|
bool32 sub_8149C24(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3)
|
|
{
|
|
struct UnkPacket4 packet;
|
|
|
|
if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
|
|
return FALSE;
|
|
|
|
memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
|
|
if (packet.id != 4)
|
|
return FALSE;
|
|
|
|
arg0->unk10 = packet.unk1;
|
|
arg0->unk14 = packet.unk2;
|
|
arg0->unk18 = packet.unk3;
|
|
arg0->unkE = packet.unk4;
|
|
*arg2 = packet.unk6;
|
|
*arg3 = packet.unk8;
|
|
return TRUE;
|
|
}
|
|
|
|
bool32 sub_8149C90(struct PokemonJump1_82E4 *arg0, int multiplayerId)
|
|
{
|
|
struct UnkPacket4 packet;
|
|
|
|
if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
|
|
return FALSE;
|
|
|
|
memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
|
|
if (packet.id != 4)
|
|
return FALSE;
|
|
|
|
arg0->unk10 = packet.unk1;
|
|
arg0->unk14 = packet.unk2;
|
|
arg0->unk18 = packet.unk3;
|
|
arg0->unkE = packet.unk4;
|
|
return TRUE;
|
|
}
|