Label all entities in Boss Fight Cutscenes (#78)

* label all entities in cutscenes

* remove commented func.. wasn't matching anyway

* Skarmony -> Skarmory
This commit is contained in:
Seth Barberee
2021-11-22 12:14:58 -06:00
committed by GitHub
parent 938a88551f
commit fd8720b75c
43 changed files with 8159 additions and 8955 deletions

View File

@@ -4440,7 +4440,7 @@ _08014DDC:
ldr r4, _08014DF8
adds r0, r4, 0
movs r2, 0
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
b _08014F0E
.align 2, 0
_08014DF8: .4byte gUnknown_202EB80

View File

@@ -5,649 +5,6 @@
.text
thumb_func_start sub_801B60C
sub_801B60C:
push {r4-r7,lr}
adds r5, r0, 0
adds r4, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r2, 24
lsrs r7, r2, 24
ldr r6, _0801B650
movs r0, 0xAA
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
adds r2, r0, 0
adds r2, 0xC8
movs r1, 0
str r1, [r2]
str r5, [r0]
strb r4, [r0, 0x12]
ldr r0, [r6]
ldrb r0, [r0, 0x12]
bl IsThrowableItem
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0801B654
ldr r0, [r6]
strb r7, [r0, 0x11]
ldr r0, [r6]
strb r7, [r0, 0xC]
b _0801B65E
.align 2, 0
_0801B650: .4byte gUnknown_203B234
_0801B654:
ldr r0, [r6]
strb r1, [r0, 0x11]
ldr r1, [r6]
movs r0, 0x1
strb r0, [r1, 0xC]
_0801B65E:
ldr r5, _0801B6A0
ldr r0, [r5]
movs r1, 0
movs r2, 0x1
strb r2, [r0, 0x10]
ldr r0, [r5]
str r1, [r0, 0x14]
strb r1, [r0, 0x18]
ldr r0, [r5]
strb r2, [r0, 0x1C]
ldr r4, _0801B6A4
bl GetPlayerPokemonStruct
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
ldr r0, _0801B6A8
ldr r2, [r5]
adds r1, r2, 0
adds r1, 0x10
adds r2, 0x14
bl sub_8090E14
movs r0, 0
bl sub_801B748
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801B6A0: .4byte gUnknown_203B234
_0801B6A4: .4byte gAvailablePokemonNames
_0801B6A8: .4byte gUnknown_202DE58
thumb_func_end sub_801B60C
thumb_func_start sub_801B6AC
sub_801B6AC:
push {lr}
ldr r0, _0801B6C4
ldr r0, [r0]
ldr r0, [r0, 0x4]
subs r0, 0x6
cmp r0, 0xA
bhi _0801B720
lsls r0, 2
ldr r1, _0801B6C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B6C4: .4byte gUnknown_203B234
_0801B6C8: .4byte _0801B6CC
.align 2, 0
_0801B6CC:
.4byte _0801B6FC
.4byte _0801B702
.4byte _0801B708
.4byte _0801B708
.4byte _0801B70E
.4byte _0801B714
.4byte _0801B71A
.4byte _0801B720
.4byte _0801B720
.4byte _0801B720
.4byte _0801B6F8
_0801B6F8:
movs r0, 0x3
b _0801B726
_0801B6FC:
bl sub_801BC64
b _0801B724
_0801B702:
bl sub_801BC94
b _0801B724
_0801B708:
bl sub_801BCCC
b _0801B724
_0801B70E:
bl sub_801BD80
b _0801B724
_0801B714:
bl sub_801BEAC
b _0801B724
_0801B71A:
bl sub_801BE30
b _0801B724
_0801B720:
bl sub_801BEC8
_0801B724:
movs r0, 0
_0801B726:
pop {r1}
bx r1
thumb_func_end sub_801B6AC
thumb_func_start sub_801B72C
sub_801B72C:
push {r4,lr}
ldr r4, _0801B744
ldr r0, [r4]
cmp r0, 0
beq _0801B73E
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801B73E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801B744: .4byte gUnknown_203B234
thumb_func_end sub_801B72C
thumb_func_start sub_801B748
sub_801B748:
push {lr}
ldr r1, _0801B75C
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_801B760
bl sub_801B874
pop {r0}
bx r0
.align 2, 0
_0801B75C: .4byte gUnknown_203B234
thumb_func_end sub_801B748
thumb_func_start sub_801B760
sub_801B760:
push {r4-r7,lr}
ldr r0, _0801B77C
ldr r1, [r0]
ldr r1, [r1, 0x4]
subs r1, 0x1
adds r4, r0, 0
cmp r1, 0xE
bls _0801B772
b _0801B86A
_0801B772:
lsls r0, r1, 2
ldr r1, _0801B780
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B77C: .4byte gUnknown_203B234
_0801B780: .4byte _0801B784
.align 2, 0
_0801B784:
.4byte _0801B7C0
.4byte _0801B86A
.4byte _0801B86A
.4byte _0801B86A
.4byte _0801B86A
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B800
.4byte _0801B7C0
.4byte _0801B840
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B7C0
_0801B7C0:
ldr r4, _0801B7F8
ldr r0, [r4]
adds r0, 0xF4
bl sub_8006518
mov r12, r4
ldr r4, _0801B7FC
movs r3, 0
movs r2, 0x3
_0801B7D2:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0xF4
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801B7D2
bl ResetUnusedInputStruct
ldr r0, _0801B7F8
ldr r0, [r0]
b _0801B82E
.align 2, 0
_0801B7F8: .4byte gUnknown_203B234
_0801B7FC: .4byte gUnknown_80DBA58
_0801B800:
ldr r0, [r4]
adds r0, 0xF4
bl sub_8006518
bl sub_801BB5C
ldr r2, [r4]
movs r0, 0x92
lsls r0, 1
adds r2, r0
ldr r1, _0801B83C
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xCC
bl sub_8012CAC
bl ResetUnusedInputStruct
ldr r0, [r4]
_0801B82E:
adds r0, 0xF4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0801B86A
.align 2, 0
_0801B83C: .4byte gUnknown_80DBA70
_0801B840:
ldr r0, [r4]
adds r0, 0xF4
bl sub_8006518
ldr r1, [r4]
movs r6, 0x86
lsls r6, 1
adds r1, r6
ldr r0, _0801B870
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0xF4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801B86A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801B870: .4byte gUnknown_80DBA88
thumb_func_end sub_801B760
thumb_func_start sub_801B874
sub_801B874:
push {r4,lr}
sub sp, 0x14
ldr r1, _0801B890
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r4, r1, 0
cmp r0, 0x10
bls _0801B886
b _0801BB0E
_0801B886:
lsls r0, 2
ldr r1, _0801B894
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B890: .4byte gUnknown_203B234
_0801B894: .4byte _0801B898
.align 2, 0
_0801B898:
.4byte _0801B8DC
.4byte _0801B9BC
.4byte _0801B9D8
.4byte _0801B9E0
.4byte _0801B9F0
.4byte _0801B9F8
.4byte _0801BA08
.4byte _0801BA34
.4byte _0801BA60
.4byte _0801BA6E
.4byte _0801BA76
.4byte _0801BA94
.4byte _0801BA9E
.4byte _0801BAD0
.4byte _0801BAE0
.4byte _0801BAFC
.4byte _0801BB0E
_0801B8DC:
ldr r1, [r4]
ldrb r0, [r1, 0x12]
cmp r0, 0xEA
bne _0801B8FE
movs r0, 0x10
str r0, [r1, 0x8]
movs r0, 0
movs r1, 0x47
movs r2, 0x1
bl sub_8001784
cmp r0, 0
bne _0801B914
movs r0, 0
movs r1, 0x47
movs r2, 0x1
b _0801B92A
_0801B8FE:
cmp r0, 0xEB
bne _0801B938
movs r0, 0x10
str r0, [r1, 0x8]
movs r0, 0
movs r1, 0x47
movs r2, 0
bl sub_8001784
cmp r0, 0
beq _0801B924
_0801B914:
movs r0, 0xFA
lsls r0, 2
bl AddToTeamMoney
movs r0, 0x4
bl sub_801B748
b _0801BB0E
_0801B924:
movs r0, 0
movs r1, 0x47
movs r2, 0
_0801B92A:
movs r3, 0x1
bl sub_800199C
movs r0, 0x3
bl sub_801B748
b _0801BB0E
_0801B938:
bl GetNumberOfFilledInventorySlots
cmp r0, 0x13
ble _0801B986
ldr r0, [r4]
ldrb r0, [r0, 0x12]
bl IsNotMoneyOrUsedTMItem
lsls r0, 24
cmp r0, 0
beq _0801B968
ldr r0, _0801B970
ldr r1, [r0]
ldr r2, [r4]
ldrb r0, [r2, 0x12]
lsls r0, 1
adds r1, 0x50
adds r3, r1, r0
ldrh r1, [r3]
ldrb r0, [r2, 0xC]
adds r1, r0
ldr r0, _0801B974
cmp r1, r0
ble _0801B978
_0801B968:
ldr r1, [r4]
movs r0, 0x6
b _0801B99C
.align 2, 0
_0801B970: .4byte gTeamInventory_203B460
_0801B974: .4byte 0x000003e7
_0801B978:
strh r1, [r3]
movs r0, 0xCB
bl PlaySound
ldr r1, [r4]
movs r0, 0x5
b _0801B99C
_0801B986:
ldr r0, [r4]
adds r0, 0x10
bl AddItemToInventory
bl FillInventoryGaps
movs r0, 0xCB
bl PlaySound
ldr r1, [r4]
movs r0, 0x10
_0801B99C:
str r0, [r1, 0x8]
ldr r0, _0801B9B0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
bne _0801B9B4
movs r0, 0x2
bl sub_801B748
b _0801BB0E
.align 2, 0
_0801B9B0: .4byte gUnknown_203B234
_0801B9B4:
movs r0, 0x1
bl sub_801B748
b _0801BB0E
_0801B9BC:
movs r0, 0
bl sub_808D544
cmp r0, 0x1
bgt _0801B9D0
ldr r0, _0801B9CC
b _0801BAE8
.align 2, 0
_0801B9CC: .4byte gUnknown_80DBAA0
_0801B9D0:
ldr r0, _0801B9D4
b _0801BAE8
.align 2, 0
_0801B9D4: .4byte gUnknown_80DBAD0
_0801B9D8:
ldr r0, _0801B9DC
b _0801BAE8
.align 2, 0
_0801B9DC: .4byte gUnknown_80DBB08
_0801B9E0:
movs r0, 0xD4
bl PlaySound
ldr r0, _0801B9EC
b _0801BAE8
.align 2, 0
_0801B9EC: .4byte gUnknown_80DBB38
_0801B9F0:
ldr r0, _0801B9F4
b _0801BAE8
.align 2, 0
_0801B9F4: .4byte gUnknown_80DBB9C
_0801B9F8:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BA04
b _0801BAE8
.align 2, 0
_0801BA04: .4byte gUnknown_80DBC28
_0801BA08:
bl sub_801BB20
ldr r0, _0801BA2C
ldr r1, _0801BA30
ldr r3, [r1]
adds r3, 0xCC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
str r2, [sp, 0x10]
movs r1, 0
movs r2, 0x4
bl sub_8014248
b _0801BB0E
.align 2, 0
_0801BA2C: .4byte gUnknown_80DBC60
_0801BA30: .4byte gUnknown_203B234
_0801BA34:
bl sub_801BC24
ldr r0, _0801BA58
ldr r1, _0801BA5C
ldr r3, [r1]
adds r3, 0xCC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
str r2, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _0801BB0E
.align 2, 0
_0801BA58: .4byte gUnknown_80DBC98
_0801BA5C: .4byte gUnknown_203B234
_0801BA60:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _0801BB0E
_0801BA6E:
movs r0, 0x1
bl sub_801A8D0
b _0801BB0E
_0801BA76:
bl sub_801A9E0
ldr r0, _0801BA90
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x28
adds r1, r2, 0
adds r1, 0xCC
adds r2, 0xC8
ldr r2, [r2]
str r2, [sp]
movs r2, 0x2
b _0801BAC0
.align 2, 0
_0801BA90: .4byte gUnknown_203B234
_0801BA94:
ldr r0, [r4]
adds r0, 0x20
bl sub_801B3C0
b _0801BB0E
_0801BA9E:
bl sub_801A9E0
ldr r4, _0801BACC
ldr r0, [r4]
adds r0, 0x28
movs r1, 0
bl sub_8012EA4
bl sub_801BC24
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x78
adds r1, 0xCC
movs r2, 0x3
str r2, [sp]
movs r2, 0x1
_0801BAC0:
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0801BB0E
.align 2, 0
_0801BACC: .4byte gUnknown_203B234
_0801BAD0:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BADC
b _0801BAE8
.align 2, 0
_0801BADC: .4byte gUnknown_80DBCC4
_0801BAE0:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BAF4
_0801BAE8:
ldr r3, _0801BAF8
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0801BB0E
.align 2, 0
_0801BAF4: .4byte gUnknown_80DBCE8
_0801BAF8: .4byte 0x00000101
_0801BAFC:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BB18
ldr r3, _0801BB1C
movs r1, 0
movs r2, 0
bl sub_80141B4
_0801BB0E:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801BB18: .4byte gUnknown_80DBD24
_0801BB1C: .4byte 0x00000101
thumb_func_end sub_801B874
thumb_func_start sub_801BB20
sub_801BB20:
ldr r0, _0801BB50
ldr r3, [r0]
movs r2, 0
adds r1, r3, 0
adds r1, 0xCC
ldr r0, _0801BB54
str r0, [r1]
adds r1, 0x4
movs r0, 0x4
str r0, [r1]
adds r1, 0x4
ldr r0, _0801BB58
str r0, [r1]
adds r1, 0x4
movs r0, 0x5
str r0, [r1]
adds r0, r3, 0
adds r0, 0xDC
str r2, [r0]
adds r1, 0x8
movs r0, 0x1
negs r0, r0
str r0, [r1]
bx lr
.align 2, 0
_0801BB50: .4byte gUnknown_203B234
_0801BB54: .4byte gKangaskhanTrashToolboxItem
_0801BB58: .4byte gKangaskhanTrashReceivedItem
thumb_func_end sub_801BB20
thumb_func_start sub_801BB5C
sub_801BB5C:
push {r4-r7,lr}

View File

@@ -1445,7 +1445,7 @@ _0801D400:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x7
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
ldr r2, [r6]
str r4, [r2, 0x18]
adds r0, r2, 0

View File

@@ -1730,7 +1730,7 @@ sub_801FB50:
bl GetPlayerPokemonStruct
adds r1, r0, 0
adds r0, r5, 0
bl sub_808DA34
bl PrintPokeNameToBuffer
ldr r2, [r6]
ldr r0, [r2]
cmp r0, 0x1
@@ -3613,7 +3613,7 @@ _08020AB0:
ldr r0, _08020AE8
ldr r1, [r4]
ldr r1, [r1, 0x10]
bl sub_808DA34
bl PrintPokeNameToBuffer
movs r0, 0x11
bl sub_801FDA8
b _08020B32
@@ -3639,7 +3639,7 @@ _08020AEC:
ldr r0, _08020B24
ldr r1, [r4]
ldr r1, [r1, 0x10]
bl sub_808DA34
bl PrintPokeNameToBuffer
movs r0, 0x12
bl sub_801FDA8
b _08020B32
@@ -7265,12 +7265,12 @@ sub_80227B8:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x7
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
adds r4, 0x50
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x6
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
bl HasGummiItem
lsls r0, 24
cmp r0, 0

View File

@@ -110,7 +110,7 @@ sub_8042B34:
adds r6, r2, 0
movs r0, 0
mov r8, r0
bl sub_8085480
bl xxx_call_GetLeaderEntity
mov r10, r0
ldr r7, _08042CB0
movs r0, 0xCC

View File

@@ -698,9 +698,9 @@ sub_8052910:
push {r6,r7}
sub sp, 0x14
adds r6, r0, 0
bl sub_8085480
bl xxx_call_GetLeaderEntity
adds r4, r0, 0
bl sub_808548C
bl GetPartnerEntity
adds r5, r0, 0
movs r0, 0
mov r9, r0

File diff suppressed because it is too large Load Diff

6234
asm/code_806CD90.s Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -29874,267 +29874,4 @@ _080848E4: .4byte gDungeonGlobalData
_080848E8: .4byte 0x00000675
thumb_func_end sub_8084854
thumb_func_start sub_80848EC
sub_80848EC:
movs r0, 0x1
bx lr
thumb_func_end sub_80848EC
thumb_func_start sub_80848F0
sub_80848F0:
push {lr}
ldr r2, _08084918
ldr r0, [r2]
ldr r1, _0808491C
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r2]
ldr r1, _08084920
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3C
bls _0808490C
b _08084B5C
_0808490C:
lsls r0, 2
ldr r1, _08084924
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08084918: .4byte gDungeonGlobalData
_0808491C: .4byte 0x0001356c
_08084920: .4byte 0x00003a0d
_08084924: .4byte _08084928
.align 2, 0
_08084928:
.4byte _08084A1C
.4byte _08084A2C
.4byte _08084A2C
.4byte _08084A32
.4byte _08084A38
.4byte _08084A38
.4byte _08084A3E
.4byte _08084A44
.4byte _08084A44
.4byte _08084A4A
.4byte _08084A50
.4byte _08084A50
.4byte _08084A56
.4byte _08084A5C
.4byte _08084A62
.4byte _08084A68
.4byte _08084A6E
.4byte _08084A74
.4byte _08084A7A
.4byte _08084A80
.4byte _08084A86
.4byte _08084A8C
.4byte _08084A92
.4byte _08084A98
.4byte _08084A98
.4byte _08084A9E
.4byte _08084AA4
.4byte _08084AA4
.4byte _08084AAA
.4byte _08084AB0
.4byte _08084AB0
.4byte _08084AB6
.4byte _08084ABC
.4byte _08084ABC
.4byte _08084AC2
.4byte _08084AC8
.4byte _08084ACE
.4byte _08084AD4
.4byte _08084ADA
.4byte _08084AE0
.4byte _08084AE6
.4byte _08084AEC
.4byte _08084AF2
.4byte _08084AF8
.4byte _08084AFE
.4byte _08084B04
.4byte _08084B0A
.4byte _08084B10
.4byte _08084B16
.4byte _08084B1C
.4byte _08084B22
.4byte _08084B28
.4byte _08084B2E
.4byte _08084B34
.4byte _08084B3A
.4byte _08084B40
.4byte _08084B46
.4byte _08084B4C
.4byte _08084B52
.4byte _08084B58
.4byte _08084A1C
_08084A1C:
ldr r0, [r2]
ldr r1, _08084A28
adds r0, r1
movs r1, 0
strb r1, [r0]
b _08084B5C
.align 2, 0
_08084A28: .4byte 0x0001356c
_08084A2C:
bl sub_8086B14
b _08084B5C
_08084A32:
bl sub_8086B94
b _08084B5C
_08084A38:
bl sub_8086E9C
b _08084B5C
_08084A3E:
bl sub_8086F00
b _08084B5C
_08084A44:
bl sub_8087230
b _08084B5C
_08084A4A:
bl sub_808729C
b _08084B5C
_08084A50:
bl sub_80877E8
b _08084B5C
_08084A56:
bl sub_8087848
b _08084B5C
_08084A5C:
bl sub_8087F54
b _08084B5C
_08084A62:
bl sub_8087FB4
b _08084B5C
_08084A68:
bl sub_8087FF8
b _08084B5C
_08084A6E:
bl sub_80885A0
b _08084B5C
_08084A74:
bl sub_80885C4
b _08084B5C
_08084A7A:
bl sub_808862C
b _08084B5C
_08084A80:
bl sub_80886C4
b _08084B5C
_08084A86:
bl sub_808875C
b _08084B5C
_08084A8C:
bl sub_8088DC0
b _08084B5C
_08084A92:
bl sub_8088E5C
b _08084B5C
_08084A98:
bl sub_80892C8
b _08084B5C
_08084A9E:
bl sub_8089328
b _08084B5C
_08084AA4:
bl sub_808970C
b _08084B5C
_08084AAA:
bl sub_808974C
b _08084B5C
_08084AB0:
bl sub_8089914
b _08084B5C
_08084AB6:
bl sub_8089978
b _08084B5C
_08084ABC:
bl sub_8089C44
b _08084B5C
_08084AC2:
bl sub_8089C90
b _08084B5C
_08084AC8:
bl sub_8089EFC
b _08084B5C
_08084ACE:
bl sub_8089F44
b _08084B5C
_08084AD4:
bl sub_8089F8C
b _08084B5C
_08084ADA:
bl sub_808A264
b _08084B5C
_08084AE0:
bl sub_808A2C0
b _08084B5C
_08084AE6:
bl sub_808A308
b _08084B5C
_08084AEC:
bl sub_808A608
b _08084B5C
_08084AF2:
bl sub_808A668
b _08084B5C
_08084AF8:
bl sub_808A9E4
b _08084B5C
_08084AFE:
bl sub_808AA3C
b _08084B5C
_08084B04:
bl sub_808AA94
b _08084B5C
_08084B0A:
bl sub_808ACC0
b _08084B5C
_08084B10:
bl sub_808AD48
b _08084B5C
_08084B16:
bl sub_808ADCC
b _08084B5C
_08084B1C:
bl sub_808B2F4
b _08084B5C
_08084B22:
bl sub_808B35C
b _08084B5C
_08084B28:
bl sub_808BDEC
b _08084B5C
_08084B2E:
bl sub_808C10C
b _08084B5C
_08084B34:
bl sub_808C3A0
b _08084B5C
_08084B3A:
bl sub_808C5C0
b _08084B5C
_08084B40:
bl sub_808C938
b _08084B5C
_08084B46:
bl sub_808C9C4
b _08084B5C
_08084B4C:
bl sub_808CB5C
b _08084B5C
_08084B52:
bl sub_808CBB0
b _08084B5C
_08084B58:
bl sub_808CD44
_08084B5C:
bl sub_8097FF8
pop {r0}
bx r0
thumb_func_end sub_80848F0
.align 2,0

