summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorYamaArashi <YamaArashi@users.noreply.github.com>2017-01-28 19:58:34 -0800
committerGitHub <noreply@github.com>2017-01-28 19:58:34 -0800
commit047c35d6f1ff8888cd25d449d544ce898e0b9fec (patch)
treecbd42a9459031e6bef0dd0e0a5d68ff18c13185d /asm
parent347cc310070f8642057ea083db97752668435557 (diff)
parentc4c0e1d7d5630987b6d5f7f4522fc49f29bcbad5 (diff)
Merge pull request #223 from camthesaxman/field_map_obj
decompile more of field_map_obj
Diffstat (limited to 'asm')
-rw-r--r--asm/field_map_obj.s631
1 files changed, 0 insertions, 631 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index ae61cd100..8d0520bb1 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -6,637 +6,6 @@
.text
- 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}