summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-05-08 11:28:28 -0700
committerYamaArashi <shadow962@live.com>2017-05-08 11:28:28 -0700
commit3cc8c2044525a483ba80f8730f8f6376e5f6c935 (patch)
tree186fcef8ab0a3a522fe990853f673fbe9bbcef30 /src
parent71f9479b00adf175cc43e704c27a9d50749f5d67 (diff)
decompile birch_pc
Diffstat (limited to 'src')
-rw-r--r--src/birch_pc.c114
-rw-r--r--src/field_message_box.c12
2 files changed, 120 insertions, 6 deletions
diff --git a/src/birch_pc.c b/src/birch_pc.c
new file mode 100644
index 000000000..89eafc0ce
--- /dev/null
+++ b/src/birch_pc.c
@@ -0,0 +1,114 @@
+#include "global.h"
+#include "asm.h"
+#include "event_data.h"
+#include "field_message_box.h"
+#include "pokedex.h"
+#include "species.h"
+
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+extern u16 gSpecialVar_0x8006;
+
+extern const u8 gUnknown_081C4520[];
+extern const u8 gUnknown_081C456A[];
+extern const u8 gUnknown_081C45B0[];
+extern const u8 gUnknown_081C45F9[];
+extern const u8 gUnknown_081C4648[];
+extern const u8 gUnknown_081C467E[];
+extern const u8 gUnknown_081C46B9[];
+extern const u8 gUnknown_081C46FE[];
+extern const u8 gUnknown_081C4747[];
+extern const u8 gUnknown_081C4780[];
+extern const u8 gUnknown_081C47DF[];
+extern const u8 gUnknown_081C4828[];
+extern const u8 gUnknown_081C4863[];
+extern const u8 gUnknown_081C489C[];
+extern const u8 gUnknown_081C48EB[];
+extern const u8 gUnknown_081C4936[];
+extern const u8 gUnknown_081C49A2[];
+extern const u8 gUnknown_081C4A06[];
+extern const u8 gUnknown_081C4A4F[];
+extern const u8 gUnknown_081C4A91[];
+extern const u8 gUnknown_081C4ADA[];
+
+bool16 ScriptGetPokedexInfo(void)
+{
+ if (!gSpecialVar_0x8004)
+ {
+ gSpecialVar_0x8005 = GetHoennPokedexCount(0);
+ gSpecialVar_0x8006 = GetHoennPokedexCount(1);
+ }
+ else
+ {
+ gSpecialVar_0x8005 = GetNationalPokedexCount(0);
+ gSpecialVar_0x8006 = GetNationalPokedexCount(1);
+ }
+
+ return IsNationalPokedexEnabled();
+}
+
+const u8 *GetPokedexRatingText(u16 count)
+{
+ if (count < 10)
+ return gUnknown_081C4520;
+ if (count < 20)
+ return gUnknown_081C456A;
+ if (count < 30)
+ return gUnknown_081C45B0;
+ if (count < 40)
+ return gUnknown_081C45F9;
+ if (count < 50)
+ return gUnknown_081C4648;
+ if (count < 60)
+ return gUnknown_081C467E;
+ if (count < 70)
+ return gUnknown_081C46B9;
+ if (count < 80)
+ return gUnknown_081C46FE;
+ if (count < 90)
+ return gUnknown_081C4747;
+ if (count < 100)
+ return gUnknown_081C4780;
+ if (count < 110)
+ return gUnknown_081C47DF;
+ if (count < 120)
+ return gUnknown_081C4828;
+ if (count < 130)
+ return gUnknown_081C4863;
+ if (count < 140)
+ return gUnknown_081C489C;
+ if (count < 150)
+ return gUnknown_081C48EB;
+ if (count < 160)
+ return gUnknown_081C4936;
+ if (count < 170)
+ return gUnknown_081C49A2;
+ if (count < 180)
+ return gUnknown_081C4A06;
+ if (count < 190)
+ return gUnknown_081C4A4F;
+ if (count < 200)
+ return gUnknown_081C4A91;
+ if (count == 200)
+ {
+ if (sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
+ || sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1))
+ return gUnknown_081C4A91;
+ return gUnknown_081C4ADA;
+ }
+ if (count == 201)
+ {
+ if (sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
+ && sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1))
+ return gUnknown_081C4A91;
+ return gUnknown_081C4ADA;
+ }
+ if (count == 202)
+ return gUnknown_081C4ADA;
+ return gUnknown_081C4520;
+}
+
+void ShowPokedexRatingMessage(void)
+{
+ ShowFieldMessage(GetPokedexRatingText(gSpecialVar_0x8004));
+}
diff --git a/src/field_message_box.c b/src/field_message_box.c
index 2a5f90d15..798725540 100644
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -15,7 +15,7 @@ static u8 sMessageBoxMode;
static void Task_FieldMessageBox(u8 taskId);
static void CreateFieldMessageBoxTask(void);
static void DestroyFieldMessageBoxTask(void);
-static void PrintFieldMessage(u8 *message);
+static void PrintFieldMessage(const u8 *message);
static void PrintFieldMessageFromStringVar4(void);
void InitFieldMessageBox(void)
@@ -67,7 +67,7 @@ static void DestroyFieldMessageBoxTask(void)
DestroyTask(taskId);
}
-bool8 ShowFieldMessage(u8 *message)
+bool8 ShowFieldMessage(const u8 *message)
{
if (sMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
{
@@ -81,7 +81,7 @@ bool8 ShowFieldMessage(u8 *message)
}
}
-bool8 ShowFieldAutoScrollMessage(u8 *message)
+bool8 ShowFieldAutoScrollMessage(const u8 *message)
{
if (sMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
{
@@ -95,14 +95,14 @@ bool8 ShowFieldAutoScrollMessage(u8 *message)
}
}
-bool8 unref_sub_8064BB8(u8 *message)
+bool8 unref_sub_8064BB8(const u8 *message)
{
sMessageBoxMode = FIELD_MESSAGE_BOX_AUTO_SCROLL;
PrintFieldMessage(message);
return TRUE;
}
-bool8 unref_sub_8064BD0(u8 *message)
+bool8 unref_sub_8064BD0(const u8 *message)
{
if (sMessageBoxMode != FIELD_MESSAGE_BOX_HIDDEN)
{
@@ -116,7 +116,7 @@ bool8 unref_sub_8064BD0(u8 *message)
}
}
-static void PrintFieldMessage(u8 *message)
+static void PrintFieldMessage(const u8 *message)
{
StringExpandPlaceholders(gStringVar4, message);
sub_8002EB0(&gFieldMessageBoxWindow, gStringVar4, gMenuTextTileOffset, 2, 15);