View File

@@ -269,16 +269,16 @@ _0808546E:
_0808547C: .4byte gUnknown_80F4598
thumb_func_end sub_8085374
thumb_func_start sub_8085480
sub_8085480:
thumb_func_start xxx_call_GetLeaderEntity
xxx_call_GetLeaderEntity:
push {lr}
bl GetLeaderEntity
pop {r1}
bx r1
thumb_func_end sub_8085480
thumb_func_end xxx_call_GetLeaderEntity
thumb_func_start sub_808548C
sub_808548C:
thumb_func_start GetPartnerEntity
GetPartnerEntity:
push {r4,r5,lr}
movs r5, 0
_08085490:
@@ -314,7 +314,7 @@ _080854CC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_808548C
thumb_func_end GetPartnerEntity
thumb_func_start sub_80854D4
sub_80854D4:
@@ -500,7 +500,7 @@ _08085618:
ble _080855EC
cmp r7, 0
bne _0808562E
bl sub_808548C
bl GetPartnerEntity
cmp r0, 0
beq _0808562E
bl _call_via_r6
@@ -889,8 +889,8 @@ _080858FE:
bx r0
thumb_func_end sub_80858AC
thumb_func_start sub_8085918
sub_8085918:
thumb_func_start SetFacingDirection
SetFacingDirection:
push {r4,lr}
ldr r3, [r0, 0x70]
movs r4, 0x7
@@ -902,7 +902,7 @@ sub_8085918:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8085918
thumb_func_end SetFacingDirection
thumb_func_start sub_8085930
sub_8085930:
@@ -1045,4 +1045,4 @@ _08085A42:
bx r0
thumb_func_end sub_80859F0
.align 2, 0
.align 2, 0

View File

@@ -22,7 +22,7 @@ sub_8085B0C:
_08085B26:
ldrb r1, [r4]
adds r0, r5, 0
bl sub_8085918
bl SetFacingDirection
movs r0, 0x6
movs r1, 0x46
bl sub_803E708

View File

@@ -5,350 +5,6 @@
.text
thumb_func_start SkarmoryPreFightDialogue
SkarmoryPreFightDialogue:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x10
bl sub_8085480
mov r8, r0
bl sub_808548C
mov r9, r0
movs r0, 0x4
bl sub_8085680
adds r4, r0, 0
movs r0, 0x3
bl sub_8085680
adds r6, r0, 0
ldr r0, [r4, 0xC]
str r0, [sp]
ldr r0, [r4, 0x10]
movs r1, 0xC0
lsls r1, 6
adds r0, r1
str r0, [sp, 0x4]
ldr r0, [r6, 0xC]
str r0, [sp, 0x8]
ldr r0, [r6, 0x10]
movs r2, 0x80
lsls r2, 6
adds r0, r2
add r5, sp, 0x8
str r0, [r5, 0x4]
bl sub_8086448
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
mov r0, r9
bl sub_80862BC
movs r0, 0x20
movs r1, 0x46
bl sub_803E708
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086D84
bl sub_8052910
mov r0, sp
movs r1, 0x40
bl sub_80858AC
movs r0, 0x40
movs r1, 0x46
bl sub_803E708
adds r0, r5, 0
movs r1, 0x30
bl sub_80858AC
ldr r0, _08086D88
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, [r4, 0x70]
ldr r2, _08086D8C
adds r1, r0, r2
movs r0, 0x1
strb r0, [r1]
mov r0, sp
movs r1, 0x30
bl sub_80858AC
ldr r0, _08086D90
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r0, r5, 0
movs r1, 0x20
bl sub_80858AC
movs r0, 0x20
movs r1, 0x46
bl sub_803E708
adds r0, r6, 0
bl sub_8086E74
ldr r0, _08086D94
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086D98
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086D9C
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086DA0
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r0, r6, 0
movs r1, 0xD
movs r2, 0
bl sub_806CDD4
ldr r0, _08086DA4
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
mov r0, r9
movs r1, 0x4
movs r2, 0x1
movs r3, 0x2
bl sub_80869E4
mov r0, r8
movs r1, 0x4
movs r2, 0x2
movs r3, 0x6
bl sub_80869E4
ldr r0, _08086DA8
bl sub_8052910
mov r0, r9
movs r1, 0x4
movs r2, 0x2
movs r3, 0x4
bl sub_80869E4
mov r0, r8
movs r1, 0x4
movs r2, 0x1
movs r3, 0x4
bl sub_80869E4
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
movs r0, 0xB
bl sub_8083E88
movs r0, 0xC
add r8, r0
mov r0, r8
movs r1, 0x10
bl sub_80858AC
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08086D84: .4byte gUnknown_8100768
_08086D88: .4byte gUnknown_8100798
_08086D8C: .4byte 0x0000015d
_08086D90: .4byte gUnknown_8100820
_08086D94: .4byte gUnknown_8100844
_08086D98: .4byte gUnknown_8100880
_08086D9C: .4byte gUnknown_8100928
_08086DA0: .4byte gUnknown_8100A04
_08086DA4: .4byte gUnknown_8100B80
_08086DA8: .4byte gUnknown_8100BC0
thumb_func_end SkarmoryPreFightDialogue
thumb_func_start SkarmoryReFightDialogue
SkarmoryReFightDialogue:
push {r4,r5,lr}
sub sp, 0x8
bl sub_8085480
adds r5, r0, 0
movs r0, 0x3
bl sub_8085680
adds r4, r0, 0
ldr r0, [r4, 0xC]
str r0, [sp]
ldr r0, [r4, 0x10]
movs r1, 0x80
lsls r1, 6
adds r0, r1
str r0, [sp, 0x4]
bl sub_8086448
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r0, r4, 0
bl sub_8086E74
mov r0, sp
movs r1, 0x10
bl sub_80858AC
ldr r0, _08086E34
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086E38
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r0, r4, 0
movs r1, 0xD
movs r2, 0
bl sub_806CDD4
ldr r0, _08086E3C
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r5, 0xC
adds r0, r5, 0
movs r1, 0x10
bl sub_80858AC
movs r0, 0xB
bl sub_8083E88
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08086E34: .4byte gUnknown_8100C90
_08086E38: .4byte gUnknown_8100CBC
_08086E3C: .4byte gUnknown_8100CDC
thumb_func_end SkarmoryReFightDialogue
thumb_func_start sub_8086E40
sub_8086E40:
push {lr}
bl sub_8085480
bl SpriteLookAroundEffect
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086E6C
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08086E70
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x2]
pop {r0}
bx r0
.align 2, 0
_08086E6C: .4byte gUnknown_8100D3C
_08086E70: .4byte gDungeonGlobalData
thumb_func_end sub_8086E40
thumb_func_start sub_8086E74
sub_8086E74:
push {r4,lr}
adds r4, r0, 0
movs r1, 0xF
movs r2, 0
bl sub_806CDD4
adds r0, r4, 0
bl sub_8086A54
movs r0, 0xFC
lsls r0, 1
bl PlaySoundEffect
movs r0, 0x44
movs r1, 0x46
bl sub_803E708
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8086E74
thumb_func_start sub_8086E9C
sub_8086E9C:
push {r4,r5,lr}
bl sub_8085480
adds r5, r0, 0
movs r0, 0x72
bl sub_8083E88
bl sub_8085374
bl sub_80854D4
movs r0, 0x4
bl sub_8085930
ldr r4, _08086EF8
adds r0, r4, 0
bl sub_80855E4
adds r0, r4, 0
bl sub_808563C
movs r1, 0x4
ldrsh r0, [r5, r1]
movs r2, 0x6
ldrsh r1, [r5, r2]
subs r1, 0x3
bl sub_8085860
ldr r4, _08086EFC
adds r0, r4, 0
movs r1, 0xB
bl CopySpeciesNametoBuffer
adds r0, r4, 0
adds r0, 0x50
movs r1, 0x5E
bl CopySpeciesNametoBuffer
adds r4, 0xA0
adds r0, r4, 0
movs r1, 0xA
bl CopySpeciesNametoBuffer
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08086EF8: .4byte sub_8086A3C
_08086EFC: .4byte gUnknown_202E038
thumb_func_end sub_8086E9C
thumb_func_start sub_8086F00
sub_8086F00:
push {r4,lr}
bl sub_8085480
adds r4, r0, 0
bl sub_80854D4
movs r0, 0x4
bl sub_8085930
ldr r0, _08086F4C
bl sub_80855E4
movs r1, 0x4
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
subs r1, 0x3
bl sub_8085860
ldr r4, _08086F50
adds r0, r4, 0
movs r1, 0xB
bl CopySpeciesNametoBuffer
adds r0, r4, 0
adds r0, 0x50
movs r1, 0x5E
bl CopySpeciesNametoBuffer
adds r4, 0xA0
adds r0, r4, 0
movs r1, 0xA
bl CopySpeciesNametoBuffer
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08086F4C: .4byte sub_8086A3C
_08086F50: .4byte gUnknown_202E038
thumb_func_end sub_8086F00
thumb_func_start sub_8086F54
sub_8086F54:
push {r4-r6,lr}
@@ -405,7 +61,7 @@ _08086FB4: .4byte 0x0001358c
thumb_func_start TeamMeaniesPreFightDialogue
TeamMeaniesPreFightDialogue:
push {r4,lr}
bl sub_8085480
bl xxx_call_GetLeaderEntity
adds r4, r0, 0
bl sub_8086448
movs r0, 0xA
@@ -469,9 +125,9 @@ _08087060: .4byte gUnknown_81010D0
thumb_func_start TeamMeaniesReFightDialogue
TeamMeaniesReFightDialogue:
push {r4,r5,lr}
bl sub_8085480
bl xxx_call_GetLeaderEntity
adds r4, r0, 0
bl sub_808548C
bl GetPartnerEntity
adds r5, r0, 0
bl sub_8086448
ldr r0, _08087118
@@ -665,7 +321,7 @@ _0808722C: .4byte 0x0000015f
thumb_func_start sub_8087230
sub_8087230:
push {r4-r6,lr}
bl sub_8085480
bl xxx_call_GetLeaderEntity
adds r6, r0, 0
movs r0, 0x8
bl sub_8085680
@@ -681,7 +337,7 @@ sub_8087230:
bl sub_80855E4
adds r0, r5, 0
movs r1, 0
bl sub_8085918
bl SetFacingDirection
adds r0, r5, 0
bl _call_via_r4
movs r1, 0x4
@@ -711,7 +367,7 @@ _08087298: .4byte gUnknown_202E038
sub_808729C:
push {r4-r6,lr}
sub sp, 0x4
bl sub_8085480
bl xxx_call_GetLeaderEntity
adds r5, r0, 0
movs r0, 0x8
bl sub_8085680
@@ -747,7 +403,7 @@ _080872E0:
bl sub_8072008
adds r0, r4, 0
movs r1, 0
bl sub_8085918
bl SetFacingDirection
adds r0, r4, 0
bl _call_via_r6
_08087300:
@@ -810,9 +466,9 @@ ZapdosPreFightDialogue:
mov r5, r8
push {r5-r7}
sub sp, 0x70
bl sub_8085480
bl xxx_call_GetLeaderEntity
mov r9, r0
bl sub_808548C
bl GetPartnerEntity
adds r6, r0, 0
movs r0, 0x8
bl sub_8085680

