More PMD grind (#50)

* more sese grind

* match sub_802ABF8

* some more work
This commit is contained in:
Seth Barberee
2021-09-01 18:05:30 -07:00
committed by GitHub
parent 459171cf48
commit db05ce306f
49 changed files with 1564 additions and 2251 deletions

View File

@@ -6309,7 +6309,7 @@ _08045BD2:
bl sub_804510C
ldrb r1, [r0]
adds r0, r5, 0
bl sub_807FE84
bl GetTrapName
b _08045BEC
_08045BE2:
ldr r0, _08045BF4

View File

@@ -16175,7 +16175,7 @@ _0805FA62:
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_807EA18
bl GetWeatherName
ldr r0, _0805FBD4
ldr r2, [r0]
str r6, [sp]
@@ -25622,7 +25622,7 @@ _080646C4:
adds r4, r0, 0
ldrb r1, [r4]
mov r0, r10
bl sub_807FE84
bl GetTrapName
movs r0, 0
bl sub_80073B8
str r7, [sp]

View File

@@ -29515,7 +29515,7 @@ _0807E816:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_807EA18
bl GetWeatherName
ldr r0, _0807E884
ldr r1, [r0]
adds r0, r5, 0
@@ -29752,8 +29752,8 @@ _0807EA0A:
bx r0
thumb_func_end sub_807E8F0
thumb_func_start sub_807EA18
sub_807EA18:
thumb_func_start GetWeatherName
GetWeatherName:
push {lr}
lsls r1, 24
ldr r2, _0807EA2C
@@ -29764,8 +29764,8 @@ sub_807EA18:
pop {r0}
bx r0
.align 2, 0
_0807EA2C: .4byte gUnknown_80F9A54
thumb_func_end sub_807EA18
_0807EA2C: .4byte gWeatherNames
thumb_func_end GetWeatherName
thumb_func_start sub_807EA30
sub_807EA30:
@@ -32341,8 +32341,8 @@ _0807FE7E:
bx r1
thumb_func_end sub_807FE44
thumb_func_start sub_807FE84
sub_807FE84:
thumb_func_start GetTrapName
GetTrapName:
push {lr}
lsls r1, 24
ldr r2, _0807FE98
@@ -32353,8 +32353,8 @@ sub_807FE84:
pop {r0}
bx r0
.align 2, 0
_0807FE98: .4byte gUnknown_80F91F0
thumb_func_end sub_807FE84
_0807FE98: .4byte gTrapNames
thumb_func_end GetTrapName
thumb_func_start sub_807FE9C
sub_807FE9C:
@@ -32394,7 +32394,7 @@ _0807FED8:
ldr r0, _0807FF58
mov r2, r8
ldrb r1, [r2]
bl sub_807FE84
bl GetTrapName
ldr r3, [sp, 0x4]
ldr r4, [r3, 0x10]
cmp r4, 0

View File

@@ -514,7 +514,7 @@ _0802782C:
adds r1, 0x14
bl PeekPokemonItem
movs r0, 0x3
bl sub_8027184
bl SetFriendAreaActionMenuState
b _080278AE
.align 2, 0
_08027860: .4byte gUnknown_203B2BC
@@ -540,7 +540,7 @@ _08027868:
adds r1, 0x14
bl PeekPokemonItem
movs r0, 0x4
bl sub_8027184
bl SetFriendAreaActionMenuState
b _080278AE
.align 2, 0
_0802789C: .4byte gUnknown_203B2BC
@@ -548,7 +548,7 @@ _080278A0: .4byte gRecruitedPokemonRef
_080278A4:
bl sub_8023C60
movs r0, 0x11
bl sub_8027184
bl SetFriendAreaActionMenuState
_080278AE:
pop {r4}
pop {r0}
@@ -675,15 +675,15 @@ _080279B8: .4byte gRecruitedPokemonRef
_080279BC: .4byte gUnknown_203B2BC
_080279C0:
movs r0, 0x8
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027A36
_080279C8:
movs r0, 0xE
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027A36
_080279D0:
movs r0, 0xA
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027A36
_080279D8:
ldr r0, _08027A18
@@ -711,22 +711,22 @@ _080279F0:
bl nullsub_104
_08027A0E:
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027A36
.align 2, 0
_08027A18: .4byte 0x0000014d
_08027A1C: .4byte gUnknown_203B2BC
_08027A20:
movs r0, 0x4
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027A36
_08027A28:
movs r0, 0x5
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027A36
_08027A30:
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027A36:
add sp, 0x4
pop {r4}
@@ -744,7 +744,7 @@ sub_8027A40:
bhi _08027A58
bl sub_802453C
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027A58:
pop {r0}
bx r0
@@ -760,7 +760,7 @@ sub_8027A5C:
bhi _08027A74
bl sub_801BF98
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027A74:
pop {r0}
bx r0
@@ -787,7 +787,7 @@ _08027A96:
bne _08027AD8
_08027A9A:
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027AD8
_08027AA2:
ldr r0, _08027AB8
@@ -809,7 +809,7 @@ _08027ABE:
cmp r0, 0
beq _08027ACA
movs r0, 0x9
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027AD8
_08027ACA:
bl sub_8027EB8

View File

@@ -36,14 +36,14 @@ _08027CD0:
ldrh r0, [r0, 0x2A]
strh r0, [r1, 0x24]
movs r0, 0x10
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027CFA
.align 2, 0
_08027CEC: .4byte gUnknown_203B2BC
_08027CF0:
bl sub_801F214
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027CFA:
pop {r0}
bx r0
@@ -59,7 +59,7 @@ sub_8027D00:
bhi _08027D18
bl sub_801F8D0
movs r0, 0xF
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027D18:
pop {r0}
bx r0
@@ -76,7 +76,7 @@ sub_8027D1C:
ldr r0, _08027D3C
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027D34:
add sp, 0x4
pop {r0}
@@ -322,7 +322,7 @@ _08027ED8:
adds r1, 0x14
bl GivePokemonItem
movs r0, 0x6
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027F82
.align 2, 0
_08027F08: .4byte 0x0000014d
@@ -373,14 +373,14 @@ _08027F52:
adds r1, 0x14
bl GivePokemonItem
movs r0, 0x7
bl sub_8027184
bl SetFriendAreaActionMenuState
b _08027F82
.align 2, 0
_08027F74: .4byte gTeamInventory_203B460
_08027F78: .4byte gUnknown_203B2BC
_08027F7C:
movs r0, 0x2
bl sub_8027184
bl SetFriendAreaActionMenuState
_08027F82:
pop {r4}
pop {r0}

View File

@@ -389,125 +389,4 @@ _0801ED22:
bx r0
thumb_func_end sub_801ECBC
thumb_func_start sub_801ED28
sub_801ED28:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801EF38
ldr r4, _0801ED60
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801ED4E
ldr r0, [r4]
adds r0, 0x78
mov r1, sp
bl sub_8013114
_0801ED4E:
ldr r0, [sp]
cmp r0, 0x2
beq _0801ED74
cmp r0, 0x2
bgt _0801ED64
cmp r0, 0x1
beq _0801ED6C
b _0801ED9A
.align 2, 0
_0801ED60: .4byte gUnknown_203B26C
_0801ED64:
cmp r0, 0x3
beq _0801ED94
cmp r0, 0x5
bne _0801ED9A
_0801ED6C:
movs r0, 0x1
bl UpdateGulpinShopState
b _0801ED9A
_0801ED74:
ldr r0, _0801ED90
bl PlaySound
ldr r1, [r4]
ldr r0, [r1, 0x20]
ldr r1, [r1, 0x10]
bl sub_80934B0
ldr r1, [r4]
strb r0, [r1, 0xE]
movs r0, 0x4
bl UpdateGulpinShopState
b _0801ED9A
.align 2, 0
_0801ED90: .4byte 0x00000133
_0801ED94:
movs r0, 0x3
bl UpdateGulpinShopState
_0801ED9A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801ED28
thumb_func_start sub_801EDA4
sub_801EDA4:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _0801EDBC
cmp r0, 0x3
bhi _0801EDBC
bl sub_801F8D0
movs r0, 0x1
bl UpdateGulpinShopState
_0801EDBC:
pop {r0}
bx r0
thumb_func_end sub_801EDA4
thumb_func_start sub_801EDC0
sub_801EDC0:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801EE06
ldr r0, [sp]
cmp r0, 0x4
beq _0801EDE4
cmp r0, 0x4
bgt _0801EDDE
cmp r0, 0x1
beq _0801EE00
b _0801EE06
_0801EDDE:
cmp r0, 0x5
beq _0801EE00
b _0801EE06
_0801EDE4:
bl sub_801F214
ldr r4, _0801EDFC
ldr r1, [r4]
ldr r0, [r1, 0x10]
ldr r1, [r1, 0x20]
bl sub_8093CF8
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
b _0801EE06
.align 2, 0
_0801EDFC: .4byte gUnknown_203B26C
_0801EE00:
movs r0, 0x1
bl UpdateGulpinShopState
_0801EE06:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801EDC0
.align 2,0

View File

@@ -5,193 +5,6 @@
.text
thumb_func_start CreateRescuePasswordMenu
CreateRescuePasswordMenu:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
ldr r5, _080389B8
ldr r0, [r5]
cmp r0, 0
bne _0803892A
movs r4, 0x85
lsls r4, 2
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_0803892A:
movs r0, 0x1B
negs r0, r0
adds r0, r6
mov r8, r0
mov r12, r5
movs r1, 0xA4
lsls r1, 1
mov r9, r1
ldr r4, _080389BC
mov r10, r4
movs r3, 0
movs r2, 0x3
_08038942:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r9
mov r0, r10
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08038942
bl ResetUnusedInputStruct
ldr r4, _080389B8
ldr r0, [r4]
movs r7, 0xA4
lsls r7, 1
adds r0, r7
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r2, _080389C0
ldrb r0, [r2]
cmp r0, 0
bne _08038986
ldr r0, _080389C4
ldr r1, [r0]
adds r7, r4, 0
adds r5, r0, 0
cmp r1, r6
beq _080389A0
_08038986:
adds r7, r4, 0
adds r3, r2, 0
ldr r5, _080389C4
ldr r1, _080389C8
movs r2, 0
adds r0, r1, 0
adds r0, 0x35
_08038994:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _08038994
movs r0, 0
strb r0, [r3]
_080389A0:
ldr r0, [r7]
str r6, [r0]
str r6, [r5]
mov r0, r8
cmp r0, 0x7
bhi _08038A36
lsls r0, 2
ldr r1, _080389CC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080389B8: .4byte gRescuePasswordMenu
_080389BC: .4byte gUnknown_80E71E4
_080389C0: .4byte gUnknown_203B368
_080389C4: .4byte gUnknown_203B36C
_080389C8: .4byte gUnknown_202EC50
_080389CC: .4byte _080389D0
.align 2, 0
_080389D0:
.4byte _080389F0
.4byte _080389FC
.4byte _080389F0
.4byte _080389FC
.4byte _080389F0
.4byte _080389FC
.4byte _08038A0C
.4byte _08038A2E
_080389F0:
bl sub_8035D74
movs r1, 0
bl sub_8031D70
b _08038A36
_080389FC:
ldr r1, _08038A08
movs r0, 0x4
bl sub_80151C0
b _08038A36
.align 2, 0
_08038A08: .4byte gUnknown_202EC50
_08038A0C:
movs r0, 0x1F
bl sub_8095228
adds r4, r0, 0
movs r1, 0
movs r2, 0x30
bl MemoryFill8
movs r1, 0
movs r0, 0x2
strb r0, [r4]
adds r4, 0x22
strb r1, [r4]
movs r0, 0x1F
bl sub_8031D70
b _08038A36
_08038A2E:
ldr r1, _08038A54
movs r0, 0x4
bl sub_80151C0
_08038A36:
adds r0, r6, 0
bl sub_8039000
ldr r1, _08038A58
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_8039174
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08038A54: .4byte gUnknown_202EC50
_08038A58: .4byte gRescuePasswordMenu
thumb_func_end CreateRescuePasswordMenu
thumb_func_start CleanRescuePasswordMenu
CleanRescuePasswordMenu:
push {r4,lr}
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08038A8C
ldr r0, [r4]
cmp r0, 0
beq _08038A86
bl sub_80155F0
bl sub_8031E10
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08038A86:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038A8C: .4byte gRescuePasswordMenu
thumb_func_end CleanRescuePasswordMenu
thumb_func_start UpdateRescuePasswordMenu
UpdateRescuePasswordMenu:
push {r4-r6,lr}
@@ -535,7 +348,7 @@ _08038D66:
ldr r4, _08038DA0
ldr r0, [r4]
ldr r0, [r0]
bl sub_8039000
bl ConvertMenutoRescuePasswordState
ldr r1, [r4]
str r0, [r1, 0x4]
ldr r0, [r1]
@@ -822,8 +635,8 @@ _08038FF8: .4byte gUnknown_80E7278
_08038FFC: .4byte gUnknown_80E7290
thumb_func_end sub_8038F98
thumb_func_start sub_8039000
sub_8039000:
thumb_func_start ConvertMenutoRescuePasswordState
ConvertMenutoRescuePasswordState:
push {lr}
movs r1, 0xB
ldr r0, _0803901C
@@ -877,7 +690,7 @@ _08039062:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end sub_8039000
thumb_func_end ConvertMenutoRescuePasswordState
thumb_func_start sub_8039068
sub_8039068:
@@ -1085,53 +898,4 @@ _080391F0: .4byte 0x00003fff
_080391F4: .4byte 0x00000fff
thumb_func_end sub_8039174
thumb_func_start sub_80391F8
sub_80391F8:
push {r4-r6,lr}
ldr r6, _08039250
ldr r2, [r6]
movs r0, 0x82
lsls r0, 2
adds r4, r2, r0
ldrh r1, [r4, 0x2]
movs r0, 0xFE
lsls r0, 8
ands r0, r1
movs r1, 0x70
orrs r0, r1
strh r0, [r4, 0x2]
movs r3, 0xE0
lsls r3, 3
ldrh r1, [r4, 0x6]
movs r0, 0xF
ands r0, r1
orrs r0, r3
strh r0, [r4, 0x6]
movs r5, 0x84
lsls r5, 2
adds r2, r5
ldr r0, [r2]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0803923C
adds r1, 0xF8
adds r0, r4, 0
movs r2, 0
movs r3, 0
bl AddSprite
_0803923C:
bl xxx_draw_string_80144C4
ldr r1, [r6]
adds r1, r5
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08039250: .4byte gRescuePasswordMenu
thumb_func_end sub_80391F8
.align 2,0

View File

@@ -5,313 +5,6 @@
.text
thumb_func_start sub_8028078
sub_8028078:
push {lr}
ldr r0, _08028090
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x3C
bls _08028086
b _080282D4
_08028086:
lsls r0, 2
ldr r1, _08028094
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028090: .4byte gUnknown_203B2C0
_08028094: .4byte _08028098
.align 2, 0
_08028098:
.4byte _080282C4
.4byte _080282C4
.4byte _080282CA
.4byte _080282D0
.4byte _08028222
.4byte _08028234
.4byte _08028228
.4byte _0802822E
.4byte _0802823A
.4byte _080281FE
.4byte _08028272
.4byte _08028278
.4byte _0802828C
.4byte _0802827E
.4byte _0802828C
.4byte _0802827E
.4byte _0802828C
.4byte _08028286
.4byte _08028294
.4byte _0802829A
.4byte _080282B2
.4byte _080282B8
.4byte _080282BE
.4byte _080282A0
.4byte _080282A6
.4byte _080282AC
.4byte _08028240
.4byte _08028248
.4byte _0802824E
.4byte _0802824E
.4byte _0802825A
.4byte _0802826C
.4byte _08028260
.4byte _08028266
.4byte _08028254
.4byte _08028204
.4byte _0802820A
.4byte _080282CA
.4byte _08028210
.4byte _08028216
.4byte _0802821C
.4byte _080281E0
.4byte _080281F2
.4byte _080281E6
.4byte _080281EC
.4byte _080281DA
.4byte _080281D4
.4byte _080281F8
.4byte _080281CE
.4byte _080281C2
.4byte _080281AA
.4byte _080281B0
.4byte _080281B6
.4byte _080281BC
.4byte _080281C8
.4byte _080281A4
.4byte _0802819E
.4byte _080282CA
.4byte _08028192
.4byte _08028198
.4byte _0802818C
_0802818C:
bl sub_8029B34
b _080282D4
_08028192:
bl sub_8029AD8
b _080282D4
_08028198:
bl sub_8029AF4
b _080282D4
_0802819E:
bl sub_8029A88
b _080282D4
_080281A4:
bl sub_8029AB0
b _080282D4
_080281AA:
bl sub_80297B8
b _080282D4
_080281B0:
bl sub_80297D4
b _080282D4
_080281B6:
bl sub_8029884
b _080282D4
_080281BC:
bl sub_8029944
b _080282D4
_080281C2:
bl sub_80299AC
b _080282D4
_080281C8:
bl sub_80299D8
b _080282D4
_080281CE:
bl sub_8029A6C
b _080282D4
_080281D4:
bl sub_8029A18
b _080282D4
_080281DA:
bl sub_80295A8
b _080282D4
_080281E0:
bl sub_8029668
b _080282D4
_080281E6:
bl sub_8029684
b _080282D4
_080281EC:
bl sub_8029740
b _080282D4
_080281F2:
bl sub_80295D8
b _080282D4
_080281F8:
bl sub_802979C
b _080282D4
_080281FE:
bl sub_8029358
b _080282D4
_08028204:
bl sub_8029374
b _080282D4
_0802820A:
bl sub_802939C
b _080282D4
_08028210:
bl sub_80293D8
b _080282D4
_08028216:
bl sub_80293F4
b _080282D4
_0802821C:
bl sub_802955C
b _080282D4
_08028222:
bl sub_80292A4
b _080282D4
_08028228:
bl sub_80292EC
b _080282D4
_0802822E:
bl sub_802933C
b _080282D4
_08028234:
bl sub_802958C
b _080282D4
_0802823A:
bl sub_8029208
b _080282D4
_08028240:
movs r0, 0x1
bl sub_8028DE8
b _080282D4
_08028248:
bl sub_8028F80
b _080282D4
_0802824E:
bl sub_8028FC0
b _080282D4
_08028254:
bl sub_8028FDC
b _080282D4
_0802825A:
bl sub_80290D4
b _080282D4
_08028260:
bl sub_80290F0
b _080282D4
_08028266:
bl sub_80291AC
b _080282D4
_0802826C:
bl sub_8029044
b _080282D4
_08028272:
bl sub_8028CFC
b _080282D4
_08028278:
bl sub_8028D4C
b _080282D4
_0802827E:
movs r0, 0xA
bl sub_8028DE8
b _080282D4
_08028286:
bl sub_8028E08
b _080282D4
_0802828C:
movs r0, 0x19
bl sub_8028DE8
b _080282D4
_08028294:
bl sub_8028E24
b _080282D4
_0802829A:
bl sub_8028E54
b _080282D4
_080282A0:
bl sub_8028E84
b _080282D4
_080282A6:
bl sub_8028EAC
b _080282D4
_080282AC:
bl sub_8028ED4
b _080282D4
_080282B2:
bl sub_8028F04
b _080282D4
_080282B8:
bl sub_8028F30
b _080282D4
_080282BE:
bl sub_8028F58
b _080282D4
_080282C4:
bl sub_8028BF0
b _080282D4
_080282CA:
bl sub_8028CE0
b _080282D4
_080282D0:
movs r0, 0x3
b _080282D6
_080282D4:
movs r0, 0
_080282D6:
pop {r1}
bx r1
thumb_func_end sub_8028078
thumb_func_start sub_80282DC
sub_80282DC:
ldr r1, _080282F4
ldr r1, [r1]
movs r3, 0x86
lsls r3, 2
adds r2, r1, r3
ldrb r2, [r2]
strb r2, [r0]
ldr r0, _080282F8
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_080282F4: .4byte gUnknown_203B2C0
_080282F8: .4byte 0x0000053c
thumb_func_end sub_80282DC
thumb_func_start sub_80282FC
sub_80282FC:
push {r4,lr}
ldr r4, _08028340
ldr r0, [r4]
cmp r0, 0
beq _08028338
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_8031E10
bl sub_8023C60
bl sub_803084C
bl sub_80155F0
bl sub_80310B4
bl sub_8030DE4
bl sub_802453C
_08028338:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08028340: .4byte gUnknown_203B2C0
thumb_func_end sub_80282FC
thumb_func_start nullsub_130
nullsub_130:
bx lr
thumb_func_end nullsub_130
thumb_func_start sub_8028348
sub_8028348:
push {r4-r6,lr}

View File

@@ -1,806 +0,0 @@
.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_802ABF8
sub_802ABF8:
push {r4-r6,lr}
sub sp, 0xB8
ldr r1, _0802AC14
ldr r0, [r1]
ldrb r0, [r0]
adds r6, r1, 0
cmp r0, 0x2A
bls _0802AC0A
b _0802B2AA
_0802AC0A:
lsls r0, 2
ldr r1, _0802AC18
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802AC14: .4byte gUnknown_203B2C4
_0802AC18: .4byte _0802AC1C
.align 2, 0
_0802AC1C:
.4byte _0802B1DC
.4byte _0802B1FC
.4byte _0802B22C
.4byte _0802B2AA
.4byte _0802B1D4
.4byte _0802ACC8
.4byte _0802B248
.4byte _0802B194
.4byte _0802B1A4
.4byte _0802B168
.4byte _0802B138
.4byte _0802B128
.4byte _0802B0F0
.4byte _0802B0AC
.4byte _0802AD08
.4byte _0802AD18
.4byte _0802AD20
.4byte _0802AD46
.4byte _0802B2AA
.4byte _0802AD80
.4byte _0802ADB0
.4byte _0802B2AA
.4byte _0802B07C
.4byte _0802B094
.4byte _0802B2AA
.4byte _0802AF50
.4byte _0802AF1A
.4byte _0802AF46
.4byte _0802B2AA
.4byte _0802B0A4
.4byte _0802ADF8
.4byte _0802B2AA
.4byte _0802AF70
.4byte _0802AF78
.4byte _0802AFAC
.4byte _0802B2AA
.4byte _0802AF60
.4byte _0802B2AA
.4byte _0802AEEC
.4byte _0802AEF4
.4byte _0802B2AA
.4byte _0802B110
.4byte _0802B120
_0802ACC8:
bl sub_808D33C
adds r1, r0, 0
adds r1, 0x4C
add r0, sp, 0x14
movs r2, 0xA
bl sub_80922B4
ldr r5, _0802ACF8
ldr r0, [r5]
ldr r4, _0802ACFC
adds r0, r4
ldr r1, _0802AD00
add r2, sp, 0x14
bl ExpandPlaceholdersBuffer
ldr r2, [r5]
adds r4, r2, r4
movs r0, 0x84
lsls r0, 3
adds r2, r0
ldr r3, _0802AD04
adds r0, r4, 0
b _0802B238
.align 2, 0
_0802ACF8: .4byte gUnknown_203B2C4
_0802ACFC: .4byte 0x00000434
_0802AD00: .4byte gUnknown_80DF250
_0802AD04: .4byte 0x0000010d
_0802AD08:
ldr r0, _0802AD10
ldr r3, _0802AD14
b _0802B1A8
.align 2, 0
_0802AD10: .4byte gUnknown_80DF304
_0802AD14: .4byte gUnknown_80DEE60
_0802AD18:
ldr r0, _0802AD1C
b _0802B22E
.align 2, 0
_0802AD1C: .4byte gUnknown_80DF330
_0802AD20:
bl sub_8030894
cmp r0, 0
beq _0802AD2A
b _0802B2AA
_0802AD2A:
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x5
movs r1, 0
movs r2, 0
movs r3, 0x6
bl sub_80306A8
b _0802B2AA
_0802AD46:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _0802AD78
ldr r2, _0802AD7C
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_803092C
b _0802ADE0
.align 2, 0
_0802AD78: .4byte gUnknown_80DED60
_0802AD7C: .4byte gUnknown_80DED78
_0802AD80:
bl sub_801D008
cmp r0, 0
beq _0802AD8A
b _0802B2AA
_0802AD8A:
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
add r2, sp, 0xB4
ldr r0, _0802ADAC
str r0, [r2]
movs r0, 0
movs r1, 0x1
movs r3, 0x9
bl sub_801C8C4
b _0802B2AA
.align 2, 0
_0802ADAC: .4byte 0x00020003
_0802ADB0:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _0802ADF0
ldr r2, _0802ADF4
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_801CCD8
_0802ADE0:
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
b _0802B2AA
.align 2, 0
_0802ADF0: .4byte gUnknown_80DED48
_0802ADF4: .4byte gUnknown_80DED78
_0802ADF8:
ldr r1, [r6]
movs r0, 0
str r0, [r1, 0x44]
bl sub_8011830
ldr r0, [r6]
ldr r0, [r0, 0x40]
bl sub_8037B28
ldr r1, [r6]
str r0, [r1, 0x44]
cmp r0, 0
bne _0802AEE6
ldr r0, [r1, 0x40]
cmp r0, 0x6
beq _0802AE1E
cmp r0, 0x7
beq _0802AE5C
b _0802AE8C
_0802AE1E:
movs r4, 0xDC
lsls r4, 1
adds r0, r1, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r5, 0x86
lsls r5, 2
adds r0, r5
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, r4
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r4, r2, r4
movs r1, 0xF4
lsls r1, 1
adds r2, r1
b _0802AE82
_0802AE5C:
movs r4, 0xDC
lsls r4, 1
adds r0, r1, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r5, 0xF4
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r4, r2, r4
adds r2, r5
_0802AE82:
adds r1, r4, 0
bl sub_8037D64
ldr r1, [r6]
str r0, [r1, 0x44]
_0802AE8C:
ldr r4, _0802AED0
ldr r2, [r4]
ldr r0, [r2, 0x44]
cmp r0, 0
bne _0802AEE6
ldr r0, [r2, 0x40]
cmp r0, 0x7
bhi _0802AEE6
cmp r0, 0x6
bcc _0802AEE6
movs r3, 0xDC
lsls r3, 1
adds r1, r2, r3
movs r5, 0xF4
lsls r5, 1
adds r2, r5
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _0802AED4
ldr r0, [r4]
movs r2, 0x86
lsls r2, 3
adds r1, r0, r2
movs r3, 0xFC
lsls r3, 1
adds r0, r3
b _0802AEE2
.align 2, 0
_0802AED0: .4byte gUnknown_203B2C4
_0802AED4:
ldr r0, [r4]
movs r5, 0x86
lsls r5, 3
adds r1, r0, r5
movs r2, 0xE4
lsls r2, 1
adds r0, r2
_0802AEE2:
ldr r0, [r0]
str r0, [r1]
_0802AEE6:
bl xxx_call_start_bg_music
b _0802B2AA
_0802AEEC:
ldr r0, _0802AEF0
b _0802B22E
.align 2, 0
_0802AEF0: .4byte gUnknown_80DF380
_0802AEF4:
ldr r0, [r6]
movs r5, 0xEF
lsls r5, 2
adds r0, r5
bl sub_8006518
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r1, 0x8
movs r0, 0x4
bl sub_80151C0
b _0802B2AA
_0802AF1A:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
movs r2, 0x86
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
movs r1, 0
bl sub_8031D70
b _0802B2AA
_0802AF46:
ldr r0, _0802AF4C
b _0802B22E
.align 2, 0
_0802AF4C: .4byte gUnknown_80DF3B4
_0802AF50:
ldr r0, _0802AF5C
ldr r2, [r6]
movs r5, 0x84
lsls r5, 3
adds r2, r5
b _0802B236
.align 2, 0
_0802AF5C: .4byte gUnknown_80DF418
_0802AF60:
ldr r0, _0802AF6C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802AF6C: .4byte gUnknown_80DF44C
_0802AF70:
ldr r0, _0802AF74
b _0802B22E
.align 2, 0
_0802AF74: .4byte gUnknown_80DF46C
_0802AF78:
ldr r0, [r6]
ldr r5, _0802AF90
adds r0, r5
ldr r0, [r0]
cmp r0, 0x4
bne _0802AF86
b _0802B2AA
_0802AF86:
cmp r0, 0x4
bgt _0802AF94
cmp r0, 0x3
beq _0802AF9A
b _0802B2AA
.align 2, 0
_0802AF90: .4byte 0x00000534
_0802AF94:
cmp r0, 0x6
ble _0802AF9A
b _0802B2AA
_0802AF9A:
ldr r0, _0802AFA8
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802AFA8: .4byte gUnknown_80DF4F4
_0802AFAC:
movs r4, 0x98
lsls r4, 1
adds r0, r4, 0
bl GetMonSpecies
adds r1, r0, 0
ldr r5, _0802B00C
ldr r0, [r5]
ldr r2, _0802B010
adds r0, r2
bl strcpy
ldr r1, [r5]
movs r3, 0xAA
lsls r3, 3
adds r0, r1, r3
movs r2, 0
strh r4, [r0]
ldr r0, _0802B014
adds r1, r0
movs r0, 0x2
strb r0, [r1]
ldr r0, [r5]
adds r3, 0x4
adds r1, r0, r3
str r2, [r1]
movs r1, 0x86
lsls r1, 3
adds r0, r1
ldr r1, [r0]
movs r0, 0x6
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
adds r0, 0x22
ldrb r1, [r0]
cmp r1, 0
beq _0802B018
ldr r0, [r5]
movs r3, 0xAB
lsls r3, 3
adds r0, r3
b _0802B022
.align 2, 0
_0802B00C: .4byte gUnknown_203B2C4
_0802B010: .4byte 0x0000053c
_0802B014: .4byte 0x00000552
_0802B018:
ldr r0, [r5]
movs r5, 0xAB
lsls r5, 3
adds r0, r5
movs r1, 0
_0802B022:
strb r1, [r0]
ldr r4, _0802B068
ldr r0, [r4]
ldr r1, _0802B06C
adds r0, r1
movs r5, 0
movs r1, 0x1
strb r1, [r0]
adds r0, r2, 0x4
movs r1, 0
bl sub_803C200
ldr r1, [r4]
movs r3, 0xAC
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
ldr r0, _0802B070
adds r1, r0
strb r5, [r1]
ldr r0, [r4]
ldr r1, _0802B074
adds r0, r1
strb r5, [r0]
ldr r0, [r4]
ldr r2, _0802B078
adds r0, r2
strb r5, [r0]
ldr r0, [r4]
subs r3, 0x24
adds r0, r3
movs r1, 0
bl sub_802F204
b _0802B2AA
.align 2, 0
_0802B068: .4byte gUnknown_203B2C4
_0802B06C: .4byte 0x0000055b
_0802B070: .4byte 0x00000559
_0802B074: .4byte 0x0000055a
_0802B078: .4byte 0x0000055c
_0802B07C:
movs r0, 0
bl nullsub_23
ldr r0, _0802B090
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _0802B2AA
.align 2, 0
_0802B090: .4byte gUnknown_80DF544
_0802B094:
ldr r0, _0802B0A0
ldr r2, [r6]
movs r5, 0x84
lsls r5, 3
adds r2, r5
b _0802B236
.align 2, 0
_0802B0A0: .4byte gUnknown_80DF594
_0802B0A4:
ldr r0, _0802B0A8
b _0802B1A6
.align 2, 0
_0802B0A8: .4byte gUnknown_80DF5E4
_0802B0AC:
bl sub_808D33C
adds r1, r0, 0
add r6, sp, 0x64
adds r1, 0x4C
adds r0, r6, 0
movs r2, 0xA
bl sub_80922B4
ldr r5, _0802B0E0
ldr r0, [r5]
ldr r4, _0802B0E4
adds r0, r4
ldr r1, _0802B0E8
adds r2, r6, 0
bl ExpandPlaceholdersBuffer
ldr r2, [r5]
adds r4, r2, r4
movs r3, 0x84
lsls r3, 3
adds r2, r3
ldr r3, _0802B0EC
adds r0, r4, 0
b _0802B238
.align 2, 0
_0802B0E0: .4byte gUnknown_203B2C4
_0802B0E4: .4byte 0x00000434
_0802B0E8: .4byte gUnknown_80DF63C
_0802B0EC: .4byte 0x0000010d
_0802B0F0:
ldr r0, _0802B108
ldr r3, _0802B10C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r5, 0x84
lsls r5, 3
adds r1, r5
b _0802B1BA
.align 2, 0
_0802B108: .4byte gUnknown_80DF694
_0802B10C: .4byte gUnknown_80DEEE4
_0802B110:
ldr r0, _0802B11C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802B11C: .4byte gUnknown_80DF44C
_0802B120:
ldr r0, _0802B124
b _0802B22E
.align 2, 0
_0802B124: .4byte gUnknown_80DF6F0
_0802B128:
ldr r0, _0802B134
ldr r2, [r6]
movs r5, 0x84
lsls r5, 3
adds r2, r5
b _0802B236
.align 2, 0
_0802B134: .4byte gUnknown_80DF710
_0802B138:
ldr r0, _0802B160
ldr r3, _0802B164
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B160: .4byte gUnknown_80DF73C
_0802B164: .4byte gUnknown_80DEEBC
_0802B168:
ldr r0, _0802B18C
ldr r3, _0802B190
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r5, 0x84
lsls r5, 3
adds r1, r5
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B18C: .4byte gUnknown_80DF77C
_0802B190: .4byte gUnknown_80DEE7C
_0802B194:
ldr r0, _0802B1A0
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802B1A0: .4byte gUnknown_80DF7D4
_0802B1A4:
ldr r0, _0802B1CC
_0802B1A6:
ldr r3, _0802B1D0
_0802B1A8:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
_0802B1BA:
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x7
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B1CC: .4byte gUnknown_80DF870
_0802B1D0: .4byte gUnknown_80DEE44
_0802B1D4:
ldr r0, _0802B1D8
b _0802B22E
.align 2, 0
_0802B1D8: .4byte gUnknown_80DF8B4
_0802B1DC:
ldr r0, _0802B1F4
ldr r3, _0802B1F8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r5, 0x84
lsls r5, 3
adds r1, r5
b _0802B212
.align 2, 0
_0802B1F4: .4byte gUnknown_80DF8EC
_0802B1F8: .4byte gUnknown_80DEDB8
_0802B1FC:
ldr r0, _0802B224
ldr r3, _0802B228
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
_0802B212:
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x1
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B224: .4byte gUnknown_80DF928
_0802B228: .4byte gUnknown_80DEDB8
_0802B22C:
ldr r0, _0802B240
_0802B22E:
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
_0802B236:
ldr r3, _0802B244
_0802B238:
movs r1, 0
bl sub_80141B4
b _0802B2AA
.align 2, 0
_0802B240: .4byte gUnknown_80DF94C
_0802B244: .4byte 0x0000010d
_0802B248:
ldr r4, [r6]
movs r5, 0xA7
lsls r5, 3
adds r0, r4, r5
ldr r0, [r0]
cmp r0, 0x1
beq _0802B25C
cmp r0, 0x2
beq _0802B288
b _0802B2AA
_0802B25C:
ldr r0, _0802B280
ldr r3, _0802B284
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r2, 0x84
lsls r2, 3
adds r1, r4, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B280: .4byte gUnknown_80DF96C
_0802B284: .4byte gUnknown_80DEE08
_0802B288:
ldr r0, _0802B2B4
ldr r3, _0802B2B8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r5, 0x84
lsls r5, 3
adds r1, r4, r5
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
_0802B2AA:
add sp, 0xB8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802B2B4: .4byte gUnknown_80DF9A4
_0802B2B8: .4byte gUnknown_80DEE08
thumb_func_end sub_802ABF8
.align 2,0

View File

@@ -5,290 +5,6 @@
.text
thumb_func_start sub_802B640
sub_802B640:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
mov r8, r2
bl sub_802B9D8
lsls r0, 24
cmp r0, 0
beq _0802B65A
movs r0, 0
b _0802B706
_0802B65A:
ldr r5, _0802B710
ldr r0, [r5]
cmp r0, 0
bne _0802B66C
movs r0, 0xD4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0802B66C:
ldr r0, [r5]
str r6, [r0, 0x6C]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x74
adds r1, r0, r1
str r1, [r0, 0x70]
adds r0, 0x74
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x6C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x74
ldr r0, _0802B714
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
cmp r4, 0
beq _0802B6B0
ldr r1, [r5]
ldr r2, [r1, 0x6C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, 0x7C
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_0802B6B0:
ldr r0, [r5]
ldr r0, [r0, 0x70]
mov r1, r8
bl sub_8012D08
bl ResetUnusedInputStruct
ldr r0, [r5]
adds r0, 0x74
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x38
bl sub_802B9A8
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_8013818
ldr r2, [r5]
ldr r0, _0802B718
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x50
strh r1, [r0]
ldr r0, _0802B71C
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x56
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x38
bl sub_8013984
bl sub_802B880
bl sub_802B8D4
movs r0, 0x1
_0802B706:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802B710: .4byte gUnknown_203B2CC
_0802B714: .4byte gUnknown_80DFBEC
_0802B718: .4byte gUnknown_203B2D0
_0802B71C: .4byte gUnknown_203B2D2
thumb_func_end sub_802B640
thumb_func_start sub_802B720
sub_802B720:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0802B73C
ldr r0, _0802B738
ldr r0, [r0]
adds r0, 0x38
bl sub_8013660
movs r0, 0
b _0802B7A2
.align 2, 0
_0802B738: .4byte gUnknown_203B2CC
_0802B73C:
ldr r0, _0802B754
ldr r0, [r0]
adds r0, 0x38
bl GetKeyPress
cmp r0, 0x2
beq _0802B75E
cmp r0, 0x2
bgt _0802B758
cmp r0, 0x1
beq _0802B768
b _0802B77C
.align 2, 0
_0802B754: .4byte gUnknown_203B2CC
_0802B758:
cmp r0, 0x4
beq _0802B772
b _0802B77C
_0802B75E:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
b _0802B7A2
_0802B768:
movs r0, 0
bl PlayMenuSoundEffect
movs r0, 0x3
b _0802B7A2
_0802B772:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x4
b _0802B7A2
_0802B77C:
ldr r0, _0802B794
ldr r0, [r0]
adds r0, 0x38
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802B798
movs r0, 0
b _0802B7A2
.align 2, 0
_0802B794: .4byte gUnknown_203B2CC
_0802B798:
bl sub_802B880
bl sub_802B8D4
movs r0, 0x1
_0802B7A2:
pop {r1}
bx r1
thumb_func_end sub_802B720
thumb_func_start sub_802B7A8
sub_802B7A8:
ldr r0, _0802B7CC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x56
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, 0x50
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
adds r0, r2, r0
ldrb r0, [r0]
bx lr
.align 2, 0
_0802B7CC: .4byte gUnknown_203B2CC
thumb_func_end sub_802B7A8
thumb_func_start sub_802B7D0
sub_802B7D0:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl ResetUnusedInputStruct
ldr r5, _0802B818
ldr r0, [r5]
adds r0, 0x74
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_802B9A8
adds r1, r0, 0
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x5A
strh r1, [r2]
adds r0, 0x38
bl sub_8013984
bl sub_802B880
bl sub_802B8D4
cmp r4, 0
beq _0802B812
ldr r0, [r5]
adds r0, 0x38
bl AddMenuCursorSprite
_0802B812:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802B818: .4byte gUnknown_203B2CC
thumb_func_end sub_802B7D0
thumb_func_start sub_802B81C
sub_802B81C:
push {r4,r5,lr}
ldr r4, _0802B870
ldr r2, [r4]
cmp r2, 0
beq _0802B86A
ldr r1, _0802B874
adds r0, r2, 0
adds r0, 0x50
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _0802B878
adds r0, r2, 0
adds r0, 0x56
ldrh r0, [r0]
strh r0, [r1]
ldr r0, [r2, 0x6C]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x74
ldr r0, _0802B87C
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, 0x74
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802B86A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802B870: .4byte gUnknown_203B2CC
_0802B874: .4byte gUnknown_203B2D0
_0802B878: .4byte gUnknown_203B2D2
_0802B87C: .4byte gUnknown_80DFBD0
thumb_func_end sub_802B81C
thumb_func_start sub_802B880
sub_802B880:
push {r4,lr}

View File

@@ -5350,28 +5350,4 @@ _0802FCCE:
_0802FCEC: .4byte gUnknown_203B314
thumb_func_end sub_802FBF4
thumb_func_start sub_802FCF0
sub_802FCF0:
push {r4,lr}
movs r4, 0
_0802FCF4:
lsls r0, r4, 16
asrs r0, 16
bl sub_80A27CC
lsls r0, 24
cmp r0, 0
beq _0802FD06
movs r0, 0
b _0802FD0E
_0802FD06:
adds r4, 0x1
cmp r4, 0x2D
ble _0802FCF4
movs r0, 0x1
_0802FD0E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802FCF0
.align 2,0

View File

@@ -853,11 +853,15 @@ gUnknown_80E352C: @ 80E352C
.global gUnknown_80E355C
gUnknown_80E355C: @ 80E355C
.incbin "baserom.gba", 0xE355C, 0x50
.string "Mail can~27t be sent to a GBA Game Pak\n"
.string "with the game quicksaved in a dungeon.\0"
.align 2,0
.global gUnknown_80E35AC
gUnknown_80E35AC: @ 80E35AC
.incbin "baserom.gba", 0xE35AC, 0x3C
.string "The GBA Game Pak does not have\n"
.string "a #CGThank-You Mail#R on it.\0"
.align 2,0
.global gUnknown_80E35E8
gUnknown_80E35E8: @ 80E35E8
@@ -866,11 +870,15 @@ gUnknown_80E35E8: @ 80E35E8
.global gUnknown_80E360C
gUnknown_80E360C: @ 80E360C
.incbin "baserom.gba", 0xE360C, 0x38
.string "How would you like to send\n"
.string "your #CGThank-You Mail#R?\0"
.align 2,0
.global gUnknown_80E3644
gUnknown_80E3644: @ 80E3644
.incbin "baserom.gba", 0xE3644, 0x38
.string "How would you like to receive\n"
.string "the #CGThank-You Mail#R?\0"
.align 2,0
.global gUnknown_80E367C
gUnknown_80E367C: @ 80E367C
@@ -1279,11 +1287,48 @@ gUnknown_80E5A78: @ 80E5A78
.global gUnknown_80E5A90
gUnknown_80E5A90: @ 80E5A90
.incbin "baserom.gba", 0xE5A90, 0x6C
.4byte Continue_80E5AF0
.byte 0x07, 0x00, 0x00, 0x00
.4byte DeleteSaveData_80E5ADC
.byte 0x08, 0x00, 0x00, 0x00
.4byte 0x80E5A10
.byte 0x0a, 0x00, 0x00, 0x00
.4byte FriendRescue_80E5ACC
.byte 0x0b, 0x00, 0x00, 0x00
.4byte TradeItems_80E5AC0
.byte 0x0c, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xdd, 0xff, 0x00, 0x00
TradeItems_80E5AC0:
.string "Trade Items\0"
.align 2,0
FriendRescue_80E5ACC:
.string "Friend Rescue\0"
.align 2,0
DeleteSaveData_80E5ADC:
.string "Delete Save Data\0"
.align 2,0
Continue_80E5AF0:
.string "Continue\0"
.align 2,0
.global gUnknown_80E5AFC
gUnknown_80E5AFC: @ 80E5AFC
.incbin "baserom.gba", 0xE5AFC, 0x38
.4byte Continue_80E5AF0
.byte 0x07, 0x00, 0x00, 0x00
.4byte DeleteSaveData_80E5ADC
.byte 0x08, 0x00, 0x00, 0x00
.4byte 0x80E5A10
.byte 0x0a, 0x00, 0x00, 0x00
.4byte FriendRescue_80E5ACC
.byte 0x0b, 0x00, 0x00, 0x00
.4byte TradeItems_80E5AC0
.byte 0x0c, 0x00, 0x00, 0x00
.4byte 0x80E5A54
.byte 0x0d, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xdd, 0xff, 0x00, 0x00
.global gUnknown_80E5B34
gUnknown_80E5B34: @ 80E5B34
@@ -1296,11 +1341,39 @@ gUnknown_80E5B34: @ 80E5B34
.global gUnknown_80E5B4C
gUnknown_80E5B4C: @ 80E5B4C
.incbin "baserom.gba", 0xE5B4C, 0x40
.4byte AwaitingRescue_80E5B7C
.byte 0x06, 0x00, 0x00, 0x00
.4byte DeleteSaveData_80E5ADC
.byte 0x08, 0x00, 0x00, 0x00
.4byte 0x80E5A10
.byte 0x0a, 0x00, 0x00, 0x00
.4byte FriendRescue_80E5ACC
.byte 0x0b, 0x00, 0x00, 0x00
.4byte TradeItems_80E5AC0
.byte 0x0c, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xdd, 0xff, 0x00, 0x00
AwaitingRescue_80E5B7C:
.string "Awaiting Rescue\0"
.align 2,0
.global gUnknown_80E5B8C
gUnknown_80E5B8C: @ 80E5B8C
.incbin "baserom.gba", 0xE5B8C, 0x38
.4byte AwaitingRescue_80E5B7C
.byte 0x06, 0x00, 0x00, 0x00
.4byte DeleteSaveData_80E5ADC
.byte 0x08, 0x00, 0x00, 0x00
.4byte 0x80E5A10
.byte 0x0a, 0x00, 0x00, 0x00
.4byte FriendRescue_80E5ACC
.byte 0x0b, 0x00, 0x00, 0x00
.4byte TradeItems_80E5AC0
.byte 0x0c, 0x00, 0x00, 0x00
.4byte 0x80E5A54
.byte 0x0d, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xdd, 0xff, 0x00, 0x00
.global gUnknown_80E5BC4
gUnknown_80E5BC4: @ 80E5BC4
@@ -1313,7 +1386,22 @@ gUnknown_80E5BC4: @ 80E5BC4
.global gUnknown_80E5BDC
gUnknown_80E5BDC: @ 80E5BDC
.incbin "baserom.gba", 0xE5BDC, 0x3C
.4byte ReviveTeam_80E5C0C
.byte 0x07, 0x00, 0x00, 0x00
.4byte DeleteSaveData_80E5ADC
.byte 0x08, 0x00, 0x00, 0x00
.4byte 0x80E5A10
.byte 0x0a, 0x00, 0x00, 0x00
.4byte FriendRescue_80E5ACC
.byte 0x0b, 0x00, 0x00, 0x00
.4byte TradeItems_80E5AC0
.byte 0x0c, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xdd, 0xff, 0x00, 0x00
ReviveTeam_80E5C0C:
.string "Revive Team\0"
.align 2,0
.global gUnknown_80E5C18
gUnknown_80E5C18: @ 80E5C18
@@ -1494,27 +1582,43 @@ gUnknown_80E61C0: @ 80E61C0
.global gUnknown_80E61E4
gUnknown_80E61E4: @ 80E61E4
.incbin "baserom.gba", 0xE61E4, 0x30
.string "#CG$d0#R #CI$i0(s)#R\n"
.string "will be sent.\n"
.string "Is that OK?\0"
.align 2,0
.global gUnknown_80E6214
gUnknown_80E6214: @ 80E6214
.incbin "baserom.gba", 0xE6214, 0x54
.string "Your friend will send you an item.\n"
.string "When you are both ready~2c you\n"
.string "may communicate.\0"
.align 2,0
.global gUnknown_80E6268
gUnknown_80E6268: @ 80E6268
.incbin "baserom.gba", 0xE6268, 0x5C
.string "Preparing to send an item to your\n"
.string "friend. When you are both ready~2c\n"
.string "you may communicate.\0"
.align 2,0
.global gUnknown_80E62C4
gUnknown_80E62C4: @ 80E62C4
.incbin "baserom.gba", 0xE62C4, 0x50
.string "#+In communication...\n"
.string "#+Please wait with the power on.\n"
.string "#+To cancel~2c press {B_BUTTON}.\0"
.align 2,0
.global gUnknown_80E6314
gUnknown_80E6314: @ 80E6314
.incbin "baserom.gba", 0xE6314, 0x44
.string "You received\n"
.string "#CG$d0#R #CI$i0(s)#R.\n"
.string "Your adventure will be saved.\0"
.align 2,0
.global gUnknown_80E6358
gUnknown_80E6358: @ 80E6358
.incbin "baserom.gba", 0xE6358, 0x20
.string "You sent #CG$d0#R #CI$i0(s)#R.\0"
.align 2,0
@ Trade Items Link Errors
.global gTradeItemsCommunicationError
@@ -1524,30 +1628,30 @@ gTradeItemsCommunicationError: @ 80E6378
.global gUnknown_80E639C
gUnknown_80E639C: @ 80E639C
.string "An incorrect number of GBA systems are\n"
.string "connected.\n"
.string "Please redo this process from the start.\0"
.align 2,0
.string "An incorrect number of GBA systems are\n"
.string "connected.\n"
.string "Please redo this process from the start.\0"
.align 2,0
.global gUnknown_80E63F8
gUnknown_80E63F8: @ 80E63F8
.string "There is no response from your friend.\n"
.string "Please redo this process from the start.\0"
.align 2,0
.string "There is no response from your friend.\n"
.string "Please redo this process from the start.\0"
.align 2,0
.global gUnknown_80E6448
gUnknown_80E6448: @ 80E6448
.string "The sender and receiver appear to be\n"
.string "in different modes.\n"
.string "Please redo the process from the start.\0"
.align 2,0
.string "The sender and receiver appear to be\n"
.string "in different modes.\n"
.string "Please redo the process from the start.\0"
.align 2,0
.global gUnknown_80E64AC
gUnknown_80E64AC: @ 80E64AC
.string "There is no response from your friend.\n"
.string "Please make sure the sender and receiver\n"
.string "are ready~2c then redo this from the start.\0"
.align 2,0
.string "There is no response from your friend.\n"
.string "Please make sure the sender and receiver\n"
.string "are ready~2c then redo this from the start.\0"
.align 2,0
.global gTradeItemsHowManyText
gTradeItemsHowManyText: @ 80E6528
@@ -2435,7 +2539,10 @@ gUnknown_80E79E4: @ 80E79E4
.global gUnknown_80E7A48
gUnknown_80E7A48: @ 80E7A48
.incbin "baserom.gba", 0xE7A48, 0x7C
.string "There is no response from your friend.\n"
.string "Please make sure the sender and receiver\n"
.string "are ready~2c then redo this from the start.\0"
.align 2,0
.global gUnknown_80E7AC4
gUnknown_80E7AC4: @ 80E7AC4
@@ -2466,7 +2573,9 @@ gUnknown_80E7B68: @ 80E7B68
.global gUnknown_80E7B88
gUnknown_80E7B88: @ 80E7B88
.incbin "baserom.gba", 0xE7B88, 0x40
.string "The received #CGWonder Mail#R was\n"
.string "added to the #CGJob List#R.\0"
.align 2,0
.global gUnknown_80E7BC8
gUnknown_80E7BC8: @ 80E7BC8
@@ -2475,11 +2584,17 @@ gUnknown_80E7BC8: @ 80E7BC8
.global gUnknown_80E7BEC
gUnknown_80E7BEC: @ 80E7BEC
.incbin "baserom.gba", 0xE7BEC, 0x5C
.string "Connect a #CGGame Link cable#R.\n"
.string "When you and your friend are ready~2c\n"
.string "you may communicate. \0"
.align 2,0
.global gUnknown_80E7C48
gUnknown_80E7C48: @ 80E7C48
.incbin "baserom.gba", 0xE7C48, 0x50
.string "#+In communication...\n"
.string "#+Please wait with the power on.\n"
.string "#+To cancel~2c press {B_BUTTON}.\0"
.align 2,0
.global gUnknown_80E7C98
gUnknown_80E7C98: @ 80E7C98

View File

@@ -2653,8 +2653,8 @@ gUnknown_80F91E0: @ 80F91E0
gUnknown_80F91EC: @ 80F91EC
.incbin "baserom.gba", 0xF91EC, 0x4
.global gUnknown_80F91F0
gUnknown_80F91F0: @ 80F91F0
.global gTrapNames
gTrapNames: @ 80F91F0
.incbin "baserom.gba", 0xF91F0, 0x174
.global gUnknown_80F9364
@@ -2809,8 +2809,8 @@ gUnknown_80F9760: @ 80F9760
gUnknown_80F9764: @ 80F9764
.incbin "baserom.gba", 0xF9764, 0x2F0
.global gUnknown_80F9A54
gUnknown_80F9A54: @ 80F9A54
.global gWeatherNames
gWeatherNames: @ 80F9A54
.incbin "baserom.gba", 0xF9A54, 0x78
.global gUnknown_80F9ACC

View File

@@ -2,113 +2,164 @@
@ Start of Personality Questions - 80F0054
@ Question 1, Category 1 (Hardy)
HardyQuest1Points:
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xcc, 0x00, 0x0f, 0x08
HardyQuest1Answers:
.4byte HardyQuest1_StudyHard
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xb8, 0x00, 0x0f, 0x08
.4byte HardyQuest1_LastSecond
.byte 0x01, 0x00, 0x00, 0x00
.byte 0xa4, 0x00, 0x0f, 0x08
.4byte HardyQuest1_Ignore
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
HardyQuest1_Ignore:
.string "Ignore it and play.\0"
HardyQuest1_LastSecond:
.string "At the last second.\0"
HardyQuest1_StudyHard:
.string "Study hard.\0"
.global HardyQuest1
HardyQuest1:
.byte 0xe4, 0x00, 0x0f, 0x08
.byte 0x84, 0x00, 0x0f, 0x08
.byte 0x54, 0x00, 0x0f, 0x08
.4byte HardyQuest1Question
.4byte HardyQuest1Answers
.4byte HardyQuest1Points
HardyQuest1Question:
.string "A test is coming up.\n"
.string "How do you study for it?\0"
.align 2,0
@ Question 2, Category 1 (Hardy)
HardyQuest2Points:
.byte 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
HardyQuest2Answers:
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x4c, 0x01, 0x0f, 0x08
.4byte HardyQuest2_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
HardyQuest2_No:
.string "No. \0"
.align 2,0
HardyQuest2_Yes:
.string "Yes.\0"
.align 2,0
.global HardyQuest2
HardyQuest2:
.byte 0x68, 0x01, 0x0f, 0x08
.byte 0x34, 0x01, 0x0f, 0x08
.byte 0x14, 0x01, 0x0f, 0x08
.4byte HardyQuest2Question
.4byte HardyQuest2Answers
.4byte HardyQuest2Points
HardyQuest2Question:
.string "Can you focus on something you like?\0"
.align 2,0
@ Question 3, Category 1 (Hardy)
HardyQuest3Points:
.byte 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
HardyQuest3Answers:
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
HardyQuest3_No:
.string "No.\0"
.global HardyQuest3
HardyQuest3:
.byte 0xd8, 0x01, 0x0f, 0x08
.byte 0xb0, 0x01, 0x0f, 0x08
.byte 0x90, 0x01, 0x0f, 0x08
.4byte HardyQuest3Question
.4byte HardyQuest3Answers
.4byte HardyQuest3Points
HardyQuest3Question:
.string "When the going gets tough~2c do you get\n"
.string "going?\0"
.align 2,0
@ Question 4, Category 1 (Hardy)
HardyQuest4Points:
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x6c, 0x02, 0x0f, 0x08
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
HardyQuest4Answers:
.4byte HardyQuest4_Full
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x64, 0x02, 0x0f, 0x08
.4byte HardyQuest4_Half
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x58, 0x02, 0x0f, 0x08
.4byte HardyQuest4_Little
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
HardyQuest4_Little:
.string "A little.\0"
.align 2,0
HardyQuest4_Half:
.string "Half.\0"
.align 2,0
HardyQuest4_Full:
.string "Full.\0"
.align 2,0
.global HardyQuest4
HardyQuest4:
.byte 0x80, 0x02, 0x0f, 0x08
.byte 0x38, 0x02, 0x0f, 0x08
.byte 0x08, 0x02, 0x0f, 0x08
.4byte HardyQuest4Question
.4byte HardyQuest4Answers
.4byte HardyQuest4Points
HardyQuest4Question:
.string "There is a bucket. If you put\n"
.string "water in it~2c how high will you fill it?\0"
.align 2,0
@ Question 1, Category 2 (Docile)
DocileQuest1Points:
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0c, 0x03, 0x0f, 0x08
DocileQuest1Answers:
.4byte DocileQuest1_Big
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x03, 0x0f, 0x08
.4byte DocileQuest1_Small
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
DocileQuest1_Small:
.string "Small box.\0"
.align 2,0
DocileQuest1_Big:
.string "Big box.\0"
.align 2,0
.global DocileQuest1
DocileQuest1:
.byte 0x24, 0x03, 0x0f, 0x08
.byte 0xe8, 0x02, 0x0f, 0x08
.byte 0xc8, 0x02, 0x0f, 0x08
.4byte DocileQuest1Question
.4byte DocileQuest1Answers
.4byte DocileQuest1Points
DocileQuest1Question:
.string "You are offered a choice of two gifts.\n"
.string "Which one will you take?\0"
.align 2,0
@@ -121,7 +172,7 @@
.byte 0x9c, 0x03, 0x0f, 0x08
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Take a sniff first.\0"
.align 2,0
.string "Open a window right away.\0"
@@ -146,7 +197,7 @@
.byte 0x60, 0x04, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Say thanks~2c but be cool.\0"
.align 2,0
.string "Say thanks with a joke.\0"
@@ -174,7 +225,7 @@
.byte 0x60, 0x05, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Is anyone watching...?\0"
.align 2,0
.string "Yay! Yay!\0"
@@ -192,12 +243,12 @@
@ Question 1, Category 3 (Brave)
.byte 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global BraveQuest1
BraveQuest1:
.byte 0x1c, 0x06, 0x0f, 0x08
@@ -221,7 +272,7 @@
.byte 0x28, 0x07, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Ignore it.\0"
.align 2,0
.string "Run.\0"
@@ -244,7 +295,7 @@
.byte 0xb8, 0x07, 0x0f, 0x08
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Refuse.\0"
.align 2,0
.string "Rule with the aliens.\0"
@@ -268,7 +319,7 @@
.byte 0xf4, 0x08, 0x0f, 0x08
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Scream in unison.\0"
.align 2,0
.string "Yank open the door.\0"
@@ -295,7 +346,7 @@
.byte 0xcc, 0x09, 0x0f, 0x08
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.byte 0x44, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f
.byte 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x65, 0x61, 0x72, 0x2e, 0x00, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x00
.byte 0x48, 0x65, 0x6c, 0x70, 0x7e, 0x32, 0x63, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x73, 0x63, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x00, 0x48, 0x65, 0x6c, 0x70, 0x20, 0x77, 0x69, 0x74
@@ -313,12 +364,12 @@
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global JollyQuest1
JollyQuest1:
.byte 0xc8, 0x0a, 0x0f, 0x08
@@ -328,12 +379,12 @@
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global JollyQuest2
JollyQuest2:
.byte 0x2c, 0x0b, 0x0f, 0x08
@@ -354,7 +405,7 @@
.byte 0xb0, 0x0b, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.byte 0x41, 0x6e, 0x79, 0x77, 0x68, 0x65, 0x72, 0x65
.byte 0x2e, 0x00, 0x00, 0x00, 0x53, 0x70, 0x61, 0x73, 0x2e, 0x00, 0x00, 0x00, 0x54, 0x68, 0x65, 0x20, 0x62, 0x65, 0x61, 0x63, 0x68, 0x21, 0x00, 0x00
.global JollyQuest3
@@ -375,7 +426,7 @@
.byte 0x64, 0x0c, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.byte 0x52, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x2e, 0x2e, 0x20, 0x57, 0x65, 0x6c, 0x6c, 0x7e, 0x32, 0x63, 0x20, 0x49, 0x20, 0x67
.byte 0x6f, 0x74, 0x74, 0x61, 0x20, 0x67, 0x6f, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x55, 0x6d, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x61, 0x79, 0x20
.byte 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x3f, 0x00, 0x48, 0x61, 0x68, 0x61, 0x21, 0x20, 0x59, 0x65, 0x73, 0x2e, 0x20, 0x56, 0x65, 0x72, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x6e
@@ -397,12 +448,12 @@
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global ImpishQuest1
ImpishQuest1:
.byte 0xa0, 0x0d, 0x0f, 0x08
@@ -413,12 +464,12 @@
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global ImpishQuest2
ImpishQuest2:
.byte 0x08, 0x0e, 0x0f, 0x08
@@ -429,12 +480,12 @@
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global ImpishQuest3
ImpishQuest3:
@@ -457,7 +508,7 @@
.byte 0xe4, 0x0e, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.byte 0x48, 0x65, 0x63, 0x6b, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f
.byte 0x6d, 0x20, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x2e, 0x00, 0x00, 0x00, 0x43, 0x61, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x66, 0x72
@@ -484,7 +535,7 @@
.byte 0xc8, 0x0f, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.byte 0x53, 0x70, 0x61, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x4c, 0x6f, 0x76, 0x65
.byte 0x20, 0x74, 0x68, 0x65, 0x6d, 0x21, 0x00, 0x00
@@ -504,12 +555,12 @@
.global NaiveQuest2Answers
NaiveQuest2Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global NaiveQuest2
NaiveQuest2:
@@ -529,12 +580,12 @@
.global NaiveQuest3Answers
NaiveQuest3Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global NaiveQuest3
NaiveQuest3:
@@ -554,12 +605,12 @@
.global NaiveQuest4Answers
NaiveQuest4Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global NaiveQuest4
NaiveQuest4:
@@ -588,7 +639,7 @@
.4byte TimidQuest1_Shake
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global TimidQuest1_Shake
TimidQuest1_Shake:
@@ -638,7 +689,7 @@
.4byte TimidQuest2_Little
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global TimidQuest2_Little
TimidQuest2_Little:
@@ -693,7 +744,7 @@
.byte 0xa8, 0x13, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.string "Clean it.\0"
.align 2,0
@@ -733,7 +784,7 @@
.4byte TimidQuest4_Someone
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global TimidQuest4_Someone
TimidQuest4_Someone:
@@ -776,7 +827,7 @@
.4byte HastyQuest1_Someone
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global HastyQuest1_Someone
HastyQuest1_Someone:
@@ -821,7 +872,7 @@
.4byte HastyQuest2_Give
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global HastyQuest2_Give
HastyQuest2_Give:
@@ -865,7 +916,7 @@
.4byte HastyQuest3_Empty
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global HastyQuest3_Empty
HastyQuest3_Empty:
@@ -909,7 +960,7 @@
.4byte HastyQuest4_Bail
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global HastyQuest4_Bail
HastyQuest4_Bail:
@@ -954,7 +1005,7 @@
.4byte SassyQuest1_Whatever
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global SassyQuest1_Whatever
SassyQuest1_Whatever:
@@ -990,12 +1041,12 @@
.global SassyQuest2Answers
SassyQuest2Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global SassyQuest2
SassyQuest2:
@@ -1015,12 +1066,12 @@
.global SassyQuest3Answers
SassyQuest3Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global SassyQuest3
SassyQuest3:
@@ -1041,12 +1092,12 @@
.global SassyQuest4Answers
SassyQuest4Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global SassyQuest4
SassyQuest4:
@@ -1067,12 +1118,12 @@
.global CalmQuest1Answers
CalmQuest1Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global CalmQuest1
CalmQuest1:
@@ -1093,12 +1144,12 @@
.global CalmQuest2Answers
CalmQuest2Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global CalmQuest2
CalmQuest2:
@@ -1119,12 +1170,12 @@
.global CalmQuest3Answers
CalmQuest3Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global CalmQuest3
CalmQuest3:
@@ -1144,12 +1195,12 @@
.global CalmQuest4Answers
CalmQuest4Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global CalmQuest4
CalmQuest4:
@@ -1169,12 +1220,12 @@
.global RelaxedQuest1Answers
RelaxedQuest1Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global RelaxedQuest1
RelaxedQuest1:
@@ -1194,12 +1245,12 @@
.global RelaxedQuest2Answers
RelaxedQuest2Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global RelaxedQuest2
RelaxedQuest2:
@@ -1228,7 +1279,7 @@
.4byte RelaxedQuest3_Home
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global RelaxedQuest3_Home
RelaxedQuest3_Home:
@@ -1265,12 +1316,12 @@
.global RelaxedQuest4Answers
RelaxedQuest4Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global RelaxedQuest4
RelaxedQuest4:
@@ -1290,12 +1341,12 @@
.global LonelyQuest1Answers
LonelyQuest1Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global LonelyQuest1
LonelyQuest1:
@@ -1315,12 +1366,12 @@
.global LonelyQuest2Answers
LonelyQuest2Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global LonelyQuest2
LonelyQuest2:
@@ -1346,7 +1397,7 @@
.4byte LonelyQuest3_Off
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global LonelyQuest3_Off
LonelyQuest3_Off:
@@ -1387,7 +1438,7 @@
.4byte LonelyQuest4_Huddle
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global LonelyQuest4_Huddle
LonelyQuest4_Huddle:
@@ -1425,12 +1476,12 @@
.global QuirkyQuest1Answers
QuirkyQuest1Answers:
.byte 0x54, 0x01, 0x0f, 0x08
.4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xc8, 0x01, 0x0f, 0x08
.4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global QuirkyQuest1
QuirkyQuest1:
@@ -1460,7 +1511,7 @@
.4byte QuirkyQuest2_Trouble
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global QuirkyQuest2_Trouble
QuirkyQuest2_Trouble:
@@ -1507,7 +1558,7 @@
.4byte QuirkyQuest3_Afar
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global QuirkyQuest3_Afar
QuirkyQuest3_Afar:
@@ -1558,7 +1609,7 @@
.4byte QuirkyQuest4_EitherSide
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global QuirkyQuest4_EitherSide
QuirkyQuest4_EitherSide:
@@ -1601,7 +1652,7 @@
.4byte MiscQuest1_Others
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global MiscQuest1_Others
MiscQuest1_Others:
@@ -1637,7 +1688,7 @@
.4byte MiscQuest2_DontCare
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global MiscQuest2_DontCare
MiscQuest2_DontCare:
@@ -1669,7 +1720,7 @@
.4byte MiscQuest3NotHappy @ Not happy pointer
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xff, 0xff, 0xff, 0xff
.4byte -1
.global MiscQuest3NotHappy
MiscQuest3NotHappy:
@@ -1783,7 +1834,7 @@ gGenderMenu: @ 80F275C
.4byte GirlText @ Pointer to girl text
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00 @ end of table
.byte 0xFF, 0xFF, 0xFF, 0xFF
.4byte -1
.global GirlText
GirlText:

View File

@@ -1,8 +1,24 @@
#ifndef GUARD_CONSTANTS_PERSONALITY_TEST_H
#define GUARD_CONSTANTS_PERSONALITY_TEST_H
enum NaturePersonalities {
HARDY,
DOCILE,
BRAVE,
JOLLY,
IMPISH,
NAIVE,
TIMID,
HASTY,
SASSY,
CALM,
RELAXED,
LONELY,
QUIRKY,
NUM_PERSONALITIES
};
#define NUM_PARTNERS 10
#define NUM_PERSONALITIES 13
#define NUM_QUIZ_QUESTIONS 55
#define MAX_ASKED_QUESTIONS 8

View File

@@ -13,8 +13,7 @@ struct unkStruct_203B204
u32 unk8;
u32 chosenAmount;
u32 unk10;
struct MenuItem unk14[5];
u8 fill3C[0x54 - 0x3C];
struct MenuItem unk14[8];
u16 unk54[8];
u32 unk64;
u8 fill68[0x78 - 0x68];

View File

@@ -17,8 +17,7 @@ struct unkStruct_203B2BC
u16 unkA;
u32 unkC;
struct HeldItem unk10;
u8 unk14;
u8 fill15[3];
struct ItemSlot unk14;
struct unkSubStruct_203B2BC *unk18;
u32 unk1C;
u32 unk20;

View File

@@ -14,7 +14,9 @@ struct unkStruct_203B418
u8 unk7;
u8 fill8[0x11 - 8];
u8 unk11;
u8 fill12[0xE23C - 0x12];
u8 fill12[0x16D - 0x12];
u8 unk16D;
u8 fill16E[0xE23C - 0x16E];
s16 unkE23C;
s16 unkE23E;
u8 fillE240[0xE265 - 0xE240];

41
include/gulpin_shop.h Normal file
View File

@@ -0,0 +1,41 @@
#ifndef GUARD_GULPIN_SHOP_H
#define GUARD_GULPIN_SHOP_H
struct unkStruct_Gulpin
{
u8 fill0[0x22];
u16 unk22;
};
struct unkStruct_203B26C
{
// size: 0x18C
u32 unk0;
s32 state;
u32 unk8;
s16 unkC;
u8 unkE;
struct unkStruct_Gulpin * unk10;
u32 unk14;
u32 unk18;
u16 unk1C;
u16 unk1E;
u32 unk20;
u32 unk24;
struct MenuItem unk28[8];
u16 unk68[8];
u32 unk78;
u8 fill7C[0x118 - 0x7C];
/* 0x118 */ struct OpenedFile *faceFile;
/* 0x11C */ u8 *faceData;
/* 0x120 */ u16 unk120;
u16 unk122;
u8 unk124;
u8 unk125;
u8 unk126;
u8 unk127;
struct OpenedFile **unk128;
struct UnkTextStruct2 unk12C[4];
};
#endif

View File

@@ -25,8 +25,7 @@ struct unkStruct_203B210
u32 unk28;
u32 unk2C;
u32 unk30;
struct MenuItem unk34[3];
u8 fill4C[0x74 - 0x4C];
struct MenuItem unk34[8];
u16 unk74[8];
u32 unk84;
u8 fill88[0xD4 - 0x88];

View File

@@ -18,6 +18,7 @@ enum MainMenuScreens
MENU_DEBUG = 16,
MENU_COMMUNICATION_1 = 19,
MENU_COMMUNICATION_2,
// NOTE: 0x1B - 0x22 used by Rescue Password Menu
MENU_DISPLAY_RESCUE_PASSWORD = 33,
MENU_RESCUE_PASSWORD_ENTRY,
MENU_DELETE_SAVE = 46,

View File

@@ -0,0 +1,26 @@
#ifndef GUARD_RESCUE_PASSWORD_MENU_H
#define GUARD_RESCUE_PASSWORD_MENU_H
struct unkSprite
{
u16 unk208;
u16 unk20A;
u16 unk20C;
u16 unk20E;
};
struct RescuePasswordMenu
{
// size: 0x214
u32 currMenu;
u32 state;
u8 fill8[0x148 - 8];
struct UnkTextStruct2 unk148[4];
u8 fill1A8[0x208 - 0x1A8];
struct unkSprite unk208;
u32 unk210;
};
#endif

View File

@@ -10,8 +10,17 @@ struct UnkTextStruct1 {
u8 unk46;
};
struct UnkTextStruct2_sub
{
u8 unk0;
u8 unk1;
u8 unk2;
u8 unk3;
};
struct UnkTextStruct2 {
u8 fill00[0x0c];
u8 fill00[0x08];
struct UnkTextStruct2_sub unk08;
s16 unk0c;
s16 unkE;
s16 unk10;

View File

@@ -6,8 +6,10 @@
struct TradeSubStruct
{
u8 itemIndex; // item id?
u8 fill3[0x3];
union ItemIdx {
u8 itemIndex; // item id?
u32 itemIndex_u32;
} itemIdx;
u32 numItems; // number of items?
};

View File

@@ -70,7 +70,9 @@ struct WonderMailStruct_203B2C4
u8 unk3E;
u32 unk40;
u32 linkError; // another link status
u8 filler48[0x218 - 0x48];
u8 filler48[0x1B8 - 0x48];
struct unkStruct_8095228 unk1B8;
struct unkStruct_8095228 unk1E8;
s8 unk218;
u32 unk21C;
u8 filler220[0x30C - 0x220];
@@ -87,10 +89,23 @@ struct WonderMailStruct_203B2C4
u8 unk42D;
u8 unk42E;
u32 unk430;
u8 padding3[0x534 - 0x434];
u8 formattedString[0x100];
s32 unk534;
u32 unk538;
u8 fill53C[0x564 - 0x53C];
u8 unk53C[0xA];
u32 unk548;
u32 unk54C;
u16 unk550;
u8 unk552;
u8 unk553;
u32 unk554;
u8 unk558;
u8 unk559;
u8 unk55A;
u8 unk55B;
u8 unk55C;
u8 fill55C[0x560 - 0x55D];
u32 unk560;
};
void sub_8028B04(u32 r0);

View File

@@ -113,19 +113,20 @@ SECTIONS {
asm/code_801DCC4.o(.text);
src/gulpin_shop.o(.text);
asm/gulpin_shop.o(.text);
src/gulpin_shop_1.o(.text);
asm/friend_list_menu.o(.text);
src/friend_area_action_menu.o(.text);
asm/friend_area_action_menu.o(.text);
src/friend_area_action_menu_1.o(.text);
asm/code_8027C84.o(.text);
asm/friend_area_action_menu_1.o(.text);
src/wonder_mail_pre.o(.text);
asm/wonder_mail.o(.text);
src/wonder_mail.o(.text);
asm/wonder_mail_1.o(.text);
src/wonder_mail_2.o(.text);
asm/code_802B640.o(.text);
asm/wonder_mail_2.o(.text);
src/wonder_mail_3.o(.text);
asm/wonder_mail_3.o(.text);
src/wonder_mail_3_1.o(.text);
src/makuhita_dojo.o(.text);
asm/makuhita_dojo.o(.text);
asm/wonder_mail_4.o(.text);
@@ -149,7 +150,9 @@ SECTIONS {
src/unk_menu_203B360_1.o(.text);
src/unk_menu_203B364.o(.text);
asm/unk_menu_203B364.o(.text);
src/rescue_password_menu.o(.text);
asm/rescue_password_menu.o(.text);
src/rescue_password_menu_1.o(.text);
src/load_screen.o(.text);
src/wonder_mail_main_menu.o(.text);
asm/wonder_mail_main_menu.o(.text);

View File

@@ -3,6 +3,7 @@
#include "text.h"
#include "item.h"
#include "team_inventory.h"
#include "menu.h"
extern struct TeamInventory *gTeamInventory_203B460;
@@ -30,7 +31,7 @@ extern void sub_801B178(void);
extern void sub_8094060(u32 *, u32 *);
extern void PlaySound(u32);
extern void sub_80141B4(u32 *, u32, u32 ,u32);
extern void sub_8014248(u32 *, u32, u32, u32 *, u32, u32, u32, u32, u32);
extern void sub_8014248(u32 *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
struct subStruct_203B22C
{
@@ -51,13 +52,13 @@ struct unkStruct_203B22C
u16 unk5A;
struct subStruct_203B22C *unk5C;
u32 unk60;
u32 unk64;
/* 0x64 */ struct MenuItem menuItems[8];
};
extern struct unkStruct_203B22C *gUnknown_203B22C;
u32 sub_801AFA4(u32 r0)
{
gUnknown_203B22C = MemoryAlloc(0xA4, 8);
gUnknown_203B22C = MemoryAlloc(sizeof(struct unkStruct_203B22C), 8);
gUnknown_203B22C->unk4 = r0;
gUnknown_203B22C->unk8 = gTeamInventory_203B460->teamItems[r0].itemIndex;
gUnknown_203B22C->unkA = GetItemMove(gUnknown_203B22C->unk8);
@@ -122,7 +123,7 @@ void sub_801B080(void)
sub_801B178();
// #+Who will learn the move
// #+#C5$m7#R?
sub_8014248(&gUnknown_80DB9BC, 0, gUnknown_203B22C->unk60, &gUnknown_203B22C->unk64, 0, 4, 0, 0, 0x20);
sub_8014248(&gUnknown_80DB9BC, 0, gUnknown_203B22C->unk60, gUnknown_203B22C->menuItems, 0, 4, 0, 0, 0x20);
break;
case 1:
DisplayGulpinDialogueSprite(2, gUnknown_203B22C->unk58, &gUnknown_203B22C->unkC);

View File

@@ -13,8 +13,7 @@ struct unkStruct_203B25C
u32 unk18;
const char *unk1C;
u8 fill20[0x6C - 0x20];
struct MenuItem unk6C[3];
u8 fill84[0xAC - 0x84];
struct MenuItem menuItems[8];
u16 unkAC[8];
struct UnkTextStruct2 unkBC[4];
};
@@ -137,7 +136,7 @@ void sub_801DD84(void)
// TODO probably could be cleaned up to actually match
iVar3 = 0;
if (gUnknown_203B25C->unkAC[iVar3] == 0) {
gUnknown_203B25C->unk18 = gUnknown_203B25C->unk6C[iVar3].menuAction;
gUnknown_203B25C->unk18 = gUnknown_203B25C->menuItems[iVar3].menuAction;
}
else {
do {
@@ -145,7 +144,7 @@ void sub_801DD84(void)
if(iVar3 > 7)
break;
if(gUnknown_203B25C->unkAC[iVar3] == 0){
gUnknown_203B25C->unk18 = gUnknown_203B25C->unk6C[iVar3].menuAction;
gUnknown_203B25C->unk18 = gUnknown_203B25C->menuItems[iVar3].menuAction;
break;
}
} while (iVar3 < 8);
@@ -155,7 +154,7 @@ void sub_801DD84(void)
gUnknown_203B25C->unkBC[iVar3] = gUnknown_80DBFCC;
}
gUnknown_203B25C->unkBC[0] = gUnknown_80DBFB0;
sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->unk6C);
sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->menuItems);
gUnknown_203B25C->unkBC[0].unk0c = 0xA;
break;
case 1:
@@ -165,7 +164,7 @@ void sub_801DD84(void)
gUnknown_203B25C->unkBC[iVar3] = gUnknown_80DBFB0;
}
gUnknown_203B25C->unkBC[0] = gUnknown_80DBFCC;
sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->unk6C);
sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->menuItems);
gUnknown_203B25C->unkBC[0].unk0c = 0xA;
break;
default:
@@ -353,7 +352,7 @@ void sub_801DED0(void)
case 0:
case 1:
gUnknown_203B25C->unk1C = gOthers_MenuOption;
sub_8012D60(&gUnknown_203B25C->unk1C,gUnknown_203B25C->unk6C,0,gUnknown_203B25C->unkAC,gUnknown_203B25C->unk18,0);
sub_8012D60(&gUnknown_203B25C->unk1C,gUnknown_203B25C->menuItems,0,gUnknown_203B25C->unkAC,gUnknown_203B25C->unk18,0);
break;
case 3:
sub_801E3F0(0);
@@ -372,7 +371,7 @@ void sub_801DED0(void)
case 7:
CreateChangeSettingsConfirmMenu();
// Change settings?
sub_8014248(gUnknown_80DBFEC,0,4,gUnknown_203B25C->unk6C,0,4,0,0,0x20);
sub_8014248(gUnknown_80DBFEC,0,4,gUnknown_203B25C->menuItems,0,4,0,0,0x20);
break;
}
}
@@ -388,13 +387,13 @@ void CreateOthersMenu(void)
// This is dumb that I have to squeeze this in like this
preload = gUnknown_203B25C;
blankText = NULL;
preload->unk6C[0].text = gOthers_GameOptions;
preload->unk6C[0].menuAction = MENU_OPTION_GAMEOPTIONS;
preload->menuItems[0].text = gOthers_GameOptions;
preload->menuItems[0].menuAction = MENU_OPTION_GAMEOPTIONS;
defaultAction = MENU_OPTION_DEFAULT;
preload->unk6C[1].text = gOthers_Hints;
preload->unk6C[1].menuAction = MENU_OPTION_HINTS;
preload->unk6C[2].text = blankText;
preload->unk6C[2].menuAction = defaultAction;
preload->menuItems[1].text = gOthers_Hints;
preload->menuItems[1].menuAction = MENU_OPTION_HINTS;
preload->menuItems[2].text = blankText;
preload->menuItems[2].menuAction = defaultAction;
}
void CreateChangeSettingsConfirmMenu(void)
@@ -408,13 +407,13 @@ void CreateChangeSettingsConfirmMenu(void)
// This is dumb that I have to squeeze this in like this
preload = gUnknown_203B25C;
blankText = NULL;
preload->unk6C[0].text = *gUnknown_80D4920; // Yes
preload->unk6C[0].menuAction = MENU_OPTION_YES;
preload->menuItems[0].text = *gUnknown_80D4920; // Yes
preload->menuItems[0].menuAction = MENU_OPTION_YES;
defaultAction = MENU_OPTION_DEFAULT;
preload->unk6C[1].text = *gUnknown_80D4928; // No
preload->unk6C[1].menuAction = MENU_OPTION_NO;
preload->unk6C[2].text = blankText;
preload->unk6C[2].menuAction = defaultAction;
preload->menuItems[1].text = *gUnknown_80D4928; // No
preload->menuItems[1].menuAction = MENU_OPTION_NO;
preload->menuItems[2].text = blankText;
preload->menuItems[2].menuAction = defaultAction;
}
void HandleOthersMenu(void)

