more decomp and add more ewram stuff

This commit is contained in:
Seth Barberee 2023-07-31 16:50:03 -07:00
parent 1477509009
commit 2b4f39a2cc
9 changed files with 289 additions and 528 deletions

View File

@ -5,430 +5,6 @@
.text
thumb_func_start sub_80210C8
sub_80210C8:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _080210E0
cmp r0, 0x3
bhi _080210E0
bl sub_801F8D0
movs r0, 0x1F
bl sub_801FDA8
_080210E0:
pop {r0}
bx r0
thumb_func_end sub_80210C8
thumb_func_start sub_80210E4
sub_80210E4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802112A
ldr r0, [sp]
cmp r0, 0x10
beq _08021108
cmp r0, 0x10
bgt _08021102
cmp r0, 0x1
beq _08021124
b _0802112A
_08021102:
cmp r0, 0x11
beq _08021124
b _0802112A
_08021108:
ldr r0, _08021120
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x18]
bl RemoveLinkSequenceFromMoves8
movs r0, 0x23
bl sub_801FDA8
b _0802112A
.align 2, 0
_08021120: .4byte gUnknown_203B27C
_08021124:
movs r0, 0x1F
bl sub_801FDA8
_0802112A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80210E4
thumb_func_start sub_8021130
sub_8021130:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08021148
ldr r0, _08021150
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801FDA8
_08021148:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08021150: .4byte gUnknown_203B27C
thumb_func_end sub_8021130
thumb_func_start sub_8021154
sub_8021154:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0x4
bne _0802116C
ldr r0, _08021174
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801FDA8
_0802116C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08021174: .4byte gUnknown_203B27C
thumb_func_end sub_8021154
thumb_func_start sub_8021178
sub_8021178:
push {lr}
mov r12, r4
ldr r4, _08021198
add sp, r4
mov r4, r12
ldr r0, _0802119C
ldr r0, [r0]
ldr r1, [r0, 0x10]
mov r0, sp
bl sub_808E218
cmp r0, 0
beq _080211A0
movs r0, 0
b _080211A2
.align 2, 0
_08021198: .4byte 0xfffffcc0
_0802119C: .4byte gUnknown_203B27C
_080211A0:
movs r0, 0x1
_080211A2:
movs r3, 0xD0
lsls r3, 2
add sp, r3
pop {r1}
bx r1
thumb_func_end sub_8021178
thumb_func_start sub_80211AC
sub_80211AC:
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
bl sub_8021700
lsls r0, 24
cmp r0, 0
beq _080211C0
movs r0, 0
b _08021258
_080211C0:
ldr r5, _08021260
movs r0, 0xE0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r4, [r0, 0x3C]
str r6, [r0, 0x74]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x7C
adds r1, r0, r1
str r1, [r0, 0x78]
adds r0, 0x7C
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x74]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x7C
ldr r0, _08021264
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r5]
ldr r1, [r0, 0x78]
adds r0, 0xDC
str r0, [r1, 0x14]
bl ResetUnusedInputStruct
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x40
bl sub_8021664
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
adds r3, r6, 0
bl sub_8013818
ldr r0, _08021268
ldr r2, [r5]
ldr r1, [r0]
ldr r0, [r2, 0x3C]
cmp r1, r0
bne _0802124E
ldr r0, _0802126C
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x58
strh r1, [r0]
ldr r0, _08021270
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x5E
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x40
bl sub_8013984
_0802124E:
bl sub_8021410
bl sub_8021494
movs r0, 0x1
_08021258:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08021260: .4byte gUnknown_203B280
_08021264: .4byte gUnknown_80DC47C
_08021268: .4byte gUnknown_203B284
_0802126C: .4byte gUnknown_203B288
_08021270: .4byte gUnknown_203B28A
thumb_func_end sub_80211AC
thumb_func_start sub_8021274
sub_8021274:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08021290
ldr r0, _0802128C
ldr r0, [r0]
adds r0, 0x40
bl sub_8013660
movs r0, 0
b _08021326
.align 2, 0
_0802128C: .4byte gUnknown_203B280
_08021290:
ldr r4, _080212A8
ldr r0, [r4]
adds r0, 0x40
bl GetKeyPress
cmp r0, 0x2
beq _080212B2
cmp r0, 0x2
bgt _080212AC
cmp r0, 0x1
beq _080212BC
b _08021300
.align 2, 0
_080212A8: .4byte gUnknown_203B280
_080212AC:
cmp r0, 0x4
beq _080212F6
b _08021300
_080212B2:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
b _08021326
_080212BC:
ldr r0, [r4]
ldr r0, [r0, 0x3C]
cmp r0, 0x2
bne _080212EC
bl sub_802132C
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaPrice
ldr r1, _080212E8
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
ble _080212EC
movs r0, 0x2
bl PlayMenuSoundEffect
b _080212F2
.align 2, 0
_080212E8: .4byte gTeamInventory_203B460
_080212EC:
movs r0, 0
bl PlayMenuSoundEffect
_080212F2:
movs r0, 0x3
b _08021326
_080212F6:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x4
b _08021326
_08021300:
ldr r0, _08021318
ldr r0, [r0]
adds r0, 0x40
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802131C
movs r0, 0
b _08021326
.align 2, 0
_08021318: .4byte gUnknown_203B280
_0802131C:
bl sub_8021410
bl sub_8021494
movs r0, 0x1
_08021326:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8021274
thumb_func_start sub_802132C
sub_802132C:
ldr r0, _08021350
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x5E
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0x58
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
adds r0, r2, r0
ldrb r0, [r0]
bx lr
.align 2, 0
_08021350: .4byte gUnknown_203B280
thumb_func_end sub_802132C
thumb_func_start sub_8021354
sub_8021354:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl ResetUnusedInputStruct
ldr r5, _0802139C
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_8021664
adds r1, r0, 0
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x62
strh r1, [r2]
adds r0, 0x40
bl sub_8013984
bl sub_8021410
bl sub_8021494
cmp r4, 0
beq _08021396
ldr r0, [r5]
adds r0, 0x40
bl AddMenuCursorSprite
_08021396:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802139C: .4byte gUnknown_203B280
thumb_func_end sub_8021354
thumb_func_start sub_80213A0
sub_80213A0:
push {r4,r5,lr}
ldr r4, _080213FC
ldr r2, [r4]
cmp r2, 0
beq _080213F4
ldr r1, _08021400
ldr r0, [r2, 0x3C]
str r0, [r1]
ldr r1, _08021404
adds r0, r2, 0
adds r0, 0x58
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _08021408
adds r0, r2, 0
adds r0, 0x5E
ldrh r0, [r0]
strh r0, [r1]
ldr r0, [r2, 0x74]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x7C
ldr r0, _0802140C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080213F4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080213FC: .4byte gUnknown_203B280
_08021400: .4byte gUnknown_203B284
_08021404: .4byte gUnknown_203B288
_08021408: .4byte gUnknown_203B28A
_0802140C: .4byte gUnknown_80DC464
thumb_func_end sub_80213A0
thumb_func_start sub_8021410
sub_8021410:
push {r4,lr}

