mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-24 17:54:43 -05:00
Decomped more dungeon AI (#67)
* Decomped IsMovingClient() * Fixed typos in boss dialogue * Fixed spelling of Pelipper * Decomped CannotUseItems * Decomped ShouldAvoidEnemies() * Decomped HasAbility() * Decomped HasTactic() * Decomped CannotMove * Decomped CannotAct() and IsCharging()
This commit is contained in:
@@ -3873,7 +3873,7 @@ _080449F2:
|
||||
_08044A24:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x32
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08044A46
|
||||
@@ -3890,7 +3890,7 @@ _08044A24:
|
||||
_08044A46:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x3F
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08044A60
|
||||
@@ -3903,7 +3903,7 @@ _08044A46:
|
||||
_08044A60:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x38
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08044A7A
|
||||
|
||||
@@ -3981,7 +3981,7 @@ _08046F2A:
|
||||
lsrs r5, r0, 24
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08046F64
|
||||
|
||||
@@ -616,7 +616,7 @@ _080489A2:
|
||||
lsrs r5, r0, 24
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080489DC
|
||||
@@ -769,7 +769,7 @@ _08048AF4:
|
||||
_08048AF6:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048B06
|
||||
@@ -901,7 +901,7 @@ _08048BD6:
|
||||
movs r7, 0x1
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
ldr r2, [sp, 0x1C]
|
||||
cmp r0, 0
|
||||
|
||||
1029
asm/code_80521D0.s
1029
asm/code_80521D0.s
File diff suppressed because it is too large
Load Diff
977
asm/code_8057144.s
Normal file
977
asm/code_8057144.s
Normal file
@@ -0,0 +1,977 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8057144
|
||||
sub_8057144:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x144
|
||||
mov r9, r0
|
||||
movs r7, 0
|
||||
movs r5, 0
|
||||
_08057154:
|
||||
ldr r0, _080571D4
|
||||
ldr r0, [r0]
|
||||
lsls r1, r5, 2
|
||||
ldr r2, _080571D8
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
adds r5, 0x1
|
||||
mov r8, r5
|
||||
cmp r0, 0
|
||||
beq _080571B8
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
adds r5, r0, r1
|
||||
adds r4, r5, 0
|
||||
lsls r0, r7, 2
|
||||
mov r1, sp
|
||||
adds r2, r0, r1
|
||||
movs r6, 0x3
|
||||
_08057184:
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080571AE
|
||||
ldrh r1, [r4, 0x2]
|
||||
mov r0, r9
|
||||
str r2, [sp, 0x140]
|
||||
bl sub_805755C
|
||||
lsls r0, 24
|
||||
ldr r2, [sp, 0x140]
|
||||
cmp r0, 0
|
||||
bne _080571AE
|
||||
ldrh r0, [r4, 0x2]
|
||||
cmp r0, 0x8A
|
||||
beq _080571AE
|
||||
cmp r7, 0x4F
|
||||
bgt _080571AE
|
||||
stm r2!, {r5}
|
||||
adds r7, 0x1
|
||||
_080571AE:
|
||||
adds r4, 0x8
|
||||
adds r5, 0x8
|
||||
subs r6, 0x1
|
||||
cmp r6, 0
|
||||
bge _08057184
|
||||
_080571B8:
|
||||
mov r5, r8
|
||||
cmp r5, 0x13
|
||||
ble _08057154
|
||||
cmp r7, 0
|
||||
beq _080571DC
|
||||
adds r0, r7, 0
|
||||
bl DungeonRandomCapped
|
||||
lsls r0, 2
|
||||
add r0, sp
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, 0x2]
|
||||
b _080571DE
|
||||
.align 2, 0
|
||||
_080571D4: .4byte gDungeonGlobalData
|
||||
_080571D8: .4byte 0x000135cc
|
||||
_080571DC:
|
||||
ldr r0, _080571EC
|
||||
_080571DE:
|
||||
add sp, 0x144
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080571EC: .4byte 0x00000163
|
||||
thumb_func_end sub_8057144
|
||||
|
||||
thumb_func_start sub_80571F0
|
||||
sub_80571F0:
|
||||
push {lr}
|
||||
ldr r0, [r0, 0x70]
|
||||
adds r2, r0, 0
|
||||
adds r2, 0xFF
|
||||
ldrb r2, [r2]
|
||||
cmp r2, 0x1
|
||||
bne _08057212
|
||||
ldrh r1, [r1, 0x2]
|
||||
cmp r1, 0x88
|
||||
beq _08057274
|
||||
cmp r1, 0xA2
|
||||
beq _08057274
|
||||
cmp r1, 0x39
|
||||
beq _08057274
|
||||
cmp r1, 0x40
|
||||
beq _08057274
|
||||
b _08057264
|
||||
_08057212:
|
||||
cmp r2, 0x2
|
||||
bne _08057274
|
||||
adds r0, 0xC0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x9
|
||||
bne _0805722A
|
||||
ldrh r1, [r1, 0x2]
|
||||
cmp r1, 0x20
|
||||
beq _08057274
|
||||
cmp r1, 0xDB
|
||||
bne _08057264
|
||||
b _08057274
|
||||
_0805722A:
|
||||
cmp r0, 0xA
|
||||
bne _08057264
|
||||
ldrh r1, [r1, 0x2]
|
||||
cmp r1, 0x76
|
||||
beq _08057274
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
beq _08057274
|
||||
cmp r1, 0x77
|
||||
bne _08057264
|
||||
ldr r0, _08057268
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0805726C
|
||||
adds r0, r1
|
||||
movs r2, 0
|
||||
ldrsh r1, [r0, r2]
|
||||
cmp r1, 0
|
||||
bge _08057252
|
||||
movs r1, 0
|
||||
_08057252:
|
||||
cmp r1, 0x4A
|
||||
ble _08057258
|
||||
movs r1, 0x4A
|
||||
_08057258:
|
||||
ldr r0, _08057270
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0x76
|
||||
beq _08057274
|
||||
_08057264:
|
||||
movs r0, 0x1
|
||||
b _08057276
|
||||
.align 2, 0
|
||||
_08057268: .4byte gDungeonGlobalData
|
||||
_0805726C: .4byte 0x00003a0e
|
||||
_08057270: .4byte gUnknown_80F5D10
|
||||
_08057274:
|
||||
movs r0, 0
|
||||
_08057276:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80571F0
|
||||
|
||||
thumb_func_start sub_805727C
|
||||
sub_805727C:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r4, r2, 0
|
||||
bl sub_8044B28
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080572FC
|
||||
adds r0, r6, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080572FC
|
||||
adds r0, r5, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080572FC
|
||||
ldr r1, [r5, 0x70]
|
||||
movs r2, 0xAC
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080572FC
|
||||
movs r2, 0xE
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0
|
||||
beq _080572FC
|
||||
cmp r4, 0
|
||||
beq _080572DE
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x26
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080572D2
|
||||
lsls r0, r4, 1
|
||||
b _080572D4
|
||||
_080572D2:
|
||||
adds r0, r4, 0
|
||||
_080572D4:
|
||||
bl sub_8084160
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
b _080572E0
|
||||
_080572DE:
|
||||
movs r4, 0x1
|
||||
_080572E0:
|
||||
cmp r4, 0
|
||||
beq _08057300
|
||||
cmp r6, r5
|
||||
beq _08057300
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x4C
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08057300
|
||||
adds r0, r5, 0
|
||||
bl sub_80429C8
|
||||
_080572FC:
|
||||
movs r0, 0
|
||||
b _08057302
|
||||
_08057300:
|
||||
adds r0, r4, 0
|
||||
_08057302:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_805727C
|
||||
|
||||
thumb_func_start sub_8057308
|
||||
sub_8057308:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0805731C
|
||||
movs r0, 0
|
||||
b _08057340
|
||||
_0805731C:
|
||||
cmp r4, 0
|
||||
bne _08057324
|
||||
movs r0, 0x1
|
||||
b _08057340
|
||||
_08057324:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x26
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08057336
|
||||
adds r0, r4, 0
|
||||
b _08057338
|
||||
_08057336:
|
||||
lsls r0, r4, 1
|
||||
_08057338:
|
||||
bl sub_8084160
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_08057340:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8057308
|
||||
|
||||
thumb_func_start sub_8057348
|
||||
sub_8057348:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r8, r2
|
||||
ldr r6, [r7, 0x70]
|
||||
lsls r1, 3
|
||||
movs r0, 0x8C
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
adds r4, r6, r1
|
||||
ldrb r1, [r4]
|
||||
movs r2, 0x1
|
||||
adds r0, r2, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080573BE
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080573BE
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080573BE
|
||||
ldrb r1, [r4, 0x1]
|
||||
adds r0, r2, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0805738E
|
||||
b _080573BE
|
||||
_0805738A:
|
||||
movs r0, 0x1
|
||||
b _080573C0
|
||||
_0805738E:
|
||||
movs r5, 0
|
||||
b _08057394
|
||||
_08057392:
|
||||
adds r5, 0x1
|
||||
_08057394:
|
||||
cmp r5, 0x3
|
||||
bgt _080573BE
|
||||
adds r0, r7, 0
|
||||
adds r1, r4, 0
|
||||
mov r2, r8
|
||||
bl sub_80573CC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0805738A
|
||||
adds r4, 0x8
|
||||
movs r1, 0x9C
|
||||
lsls r1, 1
|
||||
adds r0, r6, r1
|
||||
cmp r4, r0
|
||||
bcs _080573BE
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08057392
|
||||
_080573BE:
|
||||
movs r0, 0
|
||||
_080573C0:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8057348
|
||||
|
||||
thumb_func_start sub_80573CC
|
||||
sub_80573CC:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r6, [r0, 0x70]
|
||||
ldrh r1, [r4, 0x2]
|
||||
ldr r0, _08057430
|
||||
cmp r1, r0
|
||||
beq _08057442
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0805743E
|
||||
ldrb r1, [r4, 0x1]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0805743E
|
||||
cmp r2, 0
|
||||
beq _08057442
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _0805743E
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xBC
|
||||
ldrb r1, [r0]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0x5
|
||||
bne _08057414
|
||||
adds r0, r4, 0
|
||||
bl sub_8092C54
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805743E
|
||||
_08057414:
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0x6
|
||||
bne _08057442
|
||||
ldrh r1, [r4, 0x2]
|
||||
movs r0, 0xB0
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bne _08057434
|
||||
movs r1, 0x9C
|
||||
lsls r1, 1
|
||||
adds r0, r6, r1
|
||||
ldrb r1, [r0]
|
||||
b _08057436
|
||||
.align 2, 0
|
||||
_08057430: .4byte 0x00000163
|
||||
_08057434:
|
||||
ldrb r1, [r4]
|
||||
_08057436:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08057442
|
||||
_0805743E:
|
||||
movs r0, 0
|
||||
b _08057444
|
||||
_08057442:
|
||||
movs r0, 0x1
|
||||
_08057444:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80573CC
|
||||
|
||||
thumb_func_start sub_805744C
|
||||
sub_805744C:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r6, [r0, 0x70]
|
||||
ldrh r1, [r4, 0x2]
|
||||
ldr r0, _080574A8
|
||||
cmp r1, r0
|
||||
beq _080574BA
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080574B6
|
||||
ldrb r1, [r4, 0x1]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080574B6
|
||||
cmp r2, 0
|
||||
beq _080574BA
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xBC
|
||||
ldrb r1, [r0]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0x5
|
||||
bne _0805748E
|
||||
adds r0, r4, 0
|
||||
bl sub_8092C54
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080574B6
|
||||
_0805748E:
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0x6
|
||||
bne _080574BA
|
||||
ldrh r1, [r4, 0x2]
|
||||
movs r0, 0xB0
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bne _080574AC
|
||||
movs r1, 0x9C
|
||||
lsls r1, 1
|
||||
adds r0, r6, r1
|
||||
ldrb r1, [r0]
|
||||
b _080574AE
|
||||
.align 2, 0
|
||||
_080574A8: .4byte 0x00000163
|
||||
_080574AC:
|
||||
ldrb r1, [r4]
|
||||
_080574AE:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080574BA
|
||||
_080574B6:
|
||||
movs r0, 0
|
||||
b _080574BC
|
||||
_080574BA:
|
||||
movs r0, 0x1
|
||||
_080574BC:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_805744C
|
||||
|
||||
thumb_func_start sub_80574C4
|
||||
sub_80574C4:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x104
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
movs r3, 0
|
||||
movs r2, 0
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08057502
|
||||
cmp r0, r5
|
||||
beq _080574EA
|
||||
_080574DA:
|
||||
lsls r0, r3, 2
|
||||
mov r6, sp
|
||||
adds r1, r6, r0
|
||||
lsls r0, r2, 2
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
adds r3, 0x1
|
||||
_080574EA:
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x40
|
||||
bgt _08057502
|
||||
lsls r0, r2, 2
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08057502
|
||||
cmp r0, r5
|
||||
beq _080574EA
|
||||
cmp r3, 0x3F
|
||||
ble _080574DA
|
||||
_08057502:
|
||||
movs r2, 0
|
||||
ldr r0, [r4]
|
||||
b _08057524
|
||||
_08057508:
|
||||
lsls r0, r3, 2
|
||||
mov r6, sp
|
||||
adds r1, r6, r0
|
||||
lsls r0, r2, 2
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
adds r3, 0x1
|
||||
_08057518:
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x40
|
||||
bgt _08057530
|
||||
lsls r0, r2, 2
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
_08057524:
|
||||
cmp r0, 0
|
||||
beq _08057530
|
||||
cmp r0, r5
|
||||
bne _08057518
|
||||
cmp r3, 0x3F
|
||||
ble _08057508
|
||||
_08057530:
|
||||
cmp r3, 0x40
|
||||
bgt _08057542
|
||||
movs r1, 0
|
||||
lsls r0, r3, 2
|
||||
add r0, sp
|
||||
_0805753A:
|
||||
stm r0!, {r1}
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x40
|
||||
ble _0805753A
|
||||
_08057542:
|
||||
mov r3, sp
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x40
|
||||
_08057548:
|
||||
ldm r3!, {r0}
|
||||
stm r1!, {r0}
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bge _08057548
|
||||
add sp, 0x104
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80574C4
|
||||
|
||||
thumb_func_start sub_805755C
|
||||
sub_805755C:
|
||||
push {r4,lr}
|
||||
lsls r1, 16
|
||||
lsrs r4, r1, 16
|
||||
cmp r4, 0x97
|
||||
bne _08057576
|
||||
bl sub_807E580
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _08057576
|
||||
movs r0, 0
|
||||
b _08057580
|
||||
_08057576:
|
||||
adds r0, r4, 0
|
||||
bl sub_809422C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_08057580:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_805755C
|
||||
|
||||
thumb_func_start sub_8057588
|
||||
sub_8057588:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r6, r1, 24
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080575F8
|
||||
ldr r5, [r4, 0x70]
|
||||
movs r3, 0
|
||||
_0805759E:
|
||||
lsls r0, r3, 3
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
adds r2, r5, r0
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
adds r4, r3, 0x1
|
||||
cmp r0, 0
|
||||
beq _080575F2
|
||||
movs r3, 0x1
|
||||
ldrb r1, [r2, 0x1]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080575C8
|
||||
movs r0, 0xEF
|
||||
ands r0, r1
|
||||
strb r0, [r2, 0x1]
|
||||
movs r3, 0x2
|
||||
_080575C8:
|
||||
ldrb r1, [r2, 0x1]
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080575F2
|
||||
movs r0, 0xF7
|
||||
ands r0, r1
|
||||
strb r0, [r2, 0x1]
|
||||
cmp r6, 0
|
||||
beq _080575F2
|
||||
cmp r3, 0
|
||||
beq _080575F2
|
||||
adds r1, r3, 0
|
||||
_080575E2:
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0
|
||||
beq _080575EC
|
||||
subs r0, 0x1
|
||||
strb r0, [r2, 0x4]
|
||||
_080575EC:
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bne _080575E2
|
||||
_080575F2:
|
||||
adds r3, r4, 0
|
||||
cmp r3, 0x3
|
||||
ble _0805759E
|
||||
_080575F8:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8057588
|
||||
|
||||
thumb_func_start sub_8057600
|
||||
sub_8057600:
|
||||
push {r4,lr}
|
||||
ldrh r4, [r0, 0x2]
|
||||
adds r0, r1, 0
|
||||
bl sub_8057620
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_8094828
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8057600
|
||||
|
||||
thumb_func_start sub_8057620
|
||||
sub_8057620:
|
||||
push {lr}
|
||||
cmp r0, 0
|
||||
beq _0805762C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _0805762E
|
||||
_0805762C:
|
||||
movs r0, 0
|
||||
_0805762E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8057620
|
||||
|
||||
thumb_func_start sub_8057634
|
||||
sub_8057634:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x8
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
movs r7, 0
|
||||
movs r4, 0x80
|
||||
lsls r4, 1
|
||||
str r3, [sp]
|
||||
adds r3, r4, 0
|
||||
bl sub_8055640
|
||||
cmp r0, 0
|
||||
beq _08057678
|
||||
movs r7, 0x1
|
||||
ldr r0, _08057684
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
bl sub_805727C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08057678
|
||||
ldr r0, _08057688
|
||||
ldr r2, [r0]
|
||||
str r7, [sp]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
movs r3, 0x1
|
||||
bl sub_8076F80
|
||||
_08057678:
|
||||
adds r0, r7, 0
|
||||
add sp, 0x8
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08057684: .4byte gUnknown_80F4DB4
|
||||
_08057688: .4byte gUnknown_8106A4C
|
||||
thumb_func_end sub_8057634
|
||||
|
||||
thumb_func_start sub_805768C
|
||||
sub_805768C:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r3, 0
|
||||
movs r6, 0
|
||||
ldr r4, _080576B8
|
||||
ldr r3, [r4]
|
||||
adds r3, 0x1
|
||||
str r3, [r4]
|
||||
ldr r4, _080576BC
|
||||
lsls r3, 2
|
||||
adds r3, r4
|
||||
ldr r3, [r3]
|
||||
str r5, [sp]
|
||||
bl sub_8055640
|
||||
cmp r0, 0
|
||||
bne _080576C4
|
||||
ldr r1, _080576C0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _080576C6
|
||||
.align 2, 0
|
||||
_080576B8: .4byte gUnknown_202F21C
|
||||
_080576BC: .4byte gUnknown_8106A54
|
||||
_080576C0: .4byte gUnknown_202F220
|
||||
_080576C4:
|
||||
movs r6, 0x1
|
||||
_080576C6:
|
||||
adds r0, r6, 0
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_805768C
|
||||
|
||||
thumb_func_start sub_80576D0
|
||||
sub_80576D0:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r1, _080576F4
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_808417C
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x1
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_8075F34
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080576F4: .4byte gUnknown_80F4F28
|
||||
thumb_func_end sub_80576D0
|
||||
|
||||
thumb_func_start sub_80576F8
|
||||
sub_80576F8:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r1, _0805771C
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_808417C
|
||||
adds r2, r0, 0
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r3, 0x1
|
||||
bl sub_8075C58
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0805771C: .4byte gUnknown_80F4E74
|
||||
thumb_func_end sub_80576F8
|
||||
|
||||
thumb_func_start sub_8057720
|
||||
sub_8057720:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r1, _08057744
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_808417C
|
||||
adds r2, r0, 0
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_8075DBC
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08057744: .4byte gUnknown_80F4E78
|
||||
thumb_func_end sub_8057720
|
||||
|
||||
thumb_func_start sub_8057748
|
||||
sub_8057748:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
ldr r4, _08057778
|
||||
bl sub_807E580
|
||||
lsls r0, 24
|
||||
lsrs r0, 23
|
||||
adds r0, r4
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
movs r3, 0
|
||||
bl HealTargetHP
|
||||
movs r0, 0x1
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08057778: .4byte gUnknown_80F502A
|
||||
thumb_func_end sub_8057748
|
||||
|
||||
thumb_func_start sub_805777C
|
||||
sub_805777C:
|
||||
push {lr}
|
||||
bl sub_8079DB8
|
||||
movs r0, 0x1
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_805777C
|
||||
|
||||
thumb_func_start sub_8057788
|
||||
sub_8057788:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
adds r7, r1, 0
|
||||
adds r6, r2, 0
|
||||
mov r8, r3
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
adds r0, r4, 0
|
||||
bl sub_8045128
|
||||
adds r5, r0, 0
|
||||
bl sub_804AF20
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080577BA
|
||||
ldrh r1, [r5]
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0x1
|
||||
beq _080577CC
|
||||
_080577BA:
|
||||
ldr r0, _080577C8
|
||||
ldr r2, [r0]
|
||||
adds r0, r4, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_80522F4
|
||||
b _0805780E
|
||||
.align 2, 0
|
||||
_080577C8: .4byte gUnknown_80FD14C
|
||||
_080577CC:
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
bl sub_80570AC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080577F8
|
||||
ldr r0, _080577F4
|
||||
ldr r3, [r0]
|
||||
mov r0, r8
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r7, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8055640
|
||||
adds r0, r4, 0
|
||||
bl sub_8079764
|
||||
b _0805780A
|
||||
.align 2, 0
|
||||
_080577F4: .4byte gUnknown_80F4F68
|
||||
_080577F8:
|
||||
ldr r0, _08057820
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0xA
|
||||
adds r3, r6, 0
|
||||
bl sub_8079618
|
||||
_0805780A:
|
||||
movs r0, 0x1
|
||||
mov r9, r0
|
||||
_0805780E:
|
||||
mov r0, r9
|
||||
add sp, 0x4
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08057820: .4byte gUnknown_80FAD4C
|
||||
thumb_func_end sub_8057788
|
||||
|
||||
.align 2,0 @ Don't pad with nop
|
||||
@@ -1735,7 +1735,7 @@ sub_80586DC:
|
||||
adds r5, r3, 0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3A
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
@@ -2774,7 +2774,7 @@ _08058E94:
|
||||
movs r7, 0x1
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x7
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0
|
||||
@@ -3107,7 +3107,7 @@ sub_80590D4:
|
||||
lsrs r4, r1, 31
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x37
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805911C
|
||||
@@ -3233,7 +3233,7 @@ sub_80591E4:
|
||||
mov r8, r0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3A
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
@@ -3316,13 +3316,13 @@ SkillSwapMoveAction:
|
||||
ldr r5, [r6, 0x70]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x35
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080592BA
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x35
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080592D0
|
||||
@@ -3565,7 +3565,7 @@ sub_805946C:
|
||||
movs r6, 0x1
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x7
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0
|
||||
@@ -4526,7 +4526,7 @@ sub_8059BAC:
|
||||
ldr r7, [r5, 0x70]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08059BD8
|
||||
@@ -5261,7 +5261,7 @@ sub_805A120:
|
||||
bl SetMessageArgument
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2C
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805A174
|
||||
@@ -5513,7 +5513,7 @@ sub_805A31C:
|
||||
ldr r7, [r6, 0x70]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x35
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805A348
|
||||
@@ -6031,7 +6031,7 @@ sub_805A6C8:
|
||||
bl SetMessageArgument
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2C
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805A710
|
||||
@@ -7321,7 +7321,7 @@ sub_805B0D0:
|
||||
ldrb r6, [r0]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
@@ -8077,7 +8077,7 @@ sub_805B668:
|
||||
mov r8, r0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3A
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
@@ -8626,7 +8626,7 @@ sub_805BA50:
|
||||
bl SetMessageArgument
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2C
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805BAC4
|
||||
@@ -14536,7 +14536,7 @@ _0805ED3E:
|
||||
_0805ED50:
|
||||
mov r0, r8
|
||||
movs r1, 0
|
||||
bl sub_80570F4
|
||||
bl IsCharging
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0805ED96
|
||||
@@ -19393,7 +19393,7 @@ _08061530:
|
||||
_08061532:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08061542
|
||||
@@ -19747,7 +19747,7 @@ _080617F4:
|
||||
bl sub_8044F5C
|
||||
ldr r0, [sp, 0x74]
|
||||
movs r1, 0x1
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08061832
|
||||
@@ -20864,7 +20864,7 @@ _080620C4:
|
||||
bl sub_8044F5C
|
||||
ldr r0, [sp, 0x110]
|
||||
movs r1, 0x1
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08062102
|
||||
@@ -31411,7 +31411,7 @@ _080675C0:
|
||||
beq _08067600
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08067610
|
||||
@@ -36327,7 +36327,7 @@ _08069C74:
|
||||
adds r4, 0x1
|
||||
_08069C8E:
|
||||
mov r0, r8
|
||||
bl sub_8071494
|
||||
bl ShouldAvoidEnemies
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069CAA
|
||||
@@ -36541,7 +36541,7 @@ sub_8069E0C:
|
||||
adds r4, r0, 0
|
||||
ldr r5, [r4, 0x70]
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069E44
|
||||
@@ -36633,7 +36633,7 @@ _08069EAA:
|
||||
beq _08069F3E
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x4
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069EE8
|
||||
@@ -36648,7 +36648,7 @@ _08069EE4: .4byte 0x0000e273
|
||||
_08069EE8:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1C
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069F04
|
||||
@@ -36661,7 +36661,7 @@ _08069F00: .4byte 0x0000e271
|
||||
_08069F04:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x31
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069F1A
|
||||
@@ -36674,13 +36674,13 @@ _08069F18:
|
||||
_08069F1A:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x8
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08069F36
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2D
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069F3E
|
||||
@@ -36715,7 +36715,7 @@ sub_8069F54:
|
||||
bhi _08069F94
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08069F90
|
||||
@@ -36857,7 +36857,7 @@ _0806A068:
|
||||
strb r0, [r1]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x3B
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806A0FA
|
||||
@@ -37005,7 +37005,7 @@ sub_806A1B0:
|
||||
beq _0806A1DE
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2A
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806A1DE
|
||||
@@ -37951,12 +37951,12 @@ _0806A8C8:
|
||||
beq _0806A90E
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806A8EE
|
||||
adds r0, r4, 0
|
||||
bl sub_8070CD0
|
||||
bl CannotAct
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806A90E
|
||||
@@ -38339,7 +38339,7 @@ sub_806ABAC:
|
||||
ldr r5, [r4, 0x70]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x16
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806ABD4
|
||||
@@ -38354,7 +38354,7 @@ sub_806ABAC:
|
||||
_0806ABD4:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x40
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806ABF4
|
||||
@@ -38369,7 +38369,7 @@ _0806ABD4:
|
||||
_0806ABF4:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x42
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806AC14
|
||||
@@ -38384,7 +38384,7 @@ _0806ABF4:
|
||||
_0806AC14:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x29
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806AC34
|
||||
@@ -38399,13 +38399,13 @@ _0806AC14:
|
||||
_0806AC34:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x36
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806AC50
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x49
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806AC72
|
||||
@@ -38429,7 +38429,7 @@ _0806AC66:
|
||||
_0806AC72:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x41
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806AC92
|
||||
@@ -38444,7 +38444,7 @@ _0806AC72:
|
||||
_0806AC92:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x45
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806ACB8
|
||||
@@ -38462,7 +38462,7 @@ _0806AC92:
|
||||
_0806ACB8:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806ACE0
|
||||
@@ -43164,7 +43164,7 @@ _0806D088:
|
||||
ldr r0, [sp, 0x44]
|
||||
mov r9, r0
|
||||
adds r0, r5, 0
|
||||
bl sub_8070CD0
|
||||
bl CannotAct
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806D0A2
|
||||
@@ -43315,7 +43315,7 @@ _0806D19E:
|
||||
_0806D1B4:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x12
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D1C4
|
||||
@@ -43419,7 +43419,7 @@ _0806D26C:
|
||||
ldr r4, [r6, 0x70]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D2C2
|
||||
@@ -43431,7 +43431,7 @@ _0806D26C:
|
||||
bne _0806D2C2
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x37
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806D2C2
|
||||
@@ -43452,7 +43452,7 @@ _0806D26C:
|
||||
_0806D2C2:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xA
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D2EE
|
||||
@@ -43473,7 +43473,7 @@ _0806D2C2:
|
||||
_0806D2EE:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x17
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D328
|
||||
@@ -43500,7 +43500,7 @@ _0806D2EE:
|
||||
_0806D328:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x20
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D358
|
||||
@@ -43523,7 +43523,7 @@ _0806D328:
|
||||
_0806D358:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x27
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D384
|
||||
@@ -43544,7 +43544,7 @@ _0806D358:
|
||||
_0806D384:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x3D
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D3FA
|
||||
@@ -43597,7 +43597,7 @@ _0806D3F6:
|
||||
_0806D3FA:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x3E
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D428
|
||||
@@ -43619,7 +43619,7 @@ _0806D3FA:
|
||||
_0806D428:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x44
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D45A
|
||||
@@ -43643,7 +43643,7 @@ _0806D428:
|
||||
_0806D45A:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D48A
|
||||
@@ -43798,7 +43798,7 @@ _0806D592:
|
||||
beq _0806D5DC
|
||||
adds r0, r7, 0
|
||||
movs r1, 0xD
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D5DC
|
||||
@@ -43869,7 +43869,7 @@ _0806D62A:
|
||||
_0806D63A:
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x23
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D660
|
||||
@@ -43888,7 +43888,7 @@ _0806D64E:
|
||||
_0806D660:
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x24
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D674
|
||||
@@ -45263,7 +45263,7 @@ _0806E156:
|
||||
_0806E15A:
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r1, 0x35
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E170
|
||||
@@ -45386,7 +45386,7 @@ _0806E240:
|
||||
_0806E248:
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r1, 0x2
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E26C
|
||||
@@ -45430,7 +45430,7 @@ _0806E2A0:
|
||||
bne _0806E2D2
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r1, 0x37
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E2D2
|
||||
@@ -45454,7 +45454,7 @@ _0806E2D2:
|
||||
bne _0806E340
|
||||
mov r0, r8
|
||||
movs r1, 0x10
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E340
|
||||
@@ -45508,7 +45508,7 @@ _0806E340:
|
||||
bne _0806E3AC
|
||||
mov r0, r8
|
||||
movs r1, 0x1A
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E3AC
|
||||
@@ -45561,7 +45561,7 @@ _0806E3AC:
|
||||
bne _0806E41A
|
||||
mov r0, r8
|
||||
movs r1, 0x43
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E41A
|
||||
@@ -45615,7 +45615,7 @@ _0806E41A:
|
||||
bne _0806E486
|
||||
mov r0, r8
|
||||
movs r1, 0x46
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E486
|
||||
@@ -45913,7 +45913,7 @@ _0806E6A2:
|
||||
bne _0806E6B4
|
||||
ldr r0, [sp, 0x14]
|
||||
movs r1, 0x23
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806E6C6
|
||||
@@ -45922,7 +45922,7 @@ _0806E6B4:
|
||||
bne _0806E6CA
|
||||
ldr r0, [sp, 0x14]
|
||||
movs r1, 0x24
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E6CA
|
||||
@@ -45934,7 +45934,7 @@ _0806E6CA:
|
||||
bne _0806E6E0
|
||||
ldr r0, [sp, 0x14]
|
||||
movs r1, 0x37
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E6E0
|
||||
@@ -46013,7 +46013,7 @@ _0806E75E:
|
||||
_0806E766:
|
||||
ldr r0, [sp, 0x14]
|
||||
movs r1, 0x2
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806E84E
|
||||
@@ -46022,7 +46022,7 @@ _0806E774:
|
||||
bne _0806E7A0
|
||||
mov r0, r9
|
||||
movs r1, 0x10
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E7A0
|
||||
@@ -46045,7 +46045,7 @@ _0806E7A0:
|
||||
bne _0806E7CC
|
||||
mov r0, r9
|
||||
movs r1, 0x1A
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E7CC
|
||||
@@ -46068,7 +46068,7 @@ _0806E7CC:
|
||||
bne _0806E7F8
|
||||
mov r0, r9
|
||||
movs r1, 0x43
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E7F8
|
||||
@@ -46091,7 +46091,7 @@ _0806E7F8:
|
||||
bne _0806E824
|
||||
mov r0, r9
|
||||
movs r1, 0x46
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E824
|
||||
@@ -46217,7 +46217,7 @@ sub_806E8B0:
|
||||
_0806E8E6:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x11
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E92C
|
||||
@@ -46249,13 +46249,13 @@ _0806E916:
|
||||
_0806E92C:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x22
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806E948
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x4B
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E98E
|
||||
@@ -46297,7 +46297,7 @@ _0806E978:
|
||||
_0806E98E:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x30
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E9AC
|
||||
@@ -46319,7 +46319,7 @@ _0806E9AC:
|
||||
_0806E9B8:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x38
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E9EA
|
||||
@@ -46344,7 +46344,7 @@ _0806E9B8:
|
||||
_0806E9EA:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x3F
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806EA1C
|
||||
@@ -46369,7 +46369,7 @@ _0806E9EA:
|
||||
_0806EA1C:
|
||||
mov r0, r9
|
||||
movs r1, 0x6
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806EA38
|
||||
@@ -46383,7 +46383,7 @@ _0806EA1C:
|
||||
_0806EA38:
|
||||
mov r0, r9
|
||||
movs r1, 0x34
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806EA90
|
||||
@@ -46537,7 +46537,7 @@ _0806EB72:
|
||||
bne _0806EBA8
|
||||
mov r0, r9
|
||||
movs r1, 0x35
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806EBA8
|
||||
@@ -47220,13 +47220,13 @@ _0806F0EE:
|
||||
_0806F118:
|
||||
mov r0, r9
|
||||
movs r1, 0xC
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806F1F4
|
||||
mov r0, r9
|
||||
movs r1, 0x13
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806F1F4
|
||||
@@ -47558,7 +47558,7 @@ _0806F3C0:
|
||||
ble _0806F3C0
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x35
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806F3FC
|
||||
|
||||
10014
asm/code_807001C.s
10014
asm/code_807001C.s
File diff suppressed because it is too large
Load Diff
91
asm/code_8070BC0.s
Normal file
91
asm/code_8070BC0.s
Normal file
@@ -0,0 +1,91 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8070BC0
|
||||
sub_8070BC0:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r5, [r4, 0x70]
|
||||
movs r1, 0
|
||||
bl IsCharging
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070C56
|
||||
adds r6, r5, 0
|
||||
adds r6, 0xA8
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0x4
|
||||
beq _08070C56
|
||||
cmp r0, 0x3
|
||||
beq _08070C56
|
||||
adds r0, r4, 0
|
||||
bl ShouldAvoidEnemies
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070C56
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xEC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08070C56
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xB0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0x6
|
||||
beq _08070C56
|
||||
cmp r1, 0x1
|
||||
beq _08070C56
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xBC
|
||||
ldrb r3, [r0]
|
||||
adds r4, r0, 0
|
||||
cmp r3, 0x2
|
||||
beq _08070C56
|
||||
ldrb r2, [r6]
|
||||
cmp r2, 0x1
|
||||
beq _08070C56
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08070C56
|
||||
cmp r2, 0x5
|
||||
beq _08070C56
|
||||
cmp r3, 0x1
|
||||
beq _08070C56
|
||||
cmp r1, 0x3
|
||||
beq _08070C56
|
||||
cmp r1, 0x4
|
||||
beq _08070C56
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xE8
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0x2
|
||||
beq _08070C56
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xC8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
beq _08070C56
|
||||
cmp r1, 0x1
|
||||
beq _08070C56
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0x7
|
||||
beq _08070C56
|
||||
cmp r0, 0x3
|
||||
beq _08070C56
|
||||
movs r0, 0x1
|
||||
b _08070C58
|
||||
_08070C56:
|
||||
movs r0, 0
|
||||
_08070C58:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8070BC0
|
||||
|
||||
.align 2, 0
|
||||
997
asm/code_8070D04.s
Normal file
997
asm/code_8070D04.s
Normal file
@@ -0,0 +1,997 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8070D04
|
||||
sub_8070D04:
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
lsls r1, 24
|
||||
ldr r2, [r3, 0x70]
|
||||
cmp r1, 0
|
||||
bne _08070D22
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xA8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
beq _08070D22
|
||||
cmp r0, 0x4
|
||||
beq _08070D22
|
||||
cmp r0, 0
|
||||
bne _08070D64
|
||||
_08070D22:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xB0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08070D64
|
||||
cmp r0, 0x3
|
||||
beq _08070D64
|
||||
cmp r0, 0x4
|
||||
beq _08070D64
|
||||
cmp r0, 0x6
|
||||
beq _08070D64
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xBC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08070D64
|
||||
cmp r0, 0x3
|
||||
beq _08070D64
|
||||
cmp r0, 0x7
|
||||
beq _08070D64
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xAC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4
|
||||
beq _08070D64
|
||||
adds r0, r3, 0
|
||||
bl ShouldAvoidEnemies
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070D64
|
||||
movs r0, 0
|
||||
b _08070D66
|
||||
_08070D64:
|
||||
movs r0, 0x1
|
||||
_08070D66:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8070D04
|
||||
|
||||
thumb_func_start sub_8070D6C
|
||||
sub_8070D6C:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r4, r2]
|
||||
ldr r1, _08070DD8
|
||||
lsls r2, r6, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
ldrh r1, [r2]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08070E34
|
||||
ldr r0, [r2, 0x10]
|
||||
cmp r0, 0
|
||||
bne _08070E34
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070E04
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _08070DD2
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08070DDC
|
||||
_08070DD2:
|
||||
movs r5, 0x3
|
||||
b _08070E04
|
||||
.align 2, 0
|
||||
_08070DD8: .4byte gUnknown_80F4448
|
||||
_08070DDC:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070E02
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08070E04
|
||||
movs r0, 0x1
|
||||
ands r0, r6
|
||||
movs r5, 0x3
|
||||
cmp r0, 0
|
||||
beq _08070E04
|
||||
_08070E02:
|
||||
movs r5, 0x2
|
||||
_08070E04:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r4, r2]
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xA
|
||||
adds r1, r5
|
||||
ldr r2, _08070E30
|
||||
movs r0, 0x7
|
||||
ands r0, r6
|
||||
adds r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08070E34
|
||||
movs r0, 0x1
|
||||
b _08070E36
|
||||
.align 2, 0
|
||||
_08070E30: .4byte gUnknown_8106FAD
|
||||
_08070E34:
|
||||
movs r0, 0
|
||||
_08070E36:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8070D6C
|
||||
|
||||
thumb_func_start sub_8070E3C
|
||||
sub_8070E3C:
|
||||
push {r4-r7,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
adds r7, r2, 0
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
movs r2, 0
|
||||
ldrsh r0, [r6, r2]
|
||||
ldr r1, _08070EB0
|
||||
lsls r2, r7, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x2
|
||||
ldrsh r1, [r6, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
ldrh r1, [r2]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08070F0C
|
||||
ldr r0, [r2, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08070E8A
|
||||
bl sub_80450F8
|
||||
cmp r0, 0x1
|
||||
bne _08070F0C
|
||||
_08070E8A:
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070EDC
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _08070EAC
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08070EB4
|
||||
_08070EAC:
|
||||
movs r5, 0x3
|
||||
b _08070EDC
|
||||
.align 2, 0
|
||||
_08070EB0: .4byte gUnknown_80F4448
|
||||
_08070EB4:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08070EDA
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08070EDC
|
||||
movs r0, 0x1
|
||||
ands r0, r7
|
||||
movs r5, 0x3
|
||||
cmp r0, 0
|
||||
beq _08070EDC
|
||||
_08070EDA:
|
||||
movs r5, 0x2
|
||||
_08070EDC:
|
||||
movs r1, 0
|
||||
ldrsh r0, [r6, r1]
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r6, r2]
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xA
|
||||
adds r1, r5
|
||||
ldr r2, _08070F08
|
||||
movs r0, 0x7
|
||||
ands r0, r7
|
||||
adds r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08070F0C
|
||||
movs r0, 0x1
|
||||
b _08070F0E
|
||||
.align 2, 0
|
||||
_08070F08: .4byte gUnknown_8106FB5
|
||||
_08070F0C:
|
||||
movs r0, 0
|
||||
_08070F0E:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8070E3C
|
||||
|
||||
thumb_func_start sub_8070F14
|
||||
sub_8070F14:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _08070F70
|
||||
lsls r2, r5, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
ldrh r1, [r2]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08070F78
|
||||
ldr r0, [r2, 0x10]
|
||||
cmp r0, 0
|
||||
bne _08070F78
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r4, r2]
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
ldr r1, _08070F74
|
||||
movs r0, 0x7
|
||||
ands r0, r5
|
||||
adds r0, r1
|
||||
ldrb r1, [r2, 0xA]
|
||||
ldrb r0, [r0]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08070F78
|
||||
movs r0, 0x1
|
||||
b _08070F7A
|
||||
.align 2, 0
|
||||
_08070F70: .4byte gUnknown_80F4448
|
||||
_08070F74: .4byte gUnknown_8106FBD
|
||||
_08070F78:
|
||||
movs r0, 0
|
||||
_08070F7A:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8070F14
|
||||
|
||||
thumb_func_start sub_8070F80
|
||||
sub_8070F80:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r4, r2]
|
||||
ldr r1, _08070FF4
|
||||
lsls r2, r6, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
ldrh r1, [r2]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08071050
|
||||
ldr r0, [r2, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08070FCC
|
||||
bl sub_80450F8
|
||||
cmp r0, 0x1
|
||||
bne _08071050
|
||||
_08070FCC:
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08071020
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _08070FEE
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08070FF8
|
||||
_08070FEE:
|
||||
movs r5, 0x3
|
||||
b _08071020
|
||||
.align 2, 0
|
||||
_08070FF4: .4byte gUnknown_80F4448
|
||||
_08070FF8:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807101E
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071020
|
||||
movs r0, 0x1
|
||||
ands r0, r6
|
||||
movs r5, 0x3
|
||||
cmp r0, 0
|
||||
beq _08071020
|
||||
_0807101E:
|
||||
movs r5, 0x2
|
||||
_08071020:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r4, r2]
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xA
|
||||
adds r1, r5
|
||||
ldr r2, _0807104C
|
||||
movs r0, 0x7
|
||||
ands r0, r6
|
||||
adds r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08071050
|
||||
movs r0, 0x1
|
||||
b _08071052
|
||||
.align 2, 0
|
||||
_0807104C: .4byte gUnknown_8106FC5
|
||||
_08071050:
|
||||
movs r0, 0
|
||||
_08071052:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8070F80
|
||||
|
||||
thumb_func_start sub_8071058
|
||||
sub_8071058:
|
||||
push {r4-r7,lr}
|
||||
adds r5, r0, 0
|
||||
adds r7, r1, 0
|
||||
ldr r0, [r5, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r5, r2]
|
||||
ldr r1, _080710D4
|
||||
lsls r2, r7, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r5, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r4, r0, 0
|
||||
ldrh r1, [r4]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08071130
|
||||
ldr r0, [r4, 0x10]
|
||||
cmp r0, 0
|
||||
beq _080710AE
|
||||
bl sub_80450F8
|
||||
cmp r0, 0x1
|
||||
beq _080710AE
|
||||
ldr r0, [r4, 0x10]
|
||||
ldr r0, [r0, 0x70]
|
||||
ldrb r0, [r0, 0x6]
|
||||
cmp r0, 0
|
||||
bne _08071130
|
||||
_080710AE:
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08071100
|
||||
ldr r0, [r5, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _080710D0
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080710D8
|
||||
_080710D0:
|
||||
movs r6, 0x3
|
||||
b _08071100
|
||||
.align 2, 0
|
||||
_080710D4: .4byte gUnknown_80F4448
|
||||
_080710D8:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080710FE
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071100
|
||||
movs r0, 0x1
|
||||
ands r0, r7
|
||||
movs r6, 0x3
|
||||
cmp r0, 0
|
||||
beq _08071100
|
||||
_080710FE:
|
||||
movs r6, 0x2
|
||||
_08071100:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r5, r2]
|
||||
bl sub_804954C
|
||||
adds r4, r0, 0
|
||||
adds r1, r4, 0
|
||||
adds r1, 0xA
|
||||
adds r1, r6
|
||||
ldr r2, _0807112C
|
||||
movs r0, 0x7
|
||||
ands r0, r7
|
||||
adds r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08071130
|
||||
movs r0, 0x1
|
||||
b _08071132
|
||||
.align 2, 0
|
||||
_0807112C: .4byte gUnknown_8106FCD
|
||||
_08071130:
|
||||
movs r0, 0
|
||||
_08071132:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071058
|
||||
|
||||
thumb_func_start sub_8071138
|
||||
sub_8071138:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x1
|
||||
bhi _08071152
|
||||
movs r5, 0x2
|
||||
_08071152:
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r4, r2]
|
||||
ldr r1, _080711B0
|
||||
lsls r2, r6, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
ldrh r1, [r2]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0807120C
|
||||
ldr r0, [r2, 0x10]
|
||||
cmp r0, 0
|
||||
beq _0807118A
|
||||
bl sub_80450F8
|
||||
cmp r0, 0x1
|
||||
bne _0807120C
|
||||
_0807118A:
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080711DC
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _080711AC
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080711B4
|
||||
_080711AC:
|
||||
movs r5, 0x3
|
||||
b _080711DC
|
||||
.align 2, 0
|
||||
_080711B0: .4byte gUnknown_80F4448
|
||||
_080711B4:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080711DA
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080711DC
|
||||
movs r0, 0x1
|
||||
ands r0, r6
|
||||
movs r5, 0x3
|
||||
cmp r0, 0
|
||||
beq _080711DC
|
||||
_080711DA:
|
||||
movs r5, 0x2
|
||||
_080711DC:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r4, r2]
|
||||
bl sub_804954C
|
||||
adds r2, r0, 0
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xA
|
||||
adds r1, r5
|
||||
ldr r2, _08071208
|
||||
movs r0, 0x7
|
||||
ands r0, r6
|
||||
adds r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0807120C
|
||||
movs r0, 0x1
|
||||
b _0807120E
|
||||
.align 2, 0
|
||||
_08071208: .4byte gUnknown_8106FD5
|
||||
_0807120C:
|
||||
movs r0, 0
|
||||
_0807120E:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071138
|
||||
|
||||
thumb_func_start sub_8071214
|
||||
sub_8071214:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, 0
|
||||
adds r7, r1, 0
|
||||
mov r8, r2
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
movs r0, 0
|
||||
mov r2, r8
|
||||
strb r0, [r2]
|
||||
movs r3, 0x4
|
||||
ldrsh r0, [r4, r3]
|
||||
ldr r1, _0807130C
|
||||
lsls r2, r7, 2
|
||||
adds r2, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
adds r0, r1
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r4, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r2
|
||||
bl sub_804954C
|
||||
adds r5, r0, 0
|
||||
ldrh r1, [r5]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08071260
|
||||
b _0807137E
|
||||
_08071260:
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08071286
|
||||
ldr r0, _08071310
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08071314
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08071286
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xF
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071286
|
||||
b _0807137E
|
||||
_08071286:
|
||||
ldr r0, [r5, 0x14]
|
||||
cmp r0, 0
|
||||
beq _080712B8
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xE
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080712B8
|
||||
ldr r0, [r5, 0x14]
|
||||
bl sub_80450F8
|
||||
cmp r0, 0x2
|
||||
bne _080712B8
|
||||
ldr r0, [r5, 0x14]
|
||||
adds r0, 0x20
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0807137E
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _0807137E
|
||||
_080712B8:
|
||||
ldrh r1, [r5]
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0x2
|
||||
bne _080712E6
|
||||
ldr r1, _08071318
|
||||
ldr r0, _08071310
|
||||
ldr r0, [r0]
|
||||
ldr r2, _0807131C
|
||||
adds r0, r2
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _080712E6
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x14
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807137E
|
||||
_080712E6:
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08071348
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _08071308
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071320
|
||||
_08071308:
|
||||
movs r6, 0x3
|
||||
b _08071348
|
||||
.align 2, 0
|
||||
_0807130C: .4byte gUnknown_80F4448
|
||||
_08071310: .4byte gDungeonGlobalData
|
||||
_08071314: .4byte 0x00000671
|
||||
_08071318: .4byte gUnknown_810ACC0
|
||||
_0807131C: .4byte 0x00003a0e
|
||||
_08071320:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08071346
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071348
|
||||
movs r0, 0x1
|
||||
ands r0, r7
|
||||
movs r6, 0x3
|
||||
cmp r0, 0
|
||||
beq _08071348
|
||||
_08071346:
|
||||
movs r6, 0x2
|
||||
_08071348:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r4, r2]
|
||||
bl sub_804954C
|
||||
adds r0, 0xA
|
||||
adds r0, r6
|
||||
ldr r2, _08071374
|
||||
movs r1, 0x7
|
||||
ands r1, r7
|
||||
adds r1, r2
|
||||
ldrb r2, [r0]
|
||||
ldrb r0, [r1]
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _0807137E
|
||||
ldr r0, [r5, 0x10]
|
||||
cmp r0, 0
|
||||
bne _08071378
|
||||
movs r0, 0x1
|
||||
b _08071380
|
||||
.align 2, 0
|
||||
_08071374: .4byte gUnknown_8106FDD
|
||||
_08071378:
|
||||
movs r0, 0x1
|
||||
mov r3, r8
|
||||
strb r0, [r3]
|
||||
_0807137E:
|
||||
movs r0, 0
|
||||
_08071380:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071214
|
||||
|
||||
thumb_func_start sub_807138C
|
||||
sub_807138C:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4, 0x70]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_8070328
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
bl sub_80441E8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080713E2
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _080713E0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080713E0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xC
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080713D2
|
||||
movs r5, 0x2
|
||||
b _080713E2
|
||||
_080713D2:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xD
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080713E2
|
||||
_080713E0:
|
||||
movs r5, 0x3
|
||||
_080713E2:
|
||||
cmp r5, 0x3
|
||||
bne _08071408
|
||||
ldr r4, [r4, 0x70]
|
||||
movs r0, 0x64
|
||||
bl DungeonRandomCapped
|
||||
movs r1, 0xFD
|
||||
lsls r1, 1
|
||||
adds r2, r4, r1
|
||||
ldrh r1, [r2]
|
||||
adds r1, r0
|
||||
strh r1, [r2]
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
cmp r1, 0xC7
|
||||
ble _08071458
|
||||
movs r0, 0
|
||||
strh r0, [r2]
|
||||
b _08071468
|
||||
_08071408:
|
||||
ldr r1, _0807145C
|
||||
ldr r0, _08071460
|
||||
ldr r0, [r0]
|
||||
ldr r2, _08071464
|
||||
adds r0, r2
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _08071432
|
||||
cmp r5, 0x1
|
||||
bne _08071432
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x14
|
||||
bl HasIQSkill
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071432
|
||||
movs r5, 0
|
||||
_08071432:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r4, r2]
|
||||
bl sub_804954C
|
||||
adds r0, 0xA
|
||||
adds r0, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x54
|
||||
beq _08071468
|
||||
cmp r0, 0x51
|
||||
beq _08071468
|
||||
cmp r0, 0x45
|
||||
beq _08071468
|
||||
cmp r0, 0x15
|
||||
beq _08071468
|
||||
cmp r0, 0x55
|
||||
beq _08071468
|
||||
_08071458:
|
||||
movs r0, 0
|
||||
b _0807146A
|
||||
.align 2, 0
|
||||
_0807145C: .4byte gUnknown_810ACC0
|
||||
_08071460: .4byte gDungeonGlobalData
|
||||
_08071464: .4byte 0x00003a0e
|
||||
_08071468:
|
||||
movs r0, 0x1
|
||||
_0807146A:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_807138C
|
||||
|
||||
thumb_func_start sub_8071470
|
||||
sub_8071470:
|
||||
push {r4,lr}
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
movs r1, 0x3
|
||||
bl HasTactic
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807148A
|
||||
cmp r4, 0
|
||||
beq _0807148A
|
||||
movs r0, 0x1
|
||||
b _0807148C
|
||||
_0807148A:
|
||||
movs r0, 0
|
||||
_0807148C:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071470
|
||||
|
||||
.align 2, 0
|
||||
445
asm/code_8071518.s
Normal file
445
asm/code_8071518.s
Normal file
@@ -0,0 +1,445 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8071518
|
||||
sub_8071518:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
bl ShouldAvoidEnemies
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807152E
|
||||
movs r0, 0
|
||||
b _08071538
|
||||
_0807152E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8071540
|
||||
movs r0, 0x1
|
||||
_08071538:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071518
|
||||
|
||||
thumb_func_start sub_8071540
|
||||
sub_8071540:
|
||||
push {r4-r7,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r7, r1, 24
|
||||
ldr r4, [r5, 0x70]
|
||||
adds r6, r4, 0
|
||||
ldrb r0, [r4, 0x7]
|
||||
cmp r0, 0
|
||||
bne _08071590
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2B
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08071590
|
||||
movs r2, 0
|
||||
movs r1, 0x10
|
||||
ldrsh r0, [r4, r1]
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
movs r3, 0xE
|
||||
ldrsh r1, [r4, r3]
|
||||
asrs r0, 1
|
||||
cmp r1, r0
|
||||
bgt _08071576
|
||||
movs r2, 0x1
|
||||
_08071576:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x4
|
||||
bl sub_8071ACC
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r7, 0
|
||||
beq _08071590
|
||||
cmp r0, 0
|
||||
beq _08071590
|
||||
adds r0, r5, 0
|
||||
bl sub_8042910
|
||||
_08071590:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8071540
|
||||
|
||||
thumb_func_start sub_8071598
|
||||
sub_8071598:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
ldr r5, [r6, 0x70]
|
||||
ldr r4, [r1, 0x70]
|
||||
cmp r6, r1
|
||||
bne _080715B0
|
||||
movs r0, 0
|
||||
b _08071670
|
||||
_080715B0:
|
||||
ldrb r0, [r5, 0x8]
|
||||
cmp r0, 0x1
|
||||
beq _08071606
|
||||
ldrb r0, [r4, 0x8]
|
||||
cmp r0, 0x1
|
||||
beq _08071606
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0x4
|
||||
beq _08071606
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4
|
||||
beq _08071606
|
||||
cmp r1, 0x1
|
||||
beq _08071606
|
||||
cmp r0, 0x1
|
||||
beq _08071606
|
||||
cmp r3, 0
|
||||
beq _080715EC
|
||||
ldrb r0, [r5, 0x6]
|
||||
cmp r0, 0
|
||||
bne _080715EC
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xB0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x6
|
||||
beq _08071606
|
||||
_080715EC:
|
||||
cmp r2, 0
|
||||
bne _0807160A
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _0807160A
|
||||
adds r0, r6, 0
|
||||
bl sub_8071884
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807160A
|
||||
_08071606:
|
||||
movs r0, 0x2
|
||||
b _08071670
|
||||
_0807160A:
|
||||
movs r1, 0x80
|
||||
lsls r1, 1
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
movs r6, 0
|
||||
cmp r0, 0
|
||||
beq _08071620
|
||||
movs r6, 0x2
|
||||
cmp r0, 0x1
|
||||
bne _08071620
|
||||
movs r6, 0x1
|
||||
_08071620:
|
||||
ldrb r0, [r5, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08071630
|
||||
movs r5, 0
|
||||
cmp r0, 0x3
|
||||
bne _08071638
|
||||
movs r5, 0x1
|
||||
b _08071638
|
||||
_08071630:
|
||||
ldrb r1, [r5, 0x6]
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
lsrs r5, r0, 31
|
||||
_08071638:
|
||||
ldrb r0, [r4, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08071648
|
||||
movs r1, 0
|
||||
cmp r0, 0x3
|
||||
bne _08071650
|
||||
movs r1, 0x1
|
||||
b _08071650
|
||||
_08071648:
|
||||
ldrb r1, [r4, 0x6]
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
lsrs r1, r0, 31
|
||||
_08071650:
|
||||
movs r3, 0
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xC8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
bne _0807165E
|
||||
movs r3, 0x1
|
||||
_0807165E:
|
||||
ldr r2, _08071678
|
||||
lsls r0, r1, 1
|
||||
adds r0, r3, r0
|
||||
lsls r1, r5, 2
|
||||
adds r0, r1
|
||||
lsls r1, r6, 3
|
||||
adds r0, r1
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
_08071670:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08071678: .4byte gUnknown_8106FE5
|
||||
thumb_func_end sub_8071598
|
||||
|
||||
thumb_func_start sub_807167C
|
||||
sub_807167C:
|
||||
push {lr}
|
||||
ldr r2, [r0, 0x70]
|
||||
ldr r1, [r1, 0x70]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _080716D2
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _0807169A
|
||||
cmp r0, 0x47
|
||||
bne _0807169E
|
||||
_0807169A:
|
||||
movs r0, 0x1
|
||||
b _080716A0
|
||||
_0807169E:
|
||||
movs r0, 0
|
||||
_080716A0:
|
||||
cmp r0, 0
|
||||
bne _080716D2
|
||||
ldrb r0, [r2, 0x8]
|
||||
cmp r0, 0
|
||||
bne _080716D2
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _080716D2
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _080716C2
|
||||
cmp r0, 0x47
|
||||
bne _080716C6
|
||||
_080716C2:
|
||||
movs r0, 0x1
|
||||
b _080716C8
|
||||
_080716C6:
|
||||
movs r0, 0
|
||||
_080716C8:
|
||||
cmp r0, 0
|
||||
bne _080716D2
|
||||
ldrb r0, [r1, 0x8]
|
||||
cmp r0, 0
|
||||
beq _080716D6
|
||||
_080716D2:
|
||||
movs r0, 0x2
|
||||
b _080716E4
|
||||
_080716D6:
|
||||
ldrb r0, [r2, 0x6]
|
||||
ldrb r1, [r1, 0x6]
|
||||
cmp r0, r1
|
||||
bne _080716E2
|
||||
movs r0, 0
|
||||
b _080716E4
|
||||
_080716E2:
|
||||
movs r0, 0x1
|
||||
_080716E4:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_807167C
|
||||
|
||||
thumb_func_start sub_80716E8
|
||||
sub_80716E8:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xC4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
bne _08071720
|
||||
cmp r2, 0
|
||||
beq _08071714
|
||||
ldr r0, _08071718
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _0807171C
|
||||
ldr r2, [r0]
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80522F4
|
||||
_08071714:
|
||||
movs r0, 0x1
|
||||
b _08071722
|
||||
.align 2, 0
|
||||
_08071718: .4byte gAvailablePokemonNames
|
||||
_0807171C: .4byte gUnknown_80FC2FC
|
||||
_08071720:
|
||||
movs r0, 0
|
||||
_08071722:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80716E8
|
||||
|
||||
thumb_func_start sub_8071728
|
||||
sub_8071728:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
adds r5, r2, 0
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xC4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0xE
|
||||
bne _08071758
|
||||
cmp r2, 0
|
||||
beq _0807178E
|
||||
ldr r0, _08071750
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _08071754
|
||||
b _08071784
|
||||
.align 2, 0
|
||||
_08071750: .4byte gAvailablePokemonNames
|
||||
_08071754: .4byte gUnknown_80FC31C
|
||||
_08071758:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xF
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08071774
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x18
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807179C
|
||||
_08071774:
|
||||
cmp r5, 0
|
||||
beq _0807178E
|
||||
ldr r0, _08071794
|
||||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _08071798
|
||||
_08071784:
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80522F4
|
||||
_0807178E:
|
||||
movs r0, 0x1
|
||||
b _0807179E
|
||||
.align 2, 0
|
||||
_08071794: .4byte gAvailablePokemonNames
|
||||
_08071798: .4byte gUnknown_80FCEFC
|
||||
_0807179C:
|
||||
movs r0, 0
|
||||
_0807179E:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071728
|
||||
|
||||
thumb_func_start sub_80717A4
|
||||
sub_80717A4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
mov r8, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
mov r9, r1
|
||||
ldr r6, [r0, 0x70]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xA8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _080717CE
|
||||
cmp r0, 0x5
|
||||
beq _080717CE
|
||||
cmp r0, 0x3
|
||||
beq _080717CE
|
||||
b _08071816
|
||||
_080717CA:
|
||||
movs r0, 0x1
|
||||
b _08071818
|
||||
_080717CE:
|
||||
movs r7, 0
|
||||
movs r0, 0x8C
|
||||
lsls r0, 1
|
||||
adds r4, r6, r0
|
||||
adds r5, r4, 0
|
||||
_080717D8:
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0807180C
|
||||
ldrb r0, [r6, 0x7]
|
||||
cmp r0, 0
|
||||
bne _080717F0
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0807180C
|
||||
_080717F0:
|
||||
mov r0, r8
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_805744C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807180C
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _0807180C
|
||||
ldrh r0, [r4, 0x2]
|
||||
cmp r0, r9
|
||||
beq _080717CA
|
||||
_0807180C:
|
||||
adds r4, 0x8
|
||||
adds r5, 0x8
|
||||
adds r7, 0x1
|
||||
cmp r7, 0x3
|
||||
ble _080717D8
|
||||
_08071816:
|
||||
movs r0, 0
|
||||
_08071818:
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80717A4
|
||||
|
||||
.align 2, 0
|
||||
61
asm/code_8071858.s
Normal file
61
asm/code_8071858.s
Normal file
@@ -0,0 +1,61 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8071858
|
||||
sub_8071858:
|
||||
push {lr}
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
adds r3, r1, 0
|
||||
ldr r0, [r0, 0x70]
|
||||
adds r2, r0, 0
|
||||
cmp r1, 0
|
||||
beq _0807187A
|
||||
adds r0, 0x5C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
beq _0807187E
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x5D
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r3
|
||||
beq _0807187E
|
||||
_0807187A:
|
||||
movs r0, 0
|
||||
b _08071880
|
||||
_0807187E:
|
||||
movs r0, 0x1
|
||||
_08071880:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071858
|
||||
|
||||
thumb_func_start sub_8071884
|
||||
sub_8071884:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, [r1, 0x70]
|
||||
adds r0, 0xE8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _080718A4
|
||||
adds r0, r1, 0
|
||||
movs r1, 0x1A
|
||||
bl sub_8046CB0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080718A4
|
||||
movs r0, 0
|
||||
b _080718A6
|
||||
_080718A4:
|
||||
movs r0, 0x1
|
||||
_080718A6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8071884
|
||||
|
||||
.align 2, 0
|
||||
8181
asm/code_80718D8.s
Normal file
8181
asm/code_80718D8.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -74,7 +74,7 @@ _08075C0A:
|
||||
beq _08075C3C
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2F
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08075C3C
|
||||
@@ -230,7 +230,7 @@ _08075D50: .4byte gUnknown_80FCD54
|
||||
_08075D54:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x36
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08075D70
|
||||
@@ -243,7 +243,7 @@ _08075D6C: .4byte gUnknown_80FCD58
|
||||
_08075D70:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x49
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08075D8C
|
||||
@@ -315,7 +315,7 @@ sub_8075DBC:
|
||||
strb r0, [r4]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2F
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08075E1E
|
||||
@@ -413,7 +413,7 @@ _08075EB2:
|
||||
strb r0, [r4]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2F
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08075EDC
|
||||
@@ -763,7 +763,7 @@ sub_807614C:
|
||||
bne _08076206
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x29
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080761A8
|
||||
@@ -870,7 +870,7 @@ _0807624A:
|
||||
bl sub_80708B4
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x42
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807627C
|
||||
@@ -985,7 +985,7 @@ _08076344:
|
||||
bl sub_80418D4
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x19
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080763DA
|
||||
@@ -1118,7 +1118,7 @@ _08076458: .4byte gUnknown_80FD524
|
||||
_0807645C:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x45
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807647C
|
||||
@@ -1217,7 +1217,7 @@ _08076520:
|
||||
_0807652C:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x19
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080765BA
|
||||
@@ -1352,7 +1352,7 @@ _08076640: .4byte gUnknown_80FD524
|
||||
_08076644:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x45
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08076664
|
||||
@@ -1440,7 +1440,7 @@ _080766F0:
|
||||
_080766FC:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x19
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807678A
|
||||
@@ -1558,7 +1558,7 @@ _080767CE:
|
||||
bne _080768C8
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x41
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08076814
|
||||
@@ -2382,7 +2382,7 @@ _08076EAC: .4byte gUnknown_80FD550
|
||||
_08076EB0:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08076EE4
|
||||
@@ -2813,7 +2813,7 @@ sub_807723C:
|
||||
beq _08077258
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x48
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807725C
|
||||
@@ -2946,7 +2946,7 @@ _0807734C: .4byte gUnknown_80FD550
|
||||
_08077350:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x9
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807738C
|
||||
@@ -3301,7 +3301,7 @@ _08077616:
|
||||
bne _080776B6
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x1E
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08077664
|
||||
@@ -3390,7 +3390,7 @@ sub_80776C0:
|
||||
bne _08077776
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1F
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08077718
|
||||
@@ -3489,7 +3489,7 @@ _080777A2:
|
||||
_080777B4:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x16
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0
|
||||
@@ -3564,7 +3564,7 @@ _08077850:
|
||||
_0807785C:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x19
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080778EA
|
||||
@@ -3918,7 +3918,7 @@ _08077B30: .4byte gUnknown_80FD500
|
||||
_08077B34:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x40
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08077B58
|
||||
@@ -8103,7 +8103,7 @@ sub_8079D1C:
|
||||
ldr r6, [r4, 0x70]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08079D50
|
||||
@@ -10212,7 +10212,7 @@ MoveIfPossible:
|
||||
strb r6, [r0]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x7
|
||||
bl sub_80718AC
|
||||
bl HasTactic
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807ADFA
|
||||
@@ -10232,7 +10232,7 @@ MoveIfPossible:
|
||||
_0807ADFA:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x9
|
||||
bl sub_80718AC
|
||||
bl HasTactic
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807AE12
|
||||
@@ -10599,7 +10599,7 @@ _0807B09E:
|
||||
str r2, [r0]
|
||||
mov r0, r8
|
||||
movs r1, 0x8
|
||||
bl sub_80718AC
|
||||
bl HasTactic
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807B0E4
|
||||
@@ -10648,7 +10648,7 @@ _0807B124:
|
||||
_0807B12C:
|
||||
mov r0, r8
|
||||
movs r1, 0x1
|
||||
bl sub_80718AC
|
||||
bl HasTactic
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807B17C
|
||||
@@ -12043,7 +12043,7 @@ _0807BBB6:
|
||||
_0807BBC6:
|
||||
mov r0, r10
|
||||
movs r1, 0x8
|
||||
bl sub_80718AC
|
||||
bl HasTactic
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807BBD6
|
||||
@@ -14445,7 +14445,7 @@ _0807CDE4:
|
||||
bl SetMessageArgument
|
||||
adds r0, r6, 0
|
||||
movs r1, 0xE
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807CE28
|
||||
@@ -14871,7 +14871,7 @@ sub_807D148:
|
||||
bl SetMessageArgument
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xE
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807D188
|
||||
@@ -15959,7 +15959,7 @@ sub_807DA14:
|
||||
mov r10, r0
|
||||
adds r0, r6, 0
|
||||
movs r1, 0xE
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807DA50
|
||||
@@ -16622,7 +16622,7 @@ _0807DF62:
|
||||
beq _0807DF60
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x15
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807DF60
|
||||
@@ -16977,7 +16977,7 @@ sub_807E254:
|
||||
adds r6, r0, 0
|
||||
adds r7, r1, 0
|
||||
movs r1, 0xE
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807E274
|
||||
@@ -16989,7 +16989,7 @@ _0807E270: .4byte gAvailablePokemonNames
|
||||
_0807E274:
|
||||
adds r0, r7, 0
|
||||
movs r1, 0xE
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807E2A4
|
||||
@@ -17815,7 +17815,7 @@ _0807E90E:
|
||||
bl sub_8070774
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807E958
|
||||
@@ -17882,7 +17882,7 @@ _0807E9A4:
|
||||
bhi _0807E9FE
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x25
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807E9D4
|
||||
@@ -19209,7 +19209,7 @@ sub_807F43C:
|
||||
mov r8, r1
|
||||
mov r0, r8
|
||||
movs r1, 0xE
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807F470
|
||||
@@ -27792,7 +27792,7 @@ sub_8083904:
|
||||
ldrb r6, [r5]
|
||||
mov r0, r10
|
||||
movs r1, 0x1
|
||||
bl sub_8070B6C
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08083954
|
||||
@@ -28979,7 +28979,7 @@ sub_808417C:
|
||||
_080841C4:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x14
|
||||
bl sub_8071824
|
||||
bl HasAbility
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080841DC
|
||||
|
||||
1030
asm/code_80848F0.s
1030
asm/code_80848F0.s
File diff suppressed because it is too large
Load Diff
972
asm/code_8085B0C.s
Normal file
972
asm/code_8085B0C.s
Normal file
@@ -0,0 +1,972 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8085B0C
|
||||
sub_8085B0C:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x1C
|
||||
adds r5, r0, 0
|
||||
ldr r1, _08085B48
|
||||
mov r0, sp
|
||||
movs r2, 0x19
|
||||
bl memcpy
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08085B3E
|
||||
mov r4, sp
|
||||
_08085B26:
|
||||
ldrb r1, [r4]
|
||||
adds r0, r5, 0
|
||||
bl sub_8085918
|
||||
movs r0, 0x6
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
adds r4, 0x1
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08085B26
|
||||
_08085B3E:
|
||||
add sp, 0x1C
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08085B48: .4byte gUnknown_8107358
|
||||
thumb_func_end sub_8085B0C
|
||||
|
||||
thumb_func_start sub_8085B4C
|
||||
sub_8085B4C:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r0, _08085B7C
|
||||
str r3, [r0]
|
||||
cmp r3, 0
|
||||
ble _08085B76
|
||||
movs r6, 0x1
|
||||
adds r4, r1, 0
|
||||
adds r1, r5, 0
|
||||
_08085B5E:
|
||||
strb r6, [r1]
|
||||
ldm r2!, {r0}
|
||||
str r0, [r1, 0x4]
|
||||
ldm r4!, {r0}
|
||||
str r0, [r1, 0xC]
|
||||
movs r5, 0x4
|
||||
ldrsh r0, [r0, r5]
|
||||
str r0, [r1, 0x8]
|
||||
adds r1, 0x10
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bne _08085B5E
|
||||
_08085B76:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08085B7C: .4byte gUnknown_202F3D8
|
||||
thumb_func_end sub_8085B4C
|
||||
|
||||
thumb_func_start sub_8085B80
|
||||
sub_8085B80:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r1, r0, 0
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
movs r7, 0
|
||||
ldr r0, _08085BE4
|
||||
ldr r0, [r0]
|
||||
cmp r8, r0
|
||||
bge _08085C3E
|
||||
adds r5, r1, 0
|
||||
_08085B98:
|
||||
ldr r6, [r5, 0x4]
|
||||
ldr r2, [r6, 0x70]
|
||||
adds r3, r2, 0
|
||||
ldr r4, [r5, 0xC]
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0
|
||||
beq _08085C32
|
||||
movs r1, 0x1
|
||||
mov r8, r1
|
||||
ldr r0, [r5, 0x8]
|
||||
cmp r0, 0
|
||||
bne _08085C08
|
||||
adds r4, 0x8
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _08085BE8
|
||||
strb r0, [r5]
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x7
|
||||
ands r0, r1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x46
|
||||
strb r0, [r1]
|
||||
movs r3, 0
|
||||
ldrsh r2, [r4, r3]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x7
|
||||
bl sub_806CDD4
|
||||
movs r0, 0xA
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r3, 0xC
|
||||
ldrsh r2, [r4, r3]
|
||||
adds r0, r6, 0
|
||||
bl sub_80856C8
|
||||
b _08085C32
|
||||
.align 2, 0
|
||||
_08085BE4: .4byte gUnknown_202F3D8
|
||||
_08085BE8:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
str r0, [r5, 0x8]
|
||||
str r4, [r5, 0xC]
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x7
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
adds r1, 0x46
|
||||
strb r0, [r1]
|
||||
movs r3, 0
|
||||
ldrsh r2, [r4, r3]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl sub_806CDD4
|
||||
_08085C08:
|
||||
ldr r0, [r5, 0x8]
|
||||
subs r0, 0x1
|
||||
str r0, [r5, 0x8]
|
||||
ldr r1, _08085C4C
|
||||
movs r2, 0
|
||||
ldrsh r0, [r4, r2]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r0, r3]
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r4, r3]
|
||||
muls r1, r2
|
||||
lsls r1, 8
|
||||
movs r3, 0x2
|
||||
ldrsh r0, [r0, r3]
|
||||
muls r2, r0
|
||||
lsls r2, 8
|
||||
adds r0, r6, 0
|
||||
bl sub_804539C
|
||||
_08085C32:
|
||||
adds r5, 0x10
|
||||
adds r7, 0x1
|
||||
ldr r0, _08085C50
|
||||
ldr r0, [r0]
|
||||
cmp r7, r0
|
||||
blt _08085B98
|
||||
_08085C3E:
|
||||
mov r0, r8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08085C4C: .4byte gUnknown_80F4448
|
||||
_08085C50: .4byte gUnknown_202F3D8
|
||||
thumb_func_end sub_8085B80
|
||||
|
||||
thumb_func_start sub_8085C54
|
||||
sub_8085C54:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x28
|
||||
str r0, [sp, 0x14]
|
||||
mov r10, r1
|
||||
mov r9, r2
|
||||
ldr r4, [sp, 0x48]
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
str r3, [sp, 0x18]
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl sub_8085E98
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
ldr r0, _08085E70
|
||||
ldr r0, [r0]
|
||||
ldr r5, [r0, 0x4]
|
||||
cmp r4, 0
|
||||
beq _08085CAE
|
||||
ldr r1, [sp, 0x14]
|
||||
cmp r1, 0
|
||||
blt _08085C92
|
||||
lsrs r0, r1, 31
|
||||
adds r0, r1, r0
|
||||
asrs r0, 1
|
||||
str r0, [sp, 0x14]
|
||||
_08085C92:
|
||||
mov r2, r10
|
||||
cmp r2, 0
|
||||
blt _08085CA0
|
||||
lsrs r0, r2, 31
|
||||
add r0, r10
|
||||
asrs r0, 1
|
||||
mov r10, r0
|
||||
_08085CA0:
|
||||
mov r3, r9
|
||||
cmp r3, 0
|
||||
blt _08085CAE
|
||||
lsrs r0, r3, 31
|
||||
add r0, r9
|
||||
asrs r0, 1
|
||||
mov r9, r0
|
||||
_08085CAE:
|
||||
ldr r1, _08085E74
|
||||
ldr r0, [sp, 0x8]
|
||||
ands r0, r1
|
||||
ldr r1, _08085E78
|
||||
ands r0, r1
|
||||
ldr r1, _08085E7C
|
||||
ands r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
ldr r0, _08085E80
|
||||
ldr r2, [r0]
|
||||
ldr r0, _08085E84
|
||||
ldr r3, [r0]
|
||||
movs r0, 0xBE
|
||||
lsls r0, 1
|
||||
adds r3, r0
|
||||
mov r0, r8
|
||||
add r1, sp, 0x8
|
||||
bl SetBGPaletteBufferColorRGB
|
||||
adds r5, 0x4
|
||||
movs r1, 0x1
|
||||
add r8, r1
|
||||
ldr r2, [sp, 0x14]
|
||||
lsls r2, 16
|
||||
str r2, [sp, 0x1C]
|
||||
mov r3, r10
|
||||
lsls r3, 16
|
||||
str r3, [sp, 0x20]
|
||||
mov r0, r9
|
||||
lsls r0, 16
|
||||
str r0, [sp, 0x24]
|
||||
add r7, sp, 0xC
|
||||
movs r1, 0xA0
|
||||
cmp r1, 0x1
|
||||
ble _08085D56
|
||||
add r6, sp, 0x8
|
||||
movs r4, 0xA0
|
||||
subs r4, 0x1
|
||||
_08085CFA:
|
||||
ldrb r0, [r5]
|
||||
ldr r3, [sp, 0x14]
|
||||
adds r2, r0, r3
|
||||
ldrb r0, [r5, 0x1]
|
||||
mov r3, r10
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r5, 0x2]
|
||||
add r0, r9
|
||||
cmp r2, 0xFF
|
||||
ble _08085D10
|
||||
movs r2, 0xFF
|
||||
_08085D10:
|
||||
cmp r1, 0xFF
|
||||
ble _08085D16
|
||||
movs r1, 0xFF
|
||||
_08085D16:
|
||||
cmp r0, 0xFF
|
||||
ble _08085D1C
|
||||
movs r0, 0xFF
|
||||
_08085D1C:
|
||||
cmp r2, 0
|
||||
bge _08085D22
|
||||
movs r2, 0
|
||||
_08085D22:
|
||||
cmp r1, 0
|
||||
bge _08085D28
|
||||
movs r1, 0
|
||||
_08085D28:
|
||||
cmp r0, 0
|
||||
bge _08085D2E
|
||||
movs r0, 0
|
||||
_08085D2E:
|
||||
strb r2, [r6]
|
||||
strb r1, [r6, 0x1]
|
||||
strb r0, [r6, 0x2]
|
||||
ldr r0, _08085E80
|
||||
ldr r2, [r0]
|
||||
ldr r0, _08085E84
|
||||
ldr r3, [r0]
|
||||
movs r0, 0xBE
|
||||
lsls r0, 1
|
||||
adds r3, r0
|
||||
mov r0, r8
|
||||
add r1, sp, 0x8
|
||||
bl SetBGPaletteBufferColorRGB
|
||||
adds r5, 0x4
|
||||
movs r1, 0x1
|
||||
add r8, r1
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bne _08085CFA
|
||||
_08085D56:
|
||||
ldr r2, _08085E88
|
||||
ldr r3, [sp, 0x1C]
|
||||
lsrs r0, r3, 16
|
||||
ldr r1, [sp, 0x20]
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0xC]
|
||||
ldr r3, [sp, 0x24]
|
||||
lsrs r1, r3, 16
|
||||
ldr r0, [r7, 0x4]
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
str r0, [r7, 0x4]
|
||||
ldr r0, _08085E8C
|
||||
ldr r1, _08085E80
|
||||
ldr r3, [r1]
|
||||
ldr r1, _08085E84
|
||||
ldr r1, [r1]
|
||||
movs r2, 0xBE
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
str r1, [sp]
|
||||
str r7, [sp, 0x4]
|
||||
movs r1, 0xA0
|
||||
movs r2, 0x20
|
||||
bl sub_8004C00
|
||||
movs r3, 0x20
|
||||
add r8, r3
|
||||
ldr r5, _08085E90
|
||||
add r6, sp, 0x8
|
||||
movs r4, 0x20
|
||||
_08085D94:
|
||||
ldrb r0, [r5]
|
||||
ldr r1, [sp, 0x14]
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r5, 0x1]
|
||||
mov r3, r10
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r5, 0x2]
|
||||
add r0, r9
|
||||
cmp r2, 0xFF
|
||||
ble _08085DAA
|
||||
movs r2, 0xFF
|
||||
_08085DAA:
|
||||
cmp r1, 0xFF
|
||||
ble _08085DB0
|
||||
movs r1, 0xFF
|
||||
_08085DB0:
|
||||
cmp r0, 0xFF
|
||||
ble _08085DB6
|
||||
movs r0, 0xFF
|
||||
_08085DB6:
|
||||
cmp r2, 0
|
||||
bge _08085DBC
|
||||
movs r2, 0
|
||||
_08085DBC:
|
||||
cmp r1, 0
|
||||
bge _08085DC2
|
||||
movs r1, 0
|
||||
_08085DC2:
|
||||
cmp r0, 0
|
||||
bge _08085DC8
|
||||
movs r0, 0
|
||||
_08085DC8:
|
||||
strb r2, [r6]
|
||||
strb r1, [r6, 0x1]
|
||||
strb r0, [r6, 0x2]
|
||||
ldr r0, _08085E80
|
||||
ldr r2, [r0]
|
||||
ldr r7, _08085E84
|
||||
ldr r3, [r7]
|
||||
movs r0, 0xBE
|
||||
lsls r0, 1
|
||||
adds r3, r0
|
||||
mov r0, r8
|
||||
add r1, sp, 0x8
|
||||
bl SetBGPaletteBufferColorRGB
|
||||
adds r5, 0x4
|
||||
movs r1, 0x1
|
||||
add r8, r1
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bne _08085D94
|
||||
ldr r2, [sp, 0x18]
|
||||
cmp r2, 0
|
||||
beq _08085E5E
|
||||
ldr r0, [r7]
|
||||
ldr r3, _08085E94
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
ldr r5, [r0, 0x4]
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
mov r8, r0
|
||||
add r6, sp, 0x8
|
||||
movs r4, 0xD0
|
||||
_08085E0A:
|
||||
ldrb r0, [r5]
|
||||
ldr r1, [sp, 0x14]
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r5, 0x1]
|
||||
mov r3, r10
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r5, 0x2]
|
||||
add r0, r9
|
||||
cmp r2, 0xFF
|
||||
ble _08085E20
|
||||
movs r2, 0xFF
|
||||
_08085E20:
|
||||
cmp r1, 0xFF
|
||||
ble _08085E26
|
||||
movs r1, 0xFF
|
||||
_08085E26:
|
||||
cmp r0, 0xFF
|
||||
ble _08085E2C
|
||||
movs r0, 0xFF
|
||||
_08085E2C:
|
||||
cmp r2, 0
|
||||
bge _08085E32
|
||||
movs r2, 0
|
||||
_08085E32:
|
||||
cmp r1, 0
|
||||
bge _08085E38
|
||||
movs r1, 0
|
||||
_08085E38:
|
||||
cmp r0, 0
|
||||
bge _08085E3E
|
||||
movs r0, 0
|
||||
_08085E3E:
|
||||
strb r2, [r6]
|
||||
strb r1, [r6, 0x1]
|
||||
strb r0, [r6, 0x2]
|
||||
ldr r0, _08085E80
|
||||
ldr r2, [r0]
|
||||
mov r0, r8
|
||||
add r1, sp, 0x8
|
||||
movs r3, 0
|
||||
bl SetBGPaletteBufferColorRGB
|
||||
adds r5, 0x4
|
||||
movs r0, 0x1
|
||||
add r8, r0
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bne _08085E0A
|
||||
_08085E5E:
|
||||
add sp, 0x28
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08085E70: .4byte gUnknown_202EE88
|
||||
_08085E74: .4byte 0xffffff00
|
||||
_08085E78: .4byte 0xffff00ff
|
||||
_08085E7C: .4byte 0xff00ffff
|
||||
_08085E80: .4byte gUnknown_202EDC8
|
||||
_08085E84: .4byte gDungeonGlobalData
|
||||
_08085E88: .4byte 0xffff0000
|
||||
_08085E8C: .4byte gUnknown_202EE8C
|
||||
_08085E90: .4byte gUnknown_202ECA4
|
||||
_08085E94: .4byte 0x000181e4
|
||||
thumb_func_end sub_8085C54
|
||||
|
||||
thumb_func_start sub_8085E98
|
||||
sub_8085E98:
|
||||
ldr r0, _08085EA8
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08085EAC
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08085EA8: .4byte gDungeonGlobalData
|
||||
_08085EAC: .4byte 0x00018215
|
||||
thumb_func_end sub_8085E98
|
||||
|
||||
thumb_func_start sub_8085EB0
|
||||
sub_8085EB0:
|
||||
ldr r0, _08085EC0
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08085EC4
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08085EC0: .4byte gDungeonGlobalData
|
||||
_08085EC4: .4byte 0x00018215
|
||||
thumb_func_end sub_8085EB0
|
||||
|
||||
thumb_func_start sub_8085EC8
|
||||
sub_8085EC8:
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0x28
|
||||
adds r4, r0, 0
|
||||
mov r8, r1
|
||||
mov r9, r2
|
||||
adds r6, r3, 0
|
||||
ldr r5, [sp, 0x40]
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_800EE5C
|
||||
bl sub_800EF64
|
||||
movs r0, 0x46
|
||||
bl sub_803E46C
|
||||
str r4, [sp]
|
||||
mov r0, r8
|
||||
str r0, [sp, 0x4]
|
||||
mov r2, r9
|
||||
str r2, [sp, 0x8]
|
||||
mov r1, sp
|
||||
ldrh r0, [r6]
|
||||
movs r2, 0
|
||||
strh r0, [r1, 0xC]
|
||||
ldrh r0, [r6, 0x2]
|
||||
strh r0, [r1, 0xE]
|
||||
mov r0, sp
|
||||
strh r2, [r0, 0x10]
|
||||
strh r2, [r0, 0x12]
|
||||
ldr r0, _08085F3C
|
||||
str r0, [sp, 0x18]
|
||||
add r1, sp, 0x1C
|
||||
ldr r0, _08085F40
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
mov r0, sp
|
||||
bl sub_800E890
|
||||
cmp r5, 0
|
||||
beq _08085F2E
|
||||
bl sub_8085F44
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_08085F2E:
|
||||
add sp, 0x28
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08085F3C: .4byte 0x0000ffff
|
||||
_08085F40: .4byte gUnknown_8107374
|
||||
thumb_func_end sub_8085EC8
|
||||
|
||||
thumb_func_start sub_8085F44
|
||||
sub_8085F44:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
b _08085F5C
|
||||
_08085F4A:
|
||||
ldr r0, _08085F70
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08085F74
|
||||
adds r0, r1
|
||||
bl sub_800E90C
|
||||
movs r0, 0x46
|
||||
bl sub_803E46C
|
||||
_08085F5C:
|
||||
adds r0, r4, 0
|
||||
bl sub_800E9A8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08085F4A
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08085F70: .4byte gDungeonGlobalData
|
||||
_08085F74: .4byte 0x000181f0
|
||||
thumb_func_end sub_8085F44
|
||||
|
||||
thumb_func_start sub_8085F78
|
||||
sub_8085F78:
|
||||
push {lr}
|
||||
ldr r0, _08085F94
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08085F98
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3C
|
||||
bls _08085F8A
|
||||
b _080860A4
|
||||
_08085F8A:
|
||||
lsls r0, 2
|
||||
ldr r1, _08085F9C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08085F94: .4byte gDungeonGlobalData
|
||||
_08085F98: .4byte 0x00003a0d
|
||||
_08085F9C: .4byte _08085FA0
|
||||
.align 2, 0
|
||||
_08085FA0:
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _08086094
|
||||
.4byte _08086094
|
||||
.4byte _08086094
|
||||
.4byte _0808609A
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A0
|
||||
.4byte _080860A0
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
.4byte _080860A4
|
||||
_08086094:
|
||||
bl sub_8088848
|
||||
b _080860A4
|
||||
_0808609A:
|
||||
bl sub_8088EE8
|
||||
b _080860A4
|
||||
_080860A0:
|
||||
bl sub_808A718
|
||||
_080860A4:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8085F78
|
||||
|
||||
thumb_func_start sub_80860A8
|
||||
sub_80860A8:
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
movs r5, 0
|
||||
ldr r0, _08086108
|
||||
ldr r2, [r0]
|
||||
movs r3, 0x1
|
||||
_080860B6:
|
||||
ldrb r1, [r2]
|
||||
adds r0, r3, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080860C6
|
||||
ldrb r0, [r2, 0x2]
|
||||
cmp r0, r6
|
||||
beq _08086104
|
||||
_080860C6:
|
||||
adds r2, 0x4
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x13
|
||||
ble _080860B6
|
||||
movs r5, 0
|
||||
_080860D0:
|
||||
ldr r0, _0808610C
|
||||
ldr r0, [r0]
|
||||
lsls r1, r5, 2
|
||||
ldr r2, _08086110
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08086114
|
||||
ldr r2, [r4, 0x70]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x60
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08086114
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x62
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r6
|
||||
bne _08086114
|
||||
_08086104:
|
||||
movs r0, 0x1
|
||||
b _0808611C
|
||||
.align 2, 0
|
||||
_08086108: .4byte gTeamInventory_203B460
|
||||
_0808610C: .4byte gDungeonGlobalData
|
||||
_08086110: .4byte 0x0001357c
|
||||
_08086114:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x3
|
||||
ble _080860D0
|
||||
movs r0, 0
|
||||
_0808611C:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80860A8
|
||||
|
||||
thumb_func_start sub_8086124
|
||||
sub_8086124:
|
||||
ldr r0, [r0, 0x70]
|
||||
movs r2, 0xB0
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end sub_8086124
|
||||
|
||||
thumb_func_start sub_8086130
|
||||
sub_8086130:
|
||||
push {lr}
|
||||
movs r0, 0x3C
|
||||
bl sub_8083ED8
|
||||
movs r0, 0x3C
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, _08086194
|
||||
ldr r0, [r0]
|
||||
bl sub_8052FB8
|
||||
movs r0, 0x1E
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, _08086198
|
||||
ldr r0, [r0]
|
||||
bl sub_8052FB8
|
||||
movs r0, 0x1E
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, _0808619C
|
||||
ldr r0, [r0]
|
||||
bl sub_8052FB8
|
||||
movs r0, 0x1E
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, _080861A0
|
||||
ldr r0, [r0]
|
||||
bl sub_8052FB8
|
||||
movs r0, 0x1E
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, _080861A4
|
||||
ldr r0, [r0]
|
||||
bl sub_8052FB8
|
||||
movs r0, 0x1E
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08086194: .4byte gUnknown_810665C
|
||||
_08086198: .4byte gUnknown_810668C
|
||||
_0808619C: .4byte gUnknown_81066D4
|
||||
_080861A0: .4byte gUnknown_81066F0
|
||||
_080861A4: .4byte gUnknown_810671C
|
||||
thumb_func_end sub_8086130
|
||||
|
||||
thumb_func_start sub_80861A8
|
||||
sub_80861A8:
|
||||
push {lr}
|
||||
movs r1, 0
|
||||
movs r2, 0x8
|
||||
bl sub_806CDD4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80861A8
|
||||
|
||||
thumb_func_start sub_80861B8
|
||||
sub_80861B8:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r5, [r0, 0x70]
|
||||
adds r1, r4, 0
|
||||
bl sub_806CDD4
|
||||
adds r5, 0xFE
|
||||
strb r4, [r5]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80861B8
|
||||
|
||||
thumb_func_start sub_80861D4
|
||||
sub_80861D4:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
bl sub_806CDD4
|
||||
adds r0, r4, 0
|
||||
bl sub_80861EC
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80861D4
|
||||
|
||||
thumb_func_start sub_80861EC
|
||||
sub_80861EC:
|
||||
ldr r0, [r0, 0x70]
|
||||
adds r0, 0xFE
|
||||
movs r1, 0x63
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end sub_80861EC
|
||||
|
||||
thumb_func_start sub_80861F8
|
||||
sub_80861F8:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x2C
|
||||
adds r6, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
adds r5, r0, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r10, r2
|
||||
bl sub_800EE5C
|
||||
bl sub_800EF64
|
||||
movs r0, 0x46
|
||||
bl sub_803E46C
|
||||
ldr r0, [r6, 0x70]
|
||||
mov r8, r0
|
||||
movs r1, 0
|
||||
mov r9, r1
|
||||
str r1, [sp, 0x28]
|
||||
adds r0, r5, 0
|
||||
bl sub_800E700
|
||||
adds r7, r0, 0
|
||||
add r4, sp, 0x28
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
cmp r7, r2
|
||||
beq _0808624A
|
||||
adds r1, r6, 0
|
||||
adds r1, 0x28
|
||||
lsls r2, r7, 24
|
||||
lsrs r2, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_800569C
|
||||
_0808624A:
|
||||
str r5, [sp]
|
||||
mov r3, r9
|
||||
str r3, [sp, 0x4]
|
||||
mov r0, r8
|
||||
adds r0, 0x46
|
||||
ldrb r0, [r0]
|
||||
str r0, [sp, 0x8]
|
||||
mov r1, sp
|
||||
ldr r0, [r6, 0xC]
|
||||
cmp r0, 0
|
||||
bge _08086262
|
||||
adds r0, 0xFF
|
||||
_08086262:
|
||||
asrs r0, 8
|
||||
strh r0, [r1, 0xC]
|
||||
mov r1, sp
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
bge _08086270
|
||||
adds r0, 0xFF
|
||||
_08086270:
|
||||
asrs r0, 8
|
||||
strh r0, [r1, 0xE]
|
||||
mov r1, sp
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r1, 0x10]
|
||||
add r0, sp, 0x28
|
||||
ldrh r0, [r0, 0x2]
|
||||
strh r0, [r1, 0x12]
|
||||
str r7, [sp, 0x14]
|
||||
ldr r0, _080862B4
|
||||
str r0, [sp, 0x18]
|
||||
add r1, sp, 0x1C
|
||||
ldr r0, _080862B8
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
mov r0, sp
|
||||
bl sub_800E890
|
||||
mov r4, r10
|
||||
cmp r4, 0
|
||||
beq _080862A2
|
||||
bl sub_8085F44
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_080862A2:
|
||||
add sp, 0x2C
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080862B4: .4byte 0x0000ffff
|
||||
_080862B8: .4byte gUnknown_8107380
|
||||
thumb_func_end sub_80861F8
|
||||
|
||||
.align 2,0
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start SkarmonyPreFightDialogue
|
||||
SkarmonyPreFightDialogue:
|
||||
thumb_func_start SkarmoryPreFightDialogue
|
||||
SkarmoryPreFightDialogue:
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
@@ -165,10 +165,10 @@ _08086D9C: .4byte gUnknown_8100928
|
||||
_08086DA0: .4byte gUnknown_8100A04
|
||||
_08086DA4: .4byte gUnknown_8100B80
|
||||
_08086DA8: .4byte gUnknown_8100BC0
|
||||
thumb_func_end SkarmonyPreFightDialogue
|
||||
thumb_func_end SkarmoryPreFightDialogue
|
||||
|
||||
thumb_func_start SkarmonyReFightDialogue
|
||||
SkarmonyReFightDialogue:
|
||||
thumb_func_start SkarmoryReFightDialogue
|
||||
SkarmoryReFightDialogue:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
bl sub_8085480
|
||||
@@ -225,7 +225,7 @@ SkarmonyReFightDialogue:
|
||||
_08086E34: .4byte gUnknown_8100C90
|
||||
_08086E38: .4byte gUnknown_8100CBC
|
||||
_08086E3C: .4byte gUnknown_8100CDC
|
||||
thumb_func_end SkarmonyReFightDialogue
|
||||
thumb_func_end SkarmoryReFightDialogue
|
||||
|
||||
thumb_func_start sub_8086E40
|
||||
sub_8086E40:
|
||||
@@ -402,8 +402,8 @@ _08086FB0: .4byte gDungeonGlobalData
|
||||
_08086FB4: .4byte 0x0001358c
|
||||
thumb_func_end sub_8086F54
|
||||
|
||||
thumb_func_start TeamMeaniePreFightDialogue
|
||||
TeamMeaniePreFightDialogue:
|
||||
thumb_func_start TeamMeaniesPreFightDialogue
|
||||
TeamMeaniesPreFightDialogue:
|
||||
push {r4,lr}
|
||||
bl sub_8085480
|
||||
adds r4, r0, 0
|
||||
@@ -464,10 +464,10 @@ _08087054: .4byte gUnknown_8100F14
|
||||
_08087058: .4byte gUnknown_8101004
|
||||
_0808705C: .4byte gUnknown_8101050
|
||||
_08087060: .4byte gUnknown_81010D0
|
||||
thumb_func_end TeamMeaniePreFightDialogue
|
||||
thumb_func_end TeamMeaniesPreFightDialogue
|
||||
|
||||
thumb_func_start TeamMeanieReFightDialogue
|
||||
TeamMeanieReFightDialogue:
|
||||
thumb_func_start TeamMeaniesReFightDialogue
|
||||
TeamMeaniesReFightDialogue:
|
||||
push {r4,r5,lr}
|
||||
bl sub_8085480
|
||||
adds r4, r0, 0
|
||||
@@ -541,7 +541,7 @@ _08087120: .4byte gUnknown_8101240
|
||||
_08087124: .4byte gUnknown_8101310
|
||||
_08087128: .4byte gUnknown_810137C
|
||||
_0808712C: .4byte gUnknown_8101408
|
||||
thumb_func_end TeamMeanieReFightDialogue
|
||||
thumb_func_end TeamMeaniesReFightDialogue
|
||||
|
||||
thumb_func_start sub_8087130
|
||||
sub_8087130:
|
||||
|
||||
@@ -5988,14 +5988,14 @@ gUnknown_8100B80: @ 8100B80
|
||||
gUnknown_8100BC0: @ 8100BC0
|
||||
.incbin "baserom.gba", 0x100BC0, 0xD0
|
||||
|
||||
@ Skarmony Re-Fight?
|
||||
@ Skarmory Re-Fight?
|
||||
|
||||
.global gUnknown_8100C90
|
||||
gUnknown_8100C90: @ 8100C90
|
||||
.byte 0x00, 0x00, 0x00, 0x0D
|
||||
.byte 0xFC, 0x00, 0x00, 0x00
|
||||
.4byte _08100C9C
|
||||
|
||||
|
||||
.global _08100C9C
|
||||
_08100C9C:
|
||||
.string " You again?!\n"
|
||||
@@ -7374,9 +7374,20 @@ gUnknown_81069D4: @ 81069D4
|
||||
gUnknown_81069F4: @ 81069F4
|
||||
.incbin "baserom.gba", 0x1069F4, 0x28
|
||||
|
||||
.global gUnknown_8106A1C
|
||||
gUnknown_8106A1C: @ 8106A1C
|
||||
.incbin "baserom.gba", 0x106A1C, 0x30
|
||||
.global gMultiTurnChargingStatuses
|
||||
gMultiTurnChargingStatuses: @ 8106A1C
|
||||
.include "include/constants/status.h"
|
||||
.4byte CHARGING_STATUS_SOLARBEAM
|
||||
.4byte CHARGING_STATUS_SKY_ATTACK
|
||||
.4byte CHARGING_STATUS_RAZOR_WIND
|
||||
.4byte CHARGING_STATUS_FOCUS_PUNCH
|
||||
.4byte CHARGING_STATUS_SKULL_BASH
|
||||
.4byte CHARGING_STATUS_FLY
|
||||
.4byte CHARGING_STATUS_BOUNCE
|
||||
.4byte CHARGING_STATUS_DIVE
|
||||
.4byte CHARGING_STATUS_DIG
|
||||
.4byte 0
|
||||
.string "pksdir0\0"
|
||||
|
||||
.global gUnknown_8106A4C
|
||||
gUnknown_8106A4C: @ 8106A4C
|
||||
@@ -7774,7 +7785,7 @@ gUnknown_8106FD5: @ 8106FD5
|
||||
.global gUnknown_8106FDD
|
||||
gUnknown_8106FDD: @ 8106FDD
|
||||
@ replacing .incbin "baserom.gba", 0x00106fdd, 0x8
|
||||
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
|
||||
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
|
||||
|
||||
.global gUnknown_8106FE5
|
||||
gUnknown_8106FE5: @ 8106FE5
|
||||
@@ -8231,11 +8242,11 @@ gUnknown_81098EC: @ 81098EC
|
||||
|
||||
.global gUnknown_8109908
|
||||
gUnknown_8109908: @ 8109908
|
||||
.byte 0x87, 0x41, 0x00, 0x00 @ apparently shows A in memory viewer
|
||||
.byte 0x87, 0x41, 0x00, 0x00 @ apparently shows A in memory viewer
|
||||
|
||||
.global gUnknown_810990C
|
||||
gUnknown_810990C: @ 810990C
|
||||
.byte 0x87, 0x40, 0x00, 0x00 @ apparently shows @ in memory viewer
|
||||
.byte 0x87, 0x40, 0x00, 0x00 @ apparently shows @ in memory viewer
|
||||
|
||||
.global gUnknown_8109910
|
||||
gUnknown_8109910: @ 8109910
|
||||
@@ -8352,10 +8363,10 @@ gUnknown_810A36B: @ 810A36B
|
||||
.global gUnknown_810A378
|
||||
gUnknown_810A378: @ 810A378
|
||||
@ replacing .incbin "baserom.gba", 0x0010a378, 0x18
|
||||
.2byte 0x01
|
||||
.2byte 0x19
|
||||
.2byte 0x01
|
||||
.2byte 0x01
|
||||
.2byte 0x01
|
||||
.2byte 0x19
|
||||
.2byte 0x01
|
||||
.2byte 0x01
|
||||
.2byte 0x3e7
|
||||
.2byte 0x3e7
|
||||
.2byte 0x23
|
||||
|
||||
@@ -715,7 +715,7 @@ gEvolutionStrings: @ 810DFCC
|
||||
NoMoreText:
|
||||
.string "Evolution: #>54.No more\0"
|
||||
.align 2,0
|
||||
|
||||
|
||||
.global PossibleText
|
||||
PossibleText:
|
||||
.string "Evolution: #>54.Possible\0"
|
||||
@@ -1586,7 +1586,7 @@ gUnknown_8116258: @ 8116258
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte CleanHelperPelipper
|
||||
.4byte HelperPelliperCallback
|
||||
.4byte HelperPelipperCallback
|
||||
|
||||
.global gUnknown_8116268
|
||||
gUnknown_8116268: @ 8116268
|
||||
|
||||
9
include/charge_move.h
Normal file
9
include/charge_move.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_CHARGE_MOVE_H
|
||||
#define GUARD_CHARGE_MOVE_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x570F4
|
||||
bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge);
|
||||
|
||||
#endif
|
||||
@@ -1,125 +1,88 @@
|
||||
#ifndef GUARD_CONSTANTS_STATUS_H
|
||||
#define GUARD_CONSTANTS_STATUS_H
|
||||
|
||||
enum SleepStatus
|
||||
{
|
||||
SLEEP_STATUS_SLEEP = 1,
|
||||
SLEEP_STATUS_SLEEPLESS = 2,
|
||||
SLEEP_STATUS_NIGHTMARE = 3,
|
||||
SLEEP_STATUS_YAWNING = 4,
|
||||
SLEEP_STATUS_NAPPING = 5
|
||||
};
|
||||
#define SLEEP_STATUS_NONE 0
|
||||
#define SLEEP_STATUS_SLEEP 1
|
||||
#define SLEEP_STATUS_SLEEPLESS 2
|
||||
#define SLEEP_STATUS_NIGHTMARE 3
|
||||
#define SLEEP_STATUS_YAWNING 4
|
||||
#define SLEEP_STATUS_NAPPING 5
|
||||
|
||||
enum NonVolatileStatus
|
||||
{
|
||||
NON_VOLATILE_STATUS_BURNED = 1,
|
||||
NON_VOLATILE_STATUS_POISONED = 2,
|
||||
NON_VOLATILE_STATUS_BADLY_POISONED = 3,
|
||||
NON_VOLATILE_STATUS_PARALYZED = 4
|
||||
};
|
||||
#define NON_VOLATILE_STATUS_BURNED 1
|
||||
#define NON_VOLATILE_STATUS_POISONED 2
|
||||
#define NON_VOLATILE_STATUS_BADLY_POISONED 3
|
||||
#define NON_VOLATILE_STATUS_PARALYZED 4
|
||||
|
||||
enum ImmobilizeStatus
|
||||
{
|
||||
IMMOBILIZE_STATUS_FROZEN = 1,
|
||||
IMMOBILIZE_STATUS_IMMOBILIZED = 2,
|
||||
IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE = 3,
|
||||
IMMOBILIZE_STATUS_WRAPPED_BY_FOE = 4,
|
||||
IMMOBILIZE_STATUS_INGRAIN = 5,
|
||||
IMMOBILIZE_STATUS_PETRIFIED = 6,
|
||||
IMMOBILIZE_STATUS_SQUEEZED = 7
|
||||
};
|
||||
#define IMMOBILIZE_STATUS_FROZEN 1
|
||||
#define IMMOBILIZE_STATUS_IMMOBILIZED 2
|
||||
#define IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE 3
|
||||
#define IMMOBILIZE_STATUS_WRAPPED_BY_FOE 4
|
||||
#define IMMOBILIZE_STATUS_INGRAIN 5
|
||||
#define IMMOBILIZE_STATUS_PETRIFIED 6
|
||||
#define IMMOBILIZE_STATUS_SQUEEZED 7
|
||||
|
||||
enum ChargingStatus
|
||||
{
|
||||
CHARGING_STATUS_BIDE = 0x1,
|
||||
CHARGING_STATUS_SOLARBEAM = 0x2,
|
||||
CHARGING_STATUS_SKY_ATTACK = 0x3,
|
||||
CHARGING_STATUS_RAZOR_WIND = 0x4,
|
||||
CHARGING_STATUS_FOCUS_PUNCH = 0x5,
|
||||
CHARGING_STATUS_SKULL_BASH = 0x6,
|
||||
CHARGING_STATUS_FLY = 0x7,
|
||||
CHARGING_STATUS_BOUNCE = 0x8,
|
||||
CHARGING_STATUS_DIVE = 0x9,
|
||||
CHARGING_STATUS_DIG = 0xA,
|
||||
CHARGING_STATUS_CHARGE = 0xB,
|
||||
CHARGING_STATUS_RAGE = 0xC
|
||||
};
|
||||
#define CHARGING_STATUS_NONE 0x0
|
||||
#define CHARGING_STATUS_BIDE 0x1
|
||||
#define CHARGING_STATUS_SOLARBEAM 0x2
|
||||
#define CHARGING_STATUS_SKY_ATTACK 0x3
|
||||
#define CHARGING_STATUS_RAZOR_WIND 0x4
|
||||
#define CHARGING_STATUS_FOCUS_PUNCH 0x5
|
||||
#define CHARGING_STATUS_SKULL_BASH 0x6
|
||||
#define CHARGING_STATUS_FLY 0x7
|
||||
#define CHARGING_STATUS_BOUNCE 0x8
|
||||
#define CHARGING_STATUS_DIVE 0x9
|
||||
#define CHARGING_STATUS_DIG 0xA
|
||||
#define CHARGING_STATUS_CHARGE 0xB
|
||||
#define CHARGING_STATUS_RAGE 0xC
|
||||
|
||||
enum ProtectionStatus
|
||||
{
|
||||
PROTECTION_STATUS_REFLECT = 0x1,
|
||||
PROTECTION_STATUS_SAFEGUARD = 0x2,
|
||||
PROTECTION_STATUS_LIGHT_SCREEN = 0x3,
|
||||
PROTECTION_STATUS_COUNTER = 0x4,
|
||||
PROTECTION_STATUS_MAGIC_COAT = 0x5,
|
||||
PROTECTION_STATUS_WISH = 0x6,
|
||||
PROTECTION_STATUS_PROTECT = 0x7,
|
||||
PROTECTION_STATUS_MIRROR_COAT = 0x8,
|
||||
PROTECTION_STATUS_ENDURE = 0x9,
|
||||
PROTECTION_STATUS_MINI_COUNTER = 0xA,
|
||||
PROTECTION_STATUS_MIRROR_MOVE = 0xB,
|
||||
PROTECTION_STATUS_CONVERSION_2 = 0xC,
|
||||
PROTECTION_STATUS_VITAL_THROW = 0xD,
|
||||
PROTECTION_STATUS_MIST = 0xE
|
||||
};
|
||||
#define PROTECTION_STATUS_REFLECT 0x1
|
||||
#define PROTECTION_STATUS_SAFEGUARD 0x2
|
||||
#define PROTECTION_STATUS_LIGHT_SCREEN 0x3
|
||||
#define PROTECTION_STATUS_COUNTER 0x4
|
||||
#define PROTECTION_STATUS_MAGIC_COAT 0x5
|
||||
#define PROTECTION_STATUS_WISH 0x6
|
||||
#define PROTECTION_STATUS_PROTECT 0x7
|
||||
#define PROTECTION_STATUS_MIRROR_COAT 0x8
|
||||
#define PROTECTION_STATUS_ENDURE 0x9
|
||||
#define PROTECTION_STATUS_MINI_COUNTER 0xA
|
||||
#define PROTECTION_STATUS_MIRROR_MOVE 0xB
|
||||
#define PROTECTION_STATUS_CONVERSION_2 0xC
|
||||
#define PROTECTION_STATUS_VITAL_THROW 0xD
|
||||
#define PROTECTION_STATUS_MIST 0xE
|
||||
|
||||
enum WaitingStatus
|
||||
{
|
||||
WAITING_STATUS_CURSED = 1,
|
||||
WAITING_STATUS_DECOY = 2,
|
||||
WAITING_STATUS_SNATCH = 3
|
||||
};
|
||||
#define WAITING_STATUS_CURSED 1
|
||||
#define WAITING_STATUS_DECOY 2
|
||||
#define WAITING_STATUS_SNATCH 3
|
||||
|
||||
enum LinkedStatus
|
||||
{
|
||||
LINKED_STATUS_LEECH_SEED = 1,
|
||||
LINKED_STATUS_DESTINY_BOND = 2
|
||||
};
|
||||
#define LINKED_STATUS_LEECH_SEED 1
|
||||
#define LINKED_STATUS_DESTINY_BOND 2
|
||||
|
||||
enum MoveStatus
|
||||
{
|
||||
MOVE_STATUS_SURE_SHOT = 1,
|
||||
MOVE_STATUS_WHIFFER = 2,
|
||||
MOVE_STATUS_SET_DAMAGE = 3,
|
||||
MOVE_STATUS_FOCUS_ENERGY = 4
|
||||
};
|
||||
#define MOVE_STATUS_SURE_SHOT 1
|
||||
#define MOVE_STATUS_WHIFFER 2
|
||||
#define MOVE_STATUS_SET_DAMAGE 3
|
||||
#define MOVE_STATUS_FOCUS_ENERGY 4
|
||||
|
||||
enum ItemStatus
|
||||
{
|
||||
ITEM_STATUS_LONG_TOSS = 1,
|
||||
ITEM_STATUS_PIERCE = 2
|
||||
};
|
||||
#define ITEM_STATUS_LONG_TOSS 1
|
||||
#define ITEM_STATUS_PIERCE 2
|
||||
|
||||
enum TransformStatus
|
||||
{
|
||||
TRANSFORM_STATUS_INVISIBLE = 1,
|
||||
TRANSFORM_STATUS_TRANSFORMED = 2,
|
||||
TRANSFORM_STATUS_MOBILE = 3
|
||||
};
|
||||
#define TRANSFORM_STATUS_INVISIBLE 1
|
||||
#define TRANSFORM_STATUS_TRANSFORMED 2
|
||||
#define TRANSFORM_STATUS_MOBILE 3
|
||||
|
||||
enum EyesightStatus
|
||||
{
|
||||
EYESIGHT_STATUS_BLINKER = 1,
|
||||
EYESIGHT_STATUS_CROSS_EYED = 2,
|
||||
EYESIGHT_STATUS_EYEDROPS = 3
|
||||
};
|
||||
#define EYESIGHT_STATUS_BLINKER 1
|
||||
#define EYESIGHT_STATUS_CROSS_EYED 2
|
||||
#define EYESIGHT_STATUS_EYEDROPS 3
|
||||
|
||||
enum VolatileStatus
|
||||
{
|
||||
VOLATILE_STATUS_CRINGING = 1,
|
||||
VOLATILE_STATUS_CONFUSED = 2,
|
||||
VOLATILE_STATUS_PAUSED = 3,
|
||||
VOLATILE_STATUS_COWERING = 4,
|
||||
VOLATILE_STATUS_TAUNTED = 5,
|
||||
VOLATILE_STATUS_ENCORE = 6,
|
||||
VOLATILE_STATUS_INFATUATED = 7
|
||||
};
|
||||
#define VOLATILE_STATUS_CRINGING 1
|
||||
#define VOLATILE_STATUS_CONFUSED 2
|
||||
#define VOLATILE_STATUS_PAUSED 3
|
||||
#define VOLATILE_STATUS_COWERING 4
|
||||
#define VOLATILE_STATUS_TAUNTED 5
|
||||
#define VOLATILE_STATUS_ENCORE 6
|
||||
#define VOLATILE_STATUS_INFATUATED 7
|
||||
|
||||
enum TargetingDecoy
|
||||
{
|
||||
TARGETING_DECOY_NONE = 0,
|
||||
TARGETING_DECOY_TEAM = 1,
|
||||
TARGETING_DECOY_WILD = 2
|
||||
};
|
||||
#define TARGETING_DECOY_NONE 0
|
||||
#define TARGETING_DECOY_TEAM 1
|
||||
#define TARGETING_DECOY_WILD 2
|
||||
|
||||
#endif
|
||||
|
||||
9
include/dungeon_ai.h
Normal file
9
include/dungeon_ai.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_DUNGEON_AI_H
|
||||
#define GUARD_DUNGEON_AI_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x71494
|
||||
bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon);
|
||||
|
||||
#endif
|
||||
9
include/dungeon_capabilities.h
Normal file
9
include/dungeon_capabilities.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_DUNGEON_CAPABILITIES_H
|
||||
#define GUARD_DUNGEON_CAPABILITIES_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x70B6C
|
||||
bool8 CannotMove(struct DungeonEntity *pokemon, bool8 checkBlinker);
|
||||
|
||||
#endif
|
||||
11
include/dungeon_capabilities_1.h
Normal file
11
include/dungeon_capabilities_1.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef GUARD_DUNGEON_CAPABILITIES_1_H
|
||||
#define GUARD_DUNGEON_CAPABILITIES_1_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x70C60
|
||||
bool8 CannotUseItems(struct DungeonEntity *pokemon);
|
||||
// 0x70CD0
|
||||
bool8 CannotAct(struct DungeonEntity *pokemon);
|
||||
|
||||
#endif
|
||||
@@ -22,9 +22,9 @@ struct DungeonEntityData
|
||||
u8 fillB;
|
||||
/* 0xC */ u16 IQ;
|
||||
/* 0xE */ s16 HP;
|
||||
/* 0x10 */ u16 maxHP;
|
||||
/* 0x10 */ s16 maxHP;
|
||||
// Bosses have higher HP than normal for their level. This is the max HP they would normally have given their level.
|
||||
/* 0x12 */ u16 originalHP;
|
||||
/* 0x12 */ s16 originalHP;
|
||||
/* 0x14 */ u8 attack;
|
||||
/* 0x15 */ u8 specialAttack;
|
||||
/* 0x16 */ u8 defense;
|
||||
@@ -94,7 +94,7 @@ struct DungeonEntityData
|
||||
// Bitwise flags corresponding to selected IQ skills.
|
||||
/* 0x8C */ u8 IQSkillsSelected[4]; // IQ skills selected in the IQ skills menu.
|
||||
/* 0x90 */ u8 IQSkillsEnabled[4];
|
||||
/* 0x94 */ u8 tactics;
|
||||
/* 0x94 */ u8 tactic;
|
||||
u8 fill95[0xA4 - 0x95];
|
||||
/* 0xA4 */ u8 clientType;
|
||||
u8 fillA5[0xA8 - 0xA5];
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
// 0x75990
|
||||
void DecideAction(struct DungeonEntity *pokemon);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
9
include/dungeon_pokemon_attributes.h
Normal file
9
include/dungeon_pokemon_attributes.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_DUNGEON_POKEMON_ATTRIBUTES_H
|
||||
#define GUARD_DUNGEON_POKEMON_ATTRIBUTES_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x71824
|
||||
bool8 HasAbility(struct DungeonEntity *pokemon, u8 ability);
|
||||
|
||||
#endif
|
||||
9
include/dungeon_pokemon_attributes_1.h
Normal file
9
include/dungeon_pokemon_attributes_1.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_DUNGEON_POKEMON_ATTRIBUTES_1_H
|
||||
#define GUARD_DUNGEON_POKEMON_ATTRIBUTES_1_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x718AC
|
||||
bool8 HasTactic(struct DungeonEntity *pokemon, u8 tactic);
|
||||
|
||||
#endif
|
||||
@@ -6,4 +6,4 @@
|
||||
// 0x450E0
|
||||
bool8 EntityExists(struct DungeonEntity *pokemon);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
9
include/dungeon_util_1.h
Normal file
9
include/dungeon_util_1.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_DUNGEON_UTIL_1_H
|
||||
#define GUARD_DUNGEON_UTIL_1_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
// 0x85A50
|
||||
bool8 IsMovingClient(struct DungeonEntity *entity);
|
||||
|
||||
#endif
|
||||
@@ -188,13 +188,27 @@ SECTIONS {
|
||||
asm/code_8048480.o(.text);
|
||||
src/code_80521D0.o(.text);
|
||||
asm/code_80521D0.o(.text);
|
||||
src/charge_move.o(.text);
|
||||
asm/code_8057144.o(.text);
|
||||
src/code_8057824.o(.text);
|
||||
asm/code_8057824.o(.text);
|
||||
asm/code_807001C.o(.text);
|
||||
src/dungeon_capabilities.o(.text);
|
||||
asm/code_8070BC0.o(.text);
|
||||
src/dungeon_capabilities_1.o(.text);
|
||||
asm/code_8070D04.o(.text);
|
||||
src/dungeon_ai.o(.text);
|
||||
asm/code_8071518.o(.text);
|
||||
src/dungeon_pokemon_attributes.o(.text);
|
||||
asm/code_8071858.o(.text);
|
||||
src/dungeon_pokemon_attributes_1.o(.text);
|
||||
asm/code_80718D8.o(.text);
|
||||
src/dungeon_movement.o(.text);
|
||||
asm/code_8075BA4.o(.text);
|
||||
src/code_80848F0.o(.text);
|
||||
asm/code_80848F0.o(.text);
|
||||
src/dungeon_util_1.o(.text);
|
||||
asm/code_8085B0C.o(.text);
|
||||
src/code_80869E4.o(.text);
|
||||
asm/code_80869E4.o(.text);
|
||||
src/code_8086A3C.o(.text);
|
||||
|
||||
43
src/charge_move.c
Normal file
43
src/charge_move.c
Normal file
@@ -0,0 +1,43 @@
|
||||
#include "global.h"
|
||||
#include "charge_move.h"
|
||||
|
||||
#include "constants/status.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
extern u32 gMultiTurnChargingStatuses[];
|
||||
|
||||
bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge)
|
||||
{
|
||||
if (!EntityExists(pokemon))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
int i = 0;
|
||||
u8 *chargingStatusPointer = &pokemonData->chargingStatus;
|
||||
u8 *chargingStatusPointer2;
|
||||
u8 chargeStatus = CHARGING_STATUS_CHARGE;
|
||||
for (; i < 100; i++)
|
||||
{
|
||||
u8 currentStatus = gMultiTurnChargingStatuses[i];
|
||||
u8 chargingStatus;
|
||||
if (currentStatus == CHARGING_STATUS_NONE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
chargingStatus = *chargingStatusPointer;
|
||||
chargingStatusPointer2 = &pokemonData->chargingStatus;
|
||||
if (chargingStatus == currentStatus)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (checkCharge && *chargingStatusPointer2 == chargeStatus)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,11 @@
|
||||
|
||||
extern struct DungeonGlobalData *gDungeonGlobalData;
|
||||
|
||||
extern void SkarmonyPreFightDialogue();
|
||||
extern void SkarmonyReFightDialogue();
|
||||
extern void SkarmoryPreFightDialogue();
|
||||
extern void SkarmoryReFightDialogue();
|
||||
extern void sub_8086E40();
|
||||
extern void TeamMeaniePreFightDialogue();
|
||||
extern void TeamMeanieReFightDialogue();
|
||||
extern void TeamMeaniesPreFightDialogue();
|
||||
extern void TeamMeaniesReFightDialogue();
|
||||
extern void sub_8087130();
|
||||
extern void ZapdosPreFightDialogue();
|
||||
extern void ZapdosReFightDialogue();
|
||||
@@ -97,24 +97,24 @@ extern void sub_808B0B0(u8);
|
||||
|
||||
void DisplayPreFightDialogue(void)
|
||||
{
|
||||
|
||||
|
||||
switch(gDungeonGlobalData->unk3A0D) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
SkarmonyPreFightDialogue();
|
||||
SkarmoryPreFightDialogue();
|
||||
break;
|
||||
case 2:
|
||||
SkarmonyReFightDialogue();
|
||||
SkarmoryReFightDialogue();
|
||||
break;
|
||||
case 3:
|
||||
sub_8086E40();
|
||||
break;
|
||||
case 4:
|
||||
TeamMeaniePreFightDialogue();
|
||||
TeamMeaniesPreFightDialogue();
|
||||
break;
|
||||
case 5:
|
||||
TeamMeanieReFightDialogue();
|
||||
TeamMeaniesReFightDialogue();
|
||||
break;
|
||||
case 6:
|
||||
sub_8087130();
|
||||
|
||||
42
src/dungeon_ai.c
Normal file
42
src/dungeon_ai.c
Normal file
@@ -0,0 +1,42 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_ai.h"
|
||||
|
||||
#include "constants/ability.h"
|
||||
#include "constants/tactic.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_pokemon_attributes_1.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon)
|
||||
{
|
||||
if (!EntityExists(pokemon))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
if (pokemonData->terrifiedTurnsLeft != 0)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonData->isLeader)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (HasAbility(pokemon, ABILITY_RUN_AWAY))
|
||||
{
|
||||
bool8 runAwayActive = pokemonData->HP < pokemonData->maxHP / 2;
|
||||
if (runAwayActive)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (HasTactic(pokemon, TACTIC_GET_AWAY)
|
||||
|| (HasTactic(pokemon, TACTIC_AVOID_TROUBLE) && pokemonData->HP <= pokemonData->maxHP / 2))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
25
src/dungeon_capabilities.c
Normal file
25
src/dungeon_capabilities.c
Normal file
@@ -0,0 +1,25 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_capabilities.h"
|
||||
|
||||
#include "constants/status.h"
|
||||
|
||||
bool8 CannotMove(struct DungeonEntity *pokemon, bool8 checkBlinker)
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
if ((checkBlinker && pokemonData->eyesightStatus == EYESIGHT_STATUS_BLINKER)
|
||||
|| pokemonData->sleepStatus == SLEEP_STATUS_SLEEP
|
||||
|| pokemonData->sleepStatus == SLEEP_STATUS_NAPPING
|
||||
|| pokemonData->sleepStatus == SLEEP_STATUS_NIGHTMARE
|
||||
|| pokemonData->volatileStatus == VOLATILE_STATUS_PAUSED
|
||||
|| pokemonData->volatileStatus == VOLATILE_STATUS_INFATUATED
|
||||
|| pokemonData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonData->terrifiedTurnsLeft != 0)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
56
src/dungeon_capabilities_1.c
Normal file
56
src/dungeon_capabilities_1.c
Normal file
@@ -0,0 +1,56 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_capabilities_1.h"
|
||||
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/status.h"
|
||||
#include "charge_move.h"
|
||||
#include "dungeon_ai.h"
|
||||
#include "dungeon_capabilities.h"
|
||||
|
||||
static inline bool8 JoinLocationCannotUseItems(struct DungeonEntityData *pokemonData)
|
||||
{
|
||||
if (pokemonData->joinLocation == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonData->joinLocation == DUNGEON_RESCUE_TEAM_BASE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 CannotUseItems(struct DungeonEntity *pokemon)
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
if (pokemonData->clientType == CLIENT_TYPE_CLIENT
|
||||
|| JoinLocationCannotUseItems(pokemonData)
|
||||
|| (!pokemonData->isLeader && ShouldAvoidEnemies(pokemon))
|
||||
|| CannotMove(pokemon, FALSE)
|
||||
|| CannotAct(pokemon))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (IsCharging(pokemon, FALSE))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 CannotAct(struct DungeonEntity *pokemon)
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
if ((pokemonData->sleepStatus != SLEEP_STATUS_SLEEPLESS
|
||||
&& pokemonData->sleepStatus != SLEEP_STATUS_NONE)
|
||||
|| pokemonData->immobilizeStatus == IMMOBILIZE_STATUS_FROZEN
|
||||
|| pokemonData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonData->chargingStatus == CHARGING_STATUS_BIDE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "constants/iq_skill.h"
|
||||
#include "constants/status.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_capabilities_1.h"
|
||||
#include "map.h"
|
||||
|
||||
extern char gAvailablePokemonNames[];
|
||||
@@ -13,7 +14,6 @@ extern struct DungeonGlobalData *gDungeonGlobalData;
|
||||
|
||||
extern void SendImmobilizeEndMessage(struct DungeonEntity*, struct DungeonEntity*);
|
||||
extern bool8 IsMovingClient(struct DungeonEntity*);
|
||||
extern bool8 CannotUseItems(struct DungeonEntity*);
|
||||
extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
|
||||
extern void SendMessage(struct DungeonEntity*, char*);
|
||||
extern void DecideUseItem(struct DungeonEntity*);
|
||||
|
||||
21
src/dungeon_pokemon_attributes.c
Normal file
21
src/dungeon_pokemon_attributes.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
|
||||
#include "dungeon_util.h"
|
||||
|
||||
bool8 HasAbility(struct DungeonEntity *pokemon, u8 ability)
|
||||
{
|
||||
if (!EntityExists(pokemon))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
if (pokemonData->ability1 == ability || pokemonData->ability2 == ability)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
15
src/dungeon_pokemon_attributes_1.c
Normal file
15
src/dungeon_pokemon_attributes_1.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_pokemon_attributes_1.h"
|
||||
|
||||
#include "constants/tactic.h"
|
||||
|
||||
bool8 HasTactic(struct DungeonEntity *pokemon, u8 tactic)
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
if (pokemonData->isLeader)
|
||||
{
|
||||
bool8 isGoTheOtherWay = tactic == TACTIC_GO_THE_OTHER_WAY;
|
||||
return isGoTheOtherWay;
|
||||
}
|
||||
return pokemonData->tactic == tactic;
|
||||
}
|
||||
50
src/dungeon_util_1.c
Normal file
50
src/dungeon_util_1.c
Normal file
@@ -0,0 +1,50 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_util_1.h"
|
||||
|
||||
bool8 IsMovingClient(struct DungeonEntity *pokemon)
|
||||
{
|
||||
struct DungeonEntityData *pokemonData = pokemon->entityData;
|
||||
switch (pokemonData->clientType)
|
||||
{
|
||||
case CLIENT_TYPE_CLIENT:
|
||||
case CLIENT_TYPE_DONT_MOVE:
|
||||
case 0x5:
|
||||
case 0x6:
|
||||
case 0x7:
|
||||
case 0x8:
|
||||
case 0x9:
|
||||
case 0xD:
|
||||
case 0xE:
|
||||
case 0xF:
|
||||
case 0x10:
|
||||
case 0x11:
|
||||
case 0x12:
|
||||
case 0x13:
|
||||
case 0x14:
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
case 0x18:
|
||||
case 0x19:
|
||||
case 0x1A:
|
||||
case 0x1B:
|
||||
case 0x1C:
|
||||
case 0x1D:
|
||||
case 0x1E:
|
||||
case 0x1F:
|
||||
case 0x20:
|
||||
case 0x21:
|
||||
case 0x22:
|
||||
case 0x23:
|
||||
case 0x24:
|
||||
return TRUE;
|
||||
case CLIENT_TYPE_NONE:
|
||||
case 0x2:
|
||||
case 0x4:
|
||||
case 0xA:
|
||||
case 0xB:
|
||||
case 0xC:
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -77,9 +77,9 @@ enum PostOfficeStates
|
||||
|
||||
enum PostOfficeMenuActions
|
||||
{
|
||||
POST_OFFICE,
|
||||
BULLETIN_BOARD,
|
||||
DELIVERY,
|
||||
POST_OFFICE,
|
||||
BULLETIN_BOARD,
|
||||
DELIVERY,
|
||||
FRIEND_RESCUE,
|
||||
CANCEL,
|
||||
EXIT,
|
||||
@@ -168,7 +168,7 @@ ALIGNED(4) const char GettingHelp_Text[] = _("Getting Help");
|
||||
|
||||
ALIGNED(4) const u8 wonder_mail_fill[] = _("pksdir0");
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E1EFC =
|
||||
const struct UnkTextStruct2 gUnknown_80E1EFC =
|
||||
{
|
||||
0, 0, 0, 0,
|
||||
3, 0, 0, 0,
|
||||
@@ -180,7 +180,7 @@ const struct UnkTextStruct2 gUnknown_80E1EFC =
|
||||
|
||||
const u8 gUnkData_80E1F14[] = {1, 0, 8, 0};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E1F18 =
|
||||
const struct UnkTextStruct2 gUnknown_80E1F18 =
|
||||
{
|
||||
0, 0, 0, 0,
|
||||
6, 0, 0, 0,
|
||||
@@ -221,7 +221,7 @@ u32 CreateHelperPelipperMenu(s16 speciesID)
|
||||
char *monName;
|
||||
struct OpenedFile *faceFile;
|
||||
int species_32;
|
||||
|
||||
|
||||
species_32 = speciesID;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
@@ -249,7 +249,7 @@ u32 CreateHelperPelipperMenu(s16 speciesID)
|
||||
}
|
||||
|
||||
|
||||
u32 HelperPelliperCallback(void)
|
||||
u32 HelperPelipperCallback(void)
|
||||
{
|
||||
switch(gPostOfficeHelper->state) {
|
||||
case IM_GUIDE_START_MENU:
|
||||
@@ -304,7 +304,7 @@ void UpdateHelperPelipperText(void)
|
||||
faceFile = NULL;
|
||||
if(gPostOfficeHelper->faceFile != NULL)
|
||||
faceFile = &gPostOfficeHelper->faceFile;
|
||||
|
||||
|
||||
switch(gPostOfficeHelper->state)
|
||||
{
|
||||
case DISPLAY_GET_HELP_MENU:
|
||||
@@ -535,7 +535,7 @@ void ReturnToGetHelpMenu(void)
|
||||
|
||||
u32 sub_80319A4(u8 param_1,u8 param_2,int param_3)
|
||||
{
|
||||
|
||||
|
||||
gUnknown_203B330 = MemoryAlloc(sizeof(struct unkStruct_203B330),8);
|
||||
gUnknown_203B330->unkC = param_1;
|
||||
gUnknown_203B330->unkD = param_2;
|
||||
@@ -582,7 +582,7 @@ void sub_8031A3C(void)
|
||||
void sub_8031A84(void)
|
||||
{
|
||||
s32 iVar1;
|
||||
|
||||
|
||||
sub_8006518(gUnknown_203B330->unk18);
|
||||
gUnknown_203B330->unk18[gUnknown_203B330->unk10] = gUnknown_80E1F18;
|
||||
if (gUnknown_203B330->unkC == 2) {
|
||||
|
||||
@@ -170,7 +170,7 @@ ALIGNED(4) const char gUnknown_80DF9F8[] = _(
|
||||
"Here is your reward from the Pokémon\n"
|
||||
"Rescue Organization!");
|
||||
|
||||
ALIGNED(4) const char gUnknown_80DFAA8[] =
|
||||
ALIGNED(4) const char gUnknown_80DFAA8[] =
|
||||
" I hope you will keep on\n"
|
||||
"rescuing your friends in\n"
|
||||
"dire straits.#P"
|
||||
@@ -192,7 +192,7 @@ u32 sub_802B2D4(void)
|
||||
{
|
||||
s32 iVar1;
|
||||
struct OpenedFile *faceFile;
|
||||
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
gUnknown_203B2C8 = MemoryAlloc(sizeof(struct unkStruct_203B2C8),8);
|
||||
@@ -272,7 +272,7 @@ void sub_802B3E0(void)
|
||||
}
|
||||
// Print and expand placeholders?
|
||||
ExpandPlaceholdersBuffer(gUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer);
|
||||
// Display to screen with Peliper face
|
||||
// Display to screen with Pelipper face
|
||||
sub_80141B4(gUnknown_203B2C8->teamName, 0, &gUnknown_203B2C8->faceFile, 0x10d);
|
||||
break;
|
||||
case 1:
|
||||
@@ -355,7 +355,7 @@ void sub_802B5B8(void)
|
||||
void sub_802B5FC(void)
|
||||
{
|
||||
s32 temp;
|
||||
|
||||
|
||||
if (sub_80144A4(&temp) == 0) {
|
||||
if (!WriteSavePak()) {
|
||||
FinishWriteSavePak();
|
||||
@@ -368,7 +368,7 @@ void sub_802B5FC(void)
|
||||
void sub_802B624(void)
|
||||
{
|
||||
s32 temp;
|
||||
|
||||
|
||||
if (sub_80144A4(&temp) == 0) {
|
||||
sub_802B548(5);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user