through PlayerGetCopyableMovement

This commit is contained in:
PikalaxALT
2020-03-23 21:42:35 -04:00
parent f9a3607824
commit 5b3e9f376b
35 changed files with 342 additions and 629 deletions
+6 -6
View File
@@ -611,21 +611,21 @@ sub_80BD4F0: @ 80BD4F0
cmp r0, 0x1
bhi _080BD51A
adds r0, r4, 0
bl MetatileBehavior_ReturnFalse_15
bl MetatileBehavior_IsIsolatedVerticalRail
lsls r0, 24
cmp r0, 0
bne _080BD532
adds r0, r4, 0
bl MetatileBehavior_ReturnFalse_17
bl MetatileBehavior_IsVerticalRail
b _080BD52C
_080BD51A:
adds r0, r5, 0
bl MetatileBehavior_ReturnFalse_16
bl MetatileBehavior_IsIsolatedHorizontalRail
lsls r0, 24
cmp r0, 0
bne _080BD532
adds r0, r5, 0
bl MetatileBehavior_ReturnFalse_18
bl MetatileBehavior_IsHorizontalRail
_080BD52C:
lsls r0, 24
cmp r0, 0
@@ -697,7 +697,7 @@ player_should_look_direction_be_enforced_upon_movement: @ 80BD58C
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_ReturnFalse_14
bl MetatileBehavior_IsBumpySlope
lsls r0, 24
cmp r0, 0
beq _080BD5C0
@@ -875,7 +875,7 @@ Bike_HandleBumpySlopeJump: @ 80BD6C4
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl MetatileBehavior_ReturnFalse_14
bl MetatileBehavior_IsBumpySlope
lsls r0, 24
cmp r0, 0
beq _080BD70C
+8 -512
View File
@@ -5,510 +5,6 @@
.text
thumb_func_start CanStopSurfing
CanStopSurfing: @ 805BC60
push {r4-r6,lr}
lsls r0, 16
lsrs r3, r0, 16
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 24
lsrs r6, r2, 24
ldr r0, _0805BCB8 @ =gPlayerAvatar
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _0805BCC0
lsls r5, r3, 16
asrs r0, r5, 16
lsls r4, 16
asrs r1, r4, 16
bl MapGridGetZCoordAt
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _0805BCC0
lsrs r0, r5, 16
lsrs r1, r4, 16
movs r2, 0x3
bl GetObjectEventIdByXYZ
lsls r0, 24
lsrs r0, 24
cmp r0, 0x10
bne _0805BCC0
ldr r0, _0805BCBC @ =gUnknown_835B820
adds r0, r6, r0
ldrb r0, [r0]
movs r1, 0x10
bl sub_811278C
adds r0, r6, 0
bl sub_805D0F8
movs r0, 0x1
b _0805BCC2
.align 2, 0
_0805BCB8: .4byte gPlayerAvatar
_0805BCBC: .4byte gUnknown_835B820
_0805BCC0:
movs r0, 0
_0805BCC2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end CanStopSurfing
thumb_func_start ShouldJumpLedge
ShouldJumpLedge: @ 805BCC8
push {lr}
lsls r2, 24
lsrs r2, 24
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
bl GetLedgeJumpDirection
lsls r0, 24
cmp r0, 0
bne _0805BCE4
movs r0, 0
b _0805BCE6
_0805BCE4:
movs r0, 0x1
_0805BCE6:
pop {r1}
bx r1
thumb_func_end ShouldJumpLedge
thumb_func_start TryPushBoulder
TryPushBoulder: @ 805BCEC
push {r4-r7,lr}
sub sp, 0x4
mov r3, sp
strh r0, [r3]
mov r5, sp
adds r5, 0x2
strh r1, [r5]
lsls r2, 24
lsrs r7, r2, 24
ldr r0, _0805BD98 @ =0x00000805
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0805BDA0
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r5, r2]
bl GetObjectEventIdByXY
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x10
beq _0805BDA0
ldr r0, _0805BD9C @ =gObjectEvents
lsls r1, r6, 3
adds r1, r6
lsls r1, 2
adds r4, r1, r0
ldrb r0, [r4, 0x5]
cmp r0, 0x61
bne _0805BDA0
ldrh r1, [r4, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r4, 0x12]
strh r0, [r5]
adds r0, r7, 0
mov r1, sp
adds r2, r5, 0
bl MoveCoords
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
cmp r0, 0x66
beq _0805BD8A
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r5, r0]
adds r0, r4, 0
adds r3, r7, 0
bl GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _0805BDA0
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl MetatileBehavior_IsCaveDoor
lsls r0, 24
cmp r0, 0
bne _0805BDA0
_0805BD8A:
adds r0, r6, 0
adds r1, r7, 0
bl task_add_bump_boulder
movs r0, 0x1
b _0805BDA2
.align 2, 0
_0805BD98: .4byte 0x00000805
_0805BD9C: .4byte gObjectEvents
_0805BDA0:
movs r0, 0
_0805BDA2:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end TryPushBoulder
thumb_func_start CheckAcroBikeCollision
CheckAcroBikeCollision: @ 805BDAC
push {r4-r7,lr}
adds r6, r3, 0
lsls r2, 24
lsrs r5, r2, 24
movs r4, 0
ldr r7, _0805BDD4 @ =gUnknown_835B828
_0805BDB8:
lsls r0, r4, 2
adds r0, r7
ldr r1, [r0]
adds r0, r5, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
beq _0805BDDC
ldr r0, _0805BDD8 @ =gUnknown_835B83C
adds r0, r4, r0
ldrb r0, [r0]
strb r0, [r6]
b _0805BDE6
.align 2, 0
_0805BDD4: .4byte gUnknown_835B828
_0805BDD8: .4byte gUnknown_835B83C
_0805BDDC:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _0805BDB8
_0805BDE6:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end CheckAcroBikeCollision
thumb_func_start SetPlayerAvatarTransitionFlags
SetPlayerAvatarTransitionFlags: @ 805BDEC
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r2, _0805BE04 @ =gPlayerAvatar
ldrb r1, [r2, 0x1]
orrs r0, r1
strb r0, [r2, 0x1]
bl DoPlayerAvatarTransition
pop {r0}
bx r0
.align 2, 0
_0805BE04: .4byte gPlayerAvatar
thumb_func_end SetPlayerAvatarTransitionFlags
thumb_func_start DoPlayerAvatarTransition
DoPlayerAvatarTransition: @ 805BE08
push {r4,r5,lr}
ldr r0, _0805BE50 @ =gPlayerAvatar
ldrb r4, [r0, 0x1]
cmp r4, 0
beq _0805BE48
movs r5, 0
_0805BE14:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0805BE36
ldr r0, _0805BE54 @ =gUnknown_835B844
lsls r2, r5, 2
adds r2, r0
ldr r0, _0805BE50 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805BE58 @ =gObjectEvents
adds r0, r1
ldr r1, [r2]
bl _call_via_r1
_0805BE36:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
lsrs r4, 1
cmp r5, 0x7
bls _0805BE14
ldr r1, _0805BE50 @ =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x1]
_0805BE48:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805BE50: .4byte gPlayerAvatar
_0805BE54: .4byte gUnknown_835B844
_0805BE58: .4byte gObjectEvents
thumb_func_end DoPlayerAvatarTransition
thumb_func_start nullsub_22
nullsub_22: @ 805BE5C
bx lr
thumb_func_end nullsub_22
thumb_func_start sub_805BE60
sub_805BE60: @ 805BE60
push {lr}
movs r0, 0
bl sub_8150474
movs r0, 0
bl sub_8150498
pop {r0}
bx r0
thumb_func_end sub_805BE60
thumb_func_start sub_805BE74
sub_805BE74: @ 805BE74
push {lr}
movs r0, 0x1
bl sub_8150474
movs r0, 0x1
bl sub_8150498
movs r0, 0
movs r1, 0
bl sub_80BD620
pop {r0}
bx r0
thumb_func_end sub_805BE74
thumb_func_start sub_805BE90
sub_805BE90: @ 805BE90
push {lr}
movs r0, 0x3
bl sub_8150474
movs r0, 0x3
bl sub_8150498
pop {r0}
bx r0
thumb_func_end sub_805BE90
thumb_func_start nullsub_23
nullsub_23: @ 805BEA4
bx lr
thumb_func_end nullsub_23
thumb_func_start PlayerAvatarTransition_ReturnToField
PlayerAvatarTransition_ReturnToField: @ 805BEA8
ldr r2, _0805BEB4 @ =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0x20
orrs r0, r1
strb r0, [r2]
bx lr
.align 2, 0
_0805BEB4: .4byte gPlayerAvatar
thumb_func_end PlayerAvatarTransition_ReturnToField
thumb_func_start sub_805BEB8
sub_805BEB8: @ 805BEB8
push {r4,lr}
ldr r4, _0805BEE4 @ =gPlayerAvatar
movs r0, 0
strb r0, [r4, 0x3]
bl PlayerIsAnimActive
lsls r0, 24
cmp r0, 0
beq _0805BEF6
bl PlayerCheckIfAnimFinishedOrInactive
lsls r0, 24
cmp r0, 0
bne _0805BEE8
bl player_is_anim_in_certain_ranges
lsls r0, 24
cmp r0, 0
bne _0805BEF6
movs r0, 0x1
b _0805BEF4
.align 2, 0
_0805BEE4: .4byte gPlayerAvatar
_0805BEE8:
bl sub_805BF58
lsls r0, 24
cmp r0, 0
bne _0805BEF6
movs r0, 0x2
_0805BEF4:
strb r0, [r4, 0x3]
_0805BEF6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_805BEB8
thumb_func_start player_is_anim_in_certain_ranges
player_is_anim_in_certain_ranges: @ 805BEFC
push {lr}
ldr r2, _0805BF48 @ =gObjectEvents
ldr r0, _0805BF4C @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1C]
cmp r1, 0x7
bls _0805BF42
adds r0, r1, 0
subs r0, 0x18
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _0805BF42
adds r0, r1, 0
subs r0, 0x21
lsls r0, 24
lsrs r0, 24
cmp r0, 0xF
bls _0805BF42
adds r0, r1, 0
subs r0, 0x70
lsls r0, 24
lsrs r0, 24
cmp r0, 0xB
bls _0805BF42
adds r0, r1, 0
adds r0, 0x78
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bhi _0805BF50
_0805BF42:
movs r0, 0x1
b _0805BF52
.align 2, 0
_0805BF48: .4byte gObjectEvents
_0805BF4C: .4byte gPlayerAvatar
_0805BF50:
movs r0, 0
_0805BF52:
pop {r1}
bx r1
thumb_func_end player_is_anim_in_certain_ranges
thumb_func_start sub_805BF58
sub_805BF58: @ 805BF58
push {lr}
bl player_is_anim_in_certain_ranges
lsls r0, 24
cmp r0, 0
beq _0805BF74
ldr r0, _0805BF70 @ =gPlayerAvatar
ldrb r0, [r0, 0x2]
cmp r0, 0x1
beq _0805BF74
movs r0, 0x1
b _0805BF76
.align 2, 0
_0805BF70: .4byte gPlayerAvatar
_0805BF74:
movs r0, 0
_0805BF76:
pop {r1}
bx r1
thumb_func_end sub_805BF58
thumb_func_start PlayerIsAnimActive
PlayerIsAnimActive: @ 805BF7C
push {lr}
ldr r0, _0805BF98 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805BF9C @ =gObjectEvents
adds r0, r1
bl ObjectEventIsMovementOverridden
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0805BF98: .4byte gPlayerAvatar
_0805BF9C: .4byte gObjectEvents
thumb_func_end PlayerIsAnimActive
thumb_func_start PlayerCheckIfAnimFinishedOrInactive
PlayerCheckIfAnimFinishedOrInactive: @ 805BFA0
push {lr}
ldr r0, _0805BFBC @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805BFC0 @ =gObjectEvents
adds r0, r1
bl ObjectEventCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0805BFBC: .4byte gPlayerAvatar
_0805BFC0: .4byte gObjectEvents
thumb_func_end PlayerCheckIfAnimFinishedOrInactive
thumb_func_start player_set_x22
player_set_x22: @ 805BFC4
ldr r3, _0805BFD8 @ =gObjectEvents
ldr r1, _0805BFDC @ =gPlayerAvatar
ldrb r2, [r1, 0x5]
lsls r1, r2, 3
adds r1, r2
lsls r1, 2
adds r1, r3
adds r1, 0x22
strb r0, [r1]
bx lr
.align 2, 0
_0805BFD8: .4byte gObjectEvents
_0805BFDC: .4byte gPlayerAvatar
thumb_func_end player_set_x22
thumb_func_start PlayerGetCopyableMovement
PlayerGetCopyableMovement: @ 805BFE0
ldr r2, _0805BFF4 @ =gObjectEvents
ldr r0, _0805BFF8 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x22
ldrb r0, [r0]
bx lr
.align 2, 0
_0805BFF4: .4byte gObjectEvents
_0805BFF8: .4byte gPlayerAvatar
thumb_func_end PlayerGetCopyableMovement
thumb_func_start sub_805BFFC
sub_805BFFC: @ 805BFFC
push {lr}
@@ -542,7 +38,7 @@ PlayerSetAnimId: @ 805C024
cmp r0, 0
bne _0805C05E
adds r0, r4, 0
bl player_set_x22
bl PlayerSetCopyableMovement
ldr r0, _0805C064 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
@@ -2244,8 +1740,8 @@ _0805CCC2:
bx r0
thumb_func_end sub_805CC40
thumb_func_start task_add_bump_boulder
task_add_bump_boulder: @ 805CCD0
thumb_func_start StartStrengthAnim
StartStrengthAnim: @ 805CCD0
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -2273,7 +1769,7 @@ task_add_bump_boulder: @ 805CCD0
.align 2, 0
_0805CD04: .4byte taskFF_bump_boulder
_0805CD08: .4byte gTasks
thumb_func_end task_add_bump_boulder
thumb_func_end StartStrengthAnim
thumb_func_start taskFF_bump_boulder
taskFF_bump_boulder: @ 805CD0C
@@ -2771,8 +2267,8 @@ _0805D0F0: .4byte gPlayerAvatar
_0805D0F4: .4byte sub_805CF78
thumb_func_end sub_805D0A4
thumb_func_start sub_805D0F8
sub_805D0F8: @ 805D0F8
thumb_func_start CreateStopSurfingTask
CreateStopSurfingTask: @ 805D0F8
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2810,7 +2306,7 @@ sub_805D0F8: @ 805D0F8
_0805D148: .4byte gPlayerAvatar
_0805D14C: .4byte taskFF_0805D1D4
_0805D150: .4byte gTasks
thumb_func_end sub_805D0F8
thumb_func_end CreateStopSurfingTask
thumb_func_start sub_805D154
sub_805D154: @ 805D154
@@ -2865,7 +2361,7 @@ sub_805D1A8: @ 805D1A8
movs r1, 0x10
bl sub_811278C
movs r0, 0x2
bl sub_805D0F8
bl CreateStopSurfingTask
_0805D1C6:
pop {r0}
bx r0
+1 -1
View File
@@ -2073,7 +2073,7 @@ _08055B94:
cmp r0, 0x1
beq _08055BD0
adds r0, r5, 0
bl MetatileBehavior_IsCaveDoor
bl MetatileBehavior_IsNonAnimDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
-25
View File
@@ -3,31 +3,6 @@
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_835B820:: @ 835B820
.byte 0x04, 0x04, 0x05, 0x06, 0x07
.align 2
gUnknown_835B828:: @ 835B828
.4byte MetatileBehavior_ReturnFalse_14 // Related to Acro Bike
.4byte MetatileBehavior_ReturnFalse_15 // Related to Acro Bike
.4byte MetatileBehavior_ReturnFalse_16 // Related to Acro Bike
.4byte MetatileBehavior_ReturnFalse_17 // Related to Acro Bike
.4byte MetatileBehavior_ReturnFalse_18 // Related to Acro Bike
gUnknown_835B83C:: @ 835B83C
.byte 0x09, 0x0a, 0x0b, 0x0c, 0x0d
.align 2
gUnknown_835B844:: @ 835B844
.4byte sub_805BE60
.4byte sub_805BE74
.4byte sub_805BE74
.4byte sub_805BE90
.4byte nullsub_23
.4byte PlayerAvatarTransition_ReturnToField
.4byte nullsub_22
.4byte nullsub_22
gUnknown_835B864:: @ 835B864
.4byte MetatileBehavior_IsSouthArrowWarp
.4byte MetatileBehavior_IsNorthArrowWarp
+1 -1
View File
@@ -29,7 +29,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 11,
"y": 6,
"elevation": 3,
+5 -5
View File
@@ -120,7 +120,7 @@
"flag": "FLAG_TEMP_13"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 22,
"y": 45,
"elevation": 3,
@@ -133,7 +133,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 17,
"y": 46,
"elevation": 3,
@@ -146,7 +146,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 36,
"y": 14,
"elevation": 3,
@@ -185,7 +185,7 @@
"flag": "FLAG_TEMP_15"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 35,
"y": 14,
"elevation": 3,
@@ -198,7 +198,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 35,
"y": 17,
"elevation": 3,
+3 -3
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 9,
"y": 3,
"elevation": 3,
@@ -29,7 +29,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 12,
"y": 5,
"elevation": 3,
@@ -42,7 +42,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 12,
"y": 2,
"elevation": 3,
+4 -4
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 10,
"y": 4,
"elevation": 3,
@@ -29,7 +29,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 26,
"y": 12,
"elevation": 3,
@@ -42,7 +42,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 28,
"y": 8,
"elevation": 3,
@@ -133,7 +133,7 @@
"flag": "FLAG_TEMP_17"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 15,
"y": 13,
"elevation": 3,
+4 -4
View File
@@ -29,7 +29,7 @@
"flag": "FLAG_HIDE_MOLTRES"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 10,
"y": 12,
"elevation": 3,
@@ -42,7 +42,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 9,
"y": 12,
"elevation": 3,
@@ -55,7 +55,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 11,
"elevation": 3,
@@ -68,7 +68,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 10,
"elevation": 3,
+2 -2
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 22,
"y": 12,
"elevation": 3,
@@ -29,7 +29,7 @@
"flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_1"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 32,
"y": 9,
"elevation": 3,
+2 -2
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 22,
"y": 8,
"elevation": 3,
@@ -29,7 +29,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 30,
"y": 8,
"elevation": 3,
+2 -2
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 22,
"y": 8,
"elevation": 3,
@@ -29,7 +29,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 30,
"y": 8,
"elevation": 3,
+6 -6
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 23,
"y": 8,
"elevation": 1,
@@ -29,7 +29,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_1"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 24,
"y": 8,
"elevation": 1,
@@ -42,7 +42,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_2"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 12,
"y": 16,
"elevation": 3,
@@ -55,7 +55,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_5"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 13,
"y": 16,
"elevation": 3,
@@ -68,7 +68,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_6"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 9,
"y": 16,
"elevation": 3,
@@ -81,7 +81,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_4"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 17,
"elevation": 3,
+2 -2
View File
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 18,
"elevation": 1,
@@ -29,7 +29,7 @@
"flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_1"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 9,
"y": 18,
"elevation": 1,
+2 -2
View File
@@ -144,7 +144,7 @@
"flag": "FLAG_TEMP_12"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 13,
"y": 47,
"elevation": 3,
@@ -209,7 +209,7 @@
"flag": "FLAG_TEMP_17"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 17,
"y": 47,
"elevation": 3,
@@ -16,7 +16,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 7,
"y": 6,
"elevation": 3,
@@ -29,7 +29,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 6,
"elevation": 3,
@@ -42,7 +42,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 9,
"elevation": 3,
@@ -55,7 +55,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 10,
"elevation": 3,
@@ -68,7 +68,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 10,
"elevation": 3,
@@ -81,7 +81,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 9,
"elevation": 3,
@@ -94,7 +94,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 6,
"elevation": 3,
+8 -8
View File
@@ -100,7 +100,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 17,
"y": 10,
"elevation": 5,
@@ -113,7 +113,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 17,
"y": 12,
"elevation": 5,
@@ -126,7 +126,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 18,
"y": 11,
"elevation": 5,
@@ -139,7 +139,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 33,
"elevation": 3,
@@ -152,7 +152,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 34,
"elevation": 3,
@@ -165,7 +165,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 41,
"y": 32,
"elevation": 3,
@@ -178,7 +178,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 41,
"y": 33,
"elevation": 3,
@@ -191,7 +191,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 42,
"y": 33,
"elevation": 3,
+3 -3
View File
@@ -68,7 +68,7 @@
"flag": "FLAG_HIDE_VICTORY_ROAD_1F_TM02"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 7,
"y": 18,
"elevation": 3,
@@ -81,7 +81,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 4,
"y": 12,
"elevation": 3,
@@ -94,7 +94,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 16,
"y": 3,
"elevation": 3,
+3 -3
View File
@@ -133,7 +133,7 @@
"flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM37"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 8,
"y": 7,
"elevation": 3,
@@ -146,7 +146,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 6,
"y": 17,
"elevation": 3,
@@ -159,7 +159,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 33,
"y": 19,
"elevation": 3,
+4 -4
View File
@@ -94,7 +94,7 @@
"flag": "FLAG_HIDE_VICTORY_ROAD_3F_TM50"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 19,
"y": 15,
"elevation": 3,
@@ -107,7 +107,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 33,
"y": 18,
"elevation": 0,
@@ -120,7 +120,7 @@
"flag": "FLAG_HIDE_VICTORY_ROAD_3F_BOULDER"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 35,
"y": 13,
"elevation": 3,
@@ -133,7 +133,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_STRENGTH_BOULDER",
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
"x": 32,
"y": 5,
"elevation": 3,
+2 -2
View File
@@ -125,7 +125,7 @@ EventScript_StrengthBoulder:: @ 81BE11D
goto_if_questlog EventScript_ReleaseEnd
lockall
goto_if_unset FLAG_BADGE04_GET, EventScript_CantMoveBoulder
goto_if_set FLAG_SYS_STRENGTH_ACTIVE, EventScript_AlreadyUsedStrength
goto_if_set FLAG_SYS_USE_STRENGTH, EventScript_AlreadyUsedStrength
checkpartymove MOVE_STRENGTH
compare VAR_RESULT, PARTY_SIZE
goto_if_eq EventScript_CantMoveBoulder
@@ -147,7 +147,7 @@ EventScript_FldEffStrength:: @ 81BE16E
end
EventScript_UseStrength:: @ 81BE179
setflag FLAG_SYS_STRENGTH_ACTIVE
setflag FLAG_SYS_USE_STRENGTH
msgbox Text_MonUsedStrengthCanMoveBoulders, MSGBOX_SIGN
end
+1 -1
View File
@@ -98,7 +98,7 @@
#define OBJ_EVENT_GFX_POKEDEX 94
#define OBJ_EVENT_GFX_CUT_TREE 95
#define OBJ_EVENT_GFX_ROCK_SMASH_ROCK 96
#define OBJ_EVENT_GFX_STRENGTH_BOULDER 97
#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 97
#define OBJ_EVENT_GFX_FOSSIL 98
#define OBJ_EVENT_GFX_RUBY 99
#define OBJ_EVENT_GFX_SAPPHIRE 100
+1 -1
View File
@@ -1321,7 +1321,7 @@
#define FLAG_SYS_VS_SEEKER_CHARGING (SYS_FLAGS + 0x1)
#define FLAG_SYS_WHITE_FLUTE_ACTIVE (SYS_FLAGS + 0x3)
#define FLAG_SYS_BLACK_FLUTE_ACTIVE (SYS_FLAGS + 0x4)
#define FLAG_SYS_STRENGTH_ACTIVE (SYS_FLAGS + 0x5)
#define FLAG_SYS_USE_STRENGTH (SYS_FLAGS + 0x5)
#define FLAG_SYS_FLASH_ACTIVE (SYS_FLAGS + 0x6)
#define FLAG_SYS_SPECIAL_WILD_BATTLE (SYS_FLAGS + 0x7)
#define FLAG_0x808 (SYS_FLAGS + 0x8)
+1
View File
@@ -199,5 +199,6 @@ extern const struct OamData gObjectEventBaseOam_32x32;
extern const u16 gUnknown_8398648[];
extern const u16 gUnknown_8398688[];
extern const u8 gReflectionEffectPaletteMap[];
u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z);
#endif // GUARD_EVENT_OBJECT_MOVEMENT_H
+5
View File
@@ -309,6 +309,11 @@ enum
COLLISION_LEDGE_JUMP,
COLLISION_PUSHED_BOULDER,
COLLISION_UNKNOWN_WARP_6C_6D_6E_6F,
COLLISION_WHEELIE_HOP,
COLLISION_ISOLATED_VERTICAL_RAIL,
COLLISION_ISOLATED_HORIZONTAL_RAIL,
COLLISION_VERTICAL_RAIL,
COLLISION_HORIZONTAL_RAIL,
};
// player running states
+6 -6
View File
@@ -23,7 +23,7 @@ bool8 MetatileBehavior_IsUnknownWarp6E(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnknownWarp6F(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnknownWarp6C_to_6F(u8 metatileBehavior);
bool8 MetatileBehavior_IsLadder(u8 metatileBehavior);
bool8 MetatileBehavior_IsCaveDoor(u8 metatileBehavior);
bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_2(u8 metatileBehavior);
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior);
bool8 MetatileBehavior_IsSemiDeepWater(u8 metatileBehavior);
@@ -98,11 +98,11 @@ bool8 MetatileBehavior_IsFallWarp(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_13(u8 metatileBehavior);
bool8 MetatileBehavior_IsCyclingRoadPullDownTile(u8 metatileBehavior);
bool8 MetatileBehavior_IsCyclingRoadPullDownTileGrass(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_14(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_15(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_16(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_17(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_18(u8 metatileBehavior);
bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior);
bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsVerticalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsHorizontalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior);
bool8 MetatileBehavior_IsMB0A(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_9(u8 metatileBehavior);
+2
View File
@@ -4,5 +4,7 @@
#include "global.h"
void sub_8150454(void);
bool8 sub_8150474(u8 a0);
void sub_8150498(u8 a0);
#endif //GUARD_QUEST_LOG_PLAYER_H
+1 -1
View File
@@ -56,7 +56,7 @@ static const u8 sTextColorTable[] =
[OBJ_EVENT_GFX_TEACHY_TV_HOST / 2] = 0x00, // OBJ_EVENT_GFX_GYM_GUY
[OBJ_EVENT_GFX_ITEM_BALL / 2] = 0x33, // OBJ_EVENT_GFX_TOWN_MAP
[OBJ_EVENT_GFX_POKEDEX / 2] = 0x33, // OBJ_EVENT_GFX_CUT_TREE
[OBJ_EVENT_GFX_ROCK_SMASH_ROCK / 2] = 0x33, // OBJ_EVENT_GFX_STRENGTH_BOULDER
[OBJ_EVENT_GFX_ROCK_SMASH_ROCK / 2] = 0x33, // OBJ_EVENT_GFX_PUSHABLE_BOULDER
[OBJ_EVENT_GFX_FOSSIL / 2] = 0x33, // OBJ_EVENT_GFX_RUBY
[OBJ_EVENT_GFX_SAPPHIRE / 2] = 0x33, // OBJ_EVENT_GFX_OLD_AMBER
[OBJ_EVENT_GFX_GYM_SIGN / 2] = 0x33, // OBJ_EVENT_GFX_SIGN
+1 -1
View File
@@ -44,7 +44,7 @@ void sub_806E110(void)
memset(gSaveBlock1Ptr->vars, 0, 16 * 2);
FlagClear(FLAG_SYS_WHITE_FLUTE_ACTIVE);
FlagClear(FLAG_SYS_BLACK_FLUTE_ACTIVE);
FlagClear(FLAG_SYS_STRENGTH_ACTIVE);
FlagClear(FLAG_SYS_USE_STRENGTH);
FlagClear(FLAG_SYS_SPECIAL_WILD_BATTLE);
FlagClear(FLAG_SYS_INFORMED_OF_LOCAL_WIRELESS_PLAYER);
}
+1 -1
View File
@@ -906,7 +906,7 @@ static bool8 IsWarpMetatileBehavior(u16 metatileBehavior)
return TRUE;
if (MetatileBehavior_IsEscalator(metatileBehavior) == TRUE)
return TRUE;
if (MetatileBehavior_IsCaveDoor(metatileBehavior) == TRUE)
if (MetatileBehavior_IsNonAnimDoor(metatileBehavior) == TRUE)
return TRUE;
if (MetatileBehavior_IsLavaridgeB1FWarp(metatileBehavior) == TRUE)
return TRUE;
+1 -1
View File
@@ -260,7 +260,7 @@ static void sub_807DE78(bool8 a0)
else
{
sub_807DF4C(a0);
if (MetatileBehavior_IsCaveDoor(behavior) == TRUE)
if (MetatileBehavior_IsNonAnimDoor(behavior) == TRUE)
func = task_map_chg_seq_0807E20C;
else if (MetatileBehavior_IsUnknownWarp6C_to_6F(behavior) == TRUE)
{
+236 -2
View File
@@ -8,9 +8,13 @@
#include "field_player_avatar.h"
#include "metatile_behavior.h"
#include "overworld.h"
#include "quest_log.h"
#include "quest_log_player.h"
#include "constants/event_object_movement.h"
#include "constants/event_objects.h"
#include "constants/songs.h"
#include "constants/flags.h"
#include "constants/metatile_behaviors.h"
EWRAM_DATA struct ObjectEvent * gUnknown_2036E30 = NULL;
EWRAM_DATA bool8 gUnknown_2036E34 = FALSE;
@@ -21,7 +25,6 @@ u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite * sprit
bool8 sub_805B528(void);
bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent * playerObjEvent, u8 direction);
void npc_clear_strange_bits(struct ObjectEvent * playerObjEvent);
void DoPlayerAvatarTransition(void);
bool8 TryDoMetatileBehaviorForcedMovement(void);
void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys);
void PlayerAllowForcedMovementIfMovingSameDirection(void);
@@ -56,7 +59,20 @@ u8 CheckForObjectEventCollision(struct ObjectEvent * objectEvent, s16 x, s16 y,
bool8 CanStopSurfing(s16 x, s16 y, u8 direction);
bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction);
bool8 TryPushBoulder(s16 x, s16 y, u8 direction);
bool8 CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collision);
void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collision);
void DoPlayerAvatarTransition(void);
void PlayerAvatarTransition_Dummy(struct ObjectEvent * playerObject);
void PlayerAvatarTransition_Normal(struct ObjectEvent * playerObject);
void PlayerAvatarTransition_Bike(struct ObjectEvent * playerObject);
void PlayerAvatarTransition_Surfing(struct ObjectEvent * playerObject);
void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObject);
void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObject);
bool8 PlayerIsAnimActive(void);
bool8 PlayerCheckIfAnimFinishedOrInactive(void);
bool8 player_is_anim_in_certain_ranges(void);
bool8 sub_805BF58(void);
void CreateStopSurfingTask(u8 direction);
void StartStrengthAnim(u8 objectEventId, u8 direction);
void PlayerNotOnBikeCollide(u8 direction);
void PlayerRun(u8 direction);
void PlayerRunSlow(u8 direction);
@@ -531,3 +547,221 @@ u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u
}
return collision;
}
const u8 gUnknown_835B820[] = {
MOVEMENT_ACTION_FACE_DOWN_FAST,
MOVEMENT_ACTION_FACE_DOWN_FAST,
MOVEMENT_ACTION_FACE_UP_FAST,
MOVEMENT_ACTION_FACE_LEFT_FAST,
MOVEMENT_ACTION_FACE_RIGHT_FAST
};
bool8 CanStopSurfing(s16 x, s16 y, u8 direction)
{
if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
&& MapGridGetZCoordAt(x, y) == 3
&& GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT)
{
sub_811278C(gUnknown_835B820[direction], 16);
CreateStopSurfingTask(direction);
return TRUE;
}
else
{
return FALSE;
}
}
bool8 ShouldJumpLedge(s16 x, s16 y, u8 z)
{
if (GetLedgeJumpDirection(x, y, z) != 0)
return TRUE;
else
return FALSE;
}
bool8 TryPushBoulder(s16 x, s16 y, u8 direction)
{
u8 objectEventId;
if (!FlagGet(FLAG_SYS_USE_STRENGTH))
return FALSE;
objectEventId = GetObjectEventIdByXY(x, y);
if (objectEventId == OBJECT_EVENTS_COUNT)
return FALSE;
if (gObjectEvents[objectEventId].graphicsId != OBJ_EVENT_GFX_PUSHABLE_BOULDER)
return FALSE;
x = gObjectEvents[objectEventId].currentCoords.x;
y = gObjectEvents[objectEventId].currentCoords.y;
MoveCoords(direction, &x, &y);
if (MapGridGetMetatileBehaviorAt(x, y) == MB_FALL_WARP || (GetCollisionAtCoords(&gObjectEvents[objectEventId], x, y, direction) == COLLISION_NONE && !MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(x, y))))
{
StartStrengthAnim(objectEventId, direction);
return TRUE;
}
else
{
direction++;
direction--;
return FALSE;
}
}
bool8 (*const gUnknown_835B828[])(u8) = {
MetatileBehavior_IsBumpySlope,
MetatileBehavior_IsIsolatedVerticalRail,
MetatileBehavior_IsIsolatedHorizontalRail,
MetatileBehavior_IsVerticalRail,
MetatileBehavior_IsHorizontalRail
};
const u8 gUnknown_835B83C[] = {
COLLISION_WHEELIE_HOP,
COLLISION_ISOLATED_VERTICAL_RAIL,
COLLISION_ISOLATED_HORIZONTAL_RAIL,
COLLISION_VERTICAL_RAIL,
COLLISION_HORIZONTAL_RAIL,
};
void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collision)
{
u8 i;
for (i = 0; i < NELEMS(gUnknown_835B828); i++)
{
if (gUnknown_835B828[i](metatileBehavior))
{
*collision = gUnknown_835B83C[i];
return;
}
}
}
void SetPlayerAvatarTransitionFlags(bool16 flags)
{
gPlayerAvatar.unk1 |= flags;
DoPlayerAvatarTransition();
}
void (*const gUnknown_835B844[])(struct ObjectEvent *) = {
PlayerAvatarTransition_Normal,
PlayerAvatarTransition_Bike,
PlayerAvatarTransition_Bike,
PlayerAvatarTransition_Surfing,
PlayerAvatarTransition_Underwater,
PlayerAvatarTransition_ReturnToField,
PlayerAvatarTransition_Dummy,
PlayerAvatarTransition_Dummy
};
void DoPlayerAvatarTransition(void)
{
u8 i;
u8 flags = gPlayerAvatar.unk1;
if (flags != 0)
{
for (i = 0; i < NELEMS(gUnknown_835B844); i++, flags >>= 1)
{
if (flags & 1)
gUnknown_835B844[i](&gObjectEvents[gPlayerAvatar.objectEventId]);
}
gPlayerAvatar.unk1 = 0;
}
}
void PlayerAvatarTransition_Dummy(struct ObjectEvent * playerObjEvent)
{
}
void PlayerAvatarTransition_Normal(struct ObjectEvent * playerObjEvent)
{
sub_8150474(0);
sub_8150498(0);
}
void PlayerAvatarTransition_Bike(struct ObjectEvent * playerObjEvent)
{
sub_8150474(1);
sub_8150498(1);
sub_80BD620(0, 0);
}
void PlayerAvatarTransition_Surfing(struct ObjectEvent * playerObjEvent)
{
sub_8150474(3);
sub_8150498(3);
}
void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObjEvent)
{
}
void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObjEvent)
{
gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_FORCED_MVMT_DISABLED;
}
void sub_805BEB8(void)
{
gPlayerAvatar.tileTransitionState = T_NOT_MOVING;
if (PlayerIsAnimActive())
{
if (!PlayerCheckIfAnimFinishedOrInactive())
{
if (!player_is_anim_in_certain_ranges())
gPlayerAvatar.tileTransitionState = T_TILE_TRANSITION;
}
else
{
if (!sub_805BF58())
gPlayerAvatar.tileTransitionState = T_TILE_CENTER;
}
}
}
bool8 player_is_anim_in_certain_ranges(void)
{
u8 movementActionId = gObjectEvents[gPlayerAvatar.objectEventId].movementActionId;
if (movementActionId <= MOVEMENT_ACTION_FACE_RIGHT_FAST
|| (movementActionId >= MOVEMENT_ACTION_DELAY_1 && movementActionId <= MOVEMENT_ACTION_DELAY_16)
|| (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT)
|| (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT)
|| (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT))
return TRUE;
else
return FALSE;
}
bool8 sub_805BF58(void)
{
if (player_is_anim_in_certain_ranges() && gPlayerAvatar.runningState != TURN_DIRECTION)
return TRUE;
else
return FALSE;
}
bool8 PlayerIsAnimActive(void)
{
return ObjectEventIsMovementOverridden(&gObjectEvents[gPlayerAvatar.objectEventId]);
}
bool8 PlayerCheckIfAnimFinishedOrInactive(void)
{
return ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]);
}
void PlayerSetCopyableMovement(u8 a)
{
gObjectEvents[gPlayerAvatar.objectEventId].playerCopyableMovement = a;
}
u8 PlayerGetCopyableMovement(void)
{
return gObjectEvents[gPlayerAvatar.objectEventId].playerCopyableMovement;
}
+1 -1
View File
@@ -13,7 +13,7 @@ static void ShowMonCB_UseStrength(void);
bool8 SetUpFieldMove_Strength(void)
{
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_STRENGTH_BOULDER) != TRUE)
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_PUSHABLE_BOULDER) != TRUE)
{
return FALSE;
}
+4 -4
View File
@@ -263,10 +263,10 @@ void FieldUseFunc_MachBike(u8 taskId)
behavior = MapGridGetMetatileBehaviorAt(x, y);
if (FlagGet(FLAG_SYS_ON_CYCLING_ROAD) == TRUE
|| MetatileBehavior_ReturnFalse_17(behavior) == TRUE
|| MetatileBehavior_ReturnFalse_18(behavior) == TRUE
|| MetatileBehavior_ReturnFalse_15(behavior) == TRUE
|| MetatileBehavior_ReturnFalse_16(behavior) == TRUE)
|| MetatileBehavior_IsVerticalRail(behavior) == TRUE
|| MetatileBehavior_IsHorizontalRail(behavior) == TRUE
|| MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE
|| MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE)
sub_80A10C4(taskId, gTasks[taskId].data[3], 2, gUnknown_8416451);
else if (sub_8055C9C() == TRUE && !sub_80BD540())
{
+6 -6
View File
@@ -191,7 +191,7 @@ bool8 MetatileBehavior_IsLadder(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_IsCaveDoor(u8 metatileBehavior)
bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior)
{
if(metatileBehavior == MB_CAVE_DOOR)
return TRUE;
@@ -677,11 +677,11 @@ bool8 MetatileBehavior_IsCyclingRoadPullDownTileGrass(u8 metatileBehavior)
return metatileBehavior == MB_CYCLING_ROAD_PULL_DOWN_GRASS;
}
bool8 MetatileBehavior_ReturnFalse_14(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_15(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_16(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_17(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_18(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsVerticalRail(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsHorizontalRail(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior)
{