mirror of
https://github.com/pret/pmd-sky.git
synced 2026-10-01 06:37:50 -05:00
Fixed some ARM9 JP mismatches
This commit is contained in:
@@ -342,6 +342,7 @@
|
||||
.public _0209B4E4
|
||||
.public _0209B4FC
|
||||
.public _0209B50C
|
||||
.public _0209B548_JP
|
||||
.public _0209C29C_JP
|
||||
.public _0209C29D_JP
|
||||
.public _0209C29E_JP
|
||||
@@ -702,6 +703,7 @@
|
||||
.public _022A88E4
|
||||
.public _022A88F0
|
||||
.public _022A88F8
|
||||
.public _022A88FC
|
||||
.public _022A8908
|
||||
.public _022A8990
|
||||
.public _022A8991
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
.public ApplyDamageAndEffectsWrapper
|
||||
.public ATK_STAT_IDX
|
||||
.public BoostOffensiveStat
|
||||
.public CanSeeTarget
|
||||
.public CanTargetEntity
|
||||
.public CategoryIsNotPhysical
|
||||
.public ChooseAiMove
|
||||
|
||||
@@ -188,6 +188,7 @@
|
||||
.public ov29_02305F60
|
||||
.public ov29_02307BDC
|
||||
.public ov29_02307C48
|
||||
.public ov29_02307DC0
|
||||
.public ov29_023159D4
|
||||
.public ov29_02337EC0
|
||||
.public ov29_0233847C
|
||||
|
||||
@@ -13053,13 +13053,13 @@ _0201620C:
|
||||
_02016228:
|
||||
ldr r0, [sp]
|
||||
ldr r1, _02016288 ; =_02098FC0_JP
|
||||
bl StrcmpTag
|
||||
bl StrcmpTagVeneer
|
||||
cmp r0, #0
|
||||
beq _02016294
|
||||
ldr r0, [sp, #4]
|
||||
bl AtoiTag
|
||||
bl AtoiTagVeneer
|
||||
ldr r0, [sp, #8]
|
||||
bl AtoiTag
|
||||
bl AtoiTagVeneer
|
||||
mov r0, r0, lsl #0x10
|
||||
add r4, r4, r0, asr #16
|
||||
b _02016294
|
||||
@@ -14504,7 +14504,7 @@ _02017580:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02017588: .word _020AF760
|
||||
arm_func_end sub_02017314
|
||||
arm_func_end sub_02017A00
|
||||
|
||||
arm_func_start sub_0201758C
|
||||
sub_0201758C: ; 0x0201758C
|
||||
@@ -14601,7 +14601,7 @@ _020176CC_JP:
|
||||
add r3, sp, #0
|
||||
mov r0, r8
|
||||
bl SprintfStatic__020176E4
|
||||
b _020176CC_JP
|
||||
b _020176CC
|
||||
_02017708:
|
||||
add r0, sp, #0
|
||||
mov r1, #0x39
|
||||
@@ -14994,8 +14994,10 @@ sub_02017A00: ; 0x02017A00
|
||||
bl sub_02015E6C
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
_02017A1C: .word 0x000044BF
|
||||
#elif defined(JAPAN)
|
||||
_02017A1C: .word 0x0000076D
|
||||
#else
|
||||
_02017A1C: .word 0x000044BD
|
||||
#endif
|
||||
@@ -30701,8 +30703,10 @@ _0202435C: .word _02099D50
|
||||
|
||||
arm_func_start SetStringAccuracy
|
||||
SetStringAccuracy: ; 0x02024360
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
#define SET_STRING_ACCURACY_OFFSET 2
|
||||
#elif defined(JAPAN)
|
||||
#define SET_STRING_ACCURACY_OFFSET 0x17FD
|
||||
#else
|
||||
#define SET_STRING_ACCURACY_OFFSET 0
|
||||
#endif
|
||||
@@ -30769,6 +30773,13 @@ _02024424: .word _02099D50
|
||||
|
||||
arm_func_start SetStringPower
|
||||
SetStringPower: ; 0x02024428
|
||||
#if defined(EUROPE)
|
||||
#define SET_STRING_POWER_OFFSET 2
|
||||
#elif defined(JAPAN)
|
||||
#define SET_STRING_POWER_OFFSET 0x17FD
|
||||
#else
|
||||
#define SET_STRING_POWER_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr r2, _020244DC ; =0x000027A2
|
||||
mov r4, r0
|
||||
@@ -30823,19 +30834,10 @@ _020244D4:
|
||||
ldr r0, _020244F0 ; =_02099D50
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef EUROPE
|
||||
_020244DC: .word 0x000027A4
|
||||
_020244E0: .word 0x000029C3
|
||||
#else
|
||||
_020244DC: .word 0x000027A2
|
||||
_020244E0: .word 0x000029C1
|
||||
#endif
|
||||
_020244DC: .word 0x000027A2 + SET_STRING_POWER_OFFSET
|
||||
_020244E0: .word 0x000029C1 + SET_STRING_POWER_OFFSET
|
||||
_020244E4: .word MOVE_POWER_STARS_TABLE
|
||||
#ifdef EUROPE
|
||||
_020244E8: .word 0x000027A3
|
||||
#else
|
||||
_020244E8: .word 0x000027A1
|
||||
#endif
|
||||
_020244E8: .word 0x000027A1 + SET_STRING_POWER_OFFSET
|
||||
_020244EC: .word _02099D84
|
||||
_020244F0: .word _02099D50
|
||||
arm_func_end SetStringPower
|
||||
@@ -31628,9 +31630,15 @@ _02024D30:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02024D38: .word _02099E08
|
||||
#ifdef JAPAN
|
||||
_02024D3C: .word 0x000004C8
|
||||
_02024D40: .word _02099D50
|
||||
_02024D44: .word 0x000004C7
|
||||
#else
|
||||
_02024D3C: .word 0x00000237
|
||||
_02024D40: .word _02099D50
|
||||
_02024D44: .word 0x00000236
|
||||
#endif
|
||||
arm_func_end GetCurrentTeamNameString
|
||||
|
||||
arm_func_start sub_02024D48
|
||||
@@ -31730,8 +31738,13 @@ GetBagNameString: ; 0x02024DFC
|
||||
mov r0, r4
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02024E2C: .word 0x00001D39
|
||||
_02024E30: .word 0x00001D3A
|
||||
#else
|
||||
_02024E2C: .word 0x000008E1
|
||||
_02024E30: .word 0x000008E2
|
||||
#endif
|
||||
arm_func_end GetBagNameString
|
||||
|
||||
arm_func_start sub_02024E34
|
||||
@@ -32609,7 +32622,7 @@ _020255AC:
|
||||
ldreq r0, _020255D4 ; =_0209A3B6
|
||||
ldreqh r0, [r0, r2]
|
||||
#ifdef JAPAN
|
||||
ldrne r0, _020255CC ; =0x00008148
|
||||
ldrne r0, _020255CC_JP ; =0x00008148
|
||||
#else
|
||||
movne r0, #0x3f
|
||||
#endif
|
||||
@@ -32617,14 +32630,14 @@ _020255AC:
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_020255BC: .word 0x000081A5
|
||||
_020255C0: .word 0x000001BF
|
||||
_020255CC: .word 0x000001BF
|
||||
#else
|
||||
_020255CC: .word 0x000001BE
|
||||
#endif
|
||||
_020255D0: .word _0209A3B4
|
||||
_020255D4: .word _0209A3B6
|
||||
#ifdef JAPAN
|
||||
_020255CC: .word 0x00008148
|
||||
_020255CC_JP: .word 0x00008148
|
||||
#endif
|
||||
arm_func_end sub_0202554C
|
||||
|
||||
@@ -33115,6 +33128,7 @@ sub_02025AD8: ; 0x02025AD8
|
||||
str r1, [r0, #4]
|
||||
str r1, [r0, #8]
|
||||
mov r1, #1
|
||||
strb r1, [r0]
|
||||
#else
|
||||
ldr r0, [sp]
|
||||
ldr r2, _02025B70 ; =_022A7A54
|
||||
@@ -33161,13 +33175,13 @@ sub_02025AD8: ; 0x02025AD8
|
||||
str r2, [r0, #0xc]
|
||||
#endif
|
||||
mov r0, #1
|
||||
#endif
|
||||
strb r0, [r1]
|
||||
#endif
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02025B6C: .word _0209ABF0
|
||||
#ifdef JAPAN
|
||||
_02025B6C: .word _0209B548_JP
|
||||
_02025B34: .word _022A7A54
|
||||
_02025B38: .word _0209AC04
|
||||
_02025B3C: .word _022A92C4_JP
|
||||
@@ -33175,6 +33189,7 @@ _02025B40: .word _0209AC18
|
||||
_02025B44: .word _020AFD04
|
||||
_02025B48: .word _022A92B4_JP
|
||||
#else
|
||||
_02025B6C: .word _0209ABF0
|
||||
_02025B70: .word _022A7A54
|
||||
_02025B74: .word _0209AC04
|
||||
_02025B78: .word _0209AC18
|
||||
@@ -33481,7 +33496,11 @@ sub_02025D90: ; 0x02025D90
|
||||
_02025DA4:
|
||||
ldr r0, [sp]
|
||||
ldr r4, [sp, #4]
|
||||
#ifdef JAPAN
|
||||
bl sub_0202796C_JP
|
||||
#else
|
||||
bl sub_02028324
|
||||
#endif
|
||||
cmp fp, #0
|
||||
mov r6, r0
|
||||
cmpge sb, #0
|
||||
@@ -34554,7 +34573,11 @@ _02026920:
|
||||
ldr r0, [sp, #4]
|
||||
rsbge r5, sl, r1, lsl #3
|
||||
mov r6, r7, asr #3
|
||||
#ifdef JAPAN
|
||||
bl sub_0202796C_JP
|
||||
#else
|
||||
bl sub_02027624
|
||||
#endif
|
||||
mov r1, sl, asr #2
|
||||
add r1, sl, r1, lsr #29
|
||||
ldrb r3, [r4, #6]
|
||||
@@ -34744,7 +34767,11 @@ _02026BDC:
|
||||
rsb r1, r1, #7
|
||||
ldr r0, [sp, #4]
|
||||
str r1, [sp, #0x10]
|
||||
#ifdef JAPAN
|
||||
bl sub_0202796C_JP
|
||||
#else
|
||||
bl sub_02027624
|
||||
#endif
|
||||
mov r2, sl, lsr #0x1f
|
||||
rsb r1, r2, sl, lsl #29
|
||||
add r1, r2, r1, ror #29
|
||||
@@ -35221,7 +35248,7 @@ sub_02026B1C: ; 0x02026B1C
|
||||
mov sb, r1
|
||||
mov r8, r2
|
||||
mov r7, r3
|
||||
bl sub_0202760C
|
||||
bl sub_0202796C_JP
|
||||
mov fp, r0
|
||||
mov r0, sl
|
||||
bl GetWindow
|
||||
@@ -35612,7 +35639,11 @@ sub_02026E3C: ; 0x02026E3C
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r5, r2
|
||||
#ifdef JAPAN
|
||||
bl sub_0202796C_JP
|
||||
#else
|
||||
bl sub_0202760C
|
||||
#endif
|
||||
mov r4, r0
|
||||
mov r0, r7
|
||||
bl sub_02027624
|
||||
@@ -35636,7 +35667,7 @@ sub_02026E78: ; 0x02026E78
|
||||
mov r2, #0x1180
|
||||
strb ip, [r3, #4]
|
||||
bl memset
|
||||
ldr r0, _02026FF4 ; =_022A7A6C
|
||||
ldr r0, _02026FF8 ; =_022A7B1C
|
||||
mov r1, #0
|
||||
mov r2, #0x370
|
||||
bl memset
|
||||
@@ -35740,11 +35771,7 @@ _02026EB0:
|
||||
mov r1, #0xa00
|
||||
bl MemZero
|
||||
mov r2, #0
|
||||
#ifdef JAPAN
|
||||
ldr r1, _0202737C ; =_022A92C8_JP
|
||||
#else
|
||||
ldr r1, _02026FF4 ; =_022A7A6C
|
||||
#endif
|
||||
ldr r0, _0202703C ; =_022A7AB4
|
||||
strh r2, [r1, #6]
|
||||
mov r1, #0x14
|
||||
@@ -35784,10 +35811,10 @@ _02026EB0:
|
||||
.align 2, 0
|
||||
_02026FEC: .word _020AFD4C
|
||||
_02026FF0: .word _022A88DC
|
||||
_02026FF4: .word _022A7A6C
|
||||
#ifndef JAPAN
|
||||
_02026FF8: .word _022A7B1C
|
||||
_02026FF4: .word _022A7A6C
|
||||
#endif
|
||||
_02026FF8: .word _022A7B1C
|
||||
_02026FFC: .word _022A7AC8
|
||||
_02027000: .word 0x04000014
|
||||
_02027004: .word 0x0600D800
|
||||
@@ -35804,7 +35831,7 @@ _0202702C: .word 0x06898000
|
||||
_02027030: .word _022A7A78
|
||||
_02027034: .word 0x0689A000
|
||||
#ifdef JAPAN
|
||||
_0202737C: .word _022A7A6C
|
||||
_02026FF4: .word _022A7A6C
|
||||
#endif
|
||||
_02027038: .word _022A7EDC
|
||||
_0202703C: .word _022A7AB4
|
||||
@@ -36292,7 +36319,11 @@ sub_0202760C: ; 0x0202760C
|
||||
ldr r0, [r0, r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02027620: .word _022A88FC
|
||||
#else
|
||||
_02027620: .word _022A88F0
|
||||
#endif
|
||||
arm_func_end sub_0202760C
|
||||
|
||||
#ifdef JAPAN
|
||||
@@ -38067,7 +38098,7 @@ _02028BC4:
|
||||
b _02028BEC
|
||||
_02028BDC:
|
||||
#ifdef JAPAN
|
||||
strb r1, [r7]
|
||||
strb r0, [r7]
|
||||
#else
|
||||
mov r1, #0
|
||||
add r0, r7, #4
|
||||
@@ -38101,7 +38132,11 @@ _02028BF4:
|
||||
bl sub_0200A174
|
||||
_02028C20:
|
||||
ldr r1, _02028DEC ; =_022A7A6C
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r1, #4]
|
||||
#else
|
||||
ldrb r0, [r1]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _02028C40
|
||||
ldr r0, _02028E10 ; =_022A7A8C
|
||||
@@ -47603,26 +47638,7 @@ IsAdvancedTextBoxActive: ; 0x020308C4
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsAdvancedTextBoxActive
|
||||
|
||||
#ifdef JAPAN
|
||||
arm_func_start sub_02030940
|
||||
sub_02030940: ; 0x02030940
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldrb r1, [r0, #0x1c0]
|
||||
cmp r1, #0
|
||||
beq _02030970
|
||||
ldrb r1, [r0, #0x1c1]
|
||||
cmp r1, #0
|
||||
mvnne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
add r0, r0, #4
|
||||
bl sub_02032578
|
||||
ldmia sp!, {r3, pc}
|
||||
_02030970:
|
||||
mvn r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_02030940
|
||||
#else
|
||||
#ifndef JAPAN
|
||||
arm_func_start sub_020308E4
|
||||
sub_020308E4: ; 0x020308E4
|
||||
stmdb sp!, {r3, lr}
|
||||
@@ -47656,7 +47672,6 @@ _02030938:
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_02030908
|
||||
|
||||
#ifndef JAPAN
|
||||
arm_func_start sub_02030940
|
||||
sub_02030940: ; 0x02030940
|
||||
stmdb sp!, {r3, lr}
|
||||
@@ -47675,7 +47690,6 @@ _02030970:
|
||||
mvn r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_02030940
|
||||
#endif
|
||||
|
||||
arm_func_start sub_02030978
|
||||
sub_02030978: ; 0x02030978
|
||||
@@ -51239,7 +51253,11 @@ _020336E8:
|
||||
add sp, sp, #0x154
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_020336F0: .word 0x00001D3B
|
||||
#else
|
||||
_020336F0: .word 0x000008E3
|
||||
#endif
|
||||
_020336F4: .word 0x0000C402
|
||||
_020336F8: .word _0209AFC4
|
||||
arm_func_end sub_020335A8
|
||||
@@ -54538,8 +54556,10 @@ _0203638C:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0203642C: .word _020AFDE0
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
_02036430: .word 0x00003C66
|
||||
#elif defined(JAPAN)
|
||||
_02036430: .word 0x000003BB
|
||||
#else
|
||||
_02036430: .word 0x00003C64
|
||||
#endif
|
||||
@@ -54716,8 +54736,10 @@ _020365D4:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02036674: .word _020AFDE8
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
_02036678: .word 0x00003C75
|
||||
#elif defined(JAPAN)
|
||||
_02036678: .word 0x000003CA
|
||||
#else
|
||||
_02036678: .word 0x00003C73
|
||||
#endif
|
||||
@@ -55394,6 +55416,10 @@ _02036C84:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02036CB0: .word _020AFDF0
|
||||
#ifdef JAPAN
|
||||
_02036FC8: .word 0x000031D1
|
||||
_02036FCC: .word 0x000031CE
|
||||
#endif
|
||||
_02036CB4: .word _0209B2FC
|
||||
_02036CB8: .word sub_02037F58
|
||||
_02036CBC: .word _0209B31C
|
||||
@@ -55981,7 +56007,7 @@ _020373E0:
|
||||
b _02037438
|
||||
_02037760:
|
||||
mov r0, #2
|
||||
bl sub_020383FC
|
||||
bl sub_0203935C
|
||||
ldr r0, _02037444 ; =_020AFDF0
|
||||
ldr r0, [r0]
|
||||
ldrsb r0, [r0]
|
||||
@@ -55994,10 +56020,6 @@ _0203743C:
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02037444: .word _020AFDF0
|
||||
#ifdef JAPAN
|
||||
_02036FC8: .word 0x000031D1
|
||||
_02036FCC: .word 0x000031CE
|
||||
#endif
|
||||
_02037448: .word _0209B3B4
|
||||
_0203744C: .word _0209B3B6
|
||||
_02037450: .word _0209B32C
|
||||
@@ -56629,7 +56651,11 @@ sub_02037C78: ; 0x02037C78
|
||||
bl UpdateWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02037CA4: .word 0x000031D4
|
||||
#else
|
||||
_02037CA4: .word 0x00000122
|
||||
#endif
|
||||
arm_func_end sub_02037C78
|
||||
|
||||
arm_func_start sub_02037CA8
|
||||
@@ -56646,7 +56672,11 @@ sub_02037CA8: ; 0x02037CA8
|
||||
bl UpdateWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02037CD4: .word 0x000031D5
|
||||
#else
|
||||
_02037CD4: .word 0x00000123
|
||||
#endif
|
||||
arm_func_end sub_02037CA8
|
||||
|
||||
arm_func_start sub_02037CD8
|
||||
@@ -56786,7 +56816,7 @@ _02037E0C:
|
||||
ldr r2, [r1, r5, lsl #2]
|
||||
ldr r1, _020381F8 ; =_0209B4A4
|
||||
bl SprintfStatic__02037F30
|
||||
b _02038178
|
||||
b _02037EA8
|
||||
_02037E38:
|
||||
ldr r1, _020381F4 ; =_020B12A0_JP
|
||||
add r0, sp, #0
|
||||
@@ -57235,10 +57265,10 @@ _020382AC:
|
||||
ldr r1, [r5, #0xc]
|
||||
mov r0, sb
|
||||
str r2, [sp]
|
||||
ldr r2, _020383F0 ; =_0209B2D0
|
||||
ldr r2, _020383EC ; =_0209B2C4
|
||||
ldrsh r5, [r5, #0x20]
|
||||
ldrb r7, [r2, r1]
|
||||
ldr r2, _020383EC ; =_0209B2C4
|
||||
ldr r2, _020383F0 ; =_0209B2D0
|
||||
mov r3, #0xc
|
||||
ldrb r2, [r2, r1]
|
||||
add r1, r7, r5
|
||||
@@ -57610,13 +57640,13 @@ _020385F0:
|
||||
beq _02038680
|
||||
cmp r4, #0x12
|
||||
bge _02038680
|
||||
#ifdef JAPAN
|
||||
mov r0, #0x20
|
||||
#else
|
||||
mov r0, #2
|
||||
#endif
|
||||
bl PlaySeVolumeWrapper
|
||||
#ifdef JAPAN
|
||||
mov r1, #2
|
||||
#else
|
||||
mov r1, #0x20
|
||||
#endif
|
||||
ldr r0, _02038900 ; =_020AFDF0
|
||||
b _0203864C
|
||||
_02038634:
|
||||
@@ -58002,7 +58032,7 @@ _02038AF0:
|
||||
bl sub_02025C7C
|
||||
ldr r1, [r6]
|
||||
#ifdef JAPAN
|
||||
ldrb r2, [r0, #6]
|
||||
ldrsh r2, [r0, #6]
|
||||
#else
|
||||
ldrb r2, [r0, #2]
|
||||
#endif
|
||||
@@ -58010,7 +58040,7 @@ _02038AF0:
|
||||
add r5, r5, #1
|
||||
strh r2, [r1, #0x8c]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #6]
|
||||
ldrsh r0, [r0, #6]
|
||||
#else
|
||||
ldrb r0, [r0, #2]
|
||||
#endif
|
||||
@@ -64385,7 +64415,11 @@ _0203DCB8:
|
||||
add r0, r0, #0xa1
|
||||
add r0, r0, #0x100
|
||||
add r1, r1, #0x3a
|
||||
#ifdef JAPAN
|
||||
bl StrcpySimple
|
||||
#else
|
||||
bl StrncpySimple
|
||||
#endif
|
||||
ldr r0, _0203E4B0 ; =_020AFE74
|
||||
mov r2, #0xa
|
||||
ldr r0, [r0]
|
||||
@@ -65654,7 +65688,7 @@ _0203EEBC:
|
||||
ldr r1, _0203E4B0 ; =_020AFE74
|
||||
ldr r0, _0203E4B8 ; =0x0000101C
|
||||
ldr r2, [r1]
|
||||
ldr r1, _0203F348 ; =0x0000245A
|
||||
ldr r1, _0203EFB4 ; =0x0000245A
|
||||
#else
|
||||
mov r4, r0
|
||||
cmp r4, #1
|
||||
|
||||
@@ -38569,7 +38569,10 @@ _0209B488:
|
||||
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x00, 0x00, 0x00
|
||||
.byte 0x10, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF
|
||||
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x38, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E
|
||||
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x38, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
||||
.global _0209B548_JP
|
||||
_0209B548_JP:
|
||||
.byte 0x2F, 0x46, 0x4F, 0x4E
|
||||
.byte 0x54, 0x2F, 0x6B, 0x61, 0x6E, 0x6A, 0x69, 0x2E, 0x64, 0x61, 0x74, 0x00
|
||||
.global _0209AC04
|
||||
_0209AC04:
|
||||
@@ -56418,11 +56421,19 @@ _020AFD60:
|
||||
.word _0209ACC0
|
||||
.word _0209AD28
|
||||
.word _0209AD3C
|
||||
#ifdef JAPAN
|
||||
.global _020AFD98
|
||||
_020AFD98:
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.global _020AFD94
|
||||
_020AFD94:
|
||||
#else
|
||||
.global _020AFD94
|
||||
_020AFD94:
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.global _020AFD98
|
||||
_020AFD98:
|
||||
#endif
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.global _020AFD9C
|
||||
_020AFD9C:
|
||||
@@ -56465,6 +56476,7 @@ _020AFDF0:
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
#ifdef JAPAN
|
||||
.word _020AFE44
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
#else
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.word _020AFE44
|
||||
@@ -56472,7 +56484,7 @@ _020AFDF0:
|
||||
.global KEYBOARD_STRING_IDS
|
||||
KEYBOARD_STRING_IDS:
|
||||
#ifdef JAPAN
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xDA, 0x31, 0xDA, 0x31, 0x01, 0x01, 0xDC, 0x31, 0xDC, 0x31
|
||||
.byte 0x00, 0x01, 0xDA, 0x31, 0xDA, 0x31, 0x01, 0x01, 0xDC, 0x31, 0xDC, 0x31
|
||||
.byte 0x02, 0x01, 0xDE, 0x31, 0xDF, 0x31, 0x03, 0x01, 0xE0, 0x31, 0xE1, 0x31, 0x04, 0x01, 0xE2, 0x31
|
||||
.byte 0xE3, 0x31, 0x05, 0x01, 0xE4, 0x31, 0xE5, 0x31, 0x06, 0x01, 0xE6, 0x31, 0xE7, 0x31, 0x07, 0x01
|
||||
.byte 0xE8, 0x31, 0xE8, 0x31, 0x08, 0x01, 0xE9, 0x31, 0xE9, 0x31, 0x09, 0x01, 0xD8, 0x31, 0xD8, 0x31
|
||||
@@ -58796,15 +58808,22 @@ _022A7AB4:
|
||||
.global _022A7AB6
|
||||
_022A7AB6:
|
||||
.space 0x12
|
||||
#ifdef JAPAN
|
||||
.global _022A7B00
|
||||
_022A7B00:
|
||||
.space 0x1C
|
||||
#endif
|
||||
.global _022A7AC8
|
||||
_022A7AC8:
|
||||
.space 0x1C
|
||||
.global _022A7AE4
|
||||
_022A7AE4:
|
||||
.space 0x1C
|
||||
#ifndef JAPAN
|
||||
.global _022A7B00
|
||||
_022A7B00:
|
||||
.space 0x1C
|
||||
#endif
|
||||
.global _022A7B1C
|
||||
_022A7B1C:
|
||||
#ifdef JAPAN
|
||||
|
||||
@@ -39837,7 +39837,9 @@ _022FD540:
|
||||
ldr r1, [sl, #0x1c]
|
||||
add r1, r2, r1
|
||||
str r1, [sp, #0x10]
|
||||
#ifndef JAPAN
|
||||
ldrsh r1, [r0, #0xe6]
|
||||
#endif
|
||||
ldr r6, [sl, #0x144]
|
||||
ldr r5, [sl, #0x148]
|
||||
#ifdef JAPAN
|
||||
@@ -65485,8 +65487,8 @@ ov11_02312264: ; 0x02312264
|
||||
ldr r0, [r0, #4]
|
||||
mov r2, #0
|
||||
add r0, r0, #0xf4
|
||||
#endif
|
||||
bl SetAnimDataFields2
|
||||
#endif
|
||||
bl ov11_02312398
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
|
||||
@@ -2490,7 +2490,11 @@ ov29_022DE300: ; 0x022DE300
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022DE410: .word ov29_02353530
|
||||
#ifdef JAPAN
|
||||
_022DE414: .word 0x000003FE
|
||||
#else
|
||||
_022DE414: .word 0x0000040A
|
||||
#endif
|
||||
arm_func_end ov29_022DE300
|
||||
|
||||
arm_func_start ov29_022DE418
|
||||
@@ -2684,7 +2688,11 @@ ov29_022DE638: ; 0x022DE638
|
||||
ldr r0, [r1]
|
||||
mov r4, #0
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r0, [r0, #0x30]
|
||||
#else
|
||||
ldrsh r0, [r0, #0xd4]
|
||||
#endif
|
||||
bl IsBackgroundTileset
|
||||
cmp r0, #0
|
||||
mov r1, r4
|
||||
@@ -3019,7 +3027,11 @@ DungeonAlloc: ; 0x022DEA5C
|
||||
str r0, [r1, #4]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022DEA78: .word 0x0002CA70
|
||||
#else
|
||||
_022DEA78: .word 0x0002CB14
|
||||
#endif
|
||||
_022DEA7C: .word DUNGEON_PTR
|
||||
arm_func_end DungeonAlloc
|
||||
|
||||
@@ -3042,7 +3054,11 @@ DungeonZInit: ; 0x022DEA90
|
||||
.align 2, 0
|
||||
_022DEAA4: .word DUNGEON_PTR
|
||||
_022DEAA8: .word MemZero
|
||||
#ifdef JAPAN
|
||||
_022DEAAC: .word 0x0002CA70
|
||||
#else
|
||||
_022DEAAC: .word 0x0002CB14
|
||||
#endif
|
||||
arm_func_end DungeonZInit
|
||||
|
||||
arm_func_start DungeonFree
|
||||
@@ -3137,6 +3153,11 @@ _022DEBB8: .word ov29_022DEB40
|
||||
|
||||
arm_func_start ov29_022DEBBC
|
||||
ov29_022DEBBC: ; 0x022DEBBC
|
||||
#ifdef JAPAN
|
||||
#define OV29_022DEBBC_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022DEBBC_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
bl GetDungeonGenInfoUnk0C
|
||||
@@ -3196,7 +3217,7 @@ ov29_022DEBBC: ; 0x022DEBBC
|
||||
strb r0, [r3, #0x13]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x2c000
|
||||
strb r2, [r0, #0xb10]
|
||||
strb r2, [r0, #0xb10 + OV29_022DEBBC_OFFSET]
|
||||
ldr r0, [r1]
|
||||
strb r2, [r0, #8]
|
||||
ldr r0, [r1]
|
||||
@@ -3254,22 +3275,22 @@ ov29_022DEBBC: ; 0x022DEBBC
|
||||
strh r1, [r2, #0x86]
|
||||
ldr r2, [r0]
|
||||
add r2, r2, #0xc000
|
||||
strb r1, [r2, #0xd38]
|
||||
strb r1, [r2, #0xd38 + OV29_022DEBBC_OFFSET]
|
||||
ldr r3, [r0]
|
||||
add r1, r3, #0x28000
|
||||
ldrb r2, [r1, #0x6b4]
|
||||
ldrb r2, [r1, #0x6b4 + OV29_022DEBBC_OFFSET]
|
||||
add r1, r3, #0x4000
|
||||
strh r2, [r1, #0xd4]
|
||||
strh r2, [r1, #0xd4 + OV29_022DEBBC_OFFSET]
|
||||
ldr r3, [r0]
|
||||
add r1, r3, #0x28000
|
||||
ldrb r2, [r1, #0x6b5]
|
||||
ldrb r2, [r1, #0x6b5 + OV29_022DEBBC_OFFSET]
|
||||
add r1, r3, #0x4000
|
||||
strh r2, [r1, #0xd6]
|
||||
strh r2, [r1, #0xd6 + OV29_022DEBBC_OFFSET]
|
||||
ldr r3, [r0]
|
||||
add r1, r3, #0x28000
|
||||
ldrb r2, [r1, #0x6c4]
|
||||
ldrb r2, [r1, #0x6c4 + OV29_022DEBBC_OFFSET]
|
||||
add r1, r3, #0x4000
|
||||
strb r2, [r1, #0xda]
|
||||
strb r2, [r1, #0xda + OV29_022DEBBC_OFFSET]
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, #0x798]
|
||||
cmp r0, #1
|
||||
@@ -3283,19 +3304,19 @@ ov29_022DEBBC: ; 0x022DEBBC
|
||||
ldr r0, _022DEF2C ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrb r2, [r0, #0xda]
|
||||
ldrb r2, [r0, #0xda + OV29_022DEBBC_OFFSET]
|
||||
cmp r2, #0
|
||||
ldrne r1, _022DEF34 ; =FIXED_ROOM_REVISIT_OVERRIDES
|
||||
ldrneb r1, [r1, r2]
|
||||
cmpne r1, #0
|
||||
strneb r1, [r0, #0xda]
|
||||
strneb r1, [r0, #0xda + OV29_022DEBBC_OFFSET]
|
||||
ldr r0, _022DEF2C ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrsh r1, [r0, #0xd4]
|
||||
ldrsh r1, [r0, #0xd4 + OV29_022DEBBC_OFFSET]
|
||||
cmp r1, #0xb3
|
||||
moveq r1, #0xb7
|
||||
streqh r1, [r0, #0xd4]
|
||||
streqh r1, [r0, #0xd4 + OV29_022DEBBC_OFFSET]
|
||||
_022DEE38:
|
||||
ldr r0, _022DEF2C ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
@@ -3311,7 +3332,7 @@ _022DEE38:
|
||||
mov r1, #0x2a
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
strb r1, [r0, #0xda]
|
||||
strb r1, [r0, #0xda + OV29_022DEBBC_OFFSET]
|
||||
b _022DEEA4
|
||||
_022DEE78:
|
||||
cmp r0, #0x87
|
||||
@@ -3324,7 +3345,7 @@ _022DEE78:
|
||||
movne r1, #0x2b
|
||||
ldrne r0, [r0]
|
||||
addne r0, r0, #0x4000
|
||||
strneb r1, [r0, #0xda]
|
||||
strneb r1, [r0, #0xda + OV29_022DEBBC_OFFSET]
|
||||
_022DEEA4:
|
||||
bl ov29_023484A0
|
||||
cmp r4, #1
|
||||
@@ -3333,7 +3354,7 @@ _022DEEA4:
|
||||
mov r2, #0x70
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x4000
|
||||
strb r2, [r0, #0xda]
|
||||
strb r2, [r0, #0xda + OV29_022DEBBC_OFFSET]
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, #0x748]
|
||||
bl DungeonGoesUp
|
||||
@@ -3343,14 +3364,14 @@ _022DEEA4:
|
||||
mov r1, #0xc4
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
strh r1, [r0, #0xd4]
|
||||
strh r1, [r0, #0xd4 + OV29_022DEBBC_OFFSET]
|
||||
b _022DEF20
|
||||
_022DEEF0:
|
||||
ldr r0, _022DEF2C ; =DUNGEON_PTR
|
||||
mov r1, #0xc5
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
strh r1, [r0, #0xd4]
|
||||
strh r1, [r0, #0xd4 + OV29_022DEBBC_OFFSET]
|
||||
b _022DEF20
|
||||
_022DEF08:
|
||||
cmp r4, #2
|
||||
@@ -3358,7 +3379,7 @@ _022DEF08:
|
||||
moveq r1, #0x71
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x4000
|
||||
streqb r1, [r0, #0xda]
|
||||
streqb r1, [r0, #0xda + OV29_022DEBBC_OFFSET]
|
||||
_022DEF20:
|
||||
mov r0, #0
|
||||
bl ov29_02338898
|
||||
@@ -3371,6 +3392,11 @@ _022DEF34: .word FIXED_ROOM_REVISIT_OVERRIDES
|
||||
|
||||
arm_func_start RunDungeon
|
||||
RunDungeon: ; 0x022DEF38
|
||||
#ifdef JAPAN
|
||||
#define RUN_DUNGEON_OFFSET -0xA4
|
||||
#else
|
||||
#define RUN_DUNGEON_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0xd0
|
||||
mov sl, r0
|
||||
@@ -3563,7 +3589,9 @@ _022DF214:
|
||||
bl ov29_0234CB34
|
||||
bl ov29_0234CB54
|
||||
bl ov29_023365E8
|
||||
#ifndef JAPAN
|
||||
bl ov29_02348850
|
||||
#endif
|
||||
_022DF22C:
|
||||
cmp r6, #0
|
||||
beq _022DF238
|
||||
@@ -3573,9 +3601,9 @@ _022DF238:
|
||||
bne _022DF2D0
|
||||
add r0, sb, #0x1a000
|
||||
mov r2, #1
|
||||
strb r2, [r0, #0x23f]
|
||||
strb r2, [r0, #0x23f + RUN_DUNGEON_OFFSET]
|
||||
ldr r1, _022DFF40 ; =DUNGEON_PTR
|
||||
strb r2, [r0, #0x240]
|
||||
strb r2, [r0, #0x240 + RUN_DUNGEON_OFFSET]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x7d0
|
||||
bl ov29_0231B39C
|
||||
@@ -3735,7 +3763,7 @@ _022DF460:
|
||||
strb r2, [r0, #4]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
strb r2, [r0, #0xe28]
|
||||
strb r2, [r0, #0xe28 + RUN_DUNGEON_OFFSET]
|
||||
bne _022DF4E4
|
||||
ldr r0, [r1]
|
||||
mov r1, #0xa
|
||||
@@ -3763,19 +3791,23 @@ _022DF4E4:
|
||||
ldr r1, [r0]
|
||||
mov r0, #4
|
||||
add r1, r1, #0x3000
|
||||
strb r2, [r1, #0xe38]
|
||||
strb r2, [r1, #0xe38 + RUN_DUNGEON_OFFSET]
|
||||
bl DungeonRandInt
|
||||
ldr r1, _022DFF40 ; =DUNGEON_PTR
|
||||
ldr r2, _022DFF58 ; =ov29_023510C0
|
||||
mov r3, r0, lsl #1
|
||||
ldr r0, [r1]
|
||||
ldrsh r3, [r2, r3]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x3d00
|
||||
#else
|
||||
add r0, r0, #0x3e00
|
||||
#endif
|
||||
mov r2, #0
|
||||
strh r3, [r0, #0x3a]
|
||||
strh r3, [r0, #0x3a + RUN_DUNGEON_OFFSET]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
strb r2, [r0, #0xe39]
|
||||
strb r2, [r0, #0xe39 + RUN_DUNGEON_OFFSET]
|
||||
ldr r0, [r1]
|
||||
strb r2, [r0, #0x78a]
|
||||
_022DF53C:
|
||||
@@ -3797,12 +3829,12 @@ _022DF574:
|
||||
ldr r0, _022DFF40 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrsh r0, [r0, #0xd4]
|
||||
ldrsh r0, [r0, #0xd4 + RUN_DUNGEON_OFFSET]
|
||||
bl ov29_023389C4
|
||||
ldr r0, _022DFF40 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xc000
|
||||
ldrb r0, [r0, #0xd38]
|
||||
ldrb r0, [r0, #0xd38 + RUN_DUNGEON_OFFSET]
|
||||
bl ov29_02338A4C
|
||||
bl ov29_022E8708
|
||||
bl ov29_022DD5B4
|
||||
@@ -3839,18 +3871,18 @@ _022DF5E4:
|
||||
ldr r0, _022DFF40 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrb r0, [r0, #0xda]
|
||||
ldrb r0, [r0, #0xda + RUN_DUNGEON_OFFSET]
|
||||
bl IsRoomIlluminated
|
||||
cmp r0, #0
|
||||
addne r0, sb, #0x1a000
|
||||
movne r1, #1
|
||||
strneb r1, [r0, #0x23f]
|
||||
strneb r1, [r0, #0x240]
|
||||
strneb r1, [r0, #0x23f + RUN_DUNGEON_OFFSET]
|
||||
strneb r1, [r0, #0x240 + RUN_DUNGEON_OFFSET]
|
||||
bl IsSecretBazaarVeneer
|
||||
ldr r0, _022DFF40 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrb r0, [r0, #0xda]
|
||||
ldrb r0, [r0, #0xda + RUN_DUNGEON_OFFSET]
|
||||
bl IsBossFight
|
||||
cmp r0, #0
|
||||
bne _022DF660
|
||||
@@ -3886,7 +3918,7 @@ _022DF6C0:
|
||||
ldr r0, _022DFF40 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r0, [r0, #0x245]
|
||||
ldrb r0, [r0, #0x245 + RUN_DUNGEON_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _022DF6F4
|
||||
bl GetLeader
|
||||
@@ -3895,17 +3927,17 @@ _022DF6C0:
|
||||
movne r1, #1
|
||||
ldrne r0, [r0]
|
||||
addne r0, r0, #0x2c000
|
||||
strneb r1, [r0, #0xb10]
|
||||
strneb r1, [r0, #0xb10 + RUN_DUNGEON_OFFSET]
|
||||
_022DF6F4:
|
||||
bl ov29_022FCD04
|
||||
_022DF6F8:
|
||||
bl ov29_0231AFB4
|
||||
add r0, sb, #0x19000
|
||||
mov r1, #0
|
||||
str r1, [r0, #0x904]
|
||||
str r1, [r0, #0x90c]
|
||||
str r1, [r0, #0x908]
|
||||
str r1, [r0, #0x910]
|
||||
str r1, [r0, #0x904 + RUN_DUNGEON_OFFSET]
|
||||
str r1, [r0, #0x90c + RUN_DUNGEON_OFFSET]
|
||||
str r1, [r0, #0x908 + RUN_DUNGEON_OFFSET]
|
||||
str r1, [r0, #0x910 + RUN_DUNGEON_OFFSET]
|
||||
cmp r5, #0
|
||||
bne _022DF74C
|
||||
bl ov29_022ED888
|
||||
@@ -4157,13 +4189,17 @@ _022DFAA4:
|
||||
bl ov29_022E5F20
|
||||
bl GetLeader
|
||||
add r1, sb, #0x4000
|
||||
ldrb r1, [r1, #0xc4]
|
||||
ldrb r1, [r1, #0xc4 + RUN_DUNGEON_OFFSET]
|
||||
bl ov29_02305814
|
||||
mov r0, #1
|
||||
mov r1, r7
|
||||
bl TryActivateWeather
|
||||
_022DFAD4:
|
||||
#ifdef JAPAN
|
||||
mov r0, #0x14000
|
||||
#else
|
||||
mov r0, #0x10c00
|
||||
#endif
|
||||
bl ov10_022BFE6C
|
||||
bl sub_02001808
|
||||
ldr r0, _022DFF40 ; =DUNGEON_PTR
|
||||
@@ -4176,7 +4212,7 @@ _022DFAD4:
|
||||
mov r0, r4
|
||||
strb r2, [sb, #0x758]
|
||||
add r1, sb, #0x1a000
|
||||
strb r2, [r1, #0x24d]
|
||||
strb r2, [r1, #0x24d + RUN_DUNGEON_OFFSET]
|
||||
bl SetMinimapDataE447
|
||||
mov r6, #0
|
||||
_022DFB14:
|
||||
@@ -4250,7 +4286,7 @@ _022DFBE4:
|
||||
ldr r1, [r0]
|
||||
mov r0, #4
|
||||
add r1, r1, #0x1a000
|
||||
strb r2, [r1, #0x24d]
|
||||
strb r2, [r1, #0x24d + RUN_DUNGEON_OFFSET]
|
||||
mov r1, #0x4f
|
||||
bl ov29_022EA370
|
||||
bl ov29_022E9FC0
|
||||
@@ -4306,7 +4342,11 @@ _022DFC60:
|
||||
mov r0, #0
|
||||
bl ov29_0234C738
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
mov r1, #0x880
|
||||
#else
|
||||
ldr r1, _022DFF6C ; =0x00000B6F
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage
|
||||
mov r0, #2
|
||||
@@ -4466,19 +4506,26 @@ _022DFF14:
|
||||
mov r1, #1
|
||||
b _022DFF8C
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define RUN_DUNGEON_DATA_OFFSET -0x2EF
|
||||
#else
|
||||
#define RUN_DUNGEON_DATA_OFFSET 0
|
||||
#endif
|
||||
_022DFF3C: .word ov29_023510C8
|
||||
_022DFF40: .word DUNGEON_PTR
|
||||
_022DFF44: .word 0x00000B6B
|
||||
_022DFF48: .word 0x00000B6C
|
||||
_022DFF4C: .word 0x00000B6D
|
||||
_022DFF50: .word 0x00000B6E
|
||||
_022DFF44: .word 0x00000B6B + RUN_DUNGEON_DATA_OFFSET
|
||||
_022DFF48: .word 0x00000B6C + RUN_DUNGEON_DATA_OFFSET
|
||||
_022DFF4C: .word 0x00000B6D + RUN_DUNGEON_DATA_OFFSET
|
||||
_022DFF50: .word 0x00000B6E + RUN_DUNGEON_DATA_OFFSET
|
||||
_022DFF54: .word LEADER_PTR
|
||||
_022DFF58: .word ov29_023510C0
|
||||
_022DFF5C: .word ov29_022DEBBC
|
||||
_022DFF60: .word ov29_02353563
|
||||
_022DFF64: .word 0x00000B73
|
||||
_022DFF64: .word 0x00000B73 + RUN_DUNGEON_DATA_OFFSET
|
||||
_022DFF68: .word DIRECTIONS_XY
|
||||
#ifndef JAPAN
|
||||
_022DFF6C: .word 0x00000B6F
|
||||
#endif
|
||||
_022DFF70: .word 0x00000266
|
||||
_022DFF74: .word 0x00000261
|
||||
_022DFF78: .word 0x00000279
|
||||
@@ -4560,7 +4607,7 @@ _022E008C:
|
||||
ldr r1, [r0]
|
||||
add r0, r1, #0x2c000
|
||||
ldrb r1, [r1, #0x749]
|
||||
ldrb r0, [r0, #0xaf4]
|
||||
ldrb r0, [r0, #0xaf4 + RUN_DUNGEON_OFFSET]
|
||||
add r1, r1, #1
|
||||
cmp r1, r0
|
||||
blt _022E00C8
|
||||
|
||||
@@ -36,7 +36,11 @@ GetFloorType: ; 0x022E03B0
|
||||
moveq r0, #2
|
||||
ldmeqia sp!, {r3, pc}
|
||||
add r0, r2, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _022E03F8
|
||||
cmp r0, #0x6e
|
||||
@@ -76,7 +80,11 @@ _022E044C:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r8, [r0, #0xa94]
|
||||
#else
|
||||
ldr r8, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl EntityIsValid__022E0354
|
||||
cmp r0, #0
|
||||
@@ -103,6 +111,67 @@ _022E04B4:
|
||||
add r7, r7, #1
|
||||
cmp r7, #0x10
|
||||
blt _022E044C
|
||||
#ifdef JAPAN
|
||||
mov r6, #0
|
||||
_022E04C4:
|
||||
ldr r0, _022E0618 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r4, [r0, #0xa84]
|
||||
mov r0, r4
|
||||
bl EntityIsValid__022E0354
|
||||
cmp r0, #0
|
||||
beq _022E1C2C
|
||||
mov r0, #0
|
||||
mov r3, #1
|
||||
strb r0, [r4, #0x22]
|
||||
strb r3, [r4, #0x20]
|
||||
ldr r5, [r4, #0xb4]
|
||||
rsb r0, r3, #0x3e8
|
||||
ldrsh r2, [r5, #0x12]
|
||||
ldrsh r1, [r5, #0x16]
|
||||
ldr r3, _022E0618 ; =DUNGEON_PTR
|
||||
add r1, r2, r1
|
||||
cmp r1, r0
|
||||
movgt r1, r0
|
||||
strh r1, [r5, #0x10]
|
||||
add r2, r5, #0x100
|
||||
ldrh r0, [r2, #0x46]
|
||||
mov r1, #0
|
||||
strh r0, [r2, #0x42]
|
||||
ldrh r4, [r2, #0x48]
|
||||
mov r0, r5
|
||||
strh r4, [r2, #0x44]
|
||||
ldr r2, [r3]
|
||||
strb r1, [r2, #0x78d]
|
||||
bl SubInitMonster
|
||||
ldrsh r0, [r5, #2]
|
||||
mov r4, #0
|
||||
add r8, r5, #0x120
|
||||
strh r0, [r5, #4]
|
||||
strb r4, [r5, #0x105]
|
||||
mov r5, r4
|
||||
mov r7, #1
|
||||
_022E1BF8:
|
||||
ldrb r0, [r8, r4, lsl #3]
|
||||
add sb, r8, r4, lsl #3
|
||||
tst r0, #1
|
||||
movne r0, r7
|
||||
moveq r0, r5
|
||||
tst r0, #0xff
|
||||
beq _022E1C20
|
||||
mov r0, sb
|
||||
bl GetMaxPpWrapper
|
||||
strb r0, [sb, #6]
|
||||
_022E1C20:
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
blt _022E1BF8
|
||||
_022E1C2C:
|
||||
add r6, r6, #1
|
||||
cmp r6, #4
|
||||
#else
|
||||
mov r8, #0
|
||||
_022E04C4:
|
||||
ldr r0, _022E0618 ; =DUNGEON_PTR
|
||||
@@ -165,6 +234,7 @@ _022E058C:
|
||||
_022E05A0:
|
||||
add r8, r8, #1
|
||||
cmp r8, #4
|
||||
#endif
|
||||
blt _022E04C4
|
||||
mov r8, #0
|
||||
mov r4, #5
|
||||
@@ -230,8 +300,13 @@ _022E0648:
|
||||
add r1, r1, #0x248
|
||||
add r1, r1, #0x400
|
||||
bl ov29_0234B0B4
|
||||
#ifdef JAPAN
|
||||
ldr r1, _022E1E90 ; =0x00000881
|
||||
mov r0, #0
|
||||
#else
|
||||
mov r0, #0
|
||||
mov r1, #0xb70
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage2
|
||||
_022E0698:
|
||||
@@ -336,10 +411,16 @@ _022E07F8:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022E0800: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
#define TRY_FORCED_LOSS_OFFSET -0x2EF
|
||||
_022E1E90: .word 0x00000881
|
||||
#else
|
||||
#define TRY_FORCED_LOSS_OFFSET 0
|
||||
#endif
|
||||
_022E0804: .word 0x0000025E
|
||||
_022E0808: .word 0x00000B71
|
||||
_022E0808: .word 0x00000B71 + TRY_FORCED_LOSS_OFFSET
|
||||
_022E080C: .word 0x00000261
|
||||
_022E0810: .word 0x00000B72
|
||||
_022E0810: .word 0x00000B72 + TRY_FORCED_LOSS_OFFSET
|
||||
_022E0814: .word 0x00000266
|
||||
_022E0818: .word 0x00000265
|
||||
arm_func_end TryForcedLoss
|
||||
@@ -386,7 +467,11 @@ IsCurrentFixedRoomBossFight: ; 0x022E0880
|
||||
ldr ip, _022E089C ; =IsBossFight
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_022E0898: .word DUNGEON_PTR
|
||||
@@ -415,7 +500,11 @@ FixedRoomIsSubstituteRoom: ; 0x022E08CC
|
||||
ldr r0, _022E08F0 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
cmp r0, #0x6e
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
@@ -502,7 +591,11 @@ FadeToBlack: ; 0x022E0968
|
||||
ldr r0, _022E09E4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0x1a9]
|
||||
#else
|
||||
strb r1, [r0, #0x24d]
|
||||
#endif
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022E09E4: .word DUNGEON_PTR
|
||||
@@ -545,7 +638,11 @@ ov29_022E0A18: ; 0x022E0A18
|
||||
mov r1, #1
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0x1a9]
|
||||
#else
|
||||
strb r1, [r0, #0x24d]
|
||||
#endif
|
||||
bl FadeToBlack
|
||||
mov r0, #0
|
||||
bl ov29_022E9FD0
|
||||
@@ -1110,7 +1207,11 @@ _022E1038:
|
||||
bl HandleSir0Translation
|
||||
add r0, sp, #0x20
|
||||
mov r1, #4
|
||||
#ifdef JAPAN
|
||||
mov r2, #0x3f4
|
||||
#else
|
||||
mov r2, #0x400
|
||||
#endif
|
||||
mov r3, #0
|
||||
bl LoadWteFromFileDirectory
|
||||
mov r6, #0
|
||||
@@ -1220,7 +1321,11 @@ _022E1298:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022E12EC: .word 0x000003FD
|
||||
#else
|
||||
_022E12EC: .word 0x00000409
|
||||
#endif
|
||||
_022E12F0: .word ov29_0237C6D4
|
||||
_022E12F4: .word 0x00005E20
|
||||
arm_func_end ov29_022E11F8
|
||||
@@ -1321,6 +1426,50 @@ _022E142C:
|
||||
blt _022E142C
|
||||
ldr r3, _022E1504 ; =0x0000F2F0
|
||||
ldr r1, _022E14F8 ; =DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
mov r7, #0x2f0
|
||||
mov r3, #0
|
||||
_022E2AE4:
|
||||
ldr r0, [r1]
|
||||
add r0, r0, r3, lsl #1
|
||||
add r0, r0, #0x12000
|
||||
add r3, r3, #1
|
||||
strh r2, [r0, #0x88]
|
||||
cmp r3, #9
|
||||
blt _022E2AE4
|
||||
ldr r2, _022E14F4 ; =ov10_022C4D54
|
||||
ldr lr, _022E14F8 ; =DUNGEON_PTR
|
||||
add r7, r7, #1
|
||||
mov r8, #1
|
||||
mov r4, #0x1a
|
||||
mov r5, #0x19
|
||||
mov r3, #0
|
||||
mov ip, #0x12
|
||||
_022E1490:
|
||||
cmp r8, #1
|
||||
moveq sl, r5
|
||||
beq _022E2B34
|
||||
cmp r8, #2
|
||||
moveq sl, r4
|
||||
_022E2B34:
|
||||
mul r6, r8, ip
|
||||
mov r0, sl, lsl #1
|
||||
ldrsh r1, [r2, r0]
|
||||
mov sb, r3
|
||||
_022E2B44:
|
||||
ldr fp, [lr]
|
||||
orr r0, r7, r1, lsl #12
|
||||
add fp, r6, fp
|
||||
add fp, fp, sb, lsl #1
|
||||
add fp, fp, #0x12000
|
||||
strh r0, [fp, #0x88]
|
||||
add sb, sb, #1
|
||||
cmp sb, #9
|
||||
add r7, r7, #1
|
||||
blt _022E2B44
|
||||
add r8, r8, #1
|
||||
cmp r8, #3
|
||||
#else
|
||||
ldr r0, _022E1508 ; =0x0001212C
|
||||
mov r6, #0x2f0
|
||||
mov r4, #0
|
||||
@@ -1362,18 +1511,29 @@ _022E14B4:
|
||||
blt _022E14B4
|
||||
add r7, r7, #1
|
||||
cmp r7, #3
|
||||
#endif
|
||||
blt _022E1490
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022E14EC: .word 0x000003F2
|
||||
#else
|
||||
_022E14EC: .word 0x000003FE
|
||||
#endif
|
||||
_022E14F0: .word _020AFC4C
|
||||
_022E14F4: .word ov10_022C4D54
|
||||
_022E14F8: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E14FC: .word 0x00011E24
|
||||
_022E1500: .word 0x000129EE
|
||||
_022E1504: .word 0x0000F2F0
|
||||
#else
|
||||
_022E14FC: .word 0x00011EC8
|
||||
_022E1500: .word 0x00012A92
|
||||
_022E1504: .word 0x0000F2F0
|
||||
_022E1508: .word 0x0001212C
|
||||
#endif
|
||||
arm_func_end ov29_022E1304
|
||||
|
||||
arm_func_start ov29_022E150C
|
||||
@@ -1401,6 +1561,11 @@ _022E154C: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022E1550
|
||||
ov29_022E1550: ; 0x022E1550
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E1550_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E1550_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetFloorType
|
||||
cmp r0, #0
|
||||
@@ -1415,7 +1580,7 @@ ov29_022E1550: ; 0x022E1550
|
||||
ldr r0, [r0]
|
||||
moveq r1, #0x1b
|
||||
add r0, r0, #0x4000
|
||||
strh r1, [r0, #0xd8]
|
||||
strh r1, [r0, #0xd8 + OV29_022E1550_OFFSET]
|
||||
ldmia sp!, {r3, pc}
|
||||
_022E1590:
|
||||
cmp r0, #1
|
||||
@@ -1423,13 +1588,13 @@ _022E1590:
|
||||
movne r1, #0x1d
|
||||
ldrne r0, [r0]
|
||||
addne r0, r0, #0x4000
|
||||
strneh r1, [r0, #0xd8]
|
||||
strneh r1, [r0, #0xd8 + OV29_022E1550_OFFSET]
|
||||
ldmneia sp!, {r3, pc}
|
||||
ldr r0, _022E15C4 ; =DUNGEON_PTR
|
||||
mov r1, #6
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
strh r1, [r0, #0xd8]
|
||||
strh r1, [r0, #0xd8 + OV29_022E1550_OFFSET]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022E15C4: .word DUNGEON_PTR
|
||||
@@ -1498,6 +1663,11 @@ _022E163C: .word GetTileSafe
|
||||
|
||||
arm_func_start ov29_022E1640
|
||||
ov29_022E1640: ; 0x022E1640
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E1640_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E1640_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
mov r6, #0
|
||||
ldr r4, _022E1848 ; =DUNGEON_PTR
|
||||
@@ -1506,27 +1676,27 @@ ov29_022E1640: ; 0x022E1640
|
||||
mov r7, #0xb8
|
||||
_022E1658:
|
||||
ldr r2, [r4]
|
||||
add r0, r2, #0x1cc
|
||||
add r0, r2, #0x1cc + OV29_022E1640_OFFSET
|
||||
add r0, r0, #0x12c00
|
||||
mla r1, r6, r7, r0
|
||||
add r0, r2, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
str r1, [r0, #0xb28]
|
||||
str r1, [r0, #0xb28 + OV29_022E1640_OFFSET]
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb28]
|
||||
ldr r0, [r0, #0xb28 + OV29_022E1640_OFFSET]
|
||||
str r5, [r0]
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb28]
|
||||
ldr r0, [r0, #0xb28 + OV29_022E1640_OFFSET]
|
||||
add r0, r0, #0x2c
|
||||
bl InitAnimationControlWithSet__0201C0CC
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb28]
|
||||
ldr r0, [r0, #0xb28 + OV29_022E1640_OFFSET]
|
||||
add r6, r6, #1
|
||||
strh r8, [r0, #0xa8]
|
||||
cmp r6, #4
|
||||
@@ -1544,27 +1714,27 @@ _022E16C8:
|
||||
mov r8, #0xb8
|
||||
_022E16E8:
|
||||
ldr r2, [r4]
|
||||
add r0, r2, #0xac
|
||||
add r0, r2, #0xac + OV29_022E1640_OFFSET
|
||||
add r0, r0, #0x13000
|
||||
mla r1, r7, r8, r0
|
||||
add r0, r2, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
str r1, [r0, #0xb38]
|
||||
str r1, [r0, #0xb38 + OV29_022E1640_OFFSET]
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb38]
|
||||
ldr r0, [r0, #0xb38 + OV29_022E1640_OFFSET]
|
||||
str r5, [r0]
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb38]
|
||||
ldr r0, [r0, #0xb38 + OV29_022E1640_OFFSET]
|
||||
add r0, r0, #0x2c
|
||||
bl InitAnimationControlWithSet__0201C0CC
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb38]
|
||||
ldr r0, [r0, #0xb38 + OV29_022E1640_OFFSET]
|
||||
add r7, r7, #1
|
||||
strh r6, [r0, #0xa8]
|
||||
cmp r7, #0x10
|
||||
@@ -1583,7 +1753,7 @@ _022E1770:
|
||||
add r1, r1, r3, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
add r3, r3, #1
|
||||
str r0, [r1, #0xb78]
|
||||
str r0, [r1, #0xb78 + OV29_022E1640_OFFSET]
|
||||
cmp r3, #0x14
|
||||
blt _022E1770
|
||||
ldr r4, _022E1848 ; =DUNGEON_PTR
|
||||
@@ -1596,11 +1766,11 @@ _022E1798:
|
||||
mla r5, r0, r3, r2
|
||||
add r2, r6, r0, lsl #2
|
||||
add r2, r2, #0x12000
|
||||
str r5, [r2, #0xbc8]
|
||||
str r5, [r2, #0xbc8 + OV29_022E1640_OFFSET]
|
||||
ldr r2, [r4]
|
||||
add r2, r2, r0, lsl #2
|
||||
add r2, r2, #0x12000
|
||||
ldr r2, [r2, #0xbc8]
|
||||
ldr r2, [r2, #0xbc8 + OV29_022E1640_OFFSET]
|
||||
add r0, r0, #1
|
||||
str r1, [r2]
|
||||
cmp r0, #0x40
|
||||
@@ -1610,29 +1780,34 @@ _022E1798:
|
||||
mov r3, #0xb8
|
||||
_022E17E0:
|
||||
ldr r6, [r4]
|
||||
add r2, r6, #0x22c
|
||||
add r2, r6, #0x22c + OV29_022E1640_OFFSET
|
||||
add r2, r2, #0x16800
|
||||
mla r5, r1, r3, r2
|
||||
add r2, r6, r1, lsl #2
|
||||
add r2, r2, #0x12000
|
||||
str r5, [r2, #0xcc8]
|
||||
str r5, [r2, #0xcc8 + OV29_022E1640_OFFSET]
|
||||
ldr r2, [r4]
|
||||
add r2, r2, r1, lsl #2
|
||||
add r2, r2, #0x12000
|
||||
ldr r2, [r2, #0xcc8]
|
||||
ldr r2, [r2, #0xcc8 + OV29_022E1640_OFFSET]
|
||||
add r1, r1, #1
|
||||
str r0, [r2]
|
||||
cmp r1, #0x40
|
||||
blt _022E17E0
|
||||
ldr r2, _022E1848 ; =DUNGEON_PTR
|
||||
ldr r4, [r2]
|
||||
#ifdef JAPAN
|
||||
add r1, r4, #0x388
|
||||
add r3, r1, #0x19400
|
||||
#else
|
||||
add r1, r4, #0x2c
|
||||
add r3, r1, #0x19800
|
||||
#endif
|
||||
add r1, r4, #0x12000
|
||||
str r3, [r1, #0xdc8]
|
||||
str r3, [r1, #0xdc8 + OV29_022E1640_OFFSET]
|
||||
ldr r1, [r2]
|
||||
add r1, r1, #0x12000
|
||||
ldr r1, [r1, #0xdc8]
|
||||
ldr r1, [r1, #0xdc8 + OV29_022E1640_OFFSET]
|
||||
str r0, [r1]
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
@@ -1643,13 +1818,18 @@ _022E1850: .word ov29_0237C79C
|
||||
|
||||
arm_func_start ov29_022E1854
|
||||
ov29_022E1854: ; 0x022E1854
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E1854_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E1854_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr r4, _022E1A18 ; =DUNGEON_PTR
|
||||
ldr r0, [r4]
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r1, [r0, #0x23e]
|
||||
ldrb r8, [r0, #0x245]
|
||||
ldrb r1, [r0, #0x23e + OV29_022E1854_OFFSET]
|
||||
ldrb r8, [r0, #0x245 + OV29_022E1854_OFFSET]
|
||||
cmp r1, #0
|
||||
beq _022E1900
|
||||
mov r6, #0
|
||||
@@ -1659,14 +1839,14 @@ _022E1884:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r5, [r0, #0xb78]
|
||||
ldr r5, [r0, #0xb78 + OV29_022E1854_OFFSET]
|
||||
mov r0, r5
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
beq _022E18F0
|
||||
ldr r0, [r4]
|
||||
add r0, r0, #0x1a000
|
||||
ldr r0, [r0, #0x22c]
|
||||
ldr r0, [r0, #0x22c + OV29_022E1854_OFFSET]
|
||||
cmp r5, r0
|
||||
mov r0, r5
|
||||
bne _022E18C4
|
||||
@@ -1696,7 +1876,7 @@ _022E1908:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + OV29_022E1854_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -1707,7 +1887,11 @@ _022E1908:
|
||||
mov r0, r7
|
||||
bl ov29_02303F18
|
||||
ldr r0, [r7, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x161]
|
||||
#else
|
||||
ldrb r0, [r0, #0x165]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
bne _022E196C
|
||||
mov r2, r6, lsl #0x10
|
||||
@@ -1728,7 +1912,7 @@ _022E1980:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r6, [r0, #0xb38]
|
||||
ldr r6, [r0, #0xb38 + OV29_022E1854_OFFSET]
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -1749,7 +1933,7 @@ _022E19CC:
|
||||
add r0, r1, sb, lsl #2
|
||||
str r7, [sp]
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xbc8]
|
||||
ldr r0, [r0, #0xbc8 + OV29_022E1854_OFFSET]
|
||||
mov r1, r8
|
||||
mov r2, r6
|
||||
mov r3, r5
|
||||
@@ -1758,7 +1942,7 @@ _022E19CC:
|
||||
_022E19F0:
|
||||
ldr r1, [r4]
|
||||
add r0, r1, #0x3f00
|
||||
ldrsh r0, [r0, #0xc0]
|
||||
ldrsh r0, [r0, #0xc0 + OV29_022E1854_OFFSET]
|
||||
cmp sb, r0
|
||||
blt _022E19CC
|
||||
cmp r8, #0
|
||||
|
||||
@@ -64,7 +64,11 @@ ov29_022E1AD4: ; 0x022E1AD4
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
ldrne r0, [r4, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrneb r0, [r0, #0x177]
|
||||
#else
|
||||
ldrneb r0, [r0, #0x17b]
|
||||
#endif
|
||||
moveq r0, #0
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end ov29_022E1AD4
|
||||
@@ -100,7 +104,11 @@ _022E1B38:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -116,10 +124,17 @@ _022E1B38:
|
||||
strh r0, [r7, #0xac]
|
||||
ldr r0, [r7, #0xb4]
|
||||
movne r6, r6, lsl #1
|
||||
#ifdef JAPAN
|
||||
strb r4, [r0, #0x176]
|
||||
ldr r0, [r7, #0xb4]
|
||||
mov r2, #0
|
||||
strb r6, [r0, #0x177]
|
||||
#else
|
||||
strb r4, [r0, #0x17a]
|
||||
ldr r0, [r7, #0xb4]
|
||||
mov r2, #0
|
||||
strb r6, [r0, #0x17b]
|
||||
#endif
|
||||
mov r1, #1
|
||||
ldr r0, _022E1C08 ; =ov29_0237C754
|
||||
b _022E1BB4
|
||||
@@ -179,14 +194,22 @@ _022E1C48:
|
||||
mov r2, r3
|
||||
b _022E1C6C
|
||||
_022E1C54:
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r4, #0x176]
|
||||
#else
|
||||
ldrb r1, [r4, #0x17a]
|
||||
#endif
|
||||
add r0, r3, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
add r1, r5, r1
|
||||
strb r2, [r3, r1]
|
||||
mov r3, r0, asr #0x10
|
||||
_022E1C6C:
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x177]
|
||||
#else
|
||||
ldrb r0, [r4, #0x17b]
|
||||
#endif
|
||||
cmp r3, r0
|
||||
blt _022E1C54
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
@@ -279,7 +302,11 @@ _022E1D90:
|
||||
ldr r0, [sb]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -289,10 +316,17 @@ _022E1D90:
|
||||
ldr r0, _022E1EC0 ; =DUNGEON_PTR
|
||||
strb r5, [r7, #0x24]
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
mov r1, #0x23c
|
||||
add r0, r0, #0x3f4
|
||||
add r0, r0, #0x400
|
||||
mla r0, r5, r1, r0
|
||||
#else
|
||||
add r1, r5, r5, lsl #3
|
||||
add r0, r0, #0x3f4
|
||||
add r0, r0, #0x400
|
||||
add r0, r0, r1, lsl #6
|
||||
#endif
|
||||
str r0, [r7, #0xb4]
|
||||
strh r8, [r0, #2]
|
||||
mov r1, r8
|
||||
@@ -326,10 +360,17 @@ _022E1D90:
|
||||
bl ov29_022E2978
|
||||
ldr r1, [sp, #8]
|
||||
ldr r0, [r7, #0xb4]
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0x176]
|
||||
ldr r1, [sp, #4]
|
||||
ldr r0, [r7, #0xb4]
|
||||
strb r1, [r0, #0x177]
|
||||
#else
|
||||
strb r1, [r0, #0x17a]
|
||||
ldr r1, [sp, #4]
|
||||
ldr r0, [r7, #0xb4]
|
||||
strb r1, [r0, #0x17b]
|
||||
#endif
|
||||
ldr r0, [sp, #8]
|
||||
ldr r1, [sp, #4]
|
||||
mov r0, r0, lsl #0x10
|
||||
@@ -411,7 +452,11 @@ _022E1F44:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa94]
|
||||
#else
|
||||
ldr r7, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -427,10 +472,17 @@ _022E1F44:
|
||||
strh r0, [r7, #0xac]
|
||||
ldr r0, [r7, #0xb4]
|
||||
movne r6, r6, lsl #1
|
||||
#ifdef JAPAN
|
||||
strb r5, [r0, #0x176]
|
||||
ldr r0, [r7, #0xb4]
|
||||
mov r2, #0
|
||||
strb r6, [r0, #0x177]
|
||||
#else
|
||||
strb r5, [r0, #0x17a]
|
||||
ldr r0, [r7, #0xb4]
|
||||
mov r2, #0
|
||||
strb r6, [r0, #0x17b]
|
||||
#endif
|
||||
mov r1, #1
|
||||
ldr r0, _022E2014 ; =ov29_0237C79C
|
||||
b _022E1FC0
|
||||
@@ -550,7 +602,11 @@ _022E211C:
|
||||
ldr r0, [sb]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa94]
|
||||
#else
|
||||
ldr r7, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -562,10 +618,17 @@ _022E211C:
|
||||
ldr r1, _022E225C ; =DUNGEON_PTR
|
||||
strb r0, [r7, #0x22]
|
||||
ldr r1, [r1]
|
||||
#ifdef JAPAN
|
||||
mov r2, #0x23c
|
||||
add r1, r1, #0xe4
|
||||
add r1, r1, #0x1000
|
||||
mla r2, r5, r2, r1
|
||||
#else
|
||||
add r2, r5, r5, lsl #3
|
||||
add r1, r1, #0xf4
|
||||
add r1, r1, #0x1000
|
||||
add r2, r1, r2, lsl #6
|
||||
#endif
|
||||
str r2, [r7, #0xb4]
|
||||
mov r1, r8
|
||||
strh r8, [r2, #2]
|
||||
@@ -600,10 +663,17 @@ _022E211C:
|
||||
str r1, [r7, #0x1c]
|
||||
ldr r1, [sp, #8]
|
||||
ldr r0, [r7, #0xb4]
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0x176]
|
||||
ldr r1, [sp, #4]
|
||||
ldr r0, [r7, #0xb4]
|
||||
strb r1, [r0, #0x177]
|
||||
#else
|
||||
strb r1, [r0, #0x17a]
|
||||
ldr r1, [sp, #4]
|
||||
ldr r0, [r7, #0xb4]
|
||||
strb r1, [r0, #0x17b]
|
||||
#endif
|
||||
ldr r0, [sp, #8]
|
||||
ldr r1, [sp, #4]
|
||||
mov r0, r0, lsl #0x10
|
||||
@@ -648,7 +718,11 @@ _022E2280:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xc24]
|
||||
#else
|
||||
ldr r6, [r0, #0xcc8]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -658,8 +732,13 @@ _022E2280:
|
||||
str r1, [r6]
|
||||
ldr r0, [r0]
|
||||
mov r2, #0
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0xf20
|
||||
add r0, r0, #0x3000
|
||||
#else
|
||||
add r0, r0, #0x3c4
|
||||
add r0, r0, #0x3c00
|
||||
#endif
|
||||
add r0, r0, r5, lsl #2
|
||||
str r0, [r6, #0xb4]
|
||||
strb sl, [r0]
|
||||
@@ -695,7 +774,11 @@ SpawnItemEntity: ; 0x022E2314
|
||||
ldr r1, [r1]
|
||||
mov r6, r0
|
||||
add r0, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r0, [r0, #0x30]
|
||||
#else
|
||||
ldrsh r0, [r0, #0xd4]
|
||||
#endif
|
||||
ldrb r0, [r2, r0]
|
||||
cmp r0, #1
|
||||
bne _022E235C
|
||||
@@ -715,11 +798,26 @@ _022E2368:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r5, [r0, #0xb24]
|
||||
#else
|
||||
ldr r5, [r0, #0xbc8]
|
||||
#endif
|
||||
mov r0, r5
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
bne _022E23FC
|
||||
#ifdef JAPAN
|
||||
mov r1, #3
|
||||
str r1, [r5]
|
||||
ldr r0, _022E2410 ; =DUNGEON_PTR
|
||||
mov r1, #6
|
||||
ldr r0, [r0]
|
||||
mov r2, #0
|
||||
add r0, r0, #0x19c
|
||||
add r0, r0, #0x3c00
|
||||
mla r0, r4, r1, r0
|
||||
#else
|
||||
ldr r0, _022E2410 ; =DUNGEON_PTR
|
||||
mov r1, #3
|
||||
str r1, [r5]
|
||||
@@ -727,10 +825,13 @@ _022E2368:
|
||||
mov r0, #6
|
||||
add r1, r1, #0x3e40
|
||||
mla r0, r4, r0, r1
|
||||
#endif
|
||||
str r0, [r5, #0xb4]
|
||||
ldrh r0, [r6]
|
||||
mov r1, #0x18
|
||||
#ifndef JAPAN
|
||||
mov r2, #0
|
||||
#endif
|
||||
strh r0, [r5, #4]
|
||||
ldrh r3, [r6, #2]
|
||||
mov r0, r5
|
||||
@@ -774,7 +875,11 @@ ov29_022E2418: ; 0x022E2418
|
||||
ldr r0, [r0]
|
||||
mov r2, #0
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xd24]
|
||||
#else
|
||||
ldr r0, [r0, #0xdc8]
|
||||
#endif
|
||||
str r1, [r0]
|
||||
str r2, [r0, #0x1c]
|
||||
strb r2, [r0, #0x22]
|
||||
@@ -823,7 +928,11 @@ _022E24C0:
|
||||
ldr r2, [r5, #0xb4]
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r2, #6]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x178
|
||||
#else
|
||||
add r0, r0, #0x21c
|
||||
#endif
|
||||
add r4, r0, #0x1a000
|
||||
ldr r0, [r4, #0x10]
|
||||
cmp r1, #0
|
||||
@@ -868,6 +977,11 @@ _022E2570: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ShouldDisplayEntity
|
||||
ShouldDisplayEntity: ; 0x022E2574
|
||||
#ifdef JAPAN
|
||||
#define SHOULD_DISPLAY_ENTITY -0xA4
|
||||
#else
|
||||
#define SHOULD_DISPLAY_ENTITY 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
ldrb r5, [r0, #0x20]
|
||||
cmp r5, #0
|
||||
@@ -914,7 +1028,7 @@ _022E2600:
|
||||
addle r2, r6, #0xc0
|
||||
cmple r7, r2
|
||||
bgt _022E271C
|
||||
add r2, r4, #0x21c
|
||||
add r2, r4, #0x21c + SHOULD_DISPLAY_ENTITY
|
||||
cmp lr, #6
|
||||
add r6, r2, #0x1a000
|
||||
addls pc, pc, lr, lsl #2
|
||||
@@ -945,7 +1059,7 @@ _022E267C:
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
add r2, r4, #0x1a000
|
||||
ldrb r2, [r2, #0x244]
|
||||
ldrb r2, [r2, #0x244 + SHOULD_DISPLAY_ENTITY]
|
||||
cmp r2, #0
|
||||
ldreqb r2, [r3, #0xef]
|
||||
cmpeq r2, #1
|
||||
@@ -971,7 +1085,7 @@ _022E26DC:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
_022E26F0:
|
||||
add r0, r4, #0x1a000
|
||||
ldrb r0, [r0, #0x244]
|
||||
ldrb r0, [r0, #0x244 + SHOULD_DISPLAY_ENTITY]
|
||||
cmp r0, #0
|
||||
cmpeq r5, #0
|
||||
bne _022E2714
|
||||
@@ -1174,6 +1288,11 @@ CanTargetPosition: ; 0x022E2954
|
||||
|
||||
arm_func_start ov29_022E2978
|
||||
ov29_022E2978: ; 0x022E2978
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E2978_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E2978_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r5, #0
|
||||
ldr r6, _022E2A34 ; =DUNGEON_PTR
|
||||
@@ -1182,7 +1301,7 @@ _022E2988:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + OV29_022E2978_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -1190,7 +1309,7 @@ _022E2988:
|
||||
add r4, r4, #1
|
||||
addne r0, r0, r5, lsl #2
|
||||
addne r0, r0, #0x12000
|
||||
strne r7, [r0, #0xb78]
|
||||
strne r7, [r0, #0xb78 + OV29_022E2978_OFFSET]
|
||||
addne r5, r5, #1
|
||||
cmp r4, #4
|
||||
blt _022E2988
|
||||
@@ -1200,7 +1319,7 @@ _022E29CC:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb38]
|
||||
ldr r7, [r0, #0xb38 + OV29_022E2978_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E1A1C
|
||||
cmp r0, #0
|
||||
@@ -1208,7 +1327,7 @@ _022E29CC:
|
||||
add r4, r4, #1
|
||||
addne r0, r0, r5, lsl #2
|
||||
addne r0, r0, #0x12000
|
||||
strne r7, [r0, #0xb78]
|
||||
strne r7, [r0, #0xb78 + OV29_022E2978_OFFSET]
|
||||
addne r5, r5, #1
|
||||
cmp r4, #0x10
|
||||
blt _022E29CC
|
||||
@@ -1219,7 +1338,7 @@ _022E2A14:
|
||||
ldr r0, [r1]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
str r2, [r0, #0xb78]
|
||||
str r2, [r0, #0xb78 + OV29_022E2978_OFFSET]
|
||||
add r5, r5, #1
|
||||
_022E2A28:
|
||||
cmp r5, #0x14
|
||||
@@ -1238,7 +1357,11 @@ GetTeamMemberIndex: ; 0x022E2A38
|
||||
_022E2A48:
|
||||
add r1, r3, r2, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r1, #0xa84]
|
||||
#else
|
||||
ldr r1, [r1, #0xb28]
|
||||
#endif
|
||||
cmp r0, r1
|
||||
moveq r0, r2
|
||||
bxeq lr
|
||||
@@ -1281,7 +1404,11 @@ _022E2ABC:
|
||||
bl strcpy
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022E2AD4: .word 0x00000B42
|
||||
#else
|
||||
_022E2AD4: .word 0x00000A42
|
||||
#endif
|
||||
arm_func_end ov29_022E2A78
|
||||
|
||||
arm_func_start SubstitutePlaceholderStringTags
|
||||
@@ -1326,7 +1453,11 @@ _022E2B50:
|
||||
str r0, [r1, #0x38]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022E2B64: .word 0x00000B42
|
||||
#else
|
||||
_022E2B64: .word 0x00000A42
|
||||
#endif
|
||||
arm_func_end SubstitutePlaceholderStringTags
|
||||
|
||||
#ifdef EUROPE
|
||||
@@ -1362,7 +1493,11 @@ ov29_022E2B68: ; 0x022E2B68
|
||||
movs r5, r0
|
||||
ldr r2, [r1]
|
||||
mov r1, #0
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x178
|
||||
#else
|
||||
add r0, r2, #0x21c
|
||||
#endif
|
||||
add r4, r0, #0x1a000
|
||||
strh r1, [r4, #8]
|
||||
ldr r0, _022E2C60 ; =0x0001A21C
|
||||
@@ -1413,7 +1548,11 @@ _022E2BF4:
|
||||
ldr r0, _022E2C5C ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x28000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x624]
|
||||
#else
|
||||
ldrb r0, [r0, #0x6c8]
|
||||
#endif
|
||||
ands r0, r0, #3
|
||||
strb r0, [r4, #0x21]
|
||||
moveq r0, #1
|
||||
@@ -1431,7 +1570,11 @@ ov29_022E2C6C: ; 0x022E2C6C
|
||||
ldr r0, _022E2C9C ; =DUNGEON_PTR
|
||||
mvn r1, #0
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x178
|
||||
#else
|
||||
add r0, r0, #0x21c
|
||||
#endif
|
||||
add r0, r0, #0x1a000
|
||||
strh r1, [r0, #0x3c]
|
||||
strh r1, [r0, #0x3e]
|
||||
@@ -1453,7 +1596,11 @@ ov29_022E2CA0: ; 0x022E2CA0
|
||||
ldr r0, _022E2D38 ; =0x0001A21C
|
||||
ldrsh r1, [r4]
|
||||
ldrsh r2, [r3, r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r3, #0x178
|
||||
#else
|
||||
add r0, r3, #0x21c
|
||||
#endif
|
||||
add r5, r0, #0x1a000
|
||||
sub r0, r2, r1
|
||||
ldr r6, [r5, #0x10]
|
||||
@@ -1498,7 +1645,11 @@ ov29_022E2D3C: ; 0x022E2D3C
|
||||
ldr r0, _022E2DD4 ; =0x0001A21C
|
||||
ldrsh r1, [r4]
|
||||
ldrsh r2, [r3, r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r3, #0x178
|
||||
#else
|
||||
add r0, r3, #0x21c
|
||||
#endif
|
||||
add r5, r0, #0x1a000
|
||||
sub r0, r2, r1
|
||||
ldr r6, [r5, #0x10]
|
||||
@@ -1531,9 +1682,14 @@ _022E2DC8:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022E2DD0: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E2DD4: .word 0x0001A178
|
||||
#else
|
||||
_022E2DD4: .word 0x0001A21C
|
||||
#endif
|
||||
arm_func_end ov29_022E2D3C
|
||||
|
||||
#ifndef JAPAN
|
||||
arm_func_start UpdateMapSurveyorFlag
|
||||
UpdateMapSurveyorFlag: ; 0x022E2DD8
|
||||
#ifdef EUROPE
|
||||
@@ -1569,6 +1725,7 @@ UpdateMapSurveyorFlag: ; 0x022E2DD8
|
||||
.align 2, 0
|
||||
_022E2DF8: .word DUNGEON_PTR
|
||||
arm_func_end UpdateMapSurveyorFlag
|
||||
#endif
|
||||
|
||||
arm_func_start ov29_022E2DFC
|
||||
ov29_022E2DFC: ; 0x022E2DFC
|
||||
@@ -1576,7 +1733,11 @@ ov29_022E2DFC: ; 0x022E2DFC
|
||||
ldr r1, _022E2E50 ; =DUNGEON_PTR
|
||||
cmp r0, #0
|
||||
ldr r1, [r1]
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x178
|
||||
#else
|
||||
add r1, r1, #0x21c
|
||||
#endif
|
||||
add r1, r1, #0x1a000
|
||||
str r0, [r1, #0x10]
|
||||
moveq r0, #0
|
||||
@@ -1605,7 +1766,11 @@ PointCameraToMonster: ; 0x022E2E54
|
||||
mov r4, r1
|
||||
ldr r1, [r2]
|
||||
cmp r0, #0
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x178
|
||||
#else
|
||||
add r1, r1, #0x21c
|
||||
#endif
|
||||
add r2, r1, #0x1a000
|
||||
moveq r1, #0
|
||||
streqb r1, [r2, #0x2f]
|
||||
@@ -1634,6 +1799,11 @@ _022E2EC0: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start UpdateCamera
|
||||
UpdateCamera: ; 0x022E2EC4
|
||||
#ifdef JAPAN
|
||||
#define UPDATE_CAMERA_OFFSET -0xA4
|
||||
#else
|
||||
#define UPDATE_CAMERA_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x10
|
||||
ldr r1, _022E32DC ; =DUNGEON_PTR
|
||||
@@ -1641,7 +1811,7 @@ UpdateCamera: ; 0x022E2EC4
|
||||
ldr r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _022E32D4
|
||||
add r0, r0, #0x21c
|
||||
add r0, r0, #0x21c + UPDATE_CAMERA_OFFSET
|
||||
add r4, r0, #0x1a000
|
||||
ldr r5, [r4, #0x10]
|
||||
cmp r5, #0
|
||||
@@ -1772,7 +1942,7 @@ _022E30A8:
|
||||
ldreq r0, _022E32DC ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x2c000
|
||||
ldreqb r0, [r0, #0xb10]
|
||||
ldreqb r0, [r0, #0xb10 + UPDATE_CAMERA_OFFSET]
|
||||
cmpeq r0, #0
|
||||
beq _022E3108
|
||||
bl ov29_023047DC
|
||||
@@ -1781,7 +1951,7 @@ _022E30A8:
|
||||
ldr r0, [r0]
|
||||
mov r7, #1
|
||||
add r0, r0, #0x2c000
|
||||
strb r1, [r0, #0xb10]
|
||||
strb r1, [r0, #0xb10 + UPDATE_CAMERA_OFFSET]
|
||||
_022E3108:
|
||||
mov r0, r5
|
||||
ldrb r8, [r4, #0x28]
|
||||
@@ -1877,7 +2047,7 @@ _022E3250:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb78]
|
||||
ldr r7, [r0, #0xb78 + UPDATE_CAMERA_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022E32E8
|
||||
cmp r0, #0
|
||||
@@ -1898,7 +2068,7 @@ _022E3298:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r6, [r0, #0xbc8]
|
||||
ldr r6, [r0, #0xbc8 + UPDATE_CAMERA_OFFSET]
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022E32E8
|
||||
cmp r0, #0
|
||||
|
||||
@@ -24,7 +24,11 @@ GetVisibilityRange: ; 0x022E333C
|
||||
ldr r0, _022E3358 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x199]
|
||||
#else
|
||||
ldrb r0, [r0, #0x23d]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
moveq r0, #2
|
||||
bx lr
|
||||
@@ -34,13 +38,18 @@ _022E3358: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022E335C
|
||||
ov29_022E335C: ; 0x022E335C
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E335C_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E335C_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r0, _022E3428 ; =DUNGEON_PTR
|
||||
mov r5, #0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r1, [r0, #0x24d]
|
||||
ldr r4, [r0, #0x22c]
|
||||
ldrb r1, [r0, #0x24d + OV29_022E335C_OFFSET]
|
||||
ldr r4, [r0, #0x22c + OV29_022E335C_OFFSET]
|
||||
cmp r1, #0
|
||||
bne _022E33A0
|
||||
bl ov10_022BFD20
|
||||
@@ -59,7 +68,7 @@ _022E33A0:
|
||||
_022E33B0:
|
||||
ldr r0, _022E3428 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x21c
|
||||
add r0, r0, #0x21c + OV29_022E335C_OFFSET
|
||||
add r4, r0, #0x1a000
|
||||
ldr r0, [r4, #0x10]
|
||||
ldr r5, [r0, #0xb4]
|
||||
@@ -101,7 +110,11 @@ RevealWholeFloor: ; 0x022E3430
|
||||
mov r4, r0
|
||||
mov r2, #1
|
||||
add r0, r1, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r2, [r0, #0x19b]
|
||||
#else
|
||||
strb r2, [r0, #0x23f]
|
||||
#endif
|
||||
mov r5, r7
|
||||
_022E3454:
|
||||
mov r6, r5
|
||||
@@ -128,7 +141,11 @@ _022E3458:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022E34A8: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E34AC: .word 0x00000888
|
||||
#else
|
||||
_022E34AC: .word 0x00000B77
|
||||
#endif
|
||||
arm_func_end RevealWholeFloor
|
||||
|
||||
arm_func_start ov29_022E34B0
|
||||
@@ -136,7 +153,11 @@ ov29_022E34B0: ; 0x022E34B0
|
||||
ldr r1, _022E34C4 ; =DUNGEON_PTR
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r0, [r1, #0x1a8]
|
||||
#else
|
||||
strb r0, [r1, #0x24c]
|
||||
#endif
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022E34C4: .word DUNGEON_PTR
|
||||
@@ -144,10 +165,15 @@ _022E34C4: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022E34C8
|
||||
ov29_022E34C8: ; 0x022E34C8
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E34C8_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E34C8_OFFSET 0
|
||||
#endif
|
||||
ldr r0, _022E352C ; =DUNGEON_PTR
|
||||
ldr r3, [r0]
|
||||
add r0, r3, #0x1a000
|
||||
ldr r2, [r0, #0x234]
|
||||
ldr r2, [r0, #0x234 + OV29_022E34C8_OFFSET]
|
||||
cmp r2, #0
|
||||
bxeq lr
|
||||
ldr r1, _022E3530 ; =ov29_0235110C
|
||||
@@ -156,18 +182,18 @@ ov29_022E34C8: ; 0x022E34C8
|
||||
ldr r2, [r1, r2, lsl #2]
|
||||
add r0, r3, #0x1a000
|
||||
ldr r1, _022E352C ; =DUNGEON_PTR
|
||||
str r2, [r0, #0x230]
|
||||
str r2, [r0, #0x230 + OV29_022E34C8_OFFSET]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x1a000
|
||||
ldr r2, [r0, #0x234]
|
||||
ldr r2, [r0, #0x234 + OV29_022E34C8_OFFSET]
|
||||
sub r2, r2, #1
|
||||
str r2, [r0, #0x234]
|
||||
str r2, [r0, #0x234 + OV29_022E34C8_OFFSET]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x1a000
|
||||
ldr r1, [r0, #0x234]
|
||||
ldr r1, [r0, #0x234 + OV29_022E34C8_OFFSET]
|
||||
cmp r1, #0
|
||||
ldreq r1, [r0, #0x238]
|
||||
streq r1, [r0, #0x234]
|
||||
ldreq r1, [r0, #0x238 + OV29_022E34C8_OFFSET]
|
||||
streq r1, [r0, #0x234 + OV29_022E34C8_OFFSET]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022E352C: .word DUNGEON_PTR
|
||||
@@ -262,7 +288,11 @@ PlayEffectAnimationEntity: ; 0x022E35E4
|
||||
beq _022E37A8
|
||||
ldrb r0, [sp, #0x4c]
|
||||
cmp r0, #0
|
||||
#ifdef JAPAN
|
||||
ldreqb r0, [r6, #0x10a]
|
||||
#else
|
||||
ldreqb r0, [r6, #0x10b]
|
||||
#endif
|
||||
cmpeq r0, #2
|
||||
mvneq r0, #0
|
||||
beq _022E37A8
|
||||
@@ -284,13 +314,21 @@ _022E365C:
|
||||
ldrnesh r2, [sp, #2]
|
||||
cmpne r2, #0x63
|
||||
ldreq r1, [r8, #0x10]
|
||||
#ifdef JAPAN
|
||||
ldreq r0, [r6, #0x184]
|
||||
#else
|
||||
ldreq r0, [r6, #0x188]
|
||||
#endif
|
||||
ldreq r7, [r8, #0xc]
|
||||
subeq r8, r1, r0
|
||||
beq _022E36A8
|
||||
ldr r1, [r8, #0x10]
|
||||
ldr r3, [r8, #0xc]
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r6, #0x184]
|
||||
#else
|
||||
ldr r0, [r6, #0x188]
|
||||
#endif
|
||||
add r2, r1, r2, lsl #8
|
||||
add r7, r3, r7, lsl #8
|
||||
sub r8, r2, r0
|
||||
|
||||
@@ -90,7 +90,11 @@ AnimationDelayOrSomething: ; 0x022E38E0
|
||||
mov r1, r7
|
||||
add r2, r2, #0x1a000
|
||||
mov r8, r0
|
||||
#ifdef JAPAN
|
||||
str r7, [r2, #0x194]
|
||||
#else
|
||||
str r7, [r2, #0x238]
|
||||
#endif
|
||||
bl ov10_022BF9CC
|
||||
cmp r0, #0
|
||||
bne _022E3920
|
||||
@@ -190,8 +194,13 @@ _022E3A3C: .word ov29_0235354C
|
||||
arm_func_start ov29_022E3A40
|
||||
ov29_022E3A40: ; 0x022E3A40
|
||||
ldr r1, [r1, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldr r2, [r1, #0x214]
|
||||
ldr r1, [r1, #0x218]
|
||||
#else
|
||||
ldr r2, [r1, #0x218]
|
||||
ldr r1, [r1, #0x21c]
|
||||
#endif
|
||||
str r2, [r0]
|
||||
str r1, [r0, #4]
|
||||
bx lr
|
||||
@@ -208,14 +217,22 @@ _022E3A6C:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r8, [r0, #0xad4]
|
||||
#else
|
||||
ldr r8, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl EntityIsValid__022E37B8
|
||||
cmp r0, #0
|
||||
beq _022E3AA0
|
||||
ldr r0, [r8, #0xb4]
|
||||
cmp r5, #0
|
||||
#ifdef JAPAN
|
||||
strneb r7, [r0, #0x152]
|
||||
#else
|
||||
strneb r7, [r0, #0x156]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl UpdateStatusIconFlags
|
||||
_022E3AA0:
|
||||
@@ -414,8 +431,13 @@ _022E3D30:
|
||||
cmpge r3, #0xa
|
||||
orrlt r1, r1, #0x8000000
|
||||
orrlt r0, r0, #0
|
||||
#ifdef JAPAN
|
||||
str r1, [r2, #0x214]
|
||||
str r0, [r2, #0x218]
|
||||
#else
|
||||
str r1, [r2, #0x218]
|
||||
str r0, [r2, #0x21c]
|
||||
#endif
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022E3D94: .word STATUS_ICON_ARRAY_SLEEP
|
||||
@@ -1264,7 +1286,11 @@ ov29_022E46D4: ; 0x022E46D4
|
||||
ldmeqia sp!, {r4, pc}
|
||||
ldr r0, [r4, #0xb4]
|
||||
mov r1, r4
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x11a]
|
||||
#else
|
||||
ldrb r0, [r0, #0x11e]
|
||||
#endif
|
||||
mov r2, #1
|
||||
mov r3, #0xb
|
||||
bl DisplayAnimatedNumbers
|
||||
@@ -2868,7 +2894,11 @@ _022E5AD4:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022E5ADC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E5AE0: .word 0x0001A182
|
||||
#else
|
||||
_022E5AE0: .word 0x0001A226
|
||||
#endif
|
||||
arm_func_end ov29_022E5A00
|
||||
|
||||
arm_func_start ov29_022E5AE4
|
||||
@@ -3043,7 +3073,11 @@ _022E5D50:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022E5D58: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E5D5C: .word 0x0001A182
|
||||
#else
|
||||
_022E5D5C: .word 0x0001A226
|
||||
#endif
|
||||
_022E5D60: .word 0x00000165
|
||||
_022E5D64: .word DIRECTIONS_XY
|
||||
arm_func_end ov29_022E5BD8
|
||||
@@ -3173,10 +3207,17 @@ ov29_022E5ED0: ; 0x022E5ED0
|
||||
ldr r1, _022E5F1C ; =DUNGEON_PTR
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldrb r2, [r1, #0x19a]
|
||||
cmp r2, #0
|
||||
beq _022E5F14
|
||||
ldr r1, [r1, #0x188]
|
||||
#else
|
||||
ldrb r2, [r1, #0x23e]
|
||||
cmp r2, #0
|
||||
beq _022E5F14
|
||||
ldr r1, [r1, #0x22c]
|
||||
#endif
|
||||
cmp r1, r0
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
@@ -3204,7 +3245,11 @@ _022E5F44:
|
||||
ldr r0, [fp]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sb, [r0, #0xad4]
|
||||
#else
|
||||
ldr sb, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, sb
|
||||
bl EntityIsValid__022E37B8
|
||||
cmp r0, #0
|
||||
@@ -3243,7 +3288,11 @@ _022E5FC8:
|
||||
.align 2, 0
|
||||
_022E5FDC: .word 0x00000199
|
||||
_022E5FE0: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E5FE4: .word 0x000008A4
|
||||
#else
|
||||
_022E5FE4: .word 0x00000B92
|
||||
#endif
|
||||
arm_func_end ov29_022E5F20
|
||||
|
||||
arm_func_start ov29_022E5FE8
|
||||
@@ -3255,7 +3304,11 @@ ov29_022E5FE8: ; 0x022E5FE8
|
||||
ldr r0, [r2]
|
||||
mov r5, r1
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldr r4, [r0, #0x188]
|
||||
#else
|
||||
ldr r4, [r0, #0x22c]
|
||||
#endif
|
||||
cmp r4, #0
|
||||
bne _022E6018
|
||||
bl GetLeader
|
||||
@@ -3946,7 +3999,11 @@ _022E68AC:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_022E68B4: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E68B8: .word 0x0001A182
|
||||
#else
|
||||
_022E68B8: .word 0x0001A226
|
||||
#endif
|
||||
arm_func_end ov29_022E67E4
|
||||
|
||||
arm_func_start ov29_022E68BC
|
||||
@@ -4480,10 +4537,17 @@ ov29_022E6F94: ; 0x022E6F94
|
||||
mov r2, #0xff
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x28000
|
||||
#ifdef JAPAN
|
||||
strb r2, [r0, #0x60c]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x28000
|
||||
strb r2, [r0, #0x60d]
|
||||
#else
|
||||
strb r2, [r0, #0x6b0]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x28000
|
||||
strb r2, [r0, #0x6b1]
|
||||
#endif
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022E6FB8: .word DUNGEON_PTR
|
||||
@@ -4491,6 +4555,11 @@ _022E6FB8: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start LoadMappaFileAttributes
|
||||
LoadMappaFileAttributes: ; 0x022E6FBC
|
||||
#ifdef JAPAN
|
||||
#define LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET -0xA4
|
||||
#else
|
||||
#define LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x50
|
||||
ldr r3, _022E79E4 ; =DUNGEON_PTR
|
||||
@@ -4512,9 +4581,9 @@ LoadMappaFileAttributes: ; 0x022E6FBC
|
||||
ldr r3, [r1]
|
||||
ldrb r2, [r3, #0x74a]
|
||||
add r0, r3, #0x28000
|
||||
strb r2, [r0, #0x6b0]
|
||||
strb r2, [r0, #0x6b0 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
ldrb r2, [r3, #0x74b]
|
||||
strb r2, [r0, #0x6b1]
|
||||
strb r2, [r0, #0x6b1 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, #0x748]
|
||||
bl GetNbPrecedingFloors
|
||||
@@ -4563,8 +4632,8 @@ _022E709C:
|
||||
ldr r7, [r0]
|
||||
mov r1, #0x12
|
||||
add r0, r7, #0x28000
|
||||
ldrb r3, [r0, #0x6b0]
|
||||
ldrb r2, [r0, #0x6b1]
|
||||
ldrb r3, [r0, #0x6b0 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
ldrb r2, [r0, #0x6b1 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
ldrb r0, [r7, #0x748]
|
||||
ldr r3, [r6, r3, lsl #2]
|
||||
mla r6, r2, r1, r3
|
||||
@@ -4572,7 +4641,7 @@ _022E709C:
|
||||
ldr r2, _022E79E4 ; =DUNGEON_PTR
|
||||
ldr r1, [r2]
|
||||
add r1, r1, #0x2c000
|
||||
strb r0, [r1, #0xaf4]
|
||||
strb r0, [r1, #0xaf4 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
ldr r0, [r2]
|
||||
ldrb r0, [r0, #0x748]
|
||||
cmp r0, #0xae
|
||||
@@ -4586,9 +4655,9 @@ _022E709C:
|
||||
ldr r0, _022E79E4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x2c000
|
||||
ldrb r1, [r0, #0xaf4]
|
||||
ldrb r1, [r0, #0xaf4 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
sub r1, r1, #1
|
||||
strb r1, [r0, #0xaf4]
|
||||
strb r1, [r0, #0xaf4 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
_022E7138:
|
||||
ldr r0, _022E79E4 ; =DUNGEON_PTR
|
||||
ldrsh r2, [r6]
|
||||
@@ -4603,6 +4672,25 @@ _022E7158:
|
||||
subs r2, r2, #1
|
||||
strh r0, [r3], #2
|
||||
bne _022E7158
|
||||
#ifdef JAPAN
|
||||
ldr r0, _022E79FC ; =0x000286CE
|
||||
ldr r2, _022E7A00 ; =0x0002CB08
|
||||
ldrsh r3, [r1, r0]
|
||||
mov r0, #0
|
||||
strh r3, [r1, r2]
|
||||
ldr r2, _022E79E4 ; =DUNGEON_PTR
|
||||
_022E7184:
|
||||
ldrsh r3, [r6, #4]
|
||||
ldr r7, [sb, #0x10]
|
||||
ldr r1, [r2]
|
||||
ldr r7, [r7, r3, lsl #2]
|
||||
mov r3, r0, lsl #1
|
||||
ldrh r3, [r7, r3]
|
||||
add r1, r1, r0, lsl #1
|
||||
add r1, r1, #0x2c800
|
||||
add r0, r0, #1
|
||||
strh r3, [r1, #0x8e]
|
||||
#else
|
||||
ldr r2, _022E79FC ; =0x000286CE
|
||||
ldr r3, _022E7A00 ; =0x0002CB08
|
||||
ldrsh r7, [r1, r2]
|
||||
@@ -4620,6 +4708,7 @@ _022E7184:
|
||||
add r3, r3, r0, lsl #1
|
||||
add r0, r0, #1
|
||||
strh r7, [r3, r1]
|
||||
#endif
|
||||
cmp r0, #0x19
|
||||
blt _022E7184
|
||||
cmp r4, #0
|
||||
@@ -4708,7 +4797,7 @@ _022E7294:
|
||||
ldr r0, _022E79E4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x28000
|
||||
ldrb r0, [r0, #0x6c4]
|
||||
ldrb r0, [r0, #0x6c4 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
bl IsBossFight
|
||||
cmp r0, #0
|
||||
bne _022E7398
|
||||
@@ -5016,8 +5105,13 @@ _022E7710:
|
||||
ldr r1, [r1]
|
||||
mov r2, #4
|
||||
add r1, r1, r8, lsl #3
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x8c0
|
||||
add r3, r1, #0x2c000
|
||||
#else
|
||||
add r1, r1, #0x164
|
||||
add r3, r1, #0x2c800
|
||||
#endif
|
||||
_022E7764:
|
||||
ldrh r1, [r7], #2
|
||||
subs r2, r2, #1
|
||||
@@ -5039,8 +5133,13 @@ _022E7764:
|
||||
mov r0, r7, lsl #0x10
|
||||
ldr r2, [r1]
|
||||
mov r1, r0, asr #0x10
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r2, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
add r0, r0, r8, lsl #3
|
||||
bl SetMonsterId
|
||||
_022E77C4:
|
||||
@@ -5059,8 +5158,13 @@ _022E77D4:
|
||||
ldr r4, [r0]
|
||||
rsb r1, r8, #0x10
|
||||
add r2, r4, #0x4000
|
||||
#ifdef JAPAN
|
||||
add r0, r4, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r4, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
ldrb r2, [r2, #0xda]
|
||||
ldrsh r3, [r4, r3]
|
||||
add r0, r0, r8, lsl #3
|
||||
@@ -5068,10 +5172,10 @@ _022E77D4:
|
||||
ldr r2, _022E79E4 ; =DUNGEON_PTR
|
||||
ldr r1, [r2]
|
||||
add r1, r1, #0x12000
|
||||
str r0, [r1, #0xb20]
|
||||
str r0, [r1, #0xb20 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
ldr r0, [r2]
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb20]
|
||||
ldr r0, [r0, #0xb20 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET]
|
||||
add r8, r8, r0
|
||||
_022E782C:
|
||||
ldr r4, _022E79E4 ; =DUNGEON_PTR
|
||||
@@ -5083,8 +5187,13 @@ _022E782C:
|
||||
_022E7844:
|
||||
ldr r0, [r4]
|
||||
mov r1, r5
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
add r0, r0, r8, lsl #3
|
||||
bl SetMonsterId
|
||||
add r8, r8, #1
|
||||
@@ -5202,20 +5311,20 @@ _022E79E8: .word ov29_02351584
|
||||
_022E79EC: .word ov29_02351594
|
||||
_022E79F0: .word ov29_023515B0
|
||||
_022E79F4: .word ov29_023515CC
|
||||
_022E79F8: .word 0x000286B2
|
||||
_022E79FC: .word 0x000286CE
|
||||
_022E7A00: .word 0x0002CB08
|
||||
_022E79F8: .word 0x000286B2 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E79FC: .word 0x000286CE + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A00: .word 0x0002CB08 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A04: .word 0x0000FFFF
|
||||
_022E7A08: .word 0x0002C9EA
|
||||
_022E7A08: .word 0x0002C9EA + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A0C: .word 0x00000906
|
||||
_022E7A10: .word 0x00000229
|
||||
_022E7A14: .word 0x0000017F
|
||||
_022E7A18: .word 0x0002C9E6
|
||||
_022E7A1C: .word 0x0002C9E4
|
||||
_022E7A20: .word 0x0002C9E8
|
||||
_022E7A18: .word 0x0002C9E6 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A1C: .word 0x0002C9E4 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A20: .word 0x0002C9E8 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A24: .word 0xFFFF8AD0
|
||||
_022E7A28: .word 0x000286D2
|
||||
_022E7A2C: .word 0x000286F2
|
||||
_022E7A28: .word 0x000286D2 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
_022E7A2C: .word 0x000286F2 + LOAD_MAPPA_FILE_ATTRIBUTES_OFFSET
|
||||
arm_func_end LoadMappaFileAttributes
|
||||
|
||||
arm_func_start ov29_022E7A30
|
||||
@@ -5224,6 +5333,24 @@ ov29_022E7A30: ; 0x022E7A30
|
||||
ldr r0, _022E7A80 ; =0x00002710
|
||||
bl DungeonRandInt
|
||||
ldr r1, _022E7A84 ; =DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
mov r2, #0
|
||||
ldr r3, [r1]
|
||||
b _022E90E0
|
||||
_022E7A50:
|
||||
add r1, r3, r2, lsl #1
|
||||
add r1, r1, #0x2c800
|
||||
ldrh r1, [r1, #0x8e]
|
||||
cmp r1, #0
|
||||
beq _022E90DC
|
||||
cmp r1, r0
|
||||
andge r0, r2, #0xff
|
||||
ldmgeia sp!, {r3, pc}
|
||||
_022E90DC:
|
||||
add r2, r2, #1
|
||||
_022E90E0:
|
||||
cmp r2, #0x19
|
||||
#else
|
||||
mov r3, #0
|
||||
ldr ip, [r1]
|
||||
ldr r1, _022E7A88 ; =0x0002C932
|
||||
@@ -5240,13 +5367,16 @@ _022E7A6C:
|
||||
add r3, r3, #1
|
||||
_022E7A70:
|
||||
cmp r3, #0x19
|
||||
#endif
|
||||
blt _022E7A50
|
||||
mov r0, #0x10
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022E7A80: .word 0x00002710
|
||||
_022E7A84: .word DUNGEON_PTR
|
||||
#ifndef JAPAN
|
||||
_022E7A88: .word 0x0002C932
|
||||
#endif
|
||||
arm_func_end ov29_022E7A30
|
||||
|
||||
arm_func_start ov29_022E7A8C
|
||||
@@ -5339,8 +5469,13 @@ _022E7B98:
|
||||
.align 2, 0
|
||||
_022E7BA8: .word 0x00002710
|
||||
_022E7BAC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E7BB0: .word 0x0002862E
|
||||
_022E7BB4: .word 0x0002864E
|
||||
#else
|
||||
_022E7BB0: .word 0x000286D2
|
||||
_022E7BB4: .word 0x000286F2
|
||||
#endif
|
||||
arm_func_end GetItemIdToSpawn
|
||||
|
||||
arm_func_start ov29_022E7BB8
|
||||
@@ -5373,8 +5508,13 @@ ov29_022E7BE8: ; 0x022E7BE8
|
||||
b _022E7C4C
|
||||
_022E7C00:
|
||||
ldr r0, [r7]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
add r0, r0, r4, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
cmp r0, #0
|
||||
@@ -5382,8 +5522,13 @@ _022E7C00:
|
||||
ldr r0, [r7]
|
||||
add r2, r6, r5, lsl #3
|
||||
add r0, r0, r4, lsl #3
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r3, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r3, r0, #0x2c800
|
||||
#endif
|
||||
mov r1, #4
|
||||
_022E7C34:
|
||||
ldrh r0, [r3], #2
|
||||
@@ -5412,8 +5557,13 @@ MonsterSpawnListPartialCopy: ; 0x022E7C60
|
||||
_022E7C74:
|
||||
ldr r0, _022E7CF4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
add r0, r0, r4, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
cmp r0, #0
|
||||
@@ -5421,6 +5571,17 @@ _022E7C74:
|
||||
bl GetSpriteSize
|
||||
cmp r0, #6
|
||||
bhi _022E7CE0
|
||||
#ifdef JAPAN
|
||||
ldr r0, _022E7CF4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r1, r0, r4, lsl #3
|
||||
add r0, r1, #0x2c800
|
||||
ldrsh r0, [r0, #0xc2]
|
||||
cmp r0, #0
|
||||
beq _022E7CE0
|
||||
add r0, r1, #0x8c0
|
||||
add r3, r0, #0x2c000
|
||||
#else
|
||||
ldr r1, _022E7CF4 ; =DUNGEON_PTR
|
||||
ldr r0, _022E7CF8 ; =0x0002C966
|
||||
ldr r1, [r1]
|
||||
@@ -5430,6 +5591,7 @@ _022E7C74:
|
||||
beq _022E7CE0
|
||||
add r0, r1, #0x164
|
||||
add r3, r0, #0x2c800
|
||||
#endif
|
||||
add r2, r6, r5, lsl #3
|
||||
mov r1, #4
|
||||
_022E7CCC:
|
||||
@@ -5448,29 +5610,40 @@ _022E7CEC:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022E7CF4: .word DUNGEON_PTR
|
||||
#ifndef JAPAN
|
||||
_022E7CF8: .word 0x0002C966
|
||||
#endif
|
||||
arm_func_end MonsterSpawnListPartialCopy
|
||||
|
||||
arm_func_start ov29_022E7CFC
|
||||
ov29_022E7CFC: ; 0x022E7CFC
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E7CFC_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E7CFC_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r1, _022E7D48 ; =DUNGEON_PTR
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
ldrb r2, [r0, #0xe28]
|
||||
ldrb r2, [r0, #0xe28 + OV29_022E7CFC_OFFSET]
|
||||
cmp r2, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
mov r2, #1
|
||||
strb r2, [r0, #0xe28]
|
||||
strb r2, [r0, #0xe28 + OV29_022E7CFC_OFFSET]
|
||||
ldr r0, [r1]
|
||||
mov r1, #0
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x124
|
||||
#else
|
||||
add r0, r0, #0x174
|
||||
#endif
|
||||
add r0, r0, #0x3800
|
||||
bl ov29_022E7BE8
|
||||
ldr r1, _022E7D48 ; =DUNGEON_PTR
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x3000
|
||||
str r0, [r1, #0xe20]
|
||||
str r0, [r1, #0xe20 + OV29_022E7CFC_OFFSET]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022E7D48: .word DUNGEON_PTR
|
||||
@@ -5485,8 +5658,13 @@ IsOnMonsterSpawnList: ; 0x022E7D4C
|
||||
b _022E7D8C
|
||||
_022E7D60:
|
||||
ldr r0, [r4]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
add r0, r0, r5, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
cmp r0, #0
|
||||
@@ -5507,6 +5685,11 @@ _022E7D9C: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start GetMonsterIdToSpawn
|
||||
GetMonsterIdToSpawn: ; 0x022E7DA0
|
||||
#ifdef JAPAN
|
||||
#define GET_MONSTER_ID_TO_SPAWN_OFFSET -0x50
|
||||
#else
|
||||
#define GET_MONSTER_ID_TO_SPAWN_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
ldr r0, _022E7E50 ; =0x00002710
|
||||
@@ -5515,18 +5698,22 @@ GetMonsterIdToSpawn: ; 0x022E7DA0
|
||||
mov ip, #0
|
||||
ldr r1, [r1]
|
||||
add r2, r1, #0x3000
|
||||
#ifdef JAPAN
|
||||
ldr lr, [r2, #0xd7c]
|
||||
#else
|
||||
ldr lr, [r2, #0xe20]
|
||||
#endif
|
||||
add r3, r1, r4, lsl #1
|
||||
b _022E7E00
|
||||
_022E7DCC:
|
||||
add r2, r3, ip, lsl #3
|
||||
add r2, r2, #0x3900
|
||||
ldrsh r2, [r2, #0x76]
|
||||
ldrsh r2, [r2, #0x76 + GET_MONSTER_ID_TO_SPAWN_OFFSET]
|
||||
cmp r2, #0
|
||||
beq _022E7DFC
|
||||
cmp r2, r0
|
||||
blt _022E7DFC
|
||||
add r0, r1, #0x174
|
||||
add r0, r1, #0x174 + GET_MONSTER_ID_TO_SPAWN_OFFSET
|
||||
add r0, r0, #0x3800
|
||||
add r0, r0, ip, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
@@ -5542,10 +5729,10 @@ _022E7E00:
|
||||
_022E7E14:
|
||||
add r0, r2, r3, lsl #3
|
||||
add r0, r0, #0x3900
|
||||
ldrsh r0, [r0, #0x76]
|
||||
ldrsh r0, [r0, #0x76 + GET_MONSTER_ID_TO_SPAWN_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _022E7E3C
|
||||
add r0, r1, #0x174
|
||||
add r0, r1, #0x174 + GET_MONSTER_ID_TO_SPAWN_OFFSET
|
||||
add r0, r0, #0x3800
|
||||
add r0, r0, r3, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
@@ -5570,7 +5757,11 @@ GetMonsterLevelToSpawn: ; 0x022E7E58
|
||||
ldr r6, _022E7EC0 ; =DUNGEON_PTR
|
||||
b _022E7EA4
|
||||
_022E7E6C:
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x124
|
||||
#else
|
||||
add r0, r1, #0x174
|
||||
#endif
|
||||
add r0, r0, #0x3800
|
||||
add r0, r0, r4, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
@@ -5578,7 +5769,11 @@ _022E7E6C:
|
||||
bne _022E7EA0
|
||||
ldr r0, _022E7EC0 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x124
|
||||
#else
|
||||
add r0, r0, #0x174
|
||||
#endif
|
||||
add r0, r0, #0x3800
|
||||
add r0, r0, r4, lsl #3
|
||||
bl GetMonsterLevelFromSpawnEntry
|
||||
@@ -5588,7 +5783,11 @@ _022E7EA0:
|
||||
_022E7EA4:
|
||||
ldr r1, [r6]
|
||||
add r0, r1, #0x3000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xd7c]
|
||||
#else
|
||||
ldr r0, [r0, #0xe20]
|
||||
#endif
|
||||
cmp r4, r0
|
||||
blt _022E7E6C
|
||||
mov r0, #1
|
||||
@@ -5906,6 +6105,11 @@ _022E826C: .word TOP_SCREEN_STATUS_PTR
|
||||
|
||||
arm_func_start ov29_022E8270
|
||||
ov29_022E8270: ; 0x022E8270
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E8270_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E8270_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x1c
|
||||
ldr r3, _022E83FC ; =TOP_SCREEN_STATUS_PTR
|
||||
@@ -5922,14 +6126,14 @@ ov29_022E8270: ; 0x022E8270
|
||||
ldr r1, [r1]
|
||||
mov r5, #0
|
||||
add r1, r1, #0x1a000
|
||||
ldr r0, [r1, #0x22c]
|
||||
ldr r0, [r1, #0x22c + OV29_022E8270_OFFSET]
|
||||
mov r6, r5
|
||||
cmp r0, sl
|
||||
ldrsh r0, [sl, #0xa8]
|
||||
mov r7, r5
|
||||
str r0, [sp, #0x18]
|
||||
moveq r0, r5
|
||||
ldrneb r0, [r1, #0x245]
|
||||
ldrneb r0, [r1, #0x245 + OV29_022E8270_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _022E82E4
|
||||
ldrb r0, [r8, #0xd8]
|
||||
@@ -5961,7 +6165,11 @@ _022E832C:
|
||||
cmpne r0, #7
|
||||
bne _022E8354
|
||||
ldr r0, [sl, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0x10c]
|
||||
#else
|
||||
ldr r0, [r0, #0x110]
|
||||
#endif
|
||||
cmp r0, #1
|
||||
addgt r0, r5, #1
|
||||
movgt r0, r0, lsl #0x10
|
||||
@@ -5974,7 +6182,11 @@ _022E8354:
|
||||
_022E8364:
|
||||
mov r5, #0
|
||||
_022E8368:
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r8, #0x10a]
|
||||
#else
|
||||
ldrb r0, [r8, #0x10b]
|
||||
#endif
|
||||
cmp r0, #2
|
||||
beq _022E83A4
|
||||
ldrb r1, [r8, #0xc4]
|
||||
@@ -5995,7 +6207,7 @@ _022E83A4:
|
||||
ldreq r0, _022E8400 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x1a000
|
||||
ldreqb r0, [r0, #0x244]
|
||||
ldreqb r0, [r0, #0x244 + OV29_022E8270_OFFSET]
|
||||
cmpeq r0, #0
|
||||
moveq r7, #1
|
||||
cmp r4, #0xff
|
||||
@@ -6767,7 +6979,11 @@ _022E8CFC:
|
||||
ldr r1, [r0]
|
||||
add r0, r1, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xa84]
|
||||
#else
|
||||
ldr r0, [r0, #0xb28]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
moveq r0, #0
|
||||
beq _022E8D30
|
||||
@@ -6781,14 +6997,22 @@ _022E8D30:
|
||||
beq _022E8DE4
|
||||
add r0, r1, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xa84]
|
||||
#else
|
||||
ldr r6, [r0, #0xb28]
|
||||
#endif
|
||||
ldr r0, _022E8E5C ; =TOP_SCREEN_STATUS_PTR
|
||||
ldr r7, [r6, #0xb4]
|
||||
ldr r0, [r0]
|
||||
add r5, r0, #0xb8
|
||||
mov r0, #0x5c
|
||||
smulbb r4, sb, r0
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r7, #0x161]
|
||||
#else
|
||||
ldrb r0, [r7, #0x165]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
bne _022E8DE4
|
||||
add r0, sp, #0x14
|
||||
@@ -6874,8 +7098,10 @@ ov29_022E8E60: ; 0x022E8E60
|
||||
bl UpdateWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
_022E8E90: .word 0x00003FCD
|
||||
#elif defined(JAPAN)
|
||||
_022E8E90: .word 0x000049CE
|
||||
#else
|
||||
_022E8E90: .word 0x00003FCB
|
||||
#endif
|
||||
@@ -6972,8 +7198,10 @@ ov29_022E8F78: ; 0x022E8F78
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022E8FC4: .word ov29_02353558
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
_022E8FC8: .word 0x00003FCD
|
||||
#elif defined(JAPAN)
|
||||
_022E8FC8: .word 0x000049CE
|
||||
#else
|
||||
_022E8FC8: .word 0x00003FCB
|
||||
#endif
|
||||
@@ -7106,7 +7334,11 @@ _022E913C:
|
||||
mov r1, #0x1c
|
||||
ldr r0, [r0]
|
||||
ldrsh r2, [r4]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x244
|
||||
#else
|
||||
add r0, r0, #0x2e8
|
||||
#endif
|
||||
add r0, r0, #0xec00
|
||||
mla r3, ip, r1, r0
|
||||
ldrsh r0, [r3, #2]
|
||||
@@ -7150,7 +7382,11 @@ IsPositionInSight: ; 0x022E91A4
|
||||
mov r1, #0x1c
|
||||
ldr r0, [r0]
|
||||
ldrsh r2, [r4]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x244
|
||||
#else
|
||||
add r0, r0, #0x2e8
|
||||
#endif
|
||||
add r0, r0, #0xec00
|
||||
mla r3, r6, r1, r0
|
||||
ldrsh r0, [r3, #2]
|
||||
@@ -7236,7 +7472,11 @@ _022E930C:
|
||||
ldr r0, _022E9358 ; =DUNGEON_PTR
|
||||
mov r1, #0x1c
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x244
|
||||
#else
|
||||
add r0, r0, #0x2e8
|
||||
#endif
|
||||
add r0, r0, #0xec00
|
||||
mla r1, r2, r1, r0
|
||||
ldrsh r0, [r1, #2]
|
||||
@@ -7399,7 +7639,11 @@ _022E9554:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022E955C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022E9560: .word 0x0001A180
|
||||
#else
|
||||
_022E9560: .word 0x0001A224
|
||||
#endif
|
||||
_022E9564: .word ov29_0237C88A
|
||||
_022E9568: .word ov29_0237C890
|
||||
_022E956C: .word ov29_0237C88E
|
||||
@@ -7423,7 +7667,11 @@ _022E95A0:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xa84]
|
||||
#else
|
||||
ldr r6, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022E95F4
|
||||
cmp r0, #0
|
||||
|
||||
@@ -259,9 +259,15 @@ _022E9920:
|
||||
ldr r2, _022E99EC ; =DUNGEON_PTR
|
||||
ldr r2, [r2]
|
||||
add r2, r2, #0xcc00
|
||||
#ifdef JAPAN
|
||||
ldrsh r3, [r2, #0x40]
|
||||
cmp r3, fp
|
||||
ldreqsh r2, [r2, #0x42]
|
||||
#else
|
||||
ldrsh r3, [r2, #0xe4]
|
||||
cmp r3, fp
|
||||
ldreqsh r2, [r2, #0xe6]
|
||||
#endif
|
||||
cmpeq r2, r5
|
||||
beq _022E99CC
|
||||
_022E99A0:
|
||||
@@ -360,6 +366,11 @@ _022E9A98: .word 0x00007530
|
||||
|
||||
arm_func_start ov29_022E9A9C
|
||||
ov29_022E9A9C: ; 0x022E9A9C
|
||||
#ifdef JAPAN
|
||||
#define OV29_022E9A9C_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022E9A9C_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x18
|
||||
mov sb, r1
|
||||
@@ -397,7 +408,7 @@ _022E9B00:
|
||||
ldr r1, [r0]
|
||||
ldr r4, _022E9CAC ; =ov29_0235179C
|
||||
add r0, r1, #0x3000
|
||||
ldrb r0, [r0, #0xe38]
|
||||
ldrb r0, [r0, #0xe38 + OV29_022E9A9C_OFFSET]
|
||||
ldr r3, _022E9CB0 ; =ov29_023517A0
|
||||
mov r5, r6, lsl #3
|
||||
cmp r0, #0
|
||||
@@ -412,7 +423,7 @@ _022E9B00:
|
||||
ldrsh r0, [sb, #6]
|
||||
str r0, [sp, #8]
|
||||
beq _022E9B80
|
||||
add r0, r1, #0x378
|
||||
add r0, r1, #0x378 + OV29_022E9A9C_OFFSET
|
||||
add r0, r0, #0x12800
|
||||
str r0, [sp, #4]
|
||||
mov r0, #0x14
|
||||
@@ -422,14 +433,14 @@ _022E9B80:
|
||||
ldrb r0, [r8, #6]
|
||||
cmp r0, #0
|
||||
bne _022E9BA4
|
||||
add r0, r1, #0x338
|
||||
add r0, r1, #0x338 + OV29_022E9A9C_OFFSET
|
||||
add r0, r0, #0x12800
|
||||
str r0, [sp, #4]
|
||||
mov r0, #0x10
|
||||
str r0, [sp]
|
||||
b _022E9C44
|
||||
_022E9BA4:
|
||||
add r0, r1, #0x328
|
||||
add r0, r1, #0x328 + OV29_022E9A9C_OFFSET
|
||||
add r0, r0, #0x12800
|
||||
str r0, [sp, #4]
|
||||
mov r0, #4
|
||||
@@ -684,11 +695,19 @@ ov29_022E9F18: ; 0x022E9F18
|
||||
ldr r0, [r2]
|
||||
ldr r1, _022E9F74 ; =ov29_0237C850
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r3, [r0, #0x1a8]
|
||||
#else
|
||||
strb r3, [r0, #0x24c]
|
||||
#endif
|
||||
ldr r0, [r2]
|
||||
mov r2, #0
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r3, [r0, #0x1a9]
|
||||
#else
|
||||
strb r3, [r0, #0x24d]
|
||||
#endif
|
||||
str r2, [r1, #0xc]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
@@ -760,6 +779,11 @@ _022EA004: .word ov29_02353560
|
||||
|
||||
arm_func_start ov29_022EA008
|
||||
ov29_022EA008: ; 0x022EA008
|
||||
#ifdef JAPAN
|
||||
#define OV29_022EA008_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022EA008_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r0, _022EA290 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
@@ -783,7 +807,7 @@ ov29_022EA008: ; 0x022EA008
|
||||
add r1, r0, #2
|
||||
add r2, ip, #0x1a000
|
||||
ldrsh r3, [ip, r1]
|
||||
ldr r1, [r2, #0x230]
|
||||
ldr r1, [r2, #0x230 + OV29_022EA008_OFFSET]
|
||||
ldrsh r0, [ip, r0]
|
||||
sub r1, r3, r1
|
||||
mov r1, r1, lsl #0x10
|
||||
@@ -794,17 +818,17 @@ ov29_022EA008: ; 0x022EA008
|
||||
ldr r1, _022EA290 ; =DUNGEON_PTR
|
||||
ldr r0, [r1]
|
||||
add ip, r0, #0x1a000
|
||||
ldrb r0, [ip, #0x251]
|
||||
ldrb r0, [ip, #0x251 + OV29_022EA008_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _022EA0DC
|
||||
mov r0, #2
|
||||
strb r0, [ip, #0x23c]
|
||||
strb r0, [ip, #0x23c + OV29_022EA008_OFFSET]
|
||||
ldr r0, _022EA298 ; =0x0001A224
|
||||
ldr ip, [r1]
|
||||
add r1, r0, #2
|
||||
add r2, ip, #0x1a000
|
||||
ldrsh r3, [ip, r1]
|
||||
ldr r1, [r2, #0x230]
|
||||
ldr r1, [r2, #0x230 + OV29_022EA008_OFFSET]
|
||||
mov r2, #0
|
||||
sub r1, r3, r1
|
||||
mov r1, r1, lsl #0x10
|
||||
@@ -819,7 +843,7 @@ _022EA0DC:
|
||||
mov r1, r0
|
||||
mov r2, r0
|
||||
mov r3, r0
|
||||
strb lr, [ip, #0x23c]
|
||||
strb lr, [ip, #0x23c + OV29_022EA008_OFFSET]
|
||||
bl sub_02051E20
|
||||
_022EA0F8:
|
||||
bl ov29_0230473C
|
||||
@@ -857,7 +881,7 @@ _022EA154:
|
||||
ldr r0, _022EA290 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r2, [r0, #0x24a]
|
||||
ldrb r2, [r0, #0x24a + OV29_022EA008_OFFSET]
|
||||
cmp r2, #0
|
||||
beq _022EA1B8
|
||||
bl ov29_022DE11C
|
||||
@@ -868,7 +892,7 @@ _022EA154:
|
||||
ldr r0, [r0]
|
||||
ldr r1, _022EA294 ; =ov29_02353560
|
||||
add r0, r0, #0x1a000
|
||||
strb r2, [r0, #0x24a]
|
||||
strb r2, [r0, #0x24a + OV29_022EA008_OFFSET]
|
||||
ldr r0, [r1, #8]
|
||||
str r0, [r1, #0xc]
|
||||
b _022EA1D0
|
||||
@@ -878,12 +902,12 @@ _022EA1B8:
|
||||
str r2, [r1, #0xc]
|
||||
cmp r2, #0
|
||||
movle r1, #1
|
||||
strleb r1, [r0, #0x24a]
|
||||
strleb r1, [r0, #0x24a + OV29_022EA008_OFFSET]
|
||||
_022EA1D0:
|
||||
ldr r0, _022EA290 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r0, [r0, #0x24a]
|
||||
ldrb r0, [r0, #0x24a + OV29_022EA008_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _022EA214
|
||||
bl ov29_0234B4F4
|
||||
@@ -911,9 +935,9 @@ _022EA214:
|
||||
ldrb r1, [r0, #7]
|
||||
ldr r2, [r2]
|
||||
cmp r2, #0
|
||||
addne r0, r2, #0xc4
|
||||
addne r0, r2, #0xc4 + OV29_022EA008_OFFSET
|
||||
addne r0, r0, #0x4000
|
||||
add r2, r2, #0x21c
|
||||
add r2, r2, #0x21c + OV29_022EA008_OFFSET
|
||||
moveq r0, #0
|
||||
add r2, r2, #0x1a000
|
||||
bl ov29_022ED800
|
||||
@@ -922,8 +946,13 @@ _022EA260:
|
||||
bl ov29_022E8C10
|
||||
ldr r0, _022EA290 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x2180
|
||||
add r0, r0, #0x18000
|
||||
#else
|
||||
add r0, r0, #0x224
|
||||
add r0, r0, #0x1a000
|
||||
#endif
|
||||
bl ov29_022DD8B4
|
||||
_022EA27C:
|
||||
ldr r0, _022EA29C ; =ov29_0237C850
|
||||
@@ -934,9 +963,9 @@ _022EA27C:
|
||||
.align 2, 0
|
||||
_022EA290: .word DUNGEON_PTR
|
||||
_022EA294: .word ov29_02353560
|
||||
_022EA298: .word 0x0001A224
|
||||
_022EA298: .word 0x0001A224 + OV29_022EA008_OFFSET
|
||||
_022EA29C: .word ov29_0237C850
|
||||
_022EA2A0: .word 0x0001A21C
|
||||
_022EA2A0: .word 0x0001A21C + OV29_022EA008_OFFSET
|
||||
arm_func_end ov29_022EA008
|
||||
|
||||
arm_func_start ov29_022EA2A4
|
||||
@@ -961,7 +990,11 @@ _022EA2C0:
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0x1a4]
|
||||
#else
|
||||
strb r1, [r0, #0x248]
|
||||
#endif
|
||||
bl InitWeirdMinimapMatrix
|
||||
ldr r0, _022EA31C ; =ov29_02353560
|
||||
ldrb r0, [r0, #6]
|
||||
@@ -1308,7 +1341,11 @@ DisplayAnimatedNumbers: ; 0x022EA718
|
||||
ldr r0, _022EA7FC ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x19a]
|
||||
#else
|
||||
ldrb r0, [r0, #0x23e]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r6, #0
|
||||
@@ -1412,8 +1449,13 @@ _022EA848:
|
||||
ldr r4, [r5, #0xb4]
|
||||
ldr ip, [r1]
|
||||
add r1, r4, #0x100
|
||||
#ifdef JAPAN
|
||||
ldrsh r5, [r1, #0x7e]
|
||||
ldrsh r4, [r1, #0x80]
|
||||
#else
|
||||
ldrsh r5, [r1, #0x82]
|
||||
ldrsh r4, [r1, #0x84]
|
||||
#endif
|
||||
ldr r1, [r3, #0x30]
|
||||
ldrsh r0, [ip, r0]
|
||||
add r5, r5, r1, asr #8
|
||||
|
||||
@@ -192,6 +192,11 @@ _022EAD64: .word RANDOM_MUSIC_ID_TABLE
|
||||
|
||||
arm_func_start ov29_022EAD68
|
||||
ov29_022EAD68: ; 0x022EAD68
|
||||
#ifdef JAPAN
|
||||
#define OV29_022EAD68_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022EAD68_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
bl IsCurrentFixedRoomBossFight
|
||||
cmp r0, #0
|
||||
@@ -217,12 +222,12 @@ _022EADAC:
|
||||
ldr r0, [r0]
|
||||
ldr r2, _022EAE10 ; =FIXED_ROOM_PROPERTIES_TABLE
|
||||
add r0, r0, #0x4000
|
||||
ldrb r3, [r0, #0xda]
|
||||
ldrb r3, [r0, #0xda + OV29_022EAD68_OFFSET]
|
||||
smulbb r1, r3, r1
|
||||
ldr r1, [r2, r1]
|
||||
cmp r1, #0
|
||||
ldreqsh r1, [r0, #0xd6]
|
||||
strneh r1, [r0, #0xd6]
|
||||
ldreqsh r1, [r0, #0xd6 + OV29_022EAD68_OFFSET]
|
||||
strneh r1, [r0, #0xd6 + OV29_022EAD68_OFFSET]
|
||||
mov r0, r1, lsl #0x10
|
||||
mov r0, r0, asr #0x10
|
||||
bl MusicTableIdxToMusicId
|
||||
@@ -255,7 +260,11 @@ ChangeDungeonMusic: ; 0x022EAE14
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022EAE38: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EAE3C: .word 0x0002CA62
|
||||
#else
|
||||
_022EAE3C: .word 0x0002CB06
|
||||
#endif
|
||||
arm_func_end ChangeDungeonMusic
|
||||
|
||||
arm_func_start ov29_022EAE40
|
||||
@@ -286,7 +295,11 @@ ov29_022EAE40: ; 0x022EAE40
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022EAEA0: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EAEA4: .word 0x0002CA5E
|
||||
#else
|
||||
_022EAEA4: .word 0x0002CB02
|
||||
#endif
|
||||
_022EAEA8: .word 0x000003E7
|
||||
arm_func_end ov29_022EAE40
|
||||
|
||||
@@ -307,7 +320,11 @@ ov29_022EAEAC: ; 0x022EAEAC
|
||||
strh ip, [r1, r0]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022EAEE4: .word 0x0002CA5E
|
||||
#else
|
||||
_022EAEE4: .word 0x0002CB02
|
||||
#endif
|
||||
_022EAEE8: .word DUNGEON_PTR
|
||||
_022EAEEC: .word 0x000003E7
|
||||
arm_func_end ov29_022EAEAC
|
||||
@@ -361,9 +378,15 @@ ov29_022EAF48: ; 0x022EAF48
|
||||
mov r4, #0
|
||||
ldr r3, [ip]
|
||||
ldr lr, _022EAFAC ; =0x000003E7
|
||||
#ifdef JAPAN
|
||||
add r2, r3, #0x254
|
||||
add r3, r3, #0x2c000
|
||||
str r4, [r3, #0xa54]
|
||||
#else
|
||||
add r2, r3, #0x2f8
|
||||
add r3, r3, #0x2c000
|
||||
str r4, [r3, #0xaf8]
|
||||
#endif
|
||||
add r3, r2, #0x2c800
|
||||
str r4, [r3, #4]
|
||||
ldr r2, [ip]
|
||||
@@ -397,7 +420,11 @@ ov29_022EAFB0: ; 0x022EAFB0
|
||||
add r0, r3, #0x700
|
||||
ldrh r0, [r0, #0x96]
|
||||
ldr r2, _022EB16C ; =0x000003E7
|
||||
#ifdef JAPAN
|
||||
add r1, r3, #0x254
|
||||
#else
|
||||
add r1, r3, #0x2f8
|
||||
#endif
|
||||
cmp r0, r2
|
||||
add r4, r1, #0x2c800
|
||||
bne _022EB034
|
||||
@@ -609,7 +636,11 @@ _022EB2BC:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022EB2C4: .word 0x00000887
|
||||
#else
|
||||
_022EB2C4: .word 0x00000B76
|
||||
#endif
|
||||
arm_func_end TrySwitchPlace
|
||||
|
||||
arm_func_start ov29_022EB2C8
|
||||
@@ -627,8 +658,13 @@ ov29_022EB2C8: ; 0x022EB2C8
|
||||
ldreq r0, _022EB364 ; =0x000009C9
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022EB2F8:
|
||||
#ifdef JAPAN
|
||||
add r0, r6, #0x57
|
||||
add r0, r0, #0x2300
|
||||
#else
|
||||
add r0, r6, #0x87
|
||||
add r0, r0, #0x900
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r7, r0, lsr #0x10
|
||||
mov r0, r7
|
||||
@@ -656,11 +692,19 @@ _022EB34C:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022EB360: .word ov29_0237C91C
|
||||
#ifdef JAPAN
|
||||
_022EB364: .word 0x00002399
|
||||
#else
|
||||
_022EB364: .word 0x000009C9
|
||||
#endif
|
||||
_022EB368: .word ov29_02352070
|
||||
_022EB36C: .word ov29_0237C91E
|
||||
_022EB370: .word ov29_02352032
|
||||
#ifdef JAPAN
|
||||
_022EB374: .word 0x0000239A
|
||||
#else
|
||||
_022EB374: .word 0x000009CA
|
||||
#endif
|
||||
arm_func_end ov29_022EB2C8
|
||||
|
||||
arm_func_start ov29_022EB378
|
||||
@@ -777,7 +821,11 @@ _022EB498:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r1, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xa84]
|
||||
#else
|
||||
ldr r0, [r0, #0xb28]
|
||||
#endif
|
||||
ldr r0, [r0, #0xb4]
|
||||
add r0, r0, #0x62
|
||||
ldmia sp!, {r3, pc}
|
||||
@@ -839,7 +887,11 @@ ov29_022EB568: ; 0x022EB568
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r1, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xa84]
|
||||
#else
|
||||
ldr r0, [r0, #0xb28]
|
||||
#endif
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022EB590: .word DUNGEON_PTR
|
||||
@@ -975,7 +1027,11 @@ _022EB71C:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r1, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xa84]
|
||||
#else
|
||||
ldr r0, [r0, #0xb28]
|
||||
#endif
|
||||
ldr r0, [r0, #0xb4]
|
||||
add r0, r0, #0x62
|
||||
cmp r4, r0
|
||||
@@ -1066,7 +1122,11 @@ _022EB850:
|
||||
ldr r4, _022EB8A0 ; =ov29_0237C91C
|
||||
mov r6, r2, lsl #3
|
||||
ldr lr, [ip]
|
||||
#ifdef JAPAN
|
||||
add r3, r0, #0x57
|
||||
#else
|
||||
add r3, r0, #0x87
|
||||
#endif
|
||||
add lr, lr, #1
|
||||
ldr r5, _022EB8A4 ; =ov29_0237C91E
|
||||
strh r0, [r4, r6]
|
||||
@@ -1075,7 +1135,11 @@ _022EB850:
|
||||
mov r1, #1
|
||||
ldr r0, _022EB8AC ; =ov29_0237C922
|
||||
strb r1, [r4, r2, lsl #3]
|
||||
#ifdef JAPAN
|
||||
add r1, r3, #0x2300
|
||||
#else
|
||||
add r1, r3, #0x900
|
||||
#endif
|
||||
strh r1, [r0, r6]
|
||||
str lr, [ip]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
@@ -1480,6 +1544,13 @@ ov29_022EBCE8: ; 0x022EBCE8
|
||||
|
||||
arm_func_start RunFractionalTurn
|
||||
RunFractionalTurn: ; 0x022EBD08
|
||||
#ifdef JAPAN
|
||||
#define RUN_FRACTIONAL_TURN_OFFSET -0xA4
|
||||
#define RUN_FRACTIONAL_TURN_OFFSET_2 -4
|
||||
#else
|
||||
#define RUN_FRACTIONAL_TURN_OFFSET 0
|
||||
#define RUN_FRACTIONAL_TURN_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x40
|
||||
mov r4, r0
|
||||
@@ -1516,7 +1587,7 @@ _022EBD80:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r4, [r0, #0xb28]
|
||||
ldr r4, [r0, #0xb28 + RUN_FRACTIONAL_TURN_OFFSET]
|
||||
mov r0, r4
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
@@ -1536,7 +1607,7 @@ _022EBD80:
|
||||
bl TryActivateArtificialWeatherAbilities
|
||||
mov r1, #0
|
||||
mov r0, r4
|
||||
strb r1, [r6, #0x14e]
|
||||
strb r1, [r6, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
bl CalcSpeedStageWrapper
|
||||
ldr r1, _022EC2FC ; =DUNGEON_PTR
|
||||
ldr r3, _022EC300 ; =FRACTIONAL_TURN_SEQUENCE
|
||||
@@ -1549,7 +1620,7 @@ _022EBD80:
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0
|
||||
beq _022EBEC8
|
||||
ldrb r0, [r6, #0x152]
|
||||
ldrb r0, [r6, #0x152 + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
cmp r0, #0
|
||||
bne _022EBEC8
|
||||
ldrh r0, [r6]
|
||||
@@ -1561,7 +1632,7 @@ _022EBD80:
|
||||
bne _022EBEC8
|
||||
mov r1, #0
|
||||
mov r0, r4
|
||||
strb r1, [r6, #0x14f]
|
||||
strb r1, [r6, #0x14f + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
bl TickStatusAndHealthRegen
|
||||
mov r0, r4
|
||||
bl EntityIsValid__022EC608
|
||||
@@ -1626,18 +1697,18 @@ _022EBF18:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, sl, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + RUN_FRACTIONAL_TURN_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
ldrne r1, [r7, #0xb4]
|
||||
ldrneb r0, [r1, #0x14e]
|
||||
ldrneb r0, [r1, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
cmpne r0, #0
|
||||
beq _022EBFA8
|
||||
ldrb r0, [r1, #7]
|
||||
cmp r0, #0
|
||||
strneb r6, [r1, #0x14f]
|
||||
strneb r6, [r1, #0x14e]
|
||||
strneb r6, [r1, #0x14f + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
strneb r6, [r1, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
bne _022EBFA8
|
||||
ldrsh r1, [r8, #6]
|
||||
ldrsh r0, [r7, #6]
|
||||
@@ -1673,9 +1744,9 @@ _022EBFC8:
|
||||
beq _022EC008
|
||||
ldr r2, [r4, #0xb4]
|
||||
mov r0, r4
|
||||
strb sl, [r2, #0x14f]
|
||||
strb sl, [r2, #0x14f + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
mov r1, sl
|
||||
strb r7, [r2, #0x14e]
|
||||
strb r7, [r2, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
bl RunMonsterAi
|
||||
mov r0, r4
|
||||
bl ExecuteMonsterAction
|
||||
@@ -1702,12 +1773,12 @@ _022EC038:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + RUN_FRACTIONAL_TURN_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
ldrne r8, [r7, #0xb4]
|
||||
ldrneb r0, [r8, #0x14e]
|
||||
ldrneb r0, [r8, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
cmpne r0, #0
|
||||
beq _022EC088
|
||||
mov r0, r7
|
||||
@@ -1718,7 +1789,7 @@ _022EC038:
|
||||
beq _022EC088
|
||||
mov r0, r7
|
||||
bl EnemyEvolution
|
||||
strb r6, [r8, #0x14e]
|
||||
strb r6, [r8, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
_022EC088:
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
@@ -1738,7 +1809,7 @@ _022EC0BC:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, sb, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r8, [r0, #0xb38]
|
||||
ldr r8, [r0, #0xb38 + RUN_FRACTIONAL_TURN_OFFSET]
|
||||
mov r0, r8
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
@@ -1760,7 +1831,7 @@ _022EC0BC:
|
||||
strneh r0, [sl]
|
||||
bne _022EC1BC
|
||||
mov r0, r8
|
||||
strb r7, [sl, #0x14e]
|
||||
strb r7, [sl, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
bl CalcSpeedStageWrapper
|
||||
ldr r2, [r4]
|
||||
mla r1, r0, fp, r6
|
||||
@@ -1770,14 +1841,14 @@ _022EC0BC:
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0
|
||||
beq _022EC1BC
|
||||
ldrb r0, [sl, #0x152]
|
||||
ldrb r0, [sl, #0x152 + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
cmp r0, #0
|
||||
bne _022EC1BC
|
||||
ldrh r1, [sl]
|
||||
mov r0, r8
|
||||
bic r1, r1, #0xc000
|
||||
strh r1, [sl]
|
||||
strb r5, [sl, #0x14f]
|
||||
strb r5, [sl, #0x14f + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
bl TickStatusAndHealthRegen
|
||||
mov r0, r8
|
||||
bl EntityIsValid__022EC608
|
||||
@@ -1815,12 +1886,12 @@ _022EC1E0:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb38]
|
||||
ldr r7, [r0, #0xb38 + RUN_FRACTIONAL_TURN_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
ldrne r8, [r7, #0xb4]
|
||||
ldrneb r0, [r8, #0x14e]
|
||||
ldrneb r0, [r8, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
cmpne r0, #0
|
||||
beq _022EC230
|
||||
mov r0, r7
|
||||
@@ -1831,7 +1902,7 @@ _022EC1E0:
|
||||
beq _022EC230
|
||||
mov r0, r7
|
||||
bl EnemyEvolution
|
||||
strb r6, [r8, #0x14e]
|
||||
strb r6, [r8, #0x14e + RUN_FRACTIONAL_TURN_OFFSET_2]
|
||||
_022EC230:
|
||||
add r4, r4, #1
|
||||
cmp r4, #0x10
|
||||
@@ -1856,7 +1927,7 @@ _022EC278:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb78]
|
||||
ldr r0, [r0, #0xb78 + RUN_FRACTIONAL_TURN_OFFSET]
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
beq _022EC2A0
|
||||
@@ -1922,7 +1993,11 @@ RunLeaderTurn: ; 0x022EC308
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldr r0, [r4, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x14e]
|
||||
#else
|
||||
ldrb r0, [r0, #0x152]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
@@ -2033,7 +2108,11 @@ _022EC500:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
|
||||
@@ -24,7 +24,11 @@ _022EC668:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r5, [r0, #0xad4]
|
||||
#else
|
||||
ldr r5, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r5
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
@@ -57,6 +61,11 @@ _022EC6D8: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start TrySpawnMonsterAndActivatePlusMinus
|
||||
TrySpawnMonsterAndActivatePlusMinus: ; 0x022EC6DC
|
||||
#ifdef JAPAN
|
||||
#define TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET -0xA4
|
||||
#else
|
||||
#define TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr r0, _022EC7E0 ; =DUNGEON_PTR
|
||||
ldr r1, _022EC7E4 ; =ov29_023522B6
|
||||
@@ -73,31 +82,31 @@ TrySpawnMonsterAndActivatePlusMinus: ; 0x022EC6DC
|
||||
ldr r0, [r4]
|
||||
mov fp, #1
|
||||
add r0, r0, #0x3000
|
||||
strb r8, [r0, #0xe34]
|
||||
strb r8, [r0, #0xe34 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
ldr r0, [r4]
|
||||
mov r7, r8
|
||||
add r0, r0, #0x3000
|
||||
strb r8, [r0, #0xe35]
|
||||
strb r8, [r0, #0xe35 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
ldr r0, [r4]
|
||||
mov r6, fp
|
||||
add r0, r0, #0x3000
|
||||
strb r8, [r0, #0xe36]
|
||||
strb r8, [r0, #0xe36 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
ldr r0, [r4]
|
||||
mov r5, fp
|
||||
add r0, r0, #0x3000
|
||||
strb r8, [r0, #0xe37]
|
||||
strb r8, [r0, #0xe37 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
_022EC750:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr sb, [r0, #0xb78]
|
||||
ldr sb, [r0, #0xb78 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
mov r0, sb
|
||||
bl EntityIsValid__022EC608
|
||||
cmp r0, #0
|
||||
beq _022EC7C8
|
||||
ldr r0, [sb, #0xb4]
|
||||
mov r1, #0x3f
|
||||
strb r7, [r0, #0x152]
|
||||
strb r7, [r0, #0x152 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
ldrb r0, [r0, #6]
|
||||
cmp r0, #0
|
||||
moveq sl, fp
|
||||
@@ -109,14 +118,14 @@ _022EC750:
|
||||
mov r1, #0x38
|
||||
addne r0, r0, sl
|
||||
addne r0, r0, #0x3000
|
||||
strneb r6, [r0, #0xe36]
|
||||
strneb r6, [r0, #0xe36 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
mov r0, sb
|
||||
bl AbilityIsActiveVeneer
|
||||
cmp r0, #0
|
||||
ldrne r0, [r4]
|
||||
addne r0, r0, sl
|
||||
addne r0, r0, #0x3000
|
||||
strneb r5, [r0, #0xe34]
|
||||
strneb r5, [r0, #0xe34 + TRY_SPAWN_MONSTER_AND_ACTIVATE_PLUS_MINUS_OFFSET]
|
||||
_022EC7C8:
|
||||
add r8, r8, #1
|
||||
cmp r8, #0x14
|
||||
@@ -230,7 +239,11 @@ _022EC900:
|
||||
add r2, r3, r2
|
||||
ldr r2, [r5, r2, lsl #2]
|
||||
add r1, r1, #0x1a000
|
||||
#ifdef JAPAN
|
||||
str r2, [r1, #0x18c]
|
||||
#else
|
||||
str r2, [r1, #0x230]
|
||||
#endif
|
||||
bl AdvanceFrame
|
||||
_022EC93C:
|
||||
ldrb r0, [r6, #3]
|
||||
@@ -254,7 +267,11 @@ _022EC96C:
|
||||
ldr r0, [r0]
|
||||
ldr r1, _022EC9A0 ; =ov29_02353598
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
str r2, [r0, #0x18c]
|
||||
#else
|
||||
str r2, [r0, #0x230]
|
||||
#endif
|
||||
strb r2, [r1]
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
@@ -268,16 +285,27 @@ ov29_022EC9A4: ; 0x022EC9A4
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
sub sp, sp, #8
|
||||
mov r3, #0xc
|
||||
#ifdef JAPAN
|
||||
smulbb r4, r1, r3
|
||||
ldr r1, _022ECAD8 ; =ov10_022C6320
|
||||
mov r6, r0
|
||||
ldrb r4, [r1, r4]
|
||||
#else
|
||||
smulbb r3, r1, r3
|
||||
ldr r1, _022ECAD8 ; =ov10_022C6320
|
||||
mov r6, r0
|
||||
ldrb r4, [r1, r3]
|
||||
#endif
|
||||
mov r5, r2
|
||||
cmp r4, #5
|
||||
beq _022ECA28
|
||||
cmp r5, #0
|
||||
bne _022EC9E0
|
||||
#ifdef JAPAN
|
||||
add r1, r3, #0x930
|
||||
#else
|
||||
ldr r1, _022ECADC ; =0x00000BFD
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022ECA18
|
||||
_022EC9E0:
|
||||
@@ -295,7 +323,11 @@ _022EC9F4:
|
||||
_022ECA08:
|
||||
cmp r5, #3
|
||||
bne _022ECA18
|
||||
#ifdef JAPAN
|
||||
ldr r1, _022EE14C ; =0x0000093F
|
||||
#else
|
||||
mov r1, #0xc00
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
_022ECA18:
|
||||
mov r0, r4
|
||||
@@ -307,8 +339,13 @@ _022ECA28:
|
||||
mov r4, r0
|
||||
cmp r5, #0
|
||||
bne _022ECA48
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r1, #0x940
|
||||
#else
|
||||
ldr r1, _022ECAE8 ; =0x00000C01
|
||||
mov r0, r6
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022ECA8C
|
||||
_022ECA48:
|
||||
@@ -354,6 +391,14 @@ _022ECAD0:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022ECAD8: .word ov10_022C6320
|
||||
#ifdef JAPAN
|
||||
_022ECAE0: .word 0x0000093D
|
||||
_022ECAE4: .word 0x0000093E
|
||||
_022EE14C: .word 0x0000093F
|
||||
_022ECAEC: .word 0x00000941
|
||||
_022ECAF0: .word 0x00000942
|
||||
_022ECAF4: .word 0x00000943
|
||||
#else
|
||||
_022ECADC: .word 0x00000BFD
|
||||
_022ECAE0: .word 0x00000BFE
|
||||
_022ECAE4: .word 0x00000BFF
|
||||
@@ -361,6 +406,7 @@ _022ECAE8: .word 0x00000C01
|
||||
_022ECAEC: .word 0x00000C02
|
||||
_022ECAF0: .word 0x00000C03
|
||||
_022ECAF4: .word 0x00000C04
|
||||
#endif
|
||||
_022ECAF8: .word ov29_02352380
|
||||
arm_func_end ov29_022EC9A4
|
||||
|
||||
@@ -394,6 +440,11 @@ _022ECB44: .word ov29_02353598
|
||||
|
||||
arm_func_start DecrementWindCounter
|
||||
DecrementWindCounter: ; 0x022ECB48
|
||||
#ifdef JAPAN
|
||||
#define DECREMENT_WIND_COUNTER_OFFSET -0xA4
|
||||
#else
|
||||
#define DECREMENT_WIND_COUNTER_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, lr}
|
||||
bl GetLeader
|
||||
movs r4, r0
|
||||
@@ -444,7 +495,7 @@ _022ECB70:
|
||||
mov r0, r4
|
||||
ldr r2, [r1]
|
||||
add r1, r2, #0x4000
|
||||
ldrsh r1, [r1, #0xd4]
|
||||
ldrsh r1, [r1, #0xd4 + DECREMENT_WIND_COUNTER_OFFSET]
|
||||
ldrb r2, [r2, #0x79a]
|
||||
bl ov29_022EC9A4
|
||||
ldr r0, _022ECD7C ; =DUNGEON_PTR
|
||||
@@ -473,7 +524,7 @@ _022ECC2C:
|
||||
mov r0, r4
|
||||
ldr r2, [r1]
|
||||
add r1, r2, #0x4000
|
||||
ldrsh r1, [r1, #0xd4]
|
||||
ldrsh r1, [r1, #0xd4 + DECREMENT_WIND_COUNTER_OFFSET]
|
||||
ldrb r2, [r2, #0x79a]
|
||||
bl ov29_022EC9A4
|
||||
ldr r0, _022ECD7C ; =DUNGEON_PTR
|
||||
@@ -502,7 +553,7 @@ _022ECC9C:
|
||||
mov r0, r4
|
||||
ldr r2, [r1]
|
||||
add r1, r2, #0x4000
|
||||
ldrsh r1, [r1, #0xd4]
|
||||
ldrsh r1, [r1, #0xd4 + DECREMENT_WIND_COUNTER_OFFSET]
|
||||
ldrb r2, [r2, #0x79a]
|
||||
bl ov29_022EC9A4
|
||||
ldr r0, _022ECD7C ; =DUNGEON_PTR
|
||||
@@ -527,7 +578,7 @@ _022ECD0C:
|
||||
mov r0, r4
|
||||
ldr r2, [r1]
|
||||
add r1, r2, #0x4000
|
||||
ldrsh r1, [r1, #0xd4]
|
||||
ldrsh r1, [r1, #0xd4 + DECREMENT_WIND_COUNTER_OFFSET]
|
||||
ldrb r2, [r2, #0x79a]
|
||||
bl ov29_022EC9A4
|
||||
ldr r0, _022ECD7C ; =DUNGEON_PTR
|
||||
|
||||
@@ -10,7 +10,11 @@ ov29_022ECDE4: ; 0x022ECDE4
|
||||
mov r6, r1
|
||||
ldr r1, [r4]
|
||||
mov sb, r0
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x168
|
||||
#else
|
||||
add r1, r1, #0x20c
|
||||
#endif
|
||||
mov r0, r6
|
||||
mov r8, r2
|
||||
mov r7, r3
|
||||
@@ -97,7 +101,11 @@ _022ECE94:
|
||||
.align 2, 0
|
||||
_022ECF34: .word DUNGEON_PTR
|
||||
_022ECF38: .word ov29_0237C974
|
||||
#ifdef JAPAN
|
||||
_022ECF3C: .word 0x00000889
|
||||
#else
|
||||
_022ECF3C: .word 0x00000A41
|
||||
#endif
|
||||
_022ECF40: .word 0x000003E7
|
||||
arm_func_end ov29_022ECDE4
|
||||
|
||||
@@ -115,7 +123,11 @@ ov29_022ECF44: ; 0x022ECF44
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022ECF6C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022ECF70: .word 0x0002C9C2
|
||||
#else
|
||||
_022ECF70: .word 0x0002CA66
|
||||
#endif
|
||||
_022ECF74: .word 0x00000279
|
||||
arm_func_end ov29_022ECF44
|
||||
|
||||
@@ -136,7 +148,11 @@ ov29_022ECF78: ; 0x022ECF78
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022ECFAC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022ECFB0: .word 0x0002C9C2
|
||||
#else
|
||||
_022ECFB0: .word 0x0002CA66
|
||||
#endif
|
||||
_022ECFB4: .word 0x0000027A
|
||||
arm_func_end ov29_022ECF78
|
||||
|
||||
@@ -148,7 +164,11 @@ ov29_022ECFB8: ; 0x022ECFB8
|
||||
ldr r1, [r1]
|
||||
cmp r1, #0
|
||||
beq _022ECFF8
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x168
|
||||
#else
|
||||
add r0, r1, #0x20c
|
||||
#endif
|
||||
add lr, r0, #0x2c800
|
||||
mov ip, #0xe
|
||||
_022ECFDC:
|
||||
@@ -219,7 +239,11 @@ ov29_022ED030: ; 0x022ED030
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022ED0A0: .word ov29_02352690
|
||||
#ifdef JAPAN
|
||||
_022ED0A4: .word 0x000003F5
|
||||
#else
|
||||
_022ED0A4: .word 0x00000401
|
||||
#endif
|
||||
_022ED0A8: .word ov29_0237C99C
|
||||
_022ED0AC: .word ov29_0235359C
|
||||
arm_func_end ov29_022ED030
|
||||
@@ -751,12 +775,16 @@ ov29_022ED800: ; 0x022ED800
|
||||
arm_func_start ov29_022ED82C
|
||||
ov29_022ED82C: ; 0x022ED82C
|
||||
stmdb sp!, {r4, lr}
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
add r1, r1, #0xc3
|
||||
add r1, r1, #0x3400
|
||||
#elif defined(JAPAN)
|
||||
add r1, r1, #0x46
|
||||
add r1, r1, #0x4700
|
||||
#else
|
||||
add r1, r1, #0xc1
|
||||
#endif
|
||||
add r1, r1, #0x3400
|
||||
#endif
|
||||
mov r1, r1, lsl #0x10
|
||||
mov r4, r0
|
||||
mov r0, r1, lsr #0x10
|
||||
@@ -781,7 +809,11 @@ ov29_022ED868: ; 0x022ED868
|
||||
ldr ip, _022ED884 ; =AreLateGameTrapsEnabled
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_022ED880: .word DUNGEON_PTR
|
||||
@@ -887,6 +919,11 @@ _022ED9C8:
|
||||
|
||||
arm_func_start ov29_022ED9D0
|
||||
ov29_022ED9D0: ; 0x022ED9D0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022ED9D0_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022ED9D0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #8
|
||||
ldr r0, _022EDBB8 ; =DUNGEON_PTR
|
||||
@@ -894,7 +931,7 @@ ov29_022ED9D0: ; 0x022ED9D0
|
||||
ldr r0, [r0]
|
||||
ldrsh r2, [r0, r1]
|
||||
add r1, r0, #0x1a000
|
||||
ldrb r8, [r1, #0x244]
|
||||
ldrb r8, [r1, #0x244 + OV29_022ED9D0_OFFSET]
|
||||
sub sb, r2, #5
|
||||
b _022EDB9C
|
||||
_022ED9F8:
|
||||
@@ -1017,8 +1054,8 @@ _022EDB9C:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022EDBB8: .word DUNGEON_PTR
|
||||
_022EDBBC: .word 0x0001A21E
|
||||
_022EDBC0: .word 0x0001A21C
|
||||
_022EDBBC: .word 0x0001A21E + OV29_022ED9D0_OFFSET
|
||||
_022EDBC0: .word 0x0001A21C + OV29_022ED9D0_OFFSET
|
||||
_022EDBC4: .word 0x0000013E
|
||||
_022EDBC8: .word ov29_0237C864
|
||||
_022EDBCC: .word 0xFFFF000F
|
||||
@@ -1027,6 +1064,11 @@ _022EDBD0: .word _020AFC4C
|
||||
|
||||
arm_func_start PrepareTrapperTrap
|
||||
PrepareTrapperTrap: ; 0x022EDBD4
|
||||
#ifdef JAPAN
|
||||
#define PREPARE_TRAPPER_TRAP_OFFSET -0xA4
|
||||
#else
|
||||
#define PREPARE_TRAPPER_TRAP_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr lr, _022EDC28 ; =DUNGEON_PTR
|
||||
ldrsh r5, [r0]
|
||||
@@ -1040,17 +1082,17 @@ PrepareTrapperTrap: ; 0x022EDBD4
|
||||
strh r4, [r0, ip]
|
||||
ldr r0, [lr]
|
||||
add r0, r0, #0x12000
|
||||
strb r1, [r0, #0xaae]
|
||||
strb r1, [r0, #0xaae + PREPARE_TRAPPER_TRAP_OFFSET]
|
||||
ldr r0, [lr]
|
||||
add r0, r0, #0x12000
|
||||
strb r2, [r0, #0xaaf]
|
||||
strb r2, [r0, #0xaaf + PREPARE_TRAPPER_TRAP_OFFSET]
|
||||
ldr r0, [lr]
|
||||
add r0, r0, #0x12000
|
||||
strb r3, [r0, #0xaa8]
|
||||
strb r3, [r0, #0xaa8 + PREPARE_TRAPPER_TRAP_OFFSET]
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022EDC28: .word DUNGEON_PTR
|
||||
_022EDC2C: .word 0x00012AAA
|
||||
_022EDC2C: .word 0x00012AAA + PREPARE_TRAPPER_TRAP_OFFSET
|
||||
arm_func_end PrepareTrapperTrap
|
||||
|
||||
arm_func_start ov29_022EDC30
|
||||
@@ -1174,22 +1216,27 @@ _022EDDA0:
|
||||
|
||||
arm_func_start TrySpawnTrapperTrap
|
||||
TrySpawnTrapperTrap: ; 0x022EDDD4
|
||||
#ifdef JAPAN
|
||||
#define TRY_SPAWN_TRAPPER_TRAP_OFFSET -0xA4
|
||||
#else
|
||||
#define TRY_SPAWN_TRAPPER_TRAP_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r1, _022EDE6C ; =DUNGEON_PTR
|
||||
mov r5, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x12000
|
||||
ldrb r2, [r0, #0xaa8]
|
||||
ldrb r2, [r0, #0xaa8 + TRY_SPAWN_TRAPPER_TRAP_OFFSET]
|
||||
cmp r2, #0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, pc}
|
||||
mov r2, #0
|
||||
strb r2, [r0, #0xaa8]
|
||||
strb r2, [r0, #0xaa8 + TRY_SPAWN_TRAPPER_TRAP_OFFSET]
|
||||
ldr r3, [r1]
|
||||
ldr r0, _022EDE70 ; =0x00012AAA
|
||||
add r2, r3, #0x12000
|
||||
ldrb r1, [r2, #0xaae]
|
||||
ldrb r2, [r2, #0xaaf]
|
||||
ldrb r1, [r2, #0xaae + TRY_SPAWN_TRAPPER_TRAP_OFFSET]
|
||||
ldrb r2, [r2, #0xaaf + TRY_SPAWN_TRAPPER_TRAP_OFFSET]
|
||||
add r0, r3, r0
|
||||
mov r3, #1
|
||||
bl TrySpawnTrap
|
||||
@@ -1216,9 +1263,14 @@ _022EDE60:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022EDE6C: .word DUNGEON_PTR
|
||||
_022EDE70: .word 0x00012AAA
|
||||
_022EDE70: .word 0x00012AAA + TRY_SPAWN_TRAPPER_TRAP_OFFSET
|
||||
#ifdef JAPAN
|
||||
_022EDE74: .word 0x00000B99
|
||||
_022EDE78: .word 0x00000B9A
|
||||
#else
|
||||
_022EDE74: .word 0x00000E57
|
||||
_022EDE78: .word 0x00000E58
|
||||
#endif
|
||||
arm_func_end TrySpawnTrapperTrap
|
||||
|
||||
arm_func_start ov29_022EDE7C
|
||||
@@ -1320,8 +1372,17 @@ ov29_022EDF7C: ; 0x022EDF7C
|
||||
|
||||
arm_func_start TryTriggerTrap
|
||||
TryTriggerTrap: ; 0x022EDFA0
|
||||
#ifdef JAPAN
|
||||
#define TRY_TRIGGER_TRAP_OFFSET -4
|
||||
#else
|
||||
#define TRY_TRIGGER_TRAP_OFFSET 0
|
||||
#endif
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
#else
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x14
|
||||
#endif
|
||||
sub sp, sp, #0x14 + TRY_TRIGGER_TRAP_OFFSET
|
||||
mov sb, r1
|
||||
mov sl, r0
|
||||
ldrsh r0, [sb]
|
||||
@@ -1330,7 +1391,7 @@ TryTriggerTrap: ; 0x022EDFA0
|
||||
mov r7, r3
|
||||
bl GetTileSafe
|
||||
ldr r4, [r0, #0x10]
|
||||
str r0, [sp, #0x10]
|
||||
str r0, [sp, #0x10 + TRY_TRIGGER_TRAP_OFFSET]
|
||||
cmp r4, #0
|
||||
beq _022EE2F4
|
||||
ldr r0, [r4]
|
||||
@@ -1342,7 +1403,7 @@ TryTriggerTrap: ; 0x022EDFA0
|
||||
ldrb r1, [r6]
|
||||
mov r0, #0
|
||||
bl ov29_022EDF5C
|
||||
ldr r0, [sp, #0x10]
|
||||
ldr r0, [sp, #0x10 + TRY_TRIGGER_TRAP_OFFSET]
|
||||
ldr r5, [r0, #0xc]
|
||||
cmp r5, #0
|
||||
ldrne r0, [r5]
|
||||
@@ -1350,7 +1411,7 @@ TryTriggerTrap: ; 0x022EDFA0
|
||||
ldrb r0, [r4, #0x20]
|
||||
movne r5, #0
|
||||
cmp r5, #0
|
||||
str r0, [sp, #0xc]
|
||||
str r0, [sp, #0xc + TRY_TRIGGER_TRAP_OFFSET]
|
||||
mov r0, #1
|
||||
strb r0, [r4, #0x20]
|
||||
beq _022EE1D8
|
||||
@@ -1396,13 +1457,17 @@ _022EE05C:
|
||||
bl ov29_022EDE7C
|
||||
ldr r8, _022EE304 ; =0x00000E5A
|
||||
_022EE0C8:
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r0, [sp, #0xc + TRY_TRIGGER_TRAP_OFFSET]
|
||||
cmp r0, #1
|
||||
beq _022EE0EC
|
||||
ldr r0, _022EE308 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x1a0]
|
||||
#else
|
||||
ldrb r0, [r0, #0x244]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _022EE100
|
||||
_022EE0EC:
|
||||
@@ -1493,7 +1558,11 @@ _022EE1D8:
|
||||
ldr r0, _022EE308 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x19a]
|
||||
#else
|
||||
ldrb r0, [r0, #0x23e]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _022EE248
|
||||
ldr r1, _022EE314 ; =0x00000E5D
|
||||
@@ -1503,8 +1572,13 @@ _022EE1D8:
|
||||
_022EE248:
|
||||
ldrb r1, [r6]
|
||||
mov r0, sl
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x53
|
||||
add r1, r1, #0x600
|
||||
#else
|
||||
add r1, r1, #0x51
|
||||
add r1, r1, #0xb00
|
||||
#endif
|
||||
mov r1, r1, lsl #0x10
|
||||
mov r1, r1, lsr #0x10
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
@@ -1527,13 +1601,20 @@ _022EE288:
|
||||
_022EE29C:
|
||||
str sb, [sp]
|
||||
ldrb r6, [r6]
|
||||
#ifdef JAPAN
|
||||
ldr r3, [sp, #0xc]
|
||||
mov r0, r4
|
||||
#else
|
||||
mov r0, r4
|
||||
ldr r3, [sp, #0x10]
|
||||
#endif
|
||||
mov r1, sl
|
||||
mov r2, r5
|
||||
str r6, [sp, #4]
|
||||
#ifndef JAPAN
|
||||
mov r4, #0
|
||||
str r4, [sp, #8]
|
||||
#endif
|
||||
bl ApplyTrapEffect
|
||||
mov r4, r0
|
||||
mov r0, r5
|
||||
@@ -1549,16 +1630,25 @@ _022EE2E0:
|
||||
mov r1, #1
|
||||
bl ov29_022EDE7C
|
||||
_022EE2F4:
|
||||
add sp, sp, #0x14
|
||||
add sp, sp, #0x14 + TRY_TRIGGER_TRAP_OFFSET
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
#else
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
#endif
|
||||
.align 2, 0
|
||||
_022EE2FC: .word 0x00000E59
|
||||
_022EE300: .word 0x00000E5B
|
||||
_022EE304: .word 0x00000E5A
|
||||
#ifdef JAPAN
|
||||
#define TRY_TRIGGER_TRAP_DATA_OFFSET -0x2BE
|
||||
#else
|
||||
#define TRY_TRIGGER_TRAP_DATA_OFFSET 0
|
||||
#endif
|
||||
_022EE2FC: .word 0x00000E59 + TRY_TRIGGER_TRAP_DATA_OFFSET
|
||||
_022EE300: .word 0x00000E5B + TRY_TRIGGER_TRAP_DATA_OFFSET
|
||||
_022EE304: .word 0x00000E5A + TRY_TRIGGER_TRAP_DATA_OFFSET
|
||||
_022EE308: .word DUNGEON_PTR
|
||||
_022EE30C: .word 0x00000E5C
|
||||
_022EE30C: .word 0x00000E5C + TRY_TRIGGER_TRAP_DATA_OFFSET
|
||||
_022EE310: .word ov10_022C445C
|
||||
_022EE314: .word 0x00000E5D
|
||||
_022EE314: .word 0x00000E5D + TRY_TRIGGER_TRAP_DATA_OFFSET
|
||||
arm_func_end TryTriggerTrap
|
||||
|
||||
arm_func_start ItemIsActive__022EE318
|
||||
|
||||
@@ -74,9 +74,15 @@ ApplyStickyTrapEffect: ; 0x022EE434
|
||||
bl ItemIsActive__022EE318
|
||||
cmp r0, #0
|
||||
beq _022EE470
|
||||
#ifdef JAPAN
|
||||
ldr r2, _022EFC78 ; =0x00000BA2
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0xe60
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _022EE610
|
||||
_022EE470:
|
||||
@@ -171,6 +177,18 @@ _022EE574:
|
||||
bl SetFlagsForHeldItemInBag
|
||||
b _022EE5E8
|
||||
_022EE5C4:
|
||||
#ifdef JAPAN
|
||||
sub r2, r0, #1
|
||||
mov r0, #0x23c
|
||||
ldr r1, _022EE620 ; =DUNGEON_PTR
|
||||
mul r3, r2, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x56
|
||||
add r1, r0, #0x800
|
||||
ldrb r0, [r1, r3]
|
||||
orr r0, r0, #8
|
||||
strb r0, [r1, r3]
|
||||
#else
|
||||
ldr r1, _022EE620 ; =DUNGEON_PTR
|
||||
sub r0, r0, #1
|
||||
ldr r2, [r1]
|
||||
@@ -180,6 +198,7 @@ _022EE5C4:
|
||||
ldrb r0, [r2, r1, lsl #6]
|
||||
orr r0, r0, #8
|
||||
strb r0, [r2, r1, lsl #6]
|
||||
#endif
|
||||
_022EE5E8:
|
||||
#ifdef EUROPE
|
||||
mov r0, #0
|
||||
@@ -188,9 +207,15 @@ _022EE5E8:
|
||||
ldr r1, _022EE624 ; =0x00000309
|
||||
mov r0, sb
|
||||
bl ov29_022E56A0
|
||||
#ifdef JAPAN
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0xba0
|
||||
#else
|
||||
ldr r2, _022EE628 ; =0x00000E5E
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
bl ov29_022E8104
|
||||
bl ov29_022E81F8
|
||||
@@ -198,15 +223,28 @@ _022EE610:
|
||||
add sp, sp, #0xcc
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022EFC78: .word 0x00000BA2
|
||||
_022EE618: .word BAG_ITEMS_PTR_MIRROR
|
||||
_022EE61C: .word 0x00000BA1
|
||||
_022EE620: .word DUNGEON_PTR
|
||||
_022EE624: .word 0x00000309
|
||||
#else
|
||||
_022EE618: .word BAG_ITEMS_PTR_MIRROR
|
||||
_022EE61C: .word 0x00000E5F
|
||||
_022EE620: .word DUNGEON_PTR
|
||||
_022EE624: .word 0x00000309
|
||||
_022EE628: .word 0x00000E5E
|
||||
#endif
|
||||
arm_func_end ApplyStickyTrapEffect
|
||||
|
||||
arm_func_start ApplyGrimyTrapEffect
|
||||
ApplyGrimyTrapEffect: ; 0x022EE62C
|
||||
#ifdef JAPAN
|
||||
#define APPLY_GRIMY_TRAP_EFFECT_OFFSET 4
|
||||
#else
|
||||
#define APPLY_GRIMY_TRAP_EFFECT_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0xd8
|
||||
movs sl, r1
|
||||
@@ -299,15 +337,21 @@ _022EE77C:
|
||||
ldr r0, _022EE810 ; =DUNGEON_PTR
|
||||
ldrb r2, [r8, #1]
|
||||
ldr r3, [r0]
|
||||
#ifdef JAPAN
|
||||
mov r0, #0x23c
|
||||
mla r0, r2, r0, r3
|
||||
ldrh r1, [r8]
|
||||
#else
|
||||
ldrh r1, [r8]
|
||||
add r0, r2, r2, lsl #3
|
||||
add r0, r3, r0, lsl #6
|
||||
#endif
|
||||
add r0, r0, #0x600
|
||||
strh r1, [r0, #0x16]
|
||||
strh r1, [r0, #0x16 + APPLY_GRIMY_TRAP_EFFECT_OFFSET]
|
||||
ldrh r1, [r8, #2]
|
||||
strh r1, [r0, #0x18]
|
||||
strh r1, [r0, #0x18 + APPLY_GRIMY_TRAP_EFFECT_OFFSET]
|
||||
ldrh r1, [r8, #4]
|
||||
strh r1, [r0, #0x1a]
|
||||
strh r1, [r0, #0x1a + APPLY_GRIMY_TRAP_EFFECT_OFFSET]
|
||||
_022EE7AC:
|
||||
add sb, sb, #1
|
||||
_022EE7B0:
|
||||
@@ -340,32 +384,63 @@ _022EE800:
|
||||
_022EE808: .word BAG_ITEMS_PTR_MIRROR
|
||||
_022EE80C: .word ov10_022C4434
|
||||
_022EE810: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EE814: .word 0x00000BA5
|
||||
_022EE818: .word 0x00000BA3
|
||||
_022EE81C: .word 0x00000BA4
|
||||
#else
|
||||
_022EE814: .word 0x00000E63
|
||||
_022EE818: .word 0x00000E61
|
||||
_022EE81C: .word 0x00000E62
|
||||
#endif
|
||||
arm_func_end ApplyGrimyTrapEffect
|
||||
|
||||
arm_func_start ApplyPitfallTrapEffect
|
||||
ApplyPitfallTrapEffect: ; 0x022EE820
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
#ifdef JAPAN
|
||||
movs r6, r1
|
||||
mov r7, r0
|
||||
mov r5, r2
|
||||
#else
|
||||
movs r7, r1
|
||||
mov r8, r0
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
#endif
|
||||
mov r4, #0
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
ldr r0, _022EE980 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreLateGameTrapsEnabled
|
||||
cmp r0, #0
|
||||
bne _022EE868
|
||||
ldr r1, _022EE984 ; =0x00000E64
|
||||
#ifdef JAPAN
|
||||
mov r0, r7
|
||||
#else
|
||||
mov r0, r8
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
_022EE868:
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
ldr r8, [r6, #0xb4]
|
||||
bl ShouldDisplayEntityWrapper
|
||||
cmp r0, #0
|
||||
beq _022EE8AC
|
||||
mov r0, r5
|
||||
mov r1, #0x20
|
||||
bl ov29_022EF478
|
||||
mov r0, r6
|
||||
#else
|
||||
cmp r5, #0
|
||||
ldr r5, [r7, #0xb4]
|
||||
bne _022EE8AC
|
||||
@@ -377,6 +452,7 @@ _022EE868:
|
||||
mov r1, #0x20
|
||||
bl ov29_022EF478
|
||||
mov r0, r7
|
||||
#endif
|
||||
mov r1, #0x308
|
||||
mov r4, #1
|
||||
bl ov29_022E56A0
|
||||
@@ -384,13 +460,26 @@ _022EE868:
|
||||
mov r1, #0x48
|
||||
bl ov29_022EA370
|
||||
_022EE8AC:
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r8, #7]
|
||||
#else
|
||||
ldrb r0, [r5, #7]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _022EE91C
|
||||
bl GetFloorType
|
||||
cmp r0, #2
|
||||
beq _022EE90C
|
||||
mov r2, #1
|
||||
#ifdef JAPAN
|
||||
strb r2, [r5, #0x16e]
|
||||
mov r0, #0x28
|
||||
mov r1, #0x4b
|
||||
strb r2, [r5, #0x170]
|
||||
bl ov29_022EA370
|
||||
ldr r1, _022EE988 ; =ov10_022C44E4
|
||||
mov r0, r6
|
||||
#else
|
||||
strb r2, [r5, #0x172]
|
||||
mov r0, #0x28
|
||||
mov r1, #0x4b
|
||||
@@ -398,6 +487,7 @@ _022EE8AC:
|
||||
bl ov29_022EA370
|
||||
ldr r1, _022EE988 ; =ov10_022C44E4
|
||||
mov r0, r7
|
||||
#endif
|
||||
ldrsh r1, [r1]
|
||||
mov r2, #0x11
|
||||
mov r3, #0x254
|
||||
@@ -410,44 +500,77 @@ _022EE8AC:
|
||||
b _022EE968
|
||||
_022EE90C:
|
||||
ldr r1, _022EE98C ; =0x00000E66
|
||||
#ifdef JAPAN
|
||||
mov r0, r7
|
||||
#else
|
||||
mov r0, r8
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022EE968
|
||||
_022EE91C:
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
mov r1, r6
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldrb r0, [r8, #6]
|
||||
#else
|
||||
mov r1, r7
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldrb r0, [r5, #6]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _022EE94C
|
||||
ldr r2, _022EE990 ; =0x00000E65
|
||||
#ifdef JAPAN
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
#else
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _022EE958
|
||||
_022EE94C:
|
||||
ldr r1, _022EE990 ; =0x00000E65
|
||||
#ifdef JAPAN
|
||||
mov r0, r7
|
||||
bl LogMessageByIdWithPopup
|
||||
_022EE958:
|
||||
mov r0, r6
|
||||
mov r2, r7
|
||||
#else
|
||||
mov r0, r8
|
||||
bl LogMessageByIdWithPopup
|
||||
_022EE958:
|
||||
mov r0, r7
|
||||
mov r2, r8
|
||||
#endif
|
||||
mov r1, #0x254
|
||||
bl HandleFaint
|
||||
_022EE968:
|
||||
cmp r4, #0
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
#else
|
||||
mov r0, r6
|
||||
#endif
|
||||
mov r1, #5
|
||||
bl ov29_022EF478
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define APPLY_PITFALL_TRAP_EFFECT_OFFSET -0x2BE
|
||||
#else
|
||||
#define APPLY_PITFALL_TRAP_EFFECT_OFFSET 0
|
||||
#endif
|
||||
_022EE980: .word DUNGEON_PTR
|
||||
_022EE984: .word 0x00000E64
|
||||
_022EE984: .word 0x00000E64 + APPLY_PITFALL_TRAP_EFFECT_OFFSET
|
||||
_022EE988: .word ov10_022C44E4
|
||||
_022EE98C: .word 0x00000E66
|
||||
_022EE990: .word 0x00000E65
|
||||
_022EE98C: .word 0x00000E66 + APPLY_PITFALL_TRAP_EFFECT_OFFSET
|
||||
_022EE990: .word 0x00000E65 + APPLY_PITFALL_TRAP_EFFECT_OFFSET
|
||||
arm_func_end ApplyPitfallTrapEffect
|
||||
|
||||
arm_func_start ApplySummonTrapEffect
|
||||
@@ -461,7 +584,11 @@ ApplySummonTrapEffect: ; 0x022EE994
|
||||
mov r4, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreLateGameTrapsEnabled
|
||||
cmp r0, #0
|
||||
bne _022EE9D8
|
||||
@@ -491,9 +618,15 @@ _022EEA10:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022EEA20: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EEA24: .word 0x00000BAA
|
||||
_022EEA28: .word 0x0000030F
|
||||
_022EEA2C: .word 0x00000BA9
|
||||
#else
|
||||
_022EEA24: .word 0x00000E68
|
||||
_022EEA28: .word 0x0000030F
|
||||
_022EEA2C: .word 0x00000E67
|
||||
#endif
|
||||
arm_func_end ApplySummonTrapEffect
|
||||
|
||||
arm_func_start ApplyPpZeroTrapEffect
|
||||
@@ -506,7 +639,11 @@ ApplyPpZeroTrapEffect: ; 0x022EEA30
|
||||
beq _022EEB08
|
||||
ldr r1, [r4, #0xb4]
|
||||
mov r0, r8
|
||||
#ifdef JAPAN
|
||||
add lr, r1, #0x120
|
||||
#else
|
||||
add lr, r1, #0x124
|
||||
#endif
|
||||
mov r7, r8
|
||||
mov r6, r8
|
||||
mov ip, #1
|
||||
@@ -559,8 +696,13 @@ _022EEB08:
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022EEB10: .word 0x00000BAB
|
||||
_022EEB14: .word 0x00000BAC
|
||||
#else
|
||||
_022EEB10: .word 0x00000E69
|
||||
_022EEB14: .word 0x00000E6A
|
||||
#endif
|
||||
arm_func_end ApplyPpZeroTrapEffect
|
||||
|
||||
arm_func_start ApplyPokemonTrapEffect
|
||||
@@ -575,7 +717,11 @@ ApplyPokemonTrapEffect: ; 0x022EEB18
|
||||
mov r5, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreLateGameTrapsEnabled
|
||||
cmp r0, #0
|
||||
bne _022EEB60
|
||||
@@ -601,7 +747,11 @@ _022EEB94:
|
||||
ldr r0, _022EED1C ; =DUNGEON_PTR
|
||||
mov r1, #0x1c
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x244
|
||||
#else
|
||||
add r0, r0, #0x2e8
|
||||
#endif
|
||||
add r0, r0, #0xec00
|
||||
mla r0, r2, r1, r0
|
||||
ldrsh r3, [r0, #2]
|
||||
@@ -711,9 +861,15 @@ _022EED14:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022EED1C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EED20: .word 0x00000BAD
|
||||
_022EED24: .word 0x00000BAE
|
||||
_022EED28: .word 0x00000BAF
|
||||
#else
|
||||
_022EED20: .word 0x00000E6B
|
||||
_022EED24: .word 0x00000E6C
|
||||
_022EED28: .word 0x00000E6D
|
||||
#endif
|
||||
arm_func_end ApplyPokemonTrapEffect
|
||||
|
||||
arm_func_start ApplyTripTrapEffect
|
||||
@@ -798,9 +954,16 @@ _022EEE4C: .word DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST
|
||||
|
||||
arm_func_start ApplyStealthRockTrapEffect
|
||||
ApplyStealthRockTrapEffect: ; 0x022EEE50
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
movs r4, r1
|
||||
mov r6, r0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
movs r4, r1
|
||||
ldmeqia sp!, {r3, r4, r5, pc}
|
||||
#endif
|
||||
mov r0, r4
|
||||
mov r1, #0xd
|
||||
ldr r5, [r4, #0xb4]
|
||||
@@ -824,6 +987,18 @@ ApplyStealthRockTrapEffect: ; 0x022EEE50
|
||||
mov r1, r1, asr #8
|
||||
mov r2, #0x16
|
||||
bl ApplyDamageAndEffectsWrapper
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_022EEEBC:
|
||||
mov r0, #0
|
||||
mov r1, r6
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r0, r6
|
||||
mov r1, #0xbb0
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
#else
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_022EEEBC:
|
||||
mov r0, #0
|
||||
@@ -834,13 +1009,17 @@ _022EEEBC:
|
||||
mov r0, r4
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
#endif
|
||||
.align 2, 0
|
||||
_022EEEDC: .word 0x000003E7
|
||||
_022EEEE0: .word ov10_022C4770
|
||||
_022EEEE4: .word 0x0000026D
|
||||
#ifndef JAPAN
|
||||
_022EEEE8: .word 0x00000E6E
|
||||
#endif
|
||||
arm_func_end ApplyStealthRockTrapEffect
|
||||
|
||||
#ifndef JAPAN
|
||||
arm_func_start ApplyToxicSpikesTrapEffect
|
||||
ApplyToxicSpikesTrapEffect: ; 0x022EEEEC
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
@@ -866,15 +1045,25 @@ ApplyToxicSpikesTrapEffect: ; 0x022EEEEC
|
||||
.align 2, 0
|
||||
_022EEF3C: .word ov10_022C45CC
|
||||
arm_func_end ApplyToxicSpikesTrapEffect
|
||||
#endif
|
||||
|
||||
arm_func_start ApplyRandomTrapEffect
|
||||
ApplyRandomTrapEffect: ; 0x022EEF40
|
||||
#ifdef JAPAN
|
||||
#define APPLY_RANDOM_TRAP_EFFECT_OFFSET -4
|
||||
#else
|
||||
#define APPLY_RANDOM_TRAP_EFFECT_OFFSET 0
|
||||
#endif
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
#else
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x64
|
||||
#endif
|
||||
sub sp, sp, #0x64 + APPLY_RANDOM_TRAP_EFFECT_OFFSET
|
||||
movs sb, r2
|
||||
str r0, [sp, #0xc]
|
||||
str r0, [sp, #0xc + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
mov sl, r1
|
||||
str r3, [sp, #0x10]
|
||||
str r3, [sp, #0x10 + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
ldr r8, [sp, #0x88]
|
||||
beq _022EF064
|
||||
bl ov29_022E7A8C
|
||||
@@ -888,27 +1077,33 @@ ApplyRandomTrapEffect: ; 0x022EEF40
|
||||
mov r2, r4
|
||||
bl ov29_022E58B0
|
||||
str r8, [sp]
|
||||
#ifndef JAPAN
|
||||
str r4, [sp, #4]
|
||||
mov r4, #1
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r3, [sp, #0x10]
|
||||
#endif
|
||||
ldr r0, [sp, #0xc + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
ldr r3, [sp, #0x10 + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
mov r1, sl
|
||||
mov r2, sb
|
||||
str r4, [sp, #8]
|
||||
str r4, [sp, #8 + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
bl ApplyTrapEffect
|
||||
b _022EF064
|
||||
_022EEFB0:
|
||||
ldr r0, [sb, #0xb4]
|
||||
mov r5, #0
|
||||
ldrb fp, [r0, #6]
|
||||
str sb, [sp, #0x14]
|
||||
str sb, [sp, #0x14 + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
add r7, r5, #1
|
||||
_022EEFC4:
|
||||
ldr r0, _022EF070 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022EE348
|
||||
cmp r0, #0
|
||||
@@ -917,7 +1112,7 @@ _022EEFC4:
|
||||
ldr r0, [r6, #0xb4]
|
||||
ldrb r0, [r0, #6]
|
||||
cmp fp, r0
|
||||
addeq r0, sp, #0x14
|
||||
addeq r0, sp, #0x14 + APPLY_RANDOM_TRAP_EFFECT_OFFSET
|
||||
streq r6, [r0, r7, lsl #2]
|
||||
addeq r7, r7, #1
|
||||
_022EF004:
|
||||
@@ -925,7 +1120,7 @@ _022EF004:
|
||||
cmp r5, #0x14
|
||||
blt _022EEFC4
|
||||
mov sb, #0
|
||||
add r5, sp, #0x14
|
||||
add r5, sp, #0x14 + APPLY_RANDOM_TRAP_EFFECT_OFFSET
|
||||
mov fp, #1
|
||||
b _022EF05C
|
||||
_022EF020:
|
||||
@@ -935,21 +1130,31 @@ _022EF020:
|
||||
add r1, r6, #4
|
||||
bl ov29_022E58B0
|
||||
str r8, [sp]
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r3, [sp, #0x10]
|
||||
ldr r0, [sp, #0xc + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
ldr r3, [sp, #0x10 + APPLY_RANDOM_TRAP_EFFECT_OFFSET]
|
||||
mov r2, r6
|
||||
mov r1, sl
|
||||
#ifdef JAPAN
|
||||
str r4, [sp, #4]
|
||||
bl ApplyTrapEffect
|
||||
mov r0, fp
|
||||
#else
|
||||
stmib sp, {r4, fp}
|
||||
bl ApplyTrapEffect
|
||||
mov r0, #1
|
||||
#endif
|
||||
bl AnimationDelayOrSomething
|
||||
add sb, sb, #1
|
||||
_022EF05C:
|
||||
cmp sb, r7
|
||||
blt _022EF020
|
||||
_022EF064:
|
||||
add sp, sp, #0x64
|
||||
add sp, sp, #0x64 + APPLY_RANDOM_TRAP_EFFECT_OFFSET
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
#else
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
#endif
|
||||
.align 2, 0
|
||||
_022EF06C: .word ov10_022C4B18
|
||||
_022EF070: .word DUNGEON_PTR
|
||||
@@ -958,12 +1163,20 @@ _022EF070: .word DUNGEON_PTR
|
||||
arm_func_start ApplyGrudgeTrapEffect
|
||||
ApplyGrudgeTrapEffect: ; 0x022EF074
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
#ifdef JAPAN
|
||||
mov r6, r0
|
||||
#else
|
||||
mov sl, r0
|
||||
#endif
|
||||
mov r0, #3
|
||||
mov r4, r1
|
||||
bl DungeonRandInt
|
||||
mov r2, r0
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
#else
|
||||
mov r0, sl
|
||||
#endif
|
||||
mov r1, r4
|
||||
add r2, r2, #2
|
||||
bl ov29_022EF4B4
|
||||
@@ -973,6 +1186,37 @@ ApplyGrudgeTrapEffect: ; 0x022EF074
|
||||
mov r0, r4
|
||||
bl ov29_022E56D4
|
||||
_022EF0B0:
|
||||
#ifdef JAPAN
|
||||
mov r4, #0
|
||||
ldr r7, _022EF14C ; =DUNGEON_PTR
|
||||
mov r5, r4
|
||||
mov r8, #1
|
||||
mov sb, r4
|
||||
_022F06BC:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr sl, [r0, #0xa94]
|
||||
mov r0, sl
|
||||
bl EntityIsValid__022EE348
|
||||
cmp r0, #0
|
||||
beq _022F06F4
|
||||
mov r0, sl
|
||||
mov r1, sl
|
||||
mov r2, sb
|
||||
bl TryInflictGrudgeStatus
|
||||
cmp r0, #0
|
||||
movne r4, r8
|
||||
_022F06F4:
|
||||
add r5, r5, #1
|
||||
cmp r5, #0x10
|
||||
blt _022F06BC
|
||||
cmp r4, #0
|
||||
ldrne r0, _022F0728 ; =0x00000BB1
|
||||
ldreq r0, _022F072C ; =0x00000BB2
|
||||
mov r1, r0, lsl #0x10
|
||||
mov r0, r6
|
||||
#else
|
||||
mov r7, #0
|
||||
ldr r4, _022EF14C ; =DUNGEON_PTR
|
||||
mov r8, r7
|
||||
@@ -1010,13 +1254,19 @@ _022EF11C:
|
||||
moveq r0, #0xe70
|
||||
mov r1, r0, lsl #0x10
|
||||
mov r0, sl
|
||||
#endif
|
||||
mov r1, r1, lsr #0x10
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_022EF148: .word 0x0000030F
|
||||
_022EF14C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022F0728: .word 0x00000BB1
|
||||
_022F072C: .word 0x00000BB2
|
||||
#else
|
||||
_022EF150: .word 0x00000E6F
|
||||
#endif
|
||||
arm_func_end ApplyGrudgeTrapEffect
|
||||
|
||||
arm_func_start ApplyTrapEffect
|
||||
@@ -1088,10 +1338,16 @@ _022EF234:
|
||||
mov r4, #1
|
||||
b _022EF454
|
||||
_022EF248:
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, r3
|
||||
#else
|
||||
mov r2, r3
|
||||
ldrb r3, [sp, #0x28]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#endif
|
||||
bl ApplyPitfallTrapEffect
|
||||
b _022EF454
|
||||
_022EF260:
|
||||
@@ -1220,9 +1476,25 @@ _022EF408:
|
||||
bl ApplyStealthRockTrapEffect
|
||||
b _022EF454
|
||||
_022EF418:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #0
|
||||
beq _022EF454
|
||||
ldr r1, _022F0A78 ; =0x022C5CB4
|
||||
mov r0, r5
|
||||
ldrsh r1, [r1]
|
||||
mov r2, #0x15
|
||||
mov r3, #0x26c
|
||||
bl ApplyDamageAndEffectsWrapper
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, #1
|
||||
mov r3, r4
|
||||
bl TryInflictPoisonedStatus
|
||||
#else
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
bl ApplyToxicSpikesTrapEffect
|
||||
#endif
|
||||
b _022EF454
|
||||
_022EF428:
|
||||
mov r0, r6
|
||||
@@ -1249,6 +1521,9 @@ _022EF468: .word ov10_022C45C8
|
||||
_022EF46C: .word 0x00000252
|
||||
_022EF470: .word ov10_022C4418
|
||||
_022EF474: .word 0x00000245
|
||||
#ifdef JAPAN
|
||||
_022F0A78: .word ov10_022C45CC
|
||||
#endif
|
||||
arm_func_end ApplyTrapEffect
|
||||
|
||||
arm_func_start ov29_022EF478
|
||||
@@ -1400,7 +1675,11 @@ _022EF65C:
|
||||
ldr r0, _022EF6F4 ; =DUNGEON_PTR
|
||||
mov r1, #0x1c
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x244
|
||||
#else
|
||||
add r0, r0, #0x2e8
|
||||
#endif
|
||||
add r0, r0, #0xec00
|
||||
mla r4, r7, r1, r0
|
||||
ldrsh r0, [r4, #4]
|
||||
@@ -1443,8 +1722,13 @@ _022EF6E4:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_022EF6F4: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EF6F8: .word 0x00000B43
|
||||
_022EF6FC: .word 0x00000B44
|
||||
#else
|
||||
_022EF6F8: .word 0x00000E02
|
||||
_022EF6FC: .word 0x00000E03
|
||||
#endif
|
||||
arm_func_end RevealTrapsNearby
|
||||
|
||||
arm_func_start ov29_022EF700
|
||||
@@ -1468,6 +1752,11 @@ _022EF730:
|
||||
|
||||
arm_func_start ov29_022EF738
|
||||
ov29_022EF738: ; 0x022EF738
|
||||
#ifdef JAPAN
|
||||
#define OV29_022EF738_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022EF738_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, lr}
|
||||
bl IsFullFloorFixedRoom
|
||||
cmp r0, #0
|
||||
@@ -1477,21 +1766,21 @@ ov29_022EF738: ; 0x022EF738
|
||||
ldr r0, [r0]
|
||||
ldr r2, _022EF79C ; =ov10_022C6C7A
|
||||
add r0, r0, #0x4000
|
||||
ldrb r3, [r0, #0xda]
|
||||
ldrb r3, [r0, #0xda + OV29_022EF738_OFFSET]
|
||||
smulbb r1, r3, r1
|
||||
ldrb r1, [r2, r1]
|
||||
cmp r1, #0
|
||||
movne r1, #2
|
||||
strneb r1, [r0, #0xca]
|
||||
strneb r1, [r0, #0xca + OV29_022EF738_OFFSET]
|
||||
moveq r1, #1
|
||||
streqb r1, [r0, #0xca]
|
||||
streqb r1, [r0, #0xca + OV29_022EF738_OFFSET]
|
||||
ldmia sp!, {r3, pc}
|
||||
_022EF780:
|
||||
ldr r0, _022EF798 ; =DUNGEON_PTR
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
strb r1, [r0, #0xca]
|
||||
strb r1, [r0, #0xca + OV29_022EF738_OFFSET]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022EF798: .word DUNGEON_PTR
|
||||
|
||||
@@ -13,7 +13,11 @@ ov29_022EF7C4: ; 0x022EF7C4
|
||||
ldr r4, _022EF89C ; =DUNGEON_PTR
|
||||
ldr r0, [r4]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x26]
|
||||
#else
|
||||
ldrb r0, [r0, #0xca]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
cmpne r0, #1
|
||||
cmpne r0, #3
|
||||
@@ -25,7 +29,11 @@ _022EF804:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sb, [r0, #0xa94]
|
||||
#else
|
||||
ldr sb, [r0, #0xb38]
|
||||
#endif
|
||||
cmp r8, sb
|
||||
beq _022EF840
|
||||
mov r0, sb
|
||||
@@ -71,6 +79,11 @@ _022EF8A0: .word 0x000003E7
|
||||
|
||||
arm_func_start ov29_022EF8A4
|
||||
ov29_022EF8A4: ; 0x022EF8A4
|
||||
#ifdef JAPAN
|
||||
#define OV29_022EF8A4_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022EF8A4_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r8, #1
|
||||
ldr r5, _022EF934 ; =DUNGEON_PTR
|
||||
@@ -81,7 +94,7 @@ _022EF8BC:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr sb, [r0, #0xb28]
|
||||
ldr sb, [r0, #0xb28 + OV29_022EF8A4_OFFSET]
|
||||
cmp sb, #0
|
||||
beq _022EF918
|
||||
mov r0, sb
|
||||
@@ -90,9 +103,9 @@ _022EF8BC:
|
||||
ldrne r0, [r5]
|
||||
addne r0, r0, r8, lsl #2
|
||||
addne r0, r0, #0xcc00
|
||||
ldrnesh r1, [r0, #0xec]
|
||||
ldrnesh r1, [r0, #0xec + OV29_022EF8A4_OFFSET]
|
||||
cmpne r1, r4
|
||||
ldrnesh r2, [r0, #0xee]
|
||||
ldrnesh r2, [r0, #0xee + OV29_022EF8A4_OFFSET]
|
||||
cmpne r2, r4
|
||||
beq _022EF918
|
||||
mov r0, sb
|
||||
@@ -123,7 +136,11 @@ _022EF948:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
cmp r7, #0
|
||||
beq _022EF99C
|
||||
mov r0, r7
|
||||
@@ -133,7 +150,11 @@ _022EF948:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r4
|
||||
add r0, r0, #0xc000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r0, #0xc68]
|
||||
#else
|
||||
ldrb r1, [r0, #0xd0c]
|
||||
#endif
|
||||
mov r0, r7
|
||||
cmp r1, #0xff
|
||||
beq _022EF994
|
||||
@@ -260,7 +281,11 @@ _022EFAD8:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_022EFAE0: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022EFAE4: .word 0x0002862C
|
||||
#else
|
||||
_022EFAE4: .word 0x000286D0
|
||||
#endif
|
||||
arm_func_end TryActivateIqBooster
|
||||
|
||||
arm_func_start ov29_022EFAE8
|
||||
@@ -978,7 +1003,11 @@ ov29_022F04F0: ; 0x022F04F0
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
strneb r0, [r5, #0xb3]
|
||||
#ifdef JAPAN
|
||||
strneb r0, [r4, #0x16d]
|
||||
#else
|
||||
strneb r0, [r4, #0x171]
|
||||
#endif
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end ov29_022F04F0
|
||||
|
||||
@@ -988,7 +1017,11 @@ ov29_022F0518: ; 0x022F0518
|
||||
mov r1, #0
|
||||
ldr ip, _022F0530 ; =sub_0201D198
|
||||
add r0, r0, #0x2c
|
||||
#ifdef JAPAN
|
||||
strb r1, [r2, #0x16d]
|
||||
#else
|
||||
strb r1, [r2, #0x171]
|
||||
#endif
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_022F0530: .word sub_0201D198
|
||||
@@ -1004,7 +1037,11 @@ _022F0544:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022F0590
|
||||
cmp r0, #0
|
||||
|
||||
@@ -94,7 +94,11 @@ _022F06A4:
|
||||
ldr r0, [r8]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sl, [r0, #0xa84]
|
||||
#else
|
||||
ldr sl, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, sl
|
||||
bl EntityIsValid__022F0590
|
||||
cmp r0, #0
|
||||
@@ -192,7 +196,11 @@ _022F07E8:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xad4]
|
||||
#else
|
||||
ldr r7, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022F0590
|
||||
cmp r0, #0
|
||||
@@ -448,9 +456,15 @@ ov29_022F0B10: ; 0x022F0B10
|
||||
mov r3, #0x400
|
||||
bl PreprocessString
|
||||
mov r1, #4
|
||||
#ifdef JAPAN
|
||||
mov r0, r4
|
||||
mov r2, r1
|
||||
rsb r3, r1, #0x430
|
||||
#else
|
||||
ldr r3, _022F0B88 ; =0x00000225
|
||||
mov r0, r4
|
||||
mov r2, r1
|
||||
#endif
|
||||
bl sub_02026268
|
||||
mov r0, r4
|
||||
mov r1, #0xa
|
||||
@@ -463,7 +477,9 @@ ov29_022F0B10: ; 0x022F0B10
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
_022F0B84: .word ov29_023526B8
|
||||
#ifndef JAPAN
|
||||
_022F0B88: .word 0x00000225
|
||||
#endif
|
||||
arm_func_end ov29_022F0B10
|
||||
|
||||
arm_func_start GetLeaderAction
|
||||
@@ -585,7 +601,11 @@ ov29_022F0C98: ; 0x022F0C98
|
||||
mov r0, #1
|
||||
strb r0, [r2]
|
||||
add r1, r1, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r0, [r1, #0x1a5]
|
||||
#else
|
||||
strb r0, [r1, #0x249]
|
||||
#endif
|
||||
bl ov29_0234B1A4
|
||||
mov r0, #1
|
||||
bl ov29_02338F58
|
||||
@@ -696,7 +716,11 @@ _022F0E64:
|
||||
ldr r1, [r1]
|
||||
mov r2, #0
|
||||
add r1, r1, #0x1a000
|
||||
#ifdef JAPAN
|
||||
strb r2, [r1, #0x1a5]
|
||||
#else
|
||||
strb r2, [r1, #0x249]
|
||||
#endif
|
||||
bl sub_0204AEB0
|
||||
ldr r0, _022F0ECC ; =ov29_0237CFBB
|
||||
mov r1, #1
|
||||
@@ -721,13 +745,24 @@ _022F0ED8: .word 0x00003F03
|
||||
|
||||
arm_func_start SetLeaderAction
|
||||
SetLeaderAction: ; 0x022F0EDC
|
||||
#ifdef JAPAN
|
||||
#define SET_LEADER_ACTION_OFFSET -4
|
||||
#define SET_LEADER_ACTION_DATA_OFFSET -0x2C1
|
||||
#else
|
||||
#define SET_LEADER_ACTION_OFFSET 0
|
||||
#define SET_LEADER_ACTION_DATA_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0xdc
|
||||
ldr r1, _022F1DDC ; =DUNGEON_PTR
|
||||
add r0, sp, #0xb6
|
||||
ldr r2, [r1]
|
||||
mov r1, #5
|
||||
#ifdef JAPAN
|
||||
add r2, r2, #0x178
|
||||
#else
|
||||
add r2, r2, #0x21c
|
||||
#endif
|
||||
add r5, r2, #0x1a000
|
||||
mov r2, #3
|
||||
str r2, [sp, #0x68]
|
||||
@@ -742,8 +777,10 @@ SetLeaderAction: ; 0x022F0EDC
|
||||
mov r1, #1
|
||||
mov r2, r1
|
||||
bl TryPointCameraToMonster
|
||||
#ifndef JAPAN
|
||||
bl GetLeader
|
||||
bl ov29_022FB538
|
||||
#endif
|
||||
bl GetLeader
|
||||
bl ov29_022FF3F4
|
||||
cmp r0, #0
|
||||
@@ -857,7 +894,11 @@ _022F10AC:
|
||||
sub r0, r0, #1
|
||||
str r0, [sp, #0x88]
|
||||
ldr r0, _022F1DE8 ; =0x00000BA3
|
||||
#ifdef JAPAN
|
||||
sub r0, r0, #3
|
||||
#else
|
||||
sub r0, r0, #2
|
||||
#endif
|
||||
str r0, [sp, #0x84]
|
||||
ldr r0, _022F1DE8 ; =0x00000BA3
|
||||
sub r0, r0, #5
|
||||
@@ -1028,11 +1069,11 @@ _022F1344:
|
||||
beq _022F13B0
|
||||
_022F1364:
|
||||
ldr r0, [sp, #0x8c]
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + SET_LEADER_ACTION_OFFSET]
|
||||
ldr r0, [sp, #0x70]
|
||||
strh r1, [r0]
|
||||
ldr r0, [sp, #0x8c]
|
||||
ldrh r1, [r0, #0x48]
|
||||
ldrh r1, [r0, #0x48 + SET_LEADER_ACTION_OFFSET]
|
||||
ldr r0, [sp, #0x70]
|
||||
strh r1, [r0, #2]
|
||||
ldr r0, [r0]
|
||||
@@ -1483,11 +1524,11 @@ _022F19DC:
|
||||
tst r0, #2
|
||||
beq _022F1A64
|
||||
ldr r0, [sp, #0x8c]
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + SET_LEADER_ACTION_OFFSET]
|
||||
ldr r0, [sp, #0x70]
|
||||
strh r1, [r0]
|
||||
ldr r0, [sp, #0x8c]
|
||||
ldrh r1, [r0, #0x48]
|
||||
ldrh r1, [r0, #0x48 + SET_LEADER_ACTION_OFFSET]
|
||||
ldr r0, [sp, #0x70]
|
||||
strh r1, [r0, #2]
|
||||
ldr r0, [r0]
|
||||
@@ -1529,14 +1570,14 @@ _022F1AA0:
|
||||
b _022F1AF4
|
||||
_022F1AC4:
|
||||
add r0, sb, r4, lsl #3
|
||||
ldrb r0, [r0, #0x124]
|
||||
ldrb r0, [r0, #0x124 + SET_LEADER_ACTION_OFFSET]
|
||||
tst r0, #1
|
||||
movne r0, r2
|
||||
moveq r0, r1
|
||||
tst r0, #0xff
|
||||
beq _022F1AF0
|
||||
add r0, sb, r4, lsl #3
|
||||
ldrb r0, [r0, #0x124]
|
||||
ldrb r0, [r0, #0x124 + SET_LEADER_ACTION_OFFSET]
|
||||
tst r0, #8
|
||||
bne _022F1AFC
|
||||
_022F1AF0:
|
||||
@@ -1561,13 +1602,13 @@ _022F1B20:
|
||||
b _022F1B5C
|
||||
_022F1B30:
|
||||
add r0, sb, r3, lsl #3
|
||||
ldrb r0, [r0, #0x124]
|
||||
ldrb r0, [r0, #0x124 + SET_LEADER_ACTION_OFFSET]
|
||||
tst r0, #1
|
||||
movne r0, r2
|
||||
moveq r0, r1
|
||||
tst r0, #0xff
|
||||
addne r0, sb, r3, lsl #3
|
||||
ldrneb r0, [r0, #0x12a]
|
||||
ldrneb r0, [r0, #0x12a + SET_LEADER_ACTION_OFFSET]
|
||||
cmpne r0, #0
|
||||
bne _022F1B64
|
||||
add r3, r3, #1
|
||||
@@ -1598,12 +1639,12 @@ _022F1BA8:
|
||||
cmp r7, r4
|
||||
beq _022F1BC0
|
||||
add r0, sb, r7, lsl #3
|
||||
ldrb r0, [r0, #0x124]
|
||||
ldrb r0, [r0, #0x124 + SET_LEADER_ACTION_OFFSET]
|
||||
tst r0, #2
|
||||
beq _022F1BE0
|
||||
_022F1BC0:
|
||||
add r0, sb, r7, lsl #3
|
||||
ldrb r0, [r0, #0x12a]
|
||||
ldrb r0, [r0, #0x12a + SET_LEADER_ACTION_OFFSET]
|
||||
cmp r0, #0
|
||||
movne r1, #1
|
||||
bne _022F1BE0
|
||||
@@ -1625,7 +1666,7 @@ _022F1C04:
|
||||
bl sub_0204AF20
|
||||
cmp r0, #0
|
||||
beq _022F1C28
|
||||
add r1, sb, #0x124
|
||||
add r1, sb, #0x124 + SET_LEADER_ACTION_OFFSET
|
||||
mov r0, r6
|
||||
add r1, r1, r7, lsl #3
|
||||
bl ov29_022F0C3C
|
||||
@@ -1753,12 +1794,12 @@ _022F1DB0:
|
||||
_022F1DDC: .word DUNGEON_PTR
|
||||
_022F1DE0: .word DIRECTIONS_XY
|
||||
_022F1DE4: .word ov29_0237C9A4
|
||||
_022F1DE8: .word 0x00000BA3
|
||||
_022F1DE8: .word 0x00000BA3 + SET_LEADER_ACTION_DATA_OFFSET
|
||||
_022F1DEC: .word ov29_0237C6A4
|
||||
_022F1DF0: .word ov29_0237C694
|
||||
_022F1DF4: .word 0x00000B9A
|
||||
_022F1DF8: .word 0x00000B9B
|
||||
_022F1DFC: .word 0x00000B9C
|
||||
_022F1DF4: .word 0x00000B9A + SET_LEADER_ACTION_DATA_OFFSET
|
||||
_022F1DF8: .word 0x00000B9B + SET_LEADER_ACTION_DATA_OFFSET
|
||||
_022F1DFC: .word 0x00000B9C + SET_LEADER_ACTION_DATA_OFFSET
|
||||
_022F1E00: .word 0x00000708
|
||||
_022F1E04:
|
||||
ldr r0, _022F1DF0 ; =ov29_0237C694
|
||||
@@ -2009,7 +2050,7 @@ _022F2180:
|
||||
ldr r0, _022F1DDC ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r0, [r0, #0x23e]
|
||||
ldrb r0, [r0, #0x23e + SET_LEADER_ACTION_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _022F21B4
|
||||
ldr r0, _022F1DF0 ; =ov29_0237C694
|
||||
@@ -2384,10 +2425,10 @@ _022F26B8:
|
||||
strh r1, [sl]
|
||||
ldr r1, [sp, #0x14]
|
||||
ldrsh r1, [r1, #4]
|
||||
strh r1, [r2, #0x7e]
|
||||
strh r1, [r2, #0x7e + SET_LEADER_ACTION_OFFSET]
|
||||
ldr r1, [sp, #0x14]
|
||||
ldrsh r1, [r1, #6]
|
||||
strh r1, [r2, #0x80]
|
||||
strh r1, [r2, #0x80 + SET_LEADER_ACTION_OFFSET]
|
||||
ldr r1, _022F1DDC ; =DUNGEON_PTR
|
||||
ldr r2, [r1]
|
||||
mov r1, r0
|
||||
@@ -2409,13 +2450,21 @@ _022F2748:
|
||||
andeq r8, r0, #0xff
|
||||
beq _022F27C8
|
||||
cmp r0, #5
|
||||
#ifdef JAPAN
|
||||
ldreq r0, [sp, #0x84]
|
||||
#else
|
||||
moveq r0, #0xba0
|
||||
#endif
|
||||
streq r0, [sp, #0x24]
|
||||
orreq r0, r8, #1
|
||||
andeq r8, r0, #0xff
|
||||
beq _022F27C8
|
||||
cmp r0, #3
|
||||
#ifdef JAPAN
|
||||
moveq r0, #0x8e0
|
||||
#else
|
||||
ldreq r0, [sp, #0x84]
|
||||
#endif
|
||||
streq r0, [sp, #0x24]
|
||||
orreq r0, r8, #1
|
||||
andeq r8, r0, #0xff
|
||||
@@ -2490,10 +2539,10 @@ _022F289C:
|
||||
cmpeq r0, #0
|
||||
beq _022F2904
|
||||
add r0, sb, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + SET_LEADER_ACTION_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + SET_LEADER_ACTION_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -2698,7 +2747,11 @@ ov29_022F2B74: ; 0x022F2B74
|
||||
ldr r8, _022F2FC0 ; =ov29_0237C9A4
|
||||
ldr r1, [r1]
|
||||
ldrb r2, [r8, #1]
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x178
|
||||
#else
|
||||
add r1, r1, #0x21c
|
||||
#endif
|
||||
str r0, [sp]
|
||||
cmp r2, #0
|
||||
add r5, r1, #0x1a000
|
||||
@@ -3207,7 +3260,11 @@ _022F32DC:
|
||||
ldreq r0, _022F35D4 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldreqb r0, [r0, #0x1a0]
|
||||
#else
|
||||
ldreqb r0, [r0, #0x244]
|
||||
#endif
|
||||
cmpeq r0, #0
|
||||
beq _022F3368
|
||||
mov r0, #0
|
||||
@@ -3226,7 +3283,11 @@ _022F3324:
|
||||
ldreq r0, _022F35D4 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldreqb r0, [r0, #0x1a0]
|
||||
#else
|
||||
ldreqb r0, [r0, #0x244]
|
||||
#endif
|
||||
cmpeq r0, #0
|
||||
movne r0, #0
|
||||
bne _022F35CC
|
||||
@@ -3767,12 +3828,17 @@ _022F3A6C:
|
||||
bl ov29_022F9EA0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define CHANGE_LEADER_OFFSET -0x2C1
|
||||
#else
|
||||
#define CHANGE_LEADER_OFFSET 0
|
||||
#endif
|
||||
_022F3AE4: .word DUNGEON_PTR
|
||||
_022F3AE8: .word 0x00000BA4
|
||||
_022F3AEC: .word 0x00000BA5
|
||||
_022F3AF0: .word 0x00000BA6
|
||||
_022F3AE8: .word 0x00000BA4 + CHANGE_LEADER_OFFSET
|
||||
_022F3AEC: .word 0x00000BA5 + CHANGE_LEADER_OFFSET
|
||||
_022F3AF0: .word 0x00000BA6 + CHANGE_LEADER_OFFSET
|
||||
_022F3AF4: .word LEADER_PTR
|
||||
_022F3AF8: .word 0x00000BA7
|
||||
_022F3AF8: .word 0x00000BA7 + CHANGE_LEADER_OFFSET
|
||||
arm_func_end ChangeLeader
|
||||
|
||||
arm_func_start ov29_022F3AFC
|
||||
@@ -4034,7 +4100,11 @@ _022F3E88:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022F3E90: .word ov29_0237C9A4
|
||||
#ifdef JAPAN
|
||||
_022F3E94: .word 0x000008E7
|
||||
#else
|
||||
_022F3E94: .word 0x00000BA8
|
||||
#endif
|
||||
_022F3E98: .word ov29_0237C6A4
|
||||
_022F3E9C: .word ov29_0237C694
|
||||
arm_func_end ov29_022F3B98
|
||||
@@ -4188,8 +4258,13 @@ _022F40A4:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_022F40AC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022F40B0: .word 0x0001A180
|
||||
_022F40B4: .word 0x0001A182
|
||||
#else
|
||||
_022F40B0: .word 0x0001A224
|
||||
_022F40B4: .word 0x0001A226
|
||||
#endif
|
||||
arm_func_end ov29_022F3EA0
|
||||
|
||||
arm_func_start ov29_022F40B8
|
||||
@@ -4326,7 +4401,11 @@ ov29_022F426C: ; 0x022F426C
|
||||
mov r4, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x19a]
|
||||
#else
|
||||
ldrb r0, [r0, #0x23e]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
@@ -4498,13 +4577,18 @@ _022F4494:
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F4370_OFFSET -0x2C1
|
||||
#else
|
||||
#define OV29_022F4370_OFFSET 0
|
||||
#endif
|
||||
_022F44D4: .word BAG_ITEMS_PTR_MIRROR
|
||||
_022F44D8: .word 0x00000BA9
|
||||
_022F44D8: .word 0x00000BA9 + OV29_022F4370_OFFSET
|
||||
_022F44DC: .word 0x00003F07
|
||||
_022F44E0: .word 0x00000BAA
|
||||
_022F44E4: .word 0x00000BAB
|
||||
_022F44E8: .word 0x00000BAC
|
||||
_022F44EC: .word 0x00000BAE
|
||||
_022F44E0: .word 0x00000BAA + OV29_022F4370_OFFSET
|
||||
_022F44E4: .word 0x00000BAB + OV29_022F4370_OFFSET
|
||||
_022F44E8: .word 0x00000BAC + OV29_022F4370_OFFSET
|
||||
_022F44EC: .word 0x00000BAE + OV29_022F4370_OFFSET
|
||||
arm_func_end ov29_022F4370
|
||||
|
||||
arm_func_start ov29_022F44F0
|
||||
@@ -4566,9 +4650,15 @@ _022F45B0:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022F45BC: .word BAG_ITEMS_PTR_MIRROR
|
||||
#ifdef JAPAN
|
||||
_022F45C0: .word 0x000008E8
|
||||
_022F45C4: .word 0x00003F07
|
||||
_022F45C8: .word 0x000008EC
|
||||
#else
|
||||
_022F45C0: .word 0x00000BA9
|
||||
_022F45C4: .word 0x00003F07
|
||||
_022F45C8: .word 0x00000BAD
|
||||
#endif
|
||||
arm_func_end ov29_022F44F0
|
||||
|
||||
arm_func_start ov29_022F45CC
|
||||
@@ -4608,8 +4698,13 @@ ov29_022F45CC: ; 0x022F45CC
|
||||
mov r1, r5
|
||||
mov r0, #1
|
||||
bl ov29_02344B44
|
||||
#ifdef JAPAN
|
||||
ldr r1, _022F5EB8 ; =0x000008EF
|
||||
mov r0, sl
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, #0xbb0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022F48B8
|
||||
_022F4668:
|
||||
@@ -4768,17 +4863,29 @@ _022F4878:
|
||||
ldr r1, [r1]
|
||||
mov r0, sl
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
_022F48B8:
|
||||
add sp, sp, #0x14
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_022F48C0: .word 0x00000BAF
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F45CC_OFFSET -0x2C1
|
||||
#else
|
||||
#define OV29_022F45CC_OFFSET 0
|
||||
#endif
|
||||
#ifdef JAPAN
|
||||
_022F5EB8: .word 0x000008EF
|
||||
#endif
|
||||
_022F48C0: .word 0x00000BAF + OV29_022F45CC_OFFSET
|
||||
_022F48C4: .word 0x00001317
|
||||
_022F48C8: .word 0x00000BB2
|
||||
_022F48CC: .word 0x00000BAE
|
||||
_022F48D0: .word 0x00000BB3
|
||||
_022F48C8: .word 0x00000BB2 + OV29_022F45CC_OFFSET
|
||||
_022F48CC: .word 0x00000BAE + OV29_022F45CC_OFFSET
|
||||
_022F48D0: .word 0x00000BB3 + OV29_022F45CC_OFFSET
|
||||
_022F48D4: .word DUNGEON_PTR
|
||||
arm_func_end ov29_022F45CC
|
||||
|
||||
@@ -4843,15 +4950,25 @@ _022F4928:
|
||||
ldr r1, [r1]
|
||||
mov r0, r6
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
_022F49C8:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022F49D0: .word 0x000008ED
|
||||
_022F49D4: .word 0x00001317
|
||||
_022F49D8: .word 0x000008F4
|
||||
#else
|
||||
_022F49D0: .word 0x00000BAE
|
||||
_022F49D4: .word 0x00001317
|
||||
_022F49D8: .word 0x00000BB5
|
||||
#endif
|
||||
_022F49DC: .word DUNGEON_PTR
|
||||
arm_func_end ov29_022F48D8
|
||||
|
||||
@@ -4955,11 +5072,19 @@ _022F4B24:
|
||||
strltb r0, [r6, #1]
|
||||
blt _022F4B70
|
||||
ldr r2, _022F4BD0 ; =DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
mov r2, #0x23c
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x3f4
|
||||
add r1, r1, #0x400
|
||||
mla r0, r2, r0, r1
|
||||
#else
|
||||
add r1, r0, r0, lsl #3
|
||||
ldr r0, [r2]
|
||||
add r0, r0, #0x3f4
|
||||
add r0, r0, #0x400
|
||||
add r0, r0, r1, lsl #6
|
||||
#endif
|
||||
bl AddHeldItemToBag
|
||||
_022F4B70:
|
||||
bl RemoveEmptyItemsInBagWrapper
|
||||
@@ -4980,17 +5105,28 @@ _022F4B70:
|
||||
ldr r1, [r1]
|
||||
mov r0, r7
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
_022F4BC0:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022F4BC8: .word 0x00001565
|
||||
#ifdef JAPAN
|
||||
_022F4BCC: .word 0x000008ED
|
||||
_022F4BD0: .word DUNGEON_PTR
|
||||
_022F4BD4: .word 0x00001317
|
||||
_022F4BD8: .word 0x000008F5
|
||||
#else
|
||||
_022F4BCC: .word 0x00000BAE
|
||||
_022F4BD0: .word DUNGEON_PTR
|
||||
_022F4BD4: .word 0x00001317
|
||||
_022F4BD8: .word 0x00000BB6
|
||||
#endif
|
||||
arm_func_end ov29_022F49E0
|
||||
|
||||
arm_func_start ov29_022F4BDC
|
||||
@@ -5000,7 +5136,11 @@ ov29_022F4BDC: ; 0x022F4BDC
|
||||
bl ov29_022EB568
|
||||
ldr r0, [r0, #0xb4]
|
||||
mov r1, #1
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0x108]
|
||||
#else
|
||||
strb r1, [r0, #0x109]
|
||||
#endif
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ov29_022F4BDC
|
||||
|
||||
@@ -5113,15 +5253,24 @@ _022F4D48:
|
||||
ldr r1, _022F4DA8 ; =DUNGEON_PTR
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022F4D94: .word 0x00000BB7
|
||||
_022F4D98: .word 0x00000BAE
|
||||
_022F4D9C: .word 0x00000BB8
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F4BF8_OFFSET -0x2C1
|
||||
#else
|
||||
#define OV29_022F4BF8_OFFSET 0
|
||||
#endif
|
||||
_022F4D94: .word 0x00000BB7 + OV29_022F4BF8_OFFSET
|
||||
_022F4D98: .word 0x00000BAE + OV29_022F4BF8_OFFSET
|
||||
_022F4D9C: .word 0x00000BB8 + OV29_022F4BF8_OFFSET
|
||||
_022F4DA0: .word 0x00001317
|
||||
_022F4DA4: .word 0x00000BB9
|
||||
_022F4DA4: .word 0x00000BB9 + OV29_022F4BF8_OFFSET
|
||||
_022F4DA8: .word DUNGEON_PTR
|
||||
arm_func_end ov29_022F4BF8
|
||||
|
||||
@@ -5179,8 +5328,13 @@ _022F4E48:
|
||||
mov r1, r7
|
||||
mov r0, #1
|
||||
bl ov29_02344B44
|
||||
#ifdef JAPAN
|
||||
mov r0, r8
|
||||
mov r1, #0x8f0
|
||||
#else
|
||||
ldr r1, _022F5044 ; =0x00000BB1
|
||||
mov r0, r8
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022F5034
|
||||
_022F4E84:
|
||||
@@ -5261,12 +5415,21 @@ _022F4F94:
|
||||
cmp r0, #0
|
||||
blt _022F4FD0
|
||||
ldr r1, _022F5050 ; =DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
mov r1, #0x23c
|
||||
ldr r3, [r2]
|
||||
ldrh r2, [sp]
|
||||
mla r1, r0, r1, r3
|
||||
add r0, r1, #0x800
|
||||
strh r2, [r0, #0x56]
|
||||
#else
|
||||
add r0, r0, r0, lsl #3
|
||||
ldr r2, [r1]
|
||||
ldrh r1, [sp]
|
||||
add r0, r2, r0, lsl #6
|
||||
add r0, r0, #0x800
|
||||
strh r1, [r0, #0x56]
|
||||
#endif
|
||||
ldrh r1, [sp, #2]
|
||||
strh r1, [r0, #0x58]
|
||||
ldrh r1, [sp, #4]
|
||||
@@ -5292,7 +5455,11 @@ _022F4FDC:
|
||||
mov r0, r8
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
add r0, sp, #0
|
||||
mov r1, r5
|
||||
@@ -5302,14 +5469,21 @@ _022F5034:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_022F503C: .word 0x00000BBA
|
||||
_022F5040: .word 0x00000BAE
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F4DAC_OFFSET -0x2C1
|
||||
#else
|
||||
#define OV29_022F4DAC_OFFSET 0
|
||||
#endif
|
||||
_022F503C: .word 0x00000BBA + OV29_022F4DAC_OFFSET
|
||||
_022F5040: .word 0x00000BAE + OV29_022F4DAC_OFFSET
|
||||
#ifndef JAPAN
|
||||
_022F5044: .word 0x00000BB1
|
||||
_022F5048: .word 0x00000BBB
|
||||
_022F504C: .word 0x00000BBC
|
||||
#endif
|
||||
_022F5048: .word 0x00000BBB + OV29_022F4DAC_OFFSET
|
||||
_022F504C: .word 0x00000BBC + OV29_022F4DAC_OFFSET
|
||||
_022F5050: .word DUNGEON_PTR
|
||||
_022F5054: .word 0x00001317
|
||||
_022F5058: .word 0x00000BBD
|
||||
_022F5058: .word 0x00000BBD + OV29_022F4DAC_OFFSET
|
||||
arm_func_end ov29_022F4DAC
|
||||
|
||||
arm_func_start ov29_022F505C
|
||||
@@ -5345,8 +5519,13 @@ ov29_022F505C: ; 0x022F505C
|
||||
mov r1, r6
|
||||
mov r0, #1
|
||||
bl ov29_02344B44
|
||||
#ifdef JAPAN
|
||||
mov r0, r7
|
||||
mov r1, #0x8f0
|
||||
#else
|
||||
ldr r1, _022F5274 ; =0x00000BB1
|
||||
mov r0, r7
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022F526C
|
||||
_022F50E8:
|
||||
@@ -5358,8 +5537,13 @@ _022F50E8:
|
||||
moveq r0, #0
|
||||
tst r0, #0xff
|
||||
beq _022F5118
|
||||
#ifdef JAPAN
|
||||
ldr r1, _022F686C ; =0x000008EF
|
||||
mov r0, r7
|
||||
#else
|
||||
mov r0, r7
|
||||
mov r1, #0xbb0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022F526C
|
||||
_022F5118:
|
||||
@@ -5447,7 +5631,11 @@ _022F522C:
|
||||
mov r0, r7
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
add r0, sp, #6
|
||||
mov r1, r4
|
||||
@@ -5457,10 +5645,19 @@ _022F526C:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F505C_OFFSET -0x2C1
|
||||
#else
|
||||
#define OV29_022F505C_OFFSET 0
|
||||
#endif
|
||||
#ifdef JAPAN
|
||||
_022F686C: .word 0x000008EF
|
||||
#else
|
||||
_022F5274: .word 0x00000BB1
|
||||
_022F5278: .word 0x00000BBB
|
||||
_022F527C: .word 0x00000BBC
|
||||
#endif
|
||||
_022F5278: .word 0x00000BBB + OV29_022F505C_OFFSET
|
||||
_022F527C: .word 0x00000BBC + OV29_022F505C_OFFSET
|
||||
_022F5280: .word 0x00001317
|
||||
_022F5284: .word 0x00000BBD
|
||||
_022F5284: .word 0x00000BBD + OV29_022F505C_OFFSET
|
||||
_022F5288: .word DUNGEON_PTR
|
||||
arm_func_end ov29_022F505C
|
||||
|
||||
@@ -29,7 +29,11 @@ UseSingleUseItemWrapper: ; 0x022F52CC
|
||||
ldr ip, _022F52F4 ; =UseSingleUseItem
|
||||
add r1, r1, r2, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r1, #0xa84]
|
||||
#else
|
||||
ldr r1, [r1, #0xb28]
|
||||
#endif
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_022F52F0: .word DUNGEON_PTR
|
||||
@@ -125,7 +129,11 @@ _022F5440:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sl, [r0, #0xa84]
|
||||
#else
|
||||
ldr sl, [r0, #0xb28]
|
||||
#endif
|
||||
cmp sl, r8
|
||||
beq _022F5484
|
||||
mov r0, sl
|
||||
@@ -150,7 +158,11 @@ _022F5498:
|
||||
mov r0, sb
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
_022F54B0:
|
||||
add sp, sp, #0x10
|
||||
@@ -351,7 +363,11 @@ _022F5744:
|
||||
cmp r6, #8
|
||||
blt _022F5744
|
||||
mov r0, #4
|
||||
#ifdef JAPAN
|
||||
strb r0, [r8, #0x175]
|
||||
#else
|
||||
strb r0, [r8, #0x179]
|
||||
#endif
|
||||
_022F577C:
|
||||
ldrsh r0, [sp, #0x10]
|
||||
bl GetItemCategoryVeneer
|
||||
@@ -378,8 +394,13 @@ _022F57A4:
|
||||
bl GetItemCategoryVeneer
|
||||
cmp r0, #0
|
||||
bne _022F57E8
|
||||
#ifdef JAPAN
|
||||
ldr r1, _022F6F84 ; =0x000008FF
|
||||
mov r0, sb
|
||||
#else
|
||||
mov r0, sb
|
||||
mov r1, #0xbc0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022F57F4
|
||||
_022F57E8:
|
||||
@@ -432,7 +453,11 @@ _022F5880:
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
bne _022F58A0
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x224
|
||||
#else
|
||||
add r0, r1, #0x228
|
||||
#endif
|
||||
mov r1, #0x24
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
_022F58A0:
|
||||
@@ -492,16 +517,28 @@ _022F5944:
|
||||
mov r0, sb
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl TryTriggerMonsterHouse
|
||||
_022F5978:
|
||||
add sp, sp, #0x14
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_022F5980: .word 0x00000BAE
|
||||
_022F5984: .word 0x00000BBE
|
||||
#ifdef JAPAN
|
||||
#define USE_THROWABLE_ITEM_OFFSET -0x2C1
|
||||
#else
|
||||
#define USE_THROWABLE_ITEM_OFFSET 0
|
||||
#endif
|
||||
_022F5980: .word 0x00000BAE + USE_THROWABLE_ITEM_OFFSET
|
||||
_022F5984: .word 0x00000BBE + USE_THROWABLE_ITEM_OFFSET
|
||||
_022F5988: .word 0x00000103
|
||||
_022F598C: .word 0x00000BBF
|
||||
#ifdef JAPAN
|
||||
_022F6F84: .word 0x000008FF
|
||||
#endif
|
||||
_022F598C: .word 0x00000BBF + USE_THROWABLE_ITEM_OFFSET
|
||||
_022F5990: .word DUNGEON_PTR
|
||||
arm_func_end UseThrowableItem
|
||||
|
||||
@@ -555,7 +592,11 @@ ov29_022F5A0C: ; 0x022F5A0C
|
||||
mov r2, #0
|
||||
add r1, r1, r3, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r1, #0xa84]
|
||||
#else
|
||||
ldr r1, [r1, #0xb28]
|
||||
#endif
|
||||
bl ov29_022F5A40
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -564,15 +605,29 @@ _022F5A3C: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022F5A40
|
||||
ov29_022F5A40: ; 0x022F5A40
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F5A40_OFFSET -4
|
||||
#else
|
||||
#define OV29_022F5A40_OFFSET 0
|
||||
#endif
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x18
|
||||
#endif
|
||||
sub sp, sp, #0x18 + OV29_022F5A40_OFFSET
|
||||
mov r6, r0
|
||||
movs sl, r1
|
||||
mov r5, r2
|
||||
ldr r8, [r6, #0xb4]
|
||||
bne _022F5A70
|
||||
#ifdef JAPAN
|
||||
mov r0, #0
|
||||
mov r1, #0x900
|
||||
#else
|
||||
ldr r1, _022F5D9C ; =0x00000BC1
|
||||
mov r0, #0
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage2
|
||||
b _022F5D94
|
||||
@@ -580,8 +635,13 @@ _022F5A70:
|
||||
bl ov29_023009CC
|
||||
cmp r0, #0
|
||||
bne _022F5A90
|
||||
#ifdef JAPAN
|
||||
mov r0, #0
|
||||
mov r1, #0x900
|
||||
#else
|
||||
ldr r1, _022F5D9C ; =0x00000BC1
|
||||
mov r0, #0
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage2
|
||||
b _022F5D94
|
||||
@@ -734,30 +794,48 @@ _022F5CA4:
|
||||
mov r0, sl
|
||||
mov r6, #0x14
|
||||
bl ov29_0231AE3C
|
||||
#ifdef JAPAN
|
||||
mov r7, r0
|
||||
#else
|
||||
str r0, [sp, #4]
|
||||
ldr r0, _022F5DB4 ; =0x000004D3
|
||||
sub fp, r0, #0x1b
|
||||
#endif
|
||||
_022F5CBC:
|
||||
mov r0, sb
|
||||
bl GetPersonalityIndex
|
||||
#ifdef JAPAN
|
||||
mov fp, r0
|
||||
ldr r0, _022F5DB4 ; =0x000004D3
|
||||
cmp fp, r0
|
||||
#else
|
||||
mov r7, r0
|
||||
cmp r7, fp
|
||||
ldrne r0, _022F5DB4 ; =0x000004D3
|
||||
cmpne r7, r0
|
||||
#endif
|
||||
moveq r2, #0
|
||||
beq _022F5CE8
|
||||
ldrb r0, [r8, #0x48]
|
||||
bl ov29_0234CFA0
|
||||
mov r2, r0
|
||||
_022F5CE8:
|
||||
#ifdef JAPAN
|
||||
mov r0, fp
|
||||
#else
|
||||
mov r0, r7
|
||||
#endif
|
||||
mov r1, r4
|
||||
bl GetTalkLine
|
||||
mov r1, r0
|
||||
mov r0, r5
|
||||
bl GetStringFromFileVeneer
|
||||
#ifdef JAPAN
|
||||
cmp r7, #0
|
||||
#else
|
||||
ldr r0, [sp, #4]
|
||||
cmp r0, #0
|
||||
#endif
|
||||
bne _022F5D3C
|
||||
ldr r1, _022F5DB8 ; =ov29_02352750
|
||||
mov r0, r5
|
||||
@@ -785,23 +863,40 @@ _022F5D5C:
|
||||
mov r2, #0
|
||||
_022F5D60:
|
||||
ldrsh r1, [sb, #4]
|
||||
add r0, sp, #8
|
||||
add r0, sp, #8 + OV29_022F5A40_OFFSET
|
||||
bl InitPortraitDungeon
|
||||
add r1, sp, #8
|
||||
add r1, sp, #8 + OV29_022F5A40_OFFSET
|
||||
mov r0, sl
|
||||
mov r2, r5
|
||||
mov r3, #1
|
||||
bl ov29_0234D304
|
||||
b _022F5D94
|
||||
_022F5D84:
|
||||
#ifdef JAPAN
|
||||
mov r0, #0
|
||||
mov r1, #0x900
|
||||
#else
|
||||
ldr r1, _022F5D9C ; =0x00000BC1
|
||||
mov r0, #0
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage2
|
||||
_022F5D94:
|
||||
add sp, sp, #0x18
|
||||
add sp, sp, #0x18 + OV29_022F5A40_OFFSET
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
#else
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
#endif
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022F5DA0: .word 0x00000901
|
||||
_022F5DA4: .word DUNGEON_PTR
|
||||
_022F5DA8: .word 0x00000902
|
||||
_022F5DAC: .word 0x000003E7
|
||||
_022F5DB0: .word 0x000004F8
|
||||
_022F5DB4: .word 0x000004B8
|
||||
#else
|
||||
_022F5D9C: .word 0x00000BC1
|
||||
_022F5DA0: .word 0x00000BC2
|
||||
_022F5DA4: .word DUNGEON_PTR
|
||||
@@ -809,6 +904,7 @@ _022F5DA8: .word 0x00000BC3
|
||||
_022F5DAC: .word 0x000003E7
|
||||
_022F5DB0: .word 0x0000025E
|
||||
_022F5DB4: .word 0x000004D3
|
||||
#endif
|
||||
_022F5DB8: .word ov29_02352750
|
||||
_022F5DBC: .word ov29_02352758
|
||||
arm_func_end ov29_022F5A40
|
||||
@@ -824,7 +920,11 @@ ov29_022F5DC0: ; 0x022F5DC0
|
||||
mov r2, #0
|
||||
add r1, r1, r3, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r1, #0xa84]
|
||||
#else
|
||||
ldr r1, [r1, #0xb28]
|
||||
#endif
|
||||
bl ov29_022F5DF4
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -872,10 +972,17 @@ _022F5E1C:
|
||||
addeq r5, r5, #1
|
||||
_022F5E84:
|
||||
mov r2, #1
|
||||
#ifdef JAPAN
|
||||
mov r0, #0
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
str r0, [sp]
|
||||
#else
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
mov r0, #0
|
||||
str r2, [sp]
|
||||
#endif
|
||||
bl YesNoMenu
|
||||
cmp r0, #1
|
||||
bne _022F5F04
|
||||
@@ -893,7 +1000,7 @@ _022F5E84:
|
||||
mov r1, #0x25c
|
||||
mov r2, #0
|
||||
bl HandleFaint
|
||||
#ifndef EUROPE
|
||||
#if !defined(EUROPE) && !defined(JAPAN)
|
||||
bl UpdateMapSurveyorFlag
|
||||
#endif
|
||||
bl ov29_022E8104
|
||||
@@ -909,13 +1016,24 @@ _022F5F04:
|
||||
add sp, sp, #0x44
|
||||
ldmia sp!, {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022F5F0C: .word 0x00000903
|
||||
_022F5F10: .word 0x00000904
|
||||
_022F5F14: .word 0x00000909
|
||||
#else
|
||||
_022F5F0C: .word 0x00000BC4
|
||||
_022F5F10: .word 0x00000BC5
|
||||
_022F5F14: .word 0x00000BCA
|
||||
#endif
|
||||
arm_func_end ov29_022F5DF4
|
||||
|
||||
arm_func_start ov29_022F5F18
|
||||
ov29_022F5F18: ; 0x022F5F18
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F5F18_OFFSET -4
|
||||
#else
|
||||
#define OV29_022F5F18_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #4
|
||||
mov sb, r0
|
||||
@@ -926,7 +1044,11 @@ ov29_022F5F18: ; 0x022F5F18
|
||||
ldr r0, _022F6050 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreMovesEnabled
|
||||
cmp r0, #0
|
||||
bne _022F5F60
|
||||
@@ -938,13 +1060,13 @@ _022F5F60:
|
||||
ldr r4, [sb, #0xb4]
|
||||
mov r1, r7
|
||||
mov r0, sb
|
||||
strb r1, [r4, #0x23f]
|
||||
strb r1, [r4, #0x23f + OV29_022F5F18_OFFSET]
|
||||
bl ShouldUsePp
|
||||
cmp r0, #0
|
||||
movne r7, #1
|
||||
strneb r7, [r4, #0x23f]
|
||||
strneb r7, [r4, #0x23f + OV29_022F5F18_OFFSET]
|
||||
mov r0, #0
|
||||
strb r0, [r4, #0x23e]
|
||||
strb r0, [r4, #0x23e + OV29_022F5F18_OFFSET]
|
||||
_022F5F88:
|
||||
mov r6, #0
|
||||
mov r4, #1
|
||||
@@ -961,9 +1083,9 @@ _022F5F9C:
|
||||
bl ov29_0232145C
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
ldreqb r0, [r8, #0x23e]
|
||||
ldreqb r0, [r8, #0x23e + OV29_022F5F18_OFFSET]
|
||||
cmpeq r0, #0
|
||||
ldreqb r0, [r8, #0x163]
|
||||
ldreqb r0, [r8, #0x163 + OV29_022F5F18_OFFSET]
|
||||
cmpeq r0, #0
|
||||
bne _022F5FEC
|
||||
add r6, r6, #1
|
||||
@@ -1004,11 +1126,20 @@ _022F6048:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_022F6050: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022F6054: .word 0x00000B3D
|
||||
#else
|
||||
_022F6054: .word 0x00000DFD
|
||||
#endif
|
||||
arm_func_end ov29_022F5F18
|
||||
|
||||
arm_func_start ov29_022F6058
|
||||
ov29_022F6058: ; 0x022F6058
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F6058_OFFSET -4
|
||||
#else
|
||||
#define OV29_022F6058_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x14
|
||||
mov sl, r0
|
||||
@@ -1047,7 +1178,7 @@ _022F60D8:
|
||||
cmp sb, #0x160
|
||||
moveq r8, #1
|
||||
movne r8, #0
|
||||
strb r6, [r7, #0x163]
|
||||
strb r6, [r7, #0x163 + OV29_022F6058_OFFSET]
|
||||
mov fp, r6
|
||||
mov r5, #0xa
|
||||
add r4, sp, #0xc
|
||||
@@ -1055,7 +1186,7 @@ _022F60D8:
|
||||
_022F60FC:
|
||||
mov r0, sl
|
||||
bl ov29_022F3B8C
|
||||
str fp, [r7, #0x18c]
|
||||
str fp, [r7, #0x18c + OV29_022F6058_OFFSET]
|
||||
ldrb r1, [sp, #0xc]
|
||||
strb r5, [sp, #0x12]
|
||||
mov r0, sl
|
||||
@@ -1071,7 +1202,7 @@ _022F60FC:
|
||||
bl EntityIsValid__022F528C
|
||||
cmp r0, #0
|
||||
beq _022F6168
|
||||
ldrb r0, [r7, #0x163]
|
||||
ldrb r0, [r7, #0x163 + OV29_022F6058_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _022F6168
|
||||
add r6, r6, #1
|
||||
@@ -1123,9 +1254,15 @@ _022F61F0:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022F61F8: .word ov29_0237CA80
|
||||
#ifdef JAPAN
|
||||
_022F61FC: .word 0x0000090B
|
||||
_022F6200: .word 0x0000090C
|
||||
_022F6204: .word 0x0000090D
|
||||
#else
|
||||
_022F61FC: .word 0x00000BCC
|
||||
_022F6200: .word 0x00000BCD
|
||||
_022F6204: .word 0x00000BCE
|
||||
#endif
|
||||
_022F6208: .word DIRECTIONS_XY
|
||||
_022F620C: .word ov29_0235171E
|
||||
arm_func_end ov29_022F6058
|
||||
@@ -1145,7 +1282,11 @@ _022F6234:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r5, [r0, #0xa94]
|
||||
#else
|
||||
ldr r5, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, r5
|
||||
bl EntityIsValid__022F62A8
|
||||
cmp r0, #0
|
||||
|
||||
@@ -58,7 +58,11 @@ _022F6388:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sb, [r0, #0xa94]
|
||||
#else
|
||||
ldr sb, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, sb
|
||||
bl EntityIsValid__022F62A8
|
||||
cmp r0, #0
|
||||
@@ -128,7 +132,11 @@ _022F648C:
|
||||
ldr r0, [sb]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sl, [r0, #0xa94]
|
||||
#else
|
||||
ldr sl, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, sl
|
||||
bl EntityIsValid__022F62A8
|
||||
cmp r0, #0
|
||||
@@ -299,9 +307,15 @@ _022F66F4:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022F66FC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022F6700: .word 0x00000B95
|
||||
_022F6704: .word ov29_02352760
|
||||
_022F6708: .word 0x00000B94
|
||||
#else
|
||||
_022F6700: .word 0x00000E53
|
||||
_022F6704: .word ov29_02352760
|
||||
_022F6708: .word 0x00000E52
|
||||
#endif
|
||||
arm_func_end ov29_022F62CC
|
||||
|
||||
arm_func_start ov29_022F670C
|
||||
@@ -355,19 +369,34 @@ _022F67AC:
|
||||
bl ov29_022F6CAC
|
||||
b _022F67C4
|
||||
_022F67B4:
|
||||
#ifdef JAPAN
|
||||
ldr r1, _022F7DB4 ; =0x00000B92
|
||||
add r0, sp, #0
|
||||
#else
|
||||
add r0, sp, #0
|
||||
mov r1, #0xe50
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage2
|
||||
_022F67C4:
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_022F67CC: .word 0x00000B93
|
||||
_022F7DB4: .word 0x00000B92
|
||||
#else
|
||||
_022F67CC: .word 0x00000E51
|
||||
#endif
|
||||
arm_func_end ov29_022F6748
|
||||
|
||||
arm_func_start ov29_022F67D0
|
||||
ov29_022F67D0: ; 0x022F67D0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F67D0_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022F67D0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x24
|
||||
ldr r1, _022F69EC ; =DUNGEON_PTR
|
||||
@@ -433,11 +462,11 @@ _022F6870:
|
||||
strh r3, [sp, #4]
|
||||
strh r2, [sp, #6]
|
||||
ldr sl, [r0, #0x7bc]
|
||||
ldr sb, [r1, #0xd14]
|
||||
ldr sb, [r1, #0xd14 + OV29_022F67D0_OFFSET]
|
||||
b _022F69A8
|
||||
_022F68D8:
|
||||
add r0, r0, #0xc000
|
||||
ldr r8, [r0, #0xd18]
|
||||
ldr r8, [r0, #0xd18 + OV29_022F67D0_OFFSET]
|
||||
mov r0, sb, lsl #0x10
|
||||
mov r7, r0, asr #0x10
|
||||
add r6, sp, #0xc
|
||||
@@ -487,13 +516,13 @@ _022F698C:
|
||||
_022F6990:
|
||||
ldr r0, [r4]
|
||||
add r1, r0, #0xc000
|
||||
ldr r1, [r1, #0xd20]
|
||||
ldr r1, [r1, #0xd20 + OV29_022F67D0_OFFSET]
|
||||
cmp r8, r1
|
||||
ble _022F68FC
|
||||
add sb, sb, #1
|
||||
_022F69A8:
|
||||
add r1, r0, #0xc000
|
||||
ldr r1, [r1, #0xd1c]
|
||||
ldr r1, [r1, #0xd1c + OV29_022F67D0_OFFSET]
|
||||
cmp sb, r1
|
||||
ble _022F68D8
|
||||
ldr r1, _022F69EC ; =DUNGEON_PTR
|
||||
@@ -511,14 +540,19 @@ _022F69E4:
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F67D0_DATA_OFFSET -0x2BE
|
||||
#else
|
||||
#define OV29_022F67D0_DATA_OFFSET 0
|
||||
#endif
|
||||
_022F69EC: .word DUNGEON_PTR
|
||||
_022F69F0: .word ov29_023535A8
|
||||
_022F69F4: .word ov10_022C4800
|
||||
_022F69F8: .word 0x00000E4F
|
||||
_022F69FC: .word 0x00000E4D
|
||||
_022F69F8: .word 0x00000E4F + OV29_022F67D0_DATA_OFFSET
|
||||
_022F69FC: .word 0x00000E4D + OV29_022F67D0_DATA_OFFSET
|
||||
_022F6A00: .word 0x00001308
|
||||
_022F6A04: .word ov29_02352760
|
||||
_022F6A08: .word 0x00000E4A
|
||||
_022F6A08: .word 0x00000E4A + OV29_022F67D0_DATA_OFFSET
|
||||
arm_func_end ov29_022F67D0
|
||||
|
||||
arm_func_start ov29_022F6A0C
|
||||
@@ -560,8 +594,13 @@ _022F6A80:
|
||||
beq _022F6AE0
|
||||
cmp r4, #0
|
||||
beq _022F6AAC
|
||||
#ifdef JAPAN
|
||||
add r0, sp, #4
|
||||
mov r1, #0xb90
|
||||
#else
|
||||
ldr r1, _022F6C94 ; =0x00000E4E
|
||||
add r0, sp, #4
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl DisplayMessage2
|
||||
_022F6AAC:
|
||||
@@ -662,7 +701,11 @@ _022F6C00:
|
||||
ldr r0, [r8]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022F62A8
|
||||
cmp r0, #0
|
||||
@@ -697,14 +740,21 @@ _022F6C84:
|
||||
add sp, sp, #0x14
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F6A0C_OFFSET -0x2BE
|
||||
#else
|
||||
#define OV29_022F6A0C_OFFSET 0
|
||||
#endif
|
||||
_022F6C8C: .word DUNGEON_PTR
|
||||
_022F6C90: .word ov10_022C473C
|
||||
#ifndef JAPAN
|
||||
_022F6C94: .word 0x00000E4E
|
||||
_022F6C98: .word 0x00000E4C
|
||||
_022F6C9C: .word 0x00000E4B
|
||||
#endif
|
||||
_022F6C98: .word 0x00000E4C + OV29_022F6A0C_OFFSET
|
||||
_022F6C9C: .word 0x00000E4B + OV29_022F6A0C_OFFSET
|
||||
_022F6CA0: .word 0x00001308
|
||||
_022F6CA4: .word BAG_ITEMS_PTR_MIRROR
|
||||
_022F6CA8: .word 0x00000E49
|
||||
_022F6CA8: .word 0x00000E49 + OV29_022F6A0C_OFFSET
|
||||
arm_func_end ov29_022F6A0C
|
||||
|
||||
arm_func_start ov29_022F6CAC
|
||||
@@ -773,7 +823,11 @@ _022F6D8C:
|
||||
ldr r0, [sb]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sl, [r0, #0xad4]
|
||||
#else
|
||||
ldr sl, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, sl
|
||||
bl EntityIsValid__022F62A8
|
||||
cmp r0, #0
|
||||
@@ -805,7 +859,11 @@ _022F6DDC:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_022F6E0C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022F6E10: .word 0x00000B96
|
||||
#else
|
||||
_022F6E10: .word 0x00000E54
|
||||
#endif
|
||||
_022F6E14: .word BAG_ITEMS_PTR_MIRROR
|
||||
arm_func_end ov29_022F6CAC
|
||||
|
||||
@@ -853,17 +911,23 @@ _022F6E84:
|
||||
ldr r0, _022F6EE8 ; =0x00000217
|
||||
bl GetSpriteFileSize
|
||||
cmp r4, r0
|
||||
#ifdef JAPAN
|
||||
ldmneia sp!, {r4, pc}
|
||||
#else
|
||||
bne _022F6EC0
|
||||
#endif
|
||||
mov r0, #0x218
|
||||
bl GetSpriteFileSize
|
||||
ldr r0, _022F6EEC ; =0x00000211
|
||||
bl GetSpriteFileSize
|
||||
#ifndef JAPAN
|
||||
_022F6EC0:
|
||||
ldr r0, _022F6EF0 ; =DUNGEON_PTR
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x3000
|
||||
str r1, [r0, #0xe1c]
|
||||
#endif
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022F6ED8: .word 0x0001A002
|
||||
@@ -872,7 +936,9 @@ _022F6EE0: .word ov29_0237C9B0
|
||||
_022F6EE4: .word 0x00000216
|
||||
_022F6EE8: .word 0x00000217
|
||||
_022F6EEC: .word 0x00000211
|
||||
#ifndef JAPAN
|
||||
_022F6EF0: .word DUNGEON_PTR
|
||||
#endif
|
||||
arm_func_end ov29_022F6E40
|
||||
|
||||
arm_func_start ov29_022F6EF4
|
||||
@@ -1051,10 +1117,17 @@ ov29_022F7104: ; 0x022F7104
|
||||
ldr r0, [r1]
|
||||
mov r2, #0xa
|
||||
add r0, r0, #0x3000
|
||||
#ifdef JAPAN
|
||||
str r3, [r0, #0xd88]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
str r2, [r0, #0xd8c]
|
||||
#else
|
||||
str r3, [r0, #0xe2c]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
str r2, [r0, #0xe30]
|
||||
#endif
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022F712C: .word DUNGEON_PTR
|
||||
@@ -1062,13 +1135,23 @@ _022F712C: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022F7130
|
||||
ov29_022F7130: ; 0x022F7130
|
||||
#ifdef JAPAN
|
||||
#define OV29_022F7130_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_022F7130_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr r0, _022F72F8 ; =DUNGEON_PTR
|
||||
mov r2, #0
|
||||
ldr r0, [r0]
|
||||
mov r3, r2
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x870
|
||||
add r4, r0, #0x19000
|
||||
#else
|
||||
add r0, r0, #0x114
|
||||
add r4, r0, #0x19800
|
||||
#endif
|
||||
ldr r0, _022F72FC ; =0x00000483
|
||||
_022F7150:
|
||||
mov r1, r2, lsl #1
|
||||
@@ -1081,14 +1164,18 @@ _022F7150:
|
||||
ldr r2, [r1]
|
||||
mov r1, #1
|
||||
add r2, r2, #0x2c000
|
||||
str r3, [r2, #0xb0c]
|
||||
str r3, [r2, #0xb0c + OV29_022F7130_OFFSET]
|
||||
bl LoadMonsterSprite
|
||||
mov r6, #0
|
||||
mov r5, #1
|
||||
ldr r4, _022F72F8 ; =DUNGEON_PTR
|
||||
b _022F71AC
|
||||
_022F7190:
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x124
|
||||
#else
|
||||
add r0, r1, #0x174
|
||||
#endif
|
||||
add r0, r0, #0x3800
|
||||
add r0, r0, r6, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
@@ -1098,7 +1185,7 @@ _022F7190:
|
||||
_022F71AC:
|
||||
ldr r1, [r4]
|
||||
add r0, r1, #0x3000
|
||||
ldr r0, [r0, #0xe20]
|
||||
ldr r0, [r0, #0xe20 + OV29_022F7130_OFFSET]
|
||||
cmp r6, r0
|
||||
blt _022F7190
|
||||
bl LoadMissionMonsterSprites
|
||||
@@ -1159,7 +1246,7 @@ _022F7278:
|
||||
ldr r0, _022F72F8 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrb r0, [r0, #0xda]
|
||||
ldrb r0, [r0, #0xda + OV29_022F7130_OFFSET]
|
||||
cmp r0, #0x6e
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r7, #0
|
||||
@@ -1202,7 +1289,11 @@ _022F7318:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xad4]
|
||||
#else
|
||||
ldr r7, [r0, #0xb78]
|
||||
#endif
|
||||
cmp r7, #0
|
||||
beq _022F7350
|
||||
mov r0, r7
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -65,8 +65,13 @@ _022FCA60:
|
||||
ldreq r0, [r0]
|
||||
ldrnesh r8, [r4, #6]
|
||||
addeq r0, r0, #0xcc00
|
||||
#ifdef JAPAN
|
||||
ldreqsh sb, [r0, #0x3c]
|
||||
ldreqsh r8, [r0, #0x3e]
|
||||
#else
|
||||
ldreqsh sb, [r0, #0xe0]
|
||||
ldreqsh r8, [r0, #0xe2]
|
||||
#endif
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
bl GetTile
|
||||
@@ -244,7 +249,11 @@ _022FCD14:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xa84]
|
||||
#else
|
||||
ldr r6, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__022FC99C
|
||||
cmp r0, #0
|
||||
@@ -329,7 +338,11 @@ _022FCE34:
|
||||
ldr r1, [r0]
|
||||
mov r0, #0x38
|
||||
add r1, r1, #0x3000
|
||||
#ifdef JAPAN
|
||||
strb r2, [r1, #0xd95]
|
||||
#else
|
||||
strb r2, [r1, #0xe39]
|
||||
#endif
|
||||
bl DungeonRandInt
|
||||
mov r6, r0
|
||||
mov r0, #0x20
|
||||
@@ -431,8 +444,13 @@ _022FCFB4:
|
||||
add r0, sp, #0
|
||||
ldr r1, [r1]
|
||||
mov r2, #0
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x3c
|
||||
add r1, r1, #0xcc00
|
||||
#else
|
||||
add r1, r1, #0xce0
|
||||
add r1, r1, #0xc000
|
||||
#endif
|
||||
bl FindFarthestUnoccupiedTileWithin2
|
||||
cmp r0, #0
|
||||
ldrnesh r1, [sp]
|
||||
@@ -446,8 +464,13 @@ _022FCFEC:
|
||||
add r0, sp, #0
|
||||
ldr r1, [r1]
|
||||
mov r2, #0
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x3c
|
||||
add r1, r1, #0xcc00
|
||||
#else
|
||||
add r1, r1, #0xce0
|
||||
add r1, r1, #0xc000
|
||||
#endif
|
||||
bl FindClosestUnoccupiedTileWithin2
|
||||
cmp r0, #0
|
||||
ldrnesh r1, [sp]
|
||||
@@ -488,6 +511,11 @@ _022FD080: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start SpawnMonster
|
||||
SpawnMonster: ; 0x022FD084
|
||||
#ifdef JAPAN
|
||||
#define SPAWN_MONSTER_OFFSET -0xA4
|
||||
#else
|
||||
#define SPAWN_MONSTER_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #8
|
||||
mov r7, r0
|
||||
@@ -549,7 +577,7 @@ _022FD154:
|
||||
bhi _022FD194
|
||||
add r0, r5, #0xe
|
||||
str r0, [sp]
|
||||
add r0, r5, #0x124
|
||||
add r0, r5, #0x124 + SPAWN_MONSTER_OFFSET
|
||||
add r1, r5, #0x12
|
||||
add r2, r5, #0x1a
|
||||
add r3, r5, #0x1c
|
||||
@@ -560,7 +588,7 @@ _022FD154:
|
||||
b _022FD1F0
|
||||
_022FD194:
|
||||
ldrsh r2, [r5, #2]
|
||||
add r0, r5, #0x124
|
||||
add r0, r5, #0x124 + SPAWN_MONSTER_OFFSET
|
||||
add r1, r5, #0x12
|
||||
str r2, [sp]
|
||||
ldrb ip, [r5, #0xa]
|
||||
@@ -630,7 +658,7 @@ _022FD278:
|
||||
strh r1, [r5, #0x10]
|
||||
ldr r1, [r7, #4]
|
||||
mov r0, r4
|
||||
str r1, [r5, #0x120]
|
||||
str r1, [r5, #0x120 + SPAWN_MONSTER_OFFSET]
|
||||
mov r1, #1
|
||||
bl ov29_022FB83C
|
||||
ldrb r0, [r7, #2]
|
||||
@@ -660,7 +688,11 @@ _022FD2F8:
|
||||
.align 2, 0
|
||||
_022FD300: .word ov29_0237C690
|
||||
_022FD304: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022FD308: .word 0x0002CA64
|
||||
#else
|
||||
_022FD308: .word 0x0002CB08
|
||||
#endif
|
||||
_022FD30C: .word ov10_022C45A4
|
||||
_022FD310: .word 0x000003E7
|
||||
_022FD314: .word ov10_022C489C
|
||||
@@ -713,6 +745,11 @@ _022FD3AC:
|
||||
|
||||
arm_func_start InitTeamMember
|
||||
InitTeamMember: ; 0x022FD3B4
|
||||
#ifdef JAPAN
|
||||
#define INIT_TEAM_MEMBER_OFFSET -4
|
||||
#else
|
||||
#define INIT_TEAM_MEMBER_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #0x14
|
||||
mov r5, r3
|
||||
@@ -737,8 +774,13 @@ InitTeamMember: ; 0x022FD3B4
|
||||
cmp r0, #0
|
||||
ldrne r0, _022FD780 ; =DUNGEON_PTR
|
||||
ldrne r0, [r0]
|
||||
#ifdef JAPAN
|
||||
addne r0, r0, #0x3d00
|
||||
ldrnesh r7, [r0, #0x96]
|
||||
#else
|
||||
addne r0, r0, #0x3e00
|
||||
ldrnesh r7, [r0, #0x3a]
|
||||
#endif
|
||||
moveq r7, r1
|
||||
_022FD420:
|
||||
ldrb r0, [sp, #0x48]
|
||||
@@ -816,7 +858,7 @@ _022FD520:
|
||||
strb r0, [r1, #0x1c]
|
||||
blt _022FD520
|
||||
add r3, r5, #0x1c
|
||||
add r2, r8, #0x124
|
||||
add r2, r8, #0x124 + INIT_TEAM_MEMBER_OFFSET
|
||||
mov r1, #0x11
|
||||
_022FD550:
|
||||
ldrh r0, [r3], #2
|
||||
@@ -824,7 +866,7 @@ _022FD550:
|
||||
strh r0, [r2], #2
|
||||
bne _022FD550
|
||||
mov r2, #0
|
||||
add r1, r8, #0x124
|
||||
add r1, r8, #0x124 + INIT_TEAM_MEMBER_OFFSET
|
||||
mov sb, r2
|
||||
mov sl, #1
|
||||
_022FD570:
|
||||
@@ -842,13 +884,13 @@ _022FD570:
|
||||
strneb r3, [r1, r0]
|
||||
cmp r2, #4
|
||||
blt _022FD570
|
||||
ldrb r1, [r8, #0x144]
|
||||
ldrb r1, [r8, #0x144 + INIT_TEAM_MEMBER_OFFSET]
|
||||
add r0, r5, #0x4c
|
||||
add sb, r8, #0x90
|
||||
bic r2, r1, #0x10
|
||||
and r1, r2, #0xff
|
||||
bic r1, r1, #0x20
|
||||
strb r1, [r8, #0x144]
|
||||
strb r1, [r8, #0x144 + INIT_TEAM_MEMBER_OFFSET]
|
||||
ldrb r1, [r5, #2]
|
||||
add r3, r8, #0x100
|
||||
mov r6, #0
|
||||
@@ -869,13 +911,13 @@ _022FD570:
|
||||
ldrb r1, [r5, #4]
|
||||
strb r1, [r8, #0x49]
|
||||
ldrh r1, [r5, #0x44]
|
||||
strh r1, [r3, #0x46]
|
||||
strh r1, [r3, #0x46 + INIT_TEAM_MEMBER_OFFSET]
|
||||
ldrh r1, [r5, #0x46]
|
||||
strh r1, [r3, #0x48]
|
||||
strh r1, [r3, #0x48 + INIT_TEAM_MEMBER_OFFSET]
|
||||
ldrh r1, [r5, #0x48]
|
||||
strh r1, [r3, #0x4a]
|
||||
strh r1, [r3, #0x4a + INIT_TEAM_MEMBER_OFFSET]
|
||||
ldrh r1, [r5, #0x4a]
|
||||
strh r1, [r3, #0x4c]
|
||||
strh r1, [r3, #0x4c + INIT_TEAM_MEMBER_OFFSET]
|
||||
ldrsh r1, [r5, #0xa]
|
||||
strh r1, [r8, #0xc]
|
||||
ldrh r1, [r5, #0x3e]
|
||||
@@ -885,9 +927,11 @@ _022FD570:
|
||||
ldrh r1, [r5, #0x42]
|
||||
strh r1, [r8, #0x66]
|
||||
strb r6, [r8, #0xfc]
|
||||
#ifndef JAPAN
|
||||
strb r6, [r8, #0x103]
|
||||
strb r6, [r8, #0x23c]
|
||||
strb r6, [r8, #0x23d]
|
||||
#endif
|
||||
strb r6, [r8, #0x23c + INIT_TEAM_MEMBER_OFFSET]
|
||||
strb r6, [r8, #0x23d + INIT_TEAM_MEMBER_OFFSET]
|
||||
strh r6, [r8, #0x68]
|
||||
bl ov29_023021F0
|
||||
ldrb r1, [sp, #0x44]
|
||||
@@ -915,7 +959,7 @@ _022FD570:
|
||||
cmp r1, #0
|
||||
movne r0, #0
|
||||
bne _022FD6D8
|
||||
add r0, r2, #0x228
|
||||
add r0, r2, #0x228 + INIT_TEAM_MEMBER_OFFSET
|
||||
mov r1, #0x61
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
_022FD6D8:
|
||||
@@ -977,6 +1021,11 @@ _022FD79C: .word ov10_022C4858
|
||||
|
||||
arm_func_start ov29_022FD7A0
|
||||
ov29_022FD7A0: ; 0x022FD7A0
|
||||
#ifdef JAPAN
|
||||
#define OV29_022FD7A0_OFFSET -4
|
||||
#else
|
||||
#define OV29_022FD7A0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
sub sp, sp, #0x20
|
||||
mov r7, r0
|
||||
@@ -1054,10 +1103,10 @@ _022FD864:
|
||||
strh r0, [r7, #0xac]
|
||||
ldr r1, [sp, #0xc]
|
||||
ldr r0, [r7, #0xb4]
|
||||
strb r1, [r0, #0x17a]
|
||||
strb r1, [r0, #0x17a + OV29_022FD7A0_OFFSET]
|
||||
ldr r1, [sp, #8]
|
||||
ldr r0, [r7, #0xb4]
|
||||
strb r1, [r0, #0x17b]
|
||||
strb r1, [r0, #0x17b + OV29_022FD7A0_OFFSET]
|
||||
ldrb r0, [r5, #6]
|
||||
cmp r0, #0
|
||||
beq _022FD904
|
||||
@@ -1098,7 +1147,7 @@ _022FD94C:
|
||||
mov r3, #0
|
||||
bl InitMonster
|
||||
ldrsh r2, [r5, #2]
|
||||
add r0, r5, #0x124
|
||||
add r0, r5, #0x124 + OV29_022FD7A0_OFFSET
|
||||
add r1, r5, #0x12
|
||||
str r2, [sp]
|
||||
ldrb r4, [r5, #0xa]
|
||||
@@ -1127,6 +1176,15 @@ _022FD9D0: .word 0x000003E7
|
||||
|
||||
arm_func_start InitMonster
|
||||
InitMonster: ; 0x022FD9D4
|
||||
#ifdef JAPAN
|
||||
#define INIT_MONSTER_OFFSET -0xA4
|
||||
#define INIT_MONSTER_OFFSET_2 -4
|
||||
#define INIT_MONSTER_OFFSET_3 -1
|
||||
#else
|
||||
#define INIT_MONSTER_OFFSET 0
|
||||
#define INIT_MONSTER_OFFSET_2 0
|
||||
#define INIT_MONSTER_OFFSET_3 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr r4, _022FDDB0 ; =DUNGEON_PTR
|
||||
@@ -1173,7 +1231,7 @@ InitMonster: ; 0x022FD9D4
|
||||
cmp r0, #0
|
||||
bne _022FDAAC
|
||||
add r0, r1, #0x4000
|
||||
ldrb r0, [r0, #0xc6]
|
||||
ldrb r0, [r0, #0xc6 + INIT_MONSTER_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _022FDAAC
|
||||
ldrb r0, [r6, #2]
|
||||
@@ -1192,19 +1250,19 @@ _022FDAB4:
|
||||
moveq r1, #1
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x3000
|
||||
streqb r1, [r0, #0xe39]
|
||||
streqb r1, [r0, #0xe39 + INIT_MONSTER_OFFSET]
|
||||
_022FDAD4:
|
||||
ldr r1, _022FDDB0 ; =DUNGEON_PTR
|
||||
mov r2, #0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
ldr r0, [r0, #0xe2c]
|
||||
ldr r0, [r0, #0xe2c + INIT_MONSTER_OFFSET]
|
||||
str r0, [r4, #0xb0]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x3000
|
||||
ldr r1, [r0, #0xe2c]
|
||||
ldr r1, [r0, #0xe2c + INIT_MONSTER_OFFSET]
|
||||
add r1, r1, #1
|
||||
str r1, [r0, #0xe2c]
|
||||
str r1, [r0, #0xe2c + INIT_MONSTER_OFFSET]
|
||||
str r2, [r4, #0xb4]
|
||||
ldrsh r0, [r6, #8]
|
||||
cmp r0, #0
|
||||
@@ -1215,7 +1273,7 @@ _022FDB18:
|
||||
strb r0, [r4, #0xa]
|
||||
ldr r0, [r6, #4]
|
||||
mov r2, #1
|
||||
str r0, [r4, #0x120]
|
||||
str r0, [r4, #0x120 + INIT_MONSTER_OFFSET_2]
|
||||
strh r2, [r4, #0xe]
|
||||
ldrsh r1, [r4, #2]
|
||||
add r0, r4, #0x90
|
||||
@@ -1233,9 +1291,9 @@ _022FDB18:
|
||||
ldrh r0, [sp, #4]
|
||||
add r1, r4, #0x100
|
||||
ldrh r2, [sp, #6]
|
||||
strh r0, [r1, #0x46]
|
||||
strh r0, [r1, #0x46 + INIT_MONSTER_OFFSET_2]
|
||||
mov r0, #0x64
|
||||
strh r2, [r1, #0x48]
|
||||
strh r2, [r1, #0x48 + INIT_MONSTER_OFFSET_2]
|
||||
bl sub_02050FF8
|
||||
strh r0, [sp]
|
||||
mov r0, r0, lsr #0x10
|
||||
@@ -1243,22 +1301,22 @@ _022FDB18:
|
||||
ldrh r2, [sp]
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [sp, #2]
|
||||
strh r2, [r0, #0x4a]
|
||||
strh r2, [r0, #0x4a + INIT_MONSTER_OFFSET_2]
|
||||
cmp r5, #0
|
||||
strh r1, [r0, #0x4c]
|
||||
strh r1, [r0, #0x4c + INIT_MONSTER_OFFSET_2]
|
||||
ldrneh r1, [r5]
|
||||
strneh r1, [r0, #0x7e]
|
||||
strneh r1, [r0, #0x7e + INIT_MONSTER_OFFSET_2]
|
||||
ldrneh r1, [r5, #2]
|
||||
moveq r1, #0
|
||||
streqh r1, [r0, #0x7e]
|
||||
strh r1, [r0, #0x80]
|
||||
streqh r1, [r0, #0x7e + INIT_MONSTER_OFFSET_2]
|
||||
strh r1, [r0, #0x80 + INIT_MONSTER_OFFSET_2]
|
||||
mov r3, #0
|
||||
strh r3, [r4]
|
||||
strb r3, [r4, #0x14e]
|
||||
strb r3, [r4, #0x14f]
|
||||
strb r3, [r4, #0x14e + INIT_MONSTER_OFFSET_2]
|
||||
strb r3, [r4, #0x14f + INIT_MONSTER_OFFSET_2]
|
||||
add r0, r4, #0x200
|
||||
strh r3, [r0, #0xc]
|
||||
strh r3, [r0, #0xe]
|
||||
strh r3, [r0, #0xc + INIT_MONSTER_OFFSET_2]
|
||||
strh r3, [r0, #0xe + INIT_MONSTER_OFFSET_2]
|
||||
strb r3, [r4, #0x7c]
|
||||
ldrh r2, [r7, #4]
|
||||
mov r0, r4
|
||||
@@ -1269,67 +1327,67 @@ _022FDB18:
|
||||
str r3, [r4, #0x84]
|
||||
str r3, [r4, #0x88]
|
||||
strh r3, [r4, #0x80]
|
||||
strb r3, [r4, #0x10b]
|
||||
str r3, [r4, #0x188]
|
||||
strb r3, [r4, #0x10c]
|
||||
strb r3, [r4, #0x23c]
|
||||
strb r3, [r4, #0x23d]
|
||||
strb r3, [r4, #0x23f]
|
||||
strb r3, [r4, #0x10b + INIT_MONSTER_OFFSET_3]
|
||||
str r3, [r4, #0x188 + INIT_MONSTER_OFFSET_2]
|
||||
strb r3, [r4, #0x10c + INIT_MONSTER_OFFSET_3]
|
||||
strb r3, [r4, #0x23c + INIT_MONSTER_OFFSET_2]
|
||||
strb r3, [r4, #0x23d + INIT_MONSTER_OFFSET_2]
|
||||
strb r3, [r4, #0x23f + INIT_MONSTER_OFFSET_2]
|
||||
bl SubInitMonster
|
||||
add r0, r4, #0x62
|
||||
bl ItemZInit
|
||||
mov r2, #0
|
||||
strh r2, [r4, #0x68]
|
||||
str r2, [r4, #0x218]
|
||||
str r2, [r4, #0x21c]
|
||||
str r2, [r4, #0x218 + INIT_MONSTER_OFFSET_2]
|
||||
str r2, [r4, #0x21c + INIT_MONSTER_OFFSET_2]
|
||||
mov r0, #0xff
|
||||
strb r0, [r4, #0x177]
|
||||
strb r0, [r4, #0x178]
|
||||
str r2, [r4, #0x214]
|
||||
strb r2, [r4, #0x151]
|
||||
strb r2, [r4, #0x150]
|
||||
strb r2, [r4, #0x179]
|
||||
strb r0, [r4, #0x177 + INIT_MONSTER_OFFSET_2]
|
||||
strb r0, [r4, #0x178 + INIT_MONSTER_OFFSET_2]
|
||||
str r2, [r4, #0x214 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x151 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x150 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x179 + INIT_MONSTER_OFFSET_2]
|
||||
add r0, r4, #0x200
|
||||
strh r2, [r0, #0x10]
|
||||
strh r2, [r0, #0x12]
|
||||
strb r2, [r4, #0x152]
|
||||
strb r2, [r4, #0x153]
|
||||
strh r2, [r0, #0x10 + INIT_MONSTER_OFFSET_2]
|
||||
strh r2, [r0, #0x12 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x152 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x153 + INIT_MONSTER_OFFSET_2]
|
||||
add r0, r4, #0x100
|
||||
strh r2, [r0, #0x92]
|
||||
str r2, [r4, #0x18c]
|
||||
strb r2, [r4, #0x105]
|
||||
strb r2, [r4, #0x104]
|
||||
strb r2, [r4, #0x109]
|
||||
strb r2, [r4, #0x155]
|
||||
strh r2, [r0, #0x92 + INIT_MONSTER_OFFSET_2]
|
||||
str r2, [r4, #0x18c + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x105 + INIT_MONSTER_OFFSET_3]
|
||||
strb r2, [r4, #0x104 + INIT_MONSTER_OFFSET_3]
|
||||
strb r2, [r4, #0x109 + INIT_MONSTER_OFFSET_3]
|
||||
strb r2, [r4, #0x155 + INIT_MONSTER_OFFSET_2]
|
||||
mov r1, #1
|
||||
strb r1, [r4, #0x156]
|
||||
strh r2, [r0, #0x58]
|
||||
strh r2, [r0, #0x5a]
|
||||
strb r2, [r4, #0x15c]
|
||||
strb r2, [r4, #0x15d]
|
||||
strb r2, [r4, #0x15e]
|
||||
strb r2, [r4, #0x15f]
|
||||
strb r2, [r4, #0x17c]
|
||||
strb r2, [r4, #0x106]
|
||||
strb r2, [r4, #0x107]
|
||||
strb r1, [r4, #0x156 + INIT_MONSTER_OFFSET_2]
|
||||
strh r2, [r0, #0x58 + INIT_MONSTER_OFFSET_2]
|
||||
strh r2, [r0, #0x5a + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x15c + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x15d + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x15e + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x15f + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x17c + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x106 + INIT_MONSTER_OFFSET_3]
|
||||
strb r2, [r4, #0x107 + INIT_MONSTER_OFFSET_3]
|
||||
mov r0, #0x63
|
||||
strb r0, [r4, #0x10a]
|
||||
strb r2, [r4, #0x162]
|
||||
strb r2, [r4, #0x163]
|
||||
strb r2, [r4, #0x164]
|
||||
strb r2, [r4, #0x165]
|
||||
strb r2, [r4, #0x170]
|
||||
strb r0, [r4, #0x10a + INIT_MONSTER_OFFSET_3]
|
||||
strb r2, [r4, #0x162 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x163 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x164 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x165 + INIT_MONSTER_OFFSET_2]
|
||||
strb r2, [r4, #0x170 + INIT_MONSTER_OFFSET_2]
|
||||
mov r0, r7
|
||||
strb r2, [r4, #0x171]
|
||||
strb r2, [r4, #0x171 + INIT_MONSTER_OFFSET_2]
|
||||
bl CalcSpeedStageWrapper
|
||||
mov r0, #1
|
||||
strb r0, [r4, #0x160]
|
||||
strb r0, [r4, #0x160 + INIT_MONSTER_OFFSET_2]
|
||||
mov r0, #0
|
||||
strb r0, [r4, #0x172]
|
||||
strb r0, [r4, #0x174]
|
||||
strb r0, [r4, #0x173]
|
||||
strb r0, [r4, #0x175]
|
||||
strb r0, [r4, #0x176]
|
||||
strb r0, [r4, #0x172 + INIT_MONSTER_OFFSET_2]
|
||||
strb r0, [r4, #0x174 + INIT_MONSTER_OFFSET_2]
|
||||
strb r0, [r4, #0x173 + INIT_MONSTER_OFFSET_2]
|
||||
strb r0, [r4, #0x175 + INIT_MONSTER_OFFSET_2]
|
||||
strb r0, [r4, #0x176 + INIT_MONSTER_OFFSET_2]
|
||||
ldrsh r1, [r4, #4]
|
||||
cmp r1, #0x32
|
||||
ldrne r0, _022FDDB8 ; =0x0000028A
|
||||
@@ -1338,7 +1396,7 @@ _022FDB18:
|
||||
addne r0, r0, #1
|
||||
cmpne r1, r0
|
||||
moveq r0, #0
|
||||
streqb r0, [r4, #0x160]
|
||||
streqb r0, [r4, #0x160 + INIT_MONSTER_OFFSET_2]
|
||||
ldr r1, _022FDDBC ; =ov29_0235276C
|
||||
ldr r0, _022FDDB0 ; =DUNGEON_PTR
|
||||
ldrh r3, [r1]
|
||||
@@ -1352,7 +1410,7 @@ _022FDB18:
|
||||
strh r1, [sp, #8]
|
||||
ldrsh r1, [r7, #6]
|
||||
strh r1, [sp, #0xa]
|
||||
ldrb r3, [r0, #0x23c]
|
||||
ldrb r3, [r0, #0x23c + INIT_MONSTER_OFFSET]
|
||||
ldrsh r1, [r4, #4]
|
||||
ldr r0, [r4, #0xb0]
|
||||
bl ov29_022DDA54
|
||||
@@ -1364,17 +1422,17 @@ _022FDB18:
|
||||
bl ov29_022FA1D8
|
||||
mov r1, #0
|
||||
strh r1, [r4, #0xac]
|
||||
str r1, [r4, #0x18c]
|
||||
str r1, [r4, #0x18c + INIT_MONSTER_OFFSET_2]
|
||||
add r0, r4, #0x100
|
||||
strh r1, [r0, #0x90]
|
||||
strb r1, [r4, #0x166]
|
||||
strb r1, [r4, #0x167]
|
||||
strb r1, [r4, #0x221]
|
||||
strh r1, [r0, #0x68]
|
||||
strh r1, [r0, #0x90 + INIT_MONSTER_OFFSET_2]
|
||||
strb r1, [r4, #0x166 + INIT_MONSTER_OFFSET_2]
|
||||
strb r1, [r4, #0x167 + INIT_MONSTER_OFFSET_2]
|
||||
strb r1, [r4, #0x221 + INIT_MONSTER_OFFSET_2]
|
||||
strh r1, [r0, #0x68 + INIT_MONSTER_OFFSET_2]
|
||||
mov r2, #0xff
|
||||
add r0, r4, #0x224
|
||||
add r0, r4, #0x224 + INIT_MONSTER_OFFSET_2
|
||||
mov r1, #0x18
|
||||
strb r2, [r4, #0x16a]
|
||||
strb r2, [r4, #0x16a + INIT_MONSTER_OFFSET_2]
|
||||
bl MemZero
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
@@ -1387,6 +1445,11 @@ _022FDDBC: .word ov29_0235276C
|
||||
|
||||
arm_func_start SubInitMonster
|
||||
SubInitMonster: ; 0x022FDDC0
|
||||
#ifdef JAPAN
|
||||
#define SUB_INIT_MONSTER_OFFSET -4
|
||||
#else
|
||||
#define SUB_INIT_MONSTER_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, r0
|
||||
mov r2, #0
|
||||
@@ -1429,15 +1492,15 @@ SubInitMonster: ; 0x022FDDC0
|
||||
strb r2, [sl, #0xfa]
|
||||
strb r2, [sl, #0xfb]
|
||||
mov r0, #0xff
|
||||
strb r0, [sl, #0x177]
|
||||
strb r0, [sl, #0x177 + SUB_INIT_MONSTER_OFFSET]
|
||||
mov sb, r1
|
||||
strb r0, [sl, #0x178]
|
||||
strb r0, [sl, #0x178 + SUB_INIT_MONSTER_OFFSET]
|
||||
mov r6, r2
|
||||
_022FDE78:
|
||||
add r0, sl, r2
|
||||
strb r6, [r0, #0x114]
|
||||
strb r6, [r0, #0x114 + SUB_INIT_MONSTER_OFFSET]
|
||||
add r2, r2, #1
|
||||
strb r6, [r0, #0x119]
|
||||
strb r6, [r0, #0x119 + SUB_INIT_MONSTER_OFFSET]
|
||||
cmp r2, #5
|
||||
blt _022FDE78
|
||||
mov r8, r6
|
||||
@@ -1499,17 +1562,28 @@ _022FDF48:
|
||||
mov r1, #1
|
||||
strb r1, [r0, #0xe]
|
||||
strh r2, [sl, #0x30]
|
||||
strb r2, [sl, #0x11e]
|
||||
strb r2, [sl, #0x11e + SUB_INIT_MONSTER_OFFSET]
|
||||
#ifdef JAPAN
|
||||
strb r2, [sl, #0x105]
|
||||
strb r2, [sl, #0x11b]
|
||||
strb r2, [sl, #0xfd]
|
||||
strb r2, [sl, #0x107]
|
||||
#else
|
||||
strb r2, [sl, #0x106]
|
||||
strb r2, [sl, #0x11f]
|
||||
strb r2, [sl, #0xfd]
|
||||
strb r2, [sl, #0x108]
|
||||
#endif
|
||||
strb r2, [sl, #0xfe]
|
||||
strb r2, [sl, #0xff]
|
||||
strb r2, [sl, #0x100]
|
||||
#ifdef JAPAN
|
||||
strb r2, [sl, #0x10a]
|
||||
#else
|
||||
mov r0, sl
|
||||
strb r2, [sl, #0x10b]
|
||||
bl ov29_02307DC0
|
||||
#endif
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022FDF9C: .word CASTFORM_WEATHER_ATTRIBUTE_TABLE
|
||||
@@ -1518,6 +1592,11 @@ _022FDFA0: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022FDFA4
|
||||
ov29_022FDFA4: ; 0x022FDFA4
|
||||
#ifdef JAPAN
|
||||
#define OV29_022FDFA4_OFFSET -4
|
||||
#else
|
||||
#define OV29_022FDFA4_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
mov r7, #0
|
||||
mov r4, r7
|
||||
@@ -1528,7 +1607,11 @@ _022FDFB8:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r8, [r0, #0xa84]
|
||||
#else
|
||||
ldr r8, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl EntityIsValid__022FC99C
|
||||
cmp r0, #0
|
||||
@@ -1540,17 +1623,17 @@ _022FDFB8:
|
||||
mov r8, r6
|
||||
_022FDFF0:
|
||||
add r0, r1, r8, lsl #3
|
||||
ldrb r0, [r0, #0x124]
|
||||
ldrb r0, [r0, #0x124 + OV29_022FDFA4_OFFSET]
|
||||
tst r0, #1
|
||||
movne r0, r5
|
||||
moveq r0, r4
|
||||
tst r0, #0xff
|
||||
addne r0, r1, r8, lsl #3
|
||||
addne r0, r0, #0x100
|
||||
ldrneh r2, [r0, #0x26]
|
||||
ldrneh r2, [r0, #0x26 + OV29_022FDFA4_OFFSET]
|
||||
add r8, r8, #1
|
||||
bicne r2, r2, #1
|
||||
strneh r2, [r0, #0x26]
|
||||
strneh r2, [r0, #0x26 + OV29_022FDFA4_OFFSET]
|
||||
cmp r8, #4
|
||||
blt _022FDFF0
|
||||
mov r0, r3, lsl #0x10
|
||||
@@ -1567,6 +1650,11 @@ _022FE044: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_022FE048
|
||||
ov29_022FE048: ; 0x022FE048
|
||||
#ifdef JAPAN
|
||||
#define OV29_022FE048_OFFSET -4
|
||||
#else
|
||||
#define OV29_022FE048_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r4, r1
|
||||
bl GetActiveTeamMember
|
||||
@@ -1607,7 +1695,7 @@ _022FE074:
|
||||
ldrls r0, _022FE18C ; =0x000003D3
|
||||
strlsh r0, [r3, #0xc]
|
||||
_022FE0E0:
|
||||
add r5, r4, #0x124
|
||||
add r5, r4, #0x124 + OV29_022FE048_OFFSET
|
||||
add r2, r3, #0x1c
|
||||
mov r1, #0x11
|
||||
_022FE0EC:
|
||||
@@ -1631,13 +1719,13 @@ _022FE0EC:
|
||||
strh r0, [r3, #0x5a]
|
||||
ldrh r0, [r4, #0x46]
|
||||
strh r0, [r3, #0x5c]
|
||||
ldrh r0, [ip, #0x46]
|
||||
ldrh r0, [ip, #0x46 + OV29_022FE048_OFFSET]
|
||||
strh r0, [r3, #0x44]
|
||||
ldrh r0, [ip, #0x48]
|
||||
ldrh r0, [ip, #0x48 + OV29_022FE048_OFFSET]
|
||||
strh r0, [r3, #0x46]
|
||||
ldrh r0, [ip, #0x4a]
|
||||
ldrh r0, [ip, #0x4a + OV29_022FE048_OFFSET]
|
||||
strh r0, [r3, #0x48]
|
||||
ldrh r0, [ip, #0x4c]
|
||||
ldrh r0, [ip, #0x4c + OV29_022FE048_OFFSET]
|
||||
strh r0, [r3, #0x4a]
|
||||
ldrh r0, [r4, #0x62]
|
||||
strh r0, [r3, #0x3e]
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
|
||||
arm_func_start ExecuteMonsterAction
|
||||
ExecuteMonsterAction: ; 0x022FE4BC
|
||||
#ifdef JAPAN
|
||||
#define EXECUTE_MONSTER_ACTION_OFFSET -4
|
||||
#else
|
||||
#define EXECUTE_MONSTER_ACTION_OFFSET 0
|
||||
#endif
|
||||
#ifdef EUROPE
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #4
|
||||
@@ -642,12 +647,18 @@ _022FF7B4:
|
||||
mov sb, r0
|
||||
mov r0, #1
|
||||
bl AnimationDelayOrSomething
|
||||
#ifndef JAPAN
|
||||
bl ov29_022FBD08
|
||||
#endif
|
||||
mov r0, #1
|
||||
bl ov29_0234B024
|
||||
ldr r6, [sb, #0xb4]
|
||||
mov r1, #0
|
||||
#ifdef JAPAN
|
||||
strb r1, [r6, #0x108]
|
||||
#else
|
||||
strb r1, [r6, #0x109]
|
||||
#endif
|
||||
ldr r0, _022FED70 ; =DUNGEON_PTR
|
||||
strb r1, [r6, #0xfc]
|
||||
ldr r1, [r0]
|
||||
@@ -685,7 +696,7 @@ _022FE538:
|
||||
bl ov29_02318D58
|
||||
_022FE568:
|
||||
mov r4, #0
|
||||
add r3, r6, #0x124
|
||||
add r3, r6, #0x124 + EXECUTE_MONSTER_ACTION_OFFSET
|
||||
mov r1, r4
|
||||
mov r2, #1
|
||||
_022FE578:
|
||||
@@ -732,7 +743,7 @@ _022FE608:
|
||||
mov r0, #0xa
|
||||
bl ov29_0234BA54
|
||||
_022FE61C:
|
||||
ldrb r0, [r6, #0x23c]
|
||||
ldrb r0, [r6, #0x23c + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _022FE630
|
||||
mov r0, sb
|
||||
@@ -742,7 +753,7 @@ _022FE630:
|
||||
bl AdvanceFrame
|
||||
_022FE638:
|
||||
mov r0, #0
|
||||
strb r0, [r6, #0x23c]
|
||||
strb r0, [r6, #0x23c + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
ldrh r0, [r6, #0x4a]
|
||||
mov r4, #0
|
||||
ldr r1, _022FED80 ; =ov29_0237CA6C
|
||||
@@ -751,13 +762,15 @@ _022FE638:
|
||||
cmpne r0, #4
|
||||
cmpne r0, #2
|
||||
movne r0, #1
|
||||
strneb r0, [r6, #0x152]
|
||||
strb r4, [r6, #0x154]
|
||||
strneb r0, [r6, #0x152 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
strb r4, [r6, #0x154 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
ldr r0, _022FED84 ; =ov29_0237CA68
|
||||
strb r4, [r1]
|
||||
strb r4, [r0]
|
||||
#ifndef JAPAN
|
||||
mov r1, #1
|
||||
strb r1, [r6, #0x103]
|
||||
#endif
|
||||
ldrh r0, [r6, #0x4a]
|
||||
cmp r0, #0x42
|
||||
addls pc, pc, r0, lsl #2
|
||||
@@ -843,7 +856,7 @@ _022FE7B8:
|
||||
mov r0, #0
|
||||
strh r0, [r6, #0x4a]
|
||||
mov r0, #1
|
||||
strb r0, [r6, #0x151]
|
||||
strb r0, [r6, #0x151 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
ldrb r0, [r6, #7]
|
||||
cmp r0, #0
|
||||
beq _022FEBB4
|
||||
@@ -894,7 +907,7 @@ _022FE870:
|
||||
mov r0, #0
|
||||
strh r0, [r6, #0x4a]
|
||||
mov r0, #1
|
||||
strb r0, [r6, #0x151]
|
||||
strb r0, [r6, #0x151 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
ldrb r0, [r6, #7]
|
||||
cmp r0, #0
|
||||
beq _022FEBB4
|
||||
@@ -1007,10 +1020,20 @@ _022FEA14:
|
||||
bl ov29_0231A9F8
|
||||
b _022FEBB4
|
||||
_022FEA20:
|
||||
#ifdef JAPAN
|
||||
mov r0, #1
|
||||
strh r0, [r6, #0x4a]
|
||||
#else
|
||||
strh r1, [r6, #0x4a]
|
||||
#endif
|
||||
b _022FEBB4
|
||||
_022FEA28:
|
||||
#ifdef JAPAN
|
||||
mov r0, #1
|
||||
strh r0, [r6, #0x4a]
|
||||
#else
|
||||
strh r1, [r6, #0x4a]
|
||||
#endif
|
||||
b _022FEBB4
|
||||
_022FEA30:
|
||||
mov r0, sb
|
||||
@@ -1034,10 +1057,16 @@ _022FEA60:
|
||||
b _022FEBB4
|
||||
_022FEA6C:
|
||||
mov r0, sb
|
||||
#ifdef JAPAN
|
||||
mov r1, #1
|
||||
#endif
|
||||
bl ov29_022F4370
|
||||
b _022FEBB4
|
||||
_022FEA78:
|
||||
mov r0, sb
|
||||
#ifdef JAPAN
|
||||
mov r1, #1
|
||||
#endif
|
||||
bl ov29_022F44F0
|
||||
b _022FEBB4
|
||||
_022FEA84:
|
||||
@@ -1046,7 +1075,11 @@ _022FEA84:
|
||||
ldr r2, [r0]
|
||||
add r0, r2, r1, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r0, [r0, #0xa84]
|
||||
#else
|
||||
ldr r0, [r0, #0xb28]
|
||||
#endif
|
||||
str r0, [r2, #0xc8]
|
||||
b _022FEBB4
|
||||
_022FEAA4:
|
||||
@@ -1077,7 +1110,11 @@ _022FEAEC:
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r0, sb
|
||||
#ifdef JAPAN
|
||||
mov r1, #0xb30
|
||||
#else
|
||||
mov r1, #0xdf0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _022FEBB4
|
||||
_022FEB0C:
|
||||
@@ -1094,8 +1131,13 @@ _022FEB24:
|
||||
bl ov29_022F6058
|
||||
b _022FEBB4
|
||||
_022FEB34:
|
||||
#ifdef JAPAN
|
||||
ldr r1, _0230017C ; =0x00000163
|
||||
mov r0, sb
|
||||
#else
|
||||
mov r0, sb
|
||||
rsb r1, r1, #0x164
|
||||
#endif
|
||||
bl ov29_022F6058
|
||||
b _022FEBB4
|
||||
_022FEB44:
|
||||
@@ -1142,12 +1184,12 @@ _022FEBB4:
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldr r2, [sb, #0xb4]
|
||||
ldrb r0, [r2, #0x154]
|
||||
ldrb r0, [r2, #0x154 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _022FEBF0
|
||||
mov r1, #0
|
||||
mov r0, sb
|
||||
strb r1, [r2, #0x154]
|
||||
strb r1, [r2, #0x154 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
bl ov29_02318D58
|
||||
_022FEBF0:
|
||||
mov r0, #0
|
||||
@@ -1158,14 +1200,14 @@ _022FEBF0:
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
bl ov29_022EF9BC
|
||||
ldrb r0, [r6, #0x155]
|
||||
ldrb r0, [r6, #0x155 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _022FEC88
|
||||
mov ip, #0
|
||||
mov r5, #1
|
||||
mov r8, ip
|
||||
strb ip, [r6, #0x155]
|
||||
add r7, r6, #0x124
|
||||
strb ip, [r6, #0x155 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
add r7, r6, #0x124 + EXECUTE_MONSTER_ACTION_OFFSET
|
||||
mov r3, ip
|
||||
mov r1, ip
|
||||
mov r0, r5
|
||||
@@ -1220,7 +1262,7 @@ _022FECD8:
|
||||
cmp r0, #0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldrb r0, [r6, #0x14e]
|
||||
ldrb r0, [r6, #0x14e + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
cmp r0, #0
|
||||
cmpeq r4, #0
|
||||
bne _022FED68
|
||||
@@ -1229,7 +1271,7 @@ _022FECD8:
|
||||
bl CannotStandOnTile
|
||||
cmp r0, #0
|
||||
beq _022FED58
|
||||
ldr r0, [r6, #0x110]
|
||||
ldr r0, [r6, #0x110 + EXECUTE_MONSTER_ACTION_OFFSET]
|
||||
cmp r0, #1
|
||||
ble _022FED50
|
||||
mov r0, #0
|
||||
@@ -1265,6 +1307,12 @@ _022FED80: .word ov29_0237CA6C
|
||||
_022FED84: .word ov29_0237CA68
|
||||
_022FED88: .word DIRECTIONS_XY
|
||||
_022FED8C: .word ov29_0235171E
|
||||
#ifdef JAPAN
|
||||
_0230017C: .word 0x00000163
|
||||
_022FED90: .word 0x00000B31
|
||||
_022FED94: .word 0x00000B32
|
||||
#else
|
||||
_022FED90: .word 0x00000DF1
|
||||
_022FED94: .word 0x00000DF2
|
||||
#endif
|
||||
arm_func_end ExecuteMonsterAction
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
|
||||
arm_func_start ov29_022FEDBC
|
||||
ov29_022FEDBC: ; 0x022FEDBC
|
||||
#ifdef JAPAN
|
||||
#define OV29_022FEDBC_OFFSET -4
|
||||
#else
|
||||
#define OV29_022FEDBC_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r4, #0
|
||||
@@ -14,12 +19,16 @@ _022FEDC8:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xad4]
|
||||
#else
|
||||
ldr r7, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022FED98
|
||||
cmp r0, #0
|
||||
ldrne r8, [r7, #0xb4]
|
||||
ldrneb r5, [r8, #0x177]
|
||||
ldrneb r5, [r8, #0x177 + OV29_022FEDBC_OFFSET]
|
||||
cmpne r5, #0xff
|
||||
beq _022FEFA4
|
||||
mov r0, r7
|
||||
@@ -27,24 +36,24 @@ _022FEDC8:
|
||||
bl ov29_02300DCC
|
||||
cmp r0, #0
|
||||
movne r0, #0xff
|
||||
strneb r0, [r8, #0x177]
|
||||
strneb r0, [r8, #0x177 + OV29_022FEDBC_OFFSET]
|
||||
bne _022FEFA4
|
||||
mov r0, r7
|
||||
bl IsMonsterSleeping
|
||||
cmp r0, #0
|
||||
moveq r0, #0xff
|
||||
streqb r0, [r8, #0x177]
|
||||
streqb r0, [r8, #0x177 + OV29_022FEDBC_OFFSET]
|
||||
beq _022FEFA4
|
||||
ldrb r0, [r8, #0xf3]
|
||||
cmp r0, #1
|
||||
moveq r0, #0xff
|
||||
streqb r0, [r8, #0x177]
|
||||
streqb r0, [r8, #0x177 + OV29_022FEDBC_OFFSET]
|
||||
beq _022FEFA4
|
||||
mov r0, #4
|
||||
bl DungeonRandInt
|
||||
ldr fp, _022FEFBC ; =0x0000020D
|
||||
mov sb, r6
|
||||
add lr, r8, #0x124
|
||||
add lr, r8, #0x124 + OV29_022FEDBC_OFFSET
|
||||
sub r1, fp, #0xc6
|
||||
b _022FEF80
|
||||
_022FEE60:
|
||||
@@ -68,7 +77,7 @@ _022FEE84:
|
||||
cmpne r2, fp
|
||||
beq _022FEF70
|
||||
mov sb, #0
|
||||
add r6, r8, #0x124
|
||||
add r6, r8, #0x124 + OV29_022FEDBC_OFFSET
|
||||
mov fp, #1
|
||||
b _022FEF20
|
||||
_022FEEB8:
|
||||
@@ -132,7 +141,7 @@ _022FEF80:
|
||||
blt _022FEE60
|
||||
_022FEF88:
|
||||
mov r0, #0xff
|
||||
strb r0, [r8, #0x177]
|
||||
strb r0, [r8, #0x177 + OV29_022FEDBC_OFFSET]
|
||||
cmp r6, #0
|
||||
beq _022FEFA4
|
||||
ldr r1, _022FEFC4 ; =0x00001204
|
||||
@@ -147,12 +156,21 @@ _022FEFA4:
|
||||
.align 2, 0
|
||||
_022FEFB8: .word DUNGEON_PTR
|
||||
_022FEFBC: .word 0x0000020D
|
||||
#ifdef JAPAN
|
||||
_022FEFC0: .word 0x00000B33
|
||||
#else
|
||||
_022FEFC0: .word 0x00000DF3
|
||||
#endif
|
||||
_022FEFC4: .word 0x00001204
|
||||
arm_func_end ov29_022FEDBC
|
||||
|
||||
arm_func_start ov29_022FEFC8
|
||||
ov29_022FEFC8: ; 0x022FEFC8
|
||||
#ifdef JAPAN
|
||||
#define OV29_022FEFC8_OFFSET -4
|
||||
#else
|
||||
#define OV29_022FEFC8_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r5, #0
|
||||
@@ -161,12 +179,16 @@ _022FEFD4:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r8, [r0, #0xad4]
|
||||
#else
|
||||
ldr r8, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl EntityIsValid__022FED98
|
||||
cmp r0, #0
|
||||
ldrne sl, [r8, #0xb4]
|
||||
ldrneb r7, [sl, #0x178]
|
||||
ldrneb r7, [sl, #0x178 + OV29_022FEFC8_OFFSET]
|
||||
cmpne r7, #0xff
|
||||
beq _022FF14C
|
||||
mov r0, r8
|
||||
@@ -174,24 +196,24 @@ _022FEFD4:
|
||||
bl ov29_02300DCC
|
||||
cmp r0, #0
|
||||
movne r0, #0xff
|
||||
strneb r0, [sl, #0x178]
|
||||
strneb r0, [sl, #0x177]
|
||||
strneb r0, [sl, #0x178 + OV29_022FEFC8_OFFSET]
|
||||
strneb r0, [sl, #0x177 + OV29_022FEFC8_OFFSET]
|
||||
bne _022FF14C
|
||||
mov r0, r8
|
||||
bl IsMonsterSleeping
|
||||
cmp r0, #0
|
||||
moveq r0, #0xff
|
||||
streqb r0, [sl, #0x178]
|
||||
streqb r0, [sl, #0x177]
|
||||
streqb r0, [sl, #0x178 + OV29_022FEFC8_OFFSET]
|
||||
streqb r0, [sl, #0x177 + OV29_022FEFC8_OFFSET]
|
||||
beq _022FF14C
|
||||
ldrb r0, [sl, #0xf3]
|
||||
cmp r0, #1
|
||||
moveq r0, #0xff
|
||||
streqb r0, [sl, #0x178]
|
||||
streqb r0, [sl, #0x177]
|
||||
streqb r0, [sl, #0x178 + OV29_022FEFC8_OFFSET]
|
||||
streqb r0, [sl, #0x177 + OV29_022FEFC8_OFFSET]
|
||||
beq _022FF14C
|
||||
mov r6, #0
|
||||
add r4, sl, #0x124
|
||||
add r4, sl, #0x124 + OV29_022FEFC8_OFFSET
|
||||
mov fp, #1
|
||||
b _022FF0F8
|
||||
_022FF068:
|
||||
@@ -255,8 +277,8 @@ _022FF100:
|
||||
mov r3, #1
|
||||
bl ov29_02322374
|
||||
mov r0, #0xff
|
||||
strb r0, [sl, #0x178]
|
||||
strb r0, [sl, #0x177]
|
||||
strb r0, [sl, #0x178 + OV29_022FEFC8_OFFSET]
|
||||
strb r0, [sl, #0x177 + OV29_022FEFC8_OFFSET]
|
||||
_022FF14C:
|
||||
add r5, r5, #1
|
||||
cmp r5, #0x14
|
||||
@@ -265,7 +287,11 @@ _022FF14C:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_022FF160: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_022FF164: .word 0x00000B34
|
||||
#else
|
||||
_022FF164: .word 0x00000DF4
|
||||
#endif
|
||||
arm_func_end ov29_022FEFC8
|
||||
|
||||
arm_func_start TryActivateFlashFireOnAllMonsters
|
||||
@@ -278,17 +304,29 @@ _022FF178:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xad4]
|
||||
#else
|
||||
ldr r7, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__022FED98
|
||||
cmp r0, #0
|
||||
ldrne r2, [r7, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrneb r0, [r2, #0x158]
|
||||
#else
|
||||
ldrneb r0, [r2, #0x15c]
|
||||
#endif
|
||||
cmpne r0, #0
|
||||
beq _022FF1B4
|
||||
mov r0, r7
|
||||
mov r1, r7
|
||||
#ifdef JAPAN
|
||||
strb r6, [r2, #0x158]
|
||||
#else
|
||||
strb r6, [r2, #0x15c]
|
||||
#endif
|
||||
bl ActivateFlashFire
|
||||
_022FF1B4:
|
||||
add r4, r4, #1
|
||||
@@ -393,10 +431,17 @@ _022FF2DC:
|
||||
ldrsh r2, [r5, #4]
|
||||
add r1, r4, #0x100
|
||||
mov r0, #1
|
||||
#ifdef JAPAN
|
||||
strh r2, [r1, #0x7a]
|
||||
ldrsh r2, [r5, #6]
|
||||
sub r2, r2, #1
|
||||
strh r2, [r1, #0x7c]
|
||||
#else
|
||||
strh r2, [r1, #0x7e]
|
||||
ldrsh r2, [r5, #6]
|
||||
sub r2, r2, #1
|
||||
strh r2, [r1, #0x80]
|
||||
#endif
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_022FF320:
|
||||
ldrb r0, [r4, #9]
|
||||
@@ -451,12 +496,17 @@ _022FF3AC:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022FF3DC: .word 0x00000C28
|
||||
_022FF3E0: .word 0x00000C29
|
||||
_022FF3E4: .word 0x00000C2A
|
||||
_022FF3E8: .word 0x00000C2B
|
||||
_022FF3EC: .word 0x00000C2C
|
||||
_022FF3F0: .word 0x00000C2D
|
||||
#ifdef JAPAN
|
||||
#define HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET -0x2C1
|
||||
#else
|
||||
#define HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET 0
|
||||
#endif
|
||||
_022FF3DC: .word 0x00000C28 + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET
|
||||
_022FF3E0: .word 0x00000C29 + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET
|
||||
_022FF3E4: .word 0x00000C2A + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET
|
||||
_022FF3E8: .word 0x00000C2B + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET
|
||||
_022FF3EC: .word 0x00000C2C + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET
|
||||
_022FF3F0: .word 0x00000C2D + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET
|
||||
arm_func_end HasStatusThatPreventsActing
|
||||
|
||||
arm_func_start ov29_022FF3F4
|
||||
@@ -568,7 +618,11 @@ _022FF53C:
|
||||
b _022FF5FC
|
||||
_022FF564:
|
||||
mov r5, #0
|
||||
#ifdef JAPAN
|
||||
add r4, r6, #0x120
|
||||
#else
|
||||
add r4, r6, #0x124
|
||||
#endif
|
||||
mov r8, r5
|
||||
mov sb, #1
|
||||
b _022FF5F4
|
||||
@@ -591,7 +645,11 @@ _022FF578:
|
||||
b _022FF5CC
|
||||
_022FF5B8:
|
||||
add r0, r6, r5, lsl #3
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x120]
|
||||
#else
|
||||
ldrb r0, [r0, #0x124]
|
||||
#endif
|
||||
tst r0, #2
|
||||
beq _022FF5D4
|
||||
sub r5, r5, #1
|
||||
@@ -618,14 +676,19 @@ _022FF604:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_022FF60C: .word 0x00000C2E
|
||||
_022FF610: .word 0x00000C28
|
||||
_022FF614: .word 0x00000C29
|
||||
_022FF618: .word 0x00000C2A
|
||||
_022FF61C: .word 0x00000C2B
|
||||
_022FF620: .word 0x00000C2C
|
||||
_022FF624: .word 0x00000C2D
|
||||
_022FF628: .word 0x00000C2F
|
||||
#ifdef JAPAN
|
||||
#define OV29_022FF3F4_OFFSET -0x2C1
|
||||
#else
|
||||
#define OV29_022FF3F4_OFFSET 0
|
||||
#endif
|
||||
_022FF60C: .word 0x00000C2E + OV29_022FF3F4_OFFSET
|
||||
_022FF610: .word 0x00000C28 + OV29_022FF3F4_OFFSET
|
||||
_022FF614: .word 0x00000C29 + OV29_022FF3F4_OFFSET
|
||||
_022FF618: .word 0x00000C2A + OV29_022FF3F4_OFFSET
|
||||
_022FF61C: .word 0x00000C2B + OV29_022FF3F4_OFFSET
|
||||
_022FF620: .word 0x00000C2C + OV29_022FF3F4_OFFSET
|
||||
_022FF624: .word 0x00000C2D + OV29_022FF3F4_OFFSET
|
||||
_022FF628: .word 0x00000C2F + OV29_022FF3F4_OFFSET
|
||||
arm_func_end ov29_022FF3F4
|
||||
|
||||
arm_func_start GetMobilityTypeCheckSlip
|
||||
@@ -777,12 +840,29 @@ _022FF810:
|
||||
mov r0, r6
|
||||
bl GetMobilityTypeCheckSlipAndFloating
|
||||
ldrh r2, [r4]
|
||||
#ifdef JAPAN
|
||||
mov r4, r0
|
||||
mov r0, r6
|
||||
mov r1, #0xc
|
||||
and r5, r2, #3
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
mov r0, r6
|
||||
mov r1, #0xd
|
||||
movne r4, #2
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
movne r4, #3
|
||||
cmp r4, #3
|
||||
addls pc, pc, r4, lsl #2
|
||||
#else
|
||||
mov r1, r0
|
||||
mov r0, r6
|
||||
and r4, r2, #3
|
||||
bl GetMobilityTypeAfterIqSkills
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
#endif
|
||||
b _022FF888
|
||||
_022FF83C: ; jump table
|
||||
b _022FF84C ; case 0
|
||||
@@ -790,20 +870,35 @@ _022FF83C: ; jump table
|
||||
b _022FF878 ; case 2
|
||||
b _022FF888 ; case 3
|
||||
_022FF84C:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #1
|
||||
#else
|
||||
cmp r4, #1
|
||||
#endif
|
||||
bne _022FF890
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022FF85C:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #2
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
cmp r5, #1
|
||||
#else
|
||||
cmp r4, #2
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
cmp r4, #1
|
||||
#endif
|
||||
bne _022FF890
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022FF878:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #0
|
||||
#else
|
||||
cmp r4, #0
|
||||
#endif
|
||||
beq _022FF890
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
@@ -831,6 +926,7 @@ ItemIsActive__022FF898: ; 0x022FF898
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end ItemIsActive__022FF898
|
||||
|
||||
#ifndef JAPAN
|
||||
arm_func_start GetMobilityTypeAfterIqSkills
|
||||
GetMobilityTypeAfterIqSkills: ; 0x022FF8C8
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
@@ -851,6 +947,7 @@ _022FF8EC:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end GetMobilityTypeAfterIqSkills
|
||||
#endif
|
||||
|
||||
arm_func_start ov29_022FF908
|
||||
ov29_022FF908: ; 0x022FF908
|
||||
@@ -928,12 +1025,29 @@ _022FFA0C:
|
||||
mov r0, r6
|
||||
bl GetMobilityTypeCheckSlipAndFloating
|
||||
ldrh r2, [r4]
|
||||
#ifdef JAPAN
|
||||
mov r4, r0
|
||||
mov r0, r6
|
||||
mov r1, #0xc
|
||||
and r5, r2, #3
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
mov r0, r6
|
||||
mov r1, #0xd
|
||||
movne r4, #2
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
movne r4, #3
|
||||
cmp r4, #3
|
||||
addls pc, pc, r4, lsl #2
|
||||
#else
|
||||
mov r1, r0
|
||||
mov r0, r6
|
||||
and r4, r2, #3
|
||||
bl GetMobilityTypeAfterIqSkills
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
#endif
|
||||
b _022FFA84
|
||||
_022FFA38: ; jump table
|
||||
b _022FFA48 ; case 0
|
||||
@@ -941,20 +1055,35 @@ _022FFA38: ; jump table
|
||||
b _022FFA74 ; case 2
|
||||
b _022FFA84 ; case 3
|
||||
_022FFA48:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #1
|
||||
#else
|
||||
cmp r4, #1
|
||||
#endif
|
||||
bne _022FFA8C
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022FFA58:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #2
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
cmp r5, #1
|
||||
#else
|
||||
cmp r4, #2
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
cmp r4, #1
|
||||
#endif
|
||||
bne _022FFA8C
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022FFA74:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #0
|
||||
#else
|
||||
cmp r4, #0
|
||||
#endif
|
||||
beq _022FFA8C
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
@@ -1091,12 +1220,29 @@ _022FFC44:
|
||||
mov r0, r6
|
||||
bl GetMobilityTypeCheckSlipAndFloating
|
||||
ldrh r2, [r4]
|
||||
#ifdef JAPAN
|
||||
mov r4, r0
|
||||
mov r0, r6
|
||||
mov r1, #0xc
|
||||
and r5, r2, #3
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
mov r0, r6
|
||||
mov r1, #0xd
|
||||
movne r4, #2
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
movne r4, #3
|
||||
cmp r4, #3
|
||||
addls pc, pc, r4, lsl #2
|
||||
#else
|
||||
mov r1, r0
|
||||
mov r0, r6
|
||||
and r4, r2, #3
|
||||
bl GetMobilityTypeAfterIqSkills
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
#endif
|
||||
b _022FFC94
|
||||
_022FFC70: ; jump table
|
||||
b _022FFC80 ; case 0
|
||||
@@ -1104,7 +1250,11 @@ _022FFC70: ; jump table
|
||||
b _022FFC80 ; case 2
|
||||
b _022FFC94 ; case 3
|
||||
_022FFC80:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #0
|
||||
#else
|
||||
cmp r4, #0
|
||||
#endif
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
@@ -1175,12 +1325,29 @@ _022FFD6C:
|
||||
mov r0, r6
|
||||
bl GetMobilityTypeCheckSlipAndFloating
|
||||
ldrh r2, [r4]
|
||||
#ifdef JAPAN
|
||||
mov r4, r0
|
||||
mov r0, r6
|
||||
mov r1, #0xc
|
||||
and r5, r2, #3
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
mov r0, r6
|
||||
mov r1, #0xd
|
||||
movne r4, #2
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
movne r4, #3
|
||||
cmp r4, #3
|
||||
addls pc, pc, r4, lsl #2
|
||||
#else
|
||||
mov r1, r0
|
||||
mov r0, r6
|
||||
and r4, r2, #3
|
||||
bl GetMobilityTypeAfterIqSkills
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
#endif
|
||||
b _022FFDE4
|
||||
_022FFD98: ; jump table
|
||||
b _022FFDA8 ; case 0
|
||||
@@ -1188,20 +1355,35 @@ _022FFD98: ; jump table
|
||||
b _022FFDD4 ; case 2
|
||||
b _022FFDE4 ; case 3
|
||||
_022FFDA8:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #1
|
||||
#else
|
||||
cmp r4, #1
|
||||
#endif
|
||||
bne _022FFDEC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022FFDB8:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #2
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
cmp r5, #1
|
||||
#else
|
||||
cmp r4, #2
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
cmp r4, #1
|
||||
#endif
|
||||
bne _022FFDEC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_022FFDD4:
|
||||
#ifdef JAPAN
|
||||
cmp r5, #0
|
||||
#else
|
||||
cmp r4, #0
|
||||
#endif
|
||||
beq _022FFDEC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
@@ -1215,6 +1397,11 @@ _022FFDEC:
|
||||
|
||||
arm_func_start CalcSpeedStage
|
||||
CalcSpeedStage: ; 0x022FFDF4
|
||||
#ifdef JAPAN
|
||||
#define CALC_SPEED_STAGE_OFFSET -4
|
||||
#else
|
||||
#define CALC_SPEED_STAGE_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
mov r8, r0
|
||||
mov r7, r1
|
||||
@@ -1225,10 +1412,10 @@ CalcSpeedStage: ; 0x022FFDF4
|
||||
mov r1, r4
|
||||
_022FFE14:
|
||||
add r2, r6, r1
|
||||
ldrb r0, [r2, #0x119]
|
||||
ldrb r0, [r2, #0x119 + CALC_SPEED_STAGE_OFFSET]
|
||||
add r1, r1, #1
|
||||
cmp r0, #0
|
||||
ldrb r0, [r2, #0x114]
|
||||
ldrb r0, [r2, #0x114 + CALC_SPEED_STAGE_OFFSET]
|
||||
subne r4, r4, r7
|
||||
cmp r0, #0
|
||||
addne r4, r4, r7
|
||||
@@ -1290,7 +1477,7 @@ _022FFEFC:
|
||||
cmp r4, #5
|
||||
movge r4, #4
|
||||
mov r0, r4
|
||||
str r4, [r6, #0x110]
|
||||
str r4, [r6, #0x110 + CALC_SPEED_STAGE_OFFSET]
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_022FFF18: .word EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
|
||||
@@ -1307,7 +1494,11 @@ ExclusiveItemEffectIsActive__022FFF28: ; 0x022FFF28
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x224
|
||||
#else
|
||||
add r0, r2, #0x228
|
||||
#endif
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ExclusiveItemEffectIsActive__022FFF28
|
||||
@@ -1390,8 +1581,13 @@ _02300028:
|
||||
beq _023000C8
|
||||
mov r0, sl
|
||||
bl ov29_022E655C
|
||||
#ifdef JAPAN
|
||||
ldr r1, _02301510 ; =0x0000096F
|
||||
mov r0, sl
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, #0xc30
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _023000C8
|
||||
_02300068:
|
||||
@@ -1416,8 +1612,13 @@ _02300068:
|
||||
add r1, sp, #0
|
||||
mov r0, #0
|
||||
bl ov29_02344B44
|
||||
#ifdef JAPAN
|
||||
mov r0, sl
|
||||
mov r1, #0x970
|
||||
#else
|
||||
ldr r1, _023000E0 ; =0x00000C31
|
||||
mov r0, sl
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
_023000C8:
|
||||
cmp r5, #0
|
||||
@@ -1428,5 +1629,9 @@ _023000D4:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_023000DC: .word EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
|
||||
#ifdef JAPAN
|
||||
_02301510: .word 0x0000096F
|
||||
#else
|
||||
_023000E0: .word 0x00000C31
|
||||
#endif
|
||||
arm_func_end GetNumberOfAttacks
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -96,8 +96,13 @@ _02302BA8:
|
||||
mov r3, r8
|
||||
bl ov29_02302C04
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
str r0, [r5, #0x210]
|
||||
strb r0, [r5, #0x14f]
|
||||
#else
|
||||
str r0, [r5, #0x214]
|
||||
strb r0, [r5, #0x153]
|
||||
#endif
|
||||
cmp r4, #0
|
||||
bne _02302BF4
|
||||
cmp r8, #0
|
||||
@@ -114,7 +119,11 @@ _02302BF4:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02302BFC: .word 0x000003E7
|
||||
#ifdef JAPAN
|
||||
_02302C00: .word 0x00002484
|
||||
#else
|
||||
_02302C00: .word 0x00000F1D
|
||||
#endif
|
||||
arm_func_end LevelUpItemEffect
|
||||
|
||||
arm_func_start ov29_02302C04
|
||||
@@ -171,7 +180,11 @@ _02302CB8:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02302CC0: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02302CC4: .word 0x00002491
|
||||
#else
|
||||
_02302CC4: .word 0x00000F2A
|
||||
#endif
|
||||
arm_func_end ov29_02302C04
|
||||
|
||||
arm_func_start ov29_02302CC8
|
||||
@@ -277,7 +290,11 @@ _02302E18:
|
||||
ldr r1, [r1, r2, lsl #2]
|
||||
bl strcat
|
||||
_02302E44:
|
||||
#ifdef JAPAN
|
||||
mov r0, #0x2480
|
||||
#else
|
||||
ldr r0, _02302F78 ; =0x00000F19
|
||||
#endif
|
||||
bl StringFromId
|
||||
mov r1, r0
|
||||
mov r0, r5
|
||||
@@ -358,15 +375,22 @@ _02302F4C:
|
||||
add sp, sp, #0x58
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define OV29_02302CC8_OFFSET 0x1567
|
||||
#else
|
||||
#define OV29_02302CC8_OFFSET 0
|
||||
#endif
|
||||
_02302F64: .word DUNGEON_PTR
|
||||
_02302F68: .word 0x00000F27
|
||||
_02302F6C: .word 0x00000F18
|
||||
_02302F68: .word 0x00000F27 + OV29_02302CC8_OFFSET
|
||||
_02302F6C: .word 0x00000F18 + OV29_02302CC8_OFFSET
|
||||
_02302F70: .word ov29_023527F0
|
||||
_02302F74: .word ov29_023535C8
|
||||
#ifndef JAPAN
|
||||
_02302F78: .word 0x00000F19
|
||||
_02302F7C: .word 0x00000F1A
|
||||
_02302F80: .word 0x00000F1B
|
||||
_02302F84: .word 0x00000F1C
|
||||
#endif
|
||||
_02302F7C: .word 0x00000F1A + OV29_02302CC8_OFFSET
|
||||
_02302F80: .word 0x00000F1B + OV29_02302CC8_OFFSET
|
||||
_02302F84: .word 0x00000F1C + OV29_02302CC8_OFFSET
|
||||
arm_func_end ov29_02302CC8
|
||||
|
||||
arm_func_start TryDecreaseLevel
|
||||
@@ -403,8 +427,13 @@ TryDecreaseLevel: ; 0x02302F88
|
||||
orr r4, r4, r0
|
||||
_02303000:
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
str r0, [r5, #0x210]
|
||||
strb r0, [r5, #0x14f]
|
||||
#else
|
||||
str r0, [r5, #0x214]
|
||||
strb r0, [r5, #0x153]
|
||||
#endif
|
||||
cmp r4, #0
|
||||
bne _02303030
|
||||
mov r1, r7
|
||||
@@ -418,7 +447,11 @@ _02303030:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02303038: .word 0x00002485
|
||||
#else
|
||||
_02303038: .word 0x00000F1E
|
||||
#endif
|
||||
arm_func_end TryDecreaseLevel
|
||||
|
||||
arm_func_start LevelUp
|
||||
@@ -479,8 +512,13 @@ _023030F0:
|
||||
mov r3, r1
|
||||
str r1, [sp]
|
||||
bl ov29_0230040C
|
||||
#ifdef JAPAN
|
||||
ldr r1, _023047C0 ; =0x00002487
|
||||
mov r0, sl
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, #0xf20
|
||||
#endif
|
||||
bl ov29_0234D484
|
||||
b _02303160
|
||||
_02303124:
|
||||
@@ -497,8 +535,13 @@ _02303130:
|
||||
mov r3, r1
|
||||
str r1, [sp]
|
||||
bl ov29_0230040C
|
||||
#ifdef JAPAN
|
||||
ldr r1, _023047C0 ; =0x00002487
|
||||
mov r0, sl
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, #0xf20
|
||||
#endif
|
||||
bl LogMessageByIdWithPopup
|
||||
_02303160:
|
||||
ldrh r1, [sp, #0x10]
|
||||
@@ -575,6 +618,9 @@ _02303268:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02303270: .word ov29_0237C9C4
|
||||
#ifdef JAPAN
|
||||
_023047C0: .word 0x00002487
|
||||
#endif
|
||||
_02303274: .word 0x000003E7
|
||||
_02303278: .word ov29_0237C9C8
|
||||
_0230327C: .word ov29_0237C9C9
|
||||
@@ -743,12 +789,22 @@ _023034C8: .word 0x000003E7
|
||||
_023034CC: .word ov29_0237C9C8
|
||||
_023034D0: .word ov29_0237C9C9
|
||||
_023034D4: .word ov29_0237C9C5
|
||||
#ifdef JAPAN
|
||||
_023034D8: .word 0x00002489
|
||||
_023034DC: .word 0x00002488
|
||||
#else
|
||||
_023034D8: .word 0x00000F22
|
||||
_023034DC: .word 0x00000F21
|
||||
#endif
|
||||
arm_func_end ov29_02303284
|
||||
|
||||
arm_func_start ov29_023034E0
|
||||
ov29_023034E0: ; 0x023034E0
|
||||
#ifdef JAPAN
|
||||
#define OV29_023034E0_OFFSET -4
|
||||
#else
|
||||
#define OV29_023034E0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x78
|
||||
mov sb, r1
|
||||
@@ -770,7 +826,7 @@ ov29_023034E0: ; 0x023034E0
|
||||
cmp r6, r0
|
||||
addne r0, r5, r6, lsl #3
|
||||
addne r0, r0, #0x100
|
||||
ldrneh r7, [r0, #0x28]
|
||||
ldrneh r7, [r0, #0x28 + OV29_023034E0_OFFSET]
|
||||
mov ip, sl
|
||||
mov lr, sl
|
||||
moveq r7, #0
|
||||
@@ -778,7 +834,7 @@ ov29_023034E0: ; 0x023034E0
|
||||
add r0, sp, #0x10
|
||||
_0230354C:
|
||||
add r1, r5, ip, lsl #3
|
||||
ldrb r1, [r1, #0x124]
|
||||
ldrb r1, [r1, #0x124 + OV29_023034E0_OFFSET]
|
||||
tst r1, #1
|
||||
movne r1, r3
|
||||
moveq r1, lr
|
||||
@@ -786,7 +842,7 @@ _0230354C:
|
||||
beq _02303588
|
||||
add r1, r5, ip, lsl #3
|
||||
add r1, r1, #0x100
|
||||
ldrh r2, [r1, #0x28]
|
||||
ldrh r2, [r1, #0x28 + OV29_023034E0_OFFSET]
|
||||
mov r1, sl, lsl #1
|
||||
add sl, sl, #1
|
||||
strh r2, [r0, r1]
|
||||
@@ -820,7 +876,7 @@ _023035C0:
|
||||
bl sub_02053904
|
||||
mov sl, r0
|
||||
add r0, sp, #0x18
|
||||
add r1, r5, #0x124
|
||||
add r1, r5, #0x124 + OV29_023034E0_OFFSET
|
||||
bl sub_020149C0
|
||||
cmp sl, #0
|
||||
beq _02303670
|
||||
@@ -879,7 +935,7 @@ _0230367C:
|
||||
_023036B4:
|
||||
add r1, r5, ip, lsl #3
|
||||
add r0, sp, #0x18
|
||||
add r2, r1, #0x124
|
||||
add r2, r1, #0x124 + OV29_023034E0_OFFSET
|
||||
add r3, r0, ip, lsl #3
|
||||
mov r1, #4
|
||||
_023036C8:
|
||||
@@ -889,12 +945,12 @@ _023036C8:
|
||||
bne _023036C8
|
||||
add r0, r5, ip, lsl #3
|
||||
add r0, r0, #0x100
|
||||
ldrh r1, [r0, #0x26]
|
||||
ldrh r1, [r0, #0x26 + OV29_023034E0_OFFSET]
|
||||
add ip, ip, #1
|
||||
tst r1, #4
|
||||
bicne r1, r1, #4
|
||||
strneh r1, [r0, #0x26]
|
||||
ldrneh r4, [r0, #0x28]
|
||||
strneh r1, [r0, #0x26 + OV29_023034E0_OFFSET]
|
||||
ldrneh r4, [r0, #0x28 + OV29_023034E0_OFFSET]
|
||||
movne sl, #1
|
||||
_023036FC:
|
||||
cmp ip, lr
|
||||
@@ -903,7 +959,7 @@ _023036FC:
|
||||
b _02303718
|
||||
_0230370C:
|
||||
add r0, r5, ip, lsl #3
|
||||
strb r1, [r0, #0x124]
|
||||
strb r1, [r0, #0x124 + OV29_023034E0_OFFSET]
|
||||
add ip, ip, #1
|
||||
_02303718:
|
||||
cmp ip, #4
|
||||
@@ -987,7 +1043,7 @@ _02303818:
|
||||
b _0230389C
|
||||
_02303840:
|
||||
add r3, r5, r4, lsl #3
|
||||
ldrb r3, [r3, #0x124]
|
||||
ldrb r3, [r3, #0x124 + OV29_023034E0_OFFSET]
|
||||
tst r3, #1
|
||||
movne r3, r1
|
||||
moveq r3, r0
|
||||
@@ -995,7 +1051,7 @@ _02303840:
|
||||
beq _02303870
|
||||
add r3, r5, r4, lsl #3
|
||||
add r3, r3, #0x100
|
||||
ldrh r3, [r3, #0x28]
|
||||
ldrh r3, [r3, #0x28 + OV29_023034E0_OFFSET]
|
||||
cmp r7, r3
|
||||
beq _023038A4
|
||||
_02303870:
|
||||
@@ -1020,19 +1076,30 @@ _023038A4:
|
||||
beq _023038BC
|
||||
_023038B4:
|
||||
mov r0, #1
|
||||
strb r0, [r5, #0x23e]
|
||||
strb r0, [r5, #0x23e + OV29_023034E0_OFFSET]
|
||||
_023038BC:
|
||||
add sp, sp, #0x78
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_023038C4: .word 0x0000131B
|
||||
#ifdef JAPAN
|
||||
_023038C8: .word 0x0000248A
|
||||
_023038CC: .word 0xFFFFFE5E
|
||||
_023038D0: .word 0x0000248C
|
||||
#else
|
||||
_023038C8: .word 0x00000F23
|
||||
_023038CC: .word 0xFFFFFE5E
|
||||
_023038D0: .word 0x00000F25
|
||||
#endif
|
||||
arm_func_end ov29_023034E0
|
||||
|
||||
arm_func_start ov29_023038D4
|
||||
ov29_023038D4: ; 0x023038D4
|
||||
#ifdef JAPAN
|
||||
#define OV29_023038D4_OFFSET -4
|
||||
#else
|
||||
#define OV29_023038D4_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0xa4
|
||||
mov sl, r0
|
||||
@@ -1040,7 +1107,7 @@ ov29_023038D4: ; 0x023038D4
|
||||
mov r6, r1
|
||||
mov r5, #0
|
||||
add r0, sp, #0
|
||||
add r1, r8, #0x124
|
||||
add r1, r8, #0x124 + OV29_023038D4_OFFSET
|
||||
mov r7, r5
|
||||
bl sub_020149C0
|
||||
mov r4, r5
|
||||
@@ -1092,13 +1159,13 @@ _02303978:
|
||||
cmp r6, #4
|
||||
bgt _02303A84
|
||||
mov sb, #0
|
||||
add r4, r8, #0x124
|
||||
add r4, r8, #0x124 + OV29_023038D4_OFFSET
|
||||
add fp, sp, #0
|
||||
b _02303A14
|
||||
_023039B4:
|
||||
add r0, r8, sb, lsl #3
|
||||
add r3, fp, sb, lsl #3
|
||||
add r2, r0, #0x124
|
||||
add r2, r0, #0x124 + OV29_023038D4_OFFSET
|
||||
mov r1, #4
|
||||
_023039C4:
|
||||
ldrh r0, [r3], #2
|
||||
@@ -1107,18 +1174,18 @@ _023039C4:
|
||||
bne _023039C4
|
||||
add r0, r8, sb, lsl #3
|
||||
add r3, r0, #0x100
|
||||
ldrh r0, [r3, #0x26]
|
||||
ldrh r0, [r3, #0x26 + OV29_023038D4_OFFSET]
|
||||
tst r0, #4
|
||||
beq _02303A10
|
||||
bic r5, r0, #4
|
||||
add r0, sp, #0x40
|
||||
mov r2, #0
|
||||
add r1, r4, sb, lsl #3
|
||||
strh r5, [r3, #0x26]
|
||||
strh r5, [r3, #0x26 + OV29_023038D4_OFFSET]
|
||||
bl FormatMoveString
|
||||
add r0, r8, sb, lsl #3
|
||||
add r0, r0, #0x100
|
||||
ldrh r5, [r0, #0x28]
|
||||
ldrh r5, [r0, #0x28 + OV29_023038D4_OFFSET]
|
||||
mov r7, #1
|
||||
_02303A10:
|
||||
add sb, sb, #1
|
||||
@@ -1129,7 +1196,7 @@ _02303A14:
|
||||
b _02303A30
|
||||
_02303A24:
|
||||
add r0, r8, sb, lsl #3
|
||||
strb r1, [r0, #0x124]
|
||||
strb r1, [r0, #0x124 + OV29_023038D4_OFFSET]
|
||||
add sb, sb, #1
|
||||
_02303A30:
|
||||
cmp sb, #4
|
||||
@@ -1194,9 +1261,15 @@ _02303B00:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02303B08: .word 0x0000131B
|
||||
#ifdef JAPAN
|
||||
_02303B0C: .word 0x0000248A
|
||||
_02303B10: .word 0x0000248F
|
||||
_02303B14: .word 0x0000248B
|
||||
#else
|
||||
_02303B0C: .word 0x00000F23
|
||||
_02303B10: .word 0x00000F28
|
||||
_02303B14: .word 0x00000F24
|
||||
#endif
|
||||
arm_func_end ov29_023038D4
|
||||
|
||||
arm_func_start GetMonsterMoves
|
||||
@@ -1411,7 +1484,11 @@ _02303DF4:
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02303DFC: .word 0x00002490
|
||||
#else
|
||||
_02303DFC: .word 0x00000F29
|
||||
#endif
|
||||
_02303E00: .word 0x0000013F
|
||||
_02303E04: .word DIRECTIONS_XY
|
||||
_02303E08: .word ov29_0235171E
|
||||
@@ -1497,6 +1574,13 @@ _02303F14: .word _020AFC4C
|
||||
|
||||
arm_func_start ov29_02303F18
|
||||
ov29_02303F18: ; 0x02303F18
|
||||
#ifdef JAPAN
|
||||
#define OV29_02303F18_OFFSET -4
|
||||
#define OV29_02303F18_OFFSET_2 -0xA4
|
||||
#else
|
||||
#define OV29_02303F18_OFFSET 0
|
||||
#define OV29_02303F18_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #0x38
|
||||
ldr r1, _023046C8 ; =DUNGEON_PTR
|
||||
@@ -1504,10 +1588,10 @@ ov29_02303F18: ; 0x02303F18
|
||||
ldr r0, [r1]
|
||||
ldr r5, [r7, #0xb4]
|
||||
add r0, r0, #0x1a000
|
||||
ldr r1, [r0, #0x22c]
|
||||
ldr r1, [r0, #0x22c + OV29_02303F18_OFFSET_2]
|
||||
cmp r1, r7
|
||||
moveq r4, #0
|
||||
ldrneb r4, [r0, #0x245]
|
||||
ldrneb r4, [r0, #0x245 + OV29_02303F18_OFFSET_2]
|
||||
ldrb r0, [r5, #0xd8]
|
||||
ldrb r1, [r7, #0xaf]
|
||||
cmp r0, #2
|
||||
@@ -1531,7 +1615,11 @@ ov29_02303F18: ; 0x02303F18
|
||||
bl GetIdleAnimationId
|
||||
mov r3, #1
|
||||
strb r3, [r7, #0x21]
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r5, #0x109]
|
||||
#else
|
||||
ldrb r1, [r5, #0x10a]
|
||||
#endif
|
||||
cmp r1, #0x63
|
||||
bne _02303FF4
|
||||
ldrb r6, [r7, #0xaf]
|
||||
@@ -1565,7 +1653,7 @@ _02303FF4:
|
||||
and r2, r2, #7
|
||||
strb r2, [r7, #0xb0]
|
||||
strb r1, [r7, #0xb3]
|
||||
ldrb r1, [r5, #0x23d]
|
||||
ldrb r1, [r5, #0x23d + OV29_02303F18_OFFSET]
|
||||
cmp r1, #0
|
||||
ldreqb r1, [r7, #0xae]
|
||||
cmpeq r1, #6
|
||||
@@ -1636,7 +1724,7 @@ _023040EC:
|
||||
add r0, r7, #0x2c
|
||||
mov r3, r3, asr #0x10
|
||||
bl SetAndPlayAnimationForAnimationControl
|
||||
ldrb r0, [r5, #0x171]
|
||||
ldrb r0, [r5, #0x171 + OV29_02303F18_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _023041E4
|
||||
add r0, r7, #0x2c
|
||||
@@ -1716,12 +1804,12 @@ _0230422C:
|
||||
ldrsh r4, [r8, r1]
|
||||
ldr r6, [r7, #0x10]
|
||||
ldr r3, [r7, #0x1c]
|
||||
ldrb r2, [r5, #0x160]
|
||||
ldrb r2, [r5, #0x160 + OV29_02303F18_OFFSET]
|
||||
rsb r1, r4, r6, asr #8
|
||||
ldrsh r8, [r8, r0]
|
||||
add r1, r1, r1, lsr #31
|
||||
ldr sb, [r7, #0xc]
|
||||
ldr r0, [r5, #0x188]
|
||||
ldr r0, [r5, #0x188 + OV29_02303F18_OFFSET]
|
||||
sub r3, r6, r3
|
||||
sub r0, r3, r0
|
||||
rsb r8, r8, sb, asr #8
|
||||
@@ -1739,18 +1827,18 @@ _0230422C:
|
||||
moveq r0, #2
|
||||
add r8, r8, r0
|
||||
_023042B0:
|
||||
ldrb r0, [r5, #0x172]
|
||||
ldrb r0, [r5, #0x172 + OV29_02303F18_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _023042D8
|
||||
mov r0, r7
|
||||
bl ov29_022E273C
|
||||
ldrb r1, [r5, #0x170]
|
||||
ldrb r1, [r5, #0x170 + OV29_02303F18_OFFSET]
|
||||
mov r4, r0
|
||||
cmp r1, #0
|
||||
movne r4, #0
|
||||
b _02304310
|
||||
_023042D8:
|
||||
ldrb r0, [r5, #0x173]
|
||||
ldrb r0, [r5, #0x173 + OV29_02303F18_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _023042FC
|
||||
ldr r0, _023046D8 ; =ov29_0237C850
|
||||
@@ -1760,7 +1848,7 @@ _023042D8:
|
||||
mvneq r0, #0
|
||||
add r8, r8, r0
|
||||
_023042FC:
|
||||
ldrb r0, [r5, #0x174]
|
||||
ldrb r0, [r5, #0x174 + OV29_02303F18_OFFSET]
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
@@ -1779,7 +1867,7 @@ _02304310:
|
||||
strh r3, [sp, #0x18]
|
||||
ldr ip, [r7, #0x10]
|
||||
ldr r6, [r7, #0x1c]
|
||||
ldr r3, [r5, #0x188]
|
||||
ldr r3, [r5, #0x188 + OV29_02303F18_OFFSET]
|
||||
sub r6, ip, r6
|
||||
sub r3, r6, r3
|
||||
mov r3, r3, asr #8
|
||||
@@ -1853,7 +1941,7 @@ _02304458:
|
||||
ldrb r2, [r5, #0xef]
|
||||
cmp r2, #1
|
||||
addeq r1, r1, #0x1a000
|
||||
ldreqb r1, [r1, #0x244]
|
||||
ldreqb r1, [r1, #0x244 + OV29_02303F18_OFFSET_2]
|
||||
cmpeq r1, #0
|
||||
moveq r0, #1
|
||||
cmp r0, #0
|
||||
@@ -1903,7 +1991,11 @@ _02304510:
|
||||
strh sl, [r7, #0x64]
|
||||
strh r8, [r7, #0x48]
|
||||
strh sb, [r7, #0x4a]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x10a]
|
||||
#else
|
||||
ldrb r0, [r5, #0x10b]
|
||||
#endif
|
||||
cmp r0, #2
|
||||
beq _02304590
|
||||
ldrb r1, [r5, #0xc4]
|
||||
@@ -1938,23 +2030,23 @@ _02304590:
|
||||
ldrsh r2, [r7, #0x50]
|
||||
add r1, r5, #0x100
|
||||
ldr r0, _023046D4 ; =0x0001A224
|
||||
strh r2, [r1, #0x82]
|
||||
strh r2, [r1, #0x82 + OV29_02303F18_OFFSET]
|
||||
ldrsh r8, [r7, #0x52]
|
||||
ldr r3, _023046C8 ; =DUNGEON_PTR
|
||||
add r2, r0, #2
|
||||
strh r8, [r1, #0x84]
|
||||
ldrsh sb, [r1, #0x82]
|
||||
strh r8, [r1, #0x84 + OV29_02303F18_OFFSET]
|
||||
ldrsh sb, [r1, #0x82 + OV29_02303F18_OFFSET]
|
||||
ldr r8, [r7, #0xc]
|
||||
add r8, sb, r8, asr #8
|
||||
strh r8, [r1, #0x82]
|
||||
ldrsh sb, [r1, #0x84]
|
||||
strh r8, [r1, #0x82 + OV29_02303F18_OFFSET]
|
||||
ldrsh sb, [r1, #0x84 + OV29_02303F18_OFFSET]
|
||||
ldr r8, [r7, #0x10]
|
||||
add r8, sb, r8, asr #8
|
||||
strh r8, [r1, #0x84]
|
||||
strh r8, [r1, #0x84 + OV29_02303F18_OFFSET]
|
||||
ldr sb, [r3]
|
||||
ldrsh r8, [r1, #0x82]
|
||||
ldrsh r8, [r1, #0x82 + OV29_02303F18_OFFSET]
|
||||
ldrsh r0, [sb, r0]
|
||||
ldrsh r3, [r1, #0x84]
|
||||
ldrsh r3, [r1, #0x84 + OV29_02303F18_OFFSET]
|
||||
ldrsh r1, [sb, r2]
|
||||
sub r0, r8, r0
|
||||
mov r0, r0, lsl #0x10
|
||||
@@ -1978,7 +2070,7 @@ _02304628:
|
||||
cmp r0, #0
|
||||
bne _0230464C
|
||||
str sb, [sp]
|
||||
ldrb r0, [r5, #0x160]
|
||||
ldrb r0, [r5, #0x160 + OV29_02303F18_OFFSET]
|
||||
mov r1, r6
|
||||
mov r2, r4
|
||||
mov r3, r8
|
||||
@@ -2007,7 +2099,7 @@ _02304690:
|
||||
cmpne r0, #7
|
||||
bne _023046B8
|
||||
ldr r0, [r7, #0xb4]
|
||||
ldr r0, [r0, #0x110]
|
||||
ldr r0, [r0, #0x110 + OV29_02303F18_OFFSET]
|
||||
cmp r0, #1
|
||||
ble _023046B8
|
||||
add r0, r7, #0x2c
|
||||
@@ -2022,7 +2114,7 @@ _023046C0:
|
||||
_023046C8: .word DUNGEON_PTR
|
||||
_023046CC: .word ov29_02352810
|
||||
_023046D0: .word 0x00000229
|
||||
_023046D4: .word 0x0001A224
|
||||
_023046D4: .word 0x0001A224 + OV29_02303F18_OFFSET_2
|
||||
_023046D8: .word ov29_0237C850
|
||||
_023046DC: .word ov29_0235280C
|
||||
_023046E0: .word 0x0000F3FF
|
||||
@@ -2031,27 +2123,36 @@ _023046E4: .word 0xFFFFFE5D
|
||||
|
||||
arm_func_start ov29_023046E8
|
||||
ov29_023046E8: ; 0x023046E8
|
||||
#ifdef JAPAN
|
||||
#define OV29_023046E8_OFFSET -4
|
||||
#else
|
||||
#define OV29_023046E8_OFFSET 0
|
||||
#endif
|
||||
ldr r1, [r0, #0xb4]
|
||||
ldrb r0, [r1, #0x172]
|
||||
ldrb r0, [r1, #0x172 + OV29_023046E8_OFFSET]
|
||||
cmp r0, #0
|
||||
bxne lr
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r1, #0x10a]
|
||||
#else
|
||||
ldrb r0, [r1, #0x10b]
|
||||
#endif
|
||||
cmp r0, #1
|
||||
ldr r0, [r1, #0x188]
|
||||
ldr r0, [r1, #0x188 + OV29_023046E8_OFFSET]
|
||||
bne _02304728
|
||||
cmp r0, #0xc800
|
||||
bxge lr
|
||||
add r0, r0, #0x800
|
||||
str r0, [r1, #0x188]
|
||||
str r0, [r1, #0x188 + OV29_023046E8_OFFSET]
|
||||
cmp r0, #0xc800
|
||||
movgt r0, #0xc800
|
||||
strgt r0, [r1, #0x188]
|
||||
strgt r0, [r1, #0x188 + OV29_023046E8_OFFSET]
|
||||
bx lr
|
||||
_02304728:
|
||||
subs r0, r0, #0xc00
|
||||
str r0, [r1, #0x188]
|
||||
str r0, [r1, #0x188 + OV29_023046E8_OFFSET]
|
||||
movmi r0, #0
|
||||
strmi r0, [r1, #0x188]
|
||||
strmi r0, [r1, #0x188 + OV29_023046E8_OFFSET]
|
||||
bx lr
|
||||
arm_func_end ov29_023046E8
|
||||
|
||||
@@ -2065,17 +2166,29 @@ _0230474C:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r4, [r0, #0xad4]
|
||||
#else
|
||||
ldr r4, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r4
|
||||
bl EntityIsValid__023047B8
|
||||
cmp r0, #0
|
||||
ldrne r2, [r4, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrneb r0, [r2, #0x175]
|
||||
#else
|
||||
ldrneb r0, [r2, #0x179]
|
||||
#endif
|
||||
cmpne r0, #0
|
||||
beq _023047A4
|
||||
sub r1, r0, #1
|
||||
and r0, r1, #0xff
|
||||
#ifdef JAPAN
|
||||
strb r1, [r2, #0x175]
|
||||
#else
|
||||
strb r1, [r2, #0x179]
|
||||
#endif
|
||||
tst r0, #1
|
||||
bne _023047A4
|
||||
ldrb r2, [r2, #0x4c]
|
||||
|
||||
@@ -12,7 +12,11 @@ _023047E8:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__023047B8
|
||||
cmp r0, #0
|
||||
@@ -40,8 +44,13 @@ ov29_02304830: ; 0x02304830
|
||||
ldr r0, [r2]
|
||||
ldr r4, [r5, #0xb4]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldr r2, [r0, #0x188]
|
||||
ldrb r3, [r0, #0x1a1]
|
||||
#else
|
||||
ldr r2, [r0, #0x22c]
|
||||
ldrb r3, [r0, #0x245]
|
||||
#endif
|
||||
cmp r5, r2
|
||||
mov r2, #0
|
||||
strb r2, [r5, #0x28]
|
||||
@@ -121,7 +130,11 @@ _02304960:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__023047B8
|
||||
cmp r0, #0
|
||||
@@ -296,7 +309,11 @@ _02304B70:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__023047B8
|
||||
cmp r0, #0
|
||||
@@ -340,14 +357,22 @@ _02304BF8:
|
||||
ldr r1, _02304C38 ; =SECONDARY_TERRAIN_TYPES
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r0, [r0, #0x30]
|
||||
#else
|
||||
ldrsh r0, [r0, #0xd4]
|
||||
#endif
|
||||
ldrb r0, [r1, r0]
|
||||
cmp r0, #1
|
||||
ldrne r0, _02304C30 ; =ov29_02352808
|
||||
ldrneb r4, [r0, r4]
|
||||
_02304C24:
|
||||
mov r0, r4
|
||||
#ifdef JAPAN
|
||||
strb r4, [r5, #0x21c]
|
||||
#else
|
||||
strb r4, [r5, #0x220]
|
||||
#endif
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02304C30: .word ov29_02352808
|
||||
@@ -422,12 +447,17 @@ _02304CFC:
|
||||
|
||||
arm_func_start ov29_02304D20
|
||||
ov29_02304D20: ; 0x02304D20
|
||||
#ifdef JAPAN
|
||||
#define OV29_02304D20_OFFSET -4
|
||||
#else
|
||||
#define OV29_02304D20_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov r6, r0
|
||||
ldr sb, [r6, #0xb4]
|
||||
mov r5, r1
|
||||
add r0, sb, #0x200
|
||||
ldrsh r0, [r0, #0xc]
|
||||
ldrsh r0, [r0, #0xc + OV29_02304D20_OFFSET]
|
||||
mov r4, r2
|
||||
cmp r0, #4
|
||||
movge r0, #0
|
||||
@@ -440,9 +470,9 @@ ov29_02304D20: ; 0x02304D20
|
||||
moveq r1, #1
|
||||
str r1, [r2]
|
||||
add r0, sb, #0x200
|
||||
ldrsh r3, [r0, #0xc]
|
||||
ldrsh r3, [r0, #0xc + OV29_02304D20_OFFSET]
|
||||
mov r1, #0x1c
|
||||
add r0, sb, #0x19c
|
||||
add r0, sb, #0x19c + OV29_02304D20_OFFSET
|
||||
smulbb sl, r3, r1
|
||||
add r7, r0, sl
|
||||
mov r1, #0
|
||||
@@ -474,10 +504,10 @@ ov29_02304D20: ; 0x02304D20
|
||||
moveq r1, #1
|
||||
add r0, sb, #0x200
|
||||
str r1, [r5]
|
||||
ldrsh r1, [r0, #0xc]
|
||||
ldrsh r1, [r0, #0xc + OV29_02304D20_OFFSET]
|
||||
add r1, r1, #1
|
||||
strh r1, [r0, #0xc]
|
||||
ldrsh r0, [r0, #0xc]
|
||||
strh r1, [r0, #0xc + OV29_02304D20_OFFSET]
|
||||
ldrsh r0, [r0, #0xc + OV29_02304D20_OFFSET]
|
||||
cmp r0, #2
|
||||
bne _02304E6C
|
||||
ldr r1, [r5]
|
||||
@@ -485,15 +515,15 @@ ov29_02304D20: ; 0x02304D20
|
||||
mov r1, r1, lsl #1
|
||||
bl _s32_div_f
|
||||
add r1, sb, #0x100
|
||||
strh r0, [r1, #0xb4]
|
||||
ldr r0, [sb, #0x1ac]
|
||||
strh r0, [r1, #0xb4 + OV29_02304D20_OFFSET]
|
||||
ldr r0, [sb, #0x1ac + OV29_02304D20_OFFSET]
|
||||
mov r1, r5
|
||||
mov r0, r0, lsl #1
|
||||
str r0, [sb, #0x1ac]
|
||||
ldr r2, [sb, #0x1b0]
|
||||
str r0, [sb, #0x1ac + OV29_02304D20_OFFSET]
|
||||
ldr r2, [sb, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
mov r0, #0x18
|
||||
mov r2, r2, lsl #1
|
||||
str r2, [sb, #0x1b0]
|
||||
str r2, [sb, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
ldr r1, [r1]
|
||||
mov r1, r1, lsl #1
|
||||
bl _s32_div_f
|
||||
@@ -518,23 +548,23 @@ _02304E80:
|
||||
add r1, r1, r1, lsl #1
|
||||
bl _s32_div_f
|
||||
add r1, r8, #0x100
|
||||
strh r0, [r1, #0xb4]
|
||||
ldr r0, [r8, #0x1ac]
|
||||
strh r0, [r1, #0xb4 + OV29_02304D20_OFFSET]
|
||||
ldr r0, [r8, #0x1ac + OV29_02304D20_OFFSET]
|
||||
add r6, r6, #1
|
||||
add r0, r0, r0, lsl #1
|
||||
str r0, [r8, #0x1ac]
|
||||
ldr r0, [r8, #0x1b0]
|
||||
str r0, [r8, #0x1ac + OV29_02304D20_OFFSET]
|
||||
ldr r0, [r8, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
cmp r6, #2
|
||||
add r0, r0, r0, lsl #1
|
||||
str r0, [r8, #0x1b0]
|
||||
ldr r0, [r8, #0x1ac]
|
||||
str r0, [r8, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
ldr r0, [r8, #0x1ac + OV29_02304D20_OFFSET]
|
||||
add r0, r0, r0, lsr #31
|
||||
mov r0, r0, asr #1
|
||||
str r0, [r8, #0x1ac]
|
||||
ldr r0, [r8, #0x1b0]
|
||||
str r0, [r8, #0x1ac + OV29_02304D20_OFFSET]
|
||||
ldr r0, [r8, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
add r0, r0, r0, lsr #31
|
||||
mov r0, r0, asr #1
|
||||
str r0, [r8, #0x1b0]
|
||||
str r0, [r8, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
blt _02304E80
|
||||
ldr r1, _02304FD4 ; =ov29_0237C9CC
|
||||
mov r0, #0x18
|
||||
@@ -563,22 +593,22 @@ _02304F2C:
|
||||
mov r1, r1, lsl #2
|
||||
bl _s32_div_f
|
||||
add r1, sl, #0x100
|
||||
strh r0, [r1, #0xb4]
|
||||
ldr r0, [sl, #0x1ac]
|
||||
strh r0, [r1, #0xb4 + OV29_02304D20_OFFSET]
|
||||
ldr r0, [sl, #0x1ac + OV29_02304D20_OFFSET]
|
||||
mov r1, fp
|
||||
mov r0, r0, lsl #2
|
||||
str r0, [sl, #0x1ac]
|
||||
ldr r0, [sl, #0x1b0]
|
||||
str r0, [sl, #0x1ac + OV29_02304D20_OFFSET]
|
||||
ldr r0, [sl, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
mov r0, r0, lsl #2
|
||||
str r0, [sl, #0x1b0]
|
||||
ldr r0, [sl, #0x1ac]
|
||||
str r0, [sl, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
ldr r0, [sl, #0x1ac + OV29_02304D20_OFFSET]
|
||||
bl _s32_div_f
|
||||
str r0, [sl, #0x1ac]
|
||||
ldr r0, [sl, #0x1b0]
|
||||
str r0, [sl, #0x1ac + OV29_02304D20_OFFSET]
|
||||
ldr r0, [sl, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
mov r1, #3
|
||||
bl _s32_div_f
|
||||
add r8, r8, #1
|
||||
str r0, [sl, #0x1b0]
|
||||
str r0, [sl, #0x1b0 + OV29_02304D20_OFFSET]
|
||||
cmp r8, #3
|
||||
blt _02304F2C
|
||||
ldr r1, _02304FD4 ; =ov29_0237C9CC
|
||||
@@ -608,6 +638,13 @@ _02304FDC: .word ov29_0235173E
|
||||
|
||||
arm_func_start DisplayActions
|
||||
DisplayActions: ; 0x02304FE0
|
||||
#ifdef JAPAN
|
||||
#define DISPLAY_ACTIONS_OFFSET -4
|
||||
#define DISPLAY_ACTIONS_OFFSET_2 -0xA4
|
||||
#else
|
||||
#define DISPLAY_ACTIONS_OFFSET 0
|
||||
#define DISPLAY_ACTIONS_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x14
|
||||
ldr r1, _02305580 ; =ov29_0237C9C1
|
||||
@@ -629,30 +666,30 @@ _02305020:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r8, [r0, #0xb78]
|
||||
ldr r8, [r0, #0xb78 + DISPLAY_ACTIONS_OFFSET_2]
|
||||
mov r0, r8
|
||||
bl EntityIsValid__0230558C
|
||||
cmp r0, #0
|
||||
beq _02305160
|
||||
ldr sb, [r8, #0xb4]
|
||||
add r0, sb, #0x200
|
||||
ldrsh r0, [r0, #0xc]
|
||||
ldrsh r0, [r0, #0xc + DISPLAY_ACTIONS_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _023050EC
|
||||
ldrb r0, [sb, #0x151]
|
||||
ldrb r0, [sb, #0x151 + DISPLAY_ACTIONS_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _02305160
|
||||
strb r4, [sb, #0x151]
|
||||
strb r4, [sb, #0x151 + DISPLAY_ACTIONS_OFFSET]
|
||||
add r0, sb, #0x100
|
||||
ldrsh r1, [r0, #0x7e]
|
||||
ldrsh r1, [r0, #0x7e + DISPLAY_ACTIONS_OFFSET]
|
||||
cmp r1, #0
|
||||
ldreqsh r0, [r0, #0x80]
|
||||
ldreqsh r0, [r0, #0x80 + DISPLAY_ACTIONS_OFFSET]
|
||||
cmpeq r0, #0
|
||||
beq _02305160
|
||||
ldrsh r0, [r8, #4]
|
||||
cmp r1, r0
|
||||
addeq r0, sb, #0x100
|
||||
ldreqsh r1, [r0, #0x80]
|
||||
ldreqsh r1, [r0, #0x80 + DISPLAY_ACTIONS_OFFSET]
|
||||
ldreqsh r0, [r8, #6]
|
||||
cmpeq r1, r0
|
||||
beq _02305160
|
||||
@@ -667,7 +704,7 @@ _02305020:
|
||||
bne _02305160
|
||||
_023050C0:
|
||||
add r0, r8, #4
|
||||
add r1, sb, #0x7e
|
||||
add r1, sb, #0x7e + DISPLAY_ACTIONS_OFFSET
|
||||
add r1, r1, #0x100
|
||||
bl GetDirectionTowardsPosition
|
||||
mov r1, r0
|
||||
@@ -683,25 +720,25 @@ _023050EC:
|
||||
add r1, sp, #0xc
|
||||
orr r2, r2, #0x2000
|
||||
strh r2, [sb]
|
||||
ldr r3, [sb, #0x1a0]
|
||||
ldr r3, [sb, #0x1a0 + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r2, #0x18
|
||||
mul r2, r3, r2
|
||||
add r2, r2, #0xc
|
||||
mov r2, r2, lsl #8
|
||||
str r2, [sp, #0xc]
|
||||
ldr r3, [sb, #0x1a4]
|
||||
ldr r3, [sb, #0x1a4 + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r2, #0x18
|
||||
mul r2, r3, r2
|
||||
add r2, r2, #0x10
|
||||
mov r2, r2, lsl #8
|
||||
str r2, [sp, #0x10]
|
||||
bl UpdateEntityPixelPos
|
||||
ldr r2, [sb, #0x1a8]
|
||||
ldr r2, [sb, #0x1a8 + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r0, r8
|
||||
mov r1, #0
|
||||
bl ov29_023049D4
|
||||
add r0, sb, #0x200
|
||||
strh fp, [r0, #0xe]
|
||||
strh fp, [r0, #0xe + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r0, r8
|
||||
mov r6, #1
|
||||
bl ShouldDisplayEntityWrapper
|
||||
@@ -738,16 +775,16 @@ _023051C4:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, sl, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb78]
|
||||
ldr r7, [r0, #0xb78 + DISPLAY_ACTIONS_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0230558C
|
||||
cmp r0, #0
|
||||
beq _02305304
|
||||
ldr sb, [r7, #0xb4]
|
||||
add r0, sb, #0x200
|
||||
ldrsh r2, [r0, #0xe]
|
||||
ldrsh r1, [r0, #0xc]
|
||||
add r3, sb, #0x19c
|
||||
ldrsh r2, [r0, #0xe + DISPLAY_ACTIONS_OFFSET]
|
||||
ldrsh r1, [r0, #0xc + DISPLAY_ACTIONS_OFFSET]
|
||||
add r3, sb, #0x19c + DISPLAY_ACTIONS_OFFSET
|
||||
mov r0, #0x1c
|
||||
smlabb r8, r2, r0, r3
|
||||
cmp r1, #0
|
||||
@@ -782,25 +819,25 @@ _02305258:
|
||||
add r2, sb, #0x200
|
||||
ldrsh r0, [r2, #0xe]
|
||||
add r0, r0, #1
|
||||
strh r0, [r2, #0xe]
|
||||
ldrsh r1, [r2, #0xe]
|
||||
ldrsh r0, [r2, #0xc]
|
||||
strh r0, [r2, #0xe + DISPLAY_ACTIONS_OFFSET]
|
||||
ldrsh r1, [r2, #0xe + DISPLAY_ACTIONS_OFFSET]
|
||||
ldrsh r0, [r2, #0xc + DISPLAY_ACTIONS_OFFSET]
|
||||
cmp r1, r0
|
||||
streqh fp, [r2, #0xc]
|
||||
streqh fp, [r2, #0xc + DISPLAY_ACTIONS_OFFSET]
|
||||
beq _02305304
|
||||
mov r0, #0x1c
|
||||
smlabb r0, r1, r0, sb
|
||||
ldr r3, [r0, #0x1a0]
|
||||
ldr r3, [r0, #0x1a0 + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r1, #0x18
|
||||
mul r1, r3, r1
|
||||
add r1, r1, #0xc
|
||||
mov r1, r1, lsl #8
|
||||
str r1, [sp, #4]
|
||||
ldrsh r3, [r2, #0xe]
|
||||
ldrsh r3, [r2, #0xe + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r2, #0x1c
|
||||
mov r0, r7
|
||||
smlabb r2, r3, r2, sb
|
||||
ldr r3, [r2, #0x1a4]
|
||||
ldr r3, [r2, #0x1a4 + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r2, #0x18
|
||||
mul r2, r3, r2
|
||||
add r2, r2, #0x10
|
||||
@@ -809,11 +846,11 @@ _02305258:
|
||||
str r2, [sp, #8]
|
||||
bl UpdateEntityPixelPos
|
||||
add r2, sb, #0x200
|
||||
ldrsh r3, [r2, #0xe]
|
||||
ldrsh r3, [r2, #0xe + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r2, #0x1c
|
||||
mov r0, r7
|
||||
smlabb r2, r3, r2, sb
|
||||
ldr r2, [r2, #0x1a8]
|
||||
ldr r2, [r2, #0x1a8 + DISPLAY_ACTIONS_OFFSET]
|
||||
mov r1, #0
|
||||
bl ov29_023049D4
|
||||
_02305304:
|
||||
@@ -836,14 +873,14 @@ _02305338:
|
||||
ldr r0, [r8]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r5, [r0, #0xb78]
|
||||
ldr r5, [r0, #0xb78 + DISPLAY_ACTIONS_OFFSET_2]
|
||||
mov r0, r5
|
||||
bl EntityIsValid__0230558C
|
||||
cmp r0, #0
|
||||
beq _0230537C
|
||||
ldr r1, [r5, #0xb4]
|
||||
add r0, r1, #0x200
|
||||
strh r4, [r0, #0xc]
|
||||
strh r4, [r0, #0xc + DISPLAY_ACTIONS_OFFSET]
|
||||
ldrh r0, [r1]
|
||||
tst r0, #0x2000
|
||||
beq _0230537C
|
||||
@@ -867,7 +904,7 @@ _023053A8:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, sl, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr sb, [r0, #0xb78]
|
||||
ldr sb, [r0, #0xb78 + DISPLAY_ACTIONS_OFFSET_2]
|
||||
mov r0, sb
|
||||
bl EntityIsValid__0230558C
|
||||
cmp r0, #0
|
||||
@@ -946,7 +983,7 @@ _0230547C:
|
||||
ldr r1, [r5]
|
||||
mov r0, sb
|
||||
add r1, r1, #0x4000
|
||||
ldrb r1, [r1, #0xc4]
|
||||
ldrb r1, [r1, #0xc4 + DISPLAY_ACTIONS_OFFSET_2]
|
||||
bl ov29_02305814
|
||||
_023054E4:
|
||||
mov r0, sb
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
|
||||
arm_func_start ov29_023055B0
|
||||
ov29_023055B0: ; 0x023055B0
|
||||
#ifdef JAPAN
|
||||
#define OV29_023055B0_OFFSET 4
|
||||
#else
|
||||
#define OV29_023055B0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r6, #0
|
||||
mov r5, #1
|
||||
@@ -14,7 +19,11 @@ _023055C4:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xad4]
|
||||
#else
|
||||
ldr r7, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0230558C
|
||||
cmp r0, #0
|
||||
@@ -28,15 +37,15 @@ _023055C4:
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
add r0, r8, #0x100
|
||||
ldrsh r1, [r0, #0x7e]
|
||||
ldrsh r1, [r0, #0x7e + OV29_023055B0_OFFSET]
|
||||
cmp r1, #0
|
||||
ldreqsh r0, [r0, #0x80]
|
||||
ldreqsh r0, [r0, #0x80 + OV29_023055B0_OFFSET]
|
||||
cmpeq r0, #0
|
||||
beq _02305680
|
||||
ldrsh r0, [r7, #4]
|
||||
cmp r1, r0
|
||||
addeq r0, r8, #0x100
|
||||
ldreqsh r1, [r0, #0x80]
|
||||
ldreqsh r1, [r0, #0x80 + OV29_023055B0_OFFSET]
|
||||
ldreqsh r0, [r7, #6]
|
||||
cmpeq r1, r0
|
||||
beq _02305680
|
||||
@@ -45,7 +54,7 @@ _023055C4:
|
||||
bl ov29_02300818
|
||||
cmp r0, #0
|
||||
bne _02305680
|
||||
add r1, r8, #0x7e
|
||||
add r1, r8, #0x7e + OV29_023055B0_OFFSET
|
||||
add r0, r7, #4
|
||||
add r1, r1, #0x100
|
||||
bl GetDirectionTowardsPosition
|
||||
@@ -223,11 +232,20 @@ ov29_02305814: ; 0x02305814
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_023058BC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_023058C0: .word 0x000009C2
|
||||
#else
|
||||
_023058C0: .word 0x00000C82
|
||||
#endif
|
||||
arm_func_end ov29_02305814
|
||||
|
||||
arm_func_start EndNegativeStatusCondition
|
||||
EndNegativeStatusCondition: ; 0x023058C4
|
||||
#ifdef JAPAN
|
||||
#define END_NEGATIVE_STATUS_CONDITION_OFFSET -4
|
||||
#else
|
||||
#define END_NEGATIVE_STATUS_CONDITION_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov r4, #0
|
||||
mov sb, r1
|
||||
@@ -354,14 +372,22 @@ _02305A74:
|
||||
mov r1, sb
|
||||
bl EndMiracleEyeStatus
|
||||
_02305A90:
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r6, #0x105]
|
||||
#else
|
||||
ldrb r0, [r6, #0x106]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _02305AB4
|
||||
ldr r2, _02305BF0 ; =0x00000C83
|
||||
mov r3, #0
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
#ifdef JAPAN
|
||||
strb r3, [r6, #0x105]
|
||||
#else
|
||||
strb r3, [r6, #0x106]
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_02305AB4:
|
||||
ldrb r0, [r6, #0xfe]
|
||||
@@ -382,7 +408,7 @@ _02305AD8:
|
||||
_02305AEC:
|
||||
add r0, r6, r2
|
||||
add r2, r2, #1
|
||||
strb r1, [r0, #0x119]
|
||||
strb r1, [r0, #0x119 + END_NEGATIVE_STATUS_CONDITION_OFFSET]
|
||||
cmp r2, #5
|
||||
blt _02305AEC
|
||||
mov r0, sb
|
||||
@@ -394,7 +420,7 @@ _02305AEC:
|
||||
mov r2, r0
|
||||
mov r4, #1
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldr r1, [r6, #0x110]
|
||||
ldr r1, [r6, #0x110 + END_NEGATIVE_STATUS_CONDITION_OFFSET]
|
||||
ldr r0, _02305BF8 ; =ov29_02353318
|
||||
mov r1, r1, lsl #1
|
||||
ldrh r2, [r0, r1]
|
||||
@@ -404,7 +430,7 @@ _02305AEC:
|
||||
_02305B40:
|
||||
mov fp, #0
|
||||
mov r1, #1
|
||||
add r2, r6, #0x124
|
||||
add r2, r6, #0x124 + END_NEGATIVE_STATUS_CONDITION_OFFSET
|
||||
mov r0, fp
|
||||
mov ip, r1
|
||||
_02305B54:
|
||||
@@ -452,9 +478,14 @@ _02305BE0:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02305BF0: .word 0x00000C83
|
||||
_02305BF4: .word 0x00000C84
|
||||
#ifdef JAPAN
|
||||
#define END_NEGATIVE_STATUS_CONDITION_DATA_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_NEGATIVE_STATUS_CONDITION_DATA_OFFSET 0
|
||||
#endif
|
||||
_02305BF0: .word 0x00000C83 + END_NEGATIVE_STATUS_CONDITION_DATA_OFFSET
|
||||
_02305BF4: .word 0x00000C84 + END_NEGATIVE_STATUS_CONDITION_DATA_OFFSET
|
||||
_02305BF8: .word ov29_02353318
|
||||
_02305BFC: .word 0x00000C85
|
||||
_02305C00: .word 0x00000C86
|
||||
_02305BFC: .word 0x00000C85 + END_NEGATIVE_STATUS_CONDITION_DATA_OFFSET
|
||||
_02305C00: .word 0x00000C86 + END_NEGATIVE_STATUS_CONDITION_DATA_OFFSET
|
||||
arm_func_end EndNegativeStatusCondition
|
||||
|
||||
@@ -14,6 +14,13 @@ EndNegativeStatusConditionWrapper: ; 0x02305C28
|
||||
|
||||
arm_func_start TransferNegativeStatusCondition
|
||||
TransferNegativeStatusCondition: ; 0x02305C3C
|
||||
#ifdef JAPAN
|
||||
#define TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET -1
|
||||
#define TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET_2 -4
|
||||
#else
|
||||
#define TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET 0
|
||||
#define TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
sub sp, sp, #0xb8
|
||||
mov sb, r0
|
||||
@@ -74,7 +81,7 @@ TransferNegativeStatusCondition: ; 0x02305C3C
|
||||
bl ov29_02307B0C
|
||||
orr r5, r5, r0
|
||||
_02305D28:
|
||||
ldrb r0, [r6, #0x106]
|
||||
ldrb r0, [r6, #0x106 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _02305D68
|
||||
mov r0, sb
|
||||
@@ -82,14 +89,14 @@ _02305D28:
|
||||
mov r2, #1
|
||||
bl TryInflictPerishSongStatus
|
||||
cmp r0, #0
|
||||
ldrneb r1, [r6, #0x106]
|
||||
ldrneb r1, [r6, #0x106 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET]
|
||||
orrne r0, r5, #0x11
|
||||
andne r5, r0, #0xff
|
||||
orreq r0, r5, #1
|
||||
andeq r5, r0, #0xff
|
||||
strneb r1, [r7, #0x106]
|
||||
strneb r1, [r7, #0x106 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET]
|
||||
mov r0, #0
|
||||
strb r0, [r6, #0x106]
|
||||
strb r0, [r6, #0x106 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET]
|
||||
_02305D68:
|
||||
ldrb r0, [r6, #0xfe]
|
||||
cmp r0, #0
|
||||
@@ -124,10 +131,10 @@ _02305DAC:
|
||||
mov r2, #0
|
||||
_02305DE0:
|
||||
add r0, r6, r2
|
||||
ldrb r0, [r0, #0x119]
|
||||
ldrb r0, [r0, #0x119 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET_2]
|
||||
add r1, r7, r2
|
||||
add r2, r2, #1
|
||||
strb r0, [r1, #0x119]
|
||||
strb r0, [r1, #0x119 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET_2]
|
||||
cmp r0, #0
|
||||
orrne r0, r5, #0x11
|
||||
andne r5, r0, #0xff
|
||||
@@ -142,7 +149,7 @@ _02305E08:
|
||||
_02305E1C:
|
||||
add r0, r6, r2
|
||||
add r2, r2, #1
|
||||
strb r1, [r0, #0x119]
|
||||
strb r1, [r0, #0x119 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET_2]
|
||||
cmp r2, #5
|
||||
blt _02305E1C
|
||||
mov r0, sb
|
||||
@@ -151,7 +158,7 @@ _02305E1C:
|
||||
orrne r0, r5, #1
|
||||
andne r5, r0, #0xff
|
||||
mov r0, #0
|
||||
add r6, r6, #0x124
|
||||
add r6, r6, #0x124 + TRANSFER_NEGATIVE_STATUS_CONDITION_OFFSET_2
|
||||
mov r3, r0
|
||||
mov r4, #1
|
||||
_02305E54:
|
||||
@@ -228,9 +235,15 @@ _02305F4C:
|
||||
add sp, sp, #0xb8
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02305F54: .word 0x00000A0C
|
||||
_02305F58: .word 0x00000A0B
|
||||
_02305F5C: .word 0x00000A0A
|
||||
#else
|
||||
_02305F54: .word 0x00000CCC
|
||||
_02305F58: .word 0x00000CCB
|
||||
_02305F5C: .word 0x00000CCA
|
||||
#endif
|
||||
arm_func_end TransferNegativeStatusCondition
|
||||
|
||||
arm_func_start ov29_02305F60
|
||||
@@ -246,9 +259,15 @@ ov29_02305F60: ; 0x02305F60
|
||||
mov r0, r5
|
||||
bl SubInitMonster
|
||||
mov ip, #0
|
||||
#ifdef JAPAN
|
||||
strb ip, [r5, #0x105]
|
||||
strb ip, [r5, #0xfe]
|
||||
add r3, r5, #0x120
|
||||
#else
|
||||
strb ip, [r5, #0x106]
|
||||
strb ip, [r5, #0xfe]
|
||||
add r3, r5, #0x124
|
||||
#endif
|
||||
mov r1, ip
|
||||
mov r2, #1
|
||||
_02305FA0:
|
||||
@@ -315,7 +334,11 @@ _02306070:
|
||||
mov r4, #1
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
#ifdef JAPAN
|
||||
rsb r2, r4, #0x9d0
|
||||
#else
|
||||
rsb r2, r4, #0xc90
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
cmp r6, #0
|
||||
beq _02306164
|
||||
@@ -329,7 +352,11 @@ _02306070:
|
||||
_023060A8:
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
#ifdef JAPAN
|
||||
mov r2, #0x9d0
|
||||
#else
|
||||
mov r2, #0xc90
|
||||
#endif
|
||||
mov r4, #1
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldrb r0, [sp, #0x20]
|
||||
@@ -389,13 +416,18 @@ _02306164:
|
||||
bl ov29_02304A48
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_0230618C: .word 0x00000C8D
|
||||
_02306190: .word 0x00000C8E
|
||||
#ifdef JAPAN
|
||||
#define END_SLEEP_CLASS_STATUS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_SLEEP_CLASS_STATUS_OFFSET 0
|
||||
#endif
|
||||
_0230618C: .word 0x00000C8D + END_SLEEP_CLASS_STATUS_OFFSET
|
||||
_02306190: .word 0x00000C8E + END_SLEEP_CLASS_STATUS_OFFSET
|
||||
_02306194: .word ov10_022C45A8
|
||||
_02306198: .word 0x0000024E
|
||||
_0230619C: .word ov10_022C45A0
|
||||
_023061A0: .word ov10_022C4868
|
||||
_023061A4: .word 0x00000C91
|
||||
_023061A4: .word 0x00000C91 + END_SLEEP_CLASS_STATUS_OFFSET
|
||||
arm_func_end EndSleepClassStatus
|
||||
|
||||
arm_func_start EndBurnClassStatus
|
||||
@@ -447,9 +479,15 @@ _02306238:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0230624C: .word 0x000009DE
|
||||
_02306250: .word 0x000009DC
|
||||
_02306254: .word 0x000009DD
|
||||
#else
|
||||
_0230624C: .word 0x00000C9E
|
||||
_02306250: .word 0x00000C9C
|
||||
_02306254: .word 0x00000C9D
|
||||
#endif
|
||||
arm_func_end EndBurnClassStatus
|
||||
|
||||
arm_func_start EndFrozenClassStatus
|
||||
@@ -478,7 +516,11 @@ _023062A0: ; jump table
|
||||
b _02306300 ; case 2
|
||||
b _02306338 ; case 3
|
||||
b _0230635C ; case 4
|
||||
#ifdef JAPAN
|
||||
b _02306300 ; case 5
|
||||
#else
|
||||
b _0230631C ; case 5
|
||||
#endif
|
||||
b _02306380 ; case 6
|
||||
b _023062E4 ; case 7
|
||||
b _02306398 ; case 8
|
||||
@@ -508,6 +550,7 @@ _02306300:
|
||||
mov r1, r7
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _02306398
|
||||
#ifndef JAPAN
|
||||
_0230631C:
|
||||
cmp r6, #0
|
||||
beq _02306398
|
||||
@@ -516,6 +559,7 @@ _0230631C:
|
||||
mov r1, r7
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _02306398
|
||||
#endif
|
||||
_02306338:
|
||||
cmp r6, #0
|
||||
beq _02306350
|
||||
@@ -556,16 +600,28 @@ _02306398:
|
||||
bl ov29_022E6798
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_023063BC: .word 0x00000C9F
|
||||
_023063C0: .word 0x00000C99
|
||||
_023063C4: .word 0x00000C9A
|
||||
#ifdef JAPAN
|
||||
#define END_FROZEN_CLASS_STATUS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_FROZEN_CLASS_STATUS_OFFSET 0
|
||||
#endif
|
||||
_023063BC: .word 0x00000C9F + END_FROZEN_CLASS_STATUS_OFFSET
|
||||
_023063C0: .word 0x00000C99 + END_FROZEN_CLASS_STATUS_OFFSET
|
||||
_023063C4: .word 0x00000C9A + END_FROZEN_CLASS_STATUS_OFFSET
|
||||
#ifndef JAPAN
|
||||
_023063C8: .word 0x00000C9B
|
||||
_023063CC: .word 0x00000C98
|
||||
_023063D0: .word 0x00000CBB
|
||||
#endif
|
||||
_023063CC: .word 0x00000C98 + END_FROZEN_CLASS_STATUS_OFFSET
|
||||
_023063D0: .word 0x00000CBB + END_FROZEN_CLASS_STATUS_OFFSET
|
||||
arm_func_end EndFrozenClassStatus
|
||||
|
||||
arm_func_start EndCringeClassStatus
|
||||
EndCringeClassStatus: ; 0x023063D4
|
||||
#ifdef JAPAN
|
||||
#define END_CRINGE_CLASS_STATUS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_CRINGE_CLASS_STATUS_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r5, r1
|
||||
mov r6, r0
|
||||
@@ -625,7 +681,7 @@ _02306488:
|
||||
_0230649C:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, #0xcb0
|
||||
mov r2, #0xcb0 + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _023064C0
|
||||
_023064B0:
|
||||
@@ -642,16 +698,21 @@ _023064C0:
|
||||
bl CalcSpeedStageWrapper
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_023064DC: .word 0x00000C97
|
||||
_023064E0: .word 0x00000CA4
|
||||
_023064E4: .word 0x00000CA7
|
||||
_023064E8: .word 0x00000CBD
|
||||
_023064EC: .word 0x00000CB7
|
||||
_023064F0: .word 0x00000CBC
|
||||
_023064DC: .word 0x00000C97 + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
_023064E0: .word 0x00000CA4 + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
_023064E4: .word 0x00000CA7 + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
_023064E8: .word 0x00000CBD + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
_023064EC: .word 0x00000CB7 + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
_023064F0: .word 0x00000CBC + END_CRINGE_CLASS_STATUS_OFFSET
|
||||
arm_func_end EndCringeClassStatus
|
||||
|
||||
arm_func_start EndReflectClassStatus
|
||||
EndReflectClassStatus: ; 0x023064F4
|
||||
#ifdef JAPAN
|
||||
#define END_REFLECT_CLASS_STATUS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_REFLECT_CLASS_STATUS_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r1
|
||||
mov r0, r5
|
||||
@@ -763,7 +824,7 @@ _0230665C:
|
||||
b _02306688
|
||||
_0230666C:
|
||||
mov r0, r5
|
||||
mov r1, #0xcc0
|
||||
mov r1, #0xcc0 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _02306688
|
||||
_0230667C:
|
||||
@@ -777,21 +838,21 @@ _02306688:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0230669C: .word 0x00000C87
|
||||
_023066A0: .word 0x00000C8A
|
||||
_023066A4: .word 0x00000C88
|
||||
_023066A8: .word 0x00000C89
|
||||
_023066AC: .word 0x00000C8B
|
||||
_023066B0: .word 0x00000C8C
|
||||
_023066B4: .word 0x00000CA6
|
||||
_023066B8: .word 0x00000CAE
|
||||
_023066BC: .word 0x00000CB1
|
||||
_023066C0: .word 0x00000CB2
|
||||
_023066C4: .word 0x00000CB3
|
||||
_023066C8: .word 0x00000CB4
|
||||
_023066CC: .word 0x00000CB5
|
||||
_023066D0: .word 0x00000CBE
|
||||
_023066D4: .word 0x00000CC1
|
||||
_0230669C: .word 0x00000C87 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066A0: .word 0x00000C8A + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066A4: .word 0x00000C88 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066A8: .word 0x00000C89 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066AC: .word 0x00000C8B + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066B0: .word 0x00000C8C + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066B4: .word 0x00000CA6 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066B8: .word 0x00000CAE + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066BC: .word 0x00000CB1 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066C0: .word 0x00000CB2 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066C4: .word 0x00000CB3 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066C8: .word 0x00000CB4 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066CC: .word 0x00000CB5 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066D0: .word 0x00000CBE + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
_023066D4: .word 0x00000CC1 + END_REFLECT_CLASS_STATUS_OFFSET
|
||||
arm_func_end EndReflectClassStatus
|
||||
|
||||
arm_func_start TryRemoveSnatchedMonsterFromDungeonStruct
|
||||
@@ -810,10 +871,17 @@ TryRemoveSnatchedMonsterFromDungeonStruct: ; 0x023066D8
|
||||
mov r2, #0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x19000
|
||||
#ifdef JAPAN
|
||||
str r2, [r0, #0x860]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x19000
|
||||
str r2, [r0, #0x868]
|
||||
#else
|
||||
str r2, [r0, #0x904]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x19000
|
||||
str r2, [r0, #0x90c]
|
||||
#endif
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_02306724: .word DUNGEON_PTR
|
||||
@@ -881,7 +949,11 @@ _023067D4:
|
||||
ldr r1, [r1]
|
||||
cmp r6, #2
|
||||
add r1, r1, #0x3000
|
||||
#ifdef JAPAN
|
||||
strb r0, [r1, #0xd94]
|
||||
#else
|
||||
strb r0, [r1, #0xe38]
|
||||
#endif
|
||||
beq _02306894
|
||||
mov r1, r7
|
||||
mov r2, r0
|
||||
@@ -928,13 +1000,18 @@ _02306894:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_023068A8: .word 0x00000C95
|
||||
_023068AC: .word 0x00000C96
|
||||
#ifdef JAPAN
|
||||
#define END_CURSE_CLASS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_CURSE_CLASS_OFFSET 0
|
||||
#endif
|
||||
_023068A8: .word 0x00000C95 + END_CURSE_CLASS_OFFSET
|
||||
_023068AC: .word 0x00000C96 + END_CURSE_CLASS_OFFSET
|
||||
_023068B0: .word DUNGEON_PTR
|
||||
_023068B4: .word 0x00000CA5
|
||||
_023068B8: .word 0x00000CBF
|
||||
_023068BC: .word 0x00000CC2
|
||||
_023068C0: .word 0x00000CC3
|
||||
_023068B4: .word 0x00000CA5 + END_CURSE_CLASS_OFFSET
|
||||
_023068B8: .word 0x00000CBF + END_CURSE_CLASS_OFFSET
|
||||
_023068BC: .word 0x00000CC2 + END_CURSE_CLASS_OFFSET
|
||||
_023068C0: .word 0x00000CC3 + END_CURSE_CLASS_OFFSET
|
||||
arm_func_end EndCurseClassStatus
|
||||
|
||||
arm_func_start EndLeechSeedClassStatus
|
||||
@@ -977,12 +1054,22 @@ _0230692C:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02306948: .word 0x000009D4
|
||||
_0230694C: .word 0x000009EF
|
||||
#else
|
||||
_02306948: .word 0x00000C94
|
||||
_0230694C: .word 0x00000CAF
|
||||
#endif
|
||||
arm_func_end EndLeechSeedClassStatus
|
||||
|
||||
arm_func_start EndSureShotClassStatus
|
||||
EndSureShotClassStatus: ; 0x02306950
|
||||
#ifdef JAPAN
|
||||
#define END_SURE_SHOT_CLASS_STATUS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_SURE_SHOT_CLASS_STATUS_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r1
|
||||
mov r0, r5
|
||||
@@ -1007,7 +1094,7 @@ _0230698C: ; jump table
|
||||
b _023069E0 ; case 5
|
||||
_023069A4:
|
||||
mov r0, r5
|
||||
mov r1, #0xca0
|
||||
mov r1, #0xca0 + END_SURE_SHOT_CLASS_STATUS_OFFSET
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _023069E0
|
||||
_023069B4:
|
||||
@@ -1031,9 +1118,9 @@ _023069E0:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_023069F4: .word 0x00000CA1
|
||||
_023069F8: .word 0x00000CA2
|
||||
_023069FC: .word 0x00000CA3
|
||||
_023069F4: .word 0x00000CA1 + END_SURE_SHOT_CLASS_STATUS_OFFSET
|
||||
_023069F8: .word 0x00000CA2 + END_SURE_SHOT_CLASS_STATUS_OFFSET
|
||||
_023069FC: .word 0x00000CA3 + END_SURE_SHOT_CLASS_STATUS_OFFSET
|
||||
arm_func_end EndSureShotClassStatus
|
||||
|
||||
arm_func_start EndInvisibleClassStatus
|
||||
@@ -1117,10 +1204,15 @@ _02306AFC:
|
||||
bl EnsureCanStandCurrentTile
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_02306B18: .word 0x00000CA8
|
||||
_02306B1C: .word 0x00000CB8
|
||||
_02306B20: .word 0x00000CB6
|
||||
_02306B24: .word 0x00000CAC
|
||||
#ifdef JAPAN
|
||||
#define END_INVISIBLE_CLASS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_INVISIBLE_CLASS_OFFSET 0
|
||||
#endif
|
||||
_02306B18: .word 0x00000CA8 + END_INVISIBLE_CLASS_OFFSET
|
||||
_02306B1C: .word 0x00000CB8 + END_INVISIBLE_CLASS_OFFSET
|
||||
_02306B20: .word 0x00000CB6 + END_INVISIBLE_CLASS_OFFSET
|
||||
_02306B24: .word 0x00000CAC + END_INVISIBLE_CLASS_OFFSET
|
||||
arm_func_end EndInvisibleClassStatus
|
||||
|
||||
arm_func_start EndBlinkerClassStatus
|
||||
@@ -1180,10 +1272,15 @@ _02306BB8:
|
||||
bl UpdateMinimap
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02306BE8: .word 0x00000CA9
|
||||
_02306BEC: .word 0x00000CAA
|
||||
_02306BF0: .word 0x00000CAB
|
||||
_02306BF4: .word 0x00000CAD
|
||||
#ifdef JAPAN
|
||||
#define END_BLINKER_CLASS_OFFSET -0x2C0
|
||||
#else
|
||||
#define END_BLINKER_CLASS_OFFSET 0
|
||||
#endif
|
||||
_02306BE8: .word 0x00000CA9 + END_BLINKER_CLASS_OFFSET
|
||||
_02306BEC: .word 0x00000CAA + END_BLINKER_CLASS_OFFSET
|
||||
_02306BF0: .word 0x00000CAB + END_BLINKER_CLASS_OFFSET
|
||||
_02306BF4: .word 0x00000CAD + END_BLINKER_CLASS_OFFSET
|
||||
arm_func_end EndBlinkerClassStatus
|
||||
|
||||
arm_func_start EndMuzzledStatus
|
||||
@@ -1217,7 +1314,11 @@ _02306C4C:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02306C60: .word 0x000009F9
|
||||
#else
|
||||
_02306C60: .word 0x00000CB9
|
||||
#endif
|
||||
arm_func_end EndMuzzledStatus
|
||||
|
||||
arm_func_start EndMiracleEyeStatus
|
||||
@@ -1251,7 +1352,11 @@ _02306CB8:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02306CCC: .word 0x00000A04
|
||||
#else
|
||||
_02306CCC: .word 0x00000CC4
|
||||
#endif
|
||||
arm_func_end EndMiracleEyeStatus
|
||||
|
||||
arm_func_start EndMagnetRiseStatus
|
||||
@@ -1291,7 +1396,11 @@ _02306D2C:
|
||||
bl ov29_02321134
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02306D50: .word 0x00000A05
|
||||
#else
|
||||
_02306D50: .word 0x00000CC5
|
||||
#endif
|
||||
arm_func_end EndMagnetRiseStatus
|
||||
|
||||
arm_func_start ov29_02306D54
|
||||
@@ -1307,7 +1416,11 @@ _02306D70:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r0, #0xad4]
|
||||
#else
|
||||
ldr r1, [r0, #0xb78]
|
||||
#endif
|
||||
cmp r1, #0
|
||||
moveq r0, r7
|
||||
beq _02306DA0
|
||||
@@ -2045,7 +2158,11 @@ _02307794:
|
||||
ldr r1, [r2]
|
||||
add r1, r1, r0, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r1, #0xad4]
|
||||
#else
|
||||
ldr r1, [r1, #0xb78]
|
||||
#endif
|
||||
cmp sb, r1
|
||||
streqb r0, [r7, #0xe8]
|
||||
ldreq r1, [sb, #0xb4]
|
||||
@@ -2429,7 +2546,11 @@ EndFrozenStatus: ; 0x02307C78
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02307CDC: .word 0x000009DF
|
||||
#else
|
||||
_02307CDC: .word 0x00000C9F
|
||||
#endif
|
||||
arm_func_end EndFrozenStatus
|
||||
|
||||
arm_func_start ov29_02307CE0
|
||||
@@ -2498,14 +2619,25 @@ TryRestoreRoostTyping: ; 0x02307D54
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02307DBC: .word 0x00000A08
|
||||
#else
|
||||
_02307DBC: .word 0x00000CC8
|
||||
#endif
|
||||
arm_func_end TryRestoreRoostTyping
|
||||
|
||||
arm_func_start ov29_02307DC0
|
||||
ov29_02307DC0: ; 0x02307DC0
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r0, #0xb4]
|
||||
mov r0, #0
|
||||
strb r0, [r1, #0x103]
|
||||
strb r0, [r1, #0x104]
|
||||
#else
|
||||
mov r1, #0
|
||||
strb r1, [r0, #0x104]
|
||||
strb r1, [r0, #0x105]
|
||||
#endif
|
||||
bx lr
|
||||
arm_func_end ov29_02307DC0
|
||||
|
||||
@@ -2518,7 +2650,11 @@ _02307DD8:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xa94]
|
||||
#else
|
||||
ldr r6, [r0, #0xb38]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__02307EF8
|
||||
cmp r0, #0
|
||||
@@ -2539,7 +2675,11 @@ _02307E2C:
|
||||
ldr r0, [fp]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sb, [r0, #0xa84]
|
||||
#else
|
||||
ldr sb, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, sb
|
||||
bl EntityIsValid__02307EF8
|
||||
cmp r0, #0
|
||||
|
||||
@@ -46,10 +46,17 @@ TryTriggerMonsterHouse: ; 0x02307F4C
|
||||
strb r1, [r2, #0x793]
|
||||
ldr r1, [r0]
|
||||
add r0, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r2, [r0, #0x25]
|
||||
cmp r2, #0xff
|
||||
beq _02308268
|
||||
add r0, r1, #0x244
|
||||
#else
|
||||
ldrb r2, [r0, #0xc9]
|
||||
cmp r2, #0xff
|
||||
beq _02308268
|
||||
add r0, r1, #0x2e8
|
||||
#endif
|
||||
add r1, r0, #0xec00
|
||||
mov r0, #0x1c
|
||||
mla r1, r2, r0, r1
|
||||
|
||||
@@ -54,6 +54,234 @@ _02308338:
|
||||
|
||||
arm_func_start RunMonsterAi
|
||||
RunMonsterAi: ; 0x02308340
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, r0
|
||||
ldr sb, [sl, #0xb4]
|
||||
ldrh r1, [sb]
|
||||
tst r1, #0x8000
|
||||
beq _023098A8
|
||||
ldrb r1, [sb, #0xc4]
|
||||
cmp r1, #6
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r1, sl
|
||||
mov r2, #1
|
||||
bl EndFrozenClassStatus
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_023098A8:
|
||||
mov r1, #0
|
||||
strb r1, [sb, #0x10b]
|
||||
ldrb r1, [sb, #0xbc]
|
||||
cmp r1, #6
|
||||
bls _023098C8
|
||||
bl ShouldRunMonsterAi
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_023098C8:
|
||||
ldrb r0, [sb, #0xbc]
|
||||
cmp r0, #7
|
||||
ldrneb r0, [sb, #0x108]
|
||||
cmpne r0, #0
|
||||
beq _02309924
|
||||
mov r0, sl
|
||||
bl ov29_02300B40
|
||||
cmp r0, #0
|
||||
beq _02309910
|
||||
mov r0, #0
|
||||
mov r1, sl
|
||||
mov r2, r0
|
||||
strb r0, [sb, #0x108]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldr r1, _02309BB0 ; =0x00000B2D
|
||||
mov r0, sl
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_02309910:
|
||||
mov r0, sl
|
||||
bl ov29_0230E914
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_02309924:
|
||||
mov r0, sl
|
||||
bl HasStatusThatPreventsActing
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldr r4, _02309BB4 ; =0x023547B8
|
||||
ldr r0, [r4]
|
||||
add r0, r0, #0x3000
|
||||
ldrb r0, [r0, #0xd94]
|
||||
cmp r0, #0
|
||||
beq _023099E4
|
||||
mov r7, #0
|
||||
mov fp, r7
|
||||
mov r5, #1
|
||||
mov r6, r7
|
||||
b _023099DC
|
||||
_02309960:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r8, [r0, #0xad4]
|
||||
cmp r8, #0
|
||||
moveq r0, r6
|
||||
beq _02309990
|
||||
ldr r0, [r8]
|
||||
cmp r0, #0
|
||||
movne r0, r5
|
||||
moveq r0, fp
|
||||
and r0, r0, #0xff
|
||||
_02309990:
|
||||
cmp r0, #0
|
||||
beq _023099D8
|
||||
ldr r0, [r8, #0xb4]
|
||||
ldrb r0, [r0, #0xd8]
|
||||
cmp r0, #2
|
||||
bne _023099D8
|
||||
mov r0, sl
|
||||
mov r1, r8
|
||||
bl CanSeeTarget
|
||||
cmp r0, #0
|
||||
beq _023099D8
|
||||
ldr r0, [r8, #0xb4]
|
||||
ldrb r0, [r0, #0xd9]
|
||||
cmp r0, #0
|
||||
movne r0, #2
|
||||
moveq r0, #1
|
||||
strb r0, [sb, #0x10b]
|
||||
b _023099E4
|
||||
_023099D8:
|
||||
add r7, r7, #1
|
||||
_023099DC:
|
||||
cmp r7, #0x14
|
||||
blt _02309960
|
||||
_023099E4:
|
||||
add r0, sb, #0x4a
|
||||
bl ClearMonsterActionFields
|
||||
ldrb r0, [sb, #0xbc]
|
||||
cmp r0, #7
|
||||
bne _02309A2C
|
||||
ldrsh r1, [sb, #2]
|
||||
add r0, sb, #0x4a
|
||||
bl SetActionPassTurnOrWalk
|
||||
mov r0, #8
|
||||
bl DungeonRandInt
|
||||
strb r0, [sb, #0x4c]
|
||||
ldrsh r1, [sl, #4]
|
||||
add r0, sb, #0x100
|
||||
strh r1, [r0, #0x7a]
|
||||
ldrsh r1, [sl, #6]
|
||||
sub r1, r1, #1
|
||||
strh r1, [r0, #0x7c]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_02309A2C:
|
||||
mov r0, sl
|
||||
bl ov29_0230E914
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r0, sl
|
||||
mov r1, #0x15
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
bne _02309AEC
|
||||
mov r0, sl
|
||||
bl ChooseAiMove
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldrb r0, [sb, #0xd0]
|
||||
cmp r0, #2
|
||||
bne _02309A84
|
||||
ldrsh r1, [sb, #2]
|
||||
add r0, sb, #0x4a
|
||||
bl SetActionPassTurnOrWalk
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_02309A84:
|
||||
ldrsh r0, [sb, #2]
|
||||
bl GetCanMoveFlag
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r0, sl
|
||||
mov r1, #1
|
||||
bl AiMovement
|
||||
ldrb r0, [sb, #6]
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r0, sl
|
||||
mov r1, #0x17
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #1
|
||||
ldmhiia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r0, #0
|
||||
mov r1, sl
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldr r1, _02309BB8 ; =0x00000B2E
|
||||
mov r0, sl
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_02309AEC:
|
||||
ldrb r0, [sb, #0xd0]
|
||||
cmp r0, #2
|
||||
bne _02309B08
|
||||
ldrsh r1, [sb, #2]
|
||||
add r0, sb, #0x4a
|
||||
bl SetActionPassTurnOrWalk
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_02309B08:
|
||||
ldrsh r0, [sb, #2]
|
||||
bl GetCanMoveFlag
|
||||
cmp r0, #0
|
||||
beq _02309B24
|
||||
mov r0, sl
|
||||
mov r1, #1
|
||||
bl AiMovement
|
||||
_02309B24:
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #0
|
||||
cmpne r0, #1
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
mov r0, sl
|
||||
bl ChooseAiMove
|
||||
ldrsh r0, [sb, #2]
|
||||
bl GetCanMoveFlag
|
||||
cmp r0, #0
|
||||
ldrneb r0, [sb, #6]
|
||||
cmpne r0, #0
|
||||
beq _02309B90
|
||||
mov r0, sl
|
||||
mov r1, #0x17
|
||||
bl IqSkillIsEnabled
|
||||
cmp r0, #0
|
||||
beq _02309B90
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #1
|
||||
bhi _02309B90
|
||||
mov r0, #0
|
||||
mov r1, sl
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldr r1, _02309BB8 ; =0x00000B2E
|
||||
mov r0, sl
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
_02309B90:
|
||||
ldrh r0, [sb, #0x4a]
|
||||
cmp r0, #0
|
||||
cmpne r0, #1
|
||||
movne r0, #0
|
||||
strneb r0, [sb, #0x7d]
|
||||
strneb r0, [sb, #0x14a]
|
||||
strneb r0, [sb, #0x14d]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02309BB0: .word 0x00000B2D
|
||||
_02309BB4: .word 0x023547B8
|
||||
_02309BB8: .word 0x00000B2E
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xb4]
|
||||
@@ -232,6 +460,7 @@ _023085B4:
|
||||
.align 2, 0
|
||||
_023085D4: .word 0x00000DED
|
||||
_023085D8: .word 0x00000DEE
|
||||
#endif
|
||||
arm_func_end RunMonsterAi
|
||||
|
||||
arm_func_start ov29_023085DC
|
||||
@@ -265,6 +494,11 @@ _02308618:
|
||||
|
||||
arm_func_start ApplyDamageAndEffects
|
||||
ApplyDamageAndEffects: ; 0x0230863C
|
||||
#ifdef JAPAN
|
||||
#define APPLY_DAMAGE_AND_EFFECTS_OFFSET -4
|
||||
#else
|
||||
#define APPLY_DAMAGE_AND_EFFECTS_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x40
|
||||
ldr r7, [sp, #0x68]
|
||||
@@ -464,7 +698,9 @@ _02308914:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x12
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
addne r5, r5, #2
|
||||
@@ -645,7 +881,9 @@ _02308BB0:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #5
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308C38
|
||||
@@ -682,7 +920,9 @@ _02308C38:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0xa
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308C88
|
||||
@@ -693,17 +933,19 @@ _02308C38:
|
||||
cmp r0, r1
|
||||
bge _02308C88
|
||||
add r0, r6, #0x100
|
||||
ldrh r3, [r0, #0x92]
|
||||
ldrh r3, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
ldr r1, _02308F98 ; =ov29_0237CA6D
|
||||
mov r2, #0
|
||||
orr r3, r3, #2
|
||||
strh r3, [r0, #0x92]
|
||||
strh r3, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
strb r2, [r1]
|
||||
_02308C88:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x17
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308CDC
|
||||
@@ -718,14 +960,16 @@ _02308C88:
|
||||
ldrsh r1, [r1]
|
||||
cmp r0, r1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #4
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308CDC:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x20
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308D24
|
||||
@@ -737,14 +981,16 @@ _02308CDC:
|
||||
ldrsh r1, [r1]
|
||||
cmp r0, r1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #8
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308D24:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x27
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308D64
|
||||
@@ -754,14 +1000,16 @@ _02308D24:
|
||||
ldrsh r1, [r1]
|
||||
cmp r0, r1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #0x20
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308D64:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x3d
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308DE0
|
||||
@@ -777,23 +1025,25 @@ _02308D64:
|
||||
bl DungeonRandInt
|
||||
cmp r0, #1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #0x40
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
blt _02308DE0
|
||||
cmp r0, #2
|
||||
add r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #0x10
|
||||
strlth r1, [r0, #0x92]
|
||||
ldrgeh r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
ldrgeh r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrge r1, r1, #0x80
|
||||
strgeh r1, [r0, #0x92]
|
||||
strgeh r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308DE0:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x3e
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308E20
|
||||
@@ -803,14 +1053,16 @@ _02308DE0:
|
||||
ldrsh r1, [r1]
|
||||
cmp r0, r1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #0x100
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308E20:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0x44
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308E80
|
||||
@@ -828,14 +1080,20 @@ _02308E20:
|
||||
ldrsh r1, [r1]
|
||||
cmp r0, r1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #0x200
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308E80:
|
||||
#ifdef JAPAN
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #1
|
||||
#else
|
||||
mov r2, #1
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r3, r2
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__0230A940
|
||||
cmp r0, #0
|
||||
beq _02308EC0
|
||||
@@ -845,9 +1103,9 @@ _02308E80:
|
||||
ldrsh r1, [r1]
|
||||
cmp r0, r1
|
||||
addlt r0, r6, #0x100
|
||||
ldrlth r1, [r0, #0x92]
|
||||
ldrlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
orrlt r1, r1, #0x400
|
||||
strlth r1, [r0, #0x92]
|
||||
strlth r1, [r0, #0x92 + APPLY_DAMAGE_AND_EFFECTS_OFFSET]
|
||||
_02308EC0:
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
@@ -865,7 +1123,11 @@ _02308ECC:
|
||||
ldr r1, [r1]
|
||||
add r1, r1, r2, lsl #2
|
||||
add r1, r1, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r4, [r1, #0xad4]
|
||||
#else
|
||||
ldr r4, [r1, #0xb78]
|
||||
#endif
|
||||
cmp r4, #0
|
||||
moveq r1, #0
|
||||
streqb r1, [r0, #0xe0]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,9 +12,15 @@ ov29_0230E914: ; 0x0230E914
|
||||
bl ov29_02300B40
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
#ifdef JAPAN
|
||||
strneb r0, [r7, #0x108]
|
||||
bne _0230ED98
|
||||
ldrb r0, [r7, #0x108]
|
||||
#else
|
||||
strneb r0, [r7, #0x109]
|
||||
bne _0230ED98
|
||||
ldrb r0, [r7, #0x109]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _0230EAF0
|
||||
ldrb r0, [r7, #0x62]
|
||||
@@ -353,7 +359,11 @@ _0230EDF4:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, fp, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r4, [r0, #0xad4]
|
||||
#else
|
||||
ldr r4, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r4
|
||||
bl EntityIsValid__0230F008
|
||||
cmp r0, #0
|
||||
|
||||
@@ -18,7 +18,11 @@ _0230F04C:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xad4]
|
||||
#else
|
||||
ldr r7, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0230F008
|
||||
cmp r0, #0
|
||||
@@ -322,13 +326,23 @@ _0230F408:
|
||||
ldr r0, [r0, r7, lsl #2]
|
||||
cmp r0, #0
|
||||
bge _0230F4A0
|
||||
#ifdef JAPAN
|
||||
ldr r1, _02310B84 ; =0x0000099F
|
||||
mov r0, r8
|
||||
#else
|
||||
mov r0, r8
|
||||
mov r1, #0xc60
|
||||
#endif
|
||||
bl LogMessageByIdWithPopup
|
||||
b _0230F624
|
||||
_0230F4A0:
|
||||
#ifdef JAPAN
|
||||
mov r0, r8
|
||||
mov r1, #0x9a0
|
||||
#else
|
||||
ldr r1, _0230F648 ; =0x00000C61
|
||||
mov r0, r8
|
||||
#endif
|
||||
bl LogMessageByIdWithPopup
|
||||
b _0230F624
|
||||
_0230F4B0:
|
||||
@@ -402,8 +416,13 @@ _0230F564:
|
||||
add r0, r8, #4
|
||||
mov r1, #1
|
||||
bl RemoveGroundItem
|
||||
#ifdef JAPAN
|
||||
ldr r1, _02310B84 ; =0x0000099F
|
||||
mov r0, r8
|
||||
#else
|
||||
mov r0, r8
|
||||
mov r1, #0xc60
|
||||
#endif
|
||||
bl LogMessageByIdWithPopup
|
||||
b _0230F624
|
||||
_0230F5BC:
|
||||
@@ -428,8 +447,13 @@ _0230F5F8:
|
||||
add r0, r8, #4
|
||||
mov r1, #1
|
||||
bl RemoveGroundItem
|
||||
#ifdef JAPAN
|
||||
mov r0, r8
|
||||
mov r1, #0x9a0
|
||||
#else
|
||||
ldr r1, _0230F648 ; =0x00000C61
|
||||
mov r0, r8
|
||||
#endif
|
||||
bl LogMessageByIdWithPopup
|
||||
mov r0, r4
|
||||
mov r1, r5
|
||||
@@ -438,16 +462,25 @@ _0230F624:
|
||||
add sp, sp, #0x198
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0230F62C: .word 0x00000C5E
|
||||
#ifdef JAPAN
|
||||
#define TRY_NON_LEADER_ITEM_PICK_UP_OFFSET -0x2C1
|
||||
#else
|
||||
#define TRY_NON_LEADER_ITEM_PICK_UP_OFFSET 0
|
||||
#endif
|
||||
_0230F62C: .word 0x00000C5E + TRY_NON_LEADER_ITEM_PICK_UP_OFFSET
|
||||
_0230F630: .word 0x00001305
|
||||
_0230F634: .word 0x00001308
|
||||
_0230F638: .word 0x00000C5F
|
||||
_0230F638: .word 0x00000C5F + TRY_NON_LEADER_ITEM_PICK_UP_OFFSET
|
||||
_0230F63C: .word DUNGEON_PTR
|
||||
_0230F640: .word BAG_ITEMS_PTR_MIRROR
|
||||
_0230F644: .word 0x00001304
|
||||
#ifdef JAPAN
|
||||
_02310B84: .word 0x0000099F
|
||||
#else
|
||||
_0230F648: .word 0x00000C61
|
||||
_0230F64C: .word 0x00000C62
|
||||
_0230F650: .word 0x00000C63
|
||||
#endif
|
||||
_0230F64C: .word 0x00000C62 + TRY_NON_LEADER_ITEM_PICK_UP_OFFSET
|
||||
_0230F650: .word 0x00000C63 + TRY_NON_LEADER_ITEM_PICK_UP_OFFSET
|
||||
arm_func_end TryNonLeaderItemPickUp
|
||||
|
||||
arm_func_start ov29_0230F654
|
||||
@@ -516,6 +549,11 @@ _0230F718:
|
||||
|
||||
arm_func_start ov29_0230F728
|
||||
ov29_0230F728: ; 0x0230F728
|
||||
#ifdef JAPAN
|
||||
#define OV29_0230F728_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_0230F728_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr ip, [r1, #0xb4]
|
||||
@@ -528,12 +566,12 @@ ov29_0230F728: ; 0x0230F728
|
||||
ldrb r3, [ip, #0x5e]
|
||||
add r0, sp, #4
|
||||
bl GetExclusiveItemForMonsterFromBag
|
||||
ldr r1, [r4, #0x18c]
|
||||
ldr r1, [r4, #0x18c + OV29_0230F728_OFFSET]
|
||||
add r0, r4, #0x100
|
||||
orr r1, r1, r5
|
||||
str r1, [r4, #0x18c]
|
||||
str r1, [r4, #0x18c + OV29_0230F728_OFFSET]
|
||||
ldrsh r1, [sp, #8]
|
||||
strh r1, [r0, #0x90]
|
||||
strh r1, [r0, #0x90 + OV29_0230F728_OFFSET]
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
arm_func_end ov29_0230F728
|
||||
@@ -542,7 +580,11 @@ ov29_0230F728: ; 0x0230F728
|
||||
ExclusiveItemOffenseBoost: ; 0x0230F778
|
||||
ldr r0, [r0, #0xb4]
|
||||
add r0, r0, r1
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x220]
|
||||
#else
|
||||
ldrb r0, [r0, #0x224]
|
||||
#endif
|
||||
bx lr
|
||||
arm_func_end ExclusiveItemOffenseBoost
|
||||
|
||||
@@ -550,7 +592,11 @@ ExclusiveItemOffenseBoost: ; 0x0230F778
|
||||
ExclusiveItemDefenseBoost: ; 0x0230F788
|
||||
ldr r0, [r0, #0xb4]
|
||||
add r0, r0, r1
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x222]
|
||||
#else
|
||||
ldrb r0, [r0, #0x226]
|
||||
#endif
|
||||
bx lr
|
||||
arm_func_end ExclusiveItemDefenseBoost
|
||||
|
||||
@@ -566,7 +612,11 @@ _0230F7B0:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0230F008
|
||||
cmp r0, #0
|
||||
@@ -618,7 +668,11 @@ _0230F854:
|
||||
ldr r0, [r5]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0230F008
|
||||
cmp r0, #0
|
||||
@@ -650,7 +704,11 @@ ExclusiveItemEffectIsActive__0230F8AC: ; 0x0230F8AC
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x224
|
||||
#else
|
||||
add r0, r2, #0x228
|
||||
#endif
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ExclusiveItemEffectIsActive__0230F8AC
|
||||
@@ -858,11 +916,20 @@ ov29_0230FB30: ; 0x0230FB30
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0230FB88: .word ov29_023529A8
|
||||
#ifdef JAPAN
|
||||
_0230FB8C: .word 0x000009B6
|
||||
#else
|
||||
_0230FB8C: .word 0x00000F62
|
||||
#endif
|
||||
arm_func_end ov29_0230FB30
|
||||
|
||||
arm_func_start TickNoSlipCap
|
||||
TickNoSlipCap: ; 0x0230FB90
|
||||
#ifdef JAPAN
|
||||
#define TICK_NO_SLIP_CAP_OFFSET -1
|
||||
#else
|
||||
#define TICK_NO_SLIP_CAP_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r1, #0x6f
|
||||
mov r5, r0
|
||||
@@ -880,13 +947,13 @@ _0230FBB8:
|
||||
ldrb r0, [r4, #6]
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, pc}
|
||||
ldrb r0, [r4, #0x107]
|
||||
ldrb r0, [r4, #0x107 + TICK_NO_SLIP_CAP_OFFSET]
|
||||
add r1, r0, #1
|
||||
and r0, r1, #0xff
|
||||
cmp r0, #0x14
|
||||
strb r1, [r4, #0x107]
|
||||
strb r1, [r4, #0x107 + TICK_NO_SLIP_CAP_OFFSET]
|
||||
movhs r0, #0x13
|
||||
strhsb r0, [r4, #0x107]
|
||||
strhsb r0, [r4, #0x107 + TICK_NO_SLIP_CAP_OFFSET]
|
||||
mov r0, #0x64
|
||||
bl DungeonRandInt
|
||||
ldrb r2, [r4, #0x107]
|
||||
@@ -898,7 +965,7 @@ _0230FBB8:
|
||||
mov r0, r5
|
||||
bl ov29_0230FB30
|
||||
mov r0, #0
|
||||
strb r0, [r4, #0x107]
|
||||
strb r0, [r4, #0x107 + TICK_NO_SLIP_CAP_OFFSET]
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0230FC20: .word ov10_022C4BE4
|
||||
@@ -906,6 +973,13 @@ _0230FC20: .word ov10_022C4BE4
|
||||
|
||||
arm_func_start ov29_0230FC24
|
||||
ov29_0230FC24: ; 0x0230FC24
|
||||
#ifdef JAPAN
|
||||
#define OV29_0230FC24_OFFSET -4
|
||||
#define OV29_0230FC24_OFFSET_2 -0xA4
|
||||
#else
|
||||
#define OV29_0230FC24_OFFSET 0
|
||||
#define OV29_0230FC24_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #0x34
|
||||
movs r5, r0
|
||||
@@ -919,7 +993,7 @@ ov29_0230FC24: ; 0x0230FC24
|
||||
ldr r4, [r5, #0xb4]
|
||||
mov r1, #0
|
||||
mov r0, r5
|
||||
strb r1, [r4, #0x150]
|
||||
strb r1, [r4, #0x150 + OV29_0230FC24_OFFSET]
|
||||
bl ov29_022FB718
|
||||
bl ov29_0234B294
|
||||
mov r0, r5
|
||||
@@ -929,16 +1003,16 @@ ov29_0230FC24: ; 0x0230FC24
|
||||
bl ItemIsActive__02311034
|
||||
cmp r0, #0
|
||||
beq _0230FD0C
|
||||
ldrb r0, [r4, #0x17c]
|
||||
ldrb r0, [r4, #0x17c + OV29_0230FC24_OFFSET]
|
||||
add r1, r0, #1
|
||||
and r0, r1, #0xff
|
||||
cmp r0, #0x14
|
||||
strb r1, [r4, #0x17c]
|
||||
strb r1, [r4, #0x17c + OV29_0230FC24_OFFSET]
|
||||
movhs r0, #0x13
|
||||
strhsb r0, [r4, #0x17c]
|
||||
strhsb r0, [r4, #0x17c + OV29_0230FC24_OFFSET]
|
||||
mov r0, #0x64
|
||||
bl DungeonRandInt
|
||||
ldrb r2, [r4, #0x17c]
|
||||
ldrb r2, [r4, #0x17c + OV29_0230FC24_OFFSET]
|
||||
ldr r1, _02310A6C ; =ov10_022C4BBC
|
||||
mov r2, r2, lsl #1
|
||||
ldrsh r1, [r1, r2]
|
||||
@@ -946,7 +1020,7 @@ ov29_0230FC24: ; 0x0230FC24
|
||||
bge _0230FD0C
|
||||
mov r1, #0
|
||||
mov r0, r5
|
||||
strb r1, [r4, #0x17c]
|
||||
strb r1, [r4, #0x17c + OV29_0230FC24_OFFSET]
|
||||
bl ov29_022EC62C
|
||||
mov r0, #0
|
||||
bl DisplayActions
|
||||
@@ -1028,7 +1102,7 @@ _0230FD0C:
|
||||
str r3, [sp, #0x28]
|
||||
add r2, r2, r7, lsl #3
|
||||
bl MultiplyFixedPoint64
|
||||
ldrb r2, [r4, #0x15d]
|
||||
ldrb r2, [r4, #0x15d + OV29_0230FC24_OFFSET]
|
||||
cmp r2, #1
|
||||
ldrhi r0, _02310A78 ; =ov10_022C4A5C
|
||||
ldrhi r1, [sp, #0x30]
|
||||
@@ -1036,10 +1110,10 @@ _0230FD0C:
|
||||
addhi r0, r1, r0, lsl #16
|
||||
strhi r0, [sp, #0x30]
|
||||
mov r0, #0
|
||||
strb r0, [r4, #0x15d]
|
||||
strb r0, [r4, #0x15d + OV29_0230FC24_OFFSET]
|
||||
add r0, r4, #0x100
|
||||
ldrh r2, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x48]
|
||||
ldrh r2, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
ldrh r1, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
add r0, sp, #0x2c
|
||||
strh r2, [sp, #0x20]
|
||||
strh r1, [sp, #0x22]
|
||||
@@ -1048,11 +1122,11 @@ _0230FD0C:
|
||||
mov r0, r0, lsr #0x10
|
||||
add r1, r4, #0x100
|
||||
strh r0, [sp, #0x16]
|
||||
ldrh r0, [r1, #0x46]
|
||||
ldrh r0, [r1, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r3, sp, #4
|
||||
ldrh r2, [sp, #0x14]
|
||||
strh r0, [r3]
|
||||
ldrh r0, [r1, #0x48]
|
||||
ldrh r0, [r1, #0x48 + OV29_0230FC24_OFFSET]
|
||||
ldrh r1, [sp, #0x16]
|
||||
strh r0, [r3, #2]
|
||||
ldr r0, [r3]
|
||||
@@ -1066,9 +1140,9 @@ _0230FD0C:
|
||||
ldrh r1, [sp, #0x10]
|
||||
add r0, r4, #0x100
|
||||
ldrh r3, [sp, #0x12]
|
||||
strh r1, [r0, #0x46]
|
||||
strh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
ldrh r2, [sp, #0x20]
|
||||
strh r3, [r0, #0x48]
|
||||
strh r3, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
sub r0, sp, #4
|
||||
ldrh r1, [sp, #0x22]
|
||||
strh r2, [r0]
|
||||
@@ -1080,10 +1154,10 @@ _0230FD0C:
|
||||
cmp r0, #0x14
|
||||
blt _0230FEFC
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1100,10 +1174,10 @@ _0230FEFC:
|
||||
cmp r0, #0xa
|
||||
blt _0230FF48
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1111,10 +1185,10 @@ _0230FEFC:
|
||||
ldrlt r6, _02310A80 ; =0x00000DE7
|
||||
_0230FF48:
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1128,14 +1202,14 @@ _0230FF48:
|
||||
ldrh r2, [sp, #0xc]
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [sp, #0xe]
|
||||
strh r2, [r0, #0x46]
|
||||
strh r1, [r0, #0x48]
|
||||
strh r2, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
strh r1, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
_0230FF98:
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1149,14 +1223,14 @@ _0230FF98:
|
||||
ldrh r2, [sp, #8]
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [sp, #0xa]
|
||||
strh r2, [r0, #0x46]
|
||||
strh r1, [r0, #0x48]
|
||||
strh r2, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
strh r1, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
_0230FFE8:
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1200,12 +1274,12 @@ _0230FFE8:
|
||||
mov r3, #0x250
|
||||
bl ApplyDamageAndEffectsWrapper
|
||||
mov r0, #1
|
||||
strb r0, [r4, #0x150]
|
||||
strb r0, [r4, #0x150 + OV29_0230FC24_OFFSET]
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0230FC24_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0230FC24_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1222,9 +1296,12 @@ _023100E8:
|
||||
beq _0231013C
|
||||
cmp r7, #0
|
||||
beq _02310124
|
||||
#ifdef EUROPE
|
||||
#if defined(EUROPE)
|
||||
mov r0, r5
|
||||
bl ov29_022E34A8_EU
|
||||
#elif defined(JAPAN)
|
||||
mov r0, r5
|
||||
bl EntityIsValid__02311010
|
||||
#else
|
||||
ldr r0, _02310A84 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
@@ -1256,7 +1333,7 @@ _0231013C:
|
||||
ldr r0, _02310A84 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xc000
|
||||
ldrb r0, [r0, #0xd5a]
|
||||
ldrb r0, [r0, #0xd5a + OV29_0230FC24_OFFSET_2]
|
||||
cmp r0, #0
|
||||
bne _0231037C
|
||||
mov r0, r5
|
||||
@@ -1464,19 +1541,19 @@ _02310474:
|
||||
bl AbilityIsActiveVeneer
|
||||
cmp r0, #0
|
||||
beq _023104C0
|
||||
ldrb r1, [r4, #0x11f]
|
||||
ldrb r1, [r4, #0x11f + OV29_0230FC24_OFFSET]
|
||||
ldr r0, _02310AA8 ; =SPEED_BOOST_TURNS
|
||||
add r2, r1, #1
|
||||
ldrsh r0, [r0]
|
||||
and r1, r2, #0xff
|
||||
strb r2, [r4, #0x11f]
|
||||
strb r2, [r4, #0x11f + OV29_0230FC24_OFFSET]
|
||||
cmp r1, r0
|
||||
blt _023104C0
|
||||
mov r3, #0
|
||||
mov r0, r5
|
||||
mov r1, r5
|
||||
mov r2, #0x7f
|
||||
strb r3, [r4, #0x11f]
|
||||
strb r3, [r4, #0x11f + OV29_0230FC24_OFFSET]
|
||||
bl BoostSpeedOneStage
|
||||
_023104C0:
|
||||
ldrb r0, [r4, #0xbd]
|
||||
@@ -1621,7 +1698,7 @@ _023106C8:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, sb, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r8, [r0, #0xb28]
|
||||
ldr r8, [r0, #0xb28 + OV29_0230FC24_OFFSET_2]
|
||||
mov r0, r8
|
||||
bl EntityIsValid__02311010
|
||||
cmp r0, #0
|
||||
@@ -1863,18 +1940,23 @@ _02310A4C:
|
||||
beq _02310B6C
|
||||
b _02310FF4
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define OV29_0230FC24_DATA_OFFSET -0x2C0
|
||||
#else
|
||||
#define OV29_0230FC24_DATA_OFFSET 0
|
||||
#endif
|
||||
_02310A6C: .word ov10_022C4BBC
|
||||
_02310A70: .word 0x0000199A
|
||||
_02310A74: .word ov10_022C4FC4
|
||||
_02310A78: .word ov10_022C4A5C
|
||||
_02310A7C: .word 0x00000DE6
|
||||
_02310A80: .word 0x00000DE7
|
||||
_02310A7C: .word 0x00000DE6 + OV29_0230FC24_DATA_OFFSET
|
||||
_02310A80: .word 0x00000DE7 + OV29_0230FC24_DATA_OFFSET
|
||||
_02310A84: .word DUNGEON_PTR
|
||||
_02310A88: .word 0x00000DE8
|
||||
_02310A8C: .word 0x00000DE9
|
||||
_02310A90: .word 0x00000DEA
|
||||
_02310A88: .word 0x00000DE8 + OV29_0230FC24_DATA_OFFSET
|
||||
_02310A8C: .word 0x00000DE9 + OV29_0230FC24_DATA_OFFSET
|
||||
_02310A90: .word 0x00000DEA + OV29_0230FC24_DATA_OFFSET
|
||||
_02310A94: .word 0x00001303
|
||||
_02310A98: .word 0x00000DBD
|
||||
_02310A98: .word 0x00000DBD + OV29_0230FC24_DATA_OFFSET
|
||||
_02310A9C: .word ov10_022C46EC
|
||||
_02310AA0: .word 0x0000025F
|
||||
_02310AA4: .word ov10_022C46A0
|
||||
@@ -1994,7 +2076,7 @@ _02310C28:
|
||||
ldr r1, _02310AF0 ; =LEECH_SEED_DAMAGE_COOLDOWN
|
||||
add r0, r0, r2, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb78]
|
||||
ldr r7, [r0, #0xb78 + OV29_0230FC24_OFFSET_2]
|
||||
ldrsh r1, [r1]
|
||||
ldr r0, _02310AF4 ; =LEECH_SEED_HP_DRAIN
|
||||
cmp r7, #0
|
||||
@@ -2094,13 +2176,21 @@ _02310DC4:
|
||||
cmp r0, #0
|
||||
bne _02310FF4
|
||||
_02310DE0:
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x105]
|
||||
#else
|
||||
ldrb r0, [r4, #0x106]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _02310E9C
|
||||
add r0, r4, #6
|
||||
add r0, r0, #0x100
|
||||
bl TickStatusTurnCounter
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x105]
|
||||
#else
|
||||
ldrb r0, [r4, #0x106]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
bne _02310E9C
|
||||
mov r0, #0
|
||||
@@ -2217,7 +2307,7 @@ _02310F70:
|
||||
strb r0, [r4, #0xd2]
|
||||
mov r1, r5
|
||||
mov r2, r0
|
||||
strb r0, [r4, #0x154]
|
||||
strb r0, [r4, #0x154 + OV29_0230FC24_OFFSET]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
ldr r1, _0231100C ; =0x00000CBA
|
||||
mov r0, r5
|
||||
@@ -2236,9 +2326,9 @@ _02310FF4:
|
||||
add sp, sp, #0x34
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_02310FFC: .word 0x00000DEB
|
||||
_02311000: .word 0x00000DEC
|
||||
_02310FFC: .word 0x00000DEB + OV29_0230FC24_DATA_OFFSET
|
||||
_02311000: .word 0x00000DEC + OV29_0230FC24_DATA_OFFSET
|
||||
_02311004: .word 0x0000270F
|
||||
_02311008: .word 0x00000165
|
||||
_0231100C: .word 0x00000CBA
|
||||
_0231100C: .word 0x00000CBA + OV29_0230FC24_DATA_OFFSET
|
||||
arm_func_end ov29_0230FC24
|
||||
|
||||
@@ -27,13 +27,24 @@ ExclusiveItemEffectIsActive__02311064: ; 0x02311064
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x224
|
||||
#else
|
||||
add r0, r2, #0x228
|
||||
#endif
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ExclusiveItemEffectIsActive__02311064
|
||||
|
||||
arm_func_start TickStatusAndHealthRegen
|
||||
TickStatusAndHealthRegen: ; 0x02311088
|
||||
#ifdef JAPAN
|
||||
#define TICK_STATUS_AND_HEALTH_REGEN_OFFSET -4
|
||||
#define TICK_STATUS_AND_HEALTH_REGEN_OFFSET_2 -1
|
||||
#else
|
||||
#define TICK_STATUS_AND_HEALTH_REGEN_OFFSET 0
|
||||
#define TICK_STATUS_AND_HEALTH_REGEN_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
movs sl, r0
|
||||
mov r4, #0
|
||||
@@ -57,7 +68,7 @@ TickStatusAndHealthRegen: ; 0x02311088
|
||||
cmp r0, #0
|
||||
moveq r4, #1
|
||||
_023110E0:
|
||||
ldrb r0, [r7, #0x150]
|
||||
ldrb r0, [r7, #0x150 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
cmp r0, #0
|
||||
cmpeq r4, #0
|
||||
bne _023112A8
|
||||
@@ -150,10 +161,10 @@ _023111F4:
|
||||
cmp r3, r0
|
||||
movgt r3, r0
|
||||
add r0, r7, #0x200
|
||||
ldrsh r1, [r0, #0x10]
|
||||
add r2, r7, #0x210
|
||||
ldrsh r1, [r0, #0x10 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
add r2, r7, #0x210 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET
|
||||
add r1, r1, r3
|
||||
strh r1, [r0, #0x10]
|
||||
strh r1, [r0, #0x10 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
b _02311268
|
||||
_02311250:
|
||||
ldrsh r1, [r7, #0x10]
|
||||
@@ -163,7 +174,7 @@ _02311250:
|
||||
sub r1, r1, r4
|
||||
strh r1, [r2]
|
||||
_02311268:
|
||||
ldrsh r1, [r0, #0x10]
|
||||
ldrsh r1, [r0, #0x10 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
cmp r1, r4
|
||||
bge _02311250
|
||||
ldrsh r1, [r7, #0x12]
|
||||
@@ -188,9 +199,11 @@ _023112A8:
|
||||
ldrb r0, [r7, #0xbe]
|
||||
cmp r0, #0
|
||||
bne _0231131C
|
||||
#ifndef JAPAN
|
||||
ldr r0, [r7, #0x110]
|
||||
cmp r0, #1
|
||||
ble _02311304
|
||||
#endif
|
||||
ldrb r0, [r7, #0xbd]
|
||||
cmp r0, #4
|
||||
bne _02311304
|
||||
@@ -461,16 +474,20 @@ _023116B4:
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldrb r0, [r7, #0x105]
|
||||
ldrb r0, [r7, #0x105 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET_2]
|
||||
cmp r0, #0
|
||||
beq _0231174C
|
||||
#ifdef JAPAN
|
||||
add r0, r7, #0x104
|
||||
#else
|
||||
add r0, r7, #5
|
||||
add r0, r0, #0x100
|
||||
#endif
|
||||
bl TickStatusTurnCounter
|
||||
ldrb r0, [r7, #0x105]
|
||||
ldrb r0, [r7, #0x105 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET_2]
|
||||
cmp r0, #0
|
||||
bne _0231174C
|
||||
ldrb r0, [r7, #0x104]
|
||||
ldrb r0, [r7, #0x104 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET_2]
|
||||
cmp r0, #2
|
||||
bne _02311720
|
||||
mov r0, #0
|
||||
@@ -493,31 +510,31 @@ _02311720:
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
_02311744:
|
||||
mov r0, #0
|
||||
strb r0, [r7, #0x104]
|
||||
strb r0, [r7, #0x104 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET_2]
|
||||
_0231174C:
|
||||
mov r6, #0
|
||||
add r0, r7, #0x19
|
||||
add r0, r7, #0x19 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET
|
||||
mov sb, r6
|
||||
add r5, r0, #0x100
|
||||
add r4, r7, #0x114
|
||||
add r4, r7, #0x114 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET
|
||||
mov fp, #1
|
||||
_02311764:
|
||||
add r8, r7, sb
|
||||
ldrb r0, [r8, #0x119]
|
||||
ldrb r0, [r8, #0x119 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _02311788
|
||||
add r0, r5, sb
|
||||
bl TickStatusTurnCounter
|
||||
ldrb r0, [r8, #0x119]
|
||||
ldrb r0, [r8, #0x119 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
cmp r0, #0
|
||||
moveq r6, fp
|
||||
_02311788:
|
||||
ldrb r0, [r8, #0x114]
|
||||
ldrb r0, [r8, #0x114 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _023117A8
|
||||
add r0, r4, sb
|
||||
bl TickStatusTurnCounter
|
||||
ldrb r0, [r8, #0x114]
|
||||
ldrb r0, [r8, #0x114 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
cmp r0, #0
|
||||
moveq r6, #1
|
||||
_023117A8:
|
||||
@@ -528,7 +545,7 @@ _023117A8:
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldr r1, [sl, #0xb4]
|
||||
mov r0, sl
|
||||
ldr r5, [r1, #0x110]
|
||||
ldr r5, [r1, #0x110 + TICK_STATUS_AND_HEALTH_REGEN_OFFSET]
|
||||
bl CalcSpeedStageWrapper
|
||||
mov r4, r0
|
||||
cmp r5, r4
|
||||
@@ -550,8 +567,13 @@ _02311808: .word RAIN_ABILITY_BONUS_REGEN
|
||||
_0231180C: .word ICE_BODY_BONUS_REGEN
|
||||
_02311810: .word ov10_022C4674
|
||||
_02311814: .word 0x000003E7
|
||||
#ifdef JAPAN
|
||||
_02311818: .word 0x00000A06
|
||||
_0231181C: .word 0x00000A07
|
||||
#else
|
||||
_02311818: .word 0x00000CC6
|
||||
_0231181C: .word 0x00000CC7
|
||||
#endif
|
||||
_02311820: .word ov29_02353318
|
||||
arm_func_end TickStatusAndHealthRegen
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -16,8 +16,13 @@ ov29_02318D58: ; 0x02318D58
|
||||
cmpne r0, #0xc
|
||||
movne r0, #0
|
||||
strneb r0, [r1, #0xd2]
|
||||
#ifdef JAPAN
|
||||
strneb r0, [r1, #0x150]
|
||||
strneb r0, [r1, #0x10a]
|
||||
#else
|
||||
strneb r0, [r1, #0x154]
|
||||
strneb r0, [r1, #0x10b]
|
||||
#endif
|
||||
mov r0, r4
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r4, pc}
|
||||
@@ -70,7 +75,13 @@ _02318E20:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02318E40: .word 0x00000A33
|
||||
_02318E44: .word ov10_022C4750
|
||||
_02318E48: .word 0x00000A32
|
||||
#else
|
||||
_02318E40: .word 0x00000CF3
|
||||
_02318E44: .word ov10_022C4750
|
||||
_02318E48: .word 0x00000CF2
|
||||
#endif
|
||||
arm_func_end ov29_02318D98
|
||||
|
||||
@@ -46,8 +46,13 @@ _02318EF8:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02318F04: .word ov10_022C4734
|
||||
#ifdef JAPAN
|
||||
_02318F08: .word 0x00000A2E
|
||||
_02318F0C: .word 0x00000A2F
|
||||
#else
|
||||
_02318F08: .word 0x00000CEE
|
||||
_02318F0C: .word 0x00000CEF
|
||||
#endif
|
||||
arm_func_end TryInflictSafeguardStatus
|
||||
|
||||
arm_func_start TryInflictMistStatus
|
||||
@@ -79,7 +84,11 @@ TryInflictMistStatus: ; 0x02318F10
|
||||
bl ov29_022E3F78
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#ifdef JAPAN
|
||||
mov r2, #0xa30
|
||||
#else
|
||||
mov r2, #0xcf0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _02318F98
|
||||
_02318F88:
|
||||
@@ -93,7 +102,11 @@ _02318F98:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02318FA4: .word ov10_022C4738
|
||||
#ifdef JAPAN
|
||||
_02318FA8: .word 0x00000A31
|
||||
#else
|
||||
_02318FA8: .word 0x00000CF1
|
||||
#endif
|
||||
arm_func_end TryInflictMistStatus
|
||||
|
||||
arm_func_start TryInflictWishStatus
|
||||
@@ -139,8 +152,13 @@ _02319034:
|
||||
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
|
||||
@@ -186,8 +204,13 @@ _023190D4:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_023190E0: .word ov10_022C4740
|
||||
#ifdef JAPAN
|
||||
_023190E4: .word 0x00000A27
|
||||
_023190E8: .word 0x00000A28
|
||||
#else
|
||||
_023190E4: .word 0x00000CE7
|
||||
_023190E8: .word 0x00000CE8
|
||||
#endif
|
||||
arm_func_end TryInflictMagicCoatStatus
|
||||
|
||||
arm_func_start TryInflictLightScreenStatus
|
||||
@@ -233,8 +256,13 @@ _02319174:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02319180: .word ov10_022C4730
|
||||
#ifdef JAPAN
|
||||
_02319184: .word 0x00000A34
|
||||
_02319188: .word 0x00000A35
|
||||
#else
|
||||
_02319184: .word 0x00000CF4
|
||||
_02319188: .word 0x00000CF5
|
||||
#endif
|
||||
arm_func_end TryInflictLightScreenStatus
|
||||
|
||||
arm_func_start TryInflictReflectStatus
|
||||
@@ -280,8 +308,13 @@ _02319214:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02319220: .word ov10_022C472C
|
||||
#ifdef JAPAN
|
||||
_02319224: .word 0x00000A36
|
||||
_02319228: .word 0x00000A37
|
||||
#else
|
||||
_02319224: .word 0x00000CF6
|
||||
_02319228: .word 0x00000CF7
|
||||
#endif
|
||||
arm_func_end TryInflictReflectStatus
|
||||
|
||||
arm_func_start TryInflictProtectStatus
|
||||
@@ -331,8 +364,13 @@ _023192C4:
|
||||
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
|
||||
@@ -370,7 +408,11 @@ TryInflictMirrorCoatStatus: ; 0x023192DC
|
||||
_02319354:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#ifdef JAPAN
|
||||
mov r2, #0xA90
|
||||
#else
|
||||
mov r2, #0xd50
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_02319364:
|
||||
mov r0, r5
|
||||
@@ -378,7 +420,11 @@ _02319364:
|
||||
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
|
||||
@@ -424,8 +470,13 @@ _02319400:
|
||||
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
|
||||
@@ -471,8 +522,13 @@ _023194A0:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_023194AC: .word ov10_022C4840
|
||||
#ifdef JAPAN
|
||||
_023194B0: .word 0x00000A9A
|
||||
_023194B4: .word 0x00000A9B
|
||||
#else
|
||||
_023194B0: .word 0x00000D5A
|
||||
_023194B4: .word 0x00000D5B
|
||||
#endif
|
||||
arm_func_end TryInflictMirrorMoveStatus
|
||||
|
||||
arm_func_start TryInflictConversion2Status
|
||||
@@ -528,10 +584,15 @@ _02319568:
|
||||
bl UpdateStatusIconFlags
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02319574: .word 0x00000DC4
|
||||
#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
|
||||
_02319580: .word 0x00000D5D
|
||||
_0231957C: .word 0x00000D5C + TRY_INFLICT_CONVERSION2_STATUS_OFFSET
|
||||
_02319580: .word 0x00000D5D + TRY_INFLICT_CONVERSION2_STATUS_OFFSET
|
||||
arm_func_end TryInflictConversion2Status
|
||||
|
||||
arm_func_start TryInflictVitalThrowStatus
|
||||
@@ -577,8 +638,13 @@ _0231960C:
|
||||
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
|
||||
@@ -648,7 +714,11 @@ _023196FC:
|
||||
beq _02319728
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
#ifdef JAPAN
|
||||
mov r2, #0xaa0
|
||||
#else
|
||||
mov r2, #0xd60
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _02319738
|
||||
_02319728:
|
||||
@@ -661,7 +731,11 @@ _02319738:
|
||||
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
|
||||
|
||||
arm_func_start MirrorMoveIsActive
|
||||
@@ -702,7 +776,11 @@ ExclusiveItemEffectIsActive__023197A8: ; 0x023197A8
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x224
|
||||
#else
|
||||
add r0, r2, #0x228
|
||||
#endif
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ExclusiveItemEffectIsActive__023197A8
|
||||
@@ -770,6 +848,11 @@ _0231987C: .word ov29_0237CA18
|
||||
|
||||
arm_func_start AiConsiderMove
|
||||
AiConsiderMove: ; 0x02319880
|
||||
#ifdef JAPAN
|
||||
#define AI_CONSIDER_MOVE_OFFSET -0xA4
|
||||
#else
|
||||
#define AI_CONSIDER_MOVE_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x2c
|
||||
mov sl, r1
|
||||
@@ -903,7 +986,7 @@ _02319A64:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r8, [r0, #0xb78]
|
||||
ldr r8, [r0, #0xb78 + AI_CONSIDER_MOVE_OFFSET]
|
||||
mov r0, r8
|
||||
bl EntityIsValid__02319F8C
|
||||
cmp r0, #0
|
||||
@@ -1011,7 +1094,7 @@ _02319BF0:
|
||||
ldr r0, [sp, #0x20]
|
||||
add r0, r1, r0, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r0, [r0, #0xb78]
|
||||
ldr r0, [r0, #0xb78 + AI_CONSIDER_MOVE_OFFSET]
|
||||
str r0, [sp, #0x18]
|
||||
bl EntityIsValid__02319F8C
|
||||
cmp r0, #0
|
||||
@@ -1155,7 +1238,7 @@ _02319E10:
|
||||
ldr r0, [r7]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r8, [r0, #0xb78]
|
||||
ldr r8, [r0, #0xb78 + AI_CONSIDER_MOVE_OFFSET]
|
||||
mov r0, r8
|
||||
bl EntityIsValid__02319F8C
|
||||
cmp r0, #0
|
||||
|
||||
@@ -307,7 +307,11 @@ _0231A3A4:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r1
|
||||
add r0, r0, #0x3000
|
||||
#ifdef JAPAN
|
||||
ldrb r4, [r0, #0xb24]
|
||||
#else
|
||||
ldrb r4, [r0, #0xb74]
|
||||
#endif
|
||||
b _0231A454
|
||||
_0231A404:
|
||||
mov r0, sb
|
||||
@@ -636,8 +640,13 @@ _0231A868:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0231A870: .word ov10_022C459C
|
||||
#ifdef JAPAN
|
||||
_0231A874: .word 0x00000B35
|
||||
_0231A878: .word 0x00000B37
|
||||
#else
|
||||
_0231A874: .word 0x00000DF5
|
||||
_0231A878: .word 0x00000DF7
|
||||
#endif
|
||||
arm_func_end ShouldUsePp
|
||||
|
||||
arm_func_start ExclusiveItemEffectIsActive__0231A87C
|
||||
@@ -648,13 +657,22 @@ ExclusiveItemEffectIsActive__0231A87C: ; 0x0231A87C
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x224
|
||||
#else
|
||||
add r0, r2, #0x228
|
||||
#endif
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ExclusiveItemEffectIsActive__0231A87C
|
||||
|
||||
arm_func_start ov29_0231A8A0
|
||||
ov29_0231A8A0: ; 0x0231A8A0
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231A8A0_OFFSET -4
|
||||
#else
|
||||
#define OV29_0231A8A0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #4
|
||||
mov sb, r0
|
||||
@@ -666,7 +684,11 @@ ov29_0231A8A0: ; 0x0231A8A0
|
||||
ldr r4, [sb, #0xb4]
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreMovesEnabled
|
||||
cmp r0, #0
|
||||
bne _0231A8EC
|
||||
@@ -677,13 +699,13 @@ ov29_0231A8A0: ; 0x0231A8A0
|
||||
_0231A8EC:
|
||||
mov r1, r7
|
||||
mov r0, sb
|
||||
strb r1, [r4, #0x23f]
|
||||
strb r1, [r4, #0x23f + OV29_0231A8A0_OFFSET]
|
||||
bl ShouldUsePp
|
||||
cmp r0, #0
|
||||
movne r7, #1
|
||||
strneb r7, [r4, #0x23f]
|
||||
strneb r7, [r4, #0x23f + OV29_0231A8A0_OFFSET]
|
||||
mov r0, #0
|
||||
strb r0, [r4, #0x23e]
|
||||
strb r0, [r4, #0x23e + OV29_0231A8A0_OFFSET]
|
||||
_0231A910:
|
||||
mov r6, #0
|
||||
mov r4, #1
|
||||
@@ -704,9 +726,9 @@ _0231A924:
|
||||
beq _0231A984
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
ldreqb r0, [r8, #0x23e]
|
||||
ldreqb r0, [r8, #0x23e + OV29_0231A8A0_OFFSET]
|
||||
cmpeq r0, #0
|
||||
ldreqb r0, [r8, #0x163]
|
||||
ldreqb r0, [r8, #0x163 + OV29_0231A8A0_OFFSET]
|
||||
cmpeq r0, #0
|
||||
bne _0231A984
|
||||
add r6, r6, #1
|
||||
@@ -739,7 +761,11 @@ _0231A9C4:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_0231A9CC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0231A9D0: .word 0x00000B3D
|
||||
#else
|
||||
_0231A9D0: .word 0x00000DFD
|
||||
#endif
|
||||
arm_func_end ov29_0231A8A0
|
||||
|
||||
arm_func_start IsMonster__0231A9D4
|
||||
@@ -797,7 +823,11 @@ _0231AA74:
|
||||
ldr r0, _0231AC94 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreOrbsAllowed
|
||||
cmp r0, #0
|
||||
mov r4, #1
|
||||
@@ -821,7 +851,11 @@ _0231AAB4:
|
||||
strb r2, [sp, #8]
|
||||
add r0, sp, #8
|
||||
mov r1, r7
|
||||
#ifdef JAPAN
|
||||
add r2, r5, #0x120
|
||||
#else
|
||||
add r2, r5, #0x124
|
||||
#endif
|
||||
str r3, [sp, #0xc]
|
||||
bl AiConsiderMove
|
||||
ldrb r0, [sp, #8]
|
||||
@@ -938,12 +972,17 @@ _0231AC88:
|
||||
add sp, sp, #0x34
|
||||
ldmia sp!, {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0231AC90: .word 0x00000DF8
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231A9F8_OFFSET -0xC20
|
||||
#else
|
||||
#define OV29_0231A9F8_OFFSET 0
|
||||
#endif
|
||||
_0231AC90: .word 0x00000DF8 + OV29_0231A9F8_OFFSET
|
||||
_0231AC94: .word DUNGEON_PTR
|
||||
_0231AC98: .word 0x00000DF9
|
||||
_0231AC9C: .word 0x00000DFA
|
||||
_0231ACA0: .word 0x00000DFB
|
||||
_0231ACA4: .word 0x00000DFC
|
||||
_0231AC98: .word 0x00000DF9 + OV29_0231A9F8_OFFSET
|
||||
_0231AC9C: .word 0x00000DFA + OV29_0231A9F8_OFFSET
|
||||
_0231ACA0: .word 0x00000DFB + OV29_0231A9F8_OFFSET
|
||||
_0231ACA4: .word 0x00000DFC + OV29_0231A9F8_OFFSET
|
||||
_0231ACA8: .word 0x00000141
|
||||
arm_func_end ov29_0231A9F8
|
||||
|
||||
@@ -1029,7 +1068,11 @@ ov29_0231ADA8: ; 0x0231ADA8
|
||||
ldr r1, [r0, #0xb4]
|
||||
mov r0, #0
|
||||
mov r5, r0
|
||||
#ifdef JAPAN
|
||||
add r4, r1, #0x120
|
||||
#else
|
||||
add r4, r1, #0x124
|
||||
#endif
|
||||
mov ip, r0
|
||||
mov lr, #1
|
||||
add r2, sp, #0
|
||||
@@ -1076,7 +1119,11 @@ ov29_0231AE3C: ; 0x0231AE3C
|
||||
mov r3, #1
|
||||
_0231AE54:
|
||||
add r1, ip, lr, lsl #3
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x120]
|
||||
#else
|
||||
ldrb r1, [r1, #0x124]
|
||||
#endif
|
||||
tst r1, #1
|
||||
movne r1, r3
|
||||
moveq r1, r2
|
||||
@@ -1144,6 +1191,11 @@ _0231AF20: .word WEATHER_BALL_TYPE_TABLE
|
||||
|
||||
arm_func_start ov29_0231AF24
|
||||
ov29_0231AF24: ; 0x0231AF24
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231AF24_OFFSET -4
|
||||
#else
|
||||
#define OV29_0231AF24_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
mov r6, r0
|
||||
@@ -1166,13 +1218,13 @@ ov29_0231AF24: ; 0x0231AF24
|
||||
add r0, r4, #0x4a
|
||||
bl SetActionUseMoveAi
|
||||
mov r2, #1
|
||||
strb r2, [r4, #0x124]
|
||||
strb r2, [r4, #0x124 + OV29_0231AF24_OFFSET]
|
||||
add r0, r4, #0x100
|
||||
mov r1, #0
|
||||
strh r1, [r0, #0x26]
|
||||
strh r5, [r0, #0x28]
|
||||
strb r2, [r4, #0x12a]
|
||||
strb r1, [r4, #0x12b]
|
||||
strh r1, [r0, #0x26 + OV29_0231AF24_OFFSET]
|
||||
strh r5, [r0, #0x28 + OV29_0231AF24_OFFSET]
|
||||
strb r2, [r4, #0x12a + OV29_0231AF24_OFFSET]
|
||||
strb r1, [r4, #0x12b + OV29_0231AF24_OFFSET]
|
||||
_0231AF98:
|
||||
mov r3, #0
|
||||
mov r0, r6
|
||||
@@ -1194,8 +1246,13 @@ ov29_0231AFB4: ; 0x0231AFB4
|
||||
_0231AFC8:
|
||||
ldr r0, [r1]
|
||||
mov r4, r3
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x1840
|
||||
add r0, r0, #0x18000
|
||||
#else
|
||||
add r0, r0, #0xe4
|
||||
add r0, r0, #0x19800
|
||||
#endif
|
||||
add lr, r0, ip, lsl #4
|
||||
_0231AFDC:
|
||||
str r2, [lr, r4, lsl #3]
|
||||
@@ -1223,8 +1280,13 @@ ov29_0231B008: ; 0x0231B008
|
||||
_0231B020:
|
||||
ldr r0, [r1]
|
||||
mov r5, ip
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x1840
|
||||
add r0, r0, #0x18000
|
||||
#else
|
||||
add r0, r0, #0xe4
|
||||
add r0, r0, #0x19800
|
||||
#endif
|
||||
add r4, r0, lr, lsl #4
|
||||
_0231B034:
|
||||
str r3, [r4, r5, lsl #3]
|
||||
@@ -1245,9 +1307,15 @@ _0231B05C: .word DUNGEON_PTR
|
||||
ActivateMotorDrive: ; 0x0231B060
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
#ifdef JAPAN
|
||||
mov ip, #0x66
|
||||
mov r4, r0
|
||||
rsb r2, ip, #0x9e0
|
||||
#else
|
||||
ldr r2, _0231B0A0 ; =0x00000C3B
|
||||
mov ip, #0x66
|
||||
mov r4, r0
|
||||
#endif
|
||||
mov r1, #0
|
||||
mov r3, #2
|
||||
str ip, [sp]
|
||||
@@ -1260,7 +1328,9 @@ ActivateMotorDrive: ; 0x0231B060
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
#ifndef JAPAN
|
||||
_0231B0A0: .word 0x00000C3B
|
||||
#endif
|
||||
arm_func_end ActivateMotorDrive
|
||||
|
||||
arm_func_start TryActivateFrisk
|
||||
@@ -1326,6 +1396,11 @@ _0231B184:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231B18C: .word 0x0000097C
|
||||
_0231B190: .word 0x0000097B
|
||||
#else
|
||||
_0231B18C: .word 0x00000C3D
|
||||
_0231B190: .word 0x00000C3C
|
||||
#endif
|
||||
arm_func_end TryActivateFrisk
|
||||
|
||||
@@ -22,7 +22,11 @@ _0231B1EC:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r7, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r8, [r0, #0xad4]
|
||||
#else
|
||||
ldr r8, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl IsMonster__0231B318
|
||||
cmp r0, #0
|
||||
@@ -124,8 +128,13 @@ ActivateStench: ; 0x0231B33C
|
||||
ldr r0, _0231B360 ; =ov10_022C457C
|
||||
mov r1, #2
|
||||
ldrsh r0, [r0]
|
||||
#ifdef JAPAN
|
||||
strb r1, [r4, #0x103]
|
||||
strb r0, [r4, #0x104]
|
||||
#else
|
||||
strb r1, [r4, #0x104]
|
||||
strb r0, [r4, #0x105]
|
||||
#endif
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_0231B360: .word ov10_022C457C
|
||||
@@ -237,7 +246,11 @@ ov29_0231B490: ; 0x0231B490
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x3000
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0xd98]
|
||||
#else
|
||||
strb r1, [r0, #0xe3c]
|
||||
#endif
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0231B4A8: .word DUNGEON_PTR
|
||||
@@ -250,7 +263,11 @@ ov29_0231B4AC: ; 0x0231B4AC
|
||||
ldreq r0, _0231B4E8 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x3000
|
||||
#ifdef JAPAN
|
||||
ldreqb r0, [r0, #0xd98]
|
||||
#else
|
||||
ldreqb r0, [r0, #0xe3c]
|
||||
#endif
|
||||
ldmeqia sp!, {r3, pc}
|
||||
cmp r0, #1
|
||||
movne r0, #0
|
||||
@@ -355,7 +372,11 @@ _0231B5F4:
|
||||
movne r1, #0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x3000
|
||||
#ifdef JAPAN
|
||||
strb r1, [r0, #0xd98]
|
||||
#else
|
||||
strb r1, [r0, #0xe3c]
|
||||
#endif
|
||||
bl sub_020017EC
|
||||
bl ov29_022E81F8
|
||||
mov r0, #1
|
||||
@@ -1521,14 +1542,19 @@ _0231C6B0:
|
||||
bl TryInflictDropeyeStatus
|
||||
b _0231CB14
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define APPLY_ITEM_EFFECT_OFFSET -0x2C1
|
||||
#else
|
||||
#define APPLY_ITEM_EFFECT_OFFSET 0
|
||||
#endif
|
||||
_0231C6C0: .word 0x000001AB
|
||||
_0231C6C4: .word 0x00001317
|
||||
_0231C6C8: .word 0x00000BE6
|
||||
_0231C6CC: .word 0x00000BE7
|
||||
_0231C6C8: .word 0x00000BE6 + APPLY_ITEM_EFFECT_OFFSET
|
||||
_0231C6CC: .word 0x00000BE7 + APPLY_ITEM_EFFECT_OFFSET
|
||||
_0231C6D0: .word ov10_022C4574
|
||||
_0231C6D4: .word 0x00000256
|
||||
_0231C6D8: .word ov10_022C4558
|
||||
_0231C6DC: .word 0x00000BE8
|
||||
_0231C6DC: .word 0x00000BE8 + APPLY_ITEM_EFFECT_OFFSET
|
||||
_0231C6E0: .word 0x0000016B
|
||||
_0231C6E4: .word 0x00000192
|
||||
_0231C6E8: .word 0x00000196
|
||||
@@ -1832,7 +1858,11 @@ _0231CB14:
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
bne _0231CB48
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x224
|
||||
#else
|
||||
add r0, r1, #0x228
|
||||
#endif
|
||||
mov r1, #0x5d
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
_0231CB48:
|
||||
@@ -1871,10 +1901,10 @@ _0231CBA4:
|
||||
add sp, sp, #0x5c
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_0231CBAC: .word 0x00000C75
|
||||
_0231CBAC: .word 0x00000C75 + APPLY_ITEM_EFFECT_OFFSET
|
||||
_0231CBB0: .word OREN_BERRY_DAMAGE
|
||||
_0231CBB4: .word 0x00000C67
|
||||
_0231CBB8: .word 0x00000C76
|
||||
_0231CBB4: .word 0x00000C67 + APPLY_ITEM_EFFECT_OFFSET
|
||||
_0231CBB8: .word 0x00000C76 + APPLY_ITEM_EFFECT_OFFSET
|
||||
_0231CBBC: .word ov10_022C44EC
|
||||
_0231CBC0: .word APPLES_AND_BERRIES_ITEM_IDS
|
||||
_0231CBC4: .word ov10_022C4864
|
||||
|
||||
@@ -17,7 +17,11 @@ _0231CC08:
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231CC14: .word 0x00000928
|
||||
#else
|
||||
_0231CC14: .word 0x00000BE9
|
||||
#endif
|
||||
arm_func_end ApplyCheriBerryEffect
|
||||
|
||||
arm_func_start ApplyPechaBerryEffect
|
||||
@@ -36,7 +40,11 @@ _0231CC3C:
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231CC48: .word 0x00000928
|
||||
#else
|
||||
_0231CC48: .word 0x00000BE9
|
||||
#endif
|
||||
arm_func_end ApplyPechaBerryEffect
|
||||
|
||||
arm_func_start ApplyRawstBerryEffect
|
||||
@@ -60,11 +68,20 @@ _0231CC70:
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231CC90: .word 0x00000929
|
||||
#else
|
||||
_0231CC90: .word 0x00000BEA
|
||||
#endif
|
||||
arm_func_end ApplyRawstBerryEffect
|
||||
|
||||
arm_func_start ApplyHungerSeedEffect
|
||||
ApplyHungerSeedEffect: ; 0x0231CC94
|
||||
#ifdef JAPAN
|
||||
#define APPLY_HUNGER_SEED_EFFECT_OFFSET -4
|
||||
#else
|
||||
#define APPLY_HUNGER_SEED_EFFECT_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
mov r5, r1
|
||||
@@ -93,10 +110,10 @@ _0231CCC4:
|
||||
b _0231CD6C
|
||||
_0231CCF8:
|
||||
add r0, r4, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + APPLY_HUNGER_SEED_EFFECT_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + APPLY_HUNGER_SEED_EFFECT_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -110,11 +127,11 @@ _0231CCF8:
|
||||
ldrh r0, [sp]
|
||||
add r3, r4, #0x100
|
||||
ldrh r4, [sp, #2]
|
||||
strh r0, [r3, #0x46]
|
||||
strh r0, [r3, #0x46 + APPLY_HUNGER_SEED_EFFECT_OFFSET]
|
||||
ldr r2, _0231CD78 ; =0x00000BEC
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
strh r4, [r3, #0x48]
|
||||
strh r4, [r3, #0x48 + APPLY_HUNGER_SEED_EFFECT_OFFSET]
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0231CD6C
|
||||
_0231CD5C:
|
||||
@@ -126,9 +143,15 @@ _0231CD6C:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231CD74: .word 0x0000092B
|
||||
_0231CD78: .word 0x0000092C
|
||||
_0231CD7C: .word 0x0000092D
|
||||
#else
|
||||
_0231CD74: .word 0x00000BEB
|
||||
_0231CD78: .word 0x00000BEC
|
||||
_0231CD7C: .word 0x00000BED
|
||||
#endif
|
||||
arm_func_end ApplyHungerSeedEffect
|
||||
|
||||
arm_func_start ApplyVileSeedEffect
|
||||
@@ -184,6 +207,14 @@ ApplyViolentSeedEffect: ; 0x0231CE1C
|
||||
ldrsh r3, [r4, #0x24]
|
||||
ldr r2, [r2]
|
||||
mov r6, r0
|
||||
#ifdef JAPAN
|
||||
bl BoostOffensiveStat
|
||||
ldr r0, _0231CE64 ; =SPATK_STAT_IDX
|
||||
ldrsh r3, [r4, #0x26]
|
||||
ldr r2, [r0]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#else
|
||||
rsb r3, r3, #0x14
|
||||
bl BoostOffensiveStat
|
||||
ldrsh r3, [r4, #0x26]
|
||||
@@ -192,6 +223,7 @@ ApplyViolentSeedEffect: ; 0x0231CE1C
|
||||
ldr r2, [r1]
|
||||
mov r1, r5
|
||||
rsb r3, r3, #0x14
|
||||
#endif
|
||||
bl BoostOffensiveStat
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
@@ -212,7 +244,11 @@ ApplyGinsengEffect: ; 0x0231CE68
|
||||
ldr r1, _0231CF78 ; =GINSENG_CHANCE_3
|
||||
mov ip, #0
|
||||
ldrsh r1, [r1]
|
||||
#ifdef JAPAN
|
||||
add r3, r6, #0x120
|
||||
#else
|
||||
add r3, r6, #0x124
|
||||
#endif
|
||||
cmp r0, r1
|
||||
movlt r5, #3
|
||||
mov r0, ip
|
||||
@@ -254,9 +290,15 @@ _0231CF18:
|
||||
ldrh r1, [r7, #4]
|
||||
mov r0, #0
|
||||
bl ov29_0234B084
|
||||
#ifdef JAPAN
|
||||
ldr r2, _0231E440 ; =0x0000092F
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
#else
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
mov r2, #0xbf0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
cmp r5, #1
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
@@ -276,8 +318,14 @@ _0231CF64:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_0231CF78: .word GINSENG_CHANCE_3
|
||||
#ifdef JAPAN
|
||||
_0231E440: .word 0x0000092F
|
||||
_0231CF7C: .word 0x0000092F
|
||||
_0231CF80: .word 0x0000092E
|
||||
#else
|
||||
_0231CF7C: .word 0x00000BEF
|
||||
_0231CF80: .word 0x00000BEE
|
||||
#endif
|
||||
arm_func_end ApplyGinsengEffect
|
||||
|
||||
arm_func_start ApplyBlastSeedEffect
|
||||
@@ -364,7 +412,11 @@ _0231D0A0:
|
||||
_0231D0A8: .word ov10_022C45D8
|
||||
_0231D0AC: .word ov10_022C45D4
|
||||
_0231D0B0: .word 0x00000255
|
||||
#ifdef JAPAN
|
||||
_0231D0B4: .word 0x00000931
|
||||
#else
|
||||
_0231D0B4: .word 0x00000BF2
|
||||
#endif
|
||||
_0231D0B8: .word ov10_022C45DC
|
||||
_0231D0BC: .word ov10_022C44E8
|
||||
arm_func_end ApplyBlastSeedEffect
|
||||
@@ -628,21 +680,26 @@ _0231D460:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET -0xA4
|
||||
#else
|
||||
#define APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET 0
|
||||
#endif
|
||||
_0231D468: .word WONDER_GUMMI_IQ_GAIN
|
||||
_0231D46C: .word _020A1894
|
||||
_0231D470: .word IQ_GUMMI_GAIN_TABLE
|
||||
_0231D474: .word GUMMI_BELLY_RESTORE_TABLE
|
||||
_0231D478: .word 0x000003E7
|
||||
_0231D47C: .word 0x00000BF3
|
||||
_0231D47C: .word 0x00000BF3 + APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET
|
||||
_0231D480: .word GUMMI_LIKE_STRING_IDS
|
||||
_0231D484: .word GUMMI_IQ_STRING_IDS
|
||||
_0231D488: .word ov10_022C44CC
|
||||
_0231D48C: .word ov10_022C45E4
|
||||
_0231D490: .word ov29_023529B0
|
||||
_0231D494: .word 0x00000BF7
|
||||
_0231D498: .word 0x00000BF8
|
||||
_0231D49C: .word 0x00000BF9
|
||||
_0231D4A0: .word 0x00000BFA
|
||||
_0231D494: .word 0x00000BF7 + APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET
|
||||
_0231D498: .word 0x00000BF8 + APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET
|
||||
_0231D49C: .word 0x00000BF9 + APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET
|
||||
_0231D4A0: .word 0x00000BFA + APPLY_GUMMI_BOOSTS_DUNGEON_MODE_OFFSET
|
||||
arm_func_end ApplyGummiBoostsDungeonMode
|
||||
|
||||
arm_func_start CanMonsterUseItem
|
||||
@@ -684,8 +741,13 @@ _0231D524:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231D52C: .word 0x00000926
|
||||
_0231D530: .word 0x00000935
|
||||
#else
|
||||
_0231D52C: .word 0x00000BE7
|
||||
_0231D530: .word 0x00000BF6
|
||||
#endif
|
||||
arm_func_end CanMonsterUseItem
|
||||
|
||||
arm_func_start ApplyGrimyFoodEffect
|
||||
@@ -812,7 +874,11 @@ _0231D6C4:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0231D6D8: .word 0x000003E7
|
||||
#ifdef JAPAN
|
||||
_0231D6DC: .word 0x000009A3
|
||||
#else
|
||||
_0231D6DC: .word 0x00000C64
|
||||
#endif
|
||||
arm_func_end ApplyMixElixirEffect
|
||||
|
||||
arm_func_start ApplyDoughSeedEffect
|
||||
@@ -844,8 +910,13 @@ _0231D730:
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231D744: .word 0x000009AD
|
||||
_0231D748: .word 0x000009AE
|
||||
#else
|
||||
_0231D744: .word 0x00000C6E
|
||||
_0231D748: .word 0x00000C6F
|
||||
#endif
|
||||
arm_func_end ApplyDoughSeedEffect
|
||||
|
||||
arm_func_start ApplyViaSeedEffect
|
||||
@@ -880,8 +951,13 @@ _0231D7A0:
|
||||
bl TryWarp
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231D7B8: .word 0x000009A7
|
||||
_0231D7BC: .word 0x000009A8
|
||||
#else
|
||||
_0231D7B8: .word 0x00000C68
|
||||
_0231D7BC: .word 0x00000C69
|
||||
#endif
|
||||
arm_func_end ApplyViaSeedEffect
|
||||
|
||||
arm_func_start ApplyGravelyrockEffect
|
||||
@@ -975,14 +1051,20 @@ ApplyGonePebbleEffect: ; 0x0231D838
|
||||
ldr r0, _0231D9BC ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r0, [r0, #0x32]
|
||||
#else
|
||||
ldrsh r0, [r0, #0xd6]
|
||||
#endif
|
||||
bl MusicTableIdxToMusicId
|
||||
bl ChangeDungeonMusic
|
||||
mov r0, r4
|
||||
bl ov29_022EAF34
|
||||
#ifndef JAPAN
|
||||
bl UpdateMinimap
|
||||
mov r0, #1
|
||||
bl ov29_02339FF4
|
||||
#endif
|
||||
mov r0, #0
|
||||
bl GetApparentWeather
|
||||
bl GetWeatherColorTable
|
||||
@@ -1019,9 +1101,15 @@ _0231D9A8:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231D9B0: .word 0x000003F3
|
||||
_0231D9B4: .word 0x000009A4
|
||||
_0231D9B8: .word 0x000009A5
|
||||
#else
|
||||
_0231D9B0: .word 0x000003FF
|
||||
_0231D9B4: .word 0x00000C65
|
||||
_0231D9B8: .word 0x00000C66
|
||||
#endif
|
||||
_0231D9BC: .word DUNGEON_PTR
|
||||
arm_func_end ApplyGonePebbleEffect
|
||||
|
||||
@@ -1043,8 +1131,13 @@ ApplyGracideaEffect: ; 0x0231D9C0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
cmp r4, #3
|
||||
bne _0231DA10
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
mov r1, #0x9b0
|
||||
#else
|
||||
ldr r1, _0231DA70 ; =0x00000C71
|
||||
mov r0, r5
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_0231DA10:
|
||||
@@ -1076,10 +1169,16 @@ _0231DA50:
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231DA74: .word 0x000009B1
|
||||
_0231DA78: .word 0x000009B3
|
||||
_0231DA7C: .word 0x000009B2
|
||||
#else
|
||||
_0231DA70: .word 0x00000C71
|
||||
_0231DA74: .word 0x00000C72
|
||||
_0231DA78: .word 0x00000C74
|
||||
_0231DA7C: .word 0x00000C73
|
||||
#endif
|
||||
arm_func_end ApplyGracideaEffect
|
||||
|
||||
arm_func_start ov29_0231DA80
|
||||
@@ -1120,7 +1219,11 @@ _0231DAF8:
|
||||
ldr r0, [fp]
|
||||
add r0, r0, r4, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0231CBC8
|
||||
cmp r0, #0
|
||||
@@ -1146,14 +1249,20 @@ _0231DAF8:
|
||||
bl IsExperienceLocked
|
||||
cmp r0, #0
|
||||
movne r6, #0
|
||||
#ifdef JAPAN
|
||||
strb r6, [r8, #0x15d]
|
||||
#else
|
||||
strb r6, [r8, #0x161]
|
||||
#endif
|
||||
_0231DB70:
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
blt _0231DAF8
|
||||
mov r0, #0
|
||||
mov r2, r0
|
||||
#ifndef JAPAN
|
||||
mov r3, r0
|
||||
#endif
|
||||
mov r1, #1
|
||||
bl ov31_023877EC
|
||||
mov r4, r0
|
||||
@@ -1177,8 +1286,13 @@ _0231DB70:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231DBE0: .word 0x00000926
|
||||
_0231DBE4: .word 0x00000933
|
||||
#else
|
||||
_0231DBE0: .word 0x00000BE7
|
||||
_0231DBE4: .word 0x00000BF4
|
||||
#endif
|
||||
_0231DBE8: .word DUNGEON_PTR
|
||||
_0231DBEC: .word 0x00000141
|
||||
arm_func_end ov29_0231DA80
|
||||
@@ -1219,7 +1333,11 @@ _0231DC60:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0231CBC8
|
||||
cmp r0, #0
|
||||
@@ -1251,15 +1369,24 @@ _0231DCAC:
|
||||
movne r6, #0
|
||||
cmp r0, #0
|
||||
movne r6, #0
|
||||
#ifdef JAPAN
|
||||
strb r6, [r8, #0x15d]
|
||||
#else
|
||||
strb r6, [r8, #0x161]
|
||||
#endif
|
||||
_0231DCEC:
|
||||
add r5, r5, #1
|
||||
cmp r5, #4
|
||||
blt _0231DC60
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
mov r2, r0
|
||||
mov r1, #1
|
||||
#else
|
||||
mov r1, #1
|
||||
mov r2, r0
|
||||
mov r3, r1
|
||||
#endif
|
||||
bl ov31_023877EC
|
||||
mov r4, r0
|
||||
bl EntityIsValid__0231CBC8
|
||||
@@ -1279,9 +1406,15 @@ _0231DCEC:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231DD50: .word 0x00000926
|
||||
_0231DD54: .word DUNGEON_PTR
|
||||
_0231DD58: .word 0x000008E3
|
||||
#else
|
||||
_0231DD50: .word 0x00000BE7
|
||||
_0231DD54: .word DUNGEON_PTR
|
||||
_0231DD58: .word 0x00000BA4
|
||||
#endif
|
||||
_0231DD5C: .word 0x00000142
|
||||
arm_func_end ov29_0231DBF0
|
||||
|
||||
@@ -1312,7 +1445,11 @@ _0231DDB0:
|
||||
ldr r0, [fp]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0231CBC8
|
||||
cmp r0, #0
|
||||
@@ -1331,14 +1468,20 @@ _0231DDB0:
|
||||
bl IsExperienceLocked
|
||||
cmp r0, #0
|
||||
movne r7, #0
|
||||
#ifdef JAPAN
|
||||
strb r7, [r8, #0x15d]
|
||||
#else
|
||||
strb r7, [r8, #0x161]
|
||||
#endif
|
||||
_0231DE0C:
|
||||
add r5, r5, #1
|
||||
cmp r5, #4
|
||||
blt _0231DDB0
|
||||
mov r0, #0
|
||||
mov r2, r0
|
||||
#ifndef JAPAN
|
||||
mov r3, r0
|
||||
#endif
|
||||
mov r1, #1
|
||||
bl ov31_023877EC
|
||||
str r0, [sp, #4]
|
||||
@@ -1494,14 +1637,27 @@ _0231E044:
|
||||
add sp, sp, #0x1c
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231E04C: .word 0x00000926
|
||||
#else
|
||||
_0231E04C: .word 0x00000BE7
|
||||
#endif
|
||||
_0231E050: .word DUNGEON_PTR
|
||||
_0231E054: .word 0x0000016A
|
||||
#ifdef JAPAN
|
||||
_0231E058: .word 0x00000934
|
||||
#else
|
||||
_0231E058: .word 0x00000BF5
|
||||
#endif
|
||||
arm_func_end ov29_0231DD60
|
||||
|
||||
arm_func_start ov29_0231E05C
|
||||
ov29_0231E05C: ; 0x0231E05C
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231E05C_OFFSET -4
|
||||
#else
|
||||
#define OV29_0231E05C_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r7, r0
|
||||
tst r2, #1
|
||||
@@ -1678,10 +1834,10 @@ _0231E2FC:
|
||||
cmp r5, #0
|
||||
beq _0231E330
|
||||
add r0, r6, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0231E05C_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0231E05C_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -1740,7 +1896,7 @@ _0231E3D8:
|
||||
cmp r1, #0
|
||||
beq _0231E8E0
|
||||
mov r4, #0
|
||||
add r7, r6, #0x124
|
||||
add r7, r6, #0x124 + OV29_0231E05C_OFFSET
|
||||
mov r8, r4
|
||||
mov r5, r4
|
||||
mov r6, #1
|
||||
@@ -1822,7 +1978,7 @@ _0231E4D8:
|
||||
moveq r4, #5
|
||||
b _0231E8E0
|
||||
_0231E504:
|
||||
ldr r0, [r6, #0x110]
|
||||
ldr r0, [r6, #0x110 + OV29_0231E05C_OFFSET]
|
||||
cmp r0, #3
|
||||
movgt r0, #0
|
||||
ldmgtia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
@@ -1963,10 +2119,10 @@ _0231E6E4:
|
||||
b _0231E8E0
|
||||
_0231E6FC:
|
||||
add r0, r6, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0231E05C_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0231E05C_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -2064,10 +2220,10 @@ _0231E83C:
|
||||
b _0231E8E0
|
||||
_0231E864:
|
||||
add r0, r6, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + OV29_0231E05C_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + OV29_0231E05C_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -2227,6 +2383,11 @@ CategoryIsNotPhysical: ; 0x0231EA30
|
||||
|
||||
arm_func_start ov29_0231EA40
|
||||
ov29_0231EA40: ; 0x0231EA40
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231EA40_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_0231EA40_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, r0
|
||||
bl IsFullFloorFixedRoom
|
||||
@@ -2235,7 +2396,7 @@ ov29_0231EA40: ; 0x0231EA40
|
||||
ldr r0, _0231EDC8 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r1, r0, #0x4000
|
||||
ldrsh r0, [r1, #0xd4]
|
||||
ldrsh r0, [r1, #0xd4 + OV29_0231EA40_OFFSET]
|
||||
sub r2, r0, #0x1a
|
||||
mov r2, r2, lsl #0x10
|
||||
mov r2, r2, asr #0x10
|
||||
@@ -2249,7 +2410,7 @@ _0231EA80:
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0231EA90:
|
||||
ldrb r2, [r1, #0xc4]
|
||||
ldrb r2, [r1, #0xc4 + OV29_0231EA40_OFFSET]
|
||||
cmp r2, #0
|
||||
beq _0231EAAC
|
||||
ldr r1, _0231EDD0 ; =0x00000DFF
|
||||
@@ -2257,11 +2418,15 @@ _0231EA90:
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0231EAAC:
|
||||
ldrb r1, [r1, #0xc7]
|
||||
ldrb r1, [r1, #0xc7 + OV29_0231EA40_OFFSET]
|
||||
cmp r1, #0
|
||||
beq _0231EAC8
|
||||
mov r0, sl
|
||||
#ifdef JAPAN
|
||||
mov r1, #0xb40
|
||||
#else
|
||||
mov r1, #0xe00
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0231EAC8:
|
||||
@@ -2345,8 +2510,8 @@ _0231EBCC:
|
||||
mov r2, #1
|
||||
ldr r0, [r0]
|
||||
add r1, r0, #0xcc00
|
||||
ldrsh r0, [r1, #0xe4]
|
||||
ldrsh r1, [r1, #0xe6]
|
||||
ldrsh r0, [r1, #0xe4 + OV29_0231EA40_OFFSET]
|
||||
ldrsh r1, [r1, #0xe6 + OV29_0231EA40_OFFSET]
|
||||
bl StairsAlwaysReachable
|
||||
cmp r0, #0
|
||||
beq _0231EC64
|
||||
@@ -2383,7 +2548,7 @@ _0231EC64:
|
||||
ldrne r0, [r0]
|
||||
movne r1, #0
|
||||
addne r0, r0, #0x4000
|
||||
strneb r1, [r0, #0xc9]
|
||||
strneb r1, [r0, #0xc9 + OV29_0231EA40_OFFSET]
|
||||
mov r4, r5
|
||||
_0231EC84:
|
||||
mov r7, r4
|
||||
@@ -2412,7 +2577,7 @@ _0231ECD4:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r6, [r0, #0xb78]
|
||||
ldr r6, [r0, #0xb78 + OV29_0231EA40_OFFSET]
|
||||
mov r0, r6
|
||||
bl EntityIsValid__0231EDD8
|
||||
cmp r0, #0
|
||||
@@ -2447,7 +2612,7 @@ _0231ED58:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r5, [r0, #0xb78]
|
||||
ldr r5, [r0, #0xb78 + OV29_0231EA40_OFFSET]
|
||||
mov r0, r5
|
||||
bl EntityIsValid__0231EDD8
|
||||
cmp r0, #0
|
||||
@@ -2470,12 +2635,18 @@ _0231ED98:
|
||||
mov r0, #0x14
|
||||
add r2, r1, #0x4000
|
||||
mov r1, #0x2b
|
||||
strb r3, [r2, #0xc4]
|
||||
strb r3, [r2, #0xc4 + OV29_0231EA40_OFFSET]
|
||||
bl ov29_022EA370
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0231EDC8: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0231EDCC: .word 0x00000B41
|
||||
_0231EDD0: .word 0x00000B3F
|
||||
_0231EDD4: .word 0x00000B3E
|
||||
#else
|
||||
_0231EDCC: .word 0x00000E01
|
||||
_0231EDD0: .word 0x00000DFF
|
||||
_0231EDD4: .word 0x00000DFE
|
||||
#endif
|
||||
arm_func_end ov29_0231EA40
|
||||
|
||||
@@ -73,7 +73,11 @@ _0231EEE0:
|
||||
ldr r0, [r0]
|
||||
add r0, r0, r6, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr sb, [r0, #0xad4]
|
||||
#else
|
||||
ldr sb, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, sb
|
||||
bl EntityIsValid__0231F570
|
||||
cmp r0, #0
|
||||
@@ -511,12 +515,17 @@ _0231F53C:
|
||||
add sp, sp, #0xf4
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0231F544: .word 0x00000E45
|
||||
_0231F548: .word 0x00000E46
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231EDFC_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_0231EDFC_OFFSET 0
|
||||
#endif
|
||||
_0231F544: .word 0x00000E45 + OV29_0231EDFC_OFFSET
|
||||
_0231F548: .word 0x00000E46 + OV29_0231EDFC_OFFSET
|
||||
_0231F54C: .word DIRECTIONS_XY
|
||||
_0231F550: .word DUNGEON_PTR
|
||||
_0231F554: .word 0x00000E48
|
||||
_0231F558: .word 0x00000E47
|
||||
_0231F554: .word 0x00000E48 + OV29_0231EDFC_OFFSET
|
||||
_0231F558: .word 0x00000E47 + OV29_0231EDFC_OFFSET
|
||||
_0231F55C: .word 0x00000212
|
||||
_0231F560: .word ov29_0235171E
|
||||
_0231F564: .word 0x00000163
|
||||
|
||||
@@ -11,7 +11,11 @@ TryDrought: ; 0x0231F594
|
||||
ldr r0, [r1]
|
||||
mov r6, #0
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreOrbsAllowedVeneer
|
||||
cmp r0, #0
|
||||
bne _0231F5CC
|
||||
@@ -96,25 +100,41 @@ _0231F6B4:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_0231F6D4: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0231F6D8: .word 0x00000947
|
||||
_0231F6DC: .word 0x00000948
|
||||
_0231F6E0: .word 0x00000946
|
||||
#else
|
||||
_0231F6D8: .word 0x00000C08
|
||||
_0231F6DC: .word 0x00000C09
|
||||
_0231F6E0: .word 0x00000C07
|
||||
#endif
|
||||
arm_func_end TryDrought
|
||||
|
||||
arm_func_start ov29_0231F6E4
|
||||
ov29_0231F6E4: ; 0x0231F6E4
|
||||
#ifdef JAPAN
|
||||
#define OV29_0231F6E4_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_0231F6E4_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x38
|
||||
ldr r1, _0231FBE4 ; =DUNGEON_PTR
|
||||
mov sl, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x4000
|
||||
ldrb r0, [r0, #0xda]
|
||||
ldrb r0, [r0, #0xda + OV29_0231F6E4_OFFSET]
|
||||
bl AreTrawlOrbsAllowed
|
||||
cmp r0, #0
|
||||
bne _0231F71C
|
||||
#ifdef JAPAN
|
||||
ldr r1, _02321094 ; =0x0000090F
|
||||
mov r0, sl
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, #0xbd0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _0231FBDC
|
||||
_0231F71C:
|
||||
@@ -133,7 +153,7 @@ _0231F71C:
|
||||
_0231F74C:
|
||||
add r0, r1, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xbc8]
|
||||
ldr r7, [r0, #0xbc8 + OV29_0231F6E4_OFFSET]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__0231FBFC
|
||||
cmp r0, #0
|
||||
@@ -193,15 +213,27 @@ _0231F7A0:
|
||||
ldr r2, [r1]
|
||||
mov r1, #6
|
||||
mla r1, r8, r1, r2
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0x3d00
|
||||
ldrh r2, [r1, #0x9c]
|
||||
#else
|
||||
add r1, r1, #0x3e00
|
||||
ldrh r2, [r1, #0x40]
|
||||
#endif
|
||||
add r0, r0, #0x1100
|
||||
add r5, r5, #0xb8
|
||||
strh r2, [r0, #0xf8]
|
||||
#ifdef JAPAN
|
||||
ldrh r2, [r1, #0x9e]
|
||||
add r6, r6, #1
|
||||
strh r2, [r0, #0xfa]
|
||||
ldrh r1, [r1, #0xa0]
|
||||
#else
|
||||
ldrh r2, [r1, #0x42]
|
||||
add r6, r6, #1
|
||||
strh r2, [r0, #0xfa]
|
||||
ldrh r1, [r1, #0x44]
|
||||
#endif
|
||||
strh r1, [r0, #0xfc]
|
||||
_0231F868:
|
||||
add r8, r8, #1
|
||||
@@ -209,7 +241,7 @@ _0231F86C:
|
||||
ldr r0, _0231FBE4 ; =DUNGEON_PTR
|
||||
ldr r1, [r0]
|
||||
add r0, r1, #0x3f00
|
||||
ldrsh r0, [r0, #0xc0]
|
||||
ldrsh r0, [r0, #0xc0 + OV29_0231F6E4_OFFSET]
|
||||
cmp r8, r0
|
||||
blt _0231F74C
|
||||
_0231F884:
|
||||
@@ -351,7 +383,7 @@ _0231FA58:
|
||||
ldr r0, [r0]
|
||||
mov r8, r7
|
||||
add r0, r0, #0x1a000
|
||||
ldrb r0, [r0, #0x245]
|
||||
ldrb r0, [r0, #0x245 + OV29_0231F6E4_OFFSET]
|
||||
mov r5, r7
|
||||
str r0, [sp, #8]
|
||||
_0231FA8C:
|
||||
@@ -434,8 +466,13 @@ _0231FB9C:
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0
|
||||
beq _0231FBC0
|
||||
#ifdef JAPAN
|
||||
mov r0, sl
|
||||
mov r1, #0x910
|
||||
#else
|
||||
ldr r1, _0231FBF8 ; =0x00000BD1
|
||||
mov r0, sl
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
b _0231FBCC
|
||||
_0231FBC0:
|
||||
@@ -453,9 +490,17 @@ _0231FBDC:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0231FBE4: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02321094: .word 0x0000090F
|
||||
_0231FBE8: .word 0x000013BC
|
||||
_0231FBEC: .word 0x0000090E
|
||||
#else
|
||||
_0231FBE8: .word 0x000013BC
|
||||
_0231FBEC: .word 0x00000BCF
|
||||
#endif
|
||||
_0231FBF0: .word DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST
|
||||
_0231FBF4: .word 0x00000222
|
||||
#ifndef JAPAN
|
||||
_0231FBF8: .word 0x00000BD1
|
||||
#endif
|
||||
arm_func_end ov29_0231F6E4
|
||||
|
||||
@@ -49,7 +49,11 @@ _0231FCB4:
|
||||
ldr r0, _0231FDD4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
bl AreTileJumpsAllowed
|
||||
cmp r0, #0
|
||||
bne _0231FCE4
|
||||
@@ -121,9 +125,15 @@ _0231FDB4:
|
||||
bl ov29_0232124C
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0231FDD0: .word 0x00000B98
|
||||
_0231FDD4: .word DUNGEON_PTR
|
||||
_0231FDD8: .word 0x00000B97
|
||||
#else
|
||||
_0231FDD0: .word 0x00000E56
|
||||
_0231FDD4: .word DUNGEON_PTR
|
||||
_0231FDD8: .word 0x00000E55
|
||||
#endif
|
||||
_0231FDDC: .word DIRECTIONS_XY
|
||||
arm_func_end TryPounce
|
||||
|
||||
@@ -136,7 +146,11 @@ TryBlowAway: ; 0x0231FDE0
|
||||
ldr r0, [r3]
|
||||
mov sb, r1
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x36]
|
||||
#else
|
||||
ldrb r0, [r0, #0xda]
|
||||
#endif
|
||||
mov r1, #0xa
|
||||
mov r4, r2
|
||||
str r1, [sp, #0x20]
|
||||
@@ -366,12 +380,17 @@ _0232014C:
|
||||
add sp, sp, #0x30
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define TRY_BLOW_AWAY_OFFSET -0x2C1
|
||||
#else
|
||||
#define TRY_BLOW_AWAY_OFFSET 0
|
||||
#endif
|
||||
_02320154: .word DUNGEON_PTR
|
||||
_02320158: .word 0x00000B97
|
||||
_0232015C: .word 0x00000B98
|
||||
_02320160: .word 0x00000B99
|
||||
_02320158: .word 0x00000B97 + TRY_BLOW_AWAY_OFFSET
|
||||
_0232015C: .word 0x00000B98 + TRY_BLOW_AWAY_OFFSET
|
||||
_02320160: .word 0x00000B99 + TRY_BLOW_AWAY_OFFSET
|
||||
_02320164: .word 0x00000212
|
||||
_02320168: .word 0x00000B96
|
||||
_02320168: .word 0x00000B96 + TRY_BLOW_AWAY_OFFSET
|
||||
_0232016C: .word DIRECTIONS_XY
|
||||
_02320170: .word ov10_022C4570
|
||||
_02320174: .word 0x00000163
|
||||
|
||||
@@ -215,7 +215,11 @@ _0232047C:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__02320764
|
||||
cmp r0, #0
|
||||
@@ -413,8 +417,13 @@ _02320744:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0232074C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02320750: .word 0x0000093B
|
||||
_02320754: .word 0x0000093A
|
||||
#else
|
||||
_02320750: .word 0x00000BFC
|
||||
_02320754: .word 0x00000BFB
|
||||
#endif
|
||||
_02320758: .word ov29_023529B8
|
||||
_0232075C: .word ov29_02353700
|
||||
_02320760: .word 0x0000026F
|
||||
|
||||
@@ -22,7 +22,11 @@ _023207BC:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__02320764
|
||||
cmp r0, #0
|
||||
@@ -220,8 +224,13 @@ _02320A84:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_02320A8C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02320A90: .word 0x0000093B
|
||||
_02320A94: .word 0x0000093A
|
||||
#else
|
||||
_02320A90: .word 0x00000BFC
|
||||
_02320A94: .word 0x00000BFB
|
||||
#endif
|
||||
_02320A98: .word ov29_023529B8
|
||||
_02320A9C: .word ov29_02353700
|
||||
_02320AA0: .word 0x0000026F
|
||||
@@ -275,7 +284,11 @@ _02320B44:
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
mov r2, #1
|
||||
#ifdef JAPAN
|
||||
mov r3, #0xb00
|
||||
#else
|
||||
mov r3, #0xdc0
|
||||
#endif
|
||||
str ip, [sp]
|
||||
bl ExclusiveItemEffectIsActiveWithLogging
|
||||
cmp r0, #0
|
||||
@@ -285,7 +298,11 @@ _02320B44:
|
||||
mov ip, #6
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
#ifdef JAPAN
|
||||
rsb r3, r2, #0xb00
|
||||
#else
|
||||
rsb r3, r2, #0xdc0
|
||||
#endif
|
||||
str ip, [sp]
|
||||
bl ExclusiveItemEffectIsActiveWithLogging
|
||||
cmp r0, #0
|
||||
@@ -358,7 +375,11 @@ _02320C6C:
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
mov r2, #1
|
||||
#ifdef JAPAN
|
||||
mov r3, #0xb00
|
||||
#else
|
||||
mov r3, #0xdc0
|
||||
#endif
|
||||
str ip, [sp]
|
||||
bl ExclusiveItemEffectIsActiveWithLogging
|
||||
cmp r0, #0
|
||||
@@ -368,7 +389,11 @@ _02320C6C:
|
||||
mov ip, #6
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
#ifdef JAPAN
|
||||
rsb r3, r2, #0xb00
|
||||
#else
|
||||
rsb r3, r2, #0xdc0
|
||||
#endif
|
||||
str ip, [sp]
|
||||
bl ExclusiveItemEffectIsActiveWithLogging
|
||||
cmp r0, #0
|
||||
@@ -400,6 +425,12 @@ _02320D04: .word 0x00000163
|
||||
|
||||
arm_func_start TryWarp
|
||||
TryWarp: ; 0x02320D08
|
||||
|
||||
#ifdef JAPAN
|
||||
#define TRY_WARP_OFFSET -0xA4
|
||||
#else
|
||||
#define TRY_WARP_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov r4, #0
|
||||
mov sb, r0
|
||||
@@ -445,7 +476,7 @@ _02320DA0:
|
||||
ldr r0, _023210EC ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
ldrb r0, [r0, #0xda]
|
||||
ldrb r0, [r0, #0xda + TRY_WARP_OFFSET]
|
||||
bl AreTileJumpsAllowed
|
||||
cmp r0, #0
|
||||
bne _02320DD0
|
||||
@@ -461,9 +492,9 @@ _02320DD0:
|
||||
ldrsh r1, [r8, #4]
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xcc00
|
||||
ldrsh r2, [r0, #0xe4]
|
||||
ldrsh r2, [r0, #0xe4 + TRY_WARP_OFFSET]
|
||||
cmp r2, r1
|
||||
ldreqsh r1, [r0, #0xe6]
|
||||
ldreqsh r1, [r0, #0xe6 + TRY_WARP_OFFSET]
|
||||
ldreqsh r0, [r8, #6]
|
||||
cmpeq r1, r0
|
||||
bne _02320E20
|
||||
@@ -539,8 +570,13 @@ _02320EF4:
|
||||
add r0, sp, #0
|
||||
ldr r1, [r1]
|
||||
mov r2, #0
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0xc40
|
||||
add r1, r1, #0xc000
|
||||
#else
|
||||
add r1, r1, #0xe4
|
||||
add r1, r1, #0xcc00
|
||||
#endif
|
||||
bl FindClosestUnoccupiedTileWithin2
|
||||
cmp r0, #0
|
||||
bne _02321008
|
||||
@@ -574,8 +610,13 @@ _02320F74:
|
||||
add r0, sp, #0
|
||||
ldr r1, [r1]
|
||||
mov r2, #1
|
||||
#ifdef JAPAN
|
||||
add r1, r1, #0xc40
|
||||
add r1, r1, #0xc000
|
||||
#else
|
||||
add r1, r1, #0xe4
|
||||
add r1, r1, #0xcc00
|
||||
#endif
|
||||
bl FindUnoccupiedTileWithin3
|
||||
cmp r0, #0
|
||||
bne _02321008
|
||||
@@ -672,13 +713,18 @@ _023210DC:
|
||||
bl ov29_02321238
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_023210E8: .word 0x00000E74
|
||||
#ifdef JAPAN
|
||||
#define TRY_WARP_DATA_OFFSET -0x2BE
|
||||
#else
|
||||
#define TRY_WARP_DATA_OFFSET 0
|
||||
#endif
|
||||
_023210E8: .word 0x00000E74 + TRY_WARP_DATA_OFFSET
|
||||
_023210EC: .word DUNGEON_PTR
|
||||
_023210F0: .word 0x00000E72
|
||||
_023210F4: .word 0x00000E73
|
||||
_023210F8: .word 0x00000E71
|
||||
_023210F0: .word 0x00000E72 + TRY_WARP_DATA_OFFSET
|
||||
_023210F4: .word 0x00000E73 + TRY_WARP_DATA_OFFSET
|
||||
_023210F8: .word 0x00000E71 + TRY_WARP_DATA_OFFSET
|
||||
_023210FC: .word ov29_0237C850
|
||||
_02321100: .word 0x00000E75
|
||||
_02321100: .word 0x00000E75 + TRY_WARP_DATA_OFFSET
|
||||
arm_func_end TryWarp
|
||||
|
||||
arm_func_start EnsureCanStandCurrentTile
|
||||
@@ -772,7 +818,11 @@ _02321210:
|
||||
mov r0, r4
|
||||
ldr r1, [r1]
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrb r1, [r1, #0x20]
|
||||
#else
|
||||
ldrb r1, [r1, #0xc4]
|
||||
#endif
|
||||
bl ov29_02305814
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
@@ -889,7 +939,11 @@ _02321360:
|
||||
mov r0, sl
|
||||
bl ov29_022E4CD4
|
||||
mov r0, #1
|
||||
#ifdef JAPAN
|
||||
strb r0, [r5, #0x21d]
|
||||
#else
|
||||
strb r0, [r5, #0x221]
|
||||
#endif
|
||||
mov r0, #0
|
||||
mov r1, sl
|
||||
mov r2, r0
|
||||
@@ -909,7 +963,11 @@ _02321360:
|
||||
bl ov29_02322374
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
strb r0, [r5, #0x21d]
|
||||
#else
|
||||
strb r0, [r5, #0x221]
|
||||
#endif
|
||||
b _02321408
|
||||
_023213E4:
|
||||
ldr r1, [sp, #0x30]
|
||||
@@ -935,6 +993,11 @@ _02321428:
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02321430: .word 0x00000C53
|
||||
_02321434: .word 0x00000C54
|
||||
#else
|
||||
_02321430: .word 0x00000F11
|
||||
_02321434: .word 0x00000F12
|
||||
#endif
|
||||
arm_func_end ov29_02321288
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -777,9 +777,15 @@ _02326074:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232607C: .word 0x00000C06
|
||||
_02326080: .word DIG_DAMAGE_MULTIPLIER
|
||||
_02326084: .word 0x00000A16
|
||||
#else
|
||||
_0232607C: .word 0x00000EC4
|
||||
_02326080: .word DIG_DAMAGE_MULTIPLIER
|
||||
_02326084: .word 0x00000CD6
|
||||
#endif
|
||||
arm_func_end DoMoveDig
|
||||
|
||||
arm_func_start DoMoveSweetScent
|
||||
@@ -819,10 +825,17 @@ DoMoveRainDance: ; 0x023260D0
|
||||
ldr r2, [r2]
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
#ifdef JAPAN
|
||||
add r2, r2, #0xcc00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x9e]
|
||||
#else
|
||||
add r2, r2, #0xcd00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x42]
|
||||
#endif
|
||||
bl TryActivateWeather
|
||||
cmp r0, #0
|
||||
bne _02326118
|
||||
@@ -836,7 +849,11 @@ _02326118:
|
||||
.align 2, 0
|
||||
_02326120: .word WEATHER_MOVE_TURN_COUNT
|
||||
_02326124: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02326128: .word 0x00000C07
|
||||
#else
|
||||
_02326128: .word 0x00000EC5
|
||||
#endif
|
||||
arm_func_end DoMoveRainDance
|
||||
|
||||
arm_func_start DoMoveHail
|
||||
@@ -848,10 +865,17 @@ DoMoveHail: ; 0x0232612C
|
||||
ldr r2, [r2]
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
#ifdef JAPAN
|
||||
add r2, r2, #0xcc00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0xa0]
|
||||
#else
|
||||
add r2, r2, #0xcd00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x44]
|
||||
#endif
|
||||
bl TryActivateWeather
|
||||
cmp r0, #0
|
||||
bne _02326174
|
||||
@@ -865,7 +889,11 @@ _02326174:
|
||||
.align 2, 0
|
||||
_0232617C: .word WEATHER_MOVE_TURN_COUNT
|
||||
_02326180: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02326184: .word 0x00000C0A
|
||||
#else
|
||||
_02326184: .word 0x00000EC8
|
||||
#endif
|
||||
arm_func_end DoMoveHail
|
||||
|
||||
arm_func_start DoMoveHealStatus
|
||||
@@ -939,7 +967,11 @@ DoMoveRage: ; 0x02326220
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02326260: .word 0x00000A0F
|
||||
#else
|
||||
_02326260: .word 0x00000CCF
|
||||
#endif
|
||||
arm_func_end DoMoveRage
|
||||
|
||||
arm_func_start DoMoveSuperFang
|
||||
@@ -992,7 +1024,11 @@ _0232630C:
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02326318: .word 0x00000C0B
|
||||
#else
|
||||
_02326318: .word 0x00000EC9
|
||||
#endif
|
||||
arm_func_end DoMoveSuperFang
|
||||
|
||||
arm_func_start DoMovePainSplit
|
||||
@@ -1046,23 +1082,40 @@ _023263B8:
|
||||
mov r0, #1
|
||||
mov r2, #0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x107]
|
||||
#else
|
||||
ldrb r0, [r4, #0x108]
|
||||
#endif
|
||||
ldr r2, _02326404 ; =0x00000ECA
|
||||
mov r1, r5
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r4, #0x107]
|
||||
#else
|
||||
strlob r0, [r4, #0x108]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02326400: .word 0x000003E7
|
||||
#ifdef JAPAN
|
||||
_02326404: .word 0x00000C0C
|
||||
#else
|
||||
_02326404: .word 0x00000ECA
|
||||
#endif
|
||||
arm_func_end DoMovePainSplit
|
||||
|
||||
arm_func_start DoMoveTorment
|
||||
DoMoveTorment: ; 0x02326408
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_TORMENT_OFFSET -4
|
||||
#else
|
||||
#define DO_MOVE_TORMENT_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #8
|
||||
mov sb, r1
|
||||
@@ -1070,7 +1123,7 @@ DoMoveTorment: ; 0x02326408
|
||||
mov r7, #0
|
||||
mov sl, r0
|
||||
mov r6, r7
|
||||
add r5, r8, #0x124
|
||||
add r5, r8, #0x124 + DO_MOVE_TORMENT_OFFSET
|
||||
mov fp, #1
|
||||
_0232642C:
|
||||
ldrb r0, [r5, r6, lsl #3]
|
||||
@@ -1107,7 +1160,7 @@ _023264A0:
|
||||
add r6, r6, #1
|
||||
cmp r6, #4
|
||||
blt _0232642C
|
||||
ldrb r0, [r8, #0x144]
|
||||
ldrb r0, [r8, #0x144 + DO_MOVE_TORMENT_OFFSET]
|
||||
tst r0, #0x20
|
||||
bne _02326504
|
||||
tst r0, #0x10
|
||||
@@ -1115,10 +1168,10 @@ _023264A0:
|
||||
add r0, sp, #0
|
||||
mov r1, #0x160
|
||||
bl InitMove
|
||||
ldrb r0, [r8, #0x144]
|
||||
ldrb r0, [r8, #0x144 + DO_MOVE_TORMENT_OFFSET]
|
||||
mov r7, #1
|
||||
orr r0, r0, #0x20
|
||||
strb r0, [r8, #0x144]
|
||||
strb r0, [r8, #0x144 + DO_MOVE_TORMENT_OFFSET]
|
||||
bl ov29_0234B034
|
||||
mov r1, #0
|
||||
add r2, sp, #0
|
||||
@@ -1132,7 +1185,7 @@ _023264A0:
|
||||
_02326504:
|
||||
tst r0, #0x10
|
||||
biceq r0, r0, #0x20
|
||||
streqb r0, [r8, #0x144]
|
||||
streqb r0, [r8, #0x144 + DO_MOVE_TORMENT_OFFSET]
|
||||
_02326510:
|
||||
cmp r7, #0
|
||||
beq _0232652C
|
||||
@@ -1151,8 +1204,13 @@ _0232653C:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02326548: .word 0x00000C0D
|
||||
_0232654C: .word 0x00000C0E
|
||||
#else
|
||||
_02326548: .word 0x00000ECB
|
||||
_0232654C: .word 0x00000ECC
|
||||
#endif
|
||||
arm_func_end DoMoveTorment
|
||||
|
||||
arm_func_start DoMoveStringShot
|
||||
@@ -1230,7 +1288,11 @@ _02326634:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_02326640: .word SNORE_CRINGE_CHANCE
|
||||
#ifdef JAPAN
|
||||
_02326644: .word 0x00000C0F
|
||||
#else
|
||||
_02326644: .word 0x00000ECD
|
||||
#endif
|
||||
arm_func_end DoMoveSnore
|
||||
|
||||
arm_func_start DoMoveScreech
|
||||
@@ -1379,7 +1441,11 @@ DoMoveSpite: ; 0x0232680C
|
||||
mov r5, r1
|
||||
ldr r1, [r5, #0xb4]
|
||||
mov r4, #0
|
||||
#ifdef JAPAN
|
||||
add lr, r1, #0x120
|
||||
#else
|
||||
add lr, r1, #0x124
|
||||
#endif
|
||||
mov ip, #1
|
||||
mov r6, r0
|
||||
mov r7, r4
|
||||
@@ -1408,9 +1474,15 @@ _02326864:
|
||||
bl SubstitutePlaceholderStringTags
|
||||
cmp r4, #0
|
||||
beq _0232689C
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, #0xc10
|
||||
#else
|
||||
ldr r2, _023268B4 ; =0x00000ECE
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _023268AC
|
||||
_0232689C:
|
||||
@@ -1422,8 +1494,12 @@ _023268AC:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_023268B8: .word 0x00000C11
|
||||
#else
|
||||
_023268B4: .word 0x00000ECE
|
||||
_023268B8: .word 0x00000ECF
|
||||
#endif
|
||||
arm_func_end DoMoveSpite
|
||||
|
||||
arm_func_start DoMoveFocusEnergy
|
||||
@@ -1491,7 +1567,11 @@ DoMoveOverheat: ; 0x0232692C
|
||||
bl DungeonRandOutcomeUserAction
|
||||
cmp r0, #0
|
||||
movne r0, r4
|
||||
#ifdef JAPAN
|
||||
strneb r0, [r5, #0x15b]
|
||||
#else
|
||||
strneb r0, [r5, #0x15f]
|
||||
#endif
|
||||
_02326988:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
@@ -1557,7 +1637,11 @@ DoMoveMemento: ; 0x02326A0C
|
||||
str ip, [sp]
|
||||
bl ApplyOffensiveStatMultiplier
|
||||
mov r0, #1
|
||||
#ifdef JAPAN
|
||||
strb r0, [r4, #0x15a]
|
||||
#else
|
||||
strb r0, [r4, #0x15e]
|
||||
#endif
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
@@ -1630,13 +1714,21 @@ DoMoveWillOWisp: ; 0x02326B24
|
||||
movs r4, r0
|
||||
beq _02326B94
|
||||
ldr r3, [r5, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r3, #0x158]
|
||||
#else
|
||||
ldrb r0, [r3, #0x15c]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
bne _02326BAC
|
||||
mov r0, #1
|
||||
mov r1, r5
|
||||
mov r2, #0
|
||||
#ifdef JAPAN
|
||||
strb r0, [r3, #0x158]
|
||||
#else
|
||||
strb r0, [r3, #0x15c]
|
||||
#endif
|
||||
bl SubstitutePlaceholderStringTags
|
||||
cmp r4, #1
|
||||
bne _02326B80
|
||||
@@ -1663,8 +1755,13 @@ _02326BAC:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02326BB8: .word 0x00000A1D
|
||||
_02326BBC: .word 0x00000A1C
|
||||
#else
|
||||
_02326BB8: .word 0x00000CDD
|
||||
_02326BBC: .word 0x00000CDC
|
||||
#endif
|
||||
arm_func_end DoMoveWillOWisp
|
||||
|
||||
arm_func_start DoMoveReturn
|
||||
@@ -1954,7 +2051,11 @@ _02326F38:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02326F40: .word RAZOR_WIND_DAMAGE_MULTIPLIER
|
||||
#ifdef JAPAN
|
||||
_02326F44: .word 0x00000A0D
|
||||
#else
|
||||
_02326F44: .word 0x00000CCD
|
||||
#endif
|
||||
arm_func_end DoMoveRazorWind
|
||||
|
||||
arm_func_start DoMoveBide
|
||||
@@ -1976,7 +2077,11 @@ DoMoveBide: ; 0x02326F48
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02326F88: .word 0x00000A0E
|
||||
#else
|
||||
_02326F88: .word 0x00000CCE
|
||||
#endif
|
||||
arm_func_end DoMoveBide
|
||||
|
||||
arm_func_start DoMoveBideUnleash
|
||||
@@ -2267,7 +2372,11 @@ _0232735C:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02327364: .word 0x00000C14
|
||||
#else
|
||||
_02327364: .word 0x00000ED2
|
||||
#endif
|
||||
arm_func_end DoMoveBrickBreak
|
||||
|
||||
arm_func_start DoMoveDamageLowerSpeed100
|
||||
@@ -2326,7 +2435,11 @@ DoMoveFocusPunch: ; 0x023273CC
|
||||
bl ov29_02318D58
|
||||
b _0232744C
|
||||
_02327428:
|
||||
#ifdef JAPAN
|
||||
mov r0, #0xa10
|
||||
#else
|
||||
mov r0, #0xcd0
|
||||
#endif
|
||||
bl StringFromId
|
||||
str r0, [sp]
|
||||
mov r0, r7
|
||||
@@ -2393,13 +2506,21 @@ _023274C8:
|
||||
ldr r1, [sb, #0xb4]
|
||||
add r0, r5, r5, lsr #31
|
||||
mov r5, r0, asr #1
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r1, #0x107]
|
||||
#else
|
||||
ldrb r0, [r1, #0x108]
|
||||
#endif
|
||||
mov r4, #1
|
||||
cmp r5, #1
|
||||
movlt r5, r4
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r1, #0x107]
|
||||
#else
|
||||
strlob r0, [r1, #0x108]
|
||||
#endif
|
||||
cmp r6, #0
|
||||
beq _0232754C
|
||||
mov r2, #0xd
|
||||
@@ -2414,7 +2535,11 @@ _0232754C:
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
bne _0232756C
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x224
|
||||
#else
|
||||
add r0, r1, #0x228
|
||||
#endif
|
||||
mov r1, #0x57
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
_0232756C:
|
||||
@@ -2677,10 +2802,17 @@ DoMoveDamageBoostAllStats: ; 0x02327804
|
||||
mov r1, r6
|
||||
mov r3, r4
|
||||
bl BoostDefensiveStat
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
_023278D4:
|
||||
mov r0, r4
|
||||
add sp, sp, #0xc
|
||||
@@ -2739,7 +2871,11 @@ DoMoveRapidSpin: ; 0x02327940
|
||||
beq _023279A0
|
||||
ldr r0, [r5, #0xb4]
|
||||
add r0, r0, #0x100
|
||||
#ifdef JAPAN
|
||||
ldrh r0, [r0, #0x8e]
|
||||
#else
|
||||
ldrh r0, [r0, #0x92]
|
||||
#endif
|
||||
tst r0, #2
|
||||
ldrne r0, _023279A8 ; =ov29_0237CA6D
|
||||
movne r1, #0
|
||||
@@ -2851,7 +2987,11 @@ _02327ADC:
|
||||
.align 2, 0
|
||||
_02327AE8: .word SKY_ATTACK_DAMAGE_MULTIPLIER
|
||||
_02327AEC: .word SKY_ATTACK_CRINGE_CHANCE
|
||||
#ifdef JAPAN
|
||||
_02327AF0: .word 0x00000A11
|
||||
#else
|
||||
_02327AF0: .word 0x00000CD1
|
||||
#endif
|
||||
arm_func_end DoMoveSkyAttack
|
||||
|
||||
arm_func_start DoMoveDamageFreeze15
|
||||
@@ -2919,10 +3059,17 @@ DoMoveMeteorMash: ; 0x02327B5C
|
||||
mov r1, r6
|
||||
mov r3, r4
|
||||
bl BoostOffensiveStat
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
_02327BCC:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
@@ -3180,14 +3327,25 @@ _02327EB4:
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02327F30: .word 0x00000AA2
|
||||
#else
|
||||
_02327F30: .word 0x00000D62
|
||||
#endif
|
||||
arm_func_end DoMovePsychUp
|
||||
|
||||
arm_func_start DoMoveDamageWithRecoil
|
||||
|
||||
@@ -33,11 +33,19 @@ DoMoveEarthquake: ; 0x02328074
|
||||
ldr ip, [lr]
|
||||
mov r4, #0xc
|
||||
add ip, ip, #0x1a000
|
||||
#ifdef JAPAN
|
||||
str r4, [ip, #0x190]
|
||||
#else
|
||||
str r4, [ip, #0x234]
|
||||
#endif
|
||||
ldr ip, [lr]
|
||||
mov lr, #0
|
||||
add ip, ip, #0x1a000
|
||||
#ifdef JAPAN
|
||||
str lr, [ip, #0x194]
|
||||
#else
|
||||
str lr, [ip, #0x238]
|
||||
#endif
|
||||
ldrb ip, [r5, #0xd2]
|
||||
mov r4, #1
|
||||
cmp ip, #0xa
|
||||
@@ -59,7 +67,11 @@ GetNaturePowerVariant: ; 0x023280D4
|
||||
ldr r0, _02328108 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r2, [r0, #0x30]
|
||||
#else
|
||||
ldrsh r2, [r0, #0xd4]
|
||||
#endif
|
||||
mov r0, #0xc
|
||||
cmp r2, #0
|
||||
movlt r2, #0
|
||||
@@ -234,7 +246,11 @@ DoMoveCharge: ; 0x023282C8
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02328320: .word 0x00000A19
|
||||
#else
|
||||
_02328320: .word 0x00000CD9
|
||||
#endif
|
||||
_02328324: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveCharge
|
||||
|
||||
@@ -353,7 +369,11 @@ _023284A8:
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_023284B4: .word 0x00000C15
|
||||
#else
|
||||
_023284B4: .word 0x00000ED3
|
||||
#endif
|
||||
_023284B8: .word 0x0000270F
|
||||
arm_func_end DoMoveFissure
|
||||
|
||||
@@ -402,11 +422,17 @@ DoMoveSafeguard: ; 0x02328528
|
||||
DoMoveAbsorb: ; 0x02328538
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r8, r2
|
||||
#ifndef JAPAN
|
||||
mov r6, r3
|
||||
#endif
|
||||
mov r7, r0
|
||||
mov sb, r1
|
||||
mov r2, #0x3a
|
||||
#ifdef JAPAN
|
||||
mov r6, r3
|
||||
#else
|
||||
mov r3, #1
|
||||
#endif
|
||||
mov r4, #0
|
||||
bl DefenderAbilityIsActiveMoveEffects__02328634
|
||||
mov r5, r0
|
||||
@@ -428,9 +454,15 @@ DoMoveAbsorb: ; 0x02328538
|
||||
beq _0232862C
|
||||
ldr r1, [r7, #0xb4]
|
||||
mov r4, #1
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r1, #0x107]
|
||||
cmp r0, #1
|
||||
strlob r4, [r1, #0x107]
|
||||
#else
|
||||
ldrb r0, [r1, #0x108]
|
||||
cmp r0, #1
|
||||
strlob r4, [r1, #0x108]
|
||||
#endif
|
||||
mov r0, r7
|
||||
mov r1, #0
|
||||
bl DungeonRandOutcomeUserAction
|
||||
@@ -441,7 +473,11 @@ DoMoveAbsorb: ; 0x02328538
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
bne _023285E8
|
||||
#ifdef JAPAN
|
||||
add r0, r1, #0x224
|
||||
#else
|
||||
add r0, r1, #0x228
|
||||
#endif
|
||||
mov r1, #0x57
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
_023285E8:
|
||||
@@ -485,7 +521,9 @@ DefenderAbilityIsActiveMoveEffects__02328634: ; 0x02328634
|
||||
and r1, r1, #0xff
|
||||
_02328668:
|
||||
cmp r1, #0
|
||||
#ifndef JAPAN
|
||||
cmpne r3, #0
|
||||
#endif
|
||||
beq _02328688
|
||||
mov r1, #0x53
|
||||
bl AbilityIsActiveVeneer
|
||||
@@ -551,11 +589,19 @@ _02328714:
|
||||
mov r1, r6
|
||||
strb ip, [r3, #0xe]
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x107]
|
||||
#else
|
||||
ldrb r0, [r4, #0x108]
|
||||
#endif
|
||||
mov r1, r7
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r4, #0x107]
|
||||
#else
|
||||
strlob r0, [r4, #0x108]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl TryEndStatusWithAbility
|
||||
mov r0, r7
|
||||
@@ -564,14 +610,25 @@ _02328714:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_02328784: .word 0x00000ED5
|
||||
_02328788: .word 0x00000ED6
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_SKILL_SWAP_OFFSET -0x2BE
|
||||
#else
|
||||
#define DO_MOVE_SKILL_SWAP_OFFSET 0
|
||||
#endif
|
||||
_02328784: .word 0x00000ED5 + DO_MOVE_SKILL_SWAP_OFFSET
|
||||
_02328788: .word 0x00000ED6 + DO_MOVE_SKILL_SWAP_OFFSET
|
||||
_0232878C: .word DUNGEON_PTR
|
||||
_02328790: .word 0x00000ED4
|
||||
_02328790: .word 0x00000ED4 + DO_MOVE_SKILL_SWAP_OFFSET
|
||||
arm_func_end DoMoveSkillSwap
|
||||
|
||||
arm_func_start DoMoveSketch
|
||||
DoMoveSketch: ; 0x02328794
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_SKETCH_OFFSET -4
|
||||
#else
|
||||
#define DO_MOVE_SKETCH_OFFSET 0
|
||||
#endif
|
||||
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #8
|
||||
mov r4, #0
|
||||
@@ -579,7 +636,7 @@ DoMoveSketch: ; 0x02328794
|
||||
str r4, [sp]
|
||||
ldr r6, [sb, #0xb4]
|
||||
mov sl, r0
|
||||
add r0, r6, #0x124
|
||||
add r0, r6, #0x124 + DO_MOVE_SKETCH_OFFSET
|
||||
mov r8, r2
|
||||
mov fp, r4
|
||||
mov r7, r4
|
||||
@@ -588,7 +645,7 @@ DoMoveSketch: ; 0x02328794
|
||||
b _02328820
|
||||
_023287CC:
|
||||
add r0, r6, r7, lsl #3
|
||||
ldrb r0, [r0, #0x124]
|
||||
ldrb r0, [r0, #0x124 + DO_MOVE_SKETCH_OFFSET]
|
||||
tst r0, #1
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
@@ -601,10 +658,10 @@ _023287CC:
|
||||
cmp r0, #0
|
||||
bne _0232881C
|
||||
add r1, r6, r7, lsl #3
|
||||
ldrb r0, [r1, #0x124]
|
||||
ldrb r0, [r1, #0x124 + DO_MOVE_SKETCH_OFFSET]
|
||||
tst r0, #0x10
|
||||
addne r0, r1, #0x100
|
||||
ldrneh fp, [r0, #0x28]
|
||||
ldrneh fp, [r0, #0x28 + DO_MOVE_SKETCH_OFFSET]
|
||||
movne r4, #1
|
||||
bne _02328828
|
||||
_0232881C:
|
||||
@@ -643,10 +700,17 @@ _02328864:
|
||||
mov r1, sb
|
||||
strh r3, [r8, #2]
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
mov r0, #1
|
||||
str r0, [sp]
|
||||
_023288B0:
|
||||
@@ -655,8 +719,13 @@ _023288B4:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_023288BC: .word 0x00000AF8
|
||||
_023288C0: .word 0x00000AF7
|
||||
#else
|
||||
_023288BC: .word 0x00000DB8
|
||||
_023288C0: .word 0x00000DB7
|
||||
#endif
|
||||
arm_func_end DoMoveSketch
|
||||
|
||||
arm_func_start DoMoveHeadbutt
|
||||
@@ -757,10 +826,17 @@ DoMoveSandstorm: ; 0x023289F8
|
||||
ldr r2, [r2]
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
#ifdef JAPAN
|
||||
add r2, r2, #0xcd00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x9a]
|
||||
#else
|
||||
add r2, r2, #0xcd00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x3e]
|
||||
#endif
|
||||
bl TryActivateWeather
|
||||
cmp r0, #0
|
||||
bne _02328A40
|
||||
@@ -774,7 +850,11 @@ _02328A40:
|
||||
.align 2, 0
|
||||
_02328A48: .word WEATHER_MOVE_TURN_COUNT
|
||||
_02328A4C: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_02328A50: .word 0x00000C08
|
||||
#else
|
||||
_02328A50: .word 0x00000EC6
|
||||
#endif
|
||||
arm_func_end DoMoveSandstorm
|
||||
|
||||
arm_func_start DoMoveLowerAccuracy1
|
||||
@@ -938,7 +1018,11 @@ _02328C64:
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02328C6C: .word 0x00000C19
|
||||
#else
|
||||
_02328C6C: .word 0x00000ED7
|
||||
#endif
|
||||
_02328C70: .word 0x0000270F
|
||||
arm_func_end DoMoveOhko
|
||||
|
||||
@@ -1001,7 +1085,11 @@ _02328D30:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_02328D3C: .word SOLARBEAM_DAMAGE_MULTIPLIER
|
||||
#ifdef JAPAN
|
||||
_02328D40: .word 0x00000A12
|
||||
#else
|
||||
_02328D40: .word 0x00000CD2
|
||||
#endif
|
||||
arm_func_end DoMoveSolarBeam
|
||||
|
||||
arm_func_start DoMoveSonicBoom
|
||||
@@ -1089,7 +1177,11 @@ _02328E64:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02328E6C: .word FLY_DAMAGE_MULTIPLIER
|
||||
#ifdef JAPAN
|
||||
_02328E70: .word 0x00000A13
|
||||
#else
|
||||
_02328E70: .word 0x00000CD3
|
||||
#endif
|
||||
arm_func_end DoMoveFly
|
||||
|
||||
arm_func_start DoMoveExplosion
|
||||
@@ -1171,9 +1263,15 @@ _02328F7C:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02328F88: .word 0x00000C1A
|
||||
_02328F8C: .word DIVE_DAMAGE_MULTIPLIER
|
||||
_02328F90: .word 0x00000A15
|
||||
#else
|
||||
_02328F88: .word 0x00000ED8
|
||||
_02328F8C: .word DIVE_DAMAGE_MULTIPLIER
|
||||
_02328F90: .word 0x00000CD5
|
||||
#endif
|
||||
arm_func_end DoMoveDive
|
||||
|
||||
arm_func_start DoMoveWaterfall
|
||||
@@ -1598,7 +1696,11 @@ _02329524:
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232952C: .word 0x00000C1B
|
||||
#else
|
||||
_0232952C: .word 0x00000ED9
|
||||
#endif
|
||||
_02329530: .word 0x0000270F
|
||||
arm_func_end DoMoveHornDrill
|
||||
|
||||
@@ -1636,7 +1738,11 @@ DoMoveConversion: ; 0x02329554
|
||||
b _02329650
|
||||
_02329598:
|
||||
mov r5, r8
|
||||
#ifdef JAPAN
|
||||
add r4, r7, #0x120
|
||||
#else
|
||||
add r4, r7, #0x124
|
||||
#endif
|
||||
add fp, sp, #0
|
||||
_023295A4:
|
||||
ldrb r0, [r4, r5, lsl #3]
|
||||
@@ -1688,9 +1794,15 @@ _02329650:
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02329658: .word 0x00000B03
|
||||
_0232965C: .word 0x00000AF6
|
||||
_02329660: .word 0x00000AF5
|
||||
#else
|
||||
_02329658: .word 0x00000DC3
|
||||
_0232965C: .word 0x00000DB6
|
||||
_02329660: .word 0x00000DB5
|
||||
#endif
|
||||
arm_func_end DoMoveConversion
|
||||
|
||||
arm_func_start DoMoveConversion2
|
||||
@@ -1728,7 +1840,11 @@ _023296C4:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_023296CC: .word 0x00000C1C
|
||||
#else
|
||||
_023296CC: .word 0x00000EDA
|
||||
#endif
|
||||
_023296D0: .word ATK_STAT_IDX
|
||||
_023296D4: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveHelpingHand
|
||||
@@ -1805,7 +1921,9 @@ DoMoveThunderWave: ; 0x0232977C
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x66
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02328634
|
||||
cmp r0, #0
|
||||
beq _023297D4
|
||||
@@ -2026,7 +2144,11 @@ _02329A88:
|
||||
add sp, sp, #0x30
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02329A94: .word 0x00000C1D
|
||||
#else
|
||||
_02329A94: .word 0x00000EDB
|
||||
#endif
|
||||
_02329A98: .word 0x00000236
|
||||
arm_func_end DoMoveJumpKick
|
||||
|
||||
@@ -2086,7 +2208,11 @@ _02329B50:
|
||||
.align 2, 0
|
||||
_02329B5C: .word BOUNCE_DAMAGE_MULTIPLIER
|
||||
_02329B60: .word BOUNCE_PARALYZE_CHANCE
|
||||
#ifdef JAPAN
|
||||
_02329B64: .word 0x00000A14
|
||||
#else
|
||||
_02329B64: .word 0x00000CD4
|
||||
#endif
|
||||
arm_func_end DoMoveBounce
|
||||
|
||||
arm_func_start DoMoveHiJumpKick
|
||||
@@ -2167,7 +2293,11 @@ _02329C80:
|
||||
add sp, sp, #0x30
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02329C8C: .word 0x00000C1D
|
||||
#else
|
||||
_02329C8C: .word 0x00000EDB
|
||||
#endif
|
||||
_02329C90: .word 0x00000237
|
||||
arm_func_end DoMoveHiJumpKick
|
||||
|
||||
@@ -2247,13 +2377,21 @@ DoMoveSwapItems: ; 0x02329D50
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x2c
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
cmp r0, #0
|
||||
beq _02329DC0
|
||||
#ifdef JAPAN
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0xc20
|
||||
#else
|
||||
ldr r2, _02329F08 ; =0x00000EDE
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, r8
|
||||
b _02329F00
|
||||
@@ -2334,12 +2472,20 @@ _02329EA8:
|
||||
bl ov29_022F9EA0
|
||||
mov r0, r6
|
||||
bl ov29_022F9EA0
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x107]
|
||||
#else
|
||||
ldrb r0, [r4, #0x108]
|
||||
#endif
|
||||
ldr r2, _02329F10 ; =0x00000EDC
|
||||
mov r1, r6
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r4, #0x107]
|
||||
#else
|
||||
strlob r0, [r4, #0x108]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #1
|
||||
@@ -2347,9 +2493,14 @@ _02329F00:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02329F0C: .word 0x00000C1F
|
||||
_02329F10: .word 0x00000C1E
|
||||
#else
|
||||
_02329F08: .word 0x00000EDE
|
||||
_02329F0C: .word 0x00000EDD
|
||||
_02329F10: .word 0x00000EDC
|
||||
#endif
|
||||
arm_func_end DoMoveSwapItems
|
||||
|
||||
arm_func_start DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
@@ -2369,7 +2520,9 @@ DefenderAbilityIsActiveMoveEffects__02329F14: ; 0x02329F14
|
||||
and r1, r1, #0xff
|
||||
_02329F48:
|
||||
cmp r1, #0
|
||||
#ifndef JAPAN
|
||||
cmpne r3, #0
|
||||
#endif
|
||||
beq _02329F68
|
||||
mov r1, #0x53
|
||||
bl AbilityIsActiveVeneer
|
||||
@@ -2561,7 +2714,9 @@ DoMoveRolePlay: ; 0x0232A188
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r2, #0x35
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
ldr r4, [r6, #0xb4]
|
||||
ldr r7, [r5, #0xb4]
|
||||
bl DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
@@ -2581,11 +2736,19 @@ _0232A1C8:
|
||||
ldrb r2, [r7, #0x61]
|
||||
strb r2, [r4, #0x61]
|
||||
ldr r0, [r0]
|
||||
#ifdef JAPAN
|
||||
ldr r2, _0232B68C ; =0x00000C22
|
||||
strb r1, [r0, #0xe]
|
||||
ldrb r0, [r4, #0x107]
|
||||
cmp r0, #1
|
||||
strlob r1, [r4, #0x107]
|
||||
#else
|
||||
mov r2, #0xee0
|
||||
strb r1, [r0, #0xe]
|
||||
ldrb r0, [r4, #0x108]
|
||||
cmp r0, #1
|
||||
strlob r1, [r4, #0x108]
|
||||
#endif
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
@@ -2595,8 +2758,14 @@ _0232A1C8:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A218: .word 0x00000C23
|
||||
_0232A21C: .word DUNGEON_PTR
|
||||
_0232B68C: .word 0x00000C22
|
||||
#else
|
||||
_0232A218: .word 0x00000EE1
|
||||
_0232A21C: .word DUNGEON_PTR
|
||||
#endif
|
||||
arm_func_end DoMoveRolePlay
|
||||
|
||||
arm_func_start DoMoveSunnyDay
|
||||
@@ -2608,10 +2777,17 @@ DoMoveSunnyDay: ; 0x0232A220
|
||||
ldr r2, [r2]
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
#ifdef JAPAN
|
||||
add r2, r2, #0xcc00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x98]
|
||||
#else
|
||||
add r2, r2, #0xcd00
|
||||
mov r0, #1
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x3c]
|
||||
#endif
|
||||
bl TryActivateWeather
|
||||
cmp r0, #0
|
||||
bne _0232A268
|
||||
@@ -2625,7 +2801,11 @@ _0232A268:
|
||||
.align 2, 0
|
||||
_0232A270: .word WEATHER_MOVE_TURN_COUNT
|
||||
_0232A274: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0232A278: .word 0x00000C09
|
||||
#else
|
||||
_0232A278: .word 0x00000EC7
|
||||
#endif
|
||||
arm_func_end DoMoveSunnyDay
|
||||
|
||||
arm_func_start DoMoveLowerDefense1
|
||||
@@ -2694,7 +2874,11 @@ DoMoveSleepTalk: ; 0x0232A328
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A33C: .word 0x00000C24
|
||||
#else
|
||||
_0232A33C: .word 0x00000EE2
|
||||
#endif
|
||||
arm_func_end DoMoveSleepTalk
|
||||
|
||||
arm_func_start DoMovePayDay
|
||||
|
||||
@@ -11,7 +11,11 @@ DoMoveAssist: ; 0x0232A3FC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A410: .word 0x00000C25
|
||||
#else
|
||||
_0232A410: .word 0x00000EE3
|
||||
#endif
|
||||
arm_func_end DoMoveAssist
|
||||
|
||||
arm_func_start DoMoveRest
|
||||
@@ -61,7 +65,11 @@ DoMoveSwallow: ; 0x0232A490
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r4, [r1, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r3, [r4, #0x11a]
|
||||
#else
|
||||
ldrb r3, [r4, #0x11e]
|
||||
#endif
|
||||
cmp r3, #0
|
||||
beq _0232A4CC
|
||||
ldr r2, _0232A4E0 ; =ov10_022C49D4
|
||||
@@ -71,7 +79,11 @@ DoMoveSwallow: ; 0x0232A490
|
||||
str ip, [sp]
|
||||
bl TryIncreaseHp
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
strb r0, [r4, #0x11a]
|
||||
#else
|
||||
strb r0, [r4, #0x11e]
|
||||
#endif
|
||||
b _0232A4D4
|
||||
_0232A4CC:
|
||||
ldr r2, _0232A4E4 ; =0x00000EE4
|
||||
@@ -82,7 +94,11 @@ _0232A4D4:
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
_0232A4E0: .word ov10_022C49D4
|
||||
#ifdef JAPAN
|
||||
_0232A4E4: .word 0x00000C26
|
||||
#else
|
||||
_0232A4E4: .word 0x00000EE4
|
||||
#endif
|
||||
arm_func_end DoMoveSwallow
|
||||
|
||||
arm_func_start DoMoveCurse
|
||||
@@ -156,7 +172,9 @@ DoMoveSteelWing: ; 0x0232A5AC
|
||||
ldr ip, [sp, #0x28]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
#ifndef JAPAN
|
||||
mov r5, r1
|
||||
#endif
|
||||
str ip, [sp]
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
@@ -165,7 +183,11 @@ DoMoveSteelWing: ; 0x0232A5AC
|
||||
ldr r1, _0232A63C ; =STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
#ifdef JAPAN
|
||||
mov r1, r6
|
||||
#else
|
||||
mov r1, r5
|
||||
#endif
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
@@ -177,10 +199,17 @@ DoMoveSteelWing: ; 0x0232A5AC
|
||||
mov r1, r6
|
||||
mov r3, r4
|
||||
bl BoostDefensiveStat
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
_0232A628:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
@@ -196,14 +225,22 @@ DoMoveSpitUp: ; 0x0232A640
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r4, [r0, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb ip, [r4, #0x11a]
|
||||
#else
|
||||
ldrb ip, [r4, #0x11e]
|
||||
#endif
|
||||
cmp ip, #0
|
||||
beq _0232A670
|
||||
str r3, [sp]
|
||||
mov r3, ip, lsl #8
|
||||
bl DealDamage
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
strb r0, [r4, #0x11a]
|
||||
#else
|
||||
strb r0, [r4, #0x11e]
|
||||
#endif
|
||||
b _0232A678
|
||||
_0232A670:
|
||||
ldr r2, _0232A684 ; =0x00000EE5
|
||||
@@ -213,7 +250,11 @@ _0232A678:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A684: .word 0x00000C27
|
||||
#else
|
||||
_0232A684: .word 0x00000EE5
|
||||
#endif
|
||||
arm_func_end DoMoveSpitUp
|
||||
|
||||
arm_func_start DoMoveDynamicPunch
|
||||
@@ -265,7 +306,9 @@ DoMoveKnockOff: ; 0x0232A6EC
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x2c
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
cmp r0, #0
|
||||
beq _0232A758
|
||||
@@ -330,9 +373,15 @@ _0232A818:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A820: .word 0x00000C28
|
||||
_0232A824: .word 0x00000C2A
|
||||
_0232A828: .word 0x00000C29
|
||||
#else
|
||||
_0232A820: .word 0x00000EE6
|
||||
_0232A824: .word 0x00000EE8
|
||||
_0232A828: .word 0x00000EE7
|
||||
#endif
|
||||
_0232A82C: .word DIRECTIONS_XY
|
||||
_0232A830: .word ov29_0235171E
|
||||
arm_func_end DoMoveKnockOff
|
||||
@@ -605,8 +654,10 @@ _0232ABDC:
|
||||
bl AbilityIsActiveVeneer
|
||||
cmp r0, #0
|
||||
bne _0232AC24
|
||||
#ifndef JAPAN
|
||||
mov r0, sb
|
||||
bl ov29_02321260
|
||||
#endif
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
bl ov29_02321164
|
||||
@@ -618,7 +669,11 @@ _0232AC30:
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232AC38: .word 0x00000C2C
|
||||
#else
|
||||
_0232AC38: .word 0x00000EEA
|
||||
#endif
|
||||
_0232AC3C: .word 0x00000163
|
||||
_0232AC40: .word ov10_022C44B4
|
||||
arm_func_end DoMoveSplash
|
||||
@@ -633,16 +688,21 @@ DoMoveSetDamage: ; 0x0232AC44
|
||||
|
||||
arm_func_start DoMoveBellyDrum
|
||||
DoMoveBellyDrum: ; 0x0232AC54
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_BELLY_DRUM_OFFSET -4
|
||||
#else
|
||||
#define DO_MOVE_BELLY_DRUM_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
ldr r5, [r7, #0xb4]
|
||||
sub r3, sp, #4
|
||||
add r0, r5, #0x100
|
||||
ldrh r2, [r0, #0x46]
|
||||
ldrh r2, [r0, #0x46 + DO_MOVE_BELLY_DRUM_OFFSET]
|
||||
mov r6, r1
|
||||
mov r4, #0
|
||||
strh r2, [r3]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + DO_MOVE_BELLY_DRUM_OFFSET]
|
||||
strh r0, [r3, #2]
|
||||
ldr r0, [r3]
|
||||
bl CeilFixedPoint
|
||||
@@ -662,9 +722,9 @@ DoMoveBellyDrum: ; 0x0232AC54
|
||||
ldrh r2, [sp]
|
||||
add r0, r5, #0x100
|
||||
ldrh r1, [sp, #2]
|
||||
strh r2, [r0, #0x46]
|
||||
strh r2, [r0, #0x46 + DO_MOVE_BELLY_DRUM_OFFSET]
|
||||
mov r4, #1
|
||||
strh r1, [r0, #0x48]
|
||||
strh r1, [r0, #0x48 + DO_MOVE_BELLY_DRUM_OFFSET]
|
||||
b _0232ACF8
|
||||
_0232ACD8:
|
||||
mov r0, r4
|
||||
@@ -680,7 +740,11 @@ _0232ACF8:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232AD00: .word ATK_STAT_IDX
|
||||
#ifdef JAPAN
|
||||
_0232AD04: .word 0x00000C2D
|
||||
#else
|
||||
_0232AD04: .word 0x00000EEB
|
||||
#endif
|
||||
arm_func_end DoMoveBellyDrum
|
||||
|
||||
arm_func_start DoMoveLightScreen
|
||||
@@ -716,7 +780,11 @@ DoMoveSecretPower: ; 0x0232AD18
|
||||
ldr r0, [r0]
|
||||
ldr r2, _0232AEE4 ; =ov10_022C6321
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r0, [r0, #0x30]
|
||||
#else
|
||||
ldrsh r0, [r0, #0xd4]
|
||||
#endif
|
||||
smulbb r0, r0, r1
|
||||
ldrb r0, [r2, r0]
|
||||
cmp r0, #9
|
||||
@@ -938,10 +1006,17 @@ DoMoveBeatUp: ; 0x0232B024
|
||||
movne r6, #0x10
|
||||
ldrne r0, [r0]
|
||||
moveq r6, #4
|
||||
#ifdef JAPAN
|
||||
addne r0, r0, #0x294
|
||||
ldreq r0, _0232B110 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x294
|
||||
#else
|
||||
addne r0, r0, #0x338
|
||||
ldreq r0, _0232B110 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x328
|
||||
#endif
|
||||
add r7, r0, #0x12800
|
||||
b _0232B0E8
|
||||
_0232B06C:
|
||||
@@ -970,11 +1045,19 @@ _0232B06C:
|
||||
mov r2, #2
|
||||
add r3, fp, #4
|
||||
bl TryWarp
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r8, #0x107]
|
||||
#else
|
||||
ldrb r0, [r8, #0x108]
|
||||
#endif
|
||||
mov r4, #1
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r8, #0x107]
|
||||
#else
|
||||
strlob r0, [r8, #0x108]
|
||||
#endif
|
||||
_0232B0E4:
|
||||
add r5, r5, #1
|
||||
_0232B0E8:
|
||||
@@ -991,7 +1074,11 @@ _0232B108:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0232B110: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0232B114: .word 0x00000C2E
|
||||
#else
|
||||
_0232B114: .word 0x00000EEC
|
||||
#endif
|
||||
arm_func_end DoMoveBeatUp
|
||||
|
||||
arm_func_start DoMoveBlastBurn
|
||||
@@ -1254,7 +1341,11 @@ _0232B47C:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232B490: .word 0x00000C2F
|
||||
#else
|
||||
_0232B490: .word 0x00000EED
|
||||
#endif
|
||||
arm_func_end DoMoveTransform
|
||||
|
||||
arm_func_start DoMovePoisonTail
|
||||
@@ -1311,7 +1402,11 @@ DoMoveCamouflage: ; 0x0232B518
|
||||
ldr r0, [r0]
|
||||
ldr r3, _0232B5BC ; =ov10_022C6322
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh ip, [r0, #0x30]
|
||||
#else
|
||||
ldrsh ip, [r0, #0xd4]
|
||||
#endif
|
||||
mov r0, r4
|
||||
mov r1, #0x25
|
||||
smulbb r2, ip, r2
|
||||
@@ -1337,17 +1432,27 @@ _0232B578:
|
||||
mov r1, r6
|
||||
mov r0, #0
|
||||
bl ov29_0234B084
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, #0xc30
|
||||
#else
|
||||
ldr r2, _0232B5C4 ; =0x00000EEE
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232B5B8: .word DUNGEON_PTR
|
||||
_0232B5BC: .word ov10_022C6322
|
||||
#ifdef JAPAN
|
||||
_0232B5C0: .word 0x00000B03
|
||||
#else
|
||||
_0232B5C0: .word 0x00000DC3
|
||||
_0232B5C4: .word 0x00000EEE
|
||||
#endif
|
||||
arm_func_end DoMoveCamouflage
|
||||
|
||||
arm_func_start DoMoveTailGlow
|
||||
@@ -1437,6 +1542,19 @@ DoMoveWrap: ; 0x0232B6B8
|
||||
|
||||
arm_func_start DoMoveSpikes
|
||||
DoMoveSpikes: ; 0x0232B6C8
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
ldr r0, [r6, #0xb4]
|
||||
mov r5, r1
|
||||
ldrb r0, [r0, #6]
|
||||
mov r4, #0
|
||||
mov r1, #0x13
|
||||
cmp r0, #0
|
||||
movne r2, #2
|
||||
moveq r2, #1
|
||||
add r0, r6, #4
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
ldr r0, [r7, #0xb4]
|
||||
@@ -1452,6 +1570,7 @@ DoMoveSpikes: ; 0x0232B6C8
|
||||
mov r2, r5
|
||||
add r0, r7, #4
|
||||
mov r1, #0x13
|
||||
#endif
|
||||
mov r3, #1
|
||||
bl TrySpawnTrap
|
||||
cmp r0, #0
|
||||
@@ -1459,15 +1578,26 @@ DoMoveSpikes: ; 0x0232B6C8
|
||||
bne _0232B728
|
||||
_0232B718:
|
||||
ldr r2, _0232B734 ; =0x00000EEF
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#else
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232B728:
|
||||
bl UpdateTrapsVisibility
|
||||
mov r0, r4
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232B734: .word 0x00000C31
|
||||
#else
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232B734: .word 0x00000EEF
|
||||
#endif
|
||||
arm_func_end DoMoveSpikes
|
||||
|
||||
arm_func_start DoMoveMagnitude
|
||||
@@ -1482,11 +1612,19 @@ DoMoveMagnitude: ; 0x0232B738
|
||||
ldr r6, [r6, ip, lsl #2]
|
||||
ldr lr, [r1, #0xb4]
|
||||
add r4, r4, #0x1a000
|
||||
#ifdef JAPAN
|
||||
str r6, [r4, #0x190]
|
||||
#else
|
||||
str r6, [r4, #0x234]
|
||||
#endif
|
||||
ldr r4, [r5]
|
||||
mov r5, #0
|
||||
add r4, r4, #0x1a000
|
||||
#ifdef JAPAN
|
||||
str r5, [r4, #0x194]
|
||||
#else
|
||||
str r5, [r4, #0x238]
|
||||
#endif
|
||||
ldrb r4, [lr, #0xd2]
|
||||
ldr r5, _0232B7BC ; =ov10_022C4924
|
||||
mov ip, ip, lsl #1
|
||||
@@ -1684,10 +1822,17 @@ DoMoveMetalClaw: ; 0x0232B940
|
||||
mov r1, r6
|
||||
mov r3, r4
|
||||
bl BoostOffensiveStat
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
_0232B9B8:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
@@ -1724,13 +1869,23 @@ _0232BA14:
|
||||
mov r1, r5
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
#ifdef JAPAN
|
||||
ldr r2, _0232CE90 ; =0x00000C52
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#else
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, #0xf10
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232BA3C:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232CE90: .word 0x00000C52
|
||||
#endif
|
||||
arm_func_end DoMoveAttract
|
||||
|
||||
arm_func_start DoMoveCopycat
|
||||
@@ -1740,7 +1895,11 @@ DoMoveCopycat: ; 0x0232BA44
|
||||
mov r0, r1
|
||||
ldr r0, [r0, #0xb4]
|
||||
mov r7, #0
|
||||
#ifdef JAPAN
|
||||
add r4, r0, #0x120
|
||||
#else
|
||||
add r4, r0, #0x124
|
||||
#endif
|
||||
ldr r0, _0232BB44 ; =0x0000020D
|
||||
ldr sb, [sl, #0xb4]
|
||||
str r1, [sp]
|
||||
@@ -1773,7 +1932,11 @@ _0232BA74:
|
||||
tst r0, #0x10
|
||||
addne r0, sb, r6, lsl #1
|
||||
addne r0, r0, #0x100
|
||||
#ifdef JAPAN
|
||||
strneh r1, [r0, #0x90]
|
||||
#else
|
||||
strneh r1, [r0, #0x94]
|
||||
#endif
|
||||
addne r6, r6, #1
|
||||
_0232BAE0:
|
||||
add r5, r5, #1
|
||||
@@ -1785,12 +1948,21 @@ _0232BAE0:
|
||||
bl SubstitutePlaceholderStringTags
|
||||
cmp r6, #0
|
||||
beq _0232BB2C
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [sb, #0x107]
|
||||
ldr r2, _0232CF98 ; =0x00000C32
|
||||
ldr r1, [sp]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [sb, #0x107]
|
||||
#else
|
||||
ldrb r0, [sb, #0x108]
|
||||
ldr r1, [sp]
|
||||
mov r2, #0xef0
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [sb, #0x108]
|
||||
#endif
|
||||
mov r0, sl
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r7, #1
|
||||
@@ -1805,7 +1977,12 @@ _0232BB3C:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0232BB44: .word 0x0000020D
|
||||
#ifdef JAPAN
|
||||
_0232CF98: .word 0x00000C32
|
||||
_0232BB48: .word 0x00000C33
|
||||
#else
|
||||
_0232BB48: .word 0x00000EF1
|
||||
#endif
|
||||
arm_func_end DoMoveCopycat
|
||||
|
||||
arm_func_start DoMoveFrustration
|
||||
@@ -1882,10 +2059,17 @@ DoMoveLeechSeed: ; 0x0232BC34
|
||||
mov r3, #0
|
||||
bl TryInflictLeechSeedStatus
|
||||
ldr r1, [r4, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r1, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r1, #0x107]
|
||||
#else
|
||||
ldrb r0, [r1, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r1, #0x108]
|
||||
#endif
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end DoMoveLeechSeed
|
||||
@@ -1923,11 +2107,18 @@ _0232BCC0: .word ov10_022C5DE0
|
||||
DoMoveDreamEater: ; 0x0232BCC4
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r8, r2
|
||||
#ifdef JAPAN
|
||||
mov sb, r1
|
||||
mov r2, #0x3a
|
||||
mov r7, r0
|
||||
mov r6, r3
|
||||
#else
|
||||
mov r6, r3
|
||||
mov sb, r1
|
||||
mov r2, #0x3a
|
||||
mov r3, #1
|
||||
mov r7, r0
|
||||
#endif
|
||||
mov r4, #0
|
||||
bl DefenderAbilityIsActiveMoveEffects__0232BDD0
|
||||
mov r5, r0
|
||||
@@ -1956,10 +2147,17 @@ DoMoveDreamEater: ; 0x0232BCC4
|
||||
cmp r0, #0
|
||||
beq _0232BDC4
|
||||
ldr r1, [r7, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r1, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r1, #0x107]
|
||||
#else
|
||||
ldrb r0, [r1, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
strlob r0, [r1, #0x108]
|
||||
#endif
|
||||
mov r0, r7
|
||||
mov r1, #0
|
||||
bl DungeonRandOutcomeUserAction
|
||||
@@ -1991,7 +2189,11 @@ _0232BDC4:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232BDCC: .word 0x00000C34
|
||||
#else
|
||||
_0232BDCC: .word 0x00000EF2
|
||||
#endif
|
||||
arm_func_end DoMoveDreamEater
|
||||
|
||||
arm_func_start DefenderAbilityIsActiveMoveEffects__0232BDD0
|
||||
@@ -2011,7 +2213,9 @@ DefenderAbilityIsActiveMoveEffects__0232BDD0: ; 0x0232BDD0
|
||||
and r1, r1, #0xff
|
||||
_0232BE04:
|
||||
cmp r1, #0
|
||||
#ifndef JAPAN
|
||||
cmpne r3, #0
|
||||
#endif
|
||||
beq _0232BE24
|
||||
mov r1, #0x53
|
||||
bl AbilityIsActiveVeneer
|
||||
@@ -2035,6 +2239,12 @@ DoMoveSnatch: ; 0x0232BE34
|
||||
|
||||
arm_func_start DoMoveRecycle
|
||||
DoMoveRecycle: ; 0x0232BE44
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_RECYCLE_OFFSET 4
|
||||
#else
|
||||
#define DO_MOVE_RECYCLE_OFFSET 0
|
||||
#endif
|
||||
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov r5, r1
|
||||
ldr r1, [r5, #0xb4]
|
||||
@@ -2079,6 +2289,16 @@ _0232BE74:
|
||||
add r0, r0, r4
|
||||
strb sb, [r0, #1]
|
||||
beq _0232BF24
|
||||
#ifdef JAPAN
|
||||
ldr r2, [r7]
|
||||
mov r0, #0x23c
|
||||
ldr r1, [r8]
|
||||
mla r0, sb, r0, r2
|
||||
ldr r1, [r1, #0x384]
|
||||
add r0, r0, #0x600
|
||||
add r2, r1, r4
|
||||
ldrh r1, [r1, r4]
|
||||
#else
|
||||
ldr r1, [r8]
|
||||
ldr r2, [r7]
|
||||
add r0, sb, sb, lsl #3
|
||||
@@ -2087,11 +2307,12 @@ _0232BE74:
|
||||
add r0, r0, #0x600
|
||||
ldrh r1, [r2, r4]
|
||||
add r2, r2, r4
|
||||
strh r1, [r0, #0x16]
|
||||
#endif
|
||||
strh r1, [r0, #0x16 + DO_MOVE_RECYCLE_OFFSET]
|
||||
ldrh r1, [r2, #2]
|
||||
strh r1, [r0, #0x18]
|
||||
strh r1, [r0, #0x18 + DO_MOVE_RECYCLE_OFFSET]
|
||||
ldrh r1, [r2, #4]
|
||||
strh r1, [r0, #0x1a]
|
||||
strh r1, [r0, #0x1a + DO_MOVE_RECYCLE_OFFSET]
|
||||
_0232BF24:
|
||||
mov sb, #1
|
||||
_0232BF28:
|
||||
@@ -2117,8 +2338,13 @@ _0232BF60:
|
||||
.align 2, 0
|
||||
_0232BF68: .word DUNGEON_PTR
|
||||
_0232BF6C: .word BAG_ITEMS_PTR_MIRROR
|
||||
#ifdef JAPAN
|
||||
_0232BF70: .word 0x00000C35
|
||||
_0232BF74: .word 0x00000C36
|
||||
#else
|
||||
_0232BF70: .word 0x00000EF3
|
||||
_0232BF74: .word 0x00000EF4
|
||||
#endif
|
||||
arm_func_end DoMoveRecycle
|
||||
|
||||
arm_func_start DoMoveReflect
|
||||
@@ -2234,7 +2460,11 @@ _0232C0E4:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232C0EC: .word SKULL_BASH_DAMAGE_MULTIPLIER
|
||||
#ifdef JAPAN
|
||||
_0232C0F0: .word 0x00000A2B
|
||||
#else
|
||||
_0232C0F0: .word 0x00000CEB
|
||||
#endif
|
||||
arm_func_end DoMoveSkullBash
|
||||
|
||||
arm_func_start DoMoveDamageLowerSpecialDefense50
|
||||
@@ -2385,9 +2615,15 @@ _0232C2E8:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232C2F4: .word 0x00000C37
|
||||
_0232C2F8: .word 0x00000C38
|
||||
_0232C2FC: .word 0x00000C39
|
||||
#else
|
||||
_0232C2F4: .word 0x00000EF5
|
||||
_0232C2F8: .word 0x00000EF6
|
||||
_0232C2FC: .word 0x00000EF7
|
||||
#endif
|
||||
arm_func_end DoMoveRockSmash
|
||||
|
||||
arm_func_start DoMoveSeeTrap
|
||||
@@ -2430,13 +2666,21 @@ DoMoveTakeaway: ; 0x0232C310
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
mov r2, #0x2c
|
||||
#ifndef JAPAN
|
||||
mov r3, r4
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__0232BDD0
|
||||
cmp r0, #0
|
||||
beq _0232C3B0
|
||||
#ifdef JAPAN
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
mov r2, #0xc40
|
||||
#else
|
||||
ldr r2, _0232C4E8 ; =0x00000EFE
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, r4
|
||||
b _0232C4E0
|
||||
@@ -2504,12 +2748,20 @@ _0232C480:
|
||||
bl ov29_022F9EA0
|
||||
mov r0, r7
|
||||
bl ov29_022F9EA0
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
#endif
|
||||
ldr r2, _0232C4F8 ; =0x00000EF9
|
||||
mov r1, r7
|
||||
cmp r0, #1
|
||||
movlo r0, #1
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
mov r0, r8
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0232C4DC
|
||||
@@ -2528,10 +2780,17 @@ _0232C4E0:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_TAKEAWAY_OFFSET -0x2BE
|
||||
#else
|
||||
#define DO_MOVE_TAKEAWAY_OFFSET 0
|
||||
#endif
|
||||
#ifndef JAPAN
|
||||
_0232C4E8: .word 0x00000EFE
|
||||
_0232C4EC: .word 0x00000EFA
|
||||
_0232C4F0: .word 0x00000EFB
|
||||
_0232C4F4: .word 0x00000EFC
|
||||
_0232C4F8: .word 0x00000EF9
|
||||
_0232C4FC: .word 0x00000EFD
|
||||
#endif
|
||||
_0232C4EC: .word 0x00000EFA + DO_MOVE_TAKEAWAY_OFFSET
|
||||
_0232C4F0: .word 0x00000EFB + DO_MOVE_TAKEAWAY_OFFSET
|
||||
_0232C4F4: .word 0x00000EFC + DO_MOVE_TAKEAWAY_OFFSET
|
||||
_0232C4F8: .word 0x00000EF9 + DO_MOVE_TAKEAWAY_OFFSET
|
||||
_0232C4FC: .word 0x00000EFD + DO_MOVE_TAKEAWAY_OFFSET
|
||||
arm_func_end DoMoveTakeaway
|
||||
|
||||
@@ -16,10 +16,17 @@ DoMoveRebound: ; 0x0232C524
|
||||
DoMoveSwitchPositions: ; 0x0232C538
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r3, [r0, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb r2, [r3, #0x107]
|
||||
cmp r2, #1
|
||||
movlo r2, #1
|
||||
strlob r2, [r3, #0x107]
|
||||
#else
|
||||
ldrb r2, [r3, #0x108]
|
||||
cmp r2, #1
|
||||
movlo r2, #1
|
||||
strlob r2, [r3, #0x108]
|
||||
#endif
|
||||
mov r2, #1
|
||||
bl TrySwitchPlace
|
||||
mov r0, #1
|
||||
@@ -79,7 +86,11 @@ _0232C604:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r8, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r7, [r0, #0xa84]
|
||||
#else
|
||||
ldr r7, [r0, #0xb28]
|
||||
#endif
|
||||
mov r0, r7
|
||||
bl EntityIsValidMoveEffects__0232C500
|
||||
cmp r0, #0
|
||||
@@ -112,9 +123,15 @@ _0232C66C:
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0232C698
|
||||
_0232C688:
|
||||
#ifdef JAPAN
|
||||
ldr r2, _0232DAF8 ; =0x00000C42
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
#else
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #0xf00
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232C698:
|
||||
bl ov29_022E8104
|
||||
@@ -124,7 +141,12 @@ _0232C698:
|
||||
.align 2, 0
|
||||
_0232C6A8: .word BAG_ITEMS_PTR_MIRROR
|
||||
_0232C6AC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0232C6B0: .word 0x00000C41
|
||||
_0232DAF8: .word 0x00000C42
|
||||
#else
|
||||
_0232C6B0: .word 0x00000EFF
|
||||
#endif
|
||||
arm_func_end DoMoveCleanse
|
||||
|
||||
arm_func_start DoMoveSiesta
|
||||
@@ -377,8 +399,13 @@ _0232CA04:
|
||||
mov r0, fp
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232CA0C: .word 0x00000C44
|
||||
_0232CA10: .word 0x00000C43
|
||||
#else
|
||||
_0232CA0C: .word 0x00000F02
|
||||
_0232CA10: .word 0x00000F01
|
||||
#endif
|
||||
arm_func_end DoMoveTransfer
|
||||
|
||||
arm_func_start DoMoveSlowDown
|
||||
@@ -466,8 +493,13 @@ _0232CAF4:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0232CAFC: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0232CB00: .word 0x00000C46
|
||||
_0232CB04: .word 0x00000C45
|
||||
#else
|
||||
_0232CB00: .word 0x00000F04
|
||||
_0232CB04: .word 0x00000F03
|
||||
#endif
|
||||
arm_func_end DoMoveEscape
|
||||
|
||||
arm_func_start DoMoveDrought
|
||||
@@ -518,7 +550,11 @@ _0232CB94:
|
||||
ldrb r2, [r4, #7]
|
||||
ldr r0, [r0]
|
||||
mov r1, #0x1c
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x244
|
||||
#else
|
||||
add r0, r0, #0x2e8
|
||||
#endif
|
||||
add r0, r0, #0xec00
|
||||
mla r0, r2, r1, r0
|
||||
ldrsh r3, [r0, #2]
|
||||
@@ -595,11 +631,16 @@ _0232CCA8:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0232CCB0: .word 0x00000F07
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_TRAP_BUSTER_OFFSET -0x2Be
|
||||
#else
|
||||
#define DO_MOVE_TRAP_BUSTER_OFFSET 0
|
||||
#endif
|
||||
_0232CCB0: .word 0x00000F07 + DO_MOVE_TRAP_BUSTER_OFFSET
|
||||
_0232CCB4: .word DUNGEON_PTR
|
||||
_0232CCB8: .word ov29_02352B38
|
||||
_0232CCBC: .word 0x00000F05
|
||||
_0232CCC0: .word 0x00000F06
|
||||
_0232CCBC: .word 0x00000F05 + DO_MOVE_TRAP_BUSTER_OFFSET
|
||||
_0232CCC0: .word 0x00000F06 + DO_MOVE_TRAP_BUSTER_OFFSET
|
||||
arm_func_end DoMoveTrapBuster
|
||||
|
||||
arm_func_start DoMoveWildCall
|
||||
@@ -616,11 +657,19 @@ DoMoveWildCall: ; 0x0232CCC4
|
||||
movne r5, #0x10
|
||||
ldrne r0, [r0]
|
||||
moveq r5, #4
|
||||
#ifdef JAPAN
|
||||
addne r0, r0, #0x294
|
||||
#else
|
||||
addne r0, r0, #0x338
|
||||
#endif
|
||||
ldreq r0, _0232CD88 ; =DUNGEON_PTR
|
||||
mov fp, #1
|
||||
ldreq r0, [r0]
|
||||
#ifdef JAPAN
|
||||
addeq r0, r0, #0x284
|
||||
#else
|
||||
addeq r0, r0, #0x328
|
||||
#endif
|
||||
add r7, r0, #0x12800
|
||||
b _0232CD60
|
||||
_0232CD10:
|
||||
@@ -659,7 +708,11 @@ _0232CD80:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0232CD88: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0232CD8C: .word 0x00000C4A
|
||||
#else
|
||||
_0232CD8C: .word 0x00000F08
|
||||
#endif
|
||||
arm_func_end DoMoveWildCall
|
||||
|
||||
arm_func_start DoMoveInvisify
|
||||
@@ -747,7 +800,11 @@ DoMoveReviver: ; 0x0232CE7C
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232CE90: .word 0x00000C4B
|
||||
#else
|
||||
_0232CE90: .word 0x00000F09
|
||||
#endif
|
||||
arm_func_end DoMoveReviver
|
||||
|
||||
arm_func_start DoMoveShocker
|
||||
@@ -925,10 +982,17 @@ _0232D0D0:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232D0E0: .word 0x00000C4D
|
||||
_0232D0E4: .word DIRECTIONS_XY
|
||||
_0232D0E8: .word ov29_0235171E
|
||||
_0232D0EC: .word 0x00000C4C
|
||||
#else
|
||||
_0232D0E0: .word 0x00000F0B
|
||||
_0232D0E4: .word DIRECTIONS_XY
|
||||
_0232D0E8: .word ov29_0235171E
|
||||
_0232D0EC: .word 0x00000F0A
|
||||
#endif
|
||||
arm_func_end DoMoveFillIn
|
||||
|
||||
arm_func_start DoMoveTrapper
|
||||
@@ -939,8 +1003,13 @@ DoMoveTrapper: ; 0x0232D0F0
|
||||
bl ov29_022ED868
|
||||
cmp r0, #0
|
||||
bne _0232D11C
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
mov r1, #0xbc0
|
||||
#else
|
||||
ldr r1, _0232D144 ; =0x00000E7E
|
||||
mov r0, r5
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUser
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
@@ -956,7 +1025,9 @@ _0232D11C:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifndef JAPAN
|
||||
_0232D144: .word 0x00000E7E
|
||||
#endif
|
||||
arm_func_end DoMoveTrapper
|
||||
|
||||
arm_func_start DoMoveItemize
|
||||
@@ -999,7 +1070,11 @@ _0232D1CC:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232D1D4: .word 0x00000C4E
|
||||
#else
|
||||
_0232D1D4: .word 0x00000F0C
|
||||
#endif
|
||||
_0232D1D8: .word 0x00000257
|
||||
arm_func_end DoMoveItemize
|
||||
|
||||
@@ -1180,7 +1255,11 @@ DoMoveGuardSwap: ; 0x0232D378
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232D3D4: .word 0x00002495
|
||||
#else
|
||||
_0232D3D4: .word 0x00000F2E
|
||||
#endif
|
||||
arm_func_end DoMoveGuardSwap
|
||||
|
||||
arm_func_start DoMoveHealOrder
|
||||
@@ -1291,15 +1370,25 @@ _0232D4FC:
|
||||
ldrsh r3, [r1]
|
||||
ldr r1, [r0]
|
||||
mov r0, #1
|
||||
#ifdef JAPAN
|
||||
add r2, r1, #0xcc00
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x36]
|
||||
#else
|
||||
add r2, r1, #0xcd00
|
||||
mov r1, #0
|
||||
strh r3, [r2, #0x3a]
|
||||
#endif
|
||||
bl TryActivateWeather
|
||||
_0232D548:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232D550: .word 0x00000C14
|
||||
#else
|
||||
_0232D550: .word 0x00000ED2
|
||||
#endif
|
||||
_0232D554: .word SPATK_STAT_IDX
|
||||
_0232D558: .word WEATHER_MOVE_TURN_COUNT
|
||||
_0232D55C: .word DUNGEON_PTR
|
||||
@@ -1514,7 +1603,11 @@ DoMoveGyroBall: ; 0x0232D7F8
|
||||
mov r8, r0
|
||||
ldr ip, [r8, #0xb4]
|
||||
mov r7, r1
|
||||
#ifdef JAPAN
|
||||
ldr ip, [ip, #0x10c]
|
||||
#else
|
||||
ldr ip, [ip, #0x110]
|
||||
#endif
|
||||
mov r6, r2
|
||||
cmp ip, #0
|
||||
mov r5, r3
|
||||
@@ -1536,7 +1629,11 @@ _0232D830:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232D85C: .word 0x00000C4F
|
||||
#else
|
||||
_0232D85C: .word 0x00000F0D
|
||||
#endif
|
||||
arm_func_end DoMoveGyroBall
|
||||
|
||||
arm_func_start DoMoveShadowForce
|
||||
@@ -1582,7 +1679,11 @@ _0232D8EC:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232D8F4: .word SHADOW_FORCE_DAMAGE_MULTIPLIER
|
||||
#ifdef JAPAN
|
||||
_0232D8F8: .word 0x00000A17
|
||||
#else
|
||||
_0232D8F8: .word 0x00000CD7
|
||||
#endif
|
||||
arm_func_end DoMoveShadowForce
|
||||
|
||||
arm_func_start DoMoveGravity
|
||||
@@ -1595,6 +1696,19 @@ DoMoveGravity: ; 0x0232D8FC
|
||||
|
||||
arm_func_start DoMoveStealthRock
|
||||
DoMoveStealthRock: ; 0x0232D90C
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
ldr r0, [r6, #0xb4]
|
||||
mov r5, r1
|
||||
ldrb r0, [r0, #6]
|
||||
mov r4, #0
|
||||
mov r1, #0x14
|
||||
cmp r0, #0
|
||||
movne r2, #2
|
||||
moveq r2, #1
|
||||
add r0, r6, #4
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
ldr r0, [r7, #0xb4]
|
||||
@@ -1610,6 +1724,7 @@ DoMoveStealthRock: ; 0x0232D90C
|
||||
mov r2, r5
|
||||
add r0, r7, #4
|
||||
mov r1, #0x14
|
||||
#endif
|
||||
mov r3, #0
|
||||
bl TrySpawnTrap
|
||||
cmp r0, #0
|
||||
@@ -1617,15 +1732,26 @@ DoMoveStealthRock: ; 0x0232D90C
|
||||
bne _0232D96C
|
||||
_0232D95C:
|
||||
ldr r2, _0232D978 ; =0x00000EEF
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#else
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232D96C:
|
||||
bl UpdateTrapsVisibility
|
||||
mov r0, r4
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232D978: .word 0x00000C31
|
||||
#else
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232D978: .word 0x00000EEF
|
||||
#endif
|
||||
arm_func_end DoMoveStealthRock
|
||||
|
||||
arm_func_start DoMoveChargeBeam
|
||||
@@ -1675,11 +1801,13 @@ DoMoveDamageEatItem: ; 0x0232D9E4
|
||||
mov r0, r5
|
||||
bl ov29_022E34A8_EU
|
||||
#else
|
||||
#ifndef JAPAN
|
||||
ldr r0, _0232DACC ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r0, #0
|
||||
bne _0232DAC4
|
||||
#endif
|
||||
cmp r5, #0
|
||||
moveq r0, #0
|
||||
beq _0232DA3C
|
||||
@@ -1731,7 +1859,7 @@ _0232DAC4:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifndef EUROPE
|
||||
#if !defined(EUROPE) && !defined(JAPAN)
|
||||
_0232DACC: .word DUNGEON_PTR
|
||||
#endif
|
||||
arm_func_end DoMoveDamageEatItem
|
||||
@@ -1776,9 +1904,15 @@ DoMoveAcupressure: ; 0x0232DAD0
|
||||
mov r1, r4
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, #0xc50
|
||||
#else
|
||||
ldr r2, _0232DC48 ; =0x00000F0E
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0232DC38
|
||||
_0232DB7C:
|
||||
@@ -1829,9 +1963,15 @@ _0232DC18:
|
||||
mov r1, r4
|
||||
mov r2, r0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, #0xc50
|
||||
#else
|
||||
ldr r2, _0232DC48 ; =0x00000F0E
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232DC38:
|
||||
mov r0, #1
|
||||
@@ -1839,7 +1979,9 @@ _0232DC38:
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0232DC44: .word ov29_02352B3C
|
||||
#ifndef JAPAN
|
||||
_0232DC48: .word 0x00000F0E
|
||||
#endif
|
||||
_0232DC4C: .word ATK_STAT_IDX
|
||||
_0232DC50: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveAcupressure
|
||||
@@ -1854,6 +1996,19 @@ DoMoveMagnetRise: ; 0x0232DC54
|
||||
|
||||
arm_func_start DoMoveToxicSpikes
|
||||
DoMoveToxicSpikes: ; 0x0232DC64
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
ldr r0, [r6, #0xb4]
|
||||
mov r5, r1
|
||||
ldrb r0, [r0, #6]
|
||||
mov r4, #0
|
||||
mov r1, #0x15
|
||||
cmp r0, #0
|
||||
movne r2, #2
|
||||
moveq r2, #1
|
||||
add r0, r6, #4
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
ldr r0, [r7, #0xb4]
|
||||
@@ -1869,6 +2024,7 @@ DoMoveToxicSpikes: ; 0x0232DC64
|
||||
mov r2, r5
|
||||
add r0, r7, #4
|
||||
mov r1, #0x15
|
||||
#endif
|
||||
mov r3, #1
|
||||
bl TrySpawnTrap
|
||||
cmp r0, #0
|
||||
@@ -1876,15 +2032,26 @@ DoMoveToxicSpikes: ; 0x0232DC64
|
||||
bne _0232DCC4
|
||||
_0232DCB4:
|
||||
ldr r2, _0232DCD0 ; =0x00000EEF
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
#else
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232DCC4:
|
||||
bl UpdateTrapsVisibility
|
||||
mov r0, r4
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232DCD0: .word 0x00000C31
|
||||
#else
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232DCD0: .word 0x00000EEF
|
||||
#endif
|
||||
arm_func_end DoMoveToxicSpikes
|
||||
|
||||
arm_func_start DoMoveLastResort
|
||||
@@ -1916,7 +2083,11 @@ _0232DD10:
|
||||
str r5, [sp]
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
#ifdef JAPAN
|
||||
moveq r4, #1
|
||||
#else
|
||||
movgt r4, #1
|
||||
#endif
|
||||
b _0232DD64
|
||||
_0232DD44:
|
||||
mov r1, r7
|
||||
@@ -1933,7 +2104,11 @@ _0232DD64:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0232DD70: .word LAST_RESORT_DAMAGE_MULT_TABLE
|
||||
#ifdef JAPAN
|
||||
_0232DD74: .word 0x00000BFE
|
||||
#else
|
||||
_0232DD74: .word 0x00000EBC
|
||||
#endif
|
||||
arm_func_end DoMoveLastResort
|
||||
|
||||
arm_func_start DoMoveTrickRoom
|
||||
@@ -1960,11 +2135,16 @@ DoMoveDamage__0232DD88: ; 0x0232DD88
|
||||
arm_func_start DoMoveWorrySeed
|
||||
DoMoveWorrySeed: ; 0x0232DDAC
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
#ifndef JAPAN
|
||||
mov r4, #1
|
||||
mov r3, r4
|
||||
#endif
|
||||
mov r2, #0x2a
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
#ifdef JAPAN
|
||||
mov r4, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__0232DE20
|
||||
cmp r0, #0
|
||||
beq _0232DE00
|
||||
@@ -1990,7 +2170,11 @@ _0232DE14:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232DE1C: .word 0x00000C55
|
||||
#else
|
||||
_0232DE1C: .word 0x00000F13
|
||||
#endif
|
||||
arm_func_end DoMoveWorrySeed
|
||||
|
||||
arm_func_start DefenderAbilityIsActiveMoveEffects__0232DE20
|
||||
@@ -2010,7 +2194,9 @@ DefenderAbilityIsActiveMoveEffects__0232DE20: ; 0x0232DE20
|
||||
and r1, r1, #0xff
|
||||
_0232DE54:
|
||||
cmp r1, #0
|
||||
#ifndef JAPAN
|
||||
cmpne r3, #0
|
||||
#endif
|
||||
beq _0232DE74
|
||||
mov r1, #0x53
|
||||
bl AbilityIsActiveVeneer
|
||||
@@ -2113,7 +2299,11 @@ DoMoveHeartSwap: ; 0x0232DF38
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232DFC4: .word 0x00002496
|
||||
#else
|
||||
_0232DFC4: .word 0x00000F2F
|
||||
#endif
|
||||
arm_func_end DoMoveHeartSwap
|
||||
|
||||
arm_func_start DoMoveRoost
|
||||
@@ -2167,7 +2357,11 @@ _0232E070:
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232E07C: .word ROOST_HP_RESTORATION_TABLE
|
||||
#ifdef JAPAN
|
||||
_0232E080: .word 0x00000A09
|
||||
#else
|
||||
_0232E080: .word 0x00000CC9
|
||||
#endif
|
||||
arm_func_end DoMoveRoost
|
||||
|
||||
arm_func_start DoMovePowerSwap
|
||||
@@ -2196,7 +2390,11 @@ DoMovePowerSwap: ; 0x0232E084
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232E0E0: .word 0x00002492
|
||||
#else
|
||||
_0232E0E0: .word 0x00000F2B
|
||||
#endif
|
||||
arm_func_end DoMovePowerSwap
|
||||
|
||||
arm_func_start DoMovePowerTrick
|
||||
|
||||
@@ -245,7 +245,9 @@ DoMoveCaptivate: ; 0x0232E560
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, #0x29
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__0232DE20
|
||||
cmp r0, #0
|
||||
bne _0232E5D4
|
||||
@@ -282,7 +284,11 @@ _0232E614:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232E61C: .word SPATK_STAT_IDX
|
||||
#ifdef JAPAN
|
||||
_0232E620: .word 0x00000C51
|
||||
#else
|
||||
_0232E620: .word 0x00000F0F
|
||||
#endif
|
||||
arm_func_end DoMoveCaptivate
|
||||
|
||||
arm_func_start DoMoveLeafStorm
|
||||
@@ -414,6 +420,11 @@ DoMoveTag0x1A6: ; 0x0232E750
|
||||
|
||||
arm_func_start DoMoveTag0x1A7
|
||||
DoMoveTag0x1A7: ; 0x0232E794
|
||||
#ifdef JAPAN
|
||||
#define DO_MOVE_TAG_0X147_OFFSET -4
|
||||
#else
|
||||
#define DO_MOVE_TAG_0X147_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
@@ -436,10 +447,10 @@ DoMoveTag0x1A7: ; 0x0232E794
|
||||
ldr r1, [r4, #0xb4]
|
||||
mov r0, #0
|
||||
add r1, r1, #0x100
|
||||
ldrh r2, [r1, #0x4a]
|
||||
strh r2, [r1, #0x46]
|
||||
ldrh r2, [r1, #0x4c]
|
||||
strh r2, [r1, #0x48]
|
||||
ldrh r2, [r1, #0x4a + DO_MOVE_TAG_0X147_OFFSET]
|
||||
strh r2, [r1, #0x46 + DO_MOVE_TAG_0X147_OFFSET]
|
||||
ldrh r2, [r1, #0x4c + DO_MOVE_TAG_0X147_OFFSET]
|
||||
strh r2, [r1, #0x48 + DO_MOVE_TAG_0X147_OFFSET]
|
||||
bl ov29_0234AFFC
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
|
||||
arm_func_start ExecuteMoveEffect
|
||||
ExecuteMoveEffect: ; 0x0232E864
|
||||
#ifdef JAPAN
|
||||
#define EXECUTE_MOVE_EFFECT_OFFSET -4
|
||||
#define EXECUTE_MOVE_EFFECT_OFFSET_2 -1
|
||||
#else
|
||||
#define EXECUTE_MOVE_EFFECT_OFFSET 0
|
||||
#define EXECUTE_MOVE_EFFECT_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0xf0
|
||||
ldr fp, _0232F7AC ; =ov10_022C45F8
|
||||
@@ -83,7 +90,7 @@ _0232E92C:
|
||||
ldr sl, [r4, #0xb4]
|
||||
cmp sb, r4
|
||||
str r0, [sp, #0x38]
|
||||
strb r0, [sl, #0x164]
|
||||
strb r0, [sl, #0x164 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
bne _0232E9B0
|
||||
mov r0, r6
|
||||
bl IsHealingWishOrLunarDance
|
||||
@@ -100,7 +107,11 @@ _0232E9B0:
|
||||
ldrne r0, _0232F7D8 ; =DUNGEON_PTR
|
||||
ldrne r0, [r0]
|
||||
addne r0, r0, #0x19000
|
||||
#ifdef JAPAN
|
||||
ldrne r5, [r0, #0x860]
|
||||
#else
|
||||
ldrne r5, [r0, #0x904]
|
||||
#endif
|
||||
cmpne r5, #0
|
||||
beq _0232EA2C
|
||||
ldr r1, [r5]
|
||||
@@ -108,11 +119,15 @@ _0232E9B0:
|
||||
bne _0232EE54
|
||||
cmp r5, sb
|
||||
beq _0232EE54
|
||||
#ifdef JAPAN
|
||||
ldr r1, [r0, #0x868]
|
||||
#else
|
||||
ldr r1, [r0, #0x90c]
|
||||
#endif
|
||||
ldr r0, [r5, #0xb4]
|
||||
ldr r0, [r0, #0xb0]
|
||||
cmp r1, r0
|
||||
ldreqb r0, [sl, #0x10b]
|
||||
ldreqb r0, [sl, #0x10b + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
cmpeq r0, #0
|
||||
bne _0232EE54
|
||||
mov r0, sb
|
||||
@@ -186,17 +201,17 @@ _0232EAEC:
|
||||
tst r0, #0xf0
|
||||
bne _0232ED9C
|
||||
add r0, sl, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
ldr r1, [sp, #0x34]
|
||||
cmp r0, r1
|
||||
blt _0232ED9C
|
||||
ldrb r0, [sl, #0x10b]
|
||||
ldrb r0, [sl, #0x10b + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
cmp r0, #0
|
||||
bne _0232EE54
|
||||
ldrb r5, [sl, #0x4c]
|
||||
@@ -206,7 +221,11 @@ _0232EAEC:
|
||||
beq _0232EB78
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
#ifdef JAPAN
|
||||
ldr r2, _02330BE0 ; =0x00000BF2
|
||||
#else
|
||||
mov r2, #0xeb0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0232EE54
|
||||
_0232EB78:
|
||||
@@ -296,11 +315,11 @@ _0232ECA0:
|
||||
mov r0, r0, lsr #0x10
|
||||
strh r0, [sp, #0x9a]
|
||||
add r0, sl, #0x100
|
||||
ldrh r5, [r0, #0x46]
|
||||
ldrh r5, [r0, #0x46 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
sub r1, sp, #4
|
||||
ldrh r3, [sp, #0x98]
|
||||
strh r5, [r1]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldrh r2, [sp, #0x9a]
|
||||
strh r0, [r1, #2]
|
||||
ldr r0, [r1]
|
||||
@@ -314,19 +333,32 @@ _0232ECA0:
|
||||
ldrh r3, [sp, #0x94]
|
||||
add r1, sl, #0x100
|
||||
ldrh r2, [sp, #0x96]
|
||||
strh r3, [r1, #0x46]
|
||||
strh r3, [r1, #0x46 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldr r0, _0232F7EC ; =0x00000163
|
||||
strh r2, [r1, #0x48]
|
||||
strh r2, [r1, #0x48 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldrh r1, [r8, #4]
|
||||
cmp r1, r0
|
||||
#ifdef JAPAN
|
||||
bne _0232ED2C
|
||||
add r2, r0, #0xa90
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
#else
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
bne _0232ED2C
|
||||
ldr r2, _0232F7F0 ; =0x00000EB1
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0232ED34
|
||||
_0232ED2C:
|
||||
#ifdef JAPAN
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
mov r2, #0xbf0
|
||||
#else
|
||||
ldr r2, _0232F7F4 ; =0x00000EAE
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232ED34:
|
||||
str r4, [sp, #0x6c]
|
||||
@@ -386,7 +418,7 @@ _0232ED9C:
|
||||
bl ov29_02300DC0
|
||||
cmp r0, #0
|
||||
ldreq r0, [r5, #0xb4]
|
||||
ldreqb r0, [r0, #0x10b]
|
||||
ldreqb r0, [r0, #0x10b + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
cmpeq r0, #0
|
||||
bne _0232EE54
|
||||
mov sl, r4
|
||||
@@ -404,7 +436,11 @@ _0232ED9C:
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r1, r5
|
||||
mov r0, sb
|
||||
#ifdef JAPAN
|
||||
ldr r2, _02330BF4 ; =0x00000C02
|
||||
#else
|
||||
mov r2, #0xec0
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232EE54:
|
||||
ldr r1, _0232F800 ; =ov29_0237CA80
|
||||
@@ -417,14 +453,14 @@ _0232EE54:
|
||||
str r1, [r0]
|
||||
ldr r5, [r4, #0xb4]
|
||||
mov r0, #0
|
||||
strb r0, [r5, #0x164]
|
||||
strb r0, [r5, #0x164 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldrb r0, [r5, #6]
|
||||
cmp r0, #0
|
||||
ldrneh r1, [sb, #4]
|
||||
addne r0, r5, #0x100
|
||||
strneh r1, [r0, #0x7e]
|
||||
strneh r1, [r0, #0x7e + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldrneh r1, [sb, #6]
|
||||
strneh r1, [r0, #0x80]
|
||||
strneh r1, [r0, #0x80 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
mov r0, r4
|
||||
bl ov29_022F9840
|
||||
mov r0, sb
|
||||
@@ -553,7 +589,7 @@ _0232F060:
|
||||
bl ov29_02333044
|
||||
ldr r5, [sb, #0xb4]
|
||||
mov r0, #0
|
||||
strb r0, [r5, #0x164]
|
||||
strb r0, [r5, #0x164 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
mov r0, #1
|
||||
mov r4, sb
|
||||
str r0, [sp, #0x60]
|
||||
@@ -617,7 +653,7 @@ _0232F154:
|
||||
bl ov29_02333044
|
||||
ldr r5, [sb, #0xb4]
|
||||
mov r0, #0
|
||||
strb r0, [r5, #0x164]
|
||||
strb r0, [r5, #0x164 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
mov r0, #1
|
||||
mov r4, sb
|
||||
cmp r6, #0x42
|
||||
@@ -666,7 +702,9 @@ _0232F204:
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
mov r2, #0x3c
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__02332A0C
|
||||
cmp r0, #0
|
||||
beq _0232F270
|
||||
@@ -701,7 +739,9 @@ _0232F270:
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
mov r3, #1
|
||||
#ifndef JAPAN
|
||||
moveq sl, #0
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__02332A0C
|
||||
cmp r0, #0
|
||||
beq _0232F2F0
|
||||
@@ -846,7 +886,7 @@ _0232F498:
|
||||
ldr r0, _0232F7EC ; =0x00000163
|
||||
cmp r1, r0
|
||||
movne r0, #1
|
||||
strneb r0, [r2, #0x166]
|
||||
strneb r0, [r2, #0x166 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldrb r0, [r2, #7]
|
||||
cmp r0, #0
|
||||
mov r0, sb
|
||||
@@ -888,7 +928,11 @@ _0232F550:
|
||||
beq _0232F570
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
#ifdef JAPAN
|
||||
mov r2, #0xc00
|
||||
#else
|
||||
ldr r2, _0232F84C ; =0x00000EBE
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
b _0232F598
|
||||
_0232F570:
|
||||
@@ -946,7 +990,7 @@ _0232F608:
|
||||
b _02332818
|
||||
_0232F62C:
|
||||
mov sl, #1
|
||||
ldrb fp, [r5, #0x108]
|
||||
ldrb fp, [r5, #0x108 + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
ldrb r0, [r5, #6]
|
||||
cmp r0, #0
|
||||
beq _0232F670
|
||||
@@ -957,14 +1001,14 @@ _0232F62C:
|
||||
cmp r7, #0
|
||||
bne _0232F660
|
||||
cmp fp, #1
|
||||
strlob sl, [r5, #0x108]
|
||||
strlob sl, [r5, #0x108 + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
_0232F660:
|
||||
ldr r0, [sp, #0x118]
|
||||
cmp r0, #1
|
||||
moveq r0, #2
|
||||
streqb r0, [r5, #0x108]
|
||||
streqb r0, [r5, #0x108 + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
_0232F670:
|
||||
ldrb r0, [r5, #0x177]
|
||||
ldrb r0, [r5, #0x177 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmp r0, #0xff
|
||||
bne _0232F6A0
|
||||
mov r0, r4
|
||||
@@ -975,9 +1019,9 @@ _0232F670:
|
||||
add r0, r4, #4
|
||||
add r1, sb, #4
|
||||
bl GetDirectionTowardsPosition
|
||||
strb r0, [r5, #0x177]
|
||||
strb r0, [r5, #0x177 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
_0232F6A0:
|
||||
ldrb r0, [r5, #0x178]
|
||||
ldrb r0, [r5, #0x178 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmp r0, #0xff
|
||||
bne _0232F6D0
|
||||
mov r0, r4
|
||||
@@ -988,7 +1032,7 @@ _0232F6A0:
|
||||
add r0, r4, #4
|
||||
add r1, sb, #4
|
||||
bl GetDirectionTowardsPosition
|
||||
strb r0, [r5, #0x178]
|
||||
strb r0, [r5, #0x178 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
_0232F6D0:
|
||||
mov r0, sb
|
||||
mov r1, r8
|
||||
@@ -1001,7 +1045,7 @@ _0232F6D0:
|
||||
ldrneh r0, [r2, #0xac]
|
||||
cmpne r1, r0
|
||||
beq _0232F708
|
||||
ldrb r0, [r2, #0x23f]
|
||||
ldrb r0, [r2, #0x23f + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _0232F70C
|
||||
_0232F708:
|
||||
@@ -1012,7 +1056,9 @@ _0232F70C:
|
||||
mov r0, sb
|
||||
mov r1, r4
|
||||
mov r2, #0x39
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActive__02332A0C
|
||||
cmp r0, #0
|
||||
beq _0232F87C
|
||||
@@ -1049,6 +1095,11 @@ _0232F79C:
|
||||
strh r0, [r8, #2]
|
||||
b _0232F87C
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
#define EXECUTE_MOVE_EFFECT_DATA_OFFSET -0x2BE
|
||||
#else
|
||||
#define EXECUTE_MOVE_EFFECT_DATA_OFFSET 0
|
||||
#endif
|
||||
_0232F7AC: .word ov10_022C45F8
|
||||
_0232F7B0: .word SPATK_STAT_IDX
|
||||
_0232F7B4: .word ov10_022C483C
|
||||
@@ -1061,37 +1112,47 @@ _0232F7CC: .word ov10_022C4508
|
||||
_0232F7D0: .word ov29_02353718
|
||||
_0232F7D4: .word ov10_022C4504
|
||||
_0232F7D8: .word DUNGEON_PTR
|
||||
_0232F7DC: .word 0x00000EAB
|
||||
_0232F7E0: .word 0x00000EAC
|
||||
_0232F7E4: .word 0x00000EAD
|
||||
_0232F7DC: .word 0x00000EAB + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F7E0: .word 0x00000EAC + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F7E4: .word 0x00000EAD + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
#ifdef JAPAN
|
||||
_02330BE0: .word 0x00000BF2
|
||||
#endif
|
||||
_0232F7E8: .word DIRECTIONS_XY
|
||||
_0232F7EC: .word 0x00000163
|
||||
#ifndef JAPAN
|
||||
_0232F7F0: .word 0x00000EB1
|
||||
_0232F7F4: .word 0x00000EAE
|
||||
_0232F7F8: .word 0x00000EB2
|
||||
_0232F7FC: .word 0x00000EAF
|
||||
#endif
|
||||
_0232F7F8: .word 0x00000EB2 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F7FC: .word 0x00000EAF + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
#ifdef JAPAN
|
||||
_02330BF4: .word 0x00000C02
|
||||
#endif
|
||||
_0232F800: .word ov29_0237CA80
|
||||
_0232F804: .word ov29_0237CA74
|
||||
_0232F808: .word 0x00000EB3
|
||||
_0232F80C: .word 0x00000EB5
|
||||
_0232F810: .word 0x00000EB4
|
||||
_0232F814: .word 0x00000EB7
|
||||
_0232F818: .word 0x00000EB6
|
||||
_0232F808: .word 0x00000EB3 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F80C: .word 0x00000EB5 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F810: .word 0x00000EB4 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F814: .word 0x00000EB7 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F818: .word 0x00000EB6 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F81C: .word 0x000001DD
|
||||
_0232F820: .word 0x00000EB8
|
||||
_0232F824: .word 0x00000EB9
|
||||
_0232F820: .word 0x00000EB8 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F824: .word 0x00000EB9 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F828: .word 0x00000131
|
||||
_0232F82C: .word 0x00000EBA
|
||||
_0232F82C: .word 0x00000EBA + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F830: .word 0x000001F6
|
||||
_0232F834: .word 0x00000232
|
||||
_0232F838: .word ov29_0237CA69
|
||||
_0232F83C: .word 0x00001307
|
||||
_0232F840: .word 0x00001306
|
||||
_0232F844: .word 0x00000EBC
|
||||
_0232F848: .word 0x00000EBD
|
||||
_0232F844: .word 0x00000EBC + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F848: .word 0x00000EBD + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
#ifndef JAPAN
|
||||
_0232F84C: .word 0x00000EBE
|
||||
_0232F850: .word 0x00000EBF
|
||||
_0232F854: .word 0x00000EBB
|
||||
#endif
|
||||
_0232F850: .word 0x00000EBF + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F854: .word 0x00000EBB + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
_0232F858: .word 0x0000270F
|
||||
_0232F85C: .word 0x0000021E
|
||||
_0232F860:
|
||||
@@ -1116,7 +1177,7 @@ _0232F87C:
|
||||
_0232F8A0:
|
||||
ldr r0, _0232F85C ; =0x0000021E
|
||||
mov r1, #1
|
||||
strb r1, [r5, #0x162]
|
||||
strb r1, [r5, #0x162 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmp r6, r0
|
||||
addls pc, pc, r6, lsl #2
|
||||
b _023326C8
|
||||
@@ -4447,7 +4508,7 @@ _0233275C:
|
||||
cmp r0, #0
|
||||
ldrneb r0, [r5, #6]
|
||||
cmpne r0, #0
|
||||
strneb fp, [r5, #0x108]
|
||||
strneb fp, [r5, #0x108 + EXECUTE_MOVE_EFFECT_OFFSET_2]
|
||||
b _023327C8
|
||||
_02332790:
|
||||
mov r0, r8
|
||||
@@ -4469,7 +4530,7 @@ _023327C8:
|
||||
bl EntityIsValid__0232E840
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
strneb r0, [r5, #0x162]
|
||||
strneb r0, [r5, #0x162 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmp r6, #0x89
|
||||
beq _02332818
|
||||
mov r0, sb
|
||||
@@ -4502,8 +4563,8 @@ _02332830:
|
||||
cmp r0, #0
|
||||
ldrne r1, [sb, #0xb4]
|
||||
movne r0, #0
|
||||
strneb r0, [r1, #0x166]
|
||||
strneb r0, [r1, #0x167]
|
||||
strneb r0, [r1, #0x166 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
strneb r0, [r1, #0x167 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
_02332858:
|
||||
mov r0, r6
|
||||
bl IsHealingWishOrLunarDance
|
||||
@@ -4568,14 +4629,14 @@ _02332930:
|
||||
bl EntityIsValid__0232E840
|
||||
cmp r0, #0
|
||||
ldrne r4, [sb, #0xb4]
|
||||
ldrneb r0, [r4, #0x15e]
|
||||
ldrneb r0, [r4, #0x15e + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmpne r0, #0
|
||||
beq _02332970
|
||||
mov r2, #0
|
||||
mov r0, sb
|
||||
mov r1, sb
|
||||
mov r3, r2
|
||||
strb r2, [r4, #0x15e]
|
||||
strb r2, [r4, #0x15e + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
bl TryWarp
|
||||
_02332970:
|
||||
mov r0, sb
|
||||
@@ -4583,12 +4644,12 @@ _02332970:
|
||||
cmp r0, #0
|
||||
beq _023329CC
|
||||
ldr r4, [sb, #0xb4]
|
||||
ldrb r0, [r4, #0x15f]
|
||||
ldrb r0, [r4, #0x15f + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
cmp r0, #0
|
||||
beq _023329B8
|
||||
add r0, sp, #0x9c
|
||||
mov r5, #0
|
||||
strb r5, [r4, #0x15f]
|
||||
strb r5, [r4, #0x15f + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
ldr r2, [r0]
|
||||
str r5, [sp]
|
||||
mov r0, sb
|
||||
@@ -4601,7 +4662,7 @@ _023329B8:
|
||||
ldr r0, _023329D8 ; =0x000001F6
|
||||
cmp r1, r0
|
||||
moveq r0, #0
|
||||
streqb r0, [r4, #0x170]
|
||||
streqb r0, [r4, #0x170 + EXECUTE_MOVE_EFFECT_OFFSET]
|
||||
_023329CC:
|
||||
add sp, sp, #0xf0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
@@ -4610,7 +4671,7 @@ _023329D4: .word ov29_02353718
|
||||
_023329D8: .word 0x000001F6
|
||||
_023329DC: .word ov29_0237CA68
|
||||
_023329E0: .word 0x0000023A
|
||||
_023329E4: .word 0x00000EC2
|
||||
_023329E4: .word 0x00000EC2 + EXECUTE_MOVE_EFFECT_DATA_OFFSET
|
||||
arm_func_end ExecuteMoveEffect
|
||||
|
||||
arm_func_start ExclusiveItemEffectIsActive__023329E8
|
||||
@@ -4621,7 +4682,11 @@ ExclusiveItemEffectIsActive__023329E8: ; 0x023329E8
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r3, pc}
|
||||
#ifdef JAPAN
|
||||
add r0, r2, #0x224
|
||||
#else
|
||||
add r0, r2, #0x228
|
||||
#endif
|
||||
bl ExclusiveItemEffectFlagTest
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ExclusiveItemEffectIsActive__023329E8
|
||||
@@ -4643,7 +4708,9 @@ DefenderAbilityIsActive__02332A0C: ; 0x02332A0C
|
||||
and r1, r1, #0xff
|
||||
_02332A40:
|
||||
cmp r1, #0
|
||||
#ifndef JAPAN
|
||||
cmpne r3, #0
|
||||
#endif
|
||||
beq _02332A60
|
||||
mov r1, #0x53
|
||||
bl AbilityIsActiveVeneer
|
||||
@@ -4870,6 +4937,11 @@ DealDamageWithType: ; 0x02332CDC
|
||||
|
||||
arm_func_start PerformDamageSequence
|
||||
PerformDamageSequence: ; 0x02332D6C
|
||||
#ifdef JAPAN
|
||||
#define PERFORM_DAMAGE_SEQUENCE_OFFSET -4
|
||||
#else
|
||||
#define PERFORM_DAMAGE_SEQUENCE_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r8, r0
|
||||
@@ -4889,7 +4961,9 @@ PerformDamageSequence: ; 0x02332D6C
|
||||
moveq r5, #1
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
movne r5, #0
|
||||
bl DefenderAbilityIsActive__02332A0C
|
||||
cmp r0, #0
|
||||
@@ -4901,11 +4975,19 @@ PerformDamageSequence: ; 0x02332D6C
|
||||
strh r2, [r0, #0x82]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x19000
|
||||
#ifdef JAPAN
|
||||
str r7, [r0, #0x864]
|
||||
#else
|
||||
str r7, [r0, #0x908]
|
||||
#endif
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r7, #0x26]
|
||||
add r0, r0, #0x19000
|
||||
#ifdef JAPAN
|
||||
str r1, [r0, #0x86c]
|
||||
#else
|
||||
str r1, [r0, #0x910]
|
||||
#endif
|
||||
_02332DFC:
|
||||
ldrsh r0, [sp, #0x28]
|
||||
mov ip, #1
|
||||
@@ -4920,8 +5002,8 @@ _02332DFC:
|
||||
str r5, [sp, #0xc]
|
||||
bl ApplyDamageAndEffects
|
||||
mov r0, r5
|
||||
strb r0, [r4, #0x166]
|
||||
strb r0, [r4, #0x167]
|
||||
strb r0, [r4, #0x166 + PERFORM_DAMAGE_SEQUENCE_OFFSET]
|
||||
strb r0, [r4, #0x167 + PERFORM_DAMAGE_SEQUENCE_OFFSET]
|
||||
b _02332ED0
|
||||
_02332E3C:
|
||||
bl ov29_0234B034
|
||||
@@ -4962,7 +5044,7 @@ _02332EB8:
|
||||
ldrh r1, [r5, #4]
|
||||
rsb r0, r2, #0x164
|
||||
cmp r1, r0
|
||||
strneb r2, [r4, #0x166]
|
||||
strneb r2, [r4, #0x166 + PERFORM_DAMAGE_SEQUENCE_OFFSET]
|
||||
_02332ED0:
|
||||
ldrb r0, [r6, #0x10]
|
||||
cmp r0, #0
|
||||
@@ -4973,7 +5055,7 @@ _02332ED0:
|
||||
cmp r0, #0
|
||||
ldrne r0, [r7, #0xb4]
|
||||
movne r1, #1
|
||||
strneb r1, [r0, #0x164]
|
||||
strneb r1, [r0, #0x164 + PERFORM_DAMAGE_SEQUENCE_OFFSET]
|
||||
ldr r0, [r6]
|
||||
_02332EFC:
|
||||
add sp, sp, #0x10
|
||||
@@ -4983,7 +5065,11 @@ _02332F04: .word 0x0000013A
|
||||
_02332F08: .word DUNGEON_PTR
|
||||
_02332F0C: .word 0x000003E7
|
||||
_02332F10: .word 0x0000270F
|
||||
#ifdef JAPAN
|
||||
_02332F14: .word 0x00000C05
|
||||
#else
|
||||
_02332F14: .word 0x00000EC3
|
||||
#endif
|
||||
arm_func_end PerformDamageSequence
|
||||
|
||||
arm_func_start ov29_02332F18
|
||||
@@ -5028,7 +5114,11 @@ ov29_02332F18: ; 0x02332F18
|
||||
cmp r0, #0
|
||||
ldrne r0, [r7, #0xb4]
|
||||
movne r1, #1
|
||||
#ifdef JAPAN
|
||||
strneb r1, [r0, #0x160]
|
||||
#else
|
||||
strneb r1, [r0, #0x164]
|
||||
#endif
|
||||
ldr r0, [sp, #0x10]
|
||||
_02332FC0:
|
||||
add sp, sp, #0x24
|
||||
@@ -5090,6 +5180,13 @@ ov29_02333044: ; 0x02333044
|
||||
|
||||
arm_func_start StatusCheckerCheck
|
||||
StatusCheckerCheck: ; 0x02333074
|
||||
#ifdef JAPAN
|
||||
#define STATUS_CHECKER_CHECK_OFFSET -4
|
||||
#define STATUS_CHECKER_CHECK_OFFSET_2 -0xA4
|
||||
#else
|
||||
#define STATUS_CHECKER_CHECK_OFFSET 0
|
||||
#define STATUS_CHECKER_CHECK_OFFSET_2 0
|
||||
#endif
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldrh r2, [r1, #4]
|
||||
ldr r1, _02333F98 ; =0x00000109
|
||||
@@ -5542,10 +5639,10 @@ _02333674:
|
||||
cmp r0, #0x13
|
||||
bgt _023336A8
|
||||
add r0, r3, #0x100
|
||||
ldrh r1, [r0, #0x46]
|
||||
ldrh r1, [r0, #0x46 + STATUS_CHECKER_CHECK_OFFSET]
|
||||
sub r2, sp, #4
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #0x48]
|
||||
ldrh r0, [r0, #0x48 + STATUS_CHECKER_CHECK_OFFSET]
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [r2]
|
||||
bl CeilFixedPoint
|
||||
@@ -5573,7 +5670,7 @@ _023336D8:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_023336EC:
|
||||
ldr r0, [r3, #0x110]
|
||||
ldr r0, [r3, #0x110 + STATUS_CHECKER_CHECK_OFFSET]
|
||||
cmp r0, #3
|
||||
ble _02333F90
|
||||
mov r0, #0
|
||||
@@ -5649,14 +5746,14 @@ _023337D4:
|
||||
ldrsh r0, [r3, #0x10]
|
||||
cmp r2, r0
|
||||
ble _02333804
|
||||
ldrb r0, [r3, #0x11e]
|
||||
ldrb r0, [r3, #0x11e + STATUS_CHECKER_CHECK_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _02333F90
|
||||
_02333804:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0233380C:
|
||||
ldrb r0, [r3, #0x11e]
|
||||
ldrb r0, [r3, #0x11e + STATUS_CHECKER_CHECK_OFFSET]
|
||||
cmp r0, #0
|
||||
bne _02333F90
|
||||
mov r0, #0
|
||||
@@ -5681,7 +5778,11 @@ _02333850:
|
||||
ldr r1, [r1]
|
||||
ldr r3, _02333FA8 ; =ov10_022C6322
|
||||
add r1, r1, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r1, [r1, #0x30]
|
||||
#else
|
||||
ldrsh r1, [r1, #0xd4]
|
||||
#endif
|
||||
smulbb r1, r1, r2
|
||||
ldrb r1, [r3, r1]
|
||||
bl MonsterIsType
|
||||
@@ -5716,7 +5817,7 @@ _023338C0:
|
||||
_023338D4:
|
||||
ldrsh r0, [r3, #0x24]
|
||||
cmp r0, #0x13
|
||||
ldrgt r0, [r3, #0x110]
|
||||
ldrgt r0, [r3, #0x110 + STATUS_CHECKER_CHECK_OFFSET]
|
||||
cmpgt r0, #3
|
||||
ble _02333F90
|
||||
mov r0, #0
|
||||
@@ -5824,7 +5925,7 @@ _02333A44:
|
||||
ldr r0, _02333FA4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xc000
|
||||
ldrb r0, [r0, #0xd5b]
|
||||
ldrb r0, [r0, #0xd5b + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
cmp r0, #0
|
||||
beq _02333F90
|
||||
mov r0, #0
|
||||
@@ -5833,7 +5934,7 @@ _02333A64:
|
||||
ldr r0, _02333FA4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xc000
|
||||
ldrb r0, [r0, #0xd5c]
|
||||
ldrb r0, [r0, #0xd5c + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
cmp r0, #0
|
||||
beq _02333F90
|
||||
mov r0, #0
|
||||
@@ -5848,13 +5949,13 @@ _02333A98:
|
||||
ldr r0, _02333FA4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x3000
|
||||
ldrb r0, [r0, #0xe38]
|
||||
ldrb r0, [r0, #0xe38 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
cmp r0, #0
|
||||
beq _02333F90
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_02333AB8:
|
||||
ldrb r0, [r3, #0x11e]
|
||||
ldrb r0, [r3, #0x11e + STATUS_CHECKER_CHECK_OFFSET]
|
||||
cmp r0, #3
|
||||
blo _02333F90
|
||||
mov r0, #0
|
||||
@@ -5955,7 +6056,7 @@ _02333C0C:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb38]
|
||||
ldr r7, [r0, #0xb38 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__02333FAC
|
||||
cmp r0, #0
|
||||
@@ -5989,7 +6090,7 @@ _02333C80:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__02333FAC
|
||||
cmp r0, #0
|
||||
@@ -6033,7 +6134,7 @@ _02333D18:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb38]
|
||||
ldr r7, [r0, #0xb38 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__02333FAC
|
||||
cmp r0, #0
|
||||
@@ -6064,7 +6165,7 @@ _02333D80:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__02333FAC
|
||||
cmp r0, #0
|
||||
@@ -6106,7 +6207,7 @@ _02333E10:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb38]
|
||||
ldr r7, [r0, #0xb38 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__02333FAC
|
||||
cmp r0, #0
|
||||
@@ -6144,7 +6245,7 @@ _02333E94:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
ldr r7, [r0, #0xb28]
|
||||
ldr r7, [r0, #0xb28 + STATUS_CHECKER_CHECK_OFFSET_2]
|
||||
mov r0, r7
|
||||
bl EntityIsValid__02333FAC
|
||||
cmp r0, #0
|
||||
@@ -6182,7 +6283,7 @@ _02333F10:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_02333F24:
|
||||
ldr r0, [r3, #0x110]
|
||||
ldr r0, [r3, #0x110 + STATUS_CHECKER_CHECK_OFFSET]
|
||||
cmp r0, #1
|
||||
ble _02333F90
|
||||
mov r0, #0
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
|
||||
arm_func_start ov29_02333FD0
|
||||
ov29_02333FD0: ; 0x02333FD0
|
||||
#ifdef JAPAN
|
||||
#define OV29_02333FD0_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_02333FD0_OFFSET 0
|
||||
#endif
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
mov r6, r1
|
||||
ldr r5, [r6, #0xb4]
|
||||
@@ -405,7 +410,7 @@ _0233454C:
|
||||
cmp r0, #6
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
add r0, r5, #0x124
|
||||
add r0, r5, #0x124 + OV29_02333FD0_OFFSET
|
||||
bl ov29_02334CAC
|
||||
cmp r0, #0
|
||||
bne _02334C9C
|
||||
@@ -431,7 +436,7 @@ _023345A0:
|
||||
b _023345DC
|
||||
_023345B0:
|
||||
add r2, r5, r3, lsl #3
|
||||
ldrb r2, [r2, #0x124]
|
||||
ldrb r2, [r2, #0x124 + OV29_02333FD0_OFFSET]
|
||||
tst r2, #1
|
||||
movne r4, r1
|
||||
moveq r4, r0
|
||||
@@ -445,7 +450,7 @@ _023345D8:
|
||||
_023345DC:
|
||||
cmp r3, #4
|
||||
blt _023345B0
|
||||
ldrb r0, [r5, #0x144]
|
||||
ldrb r0, [r5, #0x144 + OV29_02333FD0_OFFSET]
|
||||
tst r0, #0x20
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
@@ -453,7 +458,7 @@ _023345F4:
|
||||
cmp r0, #0
|
||||
movne r0, #0
|
||||
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
add r0, r5, #0x124
|
||||
add r0, r5, #0x124 + OV29_02333FD0_OFFSET
|
||||
bl ov29_02334CAC
|
||||
cmp r0, #0
|
||||
bne _02334C9C
|
||||
@@ -461,7 +466,7 @@ _023345F4:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
_02334618:
|
||||
ldr r0, [r6, #0xb4]
|
||||
ldr r0, [r0, #0x110]
|
||||
ldr r0, [r0, #0x110 + OV29_02333FD0_OFFSET]
|
||||
cmp r0, #1
|
||||
bge _02334C9C
|
||||
mov r0, #0
|
||||
@@ -480,7 +485,7 @@ _02334644:
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
_02334658:
|
||||
mov r4, #0
|
||||
add r3, r5, #0x124
|
||||
add r3, r5, #0x124 + OV29_02333FD0_OFFSET
|
||||
mov r1, r4
|
||||
mov r2, #1
|
||||
b _023346A4
|
||||
@@ -741,13 +746,17 @@ _023349CC:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
_023349E0:
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x105]
|
||||
#else
|
||||
ldrb r0, [r5, #0x106]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
beq _02334C9C
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
_023349F4:
|
||||
add r0, r5, #0x124
|
||||
add r0, r5, #0x124 + OV29_02333FD0_OFFSET
|
||||
bl ov29_02334CAC
|
||||
cmp r0, #0
|
||||
bne _02334C9C
|
||||
@@ -1000,7 +1009,11 @@ _02334D40:
|
||||
ldr r0, _02334D54 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xc000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0xc94]
|
||||
#else
|
||||
ldrb r0, [r0, #0xd38]
|
||||
#endif
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_02334D54: .word DUNGEON_PTR
|
||||
@@ -1015,7 +1028,11 @@ ov29_02334D58: ; 0x02334D58
|
||||
ldr r0, _02334DA4 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x28000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x612]
|
||||
#else
|
||||
ldrb r0, [r0, #0x6b6]
|
||||
#endif
|
||||
cmp r0, #8
|
||||
bne _02334D8C
|
||||
mov r0, #8
|
||||
@@ -1034,22 +1051,37 @@ _02334DA4: .word DUNGEON_PTR
|
||||
|
||||
arm_func_start ov29_02334DA8
|
||||
ov29_02334DA8: ; 0x02334DA8
|
||||
#ifdef JAPAN
|
||||
#define OV29_02334DA8_OFFSET -0xA4
|
||||
#else
|
||||
#define OV29_02334DA8_OFFSET 0
|
||||
#endif
|
||||
|
||||
ldr r3, _02334E6C ; =DUNGEON_PTR
|
||||
mov r1, #0
|
||||
ldr r2, [r3]
|
||||
add r2, r2, #0xc000
|
||||
strb r0, [r2, #0xd39]
|
||||
strb r0, [r2, #0xd39 + OV29_02334DA8_OFFSET]
|
||||
ldr r0, [r3]
|
||||
add r0, r0, #0xc000
|
||||
ldrb r2, [r0, #0xd39]
|
||||
strb r2, [r0, #0xd38]
|
||||
ldrb r2, [r0, #0xd39 + OV29_02334DA8_OFFSET]
|
||||
strb r2, [r0, #0xd38 + OV29_02334DA8_OFFSET]
|
||||
ldr r0, [r3]
|
||||
add r0, r0, #0xc000
|
||||
strb r1, [r0, #0xd5d]
|
||||
strb r1, [r0, #0xd5d + OV29_02334DA8_OFFSET]
|
||||
mov r0, r1
|
||||
_02334DDC:
|
||||
ldr r2, [r3]
|
||||
add r2, r2, r1, lsl #1
|
||||
#ifdef JAPAN
|
||||
add r2, r2, #0xcd00
|
||||
strh r0, [r2, #0x3a]
|
||||
ldr r2, [r3]
|
||||
add r2, r2, r1, lsl #1
|
||||
add r2, r2, #0xcc00
|
||||
add r1, r1, #1
|
||||
strh r0, [r2, #0xa6]
|
||||
#else
|
||||
add r2, r2, #0xcd00
|
||||
strh r0, [r2, #0x3a]
|
||||
ldr r2, [r3]
|
||||
@@ -1057,19 +1089,20 @@ _02334DDC:
|
||||
add r2, r2, #0xcd00
|
||||
add r1, r1, #1
|
||||
strh r0, [r2, #0x4a]
|
||||
#endif
|
||||
cmp r1, #8
|
||||
blt _02334DDC
|
||||
ldr r2, _02334E6C ; =DUNGEON_PTR
|
||||
mov r3, #9
|
||||
ldr r1, [r2]
|
||||
add r1, r1, #0xc000
|
||||
strb r3, [r1, #0xd5a]
|
||||
strb r3, [r1, #0xd5a + OV29_02334DA8_OFFSET]
|
||||
ldr r1, [r2]
|
||||
add r1, r1, #0xc000
|
||||
strb r0, [r1, #0xd5b]
|
||||
strb r0, [r1, #0xd5b + OV29_02334DA8_OFFSET]
|
||||
ldr r1, [r2]
|
||||
add r1, r1, #0xc000
|
||||
strb r0, [r1, #0xd5c]
|
||||
strb r0, [r1, #0xd5c + OV29_02334DA8_OFFSET]
|
||||
_02334E34:
|
||||
ldr r1, [r2]
|
||||
and r3, r0, #0xff
|
||||
@@ -1206,7 +1239,11 @@ _02335014:
|
||||
ldr r0, _02335040 ; =DUNGEON_PTR
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0xc000
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0xc94]
|
||||
#else
|
||||
ldrb r0, [r0, #0xd38]
|
||||
#endif
|
||||
bl ov29_02338A4C
|
||||
ldr r1, _0233503C ; =ov29_02353562
|
||||
ldr r0, [sp]
|
||||
@@ -1225,7 +1262,11 @@ ov29_02335044: ; 0x02335044
|
||||
mov r5, r0
|
||||
ldr r0, [r1]
|
||||
add r0, r0, #0x1a000
|
||||
#ifdef JAPAN
|
||||
ldr r4, [r0, #0x188]
|
||||
#else
|
||||
ldr r4, [r0, #0x22c]
|
||||
#endif
|
||||
cmp r4, #0
|
||||
bne _0233506C
|
||||
bl GetLeader
|
||||
@@ -1235,8 +1276,13 @@ _0233506C:
|
||||
beq _02335094
|
||||
mov r0, #0
|
||||
bl GetApparentWeather
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x56
|
||||
add r0, r0, #0xc00
|
||||
#else
|
||||
add r0, r0, #0x45
|
||||
add r0, r0, #0xa00
|
||||
#endif
|
||||
mov r1, r0, lsl #0x10
|
||||
mov r0, r4
|
||||
mov r1, r1, lsr #0x10
|
||||
@@ -1248,7 +1294,11 @@ _0233509C:
|
||||
ldr r0, [r4]
|
||||
add r0, r0, r5, lsl #2
|
||||
add r0, r0, #0x12000
|
||||
#ifdef JAPAN
|
||||
ldr r6, [r0, #0xad4]
|
||||
#else
|
||||
ldr r6, [r0, #0xb78]
|
||||
#endif
|
||||
mov r0, r6
|
||||
bl EntityIsValid__023350D8
|
||||
cmp r0, #0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user