View File

@ -113,6 +113,7 @@ SECTIONS {
asm/code_801EE10.o(.text);
src/code_801EE10_mid.o(.text);
src/gulpin_shop_1.o(.text);
src/code_8021774_pre.o(.text);
asm/code_801EE10_mid.o(.text);
src/code_8021774.o(.text);
src/wigglytuff_shop.o(.text);

137
src/code_8021774_pre.c Normal file
View File

@ -0,0 +1,137 @@
#include "global.h"
#include "constants/friend_area.h"
#include "constants/input.h"
#include "friend_area.h"
#include "input.h"
#include "memory.h"
#include "text.h"
#include "item.h"
#include "team_inventory.h"
#include "menu_input.h"
struct unkStruct_203B280
{
u8 unk0[NUM_FRIEND_AREAS];
u32 unk3C;
struct MenuInputStruct unk40;
s32 unk74;
struct UnkTextStruct2 *unk78;
struct UnkTextStruct2 unk7C[4];
u8 unkDC[4];
};
extern struct unkStruct_203B280 *gUnknown_203B280;
extern u32 gUnknown_203B284;
extern u16 gUnknown_203B288;
extern u16 gUnknown_203B28A;
extern struct UnkTextStruct2 gUnknown_80DC47C;
extern struct UnkTextStruct2 gUnknown_80DC464;
u8 sub_8021700(u32 mode);
s32 sub_8021664(void);
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
extern void sub_8013984(struct MenuInputStruct *);
extern u8 sub_80138B8(struct MenuInputStruct*, u32);
extern void sub_8013660(struct MenuInputStruct*);
extern u8 sub_802132C(void);
extern void sub_8021410(void);
extern void sub_8021494(void);
extern void PlayMenuSoundEffect(u32);
bool8 sub_80211AC(u32 param_1, u32 param_2)
{
if(sub_8021700(param_1))
{
return FALSE;
}
else {
gUnknown_203B280 = MemoryAlloc(sizeof(struct unkStruct_203B280), 8);
gUnknown_203B280->unk3C = param_1;
gUnknown_203B280->unk74 = param_2;
gUnknown_203B280->unk78 = &gUnknown_203B280->unk7C[gUnknown_203B280->unk74];
sub_8006518(gUnknown_203B280->unk7C);
gUnknown_203B280->unk7C[gUnknown_203B280->unk74] = gUnknown_80DC47C;
gUnknown_203B280->unk78->unk14 = gUnknown_203B280->unkDC;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B280->unk7C, 1, 1);
sub_8013818(&gUnknown_203B280->unk40, sub_8021664(), 10, param_2);
if(gUnknown_203B284 == gUnknown_203B280->unk3C)
{
gUnknown_203B280->unk40.menuIndex = gUnknown_203B288;
gUnknown_203B280->unk40.unk1E = gUnknown_203B28A;
sub_8013984(&gUnknown_203B280->unk40);
}
sub_8021410();
sub_8021494();
return TRUE;
}
}
u32 sub_8021274(u8 param_1)
{
if (param_1 == 0) {
sub_8013660(&gUnknown_203B280->unk40);
return 0;
}
switch(GetKeyPress(&gUnknown_203B280->unk40))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
return 2;
case INPUT_A_BUTTON:
if ((gUnknown_203B280->unk3C == 2) && (GetFriendAreaPrice(sub_802132C()) > gTeamInventory_203B460->teamMoney))
{
PlayMenuSoundEffect(2);
}
else
{
PlayMenuSoundEffect(0);
}
return 3;
case INPUT_START_BUTTON:
PlayMenuSoundEffect(4);
return 4;
default:
if (sub_80138B8(&gUnknown_203B280->unk40, 1) != 0) {
sub_8021410();
sub_8021494();
return 1;
}
else {
return 0;
}
}
}
u8 sub_802132C(void)
{
return gUnknown_203B280->unk0[gUnknown_203B280->unk40.unk1E * gUnknown_203B280->unk40.unk1C + gUnknown_203B280->unk40.menuIndex];
}
void sub_8021354(u8 param_1)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B280->unk7C,0,0);
gUnknown_203B280->unk40.unk22 = sub_8021664();
sub_8013984(&gUnknown_203B280->unk40);
sub_8021410();
sub_8021494();
if (param_1) {
AddMenuCursorSprite(&gUnknown_203B280->unk40);
}
}
void sub_80213A0(void)
{
if(gUnknown_203B280)
{
gUnknown_203B284 = gUnknown_203B280->unk3C;
gUnknown_203B288 = gUnknown_203B280->unk40.menuIndex;
gUnknown_203B28A = gUnknown_203B280->unk40.unk1E;
gUnknown_203B280->unk7C[gUnknown_203B280->unk74] = gUnknown_80DC464;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B280->unk7C, 1, 1);
MemoryFree(gUnknown_203B280);
gUnknown_203B280 = NULL;
}
}

