diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/field_map_obj.s | 2481 |
1 files changed, 0 insertions, 2481 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index b50b6f2d1..d54b57fed 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -6,2487 +6,6 @@ .text - thumb_func_start sub_805B75C -sub_805B75C: @ 805B75C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - movs r7, 0 - ldr r2, _0805B900 @ =gLinkPlayerMapObjects -_0805B77E: - lsls r0, r7, 2 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _0805B790 - ldrb r1, [r1, 0x2] - cmp r8, r1 - bne _0805B790 - b _0805B8EE -_0805B790: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _0805B77E - mov r1, r8 - lsls r0, r1, 3 - add r0, r8 - lsls r0, 2 - ldr r1, _0805B904 @ =gMapObjects - adds r6, r0, r1 - movs r0, 0 - str r0, [sp, 0x20] - ldrb r0, [r6, 0x5] - bl GetFieldObjectGraphicsInfo - adds r5, r0, 0 - ldrh r2, [r5, 0x6] - ldr r1, _0805B908 @ =0xffff0000 - add r4, sp, 0x18 - ldr r0, [r4, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [r4, 0x4] - ldrb r0, [r6, 0x5] - ldrb r1, [r6, 0x6] - add r3, sp, 0x20 - mov r2, sp - bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - str r4, [sp, 0xC] - mov r0, sp - ldr r2, _0805B90C @ =0x0000ffff - adds r4, r2, 0 - strh r4, [r0, 0x2] - ldrb r1, [r5, 0xC] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _0805B7EA - ldrh r0, [r5, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl npc_load_two_palettes__no_record -_0805B7EA: - ldrb r0, [r5, 0xC] - lsls r1, r0, 28 - lsrs r0, r1, 28 - cmp r0, 0x9 - bls _0805B7FC - ldrh r0, [r5, 0x2] - lsrs r1, 28 - bl npc_load_two_palettes__and_record -_0805B7FC: - mov r0, sp - strh r4, [r0, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x40 - beq _0805B8EE - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _0805B910 @ =gSprites - adds r4, r0, r1 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - ldrh r2, [r6, 0x10] - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - ldrh r2, [r6, 0x12] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_8060388 - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r4, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r4, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x8 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, [r5, 0x1C] - str r0, [r4, 0xC] - ldrb r0, [r6, 0x6] - cmp r0, 0xB - bne _0805B88A - mov r0, r8 - adds r1, r7, 0 - bl SetPlayerAvatarFieldObjectIdAndObjectId - bl sub_8126B54 - strb r0, [r6, 0x1B] -_0805B88A: - ldr r1, [sp, 0x20] - cmp r1, 0 - beq _0805B896 - adds r0, r4, 0 - bl SetSubspriteTables -_0805B896: - ldrb r1, [r5, 0xC] - lsls r1, 28 - lsrs r1, 24 - ldrb r2, [r4, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - mov r0, r8 - strh r0, [r4, 0x2E] - strb r7, [r6, 0x4] - ldrb r0, [r6, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _0805B8DC - ldrb r0, [r6, 0x6] - cmp r0, 0xB - beq _0805B8DC - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_0805B8DC: - adds r0, r6, 0 - bl sub_805B914 - ldrb r0, [r6, 0xB] - lsrs r0, 4 - adds r1, r4, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord -_0805B8EE: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805B900: .4byte gLinkPlayerMapObjects -_0805B904: .4byte gMapObjects -_0805B908: .4byte 0xffff0000 -_0805B90C: .4byte 0x0000ffff -_0805B910: .4byte gSprites - thumb_func_end sub_805B75C - - thumb_func_start sub_805B914 -sub_805B914: @ 805B914 - push {lr} - ldrb r2, [r0] - movs r3, 0x3 - negs r3, r3 - adds r1, r3, 0 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r2, [r0, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - ands r1, r3 - movs r2, 0x5 - negs r2, r2 - ands r1, r2 - subs r2, 0x4 - ands r1, r2 - subs r2, 0x8 - ands r1, r2 - subs r2, 0x10 - ands r1, r2 - strb r1, [r0, 0x2] - bl FieldObjectClearAnim - pop {r0} - bx r0 - thumb_func_end sub_805B914 - - thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId -SetPlayerAvatarFieldObjectIdAndObjectId: @ 805B94C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0805B978 @ =gPlayerAvatar - strb r0, [r5, 0x5] - strb r1, [r5, 0x4] - ldr r1, _0805B97C @ =gMapObjects - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r1 - ldrb r0, [r4, 0x5] - bl GetPlayerAvatarGenderByGraphicsId - strb r0, [r5, 0x7] - ldrb r0, [r4, 0x5] - movs r1, 0x20 - bl SetPlayerAvatarExtraStateTransition - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805B978: .4byte gPlayerAvatar -_0805B97C: .4byte gMapObjects - thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId - - thumb_func_start sub_805B980 -sub_805B980: @ 805B980 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r0, r8 - bl GetFieldObjectGraphicsInfo - adds r5, r0, 0 - ldrb r1, [r6, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805BA7C @ =gSprites - adds r4, r0, r1 - ldrb r1, [r5, 0xC] - movs r7, 0xF - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _0805B9B8 - ldrh r0, [r5, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl pal_patch_for_npc -_0805B9B8: - ldrb r1, [r5, 0xC] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0xA - bne _0805B9CC - ldrh r0, [r5, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl npc_load_two_palettes__and_record -_0805B9CC: - ldr r0, [r5, 0x10] - ldrb r2, [r0, 0x1] - lsrs r2, 6 - lsls r2, 6 - ldrb r3, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, 0x1] - ldr r0, [r5, 0x10] - ldrb r0, [r0, 0x3] - lsrs r0, 6 - lsls r0, 6 - ldrb r2, [r4, 0x3] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x3] - ldr r0, [r5, 0x1C] - str r0, [r4, 0xC] - ldr r0, [r5, 0x18] - str r0, [r4, 0x8] - ldr r0, [r5, 0x14] - str r0, [r4, 0x18] - ldrb r1, [r5, 0xC] - lsls r1, 28 - lsrs r1, 24 - ldrb r2, [r4, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrb r1, [r5, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r6, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x1] - mov r0, r8 - strb r0, [r6, 0x5] - movs r1, 0x10 - ldrsh r0, [r6, r1] - movs r2, 0x12 - ldrsh r1, [r6, r2] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_80603CC - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r4, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r4, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x8 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r0, [r6, 0x1] - lsrs r0, 7 - cmp r0, 0 - beq _0805BA72 - bl CameraObjectReset1 -_0805BA72: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805BA7C: .4byte gSprites - thumb_func_end sub_805B980 - - thumb_func_start unref_sub_805BA80 -unref_sub_805BA80: @ 805BA80 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805BAB4 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805BABC @ =gMapObjects - adds r0, r1 - adds r1, r4, 0 - bl sub_805B980 -_0805BAB4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805BABC: .4byte gMapObjects - thumb_func_end unref_sub_805BA80 - - thumb_func_start FieldObjectTurn -FieldObjectTurn: @ 805BAC0 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - bl FieldObjectSetDirection - ldrb r0, [r6, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _0805BB06 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _0805BB0C @ =gSprites - adds r4, r5 - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrb r1, [r6, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - bl SeekSpriteAnim -_0805BB06: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805BB0C: .4byte gSprites - thumb_func_end FieldObjectTurn - - thumb_func_start FieldObjectTurnByLocalIdAndMap -FieldObjectTurnByLocalIdAndMap: @ 805BB10 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805BB44 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805BB4C @ =gMapObjects - adds r0, r1 - adds r1, r4, 0 - bl FieldObjectTurn -_0805BB44: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805BB4C: .4byte gMapObjects - thumb_func_end FieldObjectTurnByLocalIdAndMap - - thumb_func_start unref_sub_805BB50 -unref_sub_805BB50: @ 805BB50 - push {lr} - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805BB6C @ =gMapObjects - adds r0, r2 - bl FieldObjectTurn - pop {r0} - bx r0 - .align 2, 0 -_0805BB6C: .4byte gMapObjects - thumb_func_end unref_sub_805BB50 - - thumb_func_start get_berry_tree_graphics -get_berry_tree_graphics: @ 805BB70 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - ldrb r0, [r5, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5, 0x1] - adds r4, r7, 0 - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1D] - bl GetStageByBerryTreeId - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0805BBFC - ldrb r1, [r5, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - ldrb r1, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1D] - bl GetBerryTypeByBerryTreeId - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r4, 0x2B - bls _0805BBC4 - movs r4, 0 -_0805BBC4: - ldr r0, _0805BC04 @ =gBerryTreeGraphicsIdTablePointers - lsls r4, 2 - adds r0, r4, r0 - ldr r0, [r0] - adds r0, r6 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_805B980 - ldr r0, _0805BC08 @ =gBerryTreePicTablePointers - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r7, 0xC] - ldr r0, _0805BC0C @ =gBerryTreePaletteSlotTablePointers - adds r4, r0 - ldr r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r7, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - adds r0, r7, 0 - adds r1, r6, 0 - bl StartSpriteAnim -_0805BBFC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805BC04: .4byte gBerryTreeGraphicsIdTablePointers -_0805BC08: .4byte gBerryTreePicTablePointers -_0805BC0C: .4byte gBerryTreePaletteSlotTablePointers - thumb_func_end get_berry_tree_graphics - - thumb_func_start GetFieldObjectGraphicsInfo -GetFieldObjectGraphicsInfo: @ 805BC10 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xEF - bls _0805BC28 - adds r0, r1, 0 - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl VarGetFieldObjectGraphicsId - adds r1, r0, 0 -_0805BC28: - cmp r1, 0xD9 - bls _0805BC2E - movs r1, 0x5 -_0805BC2E: - ldr r0, _0805BC3C @ =gMapObjectGraphicsInfoPointers - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0805BC3C: .4byte gMapObjectGraphicsInfoPointers - thumb_func_end GetFieldObjectGraphicsInfo - - thumb_func_start FieldObjectHandleDynamicGraphicsId -FieldObjectHandleDynamicGraphicsId: @ 805BC40 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x5] - cmp r0, 0xEF - bls _0805BC56 - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl VarGetFieldObjectGraphicsId - strb r0, [r4, 0x5] -_0805BC56: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectHandleDynamicGraphicsId - - thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20 -npc_by_local_id_and_map_set_field_1_bit_x20: @ 805BC5C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805BC9E - ldr r2, _0805BCA8 @ =gMapObjects - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x1 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 5 - ldrb r3, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x1] -_0805BC9E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805BCA8: .4byte gMapObjects - thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20 - - thumb_func_start FieldObjectGetLocalIdAndMap -FieldObjectGetLocalIdAndMap: @ 805BCAC - push {r4,lr} - ldrb r4, [r0, 0x8] - strb r4, [r1] - ldrb r1, [r0, 0x9] - strb r1, [r2] - ldrb r0, [r0, 0xA] - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectGetLocalIdAndMap - - thumb_func_start sub_805BCC0 -sub_805BCC0: @ 805BCC0 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl GetFieldObjectIdByXY - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x10 - beq _0805BCE8 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805BCEC @ =gMapObjects - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0805BCE8: - pop {r0} - bx r0 - .align 2, 0 -_0805BCEC: .4byte gMapObjects - thumb_func_end sub_805BCC0 - - thumb_func_start sub_805BCF0 -sub_805BCF0: @ 805BCF0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805BD36 - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - ldr r0, _0805BD40 @ =gMapObjects - adds r2, r0 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805BD44 @ =gSprites - adds r0, r1 - ldrb r1, [r2, 0x3] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x3] - adds r0, 0x43 - strb r4, [r0] -_0805BD36: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805BD40: .4byte gMapObjects -_0805BD44: .4byte gSprites - thumb_func_end sub_805BCF0 - - thumb_func_start sub_805BD48 -sub_805BD48: @ 805BD48 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805BD84 - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0805BD8C @ =gMapObjects - adds r1, r0 - ldrb r2, [r1, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x3] - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0805BD84: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0805BD8C: .4byte gMapObjects - thumb_func_end sub_805BD48 - - thumb_func_start sub_805BD90 -sub_805BD90: @ 805BD90 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r4, 16 - lsrs r4, 16 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805BDD4 - ldr r2, _0805BDDC @ =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805BDE0 @ =gSprites - adds r0, r1 - strh r5, [r0, 0x24] - strh r4, [r0, 0x26] -_0805BDD4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805BDDC: .4byte gMapObjects -_0805BDE0: .4byte gSprites - thumb_func_end sub_805BD90 - - thumb_func_start gpu_pal_allocator_reset__manage_upper_four -gpu_pal_allocator_reset__manage_upper_four: @ 805BDE4 - push {lr} - bl FreeAllSpritePalettes - ldr r1, _0805BDF4 @ =gReservedSpritePaletteCount - movs r0, 0xC - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0805BDF4: .4byte gReservedSpritePaletteCount - thumb_func_end gpu_pal_allocator_reset__manage_upper_four - - thumb_func_start sub_805BDF8 -sub_805BDF8: @ 805BDF8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl FindFieldObjectPaletteIndexByTag - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0805BE1C @ =0x000011ff - cmp r1, r0 - beq _0805BE16 - lsls r0, r1, 3 - ldr r1, _0805BE20 @ =gUnknown_0837377C - adds r0, r1 - bl sub_805BE58 -_0805BE16: - pop {r0} - bx r0 - .align 2, 0 -_0805BE1C: .4byte 0x000011ff -_0805BE20: .4byte gUnknown_0837377C - thumb_func_end sub_805BDF8 - - thumb_func_start unref_sub_805BE24 -unref_sub_805BE24: @ 805BE24 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - ldrh r0, [r5] - ldr r1, _0805BE54 @ =0x000011ff - cmp r0, r1 - beq _0805BE4E - adds r6, r1, 0 -_0805BE34: - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - bl sub_805BDF8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r6 - bne _0805BE34 -_0805BE4E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805BE54: .4byte 0x000011ff - thumb_func_end unref_sub_805BE24 - - thumb_func_start sub_805BE58 -sub_805BE58: @ 805BE58 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0805BE76 - adds r0, r4, 0 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - b _0805BE78 -_0805BE76: - movs r0, 0xFF -_0805BE78: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805BE58 - - thumb_func_start pal_patch_for_npc -pal_patch_for_npc: @ 805BE80 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl FindFieldObjectPaletteIndexByTag - lsls r0, 24 - ldr r1, _0805BEB4 @ =gUnknown_0837377C - lsrs r0, 21 - adds r0, r1 - ldr r0, [r0] - lsls r4, 20 - movs r1, 0x80 - lsls r1, 17 - adds r4, r1 - lsrs r4, 16 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805BEB4: .4byte gUnknown_0837377C - thumb_func_end pal_patch_for_npc - - thumb_func_start pal_patch_for_npc_range -pal_patch_for_npc_range: @ 805BEB8 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - cmp r4, r6 - bcs _0805BEDC -_0805BEC8: - ldrh r0, [r5] - adds r1, r4, 0 - bl pal_patch_for_npc - adds r5, 0x2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _0805BEC8 -_0805BEDC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pal_patch_for_npc_range - - thumb_func_start FindFieldObjectPaletteIndexByTag -FindFieldObjectPaletteIndexByTag: @ 805BEE4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - movs r2, 0 - ldr r0, _0805BF0C @ =gUnknown_0837377C - ldrh r1, [r0, 0x4] - ldr r3, _0805BF10 @ =0x000011ff - adds r4, r0, 0 - cmp r1, r3 - beq _0805BF24 - adds r6, r4, 0 - adds r1, r3, 0 -_0805BEFC: - lsls r0, r2, 3 - adds r0, r6 - ldrh r0, [r0, 0x4] - cmp r0, r5 - bne _0805BF14 - adds r0, r2, 0 - b _0805BF26 - .align 2, 0 -_0805BF0C: .4byte gUnknown_0837377C -_0805BF10: .4byte 0x000011ff -_0805BF14: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 3 - adds r0, r4 - ldrh r0, [r0, 0x4] - cmp r0, r1 - bne _0805BEFC -_0805BF24: - movs r0, 0xFF -_0805BF26: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end FindFieldObjectPaletteIndexByTag - - thumb_func_start npc_load_two_palettes__no_record -npc_load_two_palettes__no_record: @ 805BF2C - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl pal_patch_for_npc - movs r3, 0 - ldr r1, _0805BF74 @ =gUnknown_08373874 - ldrh r0, [r1] - ldr r2, _0805BF78 @ =0x000011ff - cmp r0, r2 - beq _0805BF94 - ldr r0, _0805BF7C @ =gUnknown_0830FD14 - adds r5, r0 - adds r6, r2, 0 -_0805BF50: - lsls r2, r3, 3 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0805BF84 - adds r1, 0x4 - adds r1, r2, r1 - ldr r0, _0805BF80 @ =gUnknown_030005A4 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldrb r1, [r5] - bl pal_patch_for_npc - b _0805BF94 - .align 2, 0 -_0805BF74: .4byte gUnknown_08373874 -_0805BF78: .4byte 0x000011ff -_0805BF7C: .4byte gUnknown_0830FD14 -_0805BF80: .4byte gUnknown_030005A4 -_0805BF84: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0805BF50 -_0805BF94: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end npc_load_two_palettes__no_record - - thumb_func_start npc_load_two_palettes__and_record -npc_load_two_palettes__and_record: @ 805BF9C - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _0805BFE8 @ =gUnknown_030005A6 - strh r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl pal_patch_for_npc - movs r3, 0 - ldr r1, _0805BFEC @ =gUnknown_083738E4 - ldrh r0, [r1] - ldr r2, _0805BFF0 @ =0x000011ff - cmp r0, r2 - beq _0805C00C - ldr r0, _0805BFF4 @ =gUnknown_0830FD14 - adds r5, r0 - adds r6, r2, 0 -_0805BFC4: - lsls r2, r3, 3 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0805BFFC - adds r1, 0x4 - adds r1, r2, r1 - ldr r0, _0805BFF8 @ =gUnknown_030005A4 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldrb r1, [r5] - bl pal_patch_for_npc - b _0805C00C - .align 2, 0 -_0805BFE8: .4byte gUnknown_030005A6 -_0805BFEC: .4byte gUnknown_083738E4 -_0805BFF0: .4byte 0x000011ff -_0805BFF4: .4byte gUnknown_0830FD14 -_0805BFF8: .4byte gUnknown_030005A4 -_0805BFFC: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0805BFC4 -_0805C00C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end npc_load_two_palettes__and_record - - thumb_func_start unref_sub_805C014 -unref_sub_805C014: @ 805C014 - push {r4,lr} - ldrh r3, [r0, 0x10] - strh r3, [r0, 0x14] - ldrh r4, [r0, 0x12] - strh r4, [r0, 0x16] - lsls r1, 16 - asrs r1, 16 - adds r1, r3 - strh r1, [r0, 0x10] - lsls r2, 16 - asrs r2, 16 - adds r2, r4 - strh r2, [r0, 0x12] - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_805C014 - - thumb_func_start npc_coords_shift -npc_coords_shift: @ 805C034 - ldrh r3, [r0, 0x10] - strh r3, [r0, 0x14] - ldrh r3, [r0, 0x12] - strh r3, [r0, 0x16] - strh r1, [r0, 0x10] - strh r2, [r0, 0x12] - bx lr - thumb_func_end npc_coords_shift - - thumb_func_start npc_coords_set -npc_coords_set: @ 805C044 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - strh r1, [r0, 0x10] - strh r2, [r0, 0x12] - bx lr - thumb_func_end npc_coords_set - - thumb_func_start sub_805C058 -sub_805C058: @ 805C058 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldrb r1, [r6, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805C0F4 @ =gSprites - adds r7, r0, r1 - ldrb r0, [r6, 0x5] - bl GetFieldObjectGraphicsInfo - mov r8, r0 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl npc_coords_set - movs r1, 0x10 - ldrsh r0, [r6, r1] - movs r2, 0x12 - ldrsh r1, [r6, r2] - adds r2, r7, 0 - adds r2, 0x20 - adds r3, r7, 0 - adds r3, 0x22 - bl sub_80603CC - mov r1, r8 - ldrh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r7, 0 - adds r1, 0x28 - strb r0, [r1] - mov r2, r8 - ldrh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r7, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r7, 0x20] - adds r0, 0x8 - strh r0, [r7, 0x20] - ldrh r1, [r7, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r7, 0x22] - adds r0, r6, 0 - bl sub_805B914 - ldrb r0, [r6, 0x1] - lsrs r0, 7 - cmp r0, 0 - beq _0805C0EA - bl CameraObjectReset1 -_0805C0EA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805C0F4: .4byte gSprites - thumb_func_end sub_805C058 - - thumb_func_start sub_805C0F8 -sub_805C0F8: @ 805C0F8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r4, 16 - lsrs r4, 16 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805C140 - lsls r1, r5, 16 - lsls r2, r4, 16 - mov r0, sp - ldrb r3, [r0] - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - ldr r3, _0805C148 @ =gMapObjects - adds r0, r3 - movs r3, 0xE0 - lsls r3, 11 - adds r1, r3 - asrs r1, 16 - adds r2, r3 - asrs r2, 16 - bl sub_805C058 -_0805C140: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C148: .4byte gMapObjects - thumb_func_end sub_805C0F8 - - thumb_func_start npc_coords_shift_still -npc_coords_shift_still: @ 805C14C - push {lr} - movs r2, 0x10 - ldrsh r1, [r0, r2] - movs r3, 0x12 - ldrsh r2, [r0, r3] - bl npc_coords_shift - pop {r0} - bx r0 - thumb_func_end npc_coords_shift_still - - thumb_func_start UpdateFieldObjectCoordsForCameraUpdate -UpdateFieldObjectCoordsForCameraUpdate: @ 805C160 - push {r4,r5,lr} - ldr r2, _0805C1C0 @ =gUnknown_0202E844 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805C1B8 - movs r3, 0 - ldr r5, _0805C1C4 @ =gMapObjects - movs r0, 0x4 - ldrsh r4, [r2, r0] - movs r0, 0x8 - ldrsh r1, [r2, r0] -_0805C17A: - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r5 - ldrb r0, [r2] - lsls r0, 31 - cmp r0, 0 - beq _0805C1AE - ldrh r0, [r2, 0xC] - subs r0, r4 - strh r0, [r2, 0xC] - ldrh r0, [r2, 0xE] - subs r0, r1 - strh r0, [r2, 0xE] - ldrh r0, [r2, 0x10] - subs r0, r4 - strh r0, [r2, 0x10] - ldrh r0, [r2, 0x12] - subs r0, r1 - strh r0, [r2, 0x12] - ldrh r0, [r2, 0x14] - subs r0, r4 - strh r0, [r2, 0x14] - ldrh r0, [r2, 0x16] - subs r0, r1 - strh r0, [r2, 0x16] -_0805C1AE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0805C17A -_0805C1B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C1C0: .4byte gUnknown_0202E844 -_0805C1C4: .4byte gMapObjects - thumb_func_end UpdateFieldObjectCoordsForCameraUpdate - - thumb_func_start GetFieldObjectIdByXYZ -GetFieldObjectIdByXYZ: @ 805C1C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 - ldr r0, _0805C214 @ =gMapObjects - mov r8, r0 -_0805C1E0: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0805C218 - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, r7 - bne _0805C218 - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r0, r6 - bne _0805C218 - adds r0, r1, 0 - adds r1, r5, 0 - bl FieldObjectDoesZCoordMatch - lsls r0, 24 - cmp r0, 0 - beq _0805C218 - adds r0, r4, 0 - b _0805C224 - .align 2, 0 -_0805C214: .4byte gMapObjects -_0805C218: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0805C1E0 - movs r0, 0x10 -_0805C224: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByXYZ - - thumb_func_start FieldObjectDoesZCoordMatch -FieldObjectDoesZCoordMatch: @ 805C230 - push {lr} - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xB] - movs r0, 0xF - ands r0, r2 - cmp r0, 0 - beq _0805C250 - cmp r1, 0 - beq _0805C250 - lsls r0, r2, 28 - lsrs r0, 28 - cmp r0, r1 - beq _0805C250 - movs r0, 0 - b _0805C252 -_0805C250: - movs r0, 0x1 -_0805C252: - pop {r1} - bx r1 - thumb_func_end FieldObjectDoesZCoordMatch - - thumb_func_start UpdateFieldObjectsForCameraUpdate -UpdateFieldObjectsForCameraUpdate: @ 805C258 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - bl UpdateFieldObjectCoordsForCameraUpdate - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805B55C - bl RemoveFieldObjectsOutsideView - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end UpdateFieldObjectsForCameraUpdate - - thumb_func_start AddCameraObject -AddCameraObject: @ 805C284 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0805C2C0 @ =gSpriteTemplate_830FD24 - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0805C2C4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r2, 0x3E - adds r2, r1 - mov r12, r2 - ldrb r2, [r2] - movs r3, 0x4 - orrs r2, r3 - mov r3, r12 - strb r2, [r3] - strh r4, [r1, 0x2E] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805C2C0: .4byte gSpriteTemplate_830FD24 -_0805C2C4: .4byte gSprites - thumb_func_end AddCameraObject - - thumb_func_start ObjectCB_CameraObject -ObjectCB_CameraObject: @ 805C2C8 - push {r4,r5,lr} - sub sp, 0xC - mov r2, sp - ldr r1, _0805C2EC @ =gUnknown_0830FD3C - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - movs r2, 0x30 - ldrsh r1, [r0, r2] - lsls r1, 2 - add r1, sp - ldr r1, [r1] - bl _call_via_r1 - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C2EC: .4byte gUnknown_0830FD3C - thumb_func_end ObjectCB_CameraObject - - thumb_func_start CameraObject_0 -CameraObject_0: @ 805C2F0 - push {lr} - ldr r3, _0805C328 @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x1 - strh r1, [r0, 0x30] - bl CameraObject_1 - pop {r0} - bx r0 - .align 2, 0 -_0805C328: .4byte gSprites - thumb_func_end CameraObject_0 - - thumb_func_start CameraObject_1 -CameraObject_1: @ 805C32C - push {r4,r5,lr} - ldr r3, _0805C360 @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r3, [r1, 0x22] - ldrh r2, [r0, 0x20] - ldrh r4, [r1, 0x20] - movs r5, 0x20 - ldrsh r1, [r1, r5] - subs r1, r2 - strh r1, [r0, 0x32] - ldrh r2, [r0, 0x22] - lsls r1, r3, 16 - asrs r1, 16 - subs r1, r2 - strh r1, [r0, 0x34] - strh r4, [r0, 0x20] - strh r3, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C360: .4byte gSprites - thumb_func_end CameraObject_1 - - thumb_func_start CameraObject_2 -CameraObject_2: @ 805C364 - push {r4,lr} - ldr r4, _0805C390 @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - movs r3, 0 - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - strh r3, [r0, 0x32] - strh r3, [r0, 0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805C390: .4byte gSprites - thumb_func_end CameraObject_2 - - thumb_func_start FindCameraObject -FindCameraObject: @ 805C394 - push {r4,r5,lr} - movs r3, 0 - ldr r4, _0805C3C0 @ =gSprites - adds r5, r4, 0 - adds r5, 0x1C -_0805C39E: - lsls r0, r3, 4 - adds r0, r3 - lsls r1, r0, 2 - adds r2, r1, r4 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0805C3C8 - adds r0, r1, r5 - ldr r1, [r0] - ldr r0, _0805C3C4 @ =ObjectCB_CameraObject - cmp r1, r0 - bne _0805C3C8 - adds r0, r2, 0 - b _0805C3D4 - .align 2, 0 -_0805C3C0: .4byte gSprites -_0805C3C4: .4byte ObjectCB_CameraObject -_0805C3C8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3F - bls _0805C39E - movs r0, 0 -_0805C3D4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FindCameraObject - - thumb_func_start CameraObjectReset1 -CameraObjectReset1: @ 805C3DC - push {lr} - bl FindCameraObject - adds r2, r0, 0 - cmp r2, 0 - beq _0805C3F4 - movs r0, 0 - strh r0, [r2, 0x30] - ldr r1, [r2, 0x1C] - adds r0, r2, 0 - bl _call_via_r1 -_0805C3F4: - pop {r0} - bx r0 - thumb_func_end CameraObjectReset1 - - thumb_func_start CameraObjectSetFollowedObjectId -CameraObjectSetFollowedObjectId: @ 805C3F8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl FindCameraObject - cmp r0, 0 - beq _0805C40C - strh r4, [r0, 0x2E] - bl CameraObjectReset1 -_0805C40C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end CameraObjectSetFollowedObjectId - - thumb_func_start CameraObjectGetFollowedObjectId -CameraObjectGetFollowedObjectId: @ 805C414 - push {lr} - bl FindCameraObject - cmp r0, 0 - beq _0805C426 - ldrh r0, [r0, 0x2E] - lsls r0, 24 - lsrs r0, 24 - b _0805C428 -_0805C426: - movs r0, 0x40 -_0805C428: - pop {r1} - bx r1 - thumb_func_end CameraObjectGetFollowedObjectId - - thumb_func_start CameraObjectReset2 -CameraObjectReset2: @ 805C42C - push {lr} - bl FindCameraObject - movs r1, 0x2 - strh r1, [r0, 0x30] - pop {r0} - bx r0 - thumb_func_end CameraObjectReset2 - - thumb_func_start unref_sub_805C43C -unref_sub_805C43C: @ 805C43C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - movs r5, 0 - ldr r1, _0805C484 @ =gSprites -_0805C456: - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0805C488 - adds r0, r4, 0 - mov r1, r12 - movs r2, 0x44 - bl memcpy - mov r0, r8 - strh r0, [r4, 0x20] - strh r6, [r4, 0x22] - adds r0, r4, 0 - adds r0, 0x43 - strb r7, [r0] - b _0805C492 - .align 2, 0 -_0805C484: .4byte gSprites -_0805C488: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3F - bls _0805C456 -_0805C492: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end unref_sub_805C43C - - thumb_func_start obj_unfreeze -obj_unfreeze: @ 805C4A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - movs r5, 0x3F - ldr r3, _0805C4F4 @ =gSprites - movs r2, 0x1 - negs r2, r2 -_0805C4BE: - lsls r0, r5, 16 - asrs r1, r0, 16 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r3 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0805C4F8 - adds r0, r4, 0 - mov r1, r12 - movs r2, 0x44 - bl memcpy - mov r0, r8 - strh r0, [r4, 0x20] - strh r6, [r4, 0x22] - adds r0, r4, 0 - adds r0, 0x43 - strb r7, [r0] - lsls r0, r5, 24 - lsrs r0, 24 - b _0805C506 - .align 2, 0 -_0805C4F4: .4byte gSprites -_0805C4F8: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r2 - bgt _0805C4BE - movs r0, 0x40 -_0805C506: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end obj_unfreeze - - thumb_func_start FieldObjectSetDirection -FieldObjectSetDirection: @ 805C510 - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - adds r4, r2, 0 - ldrb r0, [r3, 0x18] - lsls r0, 28 - lsrs r0, 28 - adds r1, r3, 0 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r3, 0x1] - lsls r0, 30 - cmp r0, 0 - blt _0805C540 - movs r0, 0xF - adds r1, r2, 0 - ands r1, r0 - ldrb r2, [r3, 0x18] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x18] -_0805C540: - lsls r2, r4, 4 - ldrb r1, [r3, 0x18] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x18] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectSetDirection - - thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap -GetFieldObjectScriptPointerByLocalIdAndMap: @ 805C554 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - bl GetFieldObjectTemplateByLocalIdAndMap - ldr r0, [r0, 0x10] - pop {r1} - bx r1 - thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap - - thumb_func_start GetFieldObjectScriptPointerByFieldObjectId -GetFieldObjectScriptPointerByFieldObjectId: @ 805C56C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0805C58C @ =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r0, [r2, 0x8] - ldrb r1, [r2, 0x9] - ldrb r2, [r2, 0xA] - bl GetFieldObjectScriptPointerByLocalIdAndMap - pop {r1} - bx r1 - .align 2, 0 -_0805C58C: .4byte gMapObjects - thumb_func_end GetFieldObjectScriptPointerByFieldObjectId - - thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap -GetFieldObjectFlagIdByLocalIdAndMap: @ 805C590 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - bl GetFieldObjectTemplateByLocalIdAndMap - ldrh r0, [r0, 0x14] - pop {r1} - bx r1 - thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap - - thumb_func_start GetFieldObjectFlagIdByFieldObjectId -GetFieldObjectFlagIdByFieldObjectId: @ 805C5A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0805C5CC @ =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r0, [r2, 0x8] - ldrb r1, [r2, 0x9] - ldrb r2, [r2, 0xA] - bl GetFieldObjectFlagIdByLocalIdAndMap - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0805C5CC: .4byte gMapObjects - thumb_func_end GetFieldObjectFlagIdByFieldObjectId - - thumb_func_start unref_sub_805C5D0 -unref_sub_805C5D0: @ 805C5D0 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805C604 - ldr r2, _0805C600 @ =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - b _0805C606 - .align 2, 0 -_0805C600: .4byte gMapObjects -_0805C604: - movs r0, 0xFF -_0805C606: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end unref_sub_805C5D0 - - thumb_func_start unref_sub_805C60C -unref_sub_805C60C: @ 805C60C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0805C620 @ =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x7] - bx lr - .align 2, 0 -_0805C620: .4byte gMapObjects - thumb_func_end unref_sub_805C60C - - thumb_func_start unref_sub_805C624 -unref_sub_805C624: @ 805C624 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805C658 - ldr r2, _0805C654 @ =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1D] - b _0805C65A - .align 2, 0 -_0805C654: .4byte gMapObjects -_0805C658: - movs r0, 0xFF -_0805C65A: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end unref_sub_805C624 - - thumb_func_start FieldObjectGetBerryTreeId -FieldObjectGetBerryTreeId: @ 805C660 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0805C674 @ =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1D] - bx lr - .align 2, 0 -_0805C674: .4byte gMapObjects - thumb_func_end FieldObjectGetBerryTreeId - - thumb_func_start GetFieldObjectTemplateByLocalIdAndMap -GetFieldObjectTemplateByLocalIdAndMap: @ 805C678 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r1, _0805C6A4 @ =gSaveBlock1 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, r3 - bne _0805C6AC - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, r2 - bne _0805C6AC - movs r0, 0xC2 - lsls r0, 4 - adds r1, r0 - ldr r0, _0805C6A8 @ =gMapHeader - ldr r0, [r0, 0x4] - b _0805C6B8 - .align 2, 0 -_0805C6A4: .4byte gSaveBlock1 -_0805C6A8: .4byte gMapHeader -_0805C6AC: - adds r0, r2, 0 - adds r1, r3, 0 - bl get_mapheader_by_bank_and_number - ldr r0, [r0, 0x4] - ldr r1, [r0, 0x4] -_0805C6B8: - ldrb r2, [r0] - adds r0, r4, 0 - bl FindFieldObjectTemplateInArrayByLocalId - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectTemplateByLocalIdAndMap - - thumb_func_start FindFieldObjectTemplateInArrayByLocalId -FindFieldObjectTemplateInArrayByLocalId: @ 805C6C8 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - cmp r1, r2 - bcs _0805C6F6 -_0805C6DA: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, r4 - bne _0805C6EC - adds r0, r3, 0 - b _0805C6F8 -_0805C6EC: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - bcc _0805C6DA -_0805C6F6: - movs r0, 0 -_0805C6F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FindFieldObjectTemplateInArrayByLocalId - - thumb_func_start sub_805C700 -sub_805C700: @ 805C700 - push {r4,r5,lr} - adds r2, r0, 0 - ldrb r1, [r2, 0x9] - ldr r4, _0805C720 @ =gSaveBlock1 - movs r0, 0x5 - ldrsb r0, [r4, r0] - adds r5, r4, 0 - cmp r1, r0 - bne _0805C74A - ldrb r1, [r2, 0xA] - movs r0, 0x4 - ldrsb r0, [r5, r0] - cmp r1, r0 - beq _0805C72E - b _0805C74A - .align 2, 0 -_0805C720: .4byte gSaveBlock1 -_0805C724: - movs r1, 0xC2 - lsls r1, 4 - adds r0, r5, r1 - adds r0, r2, r0 - b _0805C74C -_0805C72E: - movs r3, 0 - ldrb r0, [r2, 0x8] - movs r2, 0xC2 - lsls r2, 4 - adds r1, r4, r2 - movs r2, 0 -_0805C73A: - ldrb r4, [r1] - cmp r0, r4 - beq _0805C724 - adds r1, 0x18 - adds r2, 0x18 - adds r3, 0x1 - cmp r3, 0x3F - ble _0805C73A -_0805C74A: - movs r0, 0 -_0805C74C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805C700 - - thumb_func_start sub_805C754 -sub_805C754: @ 805C754 - push {r4,lr} - adds r4, r0, 0 - bl sub_805C700 - adds r1, r0, 0 - cmp r1, 0 - beq _0805C76E - ldrh r0, [r4, 0x10] - subs r0, 0x7 - strh r0, [r1, 0x4] - ldrh r0, [r4, 0x12] - subs r0, 0x7 - strh r0, [r1, 0x6] -_0805C76E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_805C754 - - thumb_func_start sub_805C774 -sub_805C774: @ 805C774 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_805C700 - cmp r0, 0 - beq _0805C784 - strb r4, [r0, 0x9] -_0805C784: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_805C774 - - thumb_func_start sub_805C78C -sub_805C78C: @ 805C78C - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0805C7BA - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805C7C0 @ =gMapObjects - adds r0, r1 - bl sub_805C754 -_0805C7BA: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0805C7C0: .4byte gMapObjects - thumb_func_end sub_805C78C - - thumb_func_start sub_805C7C4 -sub_805C7C4: @ 805C7C4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl gpu_pal_allocator_reset__manage_upper_four - ldr r1, _0805C7F4 @ =gUnknown_030005A6 - ldr r2, _0805C7F8 @ =0x000011ff - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0805C7FC @ =gUnknown_030005A4 - strb r4, [r0] - ldr r1, _0805C800 @ =gUnknown_0837399C - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0xA - bl pal_patch_for_npc_range - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805C7F4: .4byte gUnknown_030005A6 -_0805C7F8: .4byte 0x000011ff -_0805C7FC: .4byte gUnknown_030005A4 -_0805C800: .4byte gUnknown_0837399C - thumb_func_end sub_805C7C4 - - thumb_func_start npc_paltag_by_palslot -npc_paltag_by_palslot: @ 805C804 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9 - bhi _0805C840 - ldr r1, _0805C820 @ =gUnknown_0837399C - ldr r0, _0805C824 @ =gUnknown_030005A4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 1 - b _0805C834 - .align 2, 0 -_0805C820: .4byte gUnknown_0837399C -_0805C824: .4byte gUnknown_030005A4 -_0805C828: - adds r1, r4, 0x4 - adds r1, r2, r1 - ldr r0, _0805C83C @ =gUnknown_030005A4 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 1 -_0805C834: - adds r0, r1 - ldrh r0, [r0] - b _0805C872 - .align 2, 0 -_0805C83C: .4byte gUnknown_030005A4 -_0805C840: - movs r3, 0 - ldr r0, _0805C878 @ =gUnknown_083738E4 - ldrh r1, [r0] - ldr r2, _0805C87C @ =0x000011ff - adds r4, r0, 0 - cmp r1, r2 - beq _0805C870 - adds r6, r4, 0 - ldr r0, _0805C880 @ =gUnknown_030005A6 - ldrh r1, [r0] - adds r5, r2, 0 -_0805C856: - lsls r2, r3, 3 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r1 - beq _0805C828 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r5 - bne _0805C856 -_0805C870: - ldr r0, _0805C87C @ =0x000011ff -_0805C872: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805C878: .4byte gUnknown_083738E4 -_0805C87C: .4byte 0x000011ff -_0805C880: .4byte gUnknown_030005A6 - thumb_func_end npc_paltag_by_palslot - - thumb_func_start sub_805C884 -sub_805C884: @ 805C884 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805C8A0 @ =gMapObjects - adds r0, r2 - ldr r2, _0805C8A4 @ =sub_805C8A8 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805C8A0: .4byte gMapObjects -_0805C8A4: .4byte sub_805C8A8 - thumb_func_end sub_805C884 - - thumb_func_start sub_805C8A8 -sub_805C8A8: @ 805C8A8 - movs r0, 0 - bx lr - thumb_func_end sub_805C8A8 - - thumb_func_start sub_805C8AC -sub_805C8AC: @ 805C8AC - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805C8C8 @ =gMapObjects - adds r0, r2 - ldr r2, _0805C8CC @ =sub_805C8D0 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805C8C8: .4byte gMapObjects -_0805C8CC: .4byte sub_805C8D0 - thumb_func_end sub_805C8AC - - thumb_func_start sub_805C8D0 -sub_805C8D0: @ 805C8D0 - push {r4,lr} - ldr r3, _0805C8EC @ =gUnknown_08375224 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805C8EC: .4byte gUnknown_08375224 - thumb_func_end sub_805C8D0 - - thumb_func_start sub_805C8F0 -sub_805C8F0: @ 805C8F0 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805C8F0 - - thumb_func_start sub_805C904 -sub_805C904: @ 805C904 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805C904 - thumb_func_start sub_805C930 sub_805C930: @ 805C930 push {r4-r6,lr} |