View File

@@ -1,5 +1,6 @@
#include "global.h"
#include "code_8041D5C.h"
#include "gUnknown_203B418.h"
struct unkStruct_80420E8
{
@@ -8,7 +9,7 @@ struct unkStruct_80420E8
u32 unk8;
};
extern u8 *gUnknown_203B418;
extern struct unkStruct_203B418 *gUnknown_203B418;
extern void sub_803ED30(u8, struct unkDungeon_8041D5C *r0, u8, u8);
@@ -593,7 +594,7 @@ void sub_80420E8(struct unkDungeon_8041D5C *r0, struct unkStruct_80420E8 *r1)
u32 temp;
u32 arg;
temp = r1->unk8;
if(gUnknown_203B418[0x16d] != 0)
if(gUnknown_203B418->unk16D != 0)
temp = sub_806F62C(r1->unk8);
switch(temp)
{

View File

@@ -3,6 +3,7 @@
#include "item.h"
#include "friend_area.h"
#include "constants/friend_area.h"
#include "sub_8095228.h"
#include "wonder_mail.h"
#include "constants/wonder_mail.h"

View File

@@ -69,24 +69,13 @@ u32 sub_80A2688(u8 r0, u32 r1)
// u8 cast is needed for only this compare
if ((u8)uVar1 < 0x17)
{
return uVar1;
}
else if(r0 == 0x2F)
return 0x17;
else if (r0 == 0x30)
return 0x18;
else
{
if(r0 == 0x2F)
{
return 0x17;
}
else if (r0 == 0x30)
{
return 0x18;
}
else
{
return -1;
}
}
return -1;
}
s16 sub_80A26B8(s16 r0)
@@ -151,7 +140,7 @@ u8 sub_80A2740(s16 r0)
return temp->unkC;
}
u32 sub_80A2750(s16 r0)
s16 sub_80A2750(s16 r0)
{
struct unkStruct_80A2608 *temp;
s32 temp_32;
@@ -184,7 +173,7 @@ u32 sub_80A2750(s16 r0)
return 2;
}
u32 sub_80A27CC(s16 r0)
u8 sub_80A27CC(s16 r0)
{
s32 temp;
s32 temp2;
@@ -208,15 +197,13 @@ u32 sub_80A27CC(s16 r0)
return 1;
}
u32 sub_80A2824(u8 r0)
u8 sub_80A2824(u8 r0)
{
s32 counter;
struct unkStruct_80A2608 *temp;
if(sub_80023E4(5) != 0)
{
return 0;
}
if(sub_80023E4(1) != 0)
{
for(counter = 0; counter <= 0x2D; counter++)
@@ -227,13 +214,9 @@ u32 sub_80A2824(u8 r0)
if(temp->unkC == r0)
{
if(sub_8097384(counter) != 0)
{
return 1;
}
if(sub_80973F4(counter) != 0)
{
return 1;
}
}
}
}
@@ -244,15 +227,9 @@ u32 sub_80A2824(u8 r0)
{
temp = sub_80A2620(counter);
if(temp->unk11 != 0)
{
if(temp->unkC == r0)
{
if(sub_8097384(counter) != 0)
{
return 1;
}
}
}
}
}
return 0;
@@ -267,13 +244,9 @@ u32 sub_80A28B4(s16 r0)
if(temp->unk0 != -1)
{
if(sub_8097384(r0) == 0 && sub_80973F4(r0) == 0)
{
return 0;
}
else
{
return 1;
}
}
return 0;
}
@@ -283,7 +256,7 @@ u32 sub_80A28F0(u8 r0)
s32 counter;
struct unkStruct_80A2608 *temp;
for(counter = 0; counter <= 0x2D; counter++)
for(counter = 0; counter < 0x2E; counter++)
{
temp = sub_80A2620(counter);
if(temp->unk11 != 0)
@@ -291,13 +264,9 @@ u32 sub_80A28F0(u8 r0)
if(temp->unkC == r0)
{
if(sub_8097384(counter) != 0)
{
return 1;
}
if(sub_80973F4(counter) != 0)
{
return 1;
}
}
}
}

