document more kangaskhan and found more gulpin shop

This commit is contained in:
Seth Barberee
2023-07-29 15:32:29 -07:00
parent fbd2af5415
commit 9e11c7a651
6 changed files with 318 additions and 554 deletions

View File

@@ -5,545 +5,6 @@
.text
thumb_func_start sub_801F808
sub_801F808:
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x1
bl ResetSprites
ldr r5, _0801F88C
movs r0, 0xD4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
str r1, [r0, 0x5C]
adds r1, r0, 0
adds r1, 0x64
str r1, [r0, 0x60]
adds r0, r1, 0
bl sub_80140B4
bl ResetUnusedInputStruct
ldr r0, [r5]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
str r4, [r0, 0x4]
movs r2, 0x4
ldrh r0, [r4, 0x6]
cmp r0, 0
bne _0801F862
adds r3, r5, 0
_0801F84C:
subs r2, 0x1
cmp r2, 0x1
ble _0801F862
ldr r0, [r3]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r1
subs r0, 0x2
ldrh r0, [r0]
cmp r0, 0
beq _0801F84C
_0801F862:
ldr r4, _0801F88C
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldr r3, [r1, 0x5C]
adds r1, r2, 0
movs r2, 0x1
bl sub_8013818
ldr r0, [r4]
adds r0, 0xC8
bl sub_801317C
movs r0, 0
bl sub_801F918
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801F88C: .4byte gUnknown_203B278
thumb_func_end sub_801F808
thumb_func_start sub_801F890
sub_801F890:
push {lr}
ldr r0, _0801F8A8
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
beq _0801F8BC
cmp r0, 0x1
bgt _0801F8AC
cmp r0, 0
beq _0801F8B6
b _0801F8C6
.align 2, 0
_0801F8A8: .4byte gUnknown_203B278
_0801F8AC:
cmp r0, 0x2
beq _0801F8C6
cmp r0, 0x3
beq _0801F8C2
b _0801F8C6
_0801F8B6:
bl sub_801FA58
b _0801F8CA
_0801F8BC:
bl sub_801FAD4
b _0801F8CA
_0801F8C2:
movs r0, 0x3
b _0801F8CC
_0801F8C6:
movs r0, 0x2
b _0801F8CC
_0801F8CA:
movs r0, 0
_0801F8CC:
pop {r1}
bx r1
thumb_func_end sub_801F890
thumb_func_start sub_801F8D0
sub_801F8D0:
push {r4,r5,lr}
ldr r4, _0801F910
ldr r2, [r4]
cmp r2, 0
beq _0801F90A
ldr r0, [r2, 0x5C]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x64
ldr r0, _0801F914
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, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801F90A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F910: .4byte gUnknown_203B278
_0801F914: .4byte gUnknown_80DC2F8
thumb_func_end sub_801F8D0
thumb_func_start sub_801F918
sub_801F918:
push {lr}
ldr r1, _0801F92C
ldr r1, [r1]
str r0, [r1]
bl sub_801F930
bl sub_801F9A4
pop {r0}
bx r0
.align 2, 0
_0801F92C: .4byte gUnknown_203B278
thumb_func_end sub_801F918
thumb_func_start sub_801F930
sub_801F930:
push {r4,lr}
ldr r4, _0801F94C
ldr r0, [r4]
adds r0, 0x64
bl sub_80140B4
ldr r2, [r4]
ldr r3, [r2]
cmp r3, 0
beq _0801F950
cmp r3, 0x1
beq _0801F98C
b _0801F99C
.align 2, 0
_0801F94C: .4byte gUnknown_203B278
_0801F950:
ldr r0, [r2, 0x60]
adds r1, r2, 0
adds r1, 0xC4
str r1, [r0, 0x14]
adds r0, r2, 0
adds r0, 0x48
ldrh r0, [r0]
strb r0, [r1]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x46
ldrh r1, [r1]
adds r0, 0xC5
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC6
movs r1, 0x10
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC7
strb r3, [r0]
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0801F99C
_0801F98C:
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801F99C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801F930
thumb_func_start sub_801F9A4
sub_801F9A4:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _0801F9EC
ldr r0, [r5]
ldr r4, [r0]
cmp r4, 0x1
beq _0801F9F0
cmp r4, 0x1
bgt _0801FA48
cmp r4, 0
bne _0801FA48
ldr r0, [r0, 0x5C]
bl sub_8008C54
ldr r3, [r5]
adds r2, r3, 0
adds r2, 0x46
movs r1, 0
ldrsh r0, [r2, r1]
ldr r1, [r3, 0x4]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r3, 0x8]
movs r1, 0
ldrsh r0, [r2, r1]
ldrh r1, [r3, 0x8]
ldr r2, [r3, 0x5C]
adds r3, 0x14
bl unk_MoveIDPrintMoveDescription
ldr r1, [r5]
str r0, [r1, 0x10]
str r4, [r1, 0x24]
b _0801FA48
.align 2, 0
_0801F9EC: .4byte gUnknown_203B278
_0801F9F0:
ldr r0, [r0, 0x5C]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x5C]
bl sub_80073B8
ldr r0, [r5]
ldr r1, [r0, 0xC]
lsls r1, 2
adds r0, 0x14
adds r0, r1
ldr r1, [r0]
ldr r0, _0801FA50
ldr r1, [r1]
bl strcpy
ldr r2, _0801FA54
ldr r0, [r5]
ldr r3, [r0, 0x5C]
movs r4, 0
str r4, [sp]
movs r0, 0x10
movs r1, 0
bl xxx_format_and_draw
ldr r3, [r5]
ldr r1, [r3, 0xC]
lsls r1, 2
adds r0, r3, 0
adds r0, 0x14
adds r0, r1
ldr r0, [r0]
ldr r2, [r0, 0x4]
ldr r3, [r3, 0x5C]
str r4, [sp]
movs r0, 0x4
movs r1, 0x10
bl xxx_format_and_draw
ldr r0, [r5]
ldr r0, [r0, 0x5C]
bl sub_80073E0
_0801FA48:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801FA50: .4byte gAvailablePokemonNames
_0801FA54: .4byte gUnknown_80DC310
thumb_func_end sub_801F9A4
thumb_func_start sub_801FA58
sub_801FA58:
push {r4,lr}
ldr r0, _0801FAA4
ldr r2, [r0]
ldr r1, [r2, 0x10]
adds r4, r0, 0
cmp r1, 0
beq _0801FA7C
ldr r0, [r2, 0x24]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801FA74
bl sub_8013F84
_0801FA74:
ldr r1, [r4]
ldr r0, [r1, 0x24]
adds r0, 0x1
str r0, [r1, 0x24]
_0801FA7C:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC8
ldr r1, [r1, 0x5C]
bl sub_8012A64
cmp r0, 0x1
beq _0801FAA8
cmp r0, 0x2
beq _0801FAC2
ldr r0, [r4]
adds r0, 0x28
bl sub_8013938
lsls r0, 24
cmp r0, 0
beq _0801FACE
movs r0, 0
b _0801FACA
.align 2, 0
_0801FAA4: .4byte gUnknown_203B278
_0801FAA8:
movs r0, 0
bl PlayMenuSoundEffect
ldr r1, [r4]
ldr r0, [r1, 0x10]
cmp r0, 0
beq _0801FABE
movs r0, 0
str r0, [r1, 0xC]
movs r0, 0x1
b _0801FACA
_0801FABE:
movs r0, 0x3
b _0801FACA
_0801FAC2:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
_0801FACA:
bl sub_801F918
_0801FACE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801FA58
thumb_func_start sub_801FAD4
sub_801FAD4:
push {r4,lr}
ldr r0, _0801FB14
ldr r3, [r0]
ldr r1, [r3, 0x10]
subs r1, 0x1
ldr r2, [r3, 0xC]
adds r4, r0, 0
cmp r2, r1
bge _0801FAFC
ldr r0, [r3, 0x24]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801FAF4
bl sub_8013F84
_0801FAF4:
ldr r1, [r4]
ldr r0, [r1, 0x24]
adds r0, 0x1
str r0, [r1, 0x24]
_0801FAFC:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC8
ldr r1, [r1, 0x5C]
bl sub_8012A64
cmp r0, 0x1
beq _0801FB18
cmp r0, 0x2
beq _0801FB3C
b _0801FB48
.align 2, 0
_0801FB14: .4byte gUnknown_203B278
_0801FB18:
movs r0, 0
bl PlayMenuSoundEffect
ldr r0, [r4]
ldr r1, [r0, 0xC]
adds r1, 0x1
str r1, [r0, 0xC]
ldr r0, [r0, 0x10]
cmp r1, r0
bge _0801FB34
movs r0, 0x1
bl sub_801F918
b _0801FB48
_0801FB34:
movs r0, 0
bl sub_801F918
b _0801FB48
_0801FB3C:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
bl sub_801F918
_0801FB48:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801FAD4
thumb_func_start sub_801FB50
sub_801FB50:
push {r4-r7,lr}
adds r4, r0, 0
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r6, _0801FBC0
movs r0, 0xF0
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
movs r7, 0
str r7, [r0, 0x70]
str r7, [r0, 0x74]
str r7, [r0, 0x78]
str r4, [r0]
strb r7, [r0, 0x15]
ldr r0, _0801FBC4
ldr r4, _0801FBC8
adds r1, r4, 0
bl CopyYellowMonsterNametoBuffer
ldr r5, _0801FBCC
adds r0, r5, 0
adds r1, r4, 0
bl CopyYellowMonsterNametoBuffer
adds r0, r4, 0
bl GetMonSpecies
adds r1, r0, 0
adds r0, r5, 0
subs r0, 0x50
bl strcpy
subs r5, 0xF0
bl GetPlayerPokemonStruct
adds r1, r0, 0
adds r0, r5, 0
bl PrintPokeNameToBuffer
ldr r2, [r6]
ldr r0, [r2]
cmp r0, 0x1
bne _0801FBD0
movs r1, 0xBE
lsls r1, 1
adds r0, r2, r1
str r7, [r0]
b _0801FBDE
.align 2, 0
_0801FBC0: .4byte gUnknown_203B27C
_0801FBC4: .4byte gUnknown_202E5D8
_0801FBC8: .4byte 0x00000155
_0801FBCC: .4byte gUnknown_202E1C8
_0801FBD0:
movs r3, 0xBE
lsls r3, 1
adds r1, r2, r3
movs r4, 0xB6
lsls r4, 1
adds r0, r2, r4
str r0, [r1]
_0801FBDE:
ldr r0, _0801FC34
bl GetDialogueSpriteDataPtr
ldr r2, _0801FC38
ldr r3, [r2]
movs r4, 0xB6
lsls r4, 1
adds r1, r3, r4
str r0, [r1]
adds r4, 0x4
adds r1, r3, r4
ldr r0, [r0, 0x4]
str r0, [r1]
movs r1, 0xBC
lsls r1, 1
adds r0, r3, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r3, _0801FC3C
adds r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r4, 0xA
adds r0, r4
strb r1, [r0]
ldr r2, [r2]
movs r0, 0xBA
lsls r0, 1
adds r1, r2, r0
movs r0, 0x2
strh r0, [r1]
subs r3, 0x3
adds r1, r2, r3
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_801FDA8
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801FC34: .4byte 0x00000155
_0801FC38: .4byte gUnknown_203B27C
_0801FC3C: .4byte 0x00000179
thumb_func_end sub_801FB50
thumb_func_start sub_801FC40
sub_801FC40:
push {lr}