View File

@@ -412,7 +412,7 @@ sub_809542C:
bl GetPlayerPokemonStruct
adds r1, r0, 0
mov r0, sp
bl sub_808DA34
bl PrintPokeNameToBuffer
ldr r0, [r4]
adds r0, 0x14
mov r1, sp

View File

@@ -364,13 +364,13 @@ _080255D2:
ldr r1, [r0, 0x1C]
adds r0, r4, 0
movs r2, 0x7
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
adds r4, 0x50
ldr r0, [r5]
ldr r1, [r0, 0x1C]
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x78
@@ -1911,13 +1911,13 @@ _0802625C:
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x7
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
adds r4, 0x50
ldr r0, [r5]
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x7C
@@ -1945,13 +1945,13 @@ _080262A8:
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x7
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
adds r4, 0x50
ldr r0, [r5]
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0x1

View File

@@ -449,7 +449,7 @@ _0808B98E:
bl CalculateFacingDir
adds r1, r0, 0
adds r0, r6, 0
bl sub_8085918
bl SetFacingDirection
movs r0, 0xA
movs r1, 0x46
bl sub_803E708

View File

@@ -268,293 +268,4 @@ _0802E4A8:
bx r0
thumb_func_end CreateMailActionMenu
thumb_func_start sub_802E4B0
sub_802E4B0:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0802E4F0
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802E4DC
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802E4DC
ldr r0, [r4]
str r1, [r0, 0x64]
_0802E4DC:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x7
bhi _0802E56E
lsls r0, 2
ldr r1, _0802E4F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E4F0: .4byte gUnknown_203B304
_0802E4F4: .4byte _0802E4F8
.align 2, 0
_0802E4F8:
.4byte _0802E568
.4byte _0802E518
.4byte _0802E52A
.4byte _0802E53C
.4byte _0802E56E
.4byte _0802E56E
.4byte _0802E56E
.4byte _0802E560
_0802E518:
bl HasNoMailinMailbox
lsls r0, 24
cmp r0, 0
bne _0802E54E
movs r0, 0x4
bl SetMailboxState
b _0802E56E
_0802E52A:
bl HasNoAcceptedJobs
lsls r0, 24
cmp r0, 0
bne _0802E54E
movs r0, 0x8
bl SetMailboxState
b _0802E56E
_0802E53C:
bl HasNoPKMNNews
lsls r0, 24
cmp r0, 0
bne _0802E54E
movs r0, 0x9
bl SetMailboxState
b _0802E56E
_0802E54E:
ldr r0, _0802E55C
ldr r0, [r0]
adds r0, 0x6C
movs r1, 0x1
bl sub_8012EA4
b _0802E56E
.align 2, 0
_0802E55C: .4byte gUnknown_203B304
_0802E560:
movs r0, 0x2
bl SetMailboxState
b _0802E56E
_0802E568:
movs r0, 0x3
bl SetMailboxState
_0802E56E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E4B0
thumb_func_start sub_802E578
sub_802E578:
push {r4,lr}
movs r0, 0x1
bl sub_802BDEC
cmp r0, 0x4
bhi _0802E606
lsls r0, 2
ldr r1, _0802E590
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E590: .4byte _0802E594
.align 2, 0
_0802E594:
.4byte _0802E606
.4byte _0802E606
.4byte _0802E5FC
.4byte _0802E5A8
.4byte _0802E5C0
_0802E5A8:
bl sub_802BE74
ldr r1, _0802E5BC
ldr r1, [r1]
strb r0, [r1, 0x8]
movs r0, 0x6
bl SetMailboxState
b _0802E606
.align 2, 0
_0802E5BC: .4byte gUnknown_203B304
_0802E5C0:
bl sub_802BE74
ldr r4, _0802E5F0
ldr r1, [r4]
strb r0, [r1, 0x8]
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
adds r2, r0, 0
ldrb r0, [r2]
cmp r0, 0x1
bne _0802E5F4
ldr r1, [r4]
ldrb r0, [r2, 0x5]
strb r0, [r1, 0x9]
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
movs r0, 0xB
bl SetMailboxState
b _0802E606
.align 2, 0
_0802E5F0: .4byte gUnknown_203B304
_0802E5F4:
movs r0, 0x7
bl SetMailboxState
b _0802E606
_0802E5FC:
bl sub_802BEDC
movs r0, 0x1
bl SetMailboxState
_0802E606:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E578
thumb_func_start sub_802E60C
sub_802E60C:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802BDEC
ldr r4, _0802E650
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802E63C
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802E63C
ldr r0, [r4]
str r1, [r0, 0x68]
_0802E63C:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x7
bhi _0802E732
lsls r0, 2
ldr r1, _0802E654
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E650: .4byte gUnknown_203B304
_0802E654: .4byte _0802E658
.align 2, 0
_0802E658:
.4byte _0802E72C
.4byte _0802E732
.4byte _0802E732
.4byte _0802E732
.4byte _0802E678
.4byte _0802E6BC
.4byte _0802E704
.4byte _0802E6B4
_0802E678:
ldr r0, _0802E6AC
bl PlaySound
ldr r4, _0802E6B0
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
bl sub_8096A78
bl sub_8096C80
bl sub_8096D24
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096040
bl sub_8096078
bl HasNoMailinMailbox
lsls r0, 24
cmp r0, 0
bne _0802E6E8
b _0802E6FC
.align 2, 0
_0802E6AC: .4byte 0x00000133
_0802E6B0: .4byte gUnknown_203B304
_0802E6B4:
movs r0, 0x7
bl SetMailboxState
b _0802E732
_0802E6BC:
ldr r0, _0802E6F4
bl PlaySound
ldr r4, _0802E6F8
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
ldrb r0, [r0, 0x5]
bl sub_8096DF8
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096040
bl sub_8096078
bl HasNoMailinMailbox
lsls r0, 24
cmp r0, 0
beq _0802E6FC
_0802E6E8:
bl sub_802BEDC
movs r0, 0x1
bl SetMailboxState
b _0802E732
.align 2, 0
_0802E6F4: .4byte 0x00000133
_0802E6F8: .4byte gUnknown_203B304
_0802E6FC:
movs r0, 0x5
bl SetMailboxState
b _0802E732
_0802E704:
movs r0, 0
bl PlayMenuSoundEffect
ldr r4, _0802E728
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
ldr r1, [r4]
ldrb r0, [r0, 0x5]
strb r0, [r1, 0x9]
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
movs r0, 0xB
bl SetMailboxState
b _0802E732
.align 2, 0
_0802E728: .4byte gUnknown_203B304
_0802E72C:
movs r0, 0x5
bl SetMailboxState
_0802E732:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E60C
.align 2,0

View File

@@ -194,7 +194,7 @@ _0803010C:
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
ldr r0, _0803013C
ldr r1, [r0]
movs r0, 0xB

View File

@@ -207,242 +207,4 @@ _0802ECAC: .4byte gUnknown_80D4990
_0802ECB0: .4byte gUnknown_80D4970
thumb_func_end sub_802EC10
thumb_func_start sub_802ECB4
sub_802ECB4:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0802ECF0
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802ECE0
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802ECE0
ldr r0, [r4]
str r1, [r0, 0x64]
_0802ECE0:
ldr r0, [sp]
cmp r0, 0x2
beq _0802ECFE
cmp r0, 0x2
bgt _0802ECF4
cmp r0, 0x1
beq _0802ED3C
b _0802ED42
.align 2, 0
_0802ECF0: .4byte gUnknown_203B308
_0802ECF4:
cmp r0, 0x3
beq _0802ED10
cmp r0, 0x5
beq _0802ED34
b _0802ED42
_0802ECFE:
bl sub_802C4A4
lsls r0, 24
cmp r0, 0
bne _0802ED22
movs r0, 0x4
bl SetPelipperBoardState
b _0802ED42
_0802ED10:
bl HasNoAcceptedJobs
lsls r0, 24
cmp r0, 0
bne _0802ED22
movs r0, 0x8
bl SetPelipperBoardState
b _0802ED42
_0802ED22:
ldr r0, _0802ED30
ldr r0, [r0]
adds r0, 0x6C
movs r1, 0x1
bl sub_8012EA4
b _0802ED42
.align 2, 0
_0802ED30: .4byte gUnknown_203B308
_0802ED34:
movs r0, 0x2
bl SetPelipperBoardState
b _0802ED42
_0802ED3C:
movs r0, 0x3
bl SetPelipperBoardState
_0802ED42:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802ECB4
thumb_func_start sub_802ED4C
sub_802ED4C:
push {lr}
movs r0, 0x1
bl sub_802C1E4
cmp r0, 0x4
bhi _0802EDB6
lsls r0, 2
ldr r1, _0802ED64
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802ED64: .4byte _0802ED68
.align 2, 0
_0802ED68:
.4byte _0802EDB6
.4byte _0802EDB6
.4byte _0802EDAC
.4byte _0802ED7C
.4byte _0802ED94
_0802ED7C:
bl sub_802C26C
ldr r1, _0802ED90
ldr r1, [r1]
strb r0, [r1, 0x8]
movs r0, 0x6
bl SetPelipperBoardState
b _0802EDB6
.align 2, 0
_0802ED90: .4byte gUnknown_203B308
_0802ED94:
bl sub_802C26C
ldr r1, _0802EDA8
ldr r1, [r1]
strb r0, [r1, 0x8]
movs r0, 0x7
bl SetPelipperBoardState
b _0802EDB6
.align 2, 0
_0802EDA8: .4byte gUnknown_203B308
_0802EDAC:
bl sub_802C2D4
movs r0, 0x1
bl SetPelipperBoardState
_0802EDB6:
pop {r0}
bx r0
thumb_func_end sub_802ED4C
thumb_func_start sub_802EDBC
sub_802EDBC:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802C1E4
ldr r4, _0802EDFC
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802EDEC
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802EDEC
ldr r0, [r4]
str r1, [r0, 0x68]
_0802EDEC:
ldr r0, [sp]
cmp r0, 0x4
beq _0802EE06
cmp r0, 0x4
bgt _0802EE00
cmp r0, 0x1
beq _0802EE90
b _0802EE96
.align 2, 0
_0802EDFC: .4byte gUnknown_203B308
_0802EE00:
cmp r0, 0x5
beq _0802EE88
b _0802EE96
_0802EE06:
ldr r0, _0802EE28
bl PlaySound
ldr r4, _0802EE2C
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096574
ldrb r1, [r0]
cmp r1, 0x3
beq _0802EE3C
cmp r1, 0x3
bgt _0802EE30
cmp r1, 0x2
beq _0802EE36
b _0802EE5E
.align 2, 0
_0802EE28: .4byte 0x00000133
_0802EE2C: .4byte gUnknown_203B308
_0802EE30:
cmp r1, 0x4
beq _0802EE42
b _0802EE5E
_0802EE36:
ldr r0, [r4]
movs r1, 0x1
b _0802EE46
_0802EE3C:
ldr r0, [r4]
movs r1, 0x2
b _0802EE46
_0802EE42:
ldr r0, [r4]
movs r1, 0x3
_0802EE46:
str r1, [r0, 0x4]
ldrb r0, [r0, 0x8]
bl sub_80965B8
bl sub_80965F4
bl sub_802C2D4
movs r0, 0x3
bl SetPelipperBoardState
b _0802EE96
_0802EE5E:
bl sub_8096A78
bl sub_8096C80
bl sub_8096D24
bl sub_802C4A4
lsls r0, 24
cmp r0, 0
beq _0802EE80
bl sub_802C2D4
movs r0, 0x1
bl SetPelipperBoardState
b _0802EE96
_0802EE80:
movs r0, 0x5
bl SetPelipperBoardState
b _0802EE96
_0802EE88:
movs r0, 0x7
bl SetPelipperBoardState
b _0802EE96
_0802EE90:
movs r0, 0x5
bl SetPelipperBoardState
_0802EE96:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802EDBC
.align 2,0

