summaryrefslogtreecommitdiff
path: root/src/field_message_box.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/field_message_box.c')
-rwxr-xr-xsrc/field_message_box.c109
1 files changed, 59 insertions, 50 deletions
diff --git a/src/field_message_box.c b/src/field_message_box.c
index be76b0c19..1b760c7df 100755
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -5,128 +5,136 @@
#include "task.h"
#include "text.h"
#include "match_call.h"
+#include "field_message_box.h"
static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
-static void textbox_fdecode_auto_and_task_add(u8*, bool32);
-static void textbox_auto_and_task_add(void);
+static void ExpandStringAndStartDrawFieldMessage(const u8*, bool32);
+static void StartDrawFieldMessage(void);
void InitFieldMessageBox(void)
{
- sFieldMessageBoxMode = 0;
- gTextFlags.canABSpeedUpPrint = 0;
- gTextFlags.useAlternateDownArrow = 0;
- gTextFlags.autoScroll = 0;
- gTextFlags.forceMidTextSpeed = 0;
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
+ gTextFlags.canABSpeedUpPrint = FALSE;
+ gTextFlags.useAlternateDownArrow = FALSE;
+ gTextFlags.autoScroll = FALSE;
+ gTextFlags.forceMidTextSpeed = FALSE;
}
-static void sub_8098154(u8 taskId)
+#define tState data[0]
+
+static void Task_DrawFieldMessage(u8 taskId)
{
struct Task *task = &gTasks[taskId];
- switch (task->data[0])
+ switch (task->tState)
{
case 0:
LoadMessageBoxAndBorderGfx();
- task->data[0]++;
+ task->tState++;
break;
case 1:
DrawDialogueFrame(0, 1);
- task->data[0]++;
+ task->tState++;
break;
case 2:
- if (RunTextPrintersAndIsPrinter0Active() != 1)
+ if (RunTextPrintersAndIsPrinter0Active() != TRUE)
{
- sFieldMessageBoxMode = 0;
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
DestroyTask(taskId);
}
}
}
-static void task_add_textbox(void)
+#undef tState
+
+static void CreateTask_DrawFieldMessage(void)
{
- CreateTask(sub_8098154, 0x50);
+ CreateTask(Task_DrawFieldMessage, 0x50);
}
-static void task_del_textbox(void)
+static void DestroyTask_DrawFieldMessage(void)
{
- u8 taskId = FindTaskIdByFunc(sub_8098154);
+ u8 taskId = FindTaskIdByFunc(Task_DrawFieldMessage);
if (taskId != 0xFF)
DestroyTask(taskId);
}
-bool8 ShowFieldMessage(u8 *str)
+bool8 ShowFieldMessage(const u8 *str)
{
- if (sFieldMessageBoxMode != 0)
+ if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE;
- textbox_fdecode_auto_and_task_add(str, 1);
- sFieldMessageBoxMode = 2;
+ ExpandStringAndStartDrawFieldMessage(str, TRUE);
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
return TRUE;
}
-void sub_8098214(u8 taskId)
+static void Task_HidePokenavMessageWhenDone(u8 taskId)
{
if (!IsMatchCallTaskActive())
{
- sFieldMessageBoxMode = 0;
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
DestroyTask(taskId);
}
}
-bool8 sub_8098238(u8 *str)
+bool8 ShowPokenavFieldMessage(const u8 *str)
{
- if (sFieldMessageBoxMode != 0)
+ if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE;
StringExpandPlaceholders(gStringVar4, str);
- CreateTask(sub_8098214, 0);
+ CreateTask(Task_HidePokenavMessageWhenDone, 0);
StartMatchCallFromScript(str);
sFieldMessageBoxMode = 2;
return TRUE;
}
-bool8 ShowFieldAutoScrollMessage(u8 *str)
+bool8 ShowFieldAutoScrollMessage(const u8 *str)
{
- if (sFieldMessageBoxMode != 0)
+ if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE;
- sFieldMessageBoxMode = 3;
- textbox_fdecode_auto_and_task_add(str, 0);
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
+ ExpandStringAndStartDrawFieldMessage(str, FALSE);
return TRUE;
}
-bool8 sub_80982A0(u8 *str)
+// Unused
+static bool8 ForceShowFieldAutoScrollMessage(const u8 *str)
{
- sFieldMessageBoxMode = 3;
- textbox_fdecode_auto_and_task_add(str, 1);
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
+ ExpandStringAndStartDrawFieldMessage(str, TRUE);
return TRUE;
}
-bool8 sub_80982B8(void)
+// Same as ShowFieldMessage, but instead of accepting a
+// string arg it just prints whats already in gStringVar4
+bool8 ShowFieldMessageFromBuffer(void)
{
- if (sFieldMessageBoxMode != 0)
+ if (sFieldMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
return FALSE;
- sFieldMessageBoxMode = 2;
- textbox_auto_and_task_add();
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
+ StartDrawFieldMessage();
return TRUE;
}
-static void textbox_fdecode_auto_and_task_add(u8* str, bool32 allowSkippingDelayWithButtonPress)
+static void ExpandStringAndStartDrawFieldMessage(const u8* str, bool32 allowSkippingDelayWithButtonPress)
{
StringExpandPlaceholders(gStringVar4, str);
AddTextPrinterForMessage(allowSkippingDelayWithButtonPress);
- task_add_textbox();
+ CreateTask_DrawFieldMessage();
}
-static void textbox_auto_and_task_add(void)
+static void StartDrawFieldMessage(void)
{
AddTextPrinterForMessage(TRUE);
- task_add_textbox();
+ CreateTask_DrawFieldMessage();
}
void HideFieldMessageBox(void)
{
- task_del_textbox();
+ DestroyTask_DrawFieldMessage();
ClearDialogWindowAndFrame(0, 1);
- sFieldMessageBoxMode = 0;
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
}
u8 GetFieldMessageBoxMode(void)
@@ -136,20 +144,21 @@ u8 GetFieldMessageBoxMode(void)
bool8 IsFieldMessageBoxHidden(void)
{
- if (sFieldMessageBoxMode == 0)
+ if (sFieldMessageBoxMode == FIELD_MESSAGE_BOX_HIDDEN)
return TRUE;
return FALSE;
}
-void sub_8098358(void)
+// Unused
+static void ReplaceFieldMessageWithFrame(void)
{
- task_del_textbox();
+ DestroyTask_DrawFieldMessage();
DrawStdWindowFrame(0, 1);
- sFieldMessageBoxMode = 0;
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
}
-void sub_8098374(void)
+void StopFieldMessage(void)
{
- task_del_textbox();
- sFieldMessageBoxMode = 0;
+ DestroyTask_DrawFieldMessage();
+ sFieldMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
}