unify wonder mail constants

This commit is contained in:
Seth Barberee
2022-12-19 20:04:35 -08:00
parent 71cbad4412
commit 0ca46d7254
11 changed files with 236 additions and 509 deletions

View File

@@ -1,388 +0,0 @@
#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8030A74
sub_8030A74:
push {r4,r5,lr}
movs r2, 0
ldr r0, _08030A90
ldr r0, [r0]
ldr r0, [r0, 0x20]
cmp r0, 0x7
bls _08030A84
b _08030C0E
_08030A84:
lsls r0, 2
ldr r1, _08030A94
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08030A90: .4byte gUnknown_203B320
_08030A94: .4byte _08030A98
.align 2, 0
_08030A98:
.4byte _08030AB8
.4byte _08030B10
.4byte _08030B3C
.4byte _08030B94
.4byte _08030B68
.4byte _08030BC0
.4byte _08030AE4
.4byte _08030BEC
_08030AB8:
movs r1, 0
ldr r5, _08030ADC
ldr r4, _08030AE0
movs r3, 0
_08030AC0:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
beq _08030AD2
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030AD2:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030AC0
b _08030C0E
.align 2, 0
_08030ADC: .4byte gUnknown_203B480
_08030AE0: .4byte gUnknown_203B320
_08030AE4:
movs r1, 0
ldr r5, _08030B08
ldr r4, _08030B0C
movs r3, 0
_08030AEC:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x6
bne _08030AFE
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030AFE:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030AEC
b _08030C0E
.align 2, 0
_08030B08: .4byte gUnknown_203B480
_08030B0C: .4byte gUnknown_203B320
_08030B10:
movs r1, 0
ldr r5, _08030B34
ldr r4, _08030B38
movs r3, 0
_08030B18:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x1
bne _08030B2A
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030B2A:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B18
b _08030C0E
.align 2, 0
_08030B34: .4byte gUnknown_203B480
_08030B38: .4byte gUnknown_203B320
_08030B3C:
movs r1, 0
ldr r5, _08030B60
ldr r4, _08030B64
movs r3, 0
_08030B44:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x2
bne _08030B56
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030B56:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B44
b _08030C0E
.align 2, 0
_08030B60: .4byte gUnknown_203B480
_08030B64: .4byte gUnknown_203B320
_08030B68:
movs r1, 0
ldr r5, _08030B8C
ldr r4, _08030B90
movs r3, 0
_08030B70:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x4
bne _08030B82
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030B82:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B70
b _08030C0E
.align 2, 0
_08030B8C: .4byte gUnknown_203B480
_08030B90: .4byte gUnknown_203B320
_08030B94:
movs r1, 0
ldr r5, _08030BB8
ldr r4, _08030BBC
movs r3, 0
_08030B9C:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x3
bne _08030BAE
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030BAE:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B9C
b _08030C0E
.align 2, 0
_08030BB8: .4byte gUnknown_203B480
_08030BBC: .4byte gUnknown_203B320
_08030BC0:
movs r1, 0
ldr r5, _08030BE4
ldr r4, _08030BE8
movs r3, 0
_08030BC8:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x5
bne _08030BDA
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030BDA:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030BC8
b _08030C0E
.align 2, 0
_08030BE4: .4byte gUnknown_203B480
_08030BE8: .4byte gUnknown_203B320
_08030BEC:
movs r1, 0
ldr r5, _08030C18
ldr r4, _08030C1C
movs r3, 0
_08030BF4:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x7
bne _08030C06
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030C06:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030BF4
_08030C0E:
adds r0, r2, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08030C18: .4byte gUnknown_203B480
_08030C1C: .4byte gUnknown_203B320
thumb_func_end sub_8030A74
thumb_func_start sub_8030C20
sub_8030C20:
push {lr}
cmp r0, 0x7
bls _08030C28
b _08030D34
_08030C28:
lsls r0, 2
ldr r1, _08030C34
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08030C34: .4byte _08030C38
.align 2, 0
_08030C38:
.4byte _08030C58
.4byte _08030C90
.4byte _08030CAC
.4byte _08030CE4
.4byte _08030CC8
.4byte _08030D00
.4byte _08030C74
.4byte _08030D20
_08030C58:
movs r1, 0
ldr r0, _08030C70
ldr r2, [r0]
_08030C5E:
ldrb r0, [r2]
cmp r0, 0
bne _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030C5E
b _08030D34
.align 2, 0
_08030C70: .4byte gUnknown_203B480
_08030C74:
movs r1, 0
ldr r0, _08030C8C
ldr r2, [r0]
_08030C7A:
ldrb r0, [r2]
cmp r0, 0x6
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030C7A
b _08030D34
.align 2, 0
_08030C8C: .4byte gUnknown_203B480
_08030C90:
movs r1, 0
ldr r0, _08030CA8
ldr r2, [r0]
_08030C96:
ldrb r0, [r2]
cmp r0, 0x1
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030C96
b _08030D34
.align 2, 0
_08030CA8: .4byte gUnknown_203B480
_08030CAC:
movs r1, 0
ldr r0, _08030CC4
ldr r2, [r0]
_08030CB2:
ldrb r0, [r2]
cmp r0, 0x2
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030CB2
b _08030D34
.align 2, 0
_08030CC4: .4byte gUnknown_203B480
_08030CC8:
movs r1, 0
ldr r0, _08030CE0
ldr r2, [r0]
_08030CCE:
ldrb r0, [r2]
cmp r0, 0x4
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030CCE
b _08030D34
.align 2, 0
_08030CE0: .4byte gUnknown_203B480
_08030CE4:
movs r1, 0
ldr r0, _08030CFC
ldr r2, [r0]
_08030CEA:
ldrb r0, [r2]
cmp r0, 0x3
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030CEA
b _08030D34
.align 2, 0
_08030CFC: .4byte gUnknown_203B480
_08030D00:
movs r1, 0
ldr r0, _08030D18
ldr r2, [r0]
_08030D06:
ldrb r0, [r2]
cmp r0, 0x5
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030D06
b _08030D34
.align 2, 0
_08030D18: .4byte gUnknown_203B480
_08030D1C:
movs r0, 0
b _08030D36
_08030D20:
movs r1, 0
ldr r0, _08030D3C
ldr r2, [r0]
_08030D26:
ldrb r0, [r2]
cmp r0, 0x7
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030D26
_08030D34:
movs r0, 0x1
_08030D36:
pop {r1}
bx r1
.align 2, 0
_08030D3C: .4byte gUnknown_203B480
thumb_func_end sub_8030C20
.align 2,0