View File

@@ -1352,7 +1352,7 @@ sub_808FF20:
mov r8, r2
adds r0, r5, 0x2
movs r2, 0
bl sub_808D9AC
bl PrintColoredPokeNameToBuffer
ldrh r0, [r6, 0x8]
strh r0, [r5]
movs r1, 0x16

View File

@@ -446,7 +446,7 @@ _0802BFE8:
bl GetPlayerPokemonStruct
adds r1, r0, 0
mov r0, r9
bl sub_808DA34
bl PrintPokeNameToBuffer
ldrb r0, [r5, 0x5]
bl GetPokemonMailHeadline
adds r1, r0, 0

View File

@@ -13,7 +13,7 @@ struct DungeonEntityData
/* 0x0 */ u16 flags;
/* 0x2 */ s16 entityID; // Pokémon species or item ID.
// Everything from here on only applies to Pokémon.
/* 0x4 */ u16 transformSpecies; // Shows a different Pokémon when using Transform.
/* 0x4 */ s16 transformSpecies; // Shows a different Pokémon when using Transform.
/* 0x6 */ bool8 isEnemy;
/* 0x7 */ bool8 isLeader;
/* 0x8 */ u8 shopkeeperMode;
@@ -261,16 +261,19 @@ struct DungeonEntity
// The sprite index to display, among the Pokémon's possible sprites.
/* 0x48 */ u16 spriteIndexForEntity;
/* 0x4A */ u16 spriteIndexForEntity2;
u8 unk4C[0x50 - 0x4C];
// Some kind of base sprite index depending on which way the Pokémon is facing.
// and which animation is playing (e.g., idle, moving).
// Compared to 0x48, 0x50 and 0x54 are much larger and could be global indexes among all sprites in the game.
/* 0x50 */ u16 spriteBaseForDirection;
u8 fill52[0x54 - 0x52];
/* 0x54 */ u16 spriteGlobalIndex;
u8 fill56[0x6C - 0x56];
u8 fill56[0x6A - 0x56];
/* 0x6A */ u8 unk6A;
/* 0x6A */ u8 unk6B;
/* 0x6C */ u8 facingDir;
/* 0x6D */ u8 facingDir2; // Duplicate of 0x6C?
u8 fill6D[0x70 - 0x6D];
u8 fill6D[0x70 - 0x6E];
/* 0x70 */ struct DungeonEntityData *entityData;
};

View File

@@ -9,7 +9,7 @@ struct unkStruct_203B304
{
// size: 0xB6 << 1
u32 state;
u32 unk4;
u32 fallbackState;
u8 unk8;
u8 mailIndex;
u8 fillA[0xC - 0xA];

View File

@@ -195,6 +195,10 @@ void InitializeRecruitedPokemon(void);
void CopySpeciesNametoBuffer(u8 * buffer, s16 index);
void CopyYellowSpeciesNametoBuffer(u8 *buffer, s16 index);
void CopyCyanSpeciesNametoBuffer(u8 *buffer, s16 index);
void PrintColoredPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum);
void PeekPokemonItem(s16 index_, struct HeldItem* item);
void GivePokemonItem(s16 index_, struct HeldItem* item);
bool8 IsPokemonRenamed(struct PokemonStruct* pokemon);
u8 *GetCategoryString(s16 index);
u8 GetPokemonSize(s16 index);

View File

@@ -196,6 +196,8 @@ SECTIONS {
asm/code_8057144.o(.text);
src/code_8057824.o(.text);
asm/code_8057824.o(.text);
src/code_806CD90.o(.text);
asm/code_806CD90.o(.text);
asm/code_807001C.o(.text);
src/dungeon_capabilities.o(.text);
asm/code_8070BC0.o(.text);

View File

@@ -35,7 +35,7 @@ extern void sub_8094060(void *, struct PokemonMove *);
extern void PlaySound(u32);
extern void sub_80141B4(u32 *, u32, u32 ,u32);
extern void sub_8014248(u32 *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon);
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
extern s32 sub_80144A4(s32 *);
extern u32 sub_801E8C0(void);
extern void sub_801E93C(void);
@@ -163,7 +163,7 @@ void sub_801B178(void)
for(monIndex = 0; monIndex < gUnknown_203B22C->monsAbleToLearnMove; monIndex++)
{
bufferPtr = gAvailablePokemonNames + (0x50 * monIndex);
sub_808DA34(bufferPtr, &gRecruitedPokemonRef->pokemon[gUnknown_203B22C->unk50[monIndex]]);
PrintPokeNameToBuffer(bufferPtr, &gRecruitedPokemonRef->pokemon[gUnknown_203B22C->unk50[monIndex]]);
gUnknown_203B22C->menuItems[monIndex].text = bufferPtr;
gUnknown_203B22C->menuItems[monIndex].menuAction = monIndex + 4;
}
@@ -188,7 +188,7 @@ void sub_801B200(void)
default:
gUnknown_203B22C->chosenPokemon = gUnknown_203B22C->unk50[temp - 4];
gUnknown_203B22C->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B22C->chosenPokemon];
sub_808DA34(gUnknown_202E218, gUnknown_203B22C->pokeStruct);
PrintPokeNameToBuffer(gUnknown_202E218, gUnknown_203B22C->pokeStruct);
sub_809401C(gUnknown_203B22C->moves, gUnknown_203B22C->pokeStruct->moves);
for(moveIndex = 0; moveIndex < MAX_MON_MOVES * 2; moveIndex++)
{

View File

@@ -1,8 +1,11 @@
#include "global.h"
#include "constants/colors.h"
#include "text.h"
#include "input.h"
#include "memory.h"
#include "item.h"
#include "memory.h"
#include "menu.h"
#include "pokemon.h"
#include "team_inventory.h"
struct subStruct_203B240
@@ -30,9 +33,54 @@ struct unkStruct_203B230
};
extern struct unkStruct_203B230 *gUnknown_203B230;
struct unkStruct_203B234
{
// size: 0x154
u32 unk0;
u32 state;
u32 unk8;
u8 unkC;
u8 fillD[0x10 - 0xD];
struct ItemSlot unk10;
struct unkStruct_8090F58 unk14;
struct ItemSlot unk20;
u32 unk24;
u32 unk28;
u8 fill2C[0x78 - 0x2C];
u32 unk78;
u8 fill7C[0xC8 - 0x7C];
u32 unkC8;
struct MenuItem unkCC[5];
struct UnkTextStruct2 unkF4[4];
};
extern struct unkStruct_203B234 *gUnknown_203B234;
extern u8 gUnknown_202DE58[];
extern u8 gAvailablePokemonNames[0x58];
extern u8 gUnknown_80DBA4C[];
extern u8 gUnknown_80DBB9C[];
extern u8 gUnknown_80DBD24[];
extern u8 gUnknown_80DBCE8[];
extern u8 gUnknown_80DBCC4[];
extern u8 gUnknown_80DBC98[];
extern u8 gUnknown_80DBC60[];
extern u8 gUnknown_80DBC28[];
extern u8 gUnknown_80DBB9C[];
extern u8 gUnknown_80DBAA0[];
extern u8 gUnknown_80DBAD0[];
extern u8 gUnknown_80DBB08[];
extern u8 gUnknown_80DBB38[];
extern u8 gKangaskhanTrashToolboxItem[];
extern u8 gKangaskhanTrashReceivedItem[];
extern struct UnkTextStruct2 gUnknown_80DBA58;
extern struct UnkTextStruct2 gUnknown_80DBA88;
extern struct UnkTextStruct2 gUnknown_80DBA70;
extern void sub_801BB5C(void);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void sub_801B748(u32);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void sub_80073B8(u32);
@@ -41,11 +89,32 @@ extern void PlayMenuSoundEffect(u32);
extern void sub_8013F84(void);
extern u32 sub_8012A64(u32 *, u32);
extern s32 sub_80913E0(struct ItemSlot *, u32, struct subStruct_203B240 **);
extern void sub_80141B4(u8 *, u32, u32 *, u32);
extern void sub_8012EA4(u32 *, u32);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
extern void sub_801BB20(void);
extern void sub_801A8D0(u32);
extern void sub_801A9E0(void);
extern void sub_801BC24(void);
extern void sub_801A5D8(u32, u32, u32, u32);
extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
extern void sub_801317C(u32 *);
extern void sub_80140B4(struct UnkTextStruct2 *);
extern void sub_801B46C(u32);
extern void ResetSprites(u32);
extern void sub_801BC64(void);
extern void sub_801BC94(void);
extern void sub_801BCCC(void);
extern void sub_801BD80(void);
extern void sub_801BEAC(void);
extern void sub_801BE30(void);
extern void sub_801BEC8(void);
extern void sub_801B760(void);
extern void sub_801B874(void);
extern u32 sub_8001784(u32, u32, u32);
extern void sub_800199C(u32, u32, u32, u32);
extern void PlaySound(u32);
extern s32 sub_808D544(u32);
void sub_801B51C();
void sub_801B590();
@@ -181,3 +250,271 @@ void sub_801B590(void)
break;
}
}
u32 sub_801B60C(u32 r0, u8 itemIndex, u8 numItems)
{
gUnknown_203B234 = MemoryAlloc(0x154, 8);
gUnknown_203B234->unkC8 = 0;
gUnknown_203B234->unk0 = r0;
gUnknown_203B234->unk10.itemIndex = itemIndex;
if(IsThrowableItem(gUnknown_203B234->unk10.itemIndex))
{
gUnknown_203B234->unk10.numItems = numItems;
gUnknown_203B234->unkC = numItems;
}
else
{
gUnknown_203B234->unk10.numItems = 0;
gUnknown_203B234->unkC = 1;
}
gUnknown_203B234->unk10.itemFlags = ITEM_FLAG_EXISTS;
gUnknown_203B234->unk14.unk0 = 0;
gUnknown_203B234->unk14.unk4 = 0;
gUnknown_203B234->unk14.unk8 = 1;
PrintColoredPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct(), COLOR_YELLOW);
sub_8090E14(gUnknown_202DE58, &gUnknown_203B234->unk10, &gUnknown_203B234->unk14);
sub_801B748(0);
return 1;
}
u32 sub_801B6AC(void)
{
switch(gUnknown_203B234->state)
{
case 16:
return 3;
case 6:
sub_801BC64();
break;
case 7:
sub_801BC94();
break;
case 8:
case 9:
sub_801BCCC();
break;
case 10:
sub_801BD80();
break;
case 11:
sub_801BEAC();
break;
case 12:
sub_801BE30();
break;
case 13:
case 14:
case 15:
default:
sub_801BEC8();
break;
}
return 0;
}
void sub_801B72C(void)
{
if(gUnknown_203B234 != NULL)
{
MemoryFree(gUnknown_203B234);
gUnknown_203B234 = NULL;
}
}
void sub_801B748(u32 newState)
{
gUnknown_203B234->state = newState;
sub_801B760();
sub_801B874();
}
void sub_801B760(void)
{
s32 iVar4;
switch(gUnknown_203B234->state)
{
case 1:
case 6:
case 7:
case 8:
case 9:
case 11:
case 13:
case 14:
case 15:
sub_8006518(gUnknown_203B234->unkF4);
for(iVar4 = 0; iVar4 < 4; iVar4++)
{
gUnknown_203B234->unkF4[iVar4] = gUnknown_80DBA58;
}
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B234->unkF4, 1, 1);
break;
case 10:
sub_8006518(gUnknown_203B234->unkF4);
sub_801BB5C();
gUnknown_203B234->unkF4[2] = gUnknown_80DBA70;
sub_8012CAC(&gUnknown_203B234->unkF4[2], gUnknown_203B234->unkCC);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B234->unkF4, 1, 1);
break;
case 12:
sub_8006518(gUnknown_203B234->unkF4);
gUnknown_203B234->unkF4[1] = gUnknown_80DBA88;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B234->unkF4, 1, 1);
break;
}
}
void sub_801B874(void)
{
switch(gUnknown_203B234->state)
{
case 0:
if (gUnknown_203B234->unk10.itemIndex == ITEM_ID_WEAVILE_FIG) {
gUnknown_203B234->unk8 = 0x10;
if(sub_8001784(0,0x47,1) != 0)
{
AddToTeamMoney(1000);
sub_801B748(4);
}
else
{
sub_800199C(0, 0x47, 1, 1);
sub_801B748(3);
}
}
else if (gUnknown_203B234->unk10.itemIndex == ITEM_ID_MIME_JR_FIG)
{
gUnknown_203B234->unk8 = 0x10;
if(sub_8001784(0, 0x47, 0) != 0)
{
AddToTeamMoney(1000);
sub_801B748(4);
}
else
{
sub_800199C(0, 0x47, 0, 1);
sub_801B748(3);
}
}
else
{
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
{
if(IsNotMoneyOrUsedTMItem(gUnknown_203B234->unk10.itemIndex))
{
if((gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.itemIndex] + gUnknown_203B234->unkC) > 0x3e7)
{
store:
gUnknown_203B234->unk8 = 6;
}
else
{
gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.itemIndex] += gUnknown_203B234->unkC;
PlaySound(0xCB);
gUnknown_203B234->unk8 = 5;
}
}
else
{
goto store;
}
}
else
{
AddItemToInventory(&gUnknown_203B234->unk10);
FillInventoryGaps();
PlaySound(0xCB);
gUnknown_203B234->unk8 = 0x10;
}
if(gUnknown_203B234->unk0 == 1)
sub_801B748(2);
else
sub_801B748(1);
}
break;
case 1:
if (sub_808D544(0) < 2) {
sub_80141B4(gUnknown_80DBAA0,0,0,0x101);
}
else {
sub_80141B4(gUnknown_80DBAD0,0,0,0x101);
}
break;
case 2:
sub_80141B4(gUnknown_80DBB08,0,0,0x101);
break;
case 3:
PlaySound(0xd4);
sub_80141B4(gUnknown_80DBB38,0,0,0x101);
break;
case 4:
sub_80141B4(gUnknown_80DBB9C,0,0,0x101);
break;
case 5:
gUnknown_203B234->unk8 = 0x10;
sub_80141B4(gUnknown_80DBC28,0,0,0x101);
break;
case 6:
sub_801BB20();
sub_8014248(gUnknown_80DBC60,0,4,gUnknown_203B234->unkCC,
0,4,0,0,0);
break;
case 7:
sub_801BC24();
sub_8014248(gUnknown_80DBC98,0,3,gUnknown_203B234->unkCC,0,4,0,0,0);
break;
case 8:
sub_801A5D8(1,3,0,10);
break;
case 9:
sub_801A8D0(1);
break;
case 10:
sub_801A9E0();
sub_8012D60(&gUnknown_203B234->unk28,gUnknown_203B234->unkCC,0,0,gUnknown_203B234->unkC8,2);
break;
case 0xb:
sub_801B3C0(&gUnknown_203B234->unk20);
break;
case 0xc:
sub_801A9E0();
sub_8012EA4(&gUnknown_203B234->unk28,0);
sub_801BC24();
sub_8012D60(&gUnknown_203B234->unk78,gUnknown_203B234->unkCC,0,0,3,1);
break;
case 0xd:
gUnknown_203B234->unk8 = 0x10;
sub_80141B4(gUnknown_80DBCC4,0,0,0x101);
break;
case 0xe:
gUnknown_203B234->unk8 = 0x10;
sub_80141B4(gUnknown_80DBCE8,0,0,0x101);
break;
case 0xf:
gUnknown_203B234->unk8 = 0x10;
sub_80141B4(gUnknown_80DBD24,0,0,0x101);
break;
case 0x10:
break;
}
}
void sub_801BB20(void)
{
struct unkStruct_203B234 *preload;
u8 *nullText;
preload = gUnknown_203B234;
nullText = NULL;
preload->unkCC[0].text = gKangaskhanTrashToolboxItem;
preload->unkCC[0].menuAction = 4;
preload->unkCC[1].text = gKangaskhanTrashReceivedItem;
preload->unkCC[1].menuAction = 5;
preload->unkCC[2].text = nullText;
preload->unkCC[2].menuAction = -1;
}

