summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-01-28 23:10:53 -0600
committercamthesaxman <cameronghall@cox.net>2018-01-28 23:10:53 -0600
commit1416a4c4efe8b926c809664eb63dd2c3d0f86728 (patch)
tree3145ea1bc088e5c9748eaf093f99d7d0ddfbea8c /src
parente71789d6773c72e314d7b21684eaa9a48c704cd1 (diff)
clean up option_menu.c and field_poison.c a bit
Diffstat (limited to 'src')
-rw-r--r--src/battle/battle_setup.c2
-rw-r--r--src/engine/option_menu.c170
-rw-r--r--src/field/field_control_avatar.c2
-rw-r--r--src/field/field_poison.c47
-rw-r--r--src/field/fldeff_poison.c4
5 files changed, 112 insertions, 113 deletions
diff --git a/src/battle/battle_setup.c b/src/battle/battle_setup.c
index 892be1029..15555f833 100644
--- a/src/battle/battle_setup.c
+++ b/src/battle/battle_setup.c
@@ -475,7 +475,7 @@ static void Task_BattleStart(u8 taskId)
switch (tState)
{
case 0:
- if (!FieldPoisonEffectIsRunning()) // is poison not active?
+ if (!FldeffPoison_IsActive()) // is poison not active?
{
BattleTransition_StartOnField(tTransition);
tState++; // go to case 1.
diff --git a/src/engine/option_menu.c b/src/engine/option_menu.c
index d4e921a0e..a2d32ffb6 100644
--- a/src/engine/option_menu.c
+++ b/src/engine/option_menu.c
@@ -10,19 +10,9 @@
extern void SetPokemonCryStereo(u32 val);
-//Task data
-enum {
- TD_MENUSELECTION,
- TD_TEXTSPEED,
- TD_BATTLESCENE,
- TD_BATTLESTYLE,
- TD_SOUND,
- TD_BUTTONMODE,
- TD_FRAMETYPE,
-};
-
-//Menu items
-enum {
+// Menu items
+enum
+{
MENUITEM_TEXTSPEED,
MENUITEM_BATTLESCENE,
MENUITEM_BATTLESTYLE,
@@ -32,6 +22,15 @@ enum {
MENUITEM_CANCEL,
};
+// Task data
+#define tMenuSelection data[0]
+#define tOptTextSpeed data[1]
+#define tOptBattleScene data[2]
+#define tOptBattleStyle data[3]
+#define tOptSound data[4]
+#define tOptButtonMode data[5]
+#define tOptFrameType data[6]
+
const u16 gUnknown_0839F5FC[] = INCBIN_U16("graphics/misc/option_menu_text.gbapal");
// note: this is only used in the Japanese release
const u8 gUnknown_0839F63C[] = INCBIN_U8("graphics/misc/option_menu_equals_sign.4bpp");
@@ -75,7 +74,6 @@ void CB2_InitOptionMenu(void)
{
default:
case 0:
- {
SetVBlankCallback(NULL);
REG_DISPCNT = 0;
REG_BG2CNT = 0;
@@ -92,7 +90,6 @@ void CB2_InitOptionMenu(void)
DmaClear16(3, PLTT, PLTT_SIZE);
gMain.state++;
break;
- }
case 1:
ResetPaletteFade();
ScanlineEffect_Stop();
@@ -150,37 +147,38 @@ void CB2_InitOptionMenu(void)
{
u8 taskId = CreateTask(Task_OptionMenuFadeIn, 0);
- gTasks[taskId].data[TD_MENUSELECTION] = 0;
- gTasks[taskId].data[TD_TEXTSPEED] = gSaveBlock2.optionsTextSpeed;
- gTasks[taskId].data[TD_BATTLESCENE] = gSaveBlock2.optionsBattleSceneOff;
- gTasks[taskId].data[TD_BATTLESTYLE] = gSaveBlock2.optionsBattleStyle;
- gTasks[taskId].data[TD_SOUND] = gSaveBlock2.optionsSound;
- gTasks[taskId].data[TD_BUTTONMODE] = gSaveBlock2.optionsButtonMode;
- gTasks[taskId].data[TD_FRAMETYPE] = gSaveBlock2.optionsWindowFrameType;
-
- Menu_DrawStdWindowFrame(2, 0, 27, 3);
- Menu_DrawStdWindowFrame(2, 4, 27, 19);
-
- Menu_PrintText(gSystemText_OptionMenu, 4, 1);
- Menu_PrintText(gSystemText_TextSpeed, 4, 5);
- Menu_PrintText(gSystemText_BattleScene, 4, 7);
- Menu_PrintText(gSystemText_BattleStyle, 4, 9);
- Menu_PrintText(gSystemText_Sound, 4, 11);
- Menu_PrintText(gSystemText_ButtonMode, 4, 13);
- Menu_PrintText(gSystemText_Frame, 4, 15);
- Menu_PrintText(gSystemText_Cancel, 4, 17);
-
- TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
- BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
- BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
- Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
- ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
- FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
+ gTasks[taskId].tMenuSelection = 0;
+ gTasks[taskId].tOptTextSpeed = gSaveBlock2.optionsTextSpeed;
+ gTasks[taskId].tOptBattleScene = gSaveBlock2.optionsBattleSceneOff;
+ gTasks[taskId].tOptBattleStyle = gSaveBlock2.optionsBattleStyle;
+ gTasks[taskId].tOptSound = gSaveBlock2.optionsSound;
+ gTasks[taskId].tOptButtonMode = gSaveBlock2.optionsButtonMode;
+ gTasks[taskId].tOptFrameType = gSaveBlock2.optionsWindowFrameType;
+
+ Menu_DrawStdWindowFrame(2, 0, 27, 3); // title box
+ Menu_DrawStdWindowFrame(2, 4, 27, 19); // options list box
+
+ Menu_PrintText(gSystemText_OptionMenu, 4, 1);
+
+ Menu_PrintText(gSystemText_TextSpeed, 4, 5);
+ Menu_PrintText(gSystemText_BattleScene, 4, 7);
+ Menu_PrintText(gSystemText_BattleStyle, 4, 9);
+ Menu_PrintText(gSystemText_Sound, 4, 11);
+ Menu_PrintText(gSystemText_ButtonMode, 4, 13);
+ Menu_PrintText(gSystemText_Frame, 4, 15);
+ Menu_PrintText(gSystemText_Cancel, 4, 17);
+
+ TextSpeed_DrawChoices(gTasks[taskId].tOptTextSpeed);
+ BattleScene_DrawChoices(gTasks[taskId].tOptBattleScene);
+ BattleStyle_DrawChoices(gTasks[taskId].tOptBattleStyle);
+ Sound_DrawChoices(gTasks[taskId].tOptSound);
+ ButtonMode_DrawChoices(gTasks[taskId].tOptButtonMode);
+ FrameType_DrawChoices(gTasks[taskId].tOptFrameType);
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(1, 31);
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ HighlightOptionMenuItem(gTasks[taskId].tMenuSelection);
gMain.state++;
break;
}
@@ -193,16 +191,14 @@ void CB2_InitOptionMenu(void)
static void Task_OptionMenuFadeIn(u8 taskId)
{
if (!gPaletteFade.active)
- {
gTasks[taskId].func = Task_OptionMenuProcessInput;
- }
}
static void Task_OptionMenuProcessInput(u8 taskId)
{
if (gMain.newKeys & A_BUTTON)
{
- if (gTasks[taskId].data[TD_MENUSELECTION] == MENUITEM_CANCEL)
+ if (gTasks[taskId].tMenuSelection == MENUITEM_CANCEL)
gTasks[taskId].func = Task_OptionMenuSave;
}
else if (gMain.newKeys & B_BUTTON)
@@ -211,47 +207,47 @@ static void Task_OptionMenuProcessInput(u8 taskId)
}
else if (gMain.newKeys & DPAD_UP)
{
- if (gTasks[taskId].data[TD_MENUSELECTION] > 0)
- gTasks[taskId].data[TD_MENUSELECTION]--;
+ if (gTasks[taskId].tMenuSelection > 0)
+ gTasks[taskId].tMenuSelection--;
else
- gTasks[taskId].data[TD_MENUSELECTION] = 6;
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ gTasks[taskId].tMenuSelection = 6;
+ HighlightOptionMenuItem(gTasks[taskId].tMenuSelection);
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (gTasks[taskId].data[TD_MENUSELECTION] <= 5)
- gTasks[taskId].data[TD_MENUSELECTION]++;
+ if (gTasks[taskId].tMenuSelection < 6)
+ gTasks[taskId].tMenuSelection++;
else
- gTasks[taskId].data[TD_MENUSELECTION] = 0;
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ gTasks[taskId].tMenuSelection = 0;
+ HighlightOptionMenuItem(gTasks[taskId].tMenuSelection);
}
else
{
- switch (gTasks[taskId].data[TD_MENUSELECTION])
+ switch (gTasks[taskId].tMenuSelection)
{
case MENUITEM_TEXTSPEED:
- gTasks[taskId].data[TD_TEXTSPEED] = TextSpeed_ProcessInput(gTasks[taskId].data[TD_TEXTSPEED]);
- TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
+ gTasks[taskId].tOptTextSpeed = TextSpeed_ProcessInput(gTasks[taskId].tOptTextSpeed);
+ TextSpeed_DrawChoices(gTasks[taskId].tOptTextSpeed);
break;
case MENUITEM_BATTLESCENE:
- gTasks[taskId].data[TD_BATTLESCENE] = BattleScene_ProcessInput(gTasks[taskId].data[TD_BATTLESCENE]);
- BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
+ gTasks[taskId].tOptBattleScene = BattleScene_ProcessInput(gTasks[taskId].tOptBattleScene);
+ BattleScene_DrawChoices(gTasks[taskId].tOptBattleScene);
break;
case MENUITEM_BATTLESTYLE:
- gTasks[taskId].data[TD_BATTLESTYLE] = BattleStyle_ProcessInput(gTasks[taskId].data[TD_BATTLESTYLE]);
- BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
+ gTasks[taskId].tOptBattleStyle = BattleStyle_ProcessInput(gTasks[taskId].tOptBattleStyle);
+ BattleStyle_DrawChoices(gTasks[taskId].tOptBattleStyle);
break;
case MENUITEM_SOUND:
- gTasks[taskId].data[TD_SOUND] = Sound_ProcessInput(gTasks[taskId].data[TD_SOUND]);
- Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
+ gTasks[taskId].tOptSound = Sound_ProcessInput(gTasks[taskId].tOptSound);
+ Sound_DrawChoices(gTasks[taskId].tOptSound);
break;
case MENUITEM_BUTTONMODE:
- gTasks[taskId].data[TD_BUTTONMODE] = ButtonMode_ProcessInput(gTasks[taskId].data[TD_BUTTONMODE]);
- ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
+ gTasks[taskId].tOptButtonMode = ButtonMode_ProcessInput(gTasks[taskId].tOptButtonMode);
+ ButtonMode_DrawChoices(gTasks[taskId].tOptButtonMode);
break;
case MENUITEM_FRAMETYPE:
- gTasks[taskId].data[TD_FRAMETYPE] = FrameType_ProcessInput(gTasks[taskId].data[TD_FRAMETYPE]);
- FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
+ gTasks[taskId].tOptFrameType = FrameType_ProcessInput(gTasks[taskId].tOptFrameType);
+ FrameType_DrawChoices(gTasks[taskId].tOptFrameType);
break;
}
}
@@ -259,12 +255,12 @@ static void Task_OptionMenuProcessInput(u8 taskId)
static void Task_OptionMenuSave(u8 taskId)
{
- gSaveBlock2.optionsTextSpeed = gTasks[taskId].data[TD_TEXTSPEED];
- gSaveBlock2.optionsBattleSceneOff = gTasks[taskId].data[TD_BATTLESCENE];
- gSaveBlock2.optionsBattleStyle = gTasks[taskId].data[TD_BATTLESTYLE];
- gSaveBlock2.optionsSound = gTasks[taskId].data[TD_SOUND];
- gSaveBlock2.optionsButtonMode = gTasks[taskId].data[TD_BUTTONMODE];
- gSaveBlock2.optionsWindowFrameType = gTasks[taskId].data[TD_FRAMETYPE];
+ gSaveBlock2.optionsTextSpeed = gTasks[taskId].tOptTextSpeed;
+ gSaveBlock2.optionsBattleSceneOff = gTasks[taskId].tOptBattleScene;
+ gSaveBlock2.optionsBattleStyle = gTasks[taskId].tOptBattleStyle;
+ gSaveBlock2.optionsSound = gTasks[taskId].tOptSound;
+ gSaveBlock2.optionsButtonMode = gTasks[taskId].tOptButtonMode;
+ gSaveBlock2.optionsWindowFrameType = gTasks[taskId].tOptFrameType;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_OptionMenuFadeOut;
@@ -290,10 +286,10 @@ static void HighlightOptionMenuItem(u8 index)
static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style)
{
- u8 dst[16];
+ u8 dst[15];
u16 i;
- for (i = 0; *text != EOS && i <= 14; i++)
+ for (i = 0; *text != EOS && i < 15; i++)
dst[i] = *(text++);
dst[2] = style;
@@ -305,14 +301,14 @@ static u8 TextSpeed_ProcessInput(u8 selection)
{
if (gMain.newKeys & DPAD_RIGHT)
{
- if (selection <= 1)
+ if (selection < 2)
selection++;
else
selection = 0;
}
if (gMain.newKeys & DPAD_LEFT)
{
- if (selection != 0)
+ if (selection > 0)
selection--;
else
selection = 2;
@@ -341,7 +337,7 @@ static void TextSpeed_DrawChoices(u8 selection)
styles[selection] = 0x8;
DrawOptionMenuChoice(gSystemText_Slow, TEXTSPEED_SLOW_LEFT, 40, styles[0]);
- DrawOptionMenuChoice(gSystemText_Mid, TEXTSPEED_MIX_LEFT, 40, styles[1]);
+ DrawOptionMenuChoice(gSystemText_Mid, TEXTSPEED_MIX_LEFT, 40, styles[1]);
DrawOptionMenuChoice(gSystemText_Fast, TEXTSPEED_FAST_LEFT, 40, styles[2]);
}
@@ -360,7 +356,7 @@ static void BattleScene_DrawChoices(u8 selection)
styles[1] = 0xF;
styles[selection] = 0x8;
- DrawOptionMenuChoice(gSystemText_On, 120, 56, styles[0]);
+ DrawOptionMenuChoice(gSystemText_On, 120, 56, styles[0]);
DrawOptionMenuChoice(gSystemText_Off, 190, 56, styles[1]);
}
@@ -388,7 +384,7 @@ static void BattleStyle_DrawChoices(u8 selection)
styles[selection] = 0x8;
DrawOptionMenuChoice(gSystemText_Shift, BATTLESTYLE_SHIFT, 72, styles[0]);
- DrawOptionMenuChoice(gSystemText_Set, BATTLESTYLE_SET, 72, styles[1]);
+ DrawOptionMenuChoice(gSystemText_Set, BATTLESTYLE_SET, 72, styles[1]);
}
static u8 Sound_ProcessInput(u8 selection)
@@ -409,7 +405,7 @@ static void Sound_DrawChoices(u8 selection)
styles[1] = 0xF;
styles[selection] = 0x8;
- DrawOptionMenuChoice(gSystemText_Mono, 120, 88, styles[0]);
+ DrawOptionMenuChoice(gSystemText_Mono, 120, 88, styles[0]);
DrawOptionMenuChoice(gSystemText_Stereo, 172, 88, styles[1]);
}
@@ -425,7 +421,7 @@ static u8 FrameType_ProcessInput(u8 selection)
}
if (gMain.newKeys & DPAD_LEFT)
{
- if (selection != 0)
+ if (selection > 0)
selection--;
else
selection = 19;
@@ -439,11 +435,11 @@ static u8 FrameType_ProcessInput(u8 selection)
#if ENGLISH
static void FrameType_DrawChoices(u8 selection)
{
- u8 text[8];
+ u8 text[6];
u8 n = selection + 1;
u16 i;
- for (i = 0; gSystemText_Terminator[i] != EOS && i <= 5; i++)
+ for (i = 0; gSystemText_Terminator[i] != EOS && i < 6; i++)
text[i] = gSystemText_Terminator[i];
//Convert number to decimal string
@@ -534,14 +530,14 @@ static u8 ButtonMode_ProcessInput(u8 selection)
{
if (gMain.newKeys & DPAD_RIGHT)
{
- if (selection <= 1)
+ if (selection < 2)
selection++;
else
selection = 0;
}
if (gMain.newKeys & DPAD_LEFT)
{
- if (selection != 0)
+ if (selection > 0)
selection--;
else
selection = 2;
@@ -559,6 +555,6 @@ static void ButtonMode_DrawChoices(u8 selection)
styles[selection] = 0x8;
DrawOptionMenuChoice(gSystemText_Normal, 120, 104, styles[0]);
- DrawOptionMenuChoice(gSystemText_LR, 166, 104, styles[1]);
- DrawOptionMenuChoice(gSystemText_LA, 188, 104, styles[2]);
+ DrawOptionMenuChoice(gSystemText_LR, 166, 104, styles[1]);
+ DrawOptionMenuChoice(gSystemText_LA, 188, 104, styles[2]);
}
diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c
index bf96c724f..83924b384 100644
--- a/src/field/field_control_avatar.c
+++ b/src/field/field_control_avatar.c
@@ -532,7 +532,7 @@ static void happiness_algorithm_step(void)
{
struct Pokemon *pkmn = gPlayerParty;
- for (i = 5; i >= 0; i--)
+ for (i = 0; i < 6; i++)
{
AdjustFriendship(pkmn, 5);
pkmn++;
diff --git a/src/field/field_poison.c b/src/field/field_poison.c
index 49678f269..8365351f9 100644
--- a/src/field/field_poison.c
+++ b/src/field/field_poison.c
@@ -43,7 +43,7 @@ void MonFaintFromPoisonOnField(u8 partyMember)
u32 val = 0;
AdjustFriendship(pkmn, 7);
- SetMonData(pkmn, MON_DATA_STATUS, (u8*)&val);
+ SetMonData(pkmn, MON_DATA_STATUS, &val);
GetMonData(pkmn, MON_DATA_NICKNAME, gStringVar1);
StringGetEnd10(gStringVar1);
}
@@ -60,38 +60,36 @@ bool32 CheckMonFaintedFromPoison(u8 partyMember)
return FALSE;
}
-//Task data
-enum
-{
- TD_STATE,
- TD_PARTY_MEMBER,
-};
+#define tState data[0]
+#define tPartyMember data[1]
void Task_WhiteOut(u8 taskId)
{
- s16 *taskData = gTasks[taskId].data;
+ s16 *data = gTasks[taskId].data;
- switch (taskData[TD_STATE])
+ switch (tState)
{
- case 0: //Check if Pokemon have fainted due to poison
- while (taskData[TD_PARTY_MEMBER] < 6)
+ case 0:
+ // Check if any Pokemon have fainted due to poison
+ while (tPartyMember < 6)
{
- if (CheckMonFaintedFromPoison(taskData[TD_PARTY_MEMBER]))
+ if (CheckMonFaintedFromPoison(tPartyMember))
{
- MonFaintFromPoisonOnField(taskData[TD_PARTY_MEMBER]);
+ // Show message about fainted mon
+ MonFaintFromPoisonOnField(tPartyMember);
ShowFieldMessage(fieldPoisonText_PokemonFainted);
- taskData[TD_STATE]++;
+ tState++;
return;
}
- taskData[TD_PARTY_MEMBER]++;
+ tPartyMember++;
}
- taskData[TD_STATE] = 2;
+ tState = 2;
break;
- case 1: //Wait for message box to disappear
+ case 1: // Wait for message box to disappear
if (IsFieldMessageBoxHidden())
- taskData[TD_STATE]--; //Check next party member
+ tState--; // Go to previous step and check next party member
break;
- case 2: //Done checking Pokemon
+ case 2: // done checking all mons
if (AllMonsFainted())
gSpecialVar_Result = 1;
else
@@ -102,6 +100,9 @@ void Task_WhiteOut(u8 taskId)
}
}
+#undef tState
+#undef tPartyMember
+
void ExecuteWhiteOut(void)
{
CreateTask(Task_WhiteOut, 0x50);
@@ -115,26 +116,28 @@ s32 DoPoisonFieldEffect(void)
u32 numFainting = 0;
int i;
+ // count the number of mons that are poisoned and fainting from poison,
+ // and decrement HP of all poisoned mons
for (i = 0; i < 6; i++)
{
u32 hp;
- // UB: Too few arguments for function 'GetMonData'
if (GetMonData(pkmn, MON_DATA_SANITY_BIT2) != 0
&& pokemon_ailments_get_primary(GetMonData(pkmn, MON_DATA_STATUS)) == 1)
{
+ // decrement HP of poisoned mon
hp = GetMonData(pkmn, MON_DATA_HP);
if (hp != 0)
hp--;
if (hp == 0)
- numFainting++; //Pokemon will now faint due to poison
+ numFainting++;
SetMonData(pkmn, MON_DATA_HP, &hp);
numPoisoned++;
}
pkmn++;
}
if (numFainting != 0 || numPoisoned != 0)
- DoFieldPoisonEffect();
+ FldeffPoison_Start();
if (numFainting != 0)
return 2;
if (numPoisoned != 0)
diff --git a/src/field/fldeff_poison.c b/src/field/fldeff_poison.c
index b0052d59d..52afc2516 100644
--- a/src/field/fldeff_poison.c
+++ b/src/field/fldeff_poison.c
@@ -32,13 +32,13 @@ static void Task_FieldPoisonEffect(u8 taskId)
REG_MOSAIC = (data[1] << 4) | data[1];
}
-void DoFieldPoisonEffect(void)
+void FldeffPoison_Start(void)
{
PlaySE(SE_DOKU);
CreateTask(Task_FieldPoisonEffect, 80);
}
-bool32 FieldPoisonEffectIsRunning(void)
+bool32 FldeffPoison_IsActive(void)
{
return FuncIsActiveTask(Task_FieldPoisonEffect);
}