Decompile/port event_object_movement

This commit is contained in:
ultima-soul
2020-03-12 12:46:40 -07:00
parent 65690ca7dc
commit 339c2914af
46 changed files with 8790 additions and 23331 deletions
+3 -3
View File
@@ -79,7 +79,7 @@ sub_80BD100: @ 80BD100
lsls r4, 2
ldr r0, _080BD160 @ =gObjectEvents
adds r4, r0
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0
@@ -195,7 +195,7 @@ sub_80BD1E8: @ 80BD1E8
lsls r2, 16
lsrs r2, 16
mov r8, r2
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
lsls r0, 24
lsrs r5, r0, 24
adds r7, r5, 0
@@ -881,7 +881,7 @@ Bike_HandleBumpySlopeJump: @ 80BD6C4
beq _080BD70C
movs r0, 0x2
strb r0, [r5, 0x8]
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
lsls r0, 24
lsrs r0, 24
bl nullsub_24
+30 -30
View File
@@ -241,7 +241,7 @@ _08068A88: .4byte gObjectEvents
thumb_func_start little_step
little_step: @ 8068A8C
lsls r1, 24
ldr r2, _08068AA8 @ =gUnknown_83A64C8
ldr r2, _08068AA8 @ =sDirectionToVectors
lsrs r1, 22
adds r1, r2
ldrh r2, [r1]
@@ -254,13 +254,13 @@ little_step: @ 8068A8C
strh r1, [r0, 0x22]
bx lr
.align 2, 0
_08068AA8: .4byte gUnknown_83A64C8
_08068AA8: .4byte sDirectionToVectors
thumb_func_end little_step
thumb_func_start double_little_steps
double_little_steps: @ 8068AAC
lsls r1, 24
ldr r2, _08068ACC @ =gUnknown_83A64C8
ldr r2, _08068ACC @ =sDirectionToVectors
lsrs r1, 22
adds r1, r2
ldrh r2, [r1]
@@ -275,13 +275,13 @@ double_little_steps: @ 8068AAC
strh r1, [r0, 0x22]
bx lr
.align 2, 0
_08068ACC: .4byte gUnknown_83A64C8
_08068ACC: .4byte sDirectionToVectors
thumb_func_end double_little_steps
thumb_func_start triple_little_steps
triple_little_steps: @ 8068AD0
lsls r1, 24
ldr r2, _08068AF4 @ =gUnknown_83A64C8
ldr r2, _08068AF4 @ =sDirectionToVectors
lsrs r1, 22
adds r1, r2
ldrh r2, [r1]
@@ -298,13 +298,13 @@ triple_little_steps: @ 8068AD0
strh r1, [r0, 0x22]
bx lr
.align 2, 0
_08068AF4: .4byte gUnknown_83A64C8
_08068AF4: .4byte sDirectionToVectors
thumb_func_end triple_little_steps
thumb_func_start quad_little_steps
quad_little_steps: @ 8068AF8
lsls r1, 24
ldr r2, _08068B18 @ =gUnknown_83A64C8
ldr r2, _08068B18 @ =sDirectionToVectors
lsrs r1, 22
adds r1, r2
ldrh r2, [r1]
@@ -319,13 +319,13 @@ quad_little_steps: @ 8068AF8
strh r1, [r0, 0x22]
bx lr
.align 2, 0
_08068B18: .4byte gUnknown_83A64C8
_08068B18: .4byte sDirectionToVectors
thumb_func_end quad_little_steps
thumb_func_start oct_little_steps
oct_little_steps: @ 8068B1C
lsls r1, 24
ldr r2, _08068B3C @ =gUnknown_83A64C8
ldr r2, _08068B3C @ =sDirectionToVectors
lsrs r1, 22
adds r1, r2
ldrh r2, [r1]
@@ -340,7 +340,7 @@ oct_little_steps: @ 8068B1C
strh r1, [r0, 0x22]
bx lr
.align 2, 0
_08068B3C: .4byte gUnknown_83A64C8
_08068B3C: .4byte sDirectionToVectors
thumb_func_end oct_little_steps
thumb_func_start oamt_npc_ministep_reset
@@ -788,14 +788,14 @@ _08068E50: .4byte gUnknown_83A7202
_08068E54: .4byte gUnknown_83A7208
thumb_func_end sub_8068DC4
thumb_func_start SetObjectEventStepTimer
SetObjectEventStepTimer: @ 8068E58
thumb_func_start SetMovementDelay
SetMovementDelay: @ 8068E58
strh r1, [r0, 0x34]
bx lr
thumb_func_end SetObjectEventStepTimer
thumb_func_end SetMovementDelay
thumb_func_start RunObjectEventStepTimer
RunObjectEventStepTimer: @ 8068E5C
thumb_func_start WaitForMovementDelay
WaitForMovementDelay: @ 8068E5C
push {lr}
ldrh r1, [r0, 0x34]
subs r1, 0x1
@@ -810,10 +810,10 @@ _08068E6E:
_08068E70:
pop {r1}
bx r1
thumb_func_end RunObjectEventStepTimer
thumb_func_end WaitForMovementDelay
thumb_func_start obj_anim_image_set_and_seek
obj_anim_image_set_and_seek: @ 8068E74
thumb_func_start SetAndStartSpriteAnim
SetAndStartSpriteAnim: @ 8068E74
push {r4,lr}
lsls r2, 24
lsrs r2, 24
@@ -832,10 +832,10 @@ obj_anim_image_set_and_seek: @ 8068E74
pop {r4}
pop {r0}
bx r0
thumb_func_end obj_anim_image_set_and_seek
thumb_func_end SetAndStartSpriteAnim
thumb_func_start sub_8068E9C
sub_8068E9C: @ 8068E9C
thumb_func_start SpriteAnimEnded
SpriteAnimEnded: @ 8068E9C
push {lr}
adds r0, 0x3F
ldrb r1, [r0]
@@ -850,7 +850,7 @@ _08068EAE:
_08068EB0:
pop {r1}
bx r1
thumb_func_end sub_8068E9C
thumb_func_end SpriteAnimEnded
thumb_func_start sub_8068EB4
sub_8068EB4: @ 8068EB4
@@ -983,8 +983,8 @@ _08068FA2:
bx r0
thumb_func_end sub_8068EB4
thumb_func_start sub_8068FA8
sub_8068FA8: @ 8068FA8
thumb_func_start UpdateObjectEventSpriteSubpriorityAndVisibility
UpdateObjectEventSpriteSubpriorityAndVisibility: @ 8068FA8
push {r4,lr}
adds r4, r0, 0
bl sub_8069248
@@ -1002,7 +1002,7 @@ sub_8068FA8: @ 8068FA8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8068FA8
thumb_func_end UpdateObjectEventSpriteSubpriorityAndVisibility
thumb_func_start sub_8068FD0
sub_8068FD0: @ 8068FD0
@@ -1020,7 +1020,7 @@ _08068FD6:
cmp r0, 0
beq _08068FF6
ldr r1, [r2, 0x1C]
ldr r0, _08069008 @ =sub_8068FA8
ldr r0, _08069008 @ =UpdateObjectEventSpriteSubpriorityAndVisibility
cmp r1, r0
bne _08068FF6
adds r0, r2, 0
@@ -1035,7 +1035,7 @@ _08068FF6:
bx r0
.align 2, 0
_08069004: .4byte gSprites
_08069008: .4byte sub_8068FA8
_08069008: .4byte UpdateObjectEventSpriteSubpriorityAndVisibility
thumb_func_end sub_8068FD0
thumb_func_start sub_806900C
@@ -1056,7 +1056,7 @@ _08069018:
cmp r0, 0
beq _08069048
ldr r1, [r2, 0x1C]
ldr r0, _08069044 @ =sub_8068FA8
ldr r0, _08069044 @ =UpdateObjectEventSpriteSubpriorityAndVisibility
cmp r1, r0
bne _08069048
ldrh r0, [r2, 0x2E]
@@ -1068,7 +1068,7 @@ _08069018:
b _08069052
.align 2, 0
_08069040: .4byte gSprites
_08069044: .4byte sub_8068FA8
_08069044: .4byte UpdateObjectEventSpriteSubpriorityAndVisibility
_08069048:
adds r4, 0x44
adds r3, 0x1
@@ -1099,7 +1099,7 @@ sub_8069058: @ 8069058
ldr r0, _08069090 @ =gSprites
adds r4, r0
adds r0, r5, 0
bl ObjectEventDirectionToImageAnimId
bl GetFaceDirectionAnimNum
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
File diff suppressed because it is too large Load Diff
+23 -23
View File
@@ -797,7 +797,7 @@ _0805AB54: .4byte gSprites
thumb_func_start ResetCameraUpdateInfo
ResetCameraUpdateInfo: @ 805AB58
ldr r1, _0805AB6C @ =gUnknown_3005050
ldr r1, _0805AB6C @ =gFieldCamera
movs r0, 0
str r0, [r1, 0x8]
str r0, [r1, 0xC]
@@ -807,7 +807,7 @@ ResetCameraUpdateInfo: @ 805AB58
str r0, [r1]
bx lr
.align 2, 0
_0805AB6C: .4byte gUnknown_3005050
_0805AB6C: .4byte gFieldCamera
thumb_func_end ResetCameraUpdateInfo
thumb_func_start InitCameraUpdateCallback
@@ -815,7 +815,7 @@ InitCameraUpdateCallback: @ 805AB70
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, _0805ABA4 @ =gUnknown_3005050
ldr r4, _0805ABA4 @ =gFieldCamera
ldr r1, [r4, 0x4]
cmp r1, 0
beq _0805AB8C
@@ -838,7 +838,7 @@ _0805AB8C:
pop {r1}
bx r1
.align 2, 0
_0805ABA4: .4byte gUnknown_3005050
_0805ABA4: .4byte gFieldCamera
_0805ABA8: .4byte gSprites
_0805ABAC: .4byte CameraUpdateCallback
thumb_func_end InitCameraUpdateCallback
@@ -848,7 +848,7 @@ CameraUpdate: @ 805ABB0
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r6, _0805ACA4 @ =gUnknown_3005050
ldr r6, _0805ACA4 @ =gFieldCamera
ldr r1, [r6]
cmp r1, 0
beq _0805ABC4
@@ -903,7 +903,7 @@ _0805AC08:
ble _0805AC1C
movs r4, 0x1
_0805AC1C:
ldr r2, _0805ACA4 @ =gUnknown_3005050
ldr r2, _0805ACA4 @ =gFieldCamera
ldr r0, [r2, 0x10]
adds r1, r0, r7
str r1, [r2, 0x10]
@@ -956,11 +956,11 @@ _0805AC7E:
adds r1, r7, 0
mov r2, r8
bl coords8_add
ldr r1, _0805ACAC @ =gUnknown_300506C
ldr r1, _0805ACAC @ =gTotalCameraPixelOffsetX
ldrh r0, [r1]
subs r0, r7
strh r0, [r1]
ldr r1, _0805ACB0 @ =gUnknown_3005068
ldr r1, _0805ACB0 @ =gTotalCameraPixelOffsetY
ldrh r0, [r1]
mov r2, r8
subs r0, r2
@@ -971,10 +971,10 @@ _0805AC7E:
pop {r0}
bx r0
.align 2, 0
_0805ACA4: .4byte gUnknown_3005050
_0805ACA4: .4byte gFieldCamera
_0805ACA8: .4byte gUnknown_3000E90
_0805ACAC: .4byte gUnknown_300506C
_0805ACB0: .4byte gUnknown_3005068
_0805ACAC: .4byte gTotalCameraPixelOffsetX
_0805ACB0: .4byte gTotalCameraPixelOffsetY
thumb_func_end CameraUpdate
thumb_func_start sub_805ACB4
@@ -989,12 +989,12 @@ sub_805ACB4: @ 805ACB4
asrs r1, 16
bl UpdateObjectEventsForCameraUpdate
bl DrawWholeMapView
ldr r1, _0805ACE8 @ =gUnknown_300506C
ldr r1, _0805ACE8 @ =gTotalCameraPixelOffsetX
lsls r4, 4
ldrh r0, [r1]
subs r0, r4
strh r0, [r1]
ldr r1, _0805ACEC @ =gUnknown_3005068
ldr r1, _0805ACEC @ =gTotalCameraPixelOffsetY
lsls r5, 4
ldrh r0, [r1]
subs r0, r5
@@ -1003,8 +1003,8 @@ sub_805ACB4: @ 805ACB4
pop {r0}
bx r0
.align 2, 0
_0805ACE8: .4byte gUnknown_300506C
_0805ACEC: .4byte gUnknown_3005068
_0805ACE8: .4byte gTotalCameraPixelOffsetX
_0805ACEC: .4byte gTotalCameraPixelOffsetY
thumb_func_end sub_805ACB4
thumb_func_start sub_805ACF0
@@ -1012,7 +1012,7 @@ sub_805ACF0: @ 805ACF0
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0805ADCC @ =gUnknown_3005050
ldr r4, _0805ADCC @ =gFieldCamera
ldr r1, [r4]
cmp r1, 0
beq _0805AD04
@@ -1067,7 +1067,7 @@ _0805AD48:
ble _0805AD5C
movs r5, 0x1
_0805AD5C:
ldr r2, _0805ADCC @ =gUnknown_3005050
ldr r2, _0805ADCC @ =gFieldCamera
ldr r0, [r2, 0x10]
adds r1, r0, r7
str r1, [r2, 0x10]
@@ -1123,7 +1123,7 @@ _0805ADB6:
pop {r0}
bx r0
.align 2, 0
_0805ADCC: .4byte gUnknown_3005050
_0805ADCC: .4byte gFieldCamera
_0805ADD0: .4byte gUnknown_3000E90
thumb_func_end sub_805ACF0
@@ -1184,14 +1184,14 @@ UpdateCameraPanning: @ 805AE28
bl _call_via_r0
_0805AE36:
ldr r2, _0805AE5C @ =gSpriteCoordOffsetX
ldr r0, _0805AE60 @ =gUnknown_300506C
ldr r0, _0805AE60 @ =gTotalCameraPixelOffsetX
ldr r1, _0805AE64 @ =gUnknown_3000E98
ldrh r0, [r0]
ldrh r1, [r1]
subs r0, r1
strh r0, [r2]
ldr r2, _0805AE68 @ =gSpriteCoordOffsetY
ldr r0, _0805AE6C @ =gUnknown_3005068
ldr r0, _0805AE6C @ =gTotalCameraPixelOffsetY
ldr r1, _0805AE70 @ =gUnknown_3000E9A
ldrh r0, [r0]
ldrh r1, [r1]
@@ -1203,10 +1203,10 @@ _0805AE36:
.align 2, 0
_0805AE58: .4byte gUnknown_3000EA0
_0805AE5C: .4byte gSpriteCoordOffsetX
_0805AE60: .4byte gUnknown_300506C
_0805AE60: .4byte gTotalCameraPixelOffsetX
_0805AE64: .4byte gUnknown_3000E98
_0805AE68: .4byte gSpriteCoordOffsetY
_0805AE6C: .4byte gUnknown_3005068
_0805AE6C: .4byte gTotalCameraPixelOffsetY
_0805AE70: .4byte gUnknown_3000E9A
thumb_func_end UpdateCameraPanning
@@ -1242,7 +1242,7 @@ _0805AEA8:
movs r0, 0
strb r0, [r1]
_0805AEAE:
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
+4 -4
View File
@@ -923,7 +923,7 @@ _0806CFA4: .4byte gDirectionToVectors
_0806CFA8: .4byte gObjectEvents
_0806CFAC:
movs r4, 0
ldr r1, _0806CFE4 @ =gUnknown_2031DEC
ldr r1, _0806CFE4 @ =gLinkPlayerObjectEvents
_0806CFB0:
ldrb r0, [r1]
cmp r0, 0x1
@@ -953,7 +953,7 @@ _0806CFDE:
pop {r1}
bx r1
.align 2, 0
_0806CFE4: .4byte gUnknown_2031DEC
_0806CFE4: .4byte gLinkPlayerObjectEvents
_0806CFE8: .4byte gSelectedObjectEvent
_0806CFEC: .4byte gSpecialVar_LastTalked
_0806CFF0: .4byte gSpecialVar_Facing
@@ -3083,7 +3083,7 @@ _0806E046:
GetObjectEventScriptPointerForComparison: @ 806E050
push {r4,r5,lr}
sub sp, 0x8
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -3112,7 +3112,7 @@ GetObjectEventScriptPointerForComparison: @ 806E050
SetCableClubWarp: @ 806E08C
push {r4,lr}
sub sp, 0x8
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
mov r4, sp
mov r0, sp
bl player_get_pos_to_and_height
+20 -20
View File
@@ -2238,7 +2238,7 @@ sub_80844BC: @ 80844BC
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2666,7 +2666,7 @@ _0808484A:
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2947,7 +2947,7 @@ sub_8084A5C: @ 8084A5C
ldr r0, _08084AC0 @ =gObjectEvents
adds r4, r0
movs r0, 0x4
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3200,7 +3200,7 @@ sub_8084C3C: @ 8084C3C
bl ScriptContext2_Disable
bl UnfreezeObjectEvents
movs r0, 0x4
bl sub_8063F84
bl GetWalkNormalMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4065,7 +4065,7 @@ sub_80852C0: @ 80852C0
movs r0, 0xA8
bl PlaySE
movs r0, 0x4
bl sub_8064194
bl GetJumpMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4306,7 +4306,7 @@ _080854C4:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetStepInPlaceDelay4AnimId
bl GetWalkInPlaceFastMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4610,7 +4610,7 @@ _08085702:
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl ObjectEventSetDirection
bl SetObjectEventDirection
bl sub_80555E0
bl WarpIntoMap
ldr r1, _0808575C @ =gFieldCallback
@@ -4668,7 +4668,7 @@ _0808579E:
lsrs r0, 28
adds r0, r7
ldrb r0, [r0]
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -5761,7 +5761,7 @@ FldEff_FieldMoveShowMon: @ 8086028
bl GetCurrentMapType
lsls r0, 24
lsrs r0, 24
bl is_light_level_1_2_3_5_or_6
bl IsMapTypeOutdoors
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7194,7 +7194,7 @@ sub_8086B30: @ 8086B30
strb r0, [r5]
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7380,12 +7380,12 @@ _08086CD2:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventForceSetSpecialAnim
bl ObjectEventForceSetHeldMovement
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
@@ -7859,7 +7859,7 @@ sub_808706C: @ 808706C
ldr r0, _08087108 @ =gObjectEvents
adds r4, r0
adds r0, r4, 0
bl ObjectEventClearAnimIfSpecialAnimActive
bl ObjectEventClearHeldMovementIfActive
ldrb r1, [r4, 0x1]
movs r0, 0x11
negs r0, r0
@@ -8676,7 +8676,7 @@ sub_8087698: @ 8087698
movs r0, 0x12
ldrsh r2, [r5, r0]
adds r0, r5, 0
bl sub_805F724
bl MoveObjectEventToMapCoords
movs r0, 0
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
@@ -9012,7 +9012,7 @@ sub_8087924: @ 8087924
lsls r2, 16
asrs r2, 16
adds r0, r4, 0
bl npc_coords_shift
bl ShiftObjectEventCoords
ldr r0, _080879CC @ =sub_80879D8
movs r1, 0x50
bl CreateTask
@@ -9155,7 +9155,7 @@ _08087A78:
ldrh r0, [r5, 0x6]
strh r0, [r6, 0x22]
adds r0, r4, 0
bl npc_coords_shift_still
bl ShiftStillObjectEventCoords
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
@@ -9474,7 +9474,7 @@ sub_8087CFC: @ 8087CFC
mov r7, r8
push {r7}
adds r6, r0, 0
ldr r0, _08087D80 @ =gUnknown_300506C
ldr r0, _08087D80 @ =gTotalCameraPixelOffsetX
movs r1, 0
ldrsh r2, [r0, r1]
movs r3, 0x20
@@ -9483,7 +9483,7 @@ sub_8087CFC: @ 8087CFC
movs r1, 0x24
ldrsh r0, [r6, r1]
adds r2, r0
ldr r0, _08087D84 @ =gUnknown_3005068
ldr r0, _08087D84 @ =gTotalCameraPixelOffsetY
movs r3, 0
ldrsh r0, [r0, r3]
movs r3, 0x22
@@ -9536,8 +9536,8 @@ _08087D6E:
pop {r0}
bx r0
.align 2, 0
_08087D80: .4byte gUnknown_300506C
_08087D84: .4byte gUnknown_3005068
_08087D80: .4byte gTotalCameraPixelOffsetX
_08087D84: .4byte gTotalCameraPixelOffsetY
_08087D88: .4byte gUnknown_83CC2A0
_08087D8C: .4byte gSprites
thumb_func_end sub_8087CFC
+15 -15
View File
@@ -20,7 +20,7 @@ SetUpReflection: @ 80DAD7C
ldrsh r2, [r4, r0]
adds r0, r4, 0
movs r3, 0x98
bl obj_unfreeze
bl CreateCopySpriteAt
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@@ -34,7 +34,7 @@ SetUpReflection: @ 80DAD7C
movs r0, 0xC
orrs r1, r0
strb r1, [r7, 0x5]
ldr r2, _080DAE34 @ =gUnknown_835B934
ldr r2, _080DAE34 @ =gReflectionEffectPaletteMap
lsrs r0, r1, 4
adds r0, r2
ldrb r0, [r0]
@@ -96,7 +96,7 @@ _080DAE22:
.align 2, 0
_080DAE2C: .4byte gSprites
_080DAE30: .4byte sub_80DAF50
_080DAE34: .4byte gUnknown_835B934
_080DAE34: .4byte gReflectionEffectPaletteMap
_080DAE38: .4byte gDummySpriteAnimTable
_080DAE3C: .4byte gDummySpriteAffineAnimTable
thumb_func_end SetUpReflection
@@ -189,7 +189,7 @@ npc_pal_op_B: @ 80DAEC4
bne _080DAEF4
ldrh r0, [r2, 0x2]
adds r1, r4, 0
bl npc_load_two_palettes__no_record
bl LoadPlayerObjectReflectionPalette
b _080DAF12
.align 2, 0
_080DAEF0: .4byte 0x000011ff
@@ -198,15 +198,15 @@ _080DAEF4:
bne _080DAF02
ldrh r0, [r2, 0x2]
adds r1, r4, 0
bl npc_load_two_palettes__and_record
bl LoadSpecialObjectReflectionPalette
b _080DAF12
_080DAF02:
adds r0, r4, 0
bl npc_paltag_by_palslot
bl GetObjectPaletteTag
lsls r0, 16
lsrs r0, 16
adds r1, r4, 0
bl pal_patch_for_npc
bl PatchObjectPalette
_080DAF12:
adds r0, r4, 0
bl sub_807AA8C
@@ -230,7 +230,7 @@ npc_pal_op_A: @ 80DAF20
beq _080DAF44
adds r0, r1, 0
adds r1, r4, 0
bl pal_patch_for_npc
bl PatchObjectPalette
adds r0, r4, 0
bl sub_807AA8C
_080DAF44:
@@ -285,7 +285,7 @@ _080DAF98: .4byte gObjectEvents
_080DAF9C: .4byte gSprites
_080DAFA0: .4byte 0x00020001
_080DAFA4:
ldr r1, _080DB0BC @ =gUnknown_835B934
ldr r1, _080DB0BC @ =gReflectionEffectPaletteMap
ldrb r0, [r5, 0x5]
lsrs r0, 4
adds r0, r1
@@ -425,12 +425,12 @@ _080DB0AE:
pop {r0}
bx r0
.align 2, 0
_080DB0BC: .4byte gUnknown_835B934
_080DB0BC: .4byte gReflectionEffectPaletteMap
_080DB0C0: .4byte 0xfffffc00
thumb_func_end sub_80DAF50
thumb_func_start sub_80DB0C4
sub_80DB0C4: @ 80DB0C4
thumb_func_start CreateWarpArrowSprite
CreateWarpArrowSprite: @ 80DB0C4
push {r4,lr}
ldr r0, _080DB10C @ =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x20]
@@ -469,7 +469,7 @@ _080DB102:
.align 2, 0
_080DB10C: .4byte gFieldEffectObjectTemplatePointers
_080DB110: .4byte gSprites
thumb_func_end sub_80DB0C4
thumb_func_end CreateWarpArrowSprite
thumb_func_start objid_set_invisible
objid_set_invisible: @ 80DB114
@@ -538,7 +538,7 @@ _080DB17E:
adds r4, 0x2
mov r2, sp
adds r3, r4, 0
bl sub_8063B1C
bl SetSpritePosToMapCoords
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
@@ -714,7 +714,7 @@ _080DB2AE:
cmp r0, r1
bne _080DB32C
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_IsTallGrass
bl MetatileBehavior_IsPokeGrass
lsls r0, 24
cmp r0, 0
bne _080DB32C
+45 -45
View File
@@ -17,7 +17,7 @@ sub_805B3B8: @ 805B3B8
ldr r2, _0805B3D4 @ =gObjectEvents
adds r0, r2
ldr r2, _0805B3D8 @ =sub_805B3DC
bl ObjectEventStep
bl UpdateObjectEventCurrentMovement
pop {r0}
bx r0
.align 2, 0
@@ -104,7 +104,7 @@ sub_805B45C: @ 805B45C
cmp r0, 0
bne _0805B4A6
adds r0, r4, 0
bl ObjectEventGetSpecialAnim
bl ObjectEventGetHeldMovementActionId
lsls r0, 24
movs r1, 0xDF
lsls r1, 24
@@ -119,7 +119,7 @@ sub_805B45C: @ 805B45C
cmp r0, r5
beq _0805B4A2
adds r0, r4, 0
bl ObjectEventClearAnim
bl ObjectEventClearHeldMovement
b _0805B4A6
_0805B4A2:
movs r0, 0x1
@@ -245,7 +245,7 @@ sub_805B528: @ 805B528
strh r0, [r5, 0x1C]
_0805B57A:
ldr r0, [r4]
bl ObjectEventClearAnim
bl ObjectEventClearHeldMovement
ldrb r0, [r5, 0x1C]
bl sub_805C2CC
_0805B586:
@@ -374,7 +374,7 @@ ForcedMovement_None: @ 805B644
ldrb r1, [r0, 0x18]
lsls r1, 28
lsrs r1, 28
bl ObjectEventSetDirection
bl SetObjectEventDirection
ldrb r1, [r4]
movs r0, 0xBF
ands r0, r1
@@ -816,7 +816,7 @@ CheckMovementInputNotOnBike: @ 805B96C
.align 2, 0
_0805B980: .4byte gPlayerAvatar
_0805B984:
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -1120,7 +1120,7 @@ sub_805BBA8: @ 805BBA8
adds r1, r5, 0
adds r2, r4, 0
adds r3, r6, 0
bl npc_block_way
bl GetCollisionAtCoords
lsls r0, 24
lsrs r0, 24
mov r1, sp
@@ -1323,7 +1323,7 @@ sub_805BCEC: @ 805BCEC
ldrsh r2, [r5, r0]
adds r0, r4, 0
adds r3, r7, 0
bl npc_block_way
bl GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _0805BDA0
@@ -1678,8 +1678,8 @@ _0805BFD8: .4byte gObjectEvents
_0805BFDC: .4byte gPlayerAvatar
thumb_func_end player_set_x22
thumb_func_start player_get_x22
player_get_x22: @ 805BFE0
thumb_func_start PlayerGetCopyableMovement
PlayerGetCopyableMovement: @ 805BFE0
ldr r2, _0805BFF4 @ =gObjectEvents
ldr r0, _0805BFF8 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -1693,7 +1693,7 @@ player_get_x22: @ 805BFE0
.align 2, 0
_0805BFF4: .4byte gObjectEvents
_0805BFF8: .4byte gPlayerAvatar
thumb_func_end player_get_x22
thumb_func_end PlayerGetCopyableMovement
thumb_func_start sub_805BFFC
sub_805BFFC: @ 805BFFC
@@ -1708,7 +1708,7 @@ sub_805BFFC: @ 805BFFC
lsls r0, 2
ldr r2, _0805C020 @ =gObjectEvents
adds r0, r2
bl ObjectEventForceSetSpecialAnim
bl ObjectEventForceSetHeldMovement
pop {r0}
bx r0
.align 2, 0
@@ -1840,7 +1840,7 @@ sub_805C104: @ 805C104
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8063F84
bl GetWalkNormalMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
@@ -1854,7 +1854,7 @@ sub_805C11C: @ 805C11C
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8063FB0
bl GetWalkFastMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
@@ -1896,7 +1896,7 @@ sub_805C164: @ 805C164
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8064034
bl GetWalkFastestMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
@@ -1942,7 +1942,7 @@ PlayerOnBikeCollide: @ 805C1AC
adds r0, r4, 0
bl sub_805C438
adds r0, r4, 0
bl GetStepInPlaceDelay16AnimId
bl GetWalkInPlaceNormalMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
@@ -1976,7 +1976,7 @@ PlayerFaceDirection: @ 805C1F4
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
bl GetFaceDirectionMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -1990,7 +1990,7 @@ sub_805C20C: @ 805C20C
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8063EE4
bl GetWalkSlowMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -2004,7 +2004,7 @@ sub_805C224: @ 805C224
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_8064270
bl GetWalkInPlaceSlowMovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -2022,7 +2022,7 @@ sub_805C23C: @ 805C23C
movs r0, 0xA
bl PlaySE
adds r0, r4, 0
bl GetJumpLedgeAnimId
bl GetJump2MovementAction
lsls r0, 24
lsrs r0, 24
movs r1, 0x8
@@ -2065,7 +2065,7 @@ _0805C27E:
ldrb r0, [r0, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8063EB8
bl GetFaceDirectionMovementAction
lsls r0, 24
lsrs r0, 24
bl sub_805BFFC
@@ -2600,8 +2600,8 @@ _0805C6DC: .4byte gObjectEvents
_0805C6E0: .4byte gPlayerAvatar
thumb_func_end GetPlayerFacingDirection
thumb_func_start player_get_direction_upper_nybble
player_get_direction_upper_nybble: @ 805C6E4
thumb_func_start GetPlayerMovementDirection
GetPlayerMovementDirection: @ 805C6E4
ldr r2, _0805C6F8 @ =gObjectEvents
ldr r0, _0805C6FC @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -2615,7 +2615,7 @@ player_get_direction_upper_nybble: @ 805C6E4
.align 2, 0
_0805C6F8: .4byte gObjectEvents
_0805C6FC: .4byte gPlayerAvatar
thumb_func_end player_get_direction_upper_nybble
thumb_func_end GetPlayerMovementDirection
thumb_func_start PlayerGetZCoord
PlayerGetZCoord: @ 805C700
@@ -2651,7 +2651,7 @@ sub_805C71C: @ 805C71C
lsls r2, 16
asrs r2, 16
adds r1, r3, 0
bl sub_805F724
bl MoveObjectEventToMapCoords
pop {r0}
bx r0
.align 2, 0
@@ -2712,7 +2712,7 @@ sub_805C780: @ 805C780
lsls r1, 28
lsrs r1, 28
adds r0, r4, 0
bl ObjectEventSetDirection
bl SetObjectEventDirection
movs r0, 0x6
bl TestPlayerAvatarFlags
lsls r0, 24
@@ -2787,8 +2787,8 @@ sub_805C808: @ 805C808
_0805C820: .4byte gPlayerAvatar
thumb_func_end sub_805C808
thumb_func_start sub_805C824
sub_805C824: @ 805C824
thumb_func_start GetPlayerAvatarGenderByGraphicsId
GetPlayerAvatarGenderByGraphicsId: @ 805C824
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -2803,7 +2803,7 @@ _0805C836:
_0805C838:
pop {r1}
bx r1
thumb_func_end sub_805C824
thumb_func_end GetPlayerAvatarGenderByGraphicsId
thumb_func_start PartyHasMonWithSurf
PartyHasMonWithSurf: @ 805C83C
@@ -2854,7 +2854,7 @@ _0805C888: .4byte gPlayerParty
thumb_func_start IsPlayerSurfingNorth
IsPlayerSurfingNorth: @ 805C88C
push {lr}
bl player_get_direction_upper_nybble
bl GetPlayerMovementDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -2906,7 +2906,7 @@ IsPlayerFacingSurfableFishableWater: @ 805C8B0
lsls r3, 28
lsrs r3, 28
adds r0, r4, 0
bl npc_block_way
bl GetCollisionAtCoords
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -3158,7 +3158,7 @@ InitPlayerAvatar: @ 805CA3C
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x2]
bl sub_80DB0C4
bl CreateWarpArrowSprite
strb r0, [r4, 0x1B]
adds r0, r4, 0
mov r1, r9
@@ -3546,7 +3546,7 @@ sub_805CD84: @ 805CD84
adds r0, r4, 0
bl ObjectEventClearHeldMovementIfFinished
ldrb r0, [r6, 0xC]
bl GetStepInPlaceDelay16AnimId
bl GetWalkInPlaceNormalMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3713,7 +3713,7 @@ PlayerAvatar_DoSecretBaseMatJump: @ 805CEEC
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_806413C
bl GetJumpInPlaceMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3846,7 +3846,7 @@ sub_805CFEC: @ 805CFEC
add r0, sp
ldrb r6, [r0]
adds r0, r6, 0
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4138,7 +4138,7 @@ sub_805D240: @ 805D240
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4296,7 +4296,7 @@ fish1: @ 805D35C
lsls r4, 2
adds r4, r3
adds r0, r4, 0
bl ObjectEventClearAnimIfSpecialAnimActive
bl ObjectEventClearHeldMovementIfActive
ldrb r0, [r4, 0x1]
movs r1, 0x8
orrs r0, r1
@@ -4830,7 +4830,7 @@ sub_805D7C0: @ 805D7C0
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
bl GetFishingBiteDirectionAnimNum
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4886,7 +4886,7 @@ sub_805D838: @ 805D838
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
bl GetFishingBiteDirectionAnimNum
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -5337,7 +5337,7 @@ _0805DBBA:
strh r0, [r7, 0x22]
movs r2, 0x22
ldrsh r1, [r7, r2]
ldr r0, _0805DBF0 @ =gUnknown_3005068
ldr r0, _0805DBF0 @ =gTotalCameraPixelOffsetY
movs r2, 0
ldrsh r0, [r0, r2]
adds r1, r0
@@ -5350,7 +5350,7 @@ _0805DBBA:
strh r0, [r5]
b _0805DBFA
.align 2, 0
_0805DBF0: .4byte gUnknown_3005068
_0805DBF0: .4byte gTotalCameraPixelOffsetY
_0805DBF4:
adds r0, r2, 0
bl DestroyTask
@@ -5450,12 +5450,12 @@ _0805DC9A:
ldrsh r0, [r5, r3]
adds r0, r1
ldrb r0, [r0]
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventForceSetSpecialAnim
bl ObjectEventForceSetHeldMovement
movs r0, 0
mov r9, r0
strh r6, [r5, 0x2]
@@ -5618,12 +5618,12 @@ _0805DDE4:
lsrs r0, 28
adds r0, r4
ldrb r0, [r0]
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl ObjectEventForceSetSpecialAnim
bl ObjectEventForceSetHeldMovement
movs r0, 0
strh r0, [r6]
ldrb r0, [r5, 0x18]
+1 -1
View File
@@ -252,7 +252,7 @@ _0807B456:
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
bl sub_8063B1C
bl SetSpritePosToMapCoords
adds r4, 0x3E
ldrb r0, [r4]
movs r1, 0x2
+1 -1
View File
@@ -2907,7 +2907,7 @@ sub_809F04C: @ 809F04C
add r3, sp, 0x18
movs r0, 0
mov r2, sp
bl sub_805E8E8
bl MakeObjectTemplateFromObjectEventGraphicsInfo
mov r2, sp
add r0, sp, 0x1C
ldrh r1, [r0, 0x6]
+60 -60
View File
@@ -1242,12 +1242,12 @@ sub_805550C: @ 805550C
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
bl is_light_level_1_2_3_5_or_6
bl IsMapTypeOutdoors
lsls r0, 24
cmp r0, 0
beq _08055590
adds r0, r5, 0
bl is_light_level_1_2_3_5_or_6
bl IsMapTypeOutdoors
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1764,7 +1764,7 @@ sub_8055920: @ 8055920
bl sub_8054F68
ldr r0, _0805599C @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
bl IsMapTypeOutdoors
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1815,7 +1815,7 @@ sub_80559A8: @ 80559A8
bl sub_8054F68
ldr r0, _080559E0 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
bl IsMapTypeOutdoors
bl TrySetMapSaveWarpStatus
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
@@ -2933,8 +2933,8 @@ sub_80561B4: @ 80561B4
_080561D4: .4byte gUnknown_2031DB4
thumb_func_end sub_80561B4
thumb_func_start is_light_level_1_2_3_5_or_6
is_light_level_1_2_3_5_or_6: @ 80561D8
thumb_func_start IsMapTypeOutdoors
IsMapTypeOutdoors: @ 80561D8
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -2956,7 +2956,7 @@ _080561F6:
_080561F8:
pop {r1}
bx r1
thumb_func_end is_light_level_1_2_3_5_or_6
thumb_func_end IsMapTypeOutdoors
thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC
@@ -4637,11 +4637,11 @@ sub_8057024: @ 8057024
cmp r4, 0
bne _08057050
movs r0, 0
bl npc_paltag_set_load
bl InitObjectEventPalettes
b _08057056
_08057050:
movs r0, 0x1
bl npc_paltag_set_load
bl InitObjectEventPalettes
_08057056:
bl FieldEffectActiveListClear
bl sub_8079C08
@@ -4659,33 +4659,33 @@ _0805706A:
thumb_func_start sub_8057074
sub_8057074: @ 8057074
push {lr}
ldr r0, _08057094 @ =gUnknown_300506C
ldr r0, _08057094 @ =gTotalCameraPixelOffsetX
movs r1, 0
strh r1, [r0]
ldr r0, _08057098 @ =gUnknown_3005068
ldr r0, _08057098 @ =gTotalCameraPixelOffsetY
strh r1, [r0]
bl sub_805DE74
bl ResetObjectEvents
movs r0, 0
movs r1, 0
bl sub_805EC30
bl TrySpawnObjectEvents
bl mapheader_run_first_tag4_script_list_match
pop {r0}
bx r0
.align 2, 0
_08057094: .4byte gUnknown_300506C
_08057098: .4byte gUnknown_3005068
_08057094: .4byte gTotalCameraPixelOffsetX
_08057098: .4byte gTotalCameraPixelOffsetY
thumb_func_end sub_8057074
thumb_func_start mli4_mapscripts_and_other
mli4_mapscripts_and_other: @ 805709C
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _080570F4 @ =gUnknown_300506C
ldr r0, _080570F4 @ =gTotalCameraPixelOffsetX
movs r1, 0
strh r1, [r0]
ldr r0, _080570F8 @ =gUnknown_3005068
ldr r0, _080570F8 @ =gTotalCameraPixelOffsetY
strh r1, [r0]
bl sub_805DE74
bl ResetObjectEvents
mov r4, sp
adds r4, 0x2
mov r0, sp
@@ -4708,15 +4708,15 @@ mli4_mapscripts_and_other: @ 805709C
bl ResetInitialPlayerAvatarState
movs r0, 0
movs r1, 0
bl sub_805EC30
bl TrySpawnObjectEvents
bl mapheader_run_first_tag4_script_list_match
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080570F4: .4byte gUnknown_300506C
_080570F8: .4byte gUnknown_3005068
_080570F4: .4byte gTotalCameraPixelOffsetX
_080570F8: .4byte gTotalCameraPixelOffsetY
_080570FC: .4byte gSaveBlock2Ptr
thumb_func_end mli4_mapscripts_and_other
@@ -5344,7 +5344,7 @@ _08057620:
beq _08057648
b _0805754E
_0805762C:
ldr r0, _08057640 @ =gUnknown_3005050
ldr r0, _08057640 @ =gFieldCamera
ldr r1, _08057644 @ =sub_8057748
str r1, [r0]
bl SetFieldVBlankCallback
@@ -5353,7 +5353,7 @@ _0805762C:
movs r0, 0x1
b _0805764A
.align 2, 0
_08057640: .4byte gUnknown_3005050
_08057640: .4byte gFieldCamera
_08057644: .4byte sub_8057748
_08057648:
movs r0, 0
@@ -6611,7 +6611,7 @@ sub_8057F84: @ 8057F84
movs r0, 0x1
_08057F96:
strb r0, [r6, 0x1]
ldr r1, _08057FE8 @ =gUnknown_2031DEC
ldr r1, _08057FE8 @ =gLinkPlayerObjectEvents
lsls r0, r4, 2
adds r0, r1
ldrb r0, [r0, 0x3]
@@ -6647,7 +6647,7 @@ _08057F96:
pop {r0}
bx r0
.align 2, 0
_08057FE8: .4byte gUnknown_2031DEC
_08057FE8: .4byte gLinkPlayerObjectEvents
thumb_func_end sub_8057F84
thumb_func_start sub_8057FEC
@@ -7143,18 +7143,18 @@ ZeroLinkPlayerObjectEvent: @ 8058370
bx lr
thumb_func_end ZeroLinkPlayerObjectEvent
thumb_func_start strange_npc_table_clear
strange_npc_table_clear: @ 8058378
thumb_func_start ClearLinkPlayerObjectEvents
ClearLinkPlayerObjectEvents: @ 8058378
push {lr}
ldr r0, _08058388 @ =gUnknown_2031DEC
ldr r0, _08058388 @ =gLinkPlayerObjectEvents
movs r1, 0
movs r2, 0x10
bl memset
pop {r0}
bx r0
.align 2, 0
_08058388: .4byte gUnknown_2031DEC
thumb_func_end strange_npc_table_clear
_08058388: .4byte gLinkPlayerObjectEvents
thumb_func_end ClearLinkPlayerObjectEvents
thumb_func_start ZeroObjectEvent
ZeroObjectEvent: @ 805838C
@@ -7190,12 +7190,12 @@ SpawnLinkPlayerObjectEvent: @ 805839C
lsls r2, 24
lsrs r2, 24
mov r8, r2
bl sub_805DF30
bl GetFirstInactiveObjectEventId
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r4, r7, 2
ldr r0, _08058440 @ =gUnknown_2031DEC
ldr r0, _08058440 @ =gLinkPlayerObjectEvents
adds r4, r0
lsls r5, r6, 3
adds r5, r6
@@ -7247,7 +7247,7 @@ SpawnLinkPlayerObjectEvent: @ 805839C
pop {r0}
bx r0
.align 2, 0
_08058440: .4byte gUnknown_2031DEC
_08058440: .4byte gLinkPlayerObjectEvents
_08058444: .4byte gObjectEvents
thumb_func_end SpawnLinkPlayerObjectEvent
@@ -7273,7 +7273,7 @@ InitLinkPlayerObjectEventPos: @ 8058448
adds r2, 0xC
adds r3, r4, 0
adds r3, 0xE
bl sub_8063B1C
bl SetSpritePosToMapCoords
ldrh r0, [r4, 0xC]
adds r0, 0x8
strh r0, [r4, 0xC]
@@ -7290,7 +7290,7 @@ sub_8058488: @ 8058488
lsls r0, 24
lsls r1, 24
lsrs r2, r1, 24
ldr r1, _080584B0 @ =gUnknown_2031DEC
ldr r1, _080584B0 @ =gLinkPlayerObjectEvents
lsrs r0, 22
adds r1, r0, r1
ldrb r0, [r1]
@@ -7307,7 +7307,7 @@ _080584AA:
pop {r0}
bx r0
.align 2, 0
_080584B0: .4byte gUnknown_2031DEC
_080584B0: .4byte gLinkPlayerObjectEvents
_080584B4: .4byte gObjectEvents
thumb_func_end sub_8058488
@@ -7316,7 +7316,7 @@ sub_80584B8: @ 80584B8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 22
ldr r1, _080584F8 @ =gUnknown_2031DEC
ldr r1, _080584F8 @ =gLinkPlayerObjectEvents
adds r5, r0, r1
ldrb r1, [r5, 0x2]
lsls r0, r1, 3
@@ -7345,7 +7345,7 @@ _080584E4:
pop {r0}
bx r0
.align 2, 0
_080584F8: .4byte gUnknown_2031DEC
_080584F8: .4byte gLinkPlayerObjectEvents
_080584FC: .4byte gObjectEvents
_08058500: .4byte gSprites
thumb_func_end sub_80584B8
@@ -7353,7 +7353,7 @@ _08058500: .4byte gSprites
thumb_func_start sub_8058504
sub_8058504: @ 8058504
lsls r0, 24
ldr r1, _0805851C @ =gUnknown_2031DEC
ldr r1, _0805851C @ =gLinkPlayerObjectEvents
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -7365,14 +7365,14 @@ sub_8058504: @ 8058504
ldrb r0, [r0, 0x4]
bx lr
.align 2, 0
_0805851C: .4byte gUnknown_2031DEC
_0805851C: .4byte gLinkPlayerObjectEvents
_08058520: .4byte gObjectEvents
thumb_func_end sub_8058504
thumb_func_start sub_8058524
sub_8058524: @ 8058524
lsls r0, 24
ldr r3, _08058544 @ =gUnknown_2031DEC
ldr r3, _08058544 @ =gLinkPlayerObjectEvents
lsrs r0, 22
adds r0, r3
ldrb r3, [r0, 0x2]
@@ -7387,14 +7387,14 @@ sub_8058524: @ 8058524
strh r0, [r2]
bx lr
.align 2, 0
_08058544: .4byte gUnknown_2031DEC
_08058544: .4byte gLinkPlayerObjectEvents
_08058548: .4byte gObjectEvents
thumb_func_end sub_8058524
thumb_func_start sub_805854C
sub_805854C: @ 805854C
lsls r0, 24
ldr r1, _08058564 @ =gUnknown_2031DEC
ldr r1, _08058564 @ =gLinkPlayerObjectEvents
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -7406,14 +7406,14 @@ sub_805854C: @ 805854C
ldrb r0, [r0, 0x19]
bx lr
.align 2, 0
_08058564: .4byte gUnknown_2031DEC
_08058564: .4byte gLinkPlayerObjectEvents
_08058568: .4byte gObjectEvents
thumb_func_end sub_805854C
thumb_func_start sub_805856C
sub_805856C: @ 805856C
lsls r0, 24
ldr r1, _08058588 @ =gUnknown_2031DEC
ldr r1, _08058588 @ =gLinkPlayerObjectEvents
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -7427,14 +7427,14 @@ sub_805856C: @ 805856C
lsrs r0, 28
bx lr
.align 2, 0
_08058588: .4byte gUnknown_2031DEC
_08058588: .4byte gLinkPlayerObjectEvents
_0805858C: .4byte gObjectEvents
thumb_func_end sub_805856C
thumb_func_start sub_8058590
sub_8058590: @ 8058590
lsls r0, 24
ldr r1, _080585B0 @ =gUnknown_2031DEC
ldr r1, _080585B0 @ =gLinkPlayerObjectEvents
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
@@ -7450,7 +7450,7 @@ sub_8058590: @ 8058590
subs r0, r1
bx lr
.align 2, 0
_080585B0: .4byte gUnknown_2031DEC
_080585B0: .4byte gLinkPlayerObjectEvents
_080585B4: .4byte gObjectEvents
thumb_func_end sub_8058590
@@ -7458,7 +7458,7 @@ _080585B4: .4byte gObjectEvents
GetLinkPlayerIdAt: @ 80585B8
push {r4-r6,lr}
movs r2, 0
ldr r5, _080585FC @ =gUnknown_2031DEC
ldr r5, _080585FC @ =gLinkPlayerObjectEvents
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
@@ -7492,7 +7492,7 @@ _080585DA:
adds r0, r2, 0
b _08058610
.align 2, 0
_080585FC: .4byte gUnknown_2031DEC
_080585FC: .4byte gLinkPlayerObjectEvents
_08058600: .4byte gObjectEvents
_08058604:
adds r0, r2, 0x1
@@ -7515,7 +7515,7 @@ sub_8058618: @ 8058618
lsrs r3, r1, 24
adds r2, r3, 0
lsrs r0, 22
ldr r1, _08058648 @ =gUnknown_2031DEC
ldr r1, _08058648 @ =gLinkPlayerObjectEvents
adds r5, r0, r1
ldrb r1, [r5, 0x2]
lsls r0, r1, 3
@@ -7534,7 +7534,7 @@ sub_8058618: @ 8058618
strb r0, [r6]
b _08058674
.align 2, 0
_08058648: .4byte gUnknown_2031DEC
_08058648: .4byte gLinkPlayerObjectEvents
_0805864C: .4byte gObjectEvents
_08058650:
ldr r4, _0805867C @ =gUnknown_826D374
@@ -7651,7 +7651,7 @@ sub_80586CC: @ 80586CC
movs r3, 0
ldrsh r2, [r6, r3]
adds r0, r5, 0
bl npc_coords_shift
bl ShiftObjectEventCoords
adds r0, r5, 0
bl ObjectEventUpdateZCoord
movs r0, 0x1
@@ -7708,7 +7708,7 @@ sub_8058754: @ 8058754
cmp r0, 0
bne _08058784
adds r0, r4, 0
bl npc_coords_shift_still
bl ShiftStillObjectEventCoords
movs r0, 0x2
strb r0, [r6, 0x3]
_08058784:
@@ -7851,7 +7851,7 @@ sub_8058878: @ 8058878
lsls r1, 24
lsrs r3, r1, 24
lsls r2, r5, 2
ldr r0, _080588B4 @ =gUnknown_2031DEC
ldr r0, _080588B4 @ =gLinkPlayerObjectEvents
adds r2, r0
ldrb r1, [r2, 0x2]
lsls r0, r1, 3
@@ -7874,7 +7874,7 @@ sub_8058878: @ 8058878
bl sub_805C7C8
b _080588C6
.align 2, 0
_080588B4: .4byte gUnknown_2031DEC
_080588B4: .4byte gLinkPlayerObjectEvents
_080588B8: .4byte gObjectEvents
_080588BC:
ldrb r0, [r4]
@@ -7925,7 +7925,7 @@ SpriteCB_LinkPlayer: @ 805890C
movs r0, 0x2E
ldrsh r4, [r5, r0]
lsls r4, 2
ldr r0, _08058970 @ =gUnknown_2031DEC
ldr r0, _08058970 @ =gLinkPlayerObjectEvents
adds r4, r0
ldrb r1, [r4, 0x2]
lsls r0, r1, 3
@@ -7958,7 +7958,7 @@ SpriteCB_LinkPlayer: @ 805890C
cmp r0, 0
bne _08058978
ldrb r0, [r6, 0x19]
bl ObjectEventDirectionToImageAnimId
bl GetFaceDirectionAnimNum
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7966,11 +7966,11 @@ SpriteCB_LinkPlayer: @ 805890C
bl StartSpriteAnim
b _0805898A
.align 2, 0
_08058970: .4byte gUnknown_2031DEC
_08058970: .4byte gLinkPlayerObjectEvents
_08058974: .4byte gObjectEvents
_08058978:
ldrb r0, [r6, 0x19]
bl get_go_image_anim_num
bl GetMoveDirectionAnimNum
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
+1 -1
View File
@@ -560,7 +560,7 @@ sub_80977F0: @ 80977F0
ldr r1, _08097850 @ =gObjectEvents
adds r4, r0, r1
adds r0, r4, 0
bl ObjectEventIsSpecialAnimActive
bl ObjectEventIsHeldMovementActive
lsls r0, 24
cmp r0, 0
beq _08097838
+12 -12
View File
@@ -225,7 +225,7 @@ IsTrainerInRangeSouth: @ 8081C9C
bgt _08081CE4
cmp r1, 0x3
ble _08081CDA
bl sub_805DF30
bl GetFirstInactiveObjectEventId
lsls r0, 24
lsrs r0, 24
cmp r0, 0x10
@@ -398,7 +398,7 @@ _08081DEC:
ldrsh r2, [r3, r0]
adds r0, r6, 0
adds r3, r7, 0
bl sub_8063770
bl GetCollisionFlagsAtCoords
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -433,7 +433,7 @@ _08081E26:
ldrsh r2, [r3, r0]
adds r0, r6, 0
adds r3, r7, 0
bl npc_block_way
bl GetCollisionAtCoords
lsls r0, 24
lsrs r1, r0, 24
lsls r4, 4
@@ -596,7 +596,7 @@ _08081F54:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8063EB8
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -675,7 +675,7 @@ _08081FEE:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8063F84
bl GetWalkNormalMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -732,9 +732,9 @@ _0808204A:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805FE7C
bl OverrideMovementTypeForObjectEvent
adds r0, r4, 0
bl sub_805FE5C
bl OverrideTemplateCoordsForObjectEvent
ldr r0, _080820B4 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
@@ -965,7 +965,7 @@ sub_80821DC: @ 80821DC
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_806413C
bl GetJumpInPlaceMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -1099,7 +1099,7 @@ _08082312:
ldr r0, _0808234C @ =gObjectEvents
adds r4, r0
movs r0, 0x2
bl sub_8063FB0
bl GetWalkFastMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -1190,7 +1190,7 @@ _080823CC:
ldr r0, _08082408 @ =gObjectEvents
adds r4, r0
movs r0, 0x1
bl sub_8063FB0
bl GetWalkFastMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -1249,7 +1249,7 @@ sub_808243C: @ 808243C
cmp r0, 0
bne _0808246E
ldr r0, [sp]
bl ObjectEventClearAnim
bl ObjectEventClearHeldMovement
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
@@ -1292,7 +1292,7 @@ _0808246E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805FE7C
bl OverrideMovementTypeForObjectEvent
adds r0, r5, 0
bl DestroyTask
b _080824E2
+1 -1
View File
@@ -1 +1 @@
VMap
gBackupMapLayout
File diff suppressed because it is too large Load Diff
+7
View File
@@ -1,6 +1,13 @@
#ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H
#define GUARD_CONSTANTS_EVENT_OBJECTS_H
#define NUM_OBJ_EVENT_GFX 239
// These are dynamic object gfx ids.
// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
// More info about them in include/constants/vars.h
#define OBJ_EVENT_GFX_VARS (NUM_OBJ_EVENT_GFX + 1)
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_CAMERA 0x7F
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef GUARD_CONSTANTS_FIELD_EFFECTS_H
#define GUARD_CONSTANTS_FIELD_EFFECTS_H
#define FLDEFF_EXCLAMATION_MARK_ICON_1 0
#define FLDEFF_EXCLAMATION_MARK_ICON 0
#define FLDEFF_USE_CUT_ON_GRASS 1
#define FLDEFF_USE_CUT_ON_TREE 2
#define FLDEFF_SHADOW 3
@@ -34,7 +34,7 @@
#define FLDEFF_NPCFLY_OUT 30
#define FLDEFF_USE_FLY 31
#define FLDEFF_FLY_IN 32
#define FLDEFF_EXCLAMATION_MARK_ICON_2 33
#define FLDEFF_QUESTION_MARK_ICON 33
#define FLDEFF_FEET_IN_FLOWING_WATER 34
#define FLDEFF_BIKE_TIRE_TRACKS 35
#define FLDEFF_SAND_DISGUISE 36
+1
View File
@@ -31,6 +31,7 @@
#define BAG_POKEBALLS_COUNT 13
#define BAG_TMHM_COUNT 58
#define BAG_BERRIES_COUNT 43
#define OBJECT_EVENT_TEMPLATES_COUNT 64
#define QUEST_LOG_SCENE_COUNT 4
+13
View File
@@ -11,5 +11,18 @@ u32 sub_806916C(u8 a0);
void sub_80691A4(u8 a0, u8 a1);
void sub_8069094(u8 a0, u8 a1);
bool32 sub_8069294(u8 a0);
void sub_8068BBC(struct Sprite *, u8);
void sub_8068C58(struct Sprite *, u8);
void sub_8068C08(struct Sprite *, u8);
bool8 sub_8068C68(struct Sprite *sprite);
bool8 sub_8068C18(struct Sprite *sprite);
void sub_8068CA4(struct Sprite *, u8);
bool8 obj_npc_ministep(struct Sprite *sprite);
bool8 sub_8068CB4(struct Sprite *sprite);
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
bool8 SpriteAnimEnded(struct Sprite *);
void SetMovementDelay(struct Sprite *, s16);
bool8 WaitForMovementDelay(struct Sprite *);
void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *);
#endif // GUARD_EVENT_OBJECT_80688E4_H
-2
View File
@@ -17,14 +17,12 @@ void sub_8097AC8(struct Sprite *);
void UnfreezeObjectEvent(struct ObjectEvent *);
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
u8 sub_8097F78(struct ObjectEvent *);
bool8 obj_npc_ministep(struct Sprite *sprite);
bool8 sub_80976EC(struct Sprite *sprite);
void sub_80976DC(struct Sprite *, u8);
void sub_809783C(struct Sprite *, u8, u8, u8);
void DoShadowFieldEffect(struct ObjectEvent *);
u8 sub_809785C(struct Sprite *);
u8 sub_80978E4(struct Sprite *);
void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
bool8 sub_80979BC(struct Sprite *);
void sub_8097750(struct Sprite *);
bool8 sub_8097758(struct Sprite *);
+55 -29
View File
@@ -22,6 +22,18 @@ enum SpinnerRunnerFollowPatterns {
RUNFOLLOW_SOUTH_EAST_WEST
};
struct UnkStruct_083A3698
{
const union AnimCmd *const *anims;
u8 animPos[4];
};
struct PairedPalettes
{
u16 tag;
const u16 *data;
};
// Exported RAM declarations
// Exported ROM declarations
@@ -30,74 +42,88 @@ void sub_808D438(void);
u8 GetObjectEventIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetObjectEventIdByLocalIdAndMap(u8, u8, u8, u8 *);
u8 GetObjectEventIdByXY(s16, s16);
void ObjectEventSetDirection(struct ObjectEvent *, u8);
void SetObjectEventDirection(struct ObjectEvent *, u8);
u8 sub_808D4F4(void);
void RemoveObjectEventByLocalIdAndMap(u8, u8, u8);
void npc_load_two_palettes__no_record(u16, u8);
void npc_load_two_palettes__and_record(u16, u8);
void sub_805F7C4(u8, u8, u8, s16, s16);
void pal_patch_for_npc(u16, u8);
void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8);
void sub_808E16C(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void sub_8092FF0(s16, s16, s16 *, s16 *);
u8 ObjectEventDirectionToImageAnimId(u8);
void sub_80930E0(s16 *, s16 *, s16, s16);
void ObjectEventClearAnim(struct ObjectEvent *);
void ObjectEventClearAnimIfSpecialAnimActive(struct ObjectEvent *);
void sub_8063AD4(s16, s16, s16 *, s16 *);
u8 GetFaceDirectionAnimNum(u8);
void sub_8063BC4(s16 *, s16 *, s16, s16);
void ObjectEventClearHeldMovement(struct ObjectEvent *);
void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
void SpawnObjectEventsInView(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
u8 SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
void sub_8093038(s16, s16, s16 *, s16 *);
void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *);
void CameraObjectReset1(void);
void CameraObjectReset2(void);
void ObjectEventSetGraphicsId(struct ObjectEvent *, u8);
void ObjectEventTurn(struct ObjectEvent *, u8);
void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
void ObjectEventForceSetSpecialAnim(struct ObjectEvent *, u8);
u8 sub_8064270(u8 a0);
void ObjectEventForceSetHeldMovement(struct ObjectEvent *, u8);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
void gpu_pal_allocator_reset__manage_upper_four(void);
void FreeAndReserveObjectSpritePalettes(void);
void sub_808E82C(u8, u8, u8, s16, s16);
void sub_805F400(u8, u8, u8);
void sub_805F3A8(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
void ObjectEventGetLocalIdAndMap(struct ObjectEvent *, u8 *, u8 *, u8 *);
void npc_coords_shift(struct ObjectEvent *, s16, s16);
void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup);
void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16);
void sub_808EB08(struct ObjectEvent *, s16, s16);
void sub_805FE94(u8, u8, u8);
void ObjectEventStep(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *));
void TryOverrideObjectEventTemplateCoords(u8, u8, u8);
void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *));
u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8);
u8 GetOppositeDirection(u8);
u8 GetStepInPlaceDelay4AnimId(u32);
u8 GetWalkInPlaceFastMovementAction(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
u8 GetStepInPlaceDelay16AnimId(u32);
u8 GetWalkInPlaceNormalMovementAction(u32);
u8 GetWalkInPlaceSlowMovementAction(u32);
u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct ObjectEvent *, s16, s16, u32);
u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 ObjectEventIsSpecialAnimActive(struct ObjectEvent *);
bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct ObjectEvent *, struct Sprite *);
bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
void npc_coords_shift_still(struct ObjectEvent *);
void sub_805FE7C(struct ObjectEvent *, u8);
void ShiftStillObjectEventCoords(struct ObjectEvent *);
void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8);
void SetTrainerMovementType(struct ObjectEvent *, u8);
u8 sub_80634F0(u8 direction);
u8 sub_8063500(u8 a0);
u8 GetFishingNoCatchDirectionAnimNum(u8 direction);
u8 GetFishingBiteDirectionAnimNum(u8 a0);
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
void npc_paltag_set_load(u8 mode);
void InitObjectEventPalettes(u8 mode);
bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent);
u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
u8 sub_8063F84(u8 direction);
u8 GetWalkNormalMovementAction(u32);
u8 GetWalkFastMovementAction(u32);
u8 GetWalkFastestMovementAction(u32);
u8 sub_8063F2C(u32 direction);
u8 GetTrainerFacingDirectionMovementType(u8 direction);
void CameraObjectSetFollowedObjectId(u8 spriteId);
u8 GetFaceDirectionMovementAction(u32);
void CameraObjectSetFollowedObjectId(u8 objectId);
void UnfreezeObjectEvents(void);
void sub_8069058(u8, u8);
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
u8 GetSlideMovementAction(u32);
u8 GetJumpInPlaceMovementAction(u32);
u8 GetJumpMovementAction(u32);
u8 GetJump2MovementAction(u32);
bool8 sub_8068BCC(struct Sprite *sprite);
void sub_8068D1C(struct Sprite *, u8, u8, u8);
u8 sub_8068D3C(struct Sprite *);
u8 sub_8068DC4(struct Sprite *);
// Exported data declarations
+3 -4
View File
@@ -15,12 +15,11 @@ struct CameraObject
s32 y;
};
extern struct CameraObject gUnknown_03005DD0;
// Exported RAM declarations
extern u16 gUnknown_03005DEC;
extern u16 gUnknown_03005DE8;
extern struct CameraObject gFieldCamera;
extern u16 gTotalCameraPixelOffsetX;
extern u16 gTotalCameraPixelOffsetY;
// Exported ROM declarations
+1
View File
@@ -8,5 +8,6 @@ extern u32 gUnknown_3005078;
void RestartWildEncounterImmunitySteps(void);
void ClearPoisonStepCounter(void);
void SetCableClubWarp(void);
void sub_806DE28(struct ObjectEvent *);
#endif //GUARD_FIELD_CONTROL_AVATAR_H
+3 -2
View File
@@ -12,9 +12,10 @@
// Exported RAM declarations
// Exported ROM declarations
u8 sub_8154228(void);
bool8 sub_8155DA0(struct ObjectEvent *);
u8 CreateWarpArrowSprite(void);
void sub_80DC44C(u8, u8);
void StartAshFieldEffect(s16, s16, u16, s16);
void sub_80DCBB8(struct ObjectEvent *);
bool8 sub_80DCBE0(struct ObjectEvent *);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
+2 -2
View File
@@ -9,8 +9,8 @@ u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
void PlayerGetDestCoords(s16 *, s16 *);
u8 GetPlayerFacingDirection(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
u8 GetPlayerMovementDirection(void);
u8 PlayerGetCopyableMovement(void);
void sub_808D074(u8);
void sub_805C270(void);
+1 -1
View File
@@ -11,7 +11,7 @@
#define NUM_PALS_TOTAL 13
#define VIRTUAL_MAP_SIZE 0x2800
extern struct BackupMapLayout VMap;
extern struct BackupMapLayout gBackupMapLayout;
extern const struct MapLayout Route1_Layout;
u32 MapGridGetMetatileIdAt(int, int);
+65 -44
View File
@@ -169,61 +169,61 @@ struct MapHeader
struct ObjectEvent
{
/*0x00*/ u32 active:1;
u32 mapobj_bit_1:1;
u32 mapobj_bit_2:1;
u32 mapobj_bit_3:1;
u32 mapobj_bit_4:1;
u32 mapobj_bit_5:1;
u32 mapobj_bit_6:1;
u32 mapobj_bit_7:1;
/*0x01*/ u32 mapobj_bit_8:1;
u32 mapobj_bit_9:1;
u32 mapobj_bit_10:1;
u32 mapobj_bit_11:1;
u32 mapobj_bit_12:1;
u32 mapobj_bit_13:1;
u32 mapobj_bit_14:1;
u32 mapobj_bit_15:1;
/*0x02*/ u32 mapobj_bit_16:1;
u32 mapobj_bit_17:1;
u32 mapobj_bit_18:1;
u32 mapobj_bit_19:1;
u32 mapobj_bit_20:1;
u32 mapobj_bit_21:1;
u32 mapobj_bit_22:1;
u32 mapobj_bit_23:1;
/*0x03*/ u32 mapobj_bit_24:1;
u32 mapobj_bit_25:1;
u32 mapobj_bit_26:1;
u32 mapobj_bit_27:1;
u32 singleMovementActive:1;
u32 triggerGroundEffectsOnMove:1;
u32 triggerGroundEffectsOnStop:1;
u32 disableCoveringGroundEffects:1;
u32 landingJump:1;
u32 heldMovementActive:1;
u32 heldMovementFinished:1;
/*0x01*/ u32 frozen:1;
u32 facingDirectionLocked:1;
u32 disableAnim:1;
u32 enableAnim:1;
u32 inanimate:1;
u32 invisible:1;
u32 offScreen:1;
u32 trackedByCamera:1;
/*0x02*/ u32 isPlayer:1;
u32 hasReflection:1;
u32 inShortGrass:1;
u32 inShallowFlowingWater:1;
u32 inSandPile:1;
u32 inHotSprings:1;
u32 hasShadow:1;
u32 spriteAnimPausedBackup:1;
/*0x03*/ u32 spriteAffineAnimPausedBackup:1;
u32 disableJumpLandingGroundEffect:1;
u32 fixedPriority:1;
u32 hideReflection:1;
u32 mapobj_bit_28:1;
u32 mapobj_bit_29:1;
u32 mapobj_bit_30:1;
u32 mapobj_bit_31:1;
/*0x04*/ u8 spriteId;
/*0x05*/ u8 graphicsId;
/*0x06*/ u8 animPattern;
/*0x06*/ u8 movementType;
/*0x07*/ u8 trainerType;
/*0x08*/ u8 localId;
/*0x09*/ u8 mapNum;
/*0x0A*/ u8 mapGroup;
/*0x0B*/ u8 mapobj_unk_0B_0:4;
u8 elevation:4;
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
/*0x18*/ u8 facingDirection:4; //current direction?
/*0x18*/ u8 placeholder18:4;
/*0x0B*/ u8 currentElevation:4;
u8 previousElevation:4;
/*0x0C*/ struct Coords16 initialCoords;
/*0x10*/ struct Coords16 currentCoords;
/*0x14*/ struct Coords16 previousCoords;
/*0x18*/ u8 facingDirection:4; // current direction?
/*0x18*/ u8 movementDirection:4;
/*0x19*/ union ObjectEventRange range;
/*0x1A*/ u8 mapobj_unk_1A;
/*0x1B*/ u8 mapobj_unk_1B;
/*0x1C*/ u8 mapobj_unk_1C;
/*0x1A*/ u8 fieldEffectSpriteId;
/*0x1B*/ u8 warpArrowSpriteId;
/*0x1C*/ u8 movementActionId;
/*0x1D*/ u8 trainerRange_berryTreeId;
/*0x1E*/ u8 mapobj_unk_1E;
/*0x1F*/ u8 mapobj_unk_1F;
/*0x20*/ u8 mapobj_unk_20;
/*0x21*/ u8 mapobj_unk_21;
/*0x22*/ u8 animId;
/*0x1E*/ u8 currentMetatileBehavior;
/*0x1F*/ u8 previousMetatileBehavior;
/*0x20*/ u8 previousMovementDirection;
/*0x21*/ u8 directionSequenceIndex;
/*0x22*/ u8 playerCopyableMovement;
/*size = 0x24*/
};
@@ -269,7 +269,28 @@ enum
enum
{
COLLISION_LEDGE_JUMP = 6
COLLISION_NONE,
COLLISION_OUTSIDE_RANGE,
COLLISION_IMPASSABLE,
COLLISION_ELEVATION_MISMATCH,
COLLISION_OBJECT_EVENT,
COLLISION_STOP_SURFING,
COLLISION_LEDGE_JUMP,
COLLISION_PUSHED_BOULDER,
COLLISION_ROTATING_GATE,
COLLISION_WHEELIE_HOP,
COLLISION_ISOLATED_VERTICAL_RAIL,
COLLISION_ISOLATED_HORIZONTAL_RAIL,
COLLISION_VERTICAL_RAIL,
COLLISION_HORIZONTAL_RAIL,
};
// player tile transition states
enum
{
T_NOT_MOVING,
T_TILE_TRANSITION,
T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary.
};
struct PlayerAvatar /* 0x202E858 */
+1 -1
View File
@@ -8,7 +8,7 @@ bool8 MetatileBehavior_IsJumpEast(u8 metatileBehavior);
bool8 MetatileBehavior_IsJumpWest(u8 metatileBehavior);
bool8 MetatileBehavior_IsJumpNorth(u8 metatileBehavior);
bool8 MetatileBehavior_IsJumpSouth(u8 metatileBehavior);
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsPokeGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsMB21OrSand(u8 metatileBehavior);
bool8 MetatileBehavior_IsSandOrDeepSand(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse(u8 metatileBehavior);
+3 -2
View File
@@ -37,7 +37,7 @@ struct LinkPlayerObjectEvent
{
u8 active;
u8 linkPlayerId;
u8 mapObjId;
u8 objEventId;
u8 mode;
};
@@ -95,7 +95,7 @@ void Overworld_ChangeMusicTo(u16);
bool32 IsUpdateLinkStateCBActive(void);
void strange_npc_table_clear(void);
void ClearLinkPlayerObjectEvents(void);
const struct MapHeader *Overworld_GetMapHeaderByGroupAndId(u16, u16);
void ObjectEventMoveDestCoords(struct ObjectEvent *, u32, s16 *, s16 *);
void sub_8086230(void);
@@ -141,6 +141,7 @@ void sub_8055864(u8 mapGroup, u8 mapNum);
void CB2_Overworld(void);
void CB2_OverworldBasic(void);
void CB2_NewGame(void);
bool8 IsMapTypeOutdoors(u8 mapType);
bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
void Overworld_ResetStateAfterTeleport(void);
+2
View File
@@ -49,5 +49,7 @@ void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
void sub_8110840(void *oldSave);
void sub_8112F18(u8 windowId);
void sub_811246C(struct Sprite *sprite);
void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3);
#endif //GUARD_QUEST_LOG_H
+2
View File
@@ -316,5 +316,7 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
void ClearSpriteCopyRequests(void);
void ResetAffineAnimData(void);
void sub_8007FFC(struct Sprite* sprite, s16 a2, s16 a3);
void sub_80075C0(struct Sprite *sprite);
s16 AllocSpriteTiles(u16 tileCount);
#endif //GUARD_SPRITE_H
+1 -2
View File
@@ -3,8 +3,7 @@
#include "global.h"
void sub_80B4578(struct ObjectEvent *);
u8 sub_80B47BC(void);
void sub_8155D78(struct ObjectEvent *);
void sub_80824EC(struct ObjectEvent *var);
#endif //GUARD_TRAINER_SEE_H
+1
View File
@@ -93,6 +93,7 @@ SECTIONS {
asm/field_camera.o(.text);
src/field_door.o(.text);
asm/field_player_avatar.o(.text);
src/event_object_movement.o(.text);
asm/event_object_movement.o(.text);
asm/field_ground_effect.o(.text);
asm/event_object_80688E4.o(.text);
+3 -3
View File
@@ -51,7 +51,7 @@ void sub_80695CC(u8 taskId)
task->data[0] = 1;
}
if (task->data[1] == 0 && !gObjectEvents[gSelectedObjectEvent].mapobj_bit_1)
if (task->data[1] == 0 && !gObjectEvents[gSelectedObjectEvent].singleMovementActive)
{
FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]);
task->data[1] = 1;
@@ -78,7 +78,7 @@ void LockSelectedObjectEvent(void)
FreezeObjectEventsExceptOne(gSelectedObjectEvent);
taskId = CreateTask(sub_80695CC, 80);
if (!gObjectEvents[gSelectedObjectEvent].mapobj_bit_1)
if (!gObjectEvents[gSelectedObjectEvent].singleMovementActive)
{
FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]);
gTasks[taskId].data[1] = 1;
@@ -111,5 +111,5 @@ void Script_FacePlayer(void)
void Script_ClearHeldMovement(void)
{
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[gSelectedObjectEvent]);
ObjectEventClearHeldMovementIfActive(&gObjectEvents[gSelectedObjectEvent]);
}
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1004,7 +1004,7 @@ static void FCSetup_ResetTasksAndSpriteResources(void)
ResetSpriteData();
ResetAllPicSprites();
ResetPaletteFade();
npc_paltag_set_load(0);
InitObjectEventPalettes(0);
gReservedSpritePaletteCount = 7;
}
+6 -6
View File
@@ -415,7 +415,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
if (sub_807E418())
{
sub_807DCB0(TRUE);
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], sub_8063F84(GetPlayerFacingDirection()));
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], GetWalkNormalMovementAction(GetPlayerFacingDirection()));
task->data[0] = 2;
}
break;
@@ -752,7 +752,7 @@ static void sub_807E80C(u8 taskId)
case 1:
if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE)
{
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
ObjectEventClearHeldMovementIfActive(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 17);
task->data[0] = 2;
}
@@ -850,15 +850,15 @@ static void sub_807EAC4(s16 a0, s16 a1, s16 *a2, s16 *a3, s16 *a4)
(*a4)++;
playerSpr->pos2.x = *a2 >> 5;
playerSpr->pos2.y = *a3 >> 5;
if (playerObj->mapobj_bit_7)
if (playerObj->heldMovementFinished)
{
ObjectEventForceSetSpecialAnim(playerObj, GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
ObjectEventForceSetHeldMovement(playerObj, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection()));
}
}
static void sub_807EB64(u16 a0, s16 *a1, s16 *a2)
{
ObjectEventForceSetSpecialAnim(&gObjectEvents[gPlayerAvatar.objectEventId], GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection()));
sub_807EBBC(a0, a1, a2);
}
@@ -930,7 +930,7 @@ static void sub_807ECBC(s16 *a0, s16 *a1, s16 *a2, s16 *a3, s16 *a4)
r1 = 3;
else
r1 = 4;
ObjectEventForceSetSpecialAnim(&gObjectEvents[gPlayerAvatar.objectEventId], sub_8064270(r1));
ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceSlowMovementAction(r1));
sub_807EBBC(behavior, a0, a1);
*a2 = *a0 * 16;
*a3 = *a1 * 16;
+1 -1
View File
@@ -316,7 +316,7 @@ void Special_AnimatePcTurnOff()
void SpawnCameraObject(void)
{
u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJECT_EVENT_GFX_YOUNGSTER, 8, 127, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
gObjectEvents[objectEventId].mapobj_bit_13 = TRUE;
gObjectEvents[objectEventId].invisible = TRUE;
CameraObjectSetFollowedObjectId(gObjectEvents[objectEventId].spriteId);
}
+50 -48
View File
@@ -8,6 +8,8 @@
#include "quest_log.h"
#include "fieldmap.h"
#define VMap gBackupMapLayout // Needed for AGB_ASSERT_EX to match
struct ConnectionFlags
{
u8 south:1;
@@ -28,8 +30,8 @@ struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y);
bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection);
bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset);
struct BackupMapLayout VMap;
EWRAM_DATA u16 gBackupMapLayout[VIRTUAL_MAP_SIZE] = {};
struct BackupMapLayout gBackupMapLayout;
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
EWRAM_DATA struct MapHeader gMapHeader = {};
EWRAM_DATA struct Camera gCamera = {};
EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {};
@@ -79,10 +81,10 @@ void sub_80589E8(void)
void sub_8058A00(struct MapHeader * mapHeader)
{
const struct MapLayout * mapLayout = mapHeader->mapLayout;
CpuFastFill(0x03FF03FF, gBackupMapLayout, sizeof(gBackupMapLayout));
VMap.map = gBackupMapLayout;
VMap.Xsize = mapLayout->width + 15;
VMap.Ysize = mapLayout->height + 14;
CpuFastFill(0x03FF03FF, gBackupMapData, sizeof(gBackupMapData));
gBackupMapLayout.map = gBackupMapData;
gBackupMapLayout.Xsize = mapLayout->width + 15;
gBackupMapLayout.Ysize = mapLayout->height + 14;
AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, ABSPATH("fieldmap.c"), 158);
map_copy_with_padding(mapLayout->map, mapLayout->width, mapLayout->height);
mapheader_copy_mapdata_of_adjacent_maps(mapHeader);
@@ -91,8 +93,8 @@ void sub_8058A00(struct MapHeader * mapHeader)
void map_copy_with_padding(u16 *map, u16 width, u16 height)
{
s32 y;
u16 *dest = VMap.map;
dest += VMap.Xsize * 7 + 7;
u16 *dest = gBackupMapLayout.map;
dest += gBackupMapLayout.Xsize * 7 + 7;
for (y = 0; y < height; y++)
{
@@ -157,12 +159,12 @@ void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x
mapWidth = connectedMapHeader->mapLayout->width;
src = &connectedMapHeader->mapLayout->map[mapWidth * y2 + x2];
dest = &VMap.map[VMap.Xsize * y + x];
dest = &gBackupMapLayout.map[gBackupMapLayout.Xsize * y + x];
for (i = 0; i < height; i++)
{
CpuCopy16(src, dest, width * 2);
dest += VMap.Xsize;
dest += gBackupMapLayout.Xsize;
src += mapWidth;
}
}
@@ -183,26 +185,26 @@ void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader con
{
x2 = -x;
x += cWidth;
if (x < VMap.Xsize)
if (x < gBackupMapLayout.Xsize)
{
width = x;
}
else
{
width = VMap.Xsize;
width = gBackupMapLayout.Xsize;
}
x = 0;
}
else
{
x2 = 0;
if (x + cWidth < VMap.Xsize)
if (x + cWidth < gBackupMapLayout.Xsize)
{
width = cWidth;
}
else
{
width = VMap.Xsize - x;
width = gBackupMapLayout.Xsize - x;
}
}
@@ -231,26 +233,26 @@ void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader con
{
x2 = -x;
x += cWidth;
if (x < VMap.Xsize)
if (x < gBackupMapLayout.Xsize)
{
width = x;
}
else
{
width = VMap.Xsize;
width = gBackupMapLayout.Xsize;
}
x = 0;
}
else
{
x2 = 0;
if (x + cWidth < VMap.Xsize)
if (x + cWidth < gBackupMapLayout.Xsize)
{
width = cWidth;
}
else
{
width = VMap.Xsize - x;
width = gBackupMapLayout.Xsize - x;
}
}
@@ -278,26 +280,26 @@ void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader cons
if (y < 0)
{
y2 = -y;
if (y + cHeight < VMap.Ysize)
if (y + cHeight < gBackupMapLayout.Ysize)
{
height = y + cHeight;
}
else
{
height = VMap.Ysize;
height = gBackupMapLayout.Ysize;
}
y = 0;
}
else
{
y2 = 0;
if (y + cHeight < VMap.Ysize)
if (y + cHeight < gBackupMapLayout.Ysize)
{
height = cHeight;
}
else
{
height = VMap.Ysize - y;
height = gBackupMapLayout.Ysize - y;
}
}
@@ -323,26 +325,26 @@ void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader cons
if (y < 0)
{
y2 = -y;
if (y + cHeight < VMap.Ysize)
if (y + cHeight < gBackupMapLayout.Ysize)
{
height = y + cHeight;
}
else
{
height = VMap.Ysize;
height = gBackupMapLayout.Ysize;
}
y = 0;
}
else
{
y2 = 0;
if (y + cHeight < VMap.Ysize)
if (y + cHeight < gBackupMapLayout.Ysize)
{
height = cHeight;
}
else
{
height = VMap.Ysize - y;
height = gBackupMapLayout.Ysize - y;
}
}
@@ -404,9 +406,9 @@ union Block
block; \
})
#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize)
#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < gBackupMapLayout.Xsize && y >= 0 && y < gBackupMapLayout.Ysize)
#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt2(x, y))
#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.Xsize * y] : MapGridGetBorderTileAt2(x, y))
u8 MapGridGetZCoordAt(s32 x, s32 y)
{
@@ -471,37 +473,37 @@ u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y)
void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile)
{
s32 i;
if (x >= 0 && x < VMap.Xsize
&& y >= 0 && y < VMap.Ysize)
if (x >= 0 && x < gBackupMapLayout.Xsize
&& y >= 0 && y < gBackupMapLayout.Ysize)
{
i = x + y * VMap.Xsize;
VMap.map[i] = (VMap.map[i] & 0xf000) | (metatile & 0xfff);
i = x + y * gBackupMapLayout.Xsize;
gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & 0xf000) | (metatile & 0xfff);
}
}
void MapGridSetMetatileEntryAt(s32 x, s32 y, u16 metatile)
{
s32 i;
if (x >= 0 && x < VMap.Xsize
&& y >= 0 && y < VMap.Ysize)
if (x >= 0 && x < gBackupMapLayout.Xsize
&& y >= 0 && y < gBackupMapLayout.Ysize)
{
i = x + VMap.Xsize * y;
VMap.map[i] = metatile;
i = x + gBackupMapLayout.Xsize * y;
gBackupMapLayout.map[i] = metatile;
}
}
void sub_8059024(s32 x, s32 y, bool32 arg2)
{
if (x >= 0 && x < VMap.Xsize
&& y >= 0 && y < VMap.Ysize)
if (x >= 0 && x < gBackupMapLayout.Xsize
&& y >= 0 && y < gBackupMapLayout.Ysize)
{
if (arg2)
{
VMap.map[x + VMap.Xsize * y] |= 0x0C00;
gBackupMapLayout.map[x + gBackupMapLayout.Xsize * y] |= 0x0C00;
}
else
{
VMap.map[x + VMap.Xsize * y] &= ~0x0C00;
gBackupMapLayout.map[x + gBackupMapLayout.Xsize * y] &= ~0x0C00;
}
}
}
@@ -533,14 +535,14 @@ void save_serialize_map(void)
u16 *mapView;
s32 width;
mapView = gSaveBlock2Ptr->mapView;
width = VMap.Xsize;
width = gBackupMapLayout.Xsize;
x = gSaveBlock1Ptr->pos.x;
y = gSaveBlock1Ptr->pos.y;
for (i = y; i < y + 14; i++)
{
for (j = x; j < x + 15; j++)
{
*mapView++ = gBackupMapLayout[width * i + j];
*mapView++ = gBackupMapData[width * i + j];
}
}
}
@@ -574,14 +576,14 @@ void LoadSavedMapView(void)
mapView = gSaveBlock2Ptr->mapView;
if (!SavedMapViewIsEmpty())
{
width = VMap.Xsize;
width = gBackupMapLayout.Xsize;
x = gSaveBlock1Ptr->pos.x;
y = gSaveBlock1Ptr->pos.y;
for (i = y; i < y + 14; i++)
{
for (j = x; j < x + 15; j++)
{
gBackupMapLayout[j + width * i] = *mapView;
gBackupMapData[j + width * i] = *mapView;
mapView++;
}
}
@@ -601,7 +603,7 @@ void sub_8059250(u8 a1)
s32 x, y;
s32 i, j;
mapView = gSaveBlock2Ptr->mapView;
width = VMap.Xsize;
width = gBackupMapLayout.Xsize;
r9 = 0;
r8 = 0;
x0 = gSaveBlock1Ptr->pos.x;
@@ -636,7 +638,7 @@ void sub_8059250(u8 a1)
desti = width * (y + y0);
srci = (y + r8) * 15 + r9;
src = &mapView[srci + i];
dest = &gBackupMapLayout[x0 + desti + j];
dest = &gBackupMapData[x0 + desti + j];
*dest = *src;
i++;
j++;
@@ -652,7 +654,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y)
return -1;
}
if (x >= VMap.Xsize - 8)
if (x >= gBackupMapLayout.Xsize - 8)
{
if (!gMapConnectionFlags.east)
{
@@ -670,7 +672,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y)
return CONNECTION_WEST;
}
if (y >= VMap.Ysize - 7)
if (y >= gBackupMapLayout.Ysize - 7)
{
if (!gMapConnectionFlags.south)
{
+1 -1
View File
@@ -88,7 +88,7 @@ bool8 MetatileBehavior_IsJumpSouth(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior)
bool8 MetatileBehavior_IsPokeGrass(u8 metatileBehavior)
{
if(metatileBehavior == MB_TALL_GRASS || metatileBehavior == MB_CYCLING_ROAD_PULL_DOWN_GRASS)
return TRUE;
+67 -67
View File
@@ -14,37 +14,37 @@ void SetQuestLogObjectEventsData(struct QuestLog * questLog)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
questLog->unk_008[i].active = gObjectEvents[i].active;
questLog->unk_008[i].mapobj_bit_3 = gObjectEvents[i].mapobj_bit_3;
questLog->unk_008[i].mapobj_bit_4 = gObjectEvents[i].mapobj_bit_4;
questLog->unk_008[i].mapobj_bit_5 = gObjectEvents[i].mapobj_bit_5;
questLog->unk_008[i].mapobj_bit_8 = gObjectEvents[i].mapobj_bit_8;
questLog->unk_008[i].mapobj_bit_9 = gObjectEvents[i].mapobj_bit_9;
questLog->unk_008[i].mapobj_bit_10 = gObjectEvents[i].mapobj_bit_10;
questLog->unk_008[i].mapobj_bit_11 = gObjectEvents[i].mapobj_bit_11;
questLog->unk_008[i].mapobj_bit_12 = gObjectEvents[i].mapobj_bit_12;
questLog->unk_008[i].mapobj_bit_13 = gObjectEvents[i].mapobj_bit_13;
questLog->unk_008[i].mapobj_bit_14 = gObjectEvents[i].mapobj_bit_14;
questLog->unk_008[i].mapobj_bit_15 = gObjectEvents[i].mapobj_bit_15;
questLog->unk_008[i].mapobj_bit_16 = gObjectEvents[i].mapobj_bit_16;
questLog->unk_008[i].mapobj_bit_23 = gObjectEvents[i].mapobj_bit_23;
questLog->unk_008[i].mapobj_bit_24 = gObjectEvents[i].mapobj_bit_24;
questLog->unk_008[i].mapobj_bit_25 = gObjectEvents[i].mapobj_bit_25;
questLog->unk_008[i].mapobj_bit_26 = gObjectEvents[i].mapobj_bit_26;
questLog->unk_008[i].mapobj_bit_3 = gObjectEvents[i].triggerGroundEffectsOnStop;
questLog->unk_008[i].mapobj_bit_4 = gObjectEvents[i].disableCoveringGroundEffects;
questLog->unk_008[i].mapobj_bit_5 = gObjectEvents[i].landingJump;
questLog->unk_008[i].mapobj_bit_8 = gObjectEvents[i].frozen;
questLog->unk_008[i].mapobj_bit_9 = gObjectEvents[i].facingDirectionLocked;
questLog->unk_008[i].mapobj_bit_10 = gObjectEvents[i].disableAnim;
questLog->unk_008[i].mapobj_bit_11 = gObjectEvents[i].enableAnim;
questLog->unk_008[i].mapobj_bit_12 = gObjectEvents[i].inanimate;
questLog->unk_008[i].mapobj_bit_13 = gObjectEvents[i].invisible;
questLog->unk_008[i].mapobj_bit_14 = gObjectEvents[i].offScreen;
questLog->unk_008[i].mapobj_bit_15 = gObjectEvents[i].trackedByCamera;
questLog->unk_008[i].mapobj_bit_16 = gObjectEvents[i].isPlayer;
questLog->unk_008[i].mapobj_bit_23 = gObjectEvents[i].spriteAnimPausedBackup;
questLog->unk_008[i].mapobj_bit_24 = gObjectEvents[i].spriteAffineAnimPausedBackup;
questLog->unk_008[i].mapobj_bit_25 = gObjectEvents[i].disableJumpLandingGroundEffect;
questLog->unk_008[i].mapobj_bit_26 = gObjectEvents[i].fixedPriority;
questLog->unk_008[i].mapobj_unk_18 = gObjectEvents[i].facingDirection;
questLog->unk_008[i].mapobj_unk_0B_0 = gObjectEvents[i].mapobj_unk_0B_0;
questLog->unk_008[i].elevation = gObjectEvents[i].elevation;
questLog->unk_008[i].mapobj_unk_0B_0 = gObjectEvents[i].currentElevation;
questLog->unk_008[i].elevation = gObjectEvents[i].previousElevation;
questLog->unk_008[i].graphicsId = gObjectEvents[i].graphicsId;
questLog->unk_008[i].animPattern = gObjectEvents[i].animPattern;
questLog->unk_008[i].animPattern = gObjectEvents[i].movementType;
questLog->unk_008[i].trainerType = gObjectEvents[i].trainerType;
questLog->unk_008[i].localId = gObjectEvents[i].localId;
questLog->unk_008[i].mapNum = gObjectEvents[i].mapNum;
questLog->unk_008[i].mapGroup = gObjectEvents[i].mapGroup;
questLog->unk_008[i].x = gObjectEvents[i].coords2.x;
questLog->unk_008[i].y = gObjectEvents[i].coords2.y;
questLog->unk_008[i].x = gObjectEvents[i].currentCoords.x;
questLog->unk_008[i].y = gObjectEvents[i].currentCoords.y;
questLog->unk_008[i].trainerRange_berryTreeId = gObjectEvents[i].trainerRange_berryTreeId;
questLog->unk_008[i].mapobj_unk_1F = gObjectEvents[i].mapobj_unk_1F;
questLog->unk_008[i].mapobj_unk_21 = gObjectEvents[i].mapobj_unk_21;
questLog->unk_008[i].animId = gObjectEvents[i].animId;
questLog->unk_008[i].mapobj_unk_1F = gObjectEvents[i].previousMetatileBehavior;
questLog->unk_008[i].mapobj_unk_21 = gObjectEvents[i].directionSequenceIndex;
questLog->unk_008[i].animId = gObjectEvents[i].playerCopyableMovement;
}
}
@@ -58,74 +58,74 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
gObjectEvents[i].active = questLogObjectEvents[i].active;
gObjectEvents[i].mapobj_bit_3 = questLogObjectEvents[i].mapobj_bit_3;
gObjectEvents[i].mapobj_bit_4 = questLogObjectEvents[i].mapobj_bit_4;
gObjectEvents[i].mapobj_bit_5 = questLogObjectEvents[i].mapobj_bit_5;
gObjectEvents[i].mapobj_bit_8 = questLogObjectEvents[i].mapobj_bit_8;
gObjectEvents[i].mapobj_bit_9 = questLogObjectEvents[i].mapobj_bit_9;
gObjectEvents[i].mapobj_bit_10 = questLogObjectEvents[i].mapobj_bit_10;
gObjectEvents[i].mapobj_bit_11 = questLogObjectEvents[i].mapobj_bit_11;
gObjectEvents[i].mapobj_bit_12 = questLogObjectEvents[i].mapobj_bit_12;
gObjectEvents[i].mapobj_bit_13 = questLogObjectEvents[i].mapobj_bit_13;
gObjectEvents[i].mapobj_bit_14 = questLogObjectEvents[i].mapobj_bit_14;
gObjectEvents[i].mapobj_bit_15 = questLogObjectEvents[i].mapobj_bit_15;
gObjectEvents[i].mapobj_bit_16 = questLogObjectEvents[i].mapobj_bit_16;
gObjectEvents[i].mapobj_bit_23 = questLogObjectEvents[i].mapobj_bit_23;
gObjectEvents[i].mapobj_bit_24 = questLogObjectEvents[i].mapobj_bit_24;
gObjectEvents[i].mapobj_bit_25 = questLogObjectEvents[i].mapobj_bit_25;
gObjectEvents[i].mapobj_bit_26 = questLogObjectEvents[i].mapobj_bit_26;
gObjectEvents[i].triggerGroundEffectsOnStop = questLogObjectEvents[i].mapobj_bit_3;
gObjectEvents[i].disableCoveringGroundEffects = questLogObjectEvents[i].mapobj_bit_4;
gObjectEvents[i].landingJump = questLogObjectEvents[i].mapobj_bit_5;
gObjectEvents[i].frozen = questLogObjectEvents[i].mapobj_bit_8;
gObjectEvents[i].facingDirectionLocked = questLogObjectEvents[i].mapobj_bit_9;
gObjectEvents[i].disableAnim = questLogObjectEvents[i].mapobj_bit_10;
gObjectEvents[i].enableAnim = questLogObjectEvents[i].mapobj_bit_11;
gObjectEvents[i].inanimate = questLogObjectEvents[i].mapobj_bit_12;
gObjectEvents[i].invisible = questLogObjectEvents[i].mapobj_bit_13;
gObjectEvents[i].offScreen = questLogObjectEvents[i].mapobj_bit_14;
gObjectEvents[i].trackedByCamera = questLogObjectEvents[i].mapobj_bit_15;
gObjectEvents[i].isPlayer = questLogObjectEvents[i].mapobj_bit_16;
gObjectEvents[i].spriteAnimPausedBackup = questLogObjectEvents[i].mapobj_bit_23;
gObjectEvents[i].spriteAffineAnimPausedBackup = questLogObjectEvents[i].mapobj_bit_24;
gObjectEvents[i].disableJumpLandingGroundEffect = questLogObjectEvents[i].mapobj_bit_25;
gObjectEvents[i].fixedPriority = questLogObjectEvents[i].mapobj_bit_26;
gObjectEvents[i].facingDirection = questLogObjectEvents[i].mapobj_unk_18;
gObjectEvents[i].mapobj_unk_0B_0 = questLogObjectEvents[i].mapobj_unk_0B_0;
gObjectEvents[i].elevation = questLogObjectEvents[i].elevation;
gObjectEvents[i].currentElevation = questLogObjectEvents[i].mapobj_unk_0B_0;
gObjectEvents[i].previousElevation = questLogObjectEvents[i].elevation;
gObjectEvents[i].graphicsId = questLogObjectEvents[i].graphicsId;
gObjectEvents[i].animPattern = questLogObjectEvents[i].animPattern;
gObjectEvents[i].movementType = questLogObjectEvents[i].animPattern;
gObjectEvents[i].trainerType = questLogObjectEvents[i].trainerType;
gObjectEvents[i].localId = questLogObjectEvents[i].localId;
gObjectEvents[i].mapNum = questLogObjectEvents[i].mapNum;
gObjectEvents[i].mapGroup = questLogObjectEvents[i].mapGroup;
gObjectEvents[i].coords2.x = questLogObjectEvents[i].x;
gObjectEvents[i].coords2.y = questLogObjectEvents[i].y;
gObjectEvents[i].currentCoords.x = questLogObjectEvents[i].x;
gObjectEvents[i].currentCoords.y = questLogObjectEvents[i].y;
gObjectEvents[i].trainerRange_berryTreeId = questLogObjectEvents[i].trainerRange_berryTreeId;
gObjectEvents[i].mapobj_unk_1F = questLogObjectEvents[i].mapobj_unk_1F;
gObjectEvents[i].mapobj_unk_21 = questLogObjectEvents[i].mapobj_unk_21;
gObjectEvents[i].animId = questLogObjectEvents[i].animId;
gObjectEvents[i].previousMetatileBehavior = questLogObjectEvents[i].mapobj_unk_1F;
gObjectEvents[i].directionSequenceIndex = questLogObjectEvents[i].mapobj_unk_21;
gObjectEvents[i].playerCopyableMovement = questLogObjectEvents[i].animId;
for (j = 0; j < 0x40; j++)
{
if (gObjectEvents[i].localId == templates[j].localId)
{
gObjectEvents[i].coords1.x = templates[j].x + 7;
gObjectEvents[i].coords1.y = templates[j].y + 7;
gObjectEvents[i].initialCoords.x = templates[j].x + 7;
gObjectEvents[i].initialCoords.y = templates[j].y + 7;
gObjectEvents[i].range.as_nybbles.x = templates[j].movementRangeX;
gObjectEvents[i].range.as_nybbles.y = templates[j].movementRangeY;
}
}
gObjectEvents[i].mapobj_unk_1E = MapGridGetMetatileBehaviorAt(gObjectEvents[i].coords2.x, gObjectEvents[i].coords2.y);
if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y)))
gObjectEvents[i].currentMetatileBehavior = MapGridGetMetatileBehaviorAt(gObjectEvents[i].currentCoords.x, gObjectEvents[i].currentCoords.y);
if (gObjectEvents[i].previousMetatileBehavior == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x), (s16)(gObjectEvents[i].currentCoords.y)))
{
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x;
gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y;
}
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x - 1), (s16)(gObjectEvents[i].coords2.y)))
else if (gObjectEvents[i].previousMetatileBehavior == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x - 1), (s16)(gObjectEvents[i].currentCoords.y)))
{
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x - 1;
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x - 1;
gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y;
}
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x + 1), (s16)(gObjectEvents[i].coords2.y)))
else if (gObjectEvents[i].previousMetatileBehavior == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x + 1), (s16)(gObjectEvents[i].currentCoords.y)))
{
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x + 1;
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x + 1;
gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y;
}
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y - 1)))
else if (gObjectEvents[i].previousMetatileBehavior == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x), (s16)(gObjectEvents[i].currentCoords.y - 1)))
{
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y - 1;
gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x;
gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y - 1;
}
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y + 1)))
else if (gObjectEvents[i].previousMetatileBehavior == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x), (s16)(gObjectEvents[i].currentCoords.y + 1)))
{
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y + 1;
gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x;
gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y + 1;
}
}
@@ -143,7 +143,7 @@ void sub_815A540(void)
{
struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
SetPlayerAvatarTransitionFlags(0x01);
DestroySprite(&gSprites[objectEvent->mapobj_unk_1A]);
DestroySprite(&gSprites[objectEvent->fieldEffectSpriteId]);
}
}
}
+12 -12
View File
@@ -58,7 +58,7 @@ static void sub_81504A8(void)
{
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
sub_81507BC(objectEvent, sub_805C808(0));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
}
@@ -66,7 +66,7 @@ static void sub_81504E8(void)
{
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
sub_81507BC(objectEvent, sub_805C808(1));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE);
sub_80BD620(0, 0);
}
@@ -87,7 +87,7 @@ static void sub_8150530(void)
else
{
sub_81507BC(objectEvent, sub_805C808(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
StartSpriteAnim(sprite, GetFishingNoCatchDirectionAnimNum(objectEvent->facingDirection));
}
}
@@ -99,10 +99,10 @@ static void sub_81505C4(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
ObjectEventClearAnimIfSpecialAnimActive(objectEvent);
objectEvent->mapobj_bit_11 = TRUE;
ObjectEventClearHeldMovementIfActive(objectEvent);
objectEvent->enableAnim = TRUE;
sub_81507BC(objectEvent, sub_805C808(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
StartSpriteAnim(sprite, GetFishingNoCatchDirectionAnimNum(objectEvent->facingDirection));
gTasks[taskId].data[0]++;
gTasks[taskId].data[1] = 0;
break;
@@ -114,7 +114,7 @@ static void sub_81505C4(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 2:
StartSpriteAnim(sprite, sub_8063500(GetPlayerFacingDirection()));
StartSpriteAnim(sprite, GetFishingBiteDirectionAnimNum(GetPlayerFacingDirection()));
gTasks[taskId].data[0]++;
break;
case 3:
@@ -125,7 +125,7 @@ static void sub_81505C4(u8 taskId)
sub_81507BC(objectEvent, sub_805C808(0));
else
sub_81507BC(objectEvent, sub_805C808(2));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
sprite->pos2.x = 0;
sprite->pos2.y = 0;
ScriptContext2_Disable();
@@ -143,13 +143,13 @@ static void sub_8150708(void)
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
{
sub_81507BC(objectEvent, sub_805C808(2));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
gFieldEffectArguments[0] = objectEvent->coords2.x;
gFieldEffectArguments[1] = objectEvent->coords2.y;
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
gFieldEffectArguments[1] = objectEvent->currentCoords.y;
gFieldEffectArguments[2] = gPlayerAvatar.objectEventId;
fieldEffectId = FieldEffectStart(FLDEFF_SURF_BLOB);
objectEvent->mapobj_unk_1A = fieldEffectId;
objectEvent->fieldEffectSpriteId = fieldEffectId;
sub_80DC44C(fieldEffectId, 1);
}
}
+2 -2
View File
@@ -1084,7 +1084,7 @@ bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx)
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
sub_805F7C4(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y);
TryMoveObjectEventToMapCoords(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y);
return FALSE;
}
@@ -1102,7 +1102,7 @@ bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
sub_805FE94(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
TryOverrideObjectEventTemplateCoords(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
return FALSE;
}
+9 -9
View File
@@ -598,7 +598,7 @@ static void sub_810C3B8(u8 taskId)
{
if (sub_810CF04(i) == TRUE)
{
if (gObjectEvents[i].mapobj_bit_1)
if (gObjectEvents[i].singleMovementActive)
return;
FreezeObjectEvent(&gObjectEvents[i]);
}
@@ -687,7 +687,7 @@ static void sub_810C594(void)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
struct ObjectEvent * objectEvent = &gObjectEvents[i];
if (objectEvent->animPattern == 0x4D || objectEvent->animPattern == 0x4E || objectEvent->animPattern == 0x4F)
if (objectEvent->movementType == 0x4D || objectEvent->movementType == 0x4E || objectEvent->movementType == 0x4F)
{
u8 r3 = sub_810CF54();
if (objectEvent->active && gSprites[objectEvent->spriteId].data[0] == i)
@@ -799,8 +799,8 @@ static void GatherNearbyTrainerInfo(void)
sVsSeeker->trainerInfo[vsSeekerObjectIdx].localId = templates[objectEventIdx].localId;
TryGetObjectEventIdByLocalIdAndMap(templates[objectEventIdx].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId);
sVsSeeker->trainerInfo[vsSeekerObjectIdx].objectEventId = objectEventId;
sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gObjectEvents[objectEventId].coords2.x - 7;
sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gObjectEvents[objectEventId].coords2.y - 7;
sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gObjectEvents[objectEventId].currentCoords.x - 7;
sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gObjectEvents[objectEventId].currentCoords.y - 7;
sVsSeeker->trainerInfo[vsSeekerObjectIdx].graphicsId = templates[objectEventIdx].graphicsId;
vsSeekerObjectIdx++;
}
@@ -909,7 +909,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
else
{
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = r7;
npc_coords_shift_still(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]);
ShiftStillObjectEventCoords(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]);
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerRematch);
sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = r8;
sVsSeeker->runningBehaviourEtcArray[sVsSeeker->numRematchableTrainers] = GetRunningBehaviorFromGraphicsId(sVsSeeker->trainerInfo[vsSeekerIdx].graphicsId);
@@ -952,12 +952,12 @@ void sub_810CB90(void)
TryGetObjectEventIdByLocalIdAndMap(r4[r8].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
r4_2 = &gObjectEvents[sp0];
sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual.
sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
OverrideMovementTypeForObjectEvent(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0;
if (gSelectedObjectEvent == sp0)
r4_2->animPattern = gUnknown_8453F67[r4_2->facingDirection];
r4_2->movementType = gUnknown_8453F67[r4_2->facingDirection];
else
r4_2->animPattern = 0x08;
r4_2->movementType = 0x08;
}
}
}
@@ -1313,7 +1313,7 @@ static void StartAllRespondantIdleMovements(void)
if (sub_810CF04(sVsSeeker->trainerInfo[j].objectEventId) == 1)
SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]);
sub_805FE7C(r4, sVsSeeker->runningBehaviourEtcArray[i]);
OverrideMovementTypeForObjectEvent(r4, sVsSeeker->runningBehaviourEtcArray[i]);
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[j].localId] = GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[j].trainerIdx, &dummy);
}
}
+3 -3
View File
@@ -48,13 +48,13 @@ gFieldLinkPlayerCount: @ 3005030
.include "fieldmap.o"
.align 4
gUnknown_3005050: @ 3005050
gFieldCamera: @ 3005050
.space 0x18
gUnknown_3005068: @ 3005068
gTotalCameraPixelOffsetY: @ 3005068
.space 0x4
gUnknown_300506C: @ 300506C
gTotalCameraPixelOffsetX: @ 300506C
.space 0x4
.align 2
+3 -3
View File
@@ -70,7 +70,7 @@ gUnknown_2031DE8: @ 2031DE8
gUnknown_2031DEA: @ 2031DEA
.space 0x2
gUnknown_2031DEC: @ 2031DEC
gLinkPlayerObjectEvents: @ 2031DEC
.space 0x10
.align 2
@@ -94,10 +94,10 @@ gObjectEvents: @ 2036E38
gPlayerAvatar: @ 2037078
.space 0x20
gUnknown_2037098: @ 2037098
sCurrentReflectionType: @ 2037098
.space 0x2
gUnknown_203709A: @ 203709A
sCurrentSpecialObjectPaletteTag: @ 203709A
.space 0x2
gUnknown_203709C: @ 203709C