through sub_8117A0C
This commit is contained in:
+14
-14
@@ -773,10 +773,10 @@ _08080D44:
|
||||
_08080D50: .4byte sub_8080F78
|
||||
_08080D54:
|
||||
bl GetLinkPlayerCount_2
|
||||
ldr r4, _08080D7C @ =gUnknown_3005030
|
||||
ldr r4, _08080D7C @ =gFieldLinkPlayerCount
|
||||
strb r0, [r4]
|
||||
bl GetMultiplayerId
|
||||
ldr r1, _08080D80 @ =gUnknown_300502C
|
||||
ldr r1, _08080D80 @ =gLocalLinkPlayerId
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4]
|
||||
bl sub_800A900
|
||||
@@ -790,8 +790,8 @@ _08080D74:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08080D7C: .4byte gUnknown_3005030
|
||||
_08080D80: .4byte gUnknown_300502C
|
||||
_08080D7C: .4byte gFieldLinkPlayerCount
|
||||
_08080D80: .4byte gLocalLinkPlayerId
|
||||
_08080D84: .4byte gBlockSendBuffer
|
||||
_08080D88: .4byte sub_8080E6C
|
||||
thumb_func_end sub_8080CDC
|
||||
@@ -876,10 +876,10 @@ _08080E18: .4byte gTasks
|
||||
_08080E1C: .4byte sub_8080F78
|
||||
_08080E20:
|
||||
bl GetLinkPlayerCount_2
|
||||
ldr r4, _08080E58 @ =gUnknown_3005030
|
||||
ldr r4, _08080E58 @ =gFieldLinkPlayerCount
|
||||
strb r0, [r4]
|
||||
bl GetMultiplayerId
|
||||
ldr r1, _08080E5C @ =gUnknown_300502C
|
||||
ldr r1, _08080E5C @ =gLocalLinkPlayerId
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4]
|
||||
bl sub_800A900
|
||||
@@ -899,8 +899,8 @@ _08080E50:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08080E58: .4byte gUnknown_3005030
|
||||
_08080E5C: .4byte gUnknown_300502C
|
||||
_08080E58: .4byte gFieldLinkPlayerCount
|
||||
_08080E5C: .4byte gLocalLinkPlayerId
|
||||
_08080E60: .4byte gBlockSendBuffer
|
||||
_08080E64: .4byte gTasks
|
||||
_08080E68: .4byte sub_8080E6C
|
||||
@@ -1536,7 +1536,7 @@ _08081344:
|
||||
_0808135C:
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl fade_screen
|
||||
bl FadeScreen
|
||||
ldr r1, _08081374 @ =gLinkType
|
||||
ldr r2, _08081378 @ =0x00002211
|
||||
adds r0, r2, 0
|
||||
@@ -1693,7 +1693,7 @@ _08081480:
|
||||
_080814A0:
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl fade_screen
|
||||
bl FadeScreen
|
||||
ldr r0, _080814BC @ =gLinkType
|
||||
ldr r2, _080814C0 @ =0x00002211
|
||||
adds r1, r2, 0
|
||||
@@ -1931,7 +1931,7 @@ sub_8081668: @ 8081668
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x5
|
||||
beq _0808170A
|
||||
ldr r0, _080816BC @ =gUnknown_300502C
|
||||
ldr r0, _080816BC @ =gLocalLinkPlayerId
|
||||
ldrb r0, [r0]
|
||||
movs r5, 0x1
|
||||
eors r0, r5
|
||||
@@ -1951,7 +1951,7 @@ sub_8081668: @ 8081668
|
||||
_080816B0: .4byte gBattleTypeFlags
|
||||
_080816B4: .4byte 0x0000ffdf
|
||||
_080816B8: .4byte gSpecialVar_0x8004
|
||||
_080816BC: .4byte gUnknown_300502C
|
||||
_080816BC: .4byte gLocalLinkPlayerId
|
||||
_080816C0: .4byte gWirelessCommType
|
||||
_080816C4: .4byte gBattleOutcome
|
||||
_080816C8:
|
||||
@@ -2179,7 +2179,7 @@ _08081882:
|
||||
bl ScriptContext2_Enable
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl fade_screen
|
||||
bl FadeScreen
|
||||
bl ClearLinkCallback_2
|
||||
b _080818B8
|
||||
_08081894:
|
||||
@@ -2255,7 +2255,7 @@ _0808191A:
|
||||
bl ScriptContext2_Enable
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl fade_screen
|
||||
bl FadeScreen
|
||||
bl Rfu_set_zero
|
||||
b _08081950
|
||||
_0808192C:
|
||||
|
||||
+3
-3
@@ -1584,8 +1584,8 @@ _0807A810: .4byte 0x000006c6
|
||||
_0807A814: .4byte 0x000006c2
|
||||
thumb_func_end sub_807A7C4
|
||||
|
||||
thumb_func_start fade_screen
|
||||
fade_screen: @ 807A818
|
||||
thumb_func_start FadeScreen
|
||||
FadeScreen: @ 807A818
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
@@ -1735,7 +1735,7 @@ _0807A934: .4byte gUnknown_2037F34
|
||||
_0807A938: .4byte 0x000006c6
|
||||
_0807A93C: .4byte 0x000006ca
|
||||
_0807A940: .4byte 0x000006cb
|
||||
thumb_func_end fade_screen
|
||||
thumb_func_end FadeScreen
|
||||
|
||||
thumb_func_start FieldWeather_StartFadingOutCreditsMap
|
||||
FieldWeather_StartFadingOutCreditsMap: @ 807A944
|
||||
|
||||
+23
-23
@@ -4757,7 +4757,7 @@ _0805713C: .4byte gPlayerAvatar
|
||||
thumb_func_start sub_8057140
|
||||
sub_8057140: @ 8057140
|
||||
push {lr}
|
||||
ldr r0, _08057158 @ =gUnknown_300502C
|
||||
ldr r0, _08057158 @ =gLocalLinkPlayerId
|
||||
ldrb r0, [r0]
|
||||
bl sub_8058504
|
||||
lsls r0, 24
|
||||
@@ -4766,13 +4766,13 @@ sub_8057140: @ 8057140
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08057158: .4byte gUnknown_300502C
|
||||
_08057158: .4byte gLocalLinkPlayerId
|
||||
thumb_func_end sub_8057140
|
||||
|
||||
thumb_func_start sub_805715C
|
||||
sub_805715C: @ 805715C
|
||||
push {lr}
|
||||
ldr r0, _08057174 @ =gUnknown_300502C
|
||||
ldr r0, _08057174 @ =gLocalLinkPlayerId
|
||||
ldrb r0, [r0]
|
||||
bl sub_8058504
|
||||
lsls r0, 24
|
||||
@@ -4781,7 +4781,7 @@ sub_805715C: @ 805715C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08057174: .4byte gUnknown_300502C
|
||||
_08057174: .4byte gLocalLinkPlayerId
|
||||
thumb_func_end sub_805715C
|
||||
|
||||
thumb_func_start sub_8057178
|
||||
@@ -4794,7 +4794,7 @@ sub_8057178: @ 8057178
|
||||
adds r1, r4, 0
|
||||
bl GetCameraFocusCoords
|
||||
mov r2, sp
|
||||
ldr r0, _080571A4 @ =gUnknown_300502C
|
||||
ldr r0, _080571A4 @ =gLocalLinkPlayerId
|
||||
ldrb r1, [r0]
|
||||
ldrh r0, [r2]
|
||||
adds r0, r1
|
||||
@@ -4807,7 +4807,7 @@ sub_8057178: @ 8057178
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080571A4: .4byte gUnknown_300502C
|
||||
_080571A4: .4byte gLocalLinkPlayerId
|
||||
thumb_func_end sub_8057178
|
||||
|
||||
thumb_func_start sub_80571A8
|
||||
@@ -4823,13 +4823,13 @@ sub_80571A8: @ 80571A8
|
||||
bl GetCameraFocusCoords
|
||||
mov r3, sp
|
||||
mov r2, sp
|
||||
ldr r0, _08057224 @ =gUnknown_300502C
|
||||
ldr r0, _08057224 @ =gLocalLinkPlayerId
|
||||
ldrb r1, [r0]
|
||||
ldrh r0, [r2]
|
||||
subs r0, r1
|
||||
strh r0, [r3]
|
||||
movs r6, 0
|
||||
ldr r0, _08057228 @ =gUnknown_3005030
|
||||
ldr r0, _08057228 @ =gFieldLinkPlayerCount
|
||||
mov r8, r4
|
||||
ldrb r0, [r0]
|
||||
cmp r6, r0
|
||||
@@ -4859,7 +4859,7 @@ _080571D8:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
ldr r0, _08057228 @ =gUnknown_3005030
|
||||
ldr r0, _08057228 @ =gFieldLinkPlayerCount
|
||||
ldrb r0, [r0]
|
||||
cmp r6, r0
|
||||
bcc _080571D8
|
||||
@@ -4872,8 +4872,8 @@ _08057212:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08057224: .4byte gUnknown_300502C
|
||||
_08057228: .4byte gUnknown_3005030
|
||||
_08057224: .4byte gLocalLinkPlayerId
|
||||
_08057228: .4byte gFieldLinkPlayerCount
|
||||
_0805722C: .4byte gLinkPlayers
|
||||
thumb_func_end sub_80571A8
|
||||
|
||||
@@ -4881,7 +4881,7 @@ _0805722C: .4byte gLinkPlayers
|
||||
sub_8057230: @ 8057230
|
||||
push {r4,r5,lr}
|
||||
movs r4, 0
|
||||
ldr r0, _08057264 @ =gUnknown_3005030
|
||||
ldr r0, _08057264 @ =gFieldLinkPlayerCount
|
||||
ldrb r0, [r0]
|
||||
cmp r4, r0
|
||||
bcs _0805725E
|
||||
@@ -4898,7 +4898,7 @@ _0805723E:
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
ldr r0, _08057264 @ =gUnknown_3005030
|
||||
ldr r0, _08057264 @ =gFieldLinkPlayerCount
|
||||
ldrb r0, [r0]
|
||||
cmp r4, r0
|
||||
bcc _0805723E
|
||||
@@ -4907,7 +4907,7 @@ _0805725E:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08057264: .4byte gUnknown_3005030
|
||||
_08057264: .4byte gFieldLinkPlayerCount
|
||||
_08057268: .4byte gLinkPlayers
|
||||
thumb_func_end sub_8057230
|
||||
|
||||
@@ -5647,7 +5647,7 @@ c1_link_related: @ 8057884
|
||||
cmp r0, 0
|
||||
bne _080578C0
|
||||
_0805789E:
|
||||
ldr r0, _080578CC @ =gUnknown_300502C
|
||||
ldr r0, _080578CC @ =gLocalLinkPlayerId
|
||||
ldrb r4, [r0]
|
||||
ldr r0, _080578D0 @ =gLinkPartnersHeldKeys
|
||||
adds r1, r4, 0
|
||||
@@ -5666,7 +5666,7 @@ _080578C0:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080578C8: .4byte gWirelessCommType
|
||||
_080578CC: .4byte gUnknown_300502C
|
||||
_080578CC: .4byte gLocalLinkPlayerId
|
||||
_080578D0: .4byte gLinkPartnersHeldKeys
|
||||
_080578D4: .4byte gUnknown_3000E84
|
||||
thumb_func_end c1_link_related
|
||||
@@ -5753,7 +5753,7 @@ sub_8057954: @ 8057954
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
lsrs r3, r0, 16
|
||||
ldr r0, _08057974 @ =gUnknown_3005030
|
||||
ldr r0, _08057974 @ =gFieldLinkPlayerCount
|
||||
ldrb r2, [r0]
|
||||
movs r1, 0
|
||||
cmp r1, r2
|
||||
@@ -5767,7 +5767,7 @@ _08057966:
|
||||
movs r0, 0
|
||||
b _08057984
|
||||
.align 2, 0
|
||||
_08057974: .4byte gUnknown_3005030
|
||||
_08057974: .4byte gFieldLinkPlayerCount
|
||||
_08057978: .4byte gUnknown_3000E80
|
||||
_0805797C:
|
||||
adds r1, 0x1
|
||||
@@ -5786,7 +5786,7 @@ sub_805798C: @ 805798C
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
lsrs r3, r0, 16
|
||||
ldr r0, _080579AC @ =gUnknown_3005030
|
||||
ldr r0, _080579AC @ =gFieldLinkPlayerCount
|
||||
ldrb r2, [r0]
|
||||
movs r1, 0
|
||||
cmp r1, r2
|
||||
@@ -5800,7 +5800,7 @@ _0805799E:
|
||||
movs r0, 0x1
|
||||
b _080579BC
|
||||
.align 2, 0
|
||||
_080579AC: .4byte gUnknown_3005030
|
||||
_080579AC: .4byte gFieldLinkPlayerCount
|
||||
_080579B0: .4byte gUnknown_3000E80
|
||||
_080579B4:
|
||||
adds r1, 0x1
|
||||
@@ -6499,7 +6499,7 @@ sub_8057EC0: @ 8057EC0
|
||||
cmp r2, r1
|
||||
bne _08057EE6
|
||||
ldr r1, _08057F08 @ =gUnknown_3000E80
|
||||
ldr r0, _08057F0C @ =gUnknown_300502C
|
||||
ldr r0, _08057F0C @ =gLocalLinkPlayerId
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
@@ -6511,7 +6511,7 @@ _08057EE6:
|
||||
cmp r1, r0
|
||||
bne _08057F14
|
||||
ldr r1, _08057F08 @ =gUnknown_3000E80
|
||||
ldr r0, _08057F0C @ =gUnknown_300502C
|
||||
ldr r0, _08057F0C @ =gLocalLinkPlayerId
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
@@ -6524,7 +6524,7 @@ _08057EFC:
|
||||
_08057F00: .4byte gUnknown_3000E84
|
||||
_08057F04: .4byte sub_8057E1C
|
||||
_08057F08: .4byte gUnknown_3000E80
|
||||
_08057F0C: .4byte gUnknown_300502C
|
||||
_08057F0C: .4byte gLocalLinkPlayerId
|
||||
_08057F10: .4byte sub_8057E10
|
||||
_08057F14:
|
||||
movs r0, 0x82
|
||||
|
||||
@@ -1619,7 +1619,7 @@ _0808C594: .4byte gUnknown_8418690
|
||||
_0808C598:
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl fade_screen
|
||||
bl FadeScreen
|
||||
movs r0, 0x4
|
||||
strh r0, [r5, 0x8]
|
||||
b _0808C69C
|
||||
|
||||
-2066
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_BERRY_CRUSH_H
|
||||
#define GUARD_BERRY_CRUSH_H
|
||||
|
||||
void sub_814B754(MainCallback callback);
|
||||
|
||||
#endif //GUARD_BERRY_CRUSH_H
|
||||
@@ -10,5 +10,6 @@
|
||||
// Exported ROM declarations
|
||||
void sub_8081A90(u8 taskId);
|
||||
u8 sub_8081150(void);
|
||||
void sub_8081668(void);
|
||||
|
||||
#endif //GUARD_CABLE_CLUB_H
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_DODRIO_BERRY_PICKING_H
|
||||
#define GUARD_DODRIO_BERRY_PICKING_H
|
||||
|
||||
void sub_81507FC(u16 species, MainCallback callback);
|
||||
|
||||
#endif //GUARD_DODRIO_BERRY_PICKING_H
|
||||
@@ -7,5 +7,6 @@ extern u32 gUnknown_3005078;
|
||||
|
||||
void RestartWildEncounterImmunitySteps(void);
|
||||
void ClearPoisonStepCounter(void);
|
||||
void SetCableClubWarp(void);
|
||||
|
||||
#endif //GUARD_FIELD_CONTROL_AVATAR_H
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void fade_screen(u8, s8);
|
||||
void FadeScreen(u8, s8);
|
||||
|
||||
void SetSav1Weather(u32);
|
||||
u8 GetSav1Weather(void);
|
||||
|
||||
@@ -278,5 +278,6 @@ bool8 HandleLinkConnection(void);
|
||||
void sub_800B0B4(void);
|
||||
void sub_800B110(u32 who);
|
||||
void sub_800ACBC(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
|
||||
u8 sub_800A8D4(void);
|
||||
|
||||
#endif // GUARD_LINK_H
|
||||
|
||||
+7
-1
@@ -235,7 +235,7 @@ bool8 IsLinkRfuTaskFinished(void);
|
||||
void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u8);
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u8);
|
||||
void MEvent_CreateTask_Leader(u8);
|
||||
void MEvent_CreateTask_Leader(u32 arg0);
|
||||
void sub_80F9E2C(void * data);
|
||||
u8 sub_8116DE0(void);
|
||||
void sub_80FBB4C(void);
|
||||
@@ -309,6 +309,12 @@ void sub_80FBD4C(const u8 *ptr, u16 a1);
|
||||
void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *gname, u8 *uname);
|
||||
void sub_80FBBD8(void);
|
||||
void sub_80FA6BC(void);
|
||||
void sub_80FBF54(const u8 *src, u16 trainerId);
|
||||
void sub_80FB008(u8 a0, u32 a1, u32 a2);
|
||||
void RecordMixTrainerNames(void);
|
||||
void sub_80F8CFC();
|
||||
void sub_80F8D14();
|
||||
void sub_80FAF74(bool32 a0, bool32 a1);
|
||||
|
||||
#include "mevent_server.h"
|
||||
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
|
||||
|
||||
@@ -70,5 +70,8 @@ void sub_8143D24(void);
|
||||
u16 sub_81445C0(u32 command);
|
||||
void sub_8144714(u32 a0, u32 a1);
|
||||
u16 *GetMEventProfileECWordsMaybe(void);
|
||||
void sub_81446C4(void);
|
||||
bool32 sub_81446D0(u16 a0);
|
||||
u16 GetWonderCardFlagID(void);
|
||||
|
||||
#endif //GUARD_MEVENT_H
|
||||
|
||||
@@ -7,5 +7,8 @@ void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void);
|
||||
void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32);
|
||||
void c2_mystery_gift(void);
|
||||
void c2_mystery_gift_e_reader_run(void);
|
||||
s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str);
|
||||
void MG_DrawTextBorder(u8 windowId);
|
||||
u16 GetMysteryGiftBaseBlock(void);
|
||||
|
||||
#endif //GUARD_MYSTERY_GIFT_MENU_H
|
||||
|
||||
+2
-1
@@ -62,7 +62,8 @@ extern struct WarpData gUnknown_2031DB4;
|
||||
extern struct WarpData gUnknown_2031DBC;
|
||||
|
||||
extern u8 gUnknown_2031DE0;
|
||||
extern u8 gUnknown_300502C;
|
||||
extern u8 gFieldLinkPlayerCount;
|
||||
extern u8 gLocalLinkPlayerId;
|
||||
|
||||
void IncrementGameStat(u8 index);
|
||||
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
|
||||
void ResetPokeJumpResults(void);
|
||||
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
|
||||
void sub_8147AA8(u16 species, MainCallback callback);
|
||||
|
||||
#endif // GUARD_POKEMON_JUMP_H
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#define POKECENTER_SAVEWARP (1 << 1)
|
||||
#define LOBBY_SAVEWARP (1 << 2)
|
||||
#define UNK_SPECIAL_SAVE_WARP_FLAG_3 (1 << 3)
|
||||
#define CHAMPION_SAVEWARP (1 << 7)
|
||||
|
||||
void TrySetMapSaveWarpStatus(void);
|
||||
bool32 IsCurMapPokeCenter(void);
|
||||
|
||||
@@ -134,7 +134,7 @@ union UnkUnion_Main
|
||||
struct UnkStruct_URoom *uRoom;
|
||||
};
|
||||
|
||||
struct TradeUnkStruct
|
||||
struct UnionRoomTrade
|
||||
{
|
||||
u16 field_0;
|
||||
u16 type;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define GUARD_UNION_ROOM_CHAT_H
|
||||
|
||||
void sub_801DD98(void);
|
||||
void sub_8128420(void);
|
||||
void copy_strings_to_sav1(void);
|
||||
|
||||
#endif // GUARD_UNION_ROOM_CHAT_H
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
||||
#define GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
||||
|
||||
void sub_811C1C8(void);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
||||
+2
-2
@@ -920,7 +920,7 @@ static s32 RollCredits(void)
|
||||
case CREDITSSCRCMD_MON:
|
||||
sCreditsMgr->mainseqno = CREDITSSCENE_MON_DESTROY_ASSETS;
|
||||
sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
break;
|
||||
case CREDITSSCRCMD_THEENDGFX:
|
||||
sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS;
|
||||
@@ -1342,7 +1342,7 @@ static s32 RollCredits(void)
|
||||
"\tstrb r0, [r2, 0x9]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tbl fade_screen\n"
|
||||
"\tbl FadeScreen\n"
|
||||
"\tb _080F3E94\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080F3E50: .4byte sCreditsMgr\n"
|
||||
|
||||
+11
-11
@@ -56,12 +56,12 @@ void pal_fill_for_maplights(void)
|
||||
{
|
||||
case 0:
|
||||
palette_bg_faded_fill_black();
|
||||
fade_screen(0, 0);
|
||||
FadeScreen(0, 0);
|
||||
palette_bg_faded_fill_black();
|
||||
break;
|
||||
case 1:
|
||||
palette_bg_faded_fill_white();
|
||||
fade_screen(2, 0);
|
||||
FadeScreen(2, 0);
|
||||
palette_bg_faded_fill_white();
|
||||
break;
|
||||
}
|
||||
@@ -73,12 +73,12 @@ static void sub_807DBAC(void)
|
||||
{
|
||||
case 0:
|
||||
palette_bg_faded_fill_black();
|
||||
fade_screen(0, 3);
|
||||
FadeScreen(0, 3);
|
||||
palette_bg_faded_fill_black();
|
||||
break;
|
||||
case 1:
|
||||
palette_bg_faded_fill_white();
|
||||
fade_screen(2, 3);
|
||||
FadeScreen(2, 3);
|
||||
palette_bg_faded_fill_white();
|
||||
break;
|
||||
}
|
||||
@@ -87,7 +87,7 @@ static void sub_807DBAC(void)
|
||||
void sub_807DC00(void)
|
||||
{
|
||||
palette_bg_faded_fill_black();
|
||||
fade_screen(0, 0);
|
||||
FadeScreen(0, 0);
|
||||
palette_bg_faded_fill_black();
|
||||
}
|
||||
|
||||
@@ -95,16 +95,16 @@ void sub_807DC18(void)
|
||||
{
|
||||
const struct MapHeader *header = warp1_get_mapheader();
|
||||
if (header->regionMapSectionId != gMapHeader.regionMapSectionId && sub_80F8110(header->regionMapSectionId, FALSE))
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
else
|
||||
{
|
||||
switch (sub_80C9D7C(GetCurrentMapType(), header->mapType))
|
||||
{
|
||||
case 0:
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
break;
|
||||
case 1:
|
||||
fade_screen(3, 0);
|
||||
FadeScreen(3, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -115,10 +115,10 @@ static void sub_807DC70(void)
|
||||
switch (sub_80C9D7C(GetCurrentMapType(), warp1_get_mapheader()->mapType))
|
||||
{
|
||||
case 0:
|
||||
fade_screen(1, 3);
|
||||
FadeScreen(1, 3);
|
||||
break;
|
||||
case 1:
|
||||
fade_screen(3, 3);
|
||||
FadeScreen(3, 3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -654,7 +654,7 @@ static void sub_807E678(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
ClearLinkCallback_2();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
sub_8055F88();
|
||||
PlaySE(SE_KAIDAN);
|
||||
data[0]++;
|
||||
|
||||
+5
-5
@@ -458,7 +458,7 @@ void FieldUseFunc_TmCase(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_InitTMCaseFromField;
|
||||
}
|
||||
}
|
||||
@@ -489,7 +489,7 @@ void FieldUseFunc_BerryPouch(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_InitBerryPouchFromField;
|
||||
}
|
||||
}
|
||||
@@ -532,7 +532,7 @@ void FieldUseFunc_TeachyTv(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_InitTeachyTvFromField;
|
||||
}
|
||||
}
|
||||
@@ -662,7 +662,7 @@ void FieldUseFunc_TownMap(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = sub_80A1CC0;
|
||||
}
|
||||
}
|
||||
@@ -694,7 +694,7 @@ void FieldUseFunc_FameChecker(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = sub_80A1D68;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -652,7 +652,7 @@ void BlankMEventBuffer2(void)
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.crc = 0;
|
||||
}
|
||||
|
||||
u16 sub_81440E8(void)
|
||||
u16 GetWonderCardFlagID(void)
|
||||
{
|
||||
if (ValidateReceivedWonderCard())
|
||||
return gSaveBlock1Ptr->mysteryEventBuffers.mecard.data.unk_00;
|
||||
@@ -674,7 +674,7 @@ bool32 sub_8144124(u16 a0)
|
||||
|
||||
bool32 CheckReceivedGiftFromWonderCard(void)
|
||||
{
|
||||
u16 value = sub_81440E8();
|
||||
u16 value = GetWonderCardFlagID();
|
||||
if (!sub_8144124(value))
|
||||
return FALSE;
|
||||
if (FlagGet(gUnknown_8466F00[value - 1000]) == TRUE)
|
||||
|
||||
+4
-4
@@ -331,7 +331,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
|
||||
static void Task_PlayerPcDepositItem(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_DepositItem_WaitFadeAndGoToBag;
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
}
|
||||
|
||||
static void Task_ReturnToItemStorageSubmenu(u8 taskId)
|
||||
@@ -394,7 +394,7 @@ static void Task_WithdrawItemBeginFade(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_WithdrawItem_WaitFadeAndGoToItemStorage;
|
||||
ItemPc_SetInitializedFlag(0);
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
}
|
||||
|
||||
static void Task_PlayerPcCancel(u8 taskId)
|
||||
@@ -556,7 +556,7 @@ static void Task_MailSubmenuHandleInput(u8 taskId)
|
||||
|
||||
static void Task_PlayerPcReadMail(u8 taskId)
|
||||
{
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_WaitFadeAndReadSelectedMail;
|
||||
}
|
||||
|
||||
@@ -663,7 +663,7 @@ static void Task_PlayerPcGiveMailToMon(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_WaitFadeAndGoToPartyMenu;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1049,7 +1049,7 @@ static void sub_811175C(u8 sceneNum, struct UnkStruct_203AE98 * a1)
|
||||
|
||||
static void sub_81118F4(s8 a0)
|
||||
{
|
||||
fade_screen(1, a0);
|
||||
FadeScreen(1, a0);
|
||||
sQuestLogCB = QuestLog_AdvancePlayhead;
|
||||
}
|
||||
|
||||
@@ -1309,7 +1309,7 @@ static void QuestLog_CloseTextWindow(void)
|
||||
|
||||
static void QuestLog_SkipToEndOfPlayback(s8 a0)
|
||||
{
|
||||
fade_screen(1, a0);
|
||||
FadeScreen(1, a0);
|
||||
sQuestLogCB = QuestLog_WaitFadeAndCancelPlayback;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -630,7 +630,7 @@ static bool8 IsPaletteNotActive(void)
|
||||
|
||||
bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
|
||||
{
|
||||
fade_screen(ScriptReadByte(ctx), 0);
|
||||
FadeScreen(ScriptReadByte(ctx), 0);
|
||||
SetupNativeScript(ctx, IsPaletteNotActive);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -640,7 +640,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
|
||||
u8 mode = ScriptReadByte(ctx);
|
||||
u8 speed = ScriptReadByte(ctx);
|
||||
|
||||
fade_screen(mode, speed);
|
||||
FadeScreen(mode, speed);
|
||||
SetupNativeScript(ctx, IsPaletteNotActive);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+2
-2
@@ -294,14 +294,14 @@ static void Task_ShopMenu(u8 taskId)
|
||||
static void Task_HandleShopMenuBuy(u8 taskId)
|
||||
{
|
||||
SetWordTaskArg(taskId, 0xE, (u32)CB2_InitBuyMenu);
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
|
||||
}
|
||||
|
||||
static void Task_HandleShopMenuSell(u8 taskId)
|
||||
{
|
||||
SetWordTaskArg(taskId, 0xE, (u32)CB2_GoToSellMenu);
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -446,7 +446,7 @@ static void StartMenu_FadeScreenIfLeavingOverworld(void)
|
||||
&& sStartMenuCallback != StartMenuSafariZoneRetireCallback)
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
fade_screen(1, 0);
|
||||
FadeScreen(1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -554,7 +554,7 @@ static bool8 StartMenuLinkPlayerCallback(void)
|
||||
{
|
||||
PlayRainStoppingSoundEffect();
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
ShowTrainerCardInLink(gUnknown_300502C, CB2_ReturnToFieldWithOpenMenu);
|
||||
ShowTrainerCardInLink(gLocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
+762
-5
@@ -1,23 +1,41 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "battle.h"
|
||||
#include "berry_crush.h"
|
||||
#include "cable_club.h"
|
||||
#include "dodrio_berry_picking.h"
|
||||
#include "event_data.h"
|
||||
#include "field_control_avatar.h"
|
||||
#include "field_weather.h"
|
||||
#include "link.h"
|
||||
#include "link_rfu.h"
|
||||
#include "list_menu.h"
|
||||
#include "load_save.h"
|
||||
#include "mevent.h"
|
||||
#include "mystery_gift_menu.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokemon_jump.h"
|
||||
#include "save_location.h"
|
||||
#include "script.h"
|
||||
#include "script_pokemon_util.h"
|
||||
#include "task.h"
|
||||
#include "trade.h"
|
||||
#include "trade_scene.h"
|
||||
#include "trainer_card.h"
|
||||
#include "union_room.h"
|
||||
#include "union_room_chat.h"
|
||||
#include "union_room_player_avatar.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
#define sub_8018404(dest, arg1) ({ \
|
||||
StringCopy7(dest, (arg1).unk.playerName); \
|
||||
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
|
||||
})
|
||||
#include "constants/maps.h"
|
||||
#include "constants/cable_club.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {};
|
||||
EWRAM_DATA u8 gUnknown_203B058 = 0;
|
||||
EWRAM_DATA u8 gUnknown_203B059 = 0;
|
||||
EWRAM_DATA struct UnionRoomTrade gUnknown_203B06C = {};
|
||||
|
||||
IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024;
|
||||
IWRAM_DATA struct UnkStruct_Group *gUnknown_3002028;
|
||||
@@ -30,8 +48,11 @@ u8 sub_81165E8(struct UnkStruct_Main0 * a0);
|
||||
void sub_8116738(u8 taskId);
|
||||
u32 sub_8116D10(struct UnkStruct_Group * group, s32 id);
|
||||
void sub_8116D60(struct UnkStruct_Group * group, s32 id);
|
||||
void sub_8116E1C(u8 taskId);
|
||||
u8 sub_8116FE4(void);
|
||||
void sub_8117990(void);
|
||||
void sub_81179A4(void);
|
||||
void sub_8117A0C(u8 taskId);
|
||||
u16 sub_8118658(const u8 *data);
|
||||
u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1);
|
||||
bool8 sub_811A0F8(u8 *textState, const u8 *str);
|
||||
@@ -40,9 +61,13 @@ void sub_811A41C(void);
|
||||
void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
|
||||
void sub_811A5E4(struct UnkStruct_x20 *arg0, u8 count);
|
||||
void sub_811A650(struct UnkStruct_Main4 *arg0, u8 count);
|
||||
bool32 sub_811A6DC(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1);
|
||||
u32 sub_811A748(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1);
|
||||
u8 sub_811A798(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2);
|
||||
void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
|
||||
void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
|
||||
void sub_811B148(struct UnionRoomTrade *trade);
|
||||
u32 sub_811B1EC(struct UnionRoomTrade *trade, u8 mpId);
|
||||
|
||||
extern const u8 *const gUnknown_8456C74[];
|
||||
extern const struct WindowTemplate gUnknown_8456CD0;
|
||||
@@ -54,8 +79,10 @@ extern const struct WindowTemplate gUnknown_8456D4C;
|
||||
extern const struct WindowTemplate gUnknown_8456D54;
|
||||
extern const struct ListMenuTemplate gUnknown_8456DDC;
|
||||
extern const struct UnkStruct_Shared gUnknown_8457034;
|
||||
extern const u8 *const gUnknown_8457094[13];
|
||||
extern const u8 gUnknown_84570C8[];
|
||||
extern const u8 gUnknown_84571B4[];
|
||||
extern const u8 gUnknown_84571B8[];
|
||||
extern const u8 gUnknown_8457234[];
|
||||
extern const u8 gUnknown_8457264[];
|
||||
extern const u8 *const gUnknown_845742C[][5];
|
||||
@@ -74,6 +101,7 @@ extern const u8 gUnknown_84576C4[];
|
||||
extern const u8 gUnknown_8457700[];
|
||||
extern const u8 gUnknown_845771C[];
|
||||
extern const u8 *const gUnknown_8457754[];
|
||||
extern const u8 gUnknown_84577F8[];
|
||||
extern const u8 gUnknown_8457E28[];
|
||||
extern const u8 gUnknown_8457E44[];
|
||||
extern const u8 gUnknown_8458FC8[];
|
||||
@@ -81,6 +109,18 @@ extern const u8 *const gUnknown_84591B8[];
|
||||
extern const u8 gUnknown_8459238[];
|
||||
extern const u8 gUnknown_8459250[];
|
||||
|
||||
// These are functions in Emmerald but inlined in FireRed
|
||||
|
||||
#define sub_8018404(dest, arg1) ({ \
|
||||
StringCopy7(dest, (arg1).unk.playerName); \
|
||||
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
|
||||
})
|
||||
|
||||
#define CopyTrainerCardData(dest, src, _version) ({ \
|
||||
(dest) = *((struct TrainerCard *)(src)); \
|
||||
(dest).version = _version; \
|
||||
})
|
||||
|
||||
void sub_811586C(u8 windowId, u8 arg1, u8 stringId)
|
||||
{
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||
@@ -917,3 +957,720 @@ void sub_8116738(u8 taskId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_8116D10(struct UnkStruct_Group *arg0, s32 id)
|
||||
{
|
||||
struct UnkStruct_x20 *structPtr = &arg0->field_0->arr[id];
|
||||
|
||||
if (gUnknown_203B058 == 4 && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_FIRE_RED && structPtr->unk.field_0.unk_00.unk_01_2 != VERSION_LEAF_GREEN)
|
||||
{
|
||||
if (!(gSaveBlock2Ptr->specialSaveWarpFlags & CHAMPION_SAVEWARP))
|
||||
return 1;
|
||||
else if (structPtr->unk.field_0.unk_00.isChampion)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
void sub_8116D60(struct UnkStruct_Group *data, s32 id)
|
||||
{
|
||||
data->field_F = id;
|
||||
LoadWirelessStatusIndicatorSpriteGfx();
|
||||
CreateWirelessStatusIndicatorSprite(0, 0);
|
||||
RedrawListMenu(data->listTaskId);
|
||||
sub_8018404(gStringVar1, data->field_0->arr[data->field_F]);
|
||||
sub_80FB008(gUnknown_84570C8[gSpecialVar_0x8004], 0, 1);
|
||||
sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, sub_8118658(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
|
||||
}
|
||||
|
||||
u8 sub_8116DE0(void)
|
||||
{
|
||||
u8 taskId;
|
||||
struct UnkStruct_Group *dataPtr;
|
||||
|
||||
taskId = CreateTask(sub_8116E1C, 0);
|
||||
gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data);
|
||||
|
||||
dataPtr->state = 0;
|
||||
dataPtr->textState = 0;
|
||||
|
||||
gUnknown_3002028 = dataPtr;
|
||||
|
||||
return taskId;
|
||||
}
|
||||
|
||||
void sub_8116E1C(u8 taskId)
|
||||
{
|
||||
struct UnkStruct_Group *data = gUnknown_203B05C.group;
|
||||
|
||||
switch (data->state)
|
||||
{
|
||||
case 0:
|
||||
sub_80FAF58(0, 0, 0);
|
||||
sub_800B1F4();
|
||||
OpenLink();
|
||||
sub_80FBBD8();
|
||||
sub_80FB128(TRUE);
|
||||
data->field_4 = AllocZeroed(0x70);
|
||||
data->field_0 = AllocZeroed(0x200);
|
||||
data->state = 2;
|
||||
break;
|
||||
case 2:
|
||||
sub_811A650(data->field_4, 4);
|
||||
sub_811A5E4(data->field_0->arr, 16);
|
||||
data->field_11 = sub_811A054(data->field_4, 0xFF);
|
||||
data->field_F = 0;
|
||||
data->state = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (sub_8116FE4() == 1)
|
||||
PlaySE(SE_PC_LOGIN);
|
||||
if (gTasks[taskId].data[15] == 0xFF)
|
||||
data->state = 10;
|
||||
break;
|
||||
case 10:
|
||||
DestroyTask(data->field_11);
|
||||
Free(data->field_0);
|
||||
Free(data->field_4);
|
||||
sub_80F8DC0();
|
||||
data->state++;
|
||||
break;
|
||||
case 11:
|
||||
sub_80F8DC0();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_8116F28(u32 arg0, u32 id)
|
||||
{
|
||||
if (id == 0xFF)
|
||||
return TRUE;
|
||||
|
||||
if (id <= NELEMS(gUnknown_8457094)) // UB: <= may access data outside the array
|
||||
{
|
||||
const u8 *bytes = gUnknown_8457094[id];
|
||||
|
||||
while ((*(bytes) != 0xFF))
|
||||
{
|
||||
if ((*bytes) == arg0)
|
||||
return TRUE;
|
||||
bytes++;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u8 sub_8116F5C(struct UnkStruct_Group *data, u32 id)
|
||||
{
|
||||
if (data->field_0->arr[id].field_1A_0 == 1)
|
||||
{
|
||||
if (data->field_0->arr[id].unk.field_0.unk_0a_7)
|
||||
return 3;
|
||||
else if (data->field_0->arr[id].field_1A_1 != 0)
|
||||
return 1;
|
||||
else if (data->field_0->arr[id].field_1B != 0)
|
||||
return 2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8116F94(u8 arg0, s32 id, u8 arg2)
|
||||
{
|
||||
struct UnkStruct_Group *data = gUnknown_203B05C.group;
|
||||
u8 var = sub_8116F5C(data, id);
|
||||
|
||||
sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id);
|
||||
}
|
||||
|
||||
u8 sub_8116FE4(void)
|
||||
{
|
||||
struct UnkStruct_Group *data = gUnknown_203B05C.group;
|
||||
u8 ret = 0;
|
||||
u8 i;
|
||||
s32 id;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
if (data->field_0->arr[i].field_1A_0 != 0)
|
||||
{
|
||||
id = sub_811A748(&data->field_0->arr[i], data->field_4->arr);
|
||||
if (id != 0xFF)
|
||||
{
|
||||
if (data->field_0->arr[i].field_1A_0 == 1)
|
||||
{
|
||||
if (sub_811A6DC(&data->field_0->arr[i].unk, &data->field_4->arr[id].unk0))
|
||||
{
|
||||
data->field_0->arr[i].unk = data->field_4->arr[id].unk0;
|
||||
data->field_0->arr[i].field_1B = 0x40;
|
||||
ret = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (data->field_0->arr[i].field_1B != 0)
|
||||
{
|
||||
data->field_0->arr[i].field_1B--;
|
||||
if (data->field_0->arr[i].field_1B == 0)
|
||||
ret = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
data->field_0->arr[i].field_1A_0 = 1;
|
||||
data->field_0->arr[i].field_1B = 0x40;
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
data->field_0->arr[i].field_18 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (data->field_0->arr[i].field_1A_0 != 2)
|
||||
{
|
||||
data->field_0->arr[i].field_18++;
|
||||
if (data->field_0->arr[i].field_18 >= 300)
|
||||
{
|
||||
data->field_0->arr[i].field_1A_0 = 2;
|
||||
ret = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (id = 0; id < 4; id++)
|
||||
{
|
||||
if (sub_811A798(data->field_0->arr, &data->field_4->arr[id], 16) != 0xFF)
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void sub_8117100(u8 taskId)
|
||||
{
|
||||
CB2_ReturnFromLinkTrade();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
u8 sub_8117118(void)
|
||||
{
|
||||
u8 taskId = CreateTask(sub_8117100, 0);
|
||||
|
||||
return taskId;
|
||||
}
|
||||
|
||||
void sub_8117130(u8 taskId)
|
||||
{
|
||||
u32 monId = sub_811B1EC(&gUnknown_203B06C, GetMultiplayerId());
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
gTasks[taskId].data[0]++;
|
||||
SendBlock(0, &gPlayerParty[monId], sizeof(struct Pokemon));
|
||||
break;
|
||||
case 1:
|
||||
if (GetBlockReceivedStatus() == 3)
|
||||
{
|
||||
gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]);
|
||||
IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES);
|
||||
ResetBlockReceivedFlags();
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct MailStruct) * PARTY_SIZE + 4);
|
||||
if (SendBlock(0, gBlockSendBuffer, sizeof(struct MailStruct) * PARTY_SIZE + 4))
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
if (GetBlockReceivedStatus() == 3)
|
||||
{
|
||||
memcpy(gLinkPartnerMail, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct MailStruct) * PARTY_SIZE);
|
||||
ResetBlockReceivedFlags();
|
||||
gSelectedTradeMonPositions[TRADE_PLAYER] = monId;
|
||||
gSelectedTradeMonPositions[TRADE_PARTNER] = PARTY_SIZE;
|
||||
gMain.savedCallback = CB2_ReturnToField;
|
||||
SetMainCallback2(CB2_InitTradeAnim_LinkTrade);
|
||||
sub_811B148(&gUnknown_203B06C);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8117280(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
if (GetMultiplayerId() == 0)
|
||||
sub_800A474(2);
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (GetBlockReceivedStatus() == sub_800A8D4())
|
||||
{
|
||||
s32 i;
|
||||
u16 *recvBuff;
|
||||
|
||||
for (i = 0; i < GetLinkPlayerCount(); i++)
|
||||
{
|
||||
recvBuff = gBlockRecvBuffer[i];
|
||||
CopyTrainerCardData(gTrainerCards[i], recvBuff, gLinkPlayers[i].version);
|
||||
}
|
||||
|
||||
if (GetLinkPlayerCount() == 2)
|
||||
{
|
||||
recvBuff = gBlockRecvBuffer[GetMultiplayerId() ^ 1];
|
||||
sub_81446D0(recvBuff[48]);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_81446C4();
|
||||
}
|
||||
|
||||
ResetBlockReceivedFlags();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8117354(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
CreateTask(sub_8117280, 5);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!FuncIsActiveTask(sub_8117280))
|
||||
ShowTrainerCardInLink(GetMultiplayerId() ^ 1, CB2_ReturnToField);
|
||||
break;
|
||||
}
|
||||
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
}
|
||||
|
||||
void sub_81173C0(u16 battleFlags)
|
||||
{
|
||||
HealPlayerParty();
|
||||
SavePlayerParty();
|
||||
LoadPlayerBag();
|
||||
gLinkPlayers[0].linkType = LINKTYPE_BATTLE;
|
||||
gLinkPlayers[GetMultiplayerId()].id = GetMultiplayerId();
|
||||
gLinkPlayers[GetMultiplayerId() ^ 1].id = GetMultiplayerId() ^ 1;
|
||||
gMain.savedCallback = sub_8081668;
|
||||
gBattleTypeFlags = battleFlags;
|
||||
PlayBattleBGM();
|
||||
}
|
||||
|
||||
void sub_8117440(u16 linkService, u16 x, u16 y)
|
||||
{
|
||||
VarSet(VAR_CABLE_CLUB_STATE, linkService);
|
||||
SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
|
||||
SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
|
||||
WarpIntoMap();
|
||||
}
|
||||
|
||||
void sub_81174B4(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 linkService)
|
||||
{
|
||||
gSpecialVar_0x8004 = linkService;
|
||||
VarSet(VAR_CABLE_CLUB_STATE, linkService);
|
||||
gFieldLinkPlayerCount = GetLinkPlayerCount();
|
||||
gLocalLinkPlayerId = GetMultiplayerId();
|
||||
SetCableClubWarp();
|
||||
SetWarpDestination(mapGroup, mapNum, -1, x, y);
|
||||
WarpIntoMap();
|
||||
}
|
||||
|
||||
void sub_8117534(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
CreateTask(sub_8117280, 5);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!FuncIsActiveTask(sub_8117280))
|
||||
SetMainCallback2(sub_8056788);
|
||||
break;
|
||||
}
|
||||
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
}
|
||||
|
||||
void sub_8117594(void *arg0, bool32 arg1)
|
||||
{
|
||||
TrainerCard_GenerateCardForLinkPlayer((struct TrainerCard *)arg0);
|
||||
if (arg1)
|
||||
*((u16 *)(arg0 + sizeof(struct TrainerCard))) = GetWonderCardFlagID();
|
||||
else
|
||||
*((u16 *)(arg0 + sizeof(struct TrainerCard))) = 0;
|
||||
}
|
||||
|
||||
void sub_81175BC(u8 taskId)
|
||||
{
|
||||
sub_81446C4();
|
||||
switch (gUnknown_203B058)
|
||||
{
|
||||
case 1 ... 4:
|
||||
case 9 ... 11:
|
||||
case 13:
|
||||
case 14:
|
||||
RecordMixTrainerNames();
|
||||
break;
|
||||
}
|
||||
|
||||
switch (gUnknown_203B058)
|
||||
{
|
||||
case 65:
|
||||
case 81:
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
gMain.savedCallback = sub_811C1C8;
|
||||
InitChooseHalfPartyForBattle(2);
|
||||
break;
|
||||
case 1:
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
sub_8117594(gBlockSendBuffer, TRUE);
|
||||
HealPlayerParty();
|
||||
SavePlayerParty();
|
||||
LoadPlayerBag();
|
||||
sub_81174B4(MAP_GROUP(BATTLE_COLOSSEUM_2P), MAP_NUM(BATTLE_COLOSSEUM_2P), 6, 8, USING_SINGLE_BATTLE);
|
||||
SetMainCallback2(sub_8117534);
|
||||
break;
|
||||
case 2:
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
HealPlayerParty();
|
||||
SavePlayerParty();
|
||||
LoadPlayerBag();
|
||||
sub_8117594(gBlockSendBuffer, TRUE);
|
||||
sub_81174B4(MAP_GROUP(BATTLE_COLOSSEUM_2P), MAP_NUM(BATTLE_COLOSSEUM_2P), 6, 8, USING_DOUBLE_BATTLE);
|
||||
SetMainCallback2(sub_8117534);
|
||||
break;
|
||||
case 3:
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
HealPlayerParty();
|
||||
SavePlayerParty();
|
||||
LoadPlayerBag();
|
||||
sub_8117594(gBlockSendBuffer, TRUE);
|
||||
sub_81174B4(MAP_GROUP(BATTLE_COLOSSEUM_4P), MAP_NUM(BATTLE_COLOSSEUM_4P), 5, 8, USING_MULTI_BATTLE);
|
||||
SetMainCallback2(sub_8117534);
|
||||
break;
|
||||
case 4:
|
||||
sub_8117594(gBlockSendBuffer, TRUE);
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
sub_81174B4(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, USING_TRADE_CENTER);
|
||||
SetMainCallback2(sub_8117534);
|
||||
break;
|
||||
case 68:
|
||||
CreateTask(sub_8117130, 0);
|
||||
break;
|
||||
case 5:
|
||||
case 69:
|
||||
if (GetMultiplayerId() == 0)
|
||||
{
|
||||
sub_80F8CFC();
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80F8D14();
|
||||
sub_80FAF58(69, 0, 1);
|
||||
}
|
||||
sub_8128420();
|
||||
break;
|
||||
case 8:
|
||||
case 72:
|
||||
sub_8117594(gBlockSendBuffer, FALSE);
|
||||
SetMainCallback2(sub_8117354);
|
||||
break;
|
||||
case 9:
|
||||
sub_8117440(USING_MINIGAME, 5, 1);
|
||||
sub_8147AA8(GetCursorSelectionMonId(), CB2_LoadMap);
|
||||
break;
|
||||
case 10:
|
||||
sub_8117440(USING_BERRY_CRUSH, 9, 1);
|
||||
sub_814B754(CB2_LoadMap);
|
||||
break;
|
||||
case 11:
|
||||
sub_8117440(USING_MINIGAME, 5, 1);
|
||||
sub_81507FC(GetCursorSelectionMonId(), CB2_LoadMap);
|
||||
break;
|
||||
}
|
||||
|
||||
DestroyTask(taskId);
|
||||
gSpecialVar_Result = 1;
|
||||
ScriptContext2_Disable();
|
||||
}
|
||||
|
||||
void sub_8117900(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
u16 *sendBuff = (u16*)(gBlockSendBuffer);
|
||||
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
gSpecialVar_Result = 1;
|
||||
EnableBothScriptContexts();
|
||||
data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (!ScriptContext1_IsScriptSetUp())
|
||||
{
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
sub_800AB9C();
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
sub_81179A4();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8117990(void)
|
||||
{
|
||||
CreateTask(sub_8117900, 0);
|
||||
}
|
||||
|
||||
void sub_81179A4(void)
|
||||
{
|
||||
u8 taskId = CreateTask(sub_81175BC, 0);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
}
|
||||
|
||||
void MEvent_CreateTask_Leader(u32 arg0)
|
||||
{
|
||||
u8 taskId;
|
||||
struct UnkStruct_Leader *dataPtr;
|
||||
|
||||
taskId = CreateTask(sub_8117A0C, 0);
|
||||
gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data);
|
||||
|
||||
dataPtr->state = 0;
|
||||
dataPtr->textState = 0;
|
||||
dataPtr->field_18 = arg0;
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
void sub_8117A0C(u8 taskId)
|
||||
{
|
||||
struct UnkStruct_Leader *data = gUnknown_203B05C.leader;
|
||||
struct WindowTemplate winTemplate;
|
||||
s32 val;
|
||||
|
||||
switch (data->state)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203B058 = data->field_18;
|
||||
gUnknown_203B059 = 2;
|
||||
sub_80FAF58(data->field_18, 0, 0);
|
||||
sub_80FAF74(FALSE, FALSE);
|
||||
sub_800B1F4();
|
||||
OpenLink();
|
||||
sub_80FBB8C(2);
|
||||
data->state = 1;
|
||||
break;
|
||||
case 1:
|
||||
data->field_4 = AllocZeroed(0x70);
|
||||
data->field_0 = AllocZeroed(0xA0);
|
||||
data->field_8 = AllocZeroed(0xA0);
|
||||
sub_811A650(data->field_4, 4);
|
||||
sub_811A5E4(data->field_0->arr, 5);
|
||||
LinkRfu3_SetGnameUnameFromStaticBuffers(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName);
|
||||
data->field_0->arr[0].field_18 = 0;
|
||||
data->field_0->arr[0].field_1A_0 = 1;
|
||||
data->field_0->arr[0].field_1A_1 = 0;
|
||||
data->field_0->arr[0].field_1B = 0;
|
||||
data->field_17 = sub_811A054(data->field_4, 0xFF);
|
||||
|
||||
winTemplate = gUnknown_8456CFC;
|
||||
winTemplate.baseBlock = GetMysteryGiftBaseBlock();
|
||||
data->listWindowId = AddWindow(&winTemplate);
|
||||
MG_DrawTextBorder(data->listWindowId);
|
||||
gMultiuseListMenuTemplate = gUnknown_8456D34;
|
||||
gMultiuseListMenuTemplate.windowId = data->listWindowId;
|
||||
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
|
||||
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
data->field_13 = 1;
|
||||
data->state = 2;
|
||||
break;
|
||||
case 2:
|
||||
StringCopy(gStringVar1, gUnknown_8456C74[gUnknown_203B058]);
|
||||
sub_811599C(gStringVar4, gUnknown_203B058);
|
||||
data->state = 3;
|
||||
break;
|
||||
case 3:
|
||||
AddTextPrinterToWindow1(gStringVar4);
|
||||
data->state = 4;
|
||||
break;
|
||||
case 4:
|
||||
sub_8116444(data, 5, 6);
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
data->state = 13;
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577F8))
|
||||
{
|
||||
data->field_13 = sub_81165E8(data->field_0);
|
||||
RedrawListMenu(data->listTaskId);
|
||||
data->state = 2;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
data->state = 7;
|
||||
break;
|
||||
case 7:
|
||||
switch (mevent_message_print_and_prompt_yes_no(&data->textState, (u16 *)&data->field_14, FALSE, gStringVar4))
|
||||
{
|
||||
case 0:
|
||||
LoadWirelessStatusIndicatorSpriteGfx();
|
||||
CreateWirelessStatusIndicatorSprite(0, 0);
|
||||
data->field_0->arr[data->field_13].field_1B = 0;
|
||||
RedrawListMenu(data->listTaskId);
|
||||
data->field_19 = 5;
|
||||
sub_80FA670(5, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||
data->state = 8;
|
||||
break;
|
||||
case 1:
|
||||
case -1:
|
||||
data->field_19 = 6;
|
||||
sub_80FA670(6, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||
data->state = 8;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
val = sub_80FA6FC(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||
if (val == 1)
|
||||
{
|
||||
if (data->field_19 == 5)
|
||||
{
|
||||
data->field_0->arr[data->field_13].field_1B = 0;
|
||||
RedrawListMenu(data->listTaskId);
|
||||
data->field_13++;
|
||||
sub_8018404(gStringVar1, data->field_0->arr[data->field_13 - 1]);
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_8457554);
|
||||
data->state = 9;
|
||||
sub_80F8F5C();
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
|
||||
data->field_0->arr[data->field_13].field_1A_0 = 0;
|
||||
sub_81165E8(data->field_0);
|
||||
RedrawListMenu(data->listTaskId);
|
||||
data->state = 2;
|
||||
}
|
||||
|
||||
data->field_19 = 0;
|
||||
}
|
||||
else if (val == 2)
|
||||
{
|
||||
sub_80FB9E4(0, 0);
|
||||
data->state = 2;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
AddTextPrinterToWindow1(gStringVar4);
|
||||
data->state = 10;
|
||||
break;
|
||||
case 10:
|
||||
if (++data->field_E > 120)
|
||||
data->state = 11;
|
||||
break;
|
||||
case 11:
|
||||
if (!sub_8116444(data, 5, 6))
|
||||
data->state = 12;
|
||||
break;
|
||||
case 12:
|
||||
if (sub_80F8F40())
|
||||
{
|
||||
sub_80F8F7C(FALSE);
|
||||
data->state = 15;
|
||||
}
|
||||
else
|
||||
{
|
||||
data->state = 6;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
sub_80F8DC0();
|
||||
DestroyListMenuTask(data->listTaskId, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
RemoveWindow(data->listWindowId);
|
||||
DestroyTask(data->field_17);
|
||||
Free(data->field_8);
|
||||
Free(data->field_0);
|
||||
Free(data->field_4);
|
||||
data->state++;
|
||||
break;
|
||||
case 14:
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571B8))
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
gSpecialVar_Result = 5;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if (sub_80FB9F4() == 1 || sub_80FB9F4() == 2)
|
||||
{
|
||||
data->state = 13;
|
||||
}
|
||||
else if (gReceivedRemoteLinkPlayers != 0)
|
||||
{
|
||||
sub_80FAFE0(1);
|
||||
data->state++;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
DestroyListMenuTask(data->listTaskId, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
RemoveWindow(data->listWindowId);
|
||||
DestroyTask(data->field_17);
|
||||
Free(data->field_8);
|
||||
Free(data->field_0);
|
||||
Free(data->field_4);
|
||||
sub_800AB9C();
|
||||
data->state++;
|
||||
break;
|
||||
case 17:
|
||||
if (IsLinkTaskFinished())
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -38,10 +38,10 @@ gFieldCallback2: @ 3005024
|
||||
gHeldKeyCodeToSend: @ 3005028
|
||||
.space 0x4
|
||||
|
||||
gUnknown_300502C: @ 300502C
|
||||
gLocalLinkPlayerId: @ 300502C
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3005030: @ 3005030
|
||||
gFieldLinkPlayerCount: @ 3005030
|
||||
.space 0x10
|
||||
|
||||
.align 2
|
||||
|
||||
Reference in New Issue
Block a user