diff options
Diffstat (limited to 'src/field')
-rw-r--r-- | src/field/battle_tower.c | 2 | ||||
-rw-r--r-- | src/field/daycare.c | 4 | ||||
-rw-r--r-- | src/field/fieldmap.c | 18 | ||||
-rw-r--r-- | src/field/item_use.c | 2 | ||||
-rw-r--r-- | src/field/party_menu.c | 2 | ||||
-rw-r--r-- | src/field/player_pc.c | 2 | ||||
-rw-r--r-- | src/field/start_menu.c | 8 |
7 files changed, 20 insertions, 18 deletions
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 11c05e478..ab2a818a7 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -1895,7 +1895,7 @@ void SaveBattleTowerProgress(void) VarSet(VAR_TEMP_0, 0); gSaveBlock2.battleTower.unk_554 = 1; - TrySavingData(EREADER_SAVE); + Save_WriteData(SAVE_EREADER); } void BattleTower_SoftReset(void) diff --git a/src/field/daycare.c b/src/field/daycare.c index 5811461ae..36dd7ec03 100644 --- a/src/field/daycare.c +++ b/src/field/daycare.c @@ -341,7 +341,7 @@ u16 GetEggSpecies(u16 species) { for (k = 0; k < 5; k++) { - if (gEvolutionTable[j].evolutions[k].targetSpecies == species) + if (gEvolutionTable[j][k].targetSpecies == species) { species = j; found = TRUE; @@ -557,7 +557,7 @@ void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxP { for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++) { - if (gHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01 + j) && CanMonLearnTMHM(egg, j)) + if (gHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j)) { if (GiveMoveToMon(egg, gHatchedEggFatherMoves[i]) == 0xffff) DeleteFirstMoveAndGiveMoveToMon(egg, gHatchedEggFatherMoves[i]); diff --git a/src/field/fieldmap.c b/src/field/fieldmap.c index 7a31ae720..7383bb174 100644 --- a/src/field/fieldmap.c +++ b/src/field/fieldmap.c @@ -86,18 +86,20 @@ void map_copy_with_padding(u16 *map, u16 width, u16 height) void sub_80560AC(struct MapHeader *mapHeader) { + // BUG: This results in a null pointer dereference when mapHeader->connections + // is NULL, causing count to be assigned a garbage value. This garbage value + // just so happens to have the most significant bit set, so it is treated as + // negative and the loop below thankfully never executes in this scenario. + int count = mapHeader->connections->count; + struct MapConnection *connection = mapHeader->connections->connections; int i; - struct MapConnection *connection; - struct MapHeader *cMap; - u32 offset; - int count; - count = mapHeader->connections->count; - connection = mapHeader->connections->connections; + gUnknown_0202E850 = sDummyConnectionFlags; for (i = 0; i < count; i++, connection++) { - cMap = mapconnection_get_mapheader(connection); - offset = connection->offset; + struct MapHeader *cMap = mapconnection_get_mapheader(connection); + u32 offset = connection->offset; + switch (connection->direction) { case CONNECTION_SOUTH: diff --git a/src/field/item_use.c b/src/field/item_use.c index bd76db77e..55fb21814 100644 --- a/src/field/item_use.c +++ b/src/field/item_use.c @@ -877,7 +877,7 @@ void ItemUseOutOfBattle_TMHM(u8 taskId) { Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); - if (gSpecialVar_ItemId >= ITEM_HM01) + if (gSpecialVar_ItemId >= ITEM_HM01_CUT) DisplayItemMessageOnField(taskId, gOtherText_BootedHM, sub_80C9EE4, 1); // HM else DisplayItemMessageOnField(taskId, gOtherText_BootedTM, sub_80C9EE4, 1); // TM diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 7d243f569..48275435e 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -3998,7 +3998,7 @@ void Task_ConfirmTakeHeldMail(u8 taskId) u16 ItemIdToBattleMoveId(u16 item) { - u16 machineNumber = item - ITEM_TM01; + u16 machineNumber = item - ITEM_TM01_FOCUS_PUNCH; return TMHMMoves[machineNumber]; } diff --git a/src/field/player_pc.c b/src/field/player_pc.c index 0d5c5234b..1d504586c 100644 --- a/src/field/player_pc.c +++ b/src/field/player_pc.c @@ -853,7 +853,7 @@ static void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var { ItemStorage_DrawItemName(itemSlot, var, var2); - if(itemSlot->itemId < ITEM_HM01) + if(itemSlot->itemId < ITEM_HM01_CUT) ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); else ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity. diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 2f6f1e7dd..87597eb6a 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -664,20 +664,20 @@ static u8 SaveDialogCB_DisplaySavingMessage(void) static u8 SaveDialogCB_DoSave(void) { - bool8 saveSucceeded; + u8 saveStatus; IncrementGameStat(0); if (gDifferentSaveFile == TRUE) { - saveSucceeded = TrySavingData(DIFFERENT_FILE_SAVE); + saveStatus = Save_WriteData(SAVE_OVERWRITE_DIFFERENT_FILE); gDifferentSaveFile = FALSE; } else { - saveSucceeded = TrySavingData(NORMAL_SAVE); + saveStatus = Save_WriteData(SAVE_NORMAL); } - if (saveSucceeded == TRUE) + if (saveStatus == SAVE_STATUS_OK) { //"(Player) saved the game." DisplaySaveMessageWithCallback(gSaveText_PlayerSavedTheGame, SaveDialogCB_SaveSuccess); |