summaryrefslogtreecommitdiff
path: root/asm/fldeff_strength.s
blob: e595a5fc9036c531edc265f0ae92edd48b30d450 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
	.include "constants/gba_constants.inc"
	.include "constants/species_constants.inc"
	.include "asm/macros.inc"

	.syntax unified

	.text

	thumb_func_start SetUpFieldMove_Strength
SetUpFieldMove_Strength: @ 811A99C
	push {lr}
	bl sub_81474C8
	lsls r0, 24
	cmp r0, 0
	beq _0811A9D4
	ldr r1, _0811A9BC @ =gScriptResult
	ldr r0, _0811A9C0 @ =gUnknown_03005CE0
	ldrb r0, [r0]
	strh r0, [r1]
	ldr r1, _0811A9C4 @ =gUnknown_0300485C
	ldr r0, _0811A9C8 @ =sub_808AB90
	str r0, [r1]
	ldr r1, _0811A9CC @ =gUnknown_03005CE4
	ldr r0, _0811A9D0 @ =sub_811AA38
	b _0811A9F8
	.align 2, 0
_0811A9BC: .4byte gScriptResult
_0811A9C0: .4byte gUnknown_03005CE0
_0811A9C4: .4byte gUnknown_0300485C
_0811A9C8: .4byte sub_808AB90
_0811A9CC: .4byte gUnknown_03005CE4
_0811A9D0: .4byte sub_811AA38
_0811A9D4:
	movs r0, 0x57
	bl npc_before_player_of_type
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811A9E6
	movs r0, 0
	b _0811A9FC
_0811A9E6:
	ldr r1, _0811AA00 @ =gScriptResult
	ldr r0, _0811AA04 @ =gUnknown_03005CE0
	ldrb r0, [r0]
	strh r0, [r1]
	ldr r1, _0811AA08 @ =gUnknown_0300485C
	ldr r0, _0811AA0C @ =sub_808AB90
	str r0, [r1]
	ldr r1, _0811AA10 @ =gUnknown_03005CE4
	ldr r0, _0811AA14 @ =sub_811AA18
_0811A9F8:
	str r0, [r1]
	movs r0, 0x1
_0811A9FC:
	pop {r1}
	bx r1
	.align 2, 0
_0811AA00: .4byte gScriptResult
_0811AA04: .4byte gUnknown_03005CE0
_0811AA08: .4byte gUnknown_0300485C
_0811AA0C: .4byte sub_808AB90
_0811AA10: .4byte gUnknown_03005CE4
_0811AA14: .4byte sub_811AA18
	thumb_func_end SetUpFieldMove_Strength

	thumb_func_start sub_811AA18
sub_811AA18: @ 811AA18
	push {lr}
	ldr r1, _0811AA2C @ =gUnknown_0202FF84
	ldr r0, _0811AA30 @ =gUnknown_03005CE0
	ldrb r0, [r0]
	str r0, [r1]
	ldr r0, _0811AA34 @ =UseStrengthScript
	bl ScriptContext1_SetupScript
	pop {r0}
	bx r0
	.align 2, 0
_0811AA2C: .4byte gUnknown_0202FF84
_0811AA30: .4byte gUnknown_03005CE0
_0811AA34: .4byte UseStrengthScript
	thumb_func_end sub_811AA18

	thumb_func_start sub_811AA38
sub_811AA38: @ 811AA38
	push {lr}
	ldr r0, _0811AA4C @ =gUnknown_0202FF84
	ldr r1, _0811AA50 @ =gUnknown_03005CE0
	ldrb r1, [r1]
	str r1, [r0]
	movs r0, 0x28
	bl FieldEffectStart
	pop {r0}
	bx r0
	.align 2, 0
_0811AA4C: .4byte gUnknown_0202FF84
_0811AA50: .4byte gUnknown_03005CE0
	thumb_func_end sub_811AA38

	thumb_func_start FldEff_UseStrength
FldEff_UseStrength: @ 811AA54
	push {lr}
	bl oei_task_add
	lsls r0, 24
	lsrs r0, 24
	ldr r2, _0811AA88 @ =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldr r2, _0811AA8C @ =sub_811AA9C
	lsrs r0, r2, 16
	strh r0, [r1, 0x18]
	strh r2, [r1, 0x1A]
	ldr r0, _0811AA90 @ =gUnknown_0202FF84
	ldr r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _0811AA94 @ =gPlayerParty
	adds r0, r1
	ldr r1, _0811AA98 @ =gStringVar1
	bl GetMonNickname
	movs r0, 0
	pop {r1}
	bx r1
	.align 2, 0
_0811AA88: .4byte gTasks
_0811AA8C: .4byte sub_811AA9C
_0811AA90: .4byte gUnknown_0202FF84
_0811AA94: .4byte gPlayerParty
_0811AA98: .4byte gStringVar1
	thumb_func_end FldEff_UseStrength

	thumb_func_start sub_811AA9C
sub_811AA9C: @ 811AA9C
	push {lr}
	bl sub_81474C8
	lsls r0, 24
	cmp r0, 0
	beq _0811AAAE
	bl sub_8147514
	b _0811AAB8
_0811AAAE:
	movs r0, 0x28
	bl FieldEffectActiveListRemove
	bl EnableBothScriptContexts
_0811AAB8:
	pop {r0}
	bx r0
	thumb_func_end sub_811AA9C

	.align 2, 0 @ Don't pad with nop.