Merge pull request #1464 from ExpoSeed/pret/map-header-flags

Change map header flags to use a bitfield
This commit is contained in:
GriffinR 2021-06-13 18:12:40 -04:00 committed by GitHub
commit 69fb670955
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 16 deletions

View file

@ -142,19 +142,15 @@ struct MapHeader
/* 0x16 */ u8 weather;
/* 0x17 */ u8 mapType;
/* 0x18 */ u8 filler_18[2];
/* 0x1A */ u8 flags;
// fields correspond to the arguments in the map_header_flags macro
/* 0x1A */ bool8 allowCycling:1;
bool8 allowEscaping:1; // Escape Rope and Dig
bool8 allowRunning:1;
bool8 showMapName:5; // the last 4 bits are unused
// but the 5 bit sized bitfield is required to match
/* 0x1B */ u8 battleType;
};
// Flags for gMapHeader.flags, as defined in the map_header_flags macro
#define MAP_ALLOW_CYCLING (1 << 0)
#define MAP_ALLOW_ESCAPING (1 << 1) // Escape Rope and Dig
#define MAP_ALLOW_RUNNING (1 << 2)
#define MAP_SHOW_MAP_NAME (1 << 3)
#define UNUSED_MAP_FLAGS (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7)
#define SHOW_MAP_NAME_ENABLED ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME)
struct ObjectEvent
{

View file

@ -1053,7 +1053,7 @@ void Bike_HandleBumpySlopeJump(void)
bool32 IsRunningDisallowed(u8 metatile)
{
if (!(gMapHeader.flags & MAP_ALLOW_RUNNING) || IsRunningDisallowedByMetatile(metatile) == TRUE)
if (!gMapHeader.allowRunning || IsRunningDisallowedByMetatile(metatile) == TRUE)
return TRUE;
else
return FALSE;

View file

@ -910,7 +910,7 @@ static void ItemUseOnFieldCB_EscapeRope(u8 taskId)
bool8 CanUseDigOrEscapeRopeOnCurMap(void)
{
if (gMapHeader.flags & MAP_ALLOW_ESCAPING)
if (gMapHeader.allowEscaping)
return TRUE;
else
return FALSE;

View file

@ -962,7 +962,7 @@ static u16 GetCenterScreenMetatileBehavior(void)
bool32 Overworld_IsBikingAllowed(void)
{
if (!(gMapHeader.flags & MAP_ALLOW_CYCLING))
if (!gMapHeader.allowCycling)
return FALSE;
else
return TRUE;
@ -1687,7 +1687,7 @@ void CB2_ReturnToFieldFadeFromBlack(void)
static void FieldCB_FadeTryShowMapPopup(void)
{
if (SHOW_MAP_NAME_ENABLED && SecretBaseMapPopupEnabled() == TRUE)
if (gMapHeader.showMapName == TRUE && SecretBaseMapPopupEnabled() == TRUE)
ShowMapNamePopup();
FieldCB_WarpExitFadeFromBlack();
}
@ -1933,7 +1933,7 @@ static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2)
(*state)++;
break;
case 11:
if (SHOW_MAP_NAME_ENABLED && SecretBaseMapPopupEnabled() == TRUE)
if (gMapHeader.showMapName == TRUE && SecretBaseMapPopupEnabled() == TRUE)
ShowMapNamePopup();
(*state)++;
break;

View file

@ -1007,7 +1007,7 @@ static void InitMapBasedOnPlayerLocation(void)
break;
case MAP_TYPE_UNDERGROUND:
case MAP_TYPE_UNKNOWN:
if (gMapHeader.flags & MAP_ALLOW_ESCAPING)
if (gMapHeader.allowEscaping)
{
mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum);
gRegionMap->mapSecId = mapHeader->regionMapSectionId;