View File

@@ -1,9 +1,11 @@
#ifndef GUARD_CODE_8094F88_H
#define GUARD_CODE_8094F88_H
#define GUARD_CODE_8094F88_H
#include "global.h"
struct unkStruct_203B480
{
u8 unk0;
u8 mailType;
struct DungeonLocation unk4;
u32 unk8;
u32 unkC;

View File

@@ -16,6 +16,36 @@ enum RewardType
END_REWARDS
};
enum WonderMailMode {
WONDER_MAIL_MODE_SEND = 1,
WONDER_MAIL_MODE_RECEIVE = 2,
};
enum WonderMailMethod {
WONDER_MAIL_GAME_LINK = 3,
WONDER_MAIL_PASSWORD = 5,
};
enum WonderMailTypes {
WONDER_MAIL_TYPE_SOS = 1,
//WONDER_MAIL_TYPE_SOS = 2, // SOS MAIL is 1 and 2?
WONDER_MAIL_TYPE_AOK = 4,
WONDER_MAIL_TYPE_THANK_YOU = 5,
WONDER_MAIL_TYPE_WONDER = 5,
WONDER_MAIL_TYPE_COMPLETED = 6,
WONDER_MAIL_TYPE_OKD = 7,
};
enum WonderMailMissionTypes
{
WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT = 0,
WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET = 1,
WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT = 2,
WONDER_MAIL_MISSION_TYPE_FIND_ITEM = 3,
WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM = 4,
};
#define NUM_POKEMON_NEWS 56 // 50 normal + 6 special issues
#define PASSWORD_BUFFER_SIZE 54
#define MAX_ITEM_REWARDS 3

View File

@@ -119,31 +119,4 @@ struct WonderMailStruct_203B2C4
void sub_8028B04(u32 r0);
enum WonderMailMode {
WONDER_MAIL_MODE_SEND = 1,
WONDER_MAIL_MODE_RECEIVE = 2,
};
enum WonderMailMethod {
WONDER_MAIL_GAME_LINK = 3,
WONDER_MAIL_PASSWORD = 5,
};
enum WonderMailTypes {
WONDER_MAIL_TYPE_SOS = 1,
WONDER_MAIL_TYPE_AOK = 4,
WONDER_MAIL_TYPE_THANK_YOU = 5,
WONDER_MAIL_TYPE_WONDER = 5,
// TODO: document 7
};
enum WonderMailMissionTypes
{
WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT = 0,
WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET = 1,
WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT = 2,
WONDER_MAIL_MISSION_TYPE_FIND_ITEM = 3,
WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM = 4,
};
#endif

