summaryrefslogtreecommitdiff
path: root/asm/fldeff_softboiled.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/fldeff_softboiled.s')
-rw-r--r--asm/fldeff_softboiled.s318
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.