View File

@@ -5573,7 +5573,7 @@ _0809BC26:
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
bl DisplayKangaskhanDialogueSprite
bl CreateKangaskhanStorage
lsls r0, 24
cmp r0, 0
beq _0809BC5C

View File

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

View File

@@ -7,6 +7,7 @@
#include "moves.h"
#include "code_801EE10.h"
#include "menu_input.h"
#include "subStruct_203B240.h"
extern struct unkStruct_203B270 *gUnknown_203B270;
@@ -23,9 +24,33 @@ struct unkStruct_203B274
u8 unk3E4[4];
};
extern struct unkStruct_203B274 *gUnknown_203B274;
struct unkStruct_203B278
{
s32 state;
u16 *moveIDs;
u16 unk8;
u16 fillA;
s32 unkC;
s32 unk10;
struct subStruct_203B240 *unk14[4];
u32 unk24;
struct MenuInputStruct unk28;
u32 unk5C;
struct UnkTextStruct2 *unk60;
struct UnkTextStruct2 unk64[4];
u8 unkC4[4];
struct MenuInputStructSub unkC8;
};
extern struct unkStruct_203B278 *gUnknown_203B278;
extern struct UnkTextStruct2 gUnknown_80DC2C4;
extern struct UnkTextStruct2 gUnknown_80DC2AC;
extern struct UnkTextStruct2 gUnknown_80DC2F8;
extern u8 gAvailablePokemonNames[];
extern u8 gUnknown_80DC310[];
extern u8 gUnknown_80DC2DC[];
extern void sub_8013818(struct MenuInputStruct*, u32, u32, u32);
@@ -37,6 +62,18 @@ extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern s32 sub_8013800(struct MenuInputStruct*, s32);
extern void ResetSprites(u32);
extern void sub_80140B4(struct UnkTextStruct2 *);
extern void sub_801F918(s32);
extern void sub_801FA58(void);
extern void sub_801FAD4(void);
extern void sub_801F930(void);
extern void sub_801F9A4(void);
int unk_MoveIDPrintMoveDescription(int a1, u16 moveID, int a3, struct subStruct_203B240** a4);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern bool8 sub_8013938(struct MenuInputStruct *);
void sub_8013F84(void);
u32 sub_801F7E4(void);
void sub_801F690(void);
@@ -223,3 +260,178 @@ u32 sub_801F7E4(void)
sub_808E218(gUnknown_203B274->unk4, gUnknown_203B274->pokeStruct);
return gUnknown_203B274->unk4->count;
}
bool8 sub_801F808(u16 *moveIDs)
{
s32 index;
ResetSprites(1);
gUnknown_203B278 = MemoryAlloc(sizeof(struct unkStruct_203B278), 8);
gUnknown_203B278->unk5C = 0;
gUnknown_203B278->unk60 = gUnknown_203B278->unk64;
sub_80140B4(gUnknown_203B278->unk64);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B278->unk64,1,1);
gUnknown_203B278->moveIDs = moveIDs;
for(index = 4; index > 1; index--)
{
if(gUnknown_203B278->moveIDs[index - 1] != 0) break;
}
sub_8013818(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C);
sub_801317C(&gUnknown_203B278->unkC8);
sub_801F918(0);
return 1;
}
s32 sub_801F890(void)
{
switch(gUnknown_203B278->state)
{
case 0:
sub_801FA58();
break;
case 1:
sub_801FAD4();
break;
case 3:
return 3;
default:
case 2:
return 2;
}
return 0;
}
void sub_801F8D0(void)
{
if(gUnknown_203B278)
{
gUnknown_203B278->unk64[gUnknown_203B278->unk5C] = gUnknown_80DC2F8;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B278->unk64, 1, 1);
MemoryFree(gUnknown_203B278);
gUnknown_203B278 = NULL;
}
}
void sub_801F918(s32 newState)
{
gUnknown_203B278->state = newState;
sub_801F930();
sub_801F9A4();
}
void sub_801F930(void)
{
sub_80140B4(gUnknown_203B278->unk64);
switch(gUnknown_203B278->state)
{
case 0:
gUnknown_203B278->unk60->unk14 = gUnknown_203B278->unkC4;
gUnknown_203B278->unkC4[0] = gUnknown_203B278->unk28.unk20;
gUnknown_203B278->unkC4[1] = gUnknown_203B278->unk28.unk1E;
gUnknown_203B278->unkC4[2] = 0x10;
gUnknown_203B278->unkC4[3] = 0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B278->unk64, 1, 1);
break;
case 1:
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B278->unk64, 1, 1);
break;
default:
break;
}
}
void sub_801F9A4(void)
{
char **name;
switch(gUnknown_203B278->state)
{
case 0:
sub_8008C54(gUnknown_203B278->unk5C);
gUnknown_203B278->unk8 = gUnknown_203B278->moveIDs[gUnknown_203B278->unk28.unk1E];
gUnknown_203B278->unk10 = unk_MoveIDPrintMoveDescription(gUnknown_203B278->unk28.unk1E,gUnknown_203B278->unk8,gUnknown_203B278->unk5C,gUnknown_203B278->unk14);
gUnknown_203B278->unk24 = 0;
break;
case 1:
sub_8008C54(gUnknown_203B278->unk5C);
sub_80073B8(gUnknown_203B278->unk5C);
name = &(gUnknown_203B278->unk14[gUnknown_203B278->unkC]->pokeName);
strcpy(gAvailablePokemonNames, *name);
xxx_format_and_draw(0x10,0,gUnknown_80DC310,gUnknown_203B278->unk5C,0); // $m0
xxx_format_and_draw(4,0x10,gUnknown_203B278->unk14[gUnknown_203B278->unkC]->unk4,gUnknown_203B278->unk5C,0);
sub_80073E0(gUnknown_203B278->unk5C);
break;
case 2:
break;
}
}
void sub_801FA58(void)
{
if(gUnknown_203B278->unk10 != 0)
{
if(gUnknown_203B278->unk24 & 8)
{
sub_8013F84();
}
gUnknown_203B278->unk24++;
}
switch(sub_8012A64(&gUnknown_203B278->unkC8, gUnknown_203B278->unk5C))
{
case 1:
PlayMenuSoundEffect(0);
if(gUnknown_203B278->unk10 != 0)
{
gUnknown_203B278->unkC = 0;
sub_801F918(1);
}
else
{
sub_801F918(3);
}
break;
case 2:
PlayMenuSoundEffect(1);
sub_801F918(2);
break;
default:
if(sub_8013938(&gUnknown_203B278->unk28))
{
sub_801F918(0);
}
}
}
void sub_801FAD4(void)
{
if(gUnknown_203B278->unkC < gUnknown_203B278->unk10 - 1)
{
if(gUnknown_203B278->unk24 & 8)
{
sub_8013F84();
}
gUnknown_203B278->unk24++;
}
switch(sub_8012A64(&gUnknown_203B278->unkC8, gUnknown_203B278->unk5C))
{
case 1:
PlayMenuSoundEffect(0);
gUnknown_203B278->unkC++;
if(gUnknown_203B278->unkC < gUnknown_203B278->unk10)
{
sub_801F918(1);
}
else {
sub_801F918(0);
}
break;
case 2:
PlayMenuSoundEffect(1);
sub_801F918(2);
break;
}
}

