diff options
31 files changed, 728 insertions, 1218 deletions
diff --git a/asm/code_8031D70.s b/asm/code_8031D70.s new file mode 100644 index 0000000..b889571 --- /dev/null +++ b/asm/code_8031D70.s @@ -0,0 +1,266 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8031D70 +sub_8031D70: + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + ldr r5, _08031DC4 + movs r0, 0x7C + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + stm r0!, {r6} + bl sub_801317C + ldr r0, [r5] + str r4, [r0, 0x10] + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + adds r1, 0x18 + adds r1, r0, r1 + str r1, [r0, 0x14] + adds r0, 0x18 + bl sub_8006518 + ldr r1, [r5] + ldr r2, [r1, 0x10] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x18 + ldr r0, _08031DC8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + bl sub_8031E00 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08031DC4: .4byte gUnknown_203B334 +_08031DC8: .4byte gUnknown_80E1FC4 + thumb_func_end sub_8031D70 + + thumb_func_start sub_8031DCC +sub_8031DCC: + push {lr} + ldr r0, _08031DEC + ldr r1, [r0] + adds r0, r1, 0x4 + ldr r1, [r1, 0x10] + bl sub_8012A64 + cmp r0, 0x1 + beq _08031DF0 + cmp r0, 0x2 + bne _08031DFA + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08031DFC + .align 2, 0 +_08031DEC: .4byte gUnknown_203B334 +_08031DF0: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08031DFC +_08031DFA: + movs r0, 0 +_08031DFC: + pop {r1} + bx r1 + thumb_func_end sub_8031DCC + + thumb_func_start sub_8031E00 +sub_8031E00: + push {lr} + bl sub_8031E58 + bl sub_8031E74 + pop {r0} + bx r0 + thumb_func_end sub_8031E00 + + thumb_func_start sub_8031E10 +sub_8031E10: + push {r4,r5,lr} + ldr r4, _08031E50 + ldr r2, [r4] + cmp r2, 0 + beq _08031E4A + ldr r0, [r2, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x18 + ldr r0, _08031E54 + 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, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08031E4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08031E50: .4byte gUnknown_203B334 +_08031E54: .4byte gUnknown_80E1FA8 + thumb_func_end sub_8031E10 + + thumb_func_start sub_8031E58 +sub_8031E58: + push {lr} + bl ResetUnusedInputStruct + ldr r0, _08031E70 + ldr r0, [r0] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r0} + bx r0 + .align 2, 0 +_08031E70: .4byte gUnknown_203B334 + thumb_func_end sub_8031E58 + + thumb_func_start sub_8031E74 +sub_8031E74: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x3C + ldr r3, _08031EC0 + ldr r5, _08031EC4 + ldr r2, [r5] + ldr r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 4 + ldr r4, [r3] + adds r4, r0 + ldr r0, [r2, 0x10] + bl sub_80073B8 + ldr r2, _08031EC8 + ldr r0, [r5] + ldr r3, [r0, 0x10] + movs r0, 0 + str r0, [sp] + movs r0, 0x14 + movs r1, 0 + bl xxx_call_draw_string + add r0, sp, 0x4 + adds r1, r4, 0 + bl sub_803D2C0 + movs r7, 0 + mov r8, r5 +_08031EB2: + cmp r7, 0x4 + ble _08031ED0 + cmp r7, 0xC + bgt _08031ECC + movs r6, 0x6 + movs r5, 0x16 + b _08031F00 + .align 2, 0 +_08031EC0: .4byte gUnknown_203B480 +_08031EC4: .4byte gUnknown_203B334 +_08031EC8: .4byte gUnknown_80E1FDC +_08031ECC: + cmp r7, 0x11 + bgt _08031ED6 +_08031ED0: + movs r6, 0x7 + movs r5, 0x15 + b _08031F00 +_08031ED6: + cmp r7, 0x16 + ble _08031EE8 + cmp r7, 0x1E + bgt _08031EE4 + movs r6, 0x6 + movs r5, 0x25 + b _08031F00 +_08031EE4: + cmp r7, 0x23 + bgt _08031EEE +_08031EE8: + movs r6, 0x7 + movs r5, 0x24 + b _08031F00 +_08031EEE: + cmp r7, 0x28 + ble _08031EFC + cmp r7, 0x30 + bgt _08031EFC + movs r6, 0x6 + movs r5, 0x34 + b _08031F00 +_08031EFC: + movs r6, 0x7 + movs r5, 0x33 +_08031F00: + adds r0, r7, 0 + movs r1, 0x12 + bl __modsi3 + movs r1, 0xB + adds r4, r0, 0 + muls r4, r1 + adds r4, 0x6 + mov r0, sp + adds r0, r7 + adds r0, 0x4 + ldrb r2, [r0] + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, 0x10] + str r0, [sp] + adds r0, r4, 0 + adds r1, r5, 0 + adds r3, r6, 0 + bl sub_8012C60 + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, 0x10] + adds r2, r5, 0 + adds r2, 0xA + movs r1, 0x5 + str r1, [sp] + adds r1, r4, 0 + movs r3, 0xA + bl sub_80078A4 + adds r7, 0x1 + cmp r7, 0x35 + ble _08031EB2 + ldr r0, _08031F5C + ldr r0, [r0] + ldr r0, [r0, 0x10] + bl sub_80073E0 + add sp, 0x3C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031F5C: .4byte gUnknown_203B334 + thumb_func_end sub_8031E74 + + .align 2,0 diff --git a/asm/code_803B050.s b/asm/code_803B050.s index 1dcdaab..2fc580b 100644 --- a/asm/code_803B050.s +++ b/asm/code_803B050.s @@ -949,7 +949,7 @@ _0803B75C: .4byte gMedichamMission _0803B760: ldr r1, [r7, 0x8] add r0, sp, 0x4 - bl sub_8090208 + bl PrintYellowDungeonNametoBuffer b _0803B850 _0803B76A: ldr r4, _0803B780 diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s index 34b2572..c304730 100644 --- a/asm/code_806CD90.s +++ b/asm/code_806CD90.s @@ -2225,7 +2225,7 @@ _0806E040: ldr r1, _0806E0C0 adds r0, r1 ldrb r0, [r0] - bl sub_809033C + bl GetDungeonUnk1 lsls r0, 24 cmp r0, 0 beq _0806E066 @@ -2969,4 +2969,4 @@ _0806E64C: .4byte 0x00000177 _0806E650: .4byte gUnknown_8106F0C thumb_func_end sub_806E100 - .align 2, 0
\ No newline at end of file + .align 2, 0 diff --git a/asm/code_809447C.s b/asm/code_809447C.s index 281962b..3d03a7a 100644 --- a/asm/code_809447C.s +++ b/asm/code_809447C.s @@ -26,7 +26,7 @@ sub_8094558: adds r1, r6, 0 adds r1, 0x18 adds r0, r4, 0 - bl sub_8090208 + bl PrintYellowDungeonNametoBuffer ldr r0, _080945D4 ldr r2, [r0] str r5, [sp] diff --git a/asm/code_809017C.s b/asm/dungeon.s index fefed28..2e786f9 100644 --- a/asm/code_809017C.s +++ b/asm/dungeon.s @@ -57,33 +57,4 @@ _080901D0: .4byte 0x000003e6 _080901D4: .4byte gUnknown_8107828 thumb_func_end sub_809017C - thumb_func_start sub_80901D8 -sub_80901D8: - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldrb r0, [r2] - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - bhi _080901FE - movs r0, 0x34 - strb r0, [r3] - ldrb r1, [r2] - subs r1, 0x4B - lsls r0, r1, 1 - adds r0, r1 - ldrb r2, [r2, 0x1] - adds r0, r2 - strb r0, [r3, 0x1] - b _08090202 -_080901FE: - ldr r0, [r2] - str r0, [r3] -_08090202: - pop {r0} - bx r0 - thumb_func_end sub_80901D8 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_8090208.s b/asm/dungeon_2.s index 5b097fe..2086666 100644 --- a/asm/code_8090208.s +++ b/asm/dungeon_2.s @@ -5,110 +5,6 @@ .text - thumb_func_start sub_8090298 -sub_8090298: - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - bhi _080902AE - movs r0, 0x4 - b _080902C2 -_080902AE: - cmp r1, 0x3E - bhi _080902C0 - ldr r0, _080902BC - adds r0, r1, r0 - ldrb r0, [r0] - b _080902C2 - .align 2, 0 -_080902BC: .4byte gUnknown_81077A8 -_080902C0: - movs r0, 0x1 -_080902C2: - pop {r1} - bx r1 - thumb_func_end sub_8090298 - - thumb_func_start sub_80902C8 -sub_80902C8: - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - bls _080902EC - cmp r1, 0x3E - bhi _080902EC - ldr r0, _080902E8 - adds r0, r1, r0 - ldrb r0, [r0] - b _080902EE - .align 2, 0 -_080902E8: .4byte gUnknown_81077E8 -_080902EC: - movs r0, 0 -_080902EE: - pop {r1} - bx r1 - thumb_func_end sub_80902C8 - - thumb_func_start xxx_save_poke_sub_4_80902F4 -xxx_save_poke_sub_4_80902F4: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x7 - bl SaveIntegerBits - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl SaveIntegerBits - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end xxx_save_poke_sub_4_80902F4 - - thumb_func_start xxx_restore_poke_sub_4_8090314 -xxx_restore_poke_sub_4_8090314: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r0, r5, 0 - movs r2, 0x7 - bl RestoreIntegerBits - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl RestoreIntegerBits - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end xxx_restore_poke_sub_4_8090314 - - thumb_func_start sub_809033C -sub_809033C: - lsls r0, 24 - ldr r1, _08090348 - lsrs r0, 20 - adds r0, r1 - ldrb r0, [r0, 0x1] - bx lr - .align 2, 0 -_08090348: .4byte gDungeons - thumb_func_end sub_809033C thumb_func_start sub_809034C sub_809034C: diff --git a/asm/friend_area_action_menu.s b/asm/friend_area_action_menu.s index 75d3dd2..0defc5d 100644 --- a/asm/friend_area_action_menu.s +++ b/asm/friend_area_action_menu.s @@ -472,266 +472,4 @@ _080277F4: .4byte gUnknown_80D4920 _080277F8: .4byte gUnknown_80D4928 thumb_func_end sub_8027794 - thumb_func_start sub_80277FC -sub_80277FC: - push {r4,lr} - movs r0, 0x1 - bl sub_8023A94 - cmp r0, 0x4 - bhi _080278AE - lsls r0, 2 - ldr r1, _08027814 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08027814: .4byte _08027818 - .align 2, 0 -_08027818: - .4byte _080278AE - .4byte _080278AE - .4byte _080278A4 - .4byte _0802782C - .4byte _08027868 -_0802782C: - bl sub_8023B44 - ldr r4, _08027860 - ldr r1, [r4] - strh r0, [r1, 0x8] - ldr r3, _08027864 - movs r0, 0x8 - ldrsh r2, [r1, r0] - movs r0, 0x58 - muls r2, r0 - ldr r0, [r3] - adds r0, r2 - str r0, [r1, 0x18] - ldrb r0, [r0, 0x2] - strb r0, [r1, 0x1C] - ldr r1, [r4] - movs r2, 0x8 - ldrsh r0, [r1, r2] - adds r1, 0x14 - bl PeekPokemonItem - movs r0, 0x3 - bl SetFriendAreaActionMenuState - b _080278AE - .align 2, 0 -_08027860: .4byte gUnknown_203B2BC -_08027864: .4byte gRecruitedPokemonRef -_08027868: - bl sub_8023B44 - ldr r4, _0802789C - ldr r1, [r4] - strh r0, [r1, 0x8] - ldr r3, _080278A0 - movs r0, 0x8 - ldrsh r2, [r1, r0] - movs r0, 0x58 - muls r2, r0 - ldr r0, [r3] - adds r0, r2 - str r0, [r1, 0x18] - ldrb r0, [r0, 0x2] - strb r0, [r1, 0x1C] - ldr r1, [r4] - movs r2, 0x8 - ldrsh r0, [r1, r2] - adds r1, 0x14 - bl PeekPokemonItem - movs r0, 0x4 - bl SetFriendAreaActionMenuState - b _080278AE - .align 2, 0 -_0802789C: .4byte gUnknown_203B2BC -_080278A0: .4byte gRecruitedPokemonRef -_080278A4: - bl sub_8023C60 - movs r0, 0x11 - bl SetFriendAreaActionMenuState -_080278AE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80277FC - - thumb_func_start sub_80278B4 -sub_80278B4: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_8023A94 - ldr r4, _080278F8 - ldr r0, [r4] - adds r0, 0x7C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _080278E4 - ldr r0, [r4] - adds r0, 0x7C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _080278E4 - ldr r0, [r4] - str r1, [r0, 0x70] -_080278E4: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0xB - bls _080278EE - b _08027A36 -_080278EE: - lsls r0, 2 - ldr r1, _080278FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080278F8: .4byte gUnknown_203B2BC -_080278FC: .4byte _08027900 - .align 2, 0 -_08027900: - .4byte _08027A30 - .4byte _08027A36 - .4byte _08027A36 - .4byte _08027A20 - .4byte _08027A28 - .4byte _08027930 - .4byte _0802796C - .4byte _0802798C - .4byte _080279C0 - .4byte _080279D0 - .4byte _080279D8 - .4byte _080279C8 -_08027930: - ldr r4, _08027964 - ldr r0, [r4] - movs r1, 0x8 - ldrsh r0, [r0, r1] - bl sub_808D750 - lsls r0, 24 - cmp r0, 0 - beq _0802795E - ldr r0, [r4] - movs r2, 0x8 - ldrsh r1, [r0, r2] - movs r0, 0x58 - muls r1, r0 - ldr r0, _08027968 - ldr r0, [r0] - adds r1, r0 - ldrh r2, [r1] - movs r0, 0x2 - orrs r0, r2 - strh r0, [r1] - bl nullsub_104 -_0802795E: - bl sub_808ED00 - b _08027A0E - .align 2, 0 -_08027964: .4byte gUnknown_203B2BC -_08027968: .4byte gRecruitedPokemonRef -_0802796C: - ldr r0, _08027984 - ldr r0, [r0] - ldr r2, [r0, 0x18] - ldrh r1, [r2] - ldr r0, _08027988 - ands r0, r1 - strh r0, [r2] - bl nullsub_104 - bl sub_808ED00 - b _08027A0E - .align 2, 0 -_08027984: .4byte gUnknown_203B2BC -_08027988: .4byte 0x0000fffd -_0802798C: - ldr r2, _080279B8 - ldr r0, _080279BC - ldr r0, [r0] - movs r3, 0x8 - ldrsh r1, [r0, r3] - movs r0, 0x58 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - bl GetPlayerPokemonStruct - ldrb r1, [r4, 0x2] - cmp r1, 0 - bne _080279B2 - strb r1, [r0, 0x2] - movs r0, 0x1 - strb r0, [r4, 0x2] - bl nullsub_104 -_080279B2: - bl sub_808ED00 - b _08027A0E - .align 2, 0 -_080279B8: .4byte gRecruitedPokemonRef -_080279BC: .4byte gUnknown_203B2BC -_080279C0: - movs r0, 0x8 - bl SetFriendAreaActionMenuState - b _08027A36 -_080279C8: - movs r0, 0xE - bl SetFriendAreaActionMenuState - b _08027A36 -_080279D0: - movs r0, 0xA - bl SetFriendAreaActionMenuState - b _08027A36 -_080279D8: - ldr r0, _08027A18 - bl PlaySound - ldr r4, _08027A1C - ldr r1, [r4] - ldrb r0, [r1, 0x14] - cmp r0, 0 - beq _080279F0 - adds r0, r1, 0 - adds r0, 0x14 - bl sub_8091274 -_080279F0: - bl FillInventoryGaps - ldr r0, [r4] - movs r1, 0 - strb r1, [r0, 0x14] - ldr r0, [r4] - strb r1, [r0, 0x15] - ldr r1, [r4] - movs r2, 0x8 - ldrsh r0, [r1, r2] - adds r1, 0x14 - bl GivePokemonItem - bl nullsub_104 -_08027A0E: - movs r0, 0x2 - bl SetFriendAreaActionMenuState - b _08027A36 - .align 2, 0 -_08027A18: .4byte 0x0000014d -_08027A1C: .4byte gUnknown_203B2BC -_08027A20: - movs r0, 0x4 - bl SetFriendAreaActionMenuState - b _08027A36 -_08027A28: - movs r0, 0x5 - bl SetFriendAreaActionMenuState - b _08027A36 -_08027A30: - movs r0, 0x2 - bl SetFriendAreaActionMenuState -_08027A36: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80278B4 - .align 2,0 diff --git a/asm/friend_list_menu.s b/asm/friend_list_menu.s index 98a68a4..8ce78db 100644 --- a/asm/friend_list_menu.s +++ b/asm/friend_list_menu.s @@ -1032,7 +1032,7 @@ _08025B28: beq _08025B40 adds r0, r1, 0 adds r0, 0x18 - bl sub_8091274 + bl AddHeldItemToInventory _08025B40: bl FillInventoryGaps ldr r0, [r4] @@ -1259,7 +1259,7 @@ _08025CF8: beq _08025D24 adds r0, r1, 0 adds r0, 0x18 - bl sub_8091274 + bl AddHeldItemToInventory movs r6, 0x9 _08025D24: add r4, sp, 0x10 @@ -2858,7 +2858,7 @@ _08026A10: beq _08026A28 adds r0, r1, 0 adds r0, 0x14 - bl sub_8091274 + bl AddHeldItemToInventory _08026A28: bl FillInventoryGaps ldr r0, [r4] diff --git a/asm/kangaskhan_storage_1.s b/asm/kangaskhan_storage_1.s index 9890fe4..63990e9 100644 --- a/asm/kangaskhan_storage_1.s +++ b/asm/kangaskhan_storage_1.s @@ -470,7 +470,7 @@ _0801794C: orrs r0, r1 str r0, [sp, 0x4] add r0, sp, 0x4 - bl sub_8091274 + bl AddHeldItemToInventory movs r0, 0x1D bl UpdateKangaskhanStorageState b _080179A2 @@ -638,7 +638,7 @@ _08017AB0: ldrh r2, [r3] subs r2, r1 strh r2, [r3] - bl sub_8091274 + bl AddHeldItemToInventory _08017ACE: adds r5, 0x1 cmp r5, 0xEF diff --git a/asm/kecleon_items.s b/asm/kecleon_items.s index 87f2bdd..2d0fb02 100644 --- a/asm/kecleon_items.s +++ b/asm/kecleon_items.s @@ -1051,480 +1051,4 @@ _08019728: .4byte gUnknown_80D4920 _0801972C: .4byte gUnknown_80D4928 thumb_func_end sub_8019700 - thumb_func_start sub_8019730 -sub_8019730: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - beq _08019740 - b _0801984A -_08019740: - ldr r1, [sp] - cmp r1, 0x1 - beq _0801974C - ldr r0, _08019760 - ldr r0, [r0] - str r1, [r0, 0x28] -_0801974C: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x6 - bls _08019756 - b _0801984A -_08019756: - lsls r0, 2 - ldr r1, _08019764 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08019760: .4byte gUnknown_203B210 -_08019764: .4byte _08019768 - .align 2, 0 -_08019768: - .4byte _08019844 - .4byte _08019784 - .4byte _080197AC - .4byte _080197E4 - .4byte _0801984A - .4byte _0801984A - .4byte _0801983C -_08019784: - bl sub_8019D8C - cmp r0, 0 - bne _08019794 - movs r0, 0x5 - bl UpdateKecleonStoreState - b _0801984A -_08019794: - bl GetNumberOfFilledInventorySlots - cmp r0, 0x13 - ble _080197A4 - movs r0, 0xA - bl UpdateKecleonStoreState - b _0801984A -_080197A4: - movs r0, 0xF - bl UpdateKecleonStoreState - b _0801984A -_080197AC: - bl GetNumberOfFilledInventorySlots - cmp r0, 0 - beq _080197EC - ldr r0, _080197D8 - ldr r0, [r0] - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _080197FE - ldr r0, _080197DC - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, _080197E0 - cmp r1, r0 - bgt _08019822 - movs r0, 0x17 - bl UpdateKecleonStoreState - b _0801984A - .align 2, 0 -_080197D8: .4byte gUnknown_203B210 -_080197DC: .4byte gTeamInventory_203B460 -_080197E0: .4byte 0x0001869e -_080197E4: - bl GetNumberOfFilledInventorySlots - cmp r0, 0 - bne _080197F4 -_080197EC: - movs r0, 0x9 - bl UpdateKecleonStoreState - b _0801984A -_080197F4: - ldr r0, _08019808 - ldr r1, [r0] - ldr r0, [r1, 0x14] - cmp r0, 0 - bne _0801980C -_080197FE: - movs r0, 0x8 - bl UpdateKecleonStoreState - b _0801984A - .align 2, 0 -_08019808: .4byte gUnknown_203B210 -_0801980C: - ldr r0, _0801982C - ldr r0, [r0] - movs r2, 0x98 - lsls r2, 2 - adds r0, r2 - ldr r1, [r1, 0x18] - ldr r0, [r0] - adds r1, r0 - ldr r0, _08019830 - cmp r1, r0 - ble _08019834 -_08019822: - movs r0, 0x7 - bl UpdateKecleonStoreState - b _0801984A - .align 2, 0 -_0801982C: .4byte gTeamInventory_203B460 -_08019830: .4byte 0x0001869f -_08019834: - movs r0, 0x1F - bl UpdateKecleonStoreState - b _0801984A -_0801983C: - movs r0, 0x2 - bl UpdateKecleonStoreState - b _0801984A -_08019844: - movs r0, 0x3 - bl UpdateKecleonStoreState -_0801984A: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8019730 - - thumb_func_start sub_8019850 -sub_8019850: - push {r4,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080198DE - ldr r0, [sp] - cmp r0, 0x5 - beq _08019874 - cmp r0, 0x5 - bgt _0801986E - cmp r0, 0x1 - beq _080198D8 - b _080198DE -_0801986E: - cmp r0, 0x6 - beq _080198D8 - b _080198DE -_08019874: - ldr r4, _080198A8 - ldr r0, [r4] - ldr r0, [r0, 0x10] - negs r0, r0 - bl AddToTeamMoney - ldr r1, [r4] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _080198AC - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - bl xxx_get_inv_unk230_at_809185C - bl sub_8091274 - ldr r0, [r4] - adds r0, 0x20 - ldrb r0, [r0] - bl xxx_init_unk230_substruct - bl xxx_fill_unk230_gaps - b _080198C8 - .align 2, 0 -_080198A8: .4byte gUnknown_203B210 -_080198AC: - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - bl xxx_get_unk250_at_8091A90 - bl sub_8091274 - ldr r0, [r4] - adds r0, 0x21 - ldrb r0, [r0] - bl xxx_init_inv_unk250_at_8091A74 - bl xxx_fill_inv_unk250_gaps_8091AA8 -_080198C8: - movs r0, 0xA6 - lsls r0, 1 - bl PlaySound - movs r0, 0x11 - bl UpdateKecleonStoreState - b _080198DE -_080198D8: - movs r0, 0x10 - bl UpdateKecleonStoreState -_080198DE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8019850 - - thumb_func_start sub_80198E8 -sub_80198E8: - push {r4,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0801993A - ldr r0, [sp] - cmp r0, 0x5 - beq _0801990C - cmp r0, 0x5 - bgt _08019906 - cmp r0, 0x1 - beq _08019934 - b _0801993A -_08019906: - cmp r0, 0x6 - beq _08019934 - b _0801993A -_0801990C: - ldr r4, _08019930 - ldr r0, [r4] - ldr r0, [r0, 0x10] - bl AddToTeamMoney - ldr r0, [r4] - ldr r0, [r0, 0x24] - bl ShiftItemsDownFrom - movs r0, 0xA6 - lsls r0, 1 - bl PlaySound - movs r0, 0x19 - bl UpdateKecleonStoreState - b _0801993A - .align 2, 0 -_08019930: .4byte gUnknown_203B210 -_08019934: - movs r0, 0x18 - bl UpdateKecleonStoreState -_0801993A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80198E8 - - thumb_func_start sub_8019944 -sub_8019944: - push {r4,r5,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080199C2 - ldr r0, [sp] - cmp r0, 0x5 - beq _08019968 - cmp r0, 0x5 - bgt _08019962 - cmp r0, 0x1 - beq _080199BC - b _080199C2 -_08019962: - cmp r0, 0x6 - beq _080199BC - b _080199C2 -_08019968: - movs r4, 0 - ldr r5, _080199B4 -_0801996C: - lsls r1, r4, 2 - ldr r0, [r5] - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0801998E - ldrb r0, [r2, 0x2] - bl CanSellItem - lsls r0, 24 - cmp r0, 0 - beq _0801998E - adds r0, r4, 0 - bl ClearItemSlotAt -_0801998E: - adds r4, 0x1 - cmp r4, 0x13 - ble _0801996C - bl FillInventoryGaps - ldr r0, _080199B8 - ldr r0, [r0] - ldr r0, [r0, 0x18] - bl AddToTeamMoney - movs r0, 0xA6 - lsls r0, 1 - bl PlaySound - movs r0, 0x20 - bl UpdateKecleonStoreState - b _080199C2 - .align 2, 0 -_080199B4: .4byte gTeamInventory_203B460 -_080199B8: .4byte gUnknown_203B210 -_080199BC: - movs r0, 0x1 - bl UpdateKecleonStoreState -_080199C2: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8019944 - - thumb_func_start sub_80199CC -sub_80199CC: - push {r4,r5,lr} - ldr r0, _080199E0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080199E4 - movs r0, 0x1 - bl sub_8019EDC - b _080199EA - .align 2, 0 -_080199E0: .4byte gUnknown_203B210 -_080199E4: - movs r0, 0x1 - bl sub_801A2A8 -_080199EA: - cmp r0, 0x2 - beq _08019AD4 - cmp r0, 0x2 - bhi _080199FA - cmp r0, 0x1 - bne _080199F8 - b _08019AF4 -_080199F8: - b _08019B00 -_080199FA: - cmp r0, 0x3 - beq _08019A04 - cmp r0, 0x4 - beq _08019A6C - b _08019B00 -_08019A04: - ldr r4, _08019A24 - ldr r0, [r4] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08019A28 - bl sub_8019FB0 - ldr r1, [r4] - adds r1, 0x20 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x20 - ldrb r0, [r0] - bl xxx_get_inv_unk230_at_809185C - b _08019A3C - .align 2, 0 -_08019A24: .4byte gUnknown_203B210 -_08019A28: - bl sub_801A37C - ldr r1, [r4] - adds r1, 0x21 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x21 - ldrb r0, [r0] - bl xxx_get_unk250_at_8091A90 -_08019A3C: - adds r5, r0, 0 - ldr r4, _08019A68 - ldr r0, [r4] - adds r0, 0x1C - ldrb r1, [r5] - movs r2, 0 - bl xxx_init_itemslot_8090A8C - ldr r1, [r4] - ldrb r0, [r5, 0x1] - strb r0, [r1, 0x1D] - ldr r0, [r4] - adds r0, 0x1C - bl GetStackBuyPrice - ldr r1, [r4] - str r0, [r1, 0x10] - movs r0, 0x14 - bl UpdateKecleonStoreState - b _08019B00 - .align 2, 0 -_08019A68: .4byte gUnknown_203B210 -_08019A6C: - ldr r4, _08019A8C - ldr r0, [r4] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08019A90 - bl sub_8019FB0 - ldr r1, [r4] - adds r1, 0x20 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x20 - ldrb r0, [r0] - bl xxx_get_inv_unk230_at_809185C - b _08019AA4 - .align 2, 0 -_08019A8C: .4byte gUnknown_203B210 -_08019A90: - bl sub_801A37C - ldr r1, [r4] - adds r1, 0x21 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x21 - ldrb r0, [r0] - bl xxx_get_unk250_at_8091A90 -_08019AA4: - adds r5, r0, 0 - ldr r4, _08019AD0 - ldr r0, [r4] - adds r0, 0x1C - ldrb r1, [r5] - movs r2, 0 - bl xxx_init_itemslot_8090A8C - ldr r1, [r4] - ldrb r0, [r5, 0x1] - strb r0, [r1, 0x1D] - ldr r0, [r4] - adds r0, 0x1C - bl GetStackBuyPrice - ldr r1, [r4] - str r0, [r1, 0x10] - movs r0, 0x15 - bl UpdateKecleonStoreState - b _08019B00 - .align 2, 0 -_08019AD0: .4byte gUnknown_203B210 -_08019AD4: - ldr r0, _08019AE4 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08019AE8 - bl sub_801A010 - b _08019AEC - .align 2, 0 -_08019AE4: .4byte gUnknown_203B210 -_08019AE8: - bl sub_801A3DC -_08019AEC: - movs r0, 0x1 - bl UpdateKecleonStoreState - b _08019B00 -_08019AF4: - movs r0, 0 - bl sub_801AD34 - movs r0, 0x1 - bl DrawTeamMoneyBox -_08019B00: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80199CC - .align 2,0 diff --git a/asm/makuhita_dojo.s b/asm/makuhita_dojo.s index 7d7680e..e19ef0c 100644 --- a/asm/makuhita_dojo.s +++ b/asm/makuhita_dojo.s @@ -135,7 +135,7 @@ _08030074: str r1, [sp, 0x14] ldr r0, _080300BC add r1, sp, 0x14 - bl sub_8090208 + bl PrintYellowDungeonNametoBuffer ldr r2, _080300C0 ldr r3, [r5] ldr r1, [r3, 0x4] diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s index 43173ec..99129d1 100644 --- a/asm/pokemon_3.s +++ b/asm/pokemon_3.s @@ -1252,7 +1252,7 @@ _0808FDB0: mov r1, r10 adds r1, 0x1C adds r0, r4, 0 - bl sub_8090208 + bl PrintYellowDungeonNametoBuffer ldr r0, _0808FF0C ldr r2, [r0] str r5, [sp] diff --git a/asm/wonder_mail_5.s b/asm/wonder_mail_5.s index aa081ae..86b83e0 100644 --- a/asm/wonder_mail_5.s +++ b/asm/wonder_mail_5.s @@ -5,9 +5,8 @@ .text - - thumb_func_start sub_8031AE8 -sub_8031AE8: + thumb_func_start DisplayMissionObjectives +DisplayMissionObjectives: push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -308,264 +307,6 @@ _08031D4E: .align 2, 0 _08031D68: .4byte gUnknown_80E1F94 _08031D6C: .4byte gUnknown_203B330 - thumb_func_end sub_8031AE8 - - thumb_func_start sub_8031D70 -sub_8031D70: - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - ldr r5, _08031DC4 - movs r0, 0x7C - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - stm r0!, {r6} - bl sub_801317C - ldr r0, [r5] - str r4, [r0, 0x10] - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 3 - adds r1, 0x18 - adds r1, r0, r1 - str r1, [r0, 0x14] - adds r0, 0x18 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x10] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x18 - ldr r0, _08031DC8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - bl sub_8031E00 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08031DC4: .4byte gUnknown_203B334 -_08031DC8: .4byte gUnknown_80E1FC4 - thumb_func_end sub_8031D70 - - thumb_func_start sub_8031DCC -sub_8031DCC: - push {lr} - ldr r0, _08031DEC - ldr r1, [r0] - adds r0, r1, 0x4 - ldr r1, [r1, 0x10] - bl sub_8012A64 - cmp r0, 0x1 - beq _08031DF0 - cmp r0, 0x2 - bne _08031DFA - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08031DFC - .align 2, 0 -_08031DEC: .4byte gUnknown_203B334 -_08031DF0: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08031DFC -_08031DFA: - movs r0, 0 -_08031DFC: - pop {r1} - bx r1 - thumb_func_end sub_8031DCC - - thumb_func_start sub_8031E00 -sub_8031E00: - push {lr} - bl sub_8031E58 - bl sub_8031E74 - pop {r0} - bx r0 - thumb_func_end sub_8031E00 - - thumb_func_start sub_8031E10 -sub_8031E10: - push {r4,r5,lr} - ldr r4, _08031E50 - ldr r2, [r4] - cmp r2, 0 - beq _08031E4A - ldr r0, [r2, 0x10] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x18 - ldr r0, _08031E54 - 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, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08031E4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08031E50: .4byte gUnknown_203B334 -_08031E54: .4byte gUnknown_80E1FA8 - thumb_func_end sub_8031E10 - - thumb_func_start sub_8031E58 -sub_8031E58: - push {lr} - bl ResetUnusedInputStruct - ldr r0, _08031E70 - ldr r0, [r0] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r0} - bx r0 - .align 2, 0 -_08031E70: .4byte gUnknown_203B334 - thumb_func_end sub_8031E58 - - thumb_func_start sub_8031E74 -sub_8031E74: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x3C - ldr r3, _08031EC0 - ldr r5, _08031EC4 - ldr r2, [r5] - ldr r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 4 - ldr r4, [r3] - adds r4, r0 - ldr r0, [r2, 0x10] - bl sub_80073B8 - ldr r2, _08031EC8 - ldr r0, [r5] - ldr r3, [r0, 0x10] - movs r0, 0 - str r0, [sp] - movs r0, 0x14 - movs r1, 0 - bl xxx_call_draw_string - add r0, sp, 0x4 - adds r1, r4, 0 - bl sub_803D2C0 - movs r7, 0 - mov r8, r5 -_08031EB2: - cmp r7, 0x4 - ble _08031ED0 - cmp r7, 0xC - bgt _08031ECC - movs r6, 0x6 - movs r5, 0x16 - b _08031F00 - .align 2, 0 -_08031EC0: .4byte gUnknown_203B480 -_08031EC4: .4byte gUnknown_203B334 -_08031EC8: .4byte gUnknown_80E1FDC -_08031ECC: - cmp r7, 0x11 - bgt _08031ED6 -_08031ED0: - movs r6, 0x7 - movs r5, 0x15 - b _08031F00 -_08031ED6: - cmp r7, 0x16 - ble _08031EE8 - cmp r7, 0x1E - bgt _08031EE4 - movs r6, 0x6 - movs r5, 0x25 - b _08031F00 -_08031EE4: - cmp r7, 0x23 - bgt _08031EEE -_08031EE8: - movs r6, 0x7 - movs r5, 0x24 - b _08031F00 -_08031EEE: - cmp r7, 0x28 - ble _08031EFC - cmp r7, 0x30 - bgt _08031EFC - movs r6, 0x6 - movs r5, 0x34 - b _08031F00 -_08031EFC: - movs r6, 0x7 - movs r5, 0x33 -_08031F00: - adds r0, r7, 0 - movs r1, 0x12 - bl __modsi3 - movs r1, 0xB - adds r4, r0, 0 - muls r4, r1 - adds r4, 0x6 - mov r0, sp - adds r0, r7 - adds r0, 0x4 - ldrb r2, [r0] - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x10] - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - adds r3, r6, 0 - bl sub_8012C60 - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x10] - adds r2, r5, 0 - adds r2, 0xA - movs r1, 0x5 - str r1, [sp] - adds r1, r4, 0 - movs r3, 0xA - bl sub_80078A4 - adds r7, 0x1 - cmp r7, 0x35 - ble _08031EB2 - ldr r0, _08031F5C - ldr r0, [r0] - ldr r0, [r0, 0x10] - bl sub_80073E0 - add sp, 0x3C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031F5C: .4byte gUnknown_203B334 - thumb_func_end sub_8031E74 + thumb_func_end DisplayMissionObjectives .align 2,0 diff --git a/include/constants/dungeon.h b/include/constants/dungeon.h index 19f5340..6987c61 100644 --- a/include/constants/dungeon.h +++ b/include/constants/dungeon.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_DUNGEON_H #define GUARD_CONSTANTS_DUNGEON_H +#define NUM_DUNGEON_MAZE (NUM_DUNGEONS - DUNGEON_NORMAL_MAZE_2) + enum Dungeon { DUNGEON_TINY_WOODS = 0, @@ -101,6 +103,7 @@ enum Dungeon DUNGEON_TEAM_RUMBLEROCK = 95, DUNGEON_RESCUE_TEAM_2 = 96, DUNGEON_RESCUE_TEAM_MAZE = 97, + NUM_DUNGEONS }; #endif diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index dfddc22..1080679 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -12,7 +12,7 @@ struct unkStruct_203B2BC struct HeldItem itemToGive; struct HeldItem unk14; struct PokemonStruct *unk18; - u32 unk1C; + u8 unk1C; u32 unk20; u16 unk24; struct PokemonMove unk28[8]; diff --git a/include/item.h b/include/item.h index 5da4c67..6ac6847 100644 --- a/include/item.h +++ b/include/item.h @@ -104,15 +104,17 @@ bool8 IsGummiItem(u8); void xxx_init_unk230_substruct(u8); bool8 xxx_insert_unk230_80919FC(u8); struct HeldItem *xxx_get_inv_unk230_at_809185C(u8); +void xxx_fill_unk230_gaps(); struct HeldItem* xxx_get_unk250_at_8091A90(u8); s32 xxx_count_inv_unk230(); u32 xxx_count_non_empty_inv_unk250_8091A48(); void sub_8091BB4(u8); void sub_8090F58(void*, u8 *, struct ItemSlot *, struct unkStruct_8090F58*); void ShiftItemsDownFrom(s32 start); +void ClearItemSlotAt(u32 index); void MoveToStorage(struct ItemSlot* slot); void FillInventoryGaps(); -bool8 sub_8091274(struct HeldItem* slot); +bool8 AddHeldItemToInventory(struct HeldItem* slot); bool8 IsNotMoneyOrUsedTMItem(u8 id); s32 FindItemInInventory(u8 itemIndex); diff --git a/include/kecleon_items.h b/include/kecleon_items.h index 11cb0a7..0719804 100644 --- a/include/kecleon_items.h +++ b/include/kecleon_items.h @@ -15,7 +15,7 @@ struct unkStruct_203B210 u32 unkC; s32 itemSellPrice; u32 unk14; - u32 unk18; + s32 unk18; struct ItemSlot unk1C; u8 unk20; u8 unk21; diff --git a/include/pokemon.h b/include/pokemon.h index af6c103..c50dc75 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -22,7 +22,6 @@ struct Offense { struct unkPokeSubStruct_4 { u8 dungeonIndex; u8 dungeonFloor; - u16 fill6; }; struct unkPokeSubStruct_C @@ -35,7 +34,7 @@ struct PokemonStruct { // size: 0x58 /* 0x0 */ u16 unk0; // recruited?? - /* 0x1 */ u8 unk2; + /* 0x1 */ bool8 isLeader; /* 0x3 */ u8 unkHasNextStage; // set to a random value? /* 0x4 */ struct unkPokeSubStruct_4 unk4; /* 0x8 */ s16 speciesNum; // species # @@ -76,7 +75,7 @@ struct PokemonStruct2 { // size 0x68 u16 unk0; // corresponds to unk0 inPokemonStruct - u8 unk2; // unk2 + bool8 isLeader; // unk2 u8 unkHasNextStage; // unk3 struct unkPokeSubStruct_4 unk4; // unk4 u16 IQ; // IQ (other offset) diff --git a/ld_script.txt b/ld_script.txt index b9db591..13ffffd 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -144,6 +144,7 @@ SECTIONS { asm/wonder_mail_4.o(.text); src/post_office_guide.o(.text); asm/wonder_mail_5.o(.text); + asm/code_8031D70.o(.text); src/adventure_log.o(.text); src/friend_rescue.o(.text); asm/friend_rescue.o(.text); @@ -277,9 +278,9 @@ SECTIONS { src/pokemon_3.o(.text); asm/pokemon_3.o(.text); src/dungeon.o(.text); - asm/code_809017C.o(.text); - src/code_8090208.o(.text); - asm/code_8090208.o(.text); + asm/dungeon.o(.text); + src/dungeon_2.o(.text); + asm/dungeon_2.o(.text); src/items.o(.text); src/rescue_team_info.o(.text); src/text_util.o(.text); diff --git a/src/code_8090208.c b/src/code_8090208.c deleted file mode 100644 index 8322ffc..0000000 --- a/src/code_8090208.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "global.h" -#include "dungeon.h" -#include "code_800D090.h" - -extern const char gUnknown_8108F10[]; -extern const char gUnknown_8108F18[]; -extern const char gUnknown_8108F2C[]; - -struct unkDungeonStruct -{ - u8 index; - u8 floor; -}; - -void sub_8090208(u8 *buffer, struct unkDungeonStruct *dungeonLocation) -{ - sprintf_2(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->index].name1); // {COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} (normal floor print (no B) -} - -void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkDungeonStruct *dungeonLocation) -{ - if(gDungeons[dungeonLocation->index].stairDirection != 0){ - sprintf_2(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->index].name1, dungeonLocation->floor); //_F - } - else - { - sprintf_2(buffer, gUnknown_8108F2C, gDungeonNames[dungeonLocation->index].name1, dungeonLocation->floor); // B _F - } -} - -void CopyDungeonName1toBuffer(u8 *buffer, struct unkDungeonStruct *dungeonLocation) -{ - strncpy(buffer, gDungeonNames[dungeonLocation->index].name1, 0x50); -} diff --git a/src/code_8095824.c b/src/code_8095824.c index b366574..8792545 100644 --- a/src/code_8095824.c +++ b/src/code_8095824.c @@ -40,7 +40,7 @@ u32 sub_80954CC(u8 *a, u32 b) temp = &gUnknown_203B484->unk4; memset(temp, 0, sizeof(struct PokemonStruct)); RestoreIntegerBits(&backup, &temp->unk0, 2); - RestoreIntegerBits(&backup, &temp->unk2, 1); + RestoreIntegerBits(&backup, &temp->isLeader, 1); RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7); xxx_restore_poke_sub_4_8090314(&backup, &temp->unk4); RestoreIntegerBits(&backup, &temp->speciesNum, 9); @@ -82,7 +82,7 @@ u32 sub_8095624(u8 *a, u32 b) SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20); temp = &gUnknown_203B484->unk4; SaveIntegerBits(&backup, &temp->unk0, 2); - SaveIntegerBits(&backup, &temp->unk2, 1); + SaveIntegerBits(&backup, &temp->isLeader, 1); SaveIntegerBits(&backup, &temp->unkHasNextStage, 7); xxx_save_poke_sub_4_80902F4(&backup, &temp->unk4); SaveIntegerBits(&backup, &temp->speciesNum, 9); diff --git a/src/dungeon_2.c b/src/dungeon_2.c new file mode 100644 index 0000000..18b6fe5 --- /dev/null +++ b/src/dungeon_2.c @@ -0,0 +1,83 @@ +#include "global.h" +#include "dungeon.h" +#include "code_800D090.h" +#include "pokemon.h" +#include "code_8092334.h" +#include "constants/dungeon.h" + +extern const char gUnknown_8108F10[]; +extern const char gUnknown_8108F18[]; +extern const char gUnknown_8108F2C[]; +extern u8 gUnknown_81077A8[]; +extern u8 gUnknown_81077E8[]; + +void sub_80901D8(struct unkPokeSubStruct_4 *param_1,struct unkPokeSubStruct_4 *param_2) +{ + if ((u8)(param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) { + param_1->dungeonIndex = DUNGEON_NORMAL_MAZE; + param_1->dungeonFloor = (param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) * 3 + param_2->dungeonFloor; + } + else { + *param_1 = *param_2; + } +} + +void PrintYellowDungeonNametoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +{ + sprintf_2(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->dungeonIndex].name1); // {COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} (normal floor print (no B) +} + +void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +{ + if(gDungeons[dungeonLocation->dungeonIndex].stairDirection != 0){ + sprintf_2(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); //_F + } + else + { + sprintf_2(buffer, gUnknown_8108F2C, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); // B _F + } +} + +void CopyDungeonName1toBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +{ + strncpy(buffer, gDungeonNames[dungeonLocation->dungeonIndex].name1, 0x50); +} + +u8 sub_8090298(u8 dungeon) +{ + if ((u8)(dungeon - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) + return 4; + else if(dungeon > DUNGEON_PURITY_FOREST) + return 1; + else + return gUnknown_81077A8[dungeon]; +} + +u8 sub_80902C8(u8 dungeon) +{ + if ((u8)(dungeon - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) + return 0; + else if(dungeon > DUNGEON_PURITY_FOREST) + return 0; + else + return gUnknown_81077E8[dungeon]; +} + +void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1) +{ + SaveIntegerBits(r0, &r1->dungeonIndex, 0x7); + SaveIntegerBits(r0, &r1->dungeonFloor, 0x7); +} + +void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1) +{ + r1->dungeonIndex = 0; + r1->dungeonFloor = 0; + RestoreIntegerBits(r0, &r1->dungeonIndex, 0x7); + RestoreIntegerBits(r0, &r1->dungeonFloor, 0x7); +} + +u8 GetDungeonUnk1(u8 dungeon) +{ + return gDungeons[dungeon].unk1; +} diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 3f1bb5f..38650d0 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -43,11 +43,129 @@ extern u32 sub_801F194(void); u32 sub_8027E18(struct PokemonStruct *); u8 sub_8027E4C(struct PokemonStruct *r0); + extern u32 sub_801BF48(void); extern void sub_801BF98(void); extern u32 sub_80244E4(void); extern void sub_802453C(void); +extern u32 sub_8023A94(u32); +extern bool8 sub_808D750(s16 index_); +extern struct PokemonStruct *GetPlayerPokemonStruct(void); +extern void sub_808ED00(); +extern s16 sub_8023B44(void); +extern void sub_8023C60(void); + +void sub_80277FC(void) +{ + struct PokemonStruct *iVar4; + + switch(sub_8023A94(1)) { + case 0: + case 1: + break; + case 3: + gUnknown_203B2BC->targetPoke = sub_8023B44(); + iVar4 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; + gUnknown_203B2BC->unk18 = iVar4; + gUnknown_203B2BC->unk1C = iVar4->isLeader; + PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk14); + SetFriendAreaActionMenuState(3); + break; + case 4: + gUnknown_203B2BC->targetPoke = sub_8023B44(); + iVar4 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; + gUnknown_203B2BC->unk18 = iVar4; + gUnknown_203B2BC->unk1C = iVar4->isLeader; + PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk14); + SetFriendAreaActionMenuState(4); + break; + case 2: + sub_8023C60(); + SetFriendAreaActionMenuState(0x11); + break; + } +} + +void sub_80278B4(void) +{ + struct PokemonStruct *playerStruct; + struct PokemonStruct *puVar3; + struct PokemonStruct *iVar4; + int local_c; + + local_c = 0; + sub_8023A94(0); + if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == '\0') && (sub_8013114(&gUnknown_203B2BC->unk7C,&local_c), local_c != 1)) { + gUnknown_203B2BC->unk70 = local_c; + } + switch(local_c) { + case 6: + if (sub_808D750(gUnknown_203B2BC->targetPoke) != '\0') { +#ifdef NONMATCHING + puVar3 = &gRecruiedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; +#else + register size_t offset asm("r1") = offsetof(struct unkStruct_203B45C, pokemon[gUnknown_203B2BC->targetPoke]); + struct PokemonStruct* p = gRecruitedPokemonRef->pokemon; + size_t addr = offset + (size_t)p; + puVar3 = (struct PokemonStruct*)addr; +#endif + puVar3->unk0 |= 2; + nullsub_104(); + } + sub_808ED00(); + SetFriendAreaActionMenuState(2); + break; + case 7: + gUnknown_203B2BC->unk18->unk0 &= 0xfffd; + nullsub_104(); + sub_808ED00(); + SetFriendAreaActionMenuState(2); + break; + case 8: + iVar4 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke]; + playerStruct = GetPlayerPokemonStruct(); + if (!iVar4->isLeader) { + playerStruct->isLeader = FALSE; + iVar4->isLeader = TRUE; + nullsub_104(); + } + sub_808ED00(); + SetFriendAreaActionMenuState(2); + break; + case 9: + SetFriendAreaActionMenuState(8); + break; + case 0xc: + SetFriendAreaActionMenuState(0xe); + break; + case 10: + SetFriendAreaActionMenuState(10); + break; + case 0xb: + PlaySound(0x14d); + if (gUnknown_203B2BC->unk14.itemIndex != ITEM_ID_NOTHING) { + AddHeldItemToInventory(&gUnknown_203B2BC->unk14); + } + FillInventoryGaps(); + gUnknown_203B2BC->unk14.itemIndex = 0; + gUnknown_203B2BC->unk14.numItems = 0; + GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk14); + nullsub_104(); + SetFriendAreaActionMenuState(2); + break; + case 4: + SetFriendAreaActionMenuState(4); + break; + case 5: + SetFriendAreaActionMenuState(5); + break; + case 1: + SetFriendAreaActionMenuState(2); + break; + } +} + void sub_8027A40(void) { switch(sub_80244E4()) @@ -171,7 +289,7 @@ void sub_8027BD8(void) ShiftItemsDownFrom(gUnknown_203B2BC->itemIndex); FillInventoryGaps(); if (gUnknown_203B2BC->unk14.itemIndex != 0) { - sub_8091274(&gUnknown_203B2BC->unk14); + AddHeldItemToInventory(&gUnknown_203B2BC->unk14); } GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->itemToGive); sub_801A928(); @@ -267,7 +385,7 @@ void sub_8027D40(u32 r0, struct HeldItem *heldItem) u32 sub_8027D9C(struct PokemonStruct *r0) { u32 var1; - if(r0->unk2 == 0) + if(r0->isLeader == 0) { var1 = 0; if(r0->unk4.dungeonIndex == 0x41) @@ -288,7 +406,7 @@ u32 sub_8027DCC(struct PokemonStruct *r0) u32 var1; if(sub_808D3BC() != r0) if(sub_808D3F8() != r0) - if(r0->unk2 == 0) + if(r0->isLeader == 0) { var1 = 0; if(r0->unk4.dungeonIndex == 0x41) @@ -345,7 +463,7 @@ void sub_8027EB8(void) { case 1: PlaySound(0x14d); - sub_8091274(&gUnknown_203B2BC->unk14); + AddHeldItemToInventory(&gUnknown_203B2BC->unk14); FillInventoryGaps(); gUnknown_203B2BC->unk14.itemIndex = 0; gUnknown_203B2BC->unk14.numItems = 0; diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 142aeca..fe9de8c 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -222,7 +222,7 @@ void sub_8026C14(void) ShiftItemsDownFrom(gUnknown_203B2B8->unkC); FillInventoryGaps(); if (gUnknown_203B2B8->unk14.itemIndex != '\0') { - sub_8091274(&gUnknown_203B2B8->unk14); + AddHeldItemToInventory(&gUnknown_203B2B8->unk14); nextState = 0x10; } HeldItemToSlot(&slot,&gUnknown_203B2B8->unk10); @@ -342,7 +342,7 @@ void sub_8026E08(u32 r0) u32 sub_8026E88(struct PokemonStruct *r0) { u8 iVar3; - if(r0->unk2 == 0) + if(r0->isLeader == 0) { iVar3 = (r0->unk4.dungeonIndex == 0x41); if(iVar3 != 0) @@ -359,7 +359,7 @@ u32 sub_8026EB8(struct PokemonStruct *r0) u8 iVar3; if(sub_808D3BC() != r0) if(sub_808D3F8() != r0) - if(r0->unk2 == 0) + if(r0->isLeader == 0) { iVar3 = (r0->unk4.dungeonIndex == 0x41); if(iVar3 != 0) @@ -414,7 +414,7 @@ void sub_8026FA4(void) { case 1: PlaySound(0x14d); - sub_8091274(&gUnknown_203B2B8->unk14); + AddHeldItemToInventory(&gUnknown_203B2B8->unk14); FillInventoryGaps(); gUnknown_203B2B8->unk14.itemIndex = 0; gUnknown_203B2B8->unk14.numItems = 0; diff --git a/src/items.c b/src/items.c index e4bdc6a..6d2acaf 100644 --- a/src/items.c +++ b/src/items.c @@ -586,7 +586,7 @@ bool8 sub_809124C(u8 itemIndex, u8 param_3) return AddItemToInventory(&temp); } -bool8 sub_8091274(struct HeldItem* slot) +bool8 AddHeldItemToInventory(struct HeldItem* slot) { struct ItemSlot temp; @@ -1083,7 +1083,7 @@ struct HeldItem* xxx_get_unk250_at_8091A90(u8 index) { return &gTeamInventory_203B460->unk250[index]; } -void xxx_fill_inv_unk250_gaps_8091AA8(u8 index) { +void xxx_fill_inv_unk250_gaps_8091AA8(void) { s32 slot_checking = 0; s32 last_filled = 0; diff --git a/src/kangaskhan_storage_3.c b/src/kangaskhan_storage_3.c index 1c65da6..568e69f 100644 --- a/src/kangaskhan_storage_3.c +++ b/src/kangaskhan_storage_3.c @@ -159,7 +159,7 @@ void sub_80186F8(void) item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | (0x80 << 1); } gTeamInventory_203B460->teamStorage[item.temp.norm.itemIndex] -= item.temp.norm.numItems; - sub_8091274((struct HeldItem *)&item); + AddHeldItemToInventory((struct HeldItem *)&item); } } FillInventoryGaps(); @@ -218,7 +218,7 @@ void sub_8018854(void) itemsCast = (gUnknown_203B20C->unk8.numItems << 8); item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast; - sub_8091274((struct HeldItem *)&item); + AddHeldItemToInventory((struct HeldItem *)&item); if(sub_801CF14(1) == 0) if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { @@ -319,7 +319,7 @@ void sub_80189C8(void) itemsCast = (gUnknown_203B20C->unk8.numItems << 8); item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast; - sub_8091274((struct HeldItem *)&item); + AddHeldItemToInventory((struct HeldItem *)&item); if(sub_801CF14(1) == 0) if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index cd5df5b..e504f81 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -99,12 +99,215 @@ extern void sub_8013984(u8 *); extern void sub_801A064(void); extern void sub_801A0D8(void); extern void AddMenuCursorSprite(void *); -extern s32 xxx_count_inv_unk230(); extern u8 sub_801A37C(void); extern u16 gUnknown_203B228; extern u16 gUnknown_203B22A; extern struct UnkTextStruct2 gUnknown_80DB95C; +extern void sub_801A010(void); +extern void sub_801A3DC(void); +extern void sub_801AD34(u32); +extern void PlaySound(u16 songIndex); + +extern void xxx_init_inv_unk250_at_8091A74(u8 index); +extern void xxx_fill_inv_unk250_gaps_8091AA8(void); + +u32 sub_8019D8C(void); + +void sub_8019730(void) +{ + s32 local_8; + + if (sub_80144A4(&local_8) != 0) { + return; + } + if (local_8 != 1) { + gUnknown_203B210->unk28 = local_8; + } + switch(local_8) { + case 2: + if (sub_8019D8C() == 0) { + UpdateKecleonStoreState(5); + } + else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { + UpdateKecleonStoreState(0xA); + } + else { + UpdateKecleonStoreState(0xF); + } + break; + case 3: + if (GetNumberOfFilledInventorySlots() == 0) { + UpdateKecleonStoreState(9); + } + else if (gUnknown_203B210->unk14 == 0) { + UpdateKecleonStoreState(8); + } + else if (gTeamInventory_203B460->teamMoney < 99999) { + UpdateKecleonStoreState(0x17); + } + else + UpdateKecleonStoreState(7); + break; + case 4: + if (GetNumberOfFilledInventorySlots() == 0) + UpdateKecleonStoreState(9); + else if (gUnknown_203B210->unk14 == 0) + UpdateKecleonStoreState(8); + else if (gUnknown_203B210->unk18 + gTeamInventory_203B460->teamMoney > 99999) { + UpdateKecleonStoreState(7); + } + else + UpdateKecleonStoreState(0x1f); + break; + case 7: + UpdateKecleonStoreState(2); + break; + case 1: + UpdateKecleonStoreState(3); + break; + } +} + +void sub_8019850(void) +{ + s32 local_c; + + if (sub_80144A4(&local_c) == 0) { + switch(local_c) + { + case 5: + AddToTeamMoney(-gUnknown_203B210->itemSellPrice); + if (gUnknown_203B210->unk4 != '\0') { + AddHeldItemToInventory(xxx_get_inv_unk230_at_809185C(gUnknown_203B210->unk20)); + xxx_init_unk230_substruct(gUnknown_203B210->unk20); + xxx_fill_unk230_gaps(); + } + else { + AddHeldItemToInventory(xxx_get_unk250_at_8091A90(gUnknown_203B210->unk21)); + xxx_init_inv_unk250_at_8091A74(gUnknown_203B210->unk21); + xxx_fill_inv_unk250_gaps_8091AA8(); + } + PlaySound(0x14c); + UpdateKecleonStoreState(0x11); + break; + case 6: + case 1: + UpdateKecleonStoreState(0x10); + break; + } + } +} + +void sub_80198E8(void) +{ + s32 local_c; + + if (sub_80144A4(&local_c) == 0) { + switch(local_c) + { + case 5: + AddToTeamMoney(gUnknown_203B210->itemSellPrice); + ShiftItemsDownFrom(gUnknown_203B210->unk24); + PlaySound(0x14c); + UpdateKecleonStoreState(0x19); + break; + case 6: + case 1: + UpdateKecleonStoreState(0x18); + break; + } + } +} + +void sub_8019944(void) +{ + s32 slotIndex; + s32 local_10; + struct ItemSlot *itemSlot; + + if (sub_80144A4(&local_10) == 0) { + switch(local_10) + { + case 5: + for(slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) + { + itemSlot = &gTeamInventory_203B460->teamItems[slotIndex]; + if ((itemSlot->itemFlags & ITEM_FLAG_EXISTS) && CanSellItem(itemSlot->itemIndex)) { + ClearItemSlotAt(slotIndex); + } + } + FillInventoryGaps(); + AddToTeamMoney(gUnknown_203B210->unk18); + PlaySound(0x14c); + UpdateKecleonStoreState(0x20); + break; + case 1: + case 6: + UpdateKecleonStoreState(1); + break; + } + } +} + +void sub_80199CC(void) +{ + u32 uVar2; + struct HeldItem *puVar3; + + if (gUnknown_203B210->unk4 != '\0') { + uVar2 = sub_8019EDC(1); + } + else { + uVar2 = sub_801A2A8(1); + } + + switch(uVar2) + { + case 3: + if (gUnknown_203B210->unk4) { + gUnknown_203B210->unk20 = sub_8019FB0(); + puVar3 = xxx_get_inv_unk230_at_809185C(gUnknown_203B210->unk20); + } + else { + gUnknown_203B210->unk21 = sub_801A37C(); + puVar3 = xxx_get_unk250_at_8091A90(gUnknown_203B210->unk21); + } + xxx_init_itemslot_8090A8C(&gUnknown_203B210->unk1C,puVar3->itemIndex,0); + gUnknown_203B210->unk1C.numItems =puVar3->numItems; + gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->unk1C); + UpdateKecleonStoreState(0x14); + break; + case 4: + if (gUnknown_203B210->unk4) { + gUnknown_203B210->unk20 = sub_8019FB0(); + puVar3 = xxx_get_inv_unk230_at_809185C(gUnknown_203B210->unk20); + } + else { + gUnknown_203B210->unk21 = sub_801A37C(); + puVar3 = xxx_get_unk250_at_8091A90(gUnknown_203B210->unk21); + } + xxx_init_itemslot_8090A8C(&gUnknown_203B210->unk1C,puVar3->itemIndex,0); + gUnknown_203B210->unk1C.numItems = puVar3->numItems; + gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->unk1C); + UpdateKecleonStoreState(0x15); + break; + case 2: + if (gUnknown_203B210->unk4) { + sub_801A010(); + } + else { + sub_801A3DC(); + } + UpdateKecleonStoreState(1); + break; + case 1: + sub_801AD34(0); + DrawTeamMoneyBox(1); + break; + } +} + void sub_8019B08(void) { switch(sub_801A6E8(1)) @@ -253,15 +456,15 @@ u32 sub_8019D8C(void) void sub_8019DAC(void) { s32 iVar3; - struct ItemSlot *pbVar4; + struct ItemSlot *itemSlot; s32 iVar5; gUnknown_203B210->unk14 = 0; gUnknown_203B210->unk18 = 0; for(iVar5 = 0; iVar5 < INVENTORY_SIZE; iVar5++){ - pbVar4 = &gTeamInventory_203B460->teamItems[iVar5]; - if (((pbVar4->itemFlags & ITEM_FLAG_EXISTS) != 0) && (CanSellItem(pbVar4->itemIndex))) { - iVar3 = GetStackSellPrice(pbVar4); + itemSlot = &gTeamInventory_203B460->teamItems[iVar5]; + if (((itemSlot->itemFlags & ITEM_FLAG_EXISTS) != 0) && (CanSellItem(itemSlot->itemIndex))) { + iVar3 = GetStackSellPrice(itemSlot); gUnknown_203B210->unk18 += iVar3; gUnknown_203B210->unk14++; } diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 2b5afa3..fa78f06 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -97,7 +97,6 @@ extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32); void xxx_call_fade_out_bgm(u16 speed); void sub_801199C(u16 songIndex); -void ClearItemSlotAt(u32 index); void xxx_call_fade_in_new_bgm(u16 songIndex, u16 speed); void sub_80977D0(void); void PlaySound(u32); diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 68c894b..1a38475 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -685,7 +685,7 @@ s32 SaveRecruitedPokemon(u8 *a1, s32 a2) if (pokemon->unk0 & 2) { buffer[count++] = i; } - if (pokemon->unk2) { + if (pokemon->isLeader) { data_s16 = i; } } @@ -745,7 +745,7 @@ s32 RestoreRecruitedPokemon(u8 *a1, s32 a2) } RestoreIntegerBits(&backup, &data_s16, 16); if ((u16)data_s16 < NUM_SPECIES) { - gRecruitedPokemonRef->pokemon[data_s16].unk2 = 1; + gRecruitedPokemonRef->pokemon[data_s16].isLeader = 1; } nullsub_102(&backup); return backup.unk8; @@ -776,7 +776,7 @@ void RestorePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* po { memset(pokemon, 0, sizeof(struct PokemonStruct)); pokemon->unk0 = 0; - pokemon->unk2 = 0; + pokemon->isLeader = 0; RestoreIntegerBits(a1, &pokemon->unkHasNextStage, 7); if (pokemon->unkHasNextStage) { pokemon->unk0 |= 1; @@ -814,7 +814,7 @@ s32 SavePokemonStruct2(u8* a1, s32 size) struct PokemonStruct2* pokemon2 = &gRecruitedPokemonRef->pokemon2[i]; SaveIntegerBits(&backup, &pokemon2->unk0, 2); - SaveIntegerBits(&backup, pokemon2->unk2 ? &data_u8_neg1 : &data_u8_zero, 1); + SaveIntegerBits(&backup, pokemon2->isLeader ? &data_u8_neg1 : &data_u8_zero, 1); SaveIntegerBits(&backup, &pokemon2->unkHasNextStage, 7); xxx_save_poke_sub_4_80902F4(&backup, &pokemon2->unk4); @@ -858,10 +858,10 @@ s32 RestorePokemonStruct2(u8* a1, s32 size) RestoreIntegerBits(&backup, &unk2, 1); if (unk2 & 1) { - pokemon2->unk2 = TRUE; + pokemon2->isLeader = TRUE; } else { - pokemon2->unk2 = FALSE; + pokemon2->isLeader = FALSE; } RestoreIntegerBits(&backup, &pokemon2->unkHasNextStage, 7); diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index d57e8a2..11e387e 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -529,7 +529,7 @@ void xxx_pokemonstruct_to_pokemon2_808DE50(struct PokemonStruct2 * a1, struct Po a1->IQSkills = pokemon->IQSkills; sub_808E6F4(&a1->unk54); a1->unk4 = pokemon->unk4; - a1->unk2 = pokemon->unk2; + a1->isLeader = pokemon->isLeader; a1->unkA = a3; a1->speciesNum = pokemon->speciesNum; a1->unk50 = pokemon->unk24; @@ -582,7 +582,7 @@ void xxx_pokemon2_to_pokemonstruct_808DF44(struct PokemonStruct* pokemon, struct pokemon->IQ = a2->IQ; pokemon->IQSkills = a2->IQSkills; pokemon->unk4 = a2->unk4; - pokemon->unk2 = a2->unk2; + pokemon->isLeader = a2->isLeader; pokemon->speciesNum = a2->speciesNum; pokemon->unk24 = a2->unk50; pokemon->pokeHP = a2->unk12; diff --git a/src/post_office_guide.c b/src/post_office_guide.c index 929c2e1..f009895 100644 --- a/src/post_office_guide.c +++ b/src/post_office_guide.c @@ -166,7 +166,7 @@ extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32 extern u32 sub_8012A64(struct UnkInputStruct**, u32); extern void PlayMenuSoundEffect(u32); extern void sub_8031A84(); -extern void sub_8031AE8(); +extern void DisplayMissionObjectives(); extern u8 gUnknown_202E5D8[]; extern u8 gAvailablePokemonNames[]; @@ -535,7 +535,7 @@ u32 sub_80319F8(void) void sub_8031A2C(void) { sub_8031A84(); - sub_8031AE8(); + DisplayMissionObjectives(); } void sub_8031A3C(void) |