View File

@@ -24,8 +24,7 @@ struct unkStruct_203B3F8
u32 unk7C;
u32 unk80;
u8 fill84[0x90 - 0x84];
struct MenuItem unk90[3];
u8 fillA8[0xD0 - 0xA8];
struct MenuItem unk90[8];
u16 unkD0[8];
struct UnkTextStruct2 unkE0[4];
};

View File

@@ -13,8 +13,7 @@ struct unkStruct_203B3F0
u8 itemIndex;
u8 fill5[0x8 - 5];
u32 unk8;
struct MenuItem menus[3];
u8 fill24[0x4C - 0x24];
struct MenuItem menuItems[8];
u32 unk4C;
u8 fill50[0x9C - 0x50];
u32 unk9C;
@@ -39,8 +38,7 @@ struct unkStruct_203B3F4
u8 unk4;
u8 fill5[0x8 - 5];
u32 unk8;
struct MenuItem menus[3];
u8 fill24[0x4C - 0x24];
struct MenuItem menuItems[8];
u32 unk4C;
u8 fill50[0x9C - 0x50];
struct UnkTextStruct2 unk9C[4];
@@ -193,7 +191,7 @@ void sub_803A5A0(void)
case 2:
sub_801CCD8();
sub_803A6F0();
sub_8012D60(&gUnknown_203B3F0->unk4C, gUnknown_203B3F0->menus, 0, 0, gUnknown_203B3F0->unk8, 2);
sub_8012D60(&gUnknown_203B3F0->unk4C, gUnknown_203B3F0->menuItems, 0, 0, gUnknown_203B3F0->unk8, 2);
break;
case 3:
gUnknown_203B3F0->unkAC = 3;
@@ -232,20 +230,20 @@ void sub_803A6F0(void)
s32 temp1;
struct unkStruct_203B3F0 *preload;
gUnknown_203B3F0->menus[0].text = &gDebug_NumberText;
gUnknown_203B3F0->menus[0].menuAction = 2;
gUnknown_203B3F0->menuItems[0].text = &gDebug_NumberText;
gUnknown_203B3F0->menuItems[0].menuAction = 2;
gUnknown_203B3F0->unk8 = 2;
if (!IsNotMoneyOrUsedTMItem(gUnknown_203B3F0->itemIndex)) {
gUnknown_203B3F0->menus[0].menuAction = -1;
gUnknown_203B3F0->menuItems[0].menuAction = -1;
gUnknown_203B3F0->unk8 = 3;
}
preload = gUnknown_203B3F0;
// this var gets loaded in between the sets... very dumb
temp1 = 1;
preload->menus[1].text = *gUnknown_80D4970;
preload->menus[1].menuAction = 3;
preload->menus[2].text = NULL;
preload->menus[2].menuAction = temp1;
preload->menuItems[1].text = *gUnknown_80D4970;
preload->menuItems[1].menuAction = 3;
preload->menuItems[2].text = NULL;
preload->menuItems[2].menuAction = temp1;
}
void sub_803A740(void)
@@ -403,7 +401,7 @@ void sub_803A9AC(void)
case 2:
sub_8021494();
sub_803AA34();
sub_8012D60(&gUnknown_203B3F4->unk4C,gUnknown_203B3F4->menus,0,0,gUnknown_203B3F4->unk8,2);
sub_8012D60(&gUnknown_203B3F4->unk4C,gUnknown_203B3F4->menuItems,0,0,gUnknown_203B3F4->unk8,2);
break;
case 3:
sub_8021774(gUnknown_203B3F4->unk4,1,0);

