diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_setup.c | 26 | ||||
-rw-r--r-- | src/berry.c | 40 | ||||
-rw-r--r-- | src/decompress.c | 50 | ||||
-rw-r--r-- | src/item_use.c | 110 | ||||
-rw-r--r-- | src/mail.c | 4 | ||||
-rw-r--r-- | src/new_game.c | 2 | ||||
-rw-r--r-- | src/rom4.c | 26 |
7 files changed, 136 insertions, 122 deletions
diff --git a/src/battle_setup.c b/src/battle_setup.c index bb69638c4..ed43b4437 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -304,24 +304,24 @@ s8 sub_8081D3C(void) return 1; if (MetatileBehavior_IsSandOrDeepSand(tileBehavior)) return 2; - switch (gMapHeader.light) + switch (gMapHeader.mapType) { - case 1: - case 2: - case 3: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: break; - case 4: + case MAP_TYPE_UNDERGROUND: if (sub_80574C4(tileBehavior)) return 8; if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) return 5; return 7; - case 8: - case 9: + case MAP_TYPE_INDOOR: + case MAP_TYPE_SECRET_BASE: return 8; - case 5: + case MAP_TYPE_UNDERWATER: return 3; - case 6: + case MAP_TYPE_6: if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) return 4; return 9; @@ -362,11 +362,11 @@ s8 sub_8081E90(void) if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) { - switch (gMapHeader.light) + switch (gMapHeader.mapType) { - case 4: + case MAP_TYPE_UNDERGROUND: return 1; - case 5: + case MAP_TYPE_UNDERWATER: return 3; default: return 0; @@ -384,7 +384,7 @@ u16 GetSumOfPartyMonLevel(u8 numMons) { u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (species != 412 && species != 0 && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) + if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) { sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); numMons--; diff --git a/src/berry.c b/src/berry.c index aee624c33..9f641262d 100644 --- a/src/berry.c +++ b/src/berry.c @@ -11,36 +11,36 @@ extern struct Berry gBerries[]; extern u8 BerryTreeScript; -extern struct BerryTree gUnknown_083CD780; +extern struct BerryTree gBlankBerryTree; extern u16 gScriptItemId; extern u16 gScriptLastTalked; extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; extern u16 gSpecialVar_0x8006; -void unref_sub_80B4884(void) +// unused +void ClearEnigmaBerries(void) { CpuFill16(0, &gSaveBlock1.enigmaBerry, sizeof(gSaveBlock1.enigmaBerry)); } -// setEnigmaBerry -void sub_80B48A8(u8 *src) +void SetEnigmaBerry(u8 *src) { - unsigned int i; + u32 i; u8 *dest = (u8*)&gSaveBlock1.enigmaBerry; for (i = 0; i < sizeof(gSaveBlock1.enigmaBerry); i++) dest[i] = src[i]; + gSaveBlock1.enigmaBerry.berry.description1 = gSaveBlock1.enigmaBerry.description1; gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2; } -// checksum -u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry) +u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) { u8 *description1; u8 *description2; - unsigned int i; + u32 i; u32 checksum; u8 *dest; @@ -51,7 +51,7 @@ u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry) dest = (u8*)enigmaBerry; checksum = 0; - for (i = 0; i < ((int)&gSaveBlock1.enigmaBerry.checksum - (int)&gSaveBlock1.enigmaBerry); i++) + for (i = 0; i < ((u32)&gSaveBlock1.enigmaBerry.checksum - (u32)&gSaveBlock1.enigmaBerry); i++) { checksum += dest[i]; } @@ -62,20 +62,20 @@ u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry) return checksum; } -bool32 sub_80B4940(void) +bool32 IsEnigmaBerryValid(void) { if (!gSaveBlock1.enigmaBerry.berry.stageDuration) return FALSE; if (!gSaveBlock1.enigmaBerry.berry.maxYield) return FALSE; - if (sub_80B48F8(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum) + if (GetEnigmaBerryChecksum(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum) return FALSE; return TRUE; } struct Berry *GetBerryInfo(u8 berry) { - if (berry == 0x2B && sub_80B4940()) + if (berry == 0x2B && IsEnigmaBerryValid()) return &gSaveBlock1.enigmaBerry.berry; else { @@ -123,7 +123,7 @@ bool32 IsPlayerFacingPlantedBerryTree(void) return FALSE; } -u8 WaterBerryTree(void) +u8 TryToWaterBerryTree(void) { if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript) return 0; @@ -131,11 +131,11 @@ u8 WaterBerryTree(void) return FieldObjectInteractionWaterBerryTree(); } -void sub_80B4A90(void) +void ClearBerryTrees(void) { int i; struct SaveBlock1 *saveBlock1 = &gSaveBlock1; - struct BerryTree berryTree = gUnknown_083CD780; + struct BerryTree berryTree = gBlankBerryTree; for (i = 0; i < 128; i++) saveBlock1->berryTrees[i] = berryTree; @@ -164,7 +164,7 @@ bool32 BerryTreeGrow(struct BerryTree *tree) tree->berryYield = 0; tree->stage = 2; if (++tree->regrowthCount == 10) - *tree = gUnknown_083CD780; + *tree = gBlankBerryTree; break; } return TRUE; @@ -183,7 +183,7 @@ void BerryTreeTimeUpdate(int time) { if (time >= GetStageDurationByBerryType(tree->berry) * 71) { - *tree = gUnknown_083CD780; + *tree = gBlankBerryTree; } else { @@ -212,7 +212,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle) { struct BerryTree *tree = GetBerryTreeInfo(id); - *tree = gUnknown_083CD780; + *tree = gBlankBerryTree; tree->berry = berry; tree->secondsUntilNextStage = GetStageDurationByBerryType(berry); tree->stage = stage; @@ -229,7 +229,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle) void RemoveBerryTree(u8 id) { - gSaveBlock1.berryTrees[id] = gUnknown_083CD780; + gSaveBlock1.berryTrees[id] = gBlankBerryTree; } u8 GetBerryTypeByBerryTreeId(u8 id) @@ -387,7 +387,7 @@ void FieldObjectInteractionRemoveBerryTree(void) u8 PlayerHasBerries(void) { - return IsBagPocketNonEmpty(4); + return IsBagPocketNonEmpty(BAG_BERRIES); } void ResetBerryTreeSparkleFlags(void) diff --git a/src/decompress.c b/src/decompress.c index ebfd78ffb..8f573fecb 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -61,50 +61,52 @@ void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, vo LoadSpritePalette(&spritePalette); } -void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f) +void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 species) { - if (f > 412) + if (species > SPECIES_EGG) LZ77UnCompWram(gMonFrontPicTable[0].data, e); else LZ77UnCompWram(a->data, e); } -void sub_800D334(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g) +void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g) { - u32 unk; + u32 frontOrBack; + // gUnknown_081FAF4C appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front. if (dest == gUnknown_081FAF4C[0] || dest == gUnknown_081FAF4C[2]) - unk = 0; + frontOrBack = 0; // backPic else - unk = 1; - sub_800D378(a, b, c, d, dest, f, g, unk); + frontOrBack = 1; // frontPic + + LoadSpecialPokePic(spriteSheet, b, c, d, dest, species, g, frontOrBack); } -void sub_800D378(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h) +void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 frontOrBack) { - u8 r7 = h; + u8 frontOrBack8 = frontOrBack; - if (f == SPECIES_UNOWN) + if (species == SPECIES_UNOWN) { - u16 r1 = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C; + u16 i = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C; - if (r1 == 0) - r1 = SPECIES_UNOWN; + // if it is Unown A, set the index to where Unown begins, otherwise add the egg index to get the correct letter to load. + if (i == 0) + i = SPECIES_UNOWN; else - r1 += 412; - if (r7 == 0) - LZ77UnCompWram(gMonBackPicTable[r1].data, dest); + i += SPECIES_EGG; + + if (frontOrBack8 == 0) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); else - LZ77UnCompWram(gMonFrontPicTable[r1].data, dest); + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); } + else if (species > SPECIES_EGG) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); else - { - if (f > 412) - LZ77UnCompWram(gMonFrontPicTable[0].data, dest); - else - LZ77UnCompWram(a->data, dest); - } - DrawSpindaSpots(f, g, dest, r7); + LZ77UnCompWram(spriteSheet->data, dest); + + DrawSpindaSpots(species, g, dest, frontOrBack8); } void Unused_LZDecompressWramIndirect(const void **src, void *dest) diff --git a/src/item_use.c b/src/item_use.c index fb5f3e8b8..af22eddae 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -15,43 +15,43 @@ #include "script.h" #include "field_player_avatar.h" #include "sound.h" +#include "songs.h" -extern void (* const gUnknown_083D61E4[])(); +extern void (* const gExitToOverworldFuncList[])(); extern void (* gUnknown_03005D00)(u8); extern void (* gUnknown_0300485C)(void); -extern void sub_80A5B00(u8); -extern void sub_80A5CC4(void); -extern void sub_80C8FAC(u8); +extern void HandleItemMenuPaletteFade(u8); +extern void ExecuteItemUseFromBlackPalette(void); extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16); -extern void sub_80A5C48(u8); -extern void sub_80A5C9C(u8); +extern void CleanUpItemMenuMessage(u8); +extern void CleanUpOverworldMessage(u8); extern void ItemUseOutOfBattle_TMHM(u8); extern void ItemUseOutOfBattle_EvolutionStone(u8); extern void ItemUseOnFieldCB_Bike(u8); extern void ItemUseOnFieldCB_Rod(u8); extern void ItemUseOnFieldCB_Itemfinder(u8); extern void sub_80A5D04(void); -extern bool8 sub_80E5EF4(void); +extern bool8 IsBikingDisallowedByPlayer(void); extern void GetOnOffBike(u8); -extern void sub_80C9458(u8); -extern void sub_80C9520(u8); -extern u8 sub_80C9908(s16, s16); -extern void sub_80C997C(u8); -extern void sub_80C99EC(u8); -extern void sub_80C9A38(u8); +extern u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); +extern void SetPlayerDirectionTowardsItem(u8); +extern void DisplayItemRespondingMessageAndExitItemfinder(u8); +extern void RotatePlayerAndExitItemfinder(u8); extern u8 gOtherText_DadsAdvice[]; extern u8 gOtherText_CantGetOffBike[]; extern u8 gOtherText_NoResponse[]; -extern u8 gUnknown_083D61F0[]; +extern u8 gItemFinderDirections[]; extern u16 gScriptItemId; bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, int); +void RunItemfinderResults(u8); +void ExitItemfinder(u8); -void sub_80C8FAC(u8 taskId) +void ExecuteSwitchToOverworldFromItemUse(u8 taskId) { u8 taskData; @@ -60,20 +60,20 @@ void sub_80C8FAC(u8 taskId) else taskData = ItemId_GetType(gScriptItemId) - 1; - gTasks[taskId].data[8] = (u32)gUnknown_083D61E4[taskData] >> 16; - gTasks[taskId].data[9] = (u32)gUnknown_083D61E4[taskData]; - gTasks[taskId].func = sub_80A5B00; + gTasks[taskId].data[8] = (u32)gExitToOverworldFuncList[taskData] >> 16; + gTasks[taskId].data[9] = (u32)gExitToOverworldFuncList[taskData]; + gTasks[taskId].func = HandleItemMenuPaletteFade; } -void unknown_ItemMenu_Confirm(u8 var) +void ItemMenu_ConfirmNormalFade(u8 var) { - sub_80C8FAC(var); + ExecuteSwitchToOverworldFromItemUse(var); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); } -void sub_80C9038(u8 var) +void ItemMenu_ConfirmComplexFade(u8 var) { - sub_80C8FAC(var); + ExecuteSwitchToOverworldFromItemUse(var); fade_screen(1, 0); } @@ -81,34 +81,37 @@ void SetUpItemUseOnFieldCallback(u8 taskId) { if(gTasks[taskId].data[2] != 1) { - gUnknown_0300485C = (void *)sub_80A5CC4; - unknown_ItemMenu_Confirm(taskId); + gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette; + ItemMenu_ConfirmNormalFade(taskId); } else gUnknown_03005D00(taskId); } -void sub_80C9098(u8 var1, u8 var2, const u8 *var3) +void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *var3) { StringExpandPlaceholders(gStringVar4, var3); - if(!var2) + switch(playerMenuStatus) { - MenuZeroFillWindowRect(0, 13, 13, 20); - DisplayItemMessageOnField(var1, gStringVar4, sub_80A5C48, 1); + case 0: // Item Menu + MenuZeroFillWindowRect(0, 13, 13, 20); + DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1); + break; + default: // Field + DisplayItemMessageOnField(var1, gStringVar4, CleanUpOverworldMessage, 0); + break; } - else - DisplayItemMessageOnField(var1, gStringVar4, sub_80A5C9C, 0); } -void DisplayDadsAdviceCannotUseItemMessage(u8 var1, u8 var2) +void DisplayDadsAdviceCannotUseItemMessage(u8 var1, u8 playerMenuStatus) { - sub_80C9098(var1, var2, gOtherText_DadsAdvice); + HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_DadsAdvice); } -void sub_80C9104(u8 var1, u8 var2) +void DisplayCantGetOffBikeItemMessage(u8 var1, u8 playerMenuStatus) { - sub_80C9098(var1, var2, gOtherText_CantGetOffBike); + HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_CantGetOffBike); } u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) @@ -121,14 +124,14 @@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) return 0; } -void sub_80C9154(u8 taskId) +void ItemMenu_ReadMail(u8 taskId) { struct MailStruct mailStruct; if(!gPaletteFade.active) { mailStruct.itemId = gScriptItemId; - sub_80F890C(&mailStruct, sub_80A5D04, 0); + HandleReadMail(&mailStruct, sub_80A5D04, 0); DestroyTask(taskId); } } @@ -136,7 +139,7 @@ void sub_80C9154(u8 taskId) void ItemUseOutOfBattle_Mail(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_80C9154; + gTasks[taskId].func = ItemMenu_ReadMail; } void ItemUseOutOfBattle_Bike(u8 taskId) @@ -147,17 +150,17 @@ void ItemUseOutOfBattle_Bike(u8 taskId) PlayerGetDestCoords(&x, &y); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - if(FlagGet(0x82B) == TRUE + if(FlagGet(SYS_CYCLING_ROAD) == TRUE // on cycling road? || MetatileBehavior_IsVerticalRail(tileBehavior) == TRUE || MetatileBehavior_IsHorizontalRail(tileBehavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(tileBehavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(tileBehavior) == TRUE) { - sub_80C9104(taskId, gTasks[taskId].data[2]); + DisplayCantGetOffBikeItemMessage(taskId, gTasks[taskId].data[2]); } else { - if(sub_8053C44() == TRUE && sub_80E5EF4() == FALSE) + if(IsBikingAllowedByMap() == TRUE && IsBikingDisallowedByPlayer() == FALSE) { gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Bike; SetUpItemUseOnFieldCallback(taskId); @@ -236,15 +239,15 @@ void ItemUseOutOfBattle_Itemfinder(u8 var) void ItemUseOnFieldCB_Itemfinder(u8 taskId) { if(ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE) - gTasks[taskId].func = sub_80C9458; + gTasks[taskId].func = RunItemfinderResults; else - DisplayItemMessageOnField(taskId, gOtherText_NoResponse, sub_80C9520, 0); + DisplayItemMessageOnField(taskId, gOtherText_NoResponse, ExitItemfinder, 0); } -void sub_80C9458(u8 taskId) +void RunItemfinderResults(u8 taskId) { - u8 var; u8 playerDir; + u8 playerDirToItem; u8 i; s16 *data = gTasks[taskId].data; @@ -252,33 +255,34 @@ void sub_80C9458(u8 taskId) { if(data[4] == 4) { - var = sub_80C9908(data[0], data[1]); - if(var) + playerDirToItem = GetPlayerDirectionTowardsHiddenItem(data[0], data[1]); + if(playerDirToItem) { - sub_80C997C(gUnknown_083D61F0[var - 1]); - gTasks[taskId].func = sub_80C99EC; + SetPlayerDirectionTowardsItem(gItemFinderDirections[playerDirToItem - 1]); + gTasks[taskId].func = DisplayItemRespondingMessageAndExitItemfinder; } - else + else // player is above hidden item. { playerDir = player_get_direction_lower_nybble(); + // rotate player clockwise depending on current direction. for (i = 0; i < 4; i++) - if (playerDir == gUnknown_083D61F0[i]) + if (playerDir == gItemFinderDirections[i]) data[5] = (i + 1) & 3; - gTasks[taskId].func = sub_80C9A38; + gTasks[taskId].func = RotatePlayerAndExitItemfinder; data[3] = 0; data[2] = 0; } return; } - PlaySE(0x48); + PlaySE(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder. data[4]++; } data[3] = (data[3] + 1) & 0x1F; } -void sub_80C9520(u8 taskId) +void ExitItemfinder(u8 taskId) { MenuZeroFillWindowRect(0, 14, 29, 19); sub_8064E2C(); diff --git a/src/mail.c b/src/mail.c index f61c2f00e..191ca2237 100644 --- a/src/mail.c +++ b/src/mail.c @@ -92,7 +92,7 @@ static void sub_80F8F78(void); static void sub_80F8FB4(void); #ifdef NONMATCHING -void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { +void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { u16 mailDesign; u8 buffer[4]; u8 local1; @@ -151,7 +151,7 @@ void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { } #else __attribute__((naked)) -void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { +void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ sub sp, 0x4\n\ diff --git a/src/new_game.c b/src/new_game.c index 00797806e..1ffb9c11d 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -119,7 +119,7 @@ void NewGameInitData(void) sub_80BD7A8(); sub_80BDAB4(); sub_80BB5B4(); - sub_80B4A90(); + ClearBerryTrees(); gSaveBlock1.money = 3000; sub_80AB1B0(); sub_80530AC(); diff --git a/src/rom4.c b/src/rom4.c index 63f42161d..a837b4dfb 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -548,8 +548,8 @@ void sub_8053994(u32 a1) set_current_map_header_from_sav1_save_old_name(); sub_8053154(); - v2 = is_light_level_1_2_3_5_or_6(gMapHeader.light); - v3 = is_light_level_8_or_9(gMapHeader.light); + v2 = is_light_level_1_2_3_5_or_6(gMapHeader.mapType); + v3 = is_light_level_8_or_9(gMapHeader.mapType); ClearTempFieldEventData(); ResetCyclingRoadChallengeData(); prev_quest_postbuffer_cursor_backup_reset(); @@ -615,7 +615,7 @@ u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3) return 16; if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1) return 8; - if (sub_8053C44() != 1) + if (IsBikingAllowedByMap() != TRUE) return 1; if (playerStruct->player_field_0 == 2) return 2; @@ -653,20 +653,28 @@ u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void) return MapGridGetMetatileBehaviorAt(gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7); } -bool32 sub_8053C44(void) +bool32 IsBikingAllowedByMap(void) { + // is player in cycling road entrance? if (gSaveBlock1.location.mapGroup == 29 && (gSaveBlock1.location.mapNum == 11 || gSaveBlock1.location.mapNum == 12)) return TRUE; - if (gMapHeader.light == 8) + + // is player indoor, in a secret base, or underwater? + if (gMapHeader.mapType == MAP_TYPE_INDOOR) return FALSE; - if (gMapHeader.light == 9) + if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE) return FALSE; - if (gMapHeader.light == 5) + if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) return FALSE; + + // is player in SeafloorCavern_Room9? if (gSaveBlock1.location.mapGroup == 24 && gSaveBlock1.location.mapNum == 36) return FALSE; + + // is player in CaveOfOrigin_B4F? if (gSaveBlock1.location.mapGroup == 24 && gSaveBlock1.location.mapNum == 42) return FALSE; + return TRUE; } @@ -854,7 +862,7 @@ void sub_8053FB0(u16 music) u8 is_warp1_light_level_8_or_9(void) { struct MapHeader *mapHeader = warp1_get_mapheader(); - if (is_light_level_8_or_9(mapHeader->light) == TRUE) + if (is_light_level_8_or_9(mapHeader->mapType) == TRUE) return 2; else return 4; @@ -939,7 +947,7 @@ void sub_8054164(void) u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum) { - return get_mapheader_by_bank_and_number(mapGroup, mapNum)->light; + return get_mapheader_by_bank_and_number(mapGroup, mapNum)->mapType; } u8 get_map_light_level_from_warp(struct WarpData *warp) |