mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-12 02:56:01 -05:00
Nonmatch sub_803ABC8 and clean debug/main menu
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803ABC8
|
||||
sub_803ABC8:
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
movs r6, 0x1
|
||||
_0803ABCE:
|
||||
ldr r2, _0803AC08
|
||||
movs r0, 0x58
|
||||
adds r1, r5, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
ldrh r1, [r2]
|
||||
adds r0, r6, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0803AC10
|
||||
lsrs r0, r1, 1
|
||||
ands r0, r6
|
||||
cmp r0, 0
|
||||
beq _0803AC10
|
||||
ldr r0, _0803AC0C
|
||||
ldr r4, [r0]
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r2, r1]
|
||||
bl GetFriendArea
|
||||
ldrb r1, [r4, 0x4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r1, r0
|
||||
bne _0803AC10
|
||||
movs r0, 0
|
||||
b _0803AC1C
|
||||
.align 2, 0
|
||||
_0803AC08: .4byte gRecruitedPokemonRef
|
||||
_0803AC0C: .4byte gUnknown_203B3F4
|
||||
_0803AC10:
|
||||
adds r5, 0x1
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r5, r0
|
||||
ble _0803ABCE
|
||||
movs r0, 0x1
|
||||
_0803AC1C:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803ABC8
|
||||
|
||||
.align 2,0
|
||||
25
include/code_8097670.h
Normal file
25
include/code_8097670.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef GUARD_CODE_8097670_H
|
||||
#define GUARD_CODE_8097670_H
|
||||
|
||||
#include "dungeon_global_data.h"
|
||||
|
||||
// size: 0xC4
|
||||
struct unkStruct_203B494
|
||||
{
|
||||
u32 unk0; // 32 bit bitfield, I think
|
||||
/* 0x4 */ s32 numAdventures;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
/* 0x10 */ struct DungeonLocation dungeonLocation;
|
||||
s16 unk14;
|
||||
s16 unk16;
|
||||
s16 unk18;
|
||||
u32 unk1C[14];
|
||||
u32 unk54[14];
|
||||
u32 unk8C[13];
|
||||
s32 unkC0;
|
||||
};
|
||||
|
||||
void sub_80976F8(u8);
|
||||
|
||||
#endif // GUARD_CODE_8097670_H
|
||||
@@ -1,39 +1,26 @@
|
||||
#ifndef GUARD_DEBUG_MENU_H
|
||||
#define GUARD_DEBUG_MENU_H
|
||||
|
||||
#include "text.h"
|
||||
#include "pokemon.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
enum DebugMenuOptions
|
||||
{
|
||||
MENU_DEBUG_MENU_DUNGEONS = 0,
|
||||
MENU_DEBUG_MENU_FIELD,
|
||||
MENU_DEBUG_MENU_FIELD_MAP,
|
||||
MENU_DEBUG_MENU_FIELD_SCRIPT,
|
||||
MENU_DEBUG_MENU_DEBUG_MENU,
|
||||
MENU_DEBUG_MENU_UNKNOWN_1,
|
||||
MENU_DEBUG_MENU_STORAGE,
|
||||
MENU_DEBUG_MENU_H_OPEN = 9,
|
||||
};
|
||||
#include "text.h"
|
||||
|
||||
// size: 0x1A4
|
||||
struct DebugMenu
|
||||
{
|
||||
// size: 0x1A4
|
||||
struct MenuStruct unk0[4];
|
||||
/* 0x140 */ struct UnkTextStruct2 unk140[4];
|
||||
struct UnkTextStruct2 unk140[4];
|
||||
u32 fill1A0;
|
||||
};
|
||||
|
||||
|
||||
// size: 0x140
|
||||
struct unkStruct_203B3F8
|
||||
{
|
||||
// size: 0x140
|
||||
u32 state;
|
||||
/* 0x0 */ u32 state;
|
||||
s16 unk4;
|
||||
u16 unk6;
|
||||
struct PokemonStruct *pokemon;
|
||||
u32 menuAction;
|
||||
/* 0x8 */ struct PokemonStruct *pokemon;
|
||||
/* 0xC */ u32 menuAction;
|
||||
struct MenuStruct unk10;
|
||||
u32 unk60;
|
||||
u32 unk64;
|
||||
@@ -50,11 +37,20 @@ struct unkStruct_203B3F8
|
||||
struct UnkTextStruct2 unkE0[4];
|
||||
};
|
||||
|
||||
enum DebugMenuOptions
|
||||
{
|
||||
MENU_DEBUG_MENU_DUNGEONS = 0,
|
||||
MENU_DEBUG_MENU_FIELD,
|
||||
MENU_DEBUG_MENU_FIELD_MAP,
|
||||
MENU_DEBUG_MENU_FIELD_SCRIPT,
|
||||
MENU_DEBUG_MENU_DEBUG_MENU,
|
||||
MENU_DEBUG_MENU_UNKNOWN_1,
|
||||
MENU_DEBUG_MENU_STORAGE,
|
||||
MENU_DEBUG_MENU_H_OPEN = 9,
|
||||
};
|
||||
|
||||
void CreateDebugMenu(void);
|
||||
void DeleteDebugMenu(void);
|
||||
u32 UpdateDebugMenu(void);
|
||||
void SetDebugMenuItems(void);
|
||||
void sub_803A3A0(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
#ifndef GUARD_MAIN_MENU_H
|
||||
#define GUARD_MAIN_MENU_H
|
||||
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
enum MainMenuScreens
|
||||
{
|
||||
MENU_MAIN_SCREEN = 1,
|
||||
@@ -30,12 +33,12 @@ enum MainMenuScreens
|
||||
MENU_DEBUG_FIELD_SCRIPT,
|
||||
MENU_DEBUG_DEBUG_MENU,
|
||||
MENU_DEBUG_UNKNOWN_1,
|
||||
MENU_NO_SCREEN_CHANGE = 0xffdc
|
||||
MENU_NO_SCREEN_CHANGE = 65500
|
||||
};
|
||||
|
||||
// size: 0x8
|
||||
struct unkStruct_8035D94
|
||||
{
|
||||
|
||||
union {
|
||||
u8 itemIndex_u8;
|
||||
u32 itemIndex_u32;
|
||||
@@ -43,6 +46,7 @@ struct unkStruct_8035D94
|
||||
s32 numItems;
|
||||
};
|
||||
|
||||
// size: 0x4
|
||||
struct MainMenuSub
|
||||
{
|
||||
u8 unk2C;
|
||||
@@ -50,6 +54,7 @@ struct MainMenuSub
|
||||
u8 unk2E;
|
||||
};
|
||||
|
||||
// size: 0x40
|
||||
struct MainMenu
|
||||
{
|
||||
/* 0x0 */ s32 currMenu;
|
||||
@@ -57,23 +62,24 @@ struct MainMenu
|
||||
/* 0x8 */ s32 lastMenu;
|
||||
u8 padding[0x20];
|
||||
/* 0x2C */ struct MainMenuSub sub;
|
||||
/* 0x30 */ struct unkStruct_8035D94 unk30;
|
||||
struct unkStruct_8035D94 unk30;
|
||||
s16 unk38;
|
||||
u8 unk3A;
|
||||
u8 unk3B;
|
||||
s32 unk3C;
|
||||
};
|
||||
|
||||
|
||||
|
||||
void InitMainMenu(void);
|
||||
void DeleteMainMenu(void);
|
||||
void SetUpMenu(void);
|
||||
s32 UpdateMenu(void);
|
||||
void CleanUpMenu(void);
|
||||
bool8 sub_80363E0(void);
|
||||
void DeleteMainMenu(void);
|
||||
struct MainMenu *GetMainMenu(void);
|
||||
void InitMainMenu(void);
|
||||
void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, s32, const struct UnkTextStruct2 *, const struct MenuItem *, u8, u32, u32);
|
||||
void SetUpMenu(void);
|
||||
void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
void sub_8035CF4(struct MenuStruct*, u32, bool8);
|
||||
struct unkStruct_8035D94 *sub_8035D94(void);
|
||||
void sub_8035DA0(void);
|
||||
struct MainMenu *GetMainMenu(void);
|
||||
bool8 sub_80363E0(void);
|
||||
s32 UpdateMenu(void);
|
||||
|
||||
#endif // GUARD_MAIN_MENU_H
|
||||
|
||||
@@ -162,7 +162,6 @@ SECTIONS {
|
||||
src/ds_menus.o(.text);
|
||||
src/debug_menu.o(.text);
|
||||
src/debug_menu_mid.o(.text);
|
||||
asm/debug_menu_1.o(.text);
|
||||
src/debug_menu_1.o(.text);
|
||||
asm/code_803B050.o(.text);
|
||||
src/code_803B050.o(.text);
|
||||
|
||||
@@ -1,27 +1,12 @@
|
||||
#include "global.h"
|
||||
#include "code_8097670.h"
|
||||
#include "pokemon.h"
|
||||
|
||||
struct unkStruct_203B494
|
||||
{
|
||||
// size: 0xC4
|
||||
u32 unk0; // 32 bit bitfield, I think
|
||||
s32 numAdventures;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
struct DungeonLocation dungeonLocation;
|
||||
s16 unk14;
|
||||
s16 unk16;
|
||||
s16 unk18;
|
||||
u32 unk1C[0xE];
|
||||
u32 unk54[0xE];
|
||||
u32 unk8C[0xD];
|
||||
s32 unkC0;
|
||||
};
|
||||
#include "pokemon_3.h"
|
||||
|
||||
EWRAM_DATA_2 struct unkStruct_203B494 *gUnknown_203B494 = {0};
|
||||
EWRAM_DATA struct unkStruct_203B494 gUnknown_2039778 = {0};
|
||||
|
||||
extern const u8 *gAdventureLogText[];
|
||||
s16 GetBaseSpeciesNoUnown(s16 index);
|
||||
|
||||
void sub_8097670(void)
|
||||
{
|
||||
|
||||
233
src/debug_menu.c
233
src/debug_menu.c
@@ -1,20 +1,18 @@
|
||||
#include "global.h"
|
||||
#include "code_8097670.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "debug_menu.h"
|
||||
#include "friend_area.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
|
||||
EWRAM_DATA_2 struct DebugMenu *gUnknown_203B3EC = {0};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7D40 =
|
||||
static const struct UnkTextStruct2 sUnknown_80E7D40 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
@@ -24,7 +22,7 @@ const struct UnkTextStruct2 gUnknown_80E7D40 =
|
||||
NULL
|
||||
};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7D58 =
|
||||
static const struct UnkTextStruct2 sUnknown_80E7D58 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
@@ -34,7 +32,7 @@ const struct UnkTextStruct2 gUnknown_80E7D58 =
|
||||
NULL
|
||||
};
|
||||
|
||||
const struct MenuItem gDebugMenuItems[8] =
|
||||
static const struct MenuItem sDebugMenuItems[8] =
|
||||
{
|
||||
{"Dungeons", MENU_DEBUG_MENU_DUNGEONS},
|
||||
{"Field", MENU_DEBUG_MENU_FIELD},
|
||||
@@ -46,48 +44,44 @@ const struct MenuItem gDebugMenuItems[8] =
|
||||
{NULL, 10},
|
||||
};
|
||||
|
||||
ALIGNED(4) static const char debug_menu_fill0[] = "pksdir0";
|
||||
ALIGNED(4) static const char debug_menu_fill1[] = "pksdir0";
|
||||
ALIGNED(4) static const char debug_menu_fill2[] = "pksdir0";
|
||||
ALIGNED(4) static const char debug_menu_fill3[] = "pksdir0";
|
||||
ALIGNED(4) static const char debug_menu_fill4[] = "pksdir0";
|
||||
ALIGNED(4) static const char debug_menu_fill5[] = "pksdir0";
|
||||
ALIGNED(4) static const char debug_menu_fill6[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill1[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill2[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill3[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill4[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill5[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill6[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 sDebugMenuFill7[] = "pksdir0";
|
||||
|
||||
|
||||
|
||||
extern void sub_80976F8(u8);
|
||||
extern void sub_803A3BC(void);
|
||||
extern void sub_803A3A0(void);
|
||||
|
||||
extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct*, u32, u32);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_808D1DC(u8 *);
|
||||
// pokemon.s
|
||||
extern void sub_808CFD0(u8 *, s32, u8 *, u32, u32 *, u16 *);
|
||||
extern void sub_808D1DC(u8 *);
|
||||
|
||||
void SetDebugMenuItems(void);
|
||||
void sub_803A3A0(void);
|
||||
void sub_803A3BC(void);
|
||||
|
||||
void CreateDebugMenu(void)
|
||||
{
|
||||
int index;
|
||||
s32 index;
|
||||
|
||||
if (gUnknown_203B3EC == NULL) {
|
||||
gUnknown_203B3EC = MemoryAlloc(sizeof(struct DebugMenu), 8);
|
||||
MemoryFill8((u8 *)gUnknown_203B3EC, 0, sizeof(struct DebugMenu));
|
||||
}
|
||||
for(index = 0; index < 4; index++){
|
||||
gUnknown_203B3EC->unk140[index] = gUnknown_80E7D40;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3EC->unk140, 1, 1);
|
||||
SetDebugMenuItems();
|
||||
if (gUnknown_203B3EC == NULL) {
|
||||
gUnknown_203B3EC = MemoryAlloc(sizeof(struct DebugMenu), 8);
|
||||
MemoryFill8((u8 *)gUnknown_203B3EC, 0, sizeof(struct DebugMenu));
|
||||
}
|
||||
|
||||
for (index = 0; index < 4; index++)
|
||||
gUnknown_203B3EC->unk140[index] = sUnknown_80E7D40;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3EC->unk140, 1, 1);
|
||||
SetDebugMenuItems();
|
||||
}
|
||||
|
||||
void DeleteDebugMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, 1, 1);
|
||||
if(gUnknown_203B3EC != NULL)
|
||||
{
|
||||
if (gUnknown_203B3EC != NULL) {
|
||||
MemoryFree(gUnknown_203B3EC);
|
||||
gUnknown_203B3EC = NULL;
|
||||
}
|
||||
@@ -95,60 +89,60 @@ void DeleteDebugMenu(void)
|
||||
|
||||
u32 UpdateDebugMenu(void)
|
||||
{
|
||||
u32 nextMenu;
|
||||
s32 counter;
|
||||
s32 debugMenuAction;
|
||||
u32 nextMenu;
|
||||
s32 counter;
|
||||
s32 debugMenuAction;
|
||||
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
debugMenuAction = 11;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
debugMenuAction = 11;
|
||||
|
||||
if (sub_8012FD8(&gUnknown_203B3EC->unk0[0]) == 0) {
|
||||
sub_8013114(&gUnknown_203B3EC->unk0[0], &debugMenuAction);
|
||||
}
|
||||
if (sub_8012FD8(&gUnknown_203B3EC->unk0[0]) == 0)
|
||||
sub_8013114(&gUnknown_203B3EC->unk0[0], &debugMenuAction);
|
||||
|
||||
switch(debugMenuAction) {
|
||||
case MENU_DEBUG_MENU_DUNGEONS:
|
||||
nextMenu = MENU_DEBUG_DUNGEON;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_FIELD:
|
||||
nextMenu = MENU_DEBUG_FIELD;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_FIELD_MAP:
|
||||
nextMenu = MENU_DEBUG_FIELD_MAP;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_FIELD_SCRIPT:
|
||||
nextMenu = MENU_DEBUG_FIELD_SCRIPT;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_DEBUG_MENU:
|
||||
nextMenu = MENU_DEBUG_DEBUG_MENU;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_UNKNOWN_1: // No option that correponds to this one
|
||||
nextMenu = MENU_DEBUG_UNKNOWN_1;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_STORAGE:
|
||||
sub_803A3BC();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_H_OPEN:
|
||||
for(counter = 0; counter < 0x20; counter++){
|
||||
sub_80976F8(counter);
|
||||
}
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 10:
|
||||
sub_803A3A0();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 11:
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
}
|
||||
return nextMenu;
|
||||
switch (debugMenuAction) {
|
||||
case MENU_DEBUG_MENU_DUNGEONS:
|
||||
nextMenu = MENU_DEBUG_DUNGEON;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_FIELD:
|
||||
nextMenu = MENU_DEBUG_FIELD;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_FIELD_MAP:
|
||||
nextMenu = MENU_DEBUG_FIELD_MAP;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_FIELD_SCRIPT:
|
||||
nextMenu = MENU_DEBUG_FIELD_SCRIPT;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_DEBUG_MENU:
|
||||
nextMenu = MENU_DEBUG_DEBUG_MENU;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_UNKNOWN_1: // No option that correponds to this one
|
||||
nextMenu = MENU_DEBUG_UNKNOWN_1;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_STORAGE:
|
||||
sub_803A3BC();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case MENU_DEBUG_MENU_H_OPEN:
|
||||
for(counter = 0; counter < 0x20; counter++)
|
||||
sub_80976F8(counter);
|
||||
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 10:
|
||||
sub_803A3A0();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 11:
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
}
|
||||
return nextMenu;
|
||||
}
|
||||
|
||||
void SetDebugMenuItems(void)
|
||||
{
|
||||
SetMenuItems(gUnknown_203B3EC->unk0, gUnknown_203B3EC->unk140, 0, &gUnknown_80E7D58, gDebugMenuItems, 1, 0xd, 0);
|
||||
sub_8035CF4(gUnknown_203B3EC->unk0,0,1);
|
||||
SetMenuItems(gUnknown_203B3EC->unk0, gUnknown_203B3EC->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0);
|
||||
sub_8035CF4(gUnknown_203B3EC->unk0, 0, 1);
|
||||
}
|
||||
|
||||
void sub_803A3A0(void)
|
||||
@@ -158,41 +152,42 @@ void sub_803A3A0(void)
|
||||
|
||||
void sub_803A3BC(void)
|
||||
{
|
||||
s32 speciesIndex;
|
||||
u8 sp_0x8 [88];
|
||||
u16 r7 [4]; // r7
|
||||
u8 buffer [20]; // r6
|
||||
u32 sp_0x7C;
|
||||
s32 sp_0x80;
|
||||
s32 speciesIndex;
|
||||
u8 sp_0x8 [88];
|
||||
u16 r7 [4]; // r7
|
||||
u8 buffer [20]; // r6
|
||||
u32 sp_0x7C;
|
||||
s32 sp_0x80;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register s32 index asm("r5");
|
||||
register u32 r9 asm("r9");
|
||||
#else
|
||||
s32 index;
|
||||
u32 r9;
|
||||
#endif
|
||||
#ifndef NONMATCHING
|
||||
register s32 index asm("r5");
|
||||
register u32 r9 asm("r9");
|
||||
#else
|
||||
s32 index;
|
||||
u32 r9;
|
||||
#endif
|
||||
|
||||
index = 1;
|
||||
do {
|
||||
UnlockFriendArea(index);
|
||||
index++;
|
||||
} while (index < NUM_FRIEND_AREAS);
|
||||
index = 1;
|
||||
do {
|
||||
UnlockFriendArea(index);
|
||||
index++;
|
||||
} while (index < NUM_FRIEND_AREAS);
|
||||
|
||||
index = 0;
|
||||
do {
|
||||
r9 = 0;
|
||||
sp_0x7C = 0x1006;
|
||||
index = index + 1;
|
||||
speciesIndex = index * 0x10000 >> 0x10; // dumb way to force s16
|
||||
memset(r7,0,8);
|
||||
r7[0] = 0x27;
|
||||
CopyMonsterNametoBuffer(buffer, speciesIndex);
|
||||
CopyStringtoBuffer(buffer, buffer);
|
||||
buffer[0] = 0x40;
|
||||
sub_808CFD0(sp_0x8,speciesIndex,buffer,0x43,&sp_0x7C,r7);
|
||||
sub_808D1DC(sp_0x8);
|
||||
} while (index < 300);
|
||||
sp_0x80 = r9;
|
||||
WriteSavetoPak(&sp_0x80,1);
|
||||
}
|
||||
index = 0;
|
||||
do {
|
||||
r9 = 0;
|
||||
sp_0x7C = 0x1006;
|
||||
index++;
|
||||
speciesIndex = index * 0x10000 >> 0x10; // dumb way to force s16
|
||||
memset(r7, 0, 8);
|
||||
r7[0] = 0x27;
|
||||
CopyMonsterNametoBuffer(buffer, speciesIndex);
|
||||
CopyStringtoBuffer(buffer, buffer);
|
||||
buffer[0] = 0x40;
|
||||
sub_808CFD0(sp_0x8, speciesIndex,buffer, 0x43, &sp_0x7C, r7);
|
||||
sub_808D1DC(sp_0x8);
|
||||
} while (index < 300);
|
||||
|
||||
sp_0x80 = r9;
|
||||
WriteSavetoPak(&sp_0x80, 1);
|
||||
}
|
||||
@@ -1,16 +1,17 @@
|
||||
#include "global.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "friend_area.h"
|
||||
#include "item.h"
|
||||
#include "team_inventory.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "pokemon.h"
|
||||
#include "team_inventory.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "menu_input.h"
|
||||
#include "friend_area.h"
|
||||
#include "code_80130A8.h"
|
||||
|
||||
// size: 0x138
|
||||
struct unkStruct_203B3F0
|
||||
{
|
||||
// size: 0x138
|
||||
u32 state;
|
||||
u8 id;
|
||||
u32 menuAction;
|
||||
@@ -31,9 +32,9 @@ struct unkStruct_203B3F0
|
||||
|
||||
extern struct unkStruct_203B3F0 *gUnknown_203B3F0;
|
||||
|
||||
// size: 0xFC
|
||||
struct unkStruct_203B3F4
|
||||
{
|
||||
// size: 0xFC
|
||||
u32 state;
|
||||
u8 friendArea;
|
||||
u8 fill5[0x8 - 5];
|
||||
@@ -45,8 +46,6 @@ struct unkStruct_203B3F4
|
||||
|
||||
extern struct unkStruct_203B3F4 *gUnknown_203B3F4;
|
||||
|
||||
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7E34 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
@@ -71,8 +70,10 @@ const struct UnkTextStruct2 gUnknown_80E7E64 = {
|
||||
0x04, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
ALIGNED(4) const char gDebug_NumberText[] = "Number?";
|
||||
ALIGNED(4) static const u8 fill0[] = "pksdir0";
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7E8C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
@@ -89,52 +90,56 @@ const struct UnkTextStruct2 gUnknown_80E7EA4 = {
|
||||
0x03, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gDebug_CloseText[] = "CLOSE";
|
||||
ALIGNED(4) const u8 gDebug_OpenText[] = "OPEN";
|
||||
ALIGNED(4) static const u8 fill1[] = "pksdir0";
|
||||
|
||||
// friend_area.c
|
||||
extern bool8 *gFriendAreas;
|
||||
// data_80D47B8.s
|
||||
extern const char *gUnknown_80D4970[];
|
||||
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern void sub_801C8C4(u32, u32, u32, u32);
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_801CCD8();
|
||||
extern void sub_801CCD8(void);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern u8 sub_801CB24();
|
||||
extern void sub_801CBB8();
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
extern u8 sub_801CB24(void);
|
||||
extern void sub_801CBB8(void);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
extern void sub_80211AC(u32, u32);
|
||||
extern void sub_8021354(u32);
|
||||
extern void sub_8021494();
|
||||
extern void sub_803AA34();
|
||||
extern void sub_8021494(void);
|
||||
extern void sub_803AA34(void);
|
||||
extern void sub_8021774(u8,u32, u32);
|
||||
extern void sub_809249C(u8, u32);
|
||||
extern void sub_8021830(void);
|
||||
extern u32 sub_80217EC(void);
|
||||
extern u8 sub_803ABC8(void);
|
||||
extern u32 sub_8021274(u32);
|
||||
extern u8 sub_802132C(void);
|
||||
extern void sub_80213A0(void);
|
||||
extern void sub_803AAC4();
|
||||
extern void sub_803AB34();
|
||||
extern void sub_803ABAC();
|
||||
extern void sub_803AAC4(void);
|
||||
extern void sub_803AB34(void);
|
||||
void sub_803ABAC(void);
|
||||
|
||||
void sub_803A924(u32);
|
||||
void sub_803A93C();
|
||||
void sub_803A9AC();
|
||||
void sub_803A93C(void);
|
||||
void sub_803A9AC(void);
|
||||
|
||||
void sub_803A504(u32);
|
||||
void sub_803A51C();
|
||||
void sub_803A5A0();
|
||||
void sub_803A690();
|
||||
void sub_803A6F0();
|
||||
void sub_803A740();
|
||||
void sub_803A7B0();
|
||||
void sub_803A810();
|
||||
void sub_803A86C();
|
||||
|
||||
void sub_803A51C(void);
|
||||
void sub_803A5A0(void);
|
||||
void sub_803A690(void);
|
||||
void sub_803A6F0(void);
|
||||
void sub_803A740(void);
|
||||
void sub_803A7B0(void);
|
||||
void sub_803A810(void);
|
||||
void sub_803A86C(void);
|
||||
bool8 sub_803ABC8(void);
|
||||
|
||||
// Unused
|
||||
u32 sub_803A45C(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
@@ -144,6 +149,7 @@ u32 sub_803A45C(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Unused
|
||||
u32 sub_803A48C(void)
|
||||
{
|
||||
switch(gUnknown_203B3F0->state) {
|
||||
@@ -166,6 +172,7 @@ u32 sub_803A48C(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_803A4E8(void)
|
||||
{
|
||||
if(gUnknown_203B3F0 != NULL)
|
||||
@@ -536,3 +543,74 @@ void sub_803ABAC(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#if NONMATCHING // https://decomp.me/scratch/LQcwz
|
||||
bool8 sub_803ABC8(void)
|
||||
{
|
||||
struct PokemonStruct *mon;
|
||||
s32 i;
|
||||
s32 mask;
|
||||
|
||||
for (i = 0, mask = 1; i < NUM_MONSTERS; i++) {
|
||||
mon = &gRecruitedPokemonRef->pokemon[i];
|
||||
|
||||
if ((mask & mon->unk0) != 0
|
||||
&& ((mon->unk0 >> 1) & mask) != 0
|
||||
&& gUnknown_203B3F4->friendArea == GetFriendArea(mon->speciesNum))
|
||||
return FALSE;
|
||||
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
bool8 sub_803ABC8(void)
|
||||
{
|
||||
asm_unified(
|
||||
"push {r4-r6,lr}\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"\tmovs r6, 0x1\n"
|
||||
"_0803ABCE:\n"
|
||||
"\tldr r2, _0803AC08\n"
|
||||
"\tmovs r0, 0x58\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmuls r1, r0\n"
|
||||
"\tldr r0, [r2]\n"
|
||||
"\tadds r2, r0, r1\n"
|
||||
"\tldrh r1, [r2]\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tands r0, r1\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0803AC10\n"
|
||||
"\tlsrs r0, r1, 1\n"
|
||||
"\tands r0, r6\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0803AC10\n"
|
||||
"\tldr r0, _0803AC0C\n"
|
||||
"\tldr r4, [r0]\n"
|
||||
"\tmovs r1, 0x8\n"
|
||||
"\tldrsh r0, [r2, r1]\n"
|
||||
"\tbl GetFriendArea\n"
|
||||
"\tldrb r1, [r4, 0x4]\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tcmp r1, r0\n"
|
||||
"\tbne _0803AC10\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tb _0803AC1C\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0803AC08: .4byte gRecruitedPokemonRef\n"
|
||||
"_0803AC0C: .4byte gUnknown_203B3F4\n"
|
||||
"_0803AC10:\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"\tmovs r0, 0xCE\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r5, r0\n"
|
||||
"\tble _0803ABCE\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"_0803AC1C:\n"
|
||||
"\tpop {r4-r6}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "other_random.h"
|
||||
#include "friend_area.h"
|
||||
#include "team_inventory.h"
|
||||
|
||||
#include "code_8097670.h"
|
||||
|
||||
extern u8 gUnknown_2000A88[0x400];
|
||||
|
||||
@@ -52,7 +52,6 @@ extern void sub_80018D8(u32, u32, u32);
|
||||
extern void sub_809733C(u32, u32);
|
||||
extern void sub_80973A8(u32, u32);
|
||||
extern u8 HasRecruitedMon(u32);
|
||||
extern void sub_80976F8(u32);
|
||||
extern void sub_800199C(u32, s32, u32, s32);
|
||||
extern s32 sub_8001784(u32, s32, u16);
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "menu_input.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "main_menu.h"
|
||||
|
||||
extern void SetFriendRescueMenuState(u32);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
@@ -253,11 +254,9 @@ extern void sub_80155F0();
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern u8 sub_801CB24(void);
|
||||
extern u32 sub_8030DA0(void);
|
||||
extern void sub_8030DE4(void);
|
||||
@@ -308,7 +307,6 @@ extern u32 sub_80306A8(u32 wonderMailType, u32, struct UnkTextStruct2_sub *, u32
|
||||
extern u32 sub_8030894(void);
|
||||
extern void sub_803092C(void);
|
||||
extern bool8 sub_8031D70(u32 mailIndex, s32);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern s32 sub_8037B28(u32);
|
||||
extern s32 sub_8037D64(u32, void *, void *);
|
||||
extern s32 sub_80381F4(u32, void *, void *);
|
||||
@@ -322,7 +320,6 @@ extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern void MemoryFill8(u8 *dest, u8 value, s32 size);
|
||||
extern void nullsub_23(u32);
|
||||
extern void ResetUnusedInputStruct(void);
|
||||
extern void SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index, const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6, u32 menuAction, u32 unused_8);
|
||||
extern void sprintfStatic(char *buffer, const char *text, ...);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
|
||||
|
||||
@@ -42,9 +42,6 @@ u8 IsQuickSave(void);
|
||||
void DrawLoadScreenText(void);
|
||||
void sub_80397B4(void);
|
||||
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
|
||||
extern void sub_80920D8(u8 *);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern bool8 sub_80023E4(u32);
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
#include "adventure_log.h"
|
||||
#include "debug_menu.h"
|
||||
#include "ds_menus.h"
|
||||
@@ -18,12 +15,12 @@
|
||||
#include "trade_items_menu.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
|
||||
// NOTE: 0x13 and 0x14
|
||||
// NOTE: 0x13 and 0x14
|
||||
// Communication Screen?
|
||||
// Got Communication warning when I wrote them to the struct
|
||||
|
||||
// NOTE: 0x29, 0x2A, 0x2B, 0x2C
|
||||
// Triggers a save
|
||||
// Triggers a save
|
||||
|
||||
// NOTE: 0x2D
|
||||
// Triggers a save and then goes to 0x13 (comms warning)
|
||||
@@ -623,8 +620,8 @@ void sub_8035C1C(void)
|
||||
gMainMenu->sub.unk2D = 0;
|
||||
}
|
||||
|
||||
void
|
||||
SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index, const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6 ,u32 menuAction, u32 unused_8)
|
||||
void SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index,
|
||||
const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6, u32 menuAction, u32 unused_8)
|
||||
{
|
||||
unkData[index] = *param_4;
|
||||
ResetUnusedInputStruct();
|
||||
@@ -778,10 +775,10 @@ void DrawMainMenu(void)
|
||||
|
||||
if(SetMainMenuText())
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE);
|
||||
}
|
||||
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE);
|
||||
gUnknown_203B34C->unk0 = 1;
|
||||
}
|
||||
|
||||
@@ -808,8 +805,8 @@ u32 UpdateMainMenu(void)
|
||||
|
||||
if(SetMainMenuText())
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, 1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, 0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE);
|
||||
}
|
||||
switch(nextMenu)
|
||||
{
|
||||
@@ -820,8 +817,8 @@ u32 UpdateMainMenu(void)
|
||||
gUnknown_203B34C->unk0 = 1;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
ResetUnusedInputStruct();
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, 1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, 0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
sub_8035DA0();
|
||||
@@ -950,9 +947,9 @@ void sub_803623C(void)
|
||||
SetMainMenuItems();
|
||||
gUnknown_203B34C->currMenuChoice = -1;
|
||||
if (SetMainMenuText()) {
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE);
|
||||
}
|
||||
|
||||
void SetMainMenuItems(void)
|
||||
|
||||
@@ -447,9 +447,7 @@ static const u8 fill3[] = "pksdir0";
|
||||
static const u8 fill4[] = "pksdir0";
|
||||
|
||||
extern void sub_8037400(void);
|
||||
extern void sub_8035CF4(struct MenuStruct *,u32, u32);
|
||||
extern void sub_80376CC();
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
|
||||
extern u32 sub_8037C10(u32);
|
||||
extern void sub_8037748(void);
|
||||
@@ -457,7 +455,6 @@ extern void sub_80371B8(void);
|
||||
extern void sub_8037900(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern u32 sub_8037798(void);
|
||||
extern void SetMenuItems(struct MenuStruct *, void *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8005838(u32, u32);
|
||||
extern void sub_80060EC();
|
||||
extern void sub_800CB20();
|
||||
@@ -503,7 +500,7 @@ void sub_8036FDC(s32 param_1)
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B35C->unk15C,1,1);
|
||||
SetMenuItems(gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,gUnknown_80E6CE8,0,6,0);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C,0,1);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C,0,TRUE);
|
||||
sub_80376CC();
|
||||
}
|
||||
|
||||
@@ -579,7 +576,7 @@ void sub_80371B8(void)
|
||||
// The item exchange with your friend
|
||||
// went through successfully
|
||||
SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50, gUnknown_80E6C68, 0, 6, 0);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, TRUE);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -639,7 +636,7 @@ void sub_80371B8(void)
|
||||
break;
|
||||
}
|
||||
SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, TRUE);
|
||||
if ((gUnknown_203B35C->linkStatus != COMMS_GOOD) && (gUnknown_203B35C->unk0 == 0) &&
|
||||
(item = sub_8035D94(), item->itemIndex.itemIndex_u8 != ITEM_NOTHING) && (item->numItems != 0)) {
|
||||
gTeamInventoryRef->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems;
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
#include "wonder_mail.h"
|
||||
#include "menu_input.h"
|
||||
#include "dungeon.h"
|
||||
#include "main_menu.h"
|
||||
|
||||
#define RESCUE_PASSWORD_SIZE 0x36
|
||||
|
||||
@@ -251,8 +250,6 @@ extern void sub_8031E10(void);
|
||||
extern u32 sub_80154F0(void);
|
||||
extern u32 sub_8031DCC(void);
|
||||
extern void sub_8031E00(void);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *r0, u32, u32);
|
||||
extern void AddSprite(struct unkSprite *, u32, u32, u32);
|
||||
extern void xxx_draw_string_80144C4(void);
|
||||
|
||||
@@ -589,7 +586,7 @@ void DisplayRescuePasswordError(u32 passwordError)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,1);
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE);
|
||||
}
|
||||
|
||||
void DisplayPasswordAcceptScreen(void)
|
||||
@@ -599,7 +596,7 @@ void DisplayPasswordAcceptScreen(void)
|
||||
sub_800641C(0,1,1);
|
||||
sub_80155F0();
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0);
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,1);
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE);
|
||||
}
|
||||
|
||||
u32 ConvertMenutoRescuePasswordState(u32 unused)
|
||||
|
||||
@@ -133,14 +133,11 @@ ALIGNED(4) const u8 gUnknown_80E7178[] = _("{CENTER_ALIGN}The data could not be
|
||||
ALIGNED(4) static const u8 save_menu_fill0[] = "pksdir0";
|
||||
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_80384D0();
|
||||
extern void sub_8038830();
|
||||
extern void sub_80388C4(void);
|
||||
extern void sub_8014114();
|
||||
extern void sub_80140F8(void);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void AddSprite(struct unkSprite *, u32, u32, u32);
|
||||
|
||||
void CreateSaveMenu(s32 currMenu)
|
||||
@@ -167,7 +164,7 @@ void CreateSaveMenu(s32 currMenu)
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems,
|
||||
0,6,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,1);
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,TRUE);
|
||||
gUnknown_203B364->unk4 = 0;
|
||||
gUnknown_203B364->currMenu = currMenu;
|
||||
sub_8038830();
|
||||
@@ -222,7 +219,7 @@ s32 UpdateSaveMenu(void)
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
return MENU_COMMUNICATION_1;
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,1);
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,TRUE);
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
case SAVE_NOT_WRTTEN:
|
||||
@@ -239,7 +236,7 @@ s32 UpdateSaveMenu(void)
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeSavedMenuItems,0,6,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,1);
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,TRUE);
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "main_menu.h"
|
||||
|
||||
extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
|
||||
|
||||
@@ -155,7 +156,6 @@ const struct MenuItem gUnknown_80DEEE4[4] =
|
||||
#include "data/thank_you_wonder_mail.h"
|
||||
|
||||
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *r0, u32);
|
||||
extern void sub_8030810(u32);
|
||||
extern u32 sub_8031DCC(void);
|
||||
extern void sub_8031E00(void);
|
||||
@@ -214,7 +214,6 @@ extern void sub_8031E10();
|
||||
extern void sub_802F2C0();
|
||||
extern void SetThankYouMailMenuState(u32);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void sub_802F204(struct unkStruct_802F204 *, u32);
|
||||
extern void sub_80151C0(u32, u8 *);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
@@ -234,7 +233,6 @@ extern u32 GetDungeonTeamRankPts(struct DungeonLocation *, u32);
|
||||
extern void sub_8031D70(u8, u32);
|
||||
|
||||
extern void sub_803092C(void);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
@@ -654,7 +652,7 @@ void sub_802A230(void)
|
||||
sub_800641C(gUnknown_203B2C4->unk3BC, 1, 1);
|
||||
sub_803092C();
|
||||
if (gUnknown_203B2C4->fallbackState == 0x2b) {
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C, 3, TRUE);
|
||||
SetThankYouMailMenuState(0x11);
|
||||
}
|
||||
else {
|
||||
@@ -706,7 +704,7 @@ void sub_802A33C(void)
|
||||
sub_800641C(gUnknown_203B2C4->unk3BC,1,1);
|
||||
sub_801CB5C(1);
|
||||
if (gUnknown_203B2C4->fallbackState == 0x2b) {
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
|
||||
SetThankYouMailMenuState(0x14);
|
||||
}
|
||||
else {
|
||||
@@ -1296,7 +1294,7 @@ void UpdateThankYouMailText(void)
|
||||
sub_8006518(gUnknown_203B2C4->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
|
||||
break;
|
||||
case 0x13:
|
||||
if (sub_801D008() != 0)
|
||||
@@ -1313,7 +1311,7 @@ void UpdateThankYouMailText(void)
|
||||
sub_8006518(gUnknown_203B2C4->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
|
||||
break;
|
||||
case THANK_YOU_MAIL_COMMS_FINISHED:
|
||||
gUnknown_203B2C4->linkError = COMMS_GOOD;
|
||||
|
||||
@@ -86,19 +86,16 @@ extern u32 sub_801CA08(u32);
|
||||
extern void sub_801CBB8();
|
||||
extern u8 sub_801CB24();
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_801CCD8();
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
|
||||
extern u8 sub_801CF14(u32);
|
||||
extern u32 sub_801D008();
|
||||
extern void sub_801C8C4(u32, u32, s32 *, u32);
|
||||
extern s32 sub_8037B28(u32);
|
||||
extern void sub_8011830(void);
|
||||
extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void nullsub_23(u32);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
extern s32 sub_80381F4(u32, void *, void *);
|
||||
@@ -337,7 +334,7 @@ void sub_8036728(void)
|
||||
sub_800641C(gTradeItemsMenu->unk1E4, 1, 1);
|
||||
sub_801CB5C(1);
|
||||
if (gTradeItemsMenu->fallbackState == 0x13) {
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 1);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE);
|
||||
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU);
|
||||
}
|
||||
else {
|
||||
@@ -357,14 +354,14 @@ void sub_8036788(void)
|
||||
case 1:
|
||||
// When you change the #
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, FALSE);
|
||||
sub_8036F30();
|
||||
break;
|
||||
case 2:
|
||||
// If you back out of the # selection
|
||||
sub_8035CC0(gTradeItemsMenu->unk184, 2);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 1);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE);
|
||||
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU);
|
||||
break;
|
||||
case 3:
|
||||
@@ -626,7 +623,7 @@ void sub_8036B28(void)
|
||||
SetMenuItems(gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC,
|
||||
gUnknown_80E6104,1,0,0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gTradeItemsMenu->unk44,3,1);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44,3,TRUE);
|
||||
break;
|
||||
case TRADE_ITEMS_SEND_ITEM_NUMBER:
|
||||
sub_8036F74();
|
||||
@@ -782,7 +779,7 @@ void sub_8036F74(void)
|
||||
sub_8006518(gTradeItemsMenu->unk184);
|
||||
sub_8036ECC(2, gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, FALSE);
|
||||
sub_8036F30();
|
||||
}
|
||||
|
||||
|
||||
@@ -64,8 +64,6 @@ static const u8 fill0[] = "pksdir0";
|
||||
|
||||
extern void AddSprite(struct unkSprite *, u32, u32, u32);
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_80384D0();
|
||||
|
||||
void sub_80382E4(s32 currMenu)
|
||||
@@ -88,7 +86,7 @@ void sub_80382E4(s32 currMenu)
|
||||
SetMenuItems(gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC,
|
||||
0,4,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B360->unk8,0,1);
|
||||
sub_8035CF4(gUnknown_203B360->unk8,0,TRUE);
|
||||
gUnknown_203B360->currMenu = currMenu;
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
sub_8038440();
|
||||
|
||||
@@ -42,7 +42,6 @@ extern void sub_8021774(u8,u32, u32);
|
||||
extern void sub_809249C(u8, u32);
|
||||
extern void sub_8021830(void);
|
||||
extern u32 sub_80217EC(void);
|
||||
extern u8 sub_803ABC8(void);
|
||||
extern u32 sub_8021274(u32);
|
||||
extern u8 sub_802132C(void);
|
||||
extern void sub_80213A0(void);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "menu_input.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "main_menu.h"
|
||||
|
||||
extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
|
||||
|
||||
@@ -33,8 +34,6 @@ extern u32 sub_8030768(u32);
|
||||
extern s8 sub_80307EC();
|
||||
extern void sub_8030D40(u8, u32);
|
||||
extern void sub_8030810(u32);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *r0, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *r0, u32, u32);
|
||||
extern u32 sub_8030DA0(void);
|
||||
extern void sub_8030DE4(void);
|
||||
extern void sub_803092C(void);
|
||||
@@ -74,7 +73,6 @@ extern u32 sub_8023CE8(void);
|
||||
extern u32 sub_8030894(void);
|
||||
extern void sub_8030F58(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8029B34(void);
|
||||
extern void sub_8029AD8(void);
|
||||
extern void sub_8029AF4(void);
|
||||
@@ -559,7 +557,7 @@ void sub_8028348(void)
|
||||
sub_8006518(gUnknown_203B2C0->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0);
|
||||
sub_8023DA4();
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
break;
|
||||
case NO_POKEMON_IN_FRIEND_AREA:
|
||||
sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
|
||||
@@ -714,7 +712,7 @@ void sub_8028348(void)
|
||||
sub_8006518(gUnknown_203B2C0->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
break;
|
||||
case 0xA:
|
||||
gUnknown_203B2C0->mailCount = CountAllMail();
|
||||
@@ -1273,7 +1271,7 @@ void sub_80291AC(void)
|
||||
sub_803092C();
|
||||
if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
SetFriendRescueCounterState(0x20);
|
||||
}
|
||||
else
|
||||
@@ -1620,7 +1618,7 @@ void sub_8029740(void)
|
||||
sub_803092C();
|
||||
if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
SetFriendRescueCounterState(0x2B);
|
||||
}
|
||||
else
|
||||
@@ -1729,7 +1727,7 @@ void sub_8029944(void)
|
||||
sub_8023B7C(1);
|
||||
if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
SetFriendRescueCounterState(0x34);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user