View File

@@ -20,7 +20,7 @@ extern const char gUnknown_80DD8D0[];
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32 *, u32, u32);
extern void sub_8027D40(u32, u8 *);
extern void sub_8027D40(u32, struct ItemSlot *);
extern void sub_8023868(u32, u32, u32, u32);
extern void sub_8023B7C(u32);
extern void sub_8023DA4();
@@ -38,7 +38,7 @@ extern void sub_809401C(u32 *, u32 *);
extern void sub_801EE10(u32, s16, u32 *, u32, u32, u32);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_8027184(u32);
extern void SetFriendAreaActionMenuState(u32);
extern void ResetSprites(u8 );
extern void sub_802719C();
extern void sub_8027274();
@@ -65,7 +65,7 @@ u32 sub_8027074(void)
gUnknown_203B2BC->unk70 = 0;
gUnknown_203B2BC->unk74 = 0;
gUnknown_203B2BC->unk78 = 0;
sub_8027184(0);
SetFriendAreaActionMenuState(0);
return 1;
}
@@ -73,7 +73,7 @@ u32 sub_80270A4(void)
{
switch(gUnknown_203B2BC->state) {
case 0:
sub_8027184(1);
SetFriendAreaActionMenuState(1);
break;
case 1:
case 2:
@@ -129,7 +129,7 @@ void sub_8027168(void)
}
}
void sub_8027184(u32 newState)
void SetFriendAreaActionMenuState(u32 newState)
{
gUnknown_203B2BC->state = newState;
sub_802719C();

View File

@@ -14,14 +14,14 @@ void sub_801B450();
u32 sub_801EF38(u8 r0);
void sub_801F214();
extern void sub_8027184(u32);
extern void SetFriendAreaActionMenuState(u32);
extern u8 sub_8012FD8(u32 *r0);
extern void sub_8013114(u32 *, s32 *);
extern void PlaySound(u32);
extern void ShiftItemsDownFrom(u32);
extern void FillInventoryGaps();
extern void nullsub_104();
extern void sub_8091274(u8 *);
extern void sub_8091274(struct ItemSlot *);
extern void sub_801A928();
extern void sub_8099690(u32);
extern void GivePokemonItem(s16, struct HeldItem *);
@@ -41,7 +41,7 @@ void sub_8027AE4(void)
{
case 1:
case 3:
sub_8027184(2);
SetFriendAreaActionMenuState(2);
break;
case 2:
sub_8027EB8();
@@ -59,18 +59,18 @@ void sub_8027B28(void)
gUnknown_203B2BC->unkC = sub_801A8AC();
gUnknown_203B2BC->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].itemIndex;
gUnknown_203B2BC->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].numItems;
sub_8027184(0xc);
SetFriendAreaActionMenuState(0xc);
break;
case 4:
gUnknown_203B2BC->unkC = sub_801A8AC();
gUnknown_203B2BC->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].itemIndex;
gUnknown_203B2BC->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].numItems;
sub_8099690(0);
sub_8027184(0xd);
SetFriendAreaActionMenuState(0xd);
break;
case 2:
sub_801A928();
sub_8027184(2);
SetFriendAreaActionMenuState(2);
break;
case 0:
case 1:
@@ -93,20 +93,20 @@ void sub_8027BD8(void)
PlaySound(0x14d);
ShiftItemsDownFrom(gUnknown_203B2BC->unkC);
FillInventoryGaps();
if (gUnknown_203B2BC->unk14 != 0) {
if (gUnknown_203B2BC->unk14.unk0 != 0) {
sub_8091274(&gUnknown_203B2BC->unk14);
}
GivePokemonItem(gUnknown_203B2BC->unk8,&gUnknown_203B2BC->unk10);
sub_801A928();
nullsub_104();
sub_8027184(2);
SetFriendAreaActionMenuState(2);
break;
case 4:
sub_8099690(0);
sub_8027184(0xd);
SetFriendAreaActionMenuState(0xd);
break;
case 1:
sub_8027184(0xb);
SetFriendAreaActionMenuState(0xb);
break;
}
}
@@ -119,5 +119,5 @@ void sub_8027C84()
if(temp > 3)
return;
sub_801B450();
sub_8027184(0xB);
SetFriendAreaActionMenuState(0xB);
}