View File

@@ -146,7 +146,6 @@ SECTIONS {
asm/makuhita_dojo.o(.text);
src/makuhita_dojo_1.o(.text);
src/wonder_mail_4.o(.text);
asm/wonder_mail_4.o(.text);
src/wonder_mail_5.o(.text);
asm/wonder_mail_5.o(.text);
src/wonder_mail_6.o(.text);

View File

@@ -44,19 +44,21 @@ struct unkStruct_203B48C *sub_8095110(void)
}
#ifdef NONMATCHING
void sub_8095118(void)
{
int iVar1;
s32 iVar1;
struct unkStruct_203B480 *unused;
MemoryFill8((u8*)gUnknown_203B480,0,0x600);
MemoryFill8(gUnknown_203B484,0,0x5c);
MemoryFill8((u8*)gUnknown_203B484,0,0x5c);
for(iVar1 = 0; iVar1 < 0x20; iVar1++){
// NOTE: when it adds the index regs flip
// Instead of add r0, r0, r1 -> add r0, r1, r0
// Everything else matches...
gUnknown_203B480[iVar1].unk0 = 0;
// NOTE: we use a temp variable here to force the match
unused = &gUnknown_203B480[iVar1];
gUnknown_203B480[iVar1].mailType = 0;
unused = &gUnknown_203B480[iVar1];
gUnknown_203B480[iVar1].unk22 = 0;
unused = &gUnknown_203B480[iVar1];
gUnknown_203B480[iVar1].unk2D = 0;
}
gUnknown_203B48C->unk0 = 0;
@@ -64,66 +66,6 @@ void sub_8095118(void)
gUnknown_203B48C->unk4[iVar1] = -1;
}
}
#else
NAKED
void sub_8095118(void)
{
asm_unified("\tpush {r4,lr}\n"
"\tldr r4, _0809517C\n"
"\tldr r0, [r4]\n"
"\tmovs r2, 0xC0\n"
"\tlsls r2, 3\n"
"\tmovs r1, 0\n"
"\tbl MemoryFill8\n"
"\tldr r0, _08095180\n"
"\tldr r0, [r0]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0x5C\n"
"\tbl MemoryFill8\n"
"\tmovs r2, 0\n"
"\tmovs r1, 0\n"
"\tmovs r3, 0x1F\n"
"_0809513A:\n"
"\tldr r0, [r4]\n"
"\tadds r0, r1\n"
"\tstrb r2, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, r1\n"
"\tadds r0, 0x22\n"
"\tstrb r2, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, r1\n"
"\tadds r0, 0x2D\n"
"\tstrb r2, [r0]\n"
"\tadds r1, 0x30\n"
"\tsubs r3, 0x1\n"
"\tcmp r3, 0\n"
"\tbge _0809513A\n"
"\tldr r2, _08095184\n"
"\tldr r1, [r2]\n"
"\tmovs r0, 0\n"
"\tstr r0, [r1]\n"
"\tmovs r3, 0\n"
"\tmovs r4, 0x1\n"
"\tnegs r4, r4\n"
"_08095166:\n"
"\tldr r0, [r2]\n"
"\tlsls r1, r3, 2\n"
"\tadds r0, 0x4\n"
"\tadds r0, r1\n"
"\tstr r4, [r0]\n"
"\tadds r3, 0x1\n"
"\tcmp r3, 0x1F\n"
"\tble _08095166\n"
"\tpop {r4}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_0809517C: .4byte gUnknown_203B480\n"
"_08095180: .4byte gUnknown_203B484\n"
"_08095184: .4byte gUnknown_203B48C");
}
#endif
void nullsub_206(void)
{
@@ -138,7 +80,7 @@ s32 sub_8095190(void)
int index;
for(index = 2; index < 0x20; index++){
if(gUnknown_203B480[index].unk0 == 0)
if(gUnknown_203B480[index].mailType == 0)
return index;
}
return -1;

View File

@@ -114,7 +114,7 @@ void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
{
u8 temp;
RestoreIntegerBits(a, &b->unk0, 4);
RestoreIntegerBits(a, &b->mailType, 4);
RestoreDungeonLocation(a, &b->unk4);
RestoreIntegerBits(a, &b->unk8, 0x18);
RestoreIntegerBits(a, &b->unkC, 0x9);
@@ -139,7 +139,7 @@ void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
neg1 = -1;
zero = 0;
SaveIntegerBits(a, &b->unk0, 4);
SaveIntegerBits(a, &b->mailType, 4);
SaveDungeonLocation(a, &b->unk4);
SaveIntegerBits(a, &b->unk8, 0x18);
SaveIntegerBits(a, &b->unkC, 0x9);

View File

@@ -453,7 +453,7 @@ u32 ConvertMenutoRescuePasswordState(u32 unused)
u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, struct unkStruct_8095228 *param_3)
{
if ( (!sub_803D204(passwordBuffer, param_3)) || (7 < param_3->mailType) ||
if ( (!sub_803D204(passwordBuffer, param_3)) || (WONDER_MAIL_TYPE_OKD < param_3->mailType) ||
(param_3->dungeon.dungeonFloor >= GetDungeonFloorCount(param_3->dungeon.dungeonIndex)) ||
(param_3->clientSpecies == SPECIES_NONE) || (SPECIES_RAYQUAZA_CUTSCENE < param_3->clientSpecies) ||
(IsInvalidItemReward(param_3->unk20.itemIndex))) {

View File

@@ -20,7 +20,7 @@ extern void sub_8011C28(u32);
extern void sub_8095240(u8);
extern void sub_809927C(u8);
extern u8 sub_8030C20(u32);
extern bool8 HasNoWonderMailType(u32);
extern u32 sub_8031050();
extern void sub_80310B4();
extern u32 sub_8095350();
@@ -942,7 +942,7 @@ void sub_8028D4C()
switch(gUnknown_203B2C0->unk538)
{
case 5:
if(sub_8030C20(2) != 0)
if(HasNoWonderMailType(2))
{
sub_8028B04(12);
}
@@ -952,7 +952,7 @@ void sub_8028D4C()
}
break;
case 6:
if(sub_8030C20(4) != 0)
if(HasNoWonderMailType(4))
{
sub_8028B04(14);
}
@@ -962,7 +962,7 @@ void sub_8028D4C()
}
break;
case 7:
if(sub_8030C20(0) != 0)
if(HasNoWonderMailType(0))
{
sub_8028B04(16);
}

View File

@@ -4,13 +4,16 @@
#include "memory.h"
#include "item.h"
#include "sub_8095228.h"
#include "pokemon.h"
#include "code_8094F88.h"
#include "constants/wonder_mail.h"
struct unkStruct_203B320
{
// size: 0xC4
u8 unk0[4];
u8 fill4[0x20 - 4];
u32 wonderMailMode;
u32 wonderMailType;
u32 unk24;
u8 fill28[0x3C - 0x28];
s16 unk3C;
@@ -29,6 +32,7 @@ extern struct unkStruct_203B320 *gUnknown_203B320;
extern struct UnkTextStruct2 gUnknown_80E083C;
extern struct UnkTextStruct2 gUnknown_80E0854;
extern u8 *gUnknown_80E086C[];
extern struct unkStruct_203B480 *gUnknown_203B480;
struct unkStruct_802C39C
{
@@ -46,7 +50,7 @@ struct unkStruct_802C39C
/* 0x50 */ u32 unk50[3];
};
extern u8 sub_8030C20(u32);
extern bool8 HasNoWonderMailType(u32);
extern s32 sub_8030A74(void);
extern void sub_80308A0(void);
extern void sub_803092C(void);
@@ -67,12 +71,12 @@ extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern void CreateRescueTitle(void *);
u32 sub_80306A8(u32 wonderMailMode, u32 r1, struct UnkTextStruct2_sub *r2, u32 r3)
u32 sub_80306A8(u32 wonderMailType, u32 r1, struct UnkTextStruct2_sub *r2, u32 r3)
{
if(sub_8030C20(wonderMailMode))
if(HasNoWonderMailType(wonderMailType))
return 0;
gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 0x8);
gUnknown_203B320->wonderMailMode = wonderMailMode;
gUnknown_203B320->wonderMailType = wonderMailType;
gUnknown_203B320->unk58 = r1;
gUnknown_203B320->unk5C = &gUnknown_203B320->unk60[gUnknown_203B320->unk58];
@@ -246,7 +250,7 @@ void sub_803092C(void)
r4 = gUnknown_203B320->unk42 * 8;
r5 = r4;
r5 += 10;
xxx_call_draw_string(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailMode],gUnknown_203B320->unk58,0);
xxx_call_draw_string(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->unk58,0);
r4 += 4;
r5 = r4 + gUnknown_203B320->unkC0[2] * 8;
sub_8012BC4(r5,0,gUnknown_203B320->unk42 + 1,1,7,gUnknown_203B320->unk58);
@@ -291,3 +295,168 @@ void sub_803092C(void)
}
sub_80073E0(gUnknown_203B320->unk58);
}
s32 sub_8030A74(void)
{
s32 index;
s32 count = 0;
switch(gUnknown_203B320->wonderMailType) {
case 0:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType != 0) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 6:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 6) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 1:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 1) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 2:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 2) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 4:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 4) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 3:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 3) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 5:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 5) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 7:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 7) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
}
return count;
}
bool8 HasNoWonderMailType(u32 wonderMailType)
{
s32 index;
switch(wonderMailType) {
case 0:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType != 0) {
return FALSE;
}
}
break;
case 6:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 6) {
return FALSE;
}
}
break;
case 1:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 1) {
return FALSE;
}
}
break;
case 2:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 2) {
return FALSE;
}
}
break;
case 4:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 4) {
return FALSE;
}
}
break;
case 3:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 3) {
return FALSE;
}
}
break;
case 5:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 5) {
return FALSE;
}
}
break;
case 7:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 7) {
return FALSE;
}
}
break;
}
return TRUE;
}

