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); | 
