diff options
Diffstat (limited to 'asm/fldeff_softboiled.s')
-rw-r--r-- | asm/fldeff_softboiled.s | 318 |
1 files changed, 318 insertions, 0 deletions
diff --git a/asm/fldeff_softboiled.s b/asm/fldeff_softboiled.s new file mode 100644 index 000000000..dc863129c --- /dev/null +++ b/asm/fldeff_softboiled.s @@ -0,0 +1,318 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start SetUpFieldMove_SoftBoiled +SetUpFieldMove_SoftBoiled: @ 8133CCC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _08133D14 @ =gLastFieldPokeMenuOpened + mov r8, r0 + ldrb r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r4, _08133D18 @ =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r1, r8 + ldrb r0, [r1] + muls r0, r6 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r4, r0 + bcs _08133D1C + movs r0, 0 + b _08133D1E + .align 2, 0 +_08133D14: .4byte gLastFieldPokeMenuOpened +_08133D18: .4byte gPlayerParty +_08133D1C: + movs r0, 0x1 +_08133D1E: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_SoftBoiled + + thumb_func_start sub_8133D28 +sub_8133D28: @ 8133D28 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08133D44 @ =0x02001000 + ldr r2, _08133D48 @ =sub_8133D50 + str r2, [r1, 0xC] + ldr r2, _08133D4C @ =0x0001a272 + adds r1, r2 + movs r2, 0x3 + strh r2, [r1] + bl sub_808A004 + pop {r0} + bx r0 + .align 2, 0 +_08133D44: .4byte 0x02001000 +_08133D48: .4byte sub_8133D50 +_08133D4C: .4byte 0x0001a272 + thumb_func_end sub_8133D28 + + thumb_func_start sub_8133D50 +sub_8133D50: @ 8133D50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08133DA0 @ =gSprites + mov r9, r0 + ldr r1, _08133DA4 @ =0x02001000 + mov r10, r1 + ldrb r1, [r1, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r0, [r0, 0x2E] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r2, r10 + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r2, r9 + adds r1, r0, r2 + ldrh r0, [r1, 0x2E] + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r8 + cmp r0, 0x5 + bhi _08133D96 + cmp r6, 0x5 + bls _08133DA8 +_08133D96: + adds r0, r7, 0 + bl sub_806CD44 + b _08133E4E + .align 2, 0 +_08133DA0: .4byte gSprites +_08133DA4: .4byte 0x02001000 +_08133DA8: + movs r5, 0xD8 + lsls r5, 9 + add r5, r10 + movs r2, 0x2E + ldrsh r0, [r1, r2] + movs r1, 0x64 + muls r0, r1 + ldr r2, _08133DE4 @ =gPlayerParty + adds r0, r2 + str r0, [r5] + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08133DDA + cmp r8, r6 + beq _08133DDA + ldr r0, [r5] + movs r1, 0x3A + bl GetMonData + cmp r0, r4 + bne _08133DE8 +_08133DDA: + adds r0, r7, 0 + bl sub_8133EB8 + b _08133E4E + .align 2, 0 +_08133DE4: .4byte gPlayerParty +_08133DE8: + movs r0, 0x1 + bl PlaySE + mov r0, r10 + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r0, [r0, 0x2E] + movs r1, 0 + strb r0, [r5, 0x5] + ldrb r0, [r5, 0x5] + movs r2, 0x64 + muls r0, r2 + ldr r2, _08133E5C @ =gPlayerParty + adds r0, r2 + str r0, [r5] + strh r1, [r5, 0x6] + ldr r1, _08133E60 @ =0xffff8000 + str r1, [r5, 0xC] + ldr r1, _08133E64 @ =sub_8133EF8 + str r1, [r5, 0x10] + movs r1, 0x3A + bl GetMonData + ldr r1, _08133E68 @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r1 + strh r0, [r4, 0x1C] + ldr r0, [r5] + movs r1, 0x39 + bl GetMonData + strh r0, [r4, 0x1E] + movs r1, 0x1C + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl __divsi3 + strh r0, [r4, 0x20] + bl sub_806D5A4 + ldr r0, _08133E6C @ =sub_806FA18 + str r0, [r4] + ldrh r1, [r4, 0x1E] + ldr r0, _08133E70 @ =0x0001a282 + add r0, r10 + strh r1, [r0] +_08133E4E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08133E5C: .4byte gPlayerParty +_08133E60: .4byte 0xffff8000 +_08133E64: .4byte sub_8133EF8 +_08133E68: .4byte gTasks +_08133E6C: .4byte sub_806FA18 +_08133E70: .4byte 0x0001a282 + thumb_func_end sub_8133D50 + + thumb_func_start sub_8133E74 +sub_8133E74: @ 8133E74 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08133EAC @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _08133EA4 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x3 + movs r1, 0 + bl sub_806D538 + ldr r0, _08133EB0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08133EB4 @ =sub_806CB74 + str r0, [r1] +_08133EA4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08133EAC: .4byte gUnknown_0202E8F6 +_08133EB0: .4byte gTasks +_08133EB4: .4byte sub_806CB74 + thumb_func_end sub_8133E74 + + thumb_func_start sub_8133EB8 +sub_8133EB8: @ 8133EB8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08133EE8 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + bl sub_806D5A4 + ldr r0, _08133EEC @ =gOtherText_CantUseOnPoke + movs r1, 0x1 + bl sub_806E834 + ldr r1, _08133EF0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08133EF4 @ =sub_8133E74 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08133EE8: .4byte gUnknown_0202E8F4 +_08133EEC: .4byte gOtherText_CantUseOnPoke +_08133EF0: .4byte gTasks +_08133EF4: .4byte sub_8133E74 + thumb_func_end sub_8133EB8 + + thumb_func_start sub_8133EF8 +sub_8133EF8: @ 8133EF8 + push {r4,lr} + bl sub_806CCE4 + ldr r4, _08133F3C @ =0x0201b000 + ldr r0, _08133F40 @ =0x00000261 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _08133F44 @ =0xfffe6000 + adds r4, r0 + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08133F48 @ =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0 + bl sub_806D538 + ldrb r0, [r4] + bl SwitchTaskToFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08133F3C: .4byte 0x0201b000 +_08133F40: .4byte 0x00000261 +_08133F44: .4byte 0xfffe6000 +_08133F48: .4byte gSprites + thumb_func_end sub_8133EF8 + + .align 2, 0 @ Don't pad with nop. |