View File

@@ -1,6 +1,7 @@
#include "global.h"
#include "dungeon_entity.h"
#include "dungeon_global_data.h"
#include "constants/direction.h"
struct unkStruct_80420E8
{
@@ -147,7 +148,7 @@ void sub_8041BE8(struct DungeonEntity *r0)
void sub_8041BF8(struct DungeonEntity *r0)
{
sub_806CDD4(r0, 0xA, 8);
sub_806CDD4(r0, 0xA, NUM_DIRECTIONS);
}
void sub_8041C08(struct DungeonEntity *r0)

View File

@@ -6,7 +6,7 @@
#include "pokemon.h"
#include "constants/direction.h"
extern struct DungeonEntity *sub_8085480(void);
extern struct DungeonEntity *xxx_call_GetLeaderEntity(void);
extern struct DungeonEntity *sub_8085680(u32);
extern char gUnknown_202E038[0x50];
extern struct DungeonGlobalData *gDungeonGlobalData;
@@ -90,8 +90,7 @@ extern void sub_806CE68(struct DungeonEntity *, u32);
extern void sub_804539C(struct DungeonEntity *, u32, u32);
extern void sub_803E46C(u32);
extern void sub_8042B0C(struct DungeonEntity *);
extern void sub_8085918(struct DungeonEntity *, u32);
extern void sub_806CE68(struct DungeonEntity *r0, u32);
extern void SetFacingDirection(struct DungeonEntity *, u32);
extern void sub_8052910(u32 *);
extern void sub_803E708(u32, u32);
extern u8 EntityExists(struct DungeonEntity *);
@@ -185,7 +184,7 @@ void sub_808BC20(struct DungeonEntity * param_1)
PlaySoundEffect(0x298);
for(uVar1 = 0; uVar1 < 0x19; uVar1++){
sub_8085918(param_1,uVar1 & 7);
SetFacingDirection(param_1,uVar1 & DIRECTION_MASK);
sub_803E708(3,0x46);
}
param_1->entityData->unk15E = 1;
@@ -278,24 +277,24 @@ u8 JirachiFriendAreaSearch(void)
void sub_808BDEC(void)
{
struct DungeonEntity * iVar2;
struct DungeonEntity * uVar3;
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * LugiaEntity;
iVar2 = sub_8085480();
uVar3 = sub_8085680(0x1b);
LeaderEntity = xxx_call_GetLeaderEntity();
LugiaEntity = sub_8085680(0x1b);
sub_8083F14();
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
if (HasRecruitedMon(SPECIES_LUGIA)) {
sub_8083E88(0x23);
sub_8068FE0(uVar3,0x21c,0);
sub_8068FE0(LugiaEntity,0x21c,0);
}
else {
gDungeonGlobalData->unk7 = 1;
sub_8085918(uVar3,0);
SetFacingDirection(LugiaEntity, DIRECTION_SOUTH);
}
sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_LUGIA);
}
@@ -309,11 +308,11 @@ void sub_808BE70(u8 param_1,u8 param_2)
void LugiaPreFightDialogue(void)
{
struct DungeonEntity * iVar2;
struct DungeonEntity * uVar3;
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * LugiaEntity;
iVar2 = sub_8085480();
uVar3 = sub_8085680(0x1b);
LeaderEntity = xxx_call_GetLeaderEntity();
LugiaEntity = sub_8085680(0x1b);
if (HasRecruitedMon(SPECIES_LUGIA)) {
sub_8086448();
sub_80866C4(&gUnknown_8106068);
@@ -330,21 +329,21 @@ void LugiaPreFightDialogue(void)
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8105F74);
PlaySoundEffect(0x1f8);
sub_80861D4(uVar3,0xd,0);
sub_80861D4(LugiaEntity,0xd,0);
sub_803E708(0x2b,0x46);
sub_80861B8(uVar3,0,0);
sub_80861B8(LugiaEntity,0,0);
sub_8052910(&gUnknown_8105FA0);
sub_808BFA0();
sub_8052910(&gUnknown_8105FD8);
sub_808C02C();
sub_8085C54(0xffffff06,0xffffff06,0xffffff06,1,0);
sub_8083F14();
sub_80861D4(uVar3,7,0);
sub_80861D4(LugiaEntity,7,0);
sub_8052910(&gUnknown_8106024);
sub_808BFA0();
SetupBossFightHP(uVar3,800,0x20);
SetupBossFightHP(LugiaEntity,800,0x20);
sub_8083E88(0x23);
sub_80858AC(&iVar2->posPixelX,0x10);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
}
@@ -415,25 +414,25 @@ void sub_808C0CC(void)
void sub_808C10C(void)
{
struct DungeonEntity * iVar1;
struct DungeonEntity * uVar2;
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * KyogreEntity;
u32 uVar3;
s32 iVar2;
iVar1 = sub_8085480();
uVar2 = sub_8085680(0x1c);
LeaderEntity = xxx_call_GetLeaderEntity();
KyogreEntity = sub_8085680(0x1c);
sub_8083F14();
sub_80854D4();
sub_8085930(4);
if (HasRecruitedMon(SPECIES_KYOGRE)) {
sub_8068FE0(uVar2,0x21c,0);
sub_8068FE0(KyogreEntity,0x21c,0);
}
else {
gDungeonGlobalData->unk7 = 1;
sub_8085918(uVar2,0);
SetFacingDirection(KyogreEntity, DIRECTION_SOUTH);
}
sub_8085860(iVar1->posWorldX,iVar1->posWorldY);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
uVar3 = sub_803F994();
iVar2 = sub_803F9B0();
sub_803F878(uVar3,iVar2 + -0x1000);
@@ -452,15 +451,15 @@ void sub_808C1A4(u8 param_1,u8 param_2)
void KyogrePreFightDialogue(void)
{
struct DungeonEntity *iVar2;
struct DungeonEntity *uVar3;
struct DungeonEntity *LeaderEntity;
struct DungeonEntity *KyogreEntity;
iVar2 = sub_8085480();
uVar3 = sub_8085680(0x1c);
LeaderEntity = xxx_call_GetLeaderEntity();
KyogreEntity = sub_8085680(0x1c);
sub_8083F14();
if (HasRecruitedMon(SPECIES_KYOGRE)) {
sub_8083EA8(0x23,0x3c);
SpriteLookAroundEffect(iVar2);
SpriteLookAroundEffect(LeaderEntity);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_81062A8);
sub_803E708(10,0x46);
@@ -492,9 +491,9 @@ void KyogrePreFightDialogue(void)
// power!
sub_8052910(&gUnknown_810627C);
sub_803E708(10,0x46);
SetupBossFightHP(uVar3,600,0xb);
SetupBossFightHP(KyogreEntity,600,0xb);
sub_8083E88(0x23);
sub_80858AC(&iVar2->posPixelX,0x10);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
}
@@ -537,9 +536,9 @@ void sub_808C360(void)
void sub_808C3A0(void)
{
struct DungeonEntity * iVar2;
struct DungeonEntity * LeaderEntity;
iVar2 = sub_8085480();
LeaderEntity = xxx_call_GetLeaderEntity();
sub_8083F14();
sub_80854D4();
sub_8085930(4);
@@ -551,7 +550,7 @@ void sub_808C3A0(void)
gDungeonGlobalData->unk7 = 1;
sub_808563C(sub_808C5A0);
}
sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_DEOXYS_NORMAL);
}
@@ -565,9 +564,9 @@ void sub_808C414(u8 param_1,u8 param_2)
void DeoxysPreFightDialogue(void)
{
struct DungeonEntity * iVar2;
struct DungeonEntity * LeaderEntity;
iVar2 = sub_8085480();
LeaderEntity = xxx_call_GetLeaderEntity();
sub_8086448();
if (HasRecruitedMon(SPECIES_DEOXYS_NORMAL)) {
// There appears to be no one here.
@@ -585,7 +584,7 @@ void DeoxysPreFightDialogue(void)
sub_8052910(&gUnknown_8106390);
sub_803E708(10,0x46);
sub_808563C(sub_808C5AC);
sub_80858AC(&iVar2->posPixelX,0x10);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
}
@@ -629,29 +628,29 @@ void sub_808C590(struct DungeonEntity *r0)
void sub_808C5A0(struct DungeonEntity *r0)
{
sub_8085918(r0, 0);
SetFacingDirection(r0, DIRECTION_SOUTH);
}
void sub_808C5AC(struct DungeonEntity *r0)
{
SetupBossFightHP(r0, 0x3b6, 0x20);
SetupBossFightHP(r0, 950, 0x20);
}
void sub_808C5C0(void)
{
struct DungeonEntity * iVar1;
struct DungeonEntity * uVar2;
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * CelebiEntity;
u32 uVar3;
s32 iVar2;
iVar1 = sub_8085480();
uVar2 = sub_8085680(0x1e);
LeaderEntity = xxx_call_GetLeaderEntity();
CelebiEntity = sub_8085680(0x1e);
sub_8083E88(0x7f);
sub_80854D4();
sub_8085930(4);
sub_8085918(uVar2,0);
sub_8085860(iVar1->posWorldX,iVar1->posWorldY);
SetFacingDirection(CelebiEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
uVar3 = sub_803F994();
iVar2 = sub_803F9B0();
sub_803F878(uVar3,iVar2 + 0xfffff000);
@@ -666,26 +665,26 @@ void nullsub_100(u32 r0, u32 r1, u32 r2)
#ifdef NONMATCHING
void CelebiJoinDialogue(void)
{
struct DungeonEntity *uVar2;
struct DungeonEntity *LeaderEntity;
s32 state;
s32 menuChoice;
struct DungeonEntity *local_1c;
struct DungeonEntity *CelebiEntity;
uVar2 = sub_8085480();
local_1c = sub_8085680(0x1e);
if ((HasRecruitedMon(SPECIES_CELEBI)) || (sub_806FD18(local_1c) == '\0'))
LeaderEntity = xxx_call_GetLeaderEntity();
CelebiEntity = sub_8085680(0x1e);
if ((HasRecruitedMon(SPECIES_CELEBI)) || (sub_806FD18(CelebiEntity) == '\0'))
{
sub_8068FE0(local_1c,0x21c,0);
SpriteLookAroundEffect(uVar2);
SpriteLookAroundEffect(LeaderEntity);
sub_803E708(10,0x46);
// .........
sub_8052910(&gUnknown_810663C);
}
else
{
SpriteLookAroundEffect(uVar2);
SpriteLookAroundEffect(LeaderEntity);
sub_803E708(10,0x46);
sub_80862BC(uVar2);
sub_80862BC(LeaderEntity);
sub_803E708(10,0x46);
// Oh? There's someone there.
sub_8052910(&gUnknown_81063D0);
@@ -697,12 +696,12 @@ void CelebiJoinDialogue(void)
// The Time-Traveling Pokemon {ARG_POKEMON_2} (Celebi)!
sub_8052910(&gUnknown_8106400);
PlaySoundEffect(0x1c7);
sub_806CDD4(local_1c,10,0);
sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH);
sub_803E708(0x14,0x46);
sub_806CE68(local_1c,0);
sub_806CE68(CelebiEntity, DIRECTION_SOUTH);
sub_803E708(4,0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(local_1c,10,0);
sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH);
sub_8052910(&gUnknown_810643C);
sub_803E708(10,0x46);
state = 0;
@@ -725,7 +724,7 @@ void CelebiJoinDialogue(void)
}
sub_8083E88(0x7f);
PlaySoundEffect(0x1c7);
sub_80861D4(local_1c,0xd,0);
sub_80861D4(CelebiEntity,0xd,0);
sub_803E708(0x37,0x46);
PlaySoundEffect(0x1d5);
sub_803E708(0x1a,0x46);
@@ -733,12 +732,12 @@ void CelebiJoinDialogue(void)
sub_803E708(0x1c,0x46);
sub_8052910(&gUnknown_8106468);
sub_803E708(10,0x46);
sub_806FDF4(uVar2,local_1c,&local_1c);
sub_806FDF4(LeaderEntity,CelebiEntity,&CelebiEntity);
sub_8083E88(0x7f);
sub_8052910(&gUnknown_810648C);
sub_803E708(10,0x46);
PlaySoundEffect(0x1c7);
sub_80861D4(local_1c,0xd,0);
sub_80861D4(CelebiEntity,0xd,0);
sub_803E708(0x37,0x46);
PlaySoundEffect(0x1d5);
sub_803E708(0x1a,0x46);
@@ -765,13 +764,13 @@ void CelebiJoinDialogue(void)
{
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8106500);
sub_80861F8(0x3e,local_1c,1);
sub_80861F8(0x3e,CelebiEntity,1);
sub_803E708(0x18,0x46);
sub_80861F8(0x3e,local_1c,1);
sub_80861F8(0x3e,CelebiEntity,1);
sub_803E708(0xe,0x46);
sub_8052910(&gUnknown_8106534);
sub_803E708(10,0x46);
sub_808C8E0(local_1c);
sub_808C8E0(CelebiEntity);
sub_8052910(&gUnknown_8106560);
sub_803E708(10,0x46);
state = 2;
@@ -793,7 +792,7 @@ void CelebiJoinDialogue(void)
"\tmov r7, r8\n"
"\tpush {r7}\n"
"\tsub sp, 0x4\n"
"\tbl sub_8085480\n"
"\tbl xxx_call_GetLeaderEntity\n"
"\tadds r7, r0, 0\n"
"\tmovs r0, 0x1E\n"
"\tbl sub_8085680\n"
@@ -1075,7 +1074,7 @@ void sub_808C8E0(struct DungeonEntity *param_1)
s32 iVar1;
PlaySoundEffect(0x1a5);
sub_806CDD4(param_1, 0, 0);
sub_806CDD4(param_1, 0, DIRECTION_SOUTH);
for(iVar1 = 0; iVar1 < 16; iVar1++){
param_1->entityData->unk174 = iVar1 * 256;
sub_803E46C(0x46);
@@ -1100,7 +1099,7 @@ void sub_808C948(struct DungeonEntity *param_1, u8 param_2)
if (param_2 == 0x37) {
flag = FALSE;
for(iVar3 = 0; iVar3 < 0x10; iVar3++){
for(iVar3 = 0; iVar3 < DUNGEON_MAX_WILD_POKEMON; iVar3++){
iVar2 = gDungeonGlobalData->wildPokemon[iVar3];
if ((iVar2 != param_1) && (EntityExists(iVar2) != 0)) {
flag = TRUE;
@@ -1124,38 +1123,38 @@ void sub_808C998(void)
void sub_808C9B0(struct DungeonEntity *param_1)
{
param_1->entityData->facingDir = DIRECTION_NORTH;
sub_806CE68(param_1, 4);
sub_806CE68(param_1, DIRECTION_NORTH);
}
void sub_808C9C4(void)
{
struct DungeonEntity *temp;
struct DungeonEntity *temp_2;
struct DungeonEntity *LeaderEntity;
struct DungeonEntity *MedichamEntity;
temp = sub_8085480();
temp_2 = sub_8085680(7);
LeaderEntity = xxx_call_GetLeaderEntity();
MedichamEntity = sub_8085680(7);
sub_8083E88(0x72);
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_8085918(temp_2, 0);
sub_8085860(temp->posWorldX, temp->posWorldY - 3);
SetFacingDirection(MedichamEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MEDICHAM);
}
// Medicham Rescue Dialogue?
void MedichamRescueDialogue(void)
{
struct DungeonEntity *temp;
struct DungeonEntity *MedichamEntity;
s32 counter;
temp = sub_8085680(7);
SpriteLookAroundEffect(temp);
MedichamEntity = sub_8085680(7);
SpriteLookAroundEffect(MedichamEntity);
sub_803E708(0xA, 0x46);
// Oh my I can't seem to find a way out...
sub_8052910(&gUnknown_8106778);
sub_803E708(0xA, 0x46);
sub_80869E4(temp, 4, 2, 4);
sub_80869E4(MedichamEntity, 4, 2, 4);
sub_803E708(0xA, 0x46);
// What am I to do...?
sub_8052910(&gUnknown_81067BC);
@@ -1163,18 +1162,18 @@ void MedichamRescueDialogue(void)
sub_8086448();
sub_8086598();
sub_803E708(0x20, 0x46);
sub_80862BC(temp);
sub_80862BC(MedichamEntity);
sub_803E708(0x20, 0x46);
sub_80869E4(temp, 4, 2, 0);
sub_80869E4(MedichamEntity, 4, 2, 0);
sub_8052910(&gUnknown_81067E0);
sub_803E708(0xA, 0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_806CDD4(MedichamEntity, 0xA, DIRECTION_SOUTH);
sub_803E708(0x14, 0x46);
sub_806CE68(temp, 0);
sub_806CE68(MedichamEntity, DIRECTION_SOUTH);
sub_803E708(0x4, 0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_806CDD4(MedichamEntity, 0xA, DIRECTION_SOUTH);
sub_803E708(0x14, 0x46);
// Yes Yes
// I am so lucky
@@ -1182,32 +1181,32 @@ void MedichamRescueDialogue(void)
// There appears to be no one here
sub_8052910(&gUnknown_8106834);
sub_803E708(0xA, 0x46);
sub_806CDD4(temp, 0, 0);
sub_806CDD4(MedichamEntity, 0, DIRECTION_SOUTH);
for(counter = 0x17; counter >= 0; counter--)
{
sub_804539C(temp, 0, 0x80 << 1);
sub_804539C(MedichamEntity, 0, 0x80 << 1);
sub_803E46C(0x46);
}
sub_806CE68(temp, 0);
sub_806CE68(MedichamEntity, DIRECTION_SOUTH);
sub_803E708(0x20, 0x46);
sub_8042B0C(temp);
sub_8068FE0(temp, 0x21C, 0);
sub_8042B0C(MedichamEntity);
sub_8068FE0(MedichamEntity, 0x21C, 0);
gDungeonGlobalData->unk4 = 1;
gDungeonGlobalData->unk11 = 4;
}
void sub_808CB5C(void)
{
struct DungeonEntity *temp;
struct DungeonEntity *temp_2;
struct DungeonEntity *LeaderEntity;
struct DungeonEntity *MedichamEntity;
temp = sub_8085480();
temp_2 = sub_8085680(7);
LeaderEntity = xxx_call_GetLeaderEntity();
MedichamEntity = sub_8085680(7);
sub_8083E88(0x72);
sub_80854D4();
sub_8085930(4);
sub_8068FE0(temp_2, 0x21C, 0);
sub_8085860(temp->posWorldX, temp->posWorldY);
sub_8068FE0(MedichamEntity, 0x21C, 0);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MEDICHAM);
}
@@ -1217,34 +1216,34 @@ void DummyFightDialogue(void)
void sub_808CBB0(void)
{
struct DungeonEntity *temp;
struct DungeonEntity *temp_2;
struct DungeonEntity *LeaderEntity;
struct DungeonEntity *SmeargleEntity;
temp = sub_8085480();
temp_2 = sub_8085680(0x1F);
LeaderEntity = xxx_call_GetLeaderEntity();
SmeargleEntity = sub_8085680(0x1F);
sub_8083E88(0x72);
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_8085918(temp_2, 0);
sub_8085860(temp->posWorldX, temp->posWorldY - 3);
SetFacingDirection(SmeargleEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SMEARGLE);
}
// Smeargle Rescue dialogue scene
void SmeargleRescueDialogue(void)
{
struct DungeonEntity *temp;
struct DungeonEntity *SmeargleEntity;
s32 counter;
temp = sub_8085680(0x1F);
SpriteLookAroundEffect(temp);
SmeargleEntity = sub_8085680(0x1F);
SpriteLookAroundEffect(SmeargleEntity);
sub_803E708(0xA, 0x46);
// Ohhh...
// I've lost my bearings
sub_8052910(&gUnknown_810688C);
sub_803E708(0xA, 0x46);
sub_80869E4(temp, 4, 2, 4);
sub_80869E4(SmeargleEntity, 4, 2, 4);
sub_803E708(0xA, 0x46);
// I can't get out...
// I'm hungry...
@@ -1254,34 +1253,34 @@ void SmeargleRescueDialogue(void)
sub_8086448();
sub_8086598();
sub_803E708(0x20, 0x46);
sub_80862BC(temp);
sub_80862BC(SmeargleEntity);
sub_803E708(0x20, 0x46);
sub_80869E4(temp, 4, 2, 0);
sub_80869E4(SmeargleEntity, 4, 2, 0);
// Oh! You are?
sub_8052910(&gUnknown_8106918);
sub_803E708(0xA, 0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_806CDD4(SmeargleEntity, 0xA, DIRECTION_SOUTH);
sub_803E708(0x14, 0x46);
sub_806CE68(temp, 0);
sub_806CE68(SmeargleEntity, DIRECTION_SOUTH);
sub_803E708(0x4, 0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_806CDD4(SmeargleEntity, 0xA, DIRECTION_SOUTH);
sub_803E708(0x14, 0x46);
// Did you maybe come to rescue me?
// Am I glad to see you
sub_8052910(&gUnknown_8106934);
sub_803E708(0xA, 0x46);
sub_806CDD4(temp, 0, 0);
sub_806CDD4(SmeargleEntity, 0, DIRECTION_SOUTH);
for(counter = 0x17; counter >= 0; counter--)
{
sub_804539C(temp, 0, 0x80 << 1);
sub_804539C(SmeargleEntity, 0, 0x80 << 1);
sub_803E46C(0x46);
}
sub_806CE68(temp, 0);
sub_806CE68(SmeargleEntity, DIRECTION_SOUTH);
sub_803E708(0x20, 0x46);
sub_8042B0C(temp);
sub_8068FE0(temp, 0x21C, 0);
sub_8042B0C(SmeargleEntity);
sub_8068FE0(SmeargleEntity, 0x21C, 0);
gDungeonGlobalData->unk4 = 1;
gDungeonGlobalData->unk11 = 4;
@@ -1289,17 +1288,17 @@ void SmeargleRescueDialogue(void)
void sub_808CD44(void)
{
struct DungeonEntity *temp;
struct DungeonEntity *temp_2;
struct DungeonEntity *LeaderEntity;
struct DungeonEntity *SmeargleEntity;
temp = sub_8085480();
temp_2 = sub_8085680(0x1F);
LeaderEntity = xxx_call_GetLeaderEntity();
SmeargleEntity = sub_8085680(0x1F);
sub_8083E88(0x72);
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_8068FE0(temp_2, 0x21C, 0);
sub_8085860(temp->posWorldX, temp->posWorldY - 3);
sub_8068FE0(SmeargleEntity, 0x21C, 0);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SMEARGLE);
}

File diff suppressed because it is too large Load Diff

88
src/code_806CD90.c Normal file
View File

@@ -0,0 +1,88 @@
#include "global.h"
#include "dungeon_global_data.h"
#include "dungeon_entity.h"
#include "constants/direction.h"
extern struct DungeonGlobalData *gDungeonGlobalData;
extern u8 sub_806CEBC(struct DungeonEntity *);
extern bool8 EntityExists(struct DungeonEntity *);
extern void sub_806CCB4(struct DungeonEntity *, u8);
extern u32 GetEntityType(struct DungeonEntity *);
void sub_806CD90(void)
{
s32 iVar3;
struct DungeonEntity *iVar2;
for(iVar3 = 0; iVar3 < DUNGEON_MAX_POKEMON; iVar3++)
{
iVar2 = gDungeonGlobalData->allPokemon[iVar3];
if(EntityExists(iVar2))
sub_806CCB4(iVar2, sub_806CEBC(iVar2));
}
}
void sub_806CDD4(struct DungeonEntity *r0, u8 r1, u32 r2)
{
if(GetEntityType(r0) == ENTITY_POKEMON)
{
r0->unk6A = r1;
if(r2 < NUM_DIRECTIONS) r0->facingDir = r2;
}
}
void sub_806CDFC(struct DungeonEntity *r0, u8 r1, u32 r2)
{
if(GetEntityType(r0) == ENTITY_POKEMON)
{
if(r0->unk6B == r1)
{
if(r0->facingDir2 == r2)
return;
else
goto change_dir;
}
else
{
change_dir:
sub_806CDD4(r0, r1, r2);
}
}
}
void sub_806CE34(struct DungeonEntity *r0, u32 newDir)
{
if(GetEntityType(r0) == ENTITY_POKEMON)
{
r0->unk6A = sub_806CEBC(r0);
if(newDir < NUM_DIRECTIONS)
{
r0->entityData->facingDir = newDir & DIRECTION_MASK;
r0->facingDir = newDir & DIRECTION_MASK;
}
}
}
void sub_806CE68(struct DungeonEntity *r0, u32 newDir)
{
if(GetEntityType(r0) == ENTITY_POKEMON)
{
r0->unk6A = sub_806CEBC(r0);
if(newDir < NUM_DIRECTIONS)
{
r0->facingDir = newDir;
}
}
}
void sub_806CE94(struct DungeonEntity *r0, u32 newDir)
{
if(GetEntityType(r0) == ENTITY_POKEMON)
{
r0->unk6A = 6;
if(newDir < NUM_DIRECTIONS)
{
r0->facingDir = newDir;
}
}
}

View File

@@ -94,6 +94,236 @@ extern void sub_808AFB0(u8);
extern void sub_808B030(u8);
extern void sub_808B0B0(u8);
extern void sub_8086B14(void);
extern void sub_8086B94(void);
extern void sub_8086E9C(void);
extern void sub_8086F00(void);
extern void sub_8087230(void);
extern void sub_808729C(void);
extern void sub_80877E8(void);
extern void sub_8087848(void);
extern void sub_8087F54(void);
extern void sub_8087FB4(void);
extern void sub_8087FF8(void);
extern void sub_80885A0(void);
extern void sub_80885C4(void);
extern void sub_808862C(void);
extern void sub_80886C4(void);
extern void sub_808875C(void);
extern void sub_8088DC0(void);
extern void sub_8088E5C(void);
extern void sub_80892C8(void);
extern void sub_8089328(void);
extern void sub_808970C(void);
extern void sub_808974C(void);
extern void sub_8089914(void);
extern void sub_8089978(void);
extern void sub_8089C44(void);
extern void sub_8089C90(void);
extern void sub_8089EFC(void);
extern void sub_8089F44(void);
extern void sub_8089F8C(void);
extern void sub_808A264(void);
extern void sub_808A2C0(void);
extern void sub_808A308(void);
extern void sub_808A608(void);
extern void sub_808A668(void);
extern void sub_808A9E4(void);
extern void sub_808AA3C(void);
extern void sub_808AA94(void);
extern void sub_808ACC0(void);
extern void sub_808AD48(void);
extern void sub_808ADCC(void);
extern void sub_808B2F4(void);
extern void sub_808B35C(void);
extern void sub_808BDEC(void);
extern void sub_808C10C(void);
extern void sub_808C3A0(void);
extern void sub_808C5C0(void);
extern void sub_808C938(void);
extern void sub_808C9C4(void);
extern void sub_808CB5C(void);
extern void sub_808CBB0(void);
extern void sub_808CD44(void);
extern void sub_8097FF8(void);
u32 sub_80848EC(void)
{
return 1;
}
void sub_80848F0(void)
{
gDungeonGlobalData->unk1356C = 1;
switch(gDungeonGlobalData->unk3A0D) {
case 0:
case 0x3c:
gDungeonGlobalData->unk1356C = 0;
break;
case 1:
case 2:
sub_8086B14();
break;
case 3:
sub_8086B94();
break;
case 4:
case 5:
sub_8086E9C();
break;
case 6:
sub_8086F00();
break;
case 7:
case 8:
sub_8087230();
break;
case 9:
sub_808729C();
break;
case 10:
case 0xb:
sub_80877E8();
break;
case 0xc:
sub_8087848();
break;
case 0xd:
sub_8087F54();
break;
case 0xe:
sub_8087FB4();
break;
case 0xf:
sub_8087FF8();
break;
case 0x10:
sub_80885A0();
break;
case 0x11:
sub_80885C4();
break;
case 0x12:
sub_808862C();
break;
case 0x13:
sub_80886C4();
break;
case 0x14:
sub_808875C();
break;
case 0x15:
sub_8088DC0();
break;
case 0x16:
sub_8088E5C();
break;
case 0x17:
case 0x18:
sub_80892C8();
break;
case 0x19:
sub_8089328();
break;
case 0x1a:
case 0x1b:
sub_808970C();
break;
case 0x1c:
sub_808974C();
break;
case 0x1d:
case 0x1e:
sub_8089914();
break;
case 0x1f:
sub_8089978();
break;
case 0x20:
case 0x21:
sub_8089C44();
break;
case 0x22:
sub_8089C90();
break;
case 0x23:
sub_8089EFC();
break;
case 0x24:
sub_8089F44();
break;
case 0x25:
sub_8089F8C();
break;
case 0x26:
sub_808A264();
break;
case 0x27:
sub_808A2C0();
break;
case 0x28:
sub_808A308();
break;
case 0x29:
sub_808A608();
break;
case 0x2a:
sub_808A668();
break;
case 0x2b:
sub_808A9E4();
break;
case 0x2c:
sub_808AA3C();
break;
case 0x2d:
sub_808AA94();
break;
case 0x2e:
sub_808ACC0();
break;
case 0x2f:
sub_808AD48();
break;
case 0x30:
sub_808ADCC();
break;
case 0x31:
sub_808B2F4();
break;
case 0x32:
sub_808B35C();
break;
case 0x33:
sub_808BDEC();
break;
case 0x34:
sub_808C10C();
break;
case 0x35:
sub_808C3A0();
break;
case 0x36:
sub_808C5C0();
break;
case 0x37:
sub_808C938();
break;
case 0x38:
sub_808C9C4();
break;
case 0x39:
sub_808CB5C();
break;
case 0x3a:
sub_808CBB0();
break;
case 0x3b:
sub_808CD44();
break;
}
sub_8097FF8();
}
void DisplayPreFightDialogue(void)
{

View File

@@ -25,7 +25,7 @@ extern void sub_803E46C(u32);
extern void sub_803E9D0(void);
extern void sub_8085C54(u32, u32, u32, u32, u32);
extern void PlaySoundEffect(u32);
extern struct DungeonEntity *sub_8085480(void);
extern struct DungeonEntity *xxx_call_GetLeaderEntity(void);
void SpriteLookAroundEffect(struct DungeonEntity *r0);
extern void sub_8052910(u32);
void sub_8086494();
@@ -64,7 +64,7 @@ void sub_80862DC(struct DungeonEntity *r0)
array[1] = r0->posPixelY + (0xE0 << 6);
sub_804535C(r0, array);
sub_806CDD4(r0, 0, 4);
sub_806CDD4(r0, 0, DIRECTION_NORTH);
sub_8086A54(r0);
}
@@ -75,7 +75,7 @@ void sub_8086310(struct DungeonEntity *r0)
array[1] = r0->posPixelY + (0x90 << 8);
sub_804535C(r0, array);
sub_806CE68(r0, 0);
sub_806CE68(r0, DIRECTION_SOUTH);
sub_8086A3C(r0);
r0->visible = 0;
}
@@ -87,7 +87,7 @@ void sub_8086348(struct DungeonEntity *r0)
array[1] = r0->posPixelY + 0xffffe000;
sub_804535C(r0, array);
sub_806CDD4(r0, 0, 6);
sub_806CDD4(r0, 0, DIRECTION_WEST);
sub_8086A54(r0);
}
@@ -98,38 +98,38 @@ void sub_8086384(struct DungeonEntity *r0)
array[1] = r0->posPixelY;
sub_804535C(r0, array);
sub_806CDD4(r0, 0, 6);
sub_806CDD4(r0, 0, DIRECTION_WEST);
sub_8086A54(r0);
}
void sub_80863B8(struct DungeonEntity *r0)
{
sub_806CDD4(r0, 0, 4);
sub_806CDD4(r0, 0, DIRECTION_NORTH);
}
void sub_80863C8(struct DungeonEntity *r0)
{
sub_806CDD4(r0, 0, 0);
sub_806CDD4(r0, 0, DIRECTION_SOUTH);
}
void sub_80863D8(struct DungeonEntity *r0)
{
sub_806CDD4(r0, 0, 6);
sub_806CDD4(r0, 0, DIRECTION_WEST);
}
void sub_80863E8(struct DungeonEntity *r0)
{
sub_806CDD4(r0, 6, 4);
sub_806CDD4(r0, 6, DIRECTION_NORTH);
}
void sub_80863F8(struct DungeonEntity *r0)
{
sub_806CE68(r0, 4);
sub_806CE68(r0, DIRECTION_NORTH);
}
void sub_8086404(struct DungeonEntity *r0)
{
sub_806CE68(r0, 6);
sub_806CE68(r0, DIRECTION_WEST);
}
void sub_8086410(struct DungeonEntity *r0)
@@ -310,7 +310,7 @@ void sub_8086690(void)
void sub_80866C4(u32 r0)
{
SpriteLookAroundEffect(sub_8085480());
SpriteLookAroundEffect(xxx_call_GetLeaderEntity());
sub_803E708(0xA, 0x46);
sub_8052910(r0);
sub_803E708(0xA, 0x46);

View File

@@ -5,7 +5,8 @@
extern struct DungeonGlobalData *gDungeonGlobalData;
extern void LoadIQSkills(struct DungeonEntity *);
extern struct DungeonEntity *sub_8085480(void);
extern struct DungeonEntity *GetPartnerEntity();
extern struct DungeonEntity *xxx_call_GetLeaderEntity(void);
extern struct DungeonEntity *sub_8085680(u32);
extern void SetDefaultIQSkills(u8 *param_1, u8 param_2);
extern void sub_8097FF8(void);
@@ -20,6 +21,40 @@ extern void sub_80855E4(void *);
extern void sub_8085860(s32 r0, u32 r1);
extern void sub_8068FE0(struct DungeonEntity *, u32, u32);
extern void sub_8097FA8(u32);
extern void sub_80858AC(void *, u32);
extern void sub_8052910(u8 *);
extern void sub_806CDD4(struct DungeonEntity *, u32, u32);
extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32);
extern void sub_8083E88(u32);
extern void sub_803E708(u32, u32);
extern void sub_8086448(void);
extern void sub_80862BC(struct DungeonEntity *);
extern void sub_8086E74(struct DungeonEntity *);
extern void SpriteLookAroundEffect(struct DungeonEntity *);
extern void sub_8086A54(struct DungeonEntity *);
extern void PlaySoundEffect(u32);
extern void sub_808563C(void *);
// X / Y Coords??
struct subStruct_Skarmory
{
int x;
int y;
};
extern u8 gUnknown_8100768;
extern u8 gUnknown_8100798;
extern u8 gUnknown_8100820;
extern u8 gUnknown_8100844;
extern u8 gUnknown_8100880;
extern u8 gUnknown_8100928;
extern u8 gUnknown_8100A04;
extern u8 gUnknown_8100B80;
extern u8 gUnknown_8100BC0;
extern u8 gUnknown_8100C90;
extern u8 gUnknown_8100CBC;
extern u8 gUnknown_8100CDC;
extern u8 gUnknown_8100D3C;
void sub_8086A3C(struct DungeonEntity *param_1)
{
@@ -79,40 +114,40 @@ u8 sub_8086AE4(s16 _index)
void sub_8086B14(void)
{
struct DungeonEntity * iVar1;
struct DungeonEntity * iVar2;
struct DungeonEntity * uVar3;
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * DiglettEntity;
struct DungeonEntity * SkarmoryEntity;
iVar1 = sub_8085480();
iVar2 = sub_8085680(4);
uVar3 = sub_8085680(3);
LeaderEntity = xxx_call_GetLeaderEntity();
DiglettEntity = sub_8085680(4);
SkarmoryEntity = sub_8085680(3);
sub_8083E88(0x72);
sub_8085374();
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_8086A3C(uVar3);
iVar2->entityData->unk15C = 1;
sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -2);
sub_8086A3C(SkarmoryEntity);
DiglettEntity->entityData->unk15C = 1;
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -2);
CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_DIGLETT);
CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_SKARMORY);
}
void sub_8086B94(void)
{
struct DungeonEntity * iVar1;
struct DungeonEntity * iVar2;
struct DungeonEntity * uVar3;
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * DiglettEntity;
struct DungeonEntity * SkarmoryEntity;
iVar1 = sub_8085480();
iVar2 = sub_8085680(4);
uVar3 = sub_8085680(3);
LeaderEntity = xxx_call_GetLeaderEntity();
DiglettEntity = sub_8085680(4);
SkarmoryEntity = sub_8085680(3);
sub_8068FE0(uVar3,0x21c,0);
sub_8068FE0(iVar2,0x21c,0);
sub_8068FE0(SkarmoryEntity,0x21c,0);
sub_8068FE0(DiglettEntity,0x21c,0);
sub_80854D4();
sub_8085930(4);
sub_8085860(iVar1->posWorldX,iVar1->posWorldY);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
}
void sub_8086BDC(char param_1, s32 param_2)
@@ -122,3 +157,136 @@ void sub_8086BDC(char param_1, s32 param_2)
gDungeonGlobalData->unk2 = 1;
}
}
void SkarmoryPreFightDialogue(void)
{
struct DungeonEntity *LeaderEntity;
struct DungeonEntity *PartnerEntity;
struct DungeonEntity * DiglettEntity;
struct DungeonEntity * SkarmoryEntity;
struct subStruct_Skarmory local_1c;
struct subStruct_Skarmory local_20;
LeaderEntity = xxx_call_GetLeaderEntity(); // Player
PartnerEntity = GetPartnerEntity(); // Partner
DiglettEntity = sub_8085680(4); // Diglett
SkarmoryEntity = sub_8085680(3); // Skarmory
local_1c.x = DiglettEntity->posPixelX;
local_1c.y = DiglettEntity->posPixelY + 0x3000;
local_20.x = SkarmoryEntity->posPixelX;
local_20.y = SkarmoryEntity->posPixelY + 0x2000;
sub_8086448();
sub_803E708(10,0x46);
sub_80862BC(PartnerEntity);
sub_803E708(0x20,0x46);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8100768);
sub_80858AC(&local_1c,0x40);
sub_803E708(0x40,0x46);
sub_80858AC(&local_20,0x30);
sub_8052910(&gUnknown_8100798);
sub_803E708(10,0x46);
DiglettEntity->entityData->unk15D = 1;
sub_80858AC(&local_1c,0x30);
sub_8052910(&gUnknown_8100820); // Diglett: ...I...\nI'm scared.
sub_803E708(10,0x46);
sub_80858AC(&local_20,0x20);
sub_803E708(0x20,0x46);
sub_8086E74(SkarmoryEntity);
sub_8052910(&gUnknown_8100844); // Skarmory: You!\nWhat do you think you're doing here?!
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8100880);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8100928);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8100A04);
sub_803E708(10,0x46);
sub_806CDD4(SkarmoryEntity,0xd,0);
sub_8052910(&gUnknown_8100B80);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
sub_8052910(&gUnknown_8100BC0);
sub_80869E4(PartnerEntity,4,2,4);
sub_80869E4(LeaderEntity,4,1,4);
sub_803E708(10,0x46);
sub_8083E88(0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
void SkarmoryReFightDialogue(void)
{
struct DungeonEntity * LeaderEntity;
struct DungeonEntity * SkarmoryEntity;
struct subStruct_Skarmory local_14;
LeaderEntity = xxx_call_GetLeaderEntity();
SkarmoryEntity = sub_8085680(3);
local_14.x = SkarmoryEntity->posPixelX;
local_14.y = SkarmoryEntity->posPixelY + 0x2000;
sub_8086448();
sub_803E708(10,0x46);
sub_8086E74(SkarmoryEntity);
sub_80858AC(&local_14,0x10);
sub_8052910(&gUnknown_8100C90);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8100CBC);
sub_803E708(10,0x46);
sub_806CDD4(SkarmoryEntity,0xd,0);
sub_8052910(&gUnknown_8100CDC);
sub_803E708(10,0x46);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
sub_8083E88(0xb);
}
void sub_8086E40(void)
{
SpriteLookAroundEffect(xxx_call_GetLeaderEntity());
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8100D3C);
sub_803E708(10,0x46);
gDungeonGlobalData->unk2 = 1;
}
void sub_8086E74(struct DungeonEntity * param_1)
{
sub_806CDD4(param_1,0xf,0);
sub_8086A54(param_1);
PlaySoundEffect(0x1f8);
sub_803E708(0x44,0x46);
}
void sub_8086E9C(void)
{
struct DungeonEntity * LeaderEntity;
LeaderEntity = xxx_call_GetLeaderEntity();
sub_8083E88(0x72);
sub_8085374();
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_808563C(sub_8086A3C);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD);
CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_GENGAR);
CopySpeciesNametoBuffer(gUnknown_202E038 + 0xA0, SPECIES_CATERPIE);
}
void sub_8086F00(void)
{
struct DungeonEntity * LeaderEntity;
LeaderEntity = xxx_call_GetLeaderEntity();
sub_80854D4();
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD);
CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_GENGAR);
CopySpeciesNametoBuffer(gUnknown_202E038 + 0xA0, SPECIES_CATERPIE);
}