90
src/gulpin_shop_1.c Normal file
View File

@@ -0,0 +1,90 @@
#include "global.h"
#include "memory.h"
#include "menu.h"
#include "pokemon.h"
#include "file_system.h"
#include "input.h"
#include "text.h"
extern u8 gUnknown_202E5D8[];
extern u8 gUnknown_202E1C8[];
// size: 0x1E0
struct unkStruct_203B27C
{
bool32 isAsleep;
s32 state;
u32 unk8;
s16 unkC;
struct PokemonStruct *unk10;
u8 unk14;
u8 unk15;
u8 unk16;
u8 unk17;
u32 unk18;
u16 unk1C;
u16 unk1E;
u16 unk20;
u8 fill22[0x64 - 0x22];
u16 unk64[4];
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
struct MenuItem unk7C[8];
u16 unkBC[8];
struct MenuStruct unkCC;
u8 fill11C[0x16C - 0x11C];
struct OpenedFile *unk16C;
u8 *unk170;
u16 unk174;
u16 unk176;
u8 unk178;
u8 unk179;
u8 unk17A;
struct OpenedFile **unk17C;
struct UnkTextStruct2 unk180[4];
};
extern struct unkStruct_203B27C *gUnknown_203B27C;
void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void sub_801FDA8(s32);
bool8 sub_801FB50(bool32 isAsleep)
{
char *name;
struct OpenedFile *faceFile;
ResetUnusedInputStruct();
sub_800641C(0,1,1);
gUnknown_203B27C = MemoryAlloc(0x1E0, 0x8);
gUnknown_203B27C->unk70 = 0;
gUnknown_203B27C->unk74 = 0;
gUnknown_203B27C->unk78 = 0;
gUnknown_203B27C->isAsleep = isAsleep;
gUnknown_203B27C->unk15 = 0;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,MONSTER_GULPIN);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,MONSTER_GULPIN);
name = GetMonSpecies(MONSTER_GULPIN);
strcpy(gUnknown_202E1C8 - 0x50, name);
PrintPokeNameToBuffer(gUnknown_202E1C8 - 0xF0, GetPlayerPokemonStruct());
if (gUnknown_203B27C->isAsleep == 1) {
gUnknown_203B27C->unk17C = 0x0;
}
else {
gUnknown_203B27C->unk17C = &gUnknown_203B27C->unk16C;
}
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
gUnknown_203B27C->unk16C = faceFile;
gUnknown_203B27C->unk170 = faceFile->data;
gUnknown_203B27C->unk178 = '\0';
gUnknown_203B27C->unk179 = '\0';
gUnknown_203B27C->unk17A = '\0';
gUnknown_203B27C->unk174 = 2;
gUnknown_203B27C->unk176 = 8;
sub_801FDA8(0);
return TRUE;
}

