through sub_805644C

This commit is contained in:
PikalaxALT
2020-03-28 12:20:20 -04:00
parent 9c62fd51aa
commit 24ac46856a
9 changed files with 262 additions and 565 deletions
+12 -458
View File
@@ -5,452 +5,6 @@
.text
thumb_func_start GetMapTypeByGroupAndId
GetMapTypeByGroupAndId: @ 8056158
push {lr}
lsls r0, 24
asrs r0, 8
lsrs r0, 16
lsls r1, 24
asrs r1, 8
lsrs r1, 16
bl Overworld_GetMapHeaderByGroupAndId
ldrb r0, [r0, 0x17]
pop {r1}
bx r1
thumb_func_end GetMapTypeByGroupAndId
thumb_func_start get_map_light_level_from_warp
get_map_light_level_from_warp: @ 8056170
push {lr}
movs r2, 0
ldrsb r2, [r0, r2]
movs r1, 0x1
ldrsb r1, [r0, r1]
adds r0, r2, 0
bl GetMapTypeByGroupAndId
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end get_map_light_level_from_warp
thumb_func_start GetCurrentMapType
GetCurrentMapType: @ 8056188
push {lr}
ldr r0, _0805619C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x4
bl get_map_light_level_from_warp
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0805619C: .4byte gSaveBlock1Ptr
thumb_func_end GetCurrentMapType
thumb_func_start GetLastUsedWarpMapType
GetLastUsedWarpMapType: @ 80561A0
push {lr}
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 gLastUsedWarp
thumb_func_end GetLastUsedWarpMapType
thumb_func_start GetLastUsedWarpMapSectionId
GetLastUsedWarpMapSectionId: @ 80561B4
push {lr}
ldr r1, _080561D4 @ =gLastUsedWarp
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
ldrb r0, [r0, 0x14]
pop {r1}
bx r1
.align 2, 0
_080561D4: .4byte gLastUsedWarp
thumb_func_end GetLastUsedWarpMapSectionId
thumb_func_start IsMapTypeOutdoors
IsMapTypeOutdoors: @ 80561D8
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080561F2
cmp r0, 0x1
beq _080561F2
cmp r0, 0x5
beq _080561F2
cmp r0, 0x2
beq _080561F2
cmp r0, 0x6
bne _080561F6
_080561F2:
movs r0, 0x1
b _080561F8
_080561F6:
movs r0, 0
_080561F8:
pop {r1}
bx r1
thumb_func_end IsMapTypeOutdoors
thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08056212
cmp r0, 0x1
beq _08056212
cmp r0, 0x6
beq _08056212
cmp r0, 0x2
bne _08056216
_08056212:
movs r0, 0x1
b _08056218
_08056216:
movs r0, 0
_08056218:
pop {r1}
bx r1
thumb_func_end Overworld_MapTypeAllowsTeleportAndFly
thumb_func_start IsMapTypeIndoors
IsMapTypeIndoors: @ 805621C
push {lr}
lsls r0, 24
movs r1, 0xF8
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08056230
movs r0, 0
b _08056232
_08056230:
movs r0, 0x1
_08056232:
pop {r1}
bx r1
thumb_func_end IsMapTypeIndoors
thumb_func_start GetSavedWarpRegionMapSectionId
GetSavedWarpRegionMapSectionId: @ 8056238
push {lr}
ldr r0, _0805625C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x14
ldrsb r0, [r1, r0]
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x15]
lsls r1, 24
asrs r1, 24
lsls r1, 16
lsrs r1, 16
bl Overworld_GetMapHeaderByGroupAndId
ldrb r0, [r0, 0x14]
pop {r1}
bx r1
.align 2, 0
_0805625C: .4byte gSaveBlock1Ptr
thumb_func_end GetSavedWarpRegionMapSectionId
thumb_func_start GetCurrentRegionMapSectionId
GetCurrentRegionMapSectionId: @ 8056260
push {lr}
ldr r0, _08056284 @ =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
ldrb r0, [r0, 0x14]
pop {r1}
bx r1
.align 2, 0
_08056284: .4byte gSaveBlock1Ptr
thumb_func_end GetCurrentRegionMapSectionId
thumb_func_start GetCurrentMapBattleScene
GetCurrentMapBattleScene: @ 8056288
push {lr}
ldr r0, _080562AC @ =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
ldrb r0, [r0, 0x1B]
pop {r1}
bx r1
.align 2, 0
_080562AC: .4byte gSaveBlock1Ptr
thumb_func_end GetCurrentMapBattleScene
thumb_func_start InitOverworldBgs
InitOverworldBgs: @ 80562B0
push {r4-r6,lr}
mov r6, r8
push {r6}
bl MoveSaveBlocks_ResetHeap_
bl sub_8056E80
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08056344 @ =gUnknown_826D320
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x3
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
ldr r0, _08056348 @ =gBGTilemapBuffers2
mov r8, r0
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl AllocZeroed
mov r1, r8
str r0, [r1]
ldr r6, _0805634C @ =gBGTilemapBuffers1
adds r0, r4, 0
bl AllocZeroed
str r0, [r6]
ldr r5, _08056350 @ =gBGTilemapBuffers3
adds r0, r4, 0
bl AllocZeroed
str r0, [r5]
mov r0, r8
ldr r1, [r0]
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r6]
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
bl InitStandardTextBoxWindows
bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08056344: .4byte gUnknown_826D320
_08056348: .4byte gBGTilemapBuffers2
_0805634C: .4byte gBGTilemapBuffers1
_08056350: .4byte gBGTilemapBuffers3
thumb_func_end InitOverworldBgs
thumb_func_start sub_8056354
sub_8056354: @ 8056354
push {r4-r6,lr}
mov r6, r8
push {r6}
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080563E0 @ =gUnknown_826D320
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x3
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
ldr r0, _080563E4 @ =gBGTilemapBuffers2
mov r8, r0
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl AllocZeroed
mov r1, r8
str r0, [r1]
ldr r6, _080563E8 @ =gBGTilemapBuffers1
adds r0, r4, 0
bl AllocZeroed
str r0, [r6]
ldr r5, _080563EC @ =gBGTilemapBuffers3
adds r0, r4, 0
bl AllocZeroed
str r0, [r5]
mov r0, r8
ldr r1, [r0]
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r6]
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
bl InitStandardTextBoxWindows
bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080563E0: .4byte gUnknown_826D320
_080563E4: .4byte gBGTilemapBuffers2
_080563E8: .4byte gBGTilemapBuffers1
_080563EC: .4byte gBGTilemapBuffers3
thumb_func_end sub_8056354
thumb_func_start CleanupOverworldWindowsAndTilemaps
CleanupOverworldWindowsAndTilemaps: @ 80563F0
push {lr}
bl FreeAllOverworldWindowBuffers
ldr r0, _08056414 @ =gBGTilemapBuffers3
ldr r0, [r0]
bl Free
ldr r0, _08056418 @ =gBGTilemapBuffers1
ldr r0, [r0]
bl Free
ldr r0, _0805641C @ =gBGTilemapBuffers2
ldr r0, [r0]
bl Free
pop {r0}
bx r0
.align 2, 0
_08056414: .4byte gBGTilemapBuffers3
_08056418: .4byte gBGTilemapBuffers1
_0805641C: .4byte gBGTilemapBuffers2
thumb_func_end CleanupOverworldWindowsAndTilemaps
thumb_func_start sub_8056420
sub_8056420: @ 8056420
push {lr}
bl ResetSafariZoneFlag
pop {r0}
bx r0
thumb_func_end sub_8056420
thumb_func_start IsUpdateLinkStateCBActive
IsUpdateLinkStateCBActive: @ 805642C
push {lr}
ldr r0, _0805643C @ =gMain
ldr r1, [r0]
ldr r0, _08056440 @ =c1_link_related
cmp r1, r0
beq _08056444
movs r0, 0
b _08056446
.align 2, 0
_0805643C: .4byte gMain
_08056440: .4byte c1_link_related
_08056444:
movs r0, 0x1
_08056446:
pop {r1}
bx r1
thumb_func_end IsUpdateLinkStateCBActive
thumb_func_start sub_805644C
sub_805644C: @ 805644C
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
adds r5, r0, 0
lsls r1, 16
lsrs r1, 16
adds r4, r1, 0
bl sub_8112B3C
bl sub_805BEB8
mov r6, sp
mov r0, sp
bl FieldClearPlayerInput
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
bl FieldGetPlayerInput
mov r0, sp
bl FieldInput_HandleCancelSignpost
bl ScriptContext2_IsEnabled
lsls r0, 24
cmp r0, 0
bne _080564BA
mov r0, sp
bl ProcessPlayerFieldInput
cmp r0, 0x1
bne _080564B0
ldr r0, _080564A8 @ =gUnknown_3005E88
ldrb r0, [r0]
cmp r0, 0x2
bne _0805649E
ldr r0, _080564AC @ =gInputToStoreInQuestLogMaybe
bl sub_81127F8
_0805649E:
bl ScriptContext2_Enable
bl DismissMapNamePopup
b _080564BA
.align 2, 0
_080564A8: .4byte gUnknown_3005E88
_080564AC: .4byte gInputToStoreInQuestLogMaybe
_080564B0:
ldrb r0, [r6, 0x2]
adds r1, r5, 0
adds r2, r4, 0
bl player_step
_080564BA:
bl RunQuestLogCB
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_805644C
thumb_func_start sub_80564C8
sub_80564C8: @ 80564C8
push {lr}
@@ -643,7 +197,7 @@ CB2_NewGame: @ 8056644
push {lr}
bl FieldClearVBlankHBlankCallbacks
bl StopMapMusic
bl sub_8056420
bl ResetSafariZoneFlag_
bl NewGameInitData
bl ResetInitialPlayerAvatarState
bl PlayTimeCounter_Start
@@ -690,7 +244,7 @@ CB2_WhiteOut: @ 80566A4
bls _08056702
bl FieldClearVBlankHBlankCallbacks
bl StopMapMusic
bl sub_8056420
bl ResetSafariZoneFlag_
bl sub_8054BC8
movs r0, 0x2
bl sub_80559F8
@@ -796,7 +350,7 @@ c2_80567AC: @ 80567AC
cmp r0, 0
beq _080567CC
bl SetFieldVBlankCallback
ldr r0, _080567D4 @ =c1_link_related
ldr r0, _080567D4 @ =CB1_UpdateLinkState
bl SetMainCallback1
bl sub_80578D8
ldr r0, _080567D8 @ =sub_80565B4
@@ -806,7 +360,7 @@ _080567CC:
bx r0
.align 2, 0
_080567D0: .4byte gMain + 0x438
_080567D4: .4byte c1_link_related
_080567D4: .4byte CB1_UpdateLinkState
_080567D8: .4byte sub_80565B4
thumb_func_end c2_80567AC
@@ -875,7 +429,7 @@ c2_8056854: @ 8056854
push {lr}
bl FieldClearVBlankHBlankCallbacks
bl StopMapMusic
ldr r0, _08056878 @ =c1_link_related
ldr r0, _08056878 @ =CB1_UpdateLinkState
bl SetMainCallback1
bl sub_80578D8
ldr r0, _0805687C @ =gWirelessCommType
@@ -886,7 +440,7 @@ c2_8056854: @ 8056854
ldr r0, _08056884 @ =FieldCB_ReturnToFieldWirelessLink
b _0805688C
.align 2, 0
_08056878: .4byte c1_link_related
_08056878: .4byte CB1_UpdateLinkState
_0805687C: .4byte gWirelessCommType
_08056880: .4byte gFieldCallback
_08056884: .4byte FieldCB_ReturnToFieldWirelessLink
@@ -989,7 +543,7 @@ CB2_ContinueSavedGame: @ 8056938
push {lr}
bl FieldClearVBlankHBlankCallbacks
bl StopMapMusic
bl sub_8056420
bl ResetSafariZoneFlag_
bl LoadSaveblockMapHeader
bl sub_80550A8
bl UnfreezeObjectEvents
@@ -2274,7 +1828,7 @@ sub_8057430: @ 8057430
ldr r1, _08057484 @ =gUnknown_2036E28
movs r0, 0x3
strb r0, [r1]
bl sub_8056420
bl ResetSafariZoneFlag_
bl LoadSaveblockMapHeader
bl sub_80550A8
bl UnfreezeObjectEvents
@@ -2541,7 +2095,7 @@ _0805766C:
.4byte _0805770C
.4byte _08057712
_08057690:
bl sub_8056354
bl InitOverworldBgs_NoResetHeap
movs r0, 0
bl mli0_load_map
b _0805772A
@@ -2784,8 +2338,8 @@ _0805787C: .4byte gPaletteFade
_08057880: .4byte CB2_LoadMap
thumb_func_end sub_8057854
thumb_func_start c1_link_related
c1_link_related: @ 8057884
thumb_func_start CB1_UpdateLinkState
CB1_UpdateLinkState: @ 8057884
push {r4,lr}
ldr r0, _080578C8 @ =gWirelessCommType
ldrb r0, [r0]
@@ -2820,7 +2374,7 @@ _080578C8: .4byte gWirelessCommType
_080578CC: .4byte gLocalLinkPlayerId
_080578D0: .4byte gLinkPartnersHeldKeys
_080578D4: .4byte gUnknown_3000E84
thumb_func_end c1_link_related
thumb_func_end CB1_UpdateLinkState
thumb_func_start sub_80578D8
sub_80578D8: @ 80578D8
+8
View File
@@ -0,0 +1,8 @@
gBGTilemapBuffers1
gBGTilemapBuffers2
gBGTilemapBuffers3
gFieldCallback
gFieldCallback2
gHeldKeyCodeToSend
gLocalLinkPlayerId
gFieldLinkPlayerCount
-63
View File
@@ -5,69 +5,6 @@
.section .rodata
.align 2, 0
sUnusedData:: @ 826D2B8
.4byte 1200
.4byte 3600
.4byte 1200
.4byte 2400
.4byte 50
.4byte 80
.4byte -44
.4byte 44
gDirectionToVectors:: @ 826D2D8
.4byte 0, 0
.4byte 0, 1
.4byte 0, -1
.4byte -1, 0
.4byte 1, 0
.4byte -1, 1
.4byte 1, 1
.4byte -1, -1
.4byte 1, -1
gUnknown_826D320:: @ 826D320
.4byte 0x000001f8
@ {
@ .bg = 0,
@ .charBaseIndex = 2,
@ .mapBaseIndex = 31,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 0,
@ .baseTile = 0x0000
@ }
.4byte 0x000011d1
@ {
@ .bg = 1,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 29,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 1,
@ .baseTile = 0x0000
@ }
.4byte 0x000021c2
@ {
@ .bg = 2,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 28,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 2,
@ .baseTile = 0x0000
@ }
.4byte 0x000031e3
@ {
@ .bg = 3,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 30,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 3,
@ .baseTile = 0x0000
@ }
gFlashEffectParams:: @ 826D330
.4byte REG_WIN0H
.4byte (2 >> 1) | ((DMA_16BIT | DMA_DEST_RELOAD | DMA_SRC_INC | DMA_REPEAT | DMA_START_HBLANK | DMA_ENABLE) << 16)
+1
View File
@@ -9,5 +9,6 @@ bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void);
bool8 IsFieldMessageBoxHidden(void);
bool8 textbox_any_visible(void);
void sub_8069348(void);
#endif // GUARD_FIELD_MESSAGE_BOX_H
+1 -1
View File
@@ -53,7 +53,7 @@ struct CreditsOverworldCmd
#define MUSIC_DISABLE_STOP 1
#define MUSIC_DISABLE_KEEP 2
extern struct UCoords32 gDirectionToVectors[];
extern const struct UCoords32 gDirectionToVectors[];
extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4];
extern MainCallback gFieldCallback;
+4 -14
View File
@@ -4,23 +4,10 @@
#include "global.h"
#include "quest_log_battle.h"
#include "constants/quest_log.h"
struct UnkStruct_3005E90
{
u8 unk_0;
u8 unk_1_0:1;
u8 unk_1_1:1;
u8 unk_1_2:1;
u8 unk_1_3:1;
u8 unk_1_4:1;
u8 unk_2;
};
#include "field_control_avatar.h"
extern u8 gQuestLogState;
extern u8 gUnknown_3005E88;
extern u16 sNumEventsInLogEntry;
extern struct UnkStruct_3005E90 gUnknown_3005E90;
extern struct QuestLogEntry * sCurQuestLogEntry;
extern const u16 gUnknown_84566A8[];
void sub_8112720(u8);
@@ -61,5 +48,8 @@ void sub_8112588(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 dur
void sub_8112C9C(void);
void sub_8110920(void);
void sub_8111708(void);
void sub_81127F8(struct FieldInput * a0);
void sub_8112B3C(void);
void RunQuestLogCB(void);
#endif //GUARD_QUEST_LOG_H
+232
View File
@@ -4,6 +4,7 @@
#include "event_scripts.h"
#include "field_camera.h"
#include "field_control_avatar.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
#include "field_specials.h"
@@ -15,11 +16,13 @@
#include "map_name_popup.h"
#include "metatile_behavior.h"
#include "money.h"
#include "new_menu_helpers.h"
#include "overworld.h"
#include "quest_log.h"
#include "random.h"
#include "renewable_hidden_items.h"
#include "roamer.h"
#include "safari_zone.h"
#include "save_location.h"
#include "script.h"
#include "script_pokemon_util.h"
@@ -61,6 +64,15 @@ EWRAM_DATA s16 gUnknown_2031DEA = 0;
// File boundary perhaps?
EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {};
u16 *gBGTilemapBuffers1;
u16 *gBGTilemapBuffers2;
u16 *gBGTilemapBuffers3;
void (*gFieldCallback)(void);
bool8 (*gFieldCallback2)(void);
u16 gHeldKeyCodeToSend;
u8 gLocalLinkPlayerId;
u8 gFieldLinkPlayerCount;
u8 CountBadgesForOverworldWhiteOutLossCalculation(void);
void Overworld_ResetStateAfterWhitingOut(void);
void Overworld_SetWhiteoutRespawnPoint(void);
@@ -72,6 +84,10 @@ void SetDefaultFlashLevel(void);
void Overworld_TryMapConnectionMusicTransition(void);
void ChooseAmbientCrySpecies(void);
void MoveSaveBlocks_ResetHeap_(void);
void sub_8056E80(void);
void CB1_UpdateLinkState(void);
extern const struct MapLayout * gMapLayouts[];
extern const struct MapHeader *const *gMapGroups[];
@@ -1057,3 +1073,219 @@ bool32 sub_8056124(u16 music)
}
return TRUE;
}
u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum)
{
return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->mapType;
}
u8 GetMapTypeByWarpData(struct WarpData *warp)
{
return GetMapTypeByGroupAndId(warp->mapGroup, warp->mapNum);
}
u8 GetCurrentMapType(void)
{
return GetMapTypeByWarpData(&gSaveBlock1Ptr->location);
}
u8 GetLastUsedWarpMapType(void)
{
return GetMapTypeByWarpData(&gLastUsedWarp);
}
u8 GetLastUsedWarpMapSectionId(void)
{
return Overworld_GetMapHeaderByGroupAndId(gLastUsedWarp.mapGroup, gLastUsedWarp.mapNum)->regionMapSectionId;
}
bool8 IsMapTypeOutdoors(u8 mapType)
{
if (mapType == MAP_TYPE_ROUTE
|| mapType == MAP_TYPE_TOWN
|| mapType == MAP_TYPE_UNDERWATER
|| mapType == MAP_TYPE_CITY
|| mapType == MAP_TYPE_OCEAN_ROUTE)
return TRUE;
else
return FALSE;
}
bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType)
{
if (mapType == MAP_TYPE_ROUTE
|| mapType == MAP_TYPE_TOWN
|| mapType == MAP_TYPE_OCEAN_ROUTE
|| mapType == MAP_TYPE_CITY)
return TRUE;
else
return FALSE;
}
bool8 IsMapTypeIndoors(u8 mapType)
{
if (mapType == MAP_TYPE_INDOOR
|| mapType == MAP_TYPE_SECRET_BASE)
return TRUE;
else
return FALSE;
}
u8 GetSavedWarpRegionMapSectionId(void)
{
return Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->dynamicWarp.mapGroup, gSaveBlock1Ptr->dynamicWarp.mapNum)->regionMapSectionId;
}
u8 GetCurrentRegionMapSectionId(void)
{
return Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum)->regionMapSectionId;
}
u8 GetCurrentMapBattleScene(void)
{
return Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum)->battleType;
}
const int sUnusedData[] = {
1200,
3600,
1200,
2400,
50,
80,
-44,
44
};
const struct UCoords32 gDirectionToVectors[] = {
{ 0u, 0u},
{ 0u, 1u},
{ 0u, -1u},
{-1u, 0u},
{ 1u, 0u},
{-1u, 1u},
{ 1u, 1u},
{-1u, -1u},
{ 1u, -1u},
};
const struct BgTemplate sOverworldBgTemplates[] = {
{
.bg = 0,
.charBaseIndex = 2,
.mapBaseIndex = 31,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0x000
}, {
.bg = 1,
.charBaseIndex = 0,
.mapBaseIndex = 29,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0x000
}, {
.bg = 2,
.charBaseIndex = 0,
.mapBaseIndex = 28,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x000
}, {
.bg = 3,
.charBaseIndex = 0,
.mapBaseIndex = 30,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0x000
}
};
void InitOverworldBgs(void)
{
MoveSaveBlocks_ResetHeap_();
sub_8056E80();
ResetBgsAndClearDma3BusyFlags(FALSE);
InitBgsFromTemplates(0, sOverworldBgTemplates, NELEMS(sOverworldBgTemplates));
SetBgAttribute(1, BG_ATTR_MOSAIC, TRUE);
SetBgAttribute(2, BG_ATTR_MOSAIC, TRUE);
SetBgAttribute(3, BG_ATTR_MOSAIC, TRUE);
gBGTilemapBuffers2 = AllocZeroed(BG_SCREEN_SIZE);
gBGTilemapBuffers1 = AllocZeroed(BG_SCREEN_SIZE);
gBGTilemapBuffers3 = AllocZeroed(BG_SCREEN_SIZE);
SetBgTilemapBuffer(1, gBGTilemapBuffers2);
SetBgTilemapBuffer(2, gBGTilemapBuffers1);
SetBgTilemapBuffer(3, gBGTilemapBuffers3);
InitStandardTextBoxWindows();
ResetBg0();
sub_8069348();
}
void InitOverworldBgs_NoResetHeap(void)
{
ResetBgsAndClearDma3BusyFlags(FALSE);
InitBgsFromTemplates(0, sOverworldBgTemplates, NELEMS(sOverworldBgTemplates));
SetBgAttribute(1, BG_ATTR_MOSAIC, TRUE);
SetBgAttribute(2, BG_ATTR_MOSAIC, TRUE);
SetBgAttribute(3, BG_ATTR_MOSAIC, TRUE);
gBGTilemapBuffers2 = AllocZeroed(BG_SCREEN_SIZE);
gBGTilemapBuffers1 = AllocZeroed(BG_SCREEN_SIZE);
gBGTilemapBuffers3 = AllocZeroed(BG_SCREEN_SIZE);
SetBgTilemapBuffer(1, gBGTilemapBuffers2);
SetBgTilemapBuffer(2, gBGTilemapBuffers1);
SetBgTilemapBuffer(3, gBGTilemapBuffers3);
InitStandardTextBoxWindows();
ResetBg0();
sub_8069348();
}
void CleanupOverworldWindowsAndTilemaps(void)
{
FreeAllOverworldWindowBuffers();
Free(gBGTilemapBuffers3);
Free(gBGTilemapBuffers1);
Free(gBGTilemapBuffers2);
}
void ResetSafariZoneFlag_(void)
{
ResetSafariZoneFlag();
}
bool32 IsUpdateLinkStateCBActive(void)
{
if (gMain.callback1 == CB1_UpdateLinkState)
return TRUE;
else
return FALSE;
}
void sub_805644C(u16 newKeys, u16 heldKeys)
{
struct FieldInput fieldInput;
sub_8112B3C();
sub_805BEB8();
FieldClearPlayerInput(&fieldInput);
FieldGetPlayerInput(&fieldInput, newKeys, heldKeys);
FieldInput_HandleCancelSignpost(&fieldInput);
if (!ScriptContext2_IsEnabled())
{
if (ProcessPlayerFieldInput(&fieldInput) == TRUE)
{
if (gUnknown_3005E88 == 2)
sub_81127F8(&gInputToStoreInQuestLogMaybe);
ScriptContext2_Enable();
DismissMapNamePopup();
}
else
{
player_step(fieldInput.dpadDirection, newKeys, heldKeys);
}
}
RunQuestLogCB();
}
+3 -3
View File
@@ -96,7 +96,7 @@ struct UnkStruct_203B044
u8 gUnknown_3005E88;
u16 sNumEventsInLogEntry;
struct UnkStruct_3005E90 gUnknown_3005E90;
struct FieldInput gUnknown_3005E90;
struct QuestLogEntry * sCurQuestLogEntry;
static struct UnkStruct_300201C * sFlagOrVarRecords;
@@ -1536,7 +1536,7 @@ void sub_811278C(u8 movementActionId, u8 duration)
}
}
void sub_81127F8(struct UnkStruct_3005E90 * a0)
void sub_81127F8(struct FieldInput * a0)
{
if (sQuestLogCursor < sNumEventsInLogEntry)
{
@@ -1616,7 +1616,7 @@ static void SetUpQuestLogEntry(u8 kind, struct QuestLogEntry *entry, u16 size)
}
sQuestLogCursor = 0;
gUnknown_203B01C = 0;
gUnknown_3005E90 = (struct UnkStruct_3005E90){};
gUnknown_3005E90 = (struct FieldInput){};
sNextStepDelay = sCurQuestLogEntry[sQuestLogCursor].unk_4;
sMovementScripts[0][0] = sCurQuestLogEntry[sQuestLogCursor].unk_3;
sMovementScripts[0][1] = 0xFF;
+1 -26
View File
@@ -18,33 +18,8 @@
.include "random.o"
.align 2
.include "load_save.o"
.align 2
@ .include "overworld.o"
gBGTilemapBuffers1: @ 3005014
.space 0x4
gBGTilemapBuffers2: @ 3005018
.space 0x4
gBGTilemapBuffers3: @ 300501C
.space 0x4
gFieldCallback: @ 3005020
.space 0x4
gFieldCallback2: @ 3005024
.space 0x4
gHeldKeyCodeToSend: @ 3005028
.space 0x4
gLocalLinkPlayerId: @ 300502C
.space 0x4
gFieldLinkPlayerCount: @ 3005030
.space 0x10
.include "overworld.o"
.align 4
.include "fieldmap.o"
.align 4