Merge pull request #1464 from ExpoSeed/pret/map-header-flags
Change map header flags to use a bitfield
This commit is contained in:
commit
69fb670955
5 changed files with 12 additions and 16 deletions
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue