more gulpin

This commit is contained in:
Seth Barberee 2023-07-31 11:36:39 -07:00
parent a3ff33a4cf
commit 24b1c4baea
3 changed files with 64 additions and 139 deletions

View File

@ -5,145 +5,6 @@
.text
thumb_func_start sub_8020D90
sub_8020D90:
push {lr}
bl sub_801E8C0
cmp r0, 0x2
beq _08020DBC
cmp r0, 0x2
bcc _08020DC6
cmp r0, 0x3
bne _08020DC6
bl GulpinIsNextMoveLinked
ldr r1, _08020DB8
ldr r1, [r1]
strb r0, [r1, 0x14]
bl DestroyGulpinShop
movs r0, 0x1A
bl sub_801FDA8
b _08020DC6
.align 2, 0
_08020DB8: .4byte gUnknown_203B27C
_08020DBC:
bl DestroyGulpinShop
movs r0, 0x10
bl sub_801FDA8
_08020DC6:
pop {r0}
bx r0
thumb_func_end sub_8020D90
thumb_func_start sub_8020DCC
sub_8020DCC:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x4
bhi _08020EAA
lsls r0, 2
ldr r1, _08020DE4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020DE4: .4byte _08020DE8
.align 2, 0
_08020DE8:
.4byte _08020EAA
.4byte _08020E98
.4byte _08020E64
.4byte _08020DFC
.4byte _08020E30
_08020DFC:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E0E
ldr r0, _08020E2C
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E0E:
bl sub_801F194
ldr r1, _08020E2C
ldr r2, [r1]
str r0, [r2, 0x18]
lsls r0, 3
adds r0, r2, r0
ldrh r1, [r0, 0x26]
strh r1, [r2, 0x1C]
ldrh r0, [r0, 0x26]
strh r0, [r2, 0x20]
movs r0, 0x20
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E2C: .4byte gUnknown_203B27C
_08020E30:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E42
ldr r0, _08020E60
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E42:
bl sub_801F194
ldr r1, _08020E60
ldr r2, [r1]
str r0, [r2, 0x18]
lsls r0, 3
adds r0, r2, r0
ldrh r1, [r0, 0x26]
strh r1, [r2, 0x1C]
ldrh r0, [r0, 0x26]
strh r0, [r2, 0x20]
movs r0, 0x21
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E60: .4byte gUnknown_203B27C
_08020E64:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E76
ldr r0, _08020E94
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E76:
bl sub_801F214
ldr r0, _08020E94
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
movs r0, 0x10
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E94: .4byte gUnknown_203B27C
_08020E98:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020EAA
ldr r0, _08020EB0
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020EAA:
pop {r0}
bx r0
.align 2, 0
_08020EB0: .4byte gUnknown_203B27C
thumb_func_end sub_8020DCC
thumb_func_start sub_8020EB4
sub_8020EB4:
push {r4,lr}

View File

@ -33,5 +33,6 @@ struct GulpinShopWork
u32 CreateGulpinShop(s32 isAsleep, s16 pokeSpecies, struct Move *moves);
void DestroyGulpinShop(void);
bool8 GulpinIsNextMoveLinked(void);
#endif

View File

@ -135,6 +135,11 @@ extern void sub_801F63C(void);
extern u16 sub_801F5B4(void);
extern void sub_801F8D0(void);
extern u32 sub_801F890(void);
extern u32 sub_801E8C0(void);
extern u32 sub_801F194(void);
bool8 sub_801F1A4(void);
void sub_801F214(void);
extern u32 sub_801EF38(u32);
extern void CreateGulpinLinkMenu(void);
extern void sub_802069C(void);
@ -943,3 +948,61 @@ void sub_8020D74(void)
break;
}
}
void sub_8020D90(void)
{
switch(sub_801E8C0())
{
case 3:
gUnknown_203B27C->isNextMoveLinked = GulpinIsNextMoveLinked();
DestroyGulpinShop();
sub_801FDA8(0x1A);
break;
case 2:
DestroyGulpinShop();
sub_801FDA8(0x10);
break;
case 0:
case 1:
break;
}
}
void sub_8020DCC(void)
{
switch(sub_801EF38(1)) {
case 3:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
}
gUnknown_203B27C->moveIndex = sub_801F194();
gUnknown_203B27C->unk1C = gUnknown_203B27C->moves [gUnknown_203B27C->moveIndex].id;
gUnknown_203B27C->unk20 = gUnknown_203B27C->moves [gUnknown_203B27C->moveIndex].id;
sub_801FDA8(0x20);
break;
case 4:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
}
gUnknown_203B27C->moveIndex = sub_801F194();
gUnknown_203B27C->unk1C = gUnknown_203B27C->moves [gUnknown_203B27C->moveIndex].id;
gUnknown_203B27C->unk20 = gUnknown_203B27C->moves [gUnknown_203B27C->moveIndex].id;
sub_801FDA8(0x21);
break;
case 2:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
}
sub_801F214();
sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves);
sub_801FDA8(0x10);
break;
case 1:
if (sub_801F1A4() != 0) {
gUnknown_203B27C->unk15 = 1;
}
break;
case 0:
break;
}
}