View File

@@ -28,7 +28,7 @@ extern u8 sub_80953D4(u32);
extern u8 sub_801CF14(u32);
extern u8 gUnknown_80E48A8[];
extern u32 gUnknown_80E2440;
extern struct MenuItem gUnknown_80E2440[];
extern u8 gUnknown_80E49C4[];
extern u8 gUnknown_80E4704[];
extern u8 gUnknown_80E48E8[];
@@ -36,7 +36,7 @@ extern u8 gUnknown_80E4928[];
extern u8 gUnknown_80E4964[];
extern u8 gUnknown_80E499C[];
extern u8 gUnknown_80E460C[];
extern u32 gUnknown_80E2290[];
extern struct MenuItem gUnknown_80E2290[];
extern u8 gUnknown_80E31FC[];
@@ -44,7 +44,7 @@ extern u32 sub_80154F0();
extern void sub_80155F0();
struct unkStruct_8095228 *sub_8095228(u8);
extern void sub_80141B4(u8 *r0, u32, u32 *r1, u32);
extern void sub_8014248(const char *r0, u32, u32, u32 *r4, u32, u32, u32, u32 *r5, u32);
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
@@ -69,7 +69,6 @@ extern u8 sub_80307EC(void);
extern u32 sub_8031DCC(void);
extern void sub_8031E10(void);
extern void sub_8031E00(void);
extern void PrintFriendRescueError(u32);
extern u8 sub_8024108(u32);
extern void sub_802452C(void);
extern u32 sub_80244E4(void);
@@ -1343,7 +1342,7 @@ void sub_8034D74(void)
switch(sub_8039068(0x20, gUnknown_203B33C->passwordBuffer, &temp.unk0))
{
case 17:
sub_8014248(gUnknown_80E48A8, 0, 6, &gUnknown_80E2440, 0, 4, 0, 0, 0x101);
sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2440, 0, 4, 0, 0, 0x101);
SetFriendRescueMenuState(0x74);
break;
case 20:

View File

@@ -4,38 +4,9 @@
#include "memory.h"
#include "text.h"
#include "input.h"
#include "menu.h"
#include "gulpin_shop.h"
struct unkStruct_Gulpin
{
u8 fill0[0x22];
u16 unk22;
};
struct unkStruct_203B26C
{
// size: 0x18C
u32 unk0;
u32 unk4;
u32 unk8;
s16 unkC;
u8 unkE;
struct unkStruct_Gulpin * unk10;
u8 fill14[0x1C - 0x14];
u16 unk1C;
u8 fill20[0x28 - 0x20];
u32 unk28;
u8 fill2C[0x118 - 0x2C];
/* 0x118 */ struct OpenedFile *faceFile;
/* 0x11C */ u8 *faceData;
/* 0x120 */ u16 unk120;
u16 unk122;
u8 unk124;
u8 unk125;
u8 unk126;
u8 unk127;
struct OpenedFile **unk128;
struct UnkTextStruct2 unk12C[4];
};
extern struct unkStruct_203B26C *gUnknown_203B26C;
extern const struct UnkTextStruct2 gUnknown_80DC11C;
extern const struct UnkTextStruct2 gUnknown_80DC134;
@@ -47,7 +18,7 @@ extern void sub_801EDA4();
extern void sub_801EDC0();
extern void sub_801E980();
extern void sub_801EA28();
extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_801EBC4();
u32 DisplayGulpinDialogueSprite(s32 param_1,s16 param_2,struct unkStruct_Gulpin *param_3)
@@ -85,7 +56,7 @@ u32 DisplayGulpinDialogueSprite(s32 param_1,s16 param_2,struct unkStruct_Gulpin
u32 sub_801E8C0(void)
{
switch(gUnknown_203B26C->unk4)
switch(gUnknown_203B26C->state)
{
case 0:
case 1:
@@ -99,7 +70,7 @@ u32 sub_801E8C0(void)
break;
case 4:
sub_801EDC0();
if(gUnknown_203B26C->unk4 == 5)
if(gUnknown_203B26C->state == 5)
return 3;
break;
case 5:
@@ -127,7 +98,7 @@ void sub_801E93C(void)
void UpdateGulpinShopState(u32 newState)
{
gUnknown_203B26C->unk4 = newState;
gUnknown_203B26C->state = newState;
sub_801E980();
sub_801EA28();
}
@@ -137,13 +108,13 @@ void sub_801E980(void)
s32 iVar2;
sub_8006518(gUnknown_203B26C->unk12C);
switch(gUnknown_203B26C->unk4)
switch(gUnknown_203B26C->state)
{
case 2:
sub_801EBC4();
gUnknown_203B26C->unk12C[1] = gUnknown_80DC11C;
gUnknown_203B26C->unk12C[2] = gUnknown_80DC134;
sub_8012CAC(&gUnknown_203B26C->unk12C[2], &gUnknown_203B26C->unk28);
sub_8012CAC(&gUnknown_203B26C->unk12C[2], gUnknown_203B26C->unk28);
break;
default:
for(iVar2 = 0; iVar2 < 4; iVar2++)

79
src/gulpin_shop_1.c Normal file
View File

@@ -0,0 +1,79 @@
#include "global.h"
#include "file_system.h"
#include "pokemon.h"
#include "memory.h"
#include "text.h"
#include "input.h"
#include "menu.h"
#include "gulpin_shop.h"
extern struct unkStruct_203B26C *gUnknown_203B26C;
extern void UpdateGulpinShopState(u32);
extern void sub_8093CF8(struct unkStruct_Gulpin *, u32);
extern void sub_801F214(void);
extern s32 sub_80144A4(s32 *);
extern u32 sub_801F890(void);
extern void sub_801F8D0(void);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, u32 *);
extern u8 sub_80934B0(u32, struct unkStruct_Gulpin *);
extern void PlaySound(u32);
extern void sub_801EF38(u32);
void sub_801ED28(void)
{
s32 menuAction;
menuAction = 0;
sub_801EF38(0);
if(sub_8012FD8(&gUnknown_203B26C->unk78) == 0)
sub_8013114(&gUnknown_203B26C->unk78,&menuAction);
switch(menuAction)
{
case 1:
case 5:
UpdateGulpinShopState(1);
break;
case 2:
PlaySound(0x133);
gUnknown_203B26C->unkE = sub_80934B0(gUnknown_203B26C->unk20, gUnknown_203B26C->unk10);
UpdateGulpinShopState(4);
break;
case 3:
UpdateGulpinShopState(3);
}
}
void sub_801EDA4(void)
{
switch(sub_801F890())
{
case 2:
case 3:
sub_801F8D0();
UpdateGulpinShopState(1);
break;
case 0:
case 1:
break;
}
}
void sub_801EDC0(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0){
switch(temp)
{
case 4:
sub_801F214();
sub_8093CF8(gUnknown_203B26C->unk10, gUnknown_203B26C->unk20);
gUnknown_203B26C->state = 5;
break;
case 1:
case 5:
UpdateGulpinShopState(1);
break;
}
}
}

View File

@@ -19,8 +19,7 @@ struct unkStruct_203B20C
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
u8 fill24[0x60 - 0x24];
struct MenuItem unk20[8];
u16 unk60[8];
u32 unk70;
u8 fill74[0xC0 - 0x74];
@@ -74,7 +73,7 @@ extern u32 sub_801A6E8(u32);
extern u32 sub_801AEA8(void);
extern u32 sub_801A8AC(void);
extern void sub_801A928(void);
extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_80182E4(void);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
@@ -93,7 +92,7 @@ extern void sub_8013AA0(u32 *);
extern void sub_801B3C0(struct ItemSlot *);
extern void sub_801A5D8(u32, u32, u32, u32);
extern void sub_801C8C4(u32, u32, u32, u32);
extern void sub_8012D60(u32 *, u32 *, u32, u16 *, u32, u32);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
extern void sub_801CB5C(u32);
extern void sub_801A8D0(u32);
@@ -376,7 +375,7 @@ void sub_8017F28(void)
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
sub_80182E4();
gUnknown_203B20C->unkF0[2] = gUnknown_80DB7D0;
sub_8012CAC(&gUnknown_203B20C->unkF0[2], &gUnknown_203B20C->unk20);
sub_8012CAC(&gUnknown_203B20C->unkF0[2], gUnknown_203B20C->unk20);
break;
case 4:
case 5:
@@ -417,7 +416,7 @@ void sub_8018100(void)
switch(gUnknown_203B20C->state)
{
case 1:
sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk14, 2);
sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk14, 2);
break;
case 4:
sub_801A5D8(3, 3, 0, 0xA);
@@ -428,7 +427,7 @@ void sub_8018100(void)
case 6:
sub_801A9E0();
sub_801841C();
sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk18, 2);
sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk18, 2);
break;
case 7:
sub_801B3C0(&gUnknown_203B20C->unk8);
@@ -460,7 +459,7 @@ void sub_8018100(void)
sub_801CCD8();
sub_801AD34(0);
sub_80184D4();
sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk1C, 2);
sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk1C, 2);
break;
case 14:
sub_801B3C0(&gUnknown_203B20C->unk8);

View File

