summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-01-14 18:30:15 -0800
committerYamaArashi <shadow962@live.com>2017-01-14 18:40:05 -0800
commit370b2b3c3e355040982404dc4bf17e1b765ff5a0 (patch)
tree0f2a382837a11f97891534081528327b3cabe573 /src
parent3f044a459b45d6e75abf4d99b736e5289a54a807 (diff)
decompile map_name_popup.c
Diffstat (limited to 'src')
-rw-r--r--src/map_name_popup.c106
-rw-r--r--src/rom4.c8
2 files changed, 110 insertions, 4 deletions
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
new file mode 100644
index 000000000..65766c130
--- /dev/null
+++ b/src/map_name_popup.c
@@ -0,0 +1,106 @@
+#include "global.h"
+#include "menu.h"
+#include "event_data.h"
+#include "task.h"
+#include "asm.h"
+
+EWRAM_DATA static u8 sTaskId = 0;
+
+static void Task_MapNamePopup(u8);
+static void DrawMapNamePopup(void);
+
+bool8 unref_sub_80A2F44(void)
+{
+ CloseMenu();
+ ShowMapNamePopup();
+ return 1;
+}
+
+void ShowMapNamePopup(void)
+{
+ if (FlagGet(0x4000) != TRUE)
+ {
+ if (!FuncIsActiveTask(Task_MapNamePopup))
+ {
+ sTaskId = CreateTask(Task_MapNamePopup, 90);
+ REG_BG0VOFS = 32;
+ DrawMapNamePopup();
+ gTasks[sTaskId].data[0] = 0;
+ gTasks[sTaskId].data[2] = 32;
+ }
+ else
+ {
+ if (gTasks[sTaskId].data[0] != 2)
+ gTasks[sTaskId].data[0] = 2;
+ gTasks[sTaskId].data[3] = 1;
+ }
+ }
+}
+
+void Task_MapNamePopup(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[2] -= 2;
+ if (task->data[2] <= 0 )
+ {
+ task->data[0] = 1;
+ gTasks[sTaskId].data[1] = 0;
+ }
+ break;
+ case 1:
+ task->data[1]++;
+ if (task->data[1] > 120 )
+ {
+ task->data[1] = 0;
+ task->data[0] = 2;
+ }
+ break;
+ case 2:
+ task->data[2] += 2;
+ if (task->data[2] > 31)
+ {
+ if (task->data[3])
+ {
+ DrawMapNamePopup();
+ task->data[0] = 0;
+ task->data[3] = 0;
+ }
+ else
+ {
+ task->data[0] = 4;
+ return;
+ }
+ }
+ break;
+ case 4:
+ HideMapNamePopup();
+ return;
+ }
+
+ REG_BG0VOFS = task->data[2];
+}
+
+void HideMapNamePopup(void)
+{
+ if (FuncIsActiveTask(Task_MapNamePopup))
+ {
+ MenuLoadTextWindowGraphics();
+ MenuZeroFillWindowRect(0, 0, 13, 3);
+ REG_BG0VOFS = 0;
+ DestroyTask(sTaskId);
+ }
+}
+
+void DrawMapNamePopup(void)
+{
+ u8 name[20];
+
+ MenuLoadTextWindowGraphics_OverrideFrameType(0);
+ sub_80FBFB4(name, gMapHeader.name, 0);
+ MenuDrawTextWindow(0, 0, 13, 3);
+ sub_8072BD8(name, 1, 1, 0x60);
+}
diff --git a/src/rom4.c b/src/rom4.c
index f711a5a0e..521f07a48 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -539,7 +539,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
DoCurrentWeather();
ResetFieldTasksArgs();
mapheader_run_script_with_tag_x5();
- AddMapNamePopUpWindowTask();
+ ShowMapNamePopup();
}
void sub_8053994(u32 a1)
@@ -1029,7 +1029,7 @@ void c1_overworld_normal(u16 newKeys, u16 heldKeys)
if (sub_8068024(&inputStruct) == 1)
{
ScriptContext2_Enable();
- HideMapNamePopUpWindow();
+ HideMapNamePopup();
}
else
{
@@ -1254,7 +1254,7 @@ void sub_80546F0(void)
void sub_805470C(void)
{
if (gMapHeader.flags == 1 && sub_80BBB24() == 1)
- AddMapNamePopUpWindowTask();
+ ShowMapNamePopup();
sub_8080B60();
}
@@ -1449,7 +1449,7 @@ bool32 sub_805493C(u8 *a1, u32 a2)
break;
case 11:
if (gMapHeader.flags == 1 && sub_80BBB24() == 1)
- AddMapNamePopUpWindowTask();
+ ShowMapNamePopup();
(*a1)++;
break;
case 12: