diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-06-09 22:54:21 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-09 22:54:21 -0500 |
commit | 377bd14ea67d6177250fb401e12d7dfcf44e2cf6 (patch) | |
tree | 5440970e02a7890791b234aa233e91e5c1d65b40 /asm/friend_area_action_menu.s | |
parent | eaa141c612dd1689936a21bd57018a55ff686b69 (diff) |
Dungeon pokemon/Floor ID JSON Part 1 (#39)
* move Thunderwave and Tiny Woods pokemon to json
* rule tweaking to actually build tool before parsing JSON
* delete .inc pokemon for tiny Woods and Thunderwave
* silence git complaining about br_ips and ips_patch
* use defines for species and pass the header file for species
* convert sinister woods
* convert MtThunderPeak
* convert silent chasm
* add trial floor_id w/ tiny woods
* change make rule name to fix compile
* MtSteel converted and bugfix
* convert few floor headers and great canyon pokemon
* code cleanup
* unify unkData into UnkTextStruct2
* more code cleanup and some text decomp
* doc more funcs and decomp/split some stuff
* document more save stuff
* more save work and move some data
* pika sniped UpdateNatureTotal
* decomp a litle and convert a few more dungeons
* better scanning for json files
* mt freeze and peak
Diffstat (limited to 'asm/friend_area_action_menu.s')
-rw-r--r-- | asm/friend_area_action_menu.s | 828 |
1 files changed, 828 insertions, 0 deletions
diff --git a/asm/friend_area_action_menu.s b/asm/friend_area_action_menu.s new file mode 100644 index 0000000..998bb5c --- /dev/null +++ b/asm/friend_area_action_menu.s @@ -0,0 +1,828 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + @ Menu that gets created when you talk to friend + thumb_func_start CreateFriendActionMenu +CreateFriendActionMenu: + push {r4-r7,lr} + ldr r3, _080274E4 + ldr r4, _080274E8 + ldr r0, [r4] + movs r1, 0x8 + ldrsh r2, [r0, r1] + movs r1, 0x58 + muls r2, r1 + ldr r1, [r3] + adds r5, r1, r2 + movs r2, 0xB6 + lsls r2, 1 + adds r0, r2 + movs r1, 0 + movs r2, 0x14 + bl MemoryFill16 + ldrh r0, [r5] + lsrs r0, 1 + movs r6, 0x1 + ands r0, r6 + cmp r0, 0 + beq _080274F4 + ldr r2, [r4] + movs r3, 0x8E + lsls r3, 1 + adds r1, r2, r3 + ldr r0, _080274EC + str r0, [r1] + movs r0, 0x90 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x7 + str r0, [r1] + adds r0, r5, 0 + bl sub_8027D9C + lsls r0, 24 + cmp r0, 0 + bne _080274B6 + ldr r0, [r4] + movs r1, 0xB6 + lsls r1, 1 + adds r0, r1 + strh r6, [r0] +_080274B6: + movs r7, 0x1 + movs r0, 0x8 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _08027552 + ldrb r0, [r5, 0x2] + cmp r0, 0 + bne _08027552 + ldr r3, [r4] + movs r2, 0x8 + movs r4, 0x92 + lsls r4, 1 + adds r1, r3, r4 + ldr r0, _080274F0 + str r0, [r1] + movs r1, 0x94 + lsls r1, 1 + adds r0, r3, r1 + str r2, [r0] + b _08027550 + .align 2, 0 +_080274E4: .4byte gRecruitedPokemonRef +_080274E8: .4byte gUnknown_203B2BC +_080274EC: .4byte gFriendActionStandby +_080274F0: .4byte gFriendActionMakeLeader +_080274F4: + ldr r2, [r4] + movs r3, 0x8E + lsls r3, 1 + adds r1, r2, r3 + ldr r0, _08027658 + str r0, [r1] + movs r0, 0x90 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x6 + str r0, [r1] + movs r1, 0x8 + ldrsh r0, [r2, r1] + bl sub_808D750 + lsls r0, 24 + cmp r0, 0 + bne _08027522 + ldr r0, [r4] + movs r2, 0xB6 + lsls r2, 1 + adds r0, r2 + strh r6, [r0] +_08027522: + movs r7, 0x1 + ldr r2, [r4] + movs r3, 0x92 + lsls r3, 1 + adds r1, r2, r3 + ldr r0, _0802765C + str r0, [r1] + movs r0, 0x94 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x9 + str r0, [r1] + adds r0, r5, 0 + bl sub_8027DCC + lsls r0, 24 + cmp r0, 0 + bne _08027550 + ldr r0, [r4] + movs r1, 0xB7 + lsls r1, 1 + adds r0, r1 + strh r7, [r0] +_08027550: + movs r7, 0x2 +_08027552: + ldr r4, _08027660 + ldr r2, [r4] + lsls r3, r7, 3 + movs r6, 0x8E + lsls r6, 1 + adds r0, r2, r6 + adds r0, r3 + ldr r1, _08027664 + str r1, [r0] + movs r5, 0x90 + lsls r5, 1 + adds r2, r5 + adds r2, r3 + movs r0, 0xA + str r0, [r2] + bl sub_8090A34 + cmp r0, 0 + bne _08027588 + ldr r0, [r4] + lsls r1, r7, 1 + movs r2, 0xB6 + lsls r2, 1 + adds r0, r2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] +_08027588: + adds r7, 0x1 + ldr r2, [r4] + lsls r3, r7, 3 + adds r0, r2, r6 + adds r0, r3 + ldr r1, _08027668 + str r1, [r0] + adds r2, r5 + adds r2, r3 + movs r0, 0xB + str r0, [r2] + bl sub_8090A34 + cmp r0, 0x13 + bgt _080275AE + ldr r0, [r4] + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080275BE +_080275AE: + ldr r0, [r4] + lsls r1, r7, 1 + movs r3, 0xB6 + lsls r3, 1 + adds r0, r3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] +_080275BE: + adds r7, 0x1 + ldr r4, _08027660 + ldr r5, [r4] + lsls r1, r7, 3 + movs r0, 0x8E + lsls r0, 1 + adds r3, r5, r0 + adds r2, r3, r1 + ldr r0, _0802766C + str r0, [r2] + movs r2, 0x90 + lsls r2, 1 + adds r6, r5, r2 + adds r1, r6, r1 + movs r0, 0x4 + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r2, r3, r1 + ldr r0, _08027670 + str r0, [r2] + adds r1, r6, r1 + movs r0, 0xC + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r2, r3, r1 + ldr r0, _08027674 + str r0, [r2] + adds r1, r6, r1 + movs r0, 0x5 + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r3, r1 + movs r0, 0 + str r0, [r3] + adds r1, r6, r1 + movs r0, 0x1 + str r0, [r1] + movs r3, 0 + mov r12, r4 + cmp r3, r7 + bge _08027636 + adds r4, r6, 0 + movs r0, 0xB6 + lsls r0, 1 + adds r2, r5, r0 +_0802761E: + ldrh r0, [r2] + cmp r0, 0 + bne _0802762C + ldr r1, [r4] + ldr r0, [r5, 0x70] + cmp r1, r0 + beq _080276A0 +_0802762C: + adds r4, 0x8 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, r7 + blt _0802761E +_08027636: + movs r3, 0 + cmp r3, r7 + bge _080276A0 + mov r2, r12 + ldr r1, [r2] + movs r4, 0xB6 + lsls r4, 1 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, 0 + bne _08027678 + movs r2, 0x90 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + str r0, [r1, 0x70] + b _080276A0 + .align 2, 0 +_08027658: .4byte gFriendActionJoinTeam +_0802765C: .4byte gFriendActionSayFarewell +_08027660: .4byte gUnknown_203B2BC +_08027664: .4byte gFriendActionGive +_08027668: .4byte gFriendActionTake +_0802766C: .4byte gFriendActionSummary +_08027670: .4byte gFriendActionMoves +_08027674: .4byte gFriendActionCheckIQ +_08027678: + adds r3, 0x1 + cmp r3, r7 + bge _080276A0 + mov r4, r12 + ldr r2, [r4] + lsls r0, r3, 1 + movs r4, 0xB6 + lsls r4, 1 + adds r1, r2, r4 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _08027678 + lsls r0, r3, 3 + movs r3, 0x90 + lsls r3, 1 + adds r1, r2, r3 + adds r1, r0 + ldr r0, [r1] + str r0, [r2, 0x70] +_080276A0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreateFriendActionMenu + + thumb_func_start sub_80276A8 +sub_80276A8: + push {r4-r7,lr} + ldr r5, _0802775C + ldr r0, [r5] + movs r7, 0xB6 + lsls r7, 1 + adds r0, r7 + movs r1, 0 + movs r2, 0x14 + bl MemoryFill16 + ldr r2, [r5] + movs r0, 0x8E + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _08027760 + str r0, [r1] + movs r3, 0x90 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0xA + str r0, [r1] + bl sub_8090A34 + cmp r0, 0 + bne _080276E4 + ldr r0, [r5] + adds r4, r7, 0 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0] +_080276E4: + ldr r4, [r5] + movs r2, 0x1 + movs r0, 0x92 + lsls r0, 1 + adds r1, r4, r0 + ldr r0, _08027764 + ldr r0, [r0] + str r0, [r1] + movs r3, 0x94 + lsls r3, 1 + adds r1, r4, r3 + movs r0, 0x4 + str r0, [r1] + movs r6, 0x2 + movs r0, 0x96 + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0 + str r0, [r1] + movs r1, 0x98 + lsls r1, 1 + adds r0, r4, r1 + str r2, [r0] + movs r3, 0 + mov r12, r4 + movs r4, 0x90 + lsls r4, 1 + add r4, r12 + mov r0, r12 + adds r2, r0, r7 +_08027720: + ldrh r0, [r2] + cmp r0, 0 + bne _08027730 + ldr r1, [r4] + mov r7, r12 + ldr r0, [r7, 0x74] + cmp r1, r0 + beq _0802778E +_08027730: + adds r4, 0x8 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, r6 + blt _08027720 + movs r3, 0 + cmp r3, r6 + bge _0802778E + ldr r1, [r5] + movs r2, 0xB6 + lsls r2, 1 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _08027768 + movs r3, 0x90 + lsls r3, 1 + adds r0, r1, r3 + ldr r0, [r0] + str r0, [r1, 0x74] + b _0802778E + .align 2, 0 +_0802775C: .4byte gUnknown_203B2BC +_08027760: .4byte gFriendActionGive +_08027764: .4byte gUnknown_80D4970 +_08027768: + adds r3, 0x1 + cmp r3, r6 + bge _0802778E + ldr r2, [r5] + lsls r0, r3, 1 + movs r4, 0xB6 + lsls r4, 1 + adds r1, r2, r4 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _08027768 + lsls r0, r3, 3 + movs r7, 0x90 + lsls r7, 1 + adds r1, r2, r7 + adds r1, r0 + ldr r0, [r1] + str r0, [r2, 0x74] +_0802778E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80276A8 + + thumb_func_start sub_8027794 +sub_8027794: + push {r4,lr} + ldr r4, _080277F0 + ldr r0, [r4] + movs r1, 0xB6 + lsls r1, 1 + adds r0, r1 + movs r1, 0 + movs r2, 0x14 + bl MemoryFill16 + ldr r4, [r4] + movs r3, 0 + movs r0, 0x8E + lsls r0, 1 + adds r1, r4, r0 + ldr r0, _080277F4 + ldr r0, [r0] + str r0, [r1] + movs r0, 0x90 + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0x2 + str r0, [r1] + movs r2, 0x1 + movs r0, 0x92 + lsls r0, 1 + adds r1, r4, r0 + ldr r0, _080277F8 + ldr r0, [r0] + str r0, [r1] + movs r0, 0x94 + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0x3 + str r0, [r1] + movs r1, 0x96 + lsls r1, 1 + adds r0, r4, r1 + str r3, [r0] + adds r1, 0x4 + adds r0, r4, r1 + str r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080277F0: .4byte gUnknown_203B2BC +_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 sub_808D7DC + movs r0, 0x3 + bl sub_8027184 + 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 sub_808D7DC + movs r0, 0x4 + bl sub_8027184 + b _080278AE + .align 2, 0 +_0802789C: .4byte gUnknown_203B2BC +_080278A0: .4byte gRecruitedPokemonRef +_080278A4: + bl sub_8023C60 + movs r0, 0x11 + bl sub_8027184 +_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 sub_808D33C + 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 sub_8027184 + b _08027A36 +_080279C8: + movs r0, 0xE + bl sub_8027184 + b _08027A36 +_080279D0: + movs r0, 0xA + bl sub_8027184 + 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 sub_80910B4 + 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 sub_808D800 + bl nullsub_104 +_08027A0E: + movs r0, 0x2 + bl sub_8027184 + b _08027A36 + .align 2, 0 +_08027A18: .4byte 0x0000014d +_08027A1C: .4byte gUnknown_203B2BC +_08027A20: + movs r0, 0x4 + bl sub_8027184 + b _08027A36 +_08027A28: + movs r0, 0x5 + bl sub_8027184 + b _08027A36 +_08027A30: + movs r0, 0x2 + bl sub_8027184 +_08027A36: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80278B4 + + thumb_func_start sub_8027A40 +sub_8027A40: + push {lr} + bl sub_80244E4 + cmp r0, 0x1 + bls _08027A58 + cmp r0, 0x3 + bhi _08027A58 + bl sub_802453C + movs r0, 0x2 + bl sub_8027184 +_08027A58: + pop {r0} + bx r0 + thumb_func_end sub_8027A40 + + thumb_func_start sub_8027A5C +sub_8027A5C: + push {lr} + bl sub_801BF48 + cmp r0, 0x1 + bls _08027A74 + cmp r0, 0x3 + bhi _08027A74 + bl sub_801BF98 + movs r0, 0x2 + bl sub_8027184 +_08027A74: + pop {r0} + bx r0 + thumb_func_end sub_8027A5C + + thumb_func_start sub_8027A78 +sub_8027A78: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _08027AD8 + ldr r0, [sp] + cmp r0, 0x2 + beq _08027AA2 + cmp r0, 0x2 + bgt _08027A96 + cmp r0, 0x1 + beq _08027A9A + b _08027AD8 +_08027A96: + cmp r0, 0x3 + bne _08027AD8 +_08027A9A: + movs r0, 0x2 + bl sub_8027184 + b _08027AD8 +_08027AA2: + ldr r0, _08027AB8 + ldr r0, [r0] + ldr r0, [r0, 0x18] + ldrb r0, [r0, 0x4] + subs r0, 0x44 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08027ABC + movs r0, 0x1 + b _08027ABE + .align 2, 0 +_08027AB8: .4byte gUnknown_203B2BC +_08027ABC: + movs r0, 0 +_08027ABE: + cmp r0, 0 + beq _08027ACA + movs r0, 0x9 + bl sub_8027184 + b _08027AD8 +_08027ACA: + bl sub_8027EB8 + ldr r0, _08027AE0 + ldr r0, [r0] + ldr r0, [r0, 0x18] + bl sub_808D31C +_08027AD8: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08027AE0: .4byte gUnknown_203B2BC + thumb_func_end sub_8027A78 + + .align 2,0 |