View File

@@ -22,7 +22,6 @@ extern void PlaySound(u32);
extern void nullsub_104();
extern void sub_801A928();
extern void sub_8099690(u32);
extern void GivePokemonItem(s16, struct HeldItem *);
extern u32 sub_801A8AC();
extern u32 sub_801A6E8(u32);

View File

@@ -37,7 +37,6 @@ extern u8 gPartyMenuItemPlaceholder[];
extern struct UnkTextStruct2 gUnknown_80DD370;
extern u32 sub_8026F04(struct PokemonStruct *);
extern void GivePokemonItem(s16 index_, struct HeldItem* item);
extern void sub_8026074(u32);
extern void PlaySound(u32);
bool8 sub_8026F38(struct PokemonStruct *r0);

View File

@@ -204,7 +204,7 @@ void sub_8017D24(void)
switch(menuAction)
{
case 3:
if (GetNumberOfFilledInventorySlots() > 0x13)
if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
{
sub_801CBB8();
UpdateKangaskhanStorageState(6);

View File

@@ -1,5 +1,6 @@
#include "global.h"
#include "constants/bg_music.h"
#include "constants/colors.h"
#include "input.h"
#include "item.h"
#include "memory.h"
@@ -75,7 +76,6 @@ extern u8 *gUnknown_80D4934[];
extern u8 gUnknown_80DCA24[];
extern u8 gUnknown_80DCA2C[];
extern bool8 IsPokemonRenamed(struct PokemonStruct* pokemon);
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void UpdateLuminousCaveState(u32);
@@ -116,7 +116,6 @@ extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
void sub_808F734(struct PokemonStruct *, s16);
void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size);
u32 sub_801602C(u32 r0, u8 *name);
void sub_808D9AC(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum);
extern s32 sub_80144A4(s32 *);
extern u32 sub_801A6E8(u32);
extern s32 sub_801A8AC(void);
@@ -377,7 +376,7 @@ void UpdateLuminousCaveDialogue(void)
sub_80141B4(gLuminousCaveLetUsBegin,0,0,0x105);
break;
case LUMINOUS_CAVE_CHANGED_APPEARANCE:
sub_808D9AC(gPlayerName,gUnknown_203B2B0->pokeStruct,5);
PrintColoredPokeNameToBuffer(gPlayerName,gUnknown_203B2B0->pokeStruct, COLOR_CYAN);
PlaySound(0x1ff);
gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED;
sub_80141B4(gLuminousCaveChangedAppearance,0,0,0x105);

View File

@@ -6,10 +6,10 @@
#include "mailbox.h"
extern void sub_802E4B0(void);
extern void HandleMailboxMenu(void);
extern void nullsub_133(void);
extern void sub_802E578(void);
extern void sub_802E60C(void);
extern void HandleMailActionMenu(void);
extern void sub_802E73C(void);
extern void sub_802E758(void);
extern void sub_802E774(void);
@@ -61,7 +61,7 @@ u32 sub_802DFD8(void)
SetMailboxState(1);
break;
case 1:
sub_802E4B0();
HandleMailboxMenu();
break;
case 2:
nullsub_133();
@@ -71,7 +71,7 @@ u32 sub_802DFD8(void)
sub_802E578();
break;
case 6:
sub_802E60C();
HandleMailActionMenu();
break;
case 7:
sub_802E73C();

View File

@@ -5,8 +5,11 @@
#include "input.h"
#include "mailbox.h"
extern struct unkStruct_203B304 *gUnknown_203B304;
extern u8 gMailAccepted[];
extern u8 gUnknown_80E0324[];
extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32);
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
extern void sub_8008C54(u32);
@@ -21,9 +24,159 @@ extern u32 sub_802C898(void);
extern void sub_802C8F4(void);
extern u32 sub_802DEE0(void);
extern void sub_802DF24(void);
extern u8 *sub_8095FE8(u8);
extern u8 HasNoMailinMailbox(void);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
extern u32 sub_802BDEC(u32);
extern void sub_8096A78(void);
extern void sub_8096C80(void);
extern void sub_8096D24(void);
extern void sub_8096040(u8);
extern void sub_8096DF8(u8);
extern void sub_8096078(void);
extern void PlayMenuSoundEffect(u32);
extern void PlaySound(u32);
extern void sub_802BEDC(void);
extern u8 sub_802BE74(void);
extern u8 HasNoAcceptedJobs(void);
extern u8 HasNoPKMNNews(void);
extern void sub_8012EA4(u32 *, u32);
extern struct unkStruct_203B304 *gUnknown_203B304;
void HandleMailboxMenu(void)
{
s32 menuAction = 0;
if(!sub_8012FD8(&gUnknown_203B304->unk6C))
{
sub_8013114(&gUnknown_203B304->unk6C, &menuAction);
if(menuAction != 1) gUnknown_203B304->unk64 = menuAction;
}
switch(menuAction)
{
case 2:
if(!HasNoMailinMailbox())
SetMailboxState(4);
else
sub_8012EA4(&gUnknown_203B304->unk6C, 1);
break;
case 3:
if(!HasNoAcceptedJobs())
SetMailboxState(8);
else
sub_8012EA4(&gUnknown_203B304->unk6C, 1);
break;
case 4:
if(!HasNoPKMNNews())
SetMailboxState(9);
else
sub_8012EA4(&gUnknown_203B304->unk6C, 1);
break;
case 8:
SetMailboxState(2);
break;
case 1:
SetMailboxState(3);
break;
}
}
void sub_802E578(void)
{
u8 *return_var;
switch(sub_802BDEC(1))
{
case 3:
gUnknown_203B304->unk8 = sub_802BE74();
SetMailboxState(6);
break;
case 4:
gUnknown_203B304->unk8 = sub_802BE74();
return_var = sub_8095FE8(gUnknown_203B304->unk8);
if(return_var[0] == 1)
{
gUnknown_203B304->mailIndex = return_var[5];
gUnknown_203B304->fallbackState = 5;
SetMailboxState(0xB);
}
else
SetMailboxState(7);
break;
case 2:
sub_802BEDC();
SetMailboxState(1);
break;
case 0:
case 1:
break;
}
}
void HandleMailActionMenu(void)
{
s32 menuAction = 0;
u8 *return_var;
sub_802BDEC(0);
if(!sub_8012FD8(&gUnknown_203B304->unk6C))
{
sub_8013114(&gUnknown_203B304->unk6C, &menuAction);
if(menuAction != 1) gUnknown_203B304->unk68 = menuAction;
}
switch(menuAction)
{
case 2:
case 3:
case 4:
break;
case 5:
PlaySound(0x133);
sub_8095FE8(gUnknown_203B304->unk8);
sub_8096A78();
sub_8096C80();
sub_8096D24();
sub_8096040(gUnknown_203B304->unk8);
sub_8096078();
if(HasNoMailinMailbox())
{
sub_802BEDC();
SetMailboxState(1);
}
else
SetMailboxState(5);
break;
case 8:
SetMailboxState(7);
break;
case 6:
PlaySound(0x133);
return_var = sub_8095FE8(gUnknown_203B304->unk8);
sub_8096DF8(return_var[5]);
sub_8096040(gUnknown_203B304->unk8);
sub_8096078();
if(HasNoMailinMailbox())
{
sub_802BEDC();
SetMailboxState(1);
}
else
SetMailboxState(5);
break;
case 7:
PlayMenuSoundEffect(0);
return_var = sub_8095FE8(gUnknown_203B304->unk8);
gUnknown_203B304->mailIndex = return_var[5];
gUnknown_203B304->fallbackState = 5;
SetMailboxState(0xB);
break;
case 1:
SetMailboxState(5);
break;
}
}
void sub_802E73C(void)
{
@@ -63,12 +216,12 @@ void sub_802E774(void)
case 3:
case 4:
gUnknown_203B304->mailIndex = GetPokemonNewsIndex();
gUnknown_203B304->unk4 = 0xA;
gUnknown_203B304->fallbackState = 0xA;
SetMailboxState(0xB);
break;
case 2:
sub_802B81C();
SetMailboxState(0x1);
SetMailboxState(1);
break;
}
}
@@ -80,7 +233,7 @@ void sub_802E7D0(void)
case 2:
case 3:
sub_802BACC();
SetMailboxState(gUnknown_203B304->unk4);
SetMailboxState(gUnknown_203B304->fallbackState);
case 0:
case 1:
break;

