mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-22 16:54:36 -05:00
more menu decomp and merging of files
This commit is contained in:
@@ -1,297 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_802D5A4
|
||||
sub_802D5A4:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0802D630
|
||||
ldr r0, [r4]
|
||||
movs r5, 0xCC
|
||||
lsls r5, 1
|
||||
adds r0, r5
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r0, [r4]
|
||||
mov r12, r0
|
||||
movs r3, 0
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D634
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0x8E
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0x90
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D638
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0x92
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r7, 0x2
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
movs r6, 0
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
add r3, r12
|
||||
mov r0, r12
|
||||
adds r2, r0, r5
|
||||
_0802D60A:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _0802D61A
|
||||
ldr r1, [r3]
|
||||
mov r5, r12
|
||||
ldr r0, [r5, 0x6C]
|
||||
cmp r1, r0
|
||||
beq _0802D62A
|
||||
_0802D61A:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r6, 0x1
|
||||
cmp r6, r7
|
||||
blt _0802D60A
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x2
|
||||
str r0, [r1, 0x6C]
|
||||
_0802D62A:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D630: .4byte gUnknown_203B2F8
|
||||
_0802D634: .4byte gUnknown_80D494C
|
||||
_0802D638: .4byte gUnknown_80D4970
|
||||
thumb_func_end sub_802D5A4
|
||||
|
||||
thumb_func_start sub_802D63C
|
||||
sub_802D63C:
|
||||
ldr r0, _0802D684
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D688
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D68C
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xB2
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r0, 0xB4
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r0, 0xB6
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0802D684: .4byte gUnknown_203B2F8
|
||||
_0802D688: .4byte gUnknown_80D4920
|
||||
_0802D68C: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_802D63C
|
||||
|
||||
thumb_func_start sub_802D690
|
||||
sub_802D690:
|
||||
push {r4,r5,lr}
|
||||
ldr r2, _0802D728
|
||||
ldr r0, [r2]
|
||||
mov r12, r0
|
||||
movs r4, 0
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D72C
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r3, 0x1
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D730
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xB2
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r1, 0xB4
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D734
|
||||
str r0, [r1]
|
||||
movs r1, 0xB6
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
movs r1, 0xB8
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D738
|
||||
str r0, [r1]
|
||||
movs r1, 0xBA
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x7
|
||||
str r0, [r1]
|
||||
movs r5, 0x4
|
||||
movs r0, 0xBC
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r4, [r0]
|
||||
movs r0, 0xBE
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r3, 0
|
||||
mov r0, r12
|
||||
ldr r4, [r0, 0x74]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
_0802D70E:
|
||||
ldr r0, [r1]
|
||||
cmp r0, r4
|
||||
beq _0802D722
|
||||
adds r1, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _0802D70E
|
||||
ldr r1, [r2]
|
||||
movs r0, 0x4
|
||||
str r0, [r1, 0x74]
|
||||
_0802D722:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D728: .4byte gUnknown_203B2F8
|
||||
_0802D72C: .4byte gUnknown_80D4920
|
||||
_0802D730: .4byte gUnknown_80D4928
|
||||
_0802D734: .4byte gUnknown_80E014C
|
||||
_0802D738: .4byte gUnknown_80E0158
|
||||
thumb_func_end sub_802D690
|
||||
|
||||
thumb_func_start sub_802D73C
|
||||
sub_802D73C:
|
||||
push {r4,r5,lr}
|
||||
ldr r3, _0802D7C0
|
||||
ldr r0, [r3]
|
||||
mov r12, r0
|
||||
movs r4, 0
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D7C4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D7C8
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xB2
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r1, 0xB4
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D7CC
|
||||
str r0, [r1]
|
||||
movs r1, 0xB6
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
movs r5, 0x3
|
||||
movs r0, 0xB8
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r4, [r0]
|
||||
movs r0, 0xBA
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
movs r2, 0
|
||||
mov r0, r12
|
||||
ldr r4, [r0, 0x70]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
_0802D7A6:
|
||||
ldr r0, [r1]
|
||||
cmp r0, r4
|
||||
beq _0802D7BA
|
||||
adds r1, 0x8
|
||||
adds r2, 0x1
|
||||
cmp r2, r5
|
||||
blt _0802D7A6
|
||||
ldr r1, [r3]
|
||||
movs r0, 0x4
|
||||
str r0, [r1, 0x70]
|
||||
_0802D7BA:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D7C0: .4byte gUnknown_203B2F8
|
||||
_0802D7C4: .4byte gUnknown_80D4920
|
||||
_0802D7C8: .4byte gUnknown_80D4928
|
||||
_0802D7CC: .4byte gUnknown_80E014C
|
||||
thumb_func_end sub_802D73C
|
||||
|
||||
.align 2,0
|
||||
@@ -5,7 +5,7 @@ struct unkStruct_802C39C
|
||||
/* 0xC */ u8 *playerName;
|
||||
/* 0x10 */ s16 clientSpecies;
|
||||
/* 0x12 */ s16 targetSpecies;
|
||||
/* 0x14 */ u8 unk14;
|
||||
/* 0x14 */ u8 targetItem;
|
||||
/* 0x15 */ u8 fill15[0x2E - 0x15];
|
||||
u8 unk2E;
|
||||
u8 fill2F[0x34 - 0x2F];
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "constants/mailbox.h"
|
||||
#include "code_802C39C.h"
|
||||
|
||||
struct unkStruct_203B304
|
||||
{
|
||||
@@ -12,10 +13,7 @@ struct unkStruct_203B304
|
||||
u32 fallbackState;
|
||||
u8 mailboxIndex;
|
||||
u8 mailIndex;
|
||||
u32 unkC;
|
||||
u8 fill10[0x50 - 0x10];
|
||||
u8 unk50;
|
||||
u8 fill51[0x64 - 0x51];
|
||||
struct unkStruct_802C39C unkC;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
struct MenuStruct unk6C;
|
||||
|
||||
@@ -6,10 +6,7 @@ struct unkStruct_203B308
|
||||
u32 state;
|
||||
u32 unk4;
|
||||
u8 jobIndex;
|
||||
u32 unkC;
|
||||
u8 fill10[0x50 - 0x10];
|
||||
u8 unk50;
|
||||
u8 fill51[0x64 - 0x51];
|
||||
struct unkStruct_802C39C unkC;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
struct MenuStruct unk6C;
|
||||
|
||||
@@ -12,15 +12,14 @@
|
||||
|
||||
struct unkStruct_802F204
|
||||
{
|
||||
/* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; // client name?
|
||||
/* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH];
|
||||
/* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name?
|
||||
/* 0x14 */ s16 unk14; // poke species (client??)
|
||||
/* 0x14 */ s16 clientSpecies;
|
||||
/* 0x16 */ u8 unk16;
|
||||
/* 0x18 */ s32 moneyReward;
|
||||
/* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS];
|
||||
/* 0x1F */ u8 quantity;
|
||||
/* 0x20 */ u8 friendAreaReward;
|
||||
u8 fill21[0x24 - 0x21];
|
||||
/* 0x24 */ u32 teamRankPtsReward;
|
||||
};
|
||||
|
||||
|
||||
@@ -25,9 +25,7 @@ struct unkStruct_203B2F0
|
||||
u32 state;
|
||||
u8 unk8[0xC - 0x8];
|
||||
u8 unkC;
|
||||
u8 fillD[0x10 - 0xD];
|
||||
u32 unk10;
|
||||
u8 fill14[0x68 - 0x14];
|
||||
struct unkStruct_802C39C unk10;
|
||||
u32 menuAction;
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuStruct unkBC;
|
||||
|
||||
@@ -44,12 +44,7 @@ struct unkStruct_203B2F8
|
||||
struct unkSubStruct_203B2F8 *mail;
|
||||
u8 jobSlotIndex;
|
||||
u8 fill11[0x14 - 0x11];
|
||||
u32 unk14;
|
||||
u8 fill18[0x58 - 0x18];
|
||||
u8 unk58;
|
||||
u8 fill59[0x64 - 0x59];
|
||||
u8 *unk64;
|
||||
u32 unk68;
|
||||
struct unkStruct_802C39C unk14;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
u32 menuAction3;
|
||||
|
||||
@@ -136,7 +136,6 @@ SECTIONS {
|
||||
src/wonder_mail_2_1.o(.text);
|
||||
asm/wonder_mail_802C860.o(.text);
|
||||
src/wonder_mail_3.o(.text);
|
||||
asm/wonder_mail_3.o(.text);
|
||||
src/wonder_mail_802DF88.o(.text);
|
||||
src/mailbox.o(.text);
|
||||
src/pelipper_board.o(.text);
|
||||
|
||||
@@ -82,8 +82,8 @@ extern void sub_802BD14(u32, u32, u32);
|
||||
extern void sub_802BE94(u32);
|
||||
extern void CreateMailMenu(void);
|
||||
extern void CreateMailAcceptedStatusBox(u32);
|
||||
extern void sub_803B35C(struct WonderMail *, u32 *);
|
||||
extern void sub_802DE84(u32 *);
|
||||
extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *);
|
||||
extern void sub_802DE84(struct unkStruct_802C39C *);
|
||||
extern void InitializeJobListMenu(u32);
|
||||
extern void sub_802B640(u32, u32, u32);
|
||||
extern void sub_802B7D0(u32);
|
||||
@@ -236,8 +236,8 @@ void sub_802E1AC(void)
|
||||
break;
|
||||
case MAIL_INFO:
|
||||
sub_803B35C(GetMailboxSlotInfo(gUnknown_203B304->mailboxIndex), &gUnknown_203B304->unkC);
|
||||
gUnknown_203B304->unkC = 3;
|
||||
gUnknown_203B304->unk50 = 0;
|
||||
gUnknown_203B304->unkC.unk0[0] = 3;
|
||||
gUnknown_203B304->unkC.unk44 = 0;
|
||||
sub_802DE84(&gUnknown_203B304->unkC);
|
||||
break;
|
||||
case JOB_LIST_MENU:
|
||||
@@ -265,7 +265,7 @@ void CreateMailboxMenu(void)
|
||||
s32 loopMax;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B304->unkFC,0,0x10);
|
||||
MemoryFill16(gUnknown_203B304->unkFC,0,sizeof(gUnknown_203B304->unkFC));
|
||||
gUnknown_203B304->menuItems[0].text = gMailboxCheckMail;
|
||||
gUnknown_203B304->menuItems[0].menuAction = 2;
|
||||
if ((HasNoMailinMailbox())) {
|
||||
|
||||
@@ -23,7 +23,7 @@ void MoveMenuCursorUp(u32 *);
|
||||
void MoveMenuCursorDown(u32 *);
|
||||
extern void sub_80073B8(u32);
|
||||
extern s32 sub_8008ED0(const u8 *);
|
||||
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
|
||||
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
|
||||
extern s32 sub_8013800(u32 *, s32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8013660(u32 *);
|
||||
@@ -316,7 +316,7 @@ void sub_8012EBC(struct MenuStruct *param_1)
|
||||
sub_8006518(textStack);
|
||||
x = sub_8008ED0(param_1->unk0);
|
||||
xxx_format_and_draw((((ptr_text2->unk14[2]) * 8 - x) /2) + 8,
|
||||
0,*(u8 **)param_1, param_1->index, 0);
|
||||
0,param_1->unk0, param_1->index, 0);
|
||||
}
|
||||
colorArray = param_1->menuTextColorArray;
|
||||
menuItemsPtr = param_1->menuItems;
|
||||
|
||||
@@ -75,8 +75,8 @@ extern void sub_802C10C(u32, u32, u32);
|
||||
extern void sub_802C28C(u32);
|
||||
extern void DrawPelipperBoardJobMenu(void);
|
||||
extern void CreatePelipperAcceptedStatusBox(u32);
|
||||
extern void sub_803B35C(struct WonderMail *, u32 *);
|
||||
extern void sub_802DE84(u32 *);
|
||||
extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *);
|
||||
extern void sub_802DE84(struct unkStruct_802C39C *);
|
||||
extern void InitializeJobListMenu(u32);
|
||||
|
||||
extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32);
|
||||
@@ -223,8 +223,8 @@ void sub_802EA58(void)
|
||||
break;
|
||||
case PELIPPER_JOB_INFO:
|
||||
sub_803B35C(GetPelipperBoardSlotInfo(gPelipperBoard->jobIndex), &gPelipperBoard->unkC);
|
||||
gPelipperBoard->unkC = 3;
|
||||
gPelipperBoard->unk50 = 0;
|
||||
gPelipperBoard->unkC.unk0[0] = 3;
|
||||
gPelipperBoard->unkC.unk44 = 0;
|
||||
sub_802DE84(&gPelipperBoard->unkC);
|
||||
break;
|
||||
case PELIPPER_JOB_LIST_MENU:
|
||||
@@ -243,7 +243,7 @@ void CreatePelipperBoardMenu(void)
|
||||
s32 loopMax;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gPelipperBoard->unkFC,0,0x10);
|
||||
MemoryFill16(gPelipperBoard->unkFC,0,sizeof(gPelipperBoard->unkFC));
|
||||
gPelipperBoard->menuItems[0].text = gPelipperBoard_BulletinBoard;
|
||||
gPelipperBoard->menuItems[0].menuAction = 2;
|
||||
if ((HasNoPelipperBoardJobs())) {
|
||||
|
||||
@@ -1404,7 +1404,7 @@ void UpdateThankYouMailText(void)
|
||||
case 0x22:
|
||||
monName = GetMonSpecies(MONSTER_PELIPPER);
|
||||
strcpy(gUnknown_203B2C4->unk53C.clientName,monName); // 0x53C
|
||||
gUnknown_203B2C4->unk53C.unk14 = MONSTER_PELIPPER; // 0x550
|
||||
gUnknown_203B2C4->unk53C.clientSpecies = MONSTER_PELIPPER; // 0x550
|
||||
gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
|
||||
gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
|
||||
mailIndex = GetMailIndex(6,gUnknown_203B2C4->unk430);
|
||||
|
||||
@@ -176,7 +176,7 @@ void sub_802B3E0(void)
|
||||
case 1:
|
||||
monName = GetMonSpecies(MONSTER_PELIPPER);
|
||||
strcpy(gUnknown_203B2C8->unk114.clientName, monName);
|
||||
gUnknown_203B2C8->unk114.unk14 = MONSTER_PELIPPER;
|
||||
gUnknown_203B2C8->unk114.clientSpecies = MONSTER_PELIPPER;
|
||||
gUnknown_203B2C8->unk114.unk16 = 2;
|
||||
gUnknown_203B2C8->unk114.moneyReward = 0;
|
||||
sub_8097790();
|
||||
|
||||
@@ -102,7 +102,7 @@ extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern struct WonderMail* GetJobSlotInfo(u8);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
extern void sub_803B35C(void *, u32 *);
|
||||
extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *);
|
||||
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
|
||||
extern void CreateRescueTitle(struct unkStruct_802C39C *);
|
||||
|
||||
@@ -123,7 +123,7 @@ extern void sub_802CD38(void);
|
||||
extern void sub_802CDB8(void);
|
||||
extern void sub_802C928(void);
|
||||
extern void sub_802C9D8(void);
|
||||
extern void sub_802DE84(u32 *);
|
||||
extern void sub_802DE84(struct unkStruct_802C39C *);
|
||||
extern void sub_802CBAC(void);
|
||||
|
||||
s32 CountAcceptedJobs(void);
|
||||
@@ -328,7 +328,7 @@ void DrawJobListMenu(void)
|
||||
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + index]);
|
||||
local.unk0[0] = gUnknown_203B2E8->unk3C;
|
||||
local.y = sub_8013800(&gUnknown_203B2E8->unk8,index);
|
||||
sub_803B35C(mail,local.unk0);
|
||||
sub_803B35C(mail,&local);
|
||||
CreateRescueTitle(&local);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B2E8->unk3C);
|
||||
@@ -463,7 +463,7 @@ void sub_802C9D8(void)
|
||||
break;
|
||||
case 4:
|
||||
sub_803B35C(GetJobSlotInfo(gUnknown_203B2F0->unkC), &gUnknown_203B2F0->unk10);
|
||||
gUnknown_203B2F0->unk10 = 3;
|
||||
gUnknown_203B2F0->unk10.unk0[0] = 3;
|
||||
sub_802DE84(&gUnknown_203B2F0->unk10);
|
||||
break;
|
||||
case 5:
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
#include "menu.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "wonder_mail_3.h"
|
||||
#include "code_802C39C.h"
|
||||
#include "menu_input.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "wonder_mail_2_1.h"
|
||||
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80DFDD4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
@@ -135,8 +134,8 @@ extern u8 *sub_8096DD8(void);
|
||||
extern u8 sub_8096C08(u8 *);
|
||||
extern void DrawJobListMenu(void);
|
||||
extern struct WonderMail* GetJobSlotInfo(u8);
|
||||
extern void sub_803B35C(void *, u32*);
|
||||
extern void sub_802DE84(u32 *);
|
||||
extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C*);
|
||||
extern void sub_802DE84(struct unkStruct_802C39C *);
|
||||
extern void sub_802D73C(void);
|
||||
extern void sub_802C640(u32);
|
||||
extern void sub_802C4C8(u32, u32, u32);
|
||||
@@ -183,6 +182,8 @@ extern struct unkStruct_203B2F0 *gUnknown_203B2F0;
|
||||
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
extern u8 *gUnknown_80D494C[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
|
||||
void sub_802CBAC(void)
|
||||
{
|
||||
@@ -464,7 +465,7 @@ void sub_802CFD0(void)
|
||||
iVar1 = sub_803B344(gUnknown_203B2F4->unk1E * gUnknown_203B2F4->unk1C + r5);
|
||||
local.unk0[0] = gUnknown_203B2F4->unk34;
|
||||
local.y = sub_8013800(gUnknown_203B2F4, r5);
|
||||
sub_803B35C(iVar1,local.unk0);
|
||||
sub_803B35C(&iVar1->mail,&local);
|
||||
local.unk43 = 1;
|
||||
local.unk4C = iVar1->unk14;
|
||||
CreateRescueTitle(&local);
|
||||
@@ -682,15 +683,316 @@ void sub_802D2A8(void)
|
||||
break;
|
||||
case 0xf:
|
||||
sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->jobSlotIndex),&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14 = 3;
|
||||
gUnknown_203B2F8->unk14.unk0[0] = 3;
|
||||
sub_802DE84(&gUnknown_203B2F8->unk14);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_803B35C(gUnknown_203B2F8->mail,&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14 = 3;
|
||||
gUnknown_203B2F8->unk58 = 0;
|
||||
gUnknown_203B2F8->unk64 = gUnknown_203B2F8->mail->unk18;
|
||||
sub_803B35C(&gUnknown_203B2F8->mail->wonderMail,&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14.unk0[0] = 3;
|
||||
gUnknown_203B2F8->unk14.unk44 = 0;
|
||||
gUnknown_203B2F8->unk14.unk50[0] = gUnknown_203B2F8->mail->unk18;
|
||||
sub_802DE84(&gUnknown_203B2F8->unk14);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D5A4(void) {
|
||||
s32 loopMax;
|
||||
s32 index;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B2F8->unk198, 0, sizeof(gUnknown_203B2F8->unk198));
|
||||
gUnknown_203B2F8->unk118[loopMax].text = *gUnknown_80D494C;
|
||||
gUnknown_203B2F8->unk118[loopMax].menuAction = 2;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk118[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B2F8->unk118[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk118[loopMax].text = NULL;
|
||||
gUnknown_203B2F8->unk118[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if (gUnknown_203B2F8->unk198[index] == 0) {
|
||||
if(gUnknown_203B2F8->unk118[index].menuAction == gUnknown_203B2F8->menuAction1)
|
||||
return;
|
||||
}
|
||||
}
|
||||
gUnknown_203B2F8->menuAction1 = 2;
|
||||
}
|
||||
|
||||
void sub_802D63C(void) {
|
||||
s32 loopMax = 0;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4920;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4928;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = NULL;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 1;
|
||||
}
|
||||
|
||||
void sub_802D690(void) {
|
||||
s32 loopMax;
|
||||
s32 index;
|
||||
|
||||
loopMax = 0;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4920;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4928;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 6;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E0158;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 7;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = NULL;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B2F8->unk158[index].menuAction == gUnknown_203B2F8->menuAction3)
|
||||
return;
|
||||
}
|
||||
gUnknown_203B2F8->menuAction3 = 4;
|
||||
}
|
||||
|
||||
void sub_802D73C(void) {
|
||||
s32 loopMax;
|
||||
s32 index;
|
||||
|
||||
loopMax = 0;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4920;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = *gUnknown_80D4928;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 6;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2F8->unk158[loopMax].text = NULL;
|
||||
gUnknown_203B2F8->unk158[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B2F8->unk158[index].menuAction == gUnknown_203B2F8->menuAction2)
|
||||
return;
|
||||
}
|
||||
gUnknown_203B2F8->menuAction2 = 4;
|
||||
}
|
||||
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
|
||||
|
||||
void sub_802D7D0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
if (menuAction != 1) {
|
||||
gUnknown_203B2F8->menuAction2 = menuAction;
|
||||
}
|
||||
switch(menuAction) {
|
||||
// Yes
|
||||
case 3:
|
||||
sub_802D1A0(WONDER_MAIL_EXIT);
|
||||
break;
|
||||
// New Mail
|
||||
case 6:
|
||||
gUnknown_203B2F8->fallbackState = 1;
|
||||
sub_802D1A0(0x10);
|
||||
break;
|
||||
// No
|
||||
case 4:
|
||||
case 2:
|
||||
default:
|
||||
sub_802D1A0(INITIAL_WONDER_MAIL_CHECK);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D82C(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
if (menuAction != 1) {
|
||||
gUnknown_203B2F8->menuAction3 = menuAction;
|
||||
}
|
||||
switch(menuAction) {
|
||||
// Yes
|
||||
case 3:
|
||||
ResetJobSlot(gUnknown_203B2F8->jobSlotIndex);
|
||||
sub_8096C80();
|
||||
sub_802D1A0(RECEIVE_WONDER_MAIL);
|
||||
break;
|
||||
// New Mail
|
||||
case 6:
|
||||
gUnknown_203B2F8->fallbackState = 9;
|
||||
sub_802D1A0(0x10);
|
||||
break;
|
||||
// Old Mail
|
||||
case 7:
|
||||
gUnknown_203B2F8->fallbackState = 9;
|
||||
sub_802D1A0(0xf);
|
||||
break;
|
||||
// No
|
||||
default:
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
sub_802D1A0(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D8CC(void)
|
||||
{
|
||||
switch(sub_802C598(1)) {
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex();
|
||||
sub_802D1A0(0xd);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex();
|
||||
gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1;
|
||||
sub_802D1A0(0xf);
|
||||
break;
|
||||
case 2:
|
||||
sub_802C688();
|
||||
sub_802D1A0(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D940(void)
|
||||
{
|
||||
struct WonderMail *mail;
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_802C598(0);
|
||||
if ((sub_8012FD8(&gUnknown_203B2F8->unk78) == 0) && (sub_8013114(&gUnknown_203B2F8->unk78,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2F8->menuAction1 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
// Delete
|
||||
case 2:
|
||||
if ((gUnknown_203B2F8->unk9) && (((mail = &gUnknown_203B490->jobSlots[gUnknown_203B2F8->jobSlotIndex]), mail->mailType > 5) && (gUnknown_203B2F8->dungeonID == mail->dungeon.id)))
|
||||
{
|
||||
sub_802D1A0(7);
|
||||
}
|
||||
else {
|
||||
sub_802D1A0(0xE);
|
||||
}
|
||||
break;
|
||||
// Info
|
||||
case 5:
|
||||
gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1;
|
||||
sub_802D1A0(0xf);
|
||||
break;
|
||||
case 1:
|
||||
sub_802D1A0(DRAW_JOB_LIST_1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D9F0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_802C598(0);
|
||||
sub_8012FD8(&gUnknown_203B2F8->unk78);
|
||||
if (sub_8012FD8(&gUnknown_203B2F8->unkC8) == 0) {
|
||||
sub_8013114(&gUnknown_203B2F8->unkC8,&menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
// No
|
||||
case 1:
|
||||
case 4:
|
||||
sub_802D1A0(DRAW_JOB_LIST_1);
|
||||
break;
|
||||
// Yes
|
||||
case 3:
|
||||
sub_802C688();
|
||||
ResetJobSlot(gUnknown_203B2F8->jobSlotIndex);
|
||||
sub_8096C80();
|
||||
sub_802D1A0(RECEIVE_WONDER_MAIL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802DA60(void)
|
||||
{
|
||||
switch(sub_802DEE0())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_802DF24();
|
||||
sub_802D1A0(gUnknown_203B2F8->fallbackState);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void AdvancetoFallbackWonderMailRescueState(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
sub_802D1A0(gUnknown_203B2F8->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_802DAA8(void)
|
||||
{
|
||||
struct WonderMail *mail;
|
||||
|
||||
mail = GetJobSlotInfo(gUnknown_203B2F8->jobSlotIndex);
|
||||
if (!gUnknown_203B2F8->unk9) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if ( (mail->mailType != WONDER_MAIL_TYPE_THANK_YOU) && (gUnknown_203B2F8->dungeonID == mail->dungeon.id)) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_802DADC(void)
|
||||
{
|
||||
u8 mailType;
|
||||
struct WonderMail *mail;
|
||||
s32 counter;
|
||||
|
||||
if (!gUnknown_203B2F8->unk9) {
|
||||
_0802DAE8:
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
for( mail = &gUnknown_203B490->jobSlots[0], counter = 0; counter < MAX_ACCEPTED_JOBS; mail++, counter++)
|
||||
{
|
||||
mailType = mail->mailType;
|
||||
if (((mailType == 0) || (mailType == WONDER_MAIL_TYPE_THANK_YOU)) ||
|
||||
((WONDER_MAIL_TYPE_THANK_YOU < mailType && (gUnknown_203B2F8->dungeonID != mail->dungeon.id)))) goto _0802DAE8;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -470,7 +470,7 @@ u32 sub_802F204(struct unkStruct_802F204 *r0, bool8 displayClientSprite)
|
||||
strcpy(gUnknown_202E5D8, preload->unk10->clientName);
|
||||
PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct());
|
||||
|
||||
gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->unk14);
|
||||
gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies);
|
||||
gUnknown_203B310->faceData = NULL;
|
||||
|
||||
gUnknown_203B310->unk20 = 0;
|
||||
|
||||
@@ -294,9 +294,9 @@ void sub_803092C(void)
|
||||
local.dungeon = &mail->dungeon;
|
||||
local.playerName = mail->playerName;
|
||||
|
||||
local.clientSpecies = (mail->clientSpecies);
|
||||
local.targetSpecies = (mail->clientSpecies);
|
||||
local.unk14 = 0;
|
||||
local.clientSpecies = mail->clientSpecies;
|
||||
local.targetSpecies = mail->clientSpecies;
|
||||
local.targetItem = ITEM_NOTHING;
|
||||
local.unk2E = 5;
|
||||
|
||||
switch(mail->mailType)
|
||||
|
||||
@@ -127,7 +127,7 @@ void sub_8030E48(void)
|
||||
stack.playerName = mail->playerName;
|
||||
stack.clientSpecies = mail->clientSpecies;
|
||||
stack.targetSpecies = mail->clientSpecies;
|
||||
stack.unk14 = 0;
|
||||
stack.targetItem = ITEM_NOTHING;
|
||||
if (mail->unk20.id == ITEM_NOTHING) {
|
||||
stack.unk2E = 5;
|
||||
}
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "input.h"
|
||||
#include "item.h"
|
||||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "wonder_mail_3.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "menu_input.h"
|
||||
#include "code_802C39C.h"
|
||||
#include "wonder_mail.h"
|
||||
|
||||
struct unkStruct_203B2FC
|
||||
{
|
||||
@@ -141,215 +134,6 @@ void sub_802D1A0(u32);
|
||||
u32 sub_802DEE0(void);
|
||||
void sub_802DF24(void);
|
||||
|
||||
void sub_802D7D0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
if (menuAction != 1) {
|
||||
gUnknown_203B2F8->menuAction2 = menuAction;
|
||||
}
|
||||
switch(menuAction) {
|
||||
// Yes
|
||||
case 3:
|
||||
sub_802D1A0(WONDER_MAIL_EXIT);
|
||||
break;
|
||||
// New Mail
|
||||
case 6:
|
||||
gUnknown_203B2F8->fallbackState = 1;
|
||||
sub_802D1A0(0x10);
|
||||
break;
|
||||
// No
|
||||
case 4:
|
||||
case 2:
|
||||
default:
|
||||
sub_802D1A0(INITIAL_WONDER_MAIL_CHECK);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D82C(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
if (menuAction != 1) {
|
||||
gUnknown_203B2F8->menuAction3 = menuAction;
|
||||
}
|
||||
switch(menuAction) {
|
||||
// Yes
|
||||
case 3:
|
||||
ResetJobSlot(gUnknown_203B2F8->jobSlotIndex);
|
||||
sub_8096C80();
|
||||
sub_802D1A0(RECEIVE_WONDER_MAIL);
|
||||
break;
|
||||
// New Mail
|
||||
case 6:
|
||||
gUnknown_203B2F8->fallbackState = 9;
|
||||
sub_802D1A0(0x10);
|
||||
break;
|
||||
// Old Mail
|
||||
case 7:
|
||||
gUnknown_203B2F8->fallbackState = 9;
|
||||
sub_802D1A0(0xf);
|
||||
break;
|
||||
// No
|
||||
default:
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
sub_802D1A0(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D8CC(void)
|
||||
{
|
||||
switch(sub_802C598(1)) {
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex();
|
||||
sub_802D1A0(0xd);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex();
|
||||
gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1;
|
||||
sub_802D1A0(0xf);
|
||||
break;
|
||||
case 2:
|
||||
sub_802C688();
|
||||
sub_802D1A0(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D940(void)
|
||||
{
|
||||
struct WonderMail *mail;
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_802C598(0);
|
||||
if ((sub_8012FD8(&gUnknown_203B2F8->unk78) == 0) && (sub_8013114(&gUnknown_203B2F8->unk78,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2F8->menuAction1 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
// Delete
|
||||
case 2:
|
||||
if ((gUnknown_203B2F8->unk9) && (((mail = &gUnknown_203B490->jobSlots[gUnknown_203B2F8->jobSlotIndex]), mail->mailType > 5) && (gUnknown_203B2F8->dungeonID == mail->dungeon.id)))
|
||||
{
|
||||
sub_802D1A0(7);
|
||||
}
|
||||
else {
|
||||
sub_802D1A0(0xE);
|
||||
}
|
||||
break;
|
||||
// Info
|
||||
case 5:
|
||||
gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1;
|
||||
sub_802D1A0(0xf);
|
||||
break;
|
||||
case 1:
|
||||
sub_802D1A0(DRAW_JOB_LIST_1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802D9F0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_802C598(0);
|
||||
sub_8012FD8(&gUnknown_203B2F8->unk78);
|
||||
if (sub_8012FD8(&gUnknown_203B2F8->unkC8) == 0) {
|
||||
sub_8013114(&gUnknown_203B2F8->unkC8,&menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
// No
|
||||
case 1:
|
||||
case 4:
|
||||
sub_802D1A0(DRAW_JOB_LIST_1);
|
||||
break;
|
||||
// Yes
|
||||
case 3:
|
||||
sub_802C688();
|
||||
ResetJobSlot(gUnknown_203B2F8->jobSlotIndex);
|
||||
sub_8096C80();
|
||||
sub_802D1A0(RECEIVE_WONDER_MAIL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802DA60(void)
|
||||
{
|
||||
switch(sub_802DEE0())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_802DF24();
|
||||
sub_802D1A0(gUnknown_203B2F8->fallbackState);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void AdvancetoFallbackWonderMailRescueState(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
sub_802D1A0(gUnknown_203B2F8->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_802DAA8(void)
|
||||
{
|
||||
struct WonderMail *mail;
|
||||
|
||||
mail = GetJobSlotInfo(gUnknown_203B2F8->jobSlotIndex);
|
||||
if (!gUnknown_203B2F8->unk9) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if ( (mail->mailType != WONDER_MAIL_TYPE_THANK_YOU) && (gUnknown_203B2F8->dungeonID == mail->dungeon.id)) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_802DADC(void)
|
||||
{
|
||||
u8 mailType;
|
||||
struct WonderMail *mail;
|
||||
s32 counter;
|
||||
|
||||
if (!gUnknown_203B2F8->unk9) {
|
||||
_0802DAE8:
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
for( mail = &gUnknown_203B490->jobSlots[0], counter = 0; counter < 8; mail++, counter++)
|
||||
{
|
||||
mailType = mail->mailType;
|
||||
if (((mailType == 0) || (mailType == WONDER_MAIL_TYPE_THANK_YOU)) ||
|
||||
((WONDER_MAIL_TYPE_THANK_YOU < mailType && (gUnknown_203B2F8->dungeonID != mail->dungeon.id)))) goto _0802DAE8;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: merge above with wonder_mail_3.c
|
||||
|
||||
bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon)
|
||||
{
|
||||
char local_18 [8];
|
||||
|
||||
Reference in New Issue
Block a user