View File

@@ -125,7 +125,7 @@ extern void sub_801B3C0(struct Item *);
extern u8 sub_801CF14(u32);
u32 DisplayKangaskhanDialogueSprite(bool32 isAsleep)
u32 CreateKangaskhanStorage(bool32 isAsleep)
{
char *monName;
struct OpenedFile * faceFile;
@@ -268,49 +268,49 @@ void sub_8016FF8(void)
{
switch(gUnknown_203B208->currState) {
case 0:
case KANGASKHAN_STORAGE_INIT:
sub_80175FC();
gUnknown_203B208->unkE4 = 1;
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][0],0,gUnknown_203B208->menuAction1,gUnknown_203B208->unk24,
gUnknown_203B208->unk4C,4,0,gUnknown_203B208->unkE8,0xc);
break;
case 1:
case KANGASKHAN_STORAGE_MAIN_MENU:
sub_80175FC();
gUnknown_203B208->unkE4 = 0;
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][1],0,gUnknown_203B208->menuAction1,gUnknown_203B208->unk24,
gUnknown_203B208->unk4C,4,0,gUnknown_203B208->unkE8,0xc);
break;
case 2:
gUnknown_203B208->fallbackState = 1;
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gUnknown_203B208->unkE4 = 0;
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][19],0,gUnknown_203B208->unkE8,0x10d);
break;
case 3:
gUnknown_203B208->fallbackState = 4;
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_EXIT;
gUnknown_203B208->unkE4 = 1;
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][2],0,gUnknown_203B208->unkE8,0x30d);
break;
case 5:
gUnknown_203B208->fallbackState = 1;
case KANGASKHAN_STORAGE_NO_INV_ITEMS:
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gUnknown_203B208->unkE4 = 0;
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][13],0,gUnknown_203B208->unkE8,0x10d);
break;
case 6:
gUnknown_203B208->fallbackState = 1;
case KANGASKHAN_STORAGE_TOO_MANY_ITEMS:
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gUnknown_203B208->unkE4 = 0;
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][14],0,gUnknown_203B208->unkE8,0x10d);
break;
case 7:
gUnknown_203B208->fallbackState = 1;
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gUnknown_203B208->unkE4 = 0;
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][15],0,gUnknown_203B208->unkE8,0x10d);
break;
case 8:
gUnknown_203B208->fallbackState = 1;
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gUnknown_203B208->unkE4 = 0;
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][18],0,gUnknown_203B208->unkE8,0x10d);
break;
case 9:
case KANGASKHAN_STORAGE_IS_MONEY_USED_TM:
sub_8090E14(gUnknown_202DE58,&gUnknown_203B208->storedItem,0);
gUnknown_203B208->fallbackState = 0xe;
gUnknown_203B208->unkE4 = 0;
@@ -360,7 +360,7 @@ void sub_8016FF8(void)
case 0x13:
if (GetNumberOfFilledInventorySlots() == 0) {
sub_801A928();
gUnknown_203B208->fallbackState = 1;
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
}
else {
gUnknown_203B208->fallbackState = 0xc;
@@ -432,7 +432,7 @@ void sub_8016FF8(void)
case 0x1d:
if ((sub_801CF14(1)) || (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)) {
sub_801CBB8();
gUnknown_203B208->fallbackState = 1;
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
}
else {
gUnknown_203B208->fallbackState = 0x15;