through sub_80598CC
This commit is contained in:
@@ -884,7 +884,7 @@ sub_806CF38: @ 806CF38
|
|||||||
ldrh r1, [r4, 0x2]
|
ldrh r1, [r4, 0x2]
|
||||||
b _0806CF7E
|
b _0806CF7E
|
||||||
_0806CF60:
|
_0806CF60:
|
||||||
ldr r1, _0806CFA4 @ =gUnknown_826D2D8
|
ldr r1, _0806CFA4 @ =gDirectionToVectors
|
||||||
lsls r2, r6, 3
|
lsls r2, r6, 3
|
||||||
adds r0, r2, r1
|
adds r0, r2, r1
|
||||||
ldr r3, [r0]
|
ldr r3, [r0]
|
||||||
@@ -919,7 +919,7 @@ _0806CF9E:
|
|||||||
movs r0, 0
|
movs r0, 0
|
||||||
b _0806CFDE
|
b _0806CFDE
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806CFA4: .4byte gUnknown_826D2D8
|
_0806CFA4: .4byte gDirectionToVectors
|
||||||
_0806CFA8: .4byte gMapObjects
|
_0806CFA8: .4byte gMapObjects
|
||||||
_0806CFAC:
|
_0806CFAC:
|
||||||
movs r4, 0
|
movs r4, 0
|
||||||
@@ -994,7 +994,7 @@ _0806D02A:
|
|||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
cmp r0, 0x1
|
cmp r0, 0x1
|
||||||
bne _0806D092
|
bne _0806D092
|
||||||
ldr r1, _0806D09C @ =gUnknown_826D2D8
|
ldr r1, _0806D09C @ =gDirectionToVectors
|
||||||
mov r0, r8
|
mov r0, r8
|
||||||
lsls r2, r0, 3
|
lsls r2, r0, 3
|
||||||
adds r0, r2, r1
|
adds r0, r2, r1
|
||||||
@@ -1042,7 +1042,7 @@ _0806D092:
|
|||||||
b _0806D0C8
|
b _0806D0C8
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806D098: .4byte gMapObjects
|
_0806D098: .4byte gMapObjects
|
||||||
_0806D09C: .4byte gUnknown_826D2D8
|
_0806D09C: .4byte gDirectionToVectors
|
||||||
_0806D0A0:
|
_0806D0A0:
|
||||||
ldr r0, _0806D0D4 @ =gSelectedEventObject
|
ldr r0, _0806D0D4 @ =gSelectedEventObject
|
||||||
strb r5, [r0]
|
strb r5, [r0]
|
||||||
|
|||||||
@@ -845,7 +845,7 @@ unc_grass_normal: @ 80DB3EC
|
|||||||
lsrs r4, r0, 8
|
lsrs r4, r0, 8
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r7, r0, 24
|
lsrs r7, r0, 24
|
||||||
ldr r3, _080DB498 @ =gUnknown_2036E18
|
ldr r3, _080DB498 @ =gCamera
|
||||||
ldrb r1, [r3]
|
ldrb r1, [r3]
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
ands r0, r1
|
ands r0, r1
|
||||||
@@ -921,7 +921,7 @@ _080DB48C:
|
|||||||
bl FieldEffectStop
|
bl FieldEffectStop
|
||||||
b _080DB4E4
|
b _080DB4E4
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080DB498: .4byte gUnknown_2036E18
|
_080DB498: .4byte gCamera
|
||||||
_080DB49C: .4byte gSaveBlock1Ptr
|
_080DB49C: .4byte gSaveBlock1Ptr
|
||||||
_080DB4A0:
|
_080DB4A0:
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
@@ -1196,7 +1196,7 @@ unc_grass_tall: @ 80DB69C
|
|||||||
lsrs r7, r0, 8
|
lsrs r7, r0, 8
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r6, r0, 24
|
lsrs r6, r0, 24
|
||||||
ldr r3, _080DB748 @ =gUnknown_2036E18
|
ldr r3, _080DB748 @ =gCamera
|
||||||
ldrb r1, [r3]
|
ldrb r1, [r3]
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
ands r0, r1
|
ands r0, r1
|
||||||
@@ -1272,7 +1272,7 @@ _080DB73C:
|
|||||||
bl FieldEffectStop
|
bl FieldEffectStop
|
||||||
b _080DB786
|
b _080DB786
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080DB748: .4byte gUnknown_2036E18
|
_080DB748: .4byte gCamera
|
||||||
_080DB74C: .4byte gSaveBlock1Ptr
|
_080DB74C: .4byte gSaveBlock1Ptr
|
||||||
_080DB750:
|
_080DB750:
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
|
|||||||
+2
-2
@@ -3516,7 +3516,7 @@ npc_coords_shift_still: @ 805F818
|
|||||||
thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
|
thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
|
||||||
UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C
|
UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
ldr r2, _0805F88C @ =gUnknown_2036E18
|
ldr r2, _0805F88C @ =gCamera
|
||||||
ldrb r1, [r2]
|
ldrb r1, [r2]
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
ands r0, r1
|
ands r0, r1
|
||||||
@@ -3566,7 +3566,7 @@ _0805F884:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0805F88C: .4byte gUnknown_2036E18
|
_0805F88C: .4byte gCamera
|
||||||
_0805F890: .4byte gMapObjects
|
_0805F890: .4byte gMapObjects
|
||||||
thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
|
thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
|
||||||
|
|
||||||
|
|||||||
-718
@@ -3,724 +3,6 @@
|
|||||||
|
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start GetPostCameraMoveMapBorderId
|
|
||||||
GetPostCameraMoveMapBorderId: @ 805943C
|
|
||||||
push {r4,lr}
|
|
||||||
adds r3, r1, 0
|
|
||||||
ldr r1, _08059460 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r1]
|
|
||||||
movs r4, 0
|
|
||||||
ldrsh r2, [r1, r4]
|
|
||||||
adds r0, 0x7
|
|
||||||
adds r2, r0
|
|
||||||
movs r0, 0x2
|
|
||||||
ldrsh r1, [r1, r0]
|
|
||||||
adds r3, 0x7
|
|
||||||
adds r1, r3
|
|
||||||
adds r0, r2, 0
|
|
||||||
bl GetMapBorderIdAt
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_08059460: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end GetPostCameraMoveMapBorderId
|
|
||||||
|
|
||||||
thumb_func_start CanCameraMoveInDirection
|
|
||||||
CanCameraMoveInDirection: @ 8059464
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r1, _0805949C @ =gSaveBlock1Ptr
|
|
||||||
ldr r4, [r1]
|
|
||||||
movs r1, 0
|
|
||||||
ldrsh r3, [r4, r1]
|
|
||||||
ldr r2, _080594A0 @ =gUnknown_826D2D8
|
|
||||||
lsls r0, 3
|
|
||||||
adds r1, r0, r2
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r1, 0x7
|
|
||||||
adds r3, r1
|
|
||||||
movs r5, 0x2
|
|
||||||
ldrsh r1, [r4, r5]
|
|
||||||
adds r2, 0x4
|
|
||||||
adds r0, r2
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x7
|
|
||||||
adds r1, r0
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl GetMapBorderIdAt
|
|
||||||
movs r1, 0x1
|
|
||||||
negs r1, r1
|
|
||||||
cmp r0, r1
|
|
||||||
beq _080594A4
|
|
||||||
movs r0, 0x1
|
|
||||||
b _080594A6
|
|
||||||
.align 2, 0
|
|
||||||
_0805949C: .4byte gSaveBlock1Ptr
|
|
||||||
_080594A0: .4byte gUnknown_826D2D8
|
|
||||||
_080594A4:
|
|
||||||
movs r0, 0
|
|
||||||
_080594A6:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end CanCameraMoveInDirection
|
|
||||||
|
|
||||||
thumb_func_start sub_80594AC
|
|
||||||
sub_80594AC: @ 80594AC
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r5, r0, 0
|
|
||||||
adds r4, r1, 0
|
|
||||||
adds r6, r2, 0
|
|
||||||
adds r7, r3, 0
|
|
||||||
bl mapconnection_get_mapheader
|
|
||||||
adds r3, r0, 0
|
|
||||||
cmp r4, 0x2
|
|
||||||
beq _08059514
|
|
||||||
cmp r4, 0x2
|
|
||||||
bgt _080594CA
|
|
||||||
cmp r4, 0x1
|
|
||||||
beq _08059500
|
|
||||||
b _08059526
|
|
||||||
_080594CA:
|
|
||||||
cmp r4, 0x3
|
|
||||||
beq _080594E8
|
|
||||||
cmp r4, 0x4
|
|
||||||
bne _08059526
|
|
||||||
ldr r0, _080594E4 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
negs r0, r6
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r2, [r5, 0x4]
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
subs r0, r2
|
|
||||||
b _08059524
|
|
||||||
.align 2, 0
|
|
||||||
_080594E4: .4byte gSaveBlock1Ptr
|
|
||||||
_080594E8:
|
|
||||||
ldr r0, _080594FC @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r0, [r3]
|
|
||||||
ldr r0, [r0]
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r2, [r5, 0x4]
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
subs r0, r2
|
|
||||||
b _08059524
|
|
||||||
.align 2, 0
|
|
||||||
_080594FC: .4byte gSaveBlock1Ptr
|
|
||||||
_08059500:
|
|
||||||
ldr r0, _08059510 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, [r5, 0x4]
|
|
||||||
ldrh r0, [r1]
|
|
||||||
subs r0, r2
|
|
||||||
strh r0, [r1]
|
|
||||||
negs r0, r7
|
|
||||||
b _08059524
|
|
||||||
.align 2, 0
|
|
||||||
_08059510: .4byte gSaveBlock1Ptr
|
|
||||||
_08059514:
|
|
||||||
ldr r0, _0805952C @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, [r5, 0x4]
|
|
||||||
ldrh r0, [r1]
|
|
||||||
subs r0, r2
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r0, [r3]
|
|
||||||
ldr r0, [r0, 0x4]
|
|
||||||
_08059524:
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
_08059526:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0805952C: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end sub_80594AC
|
|
||||||
|
|
||||||
thumb_func_start CameraMove
|
|
||||||
CameraMove: @ 8059530
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r10
|
|
||||||
mov r6, r9
|
|
||||||
mov r5, r8
|
|
||||||
push {r5-r7}
|
|
||||||
mov r10, r0
|
|
||||||
mov r9, r1
|
|
||||||
ldr r1, _08059570 @ =gUnknown_2036E18
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r1, 0x2
|
|
||||||
negs r1, r1
|
|
||||||
ands r1, r0
|
|
||||||
ldr r2, _08059570 @ =gUnknown_2036E18
|
|
||||||
strb r1, [r2]
|
|
||||||
mov r0, r10
|
|
||||||
mov r1, r9
|
|
||||||
bl GetPostCameraMoveMapBorderId
|
|
||||||
adds r7, r0, 0
|
|
||||||
adds r0, r7, 0x1
|
|
||||||
cmp r0, 0x1
|
|
||||||
bhi _08059578
|
|
||||||
ldr r0, _08059574 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldrh r0, [r1]
|
|
||||||
add r0, r10
|
|
||||||
strh r0, [r1]
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
add r0, r9
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
b _080595E2
|
|
||||||
.align 2, 0
|
|
||||||
_08059570: .4byte gUnknown_2036E18
|
|
||||||
_08059574: .4byte gSaveBlock1Ptr
|
|
||||||
_08059578:
|
|
||||||
bl save_serialize_map
|
|
||||||
ldr r1, _080595F8 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r1]
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r5, [r0, r2]
|
|
||||||
movs r1, 0x2
|
|
||||||
ldrsh r6, [r0, r1]
|
|
||||||
lsls r2, r7, 24
|
|
||||||
lsrs r2, 24
|
|
||||||
mov r8, r2
|
|
||||||
mov r0, r8
|
|
||||||
adds r1, r5, 0
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl sub_8059600
|
|
||||||
adds r4, r0, 0
|
|
||||||
adds r1, r7, 0
|
|
||||||
mov r2, r10
|
|
||||||
mov r3, r9
|
|
||||||
bl sub_80594AC
|
|
||||||
ldrb r0, [r4, 0x8]
|
|
||||||
ldrb r1, [r4, 0x9]
|
|
||||||
bl sub_8055864
|
|
||||||
ldr r1, _080595FC @ =gUnknown_2036E18
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r1, 0x1
|
|
||||||
orrs r0, r1
|
|
||||||
ldr r2, _080595FC @ =gUnknown_2036E18
|
|
||||||
strb r0, [r2]
|
|
||||||
ldr r0, _080595F8 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
subs r5, r0
|
|
||||||
ldr r0, _080595FC @ =gUnknown_2036E18
|
|
||||||
str r5, [r0, 0x4]
|
|
||||||
movs r2, 0x2
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
subs r6, r0
|
|
||||||
ldr r0, _080595FC @ =gUnknown_2036E18
|
|
||||||
str r6, [r0, 0x8]
|
|
||||||
ldrh r0, [r1]
|
|
||||||
add r0, r10
|
|
||||||
strh r0, [r1]
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
add r0, r9
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
mov r0, r8
|
|
||||||
bl sub_8059250
|
|
||||||
_080595E2:
|
|
||||||
ldr r0, _080595FC @ =gUnknown_2036E18
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 31
|
|
||||||
lsrs r0, 31
|
|
||||||
pop {r3-r5}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
mov r10, r5
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_080595F8: .4byte gSaveBlock1Ptr
|
|
||||||
_080595FC: .4byte gUnknown_2036E18
|
|
||||||
thumb_func_end CameraMove
|
|
||||||
|
|
||||||
thumb_func_start sub_8059600
|
|
||||||
sub_8059600: @ 8059600
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
mov r9, r1
|
|
||||||
mov r8, r2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
ldr r0, _0805963C @ =gMapHeader
|
|
||||||
ldr r0, [r0, 0xC]
|
|
||||||
ldr r7, [r0]
|
|
||||||
ldr r4, [r0, 0x4]
|
|
||||||
movs r5, 0
|
|
||||||
cmp r5, r7
|
|
||||||
bge _08059648
|
|
||||||
_0805961E:
|
|
||||||
ldrb r0, [r4]
|
|
||||||
cmp r0, r6
|
|
||||||
bne _08059640
|
|
||||||
adds r0, r6, 0
|
|
||||||
mov r1, r9
|
|
||||||
mov r2, r8
|
|
||||||
adds r3, r4, 0
|
|
||||||
bl sub_8059658
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08059640
|
|
||||||
adds r0, r4, 0
|
|
||||||
b _0805964A
|
|
||||||
.align 2, 0
|
|
||||||
_0805963C: .4byte gMapHeader
|
|
||||||
_08059640:
|
|
||||||
adds r5, 0x1
|
|
||||||
adds r4, 0xC
|
|
||||||
cmp r5, r7
|
|
||||||
blt _0805961E
|
|
||||||
_08059648:
|
|
||||||
movs r0, 0
|
|
||||||
_0805964A:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8059600
|
|
||||||
|
|
||||||
thumb_func_start sub_8059658
|
|
||||||
sub_8059658: @ 8059658
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
adds r7, r1, 0
|
|
||||||
mov r8, r2
|
|
||||||
adds r5, r3, 0
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
adds r6, r4, 0
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl mapconnection_get_mapheader
|
|
||||||
adds r2, r0, 0
|
|
||||||
cmp r4, 0x1
|
|
||||||
blt _080596B0
|
|
||||||
cmp r4, 0x2
|
|
||||||
bgt _08059690
|
|
||||||
ldr r0, _0805968C @ =gMapHeader
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r0, [r2]
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldr r3, [r5, 0x4]
|
|
||||||
adds r0, r7, 0
|
|
||||||
b _080596A2
|
|
||||||
.align 2, 0
|
|
||||||
_0805968C: .4byte gMapHeader
|
|
||||||
_08059690:
|
|
||||||
cmp r6, 0x4
|
|
||||||
bgt _080596B0
|
|
||||||
ldr r0, _080596AC @ =gMapHeader
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, [r0, 0x4]
|
|
||||||
ldr r0, [r2]
|
|
||||||
ldr r2, [r0, 0x4]
|
|
||||||
ldr r3, [r5, 0x4]
|
|
||||||
mov r0, r8
|
|
||||||
_080596A2:
|
|
||||||
bl sub_80596BC
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
b _080596B2
|
|
||||||
.align 2, 0
|
|
||||||
_080596AC: .4byte gMapHeader
|
|
||||||
_080596B0:
|
|
||||||
movs r0, 0
|
|
||||||
_080596B2:
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8059658
|
|
||||||
|
|
||||||
thumb_func_start sub_80596BC
|
|
||||||
sub_80596BC: @ 80596BC
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r2, r3, 0
|
|
||||||
cmp r3, 0
|
|
||||||
bge _080596CA
|
|
||||||
movs r3, 0
|
|
||||||
_080596CA:
|
|
||||||
adds r2, r0, r2
|
|
||||||
cmp r2, r1
|
|
||||||
bge _080596D2
|
|
||||||
adds r1, r2, 0
|
|
||||||
_080596D2:
|
|
||||||
cmp r3, r4
|
|
||||||
bgt _080596DE
|
|
||||||
cmp r4, r1
|
|
||||||
bgt _080596DE
|
|
||||||
movs r0, 0x1
|
|
||||||
b _080596E0
|
|
||||||
_080596DE:
|
|
||||||
movs r0, 0
|
|
||||||
_080596E0:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80596BC
|
|
||||||
|
|
||||||
thumb_func_start sub_80596E8
|
|
||||||
sub_80596E8: @ 80596E8
|
|
||||||
push {lr}
|
|
||||||
cmp r0, 0
|
|
||||||
blt _080596F6
|
|
||||||
cmp r0, r1
|
|
||||||
bge _080596F6
|
|
||||||
movs r0, 0x1
|
|
||||||
b _080596F8
|
|
||||||
_080596F6:
|
|
||||||
movs r0, 0
|
|
||||||
_080596F8:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80596E8
|
|
||||||
|
|
||||||
thumb_func_start sub_80596FC
|
|
||||||
sub_80596FC: @ 80596FC
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
adds r5, r1, 0
|
|
||||||
adds r6, r2, 0
|
|
||||||
bl mapconnection_get_mapheader
|
|
||||||
adds r1, r0, 0
|
|
||||||
ldrb r0, [r4]
|
|
||||||
cmp r0, 0x1
|
|
||||||
blt _08059734
|
|
||||||
cmp r0, 0x2
|
|
||||||
bgt _08059722
|
|
||||||
ldr r0, [r4, 0x4]
|
|
||||||
subs r0, r5, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
ldr r1, [r1]
|
|
||||||
bl sub_80596E8
|
|
||||||
b _08059736
|
|
||||||
_08059722:
|
|
||||||
cmp r0, 0x4
|
|
||||||
bgt _08059734
|
|
||||||
ldr r0, [r4, 0x4]
|
|
||||||
subs r0, r6, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
ldr r1, [r1, 0x4]
|
|
||||||
bl sub_80596E8
|
|
||||||
b _08059736
|
|
||||||
_08059734:
|
|
||||||
movs r0, 0
|
|
||||||
_08059736:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80596FC
|
|
||||||
|
|
||||||
thumb_func_start sub_805973C
|
|
||||||
sub_805973C: @ 805973C
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r10
|
|
||||||
mov r6, r9
|
|
||||||
mov r5, r8
|
|
||||||
push {r5-r7}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
mov r8, r0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
ldr r2, _0805975C @ =gMapHeader
|
|
||||||
ldr r0, [r2, 0xC]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08059764
|
|
||||||
b _080597DA
|
|
||||||
.align 2, 0
|
|
||||||
_0805975C: .4byte gMapHeader
|
|
||||||
_08059760:
|
|
||||||
adds r0, r4, 0
|
|
||||||
b _080597DC
|
|
||||||
_08059764:
|
|
||||||
ldr r7, [r0]
|
|
||||||
ldr r4, [r0, 0x4]
|
|
||||||
movs r6, 0
|
|
||||||
cmp r6, r7
|
|
||||||
bge _080597DA
|
|
||||||
lsls r0, r1, 16
|
|
||||||
asrs r5, r0, 16
|
|
||||||
mov r9, r2
|
|
||||||
mov r1, r8
|
|
||||||
lsls r0, r1, 16
|
|
||||||
asrs r0, 16
|
|
||||||
mov r10, r0
|
|
||||||
_0805977C:
|
|
||||||
ldrb r1, [r4]
|
|
||||||
adds r3, r1, 0
|
|
||||||
subs r0, r1, 0x5
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bls _080597D2
|
|
||||||
cmp r1, 0x2
|
|
||||||
bne _08059792
|
|
||||||
cmp r5, 0x6
|
|
||||||
bgt _080597D2
|
|
||||||
_08059792:
|
|
||||||
cmp r1, 0x1
|
|
||||||
bne _080597A2
|
|
||||||
mov r2, r9
|
|
||||||
ldr r0, [r2]
|
|
||||||
ldr r0, [r0, 0x4]
|
|
||||||
adds r0, 0x7
|
|
||||||
cmp r5, r0
|
|
||||||
blt _080597D2
|
|
||||||
_080597A2:
|
|
||||||
mov r0, r8
|
|
||||||
lsls r2, r0, 16
|
|
||||||
cmp r1, 0x3
|
|
||||||
bne _080597B0
|
|
||||||
mov r1, r10
|
|
||||||
cmp r1, 0x6
|
|
||||||
bgt _080597D2
|
|
||||||
_080597B0:
|
|
||||||
cmp r3, 0x4
|
|
||||||
bne _080597C2
|
|
||||||
asrs r1, r2, 16
|
|
||||||
mov r3, r9
|
|
||||||
ldr r0, [r3]
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x7
|
|
||||||
cmp r1, r0
|
|
||||||
blt _080597D2
|
|
||||||
_080597C2:
|
|
||||||
asrs r1, r2, 16
|
|
||||||
subs r1, 0x7
|
|
||||||
adds r0, r4, 0
|
|
||||||
subs r2, r5, 0x7
|
|
||||||
bl sub_80596FC
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08059760
|
|
||||||
_080597D2:
|
|
||||||
adds r6, 0x1
|
|
||||||
adds r4, 0xC
|
|
||||||
cmp r6, r7
|
|
||||||
blt _0805977C
|
|
||||||
_080597DA:
|
|
||||||
movs r0, 0
|
|
||||||
_080597DC:
|
|
||||||
pop {r3-r5}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
mov r10, r5
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_805973C
|
|
||||||
|
|
||||||
thumb_func_start sub_80597EC
|
|
||||||
sub_80597EC: @ 80597EC
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
ldr r2, _08059804 @ =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r2]
|
|
||||||
subs r0, 0x7
|
|
||||||
strh r0, [r2]
|
|
||||||
subs r1, 0x7
|
|
||||||
strh r1, [r2, 0x2]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08059804: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end sub_80597EC
|
|
||||||
|
|
||||||
thumb_func_start sav1_camera_get_focus_coords
|
|
||||||
sav1_camera_get_focus_coords: @ 8059808
|
|
||||||
ldr r2, _0805981C @ =gSaveBlock1Ptr
|
|
||||||
ldr r3, [r2]
|
|
||||||
ldrh r2, [r3]
|
|
||||||
adds r2, 0x7
|
|
||||||
strh r2, [r0]
|
|
||||||
ldrh r0, [r3, 0x2]
|
|
||||||
adds r0, 0x7
|
|
||||||
strh r0, [r1]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0805981C: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end sav1_camera_get_focus_coords
|
|
||||||
|
|
||||||
thumb_func_start SetCameraCoords
|
|
||||||
SetCameraCoords: @ 8059820
|
|
||||||
ldr r2, _0805982C @ =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r2]
|
|
||||||
strh r0, [r2]
|
|
||||||
strh r1, [r2, 0x2]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0805982C: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end SetCameraCoords
|
|
||||||
|
|
||||||
thumb_func_start GetCameraCoords
|
|
||||||
GetCameraCoords: @ 8059830
|
|
||||||
ldr r2, _08059840 @ =gSaveBlock1Ptr
|
|
||||||
ldr r3, [r2]
|
|
||||||
ldrh r2, [r3]
|
|
||||||
strh r2, [r0]
|
|
||||||
ldrh r0, [r3, 0x2]
|
|
||||||
strh r0, [r1]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08059840: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end GetCameraCoords
|
|
||||||
|
|
||||||
thumb_func_start copy_tileset_patterns_to_vram
|
|
||||||
copy_tileset_patterns_to_vram: @ 8059844
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
adds r3, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r4, r1, 16
|
|
||||||
adds r6, r4, 0
|
|
||||||
lsls r2, 16
|
|
||||||
lsrs r5, r2, 16
|
|
||||||
adds r7, r5, 0
|
|
||||||
cmp r3, 0
|
|
||||||
beq _08059880
|
|
||||||
ldrb r0, [r3]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08059870
|
|
||||||
ldr r1, [r3, 0x4]
|
|
||||||
lsls r2, r4, 21
|
|
||||||
lsrs r2, 16
|
|
||||||
movs r0, 0x2
|
|
||||||
adds r3, r5, 0
|
|
||||||
bl LoadBgTiles
|
|
||||||
b _08059880
|
|
||||||
_08059870:
|
|
||||||
ldr r1, [r3, 0x4]
|
|
||||||
lsls r2, r6, 5
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
adds r3, r7, 0
|
|
||||||
bl sub_80F68F0
|
|
||||||
_08059880:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end copy_tileset_patterns_to_vram
|
|
||||||
|
|
||||||
thumb_func_start copy_tileset_patterns_to_vram2
|
|
||||||
copy_tileset_patterns_to_vram2: @ 8059888
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
adds r3, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r4, r1, 16
|
|
||||||
adds r6, r4, 0
|
|
||||||
lsls r2, 16
|
|
||||||
lsrs r5, r2, 16
|
|
||||||
adds r7, r5, 0
|
|
||||||
cmp r3, 0
|
|
||||||
beq _080598C4
|
|
||||||
ldrb r0, [r3]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080598B4
|
|
||||||
ldr r1, [r3, 0x4]
|
|
||||||
lsls r2, r4, 21
|
|
||||||
lsrs r2, 16
|
|
||||||
movs r0, 0x2
|
|
||||||
adds r3, r5, 0
|
|
||||||
bl LoadBgTiles
|
|
||||||
b _080598C4
|
|
||||||
_080598B4:
|
|
||||||
ldr r1, [r3, 0x4]
|
|
||||||
lsls r2, r6, 5
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
adds r3, r7, 0
|
|
||||||
bl sub_80F69E8
|
|
||||||
_080598C4:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end copy_tileset_patterns_to_vram2
|
|
||||||
|
|
||||||
thumb_func_start sub_80598CC
|
|
||||||
sub_80598CC: @ 80598CC
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r5, r1, 16
|
|
||||||
ldr r0, _080598EC @ =gUnknown_2036E28
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _080598F0
|
|
||||||
cmp r0, 0x1
|
|
||||||
ble _0805993A
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _08059904
|
|
||||||
cmp r0, 0x3
|
|
||||||
beq _08059918
|
|
||||||
b _0805993A
|
|
||||||
.align 2, 0
|
|
||||||
_080598EC: .4byte gUnknown_2036E28
|
|
||||||
_080598F0:
|
|
||||||
lsls r4, 1
|
|
||||||
ldr r0, _08059900 @ =gPlttBufferUnfaded
|
|
||||||
adds r0, r4, r0
|
|
||||||
adds r1, r5, 0
|
|
||||||
bl TintPalette_GrayScale
|
|
||||||
b _0805992C
|
|
||||||
.align 2, 0
|
|
||||||
_08059900: .4byte gPlttBufferUnfaded
|
|
||||||
_08059904:
|
|
||||||
lsls r4, 1
|
|
||||||
ldr r0, _08059914 @ =gPlttBufferUnfaded
|
|
||||||
adds r0, r4, r0
|
|
||||||
adds r1, r5, 0
|
|
||||||
bl TintPalette_SepiaTone
|
|
||||||
b _0805992C
|
|
||||||
.align 2, 0
|
|
||||||
_08059914: .4byte gPlttBufferUnfaded
|
|
||||||
_08059918:
|
|
||||||
adds r0, r4, 0
|
|
||||||
adds r1, r5, 0
|
|
||||||
bl sub_8111F38
|
|
||||||
lsls r4, 1
|
|
||||||
ldr r0, _08059940 @ =gPlttBufferUnfaded
|
|
||||||
adds r0, r4, r0
|
|
||||||
adds r1, r5, 0
|
|
||||||
bl TintPalette_GrayScale
|
|
||||||
_0805992C:
|
|
||||||
ldr r0, _08059940 @ =gPlttBufferUnfaded
|
|
||||||
adds r0, r4, r0
|
|
||||||
ldr r1, _08059944 @ =gPlttBufferFaded
|
|
||||||
adds r1, r4, r1
|
|
||||||
adds r2, r5, 0
|
|
||||||
bl CpuSet
|
|
||||||
_0805993A:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08059940: .4byte gPlttBufferUnfaded
|
|
||||||
_08059944: .4byte gPlttBufferFaded
|
|
||||||
thumb_func_end sub_80598CC
|
|
||||||
|
|
||||||
thumb_func_start sub_8059948
|
thumb_func_start sub_8059948
|
||||||
sub_8059948: @ 8059948
|
sub_8059948: @ 8059948
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
|
|||||||
+6
-6
@@ -4690,7 +4690,7 @@ mli4_mapscripts_and_other: @ 805709C
|
|||||||
adds r4, 0x2
|
adds r4, 0x2
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
adds r1, r4, 0
|
adds r1, r4, 0
|
||||||
bl sav1_camera_get_focus_coords
|
bl GetCameraFocusCoords
|
||||||
bl sub_8055A6C
|
bl sub_8055A6C
|
||||||
adds r5, r0, 0
|
adds r5, r0, 0
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
@@ -4792,7 +4792,7 @@ sub_8057178: @ 8057178
|
|||||||
adds r4, 0x2
|
adds r4, 0x2
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
adds r1, r4, 0
|
adds r1, r4, 0
|
||||||
bl sav1_camera_get_focus_coords
|
bl GetCameraFocusCoords
|
||||||
mov r2, sp
|
mov r2, sp
|
||||||
ldr r0, _080571A4 @ =gUnknown_300502C
|
ldr r0, _080571A4 @ =gUnknown_300502C
|
||||||
ldrb r1, [r0]
|
ldrb r1, [r0]
|
||||||
@@ -4801,7 +4801,7 @@ sub_8057178: @ 8057178
|
|||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
ldrh r1, [r4]
|
ldrh r1, [r4]
|
||||||
bl sub_80597EC
|
bl SetCameraFocusCoords
|
||||||
add sp, 0x4
|
add sp, 0x4
|
||||||
pop {r4}
|
pop {r4}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
@@ -4820,7 +4820,7 @@ sub_80571A8: @ 80571A8
|
|||||||
adds r4, 0x2
|
adds r4, 0x2
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
adds r1, r4, 0
|
adds r1, r4, 0
|
||||||
bl sav1_camera_get_focus_coords
|
bl GetCameraFocusCoords
|
||||||
mov r3, sp
|
mov r3, sp
|
||||||
mov r2, sp
|
mov r2, sp
|
||||||
ldr r0, _08057224 @ =gUnknown_300502C
|
ldr r0, _08057224 @ =gUnknown_300502C
|
||||||
@@ -6748,7 +6748,7 @@ _08058074:
|
|||||||
ldr r1, [r4, 0x8]
|
ldr r1, [r4, 0x8]
|
||||||
str r0, [sp]
|
str r0, [sp]
|
||||||
str r1, [sp, 0x4]
|
str r1, [sp, 0x4]
|
||||||
ldr r3, _080580E4 @ =gUnknown_826D2D8
|
ldr r3, _080580E4 @ =gDirectionToVectors
|
||||||
ldrb r0, [r4, 0x3]
|
ldrb r0, [r4, 0x3]
|
||||||
lsls r0, 3
|
lsls r0, 3
|
||||||
adds r0, r3
|
adds r0, r3
|
||||||
@@ -6801,7 +6801,7 @@ _080580E0:
|
|||||||
ldr r0, _080580F8 @ =gUnknown_81BB9A3
|
ldr r0, _080580F8 @ =gUnknown_81BB9A3
|
||||||
b _08058122
|
b _08058122
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080580E4: .4byte gUnknown_826D2D8
|
_080580E4: .4byte gDirectionToVectors
|
||||||
_080580E8: .4byte 0xffff0000
|
_080580E8: .4byte 0xffff0000
|
||||||
_080580EC: .4byte 0x0000ffff
|
_080580EC: .4byte 0x0000ffff
|
||||||
_080580F0: .4byte 0xffffff00
|
_080580F0: .4byte 0xffffff00
|
||||||
|
|||||||
+1
-1
@@ -908,7 +908,7 @@ gUnknown_826D29E:: @ 826D29E
|
|||||||
gUnknown_826D2B0:: @ 826D2B0
|
gUnknown_826D2B0:: @ 826D2B0
|
||||||
.incbin "baserom.gba", 0x26D2B0, 0x28
|
.incbin "baserom.gba", 0x26D2B0, 0x28
|
||||||
|
|
||||||
gUnknown_826D2D8:: @ 826D2D8
|
gDirectionToVectors:: @ 826D2D8
|
||||||
.incbin "baserom.gba", 0x26D2D8, 0x48
|
.incbin "baserom.gba", 0x26D2D8, 0x48
|
||||||
|
|
||||||
gUnknown_826D320:: @ 826D320
|
gUnknown_826D320:: @ 826D320
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ void MapGridSetMetatileEntryAt(int, int, u16);
|
|||||||
void GetCameraCoords(u16*, u16*);
|
void GetCameraCoords(u16*, u16*);
|
||||||
bool8 MapGridIsImpassableAt(s32, s32);
|
bool8 MapGridIsImpassableAt(s32, s32);
|
||||||
s32 GetMapBorderIdAt(s32, s32);
|
s32 GetMapBorderIdAt(s32, s32);
|
||||||
bool32 CanCameraMoveInDirection(u8);
|
bool32 CanCameraMoveInDirection(s32);
|
||||||
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr);
|
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr);
|
||||||
|
|
||||||
#endif //GUARD_FIELDMAP_H
|
#endif //GUARD_FIELDMAP_H
|
||||||
|
|||||||
@@ -37,5 +37,6 @@ void clear_scheduled_bg_copies_to_vram(void);
|
|||||||
void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
|
void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
|
||||||
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
|
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
|
||||||
void sub_810F4D8(u8 windowId, bool32 someBool);
|
void sub_810F4D8(u8 windowId, bool32 someBool);
|
||||||
|
void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||||
|
|
||||||
#endif // GUARD_MENU_H
|
#endif // GUARD_MENU_H
|
||||||
|
|||||||
@@ -22,5 +22,6 @@ void sub_80F6EE4(u8 windowId, bool8 transfer);
|
|||||||
void sub_80F7974(const u8 *);
|
void sub_80F7974(const u8 *);
|
||||||
u8 GetStartMenuWindowId(void);
|
u8 GetStartMenuWindowId(void);
|
||||||
void sub_80F7998(void);
|
void sub_80F7998(void);
|
||||||
|
void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||||
|
|
||||||
#endif // GUARD_NEW_MENU_HELPERS_H
|
#endif // GUARD_NEW_MENU_HELPERS_H
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ struct UCoords32
|
|||||||
u32 x, y;
|
u32 x, y;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern struct UCoords32 gDirectionToVectors[];
|
||||||
|
|
||||||
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
|
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
|
||||||
extern MainCallback gFieldCallback;
|
extern MainCallback gFieldCallback;
|
||||||
|
|
||||||
@@ -96,5 +98,6 @@ extern u8 gUnknown_2036E28;
|
|||||||
|
|
||||||
extern bool8 (* gUnknown_3005024)(void);
|
extern bool8 (* gUnknown_3005024)(void);
|
||||||
void SetLastHealLocationWarp(u8 healLocaionId);
|
void SetLastHealLocationWarp(u8 healLocaionId);
|
||||||
|
void sub_8055864(u8 mapGroup, u8 mapNum);
|
||||||
|
|
||||||
#endif //GUARD_ROM4_H
|
#endif //GUARD_ROM4_H
|
||||||
|
|||||||
@@ -70,6 +70,8 @@ void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
|
|||||||
void BlendPalettes(u32, u8, u16);
|
void BlendPalettes(u32, u8, u16);
|
||||||
void BlendPalettesUnfaded(u32, u8, u16);
|
void BlendPalettesUnfaded(u32, u8, u16);
|
||||||
void sub_80716F8(const u16 *, u16 *, u16, u8);
|
void sub_80716F8(const u16 *, u16 *, u16, u8);
|
||||||
|
void TintPalette_GrayScale(u16 *, u16);
|
||||||
|
void TintPalette_SepiaTone(u16 *, u16);
|
||||||
|
|
||||||
extern struct PaletteFadeControl gPaletteFade;
|
extern struct PaletteFadeControl gPaletteFade;
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ void sub_8113550(u16, const u16 *);
|
|||||||
void sub_8115748(u16);
|
void sub_8115748(u16);
|
||||||
u8 sub_8112CAC(void);
|
u8 sub_8112CAC(void);
|
||||||
bool8 sub_81119D4(void (*func)(void));
|
bool8 sub_81119D4(void (*func)(void));
|
||||||
|
void sub_8111F38(u16, u16);
|
||||||
|
|
||||||
extern u8 gUnknown_203ADFA;
|
extern u8 gUnknown_203ADFA;
|
||||||
|
|
||||||
|
|||||||
+254
-1
@@ -1,6 +1,11 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "bg.h"
|
||||||
|
#include "palette.h"
|
||||||
#include "overworld.h"
|
#include "overworld.h"
|
||||||
#include "script.h"
|
#include "script.h"
|
||||||
|
#include "menu.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
|
#include "quest_log.h"
|
||||||
#include "fieldmap.h"
|
#include "fieldmap.h"
|
||||||
|
|
||||||
struct ConnectionFlags
|
struct ConnectionFlags
|
||||||
@@ -19,6 +24,9 @@ void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader con
|
|||||||
void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
|
void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
|
||||||
void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
|
void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
|
||||||
void LoadSavedMapView(void);
|
void LoadSavedMapView(void);
|
||||||
|
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 BackupMapData VMap;
|
struct BackupMapData VMap;
|
||||||
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
|
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
|
||||||
@@ -395,7 +403,9 @@ union Block
|
|||||||
block; \
|
block; \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define MapGridGetTileAt(x, y) ((x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt2(x, y))
|
#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize)
|
||||||
|
|
||||||
|
#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt2(x, y))
|
||||||
|
|
||||||
u8 MapGridGetZCoordAt(s32 x, s32 y)
|
u8 MapGridGetZCoordAt(s32 x, s32 y)
|
||||||
{
|
{
|
||||||
@@ -679,3 +689,246 @@ s32 GetMapBorderIdAt(s32 x, s32 y)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s32 GetPostCameraMoveMapBorderId(s32 x, s32 y)
|
||||||
|
{
|
||||||
|
return GetMapBorderIdAt(7 + gSaveBlock1Ptr->pos.x + x, 7 + gSaveBlock1Ptr->pos.y + y);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 CanCameraMoveInDirection(s32 direction)
|
||||||
|
{
|
||||||
|
s32 x, y;
|
||||||
|
|
||||||
|
x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x;
|
||||||
|
y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y;
|
||||||
|
if (GetMapBorderIdAt(x, y) == -1)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y)
|
||||||
|
{
|
||||||
|
struct MapHeader const *mapHeader;
|
||||||
|
mapHeader = mapconnection_get_mapheader(connection);
|
||||||
|
switch (direction)
|
||||||
|
{
|
||||||
|
case CONNECTION_EAST:
|
||||||
|
gSaveBlock1Ptr->pos.x = -x;
|
||||||
|
gSaveBlock1Ptr->pos.y -= connection->offset;
|
||||||
|
break;
|
||||||
|
case CONNECTION_WEST:
|
||||||
|
gSaveBlock1Ptr->pos.x = mapHeader->mapData->width;
|
||||||
|
gSaveBlock1Ptr->pos.y -= connection->offset;
|
||||||
|
break;
|
||||||
|
case CONNECTION_SOUTH:
|
||||||
|
gSaveBlock1Ptr->pos.x -= connection->offset;
|
||||||
|
gSaveBlock1Ptr->pos.y = -y;
|
||||||
|
break;
|
||||||
|
case CONNECTION_NORTH:
|
||||||
|
gSaveBlock1Ptr->pos.x -= connection->offset;
|
||||||
|
gSaveBlock1Ptr->pos.y = mapHeader->mapData->height;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 CameraMove(s32 x, s32 y)
|
||||||
|
{
|
||||||
|
u32 direction;
|
||||||
|
struct MapConnection *connection;
|
||||||
|
s32 old_x, old_y;
|
||||||
|
gCamera.active = FALSE;
|
||||||
|
direction = GetPostCameraMoveMapBorderId(x, y);
|
||||||
|
if (direction + 1 <= 1)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->pos.x += x;
|
||||||
|
gSaveBlock1Ptr->pos.y += y;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
save_serialize_map();
|
||||||
|
old_x = gSaveBlock1Ptr->pos.x;
|
||||||
|
old_y = gSaveBlock1Ptr->pos.y;
|
||||||
|
connection = sub_8059600(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y);
|
||||||
|
sub_80594AC(connection, direction, x, y);
|
||||||
|
sub_8055864(connection->mapGroup, connection->mapNum);
|
||||||
|
gCamera.active = TRUE;
|
||||||
|
gCamera.x = old_x - gSaveBlock1Ptr->pos.x;
|
||||||
|
gCamera.y = old_y - gSaveBlock1Ptr->pos.y;
|
||||||
|
gSaveBlock1Ptr->pos.x += x;
|
||||||
|
gSaveBlock1Ptr->pos.y += y;
|
||||||
|
sub_8059250(direction);
|
||||||
|
}
|
||||||
|
return gCamera.active;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y)
|
||||||
|
{
|
||||||
|
s32 count;
|
||||||
|
struct MapConnection *connection;
|
||||||
|
s32 i;
|
||||||
|
count = gMapHeader.connections->count;
|
||||||
|
connection = gMapHeader.connections->connections;
|
||||||
|
for (i = 0; i < count; i++, connection++)
|
||||||
|
{
|
||||||
|
if (connection->direction == direction && sub_8059658(direction, x, y, connection) == TRUE)
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection)
|
||||||
|
{
|
||||||
|
struct MapHeader const *mapHeader;
|
||||||
|
mapHeader = mapconnection_get_mapheader(connection);
|
||||||
|
switch (direction)
|
||||||
|
{
|
||||||
|
case CONNECTION_SOUTH:
|
||||||
|
case CONNECTION_NORTH:
|
||||||
|
return sub_80596BC(x, gMapHeader.mapData->width, mapHeader->mapData->width, connection->offset);
|
||||||
|
case CONNECTION_WEST:
|
||||||
|
case CONNECTION_EAST:
|
||||||
|
return sub_80596BC(y, gMapHeader.mapData->height, mapHeader->mapData->height, connection->offset);
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset)
|
||||||
|
{
|
||||||
|
s32 offset2 = max(offset, 0);
|
||||||
|
|
||||||
|
if (dest_width + offset < src_width)
|
||||||
|
src_width = dest_width + offset;
|
||||||
|
|
||||||
|
if (offset2 <= x && x <= src_width)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_80596E8(s32 x, s32 width)
|
||||||
|
{
|
||||||
|
if (x >= 0 && x < width)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 sub_80596FC(struct MapConnection *connection, s32 x, s32 y)
|
||||||
|
{
|
||||||
|
struct MapHeader const *mapHeader;
|
||||||
|
mapHeader = mapconnection_get_mapheader(connection);
|
||||||
|
switch (connection->direction)
|
||||||
|
{
|
||||||
|
case CONNECTION_SOUTH:
|
||||||
|
case CONNECTION_NORTH:
|
||||||
|
return sub_80596E8(x - connection->offset, mapHeader->mapData->width);
|
||||||
|
case CONNECTION_WEST:
|
||||||
|
case CONNECTION_EAST:
|
||||||
|
return sub_80596E8(y - connection->offset, mapHeader->mapData->height);
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct MapConnection *sub_805973C(s16 x, s16 y)
|
||||||
|
{
|
||||||
|
s32 count;
|
||||||
|
struct MapConnection *connection;
|
||||||
|
s32 i;
|
||||||
|
u8 direction;
|
||||||
|
if (!gMapHeader.connections)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
count = gMapHeader.connections->count;
|
||||||
|
connection = gMapHeader.connections->connections;
|
||||||
|
for (i = 0; i < count; i++, connection++)
|
||||||
|
{
|
||||||
|
direction = connection->direction;
|
||||||
|
if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE)
|
||||||
|
|| (direction == CONNECTION_NORTH && y > 6)
|
||||||
|
|| (direction == CONNECTION_SOUTH && y < gMapHeader.mapData->height + 7)
|
||||||
|
|| (direction == CONNECTION_WEST && x > 6)
|
||||||
|
|| (direction == CONNECTION_EAST && x < gMapHeader.mapData->width + 7))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (sub_80596FC(connection, x - 7, y - 7) == TRUE)
|
||||||
|
{
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetCameraFocusCoords(u16 x, u16 y)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->pos.x = x - 7;
|
||||||
|
gSaveBlock1Ptr->pos.y = y - 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetCameraFocusCoords(u16 *x, u16 *y)
|
||||||
|
{
|
||||||
|
*x = gSaveBlock1Ptr->pos.x + 7;
|
||||||
|
*y = gSaveBlock1Ptr->pos.y + 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetCameraCoords(u16 x, u16 y)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->pos.x = x;
|
||||||
|
gSaveBlock1Ptr->pos.y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetCameraCoords(u16 *x, u16 *y)
|
||||||
|
{
|
||||||
|
*x = gSaveBlock1Ptr->pos.x;
|
||||||
|
*y = gSaveBlock1Ptr->pos.y;
|
||||||
|
}
|
||||||
|
void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset)
|
||||||
|
{
|
||||||
|
if (tileset)
|
||||||
|
{
|
||||||
|
if (!tileset->isCompressed)
|
||||||
|
LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
|
||||||
|
else
|
||||||
|
sub_80F68F0(2, tileset->tiles, numTiles * 32, offset, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset)
|
||||||
|
{
|
||||||
|
if (tileset)
|
||||||
|
{
|
||||||
|
if (!tileset->isCompressed)
|
||||||
|
LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
|
||||||
|
else
|
||||||
|
sub_80F69E8(2, tileset->tiles, numTiles * 32, offset, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80598CC(u16 a0, u16 a1)
|
||||||
|
{
|
||||||
|
switch (gUnknown_2036E28)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
return;
|
||||||
|
case 1:
|
||||||
|
TintPalette_GrayScale(gPlttBufferUnfaded + a0, a1);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
TintPalette_SepiaTone(gPlttBufferUnfaded + a0, a1);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
sub_8111F38(a0, a1);
|
||||||
|
TintPalette_GrayScale(gPlttBufferUnfaded + a0, a1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CpuCopy16(gPlttBufferUnfaded + a0, gPlttBufferFaded + a0, a1 * sizeof(u16));
|
||||||
|
}
|
||||||
|
|||||||
+1
-1
@@ -599,7 +599,7 @@ gBackupMapData: @ 2031DFC
|
|||||||
gMapHeader: @ 2036DFC
|
gMapHeader: @ 2036DFC
|
||||||
.space 0x1C
|
.space 0x1C
|
||||||
|
|
||||||
gUnknown_2036E18: @ 2036E18
|
gCamera: @ 2036E18
|
||||||
.space 0xC
|
.space 0xC
|
||||||
|
|
||||||
gMapConnectionFlags: @ 2036E24
|
gMapConnectionFlags: @ 2036E24
|
||||||
|
|||||||
Reference in New Issue
Block a user