.text
.align 2
.thumb
.thumb_func
.global tintedlenssolidrockexpertbeltai
StruggleCheck:
mov r1, r10
cmp r1, #0xA5
beq Quit
EffectivnessCheck:
ldrb r1, [r0, #0x0]
mov r0, #0x39
and r0, r1
cmp r0, #0x0
bne Exit
NotVeryEffectiveCheck:
mov r0, #0x4
and r0, r1
cmp r0, #0x0
beq SuperEffectiveCheck
ldr r0, .UserBank
ldr r1, .BattleStruct
mov r2, #0x58
ldrb r0, [r0]
mul r2, r0
add r1, r1, r2
ldrb r1, [r1]
cmp r1, [B][U]#0x6F[/U][/B]
bne Exit
HasTintedLens:
ldr r0, .Damage
ldrh r1, [r0]
lsl r1, r1, #0x1
strh r1, [r0]
b Exit
SuperEffectiveCheck:
mov r0, #0x2
and r0, r1
cmp r0, #0x0
beq Exit
ldr r0, .TargetBank
ldr r4, .BattleStruct
mov r3, #0x58
ldrb r0, [r0]
mul r0, r3
add r1, r0, r4
ldrb r0, [r1]
cmp r0, [B][U]#0x75[/U][/B]
beq HasSolidRock
cmp r0, [B][U]#0x70[/U][/B]
bne ExpertBeltCheck
HasSolidRock:
ldr r0, .Damage
ldrh r1, [r0]
lsl r2, r1, #0x1
add r1, r1, r2
lsr r1, r1, #0x2
cmp r1, #0x0
bne NotZero
mov r1, #0x1
NotZero:
strh r1, [r0]
ExpertBeltCheck:
ldr r0, .UserBank
ldrb r0, [r0]
mul r0, r3
add r1, r0, r4
add r1, #0xE
ldrh r0, [r1]
bl EffectGetter
cmp r0, [B][U]#0xKK[/U][/B]
bne Exit
ldr r4, .Damage
ldrh r0, [r4]
mov r2, #0x6
mul r0, r2
mov r1, #0x5
bl Divider
strh r0, [r4]
Exit:
mov r0, sp
ldrb r0, [r0, #0x0]
Quit:
add sp, #0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
EffectGetter:
ldr r1, =0x0809A925
bx r1
Divider:
ldr r2, =0x081E4019
bx r2
.align 2
.UserBank: .word 0x02023D6B
.TargetBank: .word 0x02023D6C
.BattleStruct: .word 0x02023C04
.Damage: .word 0x02023D50
/* 1EFAC: 00 00 00 00 00 49 08 47 XX+1 XX XX 08*/