@@ -9,6 +9,7 @@
#include "memory.h"
#include "gUnknown_203B46C.h"
#include "text.h"
#include "menu.h"
extern void sub_801317C(u32 *);
extern void sub_8001024(u32 *);
@@ -17,7 +18,7 @@ extern void sub_8094D28(s32);
extern void sub_8001044(u32 *);
extern void sub_80141B4(const char *text, u32 r1, u32 r2, u16 r3);
extern void sub_8014248(const char *text, u32, u32, u32 *r0, u32, u32, u32, u32, u32);
extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32);
extern u32 sub_80144A4(s32 *);
@@ -54,7 +55,7 @@ extern struct UnkSaveStruct1 *gUnknown_203B46C;
extern const char gStarterReveal[];
extern const char gGenderText[];
extern u32 gGenderMenu;
extern struct MenuItem gGenderMenu[];
extern const char gPartnerSelectionHeaderText;
extern u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS];
@@ -96,19 +97,19 @@ const char * const gEndIntroTextPtr = gEndIntroText;
const char * const gPersonalityTypeDescriptionTable[NUM_PERSONALITIES] =
{
gHardyDescription,
gDocileDescription,
gBraveDescription,
gJollyDescription,
gImpishDescription,
gNaiveDescription,
gTimidDescription,
gHastyDescription,
gSassyDescription,
gCalmDescription,
gRelaxedDescription,
gLonelyDescription,
gQuirkyDescription
[HARDY] = gHardyDescription,
[DOCILE] = gDocileDescription,
[BRAVE] = gBraveDescription,
[JOLLY] = gJollyDescription,
[IMPISH] = gImpishDescription,
[NAIVE] = gNaiveDescription,
[TIMID] = gTimidDescription,
[HASTY] = gHastyDescription,
[SASSY] = gSassyDescription,
[CALM] = gCalmDescription,
[RELAXED] = gRelaxedDescription,
[LONELY] = gLonelyDescription,
[QUIRKY] = gQuirkyDescription
};
#include "data/nature_description.h"
@@ -289,7 +290,7 @@ void GenerateNewQuestionOrGender(void)
gUnknown_203B400->QuestionCounter++;
if (gUnknown_203B400->QuestionCounter > MAX_ASKED_QUESTIONS) {
// We've asked enough questions
sub_8014248(gGenderText, 0, 0, &gGenderMenu, 0, 3, 0, 0, 257);
sub_8014248(gGenderText, 0, 0, gGenderMenu, 0, 3, 0, 0, 257);
gUnknown_203B400->TestState = 3;
}
else
@@ -335,7 +336,8 @@ void UpdateNatureTotals()
{
pointArray = gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->effects;
// Skip until we get to the one for our answer
pointArray += 16 * answerIndex;
// Each Answer has 16 bytes. 13 are currently used with 3 remaining
pointArray += (NUM_PERSONALITIES + 3) * answerIndex;
for (natureIndex = 0; natureIndex < NUM_PERSONALITIES; natureIndex++)
{
gUnknown_203B400->NatureTotals[natureIndex] += pointArray[natureIndex];
@@ -555,7 +557,7 @@ void PromptNewQuestion(void)
{
sub_8014248(gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->question,
0, 0,
(void *)gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->answers,
(struct MenuItem *)gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->answers,
0, 3, 0, 0, 0x101);
}

View File

@@ -0,0 +1,93 @@
#include "global.h"
#include "memory.h"
#include "input.h"
#include "item.h"
#include "sub_8095228.h"
#include "text.h"
#include "main_menu.h"
#include "rescue_password_menu.h"
extern u8 gUnknown_202EC50[];
extern u32 gUnknown_202EC4C;
EWRAM_DATA u8 gUnknown_203B368;
EWRAM_DATA u32 gUnknown_203B36C;
EWRAM_DATA struct RescuePasswordMenu *gRescuePasswordMenu;
extern struct UnkTextStruct2 gUnknown_80E71E4;
extern s32 sub_8035D74(void);
extern void sub_80151C0(u32, u8 *);
extern void sub_8031D70(u32, u32);
extern u32 ConvertMenutoRescuePasswordState(u32);
extern void sub_8039174(void);
extern void sub_80155F0(void);
extern void sub_8031E10(void);
void CreateRescuePasswordMenu(u32 currMenu)
{
struct unkStruct_8095228 *temp;
s32 counter;
if(gRescuePasswordMenu == NULL)
{
gRescuePasswordMenu = MemoryAlloc(sizeof(struct RescuePasswordMenu), 8);
MemoryFill8((u8 *)gRescuePasswordMenu, 0, sizeof(struct RescuePasswordMenu));
}
for(counter = 0; counter < 4; counter++)
gRescuePasswordMenu->unk148[counter] = gUnknown_80E71E4;
ResetUnusedInputStruct();
sub_800641C(gRescuePasswordMenu->unk148, 1, 1);
if ((gUnknown_203B368 != 0) || (gUnknown_203B36C != currMenu)) {
for(counter = 0; counter < 0x36; counter++)
{
gUnknown_202EC50[counter] = 0;
}
gUnknown_203B368 = 0;
}
gRescuePasswordMenu->currMenu = currMenu;
gUnknown_203B36C = currMenu;
switch(currMenu)
{
case 0x1B:
case 0x1D:
case 0x1F:
sub_8031D70(sub_8035D74(), 0);
break;
case 0x1C:
case 0x1E:
case 0x20:
sub_80151C0(4, gUnknown_202EC50);
break;
case MENU_DISPLAY_RESCUE_PASSWORD:
temp = sub_8095228(0x1F);
MemoryFill8((u8 *)temp, 0, sizeof(struct unkStruct_8095228));
temp->unk0 = 2;
temp->unk20.itemIndex = ITEM_ID_NOTHING;
sub_8031D70(0x1F, 0);
break;
case MENU_RESCUE_PASSWORD_ENTRY:
sub_80151C0(4, gUnknown_202EC50);
break;
}
gRescuePasswordMenu->state = ConvertMenutoRescuePasswordState(currMenu);
sub_8039174();
}
void CleanRescuePasswordMenu(void)
{
ResetUnusedInputStruct();
sub_800641C(0,1,1);
if (gRescuePasswordMenu != NULL) {
sub_80155F0();
sub_8031E10();
MemoryFree(gRescuePasswordMenu);
gRescuePasswordMenu = NULL;
}
}

View File

@@ -0,0 +1,33 @@
#include "global.h"
#include "memory.h"
#include "input.h"
#include "item.h"
#include "sub_8095228.h"
#include "text.h"
#include "rescue_password_menu.h"
extern struct RescuePasswordMenu *gRescuePasswordMenu;
extern void AddSprite(struct unkSprite *, u32, u32, u32);
extern void xxx_draw_string_80144C4(void);
void sub_80391F8(void)
{
struct unkSprite *iVar2;
u32 temp;
u32 temp2;
iVar2 = &gRescuePasswordMenu->unk208;
temp = (iVar2->unk20A & 0xfe00);
iVar2->unk20A = temp | 0x70;
temp2 = 0x700;
temp = (iVar2->unk20E & 0xf);
iVar2->unk20E = temp | temp2;
if ((gRescuePasswordMenu->unk210 & 8) != 0) {
AddSprite(iVar2,0x100,0,0);
}
xxx_draw_string_80144C4();
gRescuePasswordMenu->unk210 += 1;
}

View File

@@ -329,7 +329,7 @@ void sub_8036788(void)
case 3:
// Confirm # of item
gTradeItemsMenu->itemToSend.numItems = gTradeItemsMenu->numItemsToSend;
gTradeItemsMenu->sentItem.itemIndex = gTradeItemsMenu->itemToSend.itemIndex;
gTradeItemsMenu->sentItem.itemIdx.itemIndex = gTradeItemsMenu->itemToSend.itemIndex;
gTradeItemsMenu->sentItem.numItems = gTradeItemsMenu->numItemsToSend;
sub_801CBB8();
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_CONFIRM);
@@ -392,7 +392,7 @@ void sub_80368D4(void)
break;
case 7:
case 0:
if ((gTradeItemsMenu->sentItem.itemIndex != 0) && (gTradeItemsMenu->sentItem.numItems != 0))
if ((gTradeItemsMenu->sentItem.itemIdx.itemIndex != 0) && (gTradeItemsMenu->sentItem.numItems != 0))
{
TradeItem_AddItem();
SetTradeItemMenu(0x11);
@@ -430,7 +430,7 @@ void sub_8036950(void)
}
}
else {
if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->sentItem.itemIndex != 0))
if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->sentItem.itemIdx.itemIndex != 0))
&& (gTradeItemsMenu->sentItem.numItems != 0)) {
// Link Failure
TradeItem_AddItem(); // Add back the item
@@ -449,9 +449,9 @@ void TradeItem_AddItem(void)
{
// Use temp var to get correct statements
u16 load;
load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIndex];
load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.itemIndex];
load += gTradeItemsMenu->sentItem.numItems;
gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIndex] = load;
gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.itemIndex] = load;
}
void sub_80369FC(void)
@@ -554,9 +554,7 @@ void nullsub_52(void)
void sub_8036B28(void)
{
int iVar3;
u32 uVar4;
s32 local_10;
u32 load_1;
u32 load_2;
struct TradeSubStruct *temp;
struct TradeSubStruct *temp2;
@@ -612,13 +610,13 @@ void sub_8036B28(void)
// Regs mess up here
// Needs a mov r2, 0
// and mov r3, 0
temp = &gTradeItemsMenu->unk244;
temp->itemIndex = 0;
temp->itemIdx.itemIndex_u32 = 0;
temp->numItems = 0;
temp += 1; // move to unk24C
temp->itemIndex = 0;
temp = &gTradeItemsMenu->unk24C;
temp->itemIdx.itemIndex_u32 = 0;
temp->numItems = 0;
// Regs are fixed back up after
@@ -632,7 +630,7 @@ void sub_8036B28(void)
temp = &gTradeItemsMenu->unk244;
temp2 = &gTradeItemsMenu->sentItem;
load_2 = temp2->numItems;
temp->itemIndex = temp2->itemIndex;
temp->itemIdx.itemIndex_u32 = temp2->itemIdx.itemIndex_u32;
temp->numItems = load_2;
case TRADE_ITEMS_RECEIVE_ITEM_MODE:
gTradeItemsMenu->linkStatus = sub_8037D64(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C);
@@ -650,12 +648,12 @@ void sub_8036B28(void)
if (gTradeItemsMenu->unk24C.numItems == 0) {
gUnknown_202DE30 = gTradeItemsMenu->unk244.numItems;
// Cast is needed
sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.itemIndex,0);
sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.itemIdx.itemIndex,0);
}
else {
gUnknown_202DE30 = gTradeItemsMenu->unk24C.numItems;
// Cast is needed
sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.itemIndex,0);
sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.itemIdx.itemIndex,0);
}
sub_80141B4(&gUnknown_80E6314,0,0,0x101);
break;

View File

