diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-29 08:36:18 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-29 10:03:06 +0800 |
commit | b566ae26decaa937c72f608044d8ea604c643260 (patch) | |
tree | d6f141d51737b3bacd37a25bc69f43a2236a756c | |
parent | 38febc8bafcab19965608e434135c054893dfb68 (diff) |
finished fldeff_dig + fldeff_rocksmash
35 files changed, 422 insertions, 682 deletions
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 67e7e7d5a..c6476053a 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -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 diff --git a/asm/field_effect.s b/asm/field_effect.s index f833b963a..3655d2830 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -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 diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index a53329fab..6939ccac0 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -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 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 1275f7471..92ef6a6e4 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -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} diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 5fb0f3dad..c753fb948 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -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 diff --git a/asm/field_specials.s b/asm/field_specials.s index 4331fbd74..fe4ac2b2d 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -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 diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index 8c76f9261..3452841c4 100644 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -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 diff --git a/asm/itemfinder.s b/asm/itemfinder.s index e510252ab..8a2dec9de 100644 --- a/asm/itemfinder.s +++ b/asm/itemfinder.s @@ -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 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index 31d1e465b..111161c06 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -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 diff --git a/asm/overworld.s b/asm/overworld.s index 57ab4988c..aacb22510 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -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 diff --git a/asm/rom6.s b/asm/rom6.s deleted file mode 100644 index 146d1d020..000000000 --- a/asm/rom6.s +++ /dev/null @@ -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. diff --git a/asm/script_movement.s b/asm/script_movement.s index 826d6d6bd..a2d48d44a 100644 --- a/asm/script_movement.s +++ b/asm/script_movement.s @@ -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 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index a07c918f8..c52229215 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -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] diff --git a/berry_fix/payload/include/global.fieldmap.h b/berry_fix/payload/include/global.fieldmap.h index 81f805ee2..f876e5a56 100644 --- a/berry_fix/payload/include/global.fieldmap.h +++ b/berry_fix/payload/include/global.fieldmap.h @@ -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; diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc index bf8ed9a68..f3205689d 100644 --- a/data/map_event_scripts.inc +++ b/data/map_event_scripts.inc @@ -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 diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc index bac115e76..490afe501 100644 --- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc +++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc @@ -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 diff --git a/data/specials.inc b/data/specials.inc index e5edb47dd..e6cec1766 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -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 diff --git a/include/event_scripts.h b/include/event_scripts.h index b12539476..917269de4 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -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 diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 27a7f23d7..83cc263e5 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -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 diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 0e8877dca..b87de3fef 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -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 diff --git a/include/fldeff.h b/include/fldeff.h index 3f2591516..3d4d96e44 100644 --- a/include/fldeff.h +++ b/include/fldeff.h @@ -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); diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h deleted file mode 100644 index 411a2501f..000000000 --- a/include/fldeff_80F9BCC.h +++ /dev/null @@ -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 diff --git a/include/global.h b/include/global.h index 12381c6f4..e1f63213a 100644 --- a/include/global.h +++ b/include/global.h @@ -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 diff --git a/include/item_use.h b/include/item_use.h index 0a45762f7..db98533f1 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -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 diff --git a/include/overworld.h b/include/overworld.h index c867549f1..bab4797ff 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -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 diff --git a/ld_script.txt b/ld_script.txt index f0b84f128..22672e178 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -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); diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c new file mode 100644 index 000000000..b38cac7e0 --- /dev/null +++ b/src/fldeff_dig.c @@ -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; +} diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c new file mode 100644 index 000000000..7d9203a51 --- /dev/null +++ b/src/fldeff_rocksmash.c @@ -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(); +} diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index 95ba95061..c99d62c29 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -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; } diff --git a/src/item_use.c b/src/item_use.c index a7146b65e..3653a1699 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -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); diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c index cdd74a5b9..f89819647 100644 --- a/src/map_obj_lock.c +++ b/src/map_obj_lock.c @@ -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(); } diff --git a/src/quest_log.c b/src/quest_log.c index 3fd9d53de..fe83f67e9 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -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: diff --git a/src/quest_log_8150454.c b/src/quest_log_8150454.c index 8af516e3a..3d61dee72 100644 --- a/src/quest_log_8150454.c +++ b/src/quest_log_8150454.c @@ -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) diff --git a/src/scrcmd.c b/src/scrcmd.c index 12b2892bb..d317a78b5 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -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; diff --git a/sym_ewram.txt b/sym_ewram.txt index be0b04728..2c791be78 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1043,7 +1043,7 @@ gUnknown_20399FC: @ 20399FC gAIScriptPtr: @ 2039A00 .space 0x4 -gUnknown_2039A04: @ 2039A04 +gPlayerFacingPosition: @ 2039A04 .space 0x8 gUnknown_2039A0C: @ 2039A0C |