View File

@@ -7,7 +7,7 @@
#include "menu.h"
#include "code_8094F88.h"
extern bool8 sub_8030C20(u32);
extern bool8 HasNoWonderMailType(u32);
struct unkStruct_203B328
{
@@ -26,7 +26,7 @@ struct unkStruct_203B328
/* 0x114 */ u8 unk114;
/* 0x115 */ u8 unk115;
/* 0x116 */ u8 unk116;
u32 wonderMailMode;
u32 wonderMailType;
};
extern struct unkStruct_203B328 *gUnknown_203B328;
extern struct unkStruct_203B480 *gUnknown_203B480;
@@ -103,7 +103,7 @@ extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
extern void sub_8095240(u8);
bool8 sub_8030F58(u32 wonderMailMode)
bool8 sub_8030F58(u32 wonderMailType)
{
struct OpenedFile *iVar3;
@@ -113,7 +113,7 @@ bool8 sub_8030F58(u32 wonderMailMode)
gUnknown_203B328 = MemoryAlloc(sizeof(struct unkStruct_203B328),8);
MemoryFill8((u8 *)gUnknown_203B328,0,sizeof(struct unkStruct_203B328));
}
gUnknown_203B328->wonderMailMode = wonderMailMode;
gUnknown_203B328->wonderMailType = wonderMailType;
iVar3 = GetDialogueSpriteDataPtr(SPECIES_PELIPPER);
gUnknown_203B328->faceFile = iVar3;
gUnknown_203B328->faceData = iVar3->data;
@@ -123,8 +123,8 @@ bool8 sub_8030F58(u32 wonderMailMode)
gUnknown_203B328->unk110 = 2;
gUnknown_203B328->unk112 = 8;
if (sub_8030C20(wonderMailMode)) {
switch(wonderMailMode)
if (HasNoWonderMailType(wonderMailType)) {
switch(wonderMailType)
{
case 2:
// "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0"
@@ -139,7 +139,7 @@ bool8 sub_8030F58(u32 wonderMailMode)
}
else {
gUnknown_203B328->state = 0;
sub_80306A8(wonderMailMode,0,0,8);
sub_80306A8(wonderMailType,0,0,8);
}
return TRUE;
}
@@ -328,14 +328,14 @@ void sub_80313D8(u32 param_1)
for(iVar2 = 0; iVar2 < 0x20; iVar2++)
{
unused = &gUnknown_203B480[iVar2];
gUnknown_203B480[iVar2].unk0 = 0;
gUnknown_203B480[iVar2].mailType = 0;
unused = &gUnknown_203B480[iVar2];
gUnknown_203B480[iVar2].unk22 = 0;
}
break;
}
if ((gUnknown_203B328->wonderMailMode == 2) || (gUnknown_203B328->wonderMailMode == 4)) {
if (sub_8030C20(gUnknown_203B328->wonderMailMode) != 0) {
if ((gUnknown_203B328->wonderMailType == 2) || (gUnknown_203B328->wonderMailType == 4)) {
if (HasNoWonderMailType(gUnknown_203B328->wonderMailType)) {
sub_80310E4(5);
}
else {