mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-14 21:16:20 -05:00
decomp another func and cleanup code
This commit is contained in:
@@ -934,7 +934,7 @@ _08000DAC:
|
||||
cmp r0, 0
|
||||
beq _08000E00
|
||||
ldrb r0, [r4]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r0, 0x2C
|
||||
ldrb r1, [r0]
|
||||
|
||||
@@ -929,7 +929,7 @@ _0804326A:
|
||||
beq _080432F4
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x2C
|
||||
movs r0, 0
|
||||
|
||||
@@ -5,41 +5,4 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80951BC
|
||||
sub_80951BC:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl FindOpenMailSlot
|
||||
adds r2, r0, 0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r2, r0
|
||||
beq _080951F4
|
||||
ldr r0, _080951F0
|
||||
ldr r1, [r0]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
adds r0, r4, 0
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
movs r0, 0x1
|
||||
b _080951F6
|
||||
.align 2, 0
|
||||
_080951F0: .4byte gUnknown_203B480
|
||||
_080951F4:
|
||||
movs r0, 0
|
||||
_080951F6:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80951BC
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -848,7 +848,7 @@ _0803304A:
|
||||
lsls r3, 2
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r1, [r6]
|
||||
adds r1, 0x48
|
||||
ldm r0!, {r2,r4,r5}
|
||||
@@ -907,7 +907,7 @@ _080330B4:
|
||||
lsls r3, 2
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r1, [r6]
|
||||
adds r1, 0xA8
|
||||
ldm r0!, {r2-r4}
|
||||
@@ -1202,7 +1202,7 @@ _0803331A:
|
||||
lsls r2, 2
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r1, [r6]
|
||||
adds r1, r4
|
||||
ldm r0!, {r2,r3,r5}
|
||||
@@ -1420,7 +1420,7 @@ _0803349C:
|
||||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r0, 0x22
|
||||
ldrb r1, [r0]
|
||||
|
||||
@@ -1128,7 +1128,7 @@ _0809E524:
|
||||
bl sub_8001658
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x6
|
||||
bl sub_80023E4
|
||||
|
||||
@@ -116,7 +116,7 @@ _080374E4:
|
||||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r3, _08037518
|
||||
ldr r1, [r3]
|
||||
movs r2, 0xE6
|
||||
@@ -154,7 +154,7 @@ _08037534:
|
||||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r3, _08037568
|
||||
ldr r1, [r3]
|
||||
movs r2, 0x8B
|
||||
@@ -180,7 +180,7 @@ _0803756C:
|
||||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r4, _080375CC
|
||||
ldr r1, [r4]
|
||||
movs r5, 0xA3
|
||||
@@ -1363,7 +1363,7 @@ _08037ED0:
|
||||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r4, r0, 0
|
||||
adds r1, r4, 0
|
||||
adds r0, r5, 0
|
||||
@@ -1434,7 +1434,7 @@ _08037F5E:
|
||||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r1, r4, 0
|
||||
ldm r1!, {r3-r5}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
struct unkStruct_203B480
|
||||
{
|
||||
// size: 0x30
|
||||
/* 0x0 */ u8 mailType;
|
||||
/* 0x1 */ u8 missionType;
|
||||
/* 0x4 */ struct DungeonLocation dungeon;
|
||||
@@ -37,8 +38,21 @@ struct unkStruct_203B48C
|
||||
s32 unk4[0x20];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
extern struct unkStruct_203B484 *gUnknown_203B484;
|
||||
extern u32 *gUnknown_203B488;
|
||||
extern struct unkStruct_203B48C *gUnknown_203B48C;
|
||||
|
||||
void sub_80950BC(void);
|
||||
struct unkStruct_203B480 *sub_80950F8(void);
|
||||
struct unkStruct_203B484 *sub_8095100(void);
|
||||
u32 *sub_8095108(void);
|
||||
struct unkStruct_203B48C *sub_8095110(void);
|
||||
void sub_8095118(void);
|
||||
s32 FindOpenMailSlot(void);
|
||||
bool8 sub_80951BC(struct unkStruct_203B480 *mail);
|
||||
bool8 sub_80951FC(struct unkStruct_203B480 *param_1);
|
||||
struct unkStruct_203B480 * sub_8095228(u8 index);
|
||||
struct unkStruct_203B480 * GetMailatIndex(u8 index);
|
||||
void DeleteMailAtIndex(u8 index);
|
||||
void sub_8095274(u32 param_1);
|
||||
bool8 sub_8095298(s32 param_1);
|
||||
@@ -49,6 +63,8 @@ u32 CountAllMail(void);
|
||||
s32 sub_8095374(void);
|
||||
s32 GetMailIndex(u8 mailType, u32 param_2);
|
||||
s32 GetFirstIndexofMailType(u8 mailType);
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "wonder_mail.h"
|
||||
#include "constants/mailbox.h"
|
||||
|
||||
struct subStruct_203B490
|
||||
{
|
||||
@@ -12,13 +13,13 @@ struct subStruct_203B490
|
||||
struct unkStruct_203B490
|
||||
{
|
||||
// size: 0x330?
|
||||
/* 0x0 */ struct WonderMail mailboxSlots[4];
|
||||
/* 0x50 */ struct WonderMail pelipperBoardJobs[8];
|
||||
/* 0xF0 */ struct WonderMail jobSlots[8];
|
||||
/* 0x0 */ struct WonderMail mailboxSlots[NUM_MAILBOX_SLOTS];
|
||||
/* 0x50 */ struct WonderMail pelipperBoardJobs[MAX_ACCEPTED_JOBS];
|
||||
/* 0xF0 */ struct WonderMail jobSlots[MAX_ACCEPTED_JOBS];
|
||||
u8 unk190[0x28];
|
||||
u8 unk1B8[0x78];
|
||||
struct subStruct_203B490 unk230[16];
|
||||
u8 PKMNNewsReceived[56];
|
||||
u8 PKMNNewsReceived[NUM_POKEMON_NEWS];
|
||||
bool8 unk328;
|
||||
};
|
||||
|
||||
|
||||
@@ -49,10 +49,10 @@ struct UnkStruct_sub_8011DAC {
|
||||
struct UnkStruct_203B184 {
|
||||
/* 0x0 */ struct TeamInventory *MoneyItems;
|
||||
/* 0x4 */ struct unkStruct_203B45C *recruitedPokemon;
|
||||
/* 0x8 */ u8 *unk8;
|
||||
/* 0xC */ u8 *unkC;
|
||||
/* 0x8 */ struct unkStruct_203B480 *unk8;
|
||||
/* 0xC */ struct unkStruct_203B484 *unkC;
|
||||
/* 0x10 */ u32 *unk10;
|
||||
/* 0x14 */ u32 *unk14;
|
||||
/* 0x14 */ struct unkStruct_203B48C *unk14;
|
||||
/* 0x18 */ struct unkStruct_203B490 *mailInfo;
|
||||
/* 0x1C */ struct RescueTeamData *RescueTeamInfo;
|
||||
/* 0x20 */ u32 unk20;
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#ifndef GUARD_SUB_8095228_H
|
||||
#define GUARD_SUB_8095228_H
|
||||
|
||||
#include "dungeon_global_data.h"
|
||||
|
||||
struct unkStruct_8095228
|
||||
{
|
||||
/* 0x0 */ u8 mailType; // mail type
|
||||
/* 0x1 */ u8 missionType; // mission type
|
||||
/* 0x2 */ u8 unk2;
|
||||
/* 0x3 */ u8 unk3;
|
||||
/* 0x4 */ struct DungeonLocation dungeon; // dungeon
|
||||
/* 0x8 */ u32 unk8;
|
||||
/* 0xC */ s16 clientSpecies; // client pokemon
|
||||
/* 0xE */ s16 targetSpecies; // target
|
||||
u32 unk10; // TODO: verify that this is just a union of the 4 bytes in Wonder Mail
|
||||
u8 padding2[0x20 - 0x14];
|
||||
struct Item unk20;
|
||||
u8 padding3[0x28 - 0x24];
|
||||
u32 unk28;
|
||||
s8 unk2C;
|
||||
u8 padding4[0x30 - 0x2D];
|
||||
};
|
||||
|
||||
extern struct unkStruct_8095228 *sub_8095228(u8);
|
||||
|
||||
#endif // GUARD_SUB_8095228_H
|
||||
@@ -313,8 +313,6 @@ SECTIONS {
|
||||
asm/code_8094D28.o(.text);
|
||||
src/play_time.o(.text);
|
||||
src/code_8094F88.o(.text);
|
||||
asm/code_8095014.o(.text);
|
||||
src/code_8095824.o(.text);
|
||||
src/code_80958E8.o(.text);
|
||||
asm/code_80958E8.o(.text);
|
||||
src/code_80958E8_mid.o(.text);
|
||||
|
||||
@@ -25,7 +25,6 @@ extern void sub_8097670(void);
|
||||
extern void LoadGameOptions(void);
|
||||
extern void SetWindowBGColor(void);
|
||||
extern void LoadItemParameters(void);
|
||||
extern void sub_80950BC(void);
|
||||
extern void LoadMailInfo(void);
|
||||
extern void sub_800CD64(u32, u32);
|
||||
extern void SetWindowTitle(char *);
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
#include "pokemon.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "memory.h"
|
||||
#include "dungeon.h"
|
||||
#include "random.h"
|
||||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
|
||||
extern struct unkStruct_203B480 gUnknown_2038C88;
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
@@ -14,7 +18,17 @@ extern u32 *gUnknown_203B488;
|
||||
extern u32 gUnknown_20392E8;
|
||||
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC);
|
||||
extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*);
|
||||
extern void SavePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
extern void RestorePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern s32 sub_8094E4C(void);
|
||||
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
|
||||
extern void sub_8094D28(s32);
|
||||
|
||||
void sub_80950BC(void)
|
||||
{
|
||||
@@ -47,24 +61,24 @@ struct unkStruct_203B48C *sub_8095110(void)
|
||||
|
||||
void sub_8095118(void)
|
||||
{
|
||||
s32 iVar1;
|
||||
s32 index;
|
||||
struct unkStruct_203B480 *unused;
|
||||
|
||||
MemoryFill8((u8*)gUnknown_203B480,0,0x600);
|
||||
MemoryFill8((u8*)gUnknown_203B484,0,0x5c);
|
||||
for(iVar1 = 0; iVar1 < 0x20; iVar1++){
|
||||
MemoryFill8((u8*)gUnknown_203B480,0, 0x20 * sizeof(struct unkStruct_203B480));
|
||||
MemoryFill8((u8*)gUnknown_203B484,0, 0x5c);
|
||||
for(index = 0; index < 0x20; index++){
|
||||
|
||||
// NOTE: we use a temp variable here to force the match
|
||||
unused = &gUnknown_203B480[iVar1];
|
||||
gUnknown_203B480[iVar1].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
unused = &gUnknown_203B480[iVar1];
|
||||
gUnknown_203B480[iVar1].unk20.id = ITEM_NOTHING;
|
||||
unused = &gUnknown_203B480[iVar1];
|
||||
gUnknown_203B480[iVar1].unk2D = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = ITEM_NOTHING;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk2D = 0;
|
||||
}
|
||||
gUnknown_203B48C->unk0 = 0;
|
||||
for(iVar1 = 0; iVar1 < 0x20; iVar1++){
|
||||
gUnknown_203B48C->unk4[iVar1] = -1;
|
||||
for(index = 0; index < 0x20; index++){
|
||||
gUnknown_203B48C->unk4[index] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,3 +100,370 @@ s32 FindOpenMailSlot(void)
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Fakematch
|
||||
bool8 sub_80951BC(struct unkStruct_203B480 *mail)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B480 *preload;
|
||||
struct unkStruct_203B480 *preload2;
|
||||
|
||||
index = FindOpenMailSlot();
|
||||
|
||||
if(index == -1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
preload = gUnknown_203B480;
|
||||
preload2 = &preload[index];
|
||||
*preload2 = *mail;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
struct unkStruct_809542C
|
||||
{
|
||||
struct DungeonLocation unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
bool8 sub_80951FC(struct unkStruct_203B480 *param_1)
|
||||
{
|
||||
bool8 bVar1 = gUnknown_203B480[1].mailType != 0;
|
||||
gUnknown_203B480[1] = *param_1;
|
||||
return bVar1;
|
||||
}
|
||||
|
||||
struct unkStruct_203B480 * GetMailatIndex(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
|
||||
ptr = &gUnknown_203B480[index];
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void DeleteMailAtIndex(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *unused;
|
||||
|
||||
MemoryFill8((u8*)&gUnknown_203B480[index],0,sizeof(struct unkStruct_203B480));
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = 0;
|
||||
}
|
||||
|
||||
void sub_8095274(u32 param_1)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 iVar3;
|
||||
|
||||
gUnknown_203B48C->unk4[gUnknown_203B48C->unk0] = param_1;
|
||||
iVar2 = gUnknown_203B48C->unk0;
|
||||
iVar3 = 0;
|
||||
if (iVar2 < 0x1f) {
|
||||
iVar3 = iVar2 + 1;
|
||||
}
|
||||
gUnknown_203B48C->unk0 = iVar3;
|
||||
}
|
||||
|
||||
bool8 sub_8095298(s32 param_1)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
if(gUnknown_203B48C->unk4[index] == param_1) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80952C4(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B48C->unk0 = 0;
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
gUnknown_203B48C->unk4[index] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 HasMail(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 CountMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
u32 CountAllMail(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
u32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType != 0) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
s32 sub_8095374(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 retvar = -1;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == 1) retvar = index;
|
||||
}
|
||||
return retvar;
|
||||
}
|
||||
|
||||
/* With mailType and (additonal data??), search mail and return exact index */
|
||||
s32 GetMailIndex(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return the index of the first mail of the requested type */
|
||||
s32 GetFirstIndexofMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
s32 sub_8095400(u32 param_1)
|
||||
{
|
||||
u32 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0].unk10.unk10; index < 0x20; ptr += 0xC, index++)
|
||||
{
|
||||
if (*ptr == param_1) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void sub_809542C(struct unkStruct_809542C *param_1)
|
||||
{
|
||||
u32 uVar4;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register struct unkStruct_203B480 *preload asm("r2");
|
||||
#else
|
||||
struct unkStruct_203B480 *preload;
|
||||
#endif
|
||||
|
||||
u8 buffer [20];
|
||||
|
||||
gUnknown_203B480->mailType = 1;
|
||||
preload = gUnknown_203B480;
|
||||
uVar4 = param_1->unk4;
|
||||
preload->dungeon = param_1->unk0;
|
||||
preload->unk8 = uVar4;
|
||||
sub_8094D28(Rand32Bit());
|
||||
gUnknown_203B480->unk10.unk10 = sub_8094E4C();
|
||||
gUnknown_203B480->clientSpecies = GetPlayerPokemonStruct()->speciesNum;
|
||||
PrintPokeNameToBuffer(buffer, GetPlayerPokemonStruct());
|
||||
CopyStringtoBuffer(gUnknown_203B480->playerName, buffer);
|
||||
gUnknown_203B480->unk24 = sub_8011C34();
|
||||
gUnknown_203B480->rescuesAllowed = GetRescuesAllowed(gUnknown_203B480->dungeon.id);
|
||||
}
|
||||
|
||||
void sub_8095494(struct unkStruct_809542C *param_1, u8 index)
|
||||
{
|
||||
u32 uVar1;
|
||||
struct DungeonLocation temp;
|
||||
struct unkStruct_203B480 *mail;
|
||||
|
||||
mail = gUnknown_203B480;
|
||||
mail += index;
|
||||
|
||||
temp = mail->dungeon;
|
||||
uVar1 = mail->unk8;
|
||||
param_1->unk0 = temp;
|
||||
param_1->unk4 = uVar1;
|
||||
}
|
||||
|
||||
u32 sub_80954B4(void)
|
||||
{
|
||||
if(CountMailType(3) != 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_80954CC(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095774(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
memset(temp, 0, sizeof(struct PokemonStruct));
|
||||
RestoreIntegerBits(&backup, &temp->unk0, 2);
|
||||
RestoreIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
RestoreDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
RestoreIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[0]);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[1]);
|
||||
RestoreIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->unk24, 4);
|
||||
RestoreHeldItem(&backup, &temp->heldItem);
|
||||
RestorePokemonMoves(&backup, temp->moves);
|
||||
RestoreIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
u32 sub_8095624(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095824(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
SaveIntegerBits(&backup, &temp->unk0, 2);
|
||||
SaveIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
SaveIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
SaveDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
SaveIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[0]);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[1]);
|
||||
SaveIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->unk24, 4);
|
||||
SaveHeldItem(&backup, &temp->heldItem);
|
||||
SavePokemonMoves(&backup, temp->moves);
|
||||
SaveIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 temp;
|
||||
|
||||
RestoreIntegerBits(a, &b->mailType, 4);
|
||||
RestoreDungeonLocation(a, &b->dungeon);
|
||||
RestoreIntegerBits(a, &b->unk8, 0x18);
|
||||
RestoreIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
RestoreIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
RestoreIntegerBits(a, &b->playerName, 0x50);
|
||||
RestoreIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.id, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk24, 0x20);
|
||||
RestoreIntegerBits(a, &b->unk28, 0x20);
|
||||
RestoreIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
RestoreIntegerBits(a, &temp, 1);
|
||||
b->unk2D = temp & 1;
|
||||
}
|
||||
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 neg1;
|
||||
u8 zero;
|
||||
u8 *puVar2;
|
||||
neg1 = -1;
|
||||
zero = 0;
|
||||
|
||||
SaveIntegerBits(a, &b->mailType, 4);
|
||||
SaveDungeonLocation(a, &b->dungeon);
|
||||
SaveIntegerBits(a, &b->unk8, 0x18);
|
||||
SaveIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
SaveIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
SaveIntegerBits(a, &b->playerName, 0x50);
|
||||
SaveIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.id, 0x8);
|
||||
SaveIntegerBits(a, &b->unk24, 0x20);
|
||||
SaveIntegerBits(a, &b->unk28, 0x20);
|
||||
SaveIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
if(b->unk2D != 0)
|
||||
puVar2 = &neg1;
|
||||
else
|
||||
puVar2 = &zero;
|
||||
SaveIntegerBits(a, puVar2, 1);
|
||||
}
|
||||
|
||||
void sub_80958E4(u32 *a, u32 b)
|
||||
{
|
||||
*a = b;
|
||||
}
|
||||
|
||||
@@ -6,368 +6,3 @@
|
||||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
#include "code_8094F88.h"
|
||||
|
||||
extern struct unkStruct_203B484 *gUnknown_203B484;
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
extern struct unkStruct_203B48C *gUnknown_203B48C;
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC);
|
||||
extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*);
|
||||
extern void SavePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
extern void RestorePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
s32 CountMailType(u8);
|
||||
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern s32 sub_8094E4C(void);
|
||||
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
|
||||
extern void sub_8094D28(s32);
|
||||
|
||||
struct unkStruct_809542C
|
||||
{
|
||||
struct DungeonLocation unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
bool8 sub_80951FC(struct unkStruct_203B480 *param_1)
|
||||
{
|
||||
bool8 bVar1 = gUnknown_203B480[1].mailType != 0;
|
||||
gUnknown_203B480[1] = *param_1;
|
||||
return bVar1;
|
||||
}
|
||||
|
||||
struct unkStruct_203B480 * sub_8095228(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
|
||||
ptr = &gUnknown_203B480[index];
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void DeleteMailAtIndex(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *unused;
|
||||
|
||||
MemoryFill8((u8*)&gUnknown_203B480[index],0,sizeof(struct unkStruct_203B480));
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = 0;
|
||||
}
|
||||
|
||||
void sub_8095274(u32 param_1)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 iVar3;
|
||||
|
||||
gUnknown_203B48C->unk4[gUnknown_203B48C->unk0] = param_1;
|
||||
iVar2 = gUnknown_203B48C->unk0;
|
||||
iVar3 = 0;
|
||||
if (iVar2 < 0x1f) {
|
||||
iVar3 = iVar2 + 1;
|
||||
}
|
||||
gUnknown_203B48C->unk0 = iVar3;
|
||||
}
|
||||
|
||||
bool8 sub_8095298(s32 param_1)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
if(gUnknown_203B48C->unk4[index] == param_1) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80952C4(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B48C->unk0 = 0;
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
gUnknown_203B48C->unk4[index] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 HasMail(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 CountMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
u32 CountAllMail(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
u32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType != 0) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
s32 sub_8095374(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 retvar = -1;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == 1) retvar = index;
|
||||
}
|
||||
return retvar;
|
||||
}
|
||||
|
||||
/* With mailType and (additonal data??), search mail and return exact index */
|
||||
s32 GetMailIndex(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return the index of the first mail of the requested type */
|
||||
s32 GetFirstIndexofMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
s32 sub_8095400(u32 param_1)
|
||||
{
|
||||
u32 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0].unk10.unk10; index < 0x20; ptr += 0xC, index++)
|
||||
{
|
||||
if (*ptr == param_1) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void sub_809542C(struct unkStruct_809542C *param_1)
|
||||
{
|
||||
u32 uVar4;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register struct unkStruct_203B480 *preload asm("r2");
|
||||
#else
|
||||
struct unkStruct_203B480 *preload;
|
||||
#endif
|
||||
|
||||
u8 buffer [20];
|
||||
|
||||
gUnknown_203B480->mailType = 1;
|
||||
preload = gUnknown_203B480;
|
||||
uVar4 = param_1->unk4;
|
||||
preload->dungeon = param_1->unk0;
|
||||
preload->unk8 = uVar4;
|
||||
sub_8094D28(Rand32Bit());
|
||||
gUnknown_203B480->unk10.unk10 = sub_8094E4C();
|
||||
gUnknown_203B480->clientSpecies = GetPlayerPokemonStruct()->speciesNum;
|
||||
PrintPokeNameToBuffer(buffer, GetPlayerPokemonStruct());
|
||||
CopyStringtoBuffer(gUnknown_203B480->playerName, buffer);
|
||||
gUnknown_203B480->unk24 = sub_8011C34();
|
||||
gUnknown_203B480->rescuesAllowed = GetRescuesAllowed(gUnknown_203B480->dungeon.id);
|
||||
}
|
||||
|
||||
void sub_8095494(struct unkStruct_809542C *param_1, u8 index)
|
||||
{
|
||||
u32 uVar1;
|
||||
struct DungeonLocation temp;
|
||||
struct unkStruct_203B480 *mail;
|
||||
|
||||
mail = gUnknown_203B480;
|
||||
mail += index;
|
||||
|
||||
temp = mail->dungeon;
|
||||
uVar1 = mail->unk8;
|
||||
param_1->unk0 = temp;
|
||||
param_1->unk4 = uVar1;
|
||||
}
|
||||
|
||||
u32 sub_80954B4(void)
|
||||
{
|
||||
if(CountMailType(3) != 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_80954CC(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095774(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
memset(temp, 0, sizeof(struct PokemonStruct));
|
||||
RestoreIntegerBits(&backup, &temp->unk0, 2);
|
||||
RestoreIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
RestoreDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
RestoreIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[0]);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[1]);
|
||||
RestoreIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->unk24, 4);
|
||||
RestoreHeldItem(&backup, &temp->heldItem);
|
||||
RestorePokemonMoves(&backup, temp->moves);
|
||||
RestoreIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
u32 sub_8095624(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095824(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
SaveIntegerBits(&backup, &temp->unk0, 2);
|
||||
SaveIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
SaveIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
SaveDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
SaveIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[0]);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[1]);
|
||||
SaveIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->unk24, 4);
|
||||
SaveHeldItem(&backup, &temp->heldItem);
|
||||
SavePokemonMoves(&backup, temp->moves);
|
||||
SaveIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 temp;
|
||||
|
||||
RestoreIntegerBits(a, &b->mailType, 4);
|
||||
RestoreDungeonLocation(a, &b->dungeon);
|
||||
RestoreIntegerBits(a, &b->unk8, 0x18);
|
||||
RestoreIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
RestoreIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
RestoreIntegerBits(a, &b->playerName, 0x50);
|
||||
RestoreIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.id, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk24, 0x20);
|
||||
RestoreIntegerBits(a, &b->unk28, 0x20);
|
||||
RestoreIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
RestoreIntegerBits(a, &temp, 1);
|
||||
b->unk2D = temp & 1;
|
||||
}
|
||||
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 neg1;
|
||||
u8 zero;
|
||||
u8 *puVar2;
|
||||
neg1 = -1;
|
||||
zero = 0;
|
||||
|
||||
SaveIntegerBits(a, &b->mailType, 4);
|
||||
SaveDungeonLocation(a, &b->dungeon);
|
||||
SaveIntegerBits(a, &b->unk8, 0x18);
|
||||
SaveIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
SaveIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
SaveIntegerBits(a, &b->playerName, 0x50);
|
||||
SaveIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.id, 0x8);
|
||||
SaveIntegerBits(a, &b->unk24, 0x20);
|
||||
SaveIntegerBits(a, &b->unk28, 0x20);
|
||||
SaveIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
if(b->unk2D != 0)
|
||||
puVar2 = &neg1;
|
||||
else
|
||||
puVar2 = &zero;
|
||||
SaveIntegerBits(a, puVar2, 1);
|
||||
}
|
||||
|
||||
void sub_80958E4(u32 *a, u32 b)
|
||||
{
|
||||
*a = b;
|
||||
}
|
||||
|
||||
@@ -40,19 +40,19 @@ struct unkStruct_203B490 *GetMailInfo(void)
|
||||
void InitializeMailJobsNews(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
ResetMailboxSlot(index);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
ResetPelipperBoardSlot(index);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
ResetJobSlot(index);
|
||||
}
|
||||
for(index = 0; index < 56; index++)
|
||||
for(index = 0; index < NUM_POKEMON_NEWS; index++)
|
||||
{
|
||||
gUnknown_203B490->PKMNNewsReceived[index] = FALSE;
|
||||
}
|
||||
|
||||
@@ -41,15 +41,15 @@ u32 RestoreMailInfo(u8 *r0, u32 size)
|
||||
u32 temp;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, r0, size);
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
RestoreWonderMail(&backup, &gUnknown_203B490->mailboxSlots[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
RestoreWonderMail(&backup, &gUnknown_203B490->pelipperBoardJobs[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
RestoreWonderMail(&backup, &gUnknown_203B490->jobSlots[index]);
|
||||
}
|
||||
@@ -86,15 +86,15 @@ u32 SaveMailInfo(u8 *r0, u32 size)
|
||||
u32 temp;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, r0, size);
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
SaveWonderMail(&backup, &gUnknown_203B490->mailboxSlots[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
SaveWonderMail(&backup, &gUnknown_203B490->pelipperBoardJobs[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
SaveWonderMail(&backup, &gUnknown_203B490->jobSlots[index]);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ struct unkStruct_203B2B4
|
||||
struct MenuStruct unk78;
|
||||
struct MenuItem unkC8[4];
|
||||
u8 fillE8[0x108 - 0xE8];
|
||||
s16 unk108[8];
|
||||
u16 unk108[8];
|
||||
struct UnkTextStruct2 unk118[4];
|
||||
};
|
||||
extern struct unkStruct_203B2B4 *gUnknown_203B2B4;
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
extern u8 *gUnknown_203B484;
|
||||
|
||||
extern void SetFriendRescueMenuState(u32);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
@@ -82,9 +81,7 @@ extern u16 sub_8023B44(void);
|
||||
|
||||
extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_203B480 *r0);
|
||||
extern void sub_8095274(u32);
|
||||
extern void sub_80951BC(struct unkStruct_203B480 *r0);
|
||||
extern u8 sub_800D588(void);
|
||||
extern s32 FindOpenMailSlot(void);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
|
||||
extern u8 gUnknown_80E44A4[];
|
||||
@@ -724,7 +721,7 @@ void sub_8033DBC(void)
|
||||
case PASSWORD_ENTRY_AOK_MAIL_SUCCESS:
|
||||
mail.mailType = 5;
|
||||
sub_80951FC(&mail);
|
||||
mail2 = sub_8095228(GetMailIndex(1, mail.unk10.unk10));
|
||||
mail2 = GetMailatIndex(GetMailIndex(1, mail.unk10.unk10));
|
||||
mail2->mailType = 7;
|
||||
MemoryFill8((u8 *)gUnknown_203B484, 0, sizeof(struct unkStruct_203B484));
|
||||
SetFriendRescueMenuState(0x40);
|
||||
@@ -1592,7 +1589,7 @@ void sub_8034D74(void)
|
||||
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR_2);
|
||||
break;
|
||||
case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS:
|
||||
mail2 = sub_8095228(GetMailIndex(4, mail.unk10.unk10));
|
||||
mail2 = GetMailatIndex(GetMailIndex(4, mail.unk10.unk10));
|
||||
*mail2 = mail;
|
||||
mail2->mailType = 6;
|
||||
gUnknown_203B33C->unk420 = mail.unk10.unk10;
|
||||
@@ -1691,7 +1688,7 @@ void sub_8034F88(void)
|
||||
switch(menuAction)
|
||||
{
|
||||
case 6:
|
||||
mail = sub_8095228(gUnknown_203B33C->unk218);
|
||||
mail = GetMailatIndex(gUnknown_203B33C->unk218);
|
||||
if(gUnknown_203B33C->item.id != ITEM_NOTHING)
|
||||
mail->unk20 = gUnknown_203B33C->item;
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B33C->item.id]--;
|
||||
@@ -1893,7 +1890,7 @@ void sub_8035210(void)
|
||||
case 0xD:
|
||||
if(gUnknown_203B33C->unk528 == 0x13)
|
||||
{
|
||||
mail = sub_8095228(GetFirstIndexofMailType(5));
|
||||
mail = GetMailatIndex(GetFirstIndexofMailType(5));
|
||||
if(mail->unk20.id != ITEM_NOTHING)
|
||||
SetFriendRescueMenuState(0x53);
|
||||
else
|
||||
|
||||
@@ -13,7 +13,7 @@ s32 CountFilledMailboxSlots(void)
|
||||
s32 counter;
|
||||
|
||||
counter = 0;
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
if(!IsMailSlotEmpty(index))
|
||||
counter++;
|
||||
@@ -26,7 +26,7 @@ bool8 sub_8095FB0(struct WonderMail *mail)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
if(gUnknown_203B490->mailboxSlots[index].mailType == WONDER_MAIL_TYPE_NONE)
|
||||
{
|
||||
@@ -53,7 +53,7 @@ bool8 IsMailSlotEmpty(u8 index)
|
||||
void ResetMailbox(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
ResetMailboxSlot(index);
|
||||
}
|
||||
|
||||
@@ -613,7 +613,7 @@ void DisplayMissionObjectives(void)
|
||||
{
|
||||
case 1:
|
||||
sub_8099394(&local_94);
|
||||
mail = sub_8095228(local_94);
|
||||
mail = GetMailatIndex(local_94);
|
||||
sub_803B6B0(10,16,3,gUnknown_203B330->unk10);
|
||||
// %dF
|
||||
sprintfStatic(buffer,gUnknown_80E1F3C,mail->dungeon.floor);
|
||||
|
||||
@@ -36,10 +36,7 @@ extern void DisplayPasswordAcceptScreen(void);
|
||||
|
||||
extern u32 sub_8039068(u32, u8 *passwordBuffer, struct unkStruct_203B480 *r0);
|
||||
|
||||
extern void sub_80951BC(struct unkStruct_203B480 *r0);
|
||||
extern bool8 sub_80951FC(struct unkStruct_203B480 *r0);
|
||||
extern u32 sub_80154F0(void);
|
||||
extern void sub_8095274(u32);
|
||||
extern u32 sub_8031DCC(void);
|
||||
extern void sub_80391F8(void);
|
||||
extern void sub_8031E00();
|
||||
@@ -53,7 +50,6 @@ bool8 IsInvalidItemReward(u8);
|
||||
bool8 sub_8095298(s32);
|
||||
bool8 sub_803D204(u8 *, struct unkStruct_203B480 *);
|
||||
extern s32 GetDungeonFloorCount(u8);
|
||||
extern s32 FindOpenMailSlot(void);
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80E71FC;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7278;
|
||||
@@ -118,7 +114,7 @@ void CreateRescuePasswordMenu(u32 currMenu)
|
||||
sub_80151C0(4, gRescuePasswordBuffer);
|
||||
break;
|
||||
case MENU_DISPLAY_RESCUE_PASSWORD:
|
||||
temp = sub_8095228(0x1F);
|
||||
temp = GetMailatIndex(0x1F);
|
||||
MemoryFill8((u8 *)temp, 0, sizeof(struct unkStruct_203B480));
|
||||
temp->mailType = 2;
|
||||
temp->unk20.id = ITEM_NOTHING;
|
||||
@@ -161,12 +157,12 @@ static inline s32 UpdateRescuePasswordMenu_sub(s32 otherMenu)
|
||||
|
||||
s32 UpdateRescuePasswordMenu(void)
|
||||
{
|
||||
struct unkStruct_203B480 *puVar5;
|
||||
struct unkStruct_203B480 *puVar6;
|
||||
struct unkStruct_203B480 *mailPtr1;
|
||||
struct unkStruct_203B480 *mailPtr2;
|
||||
u32 iVar7;
|
||||
struct MainMenu *iVar9;
|
||||
struct MainMenu *mainMenuPtr;
|
||||
s32 nextMenu;
|
||||
struct unkStruct_203B480 local_44;
|
||||
struct unkStruct_203B480 mail;
|
||||
u32 menuAction;
|
||||
u32 subtract;
|
||||
|
||||
@@ -182,7 +178,7 @@ s32 UpdateRescuePasswordMenu(void)
|
||||
case 3:
|
||||
case 5:
|
||||
iVar7 = sub_80154F0();
|
||||
MemoryFill8((u8 *)&local_44, 0, sizeof(struct unkStruct_203B480));
|
||||
MemoryFill8((u8 *)&mail, 0, sizeof(struct unkStruct_203B480));
|
||||
switch(iVar7)
|
||||
{
|
||||
case 1:
|
||||
@@ -196,7 +192,7 @@ s32 UpdateRescuePasswordMenu(void)
|
||||
nextMenu = MENU_FRIEND_RESCUE;
|
||||
break;
|
||||
case 3:
|
||||
switch(sub_8039068(gRescuePasswordMenu->currMenu, gRescuePasswordBuffer, &local_44)) {
|
||||
switch(sub_8039068(gRescuePasswordMenu->currMenu, gRescuePasswordBuffer, &mail)) {
|
||||
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
|
||||
nextMenu = PASSWORD_ENTRY_INCORRECT_PASSWORD;
|
||||
DisplayRescuePasswordError(nextMenu);
|
||||
@@ -222,12 +218,12 @@ s32 UpdateRescuePasswordMenu(void)
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case PASSWORD_ENTRY_SOS_MAIL_SUCCESS:
|
||||
sub_8095274(local_44.unk10.unk10);
|
||||
sub_8095274(mail.unk10.unk10);
|
||||
DisplayPasswordAcceptScreen();
|
||||
gRescuePasswordMenu->state = 9;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
local_44.mailType = 2;
|
||||
sub_80951BC(&local_44);
|
||||
mail.mailType = 2;
|
||||
sub_80951BC(&mail);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_AOK_MAIL:
|
||||
nextMenu = PASSWORD_ENTRY_NOT_AOK_MAIL;
|
||||
@@ -245,10 +241,10 @@ s32 UpdateRescuePasswordMenu(void)
|
||||
DisplayPasswordAcceptScreen();
|
||||
gRescuePasswordMenu->state = 9;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
local_44.mailType = 5;
|
||||
sub_80951FC(&local_44);
|
||||
puVar5 = sub_8095228(GetMailIndex(1, local_44.unk10.unk10));
|
||||
puVar5->mailType = WONDER_MAIL_TYPE_OKD;
|
||||
mail.mailType = 5;
|
||||
sub_80951FC(&mail);
|
||||
mailPtr1 = GetMailatIndex(GetMailIndex(1, mail.unk10.unk10));
|
||||
mailPtr1->mailType = WONDER_MAIL_TYPE_OKD;
|
||||
MemoryFill8((u8 *)&gUnknown_203B484, 0, sizeof(struct unkStruct_203B484));
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
|
||||
@@ -267,11 +263,11 @@ s32 UpdateRescuePasswordMenu(void)
|
||||
DisplayPasswordAcceptScreen();
|
||||
gRescuePasswordMenu->state = 9;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
puVar6 = sub_8095228(GetMailIndex(4, local_44.unk10.unk10));
|
||||
*puVar6 = local_44;
|
||||
puVar6->mailType = 6;
|
||||
iVar9 = GetMainMenu();
|
||||
iVar9->unk3A = 1;
|
||||
mailPtr2 = GetMailatIndex(GetMailIndex(4, mail.unk10.unk10));
|
||||
*mailPtr2 = mail;
|
||||
mailPtr2->mailType = 6;
|
||||
mainMenuPtr = GetMainMenu();
|
||||
mainMenuPtr->unk3A = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -76,10 +76,7 @@ EWRAM_DATA_2 struct QuickSaveWrite *gQuickSaveWrite = {0};
|
||||
|
||||
extern s32 gUnknown_202DE28;
|
||||
extern bool8 *gFriendAreas;
|
||||
extern u8 *gUnknown_203B480;
|
||||
extern u8 *gUnknown_203B484;
|
||||
extern u32 *gUnknown_203B488;
|
||||
extern u32 *gUnknown_203B48C;
|
||||
extern u32 gUnknown_203B494;
|
||||
|
||||
ALIGNED(4) const char sGameInternalVersion[] = _("POKE_DUNGEON__05");
|
||||
@@ -155,10 +152,6 @@ extern u32 RestoreRecruitedPokemon(void* a, s32 b);
|
||||
extern u32 SavePokemonStruct2(u8 *, u32);
|
||||
extern u32 RestorePokemonStruct2(void* a, s32 b);
|
||||
extern u32 sub_80921C4(u8 *, u32);
|
||||
extern u8 *sub_8095100(void);
|
||||
extern u32 *sub_8095108(void);
|
||||
extern u32 *sub_8095110(void);
|
||||
extern void sub_8095118(void);
|
||||
extern u32 sub_80954CC(void* a, s32 b);
|
||||
extern u32 sub_8095624(u8 *, u32);
|
||||
extern u32 RestoreMailInfo(void* a, s32 b);
|
||||
@@ -168,7 +161,6 @@ extern u32 sub_8097D60(u8 *, u32);
|
||||
extern u32 sub_8097D98(void* a, s32 b);
|
||||
extern void sub_80993E4();
|
||||
extern void sub_800135C(void);
|
||||
extern u8 *sub_80950F8(void);
|
||||
extern void sub_80958E4(u32 *a, u32 b);
|
||||
extern struct unkStruct_203B490 *GetMailInfo(void);
|
||||
extern void InitializeMailJobsNews(void);
|
||||
|
||||
@@ -287,7 +287,7 @@ u32 CreateThankYouMailPelipper(void)
|
||||
|
||||
index = GetFirstIndexofMailType(6);
|
||||
if (index != -1) {
|
||||
mail = sub_8095228(index);
|
||||
mail = GetMailatIndex(index);
|
||||
gUnknown_203B2C4->unk41C = mail->unk20;
|
||||
gUnknown_203B2C4->mailIndex = index;
|
||||
gUnknown_203B2C4->unk430 = mail->unk10.unk10;
|
||||
@@ -841,7 +841,7 @@ void HandleThankYouMailPasswordMenu(void)
|
||||
break;
|
||||
case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS:
|
||||
mailIndex = GetMailIndex(4,mail1.unk10.unk10);
|
||||
mail = sub_8095228(mailIndex);
|
||||
mail = GetMailatIndex(mailIndex);
|
||||
*mail = mail1;
|
||||
mail->mailType = 6;
|
||||
gUnknown_203B2C4->unk430 = mail1.unk10.unk10;
|
||||
@@ -954,7 +954,7 @@ void HandleConfirmItemtoSendMenu(void)
|
||||
switch(menuAction)
|
||||
{
|
||||
case 7:
|
||||
mail = sub_8095228(gUnknown_203B2C4->mailIndex);
|
||||
mail = GetMailatIndex(gUnknown_203B2C4->mailIndex);
|
||||
if(gUnknown_203B2C4->unk41C.id != ITEM_NOTHING)
|
||||
{
|
||||
mail->unk20 = gUnknown_203B2C4->unk41C;
|
||||
@@ -1143,7 +1143,7 @@ void HandleMailCommunicationMenu(void)
|
||||
switch(gUnknown_203B2C4->wonderMailMode)
|
||||
{
|
||||
case WONDER_MAIL_MODE_SEND:
|
||||
mail = sub_8095228(GetFirstIndexofMailType(WONDER_MAIL_TYPE_THANK_YOU));
|
||||
mail = GetMailatIndex(GetFirstIndexofMailType(WONDER_MAIL_TYPE_THANK_YOU));
|
||||
if(mail->unk20.id != ITEM_NOTHING)
|
||||
{
|
||||
SetThankYouMailMenuState(ITEM_EXISTS_ON_THANK_YOU_MAIL);
|
||||
@@ -1330,7 +1330,7 @@ void UpdateThankYouMailText(void)
|
||||
{
|
||||
case 6:
|
||||
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(struct unkStruct_203B480));
|
||||
gUnknown_203B2C4->unk1B8 = *sub_8095228(gUnknown_203B2C4->mailIndex);
|
||||
gUnknown_203B2C4->unk1B8 = *GetMailatIndex(gUnknown_203B2C4->mailIndex);
|
||||
gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
|
||||
break;
|
||||
case 7:
|
||||
@@ -1408,7 +1408,7 @@ void UpdateThankYouMailText(void)
|
||||
gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
|
||||
gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
|
||||
mailIndex = GetMailIndex(6,gUnknown_203B2C4->unk430);
|
||||
mail = sub_8095228(mailIndex);
|
||||
mail = GetMailatIndex(mailIndex);
|
||||
itemIndex = mail->unk20.id;
|
||||
if (itemIndex != ITEM_NOTHING)
|
||||
gUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558
|
||||
|
||||
@@ -28,7 +28,6 @@ extern bool8 sub_80A2824(u8);
|
||||
extern char gUnknown_202E5D8[0x50];
|
||||
extern char gAvailablePokemonNames[0x50];
|
||||
|
||||
extern s32 FindOpenMailSlot(void);
|
||||
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
|
||||
extern void nullsub_130(void);
|
||||
extern void sub_8028348(void);
|
||||
@@ -48,7 +47,6 @@ extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_203B480 *r0);
|
||||
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, void *r5, u32);
|
||||
extern void sub_8095274(u32);
|
||||
extern void sub_80155F0();
|
||||
extern void sub_80951BC(struct unkStruct_203B480 *r0);
|
||||
extern void sub_8023C60();
|
||||
extern u32 sub_8023A94(u32);
|
||||
extern void sub_8024458(s16, u32);
|
||||
@@ -628,7 +626,7 @@ void sub_8028348(void)
|
||||
MemoryFill8((u8 *)&gUnknown_203B2C0->unk130, 0, sizeof(struct WonderMailStruct_203B2C0_sub));
|
||||
gUnknown_203B2C0->unkA8.pokemon.speciesNum = 0;
|
||||
gUnknown_203B2C0->unk130.pokemon.speciesNum = 0;
|
||||
gUnknown_203B2C0->unkA8.mail = *sub_8095228(gUnknown_203B2C0->mailIndex);
|
||||
gUnknown_203B2C0->unkA8.mail = *GetMailatIndex(gUnknown_203B2C0->mailIndex);
|
||||
if(gUnknown_203B2C0->speciesNum != -1)
|
||||
{
|
||||
gUnknown_203B2C0->unkA8.pokemon = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->speciesNum];
|
||||
@@ -1179,7 +1177,7 @@ void sub_8028FDC(void)
|
||||
switch(menuChoice)
|
||||
{
|
||||
case 8:
|
||||
mail = sub_8095228(gUnknown_203B2C0->mailIndex);
|
||||
mail = GetMailatIndex(gUnknown_203B2C0->mailIndex);
|
||||
if(!sub_80A2824(mail->dungeon.id))
|
||||
{
|
||||
SetFriendRescueCounterState(CANT_GO_TO_DUNGEON);
|
||||
|
||||
@@ -180,7 +180,7 @@ void sub_802B3E0(void)
|
||||
gUnknown_203B2C8->unk114.unk16 = 2;
|
||||
gUnknown_203B2C8->unk114.moneyReward = 0;
|
||||
sub_8097790();
|
||||
mail = sub_8095228(gUnknown_203B2C8->unk1);
|
||||
mail = GetMailatIndex(gUnknown_203B2C8->unk1);
|
||||
sub_803C37C(&mail->dungeon, 0, gUnknown_203B2C8->unk114.itemRewards);
|
||||
gUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->dungeon, 0);
|
||||
gUnknown_203B2C8->unk114.itemRewards[1] = ITEM_NOTHING;
|
||||
@@ -241,7 +241,7 @@ void sub_802B5B8(void)
|
||||
|
||||
if (sub_80144A4(&temp) == 0) {
|
||||
uVar2 = sub_8011C34();
|
||||
mail = sub_8095228(gUnknown_203B2C8->unk1);
|
||||
mail = GetMailatIndex(gUnknown_203B2C8->unk1);
|
||||
mail->mailType = WONDER_MAIL_TYPE_AOK;
|
||||
mail->unk28 = uVar2;
|
||||
sub_802B548(3);
|
||||
|
||||
@@ -284,7 +284,7 @@ void sub_803092C(void)
|
||||
sub_8012BC4(r5,0,gUnknown_203B320->unk42 + 1,1,7,gUnknown_203B320->unk58);
|
||||
|
||||
for (index = 0; index < gUnknown_203B320->unk3E; index++) {
|
||||
mail = sub_8095228(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + index]);
|
||||
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + index]);
|
||||
local.unk0[0] = gUnknown_203B320->unk58;
|
||||
local.y = sub_8013800(&gUnknown_203B320->unk24,index);
|
||||
local.unk40 = 7;
|
||||
|
||||
Reference in New Issue
Block a user