summaryrefslogtreecommitdiff
path: root/src/field
diff options
context:
space:
mode:
Diffstat (limited to 'src/field')
-rw-r--r--src/field/battle_tower.c2
-rw-r--r--src/field/daycare.c2
-rw-r--r--src/field/field_weather.c14
-rw-r--r--src/field/fieldmap.c18
-rw-r--r--src/field/item_use.c2
-rw-r--r--src/field/party_menu.c15
-rw-r--r--src/field/pc_screen_effect.c2
-rw-r--r--src/field/player_pc.c2
-rw-r--r--src/field/secret_base.c2
-rw-r--r--src/field/start_menu.c8
10 files changed, 35 insertions, 32 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 7e4530906..36dd7ec03 100644
--- a/src/field/daycare.c
+++ b/src/field/daycare.c
@@ -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/field_weather.c b/src/field/field_weather.c
index c954242a1..b6475d8ff 100644
--- a/src/field/field_weather.c
+++ b/src/field/field_weather.c
@@ -35,10 +35,11 @@ struct WeatherCallbacks
bool8 (*finish)(void);
};
-extern struct Weather gWeather;
-extern u8 gUnknown_0202FF38[];
-extern u16 gUnknown_0202FF58;
-IWRAM_DATA const u8 *gUnknown_030006DC;
+EWRAM_DATA struct Weather gWeather = {0};
+EWRAM_DATA u8 gUnknown_0202FF38[32] = {0};
+EWRAM_DATA u16 gUnknown_0202FF58 = {0};
+
+static const u8 *gUnknown_030006DC;
const u8 DroughtPaletteData_0[] = INCBIN_U8("graphics/weather/drought0.bin.lz");
const u8 DroughtPaletteData_1[] = INCBIN_U8("graphics/weather/drought1.bin.lz");
@@ -47,9 +48,6 @@ const u8 DroughtPaletteData_3[] = INCBIN_U8("graphics/weather/drought3.bin.lz");
const u8 DroughtPaletteData_4[] = INCBIN_U8("graphics/weather/drought4.bin.lz");
const u8 DroughtPaletteData_5[] = INCBIN_U8("graphics/weather/drought5.bin.lz");
-extern u8 (*gUnknown_0202FC48)[32];
-extern u8 gUnknown_0202F9E8[32];
-
static const u8 *const sCompressedDroughtPalettes[] =
{
DroughtPaletteData_0,
@@ -843,7 +841,7 @@ void fade_screen(u8 a, u8 delay)
bool8 sub_807D770(void)
{
- return gWeatherPtr->unknown_6C6 ^ 1 ? TRUE : FALSE;
+ return (gWeatherPtr->unknown_6C6 != 1);
}
void sub_807D78C(u8 a)
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 053368a0e..c099fd8f4 100644
--- a/src/field/party_menu.c
+++ b/src/field/party_menu.c
@@ -101,7 +101,14 @@ static void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d);
static void sub_806BB9C(u8 a);
static void sub_806BBEC(u8 a);
-const u16 TMHMMoves[] = {
+EWRAM_DATA u8 gUnknown_0202E8F4 = 0;
+EWRAM_DATA u8 gUnknown_0202E8F5 = 0;
+EWRAM_DATA u8 gUnknown_0202E8F6 = 0;
+EWRAM_DATA u16 gUnknown_0202E8F8 = 0;
+EWRAM_DATA u8 gPartyMenuType = 0;
+
+const u16 TMHMMoves[] =
+{
MOVE_FOCUS_PUNCH,
MOVE_DRAGON_CLAW,
MOVE_WATER_PULSE,
@@ -458,10 +465,6 @@ struct Unk201FE00
extern u16 gBattleTypeFlags;
extern u8 gTileBuffer[];
-extern u8 gUnknown_0202E8F4;
-extern u8 gUnknown_0202E8F6;
-extern u16 gUnknown_0202E8F8;
-extern u8 gPartyMenuType;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gPlayerPartyCount;
extern s32 gBattleMoveDamage;
@@ -3998,7 +4001,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/pc_screen_effect.c b/src/field/pc_screen_effect.c
index 364fca0aa..e0853e01d 100644
--- a/src/field/pc_screen_effect.c
+++ b/src/field/pc_screen_effect.c
@@ -30,7 +30,7 @@ extern const u16 gUnknownPal_083D18EC[16];
extern const u8 gUnknownGfx_083D190C[128];
-extern struct UnkStruct *gUnknown_020387EC;
+EWRAM_DATA struct UnkStruct *gUnknown_020387EC = NULL;
const struct SpriteSheet gUnknown_083D1898 = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 };
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/secret_base.c b/src/field/secret_base.c
index 203b57867..728decc9c 100644
--- a/src/field/secret_base.c
+++ b/src/field/secret_base.c
@@ -51,7 +51,7 @@ static void Task_SecretBasePC_Registry(u8 taskId);
extern u8 gUnknown_0815F399[];
extern u8 gUnknown_0815F49A[];
-extern u8 gUnknown_020387DC;
+EWRAM_DATA u8 gUnknown_020387DC = 0;
const struct
{
diff --git a/src/field/start_menu.c b/src/field/start_menu.c
index 5e76d30a6..105ef1756 100644
--- a/src/field/start_menu.c
+++ b/src/field/start_menu.c
@@ -967,20 +967,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);