through sub_8059250
This commit is contained in:
+1
-373
@@ -5,378 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8059080
|
|
||||||
sub_8059080: @ 8059080
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r3, r1, 16
|
|
||||||
adds r5, r3, 0
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r2, 24
|
|
||||||
adds r6, r2, 0
|
|
||||||
ldr r0, _080590A4 @ =0x0000027f
|
|
||||||
cmp r3, r0
|
|
||||||
bhi _080590A8
|
|
||||||
ldr r0, [r4, 0x10]
|
|
||||||
ldr r1, [r0, 0x14]
|
|
||||||
lsls r0, r3, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r1, r2, 0
|
|
||||||
b _080590C8
|
|
||||||
.align 2, 0
|
|
||||||
_080590A4: .4byte 0x0000027f
|
|
||||||
_080590A8:
|
|
||||||
ldr r0, _080590B4 @ =0x000003ff
|
|
||||||
cmp r3, r0
|
|
||||||
bls _080590B8
|
|
||||||
movs r0, 0xFF
|
|
||||||
b _080590CC
|
|
||||||
.align 2, 0
|
|
||||||
_080590B4: .4byte 0x000003ff
|
|
||||||
_080590B8:
|
|
||||||
ldr r0, [r4, 0x14]
|
|
||||||
ldr r1, [r0, 0x14]
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, _080590D4 @ =0xfffff600
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r1, r6, 0
|
|
||||||
_080590C8:
|
|
||||||
bl sub_8058F1C
|
|
||||||
_080590CC:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_080590D4: .4byte 0xfffff600
|
|
||||||
thumb_func_end sub_8059080
|
|
||||||
|
|
||||||
thumb_func_start sub_80590D8
|
|
||||||
sub_80590D8: @ 80590D8
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
ldr r0, _08059144 @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, _08059148 @ =0x00000898
|
|
||||||
adds r4, r0, r1
|
|
||||||
ldr r0, _0805914C @ =VMap
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov r8, r0
|
|
||||||
ldr r0, _08059150 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r6, [r0, r2]
|
|
||||||
movs r1, 0x2
|
|
||||||
ldrsh r0, [r0, r1]
|
|
||||||
adds r1, r0, 0
|
|
||||||
adds r1, 0xE
|
|
||||||
cmp r0, r1
|
|
||||||
bge _08059138
|
|
||||||
mov r12, r1
|
|
||||||
ldr r2, _08059154 @ =gBackupMapData
|
|
||||||
mov r9, r2
|
|
||||||
lsls r7, r6, 1
|
|
||||||
_0805910A:
|
|
||||||
adds r1, r6, 0
|
|
||||||
adds r3, r1, 0
|
|
||||||
adds r3, 0xF
|
|
||||||
adds r5, r0, 0x1
|
|
||||||
cmp r1, r3
|
|
||||||
bge _08059132
|
|
||||||
mov r2, r8
|
|
||||||
muls r2, r0
|
|
||||||
adds r0, r2, 0
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r9
|
|
||||||
adds r2, r7, r0
|
|
||||||
subs r1, r3, r1
|
|
||||||
_08059124:
|
|
||||||
ldrh r0, [r2]
|
|
||||||
strh r0, [r4]
|
|
||||||
adds r4, 0x2
|
|
||||||
adds r2, 0x2
|
|
||||||
subs r1, 0x1
|
|
||||||
cmp r1, 0
|
|
||||||
bne _08059124
|
|
||||||
_08059132:
|
|
||||||
adds r0, r5, 0
|
|
||||||
cmp r0, r12
|
|
||||||
blt _0805910A
|
|
||||||
_08059138:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08059144: .4byte gSaveBlock2Ptr
|
|
||||||
_08059148: .4byte 0x00000898
|
|
||||||
_0805914C: .4byte VMap
|
|
||||||
_08059150: .4byte gSaveBlock1Ptr
|
|
||||||
_08059154: .4byte gBackupMapData
|
|
||||||
thumb_func_end sub_80590D8
|
|
||||||
|
|
||||||
thumb_func_start sub_8059158
|
|
||||||
sub_8059158: @ 8059158
|
|
||||||
push {r4,lr}
|
|
||||||
movs r2, 0
|
|
||||||
movs r1, 0
|
|
||||||
ldr r0, _08059184 @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r4, _08059188 @ =0x00000898
|
|
||||||
adds r3, r0, r4
|
|
||||||
ldr r4, _0805918C @ =0x000001ff
|
|
||||||
_08059168:
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r3, r0
|
|
||||||
ldrh r0, [r0]
|
|
||||||
orrs r2, r0
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r1, r0, 16
|
|
||||||
cmp r1, r4
|
|
||||||
bls _08059168
|
|
||||||
cmp r2, 0
|
|
||||||
beq _08059190
|
|
||||||
movs r0, 0
|
|
||||||
b _08059192
|
|
||||||
.align 2, 0
|
|
||||||
_08059184: .4byte gSaveBlock2Ptr
|
|
||||||
_08059188: .4byte 0x00000898
|
|
||||||
_0805918C: .4byte 0x000001ff
|
|
||||||
_08059190:
|
|
||||||
movs r0, 0x1
|
|
||||||
_08059192:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8059158
|
|
||||||
|
|
||||||
thumb_func_start sub_8059198
|
|
||||||
sub_8059198: @ 8059198
|
|
||||||
push {lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
mov r1, sp
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r0, _080591B8 @ =gSaveBlock2Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r0, _080591BC @ =0x00000898
|
|
||||||
adds r1, r0
|
|
||||||
ldr r2, _080591C0 @ =0x01000100
|
|
||||||
mov r0, sp
|
|
||||||
bl CpuSet
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_080591B8: .4byte gSaveBlock2Ptr
|
|
||||||
_080591BC: .4byte 0x00000898
|
|
||||||
_080591C0: .4byte 0x01000100
|
|
||||||
thumb_func_end sub_8059198
|
|
||||||
|
|
||||||
thumb_func_start sub_80591C4
|
|
||||||
sub_80591C4: @ 80591C4
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
ldr r0, _0805923C @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, _08059240 @ =0x00000898
|
|
||||||
adds r4, r0, r1
|
|
||||||
bl sub_8059158
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08059230
|
|
||||||
ldr r0, _08059244 @ =VMap
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov r8, r0
|
|
||||||
ldr r0, _08059248 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r6, [r0, r2]
|
|
||||||
movs r1, 0x2
|
|
||||||
ldrsh r0, [r0, r1]
|
|
||||||
adds r1, r0, 0
|
|
||||||
adds r1, 0xE
|
|
||||||
cmp r0, r1
|
|
||||||
bge _0805922C
|
|
||||||
mov r12, r1
|
|
||||||
ldr r2, _0805924C @ =gBackupMapData
|
|
||||||
mov r9, r2
|
|
||||||
lsls r7, r6, 1
|
|
||||||
_080591FE:
|
|
||||||
adds r1, r6, 0
|
|
||||||
adds r3, r1, 0
|
|
||||||
adds r3, 0xF
|
|
||||||
adds r5, r0, 0x1
|
|
||||||
cmp r1, r3
|
|
||||||
bge _08059226
|
|
||||||
mov r2, r8
|
|
||||||
muls r2, r0
|
|
||||||
adds r0, r2, 0
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, r9
|
|
||||||
adds r2, r7, r0
|
|
||||||
subs r1, r3, r1
|
|
||||||
_08059218:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
strh r0, [r2]
|
|
||||||
adds r4, 0x2
|
|
||||||
adds r2, 0x2
|
|
||||||
subs r1, 0x1
|
|
||||||
cmp r1, 0
|
|
||||||
bne _08059218
|
|
||||||
_08059226:
|
|
||||||
adds r0, r5, 0
|
|
||||||
cmp r0, r12
|
|
||||||
blt _080591FE
|
|
||||||
_0805922C:
|
|
||||||
bl sub_8059198
|
|
||||||
_08059230:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0805923C: .4byte gSaveBlock2Ptr
|
|
||||||
_08059240: .4byte 0x00000898
|
|
||||||
_08059244: .4byte VMap
|
|
||||||
_08059248: .4byte gSaveBlock1Ptr
|
|
||||||
_0805924C: .4byte gBackupMapData
|
|
||||||
thumb_func_end sub_80591C4
|
|
||||||
|
|
||||||
thumb_func_start sub_8059250
|
|
||||||
sub_8059250: @ 8059250
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r10
|
|
||||||
mov r6, r9
|
|
||||||
mov r5, r8
|
|
||||||
push {r5-r7}
|
|
||||||
sub sp, 0xC
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
adds r2, r1, 0
|
|
||||||
ldr r0, _0805929C @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r3, _080592A0 @ =0x00000898
|
|
||||||
adds r3, r0, r3
|
|
||||||
str r3, [sp, 0x4]
|
|
||||||
ldr r0, _080592A4 @ =VMap
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [sp]
|
|
||||||
movs r4, 0
|
|
||||||
mov r9, r4
|
|
||||||
mov r8, r4
|
|
||||||
ldr r0, _080592A8 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r3, 0
|
|
||||||
ldrsh r6, [r0, r3]
|
|
||||||
str r6, [sp, 0x8]
|
|
||||||
movs r4, 0x2
|
|
||||||
ldrsh r5, [r0, r4]
|
|
||||||
movs r7, 0xF
|
|
||||||
movs r6, 0xE
|
|
||||||
mov r12, r6
|
|
||||||
cmp r1, 0x2
|
|
||||||
beq _080592B6
|
|
||||||
cmp r1, 0x2
|
|
||||||
bgt _080592AC
|
|
||||||
cmp r1, 0x1
|
|
||||||
beq _080592BE
|
|
||||||
b _080592D6
|
|
||||||
.align 2, 0
|
|
||||||
_0805929C: .4byte gSaveBlock2Ptr
|
|
||||||
_080592A0: .4byte 0x00000898
|
|
||||||
_080592A4: .4byte VMap
|
|
||||||
_080592A8: .4byte gSaveBlock1Ptr
|
|
||||||
_080592AC:
|
|
||||||
cmp r2, 0x3
|
|
||||||
beq _080592C8
|
|
||||||
cmp r2, 0x4
|
|
||||||
beq _080592D0
|
|
||||||
b _080592D6
|
|
||||||
_080592B6:
|
|
||||||
adds r5, 0x1
|
|
||||||
movs r0, 0xD
|
|
||||||
mov r12, r0
|
|
||||||
b _080592D6
|
|
||||||
_080592BE:
|
|
||||||
movs r1, 0x1
|
|
||||||
mov r8, r1
|
|
||||||
movs r3, 0xD
|
|
||||||
mov r12, r3
|
|
||||||
b _080592D6
|
|
||||||
_080592C8:
|
|
||||||
ldr r4, [sp, 0x8]
|
|
||||||
adds r4, 0x1
|
|
||||||
str r4, [sp, 0x8]
|
|
||||||
b _080592D4
|
|
||||||
_080592D0:
|
|
||||||
movs r6, 0x1
|
|
||||||
mov r9, r6
|
|
||||||
_080592D4:
|
|
||||||
movs r7, 0xE
|
|
||||||
_080592D6:
|
|
||||||
movs r1, 0
|
|
||||||
cmp r1, r12
|
|
||||||
bge _0805931A
|
|
||||||
ldr r0, _08059330 @ =gBackupMapData
|
|
||||||
mov r10, r0
|
|
||||||
_080592E0:
|
|
||||||
adds r4, r1, 0x1
|
|
||||||
cmp r7, 0
|
|
||||||
beq _08059314
|
|
||||||
adds r0, r1, r5
|
|
||||||
ldr r3, [sp]
|
|
||||||
adds r2, r3, 0
|
|
||||||
muls r2, r0
|
|
||||||
add r1, r8
|
|
||||||
lsls r0, r1, 4
|
|
||||||
subs r0, r1
|
|
||||||
add r0, r9
|
|
||||||
ldr r6, [sp, 0x8]
|
|
||||||
adds r2, r6, r2
|
|
||||||
adds r3, r7, 0
|
|
||||||
lsls r2, 1
|
|
||||||
add r2, r10
|
|
||||||
lsls r0, 1
|
|
||||||
ldr r6, [sp, 0x4]
|
|
||||||
adds r1, r0, r6
|
|
||||||
_08059306:
|
|
||||||
ldrh r0, [r1]
|
|
||||||
strh r0, [r2]
|
|
||||||
adds r1, 0x2
|
|
||||||
adds r2, 0x2
|
|
||||||
subs r3, 0x1
|
|
||||||
cmp r3, 0
|
|
||||||
bne _08059306
|
|
||||||
_08059314:
|
|
||||||
adds r1, r4, 0
|
|
||||||
cmp r1, r12
|
|
||||||
blt _080592E0
|
|
||||||
_0805931A:
|
|
||||||
bl sub_8059198
|
|
||||||
add sp, 0xC
|
|
||||||
pop {r3-r5}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
mov r10, r5
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08059330: .4byte gBackupMapData
|
|
||||||
thumb_func_end sub_8059250
|
|
||||||
|
|
||||||
thumb_func_start sub_8059334
|
thumb_func_start sub_8059334
|
||||||
sub_8059334: @ 8059334
|
sub_8059334: @ 8059334
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
@@ -686,7 +314,7 @@ CameraMove: @ 8059530
|
|||||||
_08059570: .4byte gUnknown_2036E18
|
_08059570: .4byte gUnknown_2036E18
|
||||||
_08059574: .4byte gSaveBlock1Ptr
|
_08059574: .4byte gSaveBlock1Ptr
|
||||||
_08059578:
|
_08059578:
|
||||||
bl sub_80590D8
|
bl save_serialize_map
|
||||||
ldr r1, _080595F8 @ =gSaveBlock1Ptr
|
ldr r1, _080595F8 @ =gSaveBlock1Ptr
|
||||||
ldr r0, [r1]
|
ldr r0, [r1]
|
||||||
movs r2, 0
|
movs r2, 0
|
||||||
|
|||||||
+1
-1
@@ -1109,7 +1109,7 @@ _0806F61E:
|
|||||||
thumb_func_start sub_806F624
|
thumb_func_start sub_806F624
|
||||||
sub_806F624: @ 806F624
|
sub_806F624: @ 806F624
|
||||||
push {lr}
|
push {lr}
|
||||||
bl sub_80590D8
|
bl save_serialize_map
|
||||||
ldr r1, _0806F63C @ =gUnknown_3000FA4
|
ldr r1, _0806F63C @ =gUnknown_3000FA4
|
||||||
ldr r0, _0806F640 @ =sub_806F7A8
|
ldr r0, _0806F640 @ =sub_806F7A8
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
|
|||||||
+60
-60
@@ -132,11 +132,11 @@ sub_806FFB0: @ 806FFB0
|
|||||||
sub_806FFBC: @ 806FFBC
|
sub_806FFBC: @ 806FFBC
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
bl ResetTilesetAnimBuffer
|
bl ResetTilesetAnimBuffer
|
||||||
ldr r2, _08070014 @ =gUnknown_3000FAE
|
ldr r2, _08070014 @ =sPrimaryTilesetCBCounter
|
||||||
ldrh r0, [r2]
|
ldrh r0, [r2]
|
||||||
adds r0, 0x1
|
adds r0, 0x1
|
||||||
strh r0, [r2]
|
strh r0, [r2]
|
||||||
ldr r1, _08070018 @ =gUnknown_3000FB0
|
ldr r1, _08070018 @ =sPrimaryTilesetCBBufferSize
|
||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
ldrh r1, [r1]
|
ldrh r1, [r1]
|
||||||
@@ -145,11 +145,11 @@ sub_806FFBC: @ 806FFBC
|
|||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r2]
|
strh r0, [r2]
|
||||||
_0806FFDA:
|
_0806FFDA:
|
||||||
ldr r4, _0807001C @ =gUnknown_3000FB2
|
ldr r4, _0807001C @ =sSecondaryTilesetCBCounter
|
||||||
ldrh r0, [r4]
|
ldrh r0, [r4]
|
||||||
adds r0, 0x1
|
adds r0, 0x1
|
||||||
strh r0, [r4]
|
strh r0, [r4]
|
||||||
ldr r1, _08070020 @ =gUnknown_3000FB4
|
ldr r1, _08070020 @ =sSecondaryTilesetCBBufferSize
|
||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
ldrh r1, [r1]
|
ldrh r1, [r1]
|
||||||
@@ -158,14 +158,14 @@ _0806FFDA:
|
|||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r4]
|
strh r0, [r4]
|
||||||
_0806FFF2:
|
_0806FFF2:
|
||||||
ldr r0, _08070024 @ =gUnknown_3000FB8
|
ldr r0, _08070024 @ =sPrimaryTilesetCB
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
cmp r1, 0
|
cmp r1, 0
|
||||||
beq _08070000
|
beq _08070000
|
||||||
ldrh r0, [r2]
|
ldrh r0, [r2]
|
||||||
bl _call_via_r1
|
bl _call_via_r1
|
||||||
_08070000:
|
_08070000:
|
||||||
ldr r0, _08070028 @ =gUnknown_3000FBC
|
ldr r0, _08070028 @ =sSecondaryTilesetCB
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
cmp r1, 0
|
cmp r1, 0
|
||||||
beq _0807000E
|
beq _0807000E
|
||||||
@@ -176,23 +176,23 @@ _0807000E:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08070014: .4byte gUnknown_3000FAE
|
_08070014: .4byte sPrimaryTilesetCBCounter
|
||||||
_08070018: .4byte gUnknown_3000FB0
|
_08070018: .4byte sPrimaryTilesetCBBufferSize
|
||||||
_0807001C: .4byte gUnknown_3000FB2
|
_0807001C: .4byte sSecondaryTilesetCBCounter
|
||||||
_08070020: .4byte gUnknown_3000FB4
|
_08070020: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_08070024: .4byte gUnknown_3000FB8
|
_08070024: .4byte sPrimaryTilesetCB
|
||||||
_08070028: .4byte gUnknown_3000FBC
|
_08070028: .4byte sSecondaryTilesetCB
|
||||||
thumb_func_end sub_806FFBC
|
thumb_func_end sub_806FFBC
|
||||||
|
|
||||||
thumb_func_start cur_mapheader_run_tileset1_func
|
thumb_func_start cur_mapheader_run_tileset1_func
|
||||||
cur_mapheader_run_tileset1_func: @ 807002C
|
cur_mapheader_run_tileset1_func: @ 807002C
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r0, _08070058 @ =gUnknown_3000FAE
|
ldr r0, _08070058 @ =sPrimaryTilesetCBCounter
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
strh r1, [r0]
|
strh r1, [r0]
|
||||||
ldr r0, _0807005C @ =gUnknown_3000FB0
|
ldr r0, _0807005C @ =sPrimaryTilesetCBBufferSize
|
||||||
strh r1, [r0]
|
strh r1, [r0]
|
||||||
ldr r1, _08070060 @ =gUnknown_3000FB8
|
ldr r1, _08070060 @ =sPrimaryTilesetCB
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
ldr r0, _08070064 @ =gMapHeader
|
ldr r0, _08070064 @ =gMapHeader
|
||||||
@@ -208,21 +208,21 @@ _08070052:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08070058: .4byte gUnknown_3000FAE
|
_08070058: .4byte sPrimaryTilesetCBCounter
|
||||||
_0807005C: .4byte gUnknown_3000FB0
|
_0807005C: .4byte sPrimaryTilesetCBBufferSize
|
||||||
_08070060: .4byte gUnknown_3000FB8
|
_08070060: .4byte sPrimaryTilesetCB
|
||||||
_08070064: .4byte gMapHeader
|
_08070064: .4byte gMapHeader
|
||||||
thumb_func_end cur_mapheader_run_tileset1_func
|
thumb_func_end cur_mapheader_run_tileset1_func
|
||||||
|
|
||||||
thumb_func_start cur_mapheader_run_tileset2_func
|
thumb_func_start cur_mapheader_run_tileset2_func
|
||||||
cur_mapheader_run_tileset2_func: @ 8070068
|
cur_mapheader_run_tileset2_func: @ 8070068
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r0, _08070094 @ =gUnknown_3000FB2
|
ldr r0, _08070094 @ =sSecondaryTilesetCBCounter
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
strh r1, [r0]
|
strh r1, [r0]
|
||||||
ldr r0, _08070098 @ =gUnknown_3000FB4
|
ldr r0, _08070098 @ =sSecondaryTilesetCBBufferSize
|
||||||
strh r1, [r0]
|
strh r1, [r0]
|
||||||
ldr r1, _0807009C @ =gUnknown_3000FBC
|
ldr r1, _0807009C @ =sSecondaryTilesetCB
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
ldr r0, _080700A0 @ =gMapHeader
|
ldr r0, _080700A0 @ =gMapHeader
|
||||||
@@ -238,9 +238,9 @@ _0807008E:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08070094: .4byte gUnknown_3000FB2
|
_08070094: .4byte sSecondaryTilesetCBCounter
|
||||||
_08070098: .4byte gUnknown_3000FB4
|
_08070098: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_0807009C: .4byte gUnknown_3000FBC
|
_0807009C: .4byte sSecondaryTilesetCB
|
||||||
_080700A0: .4byte gMapHeader
|
_080700A0: .4byte gMapHeader
|
||||||
thumb_func_end cur_mapheader_run_tileset2_func
|
thumb_func_end cur_mapheader_run_tileset2_func
|
||||||
|
|
||||||
@@ -342,22 +342,22 @@ _0807014C:
|
|||||||
|
|
||||||
thumb_func_start sub_8070154
|
thumb_func_start sub_8070154
|
||||||
sub_8070154: @ 8070154
|
sub_8070154: @ 8070154
|
||||||
ldr r1, _0807016C @ =gUnknown_3000FAE
|
ldr r1, _0807016C @ =sPrimaryTilesetCBCounter
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _08070170 @ =gUnknown_3000FB0
|
ldr r1, _08070170 @ =sPrimaryTilesetCBBufferSize
|
||||||
movs r2, 0xA0
|
movs r2, 0xA0
|
||||||
lsls r2, 2
|
lsls r2, 2
|
||||||
adds r0, r2, 0
|
adds r0, r2, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _08070174 @ =gUnknown_3000FB8
|
ldr r1, _08070174 @ =sPrimaryTilesetCB
|
||||||
ldr r0, _08070178 @ =sub_8070120
|
ldr r0, _08070178 @ =sub_8070120
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0807016C: .4byte gUnknown_3000FAE
|
_0807016C: .4byte sPrimaryTilesetCBCounter
|
||||||
_08070170: .4byte gUnknown_3000FB0
|
_08070170: .4byte sPrimaryTilesetCBBufferSize
|
||||||
_08070174: .4byte gUnknown_3000FB8
|
_08070174: .4byte sPrimaryTilesetCB
|
||||||
_08070178: .4byte sub_8070120
|
_08070178: .4byte sub_8070120
|
||||||
thumb_func_end sub_8070154
|
thumb_func_end sub_8070154
|
||||||
|
|
||||||
@@ -410,20 +410,20 @@ _080701D0:
|
|||||||
|
|
||||||
thumb_func_start sub_80701D8
|
thumb_func_start sub_80701D8
|
||||||
sub_80701D8: @ 80701D8
|
sub_80701D8: @ 80701D8
|
||||||
ldr r1, _080701EC @ =gUnknown_3000FB2
|
ldr r1, _080701EC @ =sSecondaryTilesetCBCounter
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _080701F0 @ =gUnknown_3000FB4
|
ldr r1, _080701F0 @ =sSecondaryTilesetCBBufferSize
|
||||||
movs r0, 0x78
|
movs r0, 0x78
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _080701F4 @ =gUnknown_3000FBC
|
ldr r1, _080701F4 @ =sSecondaryTilesetCB
|
||||||
ldr r0, _080701F8 @ =sub_80701AC
|
ldr r0, _080701F8 @ =sub_80701AC
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080701EC: .4byte gUnknown_3000FB2
|
_080701EC: .4byte sSecondaryTilesetCBCounter
|
||||||
_080701F0: .4byte gUnknown_3000FB4
|
_080701F0: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_080701F4: .4byte gUnknown_3000FBC
|
_080701F4: .4byte sSecondaryTilesetCB
|
||||||
_080701F8: .4byte sub_80701AC
|
_080701F8: .4byte sub_80701AC
|
||||||
thumb_func_end sub_80701D8
|
thumb_func_end sub_80701D8
|
||||||
|
|
||||||
@@ -474,20 +474,20 @@ _08070248:
|
|||||||
|
|
||||||
thumb_func_start sub_8070250
|
thumb_func_start sub_8070250
|
||||||
sub_8070250: @ 8070250
|
sub_8070250: @ 8070250
|
||||||
ldr r1, _08070264 @ =gUnknown_3000FB2
|
ldr r1, _08070264 @ =sSecondaryTilesetCBCounter
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _08070268 @ =gUnknown_3000FB4
|
ldr r1, _08070268 @ =sSecondaryTilesetCBBufferSize
|
||||||
movs r0, 0xA0
|
movs r0, 0xA0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _0807026C @ =gUnknown_3000FBC
|
ldr r1, _0807026C @ =sSecondaryTilesetCB
|
||||||
ldr r0, _08070270 @ =sub_8070224
|
ldr r0, _08070270 @ =sub_8070224
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08070264: .4byte gUnknown_3000FB2
|
_08070264: .4byte sSecondaryTilesetCBCounter
|
||||||
_08070268: .4byte gUnknown_3000FB4
|
_08070268: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_0807026C: .4byte gUnknown_3000FBC
|
_0807026C: .4byte sSecondaryTilesetCB
|
||||||
_08070270: .4byte sub_8070224
|
_08070270: .4byte sub_8070224
|
||||||
thumb_func_end sub_8070250
|
thumb_func_end sub_8070250
|
||||||
|
|
||||||
@@ -531,22 +531,22 @@ _080702B0:
|
|||||||
|
|
||||||
thumb_func_start sub_80702B4
|
thumb_func_start sub_80702B4
|
||||||
sub_80702B4: @ 80702B4
|
sub_80702B4: @ 80702B4
|
||||||
ldr r1, _080702CC @ =gUnknown_3000FB2
|
ldr r1, _080702CC @ =sSecondaryTilesetCBCounter
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _080702D0 @ =gUnknown_3000FB4
|
ldr r1, _080702D0 @ =sSecondaryTilesetCBBufferSize
|
||||||
movs r2, 0x80
|
movs r2, 0x80
|
||||||
lsls r2, 1
|
lsls r2, 1
|
||||||
adds r0, r2, 0
|
adds r0, r2, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _080702D4 @ =gUnknown_3000FBC
|
ldr r1, _080702D4 @ =sSecondaryTilesetCB
|
||||||
ldr r0, _080702D8 @ =sub_807029C
|
ldr r0, _080702D8 @ =sub_807029C
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080702CC: .4byte gUnknown_3000FB2
|
_080702CC: .4byte sSecondaryTilesetCBCounter
|
||||||
_080702D0: .4byte gUnknown_3000FB4
|
_080702D0: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_080702D4: .4byte gUnknown_3000FBC
|
_080702D4: .4byte sSecondaryTilesetCB
|
||||||
_080702D8: .4byte sub_807029C
|
_080702D8: .4byte sub_807029C
|
||||||
thumb_func_end sub_80702B4
|
thumb_func_end sub_80702B4
|
||||||
|
|
||||||
@@ -589,20 +589,20 @@ _08070318:
|
|||||||
|
|
||||||
thumb_func_start sub_807031C
|
thumb_func_start sub_807031C
|
||||||
sub_807031C: @ 807031C
|
sub_807031C: @ 807031C
|
||||||
ldr r1, _08070330 @ =gUnknown_3000FB2
|
ldr r1, _08070330 @ =sSecondaryTilesetCBCounter
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _08070334 @ =gUnknown_3000FB4
|
ldr r1, _08070334 @ =sSecondaryTilesetCBBufferSize
|
||||||
movs r0, 0xF0
|
movs r0, 0xF0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _08070338 @ =gUnknown_3000FBC
|
ldr r1, _08070338 @ =sSecondaryTilesetCB
|
||||||
ldr r0, _0807033C @ =sub_8070304
|
ldr r0, _0807033C @ =sub_8070304
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08070330: .4byte gUnknown_3000FB2
|
_08070330: .4byte sSecondaryTilesetCBCounter
|
||||||
_08070334: .4byte gUnknown_3000FB4
|
_08070334: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_08070338: .4byte gUnknown_3000FBC
|
_08070338: .4byte sSecondaryTilesetCB
|
||||||
_0807033C: .4byte sub_8070304
|
_0807033C: .4byte sub_8070304
|
||||||
thumb_func_end sub_807031C
|
thumb_func_end sub_807031C
|
||||||
|
|
||||||
@@ -645,22 +645,22 @@ _0807037C:
|
|||||||
|
|
||||||
thumb_func_start sub_8070380
|
thumb_func_start sub_8070380
|
||||||
sub_8070380: @ 8070380
|
sub_8070380: @ 8070380
|
||||||
ldr r1, _08070398 @ =gUnknown_3000FB2
|
ldr r1, _08070398 @ =sSecondaryTilesetCBCounter
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _0807039C @ =gUnknown_3000FB4
|
ldr r1, _0807039C @ =sSecondaryTilesetCBBufferSize
|
||||||
movs r2, 0x80
|
movs r2, 0x80
|
||||||
lsls r2, 1
|
lsls r2, 1
|
||||||
adds r0, r2, 0
|
adds r0, r2, 0
|
||||||
strh r0, [r1]
|
strh r0, [r1]
|
||||||
ldr r1, _080703A0 @ =gUnknown_3000FBC
|
ldr r1, _080703A0 @ =sSecondaryTilesetCB
|
||||||
ldr r0, _080703A4 @ =sub_8070368
|
ldr r0, _080703A4 @ =sub_8070368
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08070398: .4byte gUnknown_3000FB2
|
_08070398: .4byte sSecondaryTilesetCBCounter
|
||||||
_0807039C: .4byte gUnknown_3000FB4
|
_0807039C: .4byte sSecondaryTilesetCBBufferSize
|
||||||
_080703A0: .4byte gUnknown_3000FBC
|
_080703A0: .4byte sSecondaryTilesetCB
|
||||||
_080703A4: .4byte sub_8070368
|
_080703A4: .4byte sub_8070368
|
||||||
thumb_func_end sub_8070380
|
thumb_func_end sub_8070380
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -3,6 +3,12 @@
|
|||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
|
#define NUM_TILES_IN_PRIMARY 512
|
||||||
|
#define NUM_TILES_TOTAL 1024
|
||||||
|
#define NUM_METATILES_IN_PRIMARY 512
|
||||||
|
#define NUM_METATILES_TOTAL 1024
|
||||||
|
#define NUM_PALS_IN_PRIMARY 6
|
||||||
|
#define NUM_PALS_TOTAL 13
|
||||||
#define VIRTUAL_MAP_SIZE 0x2800
|
#define VIRTUAL_MAP_SIZE 0x2800
|
||||||
|
|
||||||
extern struct MapCoords {
|
extern struct MapCoords {
|
||||||
@@ -18,6 +24,6 @@ void GetCameraCoords(u16*, u16*);
|
|||||||
bool8 MapGridIsImpassableAt(s32, s32);
|
bool8 MapGridIsImpassableAt(s32, s32);
|
||||||
s32 GetMapBorderIdAt(s16, s16);
|
s32 GetMapBorderIdAt(s16, s16);
|
||||||
bool32 CanCameraMoveInDirection(u8);
|
bool32 CanCameraMoveInDirection(u8);
|
||||||
u16 GetBehaviorByMetatileId(u16 metatileId);
|
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr);
|
||||||
|
|
||||||
#endif //GUARD_FIELDMAP_H
|
#endif //GUARD_FIELDMAP_H
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ struct Tileset
|
|||||||
/*0x04*/ void *tiles;
|
/*0x04*/ void *tiles;
|
||||||
/*0x08*/ void *palettes;
|
/*0x08*/ void *palettes;
|
||||||
/*0x0c*/ void *metatiles;
|
/*0x0c*/ void *metatiles;
|
||||||
/*0x10*/ void *metatileAttributes;
|
|
||||||
/*0x14*/ TilesetCB callback;
|
/*0x14*/ TilesetCB callback;
|
||||||
|
/*0x10*/ void *metatileAttributes;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MapData
|
struct MapData
|
||||||
|
|||||||
+2
-1
@@ -328,7 +328,8 @@ struct SaveBlock2
|
|||||||
/*0x0AC*/ u8 filler_AC[0x3F4];
|
/*0x0AC*/ u8 filler_AC[0x3F4];
|
||||||
/*0x4A0*/ u32 unk_4A0[0x2F];
|
/*0x4A0*/ u32 unk_4A0[0x2F];
|
||||||
/*0x55c*/ struct UnkSaveBlock2Substruct_55C unk_55C;
|
/*0x55c*/ struct UnkSaveBlock2Substruct_55C unk_55C;
|
||||||
/*0x574*/ u8 filler_574[0x524];
|
/*0x574*/ u8 filler_574[0x324];
|
||||||
|
/*0x898*/ u16 mapView[0x100];
|
||||||
/*0xA98*/ struct LinkBattleRecords linkBattleRecords;
|
/*0xA98*/ struct LinkBattleRecords linkBattleRecords;
|
||||||
/*0xAF0*/ struct BerryCrush berryCrush;
|
/*0xAF0*/ struct BerryCrush berryCrush;
|
||||||
/*0xB00*/ u8 filler_B00[0x420];
|
/*0xB00*/ u8 filler_B00[0x420];
|
||||||
|
|||||||
+144
-6
@@ -18,8 +18,7 @@ void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader con
|
|||||||
void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
|
void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
|
||||||
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);
|
||||||
u32 sub_8059080(struct MapData *mapData, u16 metatileId, u8 z);
|
void LoadSavedMapView(void);
|
||||||
void sub_80591C4(void);
|
|
||||||
|
|
||||||
struct BackupMapData VMap;
|
struct BackupMapData VMap;
|
||||||
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
|
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
|
||||||
@@ -64,7 +63,7 @@ void not_trainer_hill_battle_pyramid(void)
|
|||||||
void sub_80589E8(void)
|
void sub_80589E8(void)
|
||||||
{
|
{
|
||||||
sub_8058A00(&gMapHeader);
|
sub_8058A00(&gMapHeader);
|
||||||
sub_80591C4();
|
LoadSavedMapView();
|
||||||
mapheader_run_script_with_tag_x1();
|
mapheader_run_script_with_tag_x1();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -453,7 +452,7 @@ u32 sub_8058F1C(u32 original, u8 bit)
|
|||||||
u32 sub_8058F48(s16 x, s16 y, u8 z)
|
u32 sub_8058F48(s16 x, s16 y, u8 z)
|
||||||
{
|
{
|
||||||
u16 metatileId = MapGridGetMetatileIdAt(x, y);
|
u16 metatileId = MapGridGetMetatileIdAt(x, y);
|
||||||
return sub_8059080(gMapHeader.mapData, metatileId, z);
|
return GetBehaviorByMetatileIdAndMapData(gMapHeader.mapData, metatileId, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y)
|
u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y)
|
||||||
@@ -468,7 +467,7 @@ u8 MapGridGetMetatileLayerTypeAt(s32 x, s32 y)
|
|||||||
|
|
||||||
void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile)
|
void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile)
|
||||||
{
|
{
|
||||||
int i;
|
s32 i;
|
||||||
if (x >= 0 && x < VMap.Xsize
|
if (x >= 0 && x < VMap.Xsize
|
||||||
&& y >= 0 && y < VMap.Ysize)
|
&& y >= 0 && y < VMap.Ysize)
|
||||||
{
|
{
|
||||||
@@ -479,7 +478,7 @@ void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile)
|
|||||||
|
|
||||||
void MapGridSetMetatileEntryAt(s32 x, s32 y, u16 metatile)
|
void MapGridSetMetatileEntryAt(s32 x, s32 y, u16 metatile)
|
||||||
{
|
{
|
||||||
int i;
|
s32 i;
|
||||||
if (x >= 0 && x < VMap.Xsize
|
if (x >= 0 && x < VMap.Xsize
|
||||||
&& y >= 0 && y < VMap.Ysize)
|
&& y >= 0 && y < VMap.Ysize)
|
||||||
{
|
{
|
||||||
@@ -503,3 +502,142 @@ void sub_8059024(s32 x, s32 y, bool32 arg2)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr)
|
||||||
|
{
|
||||||
|
u32 * attributes;
|
||||||
|
|
||||||
|
if (metatile < 0x280)
|
||||||
|
{
|
||||||
|
attributes = mapData->primaryTileset->metatileAttributes;
|
||||||
|
return sub_8058F1C(attributes[metatile], attr);
|
||||||
|
}
|
||||||
|
else if (metatile < 0x400)
|
||||||
|
{
|
||||||
|
attributes = mapData->secondaryTileset->metatileAttributes;
|
||||||
|
return sub_8058F1C(attributes[metatile - 0x280], attr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0xFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void save_serialize_map(void)
|
||||||
|
{
|
||||||
|
s32 i, j;
|
||||||
|
s32 x, y;
|
||||||
|
u16 *mapView;
|
||||||
|
s32 width;
|
||||||
|
mapView = gSaveBlock2Ptr->mapView;
|
||||||
|
width = VMap.Xsize;
|
||||||
|
x = gSaveBlock1Ptr->pos.x;
|
||||||
|
y = gSaveBlock1Ptr->pos.y;
|
||||||
|
for (i = y; i < y + 14; i++)
|
||||||
|
{
|
||||||
|
for (j = x; j < x + 15; j++)
|
||||||
|
{
|
||||||
|
*mapView++ = gBackupMapData[width * i + j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 SavedMapViewIsEmpty(void)
|
||||||
|
{
|
||||||
|
u16 i;
|
||||||
|
u32 marker = 0;
|
||||||
|
|
||||||
|
// BUG: This loop extends past the bounds of the mapView array. Its size is only 0x100.
|
||||||
|
for (i = 0; i < 0x200; i++)
|
||||||
|
marker |= gSaveBlock2Ptr->mapView[i];
|
||||||
|
|
||||||
|
if (marker == 0)
|
||||||
|
return TRUE;
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearSavedMapView(void)
|
||||||
|
{
|
||||||
|
CpuFill16(0, gSaveBlock2Ptr->mapView, sizeof(gSaveBlock2Ptr->mapView));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadSavedMapView(void)
|
||||||
|
{
|
||||||
|
s32 i, j;
|
||||||
|
s32 x, y;
|
||||||
|
u16 *mapView;
|
||||||
|
s32 width;
|
||||||
|
mapView = gSaveBlock2Ptr->mapView;
|
||||||
|
if (!SavedMapViewIsEmpty())
|
||||||
|
{
|
||||||
|
width = VMap.Xsize;
|
||||||
|
x = gSaveBlock1Ptr->pos.x;
|
||||||
|
y = gSaveBlock1Ptr->pos.y;
|
||||||
|
for (i = y; i < y + 14; i++)
|
||||||
|
{
|
||||||
|
for (j = x; j < x + 15; j++)
|
||||||
|
{
|
||||||
|
gBackupMapData[j + width * i] = *mapView;
|
||||||
|
mapView++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ClearSavedMapView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8059250(u8 a1)
|
||||||
|
{
|
||||||
|
s32 width;
|
||||||
|
u16 *mapView;
|
||||||
|
s32 x0, y0;
|
||||||
|
s32 x2, y2;
|
||||||
|
u16 *src, *dest;
|
||||||
|
s32 srci, desti;
|
||||||
|
s32 r9, r8;
|
||||||
|
s32 x, y;
|
||||||
|
s32 i, j;
|
||||||
|
mapView = gSaveBlock2Ptr->mapView;
|
||||||
|
width = VMap.Xsize;
|
||||||
|
r9 = 0;
|
||||||
|
r8 = 0;
|
||||||
|
x0 = gSaveBlock1Ptr->pos.x;
|
||||||
|
y0 = gSaveBlock1Ptr->pos.y;
|
||||||
|
x2 = 15;
|
||||||
|
y2 = 14;
|
||||||
|
switch (a1)
|
||||||
|
{
|
||||||
|
case CONNECTION_NORTH:
|
||||||
|
y0 += 1;
|
||||||
|
y2 = 13;
|
||||||
|
break;
|
||||||
|
case CONNECTION_SOUTH:
|
||||||
|
r8 = 1;
|
||||||
|
y2 = 13;
|
||||||
|
break;
|
||||||
|
case CONNECTION_WEST:
|
||||||
|
x0 += 1;
|
||||||
|
x2 = 14;
|
||||||
|
break;
|
||||||
|
case CONNECTION_EAST:
|
||||||
|
r9 = 1;
|
||||||
|
x2 = 14;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (y = 0; y < y2; y++)
|
||||||
|
{
|
||||||
|
i = 0;
|
||||||
|
j = 0;
|
||||||
|
for (x = 0; x < x2; x++)
|
||||||
|
{
|
||||||
|
desti = width * (y + y0);
|
||||||
|
srci = (y + r8) * 15 + r9;
|
||||||
|
src = &mapView[srci + i];
|
||||||
|
dest = &gBackupMapData[x0 + desti + j];
|
||||||
|
*dest = *src;
|
||||||
|
i++;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ClearSavedMapView();
|
||||||
|
}
|
||||||
|
|||||||
+2
-2
@@ -69,7 +69,7 @@ const struct SaveSectionOffsets gSaveSectionOffsets[] =
|
|||||||
extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen
|
extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen
|
||||||
extern void sub_800AB9C(void); // link
|
extern void sub_800AB9C(void); // link
|
||||||
extern bool8 sub_800A4BC(void); // link
|
extern bool8 sub_800A4BC(void); // link
|
||||||
extern void sub_80590D8(void); // fieldmap
|
extern void save_serialize_map(void); // fieldmap
|
||||||
extern void sub_804C1C0(void); // load_save
|
extern void sub_804C1C0(void); // load_save
|
||||||
extern void sav2_gender2_inplace_and_xFE(void); // load_save
|
extern void sav2_gender2_inplace_and_xFE(void); // load_save
|
||||||
|
|
||||||
@@ -867,7 +867,7 @@ void sub_80DA634(u8 taskId)
|
|||||||
case 2:
|
case 2:
|
||||||
if (sub_800A4BC())
|
if (sub_800A4BC())
|
||||||
{
|
{
|
||||||
sub_80590D8();
|
save_serialize_map();
|
||||||
gTasks[taskId].data[0] = 3;
|
gTasks[taskId].data[0] = 3;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
+6
-6
@@ -111,22 +111,22 @@ gUnknown_3000FA9: @ 3000FA9
|
|||||||
gUnknown_3000FAC: @ 3000FAC
|
gUnknown_3000FAC: @ 3000FAC
|
||||||
.space 0x2
|
.space 0x2
|
||||||
|
|
||||||
gUnknown_3000FAE: @ 3000FAE
|
sPrimaryTilesetCBCounter: @ 3000FAE
|
||||||
.space 0x2
|
.space 0x2
|
||||||
|
|
||||||
gUnknown_3000FB0: @ 3000FB0
|
sPrimaryTilesetCBBufferSize: @ 3000FB0
|
||||||
.space 0x2
|
.space 0x2
|
||||||
|
|
||||||
gUnknown_3000FB2: @ 3000FB2
|
sSecondaryTilesetCBCounter: @ 3000FB2
|
||||||
.space 0x2
|
.space 0x2
|
||||||
|
|
||||||
gUnknown_3000FB4: @ 3000FB4
|
sSecondaryTilesetCBBufferSize: @ 3000FB4
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
gUnknown_3000FB8: @ 3000FB8
|
sPrimaryTilesetCB: @ 3000FB8
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
gUnknown_3000FBC: @ 3000FBC
|
sSecondaryTilesetCB: @ 3000FBC
|
||||||
.space 0x4
|
.space 0x4
|
||||||
|
|
||||||
.include "src/sound.o"
|
.include "src/sound.o"
|
||||||
|
|||||||
Reference in New Issue
Block a user