through LoadSaveblockMapHeader

This commit is contained in:
PikalaxALT
2020-03-26 21:30:58 -04:00
parent 012f8ed12f
commit 71c003dcdb
15 changed files with 262 additions and 595 deletions
+63 -555
View File
@@ -5,498 +5,6 @@
.text
thumb_func_start sub_8054F68
sub_8054F68: @ 8054F68
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
movs r0, 0
mov r9, r0
mov r8, r0
ldr r1, _08055040 @ =gMapHeader
ldr r0, [r1, 0x4]
ldrb r0, [r0]
cmp r9, r0
bcc _08054F86
b _08055092
_08054F86:
ldr r2, _08055044 @ =gSaveBlock1Ptr
mov r10, r2
_08054F8A:
ldr r3, _08055040 @ =gMapHeader
ldr r0, [r3, 0x4]
ldr r1, [r0, 0x4]
mov r4, r9
lsls r0, r4, 1
add r0, r9
lsls r7, r0, 3
adds r2, r7, r1
ldrb r0, [r2, 0x2]
cmp r0, 0xFF
bne _08055054
ldrb r4, [r2, 0x8]
ldrb r5, [r2, 0xC]
str r5, [sp]
ldrb r2, [r2, 0xE]
str r2, [sp, 0x4]
adds r0, r2, 0
adds r1, r5, 0
bl Overworld_GetMapHeaderByGroupAndId
mov r6, r10
ldr r1, [r6]
mov r2, r8
lsls r3, r2, 1
add r3, r8
lsls r3, 3
adds r1, r3
ldr r0, [r0, 0x4]
ldr r2, [r0, 0x4]
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
adds r0, r2
movs r5, 0x8E
lsls r5, 4
adds r1, r5
subs r0, 0x18
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
mov r6, r10
ldr r1, [r6]
adds r1, r3
ldr r2, _08055040 @ =gMapHeader
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
ldrb r0, [r0]
movs r5, 0x8E
lsls r5, 4
adds r1, r5
strb r0, [r1]
ldr r1, [r6]
adds r1, r3
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
ldrh r2, [r0, 0x4]
ldr r6, _08055048 @ =0x000008e4
adds r0, r1, r6
strh r2, [r0]
ldr r2, _08055040 @ =gMapHeader
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
ldrh r2, [r0, 0x6]
adds r5, 0x6
adds r0, r1, r5
strh r2, [r0]
adds r6, 0x4
adds r1, r6
strb r4, [r1]
mov r1, r10
ldr r0, [r1]
adds r0, r3
ldr r2, _0805504C @ =0x000008ec
adds r1, r0, r2
mov r3, sp
ldrh r3, [r3]
strh r3, [r1]
ldr r4, _08055050 @ =0x000008ee
adds r1, r0, r4
mov r5, sp
ldrh r5, [r5, 0x4]
strh r5, [r1]
subs r6, 0x6
adds r0, r6
movs r1, 0xFF
strb r1, [r0]
b _08055072
.align 2, 0
_08055040: .4byte gMapHeader
_08055044: .4byte gSaveBlock1Ptr
_08055048: .4byte 0x000008e4
_0805504C: .4byte 0x000008ec
_08055050: .4byte 0x000008ee
_08055054:
mov r0, r10
ldr r1, [r0]
mov r3, r8
lsls r0, r3, 1
add r0, r8
lsls r0, 3
adds r1, r0
movs r4, 0x8E
lsls r4, 4
adds r1, r4
adds r0, r2, 0
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
_08055072:
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r6, _080550A4 @ =gMapHeader
ldr r0, [r6, 0x4]
ldrb r0, [r0]
cmp r9, r0
bcs _08055092
b _08054F8A
_08055092:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080550A4: .4byte gMapHeader
thumb_func_end sub_8054F68
thumb_func_start sub_80550A8
sub_80550A8: @ 80550A8
push {lr}
ldr r0, _080550D0 @ =gMapHeader
ldr r1, [r0, 0x4]
ldr r0, _080550D4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, [r1, 0x4]
movs r3, 0x8E
lsls r3, 4
adds r1, r0, r3
movs r3, 0x3F
_080550BC:
ldr r0, [r2, 0x10]
str r0, [r1, 0x10]
adds r2, 0x18
adds r1, 0x18
subs r3, 0x1
cmp r3, 0
bge _080550BC
pop {r0}
bx r0
.align 2, 0
_080550D0: .4byte gMapHeader
_080550D4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80550A8
thumb_func_start Overworld_SetMapObjTemplateCoords
Overworld_SetMapObjTemplateCoords: @ 80550D8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 16
lsrs r2, 16
ldr r0, _08055100 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0
movs r6, 0x8E
lsls r6, 4
adds r3, r0, r6
_080550F2:
ldrb r0, [r3]
cmp r0, r5
bne _08055104
strh r4, [r3, 0x4]
strh r2, [r3, 0x6]
b _0805510C
.align 2, 0
_08055100: .4byte gSaveBlock1Ptr
_08055104:
adds r3, 0x18
adds r1, 0x1
cmp r1, 0x3F
ble _080550F2
_0805510C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end Overworld_SetMapObjTemplateCoords
thumb_func_start Overworld_SetMapObjTemplateMovementType
Overworld_SetMapObjTemplateMovementType: @ 8055114
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r1, 24
ldr r0, _08055134 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r3, 0
movs r5, 0x8E
lsls r5, 4
adds r2, r0, r5
_0805512A:
ldrb r0, [r2]
cmp r0, r4
bne _08055138
strb r1, [r2, 0x9]
b _08055140
.align 2, 0
_08055134: .4byte gSaveBlock1Ptr
_08055138:
adds r2, 0x18
adds r3, 0x1
cmp r3, 0x3F
ble _0805512A
_08055140:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end Overworld_SetMapObjTemplateMovementType
thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw
mapdata_load_assets_to_gpu_and_full_redraw: @ 8055148
push {r4,lr}
bl move_tilemap_camera_to_upper_left_corner
ldr r4, _0805516C @ =gMapHeader
ldr r0, [r4]
bl copy_map_tileset1_tileset2_to_vram
ldr r0, [r4]
bl apply_map_tileset1_tileset2_palette
bl DrawWholeMapView
bl InitTilesetAnimations
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805516C: .4byte gMapHeader
thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw
thumb_func_start get_mapdata_header
get_mapdata_header: @ 8055170
push {lr}
ldr r0, _08055180 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x32]
cmp r1, 0
bne _08055184
movs r0, 0
b _0805518E
.align 2, 0
_08055180: .4byte gSaveBlock1Ptr
_08055184:
ldr r0, _08055194 @ =gMapLayouts
subs r1, 0x1
lsls r1, 2
adds r1, r0
ldr r0, [r1]
_0805518E:
pop {r1}
bx r1
.align 2, 0
_08055194: .4byte gMapLayouts
thumb_func_end get_mapdata_header
thumb_func_start warp_shift
warp_shift: @ 8055198
ldr r3, _080551C4 @ =gUnknown_2031DB4
ldr r0, _080551C8 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, [r2, 0x4]
ldr r1, [r2, 0x8]
str r0, [r3]
str r1, [r3, 0x4]
ldr r0, _080551CC @ =gUnknown_2031DBC
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2, 0x4]
str r1, [r2, 0x8]
ldr r2, _080551D0 @ =gUnknown_2031DC4
ldr r0, _080551D4 @ =sDummyWarpData
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
ldr r2, _080551D8 @ =gUnknown_2031DCC
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080551C4: .4byte gUnknown_2031DB4
_080551C8: .4byte gSaveBlock1Ptr
_080551CC: .4byte gUnknown_2031DBC
_080551D0: .4byte gUnknown_2031DC4
_080551D4: .4byte sDummyWarpData
_080551D8: .4byte gUnknown_2031DCC
thumb_func_end warp_shift
thumb_func_start warp_set
warp_set: @ 80551DC
push {r4,r5,lr}
ldr r4, [sp, 0xC]
ldr r5, [sp, 0x10]
strb r1, [r0]
strb r2, [r0, 0x1]
strb r3, [r0, 0x2]
lsls r4, 24
asrs r4, 24
strh r4, [r0, 0x4]
lsls r5, 24
asrs r5, 24
strh r5, [r0, 0x6]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end warp_set
thumb_func_start warp_data_is_not_neg_1
warp_data_is_not_neg_1: @ 80551FC
push {lr}
adds r1, r0, 0
movs r2, 0
ldrsb r2, [r1, r2]
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _08055230
movs r0, 0x1
ldrsb r0, [r1, r0]
cmp r0, r2
bne _08055230
movs r2, 0x2
ldrsb r2, [r1, r2]
cmp r2, r0
bne _08055230
movs r0, 0x4
ldrsh r3, [r1, r0]
cmp r3, r2
bne _08055230
movs r2, 0x6
ldrsh r0, [r1, r2]
cmp r0, r3
bne _08055230
movs r0, 0x1
b _08055232
_08055230:
movs r0, 0
_08055232:
pop {r1}
bx r1
thumb_func_end warp_data_is_not_neg_1
thumb_func_start Overworld_GetMapHeaderByGroupAndId
Overworld_GetMapHeaderByGroupAndId: @ 8055238
lsls r0, 16
lsls r1, 16
ldr r2, _0805524C @ =gMapGroups
lsrs r0, 14
adds r0, r2
ldr r0, [r0]
lsrs r1, 14
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_0805524C: .4byte gMapGroups
thumb_func_end Overworld_GetMapHeaderByGroupAndId
thumb_func_start warp1_get_mapheader
warp1_get_mapheader: @ 8055250
push {lr}
ldr r1, _08055270 @ =gUnknown_2031DBC
movs r0, 0
ldrsb r0, [r1, r0]
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x1]
lsls r1, 24
asrs r1, 24
lsls r1, 16
lsrs r1, 16
bl Overworld_GetMapHeaderByGroupAndId
pop {r1}
bx r1
.align 2, 0
_08055270: .4byte gUnknown_2031DBC
thumb_func_end warp1_get_mapheader
thumb_func_start set_current_map_header_from_sav1_save_old_name
set_current_map_header_from_sav1_save_old_name: @ 8055274
push {r4-r6,lr}
ldr r4, _080552B4 @ =gMapHeader
ldr r5, _080552B8 @ =gSaveBlock1Ptr
ldr r1, [r5]
movs r0, 0x4
ldrsb r0, [r1, r0]
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x5]
lsls r1, 24
asrs r1, 24
lsls r1, 16
lsrs r1, 16
bl Overworld_GetMapHeaderByGroupAndId
adds r1, r4, 0
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r0]
str r0, [r1]
ldr r1, [r5]
ldrh r0, [r4, 0x12]
strh r0, [r1, 0x32]
bl get_mapdata_header
str r0, [r4]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080552B4: .4byte gMapHeader
_080552B8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1_save_old_name
thumb_func_start set_current_map_header_from_sav1
set_current_map_header_from_sav1: @ 80552BC
push {r4,r5,lr}
ldr r4, _080552F4 @ =gMapHeader
ldr r0, _080552F8 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x5]
lsls r1, 24
asrs r1, 24
lsls r1, 16
lsrs r1, 16
bl Overworld_GetMapHeaderByGroupAndId
adds r1, r4, 0
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r0, [r0]
str r0, [r1]
bl get_mapdata_header
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080552F4: .4byte gMapHeader
_080552F8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1
thumb_func_start update_camera_pos_from_warpid
update_camera_pos_from_warpid: @ 80552FC
push {r4,r5,lr}
@@ -567,8 +75,8 @@ _08055374: .4byte gMapHeader
thumb_func_start WarpIntoMap
WarpIntoMap: @ 8055378
push {lr}
bl warp_shift
bl set_current_map_header_from_sav1_save_old_name
bl ApplyCurrentWarp
bl LoadCurrentMapData
bl update_camera_pos_from_warpid
pop {r0}
bx r0
@@ -582,7 +90,7 @@ SetWarpDestination: @ 805538C
adds r5, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x18]
ldr r0, _080553C4 @ =gUnknown_2031DBC
ldr r0, _080553C4 @ =sWarpDestination
lsls r4, 24
asrs r4, 24
lsls r5, 24
@@ -598,13 +106,13 @@ SetWarpDestination: @ 805538C
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080553C4: .4byte gUnknown_2031DBC
_080553C4: .4byte sWarpDestination
thumb_func_end SetWarpDestination
thumb_func_start SetWarpDestinationToMapWarp
@@ -646,7 +154,7 @@ SetDynamicWarp: @ 80553E8
movs r4, 0x2
ldrsb r4, [r5, r4]
str r4, [sp, 0x4]
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4,r5}
pop {r0}
@@ -676,7 +184,7 @@ SetDynamicWarpWithCoords: @ 805541C
lsls r5, 24
asrs r5, 24
str r5, [sp, 0x4]
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4,r5}
pop {r0}
@@ -687,7 +195,7 @@ _08055450: .4byte gSaveBlock1Ptr
thumb_func_start SetWarpDestinationToDynamicWarp
SetWarpDestinationToDynamicWarp: @ 8055454
ldr r2, _08055464 @ =gUnknown_2031DBC
ldr r2, _08055464 @ =sWarpDestination
ldr r0, _08055468 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x18]
@@ -696,7 +204,7 @@ SetWarpDestinationToDynamicWarp: @ 8055454
str r1, [r2, 0x4]
bx lr
.align 2, 0
_08055464: .4byte gUnknown_2031DBC
_08055464: .4byte sWarpDestination
_08055468: .4byte gSaveBlock1Ptr
thumb_func_end SetWarpDestinationToDynamicWarp
@@ -732,7 +240,7 @@ _0805549A:
thumb_func_start copy_saved_warp3_bank_and_enter_x_to_warp1
copy_saved_warp3_bank_and_enter_x_to_warp1: @ 80554A4
ldr r2, _080554B4 @ =gUnknown_2031DBC
ldr r2, _080554B4 @ =sWarpDestination
ldr r0, _080554B8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x20]
@@ -741,19 +249,19 @@ copy_saved_warp3_bank_and_enter_x_to_warp1: @ 80554A4
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080554B4: .4byte gUnknown_2031DBC
_080554B4: .4byte sWarpDestination
_080554B8: .4byte gSaveBlock1Ptr
thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1
thumb_func_start Overworld_SetWhiteoutRespawnPoint
Overworld_SetWhiteoutRespawnPoint: @ 80554BC
push {lr}
ldr r0, _080554C8 @ =gUnknown_2031DBC
ldr r0, _080554C8 @ =sWarpDestination
bl SetWhiteoutRespawnWarpAndHealerNpc
pop {r0}
bx r0
.align 2, 0
_080554C8: .4byte gUnknown_2031DBC
_080554C8: .4byte sWarpDestination
thumb_func_end Overworld_SetWhiteoutRespawnPoint
thumb_func_start SetLastHealLocationWarp
@@ -781,7 +289,7 @@ SetLastHealLocationWarp: @ 80554CC
movs r4, 0x4
ldrsb r4, [r5, r4]
str r4, [sp, 0x4]
bl warp_set
bl SetWarpData
_08055500:
add sp, 0x8
pop {r4,r5}
@@ -803,7 +311,7 @@ UpdateEscapeWarp: @ 805550C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _08055598 @ =gUnknown_2031DBC
ldr r1, _08055598 @ =sWarpDestination
movs r0, 0
ldrsb r0, [r1, r0]
ldrb r1, [r1, 0x1]
@@ -859,7 +367,7 @@ _08055590:
pop {r0}
bx r0
.align 2, 0
_08055598: .4byte gUnknown_2031DBC
_08055598: .4byte sWarpDestination
_0805559C: .4byte gSaveBlock1Ptr
thumb_func_end UpdateEscapeWarp
@@ -889,7 +397,7 @@ SetEscapeWarp: @ 80555A0
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4-r6}
pop {r0}
@@ -900,7 +408,7 @@ _080555DC: .4byte gSaveBlock1Ptr
thumb_func_start sub_80555E0
sub_80555E0: @ 80555E0
ldr r2, _080555F0 @ =gUnknown_2031DBC
ldr r2, _080555F0 @ =sWarpDestination
ldr r0, _080555F4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x28]
@@ -909,7 +417,7 @@ sub_80555E0: @ 80555E0
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080555F0: .4byte gUnknown_2031DBC
_080555F0: .4byte sWarpDestination
_080555F4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80555E0
@@ -921,7 +429,7 @@ SetFixedDiveWarp: @ 80555F8
adds r5, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x18]
ldr r0, _08055630 @ =gUnknown_2031DC4
ldr r0, _08055630 @ =gFixedDiveWarp
lsls r4, 24
asrs r4, 24
lsls r5, 24
@@ -937,27 +445,27 @@ SetFixedDiveWarp: @ 80555F8
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08055630: .4byte gUnknown_2031DC4
_08055630: .4byte gFixedDiveWarp
thumb_func_end SetFixedDiveWarp
thumb_func_start warp1_set_to_warp2
warp1_set_to_warp2: @ 8055634
ldr r2, _08055644 @ =gUnknown_2031DBC
ldr r0, _08055648 @ =gUnknown_2031DC4
ldr r2, _08055644 @ =sWarpDestination
ldr r0, _08055648 @ =gFixedDiveWarp
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_08055644: .4byte gUnknown_2031DBC
_08055648: .4byte gUnknown_2031DC4
_08055644: .4byte sWarpDestination
_08055648: .4byte gFixedDiveWarp
thumb_func_end warp1_set_to_warp2
thumb_func_start SetFixedHoleWarp
@@ -968,7 +476,7 @@ SetFixedHoleWarp: @ 805564C
adds r5, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x18]
ldr r0, _08055684 @ =gUnknown_2031DCC
ldr r0, _08055684 @ =gFixedHoleWarp
lsls r4, 24
asrs r4, 24
lsls r5, 24
@@ -984,13 +492,13 @@ SetFixedHoleWarp: @ 805564C
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08055684: .4byte gUnknown_2031DCC
_08055684: .4byte gFixedHoleWarp
thumb_func_end SetFixedHoleWarp
thumb_func_start SetWarpDestinationToFixedHoleWarp
@@ -1001,22 +509,22 @@ SetWarpDestinationToFixedHoleWarp: @ 8055688
lsrs r5, r0, 16
lsls r1, 16
lsrs r6, r1, 16
ldr r4, _080556B0 @ =gUnknown_2031DCC
ldr r4, _080556B0 @ =gFixedHoleWarp
adds r0, r4, 0
bl warp_data_is_not_neg_1
bl IsDummyWarp
cmp r0, 0x1
bne _080556BC
ldr r2, _080556B4 @ =gUnknown_2031DBC
ldr r0, _080556B8 @ =gUnknown_2031DB4
ldr r2, _080556B4 @ =sWarpDestination
ldr r0, _080556B8 @ =gLastUsedWarp
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
b _080556D6
.align 2, 0
_080556B0: .4byte gUnknown_2031DCC
_080556B4: .4byte gUnknown_2031DBC
_080556B8: .4byte gUnknown_2031DB4
_080556B0: .4byte gFixedHoleWarp
_080556B4: .4byte sWarpDestination
_080556B8: .4byte gLastUsedWarp
_080556BC:
movs r0, 0
ldrsb r0, [r4, r0]
@@ -1039,7 +547,7 @@ _080556D6:
thumb_func_start warp1_set_to_sav1w
warp1_set_to_sav1w: @ 80556E0
ldr r2, _080556F0 @ =gUnknown_2031DBC
ldr r2, _080556F0 @ =sWarpDestination
ldr r0, _080556F4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x10]
@@ -1048,7 +556,7 @@ warp1_set_to_sav1w: @ 80556E0
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080556F0: .4byte gUnknown_2031DBC
_080556F0: .4byte sWarpDestination
_080556F4: .4byte gSaveBlock1Ptr
thumb_func_end warp1_set_to_sav1w
@@ -1078,7 +586,7 @@ sub_80556F8: @ 80556F8
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl warp_set
bl SetWarpData
add sp, 0x8
pop {r4-r6}
pop {r0}
@@ -1112,7 +620,7 @@ sub_8055738: @ 8055738
movs r4, 0x4
ldrsb r4, [r5, r4]
str r4, [sp, 0x4]
bl warp_set
bl SetWarpData
_0805576C:
add sp, 0x8
pop {r4,r5}
@@ -1202,14 +710,14 @@ sub_80557C4: @ 80557C4
b _08055818
_080557FC:
bl mapheader_run_script_with_tag_x6
ldr r0, _08055810 @ =gUnknown_2031DC4
bl warp_data_is_not_neg_1
ldr r0, _08055810 @ =gFixedDiveWarp
bl IsDummyWarp
cmp r0, 0
beq _08055814
movs r0, 0
b _0805581A
.align 2, 0
_08055810: .4byte gUnknown_2031DC4
_08055810: .4byte gFixedDiveWarp
_08055814:
bl warp1_set_to_warp2
_08055818:
@@ -1273,8 +781,8 @@ sub_8055864: @ 8055864
adds r2, r3, 0
bl SetWarpDestination
bl sub_8055E94
bl warp_shift
bl set_current_map_header_from_sav1_save_old_name
bl ApplyCurrentWarp
bl LoadCurrentMapData
bl sub_8054F68
bl TrySetMapSaveWarpStatus
bl sub_806E110
@@ -1331,7 +839,7 @@ _0805591C: .4byte gMapHeader
thumb_func_start sub_8055920
sub_8055920: @ 8055920
push {r4,lr}
bl set_current_map_header_from_sav1_save_old_name
bl LoadCurrentMapData
bl sub_8054F68
ldr r0, _0805599C @ =gMapHeader
ldrb r0, [r0, 0x17]
@@ -1382,7 +890,7 @@ _080559A4: .4byte 0x00000806
thumb_func_start sub_80559A8
sub_80559A8: @ 80559A8
push {lr}
bl set_current_map_header_from_sav1_save_old_name
bl LoadCurrentMapData
bl sub_8054F68
ldr r0, _080559E0 @ =gMapHeader
ldrb r0, [r0, 0x17]
@@ -1393,7 +901,7 @@ sub_80559A8: @ 80559A8
bl sub_8055CB8
bl sub_8110920
bl sub_8111708
bl set_current_map_header_from_sav1
bl LoadSaveblockMapHeader
bl InitMap
pop {r0}
bx r0
@@ -1872,7 +1380,7 @@ SetCurrentMapLayout: @ 8055D40
ldr r1, _08055D54 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x32]
bl get_mapdata_header
bl GetMapLayout
ldr r1, _08055D58 @ =gMapHeader
str r0, [r1]
pop {r0}
@@ -1884,14 +1392,14 @@ _08055D58: .4byte gMapHeader
thumb_func_start sub_8055D5C
sub_8055D5C: @ 8055D5C
ldr r2, _08055D68 @ =gUnknown_2031DBC
ldr r2, _08055D68 @ =sWarpDestination
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_08055D68: .4byte gUnknown_2031DBC
_08055D68: .4byte sWarpDestination
thumb_func_end sub_8055D5C
thumb_func_start sub_8055D6C
@@ -1931,14 +1439,14 @@ _08055DA0: .4byte gSaveBlock1Ptr
thumb_func_start sub_8055DA4
sub_8055DA4: @ 8055DA4
push {lr}
ldr r0, _08055DB4 @ =gUnknown_2031DBC
ldr r0, _08055DB4 @ =sWarpDestination
bl sub_8055D6C
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08055DB4: .4byte gUnknown_2031DBC
_08055DB4: .4byte sWarpDestination
thumb_func_end sub_8055DA4
thumb_func_start sub_8055DB8
@@ -2166,7 +1674,7 @@ _08055F62:
thumb_func_start GetMapMusicFadeoutSpeed
GetMapMusicFadeoutSpeed: @ 8055F68
push {lr}
bl warp1_get_mapheader
bl GetDestinationWarpMapHeader
ldrb r0, [r0, 0x17]
bl IsMapTypeIndoors
lsls r0, 24
@@ -2473,20 +1981,20 @@ _0805619C: .4byte gSaveBlock1Ptr
thumb_func_start GetLastUsedWarpMapType
GetLastUsedWarpMapType: @ 80561A0
push {lr}
ldr r0, _080561B0 @ =gUnknown_2031DB4
ldr r0, _080561B0 @ =gLastUsedWarp
bl get_map_light_level_from_warp
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_080561B0: .4byte gUnknown_2031DB4
_080561B0: .4byte gLastUsedWarp
thumb_func_end GetLastUsedWarpMapType
thumb_func_start GetLastUsedWarpMapSectionId
GetLastUsedWarpMapSectionId: @ 80561B4
push {lr}
ldr r1, _080561D4 @ =gUnknown_2031DB4
ldr r1, _080561D4 @ =gLastUsedWarp
movs r0, 0
ldrsb r0, [r1, r0]
lsls r0, 16
@@ -2501,7 +2009,7 @@ GetLastUsedWarpMapSectionId: @ 80561B4
pop {r1}
bx r1
.align 2, 0
_080561D4: .4byte gUnknown_2031DB4
_080561D4: .4byte gLastUsedWarp
thumb_func_end GetLastUsedWarpMapSectionId
thumb_func_start IsMapTypeOutdoors
@@ -3410,7 +2918,7 @@ CB2_ContinueSavedGame: @ 8056938
bl FieldClearVBlankHBlankCallbacks
bl StopMapMusic
bl sub_8056420
bl set_current_map_header_from_sav1
bl LoadSaveblockMapHeader
bl sub_80550A8
bl UnfreezeObjectEvents
bl sub_8054E40
@@ -4514,7 +4022,7 @@ sub_80572A8: @ 80572A8
ldr r0, _080572D0 @ =gUnknown_2036E28
movs r1, 0x1
strb r1, [r0]
bl set_current_map_header_from_sav1
bl LoadSaveblockMapHeader
bl ScriptContext1_Init
bl ScriptContext2_Disable
movs r0, 0
@@ -4695,7 +4203,7 @@ sub_8057430: @ 8057430
movs r0, 0x3
strb r0, [r1]
bl sub_8056420
bl set_current_map_header_from_sav1
bl LoadSaveblockMapHeader
bl sub_80550A8
bl UnfreezeObjectEvents
bl sub_8054E40
@@ -4865,7 +4373,7 @@ _08057560:
ands r0, r2
adds r6, r0, 0
orrs r6, r1
ldr r0, _08057608 @ =gUnknown_2031DBC
ldr r0, _08057608 @ =sWarpDestination
str r5, [r0]
str r6, [r0, 0x4]
ldr r1, _0805760C @ =gUnknown_2031DE8
@@ -4902,7 +4410,7 @@ _080575F8: .4byte 0xffffff00
_080575FC: .4byte 0xffff00ff
_08057600: .4byte 0xffff0000
_08057604: .4byte 0x0000ffff
_08057608: .4byte gUnknown_2031DBC
_08057608: .4byte sWarpDestination
_0805760C: .4byte gUnknown_2031DE8
_08057610: .4byte gPaletteFade
_08057614: .4byte gFieldCallback2
-7
View File
@@ -5,13 +5,6 @@
.section .rodata
.align 2, 0
.align 2
sDummyWarpData:: @ 826D2B0
map MAP_UNDEFINED
.byte 0xFF
.align 1
.2byte 0xFFFF, 0xFFFF
sUnusedData:: @ 826D2B8
.4byte 1200
.4byte 3600
+1
View File
@@ -31,5 +31,6 @@ void SetCameraPanning(s16 x, s16 y);
void UpdateCameraPanning(void);
void InstallCameraPanAheadCallback(void);
void DrawDoorMetatileAt(int x, int y, const u16 *data);
void move_tilemap_camera_to_upper_left_corner(void);
#endif //GUARD_FIELD_CAMERA_H
+3 -1
View File
@@ -24,7 +24,7 @@ void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s32, s32);
s32 GetMapBorderIdAt(s32, s32);
bool32 CanCameraMoveInDirection(s32);
u32 GetBehaviorByMetatileIdAndMapLayout(struct MapLayout *mapLayout, u16 metatile, u8 attr);
u32 GetBehaviorByMetatileIdAndMapLayout(const struct MapLayout *mapLayout, u16 metatile, u8 attr);
const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection);
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
void sub_8059948(u8 a0, u8 a1);
@@ -34,5 +34,7 @@ u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit);
u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr);
void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2);
bool8 CameraMove(s32 x, s32 y);
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout);
void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout);
#endif //GUARD_FIELDMAP_H
+4 -4
View File
@@ -185,10 +185,10 @@ struct MapConnections
struct MapHeader
{
/* 0x00 */ struct MapLayout *mapLayout;
/* 0x04 */ struct MapEvents *events;
/* 0x08 */ u8 *mapScripts;
/* 0x0C */ struct MapConnections *connections;
/* 0x00 */ const struct MapLayout *mapLayout;
/* 0x04 */ const struct MapEvents *events;
/* 0x08 */ const u8 *mapScripts;
/* 0x0C */ const struct MapConnections *connections;
/* 0x10 */ u16 music;
/* 0x12 */ u16 mapLayoutId;
/* 0x14 */ u8 regionMapSectionId;
+6 -6
View File
@@ -58,8 +58,8 @@ extern struct UCoords32 gDirectionToVectors[];
extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4];
extern MainCallback gFieldCallback;
extern struct WarpData gUnknown_2031DB4;
extern struct WarpData gUnknown_2031DBC;
extern struct WarpData gLastUsedWarp;
extern struct WarpData sWarpDestination;
extern u8 gUnknown_2031DE0;
extern u8 gFieldLinkPlayerCount;
@@ -68,7 +68,7 @@ extern u8 gLocalLinkPlayerId;
void IncrementGameStat(u8 index);
void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
void Overworld_SetMapObjTemplateMovementType(u8, u8);
void Overworld_SetObjEventTemplateMovementType(u8, u8);
void SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
@@ -100,7 +100,7 @@ void Overworld_ChangeMusicTo(u16);
bool32 IsUpdateLinkStateCBActive(void);
void ClearLinkPlayerObjectEvents(void);
const struct MapHeader *Overworld_GetMapHeaderByGroupAndId(u16, u16);
const struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16, u16);
void ObjectEventMoveDestCoords(struct ObjectEvent *, u32, s16 *, s16 *);
void sub_8086230(void);
void CB2_ReturnToField(void);
@@ -159,7 +159,7 @@ bool32 sub_8058244(void);
u8 GetCurrentMapType(void);
u8 GetLastUsedWarpMapType(void);
const struct MapHeader *warp1_get_mapheader(void);
const struct MapHeader *const GetDestinationWarpMapHeader(void);
void TryFadeOutOldMapMusic(void);
void CB2_ReturnToFieldCableClub(void);
void ResetGameStats(void);
@@ -172,7 +172,7 @@ bool32 sub_8058318(void);
void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_WhiteOut(void);
void c2_8056854(void);
void sub_8054F38(u32 newKey);
void ApplyNewEncryptionKeyToGameStats(u32 newKey);
void sub_8055778(int);
void sub_8055738(u8 loc);
+2 -2
View File
@@ -94,7 +94,7 @@ void FadeInFromBlack(void)
void WarpFadeOutScreen(void)
{
const struct MapHeader *header = warp1_get_mapheader();
const struct MapHeader *header = GetDestinationWarpMapHeader();
if (header->regionMapSectionId != gMapHeader.regionMapSectionId && MapHasPreviewScreen(header->regionMapSectionId, MPS_TYPE_CAVE))
FadeScreen(FADE_TO_BLACK, 0);
else
@@ -113,7 +113,7 @@ void WarpFadeOutScreen(void)
static void sub_807DC70(void)
{
switch (MapTransitionIsEnter(GetCurrentMapType(), warp1_get_mapheader()->mapType))
switch (MapTransitionIsEnter(GetCurrentMapType(), GetDestinationWarpMapHeader()->mapType))
{
case FALSE:
FadeScreen(FADE_TO_BLACK, 3);
+1 -1
View File
@@ -2040,7 +2040,7 @@ const u16 sPokeCenter1FMaps[] = {
bool8 sub_80CC87C(void)
{
s32 i;
u16 mapno = (gUnknown_2031DB4.mapGroup << 8) + gUnknown_2031DB4.mapNum;
u16 mapno = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum;
for (i = 0; sPokeCenter1FMaps[i] != MAP_UNDEFINED; i++)
{
if (sPokeCenter1FMaps[i] == mapno)
+2 -2
View File
@@ -370,7 +370,7 @@ union Block
s32 xprime; \
s32 yprime; \
\
struct MapLayout *mapLayout = gMapHeader.mapLayout; \
const struct MapLayout *mapLayout = gMapHeader.mapLayout; \
\
xprime = x - 7; \
xprime += 8 * mapLayout->borderWidth; \
@@ -485,7 +485,7 @@ void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2)
}
}
u32 GetBehaviorByMetatileIdAndMapLayout(struct MapLayout *mapLayout, u16 metatile, u8 attr)
u32 GetBehaviorByMetatileIdAndMapLayout(const struct MapLayout *mapLayout, u16 metatile, u8 attr)
{
u32 * attributes;
+3 -3
View File
@@ -15,7 +15,7 @@
static void Task_NoResponse_CleanUp(u8 taskId);
static void Task_ItemfinderResponseSoundsAndAnims(u8 taskId);
static void Task_ItemfinderUnderfootSoundsAndAnims(u8 taskId);
static bool8 HiddenItemIsWithinRangeOfPlayer(struct MapEvents * events, u8 taskId);
static bool8 HiddenItemIsWithinRangeOfPlayer(const struct MapEvents * events, u8 taskId);
static void SetUnderfootHiddenItem(u8 taskId, u32 hiddenItem);
static void SetNormalHiddenItem(u8 taskId);
static void FindHiddenItemsInConnectedMaps(u8 taskId);
@@ -199,7 +199,7 @@ static void Task_ItemfinderUnderfootSoundsAndAnims(u8 taskId)
tDingTimer++;
}
static bool8 HiddenItemIsWithinRangeOfPlayer(struct MapEvents * events, u8 taskId)
static bool8 HiddenItemIsWithinRangeOfPlayer(const struct MapEvents * events, u8 taskId)
{
s16 x, y, i, dx, dy;
PlayerGetDestCoords(&x, &y);
@@ -284,7 +284,7 @@ static void SetNormalHiddenItem(u8 taskId)
}
}
static bool8 HiddenItemAtPos(struct MapEvents * events, s16 x, s16 y)
static bool8 HiddenItemAtPos(const struct MapEvents * events, s16 x, s16 y)
{
u8 bgEventCount = events->bgEventCount;
struct BgEvent * bgEvents = events->bgEvents;
+1 -1
View File
@@ -286,7 +286,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey)
for(i = 0; i < NUM_TOWER_CHALLENGE_TYPES; i++)
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->trainerTower[i].bestTime, encryptionKey);
sub_8054F38(encryptionKey);
ApplyNewEncryptionKeyToGameStats(encryptionKey);
ApplyNewEncryptionKeyToBagItems_(encryptionKey);
ApplyNewEncryptionKeyToBerryPowder(encryptionKey);
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->money, encryptionKey);
+169 -6
View File
@@ -2,13 +2,16 @@
#include "gflib.h"
#include "event_data.h"
#include "event_scripts.h"
#include "field_camera.h"
#include "field_specials.h"
#include "fieldmap.h"
#include "load_save.h"
#include "money.h"
#include "overworld.h"
#include "roamer.h"
#include "script.h"
#include "script_pokemon_util.h"
#include "tileset_anims.h"
#include "constants/maps.h"
#include "constants/flags.h"
@@ -19,11 +22,10 @@ struct InitialPlayerAvatarState
u8 unk2;
};
EWRAM_DATA struct WarpData gUnknown_2031DB4 = {};
EWRAM_DATA struct WarpData gUnknown_2031DBC = {};
EWRAM_DATA struct WarpData gUnknown_2031DC4 = {};
EWRAM_DATA struct WarpData gUnknown_2031DCC = {};
EWRAM_DATA struct WarpData gLastUsedWarp = {};
EWRAM_DATA struct WarpData sWarpDestination = {};
EWRAM_DATA struct WarpData gFixedDiveWarp = {};
EWRAM_DATA struct WarpData gFixedHoleWarp = {};
EWRAM_DATA struct InitialPlayerAvatarState gUnknown_2031DD4 = {};
u8 CountBadgesForOverworldWhiteOutLossCalculation(void);
@@ -31,6 +33,9 @@ void Overworld_ResetStateAfterWhitingOut(void);
void Overworld_SetWhiteoutRespawnPoint(void);
void sub_805610C(void);
extern const struct MapLayout * gMapLayouts[];
extern const struct MapHeader *const *gMapGroups[];
static const u8 sWhiteOutMoneyLossMultipliers[] = {
2,
4,
@@ -196,7 +201,7 @@ void SetGameStat(u8 statId, u32 statVal)
gSaveBlock1Ptr->gameStats[statId] = statVal ^ gSaveBlock2Ptr->encryptionKey;
}
void sub_8054F38(u32 newKey)
void ApplyNewEncryptionKeyToGameStats(u32 newKey)
{
u8 i;
for (i = 0; i < NUM_GAME_STATS; i++)
@@ -204,3 +209,161 @@ void sub_8054F38(u32 newKey)
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->gameStats[i], newKey);
}
}
void sub_8054F68(void)
{
u8 i, j;
u8 mapGroup;
u8 mapNum;
u8 localId;
const struct MapHeader * linkedMap;
for (i = 0, j = 0; i < gMapHeader.events->objectEventCount; i++)
{
if (gMapHeader.events->objectEvents[i].unk2 == 0xFF)
{
localId = gMapHeader.events->objectEvents[i].elevation;
mapNum = gMapHeader.events->objectEvents[i].trainerType;
mapGroup = gMapHeader.events->objectEvents[i].trainerRange_berryTreeId;
linkedMap = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum);
gSaveBlock1Ptr->objectEventTemplates[j] = linkedMap->events->objectEvents[localId - 1];
gSaveBlock1Ptr->objectEventTemplates[j].localId = gMapHeader.events->objectEvents[i].localId;
gSaveBlock1Ptr->objectEventTemplates[j].x = gMapHeader.events->objectEvents[i].x;
gSaveBlock1Ptr->objectEventTemplates[j].y = gMapHeader.events->objectEvents[i].y;
gSaveBlock1Ptr->objectEventTemplates[j].elevation = localId;
gSaveBlock1Ptr->objectEventTemplates[j].trainerType = mapNum;
gSaveBlock1Ptr->objectEventTemplates[j].trainerRange_berryTreeId = mapGroup;
gSaveBlock1Ptr->objectEventTemplates[j].unk2 = 0xFF;
j++;
}
else
{
gSaveBlock1Ptr->objectEventTemplates[j] = gMapHeader.events->objectEvents[i];
j++;
}
}
}
void sub_80550A8(void)
{
int i;
const struct ObjectEventTemplate * src = gMapHeader.events->objectEvents;
struct ObjectEventTemplate * savObjTemplates = gSaveBlock1Ptr->objectEventTemplates;
for (i = 0; i < OBJECT_EVENT_TEMPLATES_COUNT; i++)
{
savObjTemplates[i].script = src[i].script;
}
}
void Overworld_SetMapObjTemplateCoords(u8 localId, s16 x, s16 y)
{
int i;
struct ObjectEventTemplate * savObjTemplates = gSaveBlock1Ptr->objectEventTemplates;
for (i = 0; i < OBJECT_EVENT_TEMPLATES_COUNT; i++)
{
if (savObjTemplates[i].localId == localId)
{
savObjTemplates[i].x = x;
savObjTemplates[i].y = y;
break;
}
}
}
void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType)
{
s32 i;
struct ObjectEventTemplate *savObjTemplates = gSaveBlock1Ptr->objectEventTemplates;
for (i = 0; i < OBJECT_EVENT_TEMPLATES_COUNT; i++)
{
struct ObjectEventTemplate *objectEventTemplate = &savObjTemplates[i];
if (objectEventTemplate->localId == localId)
{
objectEventTemplate->movementType = movementType;
return;
}
}
}
void mapdata_load_assets_to_gpu_and_full_redraw(void)
{
move_tilemap_camera_to_upper_left_corner();
copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout);
apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout);
DrawWholeMapView();
InitTilesetAnimations();
}
const struct MapLayout *GetMapLayout(void)
{
u16 mapLayoutId = gSaveBlock1Ptr->mapLayoutId;
if (mapLayoutId)
return gMapLayouts[mapLayoutId - 1];
return NULL;
}
const struct WarpData sDummyWarpData = {
.mapGroup = MAP_GROUP(UNDEFINED),
.mapNum = MAP_NUM(UNDEFINED),
.warpId = 0xFF,
.x = -1,
.y = -1
};
void ApplyCurrentWarp(void)
{
gLastUsedWarp = gSaveBlock1Ptr->location;
gSaveBlock1Ptr->location = sWarpDestination;
gFixedDiveWarp = sDummyWarpData;
gFixedHoleWarp = sDummyWarpData;
}
void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
warp->mapGroup = mapGroup;
warp->mapNum = mapNum;
warp->warpId = warpId;
warp->x = x;
warp->y = y;
}
bool32 IsDummyWarp(struct WarpData *warp)
{
if (warp->mapGroup != -1)
return FALSE;
else if (warp->mapNum != -1)
return FALSE;
else if (warp->warpId != -1)
return FALSE;
else if (warp->x != -1)
return FALSE;
else if (warp->y != -1)
return FALSE;
else
return TRUE;
}
struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum)
{
return gMapGroups[mapGroup][mapNum];
}
struct MapHeader const *const GetDestinationWarpMapHeader(void)
{
return Overworld_GetMapHeaderByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum);
}
void LoadCurrentMapData(void)
{
gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
gSaveBlock1Ptr->mapLayoutId = gMapHeader.mapLayoutId;
gMapHeader.mapLayout = GetMapLayout();
}
void LoadSaveblockMapHeader(void)
{
gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
gMapHeader.mapLayout = GetMapLayout();
}
+1 -1
View File
@@ -1168,7 +1168,7 @@ bool8 ScrCmd_setobjectmovementtype(struct ScriptContext * ctx)
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 movementType = ScriptReadByte(ctx);
Overworld_SetMapObjTemplateMovementType(localId, movementType);
Overworld_SetObjEventTemplateMovementType(localId, movementType);
return FALSE;
}
+2 -2
View File
@@ -358,7 +358,7 @@ void ScriptContext2_RunNewScript(const u8 *ptr)
u8 *mapheader_get_tagged_pointer(u8 tag)
{
u8 *mapScripts = gMapHeader.mapScripts;
const u8 *mapScripts = gMapHeader.mapScripts;
if (mapScripts == NULL)
return NULL;
@@ -370,7 +370,7 @@ u8 *mapheader_get_tagged_pointer(u8 tag)
if (*mapScripts == tag)
{
mapScripts++;
return (u8 *)(mapScripts[0] + (mapScripts[1] << 8) + (mapScripts[2] << 16) + (mapScripts[3] << 24));
return T2_READ_PTR(mapScripts);
}
mapScripts += 5;
}
+4 -4
View File
@@ -35,16 +35,16 @@
.align 2
@ .include "src/overworld.o"
gUnknown_2031DB4: @ 2031DB4
gLastUsedWarp: @ 2031DB4
.space 0x8
gUnknown_2031DBC: @ 2031DBC
sWarpDestination: @ 2031DBC
.space 0x8
gUnknown_2031DC4: @ 2031DC4
gFixedDiveWarp: @ 2031DC4
.space 0x8
gUnknown_2031DCC: @ 2031DCC
gFixedHoleWarp: @ 2031DCC
.space 0x8
gUnknown_2031DD4: @ 2031DD4