mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
740 lines
15 KiB
ArmAsm
740 lines
15 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_29_02318E70.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start TryInflictSafeguardStatus
|
|
TryInflictSafeguardStatus: ; 0x02318E70
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #2
|
|
beq _02318EE8
|
|
ldr r1, _02318F04 ; =SAFEGUARD_TURN_RANGE
|
|
mov r3, #2
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E3F74
|
|
ldr r2, _02318F08 ; =0x00000CEE
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02318EF8
|
|
_02318EE8:
|
|
ldr r2, _02318F0C ; =0x00000CEF
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02318EF8:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02318F04: .word SAFEGUARD_TURN_RANGE
|
|
#ifdef JAPAN
|
|
_02318F08: .word 0x00000A2E
|
|
_02318F0C: .word 0x00000A2F
|
|
#else
|
|
_02318F08: .word 0x00000CEE
|
|
_02318F0C: .word 0x00000CEF
|
|
#endif
|
|
arm_func_end TryInflictSafeguardStatus
|
|
|
|
arm_func_start TryInflictMistStatus
|
|
TryInflictMistStatus: ; 0x02318F10
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #0xe
|
|
beq _02318F88
|
|
ldr r1, _02318FA4 ; =MIST_TURN_RANGE
|
|
mov r3, #0xe
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E3F78
|
|
mov r0, r6
|
|
mov r1, r5
|
|
#ifdef JAPAN
|
|
mov r2, #0xa30
|
|
#else
|
|
mov r2, #0xcf0
|
|
#endif
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02318F98
|
|
_02318F88:
|
|
ldr r2, _02318FA8 ; =0x00000CF1
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02318F98:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02318FA4: .word MIST_TURN_RANGE
|
|
#ifdef JAPAN
|
|
_02318FA8: .word 0x00000A31
|
|
#else
|
|
_02318FA8: .word 0x00000CF1
|
|
#endif
|
|
arm_func_end TryInflictMistStatus
|
|
|
|
arm_func_start TryInflictWishStatus
|
|
TryInflictWishStatus: ; 0x02318FAC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #6
|
|
beq _02319024
|
|
ldr r1, _02319040 ; =ov10_022C4794
|
|
mov r3, #6
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E3F7C
|
|
ldr r2, _02319044 ; =0x00000CDE
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319034
|
|
_02319024:
|
|
ldr r2, _02319048 ; =0x00000CDF
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319034:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02319040: .word ov10_022C4794
|
|
#ifdef JAPAN
|
|
_02319044: .word 0x00000A1E
|
|
_02319048: .word 0x00000A1F
|
|
#else
|
|
_02319044: .word 0x00000CDE
|
|
_02319048: .word 0x00000CDF
|
|
#endif
|
|
arm_func_end TryInflictWishStatus
|
|
|
|
arm_func_start TryInflictMagicCoatStatus
|
|
TryInflictMagicCoatStatus: ; 0x0231904C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #5
|
|
beq _023190C4
|
|
ldr r1, _023190E0 ; =MAGIC_COAT_TURN_RANGE
|
|
mov r3, #5
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E3FC8
|
|
ldr r2, _023190E4 ; =0x00000CE7
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _023190D4
|
|
_023190C4:
|
|
ldr r2, _023190E8 ; =0x00000CE8
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_023190D4:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_023190E0: .word MAGIC_COAT_TURN_RANGE
|
|
#ifdef JAPAN
|
|
_023190E4: .word 0x00000A27
|
|
_023190E8: .word 0x00000A28
|
|
#else
|
|
_023190E4: .word 0x00000CE7
|
|
_023190E8: .word 0x00000CE8
|
|
#endif
|
|
arm_func_end TryInflictMagicCoatStatus
|
|
|
|
arm_func_start TryInflictLightScreenStatus
|
|
TryInflictLightScreenStatus: ; 0x023190EC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #3
|
|
beq _02319164
|
|
ldr r1, _02319180 ; =LIGHT_SCREEN_TURN_RANGE
|
|
mov r3, #3
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E4014
|
|
ldr r2, _02319184 ; =0x00000CF4
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319174
|
|
_02319164:
|
|
ldr r2, _02319188 ; =0x00000CF5
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319174:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02319180: .word LIGHT_SCREEN_TURN_RANGE
|
|
#ifdef JAPAN
|
|
_02319184: .word 0x00000A34
|
|
_02319188: .word 0x00000A35
|
|
#else
|
|
_02319184: .word 0x00000CF4
|
|
_02319188: .word 0x00000CF5
|
|
#endif
|
|
arm_func_end TryInflictLightScreenStatus
|
|
|
|
arm_func_start TryInflictReflectStatus
|
|
TryInflictReflectStatus: ; 0x0231918C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #1
|
|
beq _02319204
|
|
ldr r1, _02319220 ; =REFLECT_LIGHT_SCREEN_TURN_RANGE
|
|
mov r3, #1
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E4068
|
|
ldr r2, _02319224 ; =0x00000CF6
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319214
|
|
_02319204:
|
|
ldr r2, _02319228 ; =0x00000CF7
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319214:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02319220: .word REFLECT_LIGHT_SCREEN_TURN_RANGE
|
|
#ifdef JAPAN
|
|
_02319224: .word 0x00000A36
|
|
_02319228: .word 0x00000A37
|
|
#else
|
|
_02319224: .word 0x00000CF6
|
|
_02319228: .word 0x00000CF7
|
|
#endif
|
|
arm_func_end TryInflictReflectStatus
|
|
|
|
arm_func_start TryInflictProtectStatus
|
|
TryInflictProtectStatus: ; 0x0231922C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, r5
|
|
bl ov29_022E40B8
|
|
ldr r4, [r5, #0xb4]
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #7
|
|
beq _023192A4
|
|
ldr r1, _023192D0 ; =ov10_022C47B8
|
|
mov r3, #7
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r3, r0, #1
|
|
mov r0, #0
|
|
mov r1, r5
|
|
mov r2, r0
|
|
strb r3, [r4, #0xd6]
|
|
bl SubstitutePlaceholderStringTags
|
|
ldr r2, _023192D4 ; =0x00000D47
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _023192C4
|
|
_023192A4:
|
|
mov r0, #0
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldr r2, _023192D8 ; =0x00000D48
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_023192C4:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_023192D0: .word ov10_022C47B8
|
|
#ifdef JAPAN
|
|
_023192D4: .word 0x00000A87
|
|
_023192D8: .word 0x00000A88
|
|
#else
|
|
_023192D4: .word 0x00000D47
|
|
_023192D8: .word 0x00000D48
|
|
#endif
|
|
arm_func_end TryInflictProtectStatus
|
|
|
|
arm_func_start TryInflictMirrorCoatStatus
|
|
TryInflictMirrorCoatStatus: ; 0x023192DC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #8
|
|
beq _02319354
|
|
ldr r1, _02319370 ; =ov10_022C47CC
|
|
mov r3, #8
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E40BC
|
|
ldr r2, _02319374 ; =0x00000D4F
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319364
|
|
_02319354:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
#ifdef JAPAN
|
|
mov r2, #0xA90
|
|
#else
|
|
mov r2, #0xd50
|
|
#endif
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319364:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02319370: .word ov10_022C47CC
|
|
#ifdef JAPAN
|
|
_02319374: .word 0x00000A8F
|
|
#else
|
|
_02319374: .word 0x00000D4F
|
|
#endif
|
|
arm_func_end TryInflictMirrorCoatStatus
|
|
|
|
arm_func_start TryInflictEndureStatus
|
|
TryInflictEndureStatus: ; 0x02319378
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #9
|
|
beq _023193F0
|
|
ldr r1, _0231940C ; =ov10_022C47F4
|
|
mov r3, #9
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E4108
|
|
ldr r2, _02319410 ; =0x00000D58
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319400
|
|
_023193F0:
|
|
ldr r2, _02319414 ; =0x00000D59
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319400:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0231940C: .word ov10_022C47F4
|
|
#ifdef JAPAN
|
|
_02319410: .word 0x00000A98
|
|
_02319414: .word 0x00000A99
|
|
#else
|
|
_02319410: .word 0x00000D58
|
|
_02319414: .word 0x00000D59
|
|
#endif
|
|
arm_func_end TryInflictEndureStatus
|
|
|
|
arm_func_start TryInflictMirrorMoveStatus
|
|
TryInflictMirrorMoveStatus: ; 0x02319418
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #0xb
|
|
beq _02319490
|
|
ldr r1, _023194AC ; =MIRROR_MOVE_TURN_RANGE
|
|
mov r3, #0xb
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E410C
|
|
ldr r2, _023194B0 ; =0x00000D5A
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _023194A0
|
|
_02319490:
|
|
ldr r2, _023194B4 ; =0x00000D5B
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_023194A0:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_023194AC: .word MIRROR_MOVE_TURN_RANGE
|
|
#ifdef JAPAN
|
|
_023194B0: .word 0x00000A9A
|
|
_023194B4: .word 0x00000A9B
|
|
#else
|
|
_023194B0: .word 0x00000D5A
|
|
_023194B4: .word 0x00000D5B
|
|
#endif
|
|
arm_func_end TryInflictMirrorMoveStatus
|
|
|
|
arm_func_start TryInflictConversion2Status
|
|
TryInflictConversion2Status: ; 0x023194B8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, r5
|
|
mov r1, #0x25
|
|
ldr r4, [r5, #0xb4]
|
|
bl AbilityIsActiveVeneer
|
|
cmp r0, #0
|
|
beq _02319500
|
|
ldr r2, _02319574 ; =0x00000DC4
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_02319500:
|
|
mov r0, #0
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #0xc
|
|
beq _02319558
|
|
ldr r1, _02319578 ; =ov10_022C4854
|
|
mov r3, #0xc
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E415C
|
|
ldr r2, _0231957C ; =0x00000D5C
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319568
|
|
_02319558:
|
|
ldr r2, _02319580 ; =0x00000D5D
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319568:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
#ifdef JAPAN
|
|
#define TRY_INFLICT_CONVERSION2_STATUS_OFFSET -0x2C0
|
|
#else
|
|
#define TRY_INFLICT_CONVERSION2_STATUS_OFFSET 0
|
|
#endif
|
|
_02319574: .word 0x00000DC4 + TRY_INFLICT_CONVERSION2_STATUS_OFFSET
|
|
_02319578: .word ov10_022C4854
|
|
_0231957C: .word 0x00000D5C + TRY_INFLICT_CONVERSION2_STATUS_OFFSET
|
|
_02319580: .word 0x00000D5D + TRY_INFLICT_CONVERSION2_STATUS_OFFSET
|
|
arm_func_end TryInflictConversion2Status
|
|
|
|
arm_func_start TryInflictVitalThrowStatus
|
|
TryInflictVitalThrowStatus: ; 0x02319584
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
mov r0, r5
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #0
|
|
ldr r4, [r5, #0xb4]
|
|
mov r1, r5
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
ldrb r0, [r4, #0xd5]
|
|
cmp r0, #0xd
|
|
beq _023195FC
|
|
ldr r1, _02319618 ; =ov10_022C485C
|
|
mov r3, #0xd
|
|
mov r0, r5
|
|
mov r2, #0
|
|
strb r3, [r4, #0xd5]
|
|
bl CalcStatusDuration
|
|
add r1, r0, #1
|
|
mov r0, r5
|
|
strb r1, [r4, #0xd6]
|
|
bl ov29_022E41AC
|
|
ldr r2, _0231961C ; =0x00000D5E
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _0231960C
|
|
_023195FC:
|
|
ldr r2, _02319620 ; =0x00000D5F
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_0231960C:
|
|
mov r0, r5
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02319618: .word ov10_022C485C
|
|
#ifdef JAPAN
|
|
_0231961C: .word 0x00000A9E
|
|
_02319620: .word 0x00000A9F
|
|
#else
|
|
_0231961C: .word 0x00000D5E
|
|
_02319620: .word 0x00000D5F
|
|
#endif
|
|
arm_func_end TryInflictVitalThrowStatus
|
|
|
|
arm_func_start TryResetStatChanges
|
|
TryResetStatChanges: ; 0x02319624
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov r6, r1
|
|
mov r7, r0
|
|
mov r0, r6
|
|
mov r5, r2
|
|
mov r4, #0
|
|
bl EntityIsValid__02318E4C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov r2, #0xa
|
|
mov sl, #0x100
|
|
ldr r3, [r6, #0xb4]
|
|
mov ip, r4
|
|
mov fp, #1
|
|
mov r1, r2
|
|
mov r0, r2
|
|
mov lr, sl
|
|
_02319668:
|
|
add sb, r3, ip, lsl #1
|
|
ldrsh r8, [sb, #0x24]
|
|
cmp r8, #0xa
|
|
strneh r2, [sb, #0x24]
|
|
add sb, r3, ip, lsl #1
|
|
ldrsh r8, [sb, #0x28]
|
|
movne r4, fp
|
|
cmp r8, #0xa
|
|
strneh r1, [sb, #0x28]
|
|
add sb, r3, ip, lsl #1
|
|
ldrsh r8, [sb, #0x2c]
|
|
movne r4, #1
|
|
cmp r8, #0xa
|
|
strneh r0, [sb, #0x2c]
|
|
add sb, r3, ip, lsl #2
|
|
ldr r8, [sb, #0x34]
|
|
movne r4, #1
|
|
cmp r8, #0x100
|
|
strne sl, [sb, #0x34]
|
|
add sb, r3, ip, lsl #2
|
|
ldr r8, [sb, #0x3c]
|
|
movne r4, #1
|
|
cmp r8, #0x100
|
|
add ip, ip, #1
|
|
strne lr, [sb, #0x3c]
|
|
movne r4, #1
|
|
cmp ip, #2
|
|
blt _02319668
|
|
cmp r4, #0
|
|
beq _023196EC
|
|
mov r0, r6
|
|
bl ov29_022E543C
|
|
b _023196FC
|
|
_023196EC:
|
|
cmp r5, #0
|
|
beq _023196FC
|
|
mov r0, r6
|
|
bl ov29_022E543C
|
|
_023196FC:
|
|
mov r0, #0
|
|
mov r1, r6
|
|
mov r2, r0
|
|
bl SubstitutePlaceholderStringTags
|
|
cmp r4, #0
|
|
beq _02319728
|
|
mov r0, r7
|
|
mov r1, r6
|
|
#ifdef JAPAN
|
|
mov r2, #0xaa0
|
|
#else
|
|
mov r2, #0xd60
|
|
#endif
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
b _02319738
|
|
_02319728:
|
|
ldr r2, _02319744 ; =0x00000D61
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl LogMessageByIdWithPopupCheckUserTarget
|
|
_02319738:
|
|
mov r0, r6
|
|
bl UpdateStatusIconFlags
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
#ifdef JAPAN
|
|
_02319744: .word 0x00000AA1
|
|
#else
|
|
_02319744: .word 0x00000D61
|
|
#endif
|
|
arm_func_end TryResetStatChanges
|