@@ -3,10 +3,10 @@
#include "pokemon.h"
#include "file_system.h"
#include "item.h"
#include "sub_8095228.h"
#include "wonder_mail.h"
#include "memory.h"
#include "text.h"
#include "sub_8095228.h"
#include "team_inventory.h"
extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
@@ -25,7 +25,7 @@ extern u32 sub_8095350();
extern u8 sub_801CF14(u32);
extern u32 sub_802F298();
extern u8 sub_80A2824(u32);
extern u8 sub_80A2824(u8);
#include "data/wonder_mail_1.h"
@@ -35,7 +35,7 @@ const struct ItemSlot gUnknown_80DED44 =
};
extern u32 gUnknown_80DDA48;
extern struct MenuItem gUnknown_80DDA48[];
extern const char gUnknown_80DEF04[];
extern const char gUnknown_80DEF28[];
extern const char gUnknown_80DEF80[];
@@ -45,7 +45,7 @@ extern const char gUnknown_80DF0A0[];
extern const char gUnknown_80DF0E0[];
extern const char gUnknown_80DF138[];
extern const char gUnknown_80DF194[];
extern u32 gUnknown_80DEE44;
extern struct MenuItem gUnknown_80DEE44[];
extern const char gUnknown_80DF1C0[];
extern const char gUnknown_80DF208[];
extern const char gUnknown_80DF0A0[];
@@ -74,7 +74,7 @@ extern void sub_803092C(void);
extern u32 sub_80154F0();
extern u32 sub_8039068(u32, u8 *r1, u8 *r0);
extern void sub_8014248(const char *r0, u32, u32, u32 *r4, u32, u32, u32, u32 *r5, u32);
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern void sub_8095274(u32);
extern void sub_80155F0();
extern void sub_80951BC(u8 *r0);
@@ -868,7 +868,7 @@ void sub_80293F4(void)
switch(sub_8039068(0x1C, (gUnknown_203B2C0->passwordBuffer), &temp.unk0))
{
case 17:
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
sub_8028B04(40);
break;
case 18:
@@ -1533,7 +1533,7 @@ void PrintWonderMailLinkError(u32 param_1)
sub_80141B4(gUnknown_80DEF04, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
break;
case 15:
sub_80141B4(gUnknown_80DF138,0,(u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF138, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
break;
case 0:
default:
@@ -1873,17 +1873,17 @@ void sub_802A50C(void)
{
case 0x11:
// Wrong password
sub_8014248(gUnknown_80DF1C0,0,7,&gUnknown_80DEE44,0,4,0,(u32 *)&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0xc);
sub_802B2BC(0x28);
break;
case 0x14:
// Incorrect password
sub_80141B4(gUnknown_80DF208,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF208, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
sub_802B2BC(0x1f);
break;
case 0xB:
// Not eligible to receive
sub_80141B4(gUnknown_80DF0A0,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF0A0, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
sub_802B2BC(0x1f);
break;
case 0x18:

View File

@@ -4,9 +4,10 @@
#include "pokemon.h"
#include "memory.h"
#include "text.h"
#include "menu.h"
#include "save.h"
#include "wonder_mail.h"
#include "sub_8095228.h"
#include "wonder_mail.h"
extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
@@ -42,8 +43,119 @@ struct unkStruct_203B2C8
u32 fill13C;
};
struct unkStruct_203B2CC
{
// size: 0xD4;
u8 unk0[0x38];
u32 unk38;
u8 fill3C[0x50 - 0x3C];
s16 unk50;
s16 unk52;
s16 unk54;
s16 unk56;
u16 unk58;
u16 unk5A;
u8 fill5C[0x6C - 0x5C];
u32 unk6C;
struct UnkTextStruct2 *unk70;
struct UnkTextStruct2 unk74[4];
};
extern struct unkStruct_203B2CC *gUnknown_203B2CC;
extern u32 sub_802B9A8(void);
extern void sub_802B880(void);
extern void sub_802B8D4(void);
extern void sub_8013818(void *, u32, u32, u32);
extern void sub_8012D08(struct UnkTextStruct2 *, s32);
extern void sub_8013984(u32 *);
extern u8 sub_802B9D8(void);
extern u16 gUnknown_203B2D0;
extern u16 gUnknown_203B2D2;
extern u8 sub_80138B8(void *, u32);
extern void PlayMenuSoundEffect(u32);
extern s32 GetKeyPress(u32 *);
extern void sub_8013660(u32 *);
extern void AddMenuCursorSprite(u32 *);
extern struct UnkTextStruct2 gUnknown_80DFBEC;
extern struct UnkTextStruct2 gUnknown_80DFBD0;
extern struct unkStruct_203B2C8 *gUnknown_203B2C8;
extern struct MenuItem gUnknown_80DED78[];
extern struct MenuItem gUnknown_80DEDB8[];
extern u8 gUnknown_80DF6F0[];
extern u8 gUnknown_80DF44C[];
extern u8 gUnknown_80DF380[];
extern u8 gUnknown_80DF544[];
extern u8 gUnknown_80DF96C[];
extern u8 gUnknown_80DF9A4[];
extern u8 gUnknown_80DF4F4[];
extern u8 gUnknown_80DF46C[];
extern u8 gUnknown_80DF94C[];
extern u8 gUnknown_80DF928[];
extern u8 gUnknown_80DF8EC[];
extern u8 gUnknown_80DF7D4[];
extern u8 gUnknown_80DF8B4[];
extern u8 gUnknown_80DF3B4[];
extern u8 gUnknown_80DF63C[];
extern u8 gUnknown_80DF250[];
extern u8 gUnknown_80DF594[];
extern u8 gUnknown_80DF870[];
extern u8 gUnknown_80DF77C[];
extern u8 gUnknown_80DF5E4[];
extern u8 gUnknown_80DF710[];
extern u8 gUnknown_80DF694[];
extern u8 gUnknown_80DF73C[];
extern u8 gUnknown_80DF330[];
extern u8 gUnknown_80DF418[];
extern u8 gUnknown_80DF304[];
extern struct UnkTextStruct2 gUnknown_80DED60;
extern struct UnkTextStruct2 gUnknown_80DED48;
extern struct MenuItem gUnknown_80DEE44[];
extern struct MenuItem gUnknown_80DEE08[];
extern struct MenuItem gUnknown_80DEE7C[];
extern struct MenuItem gUnknown_80DEEBC[];
extern struct MenuItem gUnknown_80DEEE4[];
extern struct MenuItem gUnknown_80DEE60[];
extern void sub_8031D70(u8, u32);
extern u8 sub_809539C(u32, u32);
extern u8 sub_800D588(void);
extern u32 sub_803C200(u8 *, u32);
extern struct PokemonStruct *sub_808D33C(void);
extern void sub_802F204(u8 *, u32);
extern void sub_80151C0(u32, u8 *);
extern void xxx_call_start_bg_music(void);
extern void sub_803092C(void);
extern void sub_801CCD8(void);
extern void sub_8011830(void);
extern void nullsub_23(u32);
extern void sub_80922B4(u8 *, u8 *, u32);
extern s32 sub_8037B28(u32);
extern u32 sub_8030894(void);
extern u32 sub_801D008(void);
extern void sub_80306A8(u32, u32, u32, u32);
extern void sub_8035CF4(u32 *, u32, u32);
extern s32 sub_8037D64(u32, void *, void *);
extern s32 sub_80381F4(u32, void *, void *);
extern void sub_801C8C4(u32, u32, s32 * , u32);
void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32);
extern void sub_80920D8(u8 *buffer);
extern void sub_8097790();
extern char gUnknown_202E5D8[0x50];
@@ -64,7 +176,7 @@ void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
extern void sub_802F204(u8 *, u32);
extern void sub_803C37C(u8 *, u32, u8 *);
extern u32 sub_803C200(u8 *, u32);
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
extern const char gUnknown_80DFAA8[];
extern const char gUnknown_80DFB14[];
extern const char gUnknown_80DF9F0[];
@@ -74,6 +186,223 @@ extern u8 sub_80023E4(u32);
extern void nullsub_131(void);
extern void sub_802ABF8(void);
void sub_802ABF8(void)
{
char cVar1;
char *monName;
u8 auStack180 [80];
u8 auStack100 [80];
u8 uVar2;
struct PokemonStruct *pokeStruct;
struct PokemonStruct *pokeStruct2;
s32 iVar6;
struct unkStruct_8095228 *puVar4;
switch(gUnknown_203B2C4->state) {
case 5:
pokeStruct = sub_808D33C();
sub_80922B4(auStack180,pokeStruct->name, POKEMON_NAME_LENGTH);
ExpandPlaceholdersBuffer(gUnknown_203B2C4->formattedString,gUnknown_80DF250,auStack180);
sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0xe:
sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 0xf:
sub_80141B4(gUnknown_80DF330,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x10:
if (sub_8030894() != 0)
break;
ResetUnusedInputStruct();
sub_800641C(0,1,1);
sub_80306A8(5,0,0,6);
break;
case 0x11:
sub_8006518(gUnknown_203B2C4->unk35C);
SetMenuItems(&gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0);
sub_803092C();
sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
break;
case 0x13:
if (sub_801D008() != 0)
break;
ResetUnusedInputStruct();
sub_800641C(0,1,1);
// TODO: Probably a macro - Pika
{
struct {u16 a; u16 b;} local_x = {3, 2};
sub_801C8C4(0, 1, (s32 *)&local_x, 9);
}
break;
case 0x14:
sub_8006518(gUnknown_203B2C4->unk35C);
SetMenuItems(&gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0);
sub_801CCD8();
sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
break;
case 0x1e:
gUnknown_203B2C4->linkError = 0;
sub_8011830();
iVar6 = sub_8037B28(gUnknown_203B2C4->unk40);
gUnknown_203B2C4->linkError = iVar6;
if (iVar6 != 0) goto _0802AEE6;
switch(gUnknown_203B2C4->unk40)
{
case 6:
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(struct unkStruct_8095228));
gUnknown_203B2C4->unk1B8 = *sub_8095228(gUnknown_203B2C4->unk218);
gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
break;
case 7:
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(struct unkStruct_8095228));
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1E8,0, sizeof(struct unkStruct_8095228));
gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
break;
}
if (gUnknown_203B2C4->linkError == 0){
switch(gUnknown_203B2C4->unk40){
case 6:
case 7:
gUnknown_203B2C4->linkError = sub_80381F4(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
if ( sub_800D588() != '\0') {
gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1E8.unk10;
}
else {
gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1B8.unk10;
}
break;
}
}
_0802AEE6:
xxx_call_start_bg_music();
break;
case 0x26:
sub_80141B4(gUnknown_80DF380,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x27:
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
sub_80151C0(4,gUnknown_203B2C4->passwordBuffer);
break;
case 0x1a:
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
sub_8031D70(gUnknown_203B2C4->unk218,0);
break;
case 0x1b:
sub_80141B4(gUnknown_80DF3B4,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x19:
sub_80141B4(gUnknown_80DF418,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x24:
sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x20:
sub_80141B4(gUnknown_80DF46C,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x21:
switch(gUnknown_203B2C4->unk534)
{
case 3:
case 5:
case 6:
sub_80141B4(gUnknown_80DF4F4,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 4:
break;
}
break;
case 0x22:
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gUnknown_203B2C4->unk53C,monName);
gUnknown_203B2C4->unk550 = 0x130;
gUnknown_203B2C4->unk552 = 2;
gUnknown_203B2C4->unk554 = 0;
uVar2 = sub_809539C(6,gUnknown_203B2C4->unk430);
puVar4 = sub_8095228(uVar2);
cVar1 = puVar4->unk20.itemIndex;
if (cVar1 != '\0')
gUnknown_203B2C4->unk558 = cVar1;
else
gUnknown_203B2C4->unk558 = 0;
gUnknown_203B2C4->unk55B = 1;
gUnknown_203B2C4->unk560 = sub_803C200(&puVar4->unk4, 0);
gUnknown_203B2C4->unk559 = 0;
gUnknown_203B2C4->unk55A = 0;
gUnknown_203B2C4->unk55C = 0;
sub_802F204(gUnknown_203B2C4->unk53C,0);
break;
case 0x16:
nullsub_23(0);
sub_80141B4(gUnknown_80DF544,0,0,0);
break;
case 0x17:
sub_80141B4(gUnknown_80DF594,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x1d:
sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 0xd:
pokeStruct2 = sub_808D33C();
sub_80922B4(auStack100, pokeStruct2->name, POKEMON_NAME_LENGTH);
ExpandPlaceholdersBuffer(gUnknown_203B2C4->formattedString,gUnknown_80DF63C,auStack100);
sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0xc:
sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 0x29:
sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0x2a:
sub_80141B4(gUnknown_80DF6F0,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0xb:
sub_80141B4(gUnknown_80DF710,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 10:
sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 9:
sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 7:
sub_80141B4(gUnknown_80DF7D4,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 8:
sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 4:
sub_80141B4(gUnknown_80DF8B4,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 0:
sub_8014248(gUnknown_80DF8EC,0,1,gUnknown_80DEDB8,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 1:
sub_8014248(gUnknown_80DF928,0,1,gUnknown_80DEDB8,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 2:
sub_80141B4(gUnknown_80DF94C,0,&gUnknown_203B2C4->faceFile,0x10d);
break;
case 6:
switch(gUnknown_203B2C4->unk538){
case 1:
sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case 2:
sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
}
break;
}
}
void sub_802B2BC(u32 newState)
{
gUnknown_203B2C4->state = newState;
@@ -166,7 +495,7 @@ void sub_802B3E0(void)
// Print and expand placeholders?
ExpandPlaceholdersBuffer(gUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer);
// Display to screen with Pelliper face
sub_80141B4(gUnknown_203B2C8->teamName, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
sub_80141B4(gUnknown_203B2C8->teamName, 0, &gUnknown_203B2C8->faceFile, 0x10d);
break;
case 1:
monName = GetMonSpecies(SPECIES_PELIPPER);
@@ -187,12 +516,12 @@ void sub_802B3E0(void)
case 2:
// I hope you will keep on rescuing your friends
// I must save your adventure
sub_80141B4(gUnknown_80DFAA8, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
sub_80141B4(gUnknown_80DFAA8, 0, &gUnknown_203B2C8->faceFile, 0x10d);
break;
case 4:
// Oh yes, that's right. Please don't forget to send an A-OK Mail
// to the friend you just rescued
sub_80141B4(gUnknown_80DFB14, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
sub_80141B4(gUnknown_80DFB14, 0, &gUnknown_203B2C8->faceFile, 0x10d);
case 3:
case 5:
break;
@@ -266,3 +595,120 @@ void sub_802B624(void)
sub_802B548(5);
}
}
u32 sub_802B640(u32 r0, struct UnkTextStruct2_sub *r1, u32 r2)
{
if(sub_802B9D8())
{
return 0;
}
else
{
if(gUnknown_203B2CC == NULL)
{
gUnknown_203B2CC = MemoryAlloc(0xD4, 8);
}
gUnknown_203B2CC->unk6C = r0;
gUnknown_203B2CC->unk70 = &gUnknown_203B2CC->unk74[r0];
sub_8006518(gUnknown_203B2CC->unk74);
gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C] = gUnknown_80DFBEC;
if(r1 != NULL)
{
gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C].unk08 = *r1;
}
sub_8012D08(gUnknown_203B2CC->unk70, r2);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2CC->unk74, 1, 1);
sub_8013818(&gUnknown_203B2CC->unk38, sub_802B9A8(), r2, r0);
gUnknown_203B2CC->unk50 = gUnknown_203B2D0;
gUnknown_203B2CC->unk56 = gUnknown_203B2D2;
sub_8013984(&gUnknown_203B2CC->unk38);
sub_802B880();
sub_802B8D4();
return 1;
}
}
u32 sub_802B720(u8 r0)
{
if(r0 == 0)
{
sub_8013660(&gUnknown_203B2CC->unk38);
return 0;
}
else
{
switch(GetKeyPress(&gUnknown_203B2CC->unk38))
{
case 2:
PlayMenuSoundEffect(1);
return 2;
case 1:
PlayMenuSoundEffect(0);
return 3;
case 4:
PlayMenuSoundEffect(4);
return 4;
}
if(sub_80138B8(&gUnknown_203B2CC->unk38, 1) != 0)
{
sub_802B880();
sub_802B8D4();
return 1;
}
else
return 0;
}
}
u8 sub_802B7A8(void)
{
return gUnknown_203B2CC->unk0[(gUnknown_203B2CC->unk56 * gUnknown_203B2CC->unk54) + gUnknown_203B2CC->unk50];
}
void sub_802B7D0(u32 r0)
{
u8 temp;
temp = r0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2CC->unk74, 0, 0);
gUnknown_203B2CC->unk5A = sub_802B9A8();
sub_8013984(&gUnknown_203B2CC->unk38);
sub_802B880();
sub_802B8D4();
if(temp != 0)
{
AddMenuCursorSprite(&gUnknown_203B2CC->unk38);
}
}
void sub_802B81C(void)
{
if(gUnknown_203B2CC != NULL)
{
gUnknown_203B2D0 = gUnknown_203B2CC->unk50;
gUnknown_203B2D2 = gUnknown_203B2CC->unk56;
gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C] = gUnknown_80DFBD0;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2CC->unk74, 1, 1);
MemoryFree(gUnknown_203B2CC);
gUnknown_203B2CC = NULL;
}
}

View File

@@ -2,6 +2,7 @@
#include "memory.h"
#include "text.h"
#include "input.h"
#include "menu.h"
struct unkStruct_203B2F8
{
@@ -18,10 +19,8 @@ struct unkStruct_203B2F8
u32 unk70;
u32 unk74;
u8 fill78[0x118 - 0x78];
u32 unk118;
u8 fill11C[0x158 - 0x11C];
u32 unk158;
u8 fill15C[0x198 - 0x15C];
struct MenuItem unk118[8];
struct MenuItem unk158[8];
u16 unk198[8];
struct UnkTextStruct2 unk1A8[4];
u32 unk1E4;
@@ -30,7 +29,7 @@ extern struct unkStruct_203B2F8 *gUnknown_203B2F8;
extern struct UnkTextStruct2 gUnknown_80DFE04;
extern struct UnkTextStruct2 gUnknown_80DFE1C;
extern struct UnkTextStruct2 gUnknown_80DFDD4;
extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_802D63C(void);
extern void sub_802D5A4(void);
@@ -129,13 +128,13 @@ void sub_802D1B8(void)
case 0xD:
sub_802D5A4();
gUnknown_203B2F8->unk1A8[2] = gUnknown_80DFE04;
sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], &gUnknown_203B2F8->unk118);
sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], gUnknown_203B2F8->unk118);
gUnknown_203B2F8->unk1A8[2].unk0c = 6;
break;
case 0xE:
sub_802D63C();
gUnknown_203B2F8->unk1A8[3] = gUnknown_80DFE1C;
sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], &gUnknown_203B2F8->unk158);
sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], gUnknown_203B2F8->unk158);
gUnknown_203B2F8->unk1A8[3].unk0c = 6;
break;
default:

15
src/wonder_mail_3_1.c Normal file
View File

@@ -0,0 +1,15 @@
#include "global.h"
u8 sub_80A27CC(s16);
u8 sub_802FCF0(void)
{
s32 iVar3;
for(iVar3 = 0; iVar3 < 0x2E; iVar3++){
if (sub_80A27CC(iVar3) != '\0') {
return 0;
}
}
return 1;
}

View File

@@ -3,6 +3,7 @@
#include "memory.h"
#include "text.h"
#include "input.h"
#include "sub_8095228.h"
#include "wonder_mail.h"
#define WONDER_MAIL_MAIN_SCREEN 4

View File

@@ -2,6 +2,7 @@
#include "file_system.h"
#include "input.h"
#include "pokemon.h"
#include "sub_8095228.h"
#include "wonder_mail.h"
#include "memory.h"
@@ -10,57 +11,64 @@ extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
extern char gUnknown_202E5D8[0x50];
extern char gAvailablePokemonNames[0x50];
extern void sub_8029B34();
extern void sub_8029AD8();
extern void sub_8029AF4();
extern void sub_8029A88();
extern void sub_8029AB0();
extern void sub_80297B8();
extern void sub_80297D4();
extern void sub_8029884();
extern void sub_8029944();
extern void sub_80299AC();
extern void sub_80299D8();
extern void sub_8029A6C();
extern void sub_8028CE0();
extern void sub_8028BF0();
extern void sub_8029A18();
extern void sub_80295A8();
extern void sub_8029668();
extern void sub_8029684();
extern void sub_8029740();
extern void sub_80295D8();
extern void sub_802979C();
extern void sub_8029358();
extern void sub_8029374();
extern void sub_802939C();
extern void sub_8028F58();
extern void sub_8028F30();
extern void sub_8028F04();
extern void sub_8028ED4();
extern void sub_80293D8();
extern void sub_80293F4();
extern void sub_8029B34(void);
extern void sub_8029AD8(void);
extern void sub_8029AF4(void);
extern void sub_8029A88(void);
extern void sub_8029AB0(void);
extern void sub_80297B8(void);
extern void sub_80297D4(void);
extern void sub_8029884(void);
extern void sub_8029944(void);
extern void sub_80299AC(void);
extern void sub_80299D8(void);
extern void sub_8029A6C(void);
extern void sub_8028CE0(void);
extern void sub_8028BF0(void);
extern void sub_8029A18(void);
extern void sub_80295A8(void);
extern void sub_8029668(void);
extern void sub_8029684(void);
extern void sub_8029740(void);
extern void sub_80295D8(void);
extern void sub_802979C(void);
extern void sub_8029358(void);
extern void sub_8029374(void);
extern void sub_802939C(void);
extern void sub_8028F58(void);
extern void sub_8028F30(void);
extern void sub_8028F04(void);
extern void sub_8028ED4(void);
extern void sub_80293D8(void);
extern void sub_80293F4(void);
extern void sub_8028DE8(u32);
extern void sub_8028EAC();
extern void sub_802955C();
extern void sub_80292A4();
extern void sub_80292EC();
extern void sub_802933C();
extern void sub_802958C();
extern void sub_8029208();
extern void sub_8028E84();
extern void sub_8028F80();
extern void sub_8028FC0();
extern void sub_8028FDC();
extern void sub_8028E54();
extern void sub_8028E24();
extern void sub_8028E08();
extern void sub_80290D4();
extern void sub_80290F0();
extern void sub_80291AC();
extern void sub_8029044();
extern void sub_8028CFC();
extern void sub_8028D4C();
extern void sub_8028EAC(void);
extern void sub_802955C(void);
extern void sub_80292A4(void);
extern void sub_80292EC(void);
extern void sub_802933C(void);
extern void sub_802958C(void);
extern void sub_8029208(void);
extern void sub_8028E84(void);
extern void sub_8028F80(void);
extern void sub_8028FC0(void);
extern void sub_8028FDC(void);
extern void sub_8028E54(void);
extern void sub_8028E24(void);
extern void sub_8028E08(void);
extern void sub_80290D4(void);
extern void sub_80290F0(void);
extern void sub_80291AC(void);
extern void sub_8029044(void);
extern void sub_8028CFC(void);
extern void sub_8028D4C(void);
extern void sub_8031E10(void);
extern void sub_8023C60(void);
extern void sub_803084C(void);
extern void sub_80155F0(void);
extern void sub_80310B4(void);
extern void sub_8030DE4(void);
extern void sub_802453C(void);
u32 sub_8027F88(void)
{
@@ -93,3 +101,205 @@ u32 sub_8027F88(void)
sub_8028B04(0); // Set initial state to 0?
return 1;
}
u32 sub_8028078(void)
{
switch(gUnknown_203B2C0->state) {
case 0x3c:
sub_8029B34();
break;
case 0x3a:
sub_8029AD8();
break;
case 0x3b:
sub_8029AF4();
break;
case 0x38:
sub_8029A88();
break;
case 0x37:
sub_8029AB0();
break;
case 0x32:
sub_80297B8();
break;
case 0x33:
sub_80297D4();
break;
case 0x34:
sub_8029884();
break;
case 0x35:
sub_8029944();
break;
case 0x31:
sub_80299AC();
break;
case 0x36:
sub_80299D8();
break;
case 0x30:
sub_8029A6C();
break;
case 0x2e:
sub_8029A18();
break;
case 0x2d:
sub_80295A8();
break;
case 0x29:
sub_8029668();
break;
case 0x2b:
sub_8029684();
break;
case 0x2c:
sub_8029740();
break;
case 0x2a:
sub_80295D8();
break;
case 0x2f:
sub_802979C();
break;
case 9:
sub_8029358();
break;
case 0x23:
sub_8029374();
break;
case 0x24:
sub_802939C();
break;
case 0x26:
sub_80293D8();
break;
case 0x27:
sub_80293F4();
break;
case 0x28:
sub_802955C();
break;
case 4:
sub_80292A4();
break;
case 6:
sub_80292EC();
break;
case 7:
sub_802933C();
break;
case 5:
sub_802958C();
break;
case 8:
sub_8029208();
break;
case 0x1a:
sub_8028DE8(1);
break;
case 0x1b:
sub_8028F80();
break;
case 0x1c:
case 0x1d:
sub_8028FC0();
break;
case 0x22:
sub_8028FDC();
break;
case 0x1e:
sub_80290D4();
break;
case 0x20:
sub_80290F0();
break;
case 0x21:
sub_80291AC();
break;
case 0x1f:
sub_8029044();
break;
case 10:
sub_8028CFC();
break;
case 0xb:
sub_8028D4C();
break;
case 0xd:
case 0xf:
sub_8028DE8(10);
break;
case 0x11:
sub_8028E08();
break;
case 0xc:
case 0xe:
case 0x10:
sub_8028DE8(0x19);
break;
case 0x12:
sub_8028E24();
break;
case 0x13:
sub_8028E54();
break;
case 0x17:
sub_8028E84();
break;
case 0x18:
sub_8028EAC();
break;
case 0x19:
sub_8028ED4();
break;
case 0x14:
sub_8028F04();
break;
case 0x15:
sub_8028F30();
break;
case 0x16:
sub_8028F58();
break;
case 0:
case 1:
sub_8028BF0();
break;
case 2:
case 0x25:
case 0x39:
sub_8028CE0();
break;
case 3:
return 3;
}
return 0;
}
s32 sub_80282DC(u8 *r0)
{
*r0 = gUnknown_203B2C0->unk218;
return gUnknown_203B2C0->unk53C;
}
void sub_80282FC(void)
{
if (gUnknown_203B2C0 != NULL) {
CloseFile(gUnknown_203B2C0->faceFile);
MemoryFree(gUnknown_203B2C0);
gUnknown_203B2C0 = NULL;
sub_8031E10();
sub_8023C60();
sub_803084C();
sub_80155F0();
sub_80310B4();
sub_8030DE4();
sub_802453C();
}
}
void nullsub_130(void)
{
}