Decomped DecideAction() (#66)

* Decomped DecideAction()

* Defined dungeon Pokémon array sizes
This commit is contained in:
Cheng Hann Gan 2021-10-22 13:20:01 -04:00 committed by GitHub
parent 3e5dd1d047
commit c98fb2c112
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 31046 additions and 31135 deletions

View File

@ -789,7 +789,7 @@ _0803D6F8: .4byte 0x0001c5a8
sub_803D6FC:
push {r4,lr}
ldr r0, _0803D720
bl sub_8084100
bl DungeonRandomCapped
adds r3, r0, 0
movs r2, 0
ldr r0, _0803D724
@ -829,7 +829,7 @@ sub_803D73C:
sub sp, 0x8
adds r4, r0, 0
ldr r0, _0803D784
bl sub_8084100
bl DungeonRandomCapped
adds r7, r0, 0
movs r0, 0xC
mov r8, r0
@ -874,7 +874,7 @@ _0803D798:
b _0803D7EE
_0803D79C:
ldr r0, _0803D7FC
bl sub_8084100
bl DungeonRandomCapped
adds r7, r0, 0
movs r6, 0
ldr r2, _0803D800
@ -1127,7 +1127,7 @@ sub_803D970:
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, _0803D9EC
bl sub_8084100
bl DungeonRandomCapped
adds r6, r0, 0
movs r3, 0
ldr r1, _0803D9F0
@ -3688,7 +3688,7 @@ sub_803EDF0:
b _0803EF42
_0803EE06:
ldr r0, [r6, 0x4]
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@ -4668,7 +4668,7 @@ sub_803F580:
b _0803F7A0
_0803F59E:
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _0803F5AC
@ -4914,7 +4914,7 @@ _0803F774:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0803F79A

View File

@ -1663,7 +1663,7 @@ _08040E24:
adds r6, r7, 0
_08040E26:
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08040E34
@ -1707,7 +1707,7 @@ _08040E6E:
cmp r1, r0
bne _08040ED0
movs r0, 0x7
bl sub_8084100
bl DungeonRandomCapped
ldr r1, _08040EB8
str r0, [r1]
ldr r1, _08040EBC
@ -1728,7 +1728,7 @@ _08040E6E:
ldr r0, _08040ECC
ldr r1, [r0]
adds r0, r6, 0
bl sub_80522A8
bl SendMessage
movs r1, 0xD2
lsls r1, 1
adds r0, r6, 0
@ -2104,7 +2104,7 @@ _0804118A:
movs r2, 0
str r2, [sp, 0x14]
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080411CA
@ -2137,7 +2137,7 @@ _080411D0:
cmp r5, r0
beq _08041216
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08041216
@ -2452,7 +2452,7 @@ sub_804143C:
cmp r0, 0xED
bne _08041476
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080414A4
@ -2613,7 +2613,7 @@ sub_8041550:
lsls r0, 24
lsrs r6, r0, 24
adds r0, r7, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804159C
@ -3034,7 +3034,7 @@ _08041890:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080418C0
@ -3065,7 +3065,7 @@ _080418D0: .4byte 0x000135cc
sub_80418D4:
push {r4,lr}
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _080418E4

View File

@ -700,7 +700,7 @@ _080427B0:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080427FA
@ -720,7 +720,7 @@ _080427B0:
ldr r0, _08042810
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08042814
ldr r1, [r0]
adds r0, r4, 0

View File

@ -1112,7 +1112,7 @@ _08043346:
adds r0, r2
strb r6, [r0]
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
ldr r1, [r4]
ldr r3, _080434CC
adds r1, r3
@ -1605,7 +1605,7 @@ _080437C8:
_080437DA:
bl sub_8083600
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080437F0
@ -1646,7 +1646,7 @@ _08043822:
bl sub_806AA70
_08043830:
bl sub_8083600
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804384A
@ -2280,7 +2280,7 @@ _08043D6A:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043DCE
@ -2341,7 +2341,7 @@ _08043DDC:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
adds r7, r5, 0x1
cmp r0, 0
@ -2413,7 +2413,7 @@ _08043E6E:
bl sub_8049590
ldr r4, [r0, 0x14]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043EA0
@ -2473,7 +2473,7 @@ _08043EEA:
bne _08043F40
bl sub_8083600
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043FB6
@ -2505,7 +2505,7 @@ _08043F40:
bne _08043F74
bl sub_8083600
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043FB6
@ -2527,7 +2527,7 @@ _08043F74:
bne _08043FB6
bl sub_8083600
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043FB6
@ -3171,7 +3171,7 @@ _08044466:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080444DC
@ -3190,7 +3190,7 @@ _08044466:
adds r0, r4, 0
bl sub_8074B54
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080444DC
@ -3198,7 +3198,7 @@ _08044466:
bl sub_8071DA4
adds r0, r4, 0
movs r1, 0
bl sub_8075990
bl DecideAction
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
@ -3251,7 +3251,7 @@ _08044510:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044560
@ -3271,7 +3271,7 @@ _08044510:
bne _08044566
adds r0, r4, 0
movs r1, 0
bl sub_8075990
bl DecideAction
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
@ -3315,7 +3315,7 @@ _08044592:
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080446A4
@ -3395,7 +3395,7 @@ _08044644:
adds r0, r5, 0
bl sub_8074B54
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080446A4
@ -3412,7 +3412,7 @@ _0804466E:
bgt _080446A4
adds r0, r5, 0
movs r1, 0
bl sub_8075990
bl DecideAction
bl sub_8044B28
lsls r0, 24
cmp r0, 0
@ -3466,7 +3466,7 @@ _080446D4:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044760
@ -3551,14 +3551,14 @@ _0804476A:
strb r6, [r0]
adds r0, r4, 0
movs r1, 0x1
bl sub_8075990
bl DecideAction
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
adds r0, r4, 0
bl entityExists
bl EntityExists
_080447A0:
ldr r5, [r5, 0x4]
cmp r5, 0
@ -3580,7 +3580,7 @@ _080447B8:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080447FC
@ -3594,7 +3594,7 @@ _080447B8:
adds r0, r4, 0
bl sub_8074094
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080447FC
@ -3700,7 +3700,7 @@ _0804486C:
adds r0, r5, 0
bl sub_8074B54
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080448FA
@ -3708,7 +3708,7 @@ _0804486C:
bl sub_8071DA4
adds r0, r5, 0
movs r1, 0
bl sub_8075990
bl DecideAction
bl sub_8044B28
lsls r0, 24
cmp r0, 0
@ -3735,7 +3735,7 @@ _080448FC:
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080448FA
@ -3758,7 +3758,7 @@ _08044930:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044974
@ -3772,7 +3772,7 @@ _08044930:
adds r0, r4, 0
bl sub_8074094
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044974
@ -3854,7 +3854,7 @@ _080449F2:
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044A7A
@ -3974,7 +3974,7 @@ _08044AE6:
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044AE4
@ -4187,15 +4187,15 @@ sub_8044C50:
_08044C84: .4byte 0x0000ffff
thumb_func_end sub_8044C50
thumb_func_start sub_8044C88
sub_8044C88:
thumb_func_start ResetAction
ResetAction:
movs r2, 0
movs r1, 0
strh r1, [r0]
strb r2, [r0, 0x4]
strb r2, [r0, 0xC]
bx lr
thumb_func_end sub_8044C88
thumb_func_end ResetAction
thumb_func_start sub_8044C94
sub_8044C94:
@ -4206,8 +4206,8 @@ sub_8044C94:
bx lr
thumb_func_end sub_8044C94
thumb_func_start sub_8044CA0
sub_8044CA0:
thumb_func_start SetWalkAction
SetWalkAction:
push {r4,lr}
adds r4, r0, 0
lsls r0, r1, 16
@ -4228,7 +4228,7 @@ _08044CB8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8044CA0
thumb_func_end SetWalkAction
thumb_func_start sub_8044CC8
sub_8044CC8:

View File

@ -211,7 +211,7 @@ _08045248:
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080452A2
@ -258,7 +258,7 @@ _080452AC:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080452CC
@ -278,7 +278,7 @@ _080452D4:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080452F4
@ -450,7 +450,7 @@ _0804540C:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r0, 24
mov r10, r0
@ -641,7 +641,7 @@ _0804557A:
ldr r4, [r0]
adds r0, r4, 0
str r2, [sp, 0x4]
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r6, r0, 24
ldr r2, [sp, 0x4]
@ -787,7 +787,7 @@ _080456A2:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@ -917,7 +917,7 @@ _080457A2:
adds r0, r6
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0
@ -1164,17 +1164,17 @@ _0804598A:
bx r1
thumb_func_end sub_8045888
thumb_func_start sub_8045990
sub_8045990:
thumb_func_start CanSee
CanSee:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080459E8
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080459E8
@ -1223,19 +1223,19 @@ _080459F8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8045990
thumb_func_end CanSee
thumb_func_start sub_8045A00
sub_8045A00:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08045A58
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08045A58
@ -1291,12 +1291,12 @@ sub_8045A70:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08045AA4
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08045AA4
@ -1355,7 +1355,7 @@ _08045AD4:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08045AFA
@ -1380,7 +1380,7 @@ _08045B04:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08045B2A
@ -1451,8 +1451,8 @@ _08045B8C:
bx r1
thumb_func_end sub_8045B60
thumb_func_start sub_8045B94
sub_8045B94:
thumb_func_start SetMessageArgument
SetMessageArgument:
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
@ -1501,7 +1501,7 @@ _08045BEC:
bx r0
.align 2, 0
_08045BF4: .4byte gUnknown_80FE6F4
thumb_func_end sub_8045B94
thumb_func_end SetMessageArgument
thumb_func_start sub_8045BF8
sub_8045BF8:
@ -1555,7 +1555,7 @@ sub_8045C28:
cmp r6, 0
bne _08045C6C
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
ldr r1, _08045C64
ldr r1, [r1]
ldr r2, _08045C68
@ -1614,10 +1614,10 @@ sub_8045CB0:
push {r5-r7}
sub sp, 0x8
movs r0, 0x38
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
movs r0, 0x20
bl sub_8084100
bl DungeonRandomCapped
adds r6, r0, 0
ldr r0, _08045D34
ldr r0, [r0]
@ -1801,7 +1801,7 @@ _08045E1E:
ldr r0, _08045E38
adds r1, r7, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08045E3C
b _08046048
.align 2, 0
@ -2014,7 +2014,7 @@ _08045FAC:
_08045FD0:
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
bl SendMessage
b _08045FF2
.align 2, 0
_08045FDC: .4byte 0x00ff0008
@ -2024,7 +2024,7 @@ _08045FE8:
ldr r0, _08045FFC
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
bl SendMessage
_08045FF2:
ldrb r0, [r5, 0x2]
bl sub_8052EC0
@ -2067,12 +2067,12 @@ _0804602E:
ldr r0, _08046058
adds r1, r7, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _0804605C
_08046048:
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
bl SendMessage
b _080460E0
.align 2, 0
_08046054: .4byte gUnknown_202DE58
@ -2110,12 +2110,12 @@ _08046094:
ldr r0, _080460B8
adds r1, r7, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _080460BC
_080460AC:
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
bl SendMessage
b _080460DA
.align 2, 0
_080460B8: .4byte gAvailablePokemonNames
@ -2130,7 +2130,7 @@ _080460C0:
ldr r0, _080460F4
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
bl SendMessage
_080460DA:
ldrb r0, [r5, 0x2]
bl sub_8052EC0
@ -2229,7 +2229,7 @@ _0804618A:
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl entityExists
bl EntityExists
lsls r0, 24
adds r1, r4, 0x1
cmp r0, 0
@ -2333,7 +2333,7 @@ _08046258:
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl entityExists
bl EntityExists
lsls r0, 24
adds r1, r4, 0x1
cmp r0, 0
@ -2395,7 +2395,7 @@ sub_80462AC:
movs r0, 0
str r0, [sp, 0x4]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _080462E4
@ -2732,7 +2732,7 @@ sub_804652C:
ldr r0, _080465A4
ldr r1, [r0]
mov r0, r10
bl sub_80522A8
bl SendMessage
mov r0, r9
ldrb r1, [r0]
movs r0, 0x1
@ -3457,7 +3457,7 @@ _08046B0A:
ldr r4, _08046B38
add r4, sp
ldr r0, [r4]
bl sub_80522A8
bl SendMessage
b _08046C7C
.align 2, 0
_08046B2C: .4byte 0x0000052c
@ -3470,7 +3470,7 @@ _08046B3C:
ldr r5, _08046B50
add r5, sp
ldr r0, [r5]
bl sub_80522A8
bl SendMessage
b _08046C7C
.align 2, 0
_08046B4C: .4byte gUnknown_80F943C
@ -3484,7 +3484,7 @@ _08046B54:
ldr r2, _08046C94
add r2, sp
ldr r0, [r2]
bl sub_80522A8
bl SendMessage
_08046B68:
movs r3, 0
mov r9, r3
@ -3528,7 +3528,7 @@ _08046BAA:
adds r4, r5
adds r4, 0x4
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08046C06
@ -3684,7 +3684,7 @@ sub_8046CE4:
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
adds r1, r0, 0
movs r2, 0
ldr r3, _08046D04
@ -3897,7 +3897,7 @@ _08046E1E:
ldr r0, _08046EF4
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08046EF8
ldr r1, [r0]
movs r0, 0
@ -3968,7 +3968,7 @@ _08046F2A:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08046F68
@ -4047,7 +4047,7 @@ _08046FBC:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08046FF4
@ -4112,7 +4112,7 @@ _08047038:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804706C
@ -4175,7 +4175,7 @@ _080470B0:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080470F4
@ -4659,7 +4659,7 @@ _08047462:
ldr r0, _080474C4
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _080474C8
ldr r1, [sp, 0x214]
bl sub_8045C08
@ -4712,7 +4712,7 @@ _080474E2:
ldr r0, _0804750C
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08047510
ldr r1, [sp, 0x214]
bl sub_8045BF8
@ -4801,7 +4801,7 @@ _08047596:
ldr r0, _080475C0
ldr r1, [r0]
mov r0, r9
bl sub_80522A8
bl SendMessage
_080475A8:
movs r3, 0x90
lsls r3, 2
@ -5162,7 +5162,7 @@ _0804786E:
ldr r0, _080478D4
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
lsls r0, r6, 24
cmp r0, 0
beq _080478DC
@ -5269,7 +5269,7 @@ _0804794C:
b _080479B0
_08047950:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
ldr r1, _08047980
movs r2, 0
ldrsh r1, [r1, r2]
@ -5380,13 +5380,13 @@ _08047A20:
beq _08047A3C
adds r0, r5, 0
movs r1, 0x2
bl sub_80718D8
bl HasIQSkill
lsls r0, 24
lsrs r0, 24
mov r8, r0
_08047A3C:
adds r0, r5, 0
bl sub_8070C60
bl CannotUseItems
lsls r0, 24
cmp r0, 0
beq _08047A4C
@ -5421,7 +5421,7 @@ _08047A76:
ldr r0, _08047AB4
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08047AB8
ldr r2, [r0]
adds r0, r4, 0

View File

@ -25,10 +25,10 @@ _08048542:
ldr r0, _08048560
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
adds r0, r4, 0
movs r1, 0x12
bl sub_80718D8
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08048568
@ -90,7 +90,7 @@ sub_80485B0:
mov r10, r2
ldr r4, [r1, 0x70]
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
ldr r1, _0804865C
movs r2, 0
ldrsh r1, [r1, r2]
@ -238,7 +238,7 @@ _080486EA:
bne _080486FC
adds r0, r4, 0
adds r1, r7, 0
bl sub_807A324
bl SendImmobilizeEndMessage
_080486FC:
add r0, sp, 0x18
str r0, [sp]
@ -310,7 +310,7 @@ _08048786:
bne _08048798
adds r0, r4, 0
adds r1, r5, 0
bl sub_807A324
bl SendImmobilizeEndMessage
_08048798:
add r0, sp, 0x18
str r0, [sp]
@ -603,7 +603,7 @@ _080489A2:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048A12
@ -660,7 +660,7 @@ _08048A12:
movs r1, 0x1
bl DrawFieldGiveItemMenu
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048A58
@ -741,7 +741,7 @@ _08048AB2:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048B4A
@ -820,7 +820,7 @@ _08048B4A:
movs r1, 0x1
bl DrawFieldGiveItemMenu
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048B8C
@ -892,7 +892,7 @@ _08048BD6:
ldr r4, [r0]
adds r0, r4, 0
str r2, [sp, 0x1C]
bl entityExists
bl EntityExists
lsls r0, 24
ldr r2, [sp, 0x1C]
cmp r0, 0
@ -946,7 +946,7 @@ _08048C3E:
movs r1, 0x1
bl DrawFieldGiveItemMenu
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08048C60
@ -1017,7 +1017,7 @@ _08048CD0:
bl sub_8063B54
_08048CE2:
adds r0, r6, 0
bl sub_8044C88
bl ResetAction
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
@ -1102,12 +1102,12 @@ _08048D78:
ldr r0, _08048DA8
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08048DAC
_08048D9A:
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
movs r0, 0
b _08048DB2
.align 2, 0
@ -1173,7 +1173,7 @@ sub_8048E04:
movs r3, 0
bl sub_8078B5C
movs r0, 0x5
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x4
bhi _08048E9E
lsls r0, 2
@ -1247,7 +1247,7 @@ sub_8048EB0:
push {lr}
ldr r1, _08048EC0
ldr r1, [r1]
bl sub_80522A8
bl SendMessage
pop {r0}
bx r0
.align 2, 0
@ -1259,7 +1259,7 @@ sub_8048EC4:
push {lr}
ldr r1, _08048ED4
ldr r1, [r1]
bl sub_80522A8
bl SendMessage
pop {r0}
bx r0
.align 2, 0
@ -1271,7 +1271,7 @@ sub_8048ED8:
push {lr}
ldr r1, _08048EE8
ldr r1, [r1]
bl sub_80522A8
bl SendMessage
pop {r0}
bx r0
.align 2, 0
@ -1283,7 +1283,7 @@ sub_8048EEC:
push {lr}
ldr r1, _08048EFC
ldr r1, [r1]
bl sub_80522A8
bl SendMessage
pop {r0}
bx r0
.align 2, 0
@ -1299,7 +1299,7 @@ sub_8048F00:
ldr r0, _08048F24
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
movs r0, 0x3C
movs r1, 0x46
bl sub_803E708
@ -5181,7 +5181,7 @@ _0804ADBE:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804ADDE
@ -5328,7 +5328,7 @@ _0804AEDE:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804AEFE
@ -5713,7 +5713,7 @@ _0804B200:
.4byte _0804B250
_0804B230:
movs r0, 0x2
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0x2
ldr r1, _0804B24C
movs r0, 0x1
@ -5727,7 +5727,7 @@ _0804B230:
_0804B24C: .4byte gUnknown_202F1AE
_0804B250:
movs r0, 0x2
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0x2
ldr r1, _0804B270
movs r0, 0x2
@ -5901,7 +5901,7 @@ _0804B398:
bl sub_80506F0
_0804B3AA:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
movs r4, 0
mov r3, r8
ldrb r3, [r3, 0x19]
@ -6577,12 +6577,12 @@ _0804B8B4:
mov r2, r8
subs r4, r2
adds r0, r4, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r10
subs r5, r6
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
ldr r5, _0804B9E4
add r5, sp
ldr r3, [r5]
@ -7188,12 +7188,12 @@ _0804BDD8:
mov r0, r8
subs r4, r0
adds r0, r4, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r9
subs r5, r6
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
ldr r2, _0804BEF0
add r2, sp
ldr r1, [r2]
@ -8435,10 +8435,10 @@ _0804C836:
cmp r7, 0x3F
bgt _0804C864
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
adds r6, r0, 0
adds r0, r4, 0
bl sub_8084100
bl DungeonRandomCapped
mov r8, r0
mov r0, r8
muls r0, r5
@ -8740,12 +8740,12 @@ _0804CA3C:
mov r0, r8
subs r4, r0
adds r0, r4, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r10
subs r5, r6
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
ldr r2, _0804CBD4
add r2, sp
ldr r1, [r2]
@ -8912,10 +8912,10 @@ _0804CC06:
b _0804D006
_0804CC0E:
ldr r0, [sp, 0x4]
bl sub_8084100
bl DungeonRandomCapped
mov r9, r0
ldr r0, [sp, 0x8]
bl sub_8084100
bl DungeonRandomCapped
mov r10, r0
lsls r0, 5
mov r2, r9
@ -8960,7 +8960,7 @@ _0804CC52:
bl sub_808411C
adds r6, r0, 0
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
lsls r0, 1
mov r8, r0
ldr r1, [sp, 0x8]
@ -9145,7 +9145,7 @@ _0804CDA2:
b _0804CFFC
_0804CDC8:
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
adds r0, 0x3
str r0, [sp, 0x10]
b _0804CFD4
@ -9354,11 +9354,11 @@ _0804CF16:
cmp r0, 0
bne _0804CFC0
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
adds r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
mov r8, r4
cmp r0, 0x31
bgt _0804CF96
@ -9619,7 +9619,7 @@ sub_804D154:
mov r8, r2
adds r4, r3, 0
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
adds r3, r0, 0
cmp r4, 0
bge _0804D17E
@ -9662,10 +9662,10 @@ _0804D1AC:
movs r6, 0x3F
_0804D1B0:
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
mov r1, sp
adds r2, r1, r4
ldrb r3, [r2]
@ -9780,7 +9780,7 @@ _0804D282:
movs r0, 0x64
str r1, [sp, 0x108]
str r2, [sp, 0x10C]
bl sub_8084100
bl DungeonRandomCapped
ldr r1, [sp, 0x108]
ldr r2, [sp, 0x10C]
cmp r0, 0x3B
@ -9935,12 +9935,12 @@ _0804D394:
adds r5, r0, 0
_0804D3A4:
subs r0, r4, r6
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r9
mov r1, r8
subs r0, r1, r5
bl sub_8084100
bl DungeonRandomCapped
ldr r2, [sp, 0x18]
adds r0, r2
mov r8, r0
@ -9991,7 +9991,7 @@ _0804D40C:
_0804D412:
movs r5, 0x1
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
movs r1, 0
cmp r0, 0x4F
bgt _0804D422
@ -10016,7 +10016,7 @@ _0804D43A:
cmp r4, 0
beq _0804D44E
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x31
ble _0804D466
movs r4, 0
@ -10224,10 +10224,10 @@ sub_804D5B0:
adds r5, r2, 0
adds r6, r3, 0
adds r0, r4, 0
bl sub_8084100
bl DungeonRandomCapped
mov r8, r0
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
str r0, [sp]
str r6, [sp, 0x4]
mov r0, r9
@ -10261,7 +10261,7 @@ sub_804D5F0:
ldrb r0, [r0, 0x5]
str r0, [sp, 0xC]
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
movs r1, 0
mov r10, r1
@ -10280,10 +10280,10 @@ _0804D620:
mov r8, r0
_0804D630:
movs r0, 0x8
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
cmp r4, 0x3
bgt _0804D644
adds r5, r0, 0
@ -10488,7 +10488,7 @@ _0804D796:
_0804D79C:
movs r0, 0x4
str r3, [sp, 0x1C]
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
movs r2, 0
mov r10, r2
@ -11088,7 +11088,7 @@ _0804DBDA:
b _0804E018
_0804DBEC:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
mov r2, r10
adds r2, 0x1
str r2, [sp, 0x3C]
@ -11133,7 +11133,7 @@ _0804DC34:
b _0804E00C
_0804DC3C:
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x1
bne _0804DC48
b _0804DD50
@ -11770,7 +11770,7 @@ _0804E0BE:
b _0804E302
_0804E0C6:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x3B
bgt _0804E0D2
b _0804E302
@ -11820,7 +11820,7 @@ _0804E11A:
str r1, [sp, 0x30]
_0804E120:
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
str r0, [sp, 0x1C]
cmp r0, 0x1
beq _0804E14A
@ -13304,7 +13304,7 @@ _0804EC06:
b _0804EED4
_0804EC0C:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r4, r0
bgt _0804EC18
b _0804EED4
@ -13324,10 +13324,10 @@ _0804EC20:
movs r5, 0xC7
_0804EC30:
movs r0, 0xF
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
movs r0, 0xF
bl sub_8084100
bl DungeonRandomCapped
lsls r4, 1
mov r1, sp
adds r2, r1, r4
@ -13345,10 +13345,10 @@ _0804EC30:
movs r5, 0xC7
_0804EC5C:
movs r0, 0xF
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
movs r0, 0xF
bl sub_8084100
bl DungeonRandomCapped
lsls r4, 1
adds r4, r6, r4
movs r1, 0
@ -13705,7 +13705,7 @@ sub_804EEE4:
b _0804F0C0
_0804EF04:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r4, r0
bgt _0804EF10
b _0804F0C0
@ -13801,10 +13801,10 @@ _0804EFA0:
movs r5, 0x3F
_0804EFB0:
adds r0, r6, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r6, 0
bl sub_8084100
bl DungeonRandomCapped
mov r3, sp
adds r2, r3, r4
ldrb r3, [r2]
@ -13967,7 +13967,7 @@ sub_804F0D0:
b _0804F266
_0804F0EE:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r4, r0
bgt _0804F0FA
b _0804F266
@ -14064,10 +14064,10 @@ _0804F18E:
mov r8, r7
_0804F1A0:
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
mov r1, sp
adds r2, r1, r4
ldrb r3, [r2]
@ -14475,7 +14475,7 @@ sub_804F494:
mov r10, r0
_0804F4BA:
movs r0, 0x4
bl sub_8084100
bl DungeonRandomCapped
adds r6, r0, 0
movs r7, 0
adds r0, r5, 0
@ -14745,7 +14745,7 @@ sub_804F694:
sub sp, 0x8
adds r7, r0, 0
movs r0, 0x6
bl sub_8084100
bl DungeonRandomCapped
subs r0, 0x1
cmp r0, 0x4
bls _0804F6B0
@ -14777,7 +14777,7 @@ _0804F6DE:
adds r0, r7, 0
bl sub_804F5D8
movs r0, 0x2
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0
beq _0804F78E
movs r5, 0
@ -15264,14 +15264,14 @@ _0804FAD4:
movs r5, 0
ldrsh r1, [r7, r5]
subs r0, r1
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
movs r1, 0x6
ldrsh r0, [r7, r1]
movs r2, 0x2
ldrsh r1, [r7, r2]
subs r0, r1
bl sub_8084100
bl DungeonRandomCapped
adds r2, r0, 0
adds r0, r4, r2
movs r5, 0x1
@ -15813,10 +15813,10 @@ sub_804FED0:
b _0804FEFA
_0804FEDA:
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r5, 0
bl sub_8084100
bl DungeonRandomCapped
lsls r4, 2
adds r4, r7
ldr r2, [r4]
@ -15930,7 +15930,7 @@ _0804FFAA:
mov r0, r8
cmp r0, 0
beq _08050038
bl sub_8084100
bl DungeonRandomCapped
lsls r0, 2
mov r1, sp
adds r4, r1, r0
@ -16064,7 +16064,7 @@ _080500BC:
mov r1, r8
bl sub_804FED0
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _080500FA
@ -16139,7 +16139,7 @@ _08050128:
mov r1, r8
bl sub_804FED0
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _0805018E
@ -16240,7 +16240,7 @@ _08050214:
mov r1, r8
bl sub_804FED0
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _08050294
@ -16265,7 +16265,7 @@ _08050254:
bl sub_8049590
adds r4, r0, 0
movs r0, 0x2
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0
beq _0805026C
ldrh r0, [r4, 0x4]
@ -16368,7 +16368,7 @@ _08050318:
mov r1, r8
bl sub_804FED0
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _08050356
@ -16478,7 +16478,7 @@ _080503E2:
cmp r2, 0
beq _08050410
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
lsls r0, 2
mov r1, sp
adds r2, r1, r0
@ -16633,7 +16633,7 @@ _0805051C:
mov r1, r8
bl sub_804FED0
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
cmp r7, 0
ble _0805055E
@ -16788,7 +16788,7 @@ _0805064E:
mov r1, r8
bl sub_804FED0
mov r0, r8
bl sub_8084100
bl DungeonRandomCapped
adds r5, r0, 0
cmp r7, 0
ble _0805068C
@ -16883,7 +16883,7 @@ sub_80506F0:
_08050708:
ldr r4, _08050738
movs r0, 0x8
bl sub_8084100
bl DungeonRandomCapped
lsls r0, 2
adds r0, r4
ldr r4, [r0]
@ -16892,7 +16892,7 @@ _08050708:
b _08050A7C
_0805071C:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x31
bgt _0805073C
movs r0, 0x1
@ -16913,7 +16913,7 @@ _0805073C:
str r1, [sp, 0x70]
_08050746:
movs r0, 0x32
bl sub_8084100
bl DungeonRandomCapped
adds r0, 0xA
str r0, [sp, 0x78]
movs r0, 0x2
@ -16926,7 +16926,7 @@ _08050746:
str r4, [sp, 0x98]
_08050762:
movs r0, 0x6
bl sub_8084100
bl DungeonRandomCapped
adds r0, 0x2
str r0, [sp, 0x68]
cmp r0, 0
@ -16993,11 +16993,11 @@ _080507DA:
str r1, [sp, 0x7C]
_080507DE:
movs r0, 0x7
bl sub_8084100
bl DungeonRandomCapped
subs r0, 0x3
str r0, [sp, 0x84]
movs r0, 0x7
bl sub_8084100
bl DungeonRandomCapped
subs r1, r0, 0x3
ldr r6, [sp, 0x84]
add r6, r9
@ -17314,7 +17314,7 @@ _08050A4E:
b _08050A6C
_08050A54:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
movs r2, 0x1
str r2, [sp, 0x6C]
cmp r0, 0x31
@ -17410,11 +17410,11 @@ _08050AEE:
movs r5, 0x4F
_08050AFE:
movs r0, 0x8
bl sub_8084100
bl DungeonRandomCapped
adds r4, r0, 0
adds r7, r4, 0x1
movs r0, 0x8
bl sub_8084100
bl DungeonRandomCapped
adds r2, r0, 0x1
lsls r0, r4, 2
adds r0, r4
@ -18150,11 +18150,11 @@ _08051062:
adds r5, r0, 0
_08051072:
subs r0, r4, r6
bl sub_8084100
bl DungeonRandomCapped
mov r2, r9
adds r4, r0, r2
subs r0, r7, r5
bl sub_8084100
bl DungeonRandomCapped
mov r3, r10
adds r7, r0, r3
adds r3, r4, r6
@ -18969,7 +18969,7 @@ _08051694:
adds r6, r4, 0
_080516B0:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x31
bgt _080516F4
ldr r4, [r6, 0x4]
@ -19048,7 +19048,7 @@ _08051734:
adds r6, r3, 0
_08051748:
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
cmp r0, 0x31
bgt _0805178C
ldr r4, [r6]
@ -19230,7 +19230,7 @@ _08051864:
movs r0, 0
ldrsh r4, [r2, r0]
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
ldr r3, [sp, 0x10]
cmp r4, r0
ble _080518BA
@ -19948,7 +19948,7 @@ sub_8051E7C:
ldr r0, _08051EB4
ldr r1, [r0]
mov r0, r9
bl sub_80522A8
bl SendMessage
b _080520F6
.align 2, 0
_08051EB4: .4byte gUnknown_80FDDF0
@ -20208,7 +20208,7 @@ _0805207A:
ldr r0, _080520E8
ldr r1, [r0]
mov r0, r9
bl sub_80522A8
bl SendMessage
movs r0, 0x14
movs r1, 0x3C
bl sub_803E708
@ -20229,7 +20229,7 @@ _080520EC:
ldr r0, _08052108
ldr r1, [r0]
mov r0, r9
bl sub_80522A8
bl SendMessage
_080520F6:
add sp, 0x14
pop {r3-r5}

View File

@ -1206,7 +1206,7 @@ sub_8052D44:
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@ -1214,7 +1214,7 @@ sub_8052D44:
ldr r0, _08052D6C
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, [r4, 0x70]
ldrh r0, [r0, 0x4]
strh r0, [r7]
@ -1228,7 +1228,7 @@ _08052D70:
strh r5, [r7]
_08052D7A:
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@ -1236,7 +1236,7 @@ _08052D7A:
ldr r0, _08052DA4
adds r1, r6, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, [r6, 0x70]
ldrh r0, [r0, 0x4]
strh r0, [r7, 0x2]
@ -2435,7 +2435,7 @@ sub_8053704:
bl _08055570
_08053724:
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08053734
@ -2671,7 +2671,7 @@ _080538DA:
bl sub_804954C
ldr r0, [r0, 0x10]
str r0, [sp, 0x38]
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080539DC
@ -2978,7 +2978,7 @@ _08053B90:
ldr r0, _08053C90
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08053C94
ldr r2, [r0]
adds r0, r7, 0
@ -3013,7 +3013,7 @@ _08053BC0:
ldr r0, _08053C90
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08053C98
ldr r2, [r0]
adds r0, r7, 0
@ -5662,7 +5662,7 @@ _080554C2:
cmp r0, 0
bne _080555A2
ldr r0, [sp, 0x20]
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080554E6
@ -5676,12 +5676,12 @@ _080554E6:
cmp r4, 0
bne _08055510
adds r0, r7, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055530
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055530
@ -5709,7 +5709,7 @@ _08055510:
strb r0, [r1]
_08055530:
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055548
@ -5758,7 +5758,7 @@ _08055570:
cmp r5, 0
beq _080555A2
adds r0, r7, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080555A2
@ -5770,7 +5770,7 @@ _080555A2:
cmp r4, 0
bne _08055604
adds r0, r7, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080555D6
@ -5789,7 +5789,7 @@ _080555A2:
bl sub_807D148
_080555D6:
adds r0, r7, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055604
@ -6081,7 +6081,7 @@ _08055826:
_08055834: .4byte gUnknown_80F9688
_08055838:
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055850
@ -6148,7 +6148,7 @@ sub_8055864:
b _080558D2
_080558BA:
adds r0, r7, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080558D0
@ -6363,7 +6363,7 @@ _08055A22:
bne _08055A58
ldr r0, _08055A50
adds r1, r5, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08055A54
b _08055A8A
.align 2, 0
@ -6376,7 +6376,7 @@ _08055A58:
ldr r0, _08055A6C
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08055A70
b _08055A8A
.align 2, 0
@ -6391,12 +6391,12 @@ _08055A74:
ldr r0, _08055A98
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08055A9C
_08055A8A:
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
movs r0, 0
b _08055DB4
.align 2, 0
@ -6545,7 +6545,7 @@ _08055BA0:
ldr r0, _08055C0C
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
movs r2, 0
_08055BBA:
cmp r2, 0
@ -6578,7 +6578,7 @@ _08055BBA:
ldr r0, _08055C1C
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
ldr r0, [sp, 0x28]
str r0, [sp]
add r1, sp, 0x8
@ -6632,7 +6632,7 @@ _08055C56:
ldr r0, _08055C74
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
b _08055C82
.align 2, 0
_08055C70: .4byte gUnknown_202F208
@ -6641,12 +6641,12 @@ _08055C78:
ldr r0, _08055DC4
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
_08055C82:
movs r0, 0x1
bl sub_804178C
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055CCE
@ -6668,7 +6668,7 @@ _08055C82:
_08055CB4:
mov r6, r8
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055CCE
@ -6679,7 +6679,7 @@ _08055CB4:
b _08055B30
_08055CCE:
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055D54
@ -6725,7 +6725,7 @@ _08055CDC:
ldr r0, _08055DD0
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
_08055D36:
ldr r1, [sp, 0x28]
str r1, [sp]
@ -6744,14 +6744,14 @@ _08055D4E:
ble _08055CDC
_08055D54:
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055DB2
adds r0, r5, 0
bl sub_8071DA4
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055DB2
@ -6762,7 +6762,7 @@ _08055D54:
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055DB2
@ -6808,7 +6808,7 @@ _08055DD8: .4byte gUnknown_80F4E70
sub_8055DDC:
push {r4-r7,lr}
adds r4, r0, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08055DEC
@ -6826,7 +6826,7 @@ _08055DEC:
ldr r0, _08055F68
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
bl sub_80769CC
@ -6839,7 +6839,7 @@ _08055E10:
ldr r0, _08055F6C
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
bl sub_80769CC
@ -6852,7 +6852,7 @@ _08055E2C:
ldr r0, _08055F70
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
bl sub_80769CC
@ -6865,7 +6865,7 @@ _08055E48:
ldr r0, _08055F74
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
@ -6879,7 +6879,7 @@ _08055E66:
ldr r0, _08055F78
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
@ -6893,7 +6893,7 @@ _08055E84:
ldr r0, _08055F7C
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
@ -6907,7 +6907,7 @@ _08055EA2:
ldr r0, _08055F80
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
@ -6921,7 +6921,7 @@ _08055EC0:
ldr r0, _08055F84
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
ldr r1, _08055F88
adds r0, r4, 0
movs r2, 0x1
@ -6941,7 +6941,7 @@ _08055EEA:
ldr r0, _08055F8C
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
@ -6957,7 +6957,7 @@ _08055F0C:
ldr r0, _08055F90
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
@ -6973,11 +6973,11 @@ _08055F2C:
ldr r0, _08055F94
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _08055F98
ldr r1, [r0]
adds r0, r4, 0
bl sub_80522A8
bl SendMessage
adds r0, r4, 0
bl sub_80428A0
ldr r0, _08055F9C
@ -7033,7 +7033,7 @@ sub_8055FA0:
cmp r1, r0
bne _08056010
movs r0, 0x69
bl sub_8084100
bl DungeonRandomCapped
ldr r1, _08056004
str r0, [r1]
add r4, sp, 0x110
@ -7229,10 +7229,10 @@ _08056156:
ldr r0, _08056198
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
adds r0, r5, 0
mov r1, r8
bl sub_80522A8
bl SendMessage
movs r0, 0xA
movs r1, 0x3F
bl sub_803E708
@ -7240,7 +7240,7 @@ _08056156:
_08056188:
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
_08056190:
movs r0, 0
b _08056446
@ -7264,7 +7264,7 @@ _080561A0:
bl sub_80928C0
adds r0, r5, 0
mov r1, r8
bl sub_80522A8
bl SendMessage
movs r0, 0xA
movs r1, 0x3F
bl sub_803E708
@ -7283,14 +7283,14 @@ _080561E0:
bl sub_8090DC4
adds r0, r5, 0
mov r1, r8
bl sub_80522A8
bl SendMessage
movs r0, 0xA
movs r1, 0x3F
bl sub_803E708
ldr r0, _08056210
ldr r1, [r0]
adds r0, r5, 0
bl sub_80522A8
bl SendMessage
b _08056190
.align 2, 0
_0805620C: .4byte gUnknown_202DE58
@ -7343,7 +7343,7 @@ _08056278: .4byte gUnknown_202F220
_0805627C: .4byte 0x00000153
_08056280:
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _0805628E
@ -7393,7 +7393,7 @@ _080562CE:
bne _080562F4
ldr r4, [r5, 0x70]
movs r0, 0x8
bl sub_8084100
bl DungeonRandomCapped
adds r4, 0x46
strb r0, [r4]
adds r0, r5, 0
@ -7498,7 +7498,7 @@ _080563A8:
bl sub_8053704
_080563B8:
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056400
@ -7539,7 +7539,7 @@ _08056400:
beq _08056418
adds r0, r5, 0
adds r1, r5, 0
bl sub_807A324
bl SendImmobilizeEndMessage
adds r0, r5, 0
adds r1, r5, 0
bl sub_807A6C8
@ -7549,7 +7549,7 @@ _08056418:
cmp r0, 0
beq _08056444
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056444
@ -8464,7 +8464,7 @@ sub_8056B34:
bl sub_8092BD8
adds r5, r0, 0
movs r0, 0x64
bl sub_8084100
bl DungeonRandomCapped
str r0, [sp]
ldr r0, [r7, 0x70]
mov r9, r0
@ -8483,7 +8483,7 @@ _08056B70:
bne _08056B8A
adds r0, r7, 0
movs r1, 0x4
bl sub_80718D8
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08056B8A
@ -8516,7 +8516,7 @@ _08056BA2:
_08056BB6:
adds r0, r6, 0
movs r1, 0x5
bl sub_80718D8
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08056BCA
@ -8720,7 +8720,7 @@ _08056D2E:
str r1, [sp, 0x14]
adds r0, r5, 0
movs r1, 0x7
bl sub_80718D8
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08056D44
@ -8861,7 +8861,7 @@ _08056E3A:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056E94
@ -8962,7 +8962,7 @@ _08056F06:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056F38
@ -9191,7 +9191,7 @@ sub_80570AC:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _080570C2
@ -9237,7 +9237,7 @@ sub_80570F4:
adds r4, r0, 0
lsls r1, 24
lsrs r7, r1, 24
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0805713C
@ -9296,7 +9296,7 @@ _08057154:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
adds r5, 0x1
mov r8, r5
@ -9345,7 +9345,7 @@ _080571B8:
cmp r7, 0
beq _080571DC
adds r0, r7, 0
bl sub_8084100
bl DungeonRandomCapped
lsls r0, 2
add r0, sp
ldr r0, [r0]
@ -9457,12 +9457,12 @@ sub_805727C:
cmp r0, 0
bne _080572FC
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080572FC
adds r0, r5, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080572FC
@ -9525,7 +9525,7 @@ sub_8057308:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _0805731C
@ -9890,7 +9890,7 @@ sub_8057588:
adds r4, r0, 0
lsls r1, 24
lsrs r6, r1, 24
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080575F8

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

30140
asm/code_8075BA4.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -159,7 +159,7 @@ _0808538E:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080853BE
@ -290,7 +290,7 @@ _08085490:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080854C0
@ -336,7 +336,7 @@ _080854E6:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08085504
@ -481,7 +481,7 @@ _080855EC:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08085618
@ -527,7 +527,7 @@ _08085642:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0808566C
@ -565,7 +565,7 @@ _08085688:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080856B8
@ -687,7 +687,7 @@ _08085770:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0808579E
@ -734,7 +734,7 @@ _080857CA:
adds r0, r1
ldr r6, [r0]
adds r0, r6, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08085840
@ -921,7 +921,7 @@ _0808593C:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08085982
@ -960,7 +960,7 @@ _08085990:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080859E2
@ -1014,7 +1014,7 @@ _080859FC:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08085A42
@ -1045,8 +1045,8 @@ _08085A42:
bx r0
thumb_func_end sub_80859F0
thumb_func_start sub_8085A50
sub_8085A50:
thumb_func_start IsMovingClient
IsMovingClient:
push {lr}
ldr r0, [r0, 0x70]
adds r0, 0xA4
@ -1107,7 +1107,7 @@ _08085B04:
_08085B06:
pop {r1}
bx r1
thumb_func_end sub_8085A50
thumb_func_end IsMovingClient
thumb_func_start sub_8085B0C
sub_8085B0C:
@ -1834,7 +1834,7 @@ _080860D0:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08086114

View File

@ -371,7 +371,7 @@ _08086F6A:
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl entityExists
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08086F8E

View File

@ -132,7 +132,7 @@ _0808B6D2:
cmp r5, 0
bge _0808B6D2
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
ldrh r1, [r6, 0x4]
adds r1, r0
subs r1, 0x1
@ -144,7 +144,7 @@ _0808B6D2:
orrs r0, r1
str r0, [sp, 0x6C]
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
ldrh r2, [r6, 0x6]
adds r2, r0
subs r2, 0x1
@ -216,7 +216,7 @@ _0808B77E:
cmp r5, 0
bge _0808B77E
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
ldrh r1, [r6, 0x4]
adds r1, r0
subs r1, 0x1
@ -228,7 +228,7 @@ _0808B77E:
orrs r0, r1
str r0, [sp, 0x70]
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
ldrh r2, [r6, 0x6]
adds r2, r0
subs r2, 0x1
@ -325,7 +325,7 @@ _0808B87C:
adds r1, r0, 0
ldr r0, _0808BA3C
movs r2, 0
bl sub_8045B94
bl SetMessageArgument
ldr r0, _0808BA40
adds r1, r4, 0
movs r2, 0
@ -354,7 +354,7 @@ _0808B8EC:
movs r5, 0x3
_0808B8F4:
movs r0, 0x8
bl sub_8084100
bl DungeonRandomCapped
ldr r2, _0808BA4C
adds r0, r2
ldrb r1, [r0]
@ -366,7 +366,7 @@ _0808B8F4:
cmp r5, 0
bge _0808B8F4
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
ldrh r1, [r6, 0x4]
adds r1, r0
subs r1, 0x1
@ -378,7 +378,7 @@ _0808B8F4:
orrs r0, r1
str r0, [sp, 0x74]
movs r0, 0x3
bl sub_8084100
bl DungeonRandomCapped
ldrh r2, [r6, 0x6]
adds r2, r0
subs r2, 0x1

View File

@ -3,6 +3,7 @@
enum DungeonAction
{
DUNGEON_ACTION_NONE = 0x0,
DUNGEON_ACTION_WAIT = 0x1,
DUNGEON_ACTION_WALK = 0x2,
// Switching between Pokémon in the moves menu.

View File

@ -117,6 +117,7 @@ enum VolatileStatus
enum TargetingDecoy
{
TARGETING_DECOY_NONE = 0,
TARGETING_DECOY_TEAM = 1,
TARGETING_DECOY_WILD = 2
};

View File

@ -1,9 +0,0 @@
#ifndef GUARD_DUNGEON_ENGINE_H
#define GUARD_DUNGEON_ENGINE_H
#include "dungeon_entity.h"
// 0x8075990
void decideAction(struct DungeonEntity *pokemon);
#endif

View File

@ -10,9 +10,8 @@ struct DungeonEntityData
// Pokemon: MovementFlag
// Items: ItemFlag
// Traps: TrapType
/* 0x0 */ u8 flags;
/* 0x1 */ bool8 moving;
/* 0x2 */ u16 entityID; // Pokémon species or item ID.
/* 0x0 */ u16 flags;
/* 0x2 */ s16 entityID; // Pokémon species or item ID.
// Everything from here on only applies to Pokémon.
/* 0x4 */ u16 transformSpecies; // Shows a different Pokémon when using Transform.
/* 0x6 */ bool8 isEnemy;
@ -97,7 +96,7 @@ struct DungeonEntityData
/* 0x90 */ u8 IQSkillsEnabled[4];
/* 0x94 */ u8 tactics;
u8 fill95[0xA4 - 0x95];
/* 0xA4 */ u8 clientFlags;
/* 0xA4 */ u8 clientType;
u8 fillA5[0xA8 - 0xA5];
// Statuses are split into groups based on which ones can't overlap.
// See status.h for which statuses are in each group.
@ -290,6 +289,7 @@ enum EntityType
enum MovementFlag
{
MOVEMENT_FLAG_SWAPPED_PLACES = 1 << 5,
MOVEMENT_FLAG_MOVING = 1 << 9,
MOVEMENT_FLAG_SWAPPED_PLACES_PETRIFIED = 1 << 15 // Set if the Pokémon is petrified and the leader cures them by swapping places.
};
@ -312,10 +312,11 @@ enum MovementAction
MOVEMENT_ACTION_TAKE_ITEM = 7
};
enum ClientFlag
enum ClientType
{
CLIENT_FLAGS_CLIENT = 1, // Used for mission clients that need rescuing.
CLIENT_FLAGS_DONT_MOVE = 3 // Used for Diglett in the Skarmory boss fight.
CLIENT_TYPE_NONE = 0,
CLIENT_TYPE_CLIENT = 1, // Used for mission clients that need rescuing.
CLIENT_TYPE_DONT_MOVE = 3 // Used for Diglett in the Skarmory boss fight.
};
enum VisualFlag

View File

@ -1,13 +1,16 @@
#ifndef GUARD_DUNGEON_DATA_H
#define GUARD_DUNGEON_DATA_H
#define DUNGEON_MAX_SIZE_X 55
#define DUNGEON_MAX_SIZE_Y 31
#include "constants/species.h"
#include "dungeon_entity.h"
#include "global.h"
#include "map.h"
#define DUNGEON_MAX_SIZE_X 55
#define DUNGEON_MAX_SIZE_Y 31
#define DUNGEON_MAX_WILD_POKEMON 16
#define DUNGEON_MAX_POKEMON MAX_TEAM_MEMBERS + DUNGEON_MAX_WILD_POKEMON
struct DungeonGlobalData
{
u8 unk0;
@ -73,8 +76,8 @@ struct DungeonGlobalData
u8 unk1356C;
u8 fill1356D[0x1357C - 0x1356D];
/* 0x1357C */ struct DungeonEntity *teamPokemon[MAX_TEAM_MEMBERS];
/* 0x1358C */ struct DungeonEntity *wildPokemon[0x10];
/* 0x135CC */ struct DungeonEntity *allPokemon[0x14]; // Contains both team and wild Pokémon
/* 0x1358C */ struct DungeonEntity *wildPokemon[DUNGEON_MAX_WILD_POKEMON];
/* 0x135CC */ struct DungeonEntity *allPokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon
/* 0x1361C */ struct DungeonEntity *clientPokemon[2]; // Not sure how large this array is.
u8 fill13624[0x181F8 - 0x13624];
/* 0x181F8 */ struct DungeonEntity *leader; // Pointer to the team leader.
@ -86,7 +89,7 @@ struct DungeonGlobalData
/* 0x1820A */ bool8 displayBlinker; // Blacks out the screen when the player has the Blinker status.
u8 unk1820B;
u32 unk1820C;
/* 0x18210 */ bool8 displayCrossEyed; // Displays Subsitute and flower sprites when the player has the Cross-Eyed status.
/* 0x18210 */ bool8 displayCrossEyed; // Displays Substitute and flower sprites when the player has the Cross-Eyed status.
u8 fill18211[0x18217 - 0x18211];
u8 unk18217;
};

View File

@ -0,0 +1,9 @@
#ifndef GUARD_DUNGEON_MOVEMENT_H
#define GUARD_DUNGEON_MOVEMENT_H
#include "dungeon_entity.h"
// 0x75990
void DecideAction(struct DungeonEntity *pokemon);
#endif

9
include/dungeon_util.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef GUARD_DUNGEON_UTIL_H
#define GUARD_DUNGEON_UTIL_H
#include "dungeon_entity.h"
// 0x450E0
bool8 EntityExists(struct DungeonEntity *pokemon);
#endif

View File

@ -182,7 +182,7 @@ SECTIONS {
asm/code_8041AD0.o(.text);
src/code_80428A0.o(.text);
asm/code_80428A0.o(.text);
src/dungeon_engine.o(.text);
src/dungeon_util.o(.text);
asm/code_80450F8.o(.text);
src/code_8048480.o(.text);
asm/code_8048480.o(.text);
@ -191,6 +191,8 @@ SECTIONS {
src/code_8057824.o(.text);
asm/code_8057824.o(.text);
asm/code_807001C.o(.text);
src/dungeon_movement.o(.text);
asm/code_8075BA4.o(.text);
src/code_80848F0.o(.text);
asm/code_80848F0.o(.text);
src/code_80869E4.o(.text);

View File

@ -21,7 +21,7 @@ extern void sub_8011860(void);
extern void sub_803F580(u32);
extern void sub_8049ED4();
extern void sub_8040A84();
extern void sub_80522A8(u32, const char *);
extern void SendMessage(u32, const char *);
extern const char *gUnknown_80FD040; // It became brighter on the floor
@ -56,7 +56,7 @@ void sub_804002C(u32 param_1)
sub_803F580(0);
sub_8049ED4();
sub_8040A84();
sub_80522A8(param_1, gUnknown_80FD040);
SendMessage(param_1, gUnknown_80FD040);
}
void sub_8040094(u8 r0)

View File

@ -18,7 +18,7 @@ extern void sub_8072008(struct DungeonEntity *r0, struct DungeonEntity *r1, u32
extern void sub_8076D10(struct DungeonEntity *r0, struct DungeonEntity *r1);
extern void LevelDownTarget(struct DungeonEntity *r0, struct DungeonEntity *r1, u32 r2);
extern void sub_8045B94(u8 *r0, struct DungeonEntity *r1, u32);
extern void SetMessageArgument(u8 *r0, struct DungeonEntity *r1, u32);
extern void sub_807A290(struct DungeonEntity *r0, struct DungeonEntity *r1);
extern void sub_80522F4(struct DungeonEntity *r0, struct DungeonEntity *r1, u32);
extern void RestoreVisionTarget(struct DungeonEntity *r0, struct DungeonEntity *r1);
@ -140,7 +140,7 @@ void sub_80484E8(struct DungeonEntity *r0, struct DungeonEntity *r1)
sub_807A290(r0, r1);
else
{
sub_8045B94(gAvailablePokemonNames, r1, 0);
SetMessageArgument(gAvailablePokemonNames, r1, 0);
// Pointer to "But nothing happened!"
sub_80522F4(r0, r1, gUnknown_80FB580);
}

View File

@ -11,7 +11,7 @@ void sub_805229C(void)
return sub_80526D0(0x50);
}
void sub_80522A8(u32 r0, u32 r1)
void SendMessage(u32 r0, u32 r1)
{
if (sub_8045888(r0) != 0){
sub_80523A8(r0, r1, 1);

View File

@ -94,7 +94,7 @@ extern void sub_8085918(struct DungeonEntity *, u32);
extern void sub_806CE68(struct DungeonEntity *r0, u32);
extern void sub_8052910(u32 *);
extern void sub_803E708(u32, u32);
extern u8 entityExists(struct DungeonEntity *);
extern u8 EntityExists(struct DungeonEntity *);
extern u8 HasRecruitedMon(u32);
extern u8 sub_806FD18(struct DungeonEntity *);
extern u8 sub_8083E74(u32);
@ -130,7 +130,7 @@ void sub_808C02C();
extern void sub_80861B8(struct DungeonEntity *, u32, u32);
void nullsub_99();
extern u32 sub_8084100(s32);
extern u32 DungeonRandomCapped(s32);
extern bool8 *gFriendAreas;
extern void sub_8049884();
@ -271,7 +271,7 @@ u8 JirachiFriendAreaSearch(void)
}
else {
// Randomly pick 1
friendAreaIndex = sub_8084100(numUnlockableAreas);
friendAreaIndex = DungeonRandomCapped(numUnlockableAreas);
return friendAreas[friendAreaIndex];
}
}
@ -1102,7 +1102,7 @@ void sub_808C948(struct DungeonEntity *param_1, u8 param_2)
flag = FALSE;
for(iVar3 = 0; iVar3 < 0x10; iVar3++){
iVar2 = gDungeonGlobalData->wildPokemon[iVar3];
if ((iVar2 != param_1) && (entityExists(iVar2) != 0)) {
if ((iVar2 != param_1) && (EntityExists(iVar2) != 0)) {
flag = TRUE;
break;
}

View File

@ -254,7 +254,7 @@ extern void sub_806CE68(struct DungeonEntity *, u32);
extern void sub_8052D44(u8 *, struct DungeonEntity *, struct DungeonEntity *);
extern void sub_8097FD0(u32);
extern void sub_8045B94(u8 *, struct DungeonEntity *, u32);
extern void SetMessageArgument(u8 *, struct DungeonEntity *, u32);
extern struct DungeonEntity *sub_8083600();
extern void sub_80421C0(struct DungeonEntity *, u32);
extern void sub_8046D20();
@ -313,7 +313,7 @@ void sub_808919C();
void sub_8088D30(void);
extern void sub_8083F14();
extern u8 entityExists(struct DungeonEntity *);
extern u8 EntityExists(struct DungeonEntity *);
extern u8 sub_8086AE4(u32);
@ -1985,7 +1985,7 @@ void sub_8089788(struct DungeonEntity *param_1, u8 param_2, s32 param_3)
for(iVar3 = 0; iVar3 < 0x10; iVar3++)
{
iVar2 = gDungeonGlobalData->wildPokemon[iVar3];
if ((entityExists(iVar2) != '\0') && (iVar2 != param_1) && (iVar2->entityData->clientFlags == param_2)) {
if ((EntityExists(iVar2) != '\0') && (iVar2 != param_1) && (iVar2->entityData->clientType == param_2)) {
return;
}
}
@ -3168,7 +3168,7 @@ void sub_808AFB0(char param_1)
sub_8052D44(auStack12,uVar3,0);
if ((sub_8098100(0x22) == 0) && (param_1 == 0x2E) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ID_ROCK_PART) != 0)) {
sub_8097FD0(0x1d);
sub_8045B94(gAvailablePokemonNames,sub_8083600(),0);
SetMessageArgument(gAvailablePokemonNames,sub_8083600(),0);
// $m0 obatined the Rock Part that Regirock was guarding
sub_8052910(&gUnknown_81050B4);
sub_80421C0(0,0xd4);
@ -3186,7 +3186,7 @@ void sub_808B030(char param_1)
sub_8052D44(auStack12,uVar3,0);
if ((sub_8098100(0x22) == 0) && (param_1 == 0x2F) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ID_ICE_PART) != 0)) {
sub_8097FD0(0x1d);
sub_8045B94(gAvailablePokemonNames,sub_8083600(),0);
SetMessageArgument(gAvailablePokemonNames,sub_8083600(),0);
// $m0 obatined the Ice Part that Regice was guarding
sub_8052910(&gUnknown_810517C);
sub_80421C0(0,0xd4);
@ -3204,7 +3204,7 @@ void sub_808B0B0(char param_1)
sub_8052D44(auStack12,uVar3,0);
if ((sub_8098100(0x22) == 0) && (param_1 == 0x30) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ID_STEEL_PART) != 0)) {
sub_8097FD0(0x1d);
sub_8045B94(gAvailablePokemonNames, sub_8083600(), 0);
SetMessageArgument(gAvailablePokemonNames, sub_8083600(), 0);
// $m0 obatined the Steel Part that Registeel was guarding
sub_8052910(&gUnknown_8105244);
sub_80421C0(0,0xd4);

149
src/dungeon_movement.c Normal file
View File

@ -0,0 +1,149 @@
#include "global.h"
#include "dungeon_movement.h"
#include "constants/dungeon_action.h"
#include "constants/iq_skill.h"
#include "constants/status.h"
#include "dungeon_global_data.h"
#include "map.h"
extern char gAvailablePokemonNames[];
extern char *gPtrCouldntBeUsedMessage;
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*);
extern bool8 HasStatusAffectingActions(struct DungeonEntity*);
extern bool8 EntityExists(struct DungeonEntity*);
extern bool8 CanSee(struct DungeonEntity*, struct DungeonEntity*);
extern void ResetAction(u16*);
extern void SetWalkAction(u16*, s16);
extern s32 DungeonRandomCapped(s32);
extern bool8 HasIQSkill(struct DungeonEntity*, u8);
extern void DecideAttack(struct DungeonEntity*);
extern bool8 GetIsMoving(s16);
extern void MoveIfPossible(struct DungeonEntity*, bool8);
void DecideAction(struct DungeonEntity *pokemon)
{
struct DungeonEntityData *pokemonData = pokemon->entityData;
if ((pokemonData->flags & MOVEMENT_FLAG_SWAPPED_PLACES_PETRIFIED) != 0)
{
if (pokemonData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED)
{
SendImmobilizeEndMessage(pokemon, pokemon);
}
}
else
{
pokemonData->targetingDecoy = TARGETING_DECOY_NONE;
if (pokemonData->clientType == CLIENT_TYPE_NONE || IsMovingClient(pokemon))
{
if (pokemonData->clientType != CLIENT_TYPE_CLIENT && pokemonData->useHeldItem)
{
if (CannotUseItems(pokemon))
{
pokemonData->useHeldItem = FALSE;
SetMessageArgument(gAvailablePokemonNames, pokemon, 0);
SendMessage(pokemon, gPtrCouldntBeUsedMessage);
return;
}
DecideUseItem(pokemon);
if (pokemonData->action != DUNGEON_ACTION_NONE)
{
return;
}
}
if (!HasStatusAffectingActions(pokemon))
{
if (gDungeonGlobalData->decoyActive)
{
s32 i;
struct DungeonEntity *target;
for (i = 0; i < DUNGEON_MAX_POKEMON; i++)
{
target = gDungeonGlobalData->allPokemon[i];
if (EntityExists(target) &&
target->entityData->waitingStatus == WAITING_STATUS_DECOY &&
CanSee(pokemon, target))
{
bool8 enemyDecoy = target->entityData->enemyDecoy;
u8 targetingDecoy = TARGETING_DECOY_TEAM;
if (enemyDecoy)
{
targetingDecoy = TARGETING_DECOY_WILD;
}
pokemonData->targetingDecoy = targetingDecoy;
break;
}
}
}
ResetAction(&pokemonData->action);
if (pokemonData->clientType == CLIENT_TYPE_CLIENT)
{
SetWalkAction(&pokemonData->action, pokemonData->entityID);
pokemonData->facingDir = DungeonRandomCapped(8);
pokemonData->targetPositionX = pokemon->posWorldX;
pokemonData->targetPositionY = pokemon->posWorldY - 1;
}
else
{
DecideUseItem(pokemon);
if (pokemonData->action == DUNGEON_ACTION_NONE)
{
if (!HasIQSkill(pokemon, IQ_SKILL_DEDICATED_TRAVELER))
{
DecideAttack(pokemon);
if (pokemonData->action != DUNGEON_ACTION_NONE)
{
return;
}
if (pokemonData->volatileStatus == VOLATILE_STATUS_CONFUSED)
{
SetWalkAction(&pokemonData->action, pokemonData->entityID);
}
else
{
if (!GetIsMoving(pokemonData->entityID))
{
return;
}
MoveIfPossible(pokemon, TRUE);
}
}
else
{
if (pokemonData->volatileStatus == VOLATILE_STATUS_CONFUSED)
{
SetWalkAction(&pokemonData->action, pokemonData->entityID);
}
else
{
if (GetIsMoving(pokemonData->entityID))
{
MoveIfPossible(pokemon, TRUE);
}
if (pokemonData->action > DUNGEON_ACTION_WAIT)
{
return;
}
DecideAttack(pokemon);
if (pokemonData->action <= DUNGEON_ACTION_WAIT)
{
return;
}
pokemonData->notAdjacentToTarget = FALSE;
pokemonData->movingIntoTarget = FALSE;
pokemonData->waiting = FALSE;
}
}
}
}
}
}
}
}

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "dungeon_engine.h"
#include "dungeon_util.h"
bool8 entityExists(struct DungeonEntity *entity)
bool8 EntityExists(struct DungeonEntity *entity)
{
if (!entity)
{