View File

@ -28,8 +28,8 @@ struct CreditsData
/* 0x8 */ u8 *text;
};
extern struct unkCreditsStruct_203B340 *gUnknown_203B340;
extern struct unkCreditsStruct_203B344 *gUnknown_203B344;
EWRAM_DATA_2 struct unkCreditsStruct_203B340 *gUnknown_203B340 = {0};
EWRAM_DATA_2 struct unkCreditsStruct_203B344 *gUnknown_203B344 = {0};
extern struct UnkTextStruct2 gUnknown_80E4A10;
extern struct UnkTextStruct2 gUnknown_80E4A28;
@ -244,4 +244,4 @@ void sub_8035758(void)
MemoryFree(gUnknown_203B344);
gUnknown_203B344 = NULL;
}
}
}

View File

@ -8,6 +8,8 @@
#include "text.h"
#include "menu_input.h"
EWRAM_DATA_2 struct FelicityBankWork *gFelicityBankWork = {0};
extern u32 gUnknown_202DE30;
extern u8 gUnknown_202E1C8[];
extern u8 gUnknown_202E5D8[];
@ -421,4 +423,4 @@ void DrawTeamMoneyBox(u32 param_1)
xxx_call_draw_string(6, 0, &gUnknown_80DB738, param_1, 0); // Money
sub_8012BC4(42, 12, gTeamInventory_203B460->teamMoney, 5, 5, param_1);
sub_80073E0(param_1);
}
}

