mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-12 03:55:47 -05:00
Split credits
This commit is contained in:
@@ -324,6 +324,11 @@ _080140BC:
|
||||
_080140D8: .4byte gUnknown_80D47C8
|
||||
thumb_func_end sub_80140B4
|
||||
|
||||
|
||||
@ May be the start of a new file, since menu_input data has been used already
|
||||
|
||||
|
||||
|
||||
thumb_func_start sub_80140DC
|
||||
sub_80140DC:
|
||||
push {lr}
|
||||
|
||||
@@ -1,3 +1,95 @@
|
||||
.section .rodata
|
||||
|
||||
@ credits1.c
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
|
||||
.global gUnknown_80E4A10
|
||||
gUnknown_80E4A10: @ 80E4A10
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E4A28
|
||||
gUnknown_80E4A28: @ 80E4A28
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x02, 0x00
|
||||
.byte 0x1a, 0x00, 0x10, 0x00
|
||||
.byte 0x10, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E4A40
|
||||
gUnknown_80E4A40: @ 80E4A40
|
||||
.byte 0x18, 0x18
|
||||
.byte 0x38, 0x00
|
||||
.byte 0x21, 0xff
|
||||
.byte 0x22, 0xff
|
||||
.byte 0x23, 0xff
|
||||
.byte 0x24, 0xff
|
||||
.byte 0x25, 0xff
|
||||
.byte 0x26, 0xff
|
||||
.byte 0x27, 0xff
|
||||
.byte 0x28, 0xff
|
||||
.byte 0x29, 0xff
|
||||
.byte 0x2a, 0xff
|
||||
.byte 0x2b, 0xff
|
||||
.byte 0x2c, 0xff
|
||||
.byte 0x2d, 0xff
|
||||
.byte 0x2e, 0xff
|
||||
.byte 0x2f, 0xff
|
||||
.byte 0x30, 0xff
|
||||
.byte 0x31, 0xff
|
||||
.byte 0x32, 0xff
|
||||
.byte 0x33, 0xff
|
||||
.byte 0x34, 0xff
|
||||
.byte 0x35, 0xff
|
||||
.byte 0x36, 0xff
|
||||
.byte 0x37, 0xff
|
||||
.byte 0x38, 0xff
|
||||
.byte 0x39, 0xff
|
||||
.byte 0x3a, 0xff
|
||||
.byte 0x41, 0xff
|
||||
.byte 0x42, 0xff
|
||||
.byte 0x43, 0xff
|
||||
.byte 0x44, 0xff
|
||||
.byte 0x45, 0xff
|
||||
.byte 0x46, 0xff
|
||||
.byte 0x47, 0xff
|
||||
.byte 0x48, 0xff
|
||||
.byte 0x49, 0xff
|
||||
.byte 0x4a, 0xff
|
||||
.byte 0x4b, 0xff
|
||||
.byte 0x4c, 0xff
|
||||
.byte 0x4d, 0xff
|
||||
.byte 0x4e, 0xff
|
||||
.byte 0x4f, 0xff
|
||||
.byte 0x50, 0xff
|
||||
.byte 0x51, 0xff
|
||||
.byte 0x52, 0xff
|
||||
.byte 0x53, 0xff
|
||||
.byte 0x54, 0xff
|
||||
.byte 0x55, 0xff
|
||||
.byte 0x56, 0xff
|
||||
.byte 0x57, 0xff
|
||||
.byte 0x58, 0xff
|
||||
.byte 0x59, 0xff
|
||||
.byte 0x5a, 0xff
|
||||
.byte 0x10, 0xff
|
||||
.byte 0x11, 0xff
|
||||
.byte 0x12, 0xff
|
||||
.byte 0x13, 0xff
|
||||
.byte 0x14, 0xff
|
||||
.byte 0x15, 0xff
|
||||
.byte 0x16, 0xff
|
||||
.byte 0x17, 0xff
|
||||
.byte 0x18, 0xff
|
||||
.byte 0x19, 0xff
|
||||
|
||||
@ Actual Start of Credits
|
||||
.global Credits_StaffCredits
|
||||
Credits_StaffCredits:
|
||||
@@ -915,6 +1007,4 @@ gCreditsTable: @ 80E591C
|
||||
.4byte Credits_OriginalDirector
|
||||
.4byte Credits_Producers
|
||||
.4byte Credits_ExecutiveProducer
|
||||
.4byte Credits_ExecutiveProducer2
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
.4byte Credits_ExecutiveProducer2
|
||||
@@ -1,6 +1,6 @@
|
||||
.section .rodata
|
||||
|
||||
@ START code_80130A8 #1 (probably part of menu_input because the "pksdir0" is in there)
|
||||
@ START menu_input
|
||||
.align 2, 0
|
||||
|
||||
.global UnkData_80D47C4
|
||||
@@ -54,9 +54,9 @@ gUnknown_80D4830: @ 80D4830
|
||||
.4byte 10000000
|
||||
.4byte 100000000
|
||||
|
||||
@ END code_80130A8 #1
|
||||
@ END menu_input
|
||||
|
||||
@ START code_80130A8 #2
|
||||
@ START code_80130A8
|
||||
.asciz "pksdir0"
|
||||
|
||||
.global gUnknown_80D485C
|
||||
@@ -155,4 +155,4 @@ gUnknown_80D4908: @ 80D4908
|
||||
gUnknown_80D4910: @ 80D4910
|
||||
.string "$\0"
|
||||
|
||||
@ END code_80130A8 #2
|
||||
@ END code_80130A8
|
||||
@@ -1,5 +1,7 @@
|
||||
.section .rodata
|
||||
|
||||
@ friend_rescue.c
|
||||
|
||||
.global gUnknown_80E2068
|
||||
gUnknown_80E2068: @ 80E2068
|
||||
.4byte GoRescue_80E20AC
|
||||
@@ -1129,108 +1131,4 @@ gUnknown_80E499C: @ 80E499C
|
||||
gUnknown_80E49C4: @ 80E49C4
|
||||
.string "This password does not appear to be\n"
|
||||
.string "that of a {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}.\0"
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
|
||||
.global gUnknown_80E4A10
|
||||
gUnknown_80E4A10: @ 80E4A10
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E4A28
|
||||
gUnknown_80E4A28: @ 80E4A28
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x02, 0x00
|
||||
.byte 0x1a, 0x00, 0x10, 0x00
|
||||
.byte 0x10, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E4A40
|
||||
gUnknown_80E4A40: @ 80E4A40
|
||||
.byte 0x18, 0x18
|
||||
.byte 0x38, 0x00
|
||||
.byte 0x21, 0xff
|
||||
.byte 0x22, 0xff
|
||||
.byte 0x23, 0xff
|
||||
.byte 0x24, 0xff
|
||||
.byte 0x25, 0xff
|
||||
.byte 0x26, 0xff
|
||||
.byte 0x27, 0xff
|
||||
.byte 0x28, 0xff
|
||||
.byte 0x29, 0xff
|
||||
.byte 0x2a, 0xff
|
||||
.byte 0x2b, 0xff
|
||||
.byte 0x2c, 0xff
|
||||
.byte 0x2d, 0xff
|
||||
.byte 0x2e, 0xff
|
||||
.byte 0x2f, 0xff
|
||||
.byte 0x30, 0xff
|
||||
.byte 0x31, 0xff
|
||||
.byte 0x32, 0xff
|
||||
.byte 0x33, 0xff
|
||||
.byte 0x34, 0xff
|
||||
.byte 0x35, 0xff
|
||||
.byte 0x36, 0xff
|
||||
.byte 0x37, 0xff
|
||||
.byte 0x38, 0xff
|
||||
.byte 0x39, 0xff
|
||||
.byte 0x3a, 0xff
|
||||
.byte 0x41, 0xff
|
||||
.byte 0x42, 0xff
|
||||
.byte 0x43, 0xff
|
||||
.byte 0x44, 0xff
|
||||
.byte 0x45, 0xff
|
||||
.byte 0x46, 0xff
|
||||
.byte 0x47, 0xff
|
||||
.byte 0x48, 0xff
|
||||
.byte 0x49, 0xff
|
||||
.byte 0x4a, 0xff
|
||||
.byte 0x4b, 0xff
|
||||
.byte 0x4c, 0xff
|
||||
.byte 0x4d, 0xff
|
||||
.byte 0x4e, 0xff
|
||||
.byte 0x4f, 0xff
|
||||
.byte 0x50, 0xff
|
||||
.byte 0x51, 0xff
|
||||
.byte 0x52, 0xff
|
||||
.byte 0x53, 0xff
|
||||
.byte 0x54, 0xff
|
||||
.byte 0x55, 0xff
|
||||
.byte 0x56, 0xff
|
||||
.byte 0x57, 0xff
|
||||
.byte 0x58, 0xff
|
||||
.byte 0x59, 0xff
|
||||
.byte 0x5a, 0xff
|
||||
.byte 0x10, 0xff
|
||||
.byte 0x11, 0xff
|
||||
.byte 0x12, 0xff
|
||||
.byte 0x13, 0xff
|
||||
.byte 0x14, 0xff
|
||||
.byte 0x15, 0xff
|
||||
.byte 0x16, 0xff
|
||||
.byte 0x17, 0xff
|
||||
.byte 0x18, 0xff
|
||||
.byte 0x19, 0xff
|
||||
|
||||
#include "text/credits.inc"
|
||||
|
||||
.global gUnknown_80E5990
|
||||
gUnknown_80E5990: @ 80E5990
|
||||
.byte 0x06, 0x02
|
||||
.byte 0x40, 0x00
|
||||
.byte 0x80, 0x00
|
||||
.byte 0x10, 0x00
|
||||
.byte 0x20, 0x00
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x02, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.align 2,0
|
||||
@@ -5,5 +5,8 @@
|
||||
extern void sub_80993D8(void);
|
||||
extern void sub_80993E4(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_8099A5C(u32, u32, u32);
|
||||
extern void sub_8099AFC(u32, u32, u32);
|
||||
extern u8 sub_8099B94(void);
|
||||
|
||||
#endif // GUARD_CODE_8098BDC_H
|
||||
29
include/credits1.h
Normal file
29
include/credits1.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef GUARD_CREDITS1_H
|
||||
#define GUARD_CREDITS1_H
|
||||
|
||||
#include "text.h"
|
||||
|
||||
// size: 0x6C
|
||||
typedef struct Credits1Work
|
||||
{
|
||||
UnkTextStruct2 unk0[4];
|
||||
s32 unk60;
|
||||
s32 unk64;
|
||||
/* 0x68 */ s32 creditsCategoryIndex;
|
||||
} Credits1Work;
|
||||
|
||||
// size: 0xC
|
||||
typedef struct CreditsData
|
||||
{
|
||||
/* 0x0 */ s16 type;
|
||||
/* 0x2 */ s16 x;
|
||||
/* 0x4 */ s16 y;
|
||||
/* 0x8 */ u8 *text;
|
||||
} CreditsData;
|
||||
|
||||
bool8 DrawCredits(s32 creditsCategoryIndex, s32);
|
||||
|
||||
s32 sub_8035574(void);
|
||||
void sub_803565C(void);
|
||||
|
||||
#endif // GUARD_CREDITS1_H
|
||||
15
include/credits2.h
Normal file
15
include/credits2.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef GUARD_CREDITS2_H
|
||||
#define GUARD_CREDITS2_H
|
||||
|
||||
// size: 0x8
|
||||
typedef struct Credits2Work
|
||||
{
|
||||
/* 0x0 */ u32 state;
|
||||
u32 unk4; // timer for not holding any inputs
|
||||
} Credits2Work;
|
||||
|
||||
bool8 sub_8035678(void);
|
||||
u32 sub_80356A0(void);
|
||||
void sub_8035758(void);
|
||||
|
||||
#endif // GUARD_CREDITS2_H
|
||||
@@ -33,6 +33,7 @@ void sub_8002758(s32 r0);
|
||||
u8 sub_800276C(void);
|
||||
|
||||
// event_flag.s
|
||||
extern void sub_80015C0(u32, u32);
|
||||
extern u32 sub_8001658(u32, u32);
|
||||
|
||||
#endif // GUARD_EVENT_FLAG_H
|
||||
|
||||
@@ -36,6 +36,15 @@ enum MainMenuScreens
|
||||
MENU_NO_SCREEN_CHANGE = 65500
|
||||
};
|
||||
|
||||
// size: 0x1A8
|
||||
typedef struct unkStruct_203B34C
|
||||
{
|
||||
u32 unk0;
|
||||
MenuStruct unk4[4];
|
||||
UnkTextStruct2 unk144[4];
|
||||
/* 0x1A4 */ u32 currMenuChoice;
|
||||
} unkStruct_203B34C;
|
||||
|
||||
// size: 0x8
|
||||
typedef struct unkStruct_8035D94
|
||||
{
|
||||
|
||||
@@ -4,15 +4,6 @@
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
// size: 0x1A8
|
||||
struct unkStruct_203B34C
|
||||
{
|
||||
u32 unk0;
|
||||
MenuStruct unk4[4];
|
||||
UnkTextStruct2 unk144[4];
|
||||
/* 0x1A4 */ u32 currMenuChoice;
|
||||
};
|
||||
|
||||
u32 sub_8012A64(MenuInputStructSub *r0, s32 r1);
|
||||
s32 GetKeyPress(MenuInputStruct *r0);
|
||||
s32 sub_8012AE8(void);
|
||||
|
||||
@@ -147,7 +147,8 @@ SECTIONS {
|
||||
src/code_8031D70.o(.text);
|
||||
src/adventure_log.o(.text);
|
||||
src/friend_rescue.o(.text);
|
||||
src/credits.o(.text);
|
||||
src/credits1.o(.text);
|
||||
src/credits2.o(.text);
|
||||
src/main_menu.o(.text);
|
||||
src/trade_items_menu.o(.text);
|
||||
src/other_menus1.o(.text);
|
||||
@@ -442,7 +443,9 @@ SECTIONS {
|
||||
src/post_office_guide2.o(.rodata);
|
||||
src/code_8031D70.o(.rodata);
|
||||
src/adventure_log.o(.rodata);
|
||||
data/data_80E2068.o(.rodata);
|
||||
data/friend_rescue.o(.rodata);
|
||||
data/credits1.o(.rodata);
|
||||
src/credits2.o(.rodata);
|
||||
src/main_menu.o(.rodata);
|
||||
src/trade_items_menu.o(.rodata);
|
||||
src/other_menus1.o(.rodata);
|
||||
|
||||
@@ -50,7 +50,6 @@ struct unkStruct_80B7394
|
||||
};
|
||||
|
||||
extern struct unkStruct_80B7394 gUnknown_80B7394[];
|
||||
extern void sub_80015C0(u32, u32);
|
||||
extern void sub_800199C(u32, s32, u32, s32);
|
||||
extern void sub_80018D8(u32, u32, u32);
|
||||
extern void sub_80972F4(void);
|
||||
|
||||
@@ -39,7 +39,6 @@ extern void LoadMailInfo(void);
|
||||
extern void sub_800DAAC(void);
|
||||
extern void sub_800135C(void);
|
||||
extern void xxx_script_related_8001334(u32);
|
||||
extern void sub_80015C0(u32, u32);
|
||||
extern void LoadTitleScreen(void);
|
||||
extern void sub_80095CC(u32, u32);
|
||||
extern s32 GetFirstIndexofMailType(u8);
|
||||
|
||||
@@ -23,7 +23,6 @@ void RestoreWonderMail(struct unkStruct_8094924 *a, WonderMail *b);
|
||||
extern s32 sub_8096EB0(WonderMail *);
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, DungeonLocation*);
|
||||
extern void sub_80015C0(u8, u8);
|
||||
extern u32 sub_8001784(u32, u32, u16);
|
||||
extern void GeneratePelipperJobs(void);
|
||||
extern void sub_80018D8(u8, u8, u32);
|
||||
|
||||
246
src/credits.c
246
src/credits.c
@@ -1,246 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "code_8098BDC.h"
|
||||
#include "event_flag.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
|
||||
// size: 0x6C
|
||||
struct unkCreditsStruct_203B340
|
||||
{
|
||||
UnkTextStruct2 unk0[4];
|
||||
s32 unk60; // Unsure if s32/u32/ptr
|
||||
s32 unk64;
|
||||
/* 0x68 */ s32 creditsCategoryIndex;
|
||||
};
|
||||
|
||||
// size: 0x8
|
||||
struct unkCreditsStruct_203B344
|
||||
{
|
||||
/* 0x0 */ u32 state; // state variable
|
||||
u32 unk4; // timer?
|
||||
};
|
||||
|
||||
// size: 0xC
|
||||
struct CreditsData
|
||||
{
|
||||
/* 0x0 */ s16 type;
|
||||
s16 x;
|
||||
s16 y;
|
||||
/* 0x8 */ u8 *text;
|
||||
};
|
||||
|
||||
EWRAM_DATA_2 struct unkCreditsStruct_203B340 *gUnknown_203B340 = {0};
|
||||
EWRAM_DATA_2 struct unkCreditsStruct_203B344 *gUnknown_203B344 = {0};
|
||||
|
||||
extern UnkTextStruct2 gUnknown_80E4A10;
|
||||
extern UnkTextStruct2 gUnknown_80E4A28;
|
||||
extern const u32 gUnknown_80E4A40[];
|
||||
extern struct CreditsData* gCreditsTable[27];
|
||||
extern u16 gUnknown_80E5990[];
|
||||
|
||||
extern void sub_80015C0(u32, u32);
|
||||
extern void sub_8099A5C(u32, u32, u32);
|
||||
extern void sub_8099AFC(u32, u32, u32);
|
||||
extern u8 sub_8099B94();
|
||||
|
||||
// Unsure if param_2 is a s32/u32/ptr
|
||||
s32 DrawCredits(s32 creditsCategoryIndex, s32 param_2)
|
||||
{
|
||||
s32 i;
|
||||
s32 x;
|
||||
s32 y;
|
||||
struct CreditsData *cred;
|
||||
u8 *srcText;
|
||||
u8 *destText1;
|
||||
u8 *destText2;
|
||||
u8 curChar;
|
||||
u8 buffer[128];
|
||||
|
||||
gUnknown_203B340 = MemoryAlloc(sizeof(struct unkCreditsStruct_203B340), 8);
|
||||
gUnknown_203B340->unk60 = 0;
|
||||
gUnknown_203B340->unk64 = param_2;
|
||||
gUnknown_203B340->creditsCategoryIndex = creditsCategoryIndex;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
gUnknown_203B340->unk0[i] = gUnknown_80E4A10;
|
||||
gUnknown_203B340->unk0[0] = gUnknown_80E4A28;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(&gUnknown_203B340->unk0[0], TRUE, TRUE);
|
||||
sub_8099690(2);
|
||||
sub_80073B8(0);
|
||||
|
||||
cred = creditsCategoryIndex[gCreditsTable]; // WTF
|
||||
y = 0;
|
||||
while (cred->text != NULL) {
|
||||
srcText = cred->text;
|
||||
if (cred->y >= 0)
|
||||
y = cred->y;
|
||||
else
|
||||
y -= cred->y;
|
||||
x = cred->x;
|
||||
|
||||
switch (cred->type) {
|
||||
case 1:
|
||||
destText1 = buffer;
|
||||
while ((curChar = *srcText) != 0) {
|
||||
*destText1 = curChar;
|
||||
srcText++;
|
||||
destText1++;
|
||||
}
|
||||
*destText1 = 0;
|
||||
srcText = buffer;
|
||||
break;
|
||||
case 2:
|
||||
destText2 = buffer;
|
||||
while ((curChar = *srcText) != 0) {
|
||||
*destText2 = curChar;
|
||||
srcText++;
|
||||
destText2++;
|
||||
}
|
||||
*destText2 = 0;
|
||||
srcText = buffer;
|
||||
break;
|
||||
}
|
||||
|
||||
xxx_call_draw_string(x, y, srcText, 0, 0);
|
||||
cred++;
|
||||
}
|
||||
|
||||
sub_80073E0(0);
|
||||
SelectCharmap(0);
|
||||
do {
|
||||
const u32 *a = gUnknown_80E4A40;
|
||||
int b = 9;
|
||||
unsigned long long c = b;
|
||||
sub_8099AFC(c, 0, a[0]);
|
||||
} while(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
s32 sub_8035574(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 const *p;
|
||||
#else
|
||||
register u32 const *p asm("r2");
|
||||
#endif
|
||||
|
||||
switch (gUnknown_203B340->unk60) {
|
||||
case 0:
|
||||
if (sub_8099B94() == 0) {
|
||||
gUnknown_203B340->unk60 = 1;
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099A5C(9, 30, p[0]); // Probably same/similar macro from the above func - Kermalis
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8099B94() == 0)
|
||||
gUnknown_203B340->unk60 = 2;
|
||||
break;
|
||||
case 2:
|
||||
if (gUnknown_203B340->unk64 < 1) {
|
||||
gUnknown_203B340->unk60 = 3;
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099AFC(9, 30, p[0]);
|
||||
}
|
||||
gUnknown_203B340->unk64--;
|
||||
break;
|
||||
case 3:
|
||||
if (sub_8099B94() == 0) {
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
gUnknown_203B340->unk60 = 4;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8099690(0);
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099A5C(1, 0, p[0]);
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Frees gUnknown_203B340
|
||||
void sub_803565C(void)
|
||||
{
|
||||
if (gUnknown_203B340 != NULL) {
|
||||
MemoryFree(gUnknown_203B340);
|
||||
gUnknown_203B340 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_8035678(void)
|
||||
{
|
||||
gUnknown_203B344 = MemoryAlloc(sizeof(struct unkCreditsStruct_203B344), 8);
|
||||
gUnknown_203B344->state = 0;
|
||||
gUnknown_203B344->unk4 = 0;
|
||||
sub_80015C0(0, 0x39);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_80356A0(void)
|
||||
{
|
||||
u16 uVar1;
|
||||
u16 held_input;
|
||||
|
||||
held_input = gRealInputs.held;
|
||||
uVar1 = gUnknown_80E5990[gUnknown_203B344->unk4];
|
||||
|
||||
switch (gUnknown_203B344->state) {
|
||||
case 0:
|
||||
gUnknown_203B344->state = 3;
|
||||
break;
|
||||
case 1:
|
||||
if (uVar1 == 0)
|
||||
gUnknown_203B344->state = 4;
|
||||
else {
|
||||
if (held_input == uVar1)
|
||||
gUnknown_203B344->state = 2;
|
||||
else {
|
||||
// NOTE: couldn't match with OR'd condition so split up to match
|
||||
if ((uVar1 & held_input) != held_input)
|
||||
gUnknown_203B344->state = 3;
|
||||
else
|
||||
{
|
||||
if (gUnknown_203B344->unk4 == 0)
|
||||
gUnknown_203B344->state = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (held_input == 0) {
|
||||
gUnknown_203B344->state = 1;
|
||||
gUnknown_203B344->unk4++;
|
||||
}
|
||||
else {
|
||||
if ((uVar1 & held_input) != held_input)
|
||||
gUnknown_203B344->state = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
return 2;
|
||||
case 4:
|
||||
return 3; // sub_809C478 clears the flash data when this is returned
|
||||
}
|
||||
|
||||
if (sub_8001658(0, 0x39) != 0) {
|
||||
gUnknown_203B344->state = 3;
|
||||
return 2;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Frees gUnknown_203B344
|
||||
void sub_8035758(void)
|
||||
{
|
||||
if (gUnknown_203B344 != NULL) {
|
||||
MemoryFree(gUnknown_203B344);
|
||||
gUnknown_203B344 = NULL;
|
||||
}
|
||||
}
|
||||
141
src/credits1.c
Normal file
141
src/credits1.c
Normal file
@@ -0,0 +1,141 @@
|
||||
#include "global.h"
|
||||
#include "code_8098BDC.h"
|
||||
#include "credits1.h"
|
||||
#include "event_flag.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
|
||||
static EWRAM_DATA_2 Credits1Work *sCredits1Work = {0};
|
||||
|
||||
extern const UnkTextStruct2 gUnknown_80E4A10;
|
||||
extern const UnkTextStruct2 gUnknown_80E4A28;
|
||||
extern const u32 gUnknown_80E4A40[];
|
||||
extern const CreditsData* gCreditsTable[27];
|
||||
|
||||
bool8 DrawCredits(s32 creditsCategoryIndex, s32 param_2)
|
||||
{
|
||||
s32 i;
|
||||
s32 x;
|
||||
s32 y;
|
||||
const CreditsData *cred;
|
||||
u8 *srcText;
|
||||
u8 *destText1;
|
||||
u8 *destText2;
|
||||
u8 curChar;
|
||||
u8 buffer[128];
|
||||
|
||||
sCredits1Work = MemoryAlloc(sizeof(Credits1Work), 8);
|
||||
sCredits1Work->unk60 = 0;
|
||||
sCredits1Work->unk64 = param_2;
|
||||
sCredits1Work->creditsCategoryIndex = creditsCategoryIndex;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
sCredits1Work->unk0[i] = gUnknown_80E4A10;
|
||||
sCredits1Work->unk0[0] = gUnknown_80E4A28;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(&sCredits1Work->unk0[0], TRUE, TRUE);
|
||||
sub_8099690(2);
|
||||
sub_80073B8(0);
|
||||
|
||||
cred = creditsCategoryIndex[gCreditsTable]; // WTF
|
||||
y = 0;
|
||||
while (cred->text != NULL) {
|
||||
srcText = cred->text;
|
||||
if (cred->y >= 0)
|
||||
y = cred->y;
|
||||
else
|
||||
y -= cred->y;
|
||||
x = cred->x;
|
||||
|
||||
switch (cred->type) {
|
||||
case 1:
|
||||
destText1 = buffer;
|
||||
while ((curChar = *srcText) != 0) {
|
||||
*destText1 = curChar;
|
||||
srcText++;
|
||||
destText1++;
|
||||
}
|
||||
*destText1 = 0;
|
||||
srcText = buffer;
|
||||
break;
|
||||
case 2:
|
||||
destText2 = buffer;
|
||||
while ((curChar = *srcText) != 0) {
|
||||
*destText2 = curChar;
|
||||
srcText++;
|
||||
destText2++;
|
||||
}
|
||||
*destText2 = 0;
|
||||
srcText = buffer;
|
||||
break;
|
||||
}
|
||||
|
||||
xxx_call_draw_string(x, y, srcText, 0, 0);
|
||||
cred++;
|
||||
}
|
||||
|
||||
sub_80073E0(0);
|
||||
SelectCharmap(0);
|
||||
do {
|
||||
const u32 *a = gUnknown_80E4A40;
|
||||
int b = 9;
|
||||
unsigned long long c = b;
|
||||
sub_8099AFC(c, 0, a[0]);
|
||||
} while(0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 sub_8035574(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 const *p;
|
||||
#else
|
||||
register u32 const *p asm("r2");
|
||||
#endif
|
||||
|
||||
switch (sCredits1Work->unk60) {
|
||||
case 0:
|
||||
if (sub_8099B94() == 0) {
|
||||
sCredits1Work->unk60 = 1;
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099A5C(9, 30, p[0]); // Probably same/similar macro from the above func - Kermalis
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8099B94() == 0)
|
||||
sCredits1Work->unk60 = 2;
|
||||
break;
|
||||
case 2:
|
||||
if (sCredits1Work->unk64 < 1) {
|
||||
sCredits1Work->unk60 = 3;
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099AFC(9, 30, p[0]);
|
||||
}
|
||||
sCredits1Work->unk64--;
|
||||
break;
|
||||
case 3:
|
||||
if (sub_8099B94() == 0) {
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
sCredits1Work->unk60 = 4;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8099690(0);
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099A5C(1, 0, p[0]);
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803565C(void)
|
||||
{
|
||||
if (sCredits1Work != NULL) {
|
||||
MemoryFree(sCredits1Work);
|
||||
sCredits1Work = NULL;
|
||||
}
|
||||
}
|
||||
78
src/credits2.c
Normal file
78
src/credits2.c
Normal file
@@ -0,0 +1,78 @@
|
||||
#include "global.h"
|
||||
#include "credits2.h"
|
||||
#include "event_flag.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
|
||||
static EWRAM_DATA_2 Credits2Work *sCredits2Work = {0};
|
||||
|
||||
#include "data/credits2.h"
|
||||
|
||||
bool8 sub_8035678(void)
|
||||
{
|
||||
sCredits2Work = MemoryAlloc(sizeof(Credits2Work), 8);
|
||||
sCredits2Work->state = 0;
|
||||
sCredits2Work->unk4 = 0;
|
||||
sub_80015C0(0, 57);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_80356A0(void)
|
||||
{
|
||||
u16 uVar1;
|
||||
u16 held_input;
|
||||
|
||||
held_input = gRealInputs.held;
|
||||
uVar1 = sUnknown_80E5990[sCredits2Work->unk4];
|
||||
|
||||
switch (sCredits2Work->state) {
|
||||
case 0:
|
||||
sCredits2Work->state = 3;
|
||||
break;
|
||||
case 1:
|
||||
if (uVar1 == 0)
|
||||
sCredits2Work->state = 4;
|
||||
else {
|
||||
if (held_input == uVar1)
|
||||
sCredits2Work->state = 2;
|
||||
else {
|
||||
if ((uVar1 & held_input) != held_input)
|
||||
sCredits2Work->state = 3;
|
||||
else {
|
||||
if (sCredits2Work->unk4 == 0)
|
||||
sCredits2Work->state = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (held_input == 0) {
|
||||
sCredits2Work->state = 1;
|
||||
sCredits2Work->unk4++;
|
||||
}
|
||||
else {
|
||||
if ((uVar1 & held_input) != held_input)
|
||||
sCredits2Work->state = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
return 2;
|
||||
case 4:
|
||||
return 3; // sub_809C478 clears the flash data when this is returned
|
||||
}
|
||||
|
||||
if (sub_8001658(0, 57) != 0) {
|
||||
sCredits2Work->state = 3;
|
||||
return 2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8035758(void)
|
||||
{
|
||||
if (sCredits2Work != NULL) {
|
||||
MemoryFree(sCredits2Work);
|
||||
sCredits2Work = NULL;
|
||||
}
|
||||
}
|
||||
14
src/data/credits2.h
Normal file
14
src/data/credits2.h
Normal file
@@ -0,0 +1,14 @@
|
||||
ALIGNED(4) static const u8 sFill[] = _("pksdir0");
|
||||
|
||||
// Inputs related. These are probably buttons OR'd together
|
||||
static const u16 sUnknown_80E5990[8] =
|
||||
{
|
||||
518,
|
||||
64,
|
||||
128,
|
||||
16,
|
||||
32,
|
||||
1,
|
||||
2,
|
||||
0
|
||||
};
|
||||
@@ -53,7 +53,6 @@ extern void GroundEffect_Action();
|
||||
|
||||
extern s32 sub_8001784(u8, u8, u8);
|
||||
extern void sub_809CB8C();
|
||||
extern void sub_80015C0(u8, u8);
|
||||
extern void sub_80018D8(u8, u8, u32);
|
||||
extern void sub_800199C(u8, u8, u8, s32);
|
||||
extern void sub_8098CC8();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "debug.h"
|
||||
#include "event_flag.h"
|
||||
#include "ground_map.h"
|
||||
#include "ground_map_2.h"
|
||||
#include "ground_script.h"
|
||||
@@ -14,7 +15,6 @@ extern const DebugLocation gUnknown_8117538[];
|
||||
extern void sub_809D600(void *, const u8 *, u32, u32, u32);
|
||||
extern void sub_809D648(void *);
|
||||
extern void sub_80A2D00(unkStruct_3001B70 *);
|
||||
extern void sub_80015C0(u32, u32);
|
||||
extern void sub_809D754(GroundScript_ExecutePP_1 *, const DebugLocation *);
|
||||
extern void sub_80A2D68(unkStruct_3001B70 *);
|
||||
extern void sub_80A2D88(unkStruct_3001B70 *);
|
||||
|
||||
264
src/main_menu.c
264
src/main_menu.c
@@ -31,10 +31,12 @@
|
||||
// NOTE: 0x2E
|
||||
// Deletes the Save
|
||||
|
||||
EWRAM_DATA_2 MainMenu *gMainMenu = {0};
|
||||
EWRAM_DATA_2 struct unkStruct_203B34C *gUnknown_203B34C = {0};
|
||||
EWRAM_DATA_2 u32 gUnknown_203B350 = {0};
|
||||
EWRAM_DATA_2 u32 gUnknown_203B354 = {0}; // unused everywhere else except here..
|
||||
// split 1/2
|
||||
static EWRAM_DATA_2 MainMenu *sMainMenu = {0};
|
||||
// split 2/2
|
||||
static EWRAM_DATA_2 unkStruct_203B34C *sUnknown_203B34C = {0};
|
||||
static EWRAM_DATA_2 u32 sUnknown_203B350 = {0};
|
||||
static EWRAM_DATA_2 u32 sUnknown_203B354 = {0};
|
||||
|
||||
extern void SetWindowBGColor(void);
|
||||
extern void CreateWonderMailMenu(void);
|
||||
@@ -73,8 +75,9 @@ static const u8 sUnknown_80E5FB0[];
|
||||
static const u8 sUnknown_80E5F98[];
|
||||
static const u8 sUnknown_80E5FE4[];
|
||||
static const u8 sUnknown_80E6008[];
|
||||
static const u8 sUnknown_80E6048[];
|
||||
static const u8 sUnknown_80E6070[];
|
||||
|
||||
// split 1/2
|
||||
static const u8 sFillllllllllllllllllllllllllllll[] = "pksdir0";
|
||||
|
||||
const UnkTextStruct2 gUnknown_80E59A8 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
@@ -85,7 +88,8 @@ const UnkTextStruct2 gUnknown_80E59A8 = {
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char main_menu_fill[] = "pksdir0";
|
||||
// split 2/2
|
||||
static const u8 sFill[] = "pksdir0";
|
||||
|
||||
const UnkTextStruct2 gUnknown_80E59C8 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
@@ -351,6 +355,9 @@ const MenuItem gUnknown_80E5FCC[] = {
|
||||
static const u8 sUnknown_80E5FE4[] = "receive teams from your friends.";
|
||||
ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can");
|
||||
|
||||
static const u8 sUnknown_80E6048[];
|
||||
static const u8 sUnknown_80E6070[];
|
||||
|
||||
const MenuItem gUnknown_80E6030[] = {
|
||||
{sUnknown_80E6070, 0xFFDE},
|
||||
{sUnknown_80E6048, 0xFFDE},
|
||||
@@ -361,36 +368,42 @@ static const u8 sUnknown_80E6048[] = "go on an adventure to unknown worlds.";
|
||||
ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can");
|
||||
|
||||
|
||||
|
||||
// SPLIT 1/2
|
||||
|
||||
|
||||
|
||||
|
||||
void InitMainMenu(void)
|
||||
{
|
||||
if (gMainMenu == NULL) {
|
||||
gMainMenu = MemoryAlloc(sizeof(MainMenu),8);
|
||||
MemoryFill8((u8 *)gMainMenu, 0, sizeof(MainMenu));
|
||||
if (sMainMenu == NULL) {
|
||||
sMainMenu = MemoryAlloc(sizeof(MainMenu),8);
|
||||
MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu));
|
||||
}
|
||||
gMainMenu->currMenu = MENU_NO_SCREEN_CHANGE;
|
||||
gMainMenu->nextMenu = MENU_MAIN_SCREEN;
|
||||
gMainMenu->lastMenu = MENU_MAIN_SCREEN;
|
||||
gMainMenu->unk38 = -1;
|
||||
gMainMenu->unk3C = -1;
|
||||
gMainMenu->sub.unk2E = 0;
|
||||
gMainMenu->sub.unk2C = 1;
|
||||
gMainMenu->sub.unk2D = 0;
|
||||
sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE;
|
||||
sMainMenu->nextMenu = MENU_MAIN_SCREEN;
|
||||
sMainMenu->lastMenu = MENU_MAIN_SCREEN;
|
||||
sMainMenu->unk38 = -1;
|
||||
sMainMenu->unk3C = -1;
|
||||
sMainMenu->sub.unk2E = 0;
|
||||
sMainMenu->sub.unk2C = 1;
|
||||
sMainMenu->sub.unk2D = 0;
|
||||
sub_8035DA0();
|
||||
gMainMenu->unk3A = 0;
|
||||
sMainMenu->unk3A = 0;
|
||||
}
|
||||
|
||||
void DeleteMainMenu(void)
|
||||
{
|
||||
if(gMainMenu){
|
||||
MemoryFree(gMainMenu);
|
||||
gMainMenu = NULL;
|
||||
if(sMainMenu){
|
||||
MemoryFree(sMainMenu);
|
||||
sMainMenu = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void SetUpMenu(void)
|
||||
{
|
||||
if (gMainMenu->currMenu != gMainMenu->nextMenu) {
|
||||
switch(gMainMenu->nextMenu) {
|
||||
if (sMainMenu->currMenu != sMainMenu->nextMenu) {
|
||||
switch(sMainMenu->nextMenu) {
|
||||
case MENU_MAIN_SCREEN:
|
||||
SetWindowBGColor();
|
||||
sub_8099690(0);
|
||||
@@ -400,14 +413,14 @@ void SetUpMenu(void)
|
||||
case MENU_CONTINUE:
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
CreateLoadScreen(gMainMenu->nextMenu);
|
||||
CreateLoadScreen(sMainMenu->nextMenu);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
CreateTradeItemsMenu();
|
||||
break;
|
||||
case MENU_COMMUNICATION_1:
|
||||
case MENU_COMMUNICATION_2:
|
||||
sub_8036FDC(sub_8035DB4(gMainMenu->nextMenu));
|
||||
sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu));
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
CreateFriendRescueMenu();
|
||||
@@ -423,7 +436,7 @@ void SetUpMenu(void)
|
||||
break;
|
||||
case MENU_DISPLAY_RESCUE_PASSWORD:
|
||||
case MENU_RESCUE_PASSWORD_ENTRY:
|
||||
CreateRescuePasswordMenu(gMainMenu->nextMenu);
|
||||
CreateRescuePasswordMenu(sMainMenu->nextMenu);
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
CreateAdventureLogMenu();
|
||||
@@ -434,13 +447,13 @@ void SetUpMenu(void)
|
||||
case 0x2c:
|
||||
case 0x2d:
|
||||
case MENU_DELETE_SAVE:
|
||||
CreateSaveMenu(gMainMenu->nextMenu);
|
||||
CreateSaveMenu(sMainMenu->nextMenu);
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
CreateDebugMenu();
|
||||
break;
|
||||
}
|
||||
gMainMenu->currMenu = gMainMenu->nextMenu;
|
||||
sMainMenu->currMenu = sMainMenu->nextMenu;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,7 +463,7 @@ s32 UpdateMenu(void)
|
||||
s32 nextMenu;
|
||||
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
switch(gMainMenu->nextMenu) {
|
||||
switch(sMainMenu->nextMenu) {
|
||||
case MENU_MAIN_SCREEN:
|
||||
nextMenu = UpdateMainMenu();
|
||||
break;
|
||||
@@ -522,15 +535,15 @@ s32 UpdateMenu(void)
|
||||
break;
|
||||
}
|
||||
if (nextMenu != MENU_NO_SCREEN_CHANGE) {
|
||||
gMainMenu->nextMenu = nextMenu;
|
||||
sMainMenu->nextMenu = nextMenu;
|
||||
}
|
||||
return nextMenu;
|
||||
}
|
||||
|
||||
void CleanUpMenu(void)
|
||||
{
|
||||
if (gMainMenu->lastMenu != gMainMenu->nextMenu) {
|
||||
switch(gMainMenu->lastMenu) {
|
||||
if (sMainMenu->lastMenu != sMainMenu->nextMenu) {
|
||||
switch(sMainMenu->lastMenu) {
|
||||
case MENU_MAIN_SCREEN:
|
||||
CleanMainMenu();
|
||||
break;
|
||||
@@ -585,27 +598,25 @@ void CleanUpMenu(void)
|
||||
DeleteDebugMenu();
|
||||
break;
|
||||
}
|
||||
gMainMenu->lastMenu = gMainMenu->nextMenu;
|
||||
sMainMenu->lastMenu = sMainMenu->nextMenu;
|
||||
}
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8035C00(MainMenuSub *param)
|
||||
UNUSED static void sub_8035C00(MainMenuSub *param)
|
||||
{
|
||||
gMainMenu->sub = *param;
|
||||
sMainMenu->sub = *param;
|
||||
}
|
||||
|
||||
// Unused
|
||||
MainMenuSub *sub_8035C10(void)
|
||||
UNUSED static MainMenuSub *sub_8035C10(void)
|
||||
{
|
||||
return &gMainMenu->sub;
|
||||
return &sMainMenu->sub;
|
||||
}
|
||||
|
||||
void sub_8035C1C(void)
|
||||
{
|
||||
gMainMenu->sub.unk2E = 0;
|
||||
gMainMenu->sub.unk2C = 1;
|
||||
gMainMenu->sub.unk2D = 0;
|
||||
sMainMenu->sub.unk2E = 0;
|
||||
sMainMenu->sub.unk2C = 1;
|
||||
sMainMenu->sub.unk2D = 0;
|
||||
}
|
||||
|
||||
void SetMenuItems(MenuStruct *param_1, UnkTextStruct2 *unkData, s32 index,
|
||||
@@ -631,8 +642,8 @@ void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index)
|
||||
sub_800641C(dataArray, TRUE, TRUE);
|
||||
}
|
||||
|
||||
void sub_8035CF4(MenuStruct * Menu, u32 index, bool8 r2)
|
||||
{
|
||||
void sub_8035CF4(MenuStruct *Menu, u32 index, bool8 r2)
|
||||
{
|
||||
Menu[index].unk4C = r2;
|
||||
Menu[index].unk4D = 1;
|
||||
Menu[index].menuAction = -1;
|
||||
@@ -641,46 +652,41 @@ void sub_8035CF4(MenuStruct * Menu, u32 index, bool8 r2)
|
||||
|
||||
void sub_8035D1C(void)
|
||||
{
|
||||
gMainMenu->unk38 = -1;
|
||||
sMainMenu->unk38 = -1;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8035D30(s32 r0)
|
||||
UNUSED static void sub_8035D30(s32 r0)
|
||||
{
|
||||
gMainMenu->unk38 = r0;
|
||||
sMainMenu->unk38 = r0;
|
||||
}
|
||||
|
||||
s16 sub_8035D3C(void)
|
||||
{
|
||||
return gMainMenu->unk38;
|
||||
return sMainMenu->unk38;
|
||||
}
|
||||
|
||||
MainMenu *GetMainMenu(void)
|
||||
{
|
||||
return gMainMenu;
|
||||
return sMainMenu;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8035D58(void)
|
||||
UNUSED static void sub_8035D58(void)
|
||||
{
|
||||
gMainMenu->unk3C = -1;
|
||||
sMainMenu->unk3C = -1;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8035D68(s32 r0)
|
||||
UNUSED static void sub_8035D68(s32 r0)
|
||||
{
|
||||
gMainMenu->unk3C = r0;
|
||||
sMainMenu->unk3C = r0;
|
||||
}
|
||||
|
||||
s32 sub_8035D74(void)
|
||||
{
|
||||
return gMainMenu->unk3C;
|
||||
return sMainMenu->unk3C;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8035D80(unkStruct_8035D94 *item)
|
||||
UNUSED static void sub_8035D80(unkStruct_8035D94 *item)
|
||||
{
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register u32 numItem asm("r1");
|
||||
#else
|
||||
@@ -690,7 +696,7 @@ void sub_8035D80(unkStruct_8035D94 *item)
|
||||
u32 itemIndex;
|
||||
MainMenu *preload;
|
||||
|
||||
preload = gMainMenu;
|
||||
preload = sMainMenu;
|
||||
numItem = item->numItems;
|
||||
itemIndex = item->itemIndex.itemIndex_u32;
|
||||
preload->unk30.itemIndex.itemIndex_u32 = itemIndex;
|
||||
@@ -699,13 +705,13 @@ void sub_8035D80(unkStruct_8035D94 *item)
|
||||
|
||||
unkStruct_8035D94 *sub_8035D94(void)
|
||||
{
|
||||
return &gMainMenu->unk30;
|
||||
return &sMainMenu->unk30;
|
||||
}
|
||||
|
||||
void sub_8035DA0(void)
|
||||
{
|
||||
gMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING;
|
||||
gMainMenu->unk30.numItems = 0;
|
||||
sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING;
|
||||
sMainMenu->unk30.numItems = 0;
|
||||
}
|
||||
|
||||
s32 sub_8035DB4(u32 currMenu)
|
||||
@@ -741,60 +747,72 @@ s32 sub_8035DB4(u32 currMenu)
|
||||
return returnVar;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// SPLIT 2/2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void DrawMainMenu(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
if(gUnknown_203B34C == NULL)
|
||||
if(sUnknown_203B34C == NULL)
|
||||
{
|
||||
gUnknown_203B34C = MemoryAlloc(sizeof(struct unkStruct_203B34C), 8);
|
||||
MemoryFill8((u8 *)gUnknown_203B34C, 0, sizeof(struct unkStruct_203B34C));
|
||||
sUnknown_203B34C = MemoryAlloc(sizeof(unkStruct_203B34C), 8);
|
||||
MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(unkStruct_203B34C));
|
||||
}
|
||||
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B34C->unk144[index] = gUnknown_80E59C8;
|
||||
sUnknown_203B34C->unk144[index] = gUnknown_80E59C8;
|
||||
}
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B34C->unk144, TRUE, TRUE);
|
||||
sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE);
|
||||
SetMainMenuItems();
|
||||
gUnknown_203B34C->currMenuChoice = -1;
|
||||
sUnknown_203B34C->currMenuChoice = -1;
|
||||
|
||||
if(SetMainMenuText())
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE);
|
||||
}
|
||||
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE);
|
||||
gUnknown_203B34C->unk0 = 1;
|
||||
sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE);
|
||||
sUnknown_203B34C->unk0 = 1;
|
||||
}
|
||||
|
||||
void CleanMainMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
if(gUnknown_203B34C != NULL)
|
||||
if(sUnknown_203B34C != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B34C);
|
||||
gUnknown_203B34C = NULL;
|
||||
MemoryFree(sUnknown_203B34C);
|
||||
sUnknown_203B34C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
u32 UpdateMainMenu(void)
|
||||
{
|
||||
u32 nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
switch(gUnknown_203B34C->unk0)
|
||||
switch(sUnknown_203B34C->unk0)
|
||||
{
|
||||
case 1:
|
||||
sub_8012FD8(&gUnknown_203B34C->unk4[2]);
|
||||
if(!sub_8012FD8(gUnknown_203B34C->unk4))
|
||||
sub_8013114(gUnknown_203B34C->unk4, &nextMenu);
|
||||
sub_8012FD8(&sUnknown_203B34C->unk4[2]);
|
||||
if(!sub_8012FD8(sUnknown_203B34C->unk4))
|
||||
sub_8013114(sUnknown_203B34C->unk4, &nextMenu);
|
||||
|
||||
if(SetMainMenuText())
|
||||
{
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE);
|
||||
}
|
||||
switch(nextMenu)
|
||||
{
|
||||
@@ -802,15 +820,15 @@ u32 UpdateMainMenu(void)
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case 0xffdd:
|
||||
gUnknown_203B34C->unk0 = 1;
|
||||
sUnknown_203B34C->unk0 = 1;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
ResetUnusedInputStruct();
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
sub_8035DA0();
|
||||
gUnknown_203B350 = nextMenu;
|
||||
sUnknown_203B350 = nextMenu;
|
||||
break;
|
||||
case MENU_NEW_GAME:
|
||||
case MENU_AWAITING_RESCUE:
|
||||
@@ -823,27 +841,27 @@ u32 UpdateMainMenu(void)
|
||||
case MENU_DUAL_SLOT:
|
||||
case MENU_WIRELESS_COMMS:
|
||||
case MENU_DEBUG:
|
||||
gUnknown_203B350 = nextMenu;
|
||||
sUnknown_203B350 = nextMenu;
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
case 0xC:
|
||||
if(!sub_8012FD8(&gUnknown_203B34C->unk4[1]))
|
||||
sub_8013114(&gUnknown_203B34C->unk4[1], &nextMenu);
|
||||
if(!sub_8012FD8(&sUnknown_203B34C->unk4[1]))
|
||||
sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu);
|
||||
switch(nextMenu)
|
||||
{
|
||||
case 0xffdd:
|
||||
sub_803623C();
|
||||
gUnknown_203B34C->unk0 = 1;
|
||||
sUnknown_203B34C->unk0 = 1;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case MENU_SEND_ITEMS:
|
||||
gUnknown_203B354 = nextMenu;
|
||||
sUnknown_203B354 = nextMenu;
|
||||
nextMenu = MENU_TRADE_ITEMS;
|
||||
break;
|
||||
case MENU_RECEIVE_ITEMS:
|
||||
gUnknown_203B354 = nextMenu;
|
||||
sUnknown_203B354 = nextMenu;
|
||||
nextMenu = MENU_COMMUNICATION_2;
|
||||
break;
|
||||
case MENU_NO_SCREEN_CHANGE:
|
||||
@@ -866,62 +884,62 @@ bool8 SetMainMenuText(void)
|
||||
const MenuItem *preload;
|
||||
|
||||
// Have to load the pointer before the index
|
||||
preload = gUnknown_203B34C->unk4[0].menuItems;
|
||||
menuChoice = preload[gUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action?
|
||||
if (gUnknown_203B34C->currMenuChoice == menuChoice) {
|
||||
preload = sUnknown_203B34C->unk4[0].menuItems;
|
||||
menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action?
|
||||
if (sUnknown_203B34C->currMenuChoice == menuChoice) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gUnknown_203B34C->currMenuChoice = menuChoice;
|
||||
sub_8035CC0(gUnknown_203B34C->unk144,2);
|
||||
sub_8035CC0(gUnknown_203B34C->unk144,3);
|
||||
sUnknown_203B34C->currMenuChoice = menuChoice;
|
||||
sub_8035CC0(sUnknown_203B34C->unk144,2);
|
||||
sub_8035CC0(sUnknown_203B34C->unk144,3);
|
||||
switch(menuChoice) {
|
||||
case MENU_WIRELESS_COMMS:
|
||||
// Using wireless communications, you can go on an adventure to unknown worlds.
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
|
||||
break;
|
||||
case MENU_WONDER_MAIL:
|
||||
// Using passwords, you can receive Wonder Mail
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
// You are awaiting resuce by a friend
|
||||
// You can give up waiting for rescue
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
|
||||
break;
|
||||
case MENU_NEW_GAME:
|
||||
// Start an entirely new adventure
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
|
||||
break;
|
||||
case MENU_CONTINUE:
|
||||
// Resume your adventure from where you last saved
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
// This will delete your saved game data.
|
||||
// Beware! This will delete it forever
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
// Check your career as an adventurer
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
// Using a Game Link cable or passwords, friends may rescue each other
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
// Using a Game Link cable you can trade stored items with a friend
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
|
||||
break;
|
||||
case MENU_DUAL_SLOT:
|
||||
// Using Dual Slot function, you can receive teams from your friends
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
// This is the Debug Mode.
|
||||
// It won't be in the release version
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -931,13 +949,13 @@ bool8 SetMainMenuText(void)
|
||||
|
||||
void sub_803623C(void)
|
||||
{
|
||||
sub_8035CC0(gUnknown_203B34C->unk144,1);
|
||||
sub_8035CC0(sUnknown_203B34C->unk144,1);
|
||||
SetMainMenuItems();
|
||||
gUnknown_203B34C->currMenuChoice = -1;
|
||||
sUnknown_203B34C->currMenuChoice = -1;
|
||||
if (SetMainMenuText()) {
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE);
|
||||
}
|
||||
|
||||
void SetMainMenuItems(void)
|
||||
@@ -952,7 +970,7 @@ void SetMainMenuItems(void)
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,sUnknown_203B350,1);
|
||||
}
|
||||
else {
|
||||
// Revive Team
|
||||
@@ -960,7 +978,7 @@ void SetMainMenuItems(void)
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,sUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -971,7 +989,7 @@ void SetMainMenuItems(void)
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,sUnknown_203B350,1);
|
||||
}
|
||||
else {
|
||||
// Continue
|
||||
@@ -979,7 +997,7 @@ void SetMainMenuItems(void)
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,sUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -991,7 +1009,7 @@ void SetMainMenuItems(void)
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,sUnknown_203B350,1);
|
||||
}
|
||||
else {
|
||||
// Awaiting Rescue
|
||||
@@ -999,7 +1017,7 @@ void SetMainMenuItems(void)
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,sUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1007,15 +1025,15 @@ void SetMainMenuItems(void)
|
||||
{
|
||||
// New Game
|
||||
// Adventure Log
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
|
||||
SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,sUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80363E0(void)
|
||||
{
|
||||
if(gUnknown_203B34C == NULL)
|
||||
if(sUnknown_203B34C == NULL)
|
||||
return FALSE;
|
||||
if(gUnknown_203B34C->unk0 == 0xC)
|
||||
if(sUnknown_203B34C->unk0 == 0xC)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1,28 +1,25 @@
|
||||
#include "global.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "pokemon.h"
|
||||
#include "constants/input.h"
|
||||
#include "file_system.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "friend_area.h"
|
||||
#include "wigglytuff_shop.h"
|
||||
#include "felicity_bank.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "code_801EE10_mid.h"
|
||||
#include "code_8021774.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_8098BDC.h"
|
||||
#include "common_strings.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "constants/input.h"
|
||||
#include "event_flag.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "common_strings.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "felicity_bank.h"
|
||||
#include "file_system.h"
|
||||
#include "friend_area.h"
|
||||
#include "menu_input.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "wigglytuff_shop.h"
|
||||
|
||||
// TODO: This file was originally 3 files. Split properly
|
||||
// 4 files if you count code_8023144.s
|
||||
@@ -100,9 +97,6 @@ extern void sub_8022380(void);
|
||||
bool8 sub_8023144(s32 param_1, s32 index, UnkTextStruct2_sub *sub, u32 param_4);
|
||||
void sub_8023354(u8 param_1);
|
||||
extern void CreateWigglytuffConfirmFriendAreaMenu(void);
|
||||
extern u8 sub_8099B94(void);
|
||||
extern void sub_8099AFC(u32, u32, u32);
|
||||
extern void sub_8099A5C(u32, u32, u32);
|
||||
|
||||
extern u32 sub_8023278(u32);
|
||||
void sub_80233A0(void);
|
||||
|
||||
@@ -323,7 +323,8 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */
|
||||
.include "src/code_8031D70.o"
|
||||
.include "src/adventure_log.o"
|
||||
.include "src/friend_rescue.o"
|
||||
.include "src/credits.o"
|
||||
.include "src/credits1.o"
|
||||
.include "src/credits2.o"
|
||||
.include "src/main_menu.o"
|
||||
.include "src/trade_items_menu.o"
|
||||
.include "src/other_menus1.o"
|
||||
|
||||
Reference in New Issue
Block a user