View File

@@ -1,5 +1,32 @@
#include "global.h"
#include "mailbox.h"
#include "pokemon.h"
#include "item.h"
#include "memory.h"
#include "menu.h"
#include "text.h"
#include "team_inventory.h"
struct unkStruct_203B308
{
// size: 0xB6 << 1
u32 state;
u32 unk4;
u8 unk8;
u8 fill9[0xC - 9];
u32 unkC;
u8 fill10[0x50 - 0x10];
u8 unk50;
u8 fill51[0x64 - 0x51];
u32 unk64;
u32 unk68;
u32 unk6C;
u8 fill70[0xBC - 0x70];
struct MenuItem unkBC[8];
u16 unkFC[8];
struct UnkTextStruct2 unk10C[4];
};
extern struct unkStruct_203B308 *gUnknown_203B308;
extern u8 gPelipperBoard_Accepted[];
extern u8 gUnknown_80E03B8[];
@@ -10,10 +37,141 @@ extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern u32 sub_802C898(void);
extern void sub_802C8F4(void);
extern void SetPelipperBoardState(u32);
extern u32 sub_802DEE0(void);
extern void sub_802DF24(void);
extern u8 *sub_8096574(u8);
extern u8 sub_802C4A4(void);
extern void sub_8096C80(void);
extern void sub_8096D24(void);
extern void sub_8096A78(u8 *);
extern void sub_80965B8(u8);
extern void sub_80965F4(void);
extern void sub_802C2D4(void);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
extern u32 sub_802C1E4(u32);
extern void PlaySound(u32);
extern void SetPelipperBoardState(u32);
extern u8 sub_802C26C(void);
extern u8 HasNoAcceptedJobs(void);
extern void sub_8012EA4(u32 *, u32);
void sub_802ECB4(void)
{
s32 menuAction = 0;
if(!sub_8012FD8(&gUnknown_203B308->unk6C))
{
sub_8013114(&gUnknown_203B308->unk6C, &menuAction);
if(menuAction != 1) gUnknown_203B308->unk64 = menuAction;
}
switch(menuAction)
{
case 2:
if(!sub_802C4A4())
SetPelipperBoardState(4);
else
sub_8012EA4(&gUnknown_203B308->unk6C, 1);
break;
case 3:
if(!HasNoAcceptedJobs())
SetPelipperBoardState(8);
else
sub_8012EA4(&gUnknown_203B308->unk6C, 1);
break;
case 5:
SetPelipperBoardState(2);
break;
case 1:
SetPelipperBoardState(3);
break;
}
}
void sub_802ED4C(void)
{
switch(sub_802C1E4(1))
{
case 3:
gUnknown_203B308->unk8 = sub_802C26C();
SetPelipperBoardState(6);
break;
case 4:
gUnknown_203B308->unk8 = sub_802C26C();
SetPelipperBoardState(7);
break;
case 2:
sub_802C2D4();
SetPelipperBoardState(1);
break;
case 0:
case 1:
break;
}
}
void sub_802EDBC(void)
{
u8 *return_var;
s32 menuAction = 0;
sub_802C1E4(0);
if(!sub_8012FD8(&gUnknown_203B308->unk6C))
{
sub_8013114(&gUnknown_203B308->unk6C, &menuAction);
if(menuAction != 1) gUnknown_203B308->unk68 = menuAction;
}
switch(menuAction)
{
case 4:
PlaySound(0x133);
return_var = sub_8096574(gUnknown_203B308->unk8);
switch(*return_var)
{
case 2:
gUnknown_203B308->unk4 = 1;
sub_80965B8(gUnknown_203B308->unk8);
sub_80965F4();
sub_802C2D4();
SetPelipperBoardState(3);
break;
case 3:
gUnknown_203B308->unk4 = 2;
sub_80965B8(gUnknown_203B308->unk8);
sub_80965F4();
sub_802C2D4();
SetPelipperBoardState(3);
break;
case 4:
gUnknown_203B308->unk4 = 3;
sub_80965B8(gUnknown_203B308->unk8);
sub_80965F4();
sub_802C2D4();
SetPelipperBoardState(3);
break;
default:
sub_8096A78(return_var);
sub_8096C80();
sub_8096D24();
if(sub_802C4A4())
{
sub_802C2D4();
SetPelipperBoardState(1);
}
else
SetPelipperBoardState(5);
break;
}
break;
case 5:
SetPelipperBoardState(7);
break;
case 1:
SetPelipperBoardState(5);
break;
}
}
void sub_802EEA0(void)
{

View File

@@ -270,12 +270,12 @@ char * GetMonSpecies(s16 index)
return gMonsterParameters[index].species;
}
void sub_808D9AC(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum)
void PrintColoredPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum)
{
u8 nameBuffer [20];
sub_80922B4(nameBuffer, pokemon->name, POKEMON_NAME_LENGTH);
if (colorNum == 0) {
if (colorNum == COLOR_WHITE) {
colorNum = COLOR_CYAN;
}
ExpandPlaceholdersBuffer(buffer,gUnknown_810763C,colorNum,nameBuffer); // #c%c%s{END_COLOR_TEXT_2}
@@ -286,7 +286,7 @@ void sub_808D9DC(u8 *buffer, u8 *param_2, s32 colorNum)
u8 nameBuffer [20];
sub_80922B4(nameBuffer, param_2 + 0x58, POKEMON_NAME_LENGTH);
if (colorNum == 0) {
if (colorNum == COLOR_WHITE) {
colorNum = COLOR_YELLOW;
}
ExpandPlaceholdersBuffer(buffer,gUnknown_810763C,colorNum,nameBuffer); // #c%c%s{END_COLOR_TEXT_2}
@@ -300,7 +300,7 @@ void sub_808DA0C(u8 *buffer, u8 *param_2)
ExpandPlaceholdersBuffer(buffer,gUnknown_8107638,nameBuffer); // %s
}
void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon)
void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon)
{
sub_80922B4(buffer, pokemon->name, POKEMON_NAME_LENGTH);
}

