diff options
author | yenatch <yenatch@gmail.com> | 2017-03-22 18:34:29 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2017-03-22 18:34:29 -0400 |
commit | 7acbfe40778bfbd03b0e2d357efef9ee9b0a34e9 (patch) | |
tree | 90c0b95146f3d768b536658eac6a63ff9adcaaec /asm/field_map_obj.s | |
parent | c0a27d5455014bfe54f7ea73e8a38ce0ed8da6da (diff) | |
parent | e3c26e52ae6ab881ade913ca1fad2cd9629bbcb1 (diff) |
Merge remote-tracking branch 'origin/master'
Conflicts:
Makefile
Diffstat (limited to 'asm/field_map_obj.s')
-rw-r--r-- | asm/field_map_obj.s | 4236 |
1 files changed, 0 insertions, 4236 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 348e1d0f3..d54b57fed 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -6,4242 +6,6 @@ .text - thumb_func_start npc_clear_ids_and_state -npc_clear_ids_and_state: @ 805AA50 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - movs r2, 0x24 - bl memset - movs r0, 0xFF - strb r0, [r4, 0x8] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end npc_clear_ids_and_state - - thumb_func_start npcs_clear_ids_and_state -npcs_clear_ids_and_state: @ 805AA70 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0805AA94 @ =gMapObjects -_0805AA76: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl npc_clear_ids_and_state - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0805AA76 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805AA94: .4byte gMapObjects - thumb_func_end npcs_clear_ids_and_state - - thumb_func_start sub_805AA98 -sub_805AA98: @ 805AA98 - push {lr} - bl strange_npc_table_clear - bl npcs_clear_ids_and_state - bl ClearPlayerAvatarInfo - bl sub_805AAB0 - pop {r0} - bx r0 - thumb_func_end sub_805AA98 - - thumb_func_start sub_805AAB0 -sub_805AAB0: @ 805AAB0 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, _0805AB4C @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x54] - mov r9, r0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0805AB50 @ =gSprites - mov r10, r1 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r10 - ldrb r1, [r4, 0x1] - movs r5, 0x4 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x1 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r4, 0x3E - ldrb r0, [r4] - movs r6, 0x4 - orrs r0, r6 - strb r0, [r4] - mov r0, r9 - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r10 - ldrb r0, [r4, 0x1] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r4, 0x3E - ldrb r0, [r4] - orrs r0, r6 - strb r0, [r4] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805AB4C: .4byte gFieldEffectObjectTemplatePointers -_0805AB50: .4byte gSprites - thumb_func_end sub_805AAB0 - - thumb_func_start sub_805AB54 -sub_805AB54: @ 805AB54 - push {lr} - movs r1, 0 - ldr r2, _0805AB60 @ =gMapObjects - ldrb r0, [r2] - b _0805AB78 - .align 2, 0 -_0805AB60: .4byte gMapObjects -_0805AB64: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bhi _0805AB7E - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] -_0805AB78: - lsls r0, 31 - cmp r0, 0 - bne _0805AB64 -_0805AB7E: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_805AB54 - - thumb_func_start GetFieldObjectIdByLocalIdAndMap -GetFieldObjectIdByLocalIdAndMap: @ 805AB84 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0xFE - bls _0805AB9C - bl GetFieldObjectIdByLocalId - b _0805ABA0 -_0805AB9C: - bl GetFieldObjectIdByLocalIdAndMapInternal -_0805ABA0: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByLocalIdAndMap - - thumb_func_start TryGetFieldObjectIdByLocalIdAndMap -TryGetFieldObjectIdByLocalIdAndMap: @ 805ABA8 - push {r4,lr} - adds r4, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - bl GetFieldObjectIdByLocalIdAndMap - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _0805ABCA - movs r0, 0 - b _0805ABCC -_0805ABCA: - movs r0, 0x1 -_0805ABCC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryGetFieldObjectIdByLocalIdAndMap - - thumb_func_start GetFieldObjectIdByXY -GetFieldObjectIdByXY: @ 805ABD4 - push {r4-r6,lr} - movs r3, 0 - ldr r5, _0805AC14 @ =gMapObjects - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r1, 16 -_0805ABE2: - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r5 - ldrb r0, [r2] - lsls r0, 31 - cmp r0, 0 - beq _0805AC02 - movs r6, 0x10 - ldrsh r0, [r2, r6] - cmp r0, r4 - bne _0805AC02 - movs r6, 0x12 - ldrsh r0, [r2, r6] - cmp r0, r1 - beq _0805AC0C -_0805AC02: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0805ABE2 -_0805AC0C: - adds r0, r3, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805AC14: .4byte gMapObjects - thumb_func_end GetFieldObjectIdByXY - - thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal -GetFieldObjectIdByLocalIdAndMapInternal: @ 805AC18 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - ldr r6, _0805AC50 @ =gMapObjects -_0805AC2A: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r6 - ldrb r0, [r3] - lsls r0, 31 - cmp r0, 0 - beq _0805AC54 - ldrb r0, [r3, 0x8] - cmp r0, r5 - bne _0805AC54 - ldrb r0, [r3, 0x9] - cmp r0, r4 - bne _0805AC54 - ldrb r0, [r3, 0xA] - cmp r0, r2 - bne _0805AC54 - adds r0, r1, 0 - b _0805AC60 - .align 2, 0 -_0805AC50: .4byte gMapObjects -_0805AC54: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _0805AC2A - movs r0, 0x10 -_0805AC60: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal - - thumb_func_start GetFieldObjectIdByLocalId -GetFieldObjectIdByLocalId: @ 805AC68 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r4, _0805AC8C @ =gMapObjects -_0805AC72: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0805AC90 - ldrb r0, [r1, 0x8] - cmp r0, r3 - bne _0805AC90 - adds r0, r2, 0 - b _0805AC9C - .align 2, 0 -_0805AC8C: .4byte gMapObjects -_0805AC90: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0805AC72 - movs r0, 0x10 -_0805AC9C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByLocalId - - thumb_func_start InitFieldObjectStateFromTemplate -InitFieldObjectStateFromTemplate: @ 805ACA4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldrb r0, [r5] - adds r1, r6, 0 - adds r2, r7, 0 - mov r3, sp - bl GetAvailableFieldObjectSlot - lsls r0, 24 - cmp r0, 0 - beq _0805ACCE - movs r0, 0x10 - b _0805ADC2 -_0805ACCE: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805ADD0 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl npc_clear_ids_and_state - ldrh r3, [r5, 0x4] - adds r3, 0x7 - lsls r3, 16 - lsrs r3, 16 - ldrh r2, [r5, 0x6] - adds r2, 0x7 - lsls r2, 16 - lsrs r2, 16 - ldrb r0, [r4] - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1] - strb r0, [r4, 0x5] - ldrb r0, [r5, 0x9] - strb r0, [r4, 0x6] - ldrb r0, [r5] - strb r0, [r4, 0x8] - strb r6, [r4, 0x9] - strb r7, [r4, 0xA] - strh r3, [r4, 0xC] - strh r2, [r4, 0xE] - strh r3, [r4, 0x10] - strh r2, [r4, 0x12] - strh r3, [r4, 0x14] - strh r2, [r4, 0x16] - ldrb r0, [r5, 0x8] - movs r7, 0xF - adds r1, r7, 0 - ands r1, r0 - ldrb r2, [r4, 0xB] - movs r0, 0x10 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0xB] - ldrb r1, [r5, 0x8] - lsls r1, 4 - ands r0, r7 - orrs r0, r1 - strb r0, [r4, 0xB] - ldrb r1, [r5, 0xA] - lsls r1, 28 - movs r0, 0xF - mov r9, r0 - lsrs r1, 28 - ldrb r2, [r4, 0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x19] - ldrb r1, [r5, 0xA] - lsrs r1, 4 - lsls r1, 4 - ands r0, r7 - orrs r0, r1 - strb r0, [r4, 0x19] - ldrh r0, [r5, 0xC] - strb r0, [r4, 0x7] - ldrh r0, [r5, 0xE] - strb r0, [r4, 0x1D] - ldr r1, _0805ADD4 @ =gUnknown_0836DC09 - ldrb r0, [r5, 0x9] - adds r0, r1 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - strb r1, [r0] - ldrb r1, [r0] - adds r0, r4, 0 - bl FieldObjectSetDirection - adds r0, r4, 0 - bl FieldObjectHandleDynamicGraphicsId - ldr r1, _0805ADD8 @ =gUnknown_0836DBBC - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0805ADBE - ldrb r2, [r4, 0x19] - adds r0, r7, 0 - ands r0, r2 - cmp r0, 0 - bne _0805ADA6 - lsls r0, r2, 28 - lsrs r0, 28 - adds r0, 0x1 - mov r1, r9 - ands r0, r1 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x19] -_0805ADA6: - ldrb r2, [r4, 0x19] - movs r0, 0xF0 - ands r0, r2 - cmp r0, 0 - bne _0805ADBE - lsrs r1, r2, 4 - adds r1, 0x1 - lsls r1, 4 - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x19] -_0805ADBE: - mov r0, sp - ldrb r0, [r0] -_0805ADC2: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805ADD0: .4byte gMapObjects -_0805ADD4: .4byte gUnknown_0836DC09 -_0805ADD8: .4byte gUnknown_0836DBBC - thumb_func_end InitFieldObjectStateFromTemplate - - thumb_func_start sub_805ADDC -sub_805ADDC: @ 805ADDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0805ADF4 @ =gMapHeader - ldr r0, [r0, 0x4] - cmp r0, 0 - bne _0805AE10 - b _0805AE3E - .align 2, 0 -_0805ADF4: .4byte gMapHeader -_0805ADF8: - ldr r1, _0805AE0C @ =0xfffff3e0 - adds r0, r7, r1 - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - adds r0, r4, 0 - bl InitFieldObjectStateFromTemplate - lsls r0, 24 - lsrs r0, 24 - b _0805AE40 - .align 2, 0 -_0805AE0C: .4byte 0xfffff3e0 -_0805AE10: - ldrb r6, [r0] - movs r5, 0 - cmp r5, r6 - bcs _0805AE3E - ldr r7, _0805AE4C @ =gSaveBlock1 + 0xC20 -_0805AE1A: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r7 - ldrb r0, [r4] - cmp r0, r8 - bne _0805AE34 - ldrh r0, [r4, 0x14] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0805ADF8 -_0805AE34: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0805AE1A -_0805AE3E: - movs r0, 0x10 -_0805AE40: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AE4C: .4byte gSaveBlock1 + 0xC20 - thumb_func_end sub_805ADDC - - thumb_func_start GetAvailableFieldObjectSlot -GetAvailableFieldObjectSlot: @ 805AE50 - push {r4-r7,lr} - mov r12, r3 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r2, 0 - ldr r1, _0805AEAC @ =gMapObjects - ldrb r0, [r1] - lsls r0, 31 - adds r7, r1, 0 - cmp r0, 0 - beq _0805AEA4 - adds r3, r1, 0 -_0805AE70: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldrb r0, [r1, 0x8] - cmp r0, r6 - bne _0805AE8A - ldrb r0, [r1, 0x9] - cmp r0, r5 - bne _0805AE8A - ldrb r0, [r1, 0xA] - cmp r0, r4 - beq _0805AEA8 -_0805AE8A: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bhi _0805AEA8 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0805AE70 -_0805AEA4: - cmp r2, 0xF - bls _0805AEB0 -_0805AEA8: - movs r0, 0x1 - b _0805AEE4 - .align 2, 0 -_0805AEAC: .4byte gMapObjects -_0805AEB0: - mov r0, r12 - strb r2, [r0] - ldr r1, _0805AEEC @ =gMapObjects -_0805AEB6: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3] - lsls r0, 31 - cmp r0, 0 - beq _0805AED8 - ldrb r0, [r3, 0x8] - cmp r0, r6 - bne _0805AED8 - ldrb r0, [r3, 0x9] - cmp r0, r5 - bne _0805AED8 - ldrb r0, [r3, 0xA] - cmp r0, r4 - beq _0805AEA8 -_0805AED8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0805AEB6 - movs r0, 0 -_0805AEE4: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AEEC: .4byte gMapObjects - thumb_func_end GetAvailableFieldObjectSlot - - thumb_func_start RemoveFieldObject -RemoveFieldObject: @ 805AEF0 - push {lr} - ldrb r2, [r0] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bl RemoveFieldObjectInternal - pop {r0} - bx r0 - thumb_func_end RemoveFieldObject - - thumb_func_start RemoveFieldObjectByLocalIdAndMap -RemoveFieldObjectByLocalIdAndMap: @ 805AF04 - 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 _0805AF42 - mov r0, sp - ldrb r0, [r0] - bl GetFieldObjectFlagIdByFieldObjectId - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805AF48 @ =gMapObjects - adds r0, r1 - bl RemoveFieldObject -_0805AF42: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0805AF48: .4byte gMapObjects - thumb_func_end RemoveFieldObjectByLocalIdAndMap - - thumb_func_start RemoveFieldObjectInternal -RemoveFieldObjectInternal: @ 805AF4C - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldrb r0, [r4, 0x5] - bl GetFieldObjectGraphicsInfo - ldrh r2, [r0, 0x6] - ldr r1, _0805AF90 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - ldr r2, _0805AF94 @ =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0xC - adds r0, r1 - mov r1, sp - str r1, [r0] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - bl DestroySprite - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805AF90: .4byte 0xffff0000 -_0805AF94: .4byte gSprites - thumb_func_end RemoveFieldObjectInternal - - thumb_func_start npc_hide_all_but_player -npc_hide_all_but_player: @ 805AF98 - push {r4,lr} - movs r4, 0 -_0805AF9C: - ldr r0, _0805AFC4 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - cmp r4, r0 - beq _0805AFB2 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, _0805AFC8 @ =gMapObjects - adds r0, r1 - bl RemoveFieldObject -_0805AFB2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0805AF9C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805AFC4: .4byte gPlayerAvatar -_0805AFC8: .4byte gMapObjects - thumb_func_end npc_hide_all_but_player - - thumb_func_start sub_805AFCC -sub_805AFCC: @ 805AFCC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r4, 16 - lsrs r4, 16 - mov r10, r4 - bl InitFieldObjectStateFromTemplate - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x10 - bne _0805B006 - movs r0, 0x10 - b _0805B154 -_0805B006: - mov r0, r8 - lsls r4, r0, 3 - adds r0, r4, r0 - lsls r0, 2 - ldr r1, _0805B030 @ =gMapObjects - adds r5, r0, r1 - ldrb r0, [r5, 0x5] - bl GetFieldObjectGraphicsInfo - adds r6, r0, 0 - ldrb r1, [r6, 0xC] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _0805B034 - ldrh r0, [r6, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl npc_load_two_palettes__no_record - b _0805B042 - .align 2, 0 -_0805B030: .4byte gMapObjects -_0805B034: - cmp r0, 0xA - bne _0805B042 - ldrh r0, [r6, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl npc_load_two_palettes__and_record -_0805B042: - ldrb r0, [r5, 0x6] - cmp r0, 0x4C - bne _0805B050 - ldrb r0, [r5, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5, 0x1] -_0805B050: - ldr r1, _0805B084 @ =0x0000ffff - adds r0, r1, 0 - strh r0, [r7, 0x2] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x40 - bne _0805B08C - ldr r0, _0805B088 @ =gMapObjects - mov r2, r8 - adds r1, r4, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x10 - b _0805B154 - .align 2, 0 -_0805B084: .4byte 0x0000ffff -_0805B088: .4byte gMapObjects -_0805B08C: - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _0805B164 @ =gSprites - adds r4, r0, r1 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - ldrh r2, [r5, 0x10] - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - ldrh r2, [r5, 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, [r6, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r4, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r6, 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 r1, [r6, 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, [r5, 0x4] - ldrb r1, [r6, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r5, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _0805B13E - ldrb r0, [r5, 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 -_0805B13E: - ldrb r0, [r5, 0xB] - lsrs r0, 4 - adds r1, r4, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80634D0 - mov r0, r8 -_0805B154: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805B164: .4byte gSprites - thumb_func_end sub_805AFCC - - thumb_func_start SpawnFieldObject -SpawnFieldObject: @ 805B168 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x2C - mov r9, r0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x48] - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0 - str r0, [sp, 0x20] - mov r1, r9 - ldrb r0, [r1, 0x1] - bl GetFieldObjectGraphicsInfo - adds r7, r0, 0 - add r2, sp, 0x20 - mov r0, r9 - add r1, sp, 0x8 - bl MakeObjectTemplateFromFieldObjectTemplate - ldrh r3, [r7, 0x6] - ldr r2, _0805B1E0 @ =0xffff0000 - add r1, sp, 0x24 - ldr r0, [r1, 0x4] - ands r0, r2 - orrs r0, r3 - str r0, [r1, 0x4] - str r1, [sp, 0x14] - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - mov r0, r9 - add r1, sp, 0x8 - adds r2, r6, 0 - mov r3, r8 - bl sub_805AFCC - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - cmp r2, 0x10 - bne _0805B1E4 - movs r0, 0x10 - b _0805B21A - .align 2, 0 -_0805B1E0: .4byte 0xffff0000 -_0805B1E4: - ldr r4, _0805B228 @ =gSprites - ldr r1, _0805B22C @ =gMapObjects - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - ldr r1, [r7, 0x1C] - str r1, [r0] - ldr r2, [sp, 0x20] - cmp r2, 0 - beq _0805B218 - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r1, r2, 0 - bl SetSubspriteTables -_0805B218: - adds r0, r5, 0 -_0805B21A: - add sp, 0x2C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805B228: .4byte gSprites -_0805B22C: .4byte gMapObjects - thumb_func_end SpawnFieldObject - - thumb_func_start SpawnSpecialFieldObject -SpawnSpecialFieldObject: @ 805B230 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl GetFieldObjectMovingCameraOffset - ldr r0, _0805B268 @ =gSaveBlock1 - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - add r0, sp, 0x4 - movs r6, 0 - ldrsh r3, [r0, r6] - movs r6, 0 - ldrsh r0, [r4, r6] - str r0, [sp] - adds r0, r5, 0 - bl SpawnFieldObject - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805B268: .4byte gSaveBlock1 - thumb_func_end SpawnSpecialFieldObject - - thumb_func_start SpawnSpecialFieldObjectParametrized -SpawnSpecialFieldObjectParametrized: @ 805B26C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - ldr r5, _0805B2D0 @ =0xfff90000 - adds r3, r5 - lsrs r3, 16 - lsls r4, 16 - adds r4, r5 - lsrs r4, 16 - mov r5, sp - movs r6, 0 - strb r2, [r5] - mov r2, sp - strb r0, [r2, 0x1] - mov r0, sp - strb r6, [r0, 0x2] - movs r5, 0 - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - mov r2, r8 - strb r2, [r0, 0x8] - strb r1, [r0, 0x9] - mov r2, sp - ldrb r1, [r2, 0xA] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0xA] - mov r0, sp - strb r5, [r0, 0xA] - strh r6, [r0, 0xC] - strh r6, [r0, 0xE] - bl SpawnSpecialFieldObject - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805B2D0: .4byte 0xfff90000 - thumb_func_end SpawnSpecialFieldObjectParametrized - - thumb_func_start show_sprite -show_sprite: @ 805B2D4 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - adds r1, r7, 0 - adds r2, r6, 0 - bl GetFieldObjectTemplateByLocalIdAndMap - adds r5, r0, 0 - cmp r5, 0 - beq _0805B31A - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl GetFieldObjectMovingCameraOffset - add r0, sp, 0x4 - movs r1, 0 - ldrsh r3, [r0, r1] - movs r1, 0 - ldrsh r0, [r4, r1] - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl SpawnFieldObject - lsls r0, 24 - lsrs r0, 24 - b _0805B31C -_0805B31A: - movs r0, 0x10 -_0805B31C: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end show_sprite - - thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfo -MakeObjectTemplateFromFieldObjectGraphicsInfo: @ 805B324 - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - bl GetFieldObjectGraphicsInfo - ldrh r1, [r0] - strh r1, [r4] - ldrh r1, [r0, 0x2] - strh r1, [r4, 0x2] - ldr r1, [r0, 0x10] - str r1, [r4, 0x4] - ldr r1, [r0, 0x18] - str r1, [r4, 0x8] - ldr r1, [r0, 0x1C] - str r1, [r4, 0xC] - ldr r1, [r0, 0x20] - str r1, [r4, 0x10] - str r5, [r4, 0x14] - ldr r0, [r0, 0x14] - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfo - - thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex -MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 805B358 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - ldr r4, _0805B374 @ =gUnknown_0836DA88 - lsrs r1, 14 - adds r1, r4 - ldr r1, [r1] - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805B374: .4byte gUnknown_0836DA88 - thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - - thumb_func_start MakeObjectTemplateFromFieldObjectTemplate -MakeObjectTemplateFromFieldObjectTemplate: @ 805B378 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - ldrb r0, [r4, 0x1] - ldrb r1, [r4, 0x9] - adds r2, r5, 0 - bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end MakeObjectTemplateFromFieldObjectTemplate - - thumb_func_start AddPseudoFieldObject -AddPseudoFieldObject: @ 805B390 - push {r4-r6,lr} - sub sp, 0x1C - ldr r4, [sp, 0x2C] - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r4, 24 - lsrs r4, 24 - add r3, sp, 0x18 - mov r2, sp - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - mov r0, sp - ldrh r1, [r0, 0x2] - ldr r0, _0805B408 @ =0x0000ffff - cmp r1, r0 - beq _0805B3C0 - mov r0, sp - ldrh r0, [r0, 0x2] - bl sub_805BDF8 -_0805B3C0: - lsls r1, r6, 16 - asrs r1, 16 - lsls r2, r5, 16 - asrs r2, 16 - mov r0, sp - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _0805B3FC - ldr r1, [sp, 0x18] - cmp r1, 0 - beq _0805B3FC - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _0805B40C @ =gSprites - adds r4, r0 - adds r0, r4, 0 - bl SetSubspriteTables - adds r4, 0x42 - ldrb r1, [r4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4] -_0805B3FC: - adds r0, r5, 0 - add sp, 0x1C - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805B408: .4byte 0x0000ffff -_0805B40C: .4byte gSprites - thumb_func_end AddPseudoFieldObject - - thumb_func_start sub_805B410 -sub_805B410: @ 805B410 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - adds r5, r0, 0 - ldr r0, [sp, 0x44] - ldr r4, [sp, 0x48] - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - add r1, sp, 0x18 - mov r8, r1 - strh r2, [r1] - mov r6, sp - adds r6, 0x1A - strh r3, [r6] - lsls r0, 24 - lsrs r7, r0, 24 - mov r9, r7 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - adds r0, r5, 0 - bl GetFieldObjectGraphicsInfo - adds r4, r0, 0 - ldr r1, _0805B550 @ =sub_8064970 - add r3, sp, 0x1C - adds r0, r5, 0 - mov r2, sp - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - mov r1, sp - ldr r2, _0805B554 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1, 0x2] - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, 0x7 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, 0x7 - strh r0, [r6] - mov r0, r8 - adds r1, r6, 0 - movs r2, 0x8 - movs r3, 0x10 - bl sub_8060470 - mov r2, r8 - movs r0, 0 - ldrsh r1, [r2, r0] - movs r0, 0 - ldrsh r2, [r6, r0] - mov r0, sp - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _0805B53C - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, _0805B558 @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r5, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, 0x1 - strb r0, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldrb r1, [r4, 0xC] - lsls r1, 28 - lsrs r1, 24 - ldrb r3, [r5, 0x5] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r3 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r3, r5, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - mov r0, r10 - strh r0, [r5, 0x2E] - strh r7, [r5, 0x30] - ldrb r1, [r4, 0xC] - ands r2, r1 - cmp r2, 0xA - bne _0805B4FC - ldrh r0, [r4, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl npc_load_two_palettes__and_record -_0805B4FC: - ldr r1, [sp, 0x1C] - cmp r1, 0 - beq _0805B518 - adds r0, r5, 0 - bl SetSubspriteTables - adds r2, r5, 0 - adds r2, 0x42 - ldrb r0, [r2] - movs r1, 0x3F - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2] -_0805B518: - adds r0, r5, 0 - mov r1, r9 - bl InitObjectPriorityByZCoord - mov r0, r9 - adds r1, r5, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord - ldr r0, [sp, 0x20] - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim -_0805B53C: - adds r0, r6, 0 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805B550: .4byte sub_8064970 -_0805B554: .4byte 0x0000ffff -_0805B558: .4byte gSprites - thumb_func_end sub_805B410 - - thumb_func_start sub_805B55C -sub_805B55C: @ 805B55C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x4] - ldr r0, _0805B628 @ =gMapHeader - ldr r5, [r0, 0x4] - cmp r5, 0 - beq _0805B618 - ldr r4, _0805B62C @ =gSaveBlock1 - ldrh r0, [r4] - subs r1, r0, 0x2 - lsls r1, 16 - lsrs r1, 16 - adds r0, 0x11 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldrh r2, [r4, 0x2] - adds r0, r2, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - ldrb r6, [r5] - movs r5, 0 - cmp r5, r6 - bcs _0805B618 - lsls r0, r2, 16 - asrs r0, 16 - mov r10, r0 - adds r7, r4, 0 - lsls r0, r1, 16 - asrs r0, 16 - mov r9, r0 - lsls r3, 16 - mov r8, r3 -_0805B5B2: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - ldr r1, _0805B630 @ =gSaveBlock1 + 0xC20 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4, 0x6] - adds r0, 0x7 - lsls r0, 16 - asrs r1, r0, 16 - cmp r10, r1 - bgt _0805B60E - ldr r3, [sp, 0xC] - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - blt _0805B60E - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r9, r1 - bgt _0805B60E - ldr r2, [sp, 0x8] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, r1 - blt _0805B60E - ldrh r0, [r4, 0x14] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0805B60E - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - ldr r3, [sp, 0x4] - lsls r0, r3, 16 - asrs r0, 16 - str r0, [sp] - adds r0, r4, 0 - mov r4, r8 - asrs r3, r4, 16 - bl SpawnFieldObject -_0805B60E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0805B5B2 -_0805B618: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805B628: .4byte gMapHeader -_0805B62C: .4byte gSaveBlock1 -_0805B630: .4byte gSaveBlock1 + 0xC20 - thumb_func_end sub_805B55C - - thumb_func_start RemoveFieldObjectsOutsideView -RemoveFieldObjectsOutsideView: @ 805B634 - push {r4-r6,lr} - movs r3, 0 - ldr r6, _0805B688 @ =gLinkPlayerMapObjects -_0805B63A: - movs r2, 0 - movs r4, 0 - adds r5, r3, 0x1 -_0805B640: - lsls r0, r2, 2 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _0805B652 - ldrb r1, [r1, 0x2] - cmp r3, r1 - bne _0805B652 - movs r4, 0x1 -_0805B652: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0805B640 - cmp r4, 0 - bne _0805B67A - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - ldr r1, _0805B68C @ =gMapObjects - adds r2, r0, r1 - ldr r0, [r2] - ldr r1, _0805B690 @ =0x00010001 - ands r0, r1 - cmp r0, 0x1 - bne _0805B67A - adds r0, r2, 0 - bl RemoveFieldObjectIfOutsideView -_0805B67A: - lsls r0, r5, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0805B63A - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B688: .4byte gLinkPlayerMapObjects -_0805B68C: .4byte gMapObjects -_0805B690: .4byte 0x00010001 - thumb_func_end RemoveFieldObjectsOutsideView - - thumb_func_start RemoveFieldObjectIfOutsideView -RemoveFieldObjectIfOutsideView: @ 805B694 - push {r4-r7,lr} - adds r3, r0, 0 - ldr r2, _0805B70C @ =gSaveBlock1 - ldrh r0, [r2] - subs r1, r0, 0x2 - lsls r1, 16 - adds r0, 0x11 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r4, [r2, 0x2] - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0x10 - ldrsh r2, [r3, r0] - lsrs r7, r1, 16 - asrs r1, 16 - cmp r2, r1 - blt _0805B6D8 - lsls r0, r5, 16 - asrs r0, 16 - cmp r2, r0 - bgt _0805B6D8 - movs r0, 0x12 - ldrsh r1, [r3, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - blt _0805B6D8 - lsls r0, r6, 16 - asrs r0, 16 - cmp r1, r0 - ble _0805B706 -_0805B6D8: - movs r0, 0xC - ldrsh r1, [r3, r0] - lsls r0, r7, 16 - asrs r0, 16 - cmp r1, r0 - blt _0805B700 - lsls r0, r5, 16 - asrs r0, 16 - cmp r1, r0 - bgt _0805B700 - movs r0, 0xE - ldrsh r1, [r3, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - blt _0805B700 - lsls r0, r6, 16 - asrs r0, 16 - cmp r1, r0 - ble _0805B706 -_0805B700: - adds r0, r3, 0 - bl RemoveFieldObject -_0805B706: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805B70C: .4byte gSaveBlock1 - thumb_func_end RemoveFieldObjectIfOutsideView - - thumb_func_start sub_805B710 -sub_805B710: @ 805B710 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - bl ClearPlayerAvatarInfo - movs r6, 0 - ldr r7, _0805B758 @ =gMapObjects - lsls r4, 16 - lsls r5, 16 -_0805B72A: - lsls r0, r6, 3 - adds r0, r6 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0805B744 - adds r0, r6, 0 - asrs r1, r4, 16 - asrs r2, r5, 16 - bl sub_805B75C -_0805B744: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bls _0805B72A - bl sub_805AAB0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805B758: .4byte gMapObjects - thumb_func_end sub_805B710 - - 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} |