mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
Document union_room.c
This commit is contained in:
parent
24075e9e72
commit
4fe507e453
@ -3,6 +3,6 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
void sub_8020C70(MainCallback callback);
|
||||
void StartBerryCrush(MainCallback callback);
|
||||
|
||||
#endif // GUARD_BERRY_CRUSH_H
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
void sub_80B37D4(TaskFunc taskFunc);
|
||||
u8 sub_80B3050(void);
|
||||
void sub_80B360C(void);
|
||||
void CB2_ReturnFromCableClubBattle(void);
|
||||
bool32 sub_80B2AF4(u16 *arg0, u16 *arg1);
|
||||
void sub_80B3AF8(u8 taskId);
|
||||
void task00_08081A90(u8 taskId);
|
||||
|
@ -1,6 +1,58 @@
|
||||
#ifndef GUARD_CONSTANTS_UNION_ROOM_H
|
||||
#define GUARD_CONSTANTS_UNION_ROOM_H
|
||||
|
||||
#define UNION_ROOM_SPAWN_NONE 0
|
||||
#define UNION_ROOM_SPAWN_IN 1
|
||||
#define UNION_ROOM_SPAWN_OUT 2
|
||||
|
||||
#define ACTIVITY_NONE 0
|
||||
#define ACTIVITY_BATTLE_SINGLE 1
|
||||
#define ACTIVITY_BATTLE_DOUBLE 2
|
||||
#define ACTIVITY_BATTLE_MULTI 3
|
||||
#define ACTIVITY_TRADE 4
|
||||
#define ACTIVITY_CHAT 5
|
||||
#define ACTIVITY_WONDER_CARD 6
|
||||
#define ACTIVITY_WONDER_NEWS 7
|
||||
#define ACTIVITY_CARD 8
|
||||
#define ACTIVITY_POKEMON_JUMP 9
|
||||
#define ACTIVITY_BERRY_CRUSH 10
|
||||
#define ACTIVITY_BERRY_PICK 11
|
||||
#define ACTIVITY_SEARCH 12
|
||||
#define ACTIVITY_SPIN_TRADE 13
|
||||
#define ACTIVITY_BATTLE_TOWER_OPEN 14
|
||||
#define ACTIVITY_RECORD_CORNER 15
|
||||
#define ACTIVITY_BERRY_BLENDER 16
|
||||
|
||||
// Player response
|
||||
#define ACTIVITY_ACCEPT 17
|
||||
#define ACTIVITY_DECLINE 18
|
||||
|
||||
#define ACTIVITY_NPCTALK 19
|
||||
#define ACTIVITY_PLYRTALK 20
|
||||
|
||||
// Duplicate IDs?
|
||||
#define ACTIVITY_WONDER_CARD2 21
|
||||
#define ACTIVITY_WONDER_NEWS2 22
|
||||
|
||||
#define ACTIVITY_CONTEST_COOL 23
|
||||
#define ACTIVITY_CONTEST_BEAUTY 24
|
||||
#define ACTIVITY_CONTEST_CUTE 25
|
||||
#define ACTIVITY_CONTEST_SMART 26
|
||||
#define ACTIVITY_CONTEST_TOUGH 27
|
||||
#define ACTIVITY_BATTLE_TOWER 28
|
||||
#define ACTIVITY_29 29
|
||||
|
||||
#define IN_UNION_ROOM 0x40
|
||||
|
||||
// Used in UR_AddTextPrinterParameterized
|
||||
#define UR_COLOR_DKE_WHT_LTE 0
|
||||
#define UR_COLOR_RED_WHT_LTR 1
|
||||
#define UR_COLOR_GRN_WHT_LTG 2
|
||||
#define UR_COLOR_WHT_WHT_LTE 3
|
||||
#define UR_COLOR_WHT_DKE_LTE 4
|
||||
#define UR_COLOR_GRN_DN6_LTB 5
|
||||
#define UR_COLOR_DN5_DN6_LTB 6
|
||||
|
||||
#define LINK_GROUP_SINGLE_BATTLE 0
|
||||
#define LINK_GROUP_DOUBLE_BATTLE 1
|
||||
#define LINK_GROUP_MULTI_BATTLE 2
|
||||
@ -10,8 +62,8 @@
|
||||
#define LINK_GROUP_BERRY_PICKING 6
|
||||
#define LINK_GROUP_WONDER_CARD 7
|
||||
#define LINK_GROUP_WONDER_NEWS 8
|
||||
#define LINK_GROUP_UNK_9 9
|
||||
#define LINK_GROUP_UNK_10 10
|
||||
#define LINK_GROUP_UNION_ROOM_RESUME 9
|
||||
#define LINK_GROUP_UNION_ROOM_INIT 10
|
||||
#define LINK_GROUP_UNK_11 11
|
||||
#define LINK_GROUP_RECORD_CORNER 12
|
||||
#define LINK_GROUP_BERRY_BLENDER 13
|
||||
@ -25,4 +77,8 @@
|
||||
#define LINK_GROUP_BATTLE_TOWER_OPEN 21
|
||||
#define NUM_LINK_GROUP_TYPES 22
|
||||
|
||||
#define UR_TRADE_MATCH 0
|
||||
#define UR_TRADE_NOTYPE 1
|
||||
#define UR_TRADE_NOEGG 2
|
||||
|
||||
#endif //GUARD_CONSTANTS_UNION_ROOM_H
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_DODRIO_BERRY_PICKING_H
|
||||
#define GUARD_DODRIO_BERRY_PICKING_H
|
||||
|
||||
void sub_802493C(u16 a0, void (*callback)(void));
|
||||
void StartDodrioBerryPicking(u16 a0, void (*callback)(void));
|
||||
void IsDodrioInParty(void);
|
||||
void ShowDodrioBerryPickingRecords(void);
|
||||
|
||||
|
@ -8,6 +8,6 @@ void LockSelectedObjectEvent(void);
|
||||
void sub_8098630(void);
|
||||
bool8 sub_8098734(void);
|
||||
void ScriptUnfreezeObjectEvents(void);
|
||||
void sub_8098524(void);
|
||||
void UnionRoom_UnlockPlayerAndChatPartner(void);
|
||||
|
||||
#endif // GUARD_EVENT_OBJECT_LOCK_H
|
||||
|
@ -274,7 +274,7 @@ void LoadWirelessStatusIndicatorSpriteGfx(void);
|
||||
bool8 IsLinkTaskFinished(void);
|
||||
void CreateWirelessStatusIndicatorSprite(u8, u8);
|
||||
void sub_800ADF8(void);
|
||||
void sub_800B488(void);
|
||||
void SetWirelessCommType1(void);
|
||||
void CheckShouldAdvanceLinkState(void);
|
||||
void sub_8011BD0(void);
|
||||
u8 IsLinkMaster(void);
|
||||
|
@ -204,7 +204,7 @@ extern u8 gWirelessStatusIndicatorSpriteId;
|
||||
// Exported ROM declarations
|
||||
void WipeTrainerNameRecords(void);
|
||||
void sub_800E700(void);
|
||||
void sub_800EDD4(void);
|
||||
void LinkRfu_Shutdown(void);
|
||||
void sub_800F6FC(u8 who);
|
||||
void sub_800F728(u8 who);
|
||||
bool32 IsSendingKeysToRfu(void);
|
||||
@ -225,51 +225,51 @@ void sub_800E174(void);
|
||||
void sub_800E6D0(void);
|
||||
bool32 sub_8010EC0(void);
|
||||
bool32 sub_8010F1C(void);
|
||||
bool32 sub_8011A80(void);
|
||||
bool32 RfuIsErrorStatus1or2(void);
|
||||
bool32 IsRfuRecvQueueEmpty(void);
|
||||
u32 GetRfuRecvQueueLength(void);
|
||||
void RfuVSync(void);
|
||||
void sub_80111B0(bool32 a0);
|
||||
u8 sub_8011A74(void);
|
||||
struct GFtgtGname *sub_800F7DC(void);
|
||||
void sub_8011068(u8 a0);
|
||||
u8 RfuGetErrorStatus(void);
|
||||
struct GFtgtGname *GetHostRFUtgtGname(void);
|
||||
void UpdateGameData_GroupLockedIn(u8 a0);
|
||||
void sub_8011170(u32 a0);
|
||||
void sub_8011A64(u8 a0, u16 a1);
|
||||
void RfuSetErrorStatus(u8 a0, u16 a1);
|
||||
u8 sub_801048C(bool32 a0);
|
||||
void sub_800DF90(struct GFtgtGname *buff1, u8 *buff2);
|
||||
void sub_8010F84(u8 a0, u32 a1, u32 a2);
|
||||
void sub_8011C10(u32 a0);
|
||||
void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *buff1, u8 *buff2);
|
||||
void SetHostRFUtgtGname(u8 a0, u32 a1, u32 a2);
|
||||
void InitializeRfuLinkManager_LinkLeader(u32 a0);
|
||||
bool32 sub_8012240(void);
|
||||
void sub_800EF38(void);
|
||||
void LinkRfu_StopManagerAndFinalizeSlots(void);
|
||||
bool32 sub_80105EC(void);
|
||||
bool32 sub_801064C(u16 a0, const u8 *a1);
|
||||
void sub_8010688(u8 a0, u16 a1, const u8 *a2);
|
||||
u32 sub_8010714(u16 a0, const u8 *a1);
|
||||
void sub_8011DC0(const u8 *a0, u16 a1);
|
||||
bool8 sub_800EF1C(void);
|
||||
bool32 sub_800EF58(bool32 a0);
|
||||
bool32 TrainerIdAndNameStillInPartnersList(u16 a0, const u8 *a1);
|
||||
void SendByteToPartnerByIdAndName(u8 a0, u16 a1, const u8 *a2);
|
||||
u32 WaitSendByteToPartnerByIdAndName(u16 a0, const u8 *a1);
|
||||
void RequestDisconnectSlotByTrainerNameAndId(const u8 *a0, u16 a1);
|
||||
bool8 LmanAcceptSlotFlagIsNotZero(void);
|
||||
bool32 WaitRfuState(bool32 a0);
|
||||
void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void sub_801103C(void);
|
||||
void sub_8011C5C(void);
|
||||
void sub_80106D4(void);
|
||||
void InitializeRfuLinkManager_JoinGroup(void);
|
||||
void LinkRfuNIsend8(void);
|
||||
void RecordMixTrainerNames(void);
|
||||
void sub_800ED10(void);
|
||||
void sub_800ED28(void);
|
||||
void sub_8011090(u8 a0, u32 a1, u32 a2);
|
||||
void sub_8011FC8(const u8 *src, u16 trainerId);
|
||||
void sub_8010FA0(bool32 a0, bool32 a1);
|
||||
void sub_8010F60(void);
|
||||
void LinkRfu_CreateConnectionAsParent(void);
|
||||
void LinkRfu_StopManagerBeforeEnteringChat(void);
|
||||
void UpdateGameDataWithActivitySpriteGendersFlag(u8 a0, u32 a1, u32 a2);
|
||||
void CreateTask_RfuReconnectWithParent(const u8 *src, u16 trainerId);
|
||||
void SetGnameBufferWonderFlags(bool32 a0, bool32 a1);
|
||||
void ClearAndInitHostRFUtgtGname(void);
|
||||
void sub_8010FCC(u32 a0, u32 a1, u32 a2);
|
||||
void sub_8011C84(void);
|
||||
void InitializeRfuLinkManager_EnterUnionRoom(void);
|
||||
void sub_8012188(const u8 *name, struct GFtgtGname *structPtr, u8 a2);
|
||||
bool32 sub_8011B90(void);
|
||||
bool32 IsUnionRoomListenTaskActive(void);
|
||||
void sub_800FE50(void *a0);
|
||||
bool32 sub_800E540(u16 id, u8 *name);
|
||||
bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name);
|
||||
void sub_8011DE0(u32 arg0);
|
||||
u8 sub_801100C(s32 a0);
|
||||
void sub_800EF7C(void);
|
||||
bool8 sub_800DE7C(struct GFtgtGname *buff1, u8 *buff2, u8 idx);
|
||||
bool8 sub_800DF34(struct GFtgtGname *buff1, u8 *buff2, u8 idx);
|
||||
bool8 LinkRfu_GetNameIfCompatible(struct GFtgtGname *buff1, u8 *buff2, u8 idx);
|
||||
bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *buff1, u8 *buff2, u8 idx);
|
||||
s32 sub_800E87C(u8 idx);
|
||||
void sub_8011BA4(void);
|
||||
void sub_8010198(void);
|
||||
@ -325,9 +325,6 @@ void PkmnStrToASCII(u8 *q1, const u8 *q2);
|
||||
void ASCIIToPkmnStr(u8 *q1, const u8 *q2);
|
||||
u8 sub_800DD1C(u8 maxFlags);
|
||||
void sub_800DD94(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3);
|
||||
bool8 sub_800DE7C(struct GFtgtGname *buff1, u8 *buff2, u8 idx);
|
||||
bool8 sub_800DF34(struct GFtgtGname *buff1, u8 *buff2, u8 idx);
|
||||
void sub_800DF90(struct GFtgtGname *buff1, u8 *buff2);
|
||||
void CreateWirelessStatusIndicatorSprite(u8 x, u8 y);
|
||||
void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void LoadWirelessStatusIndicatorSpriteGfx(void);
|
||||
@ -337,7 +334,6 @@ void sub_800E174(void);
|
||||
void CopyTrainerRecord(struct TrainerNameRecord *dest, u32 trainerId, const u8 *name);
|
||||
bool32 NameIsNotEmpty(const u8 *name);
|
||||
void RecordMixTrainerNames(void);
|
||||
bool32 sub_800E540(u16 id, u8 *name);
|
||||
void WipeTrainerNameRecords(void);
|
||||
|
||||
#endif //GUARD_LINK_RFU_H
|
||||
|
@ -79,7 +79,7 @@ void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u
|
||||
u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos);
|
||||
u8 sub_8199134(s8, s8);
|
||||
u8 GetStartMenuWindowId(void);
|
||||
void sub_819A2BC(u8, u8);
|
||||
void ListMenuLoadStdPalAt(u8, u8);
|
||||
u8 Menu_MoveCursor(s8 cursorDelta);
|
||||
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta);
|
||||
void DrawStdWindowFrame(u8 windowId, bool8 CopyToVram);
|
||||
|
@ -57,7 +57,7 @@ u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const vo
|
||||
bool32 MEventStruct_Unk1442CC_CompareField_unk_16(const struct MEventStruct_Unk1442CC *a0, const u16 *a1);
|
||||
u16 MEventStruct_Unk1442CC_GetValueNFrom_unk_20(const struct MEventStruct_Unk1442CC *a0, u32 command);
|
||||
u16 mevent_081445C0(u32 command);
|
||||
void sub_801B940(void);
|
||||
bool32 sub_801B94C(u16 a0);
|
||||
void ResetReceivedWonderCardFlag(void);
|
||||
bool32 MEventHandleReceivedWonderCard(u16 a0);
|
||||
|
||||
#endif //GUARD_MEVENT_H
|
||||
|
@ -12,5 +12,7 @@ bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str);
|
||||
void AddTextPrinterToWindow1(const u8 *src);
|
||||
void c2_ereader(void);
|
||||
void c2_mystery_gift(void);
|
||||
void MG_DrawTextBorder(u8 windowId);
|
||||
s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u16 *windowId, bool8 yesNoBoxPlacement, const u8 *str);
|
||||
|
||||
#endif //GUARD_MYSTERY_GIFT_H
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
void sub_802A9A8(u16 monId, MainCallback callback);
|
||||
void StartPokemonJump(u16 monId, MainCallback callback);
|
||||
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
|
||||
void IsPokemonJumpSpeciesInParty(void);
|
||||
void ResetPokeJumpResults(void);
|
||||
|
@ -5,23 +5,23 @@
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
struct UnkStruct_Shared
|
||||
struct WirelessGnameUnamePair
|
||||
{
|
||||
struct GFtgtGname field_0;
|
||||
struct GFtgtGname gname;
|
||||
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1];
|
||||
};
|
||||
|
||||
struct UnkStruct_x1C
|
||||
struct UnkStruct_x1C // WirelessLink_Member?
|
||||
{
|
||||
struct UnkStruct_Shared unk0;
|
||||
u8 unk18:1;
|
||||
struct WirelessGnameUnamePair gname_uname;
|
||||
u8 active:1;
|
||||
};
|
||||
|
||||
struct UnkStruct_x20
|
||||
struct UnkStruct_x20 // WirelessLink_Member?
|
||||
{
|
||||
struct UnkStruct_Shared unk;
|
||||
struct WirelessGnameUnamePair gname_uname;
|
||||
u16 field_18;
|
||||
u8 field_1A_0:2;
|
||||
u8 groupScheduledAnim:2;
|
||||
u8 field_1A_1:1;
|
||||
u8 field_1B;
|
||||
u8 field_1D;
|
||||
@ -44,29 +44,28 @@ struct UnkStruct_Main8
|
||||
struct UnkStruct_x20 arr[5];
|
||||
};
|
||||
|
||||
struct UnkStruct_Leader
|
||||
struct WirelessLink_Leader
|
||||
{
|
||||
struct UnkStruct_Main0 *field_0;
|
||||
struct UnkStruct_Main4 *field_4;
|
||||
struct UnkStruct_Main8 *field_8;
|
||||
u8 state;
|
||||
u8 textState;
|
||||
u8 field_E;
|
||||
u8 delayTimerAfterOk;
|
||||
u8 listWindowId;
|
||||
u8 field_10;
|
||||
u8 field_11;
|
||||
u8 bButtonCancelWindowId;
|
||||
u8 nPlayerModeWindowId;
|
||||
u8 listTaskId;
|
||||
u8 field_13;
|
||||
u8 field_14;
|
||||
u8 field_15;
|
||||
u8 playerCount;
|
||||
u16 field_14;
|
||||
u8 field_16;
|
||||
u8 field_17;
|
||||
u8 field_18;
|
||||
u8 listenTaskId;
|
||||
u8 activity;
|
||||
u8 field_19;
|
||||
u16 field_1A;
|
||||
};
|
||||
|
||||
struct UnkStruct_Group
|
||||
struct WirelessLink_Group
|
||||
{
|
||||
struct UnkStruct_Main0 *field_0;
|
||||
struct UnkStruct_Main4 *field_4;
|
||||
@ -74,16 +73,16 @@ struct UnkStruct_Group
|
||||
u8 textState;
|
||||
u8 field_A;
|
||||
u8 listWindowId;
|
||||
u8 field_C;
|
||||
u8 field_D;
|
||||
u8 bButtonCancelWindowId;
|
||||
u8 playerNameAndIdWindowId;
|
||||
u8 listTaskId;
|
||||
u8 field_F;
|
||||
u8 leaderId;
|
||||
u8 field_10;
|
||||
u8 field_11;
|
||||
u8 field_12;
|
||||
u8 listenTaskId;
|
||||
u8 isWonderNews;
|
||||
u8 field_13;
|
||||
u8 field_14;
|
||||
u8 field_15;
|
||||
u8 refreshTimer;
|
||||
u8 delayBeforePrint;
|
||||
};
|
||||
|
||||
struct UnkStruct_8019BA8
|
||||
@ -94,7 +93,7 @@ struct UnkStruct_8019BA8
|
||||
u8 field_3;
|
||||
};
|
||||
|
||||
struct UnkStruct_URoom
|
||||
struct WirelessLink_URoom
|
||||
{
|
||||
struct UnkStruct_Main0 *field_0;
|
||||
struct UnkStruct_Main4 *field_4;
|
||||
@ -109,30 +108,30 @@ struct UnkStruct_URoom
|
||||
u8 field_18;
|
||||
u8 field_19;
|
||||
u8 field_1A;
|
||||
u8 field_1B;
|
||||
u8 field_1C;
|
||||
u8 field_1D;
|
||||
u8 field_1E;
|
||||
u8 topListMenuWindowId;
|
||||
u8 topListMenuId;
|
||||
u8 tradeBoardSelectWindowId;
|
||||
u8 tradeBoardDetailsWindowId;
|
||||
u8 field_1F;
|
||||
u8 field_20;
|
||||
u8 spriteIds[40];
|
||||
u8 field_49;
|
||||
u8 field_4A;
|
||||
u16 field_4C[6];
|
||||
u8 field_58[0x98 - 0x58];
|
||||
u16 field_98;
|
||||
u16 field_9A[3];
|
||||
u16 playerSendBuffer[6];
|
||||
u8 activityRequestStrbufs[4][16];
|
||||
u16 partnerYesNoResponse;
|
||||
u16 recvActivityRequest[3];
|
||||
struct UnkStruct_8019BA8 field_A0[8];
|
||||
u8 field_C0[12][15];
|
||||
u8 field_174[48];
|
||||
u8 field_1A4[200];
|
||||
};
|
||||
|
||||
union UnkUnion_Main
|
||||
union WirelessLink_Main
|
||||
{
|
||||
struct UnkStruct_Leader *leader;
|
||||
struct UnkStruct_Group *group;
|
||||
struct UnkStruct_URoom *uRoom;
|
||||
struct WirelessLink_Leader *leader;
|
||||
struct WirelessLink_Group *group;
|
||||
struct WirelessLink_URoom *uRoom;
|
||||
};
|
||||
|
||||
struct UnionRoomTrade
|
||||
@ -152,20 +151,22 @@ struct UnionRoomTrade
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
extern u8 gUnknown_02022C2C;
|
||||
extern union UnkUnion_Main gUnknown_02022C30;
|
||||
extern struct GFtgtGnameSub gUnknown_02022C38;
|
||||
extern u8 gPlayerCurrActivity;
|
||||
extern union WirelessLink_Main gUnknown_02022C30;
|
||||
extern struct GFtgtGnameSub gPartnerTgtGnameSub;
|
||||
|
||||
extern u16 gUnionRoomOfferedSpecies;
|
||||
extern u8 gUnionRoomRequestedMonType;
|
||||
|
||||
// Exported ROM declarations
|
||||
|
||||
u8 sub_8013F78(void);
|
||||
u8 CreateTask_ReturnFromLinkTrade(void);
|
||||
void nullsub_89(u8 taskId);
|
||||
void var_800D_set_xB(void);
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
|
||||
void MEvent_CreateTask_Leader(u32 arg0);
|
||||
u8 CreateTask_ListenToWireless(void);
|
||||
void StartUnionRoomBattle(u16 battleFlags);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_H
|
||||
|
@ -1,7 +1,6 @@
|
||||
#ifndef GUARD_UNION_ROOM_BATTLE_H
|
||||
#define GUARD_UNION_ROOM_BATTLE_H
|
||||
|
||||
u8 sub_8013C40(void);
|
||||
void sub_8014210(u16 battleFlags);
|
||||
void CB2_UnionRoomBattle(void);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_BATTLE_H
|
||||
|
@ -12,7 +12,7 @@ enum
|
||||
#define UNION_ROOM_KB_ROW_COUNT 10
|
||||
|
||||
|
||||
void sub_801DD98(void);
|
||||
void EnterUnionRoomChat(void);
|
||||
void copy_strings_to_sav1(void);
|
||||
|
||||
#endif // GUARD_UNION_ROOM_CHAT_H
|
||||
|
@ -3,12 +3,12 @@
|
||||
|
||||
u8 sub_8019BA8(struct UnkStruct_8019BA8 * ptr);
|
||||
void sub_8019E3C(void);
|
||||
void sub_8019E70(u8 *arg0, s32 arg1);
|
||||
void sub_8019F04(u8 *spriteIds);
|
||||
void CreateGroupMemberObjectsInvisible(u8 *arg0, s32 arg1);
|
||||
void DestroyGroupMemberObjects(u8 *spriteIds);
|
||||
void sub_8019F2C(void);
|
||||
void sub_801A274(struct UnkStruct_URoom *arg0);
|
||||
void sub_801A284(struct UnkStruct_URoom *arg0);
|
||||
bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
|
||||
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
|
||||
void ScheduleUnionRoomPlayerRefresh(struct WirelessLink_URoom *arg0);
|
||||
void HandleUnionRoomPlayerRefresh(struct WirelessLink_URoom *arg0);
|
||||
bool32 RfuUnionTool_GetGroupAndMemberInFrontOfPlayer(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
|
||||
void UpdateUnionGroupMemberFacing(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
||||
|
@ -33,7 +33,7 @@ void HandleLinkBattleSetup(void)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
if (gWirelessCommType)
|
||||
sub_800B488();
|
||||
SetWirelessCommType1();
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
OpenLink();
|
||||
CreateTask(task00_08081A90, 0);
|
||||
|
@ -832,7 +832,7 @@ u32 sub_8020C0C(MainCallback callback)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8020C70(MainCallback callback)
|
||||
void StartBerryCrush(MainCallback callback)
|
||||
{
|
||||
u8 playerCount = 0;
|
||||
u8 multiplayerId;
|
||||
|
@ -849,7 +849,7 @@ static void sub_80B32B4(u8 taskId)
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
gTrainerBattleOpponent_A = 0x800;
|
||||
SetMainCallback2(CB2_InitBattle);
|
||||
gMain.savedCallback = sub_80B360C;
|
||||
gMain.savedCallback = CB2_ReturnFromCableClubBattle;
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
@ -915,7 +915,7 @@ static void sub_80B33BC(u8 taskId)
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
gTrainerBattleOpponent_A = 0x800;
|
||||
SetMainCallback2(CB2_InitBattle);
|
||||
gMain.savedCallback = sub_80B360C;
|
||||
gMain.savedCallback = CB2_ReturnFromCableClubBattle;
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
@ -965,7 +965,7 @@ static void sub_80B3554(void)
|
||||
RunTasks();
|
||||
}
|
||||
|
||||
void sub_80B360C(void)
|
||||
void CB2_ReturnFromCableClubBattle(void)
|
||||
{
|
||||
gBattleTypeFlags &= ~BATTLE_TYPE_20;
|
||||
Overworld_ResetMapMusic();
|
||||
@ -1129,7 +1129,7 @@ static void sub_80B3894(u8 taskId)
|
||||
case 3:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
sub_8013F78();
|
||||
CreateTask_ReturnFromLinkTrade();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
|
@ -50,27 +50,36 @@ const u8 sText_4PlayerMode[] = _("4-PLAYER\nMODE");
|
||||
const u8 sText_5PlayerMode[] = _("5-PLAYER\nMODE");
|
||||
|
||||
static const u8 *const sPlayersNeededOrModeTexts[][5] = {
|
||||
// 2 players required
|
||||
{
|
||||
sText_1PlayerNeeded,
|
||||
sText_2PlayerMode
|
||||
}, {
|
||||
},
|
||||
// 4 players required
|
||||
{
|
||||
sText_3PlayersNeeded,
|
||||
sText_2PlayersNeeded,
|
||||
sText_1PlayerNeeded,
|
||||
sText_4PlayerMode
|
||||
}, {
|
||||
},
|
||||
// 2-5 players required
|
||||
{
|
||||
sText_1PlayerNeeded,
|
||||
sText_2PlayerMode,
|
||||
sText_3PlayerMode,
|
||||
sText_4PlayerMode,
|
||||
sText_5PlayerMode
|
||||
}, {
|
||||
},
|
||||
// 3-5 players required
|
||||
{
|
||||
sText_2PlayersNeeded,
|
||||
sText_1PlayerNeeded,
|
||||
sText_3PlayerMode,
|
||||
sText_4PlayerMode,
|
||||
sText_5PlayerMode
|
||||
}, {
|
||||
},
|
||||
// 2-4 players required
|
||||
{
|
||||
sText_1PlayerNeeded,
|
||||
sText_2PlayerMode,
|
||||
sText_3PlayerMode,
|
||||
@ -484,8 +493,8 @@ static const u8 *const sChooseTrainerTexts[NUM_LINK_GROUP_TYPES] =
|
||||
[LINK_GROUP_BERRY_PICKING] = sText_ChooseLeaderBerryPicking,
|
||||
[LINK_GROUP_WONDER_CARD] = sText_ChooseTrainerToShareWonderCards,
|
||||
[LINK_GROUP_WONDER_NEWS] = sText_ChooseTrainerToShareWonderNews,
|
||||
[LINK_GROUP_UNK_9] = NULL,
|
||||
[LINK_GROUP_UNK_10] = NULL,
|
||||
[LINK_GROUP_UNION_ROOM_RESUME] = NULL,
|
||||
[LINK_GROUP_UNION_ROOM_INIT] = NULL,
|
||||
[LINK_GROUP_UNK_11] = NULL,
|
||||
[LINK_GROUP_RECORD_CORNER] = sText_ChooseLeaderRecordCorner,
|
||||
[LINK_GROUP_BERRY_BLENDER] = sText_ChooseLeaderBerryBlender,
|
||||
@ -599,7 +608,7 @@ const u8 *const sLinkGroupActivityTexts[] = {
|
||||
sText_BattleTowerLv50
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F00BC = {
|
||||
static const struct WindowTemplate sWindowTemplate_BButtonCancel = {
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x00,
|
||||
.tilemapTop = 0x00,
|
||||
@ -609,29 +618,33 @@ const struct WindowTemplate gUnknown_082F00BC = {
|
||||
.baseBlock = 0x0008
|
||||
};
|
||||
|
||||
const u32 gUnknown_082F00C4[NUM_LINK_GROUP_TYPES] = {
|
||||
0x0201,
|
||||
0x0202,
|
||||
0x0403,
|
||||
0x0204,
|
||||
0x2509,
|
||||
0x250a,
|
||||
0x350b,
|
||||
0x0000,
|
||||
0x0000,
|
||||
0x0000,
|
||||
0x0000,
|
||||
0x0000,
|
||||
0x240f,
|
||||
0x2410,
|
||||
0x0000,
|
||||
0x2417,
|
||||
0x2418,
|
||||
0x2419,
|
||||
0x241a,
|
||||
0x241b,
|
||||
0x021c,
|
||||
0x020e
|
||||
// Minimum and maximum number of players for a link group
|
||||
// A minimum of 0 means the min and max are equal
|
||||
#define LINK_GROUP_CAPACITY(min, max)(((min) << 12) | ((max) << 8))
|
||||
|
||||
static const u32 sLinkGroupToActivityAndCapacity[NUM_LINK_GROUP_TYPES] = {
|
||||
[LINK_GROUP_SINGLE_BATTLE] = ACTIVITY_BATTLE_SINGLE | LINK_GROUP_CAPACITY(0, 2),
|
||||
[LINK_GROUP_DOUBLE_BATTLE] = ACTIVITY_BATTLE_DOUBLE | LINK_GROUP_CAPACITY(0, 2),
|
||||
[LINK_GROUP_MULTI_BATTLE] = ACTIVITY_BATTLE_MULTI | LINK_GROUP_CAPACITY(0, 4),
|
||||
[LINK_GROUP_TRADE] = ACTIVITY_TRADE | LINK_GROUP_CAPACITY(0, 2),
|
||||
[LINK_GROUP_POKEMON_JUMP] = ACTIVITY_POKEMON_JUMP | LINK_GROUP_CAPACITY(2, 5),
|
||||
[LINK_GROUP_BERRY_CRUSH] = ACTIVITY_BERRY_CRUSH | LINK_GROUP_CAPACITY(2, 5),
|
||||
[LINK_GROUP_BERRY_PICKING] = ACTIVITY_BERRY_PICK | LINK_GROUP_CAPACITY(3, 5),
|
||||
[LINK_GROUP_WONDER_CARD] = ACTIVITY_NONE | LINK_GROUP_CAPACITY(0, 0),
|
||||
[LINK_GROUP_WONDER_NEWS] = ACTIVITY_NONE | LINK_GROUP_CAPACITY(0, 0),
|
||||
[LINK_GROUP_UNION_ROOM_RESUME] = ACTIVITY_NONE | LINK_GROUP_CAPACITY(0, 0),
|
||||
[LINK_GROUP_UNION_ROOM_INIT] = ACTIVITY_NONE | LINK_GROUP_CAPACITY(0, 0),
|
||||
[LINK_GROUP_UNK_11] = ACTIVITY_NONE | LINK_GROUP_CAPACITY(0, 0),
|
||||
[LINK_GROUP_RECORD_CORNER] = ACTIVITY_RECORD_CORNER | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_BERRY_BLENDER] = ACTIVITY_BERRY_BLENDER | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_UNK_14] = ACTIVITY_NONE | LINK_GROUP_CAPACITY(0, 0),
|
||||
[LINK_GROUP_COOL_CONTEST] = ACTIVITY_CONTEST_COOL | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_BEAUTY_CONTEST] = ACTIVITY_CONTEST_BEAUTY | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_CUTE_CONTEST] = ACTIVITY_CONTEST_CUTE | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_SMART_CONTEST] = ACTIVITY_CONTEST_SMART | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_TOUGH_CONTEST] = ACTIVITY_CONTEST_TOUGH | LINK_GROUP_CAPACITY(2, 4),
|
||||
[LINK_GROUP_BATTLE_TOWER] = ACTIVITY_BATTLE_TOWER | LINK_GROUP_CAPACITY(0, 2),
|
||||
[LINK_GROUP_BATTLE_TOWER_OPEN] = ACTIVITY_BATTLE_TOWER_OPEN | LINK_GROUP_CAPACITY(0, 2)
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F011C = {
|
||||
@ -654,7 +667,7 @@ const struct WindowTemplate gUnknown_082F0124 = {
|
||||
.baseBlock = 0x0044
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F012C = {
|
||||
static const struct WindowTemplate sWindowTemplate_NumPlayerMode = {
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x10,
|
||||
.tilemapTop = 0x03,
|
||||
@ -672,11 +685,11 @@ const struct ListMenuItem gUnknown_082F0134[] = {
|
||||
{ sText_EmptyString, 4 }
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate gUnknown_082F015C = {
|
||||
static const struct ListMenuTemplate sListMenuTemplate_PossibleGroupMembers = {
|
||||
.items = gUnknown_082F0134,
|
||||
.moveCursorFunc = NULL,
|
||||
.itemPrintFunc = sub_8013278,
|
||||
.totalItems = 5,
|
||||
.itemPrintFunc = ItemPrintFunc_PossibleGroupMembers,
|
||||
.totalItems = ARRAY_COUNT(gUnknown_082F0134),
|
||||
.maxShowed = 5,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -732,11 +745,11 @@ const struct ListMenuItem gUnknown_082F0184[] = {
|
||||
{ sText_EmptyString, 15 }
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate gUnknown_082F0204 = {
|
||||
static const struct ListMenuTemplate sListMenuTemplate_UnionRoomGroups = {
|
||||
.items = gUnknown_082F0184,
|
||||
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
|
||||
.itemPrintFunc = sub_8013DF4,
|
||||
.totalItems = 16,
|
||||
.itemPrintFunc = ListMenuItemPrintFunc_UnionRoomGroups,
|
||||
.totalItems = ARRAY_COUNT(gUnknown_082F0184),
|
||||
.maxShowed = 5,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -753,7 +766,7 @@ const struct ListMenuTemplate gUnknown_082F0204 = {
|
||||
.cursorKind = 0
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F021C = {
|
||||
static const struct WindowTemplate sWindowTemplate_InviteToActivity = {
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x14,
|
||||
.tilemapTop = 0x05,
|
||||
@ -770,11 +783,11 @@ const struct ListMenuItem gUnknown_082F0224[] = {
|
||||
{ sText_Exit, 0x040 }
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate gUnknown_082F0244 = {
|
||||
static const struct ListMenuTemplate sListMenuTemplate_InviteToActivity = {
|
||||
.items = gUnknown_082F0224,
|
||||
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
|
||||
.itemPrintFunc = NULL,
|
||||
.totalItems = 4,
|
||||
.totalItems = ARRAY_COUNT(gUnknown_082F0224),
|
||||
.maxShowed = 4,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -811,7 +824,7 @@ const struct ListMenuTemplate gUnknown_082F027C = {
|
||||
.items = gUnknown_082F0264,
|
||||
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
|
||||
.itemPrintFunc = NULL,
|
||||
.totalItems = 3,
|
||||
.totalItems = ARRAY_COUNT(gUnknown_082F0264),
|
||||
.maxShowed = 3,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -838,7 +851,7 @@ const struct WindowTemplate gUnknown_082F0294 = {
|
||||
.baseBlock = 0x0001
|
||||
};
|
||||
|
||||
static const struct ListMenuItem sTradingBoardTypes[] = {
|
||||
static const struct ListMenuItem sTradingBoardTypes[NUMBER_OF_MON_TYPES] = {
|
||||
{ gTypeNames[TYPE_NORMAL], TYPE_NORMAL },
|
||||
{ gTypeNames[TYPE_FIRE], TYPE_FIRE },
|
||||
{ gTypeNames[TYPE_WATER], TYPE_WATER },
|
||||
@ -856,14 +869,14 @@ static const struct ListMenuItem sTradingBoardTypes[] = {
|
||||
{ gTypeNames[TYPE_DRAGON], TYPE_DRAGON },
|
||||
{ gTypeNames[TYPE_STEEL], TYPE_STEEL },
|
||||
{ gTypeNames[TYPE_DARK], TYPE_DARK },
|
||||
{ sText_Exit, NUMBER_OF_MON_TYPES }
|
||||
{ sText_Exit, NUMBER_OF_MON_TYPES }
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate sMenuTemplate_TradingBoardRequestType = {
|
||||
.items = sTradingBoardTypes,
|
||||
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
|
||||
.itemPrintFunc = NULL,
|
||||
.totalItems = NUMBER_OF_MON_TYPES,
|
||||
.totalItems = ARRAY_COUNT(sTradingBoardTypes),
|
||||
.maxShowed = 6,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -900,7 +913,7 @@ const struct WindowTemplate gUnknown_082F034C = {
|
||||
.baseBlock = 0x0039
|
||||
};
|
||||
|
||||
const struct ListMenuItem gUnknown_082F0354[] = {
|
||||
static const struct ListMenuItem sTradeBoardListMenuItems[] = {
|
||||
{ sText_EmptyString, -3 },
|
||||
{ sText_EmptyString, 0 },
|
||||
{ sText_EmptyString, 1 },
|
||||
@ -913,11 +926,11 @@ const struct ListMenuItem gUnknown_082F0354[] = {
|
||||
{ sText_Exit2, 8 }
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate gUnknown_082F03A4 = {
|
||||
.items = gUnknown_082F0354,
|
||||
static const struct ListMenuTemplate sTradeBoardListMenuTemplate = {
|
||||
.items = sTradeBoardListMenuItems,
|
||||
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
|
||||
.itemPrintFunc = sub_8017BE8,
|
||||
.totalItems = 10,
|
||||
.itemPrintFunc = TradeBoardListMenuItemPrintFunc,
|
||||
.totalItems = ARRAY_COUNT(sTradeBoardListMenuItems),
|
||||
.maxShowed = 6,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -944,7 +957,7 @@ const struct WindowTemplate UnrefWindowTemplate_082F03B4 = {
|
||||
.baseBlock = 0x0039
|
||||
};
|
||||
|
||||
const struct ListMenuItem gUnknown_082F03C4[] = {
|
||||
static const struct ListMenuItem sEmptyListMenuItems[] = {
|
||||
{ sText_EmptyString, 0 },
|
||||
{ sText_EmptyString, 1 },
|
||||
{ sText_EmptyString, 2 },
|
||||
@ -963,11 +976,12 @@ const struct ListMenuItem gUnknown_082F03C4[] = {
|
||||
{ sText_EmptyString, 15 }
|
||||
};
|
||||
|
||||
const struct ListMenuTemplate UnrefListMenuTemplate_082F0444 = {
|
||||
.items = gUnknown_082F03C4,
|
||||
// Unused
|
||||
static const struct ListMenuTemplate sUnknownListMenuTemplate = {
|
||||
.items = sEmptyListMenuItems,
|
||||
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
|
||||
.itemPrintFunc = nullsub_14,
|
||||
.totalItems = 16,
|
||||
.totalItems = ARRAY_COUNT(sEmptyListMenuItems),
|
||||
.maxShowed = 4,
|
||||
.windowId = 0,
|
||||
.header_X = 0,
|
||||
@ -984,78 +998,100 @@ const struct ListMenuTemplate UnrefListMenuTemplate_082F0444 = {
|
||||
.cursorKind = 0
|
||||
};
|
||||
|
||||
const struct UnkStruct_Shared gUnknown_082F045C = {0};
|
||||
const struct WirelessGnameUnamePair sWirelessGnameUnamePair_Dummy = {0};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082F0474[] = {0x01, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0478[] = {0x02, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F047C[] = {0x03, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0480[] = {0x04, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0484[] = {0x09, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0488[] = {0x0a, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F048C[] = {0x0b, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0490[] = {0x15, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0494[] = {0x16, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F0498[] = {0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04A4[] = {0x0c, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04A8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15, 0x16, 0x0d, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04B4[] = {0x0f, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04B8[] = {0x10, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04BC[] = {0x17, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04C0[] = {0x18, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04C4[] = {0x19, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04C8[] = {0x1a, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04CC[] = {0x1b, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04D0[] = {0x1c, 0xff};
|
||||
ALIGNED(4) const u8 gUnknown_082F04D4[] = {0x0e, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_SingleBattle[] = {ACTIVITY_BATTLE_SINGLE, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_DoubleBattle[] = {ACTIVITY_BATTLE_DOUBLE, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_MultiBattle[] = {ACTIVITY_BATTLE_MULTI, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_Trade[] = {ACTIVITY_TRADE, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_PokemonJump[] = {ACTIVITY_POKEMON_JUMP, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_BerryCrush[] = {ACTIVITY_BERRY_CRUSH, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_BerryPicking[] = {ACTIVITY_BERRY_PICK, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_WonderCard[] = {ACTIVITY_WONDER_CARD2, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_WonderNews[] = {ACTIVITY_WONDER_NEWS2, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_Resume[] = {
|
||||
IN_UNION_ROOM | ACTIVITY_NONE,
|
||||
IN_UNION_ROOM | ACTIVITY_BATTLE_SINGLE,
|
||||
IN_UNION_ROOM | ACTIVITY_TRADE,
|
||||
IN_UNION_ROOM | ACTIVITY_CHAT,
|
||||
IN_UNION_ROOM | ACTIVITY_CARD,
|
||||
IN_UNION_ROOM | ACTIVITY_ACCEPT,
|
||||
IN_UNION_ROOM | ACTIVITY_DECLINE,
|
||||
IN_UNION_ROOM | ACTIVITY_NPCTALK,
|
||||
IN_UNION_ROOM | ACTIVITY_PLYRTALK,
|
||||
0xff
|
||||
};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_Init[] = {ACTIVITY_SEARCH, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_Unk11[] = {
|
||||
ACTIVITY_BATTLE_SINGLE,
|
||||
ACTIVITY_BATTLE_DOUBLE,
|
||||
ACTIVITY_BATTLE_MULTI,
|
||||
ACTIVITY_TRADE,
|
||||
ACTIVITY_POKEMON_JUMP,
|
||||
ACTIVITY_BERRY_CRUSH,
|
||||
ACTIVITY_BERRY_PICK,
|
||||
ACTIVITY_WONDER_CARD2,
|
||||
ACTIVITY_WONDER_NEWS2,
|
||||
ACTIVITY_SPIN_TRADE,
|
||||
0xff
|
||||
};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_RecordCorner[] = {ACTIVITY_RECORD_CORNER, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_BerryBlender[] = {ACTIVITY_BERRY_BLENDER, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_CoolContest[] = {ACTIVITY_CONTEST_COOL, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_BeautyContest[] = {ACTIVITY_CONTEST_BEAUTY, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_CuteContest[] = {ACTIVITY_CONTEST_CUTE, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_SmartContest[] = {ACTIVITY_CONTEST_SMART, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_ToughContest[] = {ACTIVITY_CONTEST_TOUGH, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_BattleTower[] = {ACTIVITY_BATTLE_TOWER, 0xff};
|
||||
ALIGNED(4) const u8 sAcceptedActivityIds_BattleTowerOpen[] = {ACTIVITY_BATTLE_TOWER_OPEN, 0xff};
|
||||
|
||||
const u8 *const gUnknown_082F04D8[NUM_LINK_GROUP_TYPES] = {
|
||||
gUnknown_082F0474,
|
||||
gUnknown_082F0478,
|
||||
gUnknown_082F047C,
|
||||
gUnknown_082F0480,
|
||||
gUnknown_082F0484,
|
||||
gUnknown_082F0488,
|
||||
gUnknown_082F048C,
|
||||
gUnknown_082F0490,
|
||||
gUnknown_082F0494,
|
||||
gUnknown_082F0498,
|
||||
gUnknown_082F04A4,
|
||||
gUnknown_082F04A8,
|
||||
gUnknown_082F04B4,
|
||||
gUnknown_082F04B8,
|
||||
NULL,
|
||||
gUnknown_082F04BC,
|
||||
gUnknown_082F04C0,
|
||||
gUnknown_082F04C4,
|
||||
gUnknown_082F04C8,
|
||||
gUnknown_082F04CC,
|
||||
gUnknown_082F04D0,
|
||||
gUnknown_082F04D4
|
||||
const u8 *const sAcceptedActivityIds[NUM_LINK_GROUP_TYPES] = {
|
||||
[LINK_GROUP_SINGLE_BATTLE] = sAcceptedActivityIds_SingleBattle,
|
||||
[LINK_GROUP_DOUBLE_BATTLE] = sAcceptedActivityIds_DoubleBattle,
|
||||
[LINK_GROUP_MULTI_BATTLE] = sAcceptedActivityIds_MultiBattle,
|
||||
[LINK_GROUP_TRADE] = sAcceptedActivityIds_Trade,
|
||||
[LINK_GROUP_POKEMON_JUMP] = sAcceptedActivityIds_PokemonJump,
|
||||
[LINK_GROUP_BERRY_CRUSH] = sAcceptedActivityIds_BerryCrush,
|
||||
[LINK_GROUP_BERRY_PICKING] = sAcceptedActivityIds_BerryPicking,
|
||||
[LINK_GROUP_WONDER_CARD] = sAcceptedActivityIds_WonderCard,
|
||||
[LINK_GROUP_WONDER_NEWS] = sAcceptedActivityIds_WonderNews,
|
||||
[LINK_GROUP_UNION_ROOM_RESUME] = sAcceptedActivityIds_Resume,
|
||||
[LINK_GROUP_UNION_ROOM_INIT] = sAcceptedActivityIds_Init,
|
||||
[LINK_GROUP_UNK_11] = sAcceptedActivityIds_Unk11,
|
||||
[LINK_GROUP_RECORD_CORNER] = sAcceptedActivityIds_RecordCorner,
|
||||
[LINK_GROUP_BERRY_BLENDER] = sAcceptedActivityIds_BerryBlender,
|
||||
[LINK_GROUP_UNK_14] = NULL,
|
||||
[LINK_GROUP_COOL_CONTEST] = sAcceptedActivityIds_CoolContest,
|
||||
[LINK_GROUP_BEAUTY_CONTEST] = sAcceptedActivityIds_BeautyContest,
|
||||
[LINK_GROUP_CUTE_CONTEST] = sAcceptedActivityIds_CuteContest,
|
||||
[LINK_GROUP_SMART_CONTEST] = sAcceptedActivityIds_SmartContest,
|
||||
[LINK_GROUP_TOUGH_CONTEST] = sAcceptedActivityIds_ToughContest,
|
||||
[LINK_GROUP_BATTLE_TOWER] = sAcceptedActivityIds_BattleTower,
|
||||
[LINK_GROUP_BATTLE_TOWER_OPEN] = sAcceptedActivityIds_BattleTowerOpen
|
||||
};
|
||||
|
||||
// Link group type to ID for gUnknown_02022C2C
|
||||
const u8 gUnknown_082F0530[NUM_LINK_GROUP_TYPES + 2] =
|
||||
static const u8 sLinkGroupToURoomActivity[NUM_LINK_GROUP_TYPES + 2] =
|
||||
{
|
||||
0x01,
|
||||
0x02,
|
||||
0x03,
|
||||
0x04,
|
||||
0x09,
|
||||
0x0a,
|
||||
0x0b,
|
||||
0x15,
|
||||
0x16,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x0f,
|
||||
0x10,
|
||||
0x00,
|
||||
0x17,
|
||||
0x18,
|
||||
0x19,
|
||||
0x1a,
|
||||
0x1b,
|
||||
0x1c,
|
||||
0x0e
|
||||
[LINK_GROUP_SINGLE_BATTLE] = ACTIVITY_BATTLE_SINGLE,
|
||||
[LINK_GROUP_DOUBLE_BATTLE] = ACTIVITY_BATTLE_DOUBLE,
|
||||
[LINK_GROUP_MULTI_BATTLE] = ACTIVITY_BATTLE_MULTI,
|
||||
[LINK_GROUP_TRADE] = ACTIVITY_TRADE,
|
||||
[LINK_GROUP_POKEMON_JUMP] = ACTIVITY_POKEMON_JUMP,
|
||||
[LINK_GROUP_BERRY_CRUSH] = ACTIVITY_BERRY_CRUSH,
|
||||
[LINK_GROUP_BERRY_PICKING] = ACTIVITY_BERRY_PICK,
|
||||
[LINK_GROUP_WONDER_CARD] = ACTIVITY_WONDER_CARD2,
|
||||
[LINK_GROUP_WONDER_NEWS] = ACTIVITY_WONDER_NEWS2,
|
||||
[LINK_GROUP_UNION_ROOM_RESUME] = ACTIVITY_NONE,
|
||||
[LINK_GROUP_UNION_ROOM_INIT] = ACTIVITY_NONE,
|
||||
[LINK_GROUP_UNK_11] = ACTIVITY_NONE,
|
||||
[LINK_GROUP_RECORD_CORNER] = ACTIVITY_RECORD_CORNER,
|
||||
[LINK_GROUP_BERRY_BLENDER] = ACTIVITY_BERRY_BLENDER,
|
||||
[LINK_GROUP_UNK_14] = ACTIVITY_NONE,
|
||||
[LINK_GROUP_COOL_CONTEST] = ACTIVITY_CONTEST_COOL,
|
||||
[LINK_GROUP_BEAUTY_CONTEST] = ACTIVITY_CONTEST_BEAUTY,
|
||||
[LINK_GROUP_CUTE_CONTEST] = ACTIVITY_CONTEST_CUTE,
|
||||
[LINK_GROUP_SMART_CONTEST] = ACTIVITY_CONTEST_SMART,
|
||||
[LINK_GROUP_TOUGH_CONTEST] = ACTIVITY_CONTEST_TOUGH,
|
||||
[LINK_GROUP_BATTLE_TOWER] = ACTIVITY_BATTLE_TOWER,
|
||||
[LINK_GROUP_BATTLE_TOWER_OPEN] = ACTIVITY_BATTLE_TOWER_OPEN
|
||||
};
|
||||
|
@ -450,7 +450,7 @@ static void (*const gUnknown_082F7AF4[])(void) =
|
||||
};
|
||||
|
||||
// code
|
||||
void sub_802493C(u16 a0, void (*callback)(void))
|
||||
void StartDodrioBerryPicking(u16 a0, void (*callback)(void))
|
||||
{
|
||||
gUnknown_03000DB0 = FALSE;
|
||||
|
||||
|
@ -96,7 +96,7 @@ void ScriptUnfreezeObjectEvents(void)
|
||||
UnfreezeObjectEvents();
|
||||
}
|
||||
|
||||
void sub_8098524(void)
|
||||
void UnionRoom_UnlockPlayerAndChatPartner(void)
|
||||
{
|
||||
u8 playerObjectId;
|
||||
|
||||
|
@ -2290,7 +2290,7 @@ void SetupBagMenu_Textboxes(void)
|
||||
DeactivateAllTextPrinters();
|
||||
LoadUserWindowBorderGfx(0, 1, 0xE0);
|
||||
LoadMessageBoxGfx(0, 10, 0xD0);
|
||||
sub_819A2BC(0xC0, 1);
|
||||
ListMenuLoadStdPalAt(0xC0, 1);
|
||||
LoadPalette(&gUnknown_0860F074, 0xF0, 0x20);
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
|
@ -221,7 +221,7 @@ static const u8 sUnused_082ED224[] = {0x00, 0xff, 0xfe, 0xff, 0x00};
|
||||
|
||||
bool8 IsWirelessAdapterConnected(void)
|
||||
{
|
||||
sub_800B488();
|
||||
SetWirelessCommType1();
|
||||
sub_800E700();
|
||||
if (rfu_LMAN_REQBN_softReset_and_checkID() == 0x8001)
|
||||
{
|
||||
@ -389,7 +389,7 @@ void CloseLink(void)
|
||||
gReceivedRemoteLinkPlayers = FALSE;
|
||||
if (gWirelessCommType)
|
||||
{
|
||||
sub_800EDD4();
|
||||
LinkRfu_Shutdown();
|
||||
}
|
||||
gLinkOpen = FALSE;
|
||||
DisableSerial();
|
||||
@ -1860,7 +1860,7 @@ bool8 HandleLinkConnection(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_800B488(void)
|
||||
void SetWirelessCommType1(void)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
|
136
src/link_rfu_2.c
136
src/link_rfu_2.c
@ -375,11 +375,11 @@ void sub_800EAFC(void)
|
||||
|
||||
void sub_800EB44(u8 taskId)
|
||||
{
|
||||
if (sub_800F7DC()->activity == 0x54 && sub_8011A74() == 4)
|
||||
if (GetHostRFUtgtGname()->activity == 0x54 && RfuGetErrorStatus() == 4)
|
||||
{
|
||||
rfu_REQ_disconnect(lman.acceptSlot_flag);
|
||||
rfu_waitREQComplete();
|
||||
sub_8011A64(0, 0);
|
||||
RfuSetErrorStatus(0, 0);
|
||||
}
|
||||
switch (Rfu.unk_04)
|
||||
{
|
||||
@ -421,7 +421,7 @@ void sub_800EB44(u8 taskId)
|
||||
case 16:
|
||||
Rfu.unk_cdb = 0;
|
||||
rfu_LMAN_setMSCCallback(sub_800EDBC);
|
||||
sub_8011068(1);
|
||||
UpdateGameData_GroupLockedIn(TRUE);
|
||||
sub_800EAB4();
|
||||
sub_800EAFC();
|
||||
Rfu.unk_04 = 20;
|
||||
@ -434,12 +434,12 @@ void sub_800EB44(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800ED10(void)
|
||||
void LinkRfu_CreateConnectionAsParent(void)
|
||||
{
|
||||
rfu_LMAN_establishConnection(1, 0, 240, (u16 *)gUnknown_082ED6E0);
|
||||
}
|
||||
|
||||
void sub_800ED28(void)
|
||||
void LinkRfu_StopManagerBeforeEnteringChat(void)
|
||||
{
|
||||
rfu_LMAN_stopManager(FALSE);
|
||||
}
|
||||
@ -471,7 +471,7 @@ void sub_800EDBC(u16 unused)
|
||||
Rfu.unk_cdb = 1;
|
||||
}
|
||||
|
||||
void sub_800EDD4(void)
|
||||
void LinkRfu_Shutdown(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@ -538,7 +538,7 @@ void sub_800EF00(void)
|
||||
Rfu.unk_67 = CreateTask(sub_800E94C, 1);
|
||||
}
|
||||
|
||||
bool8 sub_800EF1C(void)
|
||||
bool8 LmanAcceptSlotFlagIsNotZero(void)
|
||||
{
|
||||
if (lman.acceptSlot_flag)
|
||||
{
|
||||
@ -547,13 +547,13 @@ bool8 sub_800EF1C(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_800EF38(void)
|
||||
void LinkRfu_StopManagerAndFinalizeSlots(void)
|
||||
{
|
||||
Rfu.unk_04 = 4;
|
||||
Rfu.unk_ce7 = lman.acceptSlot_flag;
|
||||
}
|
||||
|
||||
bool32 sub_800EF58(bool32 a0)
|
||||
bool32 WaitRfuState(bool32 a0)
|
||||
{
|
||||
if (Rfu.unk_04 == 17 || a0)
|
||||
{
|
||||
@ -676,13 +676,13 @@ bool32 sub_800F0F8(void)
|
||||
Rfu.unk_ce3 = 0;
|
||||
if (Rfu.unk_ce4 == 1)
|
||||
{
|
||||
sub_8011A64(2, 0x8000);
|
||||
RfuSetErrorStatus(2, 0x8000);
|
||||
sub_8011170(0x8000);
|
||||
return FALSE;
|
||||
}
|
||||
if (!lman.acceptSlot_flag)
|
||||
{
|
||||
sub_800EDD4();
|
||||
LinkRfu_Shutdown();
|
||||
gReceivedRemoteLinkPlayers = 0;
|
||||
return FALSE;
|
||||
}
|
||||
@ -831,15 +831,15 @@ bool32 sub_800F4F0(void)
|
||||
{
|
||||
rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
|
||||
rfu_waitREQComplete();
|
||||
switchval = sub_8011A74();
|
||||
switchval = RfuGetErrorStatus();
|
||||
if (switchval != 1 && switchval != 6 && switchval != 9)
|
||||
sub_8011A64(2, 0x9000);
|
||||
RfuSetErrorStatus(2, 0x9000);
|
||||
rfu_clearAllSlot();
|
||||
gReceivedRemoteLinkPlayers = FALSE;
|
||||
Rfu.linkRfuCallback = NULL;
|
||||
if (Rfu.unk_ce4 == 1)
|
||||
{
|
||||
sub_8011A64(2, 0x9000);
|
||||
RfuSetErrorStatus(2, 0x9000);
|
||||
sub_8011170(0x9000);
|
||||
}
|
||||
lman.state = lman.next_state = 0;
|
||||
@ -924,7 +924,7 @@ void rfu_func_080F97B8(void)
|
||||
}
|
||||
}
|
||||
|
||||
struct GFtgtGname *sub_800F7DC(void)
|
||||
struct GFtgtGname *GetHostRFUtgtGname(void)
|
||||
{
|
||||
return &gUnknown_02022B14;
|
||||
}
|
||||
@ -1000,7 +1000,7 @@ void sub_800F86C(u8 unused)
|
||||
{
|
||||
Rfu.unk_80[i].unk_12 = 2;
|
||||
sub_800F6FC(i);
|
||||
if (sub_800F7DC()->activity == 0x45 && gReceivedRemoteLinkPlayers != 0 && Rfu.unk_0c == 0)
|
||||
if (GetHostRFUtgtGname()->activity == 0x45 && gReceivedRemoteLinkPlayers != 0 && Rfu.unk_0c == 0)
|
||||
sub_8010A70(gBlockRecvBuffer);
|
||||
}
|
||||
}
|
||||
@ -1164,7 +1164,7 @@ void sub_800FD14(u16 command)
|
||||
|
||||
void sub_800FE50(void *a0)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && !sub_8011A80())
|
||||
if (gSendCmd[0] == 0 && !RfuIsErrorStatus1or2())
|
||||
{
|
||||
memcpy(Rfu.unk_f2, a0, sizeof(Rfu.unk_f2));
|
||||
sub_800FD14(0x2f00);
|
||||
@ -1535,7 +1535,7 @@ bool32 sub_80105EC(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_801064C(u16 a0, const u8 *a1)
|
||||
bool32 TrainerIdAndNameStillInPartnersList(u16 a0, const u8 *a1)
|
||||
{
|
||||
u8 r1 = sub_8011CE4(a1, a0);
|
||||
if (r1 == 0xFF)
|
||||
@ -1545,7 +1545,7 @@ bool32 sub_801064C(u16 a0, const u8 *a1)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8010688(u8 a0, u16 a1, const u8 *a2)
|
||||
void SendByteToPartnerByIdAndName(u8 a0, u16 a1, const u8 *a2)
|
||||
{
|
||||
u8 r4 = sub_8011CE4(a2, a1);
|
||||
Rfu.unk_cd1[r4] = a0;
|
||||
@ -1553,14 +1553,14 @@ void sub_8010688(u8 a0, u16 a1, const u8 *a2)
|
||||
rfu_NI_setSendData(1 << r4, 8, Rfu.unk_cd1 + r4, 1);
|
||||
}
|
||||
|
||||
void sub_80106D4(void)
|
||||
void LinkRfuNIsend8(void)
|
||||
{
|
||||
Rfu.unk_c85 = 8;
|
||||
rfu_clearSlot(4, Rfu.unk_c3e);
|
||||
rfu_NI_setSendData(1 << Rfu.unk_c3e, 8, &Rfu.unk_c85, 1);
|
||||
}
|
||||
|
||||
u32 sub_8010714(u16 a0, const u8 *a1)
|
||||
u32 WaitSendByteToPartnerByIdAndName(u16 a0, const u8 *a1)
|
||||
{
|
||||
u8 r0 = sub_8011CE4(a1, a0);
|
||||
if (r0 == 0xFF)
|
||||
@ -1597,7 +1597,7 @@ s32 sub_80107A0(void)
|
||||
if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == 0x46 || gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == 0x48)
|
||||
{
|
||||
rfu_clearSlot(8, Rfu.unk_c3e);
|
||||
sub_8011A64(Rfu.unk_c86, 0);
|
||||
RfuSetErrorStatus(Rfu.unk_c86, 0);
|
||||
retval = Rfu.unk_c86;
|
||||
}
|
||||
else if (gRfuSlotStatusNI[Rfu.unk_c3e]->recv.state == 0x47)
|
||||
@ -1842,7 +1842,7 @@ void sub_8010DB4(void)
|
||||
gWirelessCommType = 2;
|
||||
SetMainCallback2(CB2_LinkError);
|
||||
gMain.savedCallback = CB2_LinkError;
|
||||
sub_800AF18((Rfu.unk_0a << 16) | (Rfu.unk_10 << 8) | Rfu.unk_12, Rfu.unk_124.unk_8c2, Rfu.unk_9e8.unk_232, sub_8011A74() == 2);
|
||||
sub_800AF18((Rfu.unk_0a << 16) | (Rfu.unk_10 << 8) | Rfu.unk_12, Rfu.unk_124.unk_8c2, Rfu.unk_9e8.unk_232, RfuGetErrorStatus() == 2);
|
||||
Rfu.unk_ee = 2;
|
||||
CloseLink();
|
||||
}
|
||||
@ -1850,7 +1850,7 @@ void sub_8010DB4(void)
|
||||
{
|
||||
if (lman.childClockSlave_flag)
|
||||
rfu_LMAN_requestChangeAgbClockMaster();
|
||||
sub_8011A64(1, 0x7000);
|
||||
RfuSetErrorStatus(1, 0x7000);
|
||||
sub_8011170(0x7000);
|
||||
}
|
||||
}
|
||||
@ -1905,18 +1905,18 @@ void sub_8010F48(void)
|
||||
StringCopy(gUnknown_02022B22, gSaveBlock2Ptr->playerName);
|
||||
}
|
||||
|
||||
void sub_8010F60(void)
|
||||
void ClearAndInitHostRFUtgtGname(void)
|
||||
{
|
||||
memset(&gUnknown_02022B14, 0, 0xD);
|
||||
sub_800DD94(&gUnknown_02022B14, 0, 0, 0);
|
||||
}
|
||||
|
||||
void sub_8010F84(u8 a0, u32 a1, u32 a2)
|
||||
void SetHostRFUtgtGname(u8 a0, u32 a1, u32 a2)
|
||||
{
|
||||
sub_800DD94(&gUnknown_02022B14, a0, a2, a1);
|
||||
}
|
||||
|
||||
void sub_8010FA0(bool32 a0, bool32 a1)
|
||||
void SetGnameBufferWonderFlags(bool32 a0, bool32 a1)
|
||||
{
|
||||
gUnknown_02022B14.unk_00.hasNews = a0;
|
||||
gUnknown_02022B14.unk_00.hasCard = a1;
|
||||
@ -1946,16 +1946,16 @@ void sub_801103C(void)
|
||||
r5->child_sprite_gender[i - 1] = sub_801100C(i);
|
||||
}
|
||||
|
||||
void sub_8011068(u8 a0)
|
||||
void UpdateGameData_GroupLockedIn(u8 a0)
|
||||
{
|
||||
gUnknown_02022B14.started = a0;
|
||||
rfu_REQ_configGameData(0, 2, (const u8 *)&gUnknown_02022B14, gUnknown_02022B22);
|
||||
}
|
||||
|
||||
void sub_8011090(u8 a0, u32 a1, u32 a2)
|
||||
void UpdateGameDataWithActivitySpriteGendersFlag(u8 a0, u32 a1, u32 a2)
|
||||
{
|
||||
if (a0)
|
||||
sub_8010F84(a0, a1, a2);
|
||||
SetHostRFUtgtGname(a0, a1, a2);
|
||||
rfu_REQ_configGameData(0, 2, (const u8 *)&gUnknown_02022B14, gUnknown_02022B22);
|
||||
}
|
||||
|
||||
@ -1966,7 +1966,7 @@ void sub_80110B8(u32 a0)
|
||||
u32 r7;
|
||||
s32 r8;
|
||||
|
||||
if (sub_800F7DC()->activity == 0x45)
|
||||
if (GetHostRFUtgtGname()->activity == 0x45)
|
||||
{
|
||||
r5 = 0;
|
||||
r7 = 0;
|
||||
@ -1981,7 +1981,7 @@ void sub_80110B8(u32 a0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
sub_8011090(0x45, r7, 0);
|
||||
UpdateGameDataWithActivitySpriteGendersFlag(0x45, r7, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2038,7 +2038,7 @@ void sub_801120C(u8 a0, u8 unused1)
|
||||
if ((lman.param[0] >> i) & 1)
|
||||
{
|
||||
struct GFtgtGname *structPtr = (void *)gRfuLinkStatus->partner[i].gname;
|
||||
if (structPtr->activity == sub_800F7DC()->activity)
|
||||
if (structPtr->activity == GetHostRFUtgtGname()->activity)
|
||||
{
|
||||
Rfu.unk_cd1[i] = 0;
|
||||
Rfu.unk_cd5[i] = 0;
|
||||
@ -2085,21 +2085,21 @@ void sub_801120C(u8 a0, u8 unused1)
|
||||
else
|
||||
sub_80111FC();
|
||||
}
|
||||
sub_8011A64(2, a0);
|
||||
RfuSetErrorStatus(2, a0);
|
||||
break;
|
||||
case 0x34:
|
||||
break;
|
||||
case 0x42 ... 0x44:
|
||||
break;
|
||||
case 0xf3:
|
||||
sub_8011A64(1, a0);
|
||||
RfuSetErrorStatus(1, a0);
|
||||
sub_8011170(a0);
|
||||
Rfu.unk_ef = 1;
|
||||
break;
|
||||
case 0xf0 ... 0xf2:
|
||||
case 0xff:
|
||||
sub_8011170(a0);
|
||||
sub_8011A64(1, a0);
|
||||
RfuSetErrorStatus(1, a0);
|
||||
Rfu.unk_cdb = 1;
|
||||
break;
|
||||
}
|
||||
@ -2121,7 +2121,7 @@ void sub_8011404(u8 a0, u8 unused1)
|
||||
Rfu.unk_c3e = lman.param[0];
|
||||
break;
|
||||
case 0x23:
|
||||
sub_8011A64(2, a0);
|
||||
RfuSetErrorStatus(2, a0);
|
||||
break;
|
||||
case 0x24:
|
||||
Rfu.unk_04 = 11;
|
||||
@ -2131,7 +2131,7 @@ void sub_8011404(u8 a0, u8 unused1)
|
||||
rfu_setRecvBuffer(0x10, Rfu.unk_c3e, Rfu.unk_c3f, 70);
|
||||
break;
|
||||
case 0x25:
|
||||
sub_8011A64(2, 0x25);
|
||||
RfuSetErrorStatus(2, 0x25);
|
||||
break;
|
||||
case 0x30:
|
||||
Rfu.unk_f0 = 2;
|
||||
@ -2141,7 +2141,7 @@ void sub_8011404(u8 a0, u8 unused1)
|
||||
if (Rfu.unk_f0 != 2)
|
||||
Rfu.unk_f0 = 4;
|
||||
if (Rfu.unk_c86 != 9)
|
||||
sub_8011A64(2, a0);
|
||||
RfuSetErrorStatus(2, a0);
|
||||
nullsub_5(gUnknown_082ED7FC, 5, 5);
|
||||
if (gReceivedRemoteLinkPlayers == 1)
|
||||
sub_8011170(a0);
|
||||
@ -2159,13 +2159,13 @@ void sub_8011404(u8 a0, u8 unused1)
|
||||
case 0x42 ... 0x44:
|
||||
break;
|
||||
case 0xF3:
|
||||
sub_8011A64(1, a0);
|
||||
RfuSetErrorStatus(1, a0);
|
||||
sub_8011170(a0);
|
||||
Rfu.unk_ef = 1;
|
||||
break;
|
||||
case 0xF0 ... 0xF2:
|
||||
case 0xFF:
|
||||
sub_8011A64(1, a0);
|
||||
RfuSetErrorStatus(1, a0);
|
||||
sub_8011170(a0);
|
||||
Rfu.unk_cdb = 1;
|
||||
break;
|
||||
@ -2214,10 +2214,10 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
Rfu.unk_04 = 0x11;
|
||||
break;
|
||||
case 0x10:
|
||||
sub_8011A64(4, 0);
|
||||
RfuSetErrorStatus(4, 0);
|
||||
break;
|
||||
case 0x11:
|
||||
if (sub_800F7DC()->activity == 0x45 && Rfu.unk_cd9 == 0)
|
||||
if (GetHostRFUtgtGname()->activity == 0x45 && Rfu.unk_cd9 == 0)
|
||||
{
|
||||
u8 idx = sub_8011628(lman.param[0]);
|
||||
if (idx != 0)
|
||||
@ -2240,7 +2240,7 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
Rfu.unk_ce4 = 2;
|
||||
}
|
||||
}
|
||||
else if (sub_800F7DC()->activity == 0x54)
|
||||
else if (GetHostRFUtgtGname()->activity == 0x54)
|
||||
{
|
||||
rfu_REQ_disconnect(lman.acceptSlot_flag);
|
||||
rfu_waitREQComplete();
|
||||
@ -2252,7 +2252,7 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
case 0x13:
|
||||
break;
|
||||
case 0x14:
|
||||
if (sub_800F7DC()->activity != 0x45 && lman.acceptCount > 1)
|
||||
if (GetHostRFUtgtGname()->activity != 0x45 && lman.acceptCount > 1)
|
||||
{
|
||||
r1 = 1 << sub_800E87C(lman.param[0]);
|
||||
rfu_REQ_disconnect(lman.acceptSlot_flag ^ r1);
|
||||
@ -2279,16 +2279,16 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8011A64(2, a0);
|
||||
RfuSetErrorStatus(2, a0);
|
||||
}
|
||||
break;
|
||||
case 0x24:
|
||||
Rfu.unk_04 = 0xD;
|
||||
sub_8011A64(3, 0);
|
||||
RfuSetErrorStatus(3, 0);
|
||||
rfu_setRecvBuffer(0x10, Rfu.unk_c3e, Rfu.unk_c3f, 70);
|
||||
break;
|
||||
case 0x25:
|
||||
sub_8011A64(2, a0);
|
||||
RfuSetErrorStatus(2, a0);
|
||||
break;
|
||||
case 0x31:
|
||||
if (lman.acceptSlot_flag & lman.param[0])
|
||||
@ -2324,7 +2324,7 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
if (gRfuLinkStatus->parentChild == 0xFF && lman.pcswitch_flag == 0 && FuncIsActiveTask(sub_800EB44) == TRUE)
|
||||
Rfu.unk_04 = 0x11;
|
||||
|
||||
sub_8011A64(2, a0);
|
||||
RfuSetErrorStatus(2, a0);
|
||||
break;
|
||||
case 0x40:
|
||||
Rfu.unk_ce3 = 0;
|
||||
@ -2332,14 +2332,14 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
case 0x42 ... 0x44:
|
||||
break;
|
||||
case 0xF3:
|
||||
sub_8011A64(1, a0);
|
||||
RfuSetErrorStatus(1, a0);
|
||||
sub_8011170(a0);
|
||||
Rfu.unk_ef = 1;
|
||||
break;
|
||||
case 0xF0 ... 0xF2:
|
||||
case 0xFF:
|
||||
sub_8011170(a0);
|
||||
sub_8011A64(1, a0);
|
||||
RfuSetErrorStatus(1, a0);
|
||||
Rfu.unk_cdb = 0;
|
||||
break;
|
||||
}
|
||||
@ -2350,20 +2350,20 @@ void sub_8011A50(void)
|
||||
Rfu.unk_ce4 = 2;
|
||||
}
|
||||
|
||||
void sub_8011A64(u8 a0, u16 a1)
|
||||
void RfuSetErrorStatus(u8 a0, u16 a1)
|
||||
{
|
||||
Rfu.unk_f1 = a0;
|
||||
Rfu.unk_0a = a1;
|
||||
}
|
||||
|
||||
u8 sub_8011A74(void)
|
||||
u8 RfuGetErrorStatus(void)
|
||||
{
|
||||
return Rfu.unk_f1;
|
||||
}
|
||||
|
||||
bool32 sub_8011A80(void)
|
||||
bool32 RfuIsErrorStatus1or2(void)
|
||||
{
|
||||
u32 var = sub_8011A74() - 1;
|
||||
u32 var = RfuGetErrorStatus() - 1;
|
||||
if (var < 2)
|
||||
return TRUE;
|
||||
else
|
||||
@ -2409,7 +2409,7 @@ void sub_8011AFC(void)
|
||||
if (IsWirelessAdapterConnected())
|
||||
{
|
||||
gLinkType = LINKTYPE_0x1111;
|
||||
sub_800B488();
|
||||
SetWirelessCommType1();
|
||||
OpenLink();
|
||||
SeedRng(gMain.vblankCounter2);
|
||||
for (i = 0; i < 4; i++)
|
||||
@ -2425,7 +2425,7 @@ void sub_8011AFC(void)
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_8011B90(void)
|
||||
bool32 IsUnionRoomListenTaskActive(void)
|
||||
{
|
||||
return FuncIsActiveTask(sub_800EB44);
|
||||
}
|
||||
@ -2450,7 +2450,7 @@ void sub_8011BF8(void)
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_8011C10(u32 a0)
|
||||
void InitializeRfuLinkManager_LinkLeader(u32 a0)
|
||||
{
|
||||
Rfu.unk_0c = 1;
|
||||
sub_8010F48();
|
||||
@ -2460,7 +2460,7 @@ void sub_8011C10(u32 a0)
|
||||
sub_800EE78();
|
||||
}
|
||||
|
||||
void sub_8011C5C(void)
|
||||
void InitializeRfuLinkManager_JoinGroup(void)
|
||||
{
|
||||
Rfu.unk_0c = 0;
|
||||
sub_8010F48();
|
||||
@ -2468,7 +2468,7 @@ void sub_8011C5C(void)
|
||||
sub_800EF00();
|
||||
}
|
||||
|
||||
void sub_8011C84(void)
|
||||
void InitializeRfuLinkManager_EnterUnionRoom(void)
|
||||
{
|
||||
Rfu.unk_0c = 2;
|
||||
sub_8010F48();
|
||||
@ -2516,7 +2516,7 @@ void sub_8011D6C(u32 a0)
|
||||
Rfu.unk_cda = sub_800E87C(Rfu.unk_ce2);
|
||||
}
|
||||
|
||||
void sub_8011DC0(const u8 *ptr, u16 a1)
|
||||
void RequestDisconnectSlotByTrainerNameAndId(const u8 *ptr, u16 a1)
|
||||
{
|
||||
u8 var = sub_8011CE4(ptr, a1);
|
||||
if (var != 0xFF)
|
||||
@ -2584,13 +2584,13 @@ void sub_8011EF4(u8 taskId)
|
||||
if (sub_800EEBC())
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
else if (sub_800F7DC()->activity == 0x15 || sub_800F7DC()->activity == 0x16)
|
||||
else if (GetHostRFUtgtGname()->activity == 0x15 || GetHostRFUtgtGname()->activity == 0x16)
|
||||
{
|
||||
data[15]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8011A64(2, 0x7000);
|
||||
RfuSetErrorStatus(2, 0x7000);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
@ -2607,12 +2607,12 @@ void sub_8011EF4(u8 taskId)
|
||||
|
||||
if (data[15] > 240)
|
||||
{
|
||||
sub_8011A64(2, 0x7000);
|
||||
RfuSetErrorStatus(2, 0x7000);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8011FC8(const u8 *src, u16 trainerId)
|
||||
void CreateTask_RfuReconnectWithParent(const u8 *src, u16 trainerId)
|
||||
{
|
||||
u8 taskId;
|
||||
s16 *data;
|
||||
@ -2626,7 +2626,7 @@ void sub_8011FC8(const u8 *src, u16 trainerId)
|
||||
|
||||
bool32 sub_801200C(s16 a1, struct GFtgtGname *structPtr)
|
||||
{
|
||||
if (sub_800F7DC()->activity == 0x45)
|
||||
if (GetHostRFUtgtGname()->activity == 0x45)
|
||||
{
|
||||
if (structPtr->activity != 0x45)
|
||||
return TRUE;
|
||||
@ -2663,7 +2663,7 @@ void sub_801209C(u8 taskId)
|
||||
|
||||
if (++gTasks[taskId].data[0] > 300)
|
||||
{
|
||||
sub_8011A64(2, 0x7000);
|
||||
RfuSetErrorStatus(2, 0x7000);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
@ -2683,7 +2683,7 @@ void sub_801209C(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8011A64(2, 0x7000);
|
||||
RfuSetErrorStatus(2, 0x7000);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
@ -625,7 +625,7 @@ void sub_800DD94(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3)
|
||||
data->unk_00.gameClear = FlagGet(FLAG_SYS_GAME_CLEAR);
|
||||
}
|
||||
|
||||
bool8 sub_800DE7C(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
|
||||
bool8 LinkRfu_GetNameIfCompatible(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
|
||||
{
|
||||
bool8 retVal;
|
||||
|
||||
@ -660,7 +660,7 @@ bool8 sub_800DE7C(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
bool8 sub_800DF34(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
|
||||
bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
|
||||
{
|
||||
bool8 retVal = FALSE;
|
||||
if (gRfuLinkStatus->partner[idx].serialNo == 0x7F7D)
|
||||
@ -677,7 +677,7 @@ bool8 sub_800DF34(struct GFtgtGname *buff1, u8 *buff2, u8 idx)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
void sub_800DF90(struct GFtgtGname *buff1, u8 *buff2)
|
||||
void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *buff1, u8 *buff2)
|
||||
{
|
||||
memcpy(buff1, &gUnknown_02022B14, 0xD);
|
||||
memcpy(buff2, gUnknown_02022B22, 8);
|
||||
@ -820,7 +820,7 @@ void sub_800E174(void)
|
||||
gMain.oamBuffer[125].paletteNum = sprite->oam.paletteNum;
|
||||
gMain.oamBuffer[125].tileNum = sprite->data[6] + sprite->anims[sprite->data[2]][sprite->data[4]].frame.imageValue;
|
||||
CpuCopy16(gMain.oamBuffer + 125, (struct OamData *)OAM + 125, sizeof(struct OamData));
|
||||
if (sub_8011A74() == 1)
|
||||
if (RfuGetErrorStatus() == 1)
|
||||
{
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
}
|
||||
@ -908,7 +908,7 @@ void RecordMixTrainerNames(void)
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_800E540(u16 id, u8 *name)
|
||||
bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
|
@ -2107,7 +2107,7 @@ void sub_819A27C(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
|
||||
BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality, 1), x, y, 32, 32);
|
||||
}
|
||||
|
||||
void sub_819A2BC(u8 palOffset, u8 palId)
|
||||
void ListMenuLoadStdPalAt(u8 palOffset, u8 palId)
|
||||
{
|
||||
const u16 *palette;
|
||||
|
||||
|
@ -548,12 +548,12 @@ u16 mevent_081445C0(u32 command)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_801B940(void)
|
||||
void ResetReceivedWonderCardFlag(void)
|
||||
{
|
||||
gUnknown_02022C70 = FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_801B94C(u16 a0)
|
||||
bool32 MEventHandleReceivedWonderCard(u16 a0)
|
||||
{
|
||||
gUnknown_02022C70 = FALSE;
|
||||
if (a0 == 0)
|
||||
|
@ -3527,7 +3527,7 @@ static void CursorCb_Register(u8 taskId)
|
||||
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
|
||||
u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
|
||||
|
||||
switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)sub_800F7DC(), species2, species, obedience))
|
||||
switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, obedience))
|
||||
{
|
||||
case CANT_REGISTER_MON:
|
||||
StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow);
|
||||
@ -3553,7 +3553,7 @@ static void CursorCb_Trade1(u8 taskId)
|
||||
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2);
|
||||
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
|
||||
u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
|
||||
u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)sub_800F7DC(), gUnknown_02022C38, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience);
|
||||
u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience);
|
||||
|
||||
if (stringId != UR_TRADE_MSG_NONE)
|
||||
{
|
||||
|
@ -400,7 +400,7 @@ static const struct PokemonJumpMons gPkmnJumpSpecies[] =
|
||||
{ .species = SPECIES_BAGON, .unk2 = 1, },
|
||||
};
|
||||
|
||||
void sub_802A9A8(u16 partyIndex, MainCallback callback)
|
||||
void StartPokemonJump(u16 partyIndex, MainCallback callback)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
|
@ -52,6 +52,7 @@
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/union_room.h"
|
||||
|
||||
#define Trade_SendData(ptr) (SendBlock(bitmask_all_link_players_but_self(), ptr->linkData, 20))
|
||||
|
||||
@ -234,7 +235,7 @@ static void CB2_SaveAndEndWirelessTrade(void);
|
||||
|
||||
static bool8 SendLinkData(const void *linkData, u32 size)
|
||||
{
|
||||
if (gUnknown_02022C2C == 29)
|
||||
if (gPlayerCurrActivity == ACTIVITY_29)
|
||||
{
|
||||
rfu_NI_setSendData(lman.acceptSlot_flag, 84, linkData, size);
|
||||
return TRUE;
|
||||
@ -252,7 +253,7 @@ static void sub_80771AC(u8 a0)
|
||||
|
||||
static bool32 sub_80771BC(void)
|
||||
{
|
||||
if (gUnknown_02022C2C == 29)
|
||||
if (gPlayerCurrActivity == ACTIVITY_29)
|
||||
{
|
||||
if (gRfuSlotStatusNI[sub_800E87C(lman.acceptSlot_flag)]->send.state == 0)
|
||||
return TRUE;
|
||||
@ -288,7 +289,7 @@ static void TradeResetReceivedFlag(u32 who)
|
||||
|
||||
static bool32 IsWirelessTrade(void)
|
||||
{
|
||||
if (gWirelessCommType && gUnknown_02022C2C == 29)
|
||||
if (gWirelessCommType && gPlayerCurrActivity == ACTIVITY_29)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
@ -393,7 +394,7 @@ static void CB2_CreateTradeMenu(void)
|
||||
|
||||
if (gWirelessCommType)
|
||||
{
|
||||
sub_800B488();
|
||||
SetWirelessCommType1();
|
||||
OpenLink();
|
||||
sub_8011BA4();
|
||||
}
|
||||
|
2628
src/union_room.c
2628
src/union_room.c
File diff suppressed because it is too large
Load Diff
@ -35,14 +35,14 @@ struct UnkStruct_3000DAC
|
||||
/*0x62*/ u8 filler_62[10];
|
||||
};
|
||||
|
||||
struct UnkStruct_2022C6C
|
||||
struct UnionRoomBattleWork
|
||||
{
|
||||
s16 a0;
|
||||
s16 textState;
|
||||
};
|
||||
|
||||
static struct UnkStruct_3000DAC * gUnknown_03000DAC;
|
||||
|
||||
EWRAM_DATA struct UnkStruct_2022C6C * gUnknown_02022C6C = NULL;
|
||||
EWRAM_DATA struct UnionRoomBattleWork * sWork = NULL;
|
||||
|
||||
void sub_801A43C(void);
|
||||
void sub_801A6C0(u8 taskId);
|
||||
@ -53,7 +53,7 @@ const u16 gWirelessInfoScreenPal[] = INCBIN_U16("graphics/interface/wireless_inf
|
||||
const u32 gWirelessInfoScreenGfx[] = INCBIN_U32("graphics/interface/wireless_info_screen.4bpp.lz");
|
||||
const u32 gWirelessInfoScreenTilemap[] = INCBIN_U32("graphics/interface/wireless_info_screen.bin.lz");
|
||||
|
||||
const struct BgTemplate gUnknown_082F0D34[] = {
|
||||
static const struct BgTemplate sBgTemplates[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 2,
|
||||
@ -67,7 +67,7 @@ const struct BgTemplate gUnknown_082F0D34[] = {
|
||||
}
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F0D3C[] = {
|
||||
const struct WindowTemplate sWindowTemplates[] = {
|
||||
{
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x03,
|
||||
@ -191,12 +191,12 @@ void sub_801A43C(void)
|
||||
gUnknown_03000DAC = AllocZeroed(sizeof(struct UnkStruct_3000DAC));
|
||||
SetVBlankCallback(NULL);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_082F0D34, ARRAY_COUNT(gUnknown_082F0D34));
|
||||
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
|
||||
SetBgTilemapBuffer(1, Alloc(0x800));
|
||||
SetBgTilemapBuffer(0, Alloc(0x800));
|
||||
DecompressAndLoadBgGfxUsingHeap(1, gWirelessInfoScreenGfx, 0, 0, 0);
|
||||
CopyToBgTilemapBuffer(1, gWirelessInfoScreenTilemap, 0, 0);
|
||||
InitWindows(gUnknown_082F0D3C);
|
||||
InitWindows(sWindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
ResetPaletteFade();
|
||||
ResetSpriteData();
|
||||
@ -205,7 +205,7 @@ void sub_801A43C(void)
|
||||
m4aSoundVSyncOn();
|
||||
SetVBlankCallback(sub_801A418);
|
||||
gUnknown_03000DAC->taskId = CreateTask(sub_801A6C0, 0);
|
||||
gUnknown_03000DAC->unk61 = sub_8013C40();
|
||||
gUnknown_03000DAC->unk61 = CreateTask_ListenToWireless();
|
||||
gUnknown_03000DAC->unk10[3] = 1;
|
||||
ChangeBgX(0, 0, 0);
|
||||
ChangeBgY(0, 0, 0);
|
||||
@ -369,7 +369,7 @@ static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 m
|
||||
u32 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1)
|
||||
{
|
||||
s32 i, j, r2;
|
||||
u32 result = a0->unk.field_0.activity;
|
||||
u32 result = a0->gname_uname.gname.activity;
|
||||
|
||||
for (i = 0; i < (unsigned)ARRAY_COUNT(gUnknown_082F0D70); i++)
|
||||
{
|
||||
@ -377,7 +377,7 @@ u32 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (a0->field_1A_0 != 1)
|
||||
if (a0->groupScheduledAnim != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -386,7 +386,7 @@ u32 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1)
|
||||
r2 = 0;
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
if (a0->unk.field_0.child_sprite_gender[j] != 0)
|
||||
if (a0->gname_uname.gname.child_sprite_gender[j] != 0)
|
||||
{
|
||||
r2++;
|
||||
}
|
||||
@ -450,7 +450,7 @@ bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 taskId)
|
||||
void sub_801AAD4(void)
|
||||
{
|
||||
s32 i;
|
||||
sub_8014210(10);
|
||||
StartUnionRoomBattle(10);
|
||||
for (i = 0; i < UNION_ROOM_PARTY_SIZE; i++)
|
||||
{
|
||||
gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1];
|
||||
@ -506,13 +506,13 @@ void sub_801AC40(void)
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_801AC54(void)
|
||||
void CB2_UnionRoomBattle(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0x0000);
|
||||
gUnknown_02022C6C = AllocZeroed(4);
|
||||
sWork = AllocZeroed(4);
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetTasks();
|
||||
@ -535,7 +535,7 @@ void sub_801AC54(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_CommStandbyAwaitingOtherPlayer, 0))
|
||||
if (sub_801ABDC(&sWork->textState, gText_CommStandbyAwaitingOtherPlayer, 0))
|
||||
{
|
||||
gMain.state++;
|
||||
}
|
||||
@ -604,7 +604,7 @@ void sub_801AC54(void)
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_RefusedBattle, 1))
|
||||
if (sub_801ABDC(&sWork->textState, gText_RefusedBattle, 1))
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
@ -616,7 +616,7 @@ void sub_801AC54(void)
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_BattleWasRefused, 1))
|
||||
if (sub_801ABDC(&sWork->textState, gText_BattleWasRefused, 1))
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
@ -588,7 +588,7 @@ const struct SpriteTemplate gUnknown_082F3244 = {
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
void sub_801DD98(void)
|
||||
void EnterUnionRoomChat(void)
|
||||
{
|
||||
gUnknown_02022C84 = Alloc(sizeof(*gUnknown_02022C84));
|
||||
sub_801DDD0(gUnknown_02022C84);
|
||||
|
@ -17,28 +17,46 @@ static u8 sub_8019DF4(void);
|
||||
static u32 sub_8019F8C(u32 playerIdx, u32 arg1);
|
||||
static void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2);
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082F072C[][10] = {
|
||||
{0x21, 0x2c, 0x1f, 0x23, 0x25, 0x24, 0x41, 0x42},
|
||||
{0x22, 0x28, 0x20, 0x2f, 0x2f, 0x0e, 0x14, 0x2d}
|
||||
static const u8 sUnionRoomObjGfxIds[GENDER_COUNT][10] = {
|
||||
[MALE] = {
|
||||
OBJ_EVENT_GFX_MAN_3,
|
||||
OBJ_EVENT_GFX_BLACK_BELT,
|
||||
OBJ_EVENT_GFX_CAMPER,
|
||||
OBJ_EVENT_GFX_YOUNGSTER,
|
||||
OBJ_EVENT_GFX_PSYCHIC_M,
|
||||
OBJ_EVENT_GFX_BUG_CATCHER,
|
||||
OBJ_EVENT_GFX_MAN_4,
|
||||
OBJ_EVENT_GFX_MAN_5
|
||||
},
|
||||
[FEMALE] = {
|
||||
OBJ_EVENT_GFX_WOMAN_5,
|
||||
OBJ_EVENT_GFX_HEX_MANIAC,
|
||||
OBJ_EVENT_GFX_PICNICKER,
|
||||
OBJ_EVENT_GFX_LASS,
|
||||
OBJ_EVENT_GFX_LASS,
|
||||
OBJ_EVENT_GFX_GIRL_3,
|
||||
OBJ_EVENT_GFX_WOMAN_2,
|
||||
OBJ_EVENT_GFX_BEAUTY
|
||||
}
|
||||
};
|
||||
|
||||
static const s16 gUnknown_082F0740[][2] = {
|
||||
{0x4, 0x6},
|
||||
{0xd, 0x8},
|
||||
{0xa, 0x6},
|
||||
{0x1, 0x8},
|
||||
{0xd, 0x4},
|
||||
{0x7, 0x4},
|
||||
{0x1, 0x4},
|
||||
{0x7, 0x8}
|
||||
static const s16 sUnionPartnerCoords[][2] = {
|
||||
{ 4, 6},
|
||||
{13, 8},
|
||||
{10, 6},
|
||||
{ 1, 8},
|
||||
{13, 4},
|
||||
{ 7, 4},
|
||||
{ 1, 4},
|
||||
{ 7, 8}
|
||||
};
|
||||
|
||||
static const s8 gUnknown_082F0760[][2] = {
|
||||
{ 0, 0},
|
||||
{ 1, 0},
|
||||
{ 0, -1},
|
||||
{-1, 0},
|
||||
{ 0, 1}
|
||||
static const s8 sFacingDirectionOffsets[][2] = {
|
||||
[DIR_NONE] = { 0, 0},
|
||||
[DIR_SOUTH] = { 1, 0},
|
||||
[DIR_NORTH] = { 0, -1},
|
||||
[DIR_WEST] = {-1, 0},
|
||||
[DIR_EAST] = { 0, 1}
|
||||
};
|
||||
|
||||
static const u8 gUnknown_082F076A[] = {
|
||||
@ -79,22 +97,22 @@ static bool32 is_walking_or_running(void)
|
||||
|
||||
static u8 sub_8019978(u32 a0, u32 a1)
|
||||
{
|
||||
return gUnknown_082F072C[a0][a1 % 8];
|
||||
return sUnionRoomObjGfxIds[a0][a1 % 8];
|
||||
}
|
||||
|
||||
static void sub_8019990(u32 a0, u32 a1, s32 * a2, s32 * a3)
|
||||
{
|
||||
*a2 = gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7;
|
||||
*a3 = gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7;
|
||||
*a2 = sUnionPartnerCoords[a0][0] + sFacingDirectionOffsets[a1][0] + 7;
|
||||
*a3 = sUnionPartnerCoords[a0][1] + sFacingDirectionOffsets[a1][1] + 7;
|
||||
}
|
||||
|
||||
static bool32 sub_80199E0(u32 a0, u32 a1, s32 a2, s32 a3)
|
||||
{
|
||||
if (gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7 != a2)
|
||||
if (sUnionPartnerCoords[a0][0] + sFacingDirectionOffsets[a1][0] + 7 != a2)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else if (gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7 != a3)
|
||||
else if (sUnionPartnerCoords[a0][1] + sFacingDirectionOffsets[a1][1] + 7 != a3)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@ -384,19 +402,19 @@ void sub_8019E3C(void)
|
||||
sub_8019E20();
|
||||
}
|
||||
|
||||
void sub_8019E70(u8 * sp8, s32 r9)
|
||||
void CreateGroupMemberObjectsInvisible(u8 * sp8, s32 r9)
|
||||
{
|
||||
s32 r7;
|
||||
|
||||
for (r7 = 0; r7 < 5; r7++)
|
||||
{
|
||||
s32 r5 = 5 * r9 + r7;
|
||||
sp8[r5] = sprite_new(OBJ_EVENT_GFX_MAN_4, r5 - 0x38, gUnknown_082F0740[r9][0] + gUnknown_082F0760[r7][0], gUnknown_082F0740[r9][1] + gUnknown_082F0760[r7][1], 3, 1);
|
||||
sp8[r5] = sprite_new(OBJ_EVENT_GFX_MAN_4, r5 - 0x38, sUnionPartnerCoords[r9][0] + sFacingDirectionOffsets[r7][0], sUnionPartnerCoords[r9][1] + sFacingDirectionOffsets[r7][1], 3, 1);
|
||||
sub_8097C44(r5 - 0x38, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8019F04(u8 * r5)
|
||||
void DestroyGroupMemberObjects(u8 * r5)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 40; i++)
|
||||
@ -526,30 +544,30 @@ static void sub_801A214(u32 r5, struct GFtgtGname * unused)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801A234(struct UnkStruct_URoom *r0)
|
||||
static void sub_801A234(struct WirelessLink_URoom *r0)
|
||||
{
|
||||
s32 i;
|
||||
struct UnkStruct_x20 * r4;
|
||||
gUnknown_02022C68 = 0;
|
||||
for (i = 0, r4 = r0->field_0->arr; i < 8; i++)
|
||||
{
|
||||
if (r4[i].field_1A_0 == 1)
|
||||
if (r4[i].groupScheduledAnim == 1)
|
||||
{
|
||||
sub_801A16C(i, &r4[i].unk.field_0);
|
||||
sub_801A16C(i, &r4[i].gname_uname.gname);
|
||||
}
|
||||
else if (r4[i].field_1A_0 == 2)
|
||||
else if (r4[i].groupScheduledAnim == 2)
|
||||
{
|
||||
sub_801A214(i, &r4[i].unk.field_0);
|
||||
sub_801A214(i, &r4[i].gname_uname.gname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801A274(struct UnkStruct_URoom *unused)
|
||||
void ScheduleUnionRoomPlayerRefresh(struct WirelessLink_URoom *unused)
|
||||
{
|
||||
gUnknown_02022C68 = 300;
|
||||
}
|
||||
|
||||
void sub_801A284(struct UnkStruct_URoom *r2)
|
||||
void HandleUnionRoomPlayerRefresh(struct WirelessLink_URoom *r2)
|
||||
{
|
||||
if (++gUnknown_02022C68 > 300)
|
||||
{
|
||||
@ -557,7 +575,7 @@ void sub_801A284(struct UnkStruct_URoom *r2)
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
||||
bool32 RfuUnionTool_GetGroupAndMemberInFrontOfPlayer(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
||||
{
|
||||
s16 x, y;
|
||||
s32 i, j;
|
||||
@ -572,11 +590,11 @@ bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
||||
for (j = 0; j < 5; j++)
|
||||
{
|
||||
s32 r3 = 5 * i + j;
|
||||
if (x != gUnknown_082F0740[i][0] + gUnknown_082F0760[j][0] + 7)
|
||||
if (x != sUnionPartnerCoords[i][0] + sFacingDirectionOffsets[j][0] + 7)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (y != gUnknown_082F0740[i][1] + gUnknown_082F0760[j][1] + 7)
|
||||
if (y != sUnionPartnerCoords[i][1] + sFacingDirectionOffsets[j][1] + 7)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -588,7 +606,7 @@ bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (r4[i].field_1A_0 != 1)
|
||||
if (r4[i].groupScheduledAnim != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -606,7 +624,7 @@ static void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2)
|
||||
sub_8097B78(5 * arg1 - 0x38 + arg0, arg2);
|
||||
}
|
||||
|
||||
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2)
|
||||
void UpdateUnionGroupMemberFacing(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2)
|
||||
{
|
||||
return sub_801A3B0(arg0, arg1, sub_8019F64(arg0, arg1, &arg2->arr[arg1].unk.field_0));
|
||||
return sub_801A3B0(arg0, arg1, sub_8019F64(arg0, arg1, &arg2->arr[arg1].gname_uname.gname));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user