View File

@@ -86,7 +86,7 @@ extern void sub_8013984(u32 *);
extern u8 HasNoPKMNNews(void);
extern u8 CheckPKMNNewsSlot(u8 r0);
extern struct PokemonStruct *sub_808D3BC(void);
extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon);
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
extern u16 gUnknown_203B2D0;
extern u16 gUnknown_203B2D2;
@@ -719,7 +719,7 @@ void sub_802BC08(void)
void sub_802BC7C(void)
{
sub_808DA34(gAvailablePokemonNames, sub_808D3BC());
PrintPokeNameToBuffer(gAvailablePokemonNames, sub_808D3BC());
if(gUnknown_203B46C->playerGender == FEMALE)
{
strcpy(gAvailablePokemonNames + 0x50, gUnknown_80DFC4C); // She

View File

@@ -135,7 +135,7 @@ extern u8 sub_8012FD8(u32 *r0);
extern void sub_8013114(u32 *, s32 *);
extern u32 sub_802DEE0(void);
extern void sub_802DF24(void);
extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon);
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void sub_802F6FC(void);
extern void sub_802F718(void);
@@ -368,7 +368,7 @@ u32 sub_802F204(struct unkStruct_802F204 *r0, u8 r1)
// NOTE: dumb var to get correct ordering
preload = gUnknown_203B310;
strcpy(gUnknown_202E5D8, preload->unk10->clientName);
sub_808DA34(gAvailablePokemonNames, GetPlayerPokemonStruct());
PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct());
gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->unk14);
gUnknown_203B310->faceData = NULL;