View File

@ -20,27 +20,25 @@ struct unkStruct_203B27C
/* 0xC */ s16 speciesNum;
/* 0x10 */ struct PokemonStruct *pokeStruct;
/* 0x14 */ bool8 isNextMoveLinked;
u8 unk15;
u8 isTeamLeader;
u8 unk17;
bool8 unk15;
/* 0x16 */ bool8 isTeamLeader;
/* 0x18 */ u32 moveIndex;
// Group of move ids but not sure purpose just yet...
u16 unk1C;
u16 unk1E;
u16 unk20;
u16 fill22;
/* 0x24 */ struct Move moves[4];
u8 fill44[0x20];
/* 0x64 */ u16 sequenceMoveIDs[4];
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
/* 0x24 */ struct Move moves[MAX_MON_MOVES * 2];
/* 0x64 */ u16 sequenceMoveIDs[MAX_MON_MOVES];
/* 0x6C */ u32 menuAction1;
/* 0x70 */ u32 menuAction2;
/* 0x74 */ u32 menuAction3;
/* 0x78 */ u32 menuAction4;
struct MenuItem unk7C[8];
u16 unkBC[8];
struct MenuStruct unkCC;
u8 fill11C[0x16C - 0x11C];
struct OpenedFile *unk16C;
u8 *unk170;
/* 0x16C */ struct OpenedFile *faceFile;
/* 0x170 */ u8 *faceData;
u16 unk174;
u16 unk176;
u8 unk178;
@ -50,7 +48,7 @@ struct unkStruct_203B27C
struct UnkTextStruct2 unk180[4];
};
extern struct unkStruct_203B27C *gUnknown_203B27C;
EWRAM_DATA_2 struct unkStruct_203B27C *gUnknown_203B27C = {0};
extern u8 gAvailablePokemonNames[];
extern u8 gUnknown_202DFE8[];
@ -64,6 +62,10 @@ extern struct UnkTextStruct2 gUnknown_80DC34C;
extern struct UnkTextStruct2 gUnknown_80DC37C;
extern const u8 *gGulpinDialogue[2][25];
extern u8 gUnknown_80DC3D8[];
extern u8 gUnknown_80DC3E0[];
extern u8 gUnknown_80DC3E8[];
extern u8 gUnknown_80DC3F4[];
extern u8 gUnknown_80DC394[];
extern u8 gGulpinProceed[];
extern u8 gGulpinInfo[];
@ -81,6 +83,7 @@ extern u8 gUnknown_80DC438[];
extern u8 gUnknown_80DC448[];
extern u8 gUnknown_202E128[];
extern s32 sub_80144A4(s32 *);
void PlayMenuSoundEffect(u32);
void PlaySound(u32);
bool8 sub_8021178(void);
@ -155,11 +158,11 @@ bool8 sub_801FB50(bool32 isAsleep)
ResetUnusedInputStruct();
sub_800641C(0,1,1);
gUnknown_203B27C = MemoryAlloc(sizeof(struct unkStruct_203B27C), 0x8);
gUnknown_203B27C->unk70 = 0;
gUnknown_203B27C->unk74 = 0;
gUnknown_203B27C->unk78 = 0;
gUnknown_203B27C->menuAction2 = 0;
gUnknown_203B27C->menuAction3 = 0;
gUnknown_203B27C->menuAction4 = 0;
gUnknown_203B27C->isAsleep = isAsleep;
gUnknown_203B27C->unk15 = 0;
gUnknown_203B27C->unk15 = FALSE;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,MONSTER_GULPIN);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,MONSTER_GULPIN);
name = GetMonSpecies(MONSTER_GULPIN);
@ -169,11 +172,11 @@ bool8 sub_801FB50(bool32 isAsleep)
gUnknown_203B27C->unk17C = NULL;
}
else {
gUnknown_203B27C->unk17C = &gUnknown_203B27C->unk16C;
gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceFile;
}
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
gUnknown_203B27C->unk16C = faceFile;
gUnknown_203B27C->unk170 = faceFile->data;
gUnknown_203B27C->faceFile = faceFile;
gUnknown_203B27C->faceData = faceFile->data;
gUnknown_203B27C->unk178 = 0;
gUnknown_203B27C->unk179 = 0;
gUnknown_203B27C->unk17A = 0;
@ -239,7 +242,7 @@ u32 sub_801FC40(void)
sub_80210E4();
break;
case 0xd:
if (gUnknown_203B27C->unk15 == 1) {
if (gUnknown_203B27C->unk15 == TRUE) {
gTeamInventory_203B460->teamMoney -= 150;
}
return 3;
@ -254,7 +257,7 @@ void sub_801FD7C(void)
{
if(gUnknown_203B27C)
{
CloseFile(gUnknown_203B27C->unk16C);
CloseFile(gUnknown_203B27C->faceFile);
MemoryFree(gUnknown_203B27C);
gUnknown_203B27C = NULL;
}
@ -322,15 +325,15 @@ void sub_801FF28(void)
switch(gUnknown_203B27C->state)
{
case 0:
gUnknown_203B27C->unk6C = 2;
gUnknown_203B27C->menuAction1 = 2;
CreateGulpinShopMenu();
gUnknown_203B27C->fallbackState = 2;
sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][0],0,gUnknown_203B27C->unk6C,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc);
sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][0],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc);
break;
case 1:
CreateGulpinShopMenu();
gUnknown_203B27C->fallbackState = 2;
sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][1],0,gUnknown_203B27C->unk6C,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc);
sub_8014248(gGulpinDialogue[gUnknown_203B27C->isAsleep][1],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc);
break;
case 2:
DrawTeamMoneyBox(3);
@ -391,7 +394,7 @@ void sub_801FF28(void)
break;
case 0x11:
sub_8023DA4();
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->unk70,2);
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->menuAction2,2);
break;
case 0x12:
sub_8024458(gUnknown_203B27C->speciesNum,2);
@ -411,7 +414,7 @@ void sub_801FF28(void)
break;
case 0x17:
sub_801F700();
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->unk74,2);
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->menuAction3,2);
break;
case 0x18:
gUnknown_203B27C->sequenceMoveIDs[0] = gUnknown_203B27C->unk1C;
@ -464,7 +467,7 @@ void sub_801FF28(void)
break;
case 0x20:
sub_801F280(0);
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->unk78,2);
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->menuAction4,2);
break;
case 0x21:
GetLinkedSequence(gUnknown_203B27C->moveIndex,gUnknown_203B27C->moves,gUnknown_203B27C->sequenceMoveIDs);
@ -514,12 +517,6 @@ void CreateGulpinShopMenu(void)
gUnknown_203B27C->unk7C[loopMax].menuAction = 1;
}
extern u8 gUnknown_80DC3D8[];
extern u8 gUnknown_80DC3E0[];
extern u8 gUnknown_80DC3E8[];
extern u8 gUnknown_80DC3F4[];
extern u8 *gUnknown_80D4970[];
void sub_80205D0(void)
{
s32 loopMax;
@ -548,12 +545,12 @@ void sub_80205D0(void)
gUnknown_203B27C->unk7C[loopMax].menuAction = 1;
for (i = 0; i < loopMax; i++) {
if (gUnknown_203B27C->unkBC[i] == 0 && gUnknown_203B27C->unk7C[i].menuAction == gUnknown_203B27C->unk70)
if (gUnknown_203B27C->unkBC[i] == 0 && gUnknown_203B27C->unk7C[i].menuAction == gUnknown_203B27C->menuAction2)
return;
}
for (i = 0; i < loopMax; i++) {
if (gUnknown_203B27C->unkBC[i] == 0) {
gUnknown_203B27C->unk70 = gUnknown_203B27C->unk7C[i].menuAction;
gUnknown_203B27C->menuAction2 = gUnknown_203B27C->unk7C[i].menuAction;
break;
}
}
@ -579,12 +576,12 @@ void sub_802069C(void)
gUnknown_203B27C->unk7C[loopMax].menuAction = 1;
for (i = 0; i < loopMax; i++) {
if (gUnknown_203B27C->unkBC[i] == 0 && gUnknown_203B27C->unk7C[i].menuAction == gUnknown_203B27C->unk74)
if (gUnknown_203B27C->unkBC[i] == 0 && gUnknown_203B27C->unk7C[i].menuAction == gUnknown_203B27C->menuAction3)
return;
}
for (i = 0; i < loopMax; i++) {
if (gUnknown_203B27C->unkBC[i] == 0) {
gUnknown_203B27C->unk74 = gUnknown_203B27C->unk7C[i].menuAction;
gUnknown_203B27C->menuAction3 = gUnknown_203B27C->unk7C[i].menuAction;
break;
}
}
@ -645,12 +642,12 @@ void CreateGulpinLinkMenu(void)
gUnknown_203B27C->unk7C[loopMax].menuAction = 1;
for (i = 0; i < loopMax; i++) {
if (gUnknown_203B27C->unkBC[i] == 0 && gUnknown_203B27C->unk7C[i].menuAction == gUnknown_203B27C->unk78)
if (gUnknown_203B27C->unkBC[i] == 0 && gUnknown_203B27C->unk7C[i].menuAction == gUnknown_203B27C->menuAction4)
return;
}
for (i = 0; i < loopMax; i++) {
if (gUnknown_203B27C->unkBC[i] == 0) {
gUnknown_203B27C->unk78 = gUnknown_203B27C->unk7C[i].menuAction;
gUnknown_203B27C->menuAction4 = gUnknown_203B27C->unk7C[i].menuAction;
break;
}
}
@ -702,15 +699,13 @@ void sub_8020950(void)
gUnknown_203B27C->unk7C[loopMax].menuAction = 1;
}
extern s32 sub_80144A4(s32 *);
void sub_80209AC(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
s32 menuAciton;
if(sub_80144A4(&menuAciton) == 0)
{
gUnknown_203B27C->unk6C = temp;
switch(temp)
gUnknown_203B27C->menuAction1 = menuAciton;
switch(menuAciton)
{
case 2:
sub_801FDA8(0xe);
@ -727,10 +722,10 @@ void sub_80209AC(void)
void sub_80209FC(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
s32 menuAction;
if(sub_80144A4(&menuAction) == 0)
{
switch(temp)
switch(menuAction)
{
case 0x10:
sub_801FDA8(0xe);
@ -745,10 +740,10 @@ void sub_80209FC(void)
void sub_8020A34(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
s32 menuAction;
if(sub_80144A4(&menuAction) == 0)
{
switch(temp)
switch(menuAction)
{
case 0xD:
sub_801FDA8(0x9);
@ -803,7 +798,7 @@ void sub_8020B38(void)
if (!sub_8012FD8(&gUnknown_203B27C->unkCC)) {
sub_8013114(&gUnknown_203B27C->unkCC,&menuAction);
if (menuAction != 1) {
gUnknown_203B27C->unk70 = menuAction;
gUnknown_203B27C->menuAction2 = menuAction;
}
}
@ -899,7 +894,7 @@ void sub_8020CC0(void)
if (!sub_8012FD8(&gUnknown_203B27C->unkCC)) {
sub_8013114(&gUnknown_203B27C->unkCC,&menuAction);
if (menuAction != 1) {
gUnknown_203B27C->unk74 = menuAction;
gUnknown_203B27C->menuAction3 = menuAction;
}
}
@ -912,7 +907,7 @@ void sub_8020CC0(void)
case 0x3:
sub_801F63C();
unk_CopyMoves4To8(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves);
for(index = 0; index < 8; index++)
for(index = 0; index < MAX_MON_MOVES * 2; index++)
{
move = &gUnknown_203B27C->moves[index];
if(!(move->moveFlags & MOVE_FLAG_EXISTS))
@ -921,7 +916,7 @@ void sub_8020CC0(void)
break;
}
}
if(index >= 4)
if(index >= MAX_MON_MOVES)
{
sub_801FDA8(0x1d);
}
@ -975,7 +970,7 @@ void sub_8020DCC(void)
switch(sub_801EF38(1)) {
case 3:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
gUnknown_203B27C->unk15 = TRUE;
}
gUnknown_203B27C->moveIndex = sub_801F194();
gUnknown_203B27C->unk1C = gUnknown_203B27C->moves [gUnknown_203B27C->moveIndex].id;
@ -984,7 +979,7 @@ void sub_8020DCC(void)
break;
case 4:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
gUnknown_203B27C->unk15 = TRUE;
}
gUnknown_203B27C->moveIndex = sub_801F194();
gUnknown_203B27C->unk1C = gUnknown_203B27C->moves [gUnknown_203B27C->moveIndex].id;
@ -993,7 +988,7 @@ void sub_8020DCC(void)
break;
case 2:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
gUnknown_203B27C->unk15 = TRUE;
}
sub_801F214();
sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves);
@ -1001,7 +996,7 @@ void sub_8020DCC(void)
break;
case 1:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
gUnknown_203B27C->unk15 = TRUE;
}
break;
case 0:
@ -1009,7 +1004,8 @@ void sub_8020DCC(void)
}
}
void sub_8020EB4(void) {
void sub_8020EB4(void)
{
s32 menuAction;
menuAction = 0;
@ -1017,7 +1013,7 @@ void sub_8020EB4(void) {
if (!sub_8012FD8(&gUnknown_203B27C->unkCC)) {
sub_8013114(&gUnknown_203B27C->unkCC,&menuAction);
if (menuAction != 1) {
gUnknown_203B27C->unk78 = menuAction;
gUnknown_203B27C->menuAction4 = menuAction;
}
}
@ -1053,7 +1049,7 @@ void sub_8020EB4(void) {
sub_801FDA8(0x1F);
break;
case 8:
if(gTeamInventory_203B460->teamMoney < 0x96)
if(gTeamInventory_203B460->teamMoney < 150)
{
PlayMenuSoundEffect(2);
sub_801FDA8(0x3);
@ -1065,9 +1061,9 @@ void sub_8020EB4(void) {
}
else
{
if(gUnknown_203B27C->unk15 == 0)
if(!gUnknown_203B27C->unk15)
{
gUnknown_203B27C->unk15 = 1;
gUnknown_203B27C->unk15 = TRUE;
PlaySound(0x14c);
}
else
@ -1116,3 +1112,64 @@ void sub_8020EB4(void) {
}
}
void sub_80210C8(void)
{
switch(sub_801F890())
{
case 2:
case 3:
sub_801F8D0();
sub_801FDA8(0x1F);
break;
case 0:
case 1:
break;
}
}
void sub_80210E4(void)
{
s32 menuAction;
if(sub_80144A4(&menuAction) == 0)
{
switch(menuAction)
{
case 0x10:
RemoveLinkSequenceFromMoves8(gUnknown_203B27C->moves, gUnknown_203B27C->moveIndex);
sub_801FDA8(0x23);
break;
case 1:
case 0x11:
sub_801FDA8(0x1F);
break;
}
}
}
void sub_8021130(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
{
sub_801FDA8(gUnknown_203B27C->fallbackState);
}
}
void sub_8021154(void)
{
s32 temp;
if(sub_80144A4(&temp) == 4)
{
sub_801FDA8(gUnknown_203B27C->fallbackState);
}
}
bool8 sub_8021178(void)
{
s32 count;
struct unkStruct_808E218_arg local;
count = sub_808E218(&local, gUnknown_203B27C->pokeStruct);
if(count == 0) return TRUE;
else return FALSE;
}

View File

@ -8,8 +8,9 @@
#include "menu_input.h"
#include "team_inventory.h"
extern struct unkStruct_203B208 *gUnknown_203B208;
extern struct unkStruct_203B20C *gUnknown_203B20C;
EWRAM_DATA_2 struct unkStruct_203B208 *gUnknown_203B208 = {0};
EWRAM_DATA_2 struct unkStruct_203B20C *gUnknown_203B20C = {0};
extern struct UnkTextStruct2 gUnknown_80DB748;
extern struct UnkTextStruct2 gUnknown_80DB778;
extern struct UnkTextStruct2 gUnknown_80DB790;

View File

@ -11,11 +11,26 @@
#include "menu_input.h"
#include "text.h"
struct unkStruct_203B214
{;
// size: 0xA0
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
u8 unk9C[4];
};
extern struct unkStruct_203B210 *gUnknown_203B210;
extern struct unkStruct_203B214 *gUnknown_203B214;
extern u16 gUnknown_203B218;
extern struct unkStruct_203B214 *gUnknown_203B21C;
extern u16 gUnknown_203B220;
extern struct unkStruct_203B224 *gUnknown_203B224;
extern u16 gUnknown_203B228;
extern u16 gUnknown_203B22A;
extern u8 gUnknown_80DB8E4[];
extern u8 gUnknown_80DB8EC[];
extern u8 gUnknown_80DB92C[];
@ -59,21 +74,6 @@ extern s32 sub_801AEA8(void);
s32 sub_801AE24(u32);
extern struct unkStruct_203B224 *gUnknown_203B224;
struct unkStruct_203B214
{;
// size: 0xA0
struct MenuInputStruct input;
u32 unk34;
struct UnkTextStruct2 *unk38;
struct UnkTextStruct2 unk3C[4];
u8 unk9C[4];
};
extern struct unkStruct_203B214 *gUnknown_203B214;
extern struct unkStruct_203B214 *gUnknown_203B21C;
extern void sub_8013818(struct MenuInputStruct *, u32, u32, u32);
extern u8 sub_8019FB0(void);

View File

@ -136,14 +136,8 @@ gUnknown_203B1FC: /* 203B1FC */
gUnknown_203B200: /* 203B200 */
.space 0x4
gFelicityBankWork: /* 203B204 */
.space 0x4
gUnknown_203B208: /* 203B208 */
.space 0x4
gUnknown_203B20C: /* 203B20C */
.space 0x4
.include "src/felicity_bank.o"
.include "src/kangaskhan_storage.o"
gUnknown_203B210: /* 203B210 */
.space 0x4
@ -232,8 +226,7 @@ gUnknown_203B274: /* 203B274 */
gUnknown_203B278: /* 203B278 */
.space 0x4
gUnknown_203B27C: /* 203B27C */
.space 0x4
.include "src/gulpin_shop_1.o"
gUnknown_203B280: /* 203B280 */
.space 0x4
@ -371,13 +364,7 @@ gUnknown_203B328: /* 203B328 */
.include "src/code_8031D70.o"
.include "src/adventure_log.o"
.include "src/friend_rescue.o"
gUnknown_203B340: /* 203B340 */
.space 0x4
gUnknown_203B344: /* 203B344 */
.space 0x4
.include "src/credits.o"
.include "src/main_menu.o"
.include "src/trade_items_menu.o"
.include "src/other_menus.o"