mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-30 04:47:58 -05:00
document more kangaskhan and found more gulpin shop
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
90
src/gulpin_shop_1.c
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user