diff options
-rw-r--r-- | asm/code_803D110.s | 4 | ||||
-rw-r--r-- | asm/code_8040094.s | 16 | ||||
-rw-r--r-- | asm/code_80428A0.s | 12 | ||||
-rw-r--r-- | asm/code_80450F8.s | 66 | ||||
-rw-r--r-- | asm/code_8048480.s | 252 | ||||
-rw-r--r-- | asm/code_80521D0.s | 24 | ||||
-rw-r--r-- | asm/code_8057824.s | 186 | ||||
-rw-r--r-- | asm/code_807001C.s | 24 | ||||
-rw-r--r-- | asm/code_8070D04.s | 40 | ||||
-rw-r--r-- | asm/code_80718D8.s | 4416 | ||||
-rw-r--r-- | asm/code_80739DC.s | 3956 | ||||
-rw-r--r-- | asm/code_8075BA4.s | 192 | ||||
-rw-r--r-- | asm/code_80848F0.s | 2 | ||||
-rw-r--r-- | asm/code_80983D8.s | 6 | ||||
-rw-r--r-- | asm/jirachi_wish.s | 2 | ||||
-rw-r--r-- | include/constants/direction.h | 5 | ||||
-rw-r--r-- | include/dungeon_ai_items.h | 9 | ||||
-rw-r--r-- | include/dungeon_entity.h | 14 | ||||
-rw-r--r-- | include/item.h | 9 | ||||
-rwxr-xr-x | ld_script.txt | 2 | ||||
-rw-r--r-- | src/code_80983D8.c | 4 | ||||
-rw-r--r-- | src/dungeon_ai_items.c | 244 | ||||
-rw-r--r-- | src/items.c | 2 | ||||
-rw-r--r-- | sym_ewram.txt | 4 | ||||
-rw-r--r-- | sym_ewram2.txt | 2 |
25 files changed, 4653 insertions, 4840 deletions
diff --git a/asm/code_803D110.s b/asm/code_803D110.s index 656ca78..7dfdfba 100644 --- a/asm/code_803D110.s +++ b/asm/code_803D110.s @@ -4953,7 +4953,7 @@ sub_803F7BC: ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] ldr r2, _0803F808 adds r0, r4, r2 @@ -5236,7 +5236,7 @@ sub_803F9CC: cmp r4, 0 beq _0803FA08 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0803FA08 movs r5, 0x1 diff --git a/asm/code_8040094.s b/asm/code_8040094.s index 65494a2..4df6052 100644 --- a/asm/code_8040094.s +++ b/asm/code_8040094.s @@ -232,7 +232,7 @@ _080402FC: _08040302: mov r0, r8 adds r1, r3, 0 - bl sub_804954C + bl GetMapTileAtPosition mov r9, r0 ldrh r0, [r0] movs r5, 0x3 @@ -326,7 +326,7 @@ _080403B8: cmp r4, 0 beq _0804045E adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType adds r1, r0, 0 ldr r0, _08040404 ldrb r0, [r0] @@ -410,7 +410,7 @@ _0804045E: cmp r4, 0 beq _08040500 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType adds r5, r0, 0 cmp r7, 0 bne _0804049E @@ -553,7 +553,7 @@ _0804056C: adds r1, r3, 0 adds r1, 0x1 mov r0, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -567,7 +567,7 @@ _0804058A: adds r1, r5, 0 subs r1, 0x1 mov r0, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -583,7 +583,7 @@ _080405AA: mov r0, r8 adds r0, 0x1 ldr r1, [sp] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -598,7 +598,7 @@ _080405CA: ble _080405E8 subs r0, 0x1 ldr r1, [sp] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -2457,7 +2457,7 @@ sub_804143C: cmp r0, 0 beq _080414A4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080414A4 ldr r1, [r4, 0x70] diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index 11aae2e..54c5963 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -2418,7 +2418,7 @@ _08043E6E: cmp r0, 0 beq _08043EA0 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _08043EA0 adds r0, r4, 0 @@ -4197,14 +4197,14 @@ ResetAction: bx lr thumb_func_end ResetAction - thumb_func_start sub_8044C94 -sub_8044C94: + thumb_func_start SetAction +SetAction: movs r2, 0 strh r1, [r0] strb r2, [r0, 0x4] strb r2, [r0, 0xC] bx lr - thumb_func_end sub_8044C94 + thumb_func_end SetAction thumb_func_start SetWalkAction SetWalkAction: @@ -4258,9 +4258,9 @@ _08044CEC: ldrsh r0, [r2, r1] movs r3, 0x6 ldrsh r1, [r2, r3] - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x14] - bl sub_8045108 + bl GetItemData b _08044D34 _08044D06: cmp r0, 0x81 diff --git a/asm/code_80450F8.s b/asm/code_80450F8.s index 3040a44..cf230c1 100644 --- a/asm/code_80450F8.s +++ b/asm/code_80450F8.s @@ -5,11 +5,11 @@ .text - thumb_func_start sub_80450F8 -sub_80450F8: + thumb_func_start GetEntityType +GetEntityType: ldr r0, [r0] bx lr - thumb_func_end sub_80450F8 + thumb_func_end GetEntityType thumb_func_start sub_80450FC sub_80450FC: @@ -24,11 +24,11 @@ sub_8045104: bx lr thumb_func_end sub_8045104 - thumb_func_start sub_8045108 -sub_8045108: + thumb_func_start GetItemData +GetItemData: ldr r0, [r0, 0x70] bx lr - thumb_func_end sub_8045108 + thumb_func_end GetItemData thumb_func_start sub_804510C sub_804510C: @@ -50,7 +50,7 @@ sub_8045114: movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 - bl sub_804954C + bl GetMapTileAtPosition pop {r1} bx r1 thumb_func_end sub_8045114 @@ -965,7 +965,7 @@ sub_80457DC: sub_8045804: push {r4-r6,lr} adds r4, r0, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _0804581C cmp r0, 0x1 @@ -1078,7 +1078,7 @@ _080458B4: ldr r0, _080458FC adds r5, r2, r0 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x5 bhi _08045984 lsls r0, 2 @@ -1458,7 +1458,7 @@ SetMessageArgument: adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 beq _08045BD2 cmp r0, 0x2 @@ -1646,7 +1646,7 @@ _08045CEE: _08045CF6: adds r0, r5, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r0, [r2] movs r3, 0x80 @@ -1762,20 +1762,20 @@ sub_8045DB4: ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x14] cmp r4, 0 bne _08045DE8 b _080460E0 _08045DE8: adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 beq _08045DF4 b _080460E0 _08045DF4: adds r0, r4, 0 - bl sub_8045108 + bl GetItemData adds r5, r0, 0 ldr r0, [sp, 0xAC] adds r0, 0x48 @@ -2270,7 +2270,7 @@ sub_80461C8: cmp r5, 0 beq _080461EE adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 beq _080461F2 _080461EE: @@ -2278,7 +2278,7 @@ _080461EE: b _08046284 _080461F2: adds r0, r5, 0 - bl sub_8045108 + bl GetItemData adds r4, r0, 0 ldrh r1, [r6] movs r0, 0x20 @@ -2407,7 +2407,7 @@ _080462E4: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] movs r1, 0x3 ands r1, r0 @@ -2712,14 +2712,14 @@ sub_804652C: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x14] movs r3, 0 str r3, [sp, 0xC] cmp r0, 0 beq _0804658C - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0804658C adds r4, r5, 0x4 @@ -2779,7 +2779,7 @@ _080465A8: movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldrh r1, [r4] movs r6, 0x3 @@ -2850,7 +2850,7 @@ _08046644: ldrsh r0, [r0, r3] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] movs r1, 0x3 ands r1, r0 @@ -3219,7 +3219,7 @@ _08046904: lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -4341,7 +4341,7 @@ sub_8047190: strh r4, [r7, 0x26] str r4, [sp, 0x224] mov r0, r9 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08047214 mov r0, r9 @@ -4388,7 +4388,7 @@ _08047228: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 @@ -4420,7 +4420,7 @@ _0804727A: ldrsh r1, [r1, r3] adds r1, r2 str r2, [sp, 0x234] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -4541,7 +4541,7 @@ _0804737A: ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 @@ -4563,7 +4563,7 @@ _080473A2: cmp r0, 0 bne _080473CE adds r0, r1, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080473CE ldr r0, [r5, 0x10] @@ -4587,7 +4587,7 @@ _080473CE: _080473E0: movs r6, 0x1 ldr r0, [r5, 0x10] - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08047406 add r4, sp, 0x208 @@ -4882,7 +4882,7 @@ sub_80475C4: movs r1, 0 str r1, [sp, 0x28] ldr r0, [sp, 0x10] - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0804765E ldr r0, [sp, 0x10] @@ -5097,7 +5097,7 @@ _080477D0: ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 @@ -5107,7 +5107,7 @@ _080477FA: movs r3, 0x1 mov r8, r3 movs r7, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08047834 ldr r0, [r4, 0x10] @@ -5279,7 +5279,7 @@ _08047950: movs r6, 0x1 _08047964: adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08047994 adds r0, r4, 0 @@ -5302,7 +5302,7 @@ _08047984: movs r6, 0x1 _08047994: adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080479AE adds r0, r5, 0 diff --git a/asm/code_8048480.s b/asm/code_8048480.s index 79a323d..849283d 100644 --- a/asm/code_8048480.s +++ b/asm/code_8048480.s @@ -1050,7 +1050,7 @@ _08048CE2: bl sub_8044DF0 adds r0, r6, 0 movs r1, 0x2C - bl sub_8044C94 + bl SetAction b _08048D3E .align 2, 0 _08048D34: .4byte gUnknown_80FECA0 @@ -1310,8 +1310,8 @@ sub_8048F00: _08048F24: .4byte gPtrMusicBoxPlayedCrumbledMessage thumb_func_end sub_8048F00 - thumb_func_start sub_8048F28 -sub_8048F28: + thumb_func_start EvaluateItem +EvaluateItem: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 @@ -1891,7 +1891,7 @@ _080494E4: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8048F28 + thumb_func_end EvaluateItem thumb_func_start sub_80494EC sub_80494EC: @@ -1912,12 +1912,12 @@ _080494F2: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x10] cmp r4, 0 beq _0804953C adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0 beq _0804953C adds r0, r5, 0 @@ -1944,8 +1944,8 @@ _08049544: bx r1 thumb_func_end sub_80494EC - thumb_func_start sub_804954C -sub_804954C: + thumb_func_start GetMapTileAtPosition +GetMapTileAtPosition: push {lr} adds r2, r0, 0 adds r3, r1, 0 @@ -1980,7 +1980,7 @@ _08049588: bx r1 .align 2, 0 _0804958C: .4byte gUnknown_203B430 - thumb_func_end sub_804954C + thumb_func_end GetMapTileAtPosition thumb_func_start sub_8049590 sub_8049590: @@ -2381,7 +2381,7 @@ _080498CA: b _08049B72 _080498D0: movs r7, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] movs r1, 0x3 mov r8, r1 @@ -2427,7 +2427,7 @@ _08049928: str r0, [sp, 0x24] mov r0, r10 ldr r1, [sp, 0x24] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -2436,14 +2436,14 @@ _08049928: adds r4, 0x1 adds r0, r4, 0 ldr r1, [sp, 0x24] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 mov r1, r9 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -2452,14 +2452,14 @@ _08049928: subs r5, 0x1 adds r0, r4, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0xC] mov r0, r10 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -2467,21 +2467,21 @@ _08049928: subs r4, 0x2 adds r0, r4, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 mov r1, r9 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x18] adds r0, r4, 0 ldr r1, [sp, 0x24] - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] mov r1, r8 ands r1, r0 @@ -2800,7 +2800,7 @@ sub_8049BB0: mov r9, r0 mov r0, r10 mov r1, r9 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r4, 0x3 adds r0, r4, 0 @@ -2811,14 +2811,14 @@ sub_8049BB0: adds r5, 0x1 adds r0, r5, 0 mov r1, r9 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x4] adds r0, r5, 0 ldr r1, [sp, 0x40] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 @@ -2828,14 +2828,14 @@ sub_8049BB0: mov r8, r0 adds r0, r5, 0 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0xC] mov r0, r10 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 @@ -2843,21 +2843,21 @@ sub_8049BB0: subs r5, 0x2 adds r0, r5, 0 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x14] adds r0, r5, 0 ldr r1, [sp, 0x40] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x18] adds r0, r5, 0 mov r1, r9 - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] ands r4, r0 str r4, [r6, 0x1C] @@ -3273,7 +3273,7 @@ _08049F1C: ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r3, [sp, 0x34] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r2, [r5] movs r1, 0x80 @@ -3340,7 +3340,7 @@ _08049FDC: beq _0804A028 adds r0, r4, 0 str r3, [sp, 0x34] - bl sub_80450F8 + bl GetEntityType ldr r3, [sp, 0x34] cmp r0, 0x2 bne _0804A014 @@ -3460,7 +3460,7 @@ _0804A098: ldr r0, [sp, 0x10] adds r1, r2, 0 str r3, [sp, 0x34] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r2, [r5] movs r0, 0x20 @@ -3505,7 +3505,7 @@ _0804A124: beq _0804A174 adds r0, r4, 0 str r3, [sp, 0x34] - bl sub_80450F8 + bl GetEntityType ldr r3, [sp, 0x34] cmp r0, 0x2 bne _0804A15C @@ -3673,7 +3673,7 @@ sub_804A1F0: adds r6, r3, r0 ldr r0, [sp, 0xC] mov r1, r10 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 @@ -3724,7 +3724,7 @@ _0804A2D0: cmp r4, 0 beq _0804A318 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0804A304 adds r0, r4, 0 @@ -3823,7 +3823,7 @@ _0804A386: ldr r6, [sp, 0x10] ldr r0, [sp, 0xC] mov r1, r10 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 @@ -3871,7 +3871,7 @@ _0804A3EC: cmp r4, 0 beq _0804A434 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0804A420 adds r0, r4, 0 @@ -4021,7 +4021,7 @@ sub_804A49C: mov r3, r9 adds r6, r3, r0 mov r0, r10 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 @@ -4071,7 +4071,7 @@ _0804A574: cmp r4, 0 beq _0804A59A adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0804A5C8 adds r0, r4, 0 @@ -4156,7 +4156,7 @@ _0804A60C: adds r6, r0, r3 mov r0, r10 ldr r1, [sp, 0xC] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 @@ -4204,7 +4204,7 @@ _0804A678: cmp r4, 0 beq _0804A6C0 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0804A6AC adds r0, r4, 0 @@ -4831,7 +4831,7 @@ _0804AB2E: _0804AB32: adds r0, r4, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r2, [r0, 0x9] adds r3, r4, 0x1 cmp r2, 0xFF @@ -4960,7 +4960,7 @@ sub_804AC20: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] ldr r0, _0804AC6C ldr r3, [r0] @@ -5062,11 +5062,11 @@ sub_804ACE4: movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x14] cmp r0, 0 beq _0804AD06 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _0804AD06 movs r0, 0x1 @@ -5086,7 +5086,7 @@ sub_804AD0C: movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 - bl sub_804954C + bl GetMapTileAtPosition ldr r1, [r0, 0x10] cmp r1, 0 beq _0804AD2C @@ -5828,7 +5828,7 @@ _0804B318: _0804B31C: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r0, [r1] movs r2, 0x3 @@ -6124,7 +6124,7 @@ _0804B55A: subs r0, r5, 0x1 adds r1, r4, 0 str r2, [sp, 0x8] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r7, 0 ands r0, r1 @@ -6140,7 +6140,7 @@ _0804B5A4: adds r0, r5, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -6156,7 +6156,7 @@ _0804B5C4: adds r1, r4, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -6173,7 +6173,7 @@ _0804B5E4: adds r1, r6, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -7965,7 +7965,7 @@ _0804C498: movs r2, 0 ldrsh r0, [r3, r2] mov r1, r10 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] mov r9, r0 ldr r5, [sp, 0x8] @@ -9011,7 +9011,7 @@ _0804CCC0: bge _0804CC84 adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r5, [r0, 0x9] ldr r1, _0804CCE0 mov r3, r8 @@ -9030,7 +9030,7 @@ _0804CCE4: _0804CCF0: adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r5, r0 beq _0804CCE4 @@ -9051,7 +9051,7 @@ _0804CD0C: _0804CD18: adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 @@ -9060,7 +9060,7 @@ _0804CD18: beq _0804CD0C adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -9115,7 +9115,7 @@ _0804CD72: adds r0, r7, r0 adds r1, r6, r1 str r2, [sp, 0x1C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 @@ -9136,7 +9136,7 @@ _0804CDA2: ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -9154,7 +9154,7 @@ _0804CDD4: .4byte gUnknown_80F4448 _0804CDD8: adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x10 ands r0, r1 @@ -9167,7 +9167,7 @@ _0804CDEC: adds r4, r7, 0x1 adds r0, r4, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r10 ands r0, r1 @@ -9177,7 +9177,7 @@ _0804CDEC: adds r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] mov r4, r10 ands r4, r0 @@ -9185,7 +9185,7 @@ _0804CDEC: bne _0804CE32 adds r0, r7, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] mov r1, r10 ands r0, r1 @@ -9197,7 +9197,7 @@ _0804CDEC: _0804CE32: mov r0, r9 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 @@ -9207,7 +9207,7 @@ _0804CE32: subs r4, r6, 0x1 mov r0, r9 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -9215,7 +9215,7 @@ _0804CE32: bne _0804CE70 adds r0, r7, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -9227,7 +9227,7 @@ _0804CE70: subs r4, r7, 0x1 adds r0, r4, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 @@ -9238,7 +9238,7 @@ _0804CE70: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x1C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 @@ -9247,7 +9247,7 @@ _0804CE70: bne _0804CEB6 adds r0, r7, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 @@ -9259,7 +9259,7 @@ _0804CE70: _0804CEB6: adds r0, r4, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 @@ -9270,7 +9270,7 @@ _0804CEB6: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x1C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 @@ -9279,7 +9279,7 @@ _0804CEB6: bne _0804CEFA adds r0, r7, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 @@ -9321,7 +9321,7 @@ _0804CF16: adds r0, r7, r0 adds r1, r6, r1 str r2, [sp, 0x1C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 @@ -9342,7 +9342,7 @@ _0804CF16: ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -9408,7 +9408,7 @@ _0804CFD4: bgt _0804CFFC adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r3, 0x3 mov r10, r3 @@ -11221,7 +11221,7 @@ _0804DCCA: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] mov r8, r0 ldr r5, [sp, 0x28] @@ -11351,7 +11351,7 @@ _0804DDB4: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] mov r9, r0 ldr r5, [sp, 0x2C] @@ -11482,7 +11482,7 @@ _0804DEAC: movs r0, 0x2 ldrsh r1, [r4, r0] ldr r0, [sp, 0x30] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] mov r8, r0 ldr r5, [sp, 0x30] @@ -11600,7 +11600,7 @@ _0804DF88: ldrsh r0, [r4, r1] adds r1, r6, 0 str r3, [sp, 0x54] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] mov r10, r0 ldr r5, [sp, 0x34] @@ -11937,7 +11937,7 @@ _0804E1EA: mov r1, r8 str r2, [sp, 0x38] str r3, [sp, 0x3C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -11977,7 +11977,7 @@ _0804E22E: mov r2, r9 adds r1, r2, r5 str r3, [sp, 0x3C] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -12019,7 +12019,7 @@ _0804E278: ldrsh r1, [r1, r3] adds r0, r7, r0 add r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -12138,7 +12138,7 @@ _0804E352: _0804E360: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -12188,7 +12188,7 @@ _0804E3B2: _0804E3BC: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -12244,7 +12244,7 @@ _0804E416: _0804E420: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -12298,7 +12298,7 @@ _0804E478: _0804E482: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -12345,7 +12345,7 @@ _0804E4D0: bgt _0804E57E adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -12394,7 +12394,7 @@ _0804E52C: bgt _0804E57E adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -13032,7 +13032,7 @@ _0804E9F2: _0804E9F8: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -13043,7 +13043,7 @@ _0804E9F8: _0804EA0E: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0804EAF4 @@ -13157,7 +13157,7 @@ _0804EAF0: .4byte 0x0000fffc _0804EAF4: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, 0xFE bne _0804EB0E @@ -13209,7 +13209,7 @@ _0804EB4A: _0804EB4E: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -13217,7 +13217,7 @@ _0804EB4E: beq _0804EBA2 adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r3, [r0, 0x9] cmp r3, 0x1F bhi _0804EBA2 @@ -13896,7 +13896,7 @@ _0804F05A: strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] ldr r2, [sp, 0x104] ldr r3, _0804F0A0 @@ -14195,7 +14195,7 @@ sub_804F278: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] mov r9, r0 movs r5, 0 @@ -14209,7 +14209,7 @@ _0804F2B4: ldrsh r1, [r4, r2] subs r1, 0x1 adds r0, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -14250,7 +14250,7 @@ _0804F306: movs r1, 0x4 ldrsh r0, [r4, r1] adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -14290,7 +14290,7 @@ _0804F354: movs r0, 0x6 ldrsh r1, [r4, r0] adds r0, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -14332,7 +14332,7 @@ _0804F3A4: ldrsh r0, [r4, r1] subs r0, 0x1 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -14383,7 +14383,7 @@ _0804F3F2: _0804F40A: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -14532,7 +14532,7 @@ _0804F50A: ldr r3, [sp, 0x2C] cmp r3, r1 ble _0804F534 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r10 ands r0, r1 @@ -14688,7 +14688,7 @@ _0804F634: _0804F63C: adds r0, r6, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -14696,7 +14696,7 @@ _0804F63C: bne _0804F660 adds r0, r6, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0804F660 @@ -15482,7 +15482,7 @@ _0804FC86: _0804FC8A: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -15525,7 +15525,7 @@ _0804FCD4: _0804FCD8: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x10 ands r0, r1 @@ -15881,7 +15881,7 @@ _0804FF4C: _0804FF56: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 @@ -16005,7 +16005,7 @@ _0805003E: _0805004A: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 @@ -16104,7 +16104,7 @@ _08050100: _0805010C: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -16185,7 +16185,7 @@ _080501A0: _080501AC: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x20 ands r0, r1 @@ -16309,7 +16309,7 @@ _0805029A: _080502A6: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 @@ -16423,7 +16423,7 @@ _08050378: _08050384: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -16556,7 +16556,7 @@ _08050480: _0805048E: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r3, [r1] movs r2, 0x3 @@ -16707,7 +16707,7 @@ _080505A2: _080505B0: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 @@ -16937,7 +16937,7 @@ _08050772: cmp r0, 0x37 bhi _080507B8 mov r1, r10 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -17015,7 +17015,7 @@ _080507DE: mov r8, r0 adds r0, r4, 0 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 @@ -17025,7 +17025,7 @@ _080507DE: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x9C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17035,7 +17035,7 @@ _080507DE: subs r7, r5, 0x1 adds r0, r4, 0 adds r1, r7, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17044,7 +17044,7 @@ _080507DE: beq _080508B2 adds r0, r6, 0 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17053,7 +17053,7 @@ _080507DE: beq _080508B2 adds r0, r6, 0 adds r1, r7, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17063,7 +17063,7 @@ _080507DE: subs r4, r6, 0x1 adds r0, r4, 0 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17072,7 +17072,7 @@ _080507DE: beq _080508B2 adds r0, r4, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17081,7 +17081,7 @@ _080507DE: beq _080508B2 adds r0, r4, 0 adds r1, r7, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 @@ -17154,7 +17154,7 @@ _0805091A: adds r0, r4, 0 adds r1, r3, 0 str r3, [sp, 0xA0] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r2, 0x3 mov r8, r2 @@ -17168,7 +17168,7 @@ _0805093A: adds r0, r4, 0 adds r1, r5, 0 str r3, [sp, 0xA0] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -17182,7 +17182,7 @@ _08050952: adds r1, r2, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -17196,7 +17196,7 @@ _08050970: adds r1, r3, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -17210,7 +17210,7 @@ _0805098C: adds r1, r2, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -17224,7 +17224,7 @@ _080509A8: adds r0, r4, 0 adds r1, r3, 0 str r2, [sp, 0x9C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -17236,7 +17236,7 @@ _080509C2: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x9C] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 @@ -17247,7 +17247,7 @@ _080509C2: _080509DA: adds r0, r4, 0 adds r1, r2, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] mov r0, r8 ands r0, r1 diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 0bbdd13..d8af8aa 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -2463,7 +2463,7 @@ _08053734: cmp r4, 0 beq _080537B4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _0805376C b _08053A1C @@ -2519,7 +2519,7 @@ _080537B4: beq _08053854 adds r4, r0, 0 str r2, [sp, 0x44] - bl sub_80450F8 + bl GetEntityType ldr r2, [sp, 0x44] cmp r0, 0x1 beq _080537E2 @@ -2668,7 +2668,7 @@ _080538DA: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x10] str r0, [sp, 0x38] bl EntityExists @@ -2676,7 +2676,7 @@ _080538DA: cmp r0, 0 beq _080539DC ldr r0, [sp, 0x38] - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080539DC adds r0, r5, 0 @@ -3244,7 +3244,7 @@ _08053DA8: beq _08053DCE adds r0, r5, 0x4 adds r1, r7, 0x4 - bl sub_80983D8 + bl CalculateFacingDir strb r0, [r4] _08053DCE: ldr r1, [sp, 0x24] @@ -3261,7 +3261,7 @@ _08053DCE: beq _08053DF2 adds r0, r5, 0x4 adds r1, r7, 0x4 - bl sub_80983D8 + bl CalculateFacingDir strb r0, [r4] _08053DF2: adds r0, r5, 0 @@ -6290,7 +6290,7 @@ _080559B6: bgt _080559D4 adds r0, r4, 0x4 adds r1, r2, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r1, r0, 0 adds r0, r4, 0 bl sub_8071138 @@ -6314,7 +6314,7 @@ sub_80559DC: ldr r4, [r5, 0x70] adds r0, r5, 0x4 adds r1, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r1, r0, 0 movs r2, 0x7 ands r0, r2 @@ -7995,7 +7995,7 @@ _08056780: movs r2, 0 ldrsh r0, [r6, r2] asrs r1, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -8005,7 +8005,7 @@ _08056780: ldr r0, [r2, 0x10] cmp r0, 0 beq _080567C6 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _080567EC _080567C6: @@ -8307,7 +8307,7 @@ _08056A0E: ldrsh r0, [r7, r2] movs r6, 0x2 ldrsh r1, [r7, r6] - bl sub_804954C + bl GetMapTileAtPosition adds r6, r0, 0 ldrh r1, [r6] movs r0, 0x3 @@ -8317,7 +8317,7 @@ _08056A0E: ldr r0, [r6, 0x10] cmp r0, 0 beq _08056A8E - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08056A8E ldr r0, [r6, 0x10] diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 554a536..c225611 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -6333,7 +6333,7 @@ _0805A94C: cmp r5, 0 beq _0805AA4C adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType adds r7, r0, 0 cmp r7, 0x1 bne _0805A9FE @@ -9349,7 +9349,7 @@ _0805BFF0: cmp r4, 0 beq _0805C028 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0805C028 adds r0, r4, 0 @@ -10709,7 +10709,7 @@ _0805CD06: bne _0805CD14 b _0805CB6E _0805CD14: - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0805CD1E b _0805CEA8 @@ -12098,7 +12098,7 @@ _0805DA1C: .4byte gUnknown_80F8A28 _0805DA20: ldr r0, [sp, 0x1C] movs r1, 0x17 - bl sub_8044C94 + bl SetAction b _0805E1AE _0805DA2A: ldr r0, _0805DA38 @@ -12443,7 +12443,7 @@ _0805DCC8: .4byte gUnknown_80F8A4C _0805DCCC: ldr r0, [sp, 0x1C] movs r1, 0x14 - bl sub_8044C94 + bl SetAction mov r0, r10 bl sub_8045B60 mov r1, r8 @@ -12464,7 +12464,7 @@ _0805DCE8: _0805DCF8: ldr r0, [sp, 0x1C] movs r1, 0x32 - bl sub_8044C94 + bl SetAction b _0805E1AE _0805DD02: ldr r3, _0805DDC8 @@ -13781,12 +13781,12 @@ _0805E76A: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 beq _0805E7B8 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0805E7B8 ldr r1, [r4, 0x10] @@ -13926,7 +13926,7 @@ sub_805E874: ldrsh r2, [r2, r3] str r2, [sp, 0x1C] adds r1, r2, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldr r1, _0805E910 ldr r2, [sp, 0x18] @@ -13967,7 +13967,7 @@ sub_805E874: bne _0805E918 adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, 0xFF beq _0805E922 @@ -14005,7 +14005,7 @@ _0805E92E: ldrsh r1, [r1, r3] ldr r2, [sp, 0x1C] adds r1, r2, r1 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 @@ -14072,7 +14072,7 @@ _0805E9BC: _0805E9C8: adds r0, r7, 0 adds r1, r6, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldr r0, [r5, 0x14] cmp r0, 0 @@ -14104,7 +14104,7 @@ _0805EA04: cmp r2, 0x3 bne _0805EA14 ldr r0, [r5, 0x14] - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _0805EA14 b _0805E906 @@ -14117,11 +14117,11 @@ _0805EA14: ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA94 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] @@ -14153,7 +14153,7 @@ _0805EA6A: ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA94 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] @@ -14429,7 +14429,7 @@ sub_805EC4C: lsls r0, r2, 16 asrs r0, 16 asrs r1, r2, 16 - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x10] mov r8, r0 cmp r0, 0 @@ -14437,7 +14437,7 @@ sub_805EC4C: b _0805ED96 _0805EC94: mov r0, r8 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0805ED96 mov r0, r8 @@ -14574,7 +14574,7 @@ _0805EDA0: adds r0, r7, 0 adds r0, 0x44 movs r1, 0x2 - bl sub_8044C94 + bl SetAction ldr r0, _0805EDC0 ldrh r1, [r0] movs r0, 0x2 @@ -14603,7 +14603,7 @@ _0805EDCA: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x2 - bl sub_8044C94 + bl SetAction adds r0, r6, 0 adds r0, 0x48 strb r4, [r0] @@ -14700,7 +14700,7 @@ _0805EE96: cmp r4, 0 beq _0805EF52 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x5 bhi _0805EF52 lsls r0, 2 @@ -14766,7 +14766,7 @@ _0805EF18: b _0805EF52 _0805EF2A: adds r0, r4, 0 - bl sub_8045108 + bl GetItemData ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -14804,7 +14804,7 @@ sub_805EF60: cmp r4, 0 beq _0805EF9E adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0805EF9E adds r0, r5, 0 @@ -14831,7 +14831,7 @@ _0805EFA2: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x13 - bl sub_8044C94 + bl SetAction movs r0, 0x1 _0805EFAE: pop {r4-r6} @@ -15762,14 +15762,14 @@ _0805F742: movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x14] cmp r4, 0 bne _0805F75C b _0805F88C _0805F75C: adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 beq _0805F768 b _0805F872 @@ -15885,7 +15885,7 @@ _0805F848: b _0805F8A8 _0805F872: adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0805F8CE movs r0, 0x1 @@ -16580,7 +16580,7 @@ _0805FE5E: ldr r0, [sp, 0xE0] adds r0, 0x44 movs r1, 0xC - bl sub_8044C94 + bl SetAction ldr r0, _0805FE78 ldr r1, [r0, 0x4] ldr r0, [r0] @@ -17553,9 +17553,9 @@ _0806063C: ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x14] - bl sub_8045108 + bl GetItemData adds r7, r0, 0 ldr r0, _080606A8 ldr r2, [r0] @@ -18175,7 +18175,7 @@ _08060B3C: ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x14] cmp r0, 0 bne _08060B68 @@ -18186,7 +18186,7 @@ _08060B3C: .align 2, 0 _08060B64: .4byte gUnknown_202F238 _08060B68: - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _08060B78 ldrb r1, [r7, 0x2] @@ -18219,7 +18219,7 @@ _08060BA6: bl sub_8044F5C _08060BAE: mov r0, r10 - bl sub_8071A70 + bl ToolboxEnabled lsls r0, 24 cmp r0, 0 beq _08060BBC @@ -18373,7 +18373,7 @@ sub_8060CE8: adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 - bl sub_8044C94 + bl SetAction ldr r0, _08060D20 ldr r1, [r0, 0x4] ldr r0, [r0] @@ -18758,7 +18758,7 @@ _08060FE2: adds r0, r4, 0 adds r0, 0x44 movs r1, 0x1B - bl sub_8044C94 + bl SetAction ldr r0, [sp] lsls r0, 2 add r0, r8 @@ -19459,7 +19459,7 @@ sub_80615B4: adds r0, r1 ldrh r1, [r0] adds r0, r5, 0 - bl sub_8044C94 + bl SetAction ldm r4!, {r0} lsls r0, 2 adds r4, r0 @@ -22906,7 +22906,7 @@ _08063150: _08063168: adds r0, r7, 0 movs r1, 0x6 - bl sub_8044C94 + bl SetAction b _080631F4 .align 2, 0 _08063174: .4byte gRealInputs @@ -22924,7 +22924,7 @@ _0806317C: _0806318E: adds r0, r7, 0 movs r1, 0x7 - bl sub_8044C94 + bl SetAction b _080631F4 _08063198: bl sub_8062D88 @@ -23016,7 +23016,7 @@ _08063234: bne _08063274 adds r0, r7, 0 movs r1, 0x1D - bl sub_8044C94 + bl SetAction mov r0, r8 adds r0, 0x24 ldrb r1, [r0] @@ -23705,7 +23705,7 @@ sub_80637BC: adds r1, r0 ldrh r1, [r1] adds r0, r4, 0 - bl sub_8044C94 + bl SetAction strb r5, [r4, 0x4] ldr r0, _080637E4 ldr r0, [r0] @@ -25384,7 +25384,7 @@ _080644D0: adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 - bl sub_8044C94 + bl SetAction bl sub_8083D08 strb r6, [r4, 0x4] strh r6, [r4, 0x8] @@ -25458,7 +25458,7 @@ sub_806455C: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, _080645D0 ldr r2, [r0] @@ -25602,14 +25602,14 @@ _08064640: ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x14] cmp r4, 0 bne _080646B8 b _080647D8 _080646B8: adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 beq _080646C4 b _080647D8 @@ -25911,7 +25911,7 @@ _08064914: adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 - bl sub_8044C94 + bl SetAction bl sub_8083D08 strb r6, [r4, 0x4] strh r6, [r4, 0x8] @@ -27007,7 +27007,7 @@ sub_80651D0: bne _080651F4 bl sub_805F1A0 movs r1, 0x2B - bl sub_8044C94 + bl SetAction movs r0, 0 b _080651F6 .align 2, 0 @@ -27032,7 +27032,7 @@ sub_80651FC: bne _08065248 bl sub_805F1A0 movs r1, 0x2E - bl sub_8044C94 + bl SetAction ldr r4, _0806523C bl sub_8083600 adds r2, r0, 0 @@ -30377,7 +30377,7 @@ _08066D68: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x80 @@ -30526,11 +30526,11 @@ _08066EA8: ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x14] cmp r0, 0 beq _08066ECC - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 beq _08066ECC ldr r0, _08066EC8 @@ -30652,7 +30652,7 @@ sub_8066FA4: ldrsh r0, [r7, r1] movs r2, 0x6 ldrsh r1, [r7, r2] - bl sub_804954C + bl GetMapTileAtPosition mov r10, r0 adds r0, r7, 0 movs r1, 0 @@ -30705,7 +30705,7 @@ _08067028: ldr r0, [r1, 0x14] cmp r0, 0 beq _08067040 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 beq _08067040 ldr r0, _0806703C @@ -30715,7 +30715,7 @@ _0806703C: .4byte gUnknown_80F8E54 _08067040: mov r2, r10 ldr r0, [r2, 0x14] - bl sub_8045108 + bl GetItemData adds r4, r0, 0 ldr r0, _080670A8 adds r1, r4, 0 @@ -31426,7 +31426,7 @@ _0806760C: .4byte gUnknown_80FE008 _08067610: adds r0, r6, 0x4 adds r1, r5, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r1, r0, 0 adds r0, r6, 0 bl sub_806CEFC @@ -31583,7 +31583,7 @@ sub_806773C: cmp r4, 0 beq _08067760 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08067760 ldr r0, [r5, 0x70] @@ -35490,7 +35490,7 @@ _08069622: _08069648: adds r0, r6, 0 adds r1, r7, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 @@ -35531,7 +35531,7 @@ _0806967C: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r0, [r0, 0x10] _0806969E: pop {r4,r5} @@ -35568,7 +35568,7 @@ sub_80696A8: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r1, [r0, 0x10] cmp r1, 0 beq _080696F4 @@ -35623,7 +35623,7 @@ sub_80696FC: movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 adds r0, r4, 0 mov r1, sp @@ -35689,7 +35689,7 @@ sub_806977C: movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 - bl sub_804954C + bl GetMapTileAtPosition mov r6, sp adds r0, r4, 0 mov r1, sp @@ -35721,7 +35721,7 @@ sub_806977C: ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r6, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 adds r0, r4, 0 mov r1, sp @@ -37033,7 +37033,7 @@ sub_806A1E8: cmp r0, 0 beq _0806A234 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806A210 ldr r0, [r4, 0x70] @@ -37081,7 +37081,7 @@ sub_806A240: cmp r0, 0 beq _0806A2B4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806A26A ldr r0, [r4, 0x70] @@ -37106,7 +37106,7 @@ _0806A26A: b _0806A2B4 _0806A284: adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806A29C ldr r0, [r5, 0x70] @@ -37145,7 +37145,7 @@ sub_806A2BC: cmp r0, 0 beq _0806A328 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806A328 ldr r5, _0806A2F4 @@ -37385,7 +37385,7 @@ _0806A488: ldr r0, [r4, 0x10] cmp r0, 0 beq _0806A4B6 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806A4B6 ldr r0, [r4, 0x10] @@ -37963,7 +37963,7 @@ _0806A8C8: _0806A8EE: adds r0, r4, 0x4 adds r1, r6, 0 - bl sub_80983D8 + bl CalculateFacingDir adds r2, r0, 0 movs r1, 0x7 ands r0, r1 @@ -39095,7 +39095,7 @@ sub_806B168: adds r1, r4 movs r2, 0 ldrsh r1, [r1, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] str r0, [sp, 0x2C] movs r3, 0 @@ -39294,7 +39294,7 @@ _0806B2D2: ldrsh r1, [r1, r4] adds r1, r6, r1 str r3, [sp, 0x38] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r3, [sp, 0x38] @@ -39361,7 +39361,7 @@ _0806B366: movs r3, 0 ldrsh r1, [r1, r3] adds r1, r6, r1 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 mov r4, r8 movs r2, 0xE @@ -39517,7 +39517,7 @@ _0806B4AE: asrs r0, r5, 16 asrs r4, 16 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] str r0, [sp, 0x20] movs r2, 0 @@ -39580,7 +39580,7 @@ _0806B51C: mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r2, [sp, 0x2C] @@ -39646,7 +39646,7 @@ _0806B5A8: mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] @@ -39696,7 +39696,7 @@ _0806B606: ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r5, r3] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] @@ -39854,7 +39854,7 @@ _0806B740: _0806B748: adds r0, r5, 0 adds r1, r7, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0, 0x4] movs r0, 0x8 ands r0, r1 @@ -39956,7 +39956,7 @@ sub_806B7F8: ldrsh r0, [r6, r1] movs r2, 0xE ldrsh r1, [r6, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 movs r3, 0 ldrsh r0, [r6, r3] @@ -40102,7 +40102,7 @@ _0806B930: _0806B932: mov r0, r9 mov r1, r10 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 adds r0, r4, 0 bl sub_807034C @@ -42779,7 +42779,7 @@ sub_806CDD4: adds r6, r2, 0 lsls r1, 24 lsrs r5, r1, 24 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806CDF4 adds r0, r4, 0 @@ -42803,7 +42803,7 @@ sub_806CDFC: lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806CE2E adds r0, r4, 0 @@ -42832,7 +42832,7 @@ sub_806CE34: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806CE62 adds r0, r4, 0 @@ -42861,7 +42861,7 @@ sub_806CE68: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806CE8C adds r0, r4, 0 @@ -42885,7 +42885,7 @@ sub_806CE94: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806CEB4 adds r1, r4, 0 @@ -43150,13 +43150,13 @@ _0806D062: b _0806D514 _0806D070: adds r0, r6, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _0806D07C b _0806D514 _0806D07C: adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _0806D088 b _0806D514 @@ -43762,7 +43762,7 @@ sub_806D528: mov r1, r10 strb r1, [r5, 0xF] adds r0, r7, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _0806D55C b _0806D754 @@ -43775,7 +43775,7 @@ _0806D55C: adds r1, r7, 0 bl sub_806F450 mov r0, r9 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806D592 mov r2, r9 @@ -44142,7 +44142,7 @@ _0806D858: cmp r1, r0 beq _0806D8E6 mov r0, r9 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806D8E6 movs r4, 0 @@ -44189,7 +44189,7 @@ _0806D8C8: adds r0, r7, 0x4 mov r1, r9 adds r1, 0x4 - bl sub_80983D8 + bl CalculateFacingDir movs r1, 0x7 ands r0, r1 adds r4, 0x46 @@ -44369,7 +44369,7 @@ _0806DA2E: cmp r0, 0 beq _0806DA50 mov r0, r9 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806DA50 cmp r9, r7 @@ -45026,7 +45026,7 @@ _0806DF7E: movs r3, 0 mov r10, r3 mov r0, r9 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806E066 mov r0, r9 @@ -45143,7 +45143,7 @@ _0806E066: cmp r0, 0 beq _0806E08A mov r0, r9 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806E08A mov r2, r9 @@ -47630,7 +47630,7 @@ sub_806F450: cmp r0, 0 beq _0806F47A adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0806F47A ldr r0, [r5, 0x70] @@ -48439,7 +48439,7 @@ sub_806FA5C: adds r0, r5, 0x4 mov r1, r8 adds r1, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r4, r0, 0 movs r0, 0 mov r10, r0 diff --git a/asm/code_807001C.s b/asm/code_807001C.s index 5d900ee..9ce2c3f 100644 --- a/asm/code_807001C.s +++ b/asm/code_807001C.s @@ -17,7 +17,7 @@ HasStatusAffectingActions: adds r0, r4, 0 adds r0, 0x44 movs r1, 0x1 - bl sub_8044C94 + bl SetAction adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] @@ -219,7 +219,7 @@ sub_80701A4: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x1 - bl sub_8044C94 + bl SetAction adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] @@ -366,7 +366,7 @@ _080702B0: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x14 - bl sub_8044C94 + bl SetAction adds r3, r5, 0 adds r7, r6, 0 adds r7, 0x50 @@ -497,7 +497,7 @@ sub_80703A0: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -633,7 +633,7 @@ sub_807049C: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -655,7 +655,7 @@ sub_807049C: ldr r0, [r5, 0x10] cmp r0, 0 beq _080704E2 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807055A _080704E2: @@ -739,7 +739,7 @@ sub_8070564: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -761,7 +761,7 @@ sub_8070564: ldr r0, [r5, 0x10] cmp r0, 0 beq _080705A8 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080705E6 _080705A8: @@ -817,7 +817,7 @@ sub_80705F0: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -839,7 +839,7 @@ sub_80705F0: ldr r0, [r5, 0x10] cmp r0, 0 beq _08070636 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807069A _08070636: @@ -910,7 +910,7 @@ sub_80706A4: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -932,7 +932,7 @@ sub_80706A4: ldr r0, [r5, 0x10] cmp r0, 0 beq _080706F2 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807076A ldr r0, [r5, 0x10] diff --git a/asm/code_8070D04.s b/asm/code_8070D04.s index 06b2f0c..8263469 100644 --- a/asm/code_8070D04.s +++ b/asm/code_8070D04.s @@ -86,7 +86,7 @@ sub_8070D6C: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -141,7 +141,7 @@ _08070E04: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -192,7 +192,7 @@ sub_8070E3C: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -202,7 +202,7 @@ sub_8070E3C: ldr r0, [r2, 0x10] cmp r0, 0 beq _08070E8A - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08070F0C _08070E8A: @@ -251,7 +251,7 @@ _08070EDC: ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -295,7 +295,7 @@ sub_8070F14: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -309,7 +309,7 @@ sub_8070F14: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldr r1, _08070F74 movs r0, 0x7 @@ -357,7 +357,7 @@ sub_8070F80: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -367,7 +367,7 @@ sub_8070F80: ldr r0, [r2, 0x10] cmp r0, 0 beq _08070FCC - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08071050 _08070FCC: @@ -416,7 +416,7 @@ _08071020: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -466,7 +466,7 @@ sub_8071058: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x10 @@ -476,7 +476,7 @@ sub_8071058: ldr r0, [r4, 0x10] cmp r0, 0 beq _080710AE - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _080710AE ldr r0, [r4, 0x10] @@ -530,7 +530,7 @@ _08071100: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 adds r1, r4, 0 adds r1, 0xA @@ -584,7 +584,7 @@ _08071152: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -594,7 +594,7 @@ _08071152: ldr r0, [r2, 0x10] cmp r0, 0 beq _0807118A - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807120C _0807118A: @@ -643,7 +643,7 @@ _080711DC: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -699,7 +699,7 @@ sub_8071214: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x10 @@ -737,7 +737,7 @@ _08071286: cmp r0, 0 beq _080712B8 ldr r0, [r5, 0x14] - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _080712B8 ldr r0, [r5, 0x14] @@ -823,7 +823,7 @@ _08071348: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r0, 0xA adds r0, r6 ldr r2, _08071374 @@ -943,7 +943,7 @@ _08071432: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r0, 0xA adds r0, r5 ldrb r0, [r0] diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s index 7eeb1e9..e387988 100644 --- a/asm/code_80718D8.s +++ b/asm/code_80718D8.s @@ -230,8 +230,8 @@ _08071A6A: bx r1 thumb_func_end sub_8071A44 - thumb_func_start sub_8071A70 -sub_8071A70: + thumb_func_start ToolboxEnabled +ToolboxEnabled: push {lr} movs r1, 0x2 ldrsh r0, [r0, r1] @@ -246,7 +246,7 @@ _08071A84: _08071A86: pop {r1} bx r1 - thumb_func_end sub_8071A70 + thumb_func_end ToolboxEnabled thumb_func_start sub_8071A8C sub_8071A8C: @@ -471,7 +471,7 @@ _08071C08: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 @@ -2529,7 +2529,7 @@ _08072C0C: movs r3, 0x6 ldrsh r2, [r7, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldr r0, _08072C80 bl sub_807034C @@ -3104,7 +3104,7 @@ _08073114: b _080731B8 _0807311C: adds r0, r6, 0 - bl sub_8071A70 + bl ToolboxEnabled lsls r0, 24 cmp r0, 0 beq _08073136 @@ -3774,4408 +3774,4 @@ _08073650: .4byte gDungeonGlobalData _08073654: .4byte 0x000135cc thumb_func_end sub_807360C - thumb_func_start DecideUseItem -DecideUseItem: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - mov r8, r0 - ldr r6, [r0, 0x70] - bl CannotUseItems - lsls r0, 24 - cmp r0, 0 - beq _080736B8 - adds r1, r6, 0 - adds r1, 0xFC - movs r0, 0 - strb r0, [r1] - b _080739C4 -_0807367C: - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x24 - bl sub_8044C94 - adds r0, r6, 0 - adds r0, 0x48 - add r1, sp, 0x54 - ldrb r1, [r1] - strb r1, [r0] - mov r2, r8 - ldrh r1, [r2, 0x4] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r2, 0x6] - adds r1, r6, 0 - adds r1, 0x4E - strh r0, [r1] - ldr r0, _080736B4 - adds r0, r7, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - adds r1, r6, 0 - adds r1, 0x46 - strb r0, [r1] - b _08073718 - .align 2, 0 -_080736B4: .4byte gUnknown_202F330 -_080736B8: - adds r0, r6, 0 - adds r0, 0xFC - ldrb r0, [r0] - cmp r0, 0 - bne _080736C4 - b _080737DC -_080736C4: - adds r7, r6, 0 - adds r7, 0x60 - ldrb r1, [r7] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080736D4 - b _080739C4 -_080736D4: - movs r3, 0x81 - str r3, [sp, 0x54] - ldrb r0, [r7, 0x2] - bl GetItemType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0807372C - mov r0, r8 - movs r1, 0x2 - adds r2, r7, 0 - movs r3, 0x1 - bl sub_80739DC - movs r5, 0 - ldr r0, _08073724 - ldr r0, [r0] - cmp r5, r0 - bge _08073718 - ldr r4, _08073728 -_080736FE: - lsls r7, r5, 2 - ldr r0, [r4] - bl sub_8084144 - lsls r0, 24 - cmp r0, 0 - bne _0807367C - adds r4, 0x4 - adds r5, 0x1 - ldr r0, _08073724 - ldr r0, [r0] - cmp r5, r0 - blt _080736FE -_08073718: - ldr r0, _08073724 - ldr r0, [r0] - cmp r5, r0 - beq _08073722 - b _080739C4 -_08073722: - b _08073792 - .align 2, 0 -_08073724: .4byte gUnknown_203B440 -_08073728: .4byte gUnknown_202F358 -_0807372C: - cmp r0, 0x1 - bne _0807377C - mov r0, r8 - adds r1, r7, 0 - mov r2, sp - movs r3, 0x1 - bl sub_8073AA0 - ldr r0, _08073778 - ldr r0, [r0] - cmp r0, 0 - beq _08073792 - bl DungeonRandomCapped - adds r4, r0, 0 - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x24 - bl sub_8044C94 - adds r0, r6, 0 - adds r0, 0x48 - add r1, sp, 0x54 - ldrb r1, [r1] - strb r1, [r0] - mov r2, r8 - ldrh r1, [r2, 0x4] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r2, 0x6] - adds r1, r6, 0 - adds r1, 0x4E - strh r0, [r1] - mov r0, r8 - adds r0, 0x4 - lsls r4, 2 - add r4, sp - b _0807395E - .align 2, 0 -_08073778: .4byte gUnknown_203B440 -_0807377C: - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08073792 - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x23 - bl sub_8044C94 - b _080738CE -_08073792: - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x39 - bl sub_8044C94 - b _080739C4 -_0807379E: - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x24 - bl sub_8044C94 - adds r0, r6, 0 - adds r0, 0x48 - add r3, sp, 0x54 - ldrb r3, [r3] - strb r3, [r0] - mov r0, r8 - ldrh r1, [r0, 0x4] - adds r0, r6, 0 - adds r0, 0x4C - strh r1, [r0] - mov r1, r8 - ldrh r0, [r1, 0x6] - adds r1, r6, 0 - adds r1, 0x4E - strh r0, [r1] - ldr r0, _080737D8 - add r0, r10 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - adds r1, r6, 0 - adds r1, 0x46 - strb r0, [r1] - b _080739C4 - .align 2, 0 -_080737D8: .4byte gUnknown_202F330 -_080737DC: - mov r0, r8 - movs r1, 0x16 - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - bne _080737EC - b _080739C4 -_080737EC: - movs r2, 0x1 - str r2, [sp, 0x50] -_080737F0: - ldr r3, [sp, 0x50] - cmp r3, 0x1 - bne _080737FE - adds r7, r6, 0 - adds r7, 0x60 - movs r0, 0x81 - b _0807384E -_080737FE: - ldr r1, [sp, 0x50] - cmp r1, 0 - bne _08073832 - mov r2, r8 - movs r3, 0x4 - ldrsh r0, [r2, r3] - movs r3, 0x6 - ldrsh r1, [r2, r3] - bl sub_804954C - adds r4, r0, 0 - ldr r0, [r4, 0x14] - cmp r0, 0 - bne _0807381C - b _080739B8 -_0807381C: - bl sub_80450F8 - cmp r0, 0x3 - beq _08073826 - b _080739B8 -_08073826: - ldr r0, [r4, 0x14] - bl sub_8045108 - adds r7, r0, 0 - movs r0, 0x80 - b _0807384E -_08073832: - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0807383A - b _080739C4 -_0807383A: - ldr r1, _080738C0 - ldr r2, [sp, 0x50] - lsls r0, r2, 2 - subs r0, 0x8 - ldr r1, [r1] - adds r7, r1, r0 - adds r0, r2, 0 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_0807384E: - str r0, [sp, 0x54] - ldrb r1, [r7] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0807385C - b _080739B8 -_0807385C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08073866 - b _080739B8 -_08073866: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08073870 - b _080739B8 -_08073870: - ldrb r0, [r7, 0x2] - movs r1, 0 - bl GetItemAIFlags - lsls r0, 24 - cmp r0, 0 - beq _080738EC - mov r0, r8 - adds r1, r7, 0 - movs r2, 0x2 - bl sub_8048F28 - adds r5, r0, 0 - cmp r5, 0 - beq _080738EC - ldrb r0, [r7, 0x2] - bl GetItemType - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0x9 - bne _080738A4 - ldrb r0, [r6, 0x6] - cmp r0, 0 - beq _080738EC -_080738A4: - adds r0, r5, 0 - bl sub_8084144 - lsls r0, 24 - cmp r0, 0 - beq _080738EC - cmp r4, 0x9 - bne _080738C4 - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x31 - bl sub_8044C94 - b _080738CE - .align 2, 0 -_080738C0: .4byte gTeamInventory_203B460 -_080738C4: - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x23 - bl sub_8044C94 -_080738CE: - adds r0, r6, 0 - adds r0, 0x48 - add r3, sp, 0x54 - ldrb r3, [r3] - strb r3, [r0] - mov r0, r8 - ldrh r1, [r0, 0x4] - adds r0, r6, 0 - adds r0, 0x4C - strh r1, [r0] - mov r2, r8 - ldrh r1, [r2, 0x6] - adds r0, 0x2 - strh r1, [r0] - b _080739C4 -_080738EC: - adds r0, r6, 0 - bl sub_8071A70 - lsls r0, 24 - cmp r0, 0 - beq _080739B8 - movs r3, 0x1 - mov r9, r3 -_080738FC: - ldrb r0, [r7, 0x2] - mov r1, r9 - bl GetItemAIFlags - lsls r0, 24 - cmp r0, 0 - beq _080739AE - ldrb r0, [r7, 0x2] - bl GetItemType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08073978 - mov r0, r8 - adds r1, r7, 0 - mov r2, sp - movs r3, 0 - bl sub_8073AA0 - ldr r1, _08073974 - ldr r0, [r1] - cmp r0, 0 - beq _080739AE - bl DungeonRandomCapped - adds r4, r0, 0 - adds r0, r6, 0 - adds r0, 0x44 - movs r1, 0x24 - bl sub_8044C94 - adds r0, r6, 0 - adds r0, 0x48 - add r2, sp, 0x54 - ldrb r2, [r2] - strb r2, [r0] - mov r3, r8 - ldrh r1, [r3, 0x4] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r3, 0x6] - adds r1, r6, 0 - adds r1, 0x4E - strh r0, [r1] - lsls r4, 2 - add r4, sp - mov r0, r8 - adds r0, 0x4 -_0807395E: - adds r1, r4, 0 - bl sub_80983D8 - movs r1, 0x7 - ands r0, r1 - adds r1, r6, 0 - adds r1, 0x46 - strb r0, [r1] - ldr r0, [r4] - str r0, [r6, 0x58] - b _080739C4 - .align 2, 0 -_08073974: .4byte gUnknown_203B440 -_08073978: - mov r0, r8 - mov r1, r9 - adds r2, r7, 0 - movs r3, 0 - bl sub_80739DC - movs r5, 0 - ldr r1, _080739D4 - ldr r0, [r1] - cmp r5, r0 - bge _080739AE - ldr r4, _080739D8 -_08073990: - lsls r2, r5, 2 - mov r10, r2 - ldr r0, [r4] - bl sub_8084144 - lsls r0, 24 - cmp r0, 0 - beq _080739A2 - b _0807379E -_080739A2: - adds r4, 0x4 - adds r5, 0x1 - ldr r3, _080739D4 - ldr r0, [r3] - cmp r5, r0 - blt _08073990 -_080739AE: - movs r0, 0x1 - add r9, r0 - mov r1, r9 - cmp r1, 0x2 - ble _080738FC -_080739B8: - ldr r2, [sp, 0x50] - adds r2, 0x1 - str r2, [sp, 0x50] - cmp r2, 0x15 - bgt _080739C4 - b _080737F0 -_080739C4: - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080739D4: .4byte gUnknown_203B440 -_080739D8: .4byte gUnknown_202F358 - thumb_func_end DecideUseItem - - thumb_func_start sub_80739DC -sub_80739DC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - mov r10, r1 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r1, _08073A44 - movs r0, 0 - str r0, [r1] - ldr r1, _08073A48 - movs r2, 0 - adds r0, r1, 0x7 -_08073A00: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08073A00 - movs r7, 0 -_08073A0A: - ldr r0, _08073A4C - ldr r0, [r0] - lsls r1, r7, 2 - ldr r2, _08073A50 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08073A88 - cmp r5, r4 - beq _08073A88 - mov r0, r10 - cmp r0, 0x1 - bne _08073A54 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl sub_8071598 - lsls r0, 24 - cmp r0, 0 - bne _08073A88 - movs r6, 0x3 - b _08073A6A - .align 2, 0 -_08073A44: .4byte gUnknown_203B440 -_08073A48: .4byte gUnknown_202F350 -_08073A4C: .4byte gDungeonGlobalData -_08073A50: .4byte 0x000135cc -_08073A54: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8071598 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08073A88 - movs r6, 0x1 -_08073A6A: - adds r0, r5, 0 - adds r1, r4, 0 - bl CanSee - lsls r0, 24 - cmp r0, 0 - beq _08073A88 - mov r2, r8 - str r2, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r9 - adds r3, r6, 0 - bl sub_8073B78 -_08073A88: - adds r7, 0x1 - cmp r7, 0x13 - ble _08073A0A - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80739DC - - thumb_func_start sub_8073AA0 -sub_8073AA0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - mov r10, r1 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r1, _08073B6C - movs r0, 0 - str r0, [r1] - movs r6, 0 - adds r7, r1, 0 -_08073AC0: - ldr r0, _08073B70 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _08073B74 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08073B56 - cmp r5, r4 - beq _08073B56 - adds r0, r5, 0 - adds r1, r4, 0 - bl CanSee - lsls r0, 24 - cmp r0, 0 - beq _08073B56 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8071598 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08073B56 - movs r3, 0x4 - ldrsh r1, [r4, r3] - movs r2, 0x4 - ldrsh r0, [r5, r2] - subs r2, r1, r0 - cmp r2, 0 - bge _08073B10 - negs r2, r2 -_08073B10: - movs r3, 0x6 - ldrsh r1, [r4, r3] - movs r3, 0x6 - ldrsh r0, [r5, r3] - subs r1, r0 - cmp r1, 0 - bge _08073B20 - negs r1, r1 -_08073B20: - cmp r1, r2 - bge _08073B26 - adds r1, r2, 0 -_08073B26: - cmp r1, 0xA - bgt _08073B56 - mov r0, r8 - cmp r0, 0 - bne _08073B44 - adds r0, r4, 0 - mov r1, r10 - movs r2, 0x1 - bl sub_8048F28 - bl sub_8084144 - lsls r0, 24 - cmp r0, 0 - beq _08073B56 -_08073B44: - ldr r2, [r7] - lsls r1, r2, 2 - add r1, r9 - ldrh r0, [r4, 0x4] - strh r0, [r1] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0x2] - adds r2, 0x1 - str r2, [r7] -_08073B56: - adds r6, 0x1 - cmp r6, 0x13 - ble _08073AC0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08073B6C: .4byte gUnknown_203B440 -_08073B70: .4byte gDungeonGlobalData -_08073B74: .4byte 0x000135cc - thumb_func_end sub_8073AA0 - - thumb_func_start sub_8073B78 -sub_8073B78: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - adds r5, r1, 0 - mov r9, r2 - mov r10, r3 - ldr r0, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r2, 0x4 - ldrsh r0, [r5, r2] - subs r2, r1, r0 - cmp r2, 0 - bge _08073BA2 - negs r2, r2 -_08073BA2: - movs r3, 0x6 - ldrsh r1, [r4, r3] - movs r6, 0x6 - ldrsh r0, [r5, r6] - subs r1, r0 - cmp r1, 0 - bge _08073BB2 - negs r1, r1 -_08073BB2: - ldr r0, [r4, 0x70] - adds r0, 0xE0 - ldrb r0, [r0] - cmp r0, 0 - bne _08073BCA - adds r0, r1, 0 - cmp r1, r2 - bge _08073BC4 - adds r0, r2, 0 -_08073BC4: - cmp r0, 0xA - ble _08073BCA - b _08073CDC -_08073BCA: - movs r6, 0x1 - negs r6, r6 - cmp r2, r1 - bne _08073C14 - movs r7, 0x4 - ldrsh r1, [r4, r7] - movs r2, 0x4 - ldrsh r0, [r5, r2] - ldrh r2, [r4, 0x4] - ldrh r3, [r5, 0x4] - cmp r1, r0 - bge _08073BFA - movs r6, 0x6 - ldrsh r1, [r4, r6] - movs r7, 0x6 - ldrsh r0, [r5, r7] - cmp r1, r0 - bge _08073BF2 - movs r6, 0x1 - b _08073C7E -_08073BF2: - cmp r1, r0 - ble _08073BFA - movs r6, 0x3 - b _08073C7E -_08073BFA: - lsls r1, r2, 16 - lsls r0, r3, 16 - movs r6, 0x7 - cmp r1, r0 - ble _08073C7A - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r2, 0x6 - ldrsh r0, [r5, r2] - cmp r1, r0 - ble _08073C7A - movs r6, 0x5 - b _08073C7E -_08073C14: - movs r3, 0x4 - ldrsh r1, [r4, r3] - movs r7, 0x4 - ldrsh r0, [r5, r7] - ldrh r2, [r4, 0x4] - ldrh r3, [r5, 0x4] - cmp r1, r0 - bne _08073C34 - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r7, 0x6 - ldrsh r0, [r5, r7] - cmp r1, r0 - bge _08073C34 - movs r6, 0 - b _08073C7E -_08073C34: - lsls r1, r2, 16 - lsls r0, r3, 16 - cmp r1, r0 - bge _08073C4C - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r7, 0x6 - ldrsh r0, [r5, r7] - cmp r1, r0 - bne _08073C4C - movs r6, 0x2 - b _08073C7E -_08073C4C: - lsls r1, r2, 16 - lsls r0, r3, 16 - cmp r1, r0 - bne _08073C64 - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r7, 0x6 - ldrsh r0, [r5, r7] - cmp r1, r0 - ble _08073C64 - movs r6, 0x4 - b _08073C7E -_08073C64: - lsls r1, r2, 16 - lsls r0, r3, 16 - cmp r1, r0 - ble _08073C7A - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r2, 0x6 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _08073C7A - movs r6, 0x6 -_08073C7A: - cmp r6, 0 - blt _08073CDC -_08073C7E: - ldr r0, _08073CC0 - adds r7, r6, r0 - ldrb r0, [r7] - cmp r0, 0 - bne _08073CDC - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0xA - bl sub_807C9F8 - lsls r0, 24 - cmp r0, 0 - beq _08073CDC - movs r0, 0x1 - strb r0, [r7] - ldr r1, _08073CC4 - ldr r0, _08073CC8 - ldr r0, [r0] - lsls r0, 2 - adds r1, r0, r1 - str r6, [r1] - ldr r1, _08073CCC - adds r4, r0, r1 - mov r3, r8 - cmp r3, 0 - bne _08073CD0 - adds r0, r5, 0 - mov r1, r9 - mov r2, r10 - bl sub_8048F28 - b _08073CD2 - .align 2, 0 -_08073CC0: .4byte gUnknown_202F350 -_08073CC4: .4byte gUnknown_202F330 -_08073CC8: .4byte gUnknown_203B440 -_08073CCC: .4byte gUnknown_202F358 -_08073CD0: - movs r0, 0x64 -_08073CD2: - str r0, [r4] - ldr r1, _08073CEC - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08073CDC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08073CEC: .4byte gUnknown_203B440 - thumb_func_end sub_8073B78 - - thumb_func_start sub_8073CF0 -sub_8073CF0: - push {lr} - bl sub_8067110 - pop {r0} - bx r0 - thumb_func_end sub_8073CF0 - - thumb_func_start sub_8073CFC -sub_8073CFC: - push {lr} - bl sub_80671A0 - pop {r0} - bx r0 - thumb_func_end sub_8073CFC - - thumb_func_start sub_8073D08 -sub_8073D08: - push {lr} - bl sub_8073D14 - pop {r0} - bx r0 - thumb_func_end sub_8073D08 - - thumb_func_start sub_8073D14 -sub_8073D14: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xB0 - adds r6, r0, 0 - ldr r4, [r6, 0x70] - bl sub_8045128 - ldr r5, [r0, 0x14] - cmp r5, 0 - bne _08073D30 - b _0807407A -_08073D30: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08073D3C - b _0807407A -_08073D3C: - ldr r0, _08073D68 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - ldrb r0, [r4, 0x7] - cmp r0, 0 - beq _08073D4E - b _0807407A -_08073D4E: - ldrb r0, [r4, 0x8] - cmp r0, 0x1 - bne _08073D56 - b _0807407A -_08073D56: - adds r0, r4, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _08073D64 - cmp r0, 0x47 - bne _08073D6C -_08073D64: - movs r0, 0x1 - b _08073D6E - .align 2, 0 -_08073D68: .4byte gAvailablePokemonNames -_08073D6C: - movs r0, 0 -_08073D6E: - cmp r0, 0 - beq _08073D74 - b _0807407A -_08073D74: - adds r0, r4, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08073D80 - b _0807407A -_08073D80: - ldr r0, [r6, 0x70] - mov r10, r0 - adds r0, r5, 0 - bl sub_8045108 - adds r5, r0, 0 - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08073D98 - b _0807407A -_08073D98: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8071518 - lsls r0, 24 - cmp r0, 0 - beq _08073DC8 - ldr r0, _08073DBC - adds r1, r5, 0 - bl sub_8045BF8 - ldr r0, _08073DC0 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _08073DC4 - b _0807404C - .align 2, 0 -_08073DBC: .4byte gUnknown_202DE58 -_08073DC0: .4byte gAvailablePokemonNames -_08073DC4: .4byte gUnknown_80F8F88 -_08073DC8: - mov r1, r10 - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _08073E24 - ldrb r0, [r5, 0x2] - bl GetItemType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08073E24 - mov r7, r10 - ldrb r0, [r7, 0x6] - cmp r0, 0 - beq _08073DF4 - ldr r0, _08073DF0 - bl PlaySoundEffect - b _08073DFC - .align 2, 0 -_08073DF0: .4byte 0x0000014b -_08073DF4: - movs r0, 0xA6 - lsls r0, 1 - bl PlaySoundEffect -_08073DFC: - adds r0, r5, 0 - bl GetMoneyValue - bl AddToTeamMoney - ldr r0, _08073E1C - adds r1, r5, 0 - bl sub_8045BF8 - adds r0, r6, 0x4 - movs r1, 0x1 - bl sub_80461C8 - ldr r0, _08073E20 - b _0807404C - .align 2, 0 -_08073E1C: .4byte gUnknown_202DE58 -_08073E20: .4byte gUnknown_80F9054 -_08073E24: - ldr r0, _08073E64 - ldr r0, [r0] - ldr r1, _08073E68 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08073E70 - mov r7, r10 - ldrb r0, [r7, 0x6] - cmp r0, 0 - bne _08073E70 - movs r4, 0 - add r2, sp, 0x54 - adds r7, 0x60 - ldr r0, _08073E6C - mov r1, sp - ldr r0, [r0] - adds r3, r2, 0 -_08073E48: - stm r3!, {r0} - stm r1!, {r4} - adds r0, 0x4 - adds r4, 0x1 - cmp r4, 0x13 - ble _08073E48 - str r7, [r2, 0x50] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x50] - movs r0, 0x15 - mov r8, r0 - b _08073E80 - .align 2, 0 -_08073E64: .4byte gDungeonGlobalData -_08073E68: .4byte 0x0000065b -_08073E6C: .4byte gTeamInventory_203B460 -_08073E70: - mov r0, r10 - adds r0, 0x60 - str r0, [sp, 0x54] - movs r0, 0x1 - negs r0, r0 - str r0, [sp] - movs r1, 0x1 - mov r8, r1 -_08073E80: - ldrb r0, [r5, 0x2] - add r7, sp, 0xA8 - strb r0, [r7] - adds r0, r7, 0 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08073E90 - b _08073FA8 -_08073E90: - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08073E9C - b _08073FA8 -_08073E9C: - movs r1, 0x1 - negs r1, r1 - mov r12, r1 - mov r7, r12 - str r7, [sp, 0xAC] - movs r4, 0 - cmp r4, r8 - bge _08073EEC - ldr r0, _08073F94 - mov r9, r0 - add r3, sp, 0x54 -_08073EB2: - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08073EE4 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08073EE4 - ldr r1, [r5] - mov r7, r9 - ands r1, r7 - ldr r0, [r2] - ands r0, r7 - cmp r1, r0 - bne _08073EE4 - ldrb r0, [r2, 0x1] - cmp r0, 0x63 - beq _08073EE4 - ldr r1, [sp, 0xAC] - cmp r1, r0 - bge _08073EE4 - str r0, [sp, 0xAC] - mov r12, r4 -_08073EE4: - adds r3, 0x4 - adds r4, 0x1 - cmp r4, r8 - blt _08073EB2 -_08073EEC: - movs r0, 0x1 - negs r0, r0 - cmp r12, r0 - bne _08073F40 - mov r7, r12 - str r7, [sp, 0xAC] - movs r4, 0 - cmp r4, r8 - bge _08073F38 - add r0, sp, 0xA8 - ldrb r0, [r0] - mov r9, r0 - add r3, sp, 0x54 -_08073F06: - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08073F30 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08073F30 - ldrb r1, [r2, 0x2] - cmp r9, r1 - bne _08073F30 - ldrb r0, [r2, 0x1] - cmp r0, 0x63 - beq _08073F30 - ldr r7, [sp, 0xAC] - cmp r7, r0 - bge _08073F30 - str r0, [sp, 0xAC] - mov r12, r4 -_08073F30: - adds r3, 0x4 - adds r4, 0x1 - cmp r4, r8 - blt _08073F06 -_08073F38: - movs r0, 0x1 - negs r0, r0 - cmp r12, r0 - beq _08073FA8 -_08073F40: - add r0, sp, 0x54 - mov r1, r12 - lsls r4, r1, 2 - adds r3, r0, r4 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r5, 0x1] - adds r1, r0 - cmp r1, 0x62 - ble _08073F56 - movs r1, 0x63 -_08073F56: - strb r1, [r2, 0x1] - ldrb r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08073F6C - ldr r0, [r3] - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_08073F6C: - ldr r0, _08073F98 - adds r1, r5, 0 - bl sub_8045BF8 - adds r0, r6, 0x4 - movs r1, 0x1 - bl sub_80461C8 - movs r0, 0xA5 - lsls r0, 1 - bl PlaySoundEffect - mov r7, sp - adds r0, r7, r4 - ldr r0, [r0] - cmp r0, 0 - bge _08073FA0 - ldr r0, _08073F9C - b _0807404C - .align 2, 0 -_08073F94: .4byte 0x00ff0008 -_08073F98: .4byte gUnknown_202DE58 -_08073F9C: .4byte gUnknown_80F9018 -_08073FA0: - ldr r0, _08073FA4 - b _0807404C - .align 2, 0 -_08073FA4: .4byte gUnknown_80F9050 -_08073FA8: - movs r4, 0 - cmp r4, r8 - bge _08073FD2 - ldr r0, [sp, 0x54] - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08073FD2 - movs r3, 0x1 - add r2, sp, 0x54 -_08073FBE: - adds r2, 0x4 - adds r4, 0x1 - cmp r4, r8 - bge _08073FD2 - ldr r0, [r2] - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08073FBE -_08073FD2: - cmp r4, r8 - bne _08073FEC - ldr r0, _08073FE4 - adds r1, r5, 0 - bl sub_8045BF8 - ldr r0, _08073FE8 - b _0807404C - .align 2, 0 -_08073FE4: .4byte gUnknown_202DE58 -_08073FE8: .4byte gUnknown_80F8F54 -_08073FEC: - mov r1, r10 - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _08074000 - ldr r0, _08073FFC - bl PlaySoundEffect - b _08074008 - .align 2, 0 -_08073FFC: .4byte 0x0000014b -_08074000: - movs r0, 0xA5 - lsls r0, 1 - bl PlaySoundEffect -_08074008: - lsls r0, r4, 2 - add r0, sp - ldr r0, [r0] - cmp r0, 0 - bge _08074034 - ldr r0, [r5] - mov r7, r10 - str r0, [r7, 0x60] - ldr r0, _0807402C - adds r1, r5, 0 - bl sub_8045BF8 - adds r0, r6, 0x4 - movs r1, 0x1 - bl sub_80461C8 - ldr r0, _08074030 - b _0807404C - .align 2, 0 -_0807402C: .4byte gUnknown_202DE58 -_08074030: .4byte gUnknown_80F9018 -_08074034: - adds r0, r5, 0 - bl AddItemToInventory - lsls r0, 24 - cmp r0, 0 - beq _08074060 - ldr r0, _08074058 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0807405C -_0807404C: - ldr r1, [r0] - adds r0, r6, 0 - bl sub_805239C - b _0807407A - .align 2, 0 -_08074058: .4byte gAvailablePokemonNames -_0807405C: .4byte gUnknown_80F8FAC -_08074060: - ldr r0, _0807408C - adds r1, r5, 0 - bl sub_8045BF8 - adds r0, r6, 0x4 - movs r1, 0x1 - bl sub_80461C8 - ldr r0, _08074090 - ldr r1, [r0] - adds r0, r6, 0 - bl sub_805239C -_0807407A: - add sp, 0xB0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807408C: .4byte gUnknown_202DE58 -_08074090: .4byte gUnknown_80F9050 - thumb_func_end sub_8073D14 - - thumb_func_start sub_8074094 -sub_8074094: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - adds r5, r0, 0 - cmp r5, 0 - bne _080740AA - bl _08074B2E -_080740AA: - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080740B8 - bl _08074B2E -_080740B8: - bl sub_8044B28 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _080740C8 - bl _08074B2E -_080740C8: - ldr r0, [r5, 0x70] - mov r8, r0 - movs r0, 0xA3 - lsls r0, 1 - add r0, r8 - strb r6, [r0] - bl sub_805229C - adds r0, r5, 0 - bl sub_807E8F0 - adds r0, r5, 0 - movs r1, 0x16 - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _08074170 - ldr r4, _0807434C - add r4, r8 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _08074102 - movs r0, 0x13 - strb r0, [r4] -_08074102: - movs r0, 0x64 - bl DungeonRandomCapped - ldr r2, _08074350 - ldrb r1, [r4] - lsls r1, 1 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _08074170 - strb r6, [r4] - adds r0, r5, 0 - bl sub_80444F4 - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074136 - bl _08074B2E -_08074136: - bl sub_8044B28 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08074146 - bl _08074B2E -_08074146: - adds r0, r5, 0 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl sub_807D148 - mov r3, r8 - ldrb r0, [r3, 0x7] - cmp r0, 0 - bne _0807415C - b _080743B0 -_0807415C: - ldr r1, _08074354 - ldr r0, [r1] - strb r4, [r0, 0x1] - ldr r0, [r1] - movs r4, 0xB8 - lsls r4, 3 - adds r0, r4 - movs r1, 0x1 - negs r1, r1 - str r1, [r0] -_08074170: - mov r1, r8 - ldrb r0, [r1, 0x7] - cmp r0, 0 - bne _0807417A - b _080743B0 -_0807417A: - movs r2, 0 - mov r9, r2 - movs r4, 0xA - adds r0, r5, 0 - movs r1, 0x17 - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _08074190 - movs r4, 0 -_08074190: - adds r0, r5, 0 - movs r1, 0x1F - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _080741A0 - subs r4, 0x1 -_080741A0: - adds r0, r5, 0 - movs r1, 0x10 - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - beq _080741B0 - subs r4, 0x1 -_080741B0: - adds r0, r5, 0 - movs r1, 0x1B - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _080741C0 - adds r4, 0x1 -_080741C0: - adds r0, r5, 0 - movs r1, 0xA - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _080741D0 - adds r4, 0x1 -_080741D0: - adds r0, r5, 0 - movs r1, 0x2B - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _080741E0 - adds r4, 0x1 -_080741E0: - cmp r4, 0 - bge _080741E6 - movs r4, 0 -_080741E6: - cmp r4, 0x13 - ble _080741EC - movs r4, 0x13 -_080741EC: - mov r3, r9 - str r3, [sp, 0x8] - ldr r0, _08074358 - str r0, [sp, 0xC] - add r6, sp, 0x10 - lsls r2, r4, 3 - ldr r0, _0807435C - adds r2, r0 - adds r0, r6, 0 - add r1, sp, 0x8 - bl sub_800A34C - ldr r2, _08074360 - add r2, r8 - ldrb r0, [r2] - cmp r0, 0x1 - bls _0807421E - ldr r1, _08074364 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r6, 0x4] - adds r0, r1 - str r0, [r6, 0x4] -_0807421E: - mov r4, r9 - strb r4, [r2] - movs r4, 0x9E - lsls r4, 1 - add r4, r8 - ldr r7, [r4] - add r0, sp, 0x18 - adds r1, r6, 0 - bl sub_80943A8 - ldr r2, [sp, 0x18] - add r0, sp, 0x1C - adds r1, r7, 0 - bl sub_80942C0 - ldr r0, [sp, 0x1C] - str r0, [r4] - movs r6, 0x1 - adds r0, r7, 0 - bl sub_8094450 - cmp r0, 0x13 - ble _0807425C - ldr r0, [r4] - bl sub_8094450 - cmp r0, 0x13 - bgt _0807425C - ldr r0, _08074368 - ldr r0, [r0] - mov r9, r0 -_0807425C: - adds r0, r7, 0 - bl sub_8094450 - cmp r0, 0x9 - ble _0807427C - movs r0, 0x9E - lsls r0, 1 - add r0, r8 - ldr r0, [r0] - bl sub_8094450 - cmp r0, 0x9 - bgt _0807427C - ldr r0, _0807436C - ldr r0, [r0] - mov r9, r0 -_0807427C: - movs r4, 0x9E - lsls r4, 1 - add r4, r8 - ldr r0, [r4] - bl sub_8094450 - cmp r0, 0 - bne _08074298 - add r0, sp, 0x20 - movs r1, 0 - bl sub_80943A0 - ldr r0, [sp, 0x20] - str r0, [r4] -_08074298: - ldr r0, [r4] - bl sub_8094450 - cmp r0, 0 - bge _080742AE - add r0, sp, 0x24 - movs r1, 0 - bl sub_80943A0 - ldr r0, [sp, 0x24] - str r0, [r4] -_080742AE: - ldr r0, [r4] - bl sub_8094450 - cmp r0, 0 - bne _08074384 - bl sub_805E804 - adds r0, r5, 0 - bl sub_80444F4 - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080742D8 - bl _08074B2E -_080742D8: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080742E6 - bl _08074B2E -_080742E6: - ldr r3, _08074354 - ldr r0, [r3] - ldr r2, _08074370 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x9 - bhi _080742F8 - adds r0, 0x1 - strb r0, [r1] -_080742F8: - ldr r0, [r3] - adds r0, r2 - ldrb r2, [r0] - cmp r2, 0x1 - bne _08074308 - ldr r0, _08074374 - ldr r0, [r0] - mov r9, r0 -_08074308: - cmp r2, 0x2 - bne _08074314 - ldr r0, _08074378 - ldr r0, [r0] - mov r9, r0 - movs r6, 0 -_08074314: - cmp r2, 0x3 - bne _08074320 - ldr r0, _0807437C - ldr r0, [r0] - mov r9, r0 - movs r6, 0 -_08074320: - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - ldr r3, _08074380 - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xE - bl sub_806F324 - movs r1, 0xA3 - lsls r1, 1 - add r1, r8 - movs r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - bl sub_8094450 - cmp r0, 0 - beq _08074390 - b _080743B0 - .align 2, 0 -_0807434C: .4byte 0x00000169 -_08074350: .4byte gUnknown_80F5594 -_08074354: .4byte gDungeonGlobalData -_08074358: .4byte 0x0000199a -_0807435C: .4byte gUnknown_80F54F4 -_08074360: .4byte 0x00000153 -_08074364: .4byte gUnknown_80F60DC -_08074368: .4byte gUnknown_80FD594 -_0807436C: .4byte gUnknown_80FD5B8 -_08074370: .4byte 0x00000679 -_08074374: .4byte gUnknown_80FD5DC -_08074378: .4byte gUnknown_80FD608 -_0807437C: .4byte gUnknown_80FD628 -_08074380: .4byte 0x00000211 -_08074384: - ldr r0, _08074408 - ldr r0, [r0] - ldr r1, _0807440C - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_08074390: - mov r2, r9 - cmp r2, 0 - beq _080743B0 - cmp r6, 0 - beq _080743A0 - ldr r0, _08074410 - bl PlaySoundEffect -_080743A0: - adds r0, r5, 0 - mov r1, r9 - bl SendMessage - movs r0, 0x1E - movs r1, 0x32 - bl sub_803E708 -_080743B0: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080743BE - b _08074B2E -_080743BE: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080743CA - b _08074B2E -_080743CA: - ldr r0, _08074408 - ldr r0, [r0] - ldr r3, _08074414 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08074480 - adds r0, r5, 0 - bl sub_807E580 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _0807441C - adds r0, r5, 0 - movs r1, 0x6 - bl sub_8071858 - lsls r0, 24 - cmp r0, 0 - bne _08074466 - ldr r0, _08074418 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r3, 0x88 - lsls r3, 2 - adds r0, r5, 0 - movs r2, 0x12 - bl sub_806F324 - b _08074466 - .align 2, 0 -_08074408: .4byte gDungeonGlobalData -_0807440C: .4byte 0x00000679 -_08074410: .4byte 0x00000153 -_08074414: .4byte 0x0000e266 -_08074418: .4byte gUnknown_80F4F8E -_0807441C: - adds r0, r5, 0 - bl sub_807E580 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08074466 - adds r0, r5, 0 - movs r1, 0x9 - bl sub_8071858 - lsls r0, 24 - cmp r0, 0 - bne _08074466 - adds r0, r5, 0 - movs r1, 0xD - bl sub_8071858 - lsls r0, 24 - cmp r0, 0 - bne _08074466 - adds r0, r5, 0 - movs r1, 0x11 - bl sub_8071858 - lsls r0, 24 - cmp r0, 0 - bne _08074466 - ldr r0, _08074608 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r3, 0x88 - lsls r3, 2 - adds r0, r5, 0 - movs r2, 0x12 - bl sub_806F324 -_08074466: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074474 - b _08074B2E -_08074474: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074480 - b _08074B2E -_08074480: - movs r0, 0x64 - bl DungeonRandomCapped - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0x21 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _080744D8 - ldr r0, _0807460C - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r4, r0 - bge _080744D8 - adds r0, r5, 0 - bl sub_8070A58 - lsls r0, 24 - cmp r0, 0 - beq _080744D8 - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080744C0 - b _08074B2E -_080744C0: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080744CC - b _08074B2E -_080744CC: - adds r0, r5, 0 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8079F20 -_080744D8: - adds r0, r5, 0 - movs r1, 0xB - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0807450C - ldr r2, _08074610 - add r2, r8 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldrb r1, [r2] - ldr r0, _08074614 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r1, r0 - blt _0807450C - movs r0, 0 - strb r0, [r2] - adds r0, r5, 0 - adds r1, r5, 0 - movs r2, 0x7F - movs r3, 0 - bl sub_8077910 -_0807450C: - mov r0, r8 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0807453C - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807452A - b _08074B2E -_0807452A: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074536 - b _08074B2E -_08074536: - adds r0, r5, 0 - bl sub_80420B8 -_0807453C: - mov r0, r8 - adds r0, 0xAC - ldrb r1, [r0] - adds r6, r0, 0 - cmp r1, 0x1 - bne _080745B6 - mov r4, r8 - adds r4, 0xAE - ldrb r0, [r4] - cmp r0, 0 - beq _0807455C - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - bne _0807459C -_0807455C: - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074570 - b _08074B2E -_08074570: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _0807457C - b _08074B2E -_0807457C: - ldr r0, _08074618 - ldrh r0, [r0] - strb r0, [r4] - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - ldr r0, _0807461C - movs r2, 0 - ldrsh r1, [r0, r2] - movs r3, 0x82 - lsls r3, 2 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_806F324 -_0807459C: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080745AA - b _08074B2E -_080745AA: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080745B6 - b _08074B2E -_080745B6: - ldrb r0, [r6] - cmp r0, 0x2 - bne _08074628 - mov r4, r8 - adds r4, 0xAE - ldrb r0, [r4] - cmp r0, 0 - beq _080745D0 - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - bne _08074696 -_080745D0: - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080745E4 - b _08074B2E -_080745E4: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080745F0 - b _08074B2E -_080745F0: - ldr r0, _08074620 - ldrh r0, [r0] - strb r0, [r4] - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - ldr r0, _08074624 - movs r3, 0 - ldrsh r1, [r0, r3] - b _0807468C - .align 2, 0 -_08074608: .4byte gUnknown_80F4F8E -_0807460C: .4byte gUnknown_80F4E0C -_08074610: .4byte 0x00000113 -_08074614: .4byte gUnknown_80F4F30 -_08074618: .4byte gUnknown_80F4F32 -_0807461C: .4byte gUnknown_80F4F70 -_08074620: .4byte gUnknown_80F4F34 -_08074624: .4byte gUnknown_80F4F72 -_08074628: - cmp r0, 0x3 - bne _080746B0 - mov r2, r8 - adds r2, 0xAE - ldrb r0, [r2] - cmp r0, 0 - beq _08074640 - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bne _08074696 -_08074640: - mov r1, r8 - adds r1, 0xAF - ldrb r4, [r1] - cmp r4, 0x1C - bhi _0807464E - adds r0, r4, 0x1 - strb r0, [r1] -_0807464E: - ldr r0, _08074718 - ldrh r0, [r0] - strb r0, [r2] - cmp r4, 0x1C - ble _0807465A - movs r4, 0x1D -_0807465A: - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807466E - b _08074B2E -_0807466E: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _0807467A - b _08074B2E -_0807467A: - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - ldr r1, _0807471C - lsls r0, r4, 1 - adds r0, r1 - movs r4, 0 - ldrsh r1, [r0, r4] -_0807468C: - ldr r3, _08074720 - adds r0, r5, 0 - movs r2, 0x3 - bl sub_806F324 -_08074696: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080746A4 - b _08074B2E -_080746A4: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080746B0 - b _08074B2E -_080746B0: - mov r0, r8 - adds r0, 0xB0 - ldrb r1, [r0] - mov r10, r0 - cmp r1, 0x7 - bne _08074730 - mov r4, r8 - adds r4, 0xB9 - ldrb r0, [r4] - cmp r0, 0 - beq _080746D0 - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - bne _08074786 -_080746D0: - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080746E4 - b _08074B2E -_080746E4: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080746F0 - b _08074B2E -_080746F0: - ldr r0, _08074724 - ldrh r0, [r0] - strb r0, [r4] - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - mov r0, r8 - adds r0, 0xB4 - ldr r1, [r0] - adds r0, r5, 0 - bl sub_8041C4C - ldr r0, _08074728 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r3, _0807472C - adds r0, r5, 0 - movs r2, 0x2 - b _08074782 - .align 2, 0 -_08074718: .4byte gUnknown_80F4F36 -_0807471C: .4byte gUnknown_80F4FC8 -_08074720: .4byte 0x0000020a -_08074724: .4byte gUnknown_80F4F38 -_08074728: .4byte gUnknown_80F4F74 -_0807472C: .4byte 0x00000209 -_08074730: - cmp r1, 0x4 - bne _080747B0 - mov r4, r8 - adds r4, 0xB9 - ldrb r0, [r4] - cmp r0, 0 - beq _08074748 - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - bne _08074786 -_08074748: - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807475C - b _08074B2E -_0807475C: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074768 - b _08074B2E -_08074768: - ldr r0, _080747A4 - ldrh r0, [r0] - strb r0, [r4] - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - ldr r0, _080747A8 - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r3, _080747AC - adds r0, r5, 0 - movs r2, 0x5 -_08074782: - bl sub_806F324 -_08074786: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074794 - b _08074B2E -_08074794: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080747A0 - b _08074B2E -_080747A0: - b _08074802 - .align 2, 0 -_080747A4: .4byte gUnknown_80F4F3A -_080747A8: .4byte gUnknown_80F4F76 -_080747AC: .4byte 0x0000020b -_080747B0: - cmp r1, 0x5 - bne _08074802 - mov r4, r8 - adds r4, 0xB9 - ldrb r0, [r4] - cmp r0, 0 - beq _080747C8 - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - bne _08074802 -_080747C8: - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080747DC - b _08074B2E -_080747DC: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080747E8 - b _08074B2E -_080747E8: - ldr r0, _080748D4 - ldrh r0, [r0] - strb r0, [r4] - ldr r0, _080748D8 - movs r4, 0 - ldrsh r2, [r0, r4] - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - adds r1, r5, 0 - movs r3, 0 - bl HealTargetHP -_08074802: - mov r0, r8 - adds r0, 0xC8 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0807488A - mov r2, r8 - adds r2, 0xCC - ldrb r0, [r2] - cmp r0, 0 - beq _08074820 - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bne _08074870 -_08074820: - mov r0, r8 - movs r3, 0x10 - ldrsh r1, [r0, r3] - cmp r1, 0 - bge _0807482C - adds r1, 0x3 -_0807482C: - asrs r4, r1, 2 - cmp r4, 0 - bne _08074834 - movs r4, 0x1 -_08074834: - ldr r0, _080748DC - ldrh r0, [r0] - strb r0, [r2] - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807484E - b _08074B2E -_0807484E: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _0807485A - b _08074B2E -_0807485A: - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - movs r3, 0x83 - lsls r3, 2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl sub_806F324 -_08074870: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807487E - b _08074B2E -_0807487E: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _0807488A - b _08074B2E -_0807488A: - mov r3, r8 - adds r3, 0xD0 - ldrb r4, [r3] - mov r9, r4 - cmp r4, 0x1 - beq _08074898 - b _080749AE -_08074898: - mov r2, r8 - adds r2, 0xDA - ldrb r0, [r2] - cmp r0, 0 - beq _080748AC - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bne _08074994 -_080748AC: - ldr r0, _080748E0 - movs r1, 0 - ldrsh r6, [r0, r1] - ldr r0, _080748E4 - ldr r1, [r0] - mov r0, r8 - adds r0, 0xD8 - ldrb r0, [r0] - lsls r0, 2 - ldr r4, _080748E8 - adds r1, r4 - adds r1, r0 - ldr r4, [r1] - ldr r0, _080748EC - ldrh r0, [r0] - strb r0, [r2] - cmp r4, 0 - bne _080748F0 - strb r4, [r3] - b _08074994 - .align 2, 0 -_080748D4: .4byte gUnknown_80F4F3C -_080748D8: .4byte gUnknown_80F4FB2 -_080748DC: .4byte gUnknown_80F4F3E -_080748E0: .4byte gUnknown_80F4FB4 -_080748E4: .4byte gDungeonGlobalData -_080748E8: .4byte 0x000135cc -_080748EC: .4byte gUnknown_80F4F40 -_080748F0: - ldr r0, [r4, 0x70] - adds r0, 0x98 - mov r1, r8 - adds r1, 0xD4 - ldr r2, [r0] - ldr r0, [r1] - cmp r2, r0 - beq _08074906 - movs r0, 0 - strb r0, [r3] - b _08074994 -_08074906: - adds r0, r5, 0 - movs r1, 0x3A - bl HasAbility - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - bl sub_80444F4 - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807492C - b _08074B2E -_0807492C: - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0807493A - b _08074B2E -_0807493A: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074946 - b _08074B2E -_08074946: - mov r1, r10 - ldrb r0, [r1] - cmp r0, 0x1 - beq _08074994 - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - ldr r3, _08074980 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x9 - bl sub_806F324 - cmp r7, 0 - beq _08074984 - adds r0, r4, 0 - adds r1, r4, 0 - bl sub_807A96C - movs r3, 0xFD - lsls r3, 1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xD - bl sub_806F324 - b _08074994 - .align 2, 0 -_08074980: .4byte 0x0000020d -_08074984: - mov r2, r9 - str r2, [sp] - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - movs r3, 0 - bl HealTargetHP -_08074994: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080749A2 - b _08074B2E -_080749A2: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080749AE - b _08074B2E -_080749AE: - mov r4, r8 - adds r4, 0xFD - ldrb r0, [r4] - cmp r0, 0 - beq _08074A46 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074A46 - movs r0, 0 - bl sub_807520C - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _080749D8 - b _08074B2E -_080749D8: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080749E4 - b _08074B2E -_080749E4: - ldr r0, _08074A18 - adds r1, r5, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _08074A1C - ldr r1, [r0] - adds r0, r5, 0 - bl SendMessage - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_807A96C - mov r0, r8 - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0x7 - bne _08074A24 - ldr r0, _08074A20 - ldr r1, [r0] - adds r0, r5, 0 - bl SendMessage - b _08074A30 - .align 2, 0 -_08074A18: .4byte gUnknown_202DFE8 -_08074A1C: .4byte gUnknown_80FEB30 -_08074A20: .4byte gPtrProtectSavedItMessage -_08074A24: - ldr r1, _08074B40 - ldr r3, _08074B44 - adds r0, r5, 0 - movs r2, 0xB - bl sub_806F324 -_08074A30: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08074B2E - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08074B2E -_08074A46: - mov r0, r8 - adds r0, 0xC0 - ldrb r1, [r0] - adds r7, r0, 0 - cmp r1, 0x1 - bne _08074AD4 - mov r4, r8 - adds r4, 0xC1 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074AD4 - strb r0, [r7] - adds r0, r5, 0 - movs r1, 0 - bl CannotMove - lsls r0, 24 - cmp r0, 0 - bne _08074AD4 - adds r0, r5, 0 - movs r1, 0 - bl sub_8070D04 - lsls r0, 24 - cmp r0, 0 - bne _08074AD4 - adds r0, r5, 0 - bl CannotAct - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08074AD4 - movs r0, 0 - bl sub_807520C - add r4, sp, 0x28 - ldr r1, _08074B48 - adds r0, r4, 0 - bl InitPokemonMove - ldrb r0, [r4] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4] - str r6, [sp] - str r4, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8055FA0 - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08074B2E - bl sub_8044B28 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08074B2E - mov r0, r8 - adds r0, 0xA0 - str r1, [r0] -_08074AD4: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08074B2E - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08074B2E - ldrb r0, [r7] - cmp r0, 0xC - bne _08074B1E - mov r4, r8 - adds r4, 0xC1 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074B1E - strb r0, [r7] - movs r1, 0xA5 - lsls r1, 1 - add r1, r8 - strb r0, [r1] - ldr r0, _08074B4C - adds r1, r5, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _08074B50 - ldr r1, [r0] - adds r0, r5, 0 - bl SendMessage -_08074B1E: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08074B2E - bl sub_8044B28 -_08074B2E: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08074B40: .4byte 0x0000270f -_08074B44: .4byte 0x0000020e -_08074B48: .4byte 0x00000165 -_08074B4C: .4byte gAvailablePokemonNames -_08074B50: .4byte gUnknown_80FABD8 - thumb_func_end sub_8074094 - - thumb_func_start sub_8074B54 -sub_8074B54: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - cmp r7, 0 - bne _08074B62 - b _08074F96 -_08074B62: - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074B6E - b _08074F96 -_08074B6E: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074B7A - b _08074F96 -_08074B7A: - bl sub_805229C - ldr r6, [r7, 0x70] - movs r1, 0xA3 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08074C48 - adds r0, r6, 0 - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0x2 - beq _08074C48 - cmp r0, 0x3 - beq _08074C48 - movs r4, 0 - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _08074BAE - movs r2, 0x2 - ldrsh r0, [r6, r2] - bl GetUnk1B - lsls r0, 24 - lsrs r4, r0, 24 -_08074BAE: - cmp r4, 0 - beq _08074C48 - adds r0, r7, 0 - movs r1, 0xA - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _08074BC8 - ldr r0, _08074EF8 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r4, r0 -_08074BC8: - adds r0, r6, 0 - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0x6 - bne _08074BDA - ldr r0, _08074EFC - movs r1, 0 - ldrsh r0, [r0, r1] - adds r4, r0 -_08074BDA: - adds r0, r7, 0 - movs r1, 0x3 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _08074BFE - adds r0, r7, 0 - bl sub_807E580 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _08074BFE - ldr r0, _08074F00 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r0 -_08074BFE: - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - ble _08074C08 - adds r4, r0, 0 -_08074C08: - cmp r4, 0x1D - bgt _08074C0E - movs r4, 0x1E -_08074C0E: - movs r3, 0xFC - lsls r3, 1 - adds r1, r6, r3 - ldrh r0, [r6, 0x10] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, r4 - blt _08074C38 -_08074C24: - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - ldrh r0, [r1] - subs r0, r4 - strh r0, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, r4 - bge _08074C24 -_08074C38: - movs r3, 0xE - ldrsh r1, [r6, r3] - ldrh r2, [r6, 0x10] - movs r3, 0x10 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _08074C48 - strh r2, [r6, 0xE] -_08074C48: - adds r0, r6, 0 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0 - beq _08074C6E - adds r4, r6, 0 - adds r4, 0xA9 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074C6E - adds r0, r7, 0 - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_807A124 -_08074C6E: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074C7C - b _08074F96 -_08074C7C: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074C88 - b _08074F96 -_08074C88: - adds r0, r6, 0 - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0 - beq _08074CAA - adds r4, r6, 0 - adds r4, 0xAD - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074CAA - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A290 -_08074CAA: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074CB8 - b _08074F96 -_08074CB8: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074CC4 - b _08074F96 -_08074CC4: - adds r0, r6, 0 - adds r0, 0xB0 - ldrb r0, [r0] - cmp r0, 0 - beq _08074CE6 - adds r4, r6, 0 - adds r4, 0xB8 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074CE6 - adds r0, r7, 0 - adds r1, r7, 0 - bl SendImmobilizeEndMessage -_08074CE6: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074CF4 - b _08074F96 -_08074CF4: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074D00 - b _08074F96 -_08074D00: - adds r0, r6, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0 - beq _08074D22 - adds r4, r6, 0 - adds r4, 0xBD - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074D22 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A400 -_08074D22: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074D30 - b _08074F96 -_08074D30: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074D3C - b _08074F96 -_08074D3C: - adds r0, r6, 0 - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0 - beq _08074D5E - adds r4, r6, 0 - adds r4, 0xC5 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074D5E - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A4C8 -_08074D5E: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074D6C - b _08074F96 -_08074D6C: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074D78 - b _08074F96 -_08074D78: - adds r0, r6, 0 - adds r0, 0xC8 - ldrb r0, [r0] - cmp r0, 0 - beq _08074D9C - adds r4, r6, 0 - adds r4, 0xCB - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074D9C - adds r0, r7, 0 - adds r1, r7, 0 - movs r2, 0 - bl sub_807A5D0 -_08074D9C: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074DAA - b _08074F96 -_08074DAA: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074DB6 - b _08074F96 -_08074DB6: - adds r0, r6, 0 - adds r0, 0xD0 - ldrb r0, [r0] - cmp r0, 0 - beq _08074DD8 - adds r4, r6, 0 - adds r4, 0xD9 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074DD8 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A6C8 -_08074DD8: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074DE6 - b _08074F96 -_08074DE6: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074DF2 - b _08074F96 -_08074DF2: - adds r0, r6, 0 - adds r0, 0xDC - ldrb r0, [r0] - cmp r0, 0 - beq _08074E14 - adds r4, r6, 0 - adds r4, 0xDD - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074E14 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A734 -_08074E14: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074E22 - b _08074F96 -_08074E22: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074E2E - b _08074F96 -_08074E2E: - adds r0, r6, 0 - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0 - beq _08074E50 - adds r4, r6, 0 - adds r4, 0xE5 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074E50 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A7C8 -_08074E50: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074E5E - b _08074F96 -_08074E5E: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08074E6A - b _08074F96 -_08074E6A: - adds r0, r6, 0 - adds r0, 0xE8 - ldrb r0, [r0] - cmp r0, 0 - beq _08074E8C - adds r4, r6, 0 - adds r4, 0xE9 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074E8C - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A888 -_08074E8C: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _08074E9A - b _08074F96 -_08074E9A: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08074F96 - adds r0, r6, 0 - adds r0, 0xEC - ldrb r0, [r0] - cmp r0, 0 - beq _08074EC6 - adds r4, r6, 0 - adds r4, 0xED - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074EC6 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_807A924 -_08074EC6: - adds r0, r7, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08074F96 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08074F96 - adds r4, r6, 0 - adds r4, 0xFA - ldrb r0, [r4] - cmp r0, 0 - beq _08074F18 - adds r0, r4, 0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074F18 - ldr r0, _08074F04 - adds r1, r7, 0 - b _08074F08 - .align 2, 0 -_08074EF8: .4byte gUnknown_80F4FC4 -_08074EFC: .4byte gUnknown_80F4FC0 -_08074F00: .4byte gUnknown_80F4FC2 -_08074F04: .4byte gAvailablePokemonNames -_08074F08: - movs r2, 0 - bl SetMessageArgument - ldr r0, _08074FA0 - ldr r1, [r0] - adds r0, r7, 0 - bl SendMessage -_08074F18: - movs r0, 0 - mov r8, r0 - movs r5, 0 -_08074F1E: - ldr r1, _08074FA4 - adds r0, r6, r1 - adds r4, r0, r5 - ldrb r0, [r4] - cmp r0, 0 - beq _08074F3C - adds r0, r5, r1 - adds r0, r6, r0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074F3C - movs r2, 0x1 - mov r8, r2 -_08074F3C: - movs r3, 0x84 - lsls r3, 1 - adds r0, r6, r3 - adds r4, r0, r5 - ldrb r0, [r4] - cmp r0, 0 - beq _08074F5C - adds r0, r5, r3 - adds r0, r6, r0 - bl sub_80838EC - ldrb r0, [r4] - cmp r0, 0 - bne _08074F5C - movs r0, 0x1 - mov r8, r0 -_08074F5C: - adds r5, 0x1 - cmp r5, 0x4 - ble _08074F1E - mov r1, r8 - cmp r1, 0 - beq _08074F96 - ldr r0, [r7, 0x70] - movs r2, 0x82 - lsls r2, 1 - adds r0, r2 - ldr r4, [r0] - adds r0, r7, 0 - bl sub_8070774 - adds r5, r0, 0 - cmp r4, r5 - beq _08074F96 - ldr r0, _08074FA8 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - ldr r1, _08074FAC - lsls r0, r5, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl SendMessage -_08074F96: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08074FA0: .4byte gPtrStenchWavedOffMessage -_08074FA4: .4byte 0x0000010d -_08074FA8: .4byte gAvailablePokemonNames -_08074FAC: .4byte gUnknown_80FA124 - thumb_func_end sub_8074B54 - - thumb_func_start sub_8074FB0 -sub_8074FB0: - push {r4-r6,lr} - adds r3, r0, 0 - adds r5, r1, 0 - ldr r4, [r3, 0x70] - movs r1, 0xFA - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x3 - ble _08074FD0 - adds r1, r4, 0 - adds r1, 0x44 - movs r0, 0 - strh r0, [r1] - b _08075040 -_08074FD0: - ldr r0, _08074FE0 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0 - beq _08074FE8 - ldr r1, _08074FE4 - movs r0, 0x2 - b _08074FEC - .align 2, 0 -_08074FE0: .4byte gUnknown_203B46C -_08074FE4: .4byte gUnknown_202F378 -_08074FE8: - ldr r1, _08075048 - movs r0, 0x1 -_08074FEC: - str r0, [r1] - adds r6, r1, 0 - movs r1, 0xFA - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - movs r0, 0xC2 - lsls r0, 1 - adds r1, r0 - adds r1, r4, r1 - movs r0, 0 - strb r0, [r1, 0x1A] - str r5, [r1, 0xC] - ldrh r0, [r3, 0x4] - strh r0, [r1] - ldrh r0, [r3, 0x6] - strh r0, [r1, 0x2] - movs r3, 0 - ldrsh r0, [r2, r3] - str r0, [r1, 0x4] - movs r3, 0x2 - ldrsh r0, [r2, r3] - str r0, [r1, 0x8] - ldr r0, _0807504C - lsls r2, r5, 2 - adds r2, r0 - movs r5, 0 - ldrsh r0, [r2, r5] - ldr r3, [r6] - muls r0, r3 - str r0, [r1, 0x10] - movs r5, 0x2 - ldrsh r0, [r2, r5] - muls r0, r3 - str r0, [r1, 0x14] - adds r0, r4, 0 - bl sub_8075050 -_08075040: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08075048: .4byte gUnknown_202F378 -_0807504C: .4byte gUnknown_80F4D44 - thumb_func_end sub_8074FB0 - - thumb_func_start sub_8075050 -sub_8075050: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r0 - adds r6, r1, 0 - ldr r0, _08075070 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0 - beq _08075078 - ldr r1, _08075074 - movs r0, 0x2 - b _0807507C - .align 2, 0 -_08075070: .4byte gUnknown_203B46C -_08075074: .4byte gUnknown_202F378 -_08075078: - ldr r1, _080750D0 - movs r0, 0x1 -_0807507C: - str r0, [r1] - movs r1, 0xFA - lsls r1, 1 - add r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080750D4 - ldr r0, _080750D0 - ldr r1, [r0] - lsls r1, 1 - movs r0, 0x18 - bl __divsi3 - movs r1, 0xCE - lsls r1, 1 - add r1, r9 - strh r0, [r1] - movs r2, 0xCA - lsls r2, 1 - add r2, r9 - ldr r1, [r2] - lsls r1, 1 - str r1, [r2] - movs r2, 0xCC - lsls r2, 1 - add r2, r9 - ldr r1, [r2] - lsls r1, 1 - str r1, [r2] - strh r0, [r6, 0x18] - ldr r0, [r6, 0x10] - lsls r0, 1 - str r0, [r6, 0x10] - ldr r0, [r6, 0x14] - lsls r0, 1 - str r0, [r6, 0x14] - b _080751F8 - .align 2, 0 -_080750D0: .4byte gUnknown_202F378 -_080750D4: - cmp r0, 0x3 - bne _08075160 - ldr r1, [r6, 0x10] - str r1, [sp] - ldr r0, [r6, 0x14] - str r0, [sp, 0x4] - movs r4, 0xCE - lsls r4, 1 - add r4, r9 - movs r5, 0 - movs r7, 0x1 -_080750EA: - ldr r1, _0807515C - ldr r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - movs r0, 0x18 - bl __divsi3 - strh r0, [r4] - movs r3, 0xCA - lsls r3, 1 - add r3, r9 - adds r3, r5 - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - str r0, [r3] - movs r2, 0xCC - lsls r2, 1 - add r2, r9 - adds r2, r5 - ldr r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - str r0, [r2] - ldr r0, [r3] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [r3] - ldr r0, [r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [r2] - adds r4, 0x1C - adds r5, 0x1C - subs r7, 0x1 - cmp r7, 0 - bge _080750EA - ldr r1, _0807515C - ldr r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - movs r0, 0x18 - bl __divsi3 - strh r0, [r6, 0x18] - ldr r1, [sp] - lsls r0, r1, 1 - adds r0, r1 - str r0, [r6, 0x10] - ldr r1, [sp, 0x4] - lsls r0, r1, 1 - adds r0, r1 - str r0, [r6, 0x14] - b _080751F8 - .align 2, 0 -_0807515C: .4byte gUnknown_202F378 -_08075160: - cmp r0, 0x4 - bne _080751EC - ldr r0, [r6, 0x10] - str r0, [sp] - ldr r1, [r6, 0x14] - str r1, [sp, 0x4] - movs r7, 0xCE - lsls r7, 1 - add r7, r9 - movs r0, 0 - mov r8, r0 - movs r1, 0x2 - mov r10, r1 -_0807517A: - ldr r0, _080751E8 - ldr r1, [r0] - lsls r1, 2 - movs r0, 0x18 - bl __divsi3 - strh r0, [r7] - movs r4, 0xCA - lsls r4, 1 - add r4, r9 - add r4, r8 - ldr r0, [r4] - lsls r0, 2 - str r0, [r4] - movs r5, 0xCC - lsls r5, 1 - add r5, r9 - add r5, r8 - ldr r0, [r5] - lsls r0, 2 - str r0, [r5] - ldr r0, [r4] - movs r1, 0x3 - bl __divsi3 - str r0, [r4] - ldr r0, [r5] - movs r1, 0x3 - bl __divsi3 - str r0, [r5] - adds r7, 0x1C - movs r1, 0x1C - add r8, r1 - movs r0, 0x1 - negs r0, r0 - add r10, r0 - mov r1, r10 - cmp r1, 0 - bge _0807517A - ldr r0, _080751E8 - ldr r1, [r0] - lsls r1, 2 - movs r0, 0x18 - bl __divsi3 - strh r0, [r6, 0x18] - ldr r1, [sp] - lsls r0, r1, 2 - str r0, [r6, 0x10] - ldr r1, [sp, 0x4] - lsls r0, r1, 2 - str r0, [r6, 0x14] - b _080751F8 - .align 2, 0 -_080751E8: .4byte gUnknown_202F378 -_080751EC: - ldr r0, _08075208 - ldr r1, [r0] - movs r0, 0x18 - bl __divsi3 - strh r0, [r6, 0x18] -_080751F8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075208: .4byte gUnknown_202F378 - thumb_func_end sub_8075050 - - thumb_func_start sub_807520C -sub_807520C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r10, r0 - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r0, _08075238 - mov r1, r9 - strb r1, [r0] - ldr r0, _0807523C - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0 - beq _08075244 - ldr r1, _08075240 - movs r0, 0x2 - b _08075248 - .align 2, 0 -_08075238: .4byte gUnknown_202F32D -_0807523C: .4byte gUnknown_203B46C -_08075240: .4byte gUnknown_202F378 -_08075244: - ldr r1, _080752D0 - movs r0, 0x1 -_08075248: - str r0, [r1] - movs r2, 0 - mov r8, r2 -_0807524E: - ldr r0, _080752D4 - ldr r0, [r0] - mov r3, r8 - lsls r1, r3, 2 - ldr r4, _080752D8 - adds r0, r4 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0807534C - ldr r4, [r5, 0x70] - movs r1, 0xFA - lsls r1, 1 - adds r0, r4, r1 - movs r3, 0 - ldrsh r2, [r0, r3] - cmp r2, 0 - bne _080752E0 - ldr r0, _080752DC - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0807534C - strb r2, [r1] - movs r1, 0xB6 - lsls r1, 1 - adds r6, r4, r1 - ldr r1, [r6] - cmp r1, 0 - beq _0807534C - ldr r0, [r5, 0x4] - cmp r1, r0 - beq _0807534C - adds r0, r5, 0 - movs r1, 0x1 - bl CannotMove - lsls r0, 24 - cmp r0, 0 - beq _080752B2 - adds r0, r5, 0 - bl CannotAct - lsls r0, 24 - cmp r0, 0 - bne _0807534C -_080752B2: - adds r0, r5, 0x4 - adds r1, r6, 0 - bl sub_80983D8 - adds r1, r0, 0 - adds r0, r4, 0 - adds r0, 0x46 - ldrb r0, [r0] - cmp r1, r0 - beq _0807534C - adds r0, r5, 0 - bl sub_806CE68 - b _0807534C - .align 2, 0 -_080752D0: .4byte gUnknown_202F378 -_080752D4: .4byte gDungeonGlobalData -_080752D8: .4byte 0x000135cc -_080752DC: .4byte 0x00000147 -_080752E0: - ldrh r1, [r4] - movs r2, 0x80 - lsls r2, 6 - adds r0, r2, 0 - orrs r0, r1 - strh r0, [r4] - movs r3, 0xC4 - lsls r3, 1 - adds r0, r4, r3 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1 - str r0, [sp] - movs r2, 0xC6 - lsls r2, 1 - adds r0, r4, r2 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3 - str r0, [sp, 0x4] - adds r0, r5, 0 - mov r1, sp - bl sub_804535C - movs r1, 0xC8 - lsls r1, 1 - adds r0, r4, r1 - ldr r2, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_806CDFC - movs r2, 0xFB - lsls r2, 1 - adds r0, r4, r2 - movs r3, 0 - strh r3, [r0] - movs r7, 0x1 - adds r0, r5, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0807534C - movs r4, 0x1 - mov r9, r4 -_0807534C: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x13 - bgt _08075358 - b _0807524E -_08075358: - cmp r7, 0 - bne _08075360 - movs r0, 0 - b _0807566C -_08075360: - ldr r0, _08075390 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xB8 - ldr r2, [r1] - str r2, [sp, 0x10] - mov r3, r10 - str r3, [r1] - ldr r4, _08075394 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0807537C - b _080754AE -_0807537C: - mov r0, r9 - cmp r0, 0 - bne _08075384 - b _080754AE -_08075384: - movs r0, 0x35 - bl sub_80526D0 - movs r5, 0 - b _0807549E - .align 2, 0 -_08075390: .4byte gDungeonGlobalData -_08075394: .4byte 0x0000066c -_08075398: - movs r0, 0x7 - bl sub_803E46C - movs r1, 0 - mov r8, r1 - adds r5, 0x1 - mov r9, r5 -_080753A6: - ldr r0, _08075420 - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08075424 - adds r0, r3 - adds r0, r1 - ldr r3, [r0] - adds r0, r3, 0 - str r3, [sp, 0x14] - bl EntityExists - lsls r0, 24 - ldr r3, [sp, 0x14] - cmp r0, 0 - beq _08075492 - ldr r0, [r3, 0x70] - adds r7, r0, 0 - movs r4, 0xFB - lsls r4, 1 - adds r5, r7, r4 - movs r1, 0 - ldrsh r0, [r5, r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - movs r2, 0xC2 - lsls r2, 1 - adds r1, r2 - adds r4, r7, r1 - movs r0, 0xFA - lsls r0, 1 - adds r6, r7, r0 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _08075492 - ldr r1, [r4, 0x10] - ldr r2, [r4, 0x14] - adds r0, r3, 0 - bl sub_804539C - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r2, r0, 16 - ldr r3, [sp, 0x14] - cmp r2, 0 - bne _08075492 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - asrs r0, 16 - movs r4, 0 - ldrsh r1, [r6, r4] - cmp r0, r1 - bne _08075428 - strh r2, [r6] - b _08075492 - .align 2, 0 -_08075420: .4byte gDungeonGlobalData -_08075424: .4byte 0x000135cc -_08075428: - movs r0, 0 - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - movs r2, 0xC4 - lsls r2, 1 - adds r1, r7, r2 - adds r1, r0 - ldr r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r4, 0xC0 - lsls r4, 4 - adds r0, r4 - str r0, [sp, 0x8] - movs r0, 0 - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r1, r7, r2 - adds r1, r0 - ldr r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r4, 0x80 - lsls r4, 5 - adds r0, r4 - add r1, sp, 0x8 - str r0, [r1, 0x4] - adds r0, r3, 0 - str r3, [sp, 0x14] - bl sub_804535C - movs r0, 0 - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - movs r2, 0xC8 - lsls r2, 1 - adds r1, r7, r2 - adds r1, r0 - ldr r2, [r1] - ldr r3, [sp, 0x14] - adds r0, r3, 0 - movs r1, 0 - bl sub_806CDFC -_08075492: - movs r3, 0x1 - add r8, r3 - mov r4, r8 - cmp r4, 0x13 - ble _080753A6 - mov r5, r9 -_0807549E: - ldr r0, _08075510 - ldr r1, [r0] - movs r0, 0x18 - bl __divsi3 - cmp r5, r0 - bge _080754AE - b _08075398 -_080754AE: - movs r0, 0 - mov r8, r0 -_080754B2: - ldr r0, _08075514 - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08075518 - adds r0, r3 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080754F6 - ldr r4, [r5, 0x70] - movs r0, 0xFA - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0 - strh r0, [r1] - adds r0, r5, 0 - bl nullsub_97 - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 6 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080754F6 - adds r0, r5, 0 - movs r1, 0 - bl sub_804535C -_080754F6: - movs r3, 0x1 - add r8, r3 - mov r4, r8 - cmp r4, 0x13 - ble _080754B2 - bl sub_807AA30 - movs r7, 0 -_08075506: - movs r5, 0 - adds r0, r7, 0x1 - mov r8, r0 - b _08075600 - .align 2, 0 -_08075510: .4byte gUnknown_202F378 -_08075514: .4byte gDungeonGlobalData -_08075518: .4byte 0x000135cc -_0807551C: - ldr r2, [r4, 0x70] - cmp r7, 0 - bne _0807552A - ldrb r0, [r2, 0x7] - cmp r0, 0 - beq _080755FE - b _08075530 -_0807552A: - ldrb r0, [r2, 0x7] - cmp r0, 0 - bne _080755FE -_08075530: - ldr r6, [r4, 0x4] - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080755BC - ldr r3, _08075560 - adds r0, r3, 0 - ands r0, r1 - strh r0, [r2] - ldrb r0, [r2, 0x7] - cmp r0, 0 - beq _08075564 - adds r0, r4, 0x4 - bl sub_804AC20 - movs r0, 0 - bl sub_807EC28 - bl sub_805EE30 - b _0807556A - .align 2, 0 -_08075560: .4byte 0x0000dfff -_08075564: - adds r0, r4, 0 - bl sub_8075708 -_0807556A: - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080755FE - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0807562A - movs r0, 0 - bl sub_8043ED0 - adds r0, r4, 0 - bl sub_8074094 - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080755FE - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0807562A - adds r0, r4, 0 - bl sub_8071DA4 - bl sub_8046D20 - ldr r0, _08075650 - ldr r0, [r0] - ldr r1, _08075654 - adds r0, r1 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8075900 -_080755BC: - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080755FE - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0807562A - ldr r0, [r4, 0x4] - cmp r6, r0 - beq _080755DE - ldr r1, _08075658 - movs r0, 0x1 - strb r0, [r1] -_080755DE: - adds r0, r4, 0 - bl sub_806A5B8 - adds r1, r4, 0x4 - adds r0, r4, 0 - bl sub_80706A4 - lsls r0, 24 - cmp r0, 0 - beq _080755FE - adds r0, r4, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl sub_807D148 -_080755FE: - adds r5, 0x1 -_08075600: - cmp r5, 0x13 - bgt _0807562A - ldr r0, _08075650 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _0807565C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080755FE - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0807562A - b _0807551C -_0807562A: - mov r7, r8 - cmp r7, 0x1 - bgt _08075632 - b _08075506 -_08075632: - bl sub_8086AC0 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08075660 - bl sub_8085140 - ldr r0, _08075650 - ldr r0, [r0] - adds r0, 0xB8 - ldr r3, [sp, 0x10] - str r3, [r0] - b _0807566A - .align 2, 0 -_08075650: .4byte gDungeonGlobalData -_08075654: .4byte 0x00003a08 -_08075658: .4byte gUnknown_202F32D -_0807565C: .4byte 0x000135cc -_08075660: - ldr r0, _0807567C - ldr r0, [r0] - adds r0, 0xB8 - ldr r4, [sp, 0x10] - str r4, [r0] -_0807566A: - movs r0, 0x1 -_0807566C: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0807567C: .4byte gDungeonGlobalData - thumb_func_end sub_807520C - - thumb_func_start sub_8075680 -sub_8075680: - push {r4-r7,lr} - movs r7, 0 -_08075684: - ldr r0, _080756FC - ldr r0, [r0] - lsls r1, r7, 2 - ldr r2, _08075700 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080756EE - ldr r6, [r5, 0x70] - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _080756EE - movs r0, 0xB6 - lsls r0, 1 - adds r4, r6, r0 - ldr r1, [r4] - cmp r1, 0 - beq _080756EE - ldr r0, [r5, 0x4] - cmp r1, r0 - beq _080756EE - adds r0, r5, 0 - movs r1, 0x1 - bl CannotMove - lsls r0, 24 - cmp r0, 0 - bne _080756EE - adds r0, r5, 0x4 - adds r1, r4, 0 - bl sub_80983D8 - adds r4, r0, 0 - movs r1, 0x7 - ands r0, r1 - adds r1, r6, 0 - adds r1, 0x46 - strb r0, [r1] - adds r0, r5, 0 - bl sub_806CEBC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_806CDD4 -_080756EE: - adds r7, 0x1 - cmp r7, 0x13 - ble _08075684 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080756FC: .4byte gDungeonGlobalData -_08075700: .4byte 0x000135cc - thumb_func_end sub_8075680 - - thumb_func_start nullsub_97 -nullsub_97: - bx lr - thumb_func_end nullsub_97 - - thumb_func_start sub_8075708 -sub_8075708: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - ldr r6, [r4, 0x70] - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0807580C - adds r0, r4, 0 - bl sub_8045128 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0xD - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - beq _08075752 - adds r0, r6, 0 - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08075752 - adds r0, r4, 0 - movs r1, 0x9 - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - bne _08075752 - adds r0, r4, 0x4 - bl sub_804AE84 -_08075752: - ldr r5, [r5, 0x14] - cmp r5, 0 - beq _0807580C - adds r0, r5, 0 - bl sub_80450F8 - cmp r0, 0x5 - bhi _0807580C - lsls r0, 2 - ldr r1, _0807576C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807576C: .4byte _08075770 - .align 2, 0 -_08075770: - .4byte _0807580C - .4byte _0807580C - .4byte _08075788 - .4byte _08075806 - .4byte _0807580C - .4byte _0807580C -_08075788: - adds r0, r5, 0 - bl sub_8045104 - adds r7, r0, 0 - movs r0, 0 - mov r8, r0 - mov r9, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - beq _080757BA - adds r1, r5, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - bne _080757BA - movs r0, 0x1 - strb r0, [r1] - bl sub_8049ED4 - movs r0, 0x1 - mov r9, r0 -_080757BA: - ldrb r0, [r7, 0x1] - cmp r0, 0 - bne _080757D2 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _080757EC - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _080757EC - b _080757F2 -_080757D2: - cmp r0, 0x1 - bne _080757DE - ldrb r0, [r6, 0x6] - cmp r0, 0 - beq _080757EC - b _080757F2 -_080757DE: - cmp r0, 0x2 - bne _080757EC - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _080757EC - movs r0, 0x1 - mov r8, r0 -_080757EC: - mov r0, r8 - cmp r0, 0 - beq _0807580C -_080757F2: - mov r0, r9 - cmp r0, 0 - bne _0807580C - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_807FE9C - b _0807580C -_08075806: - adds r0, r4, 0 - bl sub_8073D14 -_0807580C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8075708 - - thumb_func_start sub_8075818 -sub_8075818: - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, [r4, 0x70] - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080758F6 - adds r0, r4, 0 - bl sub_8045128 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0xD - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - beq _08075848 - ldrh r1, [r5] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080758F2 -_08075848: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _080758F6 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x5 - bhi _080758F6 - lsls r0, 2 - ldr r1, _08075864 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08075864: .4byte _08075868 - .align 2, 0 -_08075868: - .4byte _080758F6 - .4byte _080758F6 - .4byte _08075880 - .4byte _080758BE - .4byte _080758F6 - .4byte _080758F6 -_08075880: - adds r0, r4, 0 - bl sub_8045104 - movs r1, 0 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080758A0 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _080758B8 - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _080758B8 - b _080758F2 -_080758A0: - cmp r0, 0x1 - bne _080758AC - ldrb r0, [r6, 0x6] - cmp r0, 0 - beq _080758B8 - b _080758F2 -_080758AC: - cmp r0, 0x2 - bne _080758B8 - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _080758B8 - movs r1, 0x1 -_080758B8: - cmp r1, 0 - beq _080758F6 - b _080758F2 -_080758BE: - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _080758F6 - adds r0, r6, 0 - adds r0, 0x60 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080758F6 - ldrh r1, [r5] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080758E2 - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _080758F6 -_080758E2: - adds r0, r4, 0 - bl sub_8045108 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080758F6 -_080758F2: - movs r0, 0x1 - b _080758F8 -_080758F6: - movs r0, 0 -_080758F8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8075818 - - thumb_func_start sub_8075900 -sub_8075900: - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0807597A - ldr r0, [r4, 0x70] - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _0807597A - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0807597A - ldr r5, _08075980 - ldr r0, [r5] - ldr r1, _08075984 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0807597A - adds r0, r4, 0 - bl sub_8045128 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0807597A - bl sub_8083600 - ldr r1, _08075988 - ldr r1, [r1] - bl SendMessage - ldr r0, [r5] - ldr r1, _0807598C - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_807AB38 - movs r0, 0 - bl sub_8041888 - adds r0, r4, 0x4 - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - beq _0807597A - movs r0, 0x78 - movs r1, 0x39 - bl sub_803E708 -_0807597A: - pop {r4-r6} - pop {r0} - bx r0 .align 2, 0 -_08075980: .4byte gDungeonGlobalData -_08075984: .4byte 0x00000671 -_08075988: .4byte gUnknown_80FE308 -_0807598C: .4byte 0x00000672 - thumb_func_end sub_8075900 diff --git a/asm/code_80739DC.s b/asm/code_80739DC.s new file mode 100644 index 0000000..cedbff8 --- /dev/null +++ b/asm/code_80739DC.s @@ -0,0 +1,3956 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start FindStraightThrowableTargets +FindStraightThrowableTargets: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + mov r10, r1 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + ldr r1, _08073A44 + movs r0, 0 + str r0, [r1] + ldr r1, _08073A48 + movs r2, 0 + adds r0, r1, 0x7 +_08073A00: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08073A00 + movs r7, 0 +_08073A0A: + ldr r0, _08073A4C + ldr r0, [r0] + lsls r1, r7, 2 + ldr r2, _08073A50 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08073A88 + cmp r5, r4 + beq _08073A88 + mov r0, r10 + cmp r0, 0x1 + bne _08073A54 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_8071598 + lsls r0, 24 + cmp r0, 0 + bne _08073A88 + movs r6, 0x3 + b _08073A6A + .align 2, 0 +_08073A44: .4byte gNumPotentialTargets +_08073A48: .4byte gUnknown_202F350 +_08073A4C: .4byte gDungeonGlobalData +_08073A50: .4byte 0x000135cc +_08073A54: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8071598 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08073A88 + movs r6, 0x1 +_08073A6A: + adds r0, r5, 0 + adds r1, r4, 0 + bl CanSee + lsls r0, 24 + cmp r0, 0 + beq _08073A88 + mov r2, r8 + str r2, [sp] + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r9 + adds r3, r6, 0 + bl sub_8073B78 +_08073A88: + adds r7, 0x1 + cmp r7, 0x13 + ble _08073A0A + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end FindStraightThrowableTargets + + thumb_func_start FindRockItemTargets +FindRockItemTargets: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + mov r10, r1 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + ldr r1, _08073B6C + movs r0, 0 + str r0, [r1] + movs r6, 0 + adds r7, r1, 0 +_08073AC0: + ldr r0, _08073B70 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _08073B74 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08073B56 + cmp r5, r4 + beq _08073B56 + adds r0, r5, 0 + adds r1, r4, 0 + bl CanSee + lsls r0, 24 + cmp r0, 0 + beq _08073B56 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8071598 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08073B56 + movs r3, 0x4 + ldrsh r1, [r4, r3] + movs r2, 0x4 + ldrsh r0, [r5, r2] + subs r2, r1, r0 + cmp r2, 0 + bge _08073B10 + negs r2, r2 +_08073B10: + movs r3, 0x6 + ldrsh r1, [r4, r3] + movs r3, 0x6 + ldrsh r0, [r5, r3] + subs r1, r0 + cmp r1, 0 + bge _08073B20 + negs r1, r1 +_08073B20: + cmp r1, r2 + bge _08073B26 + adds r1, r2, 0 +_08073B26: + cmp r1, 0xA + bgt _08073B56 + mov r0, r8 + cmp r0, 0 + bne _08073B44 + adds r0, r4, 0 + mov r1, r10 + movs r2, 0x1 + bl EvaluateItem + bl RollPercentChance + lsls r0, 24 + cmp r0, 0 + beq _08073B56 +_08073B44: + ldr r2, [r7] + lsls r1, r2, 2 + add r1, r9 + ldrh r0, [r4, 0x4] + strh r0, [r1] + ldrh r0, [r4, 0x6] + strh r0, [r1, 0x2] + adds r2, 0x1 + str r2, [r7] +_08073B56: + adds r6, 0x1 + cmp r6, 0x13 + ble _08073AC0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08073B6C: .4byte gNumPotentialTargets +_08073B70: .4byte gDungeonGlobalData +_08073B74: .4byte 0x000135cc + thumb_func_end FindRockItemTargets + + thumb_func_start sub_8073B78 +sub_8073B78: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r0, 0 + adds r5, r1, 0 + mov r9, r2 + mov r10, r3 + ldr r0, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x4 + ldrsh r1, [r4, r0] + movs r2, 0x4 + ldrsh r0, [r5, r2] + subs r2, r1, r0 + cmp r2, 0 + bge _08073BA2 + negs r2, r2 +_08073BA2: + movs r3, 0x6 + ldrsh r1, [r4, r3] + movs r6, 0x6 + ldrsh r0, [r5, r6] + subs r1, r0 + cmp r1, 0 + bge _08073BB2 + negs r1, r1 +_08073BB2: + ldr r0, [r4, 0x70] + adds r0, 0xE0 + ldrb r0, [r0] + cmp r0, 0 + bne _08073BCA + adds r0, r1, 0 + cmp r1, r2 + bge _08073BC4 + adds r0, r2, 0 +_08073BC4: + cmp r0, 0xA + ble _08073BCA + b _08073CDC +_08073BCA: + movs r6, 0x1 + negs r6, r6 + cmp r2, r1 + bne _08073C14 + movs r7, 0x4 + ldrsh r1, [r4, r7] + movs r2, 0x4 + ldrsh r0, [r5, r2] + ldrh r2, [r4, 0x4] + ldrh r3, [r5, 0x4] + cmp r1, r0 + bge _08073BFA + movs r6, 0x6 + ldrsh r1, [r4, r6] + movs r7, 0x6 + ldrsh r0, [r5, r7] + cmp r1, r0 + bge _08073BF2 + movs r6, 0x1 + b _08073C7E +_08073BF2: + cmp r1, r0 + ble _08073BFA + movs r6, 0x3 + b _08073C7E +_08073BFA: + lsls r1, r2, 16 + lsls r0, r3, 16 + movs r6, 0x7 + cmp r1, r0 + ble _08073C7A + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r2, 0x6 + ldrsh r0, [r5, r2] + cmp r1, r0 + ble _08073C7A + movs r6, 0x5 + b _08073C7E +_08073C14: + movs r3, 0x4 + ldrsh r1, [r4, r3] + movs r7, 0x4 + ldrsh r0, [r5, r7] + ldrh r2, [r4, 0x4] + ldrh r3, [r5, 0x4] + cmp r1, r0 + bne _08073C34 + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r7, 0x6 + ldrsh r0, [r5, r7] + cmp r1, r0 + bge _08073C34 + movs r6, 0 + b _08073C7E +_08073C34: + lsls r1, r2, 16 + lsls r0, r3, 16 + cmp r1, r0 + bge _08073C4C + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r7, 0x6 + ldrsh r0, [r5, r7] + cmp r1, r0 + bne _08073C4C + movs r6, 0x2 + b _08073C7E +_08073C4C: + lsls r1, r2, 16 + lsls r0, r3, 16 + cmp r1, r0 + bne _08073C64 + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r7, 0x6 + ldrsh r0, [r5, r7] + cmp r1, r0 + ble _08073C64 + movs r6, 0x4 + b _08073C7E +_08073C64: + lsls r1, r2, 16 + lsls r0, r3, 16 + cmp r1, r0 + ble _08073C7A + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r2, 0x6 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _08073C7A + movs r6, 0x6 +_08073C7A: + cmp r6, 0 + blt _08073CDC +_08073C7E: + ldr r0, _08073CC0 + adds r7, r6, r0 + ldrb r0, [r7] + cmp r0, 0 + bne _08073CDC + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0xA + bl sub_807C9F8 + lsls r0, 24 + cmp r0, 0 + beq _08073CDC + movs r0, 0x1 + strb r0, [r7] + ldr r1, _08073CC4 + ldr r0, _08073CC8 + ldr r0, [r0] + lsls r0, 2 + adds r1, r0, r1 + str r6, [r1] + ldr r1, _08073CCC + adds r4, r0, r1 + mov r3, r8 + cmp r3, 0 + bne _08073CD0 + adds r0, r5, 0 + mov r1, r9 + mov r2, r10 + bl EvaluateItem + b _08073CD2 + .align 2, 0 +_08073CC0: .4byte gUnknown_202F350 +_08073CC4: .4byte gPotentialTargetDirections +_08073CC8: .4byte gNumPotentialTargets +_08073CCC: .4byte gPotentialTargetWeights +_08073CD0: + movs r0, 0x64 +_08073CD2: + str r0, [r4] + ldr r1, _08073CEC + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08073CDC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08073CEC: .4byte gNumPotentialTargets + thumb_func_end sub_8073B78 + + thumb_func_start sub_8073CF0 +sub_8073CF0: + push {lr} + bl sub_8067110 + pop {r0} + bx r0 + thumb_func_end sub_8073CF0 + + thumb_func_start sub_8073CFC +sub_8073CFC: + push {lr} + bl sub_80671A0 + pop {r0} + bx r0 + thumb_func_end sub_8073CFC + + thumb_func_start sub_8073D08 +sub_8073D08: + push {lr} + bl sub_8073D14 + pop {r0} + bx r0 + thumb_func_end sub_8073D08 + + thumb_func_start sub_8073D14 +sub_8073D14: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xB0 + adds r6, r0, 0 + ldr r4, [r6, 0x70] + bl sub_8045128 + ldr r5, [r0, 0x14] + cmp r5, 0 + bne _08073D30 + b _0807407A +_08073D30: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08073D3C + b _0807407A +_08073D3C: + ldr r0, _08073D68 + adds r1, r6, 0 + movs r2, 0 + bl SetMessageArgument + ldrb r0, [r4, 0x7] + cmp r0, 0 + beq _08073D4E + b _0807407A +_08073D4E: + ldrb r0, [r4, 0x8] + cmp r0, 0x1 + bne _08073D56 + b _0807407A +_08073D56: + adds r0, r4, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _08073D64 + cmp r0, 0x47 + bne _08073D6C +_08073D64: + movs r0, 0x1 + b _08073D6E + .align 2, 0 +_08073D68: .4byte gAvailablePokemonNames +_08073D6C: + movs r0, 0 +_08073D6E: + cmp r0, 0 + beq _08073D74 + b _0807407A +_08073D74: + adds r0, r4, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08073D80 + b _0807407A +_08073D80: + ldr r0, [r6, 0x70] + mov r10, r0 + adds r0, r5, 0 + bl GetItemData + adds r5, r0, 0 + ldrb r1, [r5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08073D98 + b _0807407A +_08073D98: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8071518 + lsls r0, 24 + cmp r0, 0 + beq _08073DC8 + ldr r0, _08073DBC + adds r1, r5, 0 + bl sub_8045BF8 + ldr r0, _08073DC0 + adds r1, r6, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _08073DC4 + b _0807404C + .align 2, 0 +_08073DBC: .4byte gUnknown_202DE58 +_08073DC0: .4byte gAvailablePokemonNames +_08073DC4: .4byte gUnknown_80F8F88 +_08073DC8: + mov r1, r10 + ldrb r0, [r1, 0x6] + cmp r0, 0 + bne _08073E24 + ldrb r0, [r5, 0x2] + bl GetItemType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08073E24 + mov r7, r10 + ldrb r0, [r7, 0x6] + cmp r0, 0 + beq _08073DF4 + ldr r0, _08073DF0 + bl PlaySoundEffect + b _08073DFC + .align 2, 0 +_08073DF0: .4byte 0x0000014b +_08073DF4: + movs r0, 0xA6 + lsls r0, 1 + bl PlaySoundEffect +_08073DFC: + adds r0, r5, 0 + bl GetMoneyValue + bl AddToTeamMoney + ldr r0, _08073E1C + adds r1, r5, 0 + bl sub_8045BF8 + adds r0, r6, 0x4 + movs r1, 0x1 + bl sub_80461C8 + ldr r0, _08073E20 + b _0807404C + .align 2, 0 +_08073E1C: .4byte gUnknown_202DE58 +_08073E20: .4byte gUnknown_80F9054 +_08073E24: + ldr r0, _08073E64 + ldr r0, [r0] + ldr r1, _08073E68 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08073E70 + mov r7, r10 + ldrb r0, [r7, 0x6] + cmp r0, 0 + bne _08073E70 + movs r4, 0 + add r2, sp, 0x54 + adds r7, 0x60 + ldr r0, _08073E6C + mov r1, sp + ldr r0, [r0] + adds r3, r2, 0 +_08073E48: + stm r3!, {r0} + stm r1!, {r4} + adds r0, 0x4 + adds r4, 0x1 + cmp r4, 0x13 + ble _08073E48 + str r7, [r2, 0x50] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x50] + movs r0, 0x15 + mov r8, r0 + b _08073E80 + .align 2, 0 +_08073E64: .4byte gDungeonGlobalData +_08073E68: .4byte 0x0000065b +_08073E6C: .4byte gTeamInventory_203B460 +_08073E70: + mov r0, r10 + adds r0, 0x60 + str r0, [sp, 0x54] + movs r0, 0x1 + negs r0, r0 + str r0, [sp] + movs r1, 0x1 + mov r8, r1 +_08073E80: + ldrb r0, [r5, 0x2] + add r7, sp, 0xA8 + strb r0, [r7] + adds r0, r7, 0 + ldrb r0, [r0] + cmp r0, 0x8 + bls _08073E90 + b _08073FA8 +_08073E90: + ldrb r1, [r5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08073E9C + b _08073FA8 +_08073E9C: + movs r1, 0x1 + negs r1, r1 + mov r12, r1 + mov r7, r12 + str r7, [sp, 0xAC] + movs r4, 0 + cmp r4, r8 + bge _08073EEC + ldr r0, _08073F94 + mov r9, r0 + add r3, sp, 0x54 +_08073EB2: + ldr r2, [r3] + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08073EE4 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08073EE4 + ldr r1, [r5] + mov r7, r9 + ands r1, r7 + ldr r0, [r2] + ands r0, r7 + cmp r1, r0 + bne _08073EE4 + ldrb r0, [r2, 0x1] + cmp r0, 0x63 + beq _08073EE4 + ldr r1, [sp, 0xAC] + cmp r1, r0 + bge _08073EE4 + str r0, [sp, 0xAC] + mov r12, r4 +_08073EE4: + adds r3, 0x4 + adds r4, 0x1 + cmp r4, r8 + blt _08073EB2 +_08073EEC: + movs r0, 0x1 + negs r0, r0 + cmp r12, r0 + bne _08073F40 + mov r7, r12 + str r7, [sp, 0xAC] + movs r4, 0 + cmp r4, r8 + bge _08073F38 + add r0, sp, 0xA8 + ldrb r0, [r0] + mov r9, r0 + add r3, sp, 0x54 +_08073F06: + ldr r2, [r3] + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08073F30 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08073F30 + ldrb r1, [r2, 0x2] + cmp r9, r1 + bne _08073F30 + ldrb r0, [r2, 0x1] + cmp r0, 0x63 + beq _08073F30 + ldr r7, [sp, 0xAC] + cmp r7, r0 + bge _08073F30 + str r0, [sp, 0xAC] + mov r12, r4 +_08073F30: + adds r3, 0x4 + adds r4, 0x1 + cmp r4, r8 + blt _08073F06 +_08073F38: + movs r0, 0x1 + negs r0, r0 + cmp r12, r0 + beq _08073FA8 +_08073F40: + add r0, sp, 0x54 + mov r1, r12 + lsls r4, r1, 2 + adds r3, r0, r4 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r5, 0x1] + adds r1, r0 + cmp r1, 0x62 + ble _08073F56 + movs r1, 0x63 +_08073F56: + strb r1, [r2, 0x1] + ldrb r1, [r5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08073F6C + ldr r0, [r3] + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_08073F6C: + ldr r0, _08073F98 + adds r1, r5, 0 + bl sub_8045BF8 + adds r0, r6, 0x4 + movs r1, 0x1 + bl sub_80461C8 + movs r0, 0xA5 + lsls r0, 1 + bl PlaySoundEffect + mov r7, sp + adds r0, r7, r4 + ldr r0, [r0] + cmp r0, 0 + bge _08073FA0 + ldr r0, _08073F9C + b _0807404C + .align 2, 0 +_08073F94: .4byte 0x00ff0008 +_08073F98: .4byte gUnknown_202DE58 +_08073F9C: .4byte gUnknown_80F9018 +_08073FA0: + ldr r0, _08073FA4 + b _0807404C + .align 2, 0 +_08073FA4: .4byte gUnknown_80F9050 +_08073FA8: + movs r4, 0 + cmp r4, r8 + bge _08073FD2 + ldr r0, [sp, 0x54] + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08073FD2 + movs r3, 0x1 + add r2, sp, 0x54 +_08073FBE: + adds r2, 0x4 + adds r4, 0x1 + cmp r4, r8 + bge _08073FD2 + ldr r0, [r2] + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08073FBE +_08073FD2: + cmp r4, r8 + bne _08073FEC + ldr r0, _08073FE4 + adds r1, r5, 0 + bl sub_8045BF8 + ldr r0, _08073FE8 + b _0807404C + .align 2, 0 +_08073FE4: .4byte gUnknown_202DE58 +_08073FE8: .4byte gUnknown_80F8F54 +_08073FEC: + mov r1, r10 + ldrb r0, [r1, 0x6] + cmp r0, 0 + beq _08074000 + ldr r0, _08073FFC + bl PlaySoundEffect + b _08074008 + .align 2, 0 +_08073FFC: .4byte 0x0000014b +_08074000: + movs r0, 0xA5 + lsls r0, 1 + bl PlaySoundEffect +_08074008: + lsls r0, r4, 2 + add r0, sp + ldr r0, [r0] + cmp r0, 0 + bge _08074034 + ldr r0, [r5] + mov r7, r10 + str r0, [r7, 0x60] + ldr r0, _0807402C + adds r1, r5, 0 + bl sub_8045BF8 + adds r0, r6, 0x4 + movs r1, 0x1 + bl sub_80461C8 + ldr r0, _08074030 + b _0807404C + .align 2, 0 +_0807402C: .4byte gUnknown_202DE58 +_08074030: .4byte gUnknown_80F9018 +_08074034: + adds r0, r5, 0 + bl AddItemToInventory + lsls r0, 24 + cmp r0, 0 + beq _08074060 + ldr r0, _08074058 + adds r1, r6, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _0807405C +_0807404C: + ldr r1, [r0] + adds r0, r6, 0 + bl sub_805239C + b _0807407A + .align 2, 0 +_08074058: .4byte gAvailablePokemonNames +_0807405C: .4byte gUnknown_80F8FAC +_08074060: + ldr r0, _0807408C + adds r1, r5, 0 + bl sub_8045BF8 + adds r0, r6, 0x4 + movs r1, 0x1 + bl sub_80461C8 + ldr r0, _08074090 + ldr r1, [r0] + adds r0, r6, 0 + bl sub_805239C +_0807407A: + add sp, 0xB0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807408C: .4byte gUnknown_202DE58 +_08074090: .4byte gUnknown_80F9050 + thumb_func_end sub_8073D14 + + thumb_func_start sub_8074094 +sub_8074094: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + adds r5, r0, 0 + cmp r5, 0 + bne _080740AA + bl _08074B2E +_080740AA: + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080740B8 + bl _08074B2E +_080740B8: + bl sub_8044B28 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080740C8 + bl _08074B2E +_080740C8: + ldr r0, [r5, 0x70] + mov r8, r0 + movs r0, 0xA3 + lsls r0, 1 + add r0, r8 + strb r6, [r0] + bl sub_805229C + adds r0, r5, 0 + bl sub_807E8F0 + adds r0, r5, 0 + movs r1, 0x16 + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _08074170 + ldr r4, _0807434C + add r4, r8 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _08074102 + movs r0, 0x13 + strb r0, [r4] +_08074102: + movs r0, 0x64 + bl DungeonRandomCapped + ldr r2, _08074350 + ldrb r1, [r4] + lsls r1, 1 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _08074170 + strb r6, [r4] + adds r0, r5, 0 + bl sub_80444F4 + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074136 + bl _08074B2E +_08074136: + bl sub_8044B28 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08074146 + bl _08074B2E +_08074146: + adds r0, r5, 0 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0 + bl sub_807D148 + mov r3, r8 + ldrb r0, [r3, 0x7] + cmp r0, 0 + bne _0807415C + b _080743B0 +_0807415C: + ldr r1, _08074354 + ldr r0, [r1] + strb r4, [r0, 0x1] + ldr r0, [r1] + movs r4, 0xB8 + lsls r4, 3 + adds r0, r4 + movs r1, 0x1 + negs r1, r1 + str r1, [r0] +_08074170: + mov r1, r8 + ldrb r0, [r1, 0x7] + cmp r0, 0 + bne _0807417A + b _080743B0 +_0807417A: + movs r2, 0 + mov r9, r2 + movs r4, 0xA + adds r0, r5, 0 + movs r1, 0x17 + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _08074190 + movs r4, 0 +_08074190: + adds r0, r5, 0 + movs r1, 0x1F + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _080741A0 + subs r4, 0x1 +_080741A0: + adds r0, r5, 0 + movs r1, 0x10 + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + beq _080741B0 + subs r4, 0x1 +_080741B0: + adds r0, r5, 0 + movs r1, 0x1B + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _080741C0 + adds r4, 0x1 +_080741C0: + adds r0, r5, 0 + movs r1, 0xA + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _080741D0 + adds r4, 0x1 +_080741D0: + adds r0, r5, 0 + movs r1, 0x2B + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _080741E0 + adds r4, 0x1 +_080741E0: + cmp r4, 0 + bge _080741E6 + movs r4, 0 +_080741E6: + cmp r4, 0x13 + ble _080741EC + movs r4, 0x13 +_080741EC: + mov r3, r9 + str r3, [sp, 0x8] + ldr r0, _08074358 + str r0, [sp, 0xC] + add r6, sp, 0x10 + lsls r2, r4, 3 + ldr r0, _0807435C + adds r2, r0 + adds r0, r6, 0 + add r1, sp, 0x8 + bl sub_800A34C + ldr r2, _08074360 + add r2, r8 + ldrb r0, [r2] + cmp r0, 0x1 + bls _0807421E + ldr r1, _08074364 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 16 + ldr r0, [r6, 0x4] + adds r0, r1 + str r0, [r6, 0x4] +_0807421E: + mov r4, r9 + strb r4, [r2] + movs r4, 0x9E + lsls r4, 1 + add r4, r8 + ldr r7, [r4] + add r0, sp, 0x18 + adds r1, r6, 0 + bl sub_80943A8 + ldr r2, [sp, 0x18] + add r0, sp, 0x1C + adds r1, r7, 0 + bl sub_80942C0 + ldr r0, [sp, 0x1C] + str r0, [r4] + movs r6, 0x1 + adds r0, r7, 0 + bl sub_8094450 + cmp r0, 0x13 + ble _0807425C + ldr r0, [r4] + bl sub_8094450 + cmp r0, 0x13 + bgt _0807425C + ldr r0, _08074368 + ldr r0, [r0] + mov r9, r0 +_0807425C: + adds r0, r7, 0 + bl sub_8094450 + cmp r0, 0x9 + ble _0807427C + movs r0, 0x9E + lsls r0, 1 + add r0, r8 + ldr r0, [r0] + bl sub_8094450 + cmp r0, 0x9 + bgt _0807427C + ldr r0, _0807436C + ldr r0, [r0] + mov r9, r0 +_0807427C: + movs r4, 0x9E + lsls r4, 1 + add r4, r8 + ldr r0, [r4] + bl sub_8094450 + cmp r0, 0 + bne _08074298 + add r0, sp, 0x20 + movs r1, 0 + bl sub_80943A0 + ldr r0, [sp, 0x20] + str r0, [r4] +_08074298: + ldr r0, [r4] + bl sub_8094450 + cmp r0, 0 + bge _080742AE + add r0, sp, 0x24 + movs r1, 0 + bl sub_80943A0 + ldr r0, [sp, 0x24] + str r0, [r4] +_080742AE: + ldr r0, [r4] + bl sub_8094450 + cmp r0, 0 + bne _08074384 + bl sub_805E804 + adds r0, r5, 0 + bl sub_80444F4 + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080742D8 + bl _08074B2E +_080742D8: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080742E6 + bl _08074B2E +_080742E6: + ldr r3, _08074354 + ldr r0, [r3] + ldr r2, _08074370 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x9 + bhi _080742F8 + adds r0, 0x1 + strb r0, [r1] +_080742F8: + ldr r0, [r3] + adds r0, r2 + ldrb r2, [r0] + cmp r2, 0x1 + bne _08074308 + ldr r0, _08074374 + ldr r0, [r0] + mov r9, r0 +_08074308: + cmp r2, 0x2 + bne _08074314 + ldr r0, _08074378 + ldr r0, [r0] + mov r9, r0 + movs r6, 0 +_08074314: + cmp r2, 0x3 + bne _08074320 + ldr r0, _0807437C + ldr r0, [r0] + mov r9, r0 + movs r6, 0 +_08074320: + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + ldr r3, _08074380 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xE + bl sub_806F324 + movs r1, 0xA3 + lsls r1, 1 + add r1, r8 + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r4] + bl sub_8094450 + cmp r0, 0 + beq _08074390 + b _080743B0 + .align 2, 0 +_0807434C: .4byte 0x00000169 +_08074350: .4byte gUnknown_80F5594 +_08074354: .4byte gDungeonGlobalData +_08074358: .4byte 0x0000199a +_0807435C: .4byte gUnknown_80F54F4 +_08074360: .4byte 0x00000153 +_08074364: .4byte gUnknown_80F60DC +_08074368: .4byte gUnknown_80FD594 +_0807436C: .4byte gUnknown_80FD5B8 +_08074370: .4byte 0x00000679 +_08074374: .4byte gUnknown_80FD5DC +_08074378: .4byte gUnknown_80FD608 +_0807437C: .4byte gUnknown_80FD628 +_08074380: .4byte 0x00000211 +_08074384: + ldr r0, _08074408 + ldr r0, [r0] + ldr r1, _0807440C + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_08074390: + mov r2, r9 + cmp r2, 0 + beq _080743B0 + cmp r6, 0 + beq _080743A0 + ldr r0, _08074410 + bl PlaySoundEffect +_080743A0: + adds r0, r5, 0 + mov r1, r9 + bl SendMessage + movs r0, 0x1E + movs r1, 0x32 + bl sub_803E708 +_080743B0: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080743BE + b _08074B2E +_080743BE: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080743CA + b _08074B2E +_080743CA: + ldr r0, _08074408 + ldr r0, [r0] + ldr r3, _08074414 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08074480 + adds r0, r5, 0 + bl sub_807E580 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _0807441C + adds r0, r5, 0 + movs r1, 0x6 + bl sub_8071858 + lsls r0, 24 + cmp r0, 0 + bne _08074466 + ldr r0, _08074418 + movs r4, 0 + ldrsh r1, [r0, r4] + movs r3, 0x88 + lsls r3, 2 + adds r0, r5, 0 + movs r2, 0x12 + bl sub_806F324 + b _08074466 + .align 2, 0 +_08074408: .4byte gDungeonGlobalData +_0807440C: .4byte 0x00000679 +_08074410: .4byte 0x00000153 +_08074414: .4byte 0x0000e266 +_08074418: .4byte gUnknown_80F4F8E +_0807441C: + adds r0, r5, 0 + bl sub_807E580 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08074466 + adds r0, r5, 0 + movs r1, 0x9 + bl sub_8071858 + lsls r0, 24 + cmp r0, 0 + bne _08074466 + adds r0, r5, 0 + movs r1, 0xD + bl sub_8071858 + lsls r0, 24 + cmp r0, 0 + bne _08074466 + adds r0, r5, 0 + movs r1, 0x11 + bl sub_8071858 + lsls r0, 24 + cmp r0, 0 + bne _08074466 + ldr r0, _08074608 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r3, 0x88 + lsls r3, 2 + adds r0, r5, 0 + movs r2, 0x12 + bl sub_806F324 +_08074466: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074474 + b _08074B2E +_08074474: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074480 + b _08074B2E +_08074480: + movs r0, 0x64 + bl DungeonRandomCapped + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0x21 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _080744D8 + ldr r0, _0807460C + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r4, r0 + bge _080744D8 + adds r0, r5, 0 + bl sub_8070A58 + lsls r0, 24 + cmp r0, 0 + beq _080744D8 + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080744C0 + b _08074B2E +_080744C0: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080744CC + b _08074B2E +_080744CC: + adds r0, r5, 0 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_8079F20 +_080744D8: + adds r0, r5, 0 + movs r1, 0xB + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0807450C + ldr r2, _08074610 + add r2, r8 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + ldrb r1, [r2] + ldr r0, _08074614 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r1, r0 + blt _0807450C + movs r0, 0 + strb r0, [r2] + adds r0, r5, 0 + adds r1, r5, 0 + movs r2, 0x7F + movs r3, 0 + bl sub_8077910 +_0807450C: + mov r0, r8 + adds r0, 0xA8 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0807453C + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807452A + b _08074B2E +_0807452A: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074536 + b _08074B2E +_08074536: + adds r0, r5, 0 + bl sub_80420B8 +_0807453C: + mov r0, r8 + adds r0, 0xAC + ldrb r1, [r0] + adds r6, r0, 0 + cmp r1, 0x1 + bne _080745B6 + mov r4, r8 + adds r4, 0xAE + ldrb r0, [r4] + cmp r0, 0 + beq _0807455C + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bne _0807459C +_0807455C: + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074570 + b _08074B2E +_08074570: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _0807457C + b _08074B2E +_0807457C: + ldr r0, _08074618 + ldrh r0, [r0] + strb r0, [r4] + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + ldr r0, _0807461C + movs r2, 0 + ldrsh r1, [r0, r2] + movs r3, 0x82 + lsls r3, 2 + adds r0, r5, 0 + movs r2, 0x1 + bl sub_806F324 +_0807459C: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080745AA + b _08074B2E +_080745AA: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080745B6 + b _08074B2E +_080745B6: + ldrb r0, [r6] + cmp r0, 0x2 + bne _08074628 + mov r4, r8 + adds r4, 0xAE + ldrb r0, [r4] + cmp r0, 0 + beq _080745D0 + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bne _08074696 +_080745D0: + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080745E4 + b _08074B2E +_080745E4: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080745F0 + b _08074B2E +_080745F0: + ldr r0, _08074620 + ldrh r0, [r0] + strb r0, [r4] + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + ldr r0, _08074624 + movs r3, 0 + ldrsh r1, [r0, r3] + b _0807468C + .align 2, 0 +_08074608: .4byte gUnknown_80F4F8E +_0807460C: .4byte gUnknown_80F4E0C +_08074610: .4byte 0x00000113 +_08074614: .4byte gUnknown_80F4F30 +_08074618: .4byte gUnknown_80F4F32 +_0807461C: .4byte gUnknown_80F4F70 +_08074620: .4byte gUnknown_80F4F34 +_08074624: .4byte gUnknown_80F4F72 +_08074628: + cmp r0, 0x3 + bne _080746B0 + mov r2, r8 + adds r2, 0xAE + ldrb r0, [r2] + cmp r0, 0 + beq _08074640 + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + cmp r0, 0 + bne _08074696 +_08074640: + mov r1, r8 + adds r1, 0xAF + ldrb r4, [r1] + cmp r4, 0x1C + bhi _0807464E + adds r0, r4, 0x1 + strb r0, [r1] +_0807464E: + ldr r0, _08074718 + ldrh r0, [r0] + strb r0, [r2] + cmp r4, 0x1C + ble _0807465A + movs r4, 0x1D +_0807465A: + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807466E + b _08074B2E +_0807466E: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _0807467A + b _08074B2E +_0807467A: + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + ldr r1, _0807471C + lsls r0, r4, 1 + adds r0, r1 + movs r4, 0 + ldrsh r1, [r0, r4] +_0807468C: + ldr r3, _08074720 + adds r0, r5, 0 + movs r2, 0x3 + bl sub_806F324 +_08074696: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080746A4 + b _08074B2E +_080746A4: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080746B0 + b _08074B2E +_080746B0: + mov r0, r8 + adds r0, 0xB0 + ldrb r1, [r0] + mov r10, r0 + cmp r1, 0x7 + bne _08074730 + mov r4, r8 + adds r4, 0xB9 + ldrb r0, [r4] + cmp r0, 0 + beq _080746D0 + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bne _08074786 +_080746D0: + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080746E4 + b _08074B2E +_080746E4: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080746F0 + b _08074B2E +_080746F0: + ldr r0, _08074724 + ldrh r0, [r0] + strb r0, [r4] + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + mov r0, r8 + adds r0, 0xB4 + ldr r1, [r0] + adds r0, r5, 0 + bl sub_8041C4C + ldr r0, _08074728 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r3, _0807472C + adds r0, r5, 0 + movs r2, 0x2 + b _08074782 + .align 2, 0 +_08074718: .4byte gUnknown_80F4F36 +_0807471C: .4byte gUnknown_80F4FC8 +_08074720: .4byte 0x0000020a +_08074724: .4byte gUnknown_80F4F38 +_08074728: .4byte gUnknown_80F4F74 +_0807472C: .4byte 0x00000209 +_08074730: + cmp r1, 0x4 + bne _080747B0 + mov r4, r8 + adds r4, 0xB9 + ldrb r0, [r4] + cmp r0, 0 + beq _08074748 + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bne _08074786 +_08074748: + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807475C + b _08074B2E +_0807475C: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074768 + b _08074B2E +_08074768: + ldr r0, _080747A4 + ldrh r0, [r0] + strb r0, [r4] + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + ldr r0, _080747A8 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r3, _080747AC + adds r0, r5, 0 + movs r2, 0x5 +_08074782: + bl sub_806F324 +_08074786: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074794 + b _08074B2E +_08074794: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080747A0 + b _08074B2E +_080747A0: + b _08074802 + .align 2, 0 +_080747A4: .4byte gUnknown_80F4F3A +_080747A8: .4byte gUnknown_80F4F76 +_080747AC: .4byte 0x0000020b +_080747B0: + cmp r1, 0x5 + bne _08074802 + mov r4, r8 + adds r4, 0xB9 + ldrb r0, [r4] + cmp r0, 0 + beq _080747C8 + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bne _08074802 +_080747C8: + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080747DC + b _08074B2E +_080747DC: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080747E8 + b _08074B2E +_080747E8: + ldr r0, _080748D4 + ldrh r0, [r0] + strb r0, [r4] + ldr r0, _080748D8 + movs r4, 0 + ldrsh r2, [r0, r4] + movs r0, 0x1 + str r0, [sp] + adds r0, r5, 0 + adds r1, r5, 0 + movs r3, 0 + bl HealTargetHP +_08074802: + mov r0, r8 + adds r0, 0xC8 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0807488A + mov r2, r8 + adds r2, 0xCC + ldrb r0, [r2] + cmp r0, 0 + beq _08074820 + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + cmp r0, 0 + bne _08074870 +_08074820: + mov r0, r8 + movs r3, 0x10 + ldrsh r1, [r0, r3] + cmp r1, 0 + bge _0807482C + adds r1, 0x3 +_0807482C: + asrs r4, r1, 2 + cmp r4, 0 + bne _08074834 + movs r4, 0x1 +_08074834: + ldr r0, _080748DC + ldrh r0, [r0] + strb r0, [r2] + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807484E + b _08074B2E +_0807484E: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _0807485A + b _08074B2E +_0807485A: + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + movs r3, 0x83 + lsls r3, 2 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl sub_806F324 +_08074870: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807487E + b _08074B2E +_0807487E: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _0807488A + b _08074B2E +_0807488A: + mov r3, r8 + adds r3, 0xD0 + ldrb r4, [r3] + mov r9, r4 + cmp r4, 0x1 + beq _08074898 + b _080749AE +_08074898: + mov r2, r8 + adds r2, 0xDA + ldrb r0, [r2] + cmp r0, 0 + beq _080748AC + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + cmp r0, 0 + bne _08074994 +_080748AC: + ldr r0, _080748E0 + movs r1, 0 + ldrsh r6, [r0, r1] + ldr r0, _080748E4 + ldr r1, [r0] + mov r0, r8 + adds r0, 0xD8 + ldrb r0, [r0] + lsls r0, 2 + ldr r4, _080748E8 + adds r1, r4 + adds r1, r0 + ldr r4, [r1] + ldr r0, _080748EC + ldrh r0, [r0] + strb r0, [r2] + cmp r4, 0 + bne _080748F0 + strb r4, [r3] + b _08074994 + .align 2, 0 +_080748D4: .4byte gUnknown_80F4F3C +_080748D8: .4byte gUnknown_80F4FB2 +_080748DC: .4byte gUnknown_80F4F3E +_080748E0: .4byte gUnknown_80F4FB4 +_080748E4: .4byte gDungeonGlobalData +_080748E8: .4byte 0x000135cc +_080748EC: .4byte gUnknown_80F4F40 +_080748F0: + ldr r0, [r4, 0x70] + adds r0, 0x98 + mov r1, r8 + adds r1, 0xD4 + ldr r2, [r0] + ldr r0, [r1] + cmp r2, r0 + beq _08074906 + movs r0, 0 + strb r0, [r3] + b _08074994 +_08074906: + adds r0, r5, 0 + movs r1, 0x3A + bl HasAbility + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + bl sub_80444F4 + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807492C + b _08074B2E +_0807492C: + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0807493A + b _08074B2E +_0807493A: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074946 + b _08074B2E +_08074946: + mov r1, r10 + ldrb r0, [r1] + cmp r0, 0x1 + beq _08074994 + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + ldr r3, _08074980 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x9 + bl sub_806F324 + cmp r7, 0 + beq _08074984 + adds r0, r4, 0 + adds r1, r4, 0 + bl sub_807A96C + movs r3, 0xFD + lsls r3, 1 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0xD + bl sub_806F324 + b _08074994 + .align 2, 0 +_08074980: .4byte 0x0000020d +_08074984: + mov r2, r9 + str r2, [sp] + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r6, 0 + movs r3, 0 + bl HealTargetHP +_08074994: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080749A2 + b _08074B2E +_080749A2: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080749AE + b _08074B2E +_080749AE: + mov r4, r8 + adds r4, 0xFD + ldrb r0, [r4] + cmp r0, 0 + beq _08074A46 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074A46 + movs r0, 0 + bl sub_807520C + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _080749D8 + b _08074B2E +_080749D8: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080749E4 + b _08074B2E +_080749E4: + ldr r0, _08074A18 + adds r1, r5, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _08074A1C + ldr r1, [r0] + adds r0, r5, 0 + bl SendMessage + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_807A96C + mov r0, r8 + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0x7 + bne _08074A24 + ldr r0, _08074A20 + ldr r1, [r0] + adds r0, r5, 0 + bl SendMessage + b _08074A30 + .align 2, 0 +_08074A18: .4byte gUnknown_202DFE8 +_08074A1C: .4byte gUnknown_80FEB30 +_08074A20: .4byte gPtrProtectSavedItMessage +_08074A24: + ldr r1, _08074B40 + ldr r3, _08074B44 + adds r0, r5, 0 + movs r2, 0xB + bl sub_806F324 +_08074A30: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08074B2E + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08074B2E +_08074A46: + mov r0, r8 + adds r0, 0xC0 + ldrb r1, [r0] + adds r7, r0, 0 + cmp r1, 0x1 + bne _08074AD4 + mov r4, r8 + adds r4, 0xC1 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074AD4 + strb r0, [r7] + adds r0, r5, 0 + movs r1, 0 + bl CannotMove + lsls r0, 24 + cmp r0, 0 + bne _08074AD4 + adds r0, r5, 0 + movs r1, 0 + bl sub_8070D04 + lsls r0, 24 + cmp r0, 0 + bne _08074AD4 + adds r0, r5, 0 + bl CannotAct + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _08074AD4 + movs r0, 0 + bl sub_807520C + add r4, sp, 0x28 + ldr r1, _08074B48 + adds r0, r4, 0 + bl InitPokemonMove + ldrb r0, [r4] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4] + str r6, [sp] + str r4, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8055FA0 + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08074B2E + bl sub_8044B28 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08074B2E + mov r0, r8 + adds r0, 0xA0 + str r1, [r0] +_08074AD4: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08074B2E + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08074B2E + ldrb r0, [r7] + cmp r0, 0xC + bne _08074B1E + mov r4, r8 + adds r4, 0xC1 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074B1E + strb r0, [r7] + movs r1, 0xA5 + lsls r1, 1 + add r1, r8 + strb r0, [r1] + ldr r0, _08074B4C + adds r1, r5, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _08074B50 + ldr r1, [r0] + adds r0, r5, 0 + bl SendMessage +_08074B1E: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08074B2E + bl sub_8044B28 +_08074B2E: + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08074B40: .4byte 0x0000270f +_08074B44: .4byte 0x0000020e +_08074B48: .4byte 0x00000165 +_08074B4C: .4byte gAvailablePokemonNames +_08074B50: .4byte gUnknown_80FABD8 + thumb_func_end sub_8074094 + + thumb_func_start sub_8074B54 +sub_8074B54: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + cmp r7, 0 + bne _08074B62 + b _08074F96 +_08074B62: + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074B6E + b _08074F96 +_08074B6E: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074B7A + b _08074F96 +_08074B7A: + bl sub_805229C + ldr r6, [r7, 0x70] + movs r1, 0xA3 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08074C48 + adds r0, r6, 0 + adds r0, 0xAC + ldrb r0, [r0] + cmp r0, 0x2 + beq _08074C48 + cmp r0, 0x3 + beq _08074C48 + movs r4, 0 + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _08074BAE + movs r2, 0x2 + ldrsh r0, [r6, r2] + bl GetUnk1B + lsls r0, 24 + lsrs r4, r0, 24 +_08074BAE: + cmp r4, 0 + beq _08074C48 + adds r0, r7, 0 + movs r1, 0xA + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _08074BC8 + ldr r0, _08074EF8 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r4, r0 +_08074BC8: + adds r0, r6, 0 + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0x6 + bne _08074BDA + ldr r0, _08074EFC + movs r1, 0 + ldrsh r0, [r0, r1] + adds r4, r0 +_08074BDA: + adds r0, r7, 0 + movs r1, 0x3 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _08074BFE + adds r0, r7, 0 + bl sub_807E580 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _08074BFE + ldr r0, _08074F00 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r0 +_08074BFE: + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + ble _08074C08 + adds r4, r0, 0 +_08074C08: + cmp r4, 0x1D + bgt _08074C0E + movs r4, 0x1E +_08074C0E: + movs r3, 0xFC + lsls r3, 1 + adds r1, r6, r3 + ldrh r0, [r6, 0x10] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, r4 + blt _08074C38 +_08074C24: + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + ldrh r0, [r1] + subs r0, r4 + strh r0, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, r4 + bge _08074C24 +_08074C38: + movs r3, 0xE + ldrsh r1, [r6, r3] + ldrh r2, [r6, 0x10] + movs r3, 0x10 + ldrsh r0, [r6, r3] + cmp r1, r0 + blt _08074C48 + strh r2, [r6, 0xE] +_08074C48: + adds r0, r6, 0 + adds r0, 0xA8 + ldrb r0, [r0] + cmp r0, 0 + beq _08074C6E + adds r4, r6, 0 + adds r4, 0xA9 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074C6E + adds r0, r7, 0 + adds r1, r7, 0 + movs r2, 0x1 + movs r3, 0x1 + bl sub_807A124 +_08074C6E: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074C7C + b _08074F96 +_08074C7C: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074C88 + b _08074F96 +_08074C88: + adds r0, r6, 0 + adds r0, 0xAC + ldrb r0, [r0] + cmp r0, 0 + beq _08074CAA + adds r4, r6, 0 + adds r4, 0xAD + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074CAA + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A290 +_08074CAA: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074CB8 + b _08074F96 +_08074CB8: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074CC4 + b _08074F96 +_08074CC4: + adds r0, r6, 0 + adds r0, 0xB0 + ldrb r0, [r0] + cmp r0, 0 + beq _08074CE6 + adds r4, r6, 0 + adds r4, 0xB8 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074CE6 + adds r0, r7, 0 + adds r1, r7, 0 + bl SendImmobilizeEndMessage +_08074CE6: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074CF4 + b _08074F96 +_08074CF4: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074D00 + b _08074F96 +_08074D00: + adds r0, r6, 0 + adds r0, 0xBC + ldrb r0, [r0] + cmp r0, 0 + beq _08074D22 + adds r4, r6, 0 + adds r4, 0xBD + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074D22 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A400 +_08074D22: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074D30 + b _08074F96 +_08074D30: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074D3C + b _08074F96 +_08074D3C: + adds r0, r6, 0 + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0 + beq _08074D5E + adds r4, r6, 0 + adds r4, 0xC5 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074D5E + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A4C8 +_08074D5E: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074D6C + b _08074F96 +_08074D6C: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074D78 + b _08074F96 +_08074D78: + adds r0, r6, 0 + adds r0, 0xC8 + ldrb r0, [r0] + cmp r0, 0 + beq _08074D9C + adds r4, r6, 0 + adds r4, 0xCB + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074D9C + adds r0, r7, 0 + adds r1, r7, 0 + movs r2, 0 + bl sub_807A5D0 +_08074D9C: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074DAA + b _08074F96 +_08074DAA: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074DB6 + b _08074F96 +_08074DB6: + adds r0, r6, 0 + adds r0, 0xD0 + ldrb r0, [r0] + cmp r0, 0 + beq _08074DD8 + adds r4, r6, 0 + adds r4, 0xD9 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074DD8 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A6C8 +_08074DD8: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074DE6 + b _08074F96 +_08074DE6: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074DF2 + b _08074F96 +_08074DF2: + adds r0, r6, 0 + adds r0, 0xDC + ldrb r0, [r0] + cmp r0, 0 + beq _08074E14 + adds r4, r6, 0 + adds r4, 0xDD + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074E14 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A734 +_08074E14: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074E22 + b _08074F96 +_08074E22: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074E2E + b _08074F96 +_08074E2E: + adds r0, r6, 0 + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0 + beq _08074E50 + adds r4, r6, 0 + adds r4, 0xE5 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074E50 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A7C8 +_08074E50: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074E5E + b _08074F96 +_08074E5E: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08074E6A + b _08074F96 +_08074E6A: + adds r0, r6, 0 + adds r0, 0xE8 + ldrb r0, [r0] + cmp r0, 0 + beq _08074E8C + adds r4, r6, 0 + adds r4, 0xE9 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074E8C + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A888 +_08074E8C: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _08074E9A + b _08074F96 +_08074E9A: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08074F96 + adds r0, r6, 0 + adds r0, 0xEC + ldrb r0, [r0] + cmp r0, 0 + beq _08074EC6 + adds r4, r6, 0 + adds r4, 0xED + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074EC6 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_807A924 +_08074EC6: + adds r0, r7, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _08074F96 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08074F96 + adds r4, r6, 0 + adds r4, 0xFA + ldrb r0, [r4] + cmp r0, 0 + beq _08074F18 + adds r0, r4, 0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074F18 + ldr r0, _08074F04 + adds r1, r7, 0 + b _08074F08 + .align 2, 0 +_08074EF8: .4byte gUnknown_80F4FC4 +_08074EFC: .4byte gUnknown_80F4FC0 +_08074F00: .4byte gUnknown_80F4FC2 +_08074F04: .4byte gAvailablePokemonNames +_08074F08: + movs r2, 0 + bl SetMessageArgument + ldr r0, _08074FA0 + ldr r1, [r0] + adds r0, r7, 0 + bl SendMessage +_08074F18: + movs r0, 0 + mov r8, r0 + movs r5, 0 +_08074F1E: + ldr r1, _08074FA4 + adds r0, r6, r1 + adds r4, r0, r5 + ldrb r0, [r4] + cmp r0, 0 + beq _08074F3C + adds r0, r5, r1 + adds r0, r6, r0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074F3C + movs r2, 0x1 + mov r8, r2 +_08074F3C: + movs r3, 0x84 + lsls r3, 1 + adds r0, r6, r3 + adds r4, r0, r5 + ldrb r0, [r4] + cmp r0, 0 + beq _08074F5C + adds r0, r5, r3 + adds r0, r6, r0 + bl sub_80838EC + ldrb r0, [r4] + cmp r0, 0 + bne _08074F5C + movs r0, 0x1 + mov r8, r0 +_08074F5C: + adds r5, 0x1 + cmp r5, 0x4 + ble _08074F1E + mov r1, r8 + cmp r1, 0 + beq _08074F96 + ldr r0, [r7, 0x70] + movs r2, 0x82 + lsls r2, 1 + adds r0, r2 + ldr r4, [r0] + adds r0, r7, 0 + bl sub_8070774 + adds r5, r0, 0 + cmp r4, r5 + beq _08074F96 + ldr r0, _08074FA8 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + ldr r1, _08074FAC + lsls r0, r5, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r7, 0 + bl SendMessage +_08074F96: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08074FA0: .4byte gPtrStenchWavedOffMessage +_08074FA4: .4byte 0x0000010d +_08074FA8: .4byte gAvailablePokemonNames +_08074FAC: .4byte gUnknown_80FA124 + thumb_func_end sub_8074B54 + + thumb_func_start sub_8074FB0 +sub_8074FB0: + push {r4-r6,lr} + adds r3, r0, 0 + adds r5, r1, 0 + ldr r4, [r3, 0x70] + movs r1, 0xFA + lsls r1, 1 + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x3 + ble _08074FD0 + adds r1, r4, 0 + adds r1, 0x44 + movs r0, 0 + strh r0, [r1] + b _08075040 +_08074FD0: + ldr r0, _08074FE0 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0 + beq _08074FE8 + ldr r1, _08074FE4 + movs r0, 0x2 + b _08074FEC + .align 2, 0 +_08074FE0: .4byte gUnknown_203B46C +_08074FE4: .4byte gUnknown_202F378 +_08074FE8: + ldr r1, _08075048 + movs r0, 0x1 +_08074FEC: + str r0, [r1] + adds r6, r1, 0 + movs r1, 0xFA + lsls r1, 1 + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + movs r0, 0xC2 + lsls r0, 1 + adds r1, r0 + adds r1, r4, r1 + movs r0, 0 + strb r0, [r1, 0x1A] + str r5, [r1, 0xC] + ldrh r0, [r3, 0x4] + strh r0, [r1] + ldrh r0, [r3, 0x6] + strh r0, [r1, 0x2] + movs r3, 0 + ldrsh r0, [r2, r3] + str r0, [r1, 0x4] + movs r3, 0x2 + ldrsh r0, [r2, r3] + str r0, [r1, 0x8] + ldr r0, _0807504C + lsls r2, r5, 2 + adds r2, r0 + movs r5, 0 + ldrsh r0, [r2, r5] + ldr r3, [r6] + muls r0, r3 + str r0, [r1, 0x10] + movs r5, 0x2 + ldrsh r0, [r2, r5] + muls r0, r3 + str r0, [r1, 0x14] + adds r0, r4, 0 + bl sub_8075050 +_08075040: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075048: .4byte gUnknown_202F378 +_0807504C: .4byte gUnknown_80F4D44 + thumb_func_end sub_8074FB0 + + thumb_func_start sub_8075050 +sub_8075050: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r0 + adds r6, r1, 0 + ldr r0, _08075070 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0 + beq _08075078 + ldr r1, _08075074 + movs r0, 0x2 + b _0807507C + .align 2, 0 +_08075070: .4byte gUnknown_203B46C +_08075074: .4byte gUnknown_202F378 +_08075078: + ldr r1, _080750D0 + movs r0, 0x1 +_0807507C: + str r0, [r1] + movs r1, 0xFA + lsls r1, 1 + add r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080750D4 + ldr r0, _080750D0 + ldr r1, [r0] + lsls r1, 1 + movs r0, 0x18 + bl __divsi3 + movs r1, 0xCE + lsls r1, 1 + add r1, r9 + strh r0, [r1] + movs r2, 0xCA + lsls r2, 1 + add r2, r9 + ldr r1, [r2] + lsls r1, 1 + str r1, [r2] + movs r2, 0xCC + lsls r2, 1 + add r2, r9 + ldr r1, [r2] + lsls r1, 1 + str r1, [r2] + strh r0, [r6, 0x18] + ldr r0, [r6, 0x10] + lsls r0, 1 + str r0, [r6, 0x10] + ldr r0, [r6, 0x14] + lsls r0, 1 + str r0, [r6, 0x14] + b _080751F8 + .align 2, 0 +_080750D0: .4byte gUnknown_202F378 +_080750D4: + cmp r0, 0x3 + bne _08075160 + ldr r1, [r6, 0x10] + str r1, [sp] + ldr r0, [r6, 0x14] + str r0, [sp, 0x4] + movs r4, 0xCE + lsls r4, 1 + add r4, r9 + movs r5, 0 + movs r7, 0x1 +_080750EA: + ldr r1, _0807515C + ldr r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + movs r0, 0x18 + bl __divsi3 + strh r0, [r4] + movs r3, 0xCA + lsls r3, 1 + add r3, r9 + adds r3, r5 + ldr r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + str r0, [r3] + movs r2, 0xCC + lsls r2, 1 + add r2, r9 + adds r2, r5 + ldr r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + str r0, [r2] + ldr r0, [r3] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r3] + ldr r0, [r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r2] + adds r4, 0x1C + adds r5, 0x1C + subs r7, 0x1 + cmp r7, 0 + bge _080750EA + ldr r1, _0807515C + ldr r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + movs r0, 0x18 + bl __divsi3 + strh r0, [r6, 0x18] + ldr r1, [sp] + lsls r0, r1, 1 + adds r0, r1 + str r0, [r6, 0x10] + ldr r1, [sp, 0x4] + lsls r0, r1, 1 + adds r0, r1 + str r0, [r6, 0x14] + b _080751F8 + .align 2, 0 +_0807515C: .4byte gUnknown_202F378 +_08075160: + cmp r0, 0x4 + bne _080751EC + ldr r0, [r6, 0x10] + str r0, [sp] + ldr r1, [r6, 0x14] + str r1, [sp, 0x4] + movs r7, 0xCE + lsls r7, 1 + add r7, r9 + movs r0, 0 + mov r8, r0 + movs r1, 0x2 + mov r10, r1 +_0807517A: + ldr r0, _080751E8 + ldr r1, [r0] + lsls r1, 2 + movs r0, 0x18 + bl __divsi3 + strh r0, [r7] + movs r4, 0xCA + lsls r4, 1 + add r4, r9 + add r4, r8 + ldr r0, [r4] + lsls r0, 2 + str r0, [r4] + movs r5, 0xCC + lsls r5, 1 + add r5, r9 + add r5, r8 + ldr r0, [r5] + lsls r0, 2 + str r0, [r5] + ldr r0, [r4] + movs r1, 0x3 + bl __divsi3 + str r0, [r4] + ldr r0, [r5] + movs r1, 0x3 + bl __divsi3 + str r0, [r5] + adds r7, 0x1C + movs r1, 0x1C + add r8, r1 + movs r0, 0x1 + negs r0, r0 + add r10, r0 + mov r1, r10 + cmp r1, 0 + bge _0807517A + ldr r0, _080751E8 + ldr r1, [r0] + lsls r1, 2 + movs r0, 0x18 + bl __divsi3 + strh r0, [r6, 0x18] + ldr r1, [sp] + lsls r0, r1, 2 + str r0, [r6, 0x10] + ldr r1, [sp, 0x4] + lsls r0, r1, 2 + str r0, [r6, 0x14] + b _080751F8 + .align 2, 0 +_080751E8: .4byte gUnknown_202F378 +_080751EC: + ldr r0, _08075208 + ldr r1, [r0] + movs r0, 0x18 + bl __divsi3 + strh r0, [r6, 0x18] +_080751F8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075208: .4byte gUnknown_202F378 + thumb_func_end sub_8075050 + + thumb_func_start sub_807520C +sub_807520C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r10, r0 + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r0, _08075238 + mov r1, r9 + strb r1, [r0] + ldr r0, _0807523C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0 + beq _08075244 + ldr r1, _08075240 + movs r0, 0x2 + b _08075248 + .align 2, 0 +_08075238: .4byte gUnknown_202F32D +_0807523C: .4byte gUnknown_203B46C +_08075240: .4byte gUnknown_202F378 +_08075244: + ldr r1, _080752D0 + movs r0, 0x1 +_08075248: + str r0, [r1] + movs r2, 0 + mov r8, r2 +_0807524E: + ldr r0, _080752D4 + ldr r0, [r0] + mov r3, r8 + lsls r1, r3, 2 + ldr r4, _080752D8 + adds r0, r4 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0807534C + ldr r4, [r5, 0x70] + movs r1, 0xFA + lsls r1, 1 + adds r0, r4, r1 + movs r3, 0 + ldrsh r2, [r0, r3] + cmp r2, 0 + bne _080752E0 + ldr r0, _080752DC + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0807534C + strb r2, [r1] + movs r1, 0xB6 + lsls r1, 1 + adds r6, r4, r1 + ldr r1, [r6] + cmp r1, 0 + beq _0807534C + ldr r0, [r5, 0x4] + cmp r1, r0 + beq _0807534C + adds r0, r5, 0 + movs r1, 0x1 + bl CannotMove + lsls r0, 24 + cmp r0, 0 + beq _080752B2 + adds r0, r5, 0 + bl CannotAct + lsls r0, 24 + cmp r0, 0 + bne _0807534C +_080752B2: + adds r0, r5, 0x4 + adds r1, r6, 0 + bl CalculateFacingDir + adds r1, r0, 0 + adds r0, r4, 0 + adds r0, 0x46 + ldrb r0, [r0] + cmp r1, r0 + beq _0807534C + adds r0, r5, 0 + bl sub_806CE68 + b _0807534C + .align 2, 0 +_080752D0: .4byte gUnknown_202F378 +_080752D4: .4byte gDungeonGlobalData +_080752D8: .4byte 0x000135cc +_080752DC: .4byte 0x00000147 +_080752E0: + ldrh r1, [r4] + movs r2, 0x80 + lsls r2, 6 + adds r0, r2, 0 + orrs r0, r1 + strh r0, [r4] + movs r3, 0xC4 + lsls r3, 1 + adds r0, r4, r3 + ldr r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1 + str r0, [sp] + movs r2, 0xC6 + lsls r2, 1 + adds r0, r4, r2 + ldr r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3 + str r0, [sp, 0x4] + adds r0, r5, 0 + mov r1, sp + bl sub_804535C + movs r1, 0xC8 + lsls r1, 1 + adds r0, r4, r1 + ldr r2, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_806CDFC + movs r2, 0xFB + lsls r2, 1 + adds r0, r4, r2 + movs r3, 0 + strh r3, [r0] + movs r7, 0x1 + adds r0, r5, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0807534C + movs r4, 0x1 + mov r9, r4 +_0807534C: + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x13 + bgt _08075358 + b _0807524E +_08075358: + cmp r7, 0 + bne _08075360 + movs r0, 0 + b _0807566C +_08075360: + ldr r0, _08075390 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xB8 + ldr r2, [r1] + str r2, [sp, 0x10] + mov r3, r10 + str r3, [r1] + ldr r4, _08075394 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0807537C + b _080754AE +_0807537C: + mov r0, r9 + cmp r0, 0 + bne _08075384 + b _080754AE +_08075384: + movs r0, 0x35 + bl sub_80526D0 + movs r5, 0 + b _0807549E + .align 2, 0 +_08075390: .4byte gDungeonGlobalData +_08075394: .4byte 0x0000066c +_08075398: + movs r0, 0x7 + bl sub_803E46C + movs r1, 0 + mov r8, r1 + adds r5, 0x1 + mov r9, r5 +_080753A6: + ldr r0, _08075420 + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _08075424 + adds r0, r3 + adds r0, r1 + ldr r3, [r0] + adds r0, r3, 0 + str r3, [sp, 0x14] + bl EntityExists + lsls r0, 24 + ldr r3, [sp, 0x14] + cmp r0, 0 + beq _08075492 + ldr r0, [r3, 0x70] + adds r7, r0, 0 + movs r4, 0xFB + lsls r4, 1 + adds r5, r7, r4 + movs r1, 0 + ldrsh r0, [r5, r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + movs r2, 0xC2 + lsls r2, 1 + adds r1, r2 + adds r4, r7, r1 + movs r0, 0xFA + lsls r0, 1 + adds r6, r7, r0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _08075492 + ldr r1, [r4, 0x10] + ldr r2, [r4, 0x14] + adds r0, r3, 0 + bl sub_804539C + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r2, r0, 16 + ldr r3, [sp, 0x14] + cmp r2, 0 + bne _08075492 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + asrs r0, 16 + movs r4, 0 + ldrsh r1, [r6, r4] + cmp r0, r1 + bne _08075428 + strh r2, [r6] + b _08075492 + .align 2, 0 +_08075420: .4byte gDungeonGlobalData +_08075424: .4byte 0x000135cc +_08075428: + movs r0, 0 + ldrsh r1, [r5, r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + movs r2, 0xC4 + lsls r2, 1 + adds r1, r7, r2 + adds r1, r0 + ldr r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r4, 0xC0 + lsls r4, 4 + adds r0, r4 + str r0, [sp, 0x8] + movs r0, 0 + ldrsh r1, [r5, r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r1, r7, r2 + adds r1, r0 + ldr r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r4, 0x80 + lsls r4, 5 + adds r0, r4 + add r1, sp, 0x8 + str r0, [r1, 0x4] + adds r0, r3, 0 + str r3, [sp, 0x14] + bl sub_804535C + movs r0, 0 + ldrsh r1, [r5, r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + movs r2, 0xC8 + lsls r2, 1 + adds r1, r7, r2 + adds r1, r0 + ldr r2, [r1] + ldr r3, [sp, 0x14] + adds r0, r3, 0 + movs r1, 0 + bl sub_806CDFC +_08075492: + movs r3, 0x1 + add r8, r3 + mov r4, r8 + cmp r4, 0x13 + ble _080753A6 + mov r5, r9 +_0807549E: + ldr r0, _08075510 + ldr r1, [r0] + movs r0, 0x18 + bl __divsi3 + cmp r5, r0 + bge _080754AE + b _08075398 +_080754AE: + movs r0, 0 + mov r8, r0 +_080754B2: + ldr r0, _08075514 + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _08075518 + adds r0, r3 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080754F6 + ldr r4, [r5, 0x70] + movs r0, 0xFA + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0 + strh r0, [r1] + adds r0, r5, 0 + bl nullsub_97 + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 6 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080754F6 + adds r0, r5, 0 + movs r1, 0 + bl sub_804535C +_080754F6: + movs r3, 0x1 + add r8, r3 + mov r4, r8 + cmp r4, 0x13 + ble _080754B2 + bl sub_807AA30 + movs r7, 0 +_08075506: + movs r5, 0 + adds r0, r7, 0x1 + mov r8, r0 + b _08075600 + .align 2, 0 +_08075510: .4byte gUnknown_202F378 +_08075514: .4byte gDungeonGlobalData +_08075518: .4byte 0x000135cc +_0807551C: + ldr r2, [r4, 0x70] + cmp r7, 0 + bne _0807552A + ldrb r0, [r2, 0x7] + cmp r0, 0 + beq _080755FE + b _08075530 +_0807552A: + ldrb r0, [r2, 0x7] + cmp r0, 0 + bne _080755FE +_08075530: + ldr r6, [r4, 0x4] + ldrh r1, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080755BC + ldr r3, _08075560 + adds r0, r3, 0 + ands r0, r1 + strh r0, [r2] + ldrb r0, [r2, 0x7] + cmp r0, 0 + beq _08075564 + adds r0, r4, 0x4 + bl sub_804AC20 + movs r0, 0 + bl sub_807EC28 + bl sub_805EE30 + b _0807556A + .align 2, 0 +_08075560: .4byte 0x0000dfff +_08075564: + adds r0, r4, 0 + bl sub_8075708 +_0807556A: + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080755FE + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0807562A + movs r0, 0 + bl sub_8043ED0 + adds r0, r4, 0 + bl sub_8074094 + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080755FE + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0807562A + adds r0, r4, 0 + bl sub_8071DA4 + bl sub_8046D20 + ldr r0, _08075650 + ldr r0, [r0] + ldr r1, _08075654 + adds r0, r1 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_8075900 +_080755BC: + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080755FE + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0807562A + ldr r0, [r4, 0x4] + cmp r6, r0 + beq _080755DE + ldr r1, _08075658 + movs r0, 0x1 + strb r0, [r1] +_080755DE: + adds r0, r4, 0 + bl sub_806A5B8 + adds r1, r4, 0x4 + adds r0, r4, 0 + bl sub_80706A4 + lsls r0, 24 + cmp r0, 0 + beq _080755FE + adds r0, r4, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_807D148 +_080755FE: + adds r5, 0x1 +_08075600: + cmp r5, 0x13 + bgt _0807562A + ldr r0, _08075650 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _0807565C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080755FE + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0807562A + b _0807551C +_0807562A: + mov r7, r8 + cmp r7, 0x1 + bgt _08075632 + b _08075506 +_08075632: + bl sub_8086AC0 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08075660 + bl sub_8085140 + ldr r0, _08075650 + ldr r0, [r0] + adds r0, 0xB8 + ldr r3, [sp, 0x10] + str r3, [r0] + b _0807566A + .align 2, 0 +_08075650: .4byte gDungeonGlobalData +_08075654: .4byte 0x00003a08 +_08075658: .4byte gUnknown_202F32D +_0807565C: .4byte 0x000135cc +_08075660: + ldr r0, _0807567C + ldr r0, [r0] + adds r0, 0xB8 + ldr r4, [sp, 0x10] + str r4, [r0] +_0807566A: + movs r0, 0x1 +_0807566C: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0807567C: .4byte gDungeonGlobalData + thumb_func_end sub_807520C + + thumb_func_start sub_8075680 +sub_8075680: + push {r4-r7,lr} + movs r7, 0 +_08075684: + ldr r0, _080756FC + ldr r0, [r0] + lsls r1, r7, 2 + ldr r2, _08075700 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080756EE + ldr r6, [r5, 0x70] + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _080756EE + movs r0, 0xB6 + lsls r0, 1 + adds r4, r6, r0 + ldr r1, [r4] + cmp r1, 0 + beq _080756EE + ldr r0, [r5, 0x4] + cmp r1, r0 + beq _080756EE + adds r0, r5, 0 + movs r1, 0x1 + bl CannotMove + lsls r0, 24 + cmp r0, 0 + bne _080756EE + adds r0, r5, 0x4 + adds r1, r4, 0 + bl CalculateFacingDir + adds r4, r0, 0 + movs r1, 0x7 + ands r0, r1 + adds r1, r6, 0 + adds r1, 0x46 + strb r0, [r1] + adds r0, r5, 0 + bl sub_806CEBC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl sub_806CDD4 +_080756EE: + adds r7, 0x1 + cmp r7, 0x13 + ble _08075684 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080756FC: .4byte gDungeonGlobalData +_08075700: .4byte 0x000135cc + thumb_func_end sub_8075680 + + thumb_func_start nullsub_97 +nullsub_97: + bx lr + thumb_func_end nullsub_97 + + thumb_func_start sub_8075708 +sub_8075708: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + ldr r6, [r4, 0x70] + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0807580C + adds r0, r4, 0 + bl sub_8045128 + adds r5, r0, 0 + adds r0, r4, 0 + movs r1, 0xD + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + beq _08075752 + adds r0, r6, 0 + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0x3 + beq _08075752 + adds r0, r4, 0 + movs r1, 0x9 + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + bne _08075752 + adds r0, r4, 0x4 + bl sub_804AE84 +_08075752: + ldr r5, [r5, 0x14] + cmp r5, 0 + beq _0807580C + adds r0, r5, 0 + bl GetEntityType + cmp r0, 0x5 + bhi _0807580C + lsls r0, 2 + ldr r1, _0807576C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807576C: .4byte _08075770 + .align 2, 0 +_08075770: + .4byte _0807580C + .4byte _0807580C + .4byte _08075788 + .4byte _08075806 + .4byte _0807580C + .4byte _0807580C +_08075788: + adds r0, r5, 0 + bl sub_8045104 + adds r7, r0, 0 + movs r0, 0 + mov r8, r0 + mov r9, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + beq _080757BA + adds r1, r5, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + bne _080757BA + movs r0, 0x1 + strb r0, [r1] + bl sub_8049ED4 + movs r0, 0x1 + mov r9, r0 +_080757BA: + ldrb r0, [r7, 0x1] + cmp r0, 0 + bne _080757D2 + adds r0, r5, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _080757EC + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _080757EC + b _080757F2 +_080757D2: + cmp r0, 0x1 + bne _080757DE + ldrb r0, [r6, 0x6] + cmp r0, 0 + beq _080757EC + b _080757F2 +_080757DE: + cmp r0, 0x2 + bne _080757EC + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _080757EC + movs r0, 0x1 + mov r8, r0 +_080757EC: + mov r0, r8 + cmp r0, 0 + beq _0807580C +_080757F2: + mov r0, r9 + cmp r0, 0 + bne _0807580C + adds r1, r4, 0x4 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_807FE9C + b _0807580C +_08075806: + adds r0, r4, 0 + bl sub_8073D14 +_0807580C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8075708 + + thumb_func_start sub_8075818 +sub_8075818: + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, [r4, 0x70] + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _080758F6 + adds r0, r4, 0 + bl sub_8045128 + adds r5, r0, 0 + adds r0, r4, 0 + movs r1, 0xD + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + beq _08075848 + ldrh r1, [r5] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080758F2 +_08075848: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _080758F6 + adds r0, r4, 0 + bl GetEntityType + cmp r0, 0x5 + bhi _080758F6 + lsls r0, 2 + ldr r1, _08075864 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08075864: .4byte _08075868 + .align 2, 0 +_08075868: + .4byte _080758F6 + .4byte _080758F6 + .4byte _08075880 + .4byte _080758BE + .4byte _080758F6 + .4byte _080758F6 +_08075880: + adds r0, r4, 0 + bl sub_8045104 + movs r1, 0 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080758A0 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _080758B8 + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _080758B8 + b _080758F2 +_080758A0: + cmp r0, 0x1 + bne _080758AC + ldrb r0, [r6, 0x6] + cmp r0, 0 + beq _080758B8 + b _080758F2 +_080758AC: + cmp r0, 0x2 + bne _080758B8 + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _080758B8 + movs r1, 0x1 +_080758B8: + cmp r1, 0 + beq _080758F6 + b _080758F2 +_080758BE: + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _080758F6 + adds r0, r6, 0 + adds r0, 0x60 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080758F6 + ldrh r1, [r5] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _080758E2 + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _080758F6 +_080758E2: + adds r0, r4, 0 + bl GetItemData + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080758F6 +_080758F2: + movs r0, 0x1 + b _080758F8 +_080758F6: + movs r0, 0 +_080758F8: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8075818 + + thumb_func_start sub_8075900 +sub_8075900: + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0807597A + ldr r0, [r4, 0x70] + ldrb r0, [r0, 0x6] + cmp r0, 0 + bne _0807597A + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0807597A + ldr r5, _08075980 + ldr r0, [r5] + ldr r1, _08075984 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0807597A + adds r0, r4, 0 + bl sub_8045128 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0807597A + bl sub_8083600 + ldr r1, _08075988 + ldr r1, [r1] + bl SendMessage + ldr r0, [r5] + ldr r1, _0807598C + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_807AB38 + movs r0, 0 + bl sub_8041888 + adds r0, r4, 0x4 + bl sub_803F428 + lsls r0, 24 + cmp r0, 0 + beq _0807597A + movs r0, 0x78 + movs r1, 0x39 + bl sub_803E708 +_0807597A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075980: .4byte gDungeonGlobalData +_08075984: .4byte 0x00000671 +_08075988: .4byte gUnknown_80FE308 +_0807598C: .4byte 0x00000672 + thumb_func_end sub_8075900 diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s index d872a55..3d58752 100644 --- a/asm/code_8075BA4.s +++ b/asm/code_8075BA4.s @@ -1008,7 +1008,7 @@ _08076362: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -1016,7 +1016,7 @@ _08076362: cmp r0, 0 beq _080763D4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080763D4 mov r0, r9 @@ -1240,7 +1240,7 @@ _08076544: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -1248,7 +1248,7 @@ _08076544: cmp r0, 0 beq _080765B4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080765B4 mov r0, r9 @@ -1463,7 +1463,7 @@ _08076714: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -1471,7 +1471,7 @@ _08076714: cmp r0, 0 beq _08076784 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08076784 mov r0, r9 @@ -3587,7 +3587,7 @@ _08077874: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -3595,7 +3595,7 @@ _08077874: cmp r0, 0 beq _080778E4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080778E4 mov r0, r9 @@ -4442,7 +4442,7 @@ sub_8077F40: b _08078068 _08077F62: adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType mov r10, r0 cmp r0, 0x1 beq _08077F70 @@ -4644,11 +4644,11 @@ sub_80780E4: cmp r0, 0 beq _080781C4 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080781C4 adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080781C4 ldr r6, [r4, 0x70] @@ -10348,7 +10348,7 @@ sub_807AEBC: cmp r4, 0 beq _0807AF50 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x5 bhi _0807AF50 lsls r0, 2 @@ -10387,7 +10387,7 @@ _0807AF18: bne _0807AF50 _0807AF3C: adds r0, r4, 0 - bl sub_8045108 + bl GetItemData ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -10700,7 +10700,7 @@ _0807B17C: ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _0807B1C4 @@ -10758,7 +10758,7 @@ _0807B200: ldr r0, [r0, 0x14] cmp r0, 0 beq _0807B216 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 beq _0807B270 _0807B216: @@ -10894,7 +10894,7 @@ sub_807B2D8: adds r6, 0x4 adds r0, r6, 0 adds r1, r4, 0 - bl sub_80983D8 + bl CalculateFacingDir mov r8, r0 adds r0, r5, 0 adds r0, 0x7A @@ -10924,7 +10924,7 @@ _0807B348: adds r0, r5, 0 adds r0, 0x44 movs r1, 0x1 - bl sub_8044C94 + bl SetAction b _0807B5CE _0807B354: cmp r0, 0x1 @@ -10992,7 +10992,7 @@ _0807B3A8: adds r0, r5, 0 adds r0, 0x44 movs r1, 0x1 - bl sub_8044C94 + bl SetAction ldr r3, _0807B3E4 adds r0, r5, r3 strb r4, [r0] @@ -11032,7 +11032,7 @@ _0807B3E8: adds r0, r5, 0 adds r0, 0x44 movs r1, 0x1 - bl sub_8044C94 + bl SetAction ldr r3, _0807B438 adds r1, r5, r3 movs r0, 0x1 @@ -11211,7 +11211,7 @@ _0807B562: _0807B56E: ldr r0, [sp, 0x34] movs r1, 0x1 - bl sub_8044C94 + bl SetAction ldr r1, _0807B59C adds r0, r5, r1 movs r1, 0 @@ -11414,7 +11414,7 @@ _0807B6FE: ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -11442,7 +11442,7 @@ _0807B71E: lsls r0, r5, 16 asrs r0, 16 asrs r1, r5, 16 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, r10 beq _0807B758 @@ -11890,7 +11890,7 @@ _0807BAA2: ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -11920,7 +11920,7 @@ _0807BAC4: adds r5, r2, r0 mov r0, r8 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0807BB04 @@ -12057,7 +12057,7 @@ _0807BBD6: ldr r0, _0807BC70 movs r1, 0 ldrsh r0, [r0, r1] - bl sub_8084144 + bl RollPercentChance lsls r0, 24 cmp r0, 0 beq _0807BBF2 @@ -12093,7 +12093,7 @@ _0807BC06: mov r0, r8 adds r0, 0x44 movs r1, 0x15 - bl sub_8044C94 + bl SetAction adds r3, r5, 0 mov r6, r8 adds r6, 0x48 @@ -12190,7 +12190,7 @@ _0807BCDE: mov r0, r8 adds r0, 0x44 movs r1, 0x17 - bl sub_8044C94 + bl SetAction mov r0, sp ldrb r1, [r0, 0x1] movs r0, 0x7 @@ -12552,7 +12552,7 @@ _0807BF64: mov r0, r8 adds r0, 0x44 movs r1, 0x32 - bl sub_8044C94 + bl SetAction ldr r0, [sp, 0x34] movs r1, 0x7 ands r0, r1 @@ -12575,7 +12575,7 @@ _0807BF9C: mov r0, r8 adds r0, 0x44 movs r1, 0x15 - bl sub_8044C94 + bl SetAction adds r3, r5, 0 mov r6, r8 adds r6, 0x48 @@ -12632,7 +12632,7 @@ _0807C01A: mov r0, r8 adds r0, 0x44 movs r1, 0x32 - bl sub_8044C94 + bl SetAction ldr r0, [sp, 0x34] movs r1, 0x7 ands r0, r1 @@ -12783,12 +12783,12 @@ _0807C132: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x10] cmp r4, 0 beq _0807C18E adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807C18E asrs r0, r5, 16 @@ -12879,7 +12879,7 @@ _0807C1FA: movs r4, 0x2 ldrsh r2, [r3, r4] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 adds r0, r6, 0 adds r1, r7, 0 @@ -12891,7 +12891,7 @@ _0807C1FA: cmp r5, 0 beq _0807C250 adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807C250 mov r4, r8 @@ -12921,13 +12921,13 @@ _0807C250: ldrsh r2, [r3, r4] lsls r2, 1 adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r5, [r4, 0x10] cmp r5, 0 beq _0807C296 adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807C296 mov r0, r10 @@ -12982,7 +12982,7 @@ _0807C2C0: beq _0807C370 adds r1, r4, 0x4 adds r0, r6, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r5, r0, 0 ldr r0, _0807C384 adds r7, r5, r0 @@ -13375,7 +13375,7 @@ _0807C5BC: _0807C5C4: adds r0, r5, 0x4 adds r1, r7, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r4, r0, 0 _0807C5CE: ldr r0, _0807C638 @@ -13786,12 +13786,12 @@ _0807C8BE: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl sub_804954C + bl GetMapTileAtPosition ldr r5, [r0, 0x10] cmp r5, 0 beq _0807C948 adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807C948 adds r0, r7, 0 @@ -14012,7 +14012,7 @@ _0807CA70: .4byte gUnknown_80F4448 _0807CA74: adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -14565,7 +14565,7 @@ _0807CED8: ldrsh r0, [r7, r1] ldr r1, [sp, 0x18] asrs r1, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r5, r0, 0 ldr r0, [r5, 0x10] cmp r0, 0 @@ -15300,12 +15300,12 @@ _0807D4DC: .4byte gUnknown_80FD320 thumb_func_start sub_807D4E0 sub_807D4E0: push {r4,lr} - bl sub_804954C + bl GetMapTileAtPosition ldr r4, [r0, 0x14] cmp r4, 0 beq _0807D506 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0807D506 adds r1, r4, 0 @@ -15388,7 +15388,7 @@ _0807D580: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 @@ -15588,7 +15588,7 @@ _0807D6DA: lsls r0, r6, 16 asrs r0, 16 asrs r1, r6, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r3, 0x3 @@ -15870,7 +15870,7 @@ _0807D94E: muls r0, r7 add r0, sp adds r0, 0x4 - bl sub_8045108 + bl GetItemData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 @@ -16029,7 +16029,7 @@ _0807DA8C: bgt _0807DB00 adds r0, r5, 0 adds r1, r4, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 @@ -16493,7 +16493,7 @@ _0807DE46: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 @@ -16782,7 +16782,7 @@ _0807E0BE: cmp r4, r10 beq _0807E0DC adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _0807E0DC add r0, sp, 0x4 @@ -16796,7 +16796,7 @@ _0807E0DC: cmp r4, r10 beq _0807E112 adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807E112 ldr r0, _0807E19C @@ -16829,7 +16829,7 @@ _0807E124: cmp r0, 0 bne _0807E174 mov r0, r10 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807E14E ldr r0, _0807E19C @@ -18460,7 +18460,7 @@ _0807EE22: ldrsh r0, [r6, r2] asrs r1, 16 str r3, [sp, 0x18] - bl sub_804954C + bl GetMapTileAtPosition ldrb r0, [r0, 0x9] ldr r3, [sp, 0x18] cmp r0, 0xFF @@ -18487,7 +18487,7 @@ _0807EE72: beq _0807EEAE mov r0, r9 mov r1, r8 - bl sub_80983D8 + bl CalculateFacingDir adds r1, r0, 0 adds r0, r7, 0 bl sub_806CE34 @@ -18510,7 +18510,7 @@ _0807EEAE: _0807EEB2: mov r0, r8 mov r1, r9 - bl sub_80983D8 + bl CalculateFacingDir adds r1, r0, 0 adds r0, r5, 0 bl sub_806CE68 @@ -18761,7 +18761,7 @@ _0807F09A: str r0, [sp, 0x4] adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x20 @@ -18771,11 +18771,11 @@ _0807F09A: ldr r0, [r4, 0x14] cmp r0, 0 beq _0807F114 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _0807F114 ldr r0, [r4, 0x14] - bl sub_8045108 + bl GetItemData adds r2, r0, 0 ldrb r1, [r2] movs r7, 0x2 @@ -18953,7 +18953,7 @@ _0807F23C: _0807F240: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x20 @@ -18963,11 +18963,11 @@ _0807F240: ldr r0, [r4, 0x14] cmp r0, 0 beq _0807F27E - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _0807F27E ldr r0, [r4, 0x14] - bl sub_8045108 + bl GetItemData adds r4, r0, 0 ldrb r0, [r4, 0x2] bl CanSellItem @@ -19097,16 +19097,16 @@ _0807F360: _0807F364: adds r0, r6, 0 adds r1, r5, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807F38A - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _0807F38A ldr r0, [r4, 0x14] - bl sub_8045108 + bl GetItemData ldrb r2, [r0] movs r1, 0xFD ands r1, r2 @@ -19564,7 +19564,7 @@ _0807F70C: mov r1, r8 adds r1, 0x4 add r0, sp, 0xD4 - bl sub_80983D8 + bl CalculateFacingDir adds r5, r0, 0 add r2, sp, 0xD4 movs r1, 0 @@ -19698,7 +19698,7 @@ _0807F7FC: adds r4, r2, 0 movs r3, 0x2 ldrsh r1, [r4, r3] - bl sub_804954C + bl GetMapTileAtPosition ldr r6, [r0, 0x10] adds r0, r6, 0 bl EntityExists @@ -19791,7 +19791,7 @@ _0807F8DC: bl sub_80694C0 _0807F8FA: adds r0, r6, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _0807F954 add r4, sp, 0xE4 @@ -20049,12 +20049,12 @@ _0807FAF8: movs r6, 0 adds r0, r5, 0 mov r1, r8 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807FB24 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0807FB24 ldr r0, [r4, 0x14] @@ -20274,7 +20274,7 @@ sub_807FC80: ldr r0, [r2, 0x14] cmp r0, 0 beq _0807FCCE - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 beq _0807FCCE _0807FCCA: @@ -20346,7 +20346,7 @@ _0807FD12: ldr r0, [r6, 0x14] cmp r0, 0 beq _0807FD60 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0807FD6E ldr r0, [r6, 0x14] @@ -20461,7 +20461,7 @@ sub_807FE04: ldr r0, [r4, 0x14] cmp r0, 0 beq _0807FE3C - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0807FE3C ldr r1, [r4, 0x14] @@ -20492,12 +20492,12 @@ sub_807FE44: ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807FE7C - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _0807FE7C ldr r0, [r4, 0x14] @@ -20560,7 +20560,7 @@ sub_807FE9C: bne _0807FECE b _080801B4 _0807FECE: - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 beq _0807FED8 b _080801B4 @@ -20577,7 +20577,7 @@ _0807FED8: cmp r4, 0 beq _0807FEFE adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 beq _0807FEFE movs r4, 0 @@ -21847,7 +21847,7 @@ _080808E2: ldrsh r0, [r5, r2] movs r3, 0x2 ldrsh r1, [r5, r3] - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _0808090A @@ -21900,18 +21900,18 @@ _0808093E: _0808094A: adds r0, r6, 0 adds r1, r7, 0 - bl sub_804954C + bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x14] adds r2, r6, 0x1 mov r9, r2 cmp r0, 0 beq _08080A18 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _08080A18 ldr r0, [r4, 0x14] - bl sub_8045108 + bl GetItemData ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -22125,7 +22125,7 @@ sub_8080B00: cmp r0, 0 beq _08080B2A adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _08080B26 adds r0, r4, 0 @@ -22230,11 +22230,11 @@ _08080BD8: cmp r4, 0 beq _08080C1A adds r0, r4, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x3 bne _08080C1A adds r0, r4, 0 - bl sub_8045108 + bl GetItemData adds r1, r0, 0 adds r0, r6, 0 bl sub_8081788 @@ -22301,7 +22301,7 @@ _08080C6A: cmp r5, 0 beq _08080CC8 adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x2 bne _08080CC8 adds r0, r5, 0 @@ -26906,7 +26906,7 @@ _080832AA: ldrsh r0, [r4, r2] movs r3, 0x2 ldrsh r1, [r4, r3] - bl sub_804954C + bl GetMapTileAtPosition ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _080832F0 @@ -26989,7 +26989,7 @@ sub_808333C: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl sub_804954C + bl GetMapTileAtPosition ldrb r2, [r0, 0x9] cmp r2, 0xFF beq _08083394 @@ -27082,7 +27082,7 @@ sub_80833E8: ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldr r0, _08083438 ldr r3, [r0] @@ -27228,7 +27228,7 @@ _080834F8: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -27267,7 +27267,7 @@ _0808353E: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] - bl sub_804954C + bl GetMapTileAtPosition ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -27593,7 +27593,7 @@ _0808379C: ldr r2, _0808380C add r2, sp str r3, [r2] - bl sub_804954C + bl GetMapTileAtPosition adds r2, r0, 0 ldr r0, _08083810 ldr r1, _0808380C @@ -27705,7 +27705,7 @@ _0808386A: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 ldrh r2, [r1] movs r7, 0x80 @@ -28019,7 +28019,7 @@ sub_8083AB0: cmp r0, 0 beq _08083AE4 adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _08083AE4 ldr r6, [r5, 0x70] @@ -28906,8 +28906,8 @@ _0808413C: bx r1 thumb_func_end sub_808411C - thumb_func_start sub_8084144 -sub_8084144: + thumb_func_start RollPercentChance +RollPercentChance: push {r4,lr} adds r4, r0, 0 movs r0, 0x64 @@ -28922,7 +28922,7 @@ _08084158: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8084144 + thumb_func_end RollPercentChance thumb_func_start sub_8084160 sub_8084160: @@ -28960,7 +28960,7 @@ sub_808417C: cmp r0, 0 beq _080841DC adds r0, r5, 0 - bl sub_80450F8 + bl GetEntityType cmp r0, 0x1 bne _080841DC cmp r6, 0 diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s index 38777e9..6fa181d 100644 --- a/asm/code_80848F0.s +++ b/asm/code_80848F0.s @@ -218,7 +218,7 @@ _080853EE: lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 - bl sub_804954C + bl GetMapTileAtPosition adds r1, r0, 0 mov r0, r8 bl sub_807034C diff --git a/asm/code_80983D8.s b/asm/code_80983D8.s index bb55c2d..aed2fc9 100644 --- a/asm/code_80983D8.s +++ b/asm/code_80983D8.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80983D8 -sub_80983D8: + thumb_func_start CalculateFacingDir +CalculateFacingDir: push {r4,lr} movs r2, 0 ldrsh r3, [r1, r2] @@ -58,6 +58,6 @@ _08098428: bx r1 .align 2, 0 _08098430: .4byte gUnknown_8115E94 - thumb_func_end sub_80983D8 + thumb_func_end CalculateFacingDir .align 2,0 diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s index 6e3a8e8..85a8d1c 100644 --- a/asm/jirachi_wish.s +++ b/asm/jirachi_wish.s @@ -446,7 +446,7 @@ _0808B98E: adds r1, r0, 0 adds r1, 0x4 adds r0, r6, 0x4 - bl sub_80983D8 + bl CalculateFacingDir adds r1, r0, 0 adds r0, r6, 0 bl sub_8085918 diff --git a/include/constants/direction.h b/include/constants/direction.h index 5f2bfb3..7c5cec5 100644 --- a/include/constants/direction.h +++ b/include/constants/direction.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_DIRECTION_H #define GUARD_CONSTANTS_DIRECTION_H +#define DIRECTION_MASK 7 + enum Direction { DIRECTION_SOUTH, @@ -10,7 +12,8 @@ enum Direction DIRECTION_NORTH, DIRECTION_NORTHWEST, DIRECTION_WEST, - DIRECTION_SOUTHWEST + DIRECTION_SOUTHWEST, + NUM_DIRECTIONS }; #endif diff --git a/include/dungeon_ai_items.h b/include/dungeon_ai_items.h new file mode 100644 index 0000000..e7d9f4f --- /dev/null +++ b/include/dungeon_ai_items.h @@ -0,0 +1,9 @@ +#ifndef GUARD_DUNGEON_AI_ITEMS_H +#define GUARD_DUNGEON_AI_ITEMS_H + +#include "dungeon_entity.h" + +// 0x73658 +void DecideUseItem(struct DungeonEntity *pokemon); + +#endif diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h index d89b997..341f3d6 100644 --- a/include/dungeon_entity.h +++ b/include/dungeon_entity.h @@ -62,17 +62,13 @@ struct DungeonEntityData /* 0x4E */ s16 lastItemThrowPositionY; u8 fill50[0x58 - 0x50]; // Position of the target that the Pokémon wants throw an item at. - /* 0x58 */ s16 itemTargetPositionX; - /* 0x5A */ s16 itemTargetPositionY; + /* 0x58 */ s16 *itemTargetPosition; /* 0x5C */ u8 type1; /* 0x5D */ u8 type2; /* 0x5E */ u8 ability1; /* 0x5F */ u8 ability2; - // Same format as ItemSlot struct. - /* 0x60 */ u8 heldItemFlags; - /* 0x61 */ u8 heldItemNumItems; - /* 0x62 */ u8 heldItemIndex; - u8 fill63[0x68 - 0x63]; + /* 0x60 */ struct ItemSlot heldItem; + u8 fill64[0x68 - 0x64]; /* 0x68 */ s16 previousPosition1X; /* 0x6A */ s16 previousPosition1Y; /* 0x6C */ s16 previousPosition2X; @@ -282,8 +278,8 @@ enum EntityType { ENTITY_NONE = 0, ENTITY_POKEMON = 1, - ENTITY_ITEM = 2, - ENTITY_TRAP = 3 + ENTITY_TRAP = 2, + ENTITY_ITEM = 3 }; enum MovementFlag diff --git a/include/item.h b/include/item.h index 3b4f199..60a9014 100644 --- a/include/item.h +++ b/include/item.h @@ -59,6 +59,13 @@ enum ItemFlag ITEM_FLAG_SET = 1 << 4 // This item can be thrown by pressing L+R instead of having to go to the bag menu. }; +enum ItemAIFlag +{ + ITEM_AI_FLAG_TARGET_SELF, + ITEM_AI_FLAG_TARGET_ALLY, + ITEM_AI_FLAG_TARGET_ENEMY +}; + #define NUMBER_OF_GUMMIS 18 #define INVENTORY_SIZE 20 #define STORAGE_SIZE NUMBER_OF_ITEM_IDS @@ -84,7 +91,7 @@ u8 GetItemPalette(u8 itemIndex); u8 GetItemCategory(u8 itemIndex); u32 GetItemUnkThrow(u8 itemIndex, u32 r1); u8 *GetItemDescription(u8 itemIndex); -u32 GetItemAIFlags(u8 itemIndex, u32 r1); +bool8 GetItemAIFlag(u8 itemIndex, u32 r1); void sub_8090DC4(void* param_1,u8 itemIndex, struct unkStruct_8090F58* param_3); void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58* a3); bool8 AddItemToInventory(const struct ItemSlot* slot); diff --git a/ld_script.txt b/ld_script.txt index b7f0a75..ba72330 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -207,6 +207,8 @@ SECTIONS { asm/code_8071858.o(.text); src/dungeon_pokemon_attributes_1.o(.text); asm/code_80718D8.o(.text); + src/dungeon_ai_items.o(.text); + asm/code_80739DC.o(.text); src/dungeon_movement.o(.text); asm/code_8075BA4.o(.text); src/code_80848F0.o(.text); diff --git a/src/code_80983D8.c b/src/code_80983D8.c index c6acf93..4c0e870 100644 --- a/src/code_80983D8.c +++ b/src/code_80983D8.c @@ -2,12 +2,12 @@ extern u32 gUnknown_8115E94[5][3]; // NOTE: Factor of two difference in array sizes -s32 sub_80983D8(short *param_1,short *param_2) +s32 CalculateFacingDir(short *param_1,short *param_2) { s32 uVar1; s32 uVar2; s32 uVar3; - + uVar3 = param_2[0] - param_1[0]; uVar2 = param_2[1] - param_1[1]; if ((uVar3 == 0) && (uVar2 == 0)) { diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c new file mode 100644 index 0000000..4877712 --- /dev/null +++ b/src/dungeon_ai_items.c @@ -0,0 +1,244 @@ +#include "global.h" +#include "dungeon_ai_items.h" + +#include "constants/direction.h" +#include "constants/dungeon_action.h" +#include "constants/iq_skill.h" +#include "dungeon_capabilities.h" +#include "dungeon_capabilities_1.h" +#include "dungeon_global_data.h" +#include "item.h" +#include "team_inventory.h" + +#define NUM_POTENTIAL_ROCK_TARGETS 20 +#define GROUND_ITEM_TOOLBOX_INDEX 0x80 +#define HELD_ITEM_TOOLBOX_INDEX 0x81 +#define ITEM_TARGET_ALLY 1 << 1 + +extern void SetAction(u16*, u16); +extern void FindStraightThrowableTargets(struct DungeonEntity*, s32 thrownAIFlag, struct ItemSlot*, bool8 ignoreRollChance); +extern bool8 RollPercentChance(u32); +extern void FindRockItemTargets(struct DungeonEntity*, struct ItemSlot*, s16*[], bool8 ignoreRollChance); +extern s32 DungeonRandomCapped(s32); +extern s32 CalculateFacingDir(s16*, s16*); +extern bool8 HasIQSkill(struct DungeonEntity*, u8); +extern struct MapTile* GetMapTileAtPosition(s16, s16); +extern u32 GetEntityType(struct DungeonEntity*); +extern struct ItemSlot* GetItemData(struct DungeonEntity*); +extern u32 EvaluateItem(struct DungeonEntity*, struct ItemSlot*, u8); +extern bool8 ToolboxEnabled(struct DungeonEntityData*); + +extern s32 gNumPotentialTargets; +extern u32 gPotentialTargetWeights[NUM_DIRECTIONS]; +extern u32 gPotentialTargetDirections[NUM_DIRECTIONS]; +extern struct TeamInventory *gTeamInventory_203B460; + +void DecideUseItem(struct DungeonEntity *pokemon) +{ + struct DungeonEntityData *pokemonData = pokemon->entityData; + void *null; + struct ItemSlot *item; + s32 toolboxIndex; + u8 selectedToolboxIndex; + u32 *potentialTargetWeights; + if (CannotUseItems(pokemon)) + { + pokemonData->useHeldItem = FALSE; + return; + } + null = NULL; + if (pokemonData->useHeldItem) + { + item = &pokemonData->heldItem; + if ((item->itemFlags & ITEM_FLAG_EXISTS) == 0) + { + return; + } + else + { + u8 itemType; + selectedToolboxIndex = HELD_ITEM_TOOLBOX_INDEX; + itemType = GetItemType(item->itemIndex); + if (itemType == ITEM_TYPE_THROWABLE) + { + s32 targetIndex; + FindStraightThrowableTargets(pokemon, 2, item, 1); + for (targetIndex = 0; targetIndex < gNumPotentialTargets; targetIndex++) + { + if (RollPercentChance(gPotentialTargetWeights[targetIndex])) + { + SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI); + pokemonData->actionUseIndex = selectedToolboxIndex; + pokemonData->lastItemThrowPositionX = pokemon->posWorldX; + pokemonData->lastItemThrowPositionY = pokemon->posWorldY; + pokemonData->facingDir = gPotentialTargetDirections[targetIndex] & DIRECTION_MASK; + break; + } + } + if (targetIndex == gNumPotentialTargets) + { + SetAction(&pokemonData->action, DUNGEON_ACTION_HAVE_SECOND_THOUGHTS); + } + } + else if (itemType == ITEM_TYPE_ROCK) + { + s16 *potentialTargetPositions[NUM_POTENTIAL_ROCK_TARGETS]; + FindRockItemTargets(pokemon, item, potentialTargetPositions, TRUE); + if (gNumPotentialTargets == 0) + { + SetAction(&pokemonData->action, DUNGEON_ACTION_HAVE_SECOND_THOUGHTS); + } + else + { + u32 chosenTargetIndex = DungeonRandomCapped(gNumPotentialTargets); + SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI); + pokemonData->actionUseIndex = selectedToolboxIndex; + pokemonData->lastItemThrowPositionX = pokemon->posWorldX; + pokemonData->lastItemThrowPositionY = pokemon->posWorldY; + pokemonData->facingDir = CalculateFacingDir(&pokemon->posWorldX, (s16 *) (&potentialTargetPositions[chosenTargetIndex])) & DIRECTION_MASK; + pokemonData->itemTargetPosition = potentialTargetPositions[chosenTargetIndex]; + } + } + else + { + u8 itemTypeCompare = itemType - 2; + if (itemTypeCompare < ITEM_TYPE_HOLD_ITEM - 2) + { + SetAction(&pokemonData->action, DUNGEON_ACTION_CONSUME_ITEM_AI); + pokemonData->actionUseIndex = selectedToolboxIndex; + pokemonData->lastItemThrowPositionX = pokemon->posWorldX; + pokemonData->lastItemThrowPositionY = pokemon->posWorldY; + } + else + { + SetAction(&pokemonData->action, DUNGEON_ACTION_HAVE_SECOND_THOUGHTS); + } + } + } + } + else if (HasIQSkill(pokemon, IQ_SKILL_ITEM_MASTER)) + { + for (toolboxIndex = 1; toolboxIndex < INVENTORY_SIZE + 2; toolboxIndex++) + { + if (toolboxIndex == 1) + { + item = &pokemonData->heldItem; + selectedToolboxIndex = HELD_ITEM_TOOLBOX_INDEX; + } + else if (toolboxIndex == 0) + { + // This seems unused. toolboxIndex can never be 0. + struct MapTile *mapTile = GetMapTileAtPosition(pokemon->posWorldX, pokemon->posWorldY); + struct DungeonEntity *mapObject = mapTile->mapObject; + if (mapObject != null) + { + u32 mapObjectType = GetEntityType(mapObject); + if (mapObjectType == ENTITY_ITEM) + { + item = GetItemData(mapTile->mapObject); + selectedToolboxIndex = GROUND_ITEM_TOOLBOX_INDEX; + } + else + { + continue; + } + } + else + { + continue; + } + } + else if (pokemonData->isLeader) + { + item = &gTeamInventory_203B460->teamItems[toolboxIndex - 2]; + selectedToolboxIndex = toolboxIndex - 1; + } + else + { + return; + } + if (((item->itemFlags & ITEM_FLAG_EXISTS) != 0) && ((item->itemFlags & ITEM_FLAG_FOR_SALE) == 0)) + { + if ((item->itemFlags & ITEM_FLAG_STICKY) == 0) + { + if (GetItemAIFlag(item->itemIndex, ITEM_AI_FLAG_TARGET_SELF)) + { + u32 itemWeight = EvaluateItem(pokemon, item, ITEM_TARGET_ALLY); + if (itemWeight != 0) + { + u8 itemType = GetItemType(item->itemIndex); + if ((!((itemType == ITEM_TYPE_ORB) && (!pokemonData->isEnemy))) && RollPercentChance(itemWeight)) + { + if (itemType == ITEM_TYPE_ORB) + { + SetAction(&pokemonData->action, DUNGEON_ACTION_USE_ORB); + } + else + { + SetAction(&pokemonData->action, DUNGEON_ACTION_CONSUME_ITEM_AI); + } + pokemonData->actionUseIndex = selectedToolboxIndex; + pokemonData->lastItemThrowPositionX = pokemon->posWorldX; + pokemonData->lastItemThrowPositionY = pokemon->posWorldY; + return; + } + } + } + } + else + { + continue; + } + } + else + { + continue; + } + if (ToolboxEnabled(pokemonData)) + { + s32 thrownAIFlag; + for (thrownAIFlag = ITEM_AI_FLAG_TARGET_ALLY; thrownAIFlag <= ITEM_AI_FLAG_TARGET_ENEMY; thrownAIFlag++) + { + potentialTargetWeights = gPotentialTargetWeights; + if (GetItemAIFlag(item->itemIndex, thrownAIFlag)) + { + u8 itemType = GetItemType(item->itemIndex); + if (itemType == ITEM_TYPE_ROCK) + { + s16 *potentialTargetPositions[NUM_POTENTIAL_ROCK_TARGETS]; + FindRockItemTargets(pokemon, item, potentialTargetPositions, FALSE); + if (gNumPotentialTargets != 0) + { + u32 chosenTargetIndex = DungeonRandomCapped(gNumPotentialTargets); + SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI); + pokemonData->actionUseIndex = selectedToolboxIndex; + pokemonData->lastItemThrowPositionX = pokemon->posWorldX; + pokemonData->lastItemThrowPositionY = pokemon->posWorldY; + pokemonData->facingDir = CalculateFacingDir(&pokemon->posWorldX, (s16 *) (&potentialTargetPositions[chosenTargetIndex])) & DIRECTION_MASK; + pokemonData->itemTargetPosition = potentialTargetPositions[chosenTargetIndex]; + return; + } + } + else + { + s32 targetIndex; + FindStraightThrowableTargets(pokemon, thrownAIFlag, item, FALSE); + for (targetIndex = 0; targetIndex < gNumPotentialTargets; targetIndex++) + { + if (RollPercentChance(potentialTargetWeights[targetIndex])) + { + SetAction(&pokemonData->action, DUNGEON_ACTION_THROW_ITEM_AI); + pokemonData->actionUseIndex = selectedToolboxIndex; + pokemonData->lastItemThrowPositionX = pokemon->posWorldX; + pokemonData->lastItemThrowPositionY = pokemon->posWorldY; + pokemonData->facingDir = gPotentialTargetDirections[targetIndex] & DIRECTION_MASK; + return; + } + } + } + } + } + } + } + } +} diff --git a/src/items.c b/src/items.c index 05033e4..0b6075f 100644 --- a/src/items.c +++ b/src/items.c @@ -292,7 +292,7 @@ u8 *GetItemDescription(u8 itemIndex) return gItemParametersData[itemIndex].descriptionPointer; } -u32 GetItemAIFlags(u8 itemIndex, u32 r1) +bool8 GetItemAIFlag(u8 itemIndex, u32 r1) { return gItemParametersData[itemIndex].aiFlags[r1]; } diff --git a/sym_ewram.txt b/sym_ewram.txt index 503fc68..56a505b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -846,13 +846,13 @@ gUnknown_202F32C = .; /* 202F32C */ gUnknown_202F32D = .; /* 202F32D */ . += 0x3; -gUnknown_202F330 = .; /* 202F330 */ +gPotentialTargetDirections = .; /* 202F330 */ . += 0x20; gUnknown_202F350 = .; /* 202F350 */ . += 0x8; -gUnknown_202F358 = .; /* 202F358 */ +gPotentialTargetWeights = .; /* 202F358 */ . += 0x20; gUnknown_202F378 = .; /* 202F378 */ diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 60e3cfb..52a5165 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -569,7 +569,7 @@ gUnknown_203B438 = .; /* 203B438 */ gUnknown_203B43C = .; /* 203B43C */ . += 0x4; -gUnknown_203B440 = .; /* 203B440 */ +gNumPotentialTargets = .; /* 203B440 */ . += 0x4; gUnknown_203B444 = .; /* 203B444 */ |