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; /* 0x16 */ u8 weather;
/* 0x17 */ u8 mapType; /* 0x17 */ u8 mapType;
/* 0x18 */ u8 filler_18[2]; /* 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; /* 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 struct ObjectEvent
{ {

View file

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

View file

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

View file

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

View file

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