finished fldeff_dig + fldeff_rocksmash

This commit is contained in:
jiangzhengwenjz
2019-06-29 08:36:18 +08:00
parent 38febc8baf
commit b566ae26de
35 changed files with 422 additions and 682 deletions
+3 -3
View File
@@ -320,7 +320,7 @@ sub_806CAC8: @ 806CAC8
sub sp, 0x8
adds r5, r0, 0
bl sub_8069A54
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r6, r0, 24
mov r4, sp
@@ -629,7 +629,7 @@ _0806CD54:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _0806CDC0
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x2]
@@ -1033,7 +1033,7 @@ _0806D078:
lsls r0, 2
ldr r1, _0806D098 @ =gMapObjects
adds r0, r1
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
bne _0806D0A0
+55 -55
View File
@@ -2235,7 +2235,7 @@ sub_80844BC: @ 80844BC
strb r1, [r0, 0x1]
movs r0, 0x1
strb r0, [r6, 0x6]
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
@@ -2243,7 +2243,7 @@ sub_80844BC: @ 80844BC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
adds r3, r4, 0
adds r3, 0x42
ldrb r0, [r3]
@@ -2653,17 +2653,17 @@ sub_8084820: @ 8084820
ldr r1, _0808488C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808484A
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808487E
_0808484A:
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
@@ -2671,7 +2671,7 @@ _0808484A:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
movs r1, 0
@@ -2952,7 +2952,7 @@ sub_8084A5C: @ 8084A5C
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
mov r4, sp
adds r4, 0x2
mov r0, sp
@@ -3192,7 +3192,7 @@ sub_8084C3C: @ 8084C3C
ldr r1, _08084C98 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08084C8A
@@ -3205,7 +3205,7 @@ sub_8084C3C: @ 8084C3C
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldr r0, _08084C9C @ =sub_8084A24
bl FindTaskIdByFunc
lsls r0, 24
@@ -3317,12 +3317,12 @@ waterfall_1_do_anim_probably: @ 8084D44
adds r5, r1, 0
bl ScriptContext2_Enable
adds r0, r5, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _08084D74
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
ldr r1, _08084D7C @ =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r4, r2]
@@ -3374,7 +3374,7 @@ sub_8084DA4: @ 8084DA4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -3390,7 +3390,7 @@ sub_8084DCC: @ 8084DCC
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _08084DE2
@@ -4070,7 +4070,7 @@ sub_80852C0: @ 80852C0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
_08085308:
movs r0, 0
pop {r4}
@@ -4084,7 +4084,7 @@ _08085310: .4byte gSprites
sub_8085314: @ 8085314
push {lr}
adds r0, r1, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808533E
@@ -4266,7 +4266,7 @@ sub_8085470: @ 8085470
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080854E4
@@ -4311,7 +4311,7 @@ _080854C4:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
movs r0, 0x21
bl PlaySE
_080854E4:
@@ -4527,7 +4527,7 @@ sub_808566C: @ 808566C
strh r0, [r4, 0x8]
movs r0, 0x40
strh r0, [r4, 0x22]
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -4641,12 +4641,12 @@ sub_808576C: @ 808576C
adds r4, r0, 0
adds r6, r1, 0
adds r5, r2, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808578A
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080857E4
@@ -4673,7 +4673,7 @@ _0808579E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r1, [r5]
movs r2, 0
ldrsh r0, [r5, r2]
@@ -5031,7 +5031,7 @@ sub_8085A54: @ 8085A54
beq _08085A78
movs r0, 0x28
bl PlaySE
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5125,7 +5125,7 @@ _08085B10:
cmp r1, r0
bne _08085B58
adds r0, r6, 0
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5200,7 +5200,7 @@ sub_8085BA8: @ 8085BA8
bl ScriptContext2_Enable
bl player_bitmagic
bl CameraObjectReset2
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5540,7 +5540,7 @@ sub_8085E0C: @ 8085E0C
ldrb r0, [r2]
lsrs r0, 6
strh r0, [r6, 0x24]
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -7050,12 +7050,12 @@ sub_8086A20: @ 8086A20
ldr r1, _08086A68 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086A4A
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086A5C
@@ -7063,7 +7063,7 @@ _08086A4A:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7087,7 +7087,7 @@ sub_8086A6C: @ 8086A6C
lsls r0, 2
ldr r1, _08086AAC @ =gMapObjects
adds r0, r1
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _08086AA2
@@ -7135,9 +7135,9 @@ sub_8086AB4: @ 8086AB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl sub_80641C0
@@ -7145,7 +7145,7 @@ sub_8086AB4: @ 8086AB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldr r1, _08086B2C @ =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r6, r2]
@@ -7182,7 +7182,7 @@ sub_8086B30: @ 8086B30
ldr r1, _08086BA0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086B96
@@ -7199,7 +7199,7 @@ sub_8086B30: @ 8086B30
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_80DC44C
@@ -7302,12 +7302,12 @@ sub_8086C24: @ 8086C24
ldr r1, _08086C6C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086C4E
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086C60
@@ -7315,7 +7315,7 @@ _08086C4E:
bl sub_805CBE8
adds r0, r4, 0
movs r1, 0x45
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7340,7 +7340,7 @@ sub_8086C70: @ 8086C70
ldr r1, _08086CA0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086CEE
@@ -7366,7 +7366,7 @@ _08086CAE:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
b _08086CD2
_08086CC0:
movs r0, 0
@@ -7375,7 +7375,7 @@ _08086CC0:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
_08086CD2:
ldrb r0, [r4, 0x18]
lsls r0, 28
@@ -7405,7 +7405,7 @@ sub_8086CF4: @ 8086CF4
lsls r0, 2
ldr r1, _08086D30 @ =gMapObjects
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086D26
@@ -7599,12 +7599,12 @@ sub_8086E70: @ 8086E70
ldr r1, _08086EC4 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086E9A
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086EB8
@@ -7617,7 +7617,7 @@ _08086E9A:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7641,7 +7641,7 @@ sub_8086EC8: @ 8086EC8
lsls r0, 2
ldr r1, _08086F04 @ =gMapObjects
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086EF8
@@ -7732,7 +7732,7 @@ sub_8086F64: @ 8086F64
ldr r1, _08086FA4 @ =gMapObjects
adds r0, r1
movs r1, 0x2
bl sub_8063CA4
bl FieldObjectSetHeldMovement
_08086F98:
pop {r4}
pop {r0}
@@ -7765,7 +7765,7 @@ sub_8086FA8: @ 8086FA8
bne _08086FEC
_08086FCE:
adds r0, r2, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086FEC
@@ -7809,7 +7809,7 @@ sub_8086FFC: @ 8086FFC
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -7824,7 +7824,7 @@ sub_8086FFC: @ 8086FFC
strb r0, [r4, 0x1]
adds r0, r4, 0
movs r1, 0x54
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -8433,12 +8433,12 @@ sub_80874C8: @ 80874C8
ldr r1, _080875B8 @ =gMapObjects
adds r5, r0, r1
adds r0, r5, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080874F2
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080875AE
@@ -8468,7 +8468,7 @@ _0808751A:
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_805F060
bl EventObjectSetGraphicsId
bl CameraObjectReset2
adds r0, r5, 0
movs r1, 0x3
@@ -8688,7 +8688,7 @@ sub_8087698: @ 8087698
bl sub_805CB70
adds r0, r5, 0
movs r1, 0x45
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
@@ -8713,7 +8713,7 @@ sub_8087710: @ 8087710
lsls r0, 2
ldr r1, _08087744 @ =gMapObjects
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08087738
@@ -8795,7 +8795,7 @@ _080877B4:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
adds r0, r4, 0
movs r1, 0x1
bl FieldObjectTurn
+12 -12
View File
@@ -730,7 +730,7 @@ _0807E0AE:
ldr r1, _0807E0E8 @ =gMapObjects
adds r0, r1
movs r1, 0x10
bl sub_8063CA4
bl FieldObjectSetHeldMovement
movs r0, 0x8
strh r0, [r4, 0x8]
b _0807E206
@@ -783,7 +783,7 @@ _0807E10E:
lsls r0, 2
ldr r1, _0807E15C @ =gMapObjects
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
b _0807E1F2
.align 2, 0
_0807E158: .4byte sub_807F204
@@ -807,7 +807,7 @@ _0807E160:
ldr r1, _0807E194 @ =gMapObjects
adds r0, r1
movs r1, 0x10
bl sub_8063CA4
bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r4, 0x8]
b _0807E206
@@ -838,7 +838,7 @@ _0807E198:
lsls r0, 2
ldr r1, _0807E1D8 @ =gMapObjects
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
movs r0, 0x3
strh r0, [r4, 0x8]
b _0807E206
@@ -929,7 +929,7 @@ _0807E25E:
lsls r4, 2
ldr r0, _0807E2A4 @ =gMapObjects
adds r4, r0
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063F84
@@ -937,7 +937,7 @@ _0807E25E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r5, 0x8]
b _0807E2C6
@@ -1744,7 +1744,7 @@ _0807E8AE:
lsls r0, 2
adds r0, r4
movs r1, 0x11
bl sub_8063CA4
bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r5, 0x8]
b _0807E976
@@ -1776,7 +1776,7 @@ _0807E8F4:
lsls r0, 2
ldr r1, _0807E93C @ =gMapObjects
adds r0, r1
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
movs r0, 0
bl sub_807DCB0
movs r0, 0x3
@@ -1871,12 +1871,12 @@ _0807E9DA:
b _0807EA92
_0807E9E8:
adds r0, r6, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0807EA00
adds r0, r6, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0807EAB0
@@ -2033,7 +2033,7 @@ _0807EB08:
lsrs r0, 7
cmp r0, 0
beq _0807EB4C
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetStepInPlaceDelay16AnimId
@@ -2071,7 +2071,7 @@ sub_807EB64: @ 807EB64
lsls r4, 2
ldr r0, _0807EBB8 @ =gMapObjects
adds r4, r0
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetStepInPlaceDelay16AnimId
+21 -21
View File
@@ -2440,8 +2440,8 @@ _0805F058: .4byte gPlayerAvatar
_0805F05C: .4byte gMapObjects
thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
thumb_func_start sub_805F060
sub_805F060: @ 805F060
thumb_func_start EventObjectSetGraphicsId
EventObjectSetGraphicsId: @ 805F060
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2625,7 +2625,7 @@ _0805F1BA:
_0805F1CC: .4byte gSprites
_0805F1D0: .4byte 0x000003ff
_0805F1D4: .4byte 0xfffffc00
thumb_func_end sub_805F060
thumb_func_end EventObjectSetGraphicsId
thumb_func_start FieldObjectSetGraphicsIdByLocalIdAndMap
FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
@@ -2652,7 +2652,7 @@ FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
ldr r1, _0805F214 @ =gMapObjects
adds r0, r1
adds r1, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
_0805F20C:
add sp, 0x4
pop {r4}
@@ -10353,7 +10353,7 @@ mss_npc_reset_oampriv3_1_unk2_unk3: @ 80628C0
ldrb r0, [r4]
cmp r0, 0
bne _080628D8
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
strb r0, [r4]
_080628D8:
movs r0, 0x1
@@ -13097,8 +13097,8 @@ FieldObjectMoveDestCoords: @ 8063C50
bx r0
thumb_func_end FieldObjectMoveDestCoords
thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 8063C70
thumb_func_start FieldObjectIsMovementOverridden
FieldObjectIsMovementOverridden: @ 8063C70
push {lr}
ldrb r1, [r0]
movs r0, 0x42
@@ -13112,7 +13112,7 @@ _08063C80:
_08063C82:
pop {r1}
bx r1
thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
thumb_func_end FieldObjectIsMovementOverridden
thumb_func_start FieldObjectIsSpecialAnimActive
FieldObjectIsSpecialAnimActive: @ 8063C88
@@ -13134,8 +13134,8 @@ _08063CA0:
bx r1
thumb_func_end FieldObjectIsSpecialAnimActive
thumb_func_start sub_8063CA4
sub_8063CA4: @ 8063CA4
thumb_func_start FieldObjectSetHeldMovement
FieldObjectSetHeldMovement: @ 8063CA4
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
@@ -13146,7 +13146,7 @@ sub_8063CA4: @ 8063CA4
cmp r0, 0x1
beq _08063CC8
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08063CCE
@@ -13180,7 +13180,7 @@ _08063CF4:
bx r1
.align 2, 0
_08063CFC: .4byte gSprites
thumb_func_end sub_8063CA4
thumb_func_end FieldObjectSetHeldMovement
thumb_func_start FieldObjectForceSetSpecialAnim
FieldObjectForceSetSpecialAnim: @ 8063D00
@@ -13191,7 +13191,7 @@ FieldObjectForceSetSpecialAnim: @ 8063D00
bl FieldObjectClearAnimIfSpecialAnimActive
adds r0, r5, 0
adds r1, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
pop {r4,r5}
pop {r0}
bx r0
@@ -13242,8 +13242,8 @@ FieldObjectClearAnim: @ 8063D34
_08063D64: .4byte gSprites
thumb_func_end FieldObjectClearAnim
thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive
FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8063D68
thumb_func_start FieldObjectCheckHeldMovementStatus
FieldObjectCheckHeldMovementStatus: @ 8063D68
push {lr}
ldrb r1, [r0]
lsls r0, r1, 25
@@ -13256,13 +13256,13 @@ _08063D76:
_08063D78:
pop {r1}
bx r1
thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive
thumb_func_end FieldObjectCheckHeldMovementStatus
thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished
FieldObjectClearAnimIfSpecialAnimFinished: @ 8063D7C
thumb_func_start FieldObjectClearHeldMovementIfFinished
FieldObjectClearHeldMovementIfFinished: @ 8063D7C
push {r4,r5,lr}
adds r5, r0, 0
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -13276,7 +13276,7 @@ _08063D96:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished
thumb_func_end FieldObjectClearHeldMovementIfFinished
thumb_func_start FieldObjectGetSpecialAnim
FieldObjectGetSpecialAnim: @ 8063DA0
@@ -14023,7 +14023,7 @@ FieldObjectFaceOppositeDirection: @ 80642C8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
lsls r0, 24
lsrs r0, 24
pop {r4}
+38 -38
View File
@@ -94,12 +94,12 @@ sub_805B45C: @ 805B45C
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0805B4A6
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _0805B4A6
@@ -845,7 +845,7 @@ _0805B9AC: .4byte gPlayerAvatar
thumb_func_start PlayerNotOnBikeNotMoving
PlayerNotOnBikeNotMoving: @ 805B9B0
push {lr}
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl PlayerFaceDirection
@@ -1631,7 +1631,7 @@ PlayerIsAnimActive: @ 805BF7C
lsls r0, 2
ldr r1, _0805BF9C @ =gMapObjects
adds r0, r1
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -1651,7 +1651,7 @@ PlayerCheckIfAnimFinishedOrInactive: @ 805BFA0
lsls r0, 2
ldr r1, _0805BFC0 @ =gMapObjects
adds r0, r1
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -1737,7 +1737,7 @@ sub_805C024: @ 805C024
ldr r1, _0805C068 @ =gMapObjects
adds r0, r1
adds r1, r5, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C05E
@@ -1765,7 +1765,7 @@ sub_805C06C: @ 805C06C
ldr r1, _0805C0A0 @ =gMapObjects
adds r0, r1
adds r1, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C094
@@ -1789,7 +1789,7 @@ sub_805C0A4: @ 805C0A4
lsls r1, 24
lsrs r5, r1, 24
adds r1, r5, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C0CA
@@ -2404,7 +2404,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 805C4F4
adds r0, r3
ldrh r0, [r0, 0x12]
strh r0, [r5]
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
@@ -2582,8 +2582,8 @@ _0805C6BC:
bx r1
thumb_func_end plaer_get_pos_including_state_based_drift
thumb_func_start player_get_direction_lower_nybble
player_get_direction_lower_nybble: @ 805C6C4
thumb_func_start GetPlayerFacingDirection
GetPlayerFacingDirection: @ 805C6C4
ldr r2, _0805C6DC @ =gMapObjects
ldr r0, _0805C6E0 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -2598,7 +2598,7 @@ player_get_direction_lower_nybble: @ 805C6C4
.align 2, 0
_0805C6DC: .4byte gMapObjects
_0805C6E0: .4byte gPlayerAvatar
thumb_func_end player_get_direction_lower_nybble
thumb_func_end GetPlayerFacingDirection
thumb_func_start player_get_direction_upper_nybble
player_get_direction_upper_nybble: @ 805C6E4
@@ -3257,7 +3257,7 @@ sub_805CB70: @ 805CB70
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3318,7 +3318,7 @@ sub_805CBE8: @ 805CBE8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3532,19 +3532,19 @@ sub_805CD84: @ 805CD84
adds r5, r1, 0
adds r4, r2, 0
adds r0, r5, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0805CE0E
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0805CE0E
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r6, 0xC]
bl GetStepInPlaceDelay16AnimId
adds r1, r0, 0
@@ -3602,19 +3602,19 @@ sub_805CE20: @ 805CE20
adds r5, r1, 0
adds r4, r2, 0
adds r0, r5, 0
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805CE70
adds r0, r4, 0
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805CE70
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
bl sub_806DE28
ldrh r0, [r4, 0x10]
@@ -3704,7 +3704,7 @@ PlayerAvatar_DoSecretBaseMatJump: @ 805CEEC
movs r0, 0x1
strb r0, [r5, 0x6]
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805CF48
@@ -3836,7 +3836,7 @@ sub_805CFEC: @ 805CFEC
movs r2, 0x4
bl memcpy
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D054
@@ -3896,7 +3896,7 @@ sub_805D064: @ 805D064
movs r2, 0x5
bl memcpy
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D094
@@ -3924,7 +3924,7 @@ sub_805D0A4: @ 805D0A4
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D0E8
@@ -4073,12 +4073,12 @@ taskFF_0805D1D4: @ 805D1D4
ldr r1, _0805D234 @ =gMapObjects
adds r5, r0, r1
adds r0, r5, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0805D200
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D228
@@ -4124,7 +4124,7 @@ sub_805D240: @ 805D240
ldr r1, _0805D2B8 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D2AE
@@ -4134,7 +4134,7 @@ sub_805D240: @ 805D240
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -4503,7 +4503,7 @@ _0805D548:
adds r4, r0
lsls r4, 2
adds r4, r5
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063510
@@ -4734,7 +4734,7 @@ _0805D6EA:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
@@ -4827,7 +4827,7 @@ sub_805D7C0: @ 805D7C0
adds r4, r0
lsls r4, 2
adds r4, r5
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
@@ -4883,7 +4883,7 @@ sub_805D838: @ 805D838
adds r4, r0
lsls r4, 2
adds r4, r5
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
@@ -4978,7 +4978,7 @@ sub_805D8D8: @ 805D8D8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
@@ -5131,7 +5131,7 @@ _0805DA2E:
bhi _0805DA60
movs r0, 0x8
strh r0, [r4, 0x24]
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -5280,7 +5280,7 @@ _0805DB58:
b _0805DBFA
_0805DB5E:
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805DBFA
@@ -5608,7 +5608,7 @@ sub_805DDC8: @ 805DDC8
ble _0805DE20
_0805DDE4:
adds r0, r5, 0
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805DE20
+3 -3
View File
@@ -413,7 +413,7 @@ sub_80CA8F8: @ 80CA8F8
movs r4, 0
movs r7, 0
movs r5, 0
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -510,7 +510,7 @@ sub_80CA9A8: @ 80CA9A8
movs r4, 0
movs r6, 0
movs r5, 0
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -5152,7 +5152,7 @@ sub_80CCD84: @ 80CCD84
ldr r0, _080CCDC4 @ =0x00190018
cmp r1, r0
bne _080CCDC8
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
+4 -4
View File
@@ -74,7 +74,7 @@ _080978F8: .4byte FieldCallback_PrepareFadeInFromMenu
_080978FC: .4byte gPostMenuFieldCallback
_08097900: .4byte sub_8097984
_08097904:
ldr r4, _0809797C @ =gUnknown_2039A04
ldr r4, _0809797C @ =gPlayerFacingPosition
adds r1, r4, 0x2
adds r0, r4, 0
bl PlayerGetDestCoords
@@ -136,7 +136,7 @@ _08097970:
pop {r1}
bx r1
.align 2, 0
_0809797C: .4byte gUnknown_2039A04
_0809797C: .4byte gPlayerFacingPosition
_08097980: .4byte 0x0000ffff
thumb_func_end sub_8097898
@@ -253,7 +253,7 @@ sub_8097A48: @ 8097A48
movs r7, 0
movs r0, 0x79
bl PlaySE
ldr r4, _08097B38 @ =gUnknown_2039A04
ldr r4, _08097B38 @ =gPlayerFacingPosition
adds r1, r4, 0x2
adds r0, r4, 0
bl PlayerGetDestCoords
@@ -362,7 +362,7 @@ _08097AE2:
pop {r1}
bx r1
.align 2, 0
_08097B38: .4byte gUnknown_2039A04
_08097B38: .4byte gPlayerFacingPosition
_08097B3C: .4byte 0x0000ffff
_08097B40: .4byte gUnknown_2039870
_08097B44: .4byte gSprites
+1 -1
View File
@@ -1091,7 +1091,7 @@ _0813F470:
.4byte _0813F50C
.4byte _0813F52C
_0813F484:
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
+4 -4
View File
@@ -11381,13 +11381,13 @@ sub_811B66C: @ 811B66C
ldr r1, _0811B6C0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0811B6D0
ldrb r1, [r5]
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0811B6C4
@@ -11440,7 +11440,7 @@ sub_811B6E8: @ 811B6E8
ldr r1, _0811B72C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _0811B730
@@ -12496,7 +12496,7 @@ sub_811BF00: @ 811BF00
b _0811BFEE
_0811BF1C:
ldr r4, _0811BF44 @ =gUnknown_8457116
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r0, r4
+5 -5
View File
@@ -193,8 +193,8 @@ _08054D68: .4byte 0x00000808
_08054D6C: .4byte 0x0000404d
thumb_func_end Overworld_ResetStateAfterTeleport
thumb_func_start sub_8054D70
sub_8054D70: @ 8054D70
thumb_func_start Overworld_ResetStateAfterDigEscRope
Overworld_ResetStateAfterDigEscRope: @ 8054D70
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
@@ -230,7 +230,7 @@ _08054DC8: .4byte 0x00000805
_08054DCC: .4byte 0x00000806
_08054DD0: .4byte 0x00000808
_08054DD4: .4byte 0x0000404d
thumb_func_end sub_8054D70
thumb_func_end Overworld_ResetStateAfterDigEscRope
thumb_func_start sub_8054DD8
sub_8054DD8: @ 8054DD8
@@ -1257,7 +1257,7 @@ sub_805550C: @ 805550C
ldrh r0, [r0, 0x4]
cmp r0, 0x1
beq _08055590
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -1858,7 +1858,7 @@ _08055A04: .4byte gUnknown_2031DD4
thumb_func_start sub_8055A08
sub_8055A08: @ 8055A08
push {r4,lr}
bl player_get_direction_lower_nybble
bl GetPlayerFacingDirection
ldr r4, _08055A24 @ =gUnknown_2031DD4
strb r0, [r4, 0x1]
movs r0, 0x2
-459
View File
@@ -1,459 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start CheckObjectGraphicsInFrontOfPlayer
CheckObjectGraphicsInFrontOfPlayer: @ 80C97A8
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, _080C97E8 @ =gUnknown_2039A04
adds r1, r4, 0x2
adds r0, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
bl PlayerGetZCoord
strb r0, [r4, 0x4]
ldrh r0, [r4]
ldrh r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
bl GetFieldObjectIdByXYZ
lsls r0, 24
lsrs r0, 24
ldr r2, _080C97EC @ =gMapObjects
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r2, r1, r2
ldrb r0, [r2, 0x5]
cmp r0, r5
bne _080C97F4
ldr r1, _080C97F0 @ =gSpecialVar_LastTalked
ldrb r0, [r2, 0x8]
strh r0, [r1]
movs r0, 0x1
b _080C97F6
.align 2, 0
_080C97E8: .4byte gUnknown_2039A04
_080C97EC: .4byte gMapObjects
_080C97F0: .4byte gSpecialVar_LastTalked
_080C97F4:
movs r0, 0
_080C97F6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end CheckObjectGraphicsInFrontOfPlayer
thumb_func_start oei_task_add
oei_task_add: @ 80C97FC
push {lr}
ldr r0, _080C9818 @ =gUnknown_2039A04
adds r1, r0, 0x2
bl GetXYCoordsOneStepInFrontOfPlayer
ldr r0, _080C981C @ =task08_080C9820
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_080C9818: .4byte gUnknown_2039A04
_080C981C: .4byte task08_080C9820
thumb_func_end oei_task_add
thumb_func_start task08_080C9820
task08_080C9820: @ 80C9820
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
bl ScriptContext2_Enable
ldr r1, _080C9874 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrb r1, [r1, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080C9878 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
lsls r0, 24
cmp r0, 0
beq _080C9856
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
lsls r0, 24
cmp r0, 0
beq _080C98A2
_080C9856:
ldr r0, _080C987C @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x5
bne _080C9888
movs r0, 0x3B
bl FieldEffectStart
ldr r0, _080C9880 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _080C9884 @ =sub_80C98FC
b _080C98A0
.align 2, 0
_080C9874: .4byte gPlayerAvatar
_080C9878: .4byte gMapObjects
_080C987C: .4byte gMapHeader
_080C9880: .4byte gTasks
_080C9884: .4byte sub_80C98FC
_080C9888:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
bl sub_8063CA4
ldr r0, _080C98A8 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _080C98AC @ =sub_80C98B0
_080C98A0:
str r0, [r1]
_080C98A2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080C98A8: .4byte gTasks
_080C98AC: .4byte sub_80C98B0
thumb_func_end task08_080C9820
thumb_func_start sub_80C98B0
sub_80C98B0: @ 80C98B0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080C98EC @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080C98F0 @ =gMapObjects
adds r0, r1
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080C98E4
movs r0, 0x3B
bl FieldEffectStart
ldr r0, _080C98F4 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080C98F8 @ =sub_80C98FC
str r0, [r1]
_080C98E4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080C98EC: .4byte gPlayerAvatar
_080C98F0: .4byte gMapObjects
_080C98F4: .4byte gTasks
_080C98F8: .4byte sub_80C98FC
thumb_func_end sub_80C98B0
thumb_func_start sub_80C98FC
sub_80C98FC: @ 80C98FC
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x6
bl FieldEffectActiveListContains
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080C9980
bl player_get_direction_lower_nybble
ldr r6, _080C9988 @ =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r6, 0x4]
cmp r0, 0x1
bne _080C9922
str r4, [r6, 0x8]
_080C9922:
ldr r1, [r6, 0x4]
cmp r1, 0x2
bne _080C992C
movs r0, 0x1
str r0, [r6, 0x8]
_080C992C:
cmp r1, 0x3
bne _080C9934
movs r0, 0x2
str r0, [r6, 0x8]
_080C9934:
cmp r1, 0x4
bne _080C993C
movs r0, 0x3
str r0, [r6, 0x8]
_080C993C:
ldr r5, _080C998C @ =gPlayerAvatar
ldrb r0, [r5, 0x5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 2
ldr r0, _080C9990 @ =gMapObjects
adds r4, r0
bl GetPlayerAvatarGraphicsIdByCurrentState
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805F060
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080C9994 @ =gSprites
adds r0, r1
ldrb r1, [r6, 0x8]
bl StartSpriteAnim
movs r0, 0x6
bl FieldEffectActiveListRemove
ldr r1, _080C9998 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
ldr r1, _080C999C @ =sub_80C99A0
str r1, [r0]
_080C9980:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080C9988: .4byte gFieldEffectArguments
_080C998C: .4byte gPlayerAvatar
_080C9990: .4byte gMapObjects
_080C9994: .4byte gSprites
_080C9998: .4byte gTasks
_080C999C: .4byte sub_80C99A0
thumb_func_end sub_80C98FC
thumb_func_start sub_80C99A0
sub_80C99A0: @ 80C99A0
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _080C99D0 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x18]
lsls r1, 16
ldrh r0, [r0, 0x1A]
orrs r1, r0
bl _call_via_r1
ldr r1, _080C99D4 @ =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
adds r0, r4, 0
bl DestroyTask
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080C99D0: .4byte gTasks
_080C99D4: .4byte gPlayerAvatar
thumb_func_end sub_80C99A0
thumb_func_start SetUpFieldMove_RockSmash
SetUpFieldMove_RockSmash: @ 80C99D8
push {lr}
movs r0, 0x60
bl CheckObjectGraphicsInFrontOfPlayer
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080C99EC
movs r0, 0
b _080C99FA
_080C99EC:
ldr r1, _080C9A00 @ =gFieldCallback2
ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080C9A08 @ =gPostMenuFieldCallback
ldr r0, _080C9A0C @ =sub_80C9A10
str r0, [r1]
movs r0, 0x1
_080C99FA:
pop {r1}
bx r1
.align 2, 0
_080C9A00: .4byte gFieldCallback2
_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu
_080C9A08: .4byte gPostMenuFieldCallback
_080C9A0C: .4byte sub_80C9A10
thumb_func_end SetUpFieldMove_RockSmash
thumb_func_start sub_80C9A10
sub_80C9A10: @ 80C9A10
push {lr}
bl GetCursorSelectionMonId
ldr r1, _080C9A28 @ =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
ldr r0, _080C9A2C @ =gUnknown_81BE064
bl ScriptContext1_SetupScript
pop {r0}
bx r0
.align 2, 0
_080C9A28: .4byte gFieldEffectArguments
_080C9A2C: .4byte gUnknown_81BE064
thumb_func_end sub_80C9A10
thumb_func_start oei_rocksmash
oei_rocksmash: @ 80C9A30
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9A58 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _080C9A5C @ =sub_80C9A60
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x13
bl IncrementGameStat
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080C9A58: .4byte gTasks
_080C9A5C: .4byte sub_80C9A60
thumb_func_end oei_rocksmash
thumb_func_start sub_80C9A60
sub_80C9A60: @ 80C9A60
push {lr}
movs r0, 0x7C
bl PlaySE
movs r0, 0x25
bl FieldEffectActiveListRemove
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_80C9A60
thumb_func_start SetUpFieldMove_Dig
SetUpFieldMove_Dig: @ 80C9A78
push {lr}
bl sub_80A1B8C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080C9A8A
movs r0, 0
b _080C9A98
_080C9A8A:
ldr r1, _080C9A9C @ =gFieldCallback2
ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080C9AA4 @ =gPostMenuFieldCallback
ldr r0, _080C9AA8 @ =hm2_dig
str r0, [r1]
movs r0, 0x1
_080C9A98:
pop {r1}
bx r1
.align 2, 0
_080C9A9C: .4byte gFieldCallback2
_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu
_080C9AA4: .4byte gPostMenuFieldCallback
_080C9AA8: .4byte hm2_dig
thumb_func_end SetUpFieldMove_Dig
thumb_func_start hm2_dig
hm2_dig: @ 80C9AAC
push {lr}
bl sub_8054D70
movs r0, 0x26
bl FieldEffectStart
bl GetCursorSelectionMonId
ldr r1, _080C9AC8 @ =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080C9AC8: .4byte gFieldEffectArguments
thumb_func_end hm2_dig
thumb_func_start sub_80C9ACC
sub_80C9ACC: @ 80C9ACC
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9AF4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _080C9AF8 @ =sub_80C9AFC
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080C9AF4: .4byte gTasks
_080C9AF8: .4byte sub_80C9AFC
thumb_func_end sub_80C9ACC
thumb_func_start sub_80C9AFC
sub_80C9AFC: @ 80C9AFC
push {lr}
movs r0, 0x26
bl FieldEffectActiveListRemove
ldr r0, _080C9B24 @ =sub_80A1C44
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9B28 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
strh r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_080C9B24: .4byte sub_80A1C44
_080C9B28: .4byte gTasks
thumb_func_end sub_80C9AFC
.align 2, 0 @ Don't pad with nop.
+2 -2
View File
@@ -565,7 +565,7 @@ sub_80977F0: @ 80977F0
cmp r0, 0
beq _08097838
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0809786A
@@ -583,7 +583,7 @@ _08097838:
_08097850: .4byte gMapObjects
_08097854:
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0809786A
+27 -27
View File
@@ -601,7 +601,7 @@ _08081F54:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
_08081F82:
@@ -658,12 +658,12 @@ sub_8081FD0: @ 8081FD0
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08081FEE
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08082022
@@ -680,7 +680,7 @@ _08081FEE:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0xE]
subs r0, 0x1
strh r0, [r5, 0xE]
@@ -688,7 +688,7 @@ _08081FEE:
_08082014:
adds r0, r4, 0
movs r1, 0x4A
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -705,12 +705,12 @@ sub_808202C: @ 808202C
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808204A
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820AC
@@ -743,12 +743,12 @@ _0808204A:
ldr r1, _080820B8 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080820A2
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820AC
@@ -780,12 +780,12 @@ sub_80820BC: @ 80820BC
ldr r1, _080820FC @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080820E8
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820EE
@@ -808,19 +808,19 @@ sub_8082100: @ 8082100
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808211E
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808212C
_0808211E:
adds r0, r4, 0
movs r1, 0x67
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -836,7 +836,7 @@ sub_8082134: @ 8082134
push {r4,lr}
adds r4, r1, 0
adds r0, r2, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08082148
@@ -855,19 +855,19 @@ sub_8082150: @ 8082150
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808216E
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808217C
_0808216E:
adds r0, r4, 0
movs r1, 0x4A
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -884,7 +884,7 @@ sub_8082184: @ 8082184
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _080821CA
@@ -961,7 +961,7 @@ sub_80821DC: @ 80821DC
orrs r1, r2
strb r1, [r0, 0x5]
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -970,7 +970,7 @@ sub_80821DC: @ 80821DC
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -1069,7 +1069,7 @@ sub_80822CC: @ 80822CC
lsls r0, 2
ldr r4, _0808234C @ =gMapObjects
adds r0, r4
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08082312
@@ -1079,7 +1079,7 @@ sub_80822CC: @ 80822CC
adds r0, r1
lsls r0, 2
adds r0, r4
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808236E
@@ -1104,7 +1104,7 @@ _08082312:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x12]
adds r0, 0x1
strh r0, [r5, 0x12]
@@ -1160,7 +1160,7 @@ sub_808237C: @ 808237C
lsls r0, 2
ldr r4, _08082408 @ =gMapObjects
adds r0, r4
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080823CC
@@ -1170,7 +1170,7 @@ sub_808237C: @ 808237C
adds r0, r1
lsls r0, 2
adds r0, r4
bl FieldObjectClearAnimIfSpecialAnimFinished
bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808242E
@@ -1195,7 +1195,7 @@ _080823CC:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8063CA4
bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x12]
adds r0, 0x1
strh r0, [r5, 0x12]
+1 -1
View File
@@ -309,7 +309,7 @@ struct Camera
s32 y;
};
extern struct EventObject gEventObjects[];
extern struct EventObject gMapObjects[];
extern u8 gSelectedEventObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
+1 -1
View File
@@ -3545,7 +3545,7 @@ CeruleanCave_B1F_EventScript_1BE00C:: @ 81BE00C
CeruleanCave_1F_EventScript_1BE00C:: @ 81BE00C
.incbin "baserom.gba", 0x1BE00C, 0x58
gUnknown_81BE064:: @ 81BE064
EventScript_FldEffRockSmash:: @ 81BE064
.incbin "baserom.gba", 0x1BE064, 0xB9
MtEmber_Exterior_EventScript_1BE11D:: @ 81BE11D
@@ -113,7 +113,7 @@ FiveIsland_RocketWarehouse_EventScript_164087:: @ 8164087
EventScript_1640A2:: @ 81640A2
getplayerxy VAR_0x8004, VAR_0x8005
specialvar VAR_RESULT, player_get_direction_lower_nybble
specialvar VAR_RESULT, GetPlayerFacingDirection
compare_var_to_value VAR_RESULT, 2
call_if 1, EventScript_16412E
msgbox gUnknown_817B7AE
+2 -2
View File
@@ -296,7 +296,7 @@ gSpecials:: @ 815FD60
def_special nullsub_75
def_special sub_80CAAAC
def_special sub_80CAABC
def_special player_get_direction_lower_nybble
def_special GetPlayerFacingDirection
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
@@ -435,7 +435,7 @@ gSpecials:: @ 815FD60
def_special sub_809D764
def_special sub_809D8C0
def_special sub_8147500
def_special player_get_direction_lower_nybble
def_special GetPlayerFacingDirection
def_special sub_80CCDFC
def_special sub_80CD008
def_special sub_8147594
+1
View File
@@ -1146,5 +1146,6 @@ extern const u8 gUnknown_81BB156[];
extern const u8 EventScript_FldEffStrength[];
extern const u8 EventScript_FailSweetScent[];
extern const u8 EventScript_FldEffRockSmash[];
#endif //GUARD_EVENT_SCRIPTS_H
+5 -3
View File
@@ -76,18 +76,20 @@ u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 FieldObjectClearHeldMovementIfFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct MapObject *, struct Sprite *);
void sub_8063CA4(struct MapObject *, u8);
void FieldObjectSetHeldMovement(struct MapObject *, u8);
void npc_coords_shift_still(struct MapObject *);
void sub_805FE7C(struct MapObject *, u8);
void npc_set_running_behaviour_etc(struct MapObject *, u8);
u8 sub_80634F0(u8 direction);
u8 sub_8063500(u8 a0);
void sub_805F060(struct MapObject *mapObject, u8 a1);
void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
void npc_paltag_set_load(u8 mode);
bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject);
u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject);
// Exported data declarations
+4 -1
View File
@@ -8,7 +8,7 @@ void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
void PlayerGetDestCoords(s16 *, s16 *);
u8 player_get_direction_lower_nybble(void);
u8 GetPlayerFacingDirection(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
@@ -25,5 +25,8 @@ void SetPlayerAvatarTransitionFlags(u16 a);
bool8 IsPlayerFacingSurfableFishableWater(void);
void sub_805D2C0(u8 secondaryId);
u8 GetPlayerAvatarObjectId(void);
u8 PlayerGetZCoord(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void sub_805CB70(void);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
+13 -1
View File
@@ -1,10 +1,22 @@
#ifndef GUARD_FLDEFF_H
#define GUARD_FLDEFF_H
extern struct MapPosition gPlayerFacingPosition;
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void);
// rock smash
// flash
// cut
// dig
bool8 SetUpFieldMove_Dig(void);
bool8 FldEff_UseDig(void);
// rocksmash
bool8 SetUpFieldMove_RockSmash(void);
bool8 FldEff_UseRockSmash(void);
// berrytree
void nullsub_56(void);
-16
View File
@@ -1,16 +0,0 @@
#ifndef GUARD_FLDEFF_80F9BCC_H
#define GUARD_FLDEFF_80F9BCC_H
#include "global.h"
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
void FldEffPoison_Start(void);
#endif //GUARD_FLDEFF_80F9BCC_H
+7 -1
View File
@@ -726,8 +726,14 @@ struct SaveBlock1
/*0x3D38*/ struct TrainerTowerLog unkArray[4];
};
extern struct SaveBlock1* gSaveBlock1Ptr;
struct MapPosition
{
s16 x;
s16 y;
s8 height;
};
extern struct SaveBlock1* gSaveBlock1Ptr;
extern u8 gReservedSpritePaletteCount;
#endif // GUARD_GLOBAL_H
+2
View File
@@ -38,5 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId);
void ItemUseOutOfBattle_EnigmaBerry(u8 taskId);
void ItemUseInBattle_EnigmaBerry(u8 taskId);
void ItemUseOutOfBattle_Itemfinder(u8 taskId);
void sub_80A1C44(u8 taskId);
u8 CanUseEscapeRopeOnCurrMap(void);
#endif //GUARD_ITEM_USE_H
+1 -1
View File
@@ -114,7 +114,7 @@ void sub_805671C(void);
bool8 sub_8055FC4(void);
bool8 is_light_level_8_or_9(u8 mapType);
bool32 sub_8055C9C(void);
void sub_8054D70(void);
void Overworld_ResetStateAfterDigEscRope(void);
bool32 sub_8058244(void);
#endif //GUARD_ROM4_H
+2 -1
View File
@@ -181,7 +181,8 @@ SECTIONS {
src/heal_location.o(.text);
asm/region_map.o(.text);
src/battle_ai_script_commands.o(.text);
asm/rom6.o(.text);
src/fldeff_rocksmash.o(.text);
src/fldeff_dig.o(.text);
asm/fldeff_flash.o(.text);
asm/post_battle_event_funcs.o(.text);
src/prof_pc.o(.text);
+49
View File
@@ -0,0 +1,49 @@
#include "global.h"
#include "field_effect.h"
#include "field_player_avatar.h"
#include "fldeff.h"
#include "item_use.h"
#include "overworld.h"
#include "party_menu.h"
#include "sprite.h"
#include "constants/map_objects.h"
static void hm2_dig(void);
static void sub_80C9AFC(void);
bool8 SetUpFieldMove_Dig(void)
{
if (CanUseEscapeRopeOnCurrMap() == TRUE)
{
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = hm2_dig;
return TRUE;
}
return FALSE;
}
static void hm2_dig(void)
{
Overworld_ResetStateAfterDigEscRope();
FieldEffectStart(FLDEFF_USE_DIG);
gFieldEffectArguments[0] = GetCursorSelectionMonId();
}
bool8 FldEff_UseDig(void)
{
u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)sub_80C9AFC >> 16;
gTasks[taskId].data[9] = (u32)sub_80C9AFC;
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE;
}
static void sub_80C9AFC(void)
{
u8 taskId;
FieldEffectActiveListRemove(FLDEFF_USE_DIG);
taskId = CreateTask(sub_80A1C44, 8);
gTasks[taskId].data[0] = 0;
}
+138
View File
@@ -0,0 +1,138 @@
#include "global.h"
#include "global.fieldmap.h"
#include "field_player_avatar.h"
#include "field_effect.h"
#include "party_menu.h"
#include "malloc.h"
#include "event_data.h"
#include "script.h"
#include "fldeff.h"
#include "event_scripts.h"
#include "field_weather.h"
#include "sound.h"
#include "palette.h"
#include "overworld.h"
#include "wild_encounter.h"
#include "field_map_obj.h"
#include "constants/songs.h"
#include "constants/map_objects.h"
static void task08_080C9820(u8 taskId);
static void sub_80C98FC(u8 taskId);
static void sub_80C98B0(u8 taskId);
static void sub_80C99A0(u8 taskId);
static void sub_80C9A10(void);
static void sub_80C9A60(void);
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
{
u8 mapObjId;
GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
gPlayerFacingPosition.height = PlayerGetZCoord();
mapObjId = GetFieldObjectIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height);
if (gMapObjects[mapObjId].graphicsId != graphicsId)
return FALSE;
gSpecialVar_LastTalked = gMapObjects[mapObjId].localId;
return TRUE;
}
u8 oei_task_add(void)
{
GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
return CreateTask(task08_080C9820, 8);
}
static void task08_080C9820(u8 taskId)
{
u8 mapObjId;
ScriptContext2_Enable();
gPlayerAvatar.unk6 = TRUE;
mapObjId = gPlayerAvatar.mapObjectId;
if (!FieldObjectIsMovementOverridden(&gMapObjects[mapObjId])
|| FieldObjectClearHeldMovementIfFinished(&gMapObjects[mapObjId]))
{
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
{
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
gTasks[taskId].func = sub_80C98FC;
}
else
{
sub_805CB70();
FieldObjectSetHeldMovement(&gMapObjects[mapObjId], 0x45);
gTasks[taskId].func = sub_80C98B0;
}
}
}
static void sub_80C98B0(u8 taskId)
{
if (FieldObjectCheckHeldMovementStatus(&gMapObjects[gPlayerAvatar.mapObjectId]) == TRUE)
{
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
gTasks[taskId].func = sub_80C98FC;
}
}
static void sub_80C98FC(u8 taskId)
{
if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
{
gFieldEffectArguments[1] = GetPlayerFacingDirection();
if (gFieldEffectArguments[1] == 1)
gFieldEffectArguments[2] = 0;
if (gFieldEffectArguments[1] == 2)
gFieldEffectArguments[2] = 1;
if (gFieldEffectArguments[1] == 3)
gFieldEffectArguments[2] = 2;
if (gFieldEffectArguments[1] == 4)
gFieldEffectArguments[2] = 3;
EventObjectSetGraphicsId(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByCurrentState());
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]);
FieldEffectActiveListRemove(6);
gTasks[taskId].func = sub_80C99A0;
}
}
static void sub_80C99A0(u8 taskId)
{
((void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]))();
gPlayerAvatar.unk6 = FALSE;
DestroyTask(taskId);
}
bool8 SetUpFieldMove_RockSmash(void)
{
if (CheckObjectGraphicsInFrontOfPlayer(/*MAP_OBJ_GFX_BREAKABLE_ROCK*/0x60) == TRUE)
{
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = sub_80C9A10;
return TRUE;
}
return FALSE;
}
static void sub_80C9A10(void)
{
gFieldEffectArguments[0] = GetCursorSelectionMonId();
ScriptContext1_SetupScript(EventScript_FldEffRockSmash);
}
bool8 FldEff_UseRockSmash(void)
{
u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)sub_80C9A60 >> 16;
gTasks[taskId].data[9] = (u32)sub_80C9A60;
IncrementGameStat(GAME_STAT_USED_ROCK_SMASH);
return FALSE;
}
static void sub_80C9A60(void)
{
PlaySE(SE_W145);
FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH);
EnableBothScriptContexts();
}
+3 -1
View File
@@ -6,13 +6,15 @@
#include "script.h"
#include "fldeff.h"
#include "event_scripts.h"
#include "constants/songs.h"
#include "constants/map_objects.h"
static void FldEff_UseStrength(void);
static void sub_80D08A8(void);
bool8 SetUpFieldMove_Strength(void)
{
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(0x61) != TRUE)
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(/*MAP_OBJ_GFX_PUSHABLE_BOULDER*/0x61) != TRUE)
{
return FALSE;
}
+3 -4
View File
@@ -68,7 +68,6 @@ void sub_80A19E8(u8 taskId);
void sub_80A1A44(void);
void sub_80A1B48(u8 taskId);
void sub_80A1C08(u8 taskId);
void sub_80A1C44(u8 taskId);
void sub_80A1CAC(void);
void sub_80A1CC0(u8 taskId);
void sub_80A1D58(void);
@@ -557,7 +556,7 @@ void sub_80A1B48(u8 taskId)
}
}
bool8 sub_80A1B8C(void)
bool8 CanUseEscapeRopeOnCurrMap(void)
{
if (gMapHeader.escapeRope & 1)
return TRUE;
@@ -567,7 +566,7 @@ bool8 sub_80A1B8C(void)
void ItemUseOutOfBattle_EscapeRope(u8 taskId)
{
if (sub_80A1B8C() == TRUE)
if (CanUseEscapeRopeOnCurrMap() == TRUE)
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId);
sItemUseOnFieldCB = sub_80A1C08;
@@ -579,7 +578,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId)
void sub_80A1C08(u8 taskId)
{
sub_8054D70();
Overworld_ResetStateAfterDigEscRope();
sub_80A1A44();
gTasks[taskId].data[0] = 0;
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A1C44);
+3 -3
View File
@@ -89,7 +89,7 @@ void LockSelectedMapObject(void)
void sub_80696C0(void)
{
u8 fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]);
FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]);
sub_80974D8();
UnfreezeMapObjects();
}
@@ -98,9 +98,9 @@ void sub_80696F0(void)
{
u8 fieldObjectId;
if (gMapObjects[gSelectedEventObject].active)
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]);
FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]);
fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]);
FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]);
sub_80974D8();
UnfreezeMapObjects();
}
+3 -3
View File
@@ -1705,7 +1705,7 @@ void sub_811246C(struct Sprite *sprite)
{
if (gUnknown_203AF9A[0][0] != 0xFF)
{
sub_8063CA4(mapObject, gUnknown_203AF9A[0][0]);
FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[0][0]);
gUnknown_203AF9A[0][0] = 0xFF;
}
if (gUnknown_203AF9A[0][1] != 0xFF)
@@ -1719,7 +1719,7 @@ void sub_811246C(struct Sprite *sprite)
{
if (gUnknown_203AF9A[mapObject->localId][0] != 0xFF)
{
sub_8063CA4(mapObject, gUnknown_203AF9A[mapObject->localId][0]);
FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[mapObject->localId][0]);
gUnknown_203AF9A[mapObject->localId][0] = 0xFF;
}
sub_8063E28(mapObject, sprite);
@@ -1911,7 +1911,7 @@ void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0;
switch (player_get_direction_lower_nybble())
switch (GetPlayerFacingDirection())
{
case 0:
case 1:
+2 -2
View File
@@ -115,7 +115,7 @@ void sub_81505C4(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 2:
StartSpriteAnim(sprite, sub_8063500(player_get_direction_lower_nybble()));
StartSpriteAnim(sprite, sub_8063500(GetPlayerFacingDirection()));
gTasks[taskId].data[0]++;
break;
case 3:
@@ -173,7 +173,7 @@ void sub_8150794(u8 taskId)
void sub_81507BC(struct MapObject * a0, u8 a1)
{
sub_805F060(a0, a1);
EventObjectSetGraphicsId(a0, a1);
}
void sub_81507CC(void)
+5 -5
View File
@@ -807,7 +807,7 @@ bool8 ScrCmd_warpteleport2(struct ScriptContext *ctx)
u16 y = VarGet(ScriptReadHalfword(ctx));
Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_805DAE4(player_get_direction_lower_nybble());
sub_805DAE4(GetPlayerFacingDirection());
sub_807E500();
ResetInitialPlayerAvatarState();
return TRUE;
@@ -1154,7 +1154,7 @@ bool8 ScrCmd_faceplayer(struct ScriptContext *ctx)
if (gMapObjects[gSelectedEventObject].active)
{
FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject],
player_get_direction_lower_nybble());
GetPlayerFacingDirection());
}
return FALSE;
}
@@ -1241,7 +1241,7 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
HideFieldMessageBox();
playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]);
sub_80974D8();
UnfreezeMapObjects();
return FALSE;
@@ -1253,9 +1253,9 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
HideFieldMessageBox();
if (gMapObjects[gSelectedEventObject].active)
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]);
FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]);
playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]);
sub_80974D8();
UnfreezeMapObjects();
return FALSE;
+1 -1
View File
@@ -1043,7 +1043,7 @@ gUnknown_20399FC: @ 20399FC
gAIScriptPtr: @ 2039A00
.space 0x4
gUnknown_2039A04: @ 2039A04
gPlayerFacingPosition: @ 2039A04
.space 0x8
gUnknown_2039A0C: @ 2039A0C