summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/adventure_log.c23
-rw-r--r--src/code_80118A4_1.c0
-rw-r--r--src/data/formatted_type_names.h36
-rw-r--r--src/data/nature_description.h439
-rw-r--r--src/data/wonder_mail_1.h288
-rw-r--r--src/personality_test.c20
-rw-r--r--src/wonder_mail.c598
-rw-r--r--src/wonder_mail_main_menu_pre.c57
-rw-r--r--src/wonder_mail_mid.c400
-rw-r--r--src/wonder_mail_pre.c2
10 files changed, 1027 insertions, 836 deletions
diff --git a/src/adventure_log.c b/src/adventure_log.c
index 2a02840..420d71d 100644
--- a/src/adventure_log.c
+++ b/src/adventure_log.c
@@ -31,8 +31,23 @@ struct AdventureLog
};
extern struct AdventureLog *gAdventureLog;
-extern struct unkData gUnknown_80E2008;
-extern struct unkData gUnknown_80E1FF0;
+
+const struct unkData gUnknown_80E1FF0 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ NULL
+};
+const struct unkData gUnknown_80E2008 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x1A, 0x00, 0x04,
+ 0x06, 0x00,
+ NULL
+};
// Adventure Log Text
const u8 gAdventureLogHeaderText[] = "Adventure Log";
@@ -43,8 +58,8 @@ extern void *MemoryAlloc(u32, u32);
extern void MemoryFree(void *);
extern void sub_8006518(struct unkData *);
extern void sub_800641C(void *, u32, u32);
-extern void sub_8032084();
-extern void DisplayAdventureLog();
+void sub_8032084();
+void DisplayAdventureLog();
extern void sub_8013818(void *, u32, u32, u32);
extern u8 sub_8013938(void *);
extern void sub_8013660(void *);
diff --git a/src/code_80118A4_1.c b/src/code_80118A4_1.c
deleted file mode 100644
index e69de29..0000000
--- a/src/code_80118A4_1.c
+++ /dev/null
diff --git a/src/data/formatted_type_names.h b/src/data/formatted_type_names.h
index e973056..16deaad 100644
--- a/src/data/formatted_type_names.h
+++ b/src/data/formatted_type_names.h
@@ -1,18 +1,18 @@
-ALIGNED(4) const char gFormattedSteelText[] = "#c6Steel#r";
-ALIGNED(4) const char gFormattedDarkText[] = "#c6Dark#r";
-ALIGNED(4) const char gFormattedDragonText[] = "#c6Dragon#r";
-ALIGNED(4) const char gFormattedGhostText[] = "#c6Ghost#r";
-ALIGNED(4) const char gFormattedRockText[] = "#c6Rock#r";
-ALIGNED(4) const char gFormattedBugText[] = "#c6Bug#r";
-ALIGNED(4) const char gFormattedPsychicText[] = "#c6Psychic#r";
-ALIGNED(4) const char gFormattedFlyingText[] = "#c6Flying#r";
-ALIGNED(4) const char gFormattedGroundText[] = "#c6Ground#r";
-ALIGNED(4) const char gFormattedPoisonText[] = "#c6Poison#r";
-ALIGNED(4) const char gFormattedFightingText[] = "#c6Fighting#r";
-ALIGNED(4) const char gFormattedIceText[] = "#c6Ice#r ";
-ALIGNED(4) const char gFormattedElectricText[] = "#c6Electric#r";
-ALIGNED(4) const char gFormattedGrassText[] = "#c6Grass#r";
-ALIGNED(4) const char gFormattedWaterText[] = "#c6Water#r";
-ALIGNED(4) const char gFormattedFireText[] = "#c6Fire#r ";
-ALIGNED(4) const char gFormattedNormalText[] = "#c6Normal#r";
-ALIGNED(4) const char gFormattedNoneText[] = "#c6None#r";
+ALIGNED(4) const char gFormattedSteelText[] = _("{COLOR_2 YELLOW}Steel{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedDarkText[] = _("{COLOR_2 YELLOW}Dark{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedDragonText[] = _("{COLOR_2 YELLOW}Dragon{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedGhostText[] = _("{COLOR_2 YELLOW}Ghost{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedRockText[] = _("{COLOR_2 YELLOW}Rock{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedBugText[] = _("{COLOR_2 YELLOW}Bug{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedPsychicText[] = _("{COLOR_2 YELLOW}Psychic{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedFlyingText[] = _("{COLOR_2 YELLOW}Flying{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedGroundText[] = _("{COLOR_2 YELLOW}Ground{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedPoisonText[] = _("{COLOR_2 YELLOW}Poison{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedFightingText[] = _("{COLOR_2 YELLOW}Fighting{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedIceText[] = _("{COLOR_2 YELLOW}Ice{END_COLOR_TEXT_2} ");
+ALIGNED(4) const char gFormattedElectricText[] = _("{COLOR_2 YELLOW}Electric{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedGrassText[] = _("{COLOR_2 YELLOW}Grass{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedWaterText[] = _("{COLOR_2 YELLOW}Water{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedFireText[] = _("{COLOR_2 YELLOW}Fire{END_COLOR_TEXT_2} ");
+ALIGNED(4) const char gFormattedNormalText[] = _("{COLOR_2 YELLOW}Normal{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedNoneText[] = _("{COLOR_2 YELLOW}None{END_COLOR_TEXT_2}");
diff --git a/src/data/nature_description.h b/src/data/nature_description.h
index a8b396f..7281705 100644
--- a/src/data/nature_description.h
+++ b/src/data/nature_description.h
@@ -1,232 +1,233 @@
-ALIGNED(4) const char gQuirkyDescription[] =
- "#+You appear to be...#W\n"
- "#+The quirky type.#P"
- "#+People consider you an eccentric\n"
- "#+who does things at your own pace.#P"
- "#+You never break tempo.#P"
- "#+Your carefree nature makes you\n"
- "#+attractive. But you also happen\n"
- "#+to be somewhat childish...#P"
- "#+You are fickle and cause problems for the\n"
- "#+people who have to go along with you.#P"
- "#+Maybe people are even upset\n"
- "#+with you for being so fickle?#P"
- "#+If you realize how selfishly\n"
- "#+you~27re behaving~2c try to think\n"
- "#+before you do anything rash.#P"
- "#+A quirky person like you should be...";
+ALIGNED(4) const char gQuirkyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The quirky type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}People consider you an eccentric\n"
+ "{CENTER_ALIGN}who does things at your own pace.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You never break tempo.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Your carefree nature makes you\n"
+ "{CENTER_ALIGN}attractive. But you also happen\n"
+ "{CENTER_ALIGN}to be somewhat childish...{EXTRA_MSG}"
+ "{CENTER_ALIGN}You are fickle and cause problems for the\n"
+ "{CENTER_ALIGN}people who have to go along with you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Maybe people are even upset\n"
+ "{CENTER_ALIGN}with you for being so fickle?{EXTRA_MSG}"
+ "{CENTER_ALIGN}If you realize how selfishly\n"
+ "{CENTER_ALIGN}you~27re behaving~2c try to think\n"
+ "{CENTER_ALIGN}before you do anything rash.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A quirky person like you should be...");
-ALIGNED(4) const char gLonelyDescription[] =
- "#+You appear to be...#W\n"
- "#+The lonely type.#P"
- "#+You always act cheerful and\n"
- "#+jocular around other people.#P"
- "#+But that~27s only because\n"
- "#+you are with other people.#P"
- "#+However~2c when you get alone...#P"
- "#+Do you find yourself\n"
- "#+feeling oddly depressed?#P"
- "#+That~27s why you always\n"
- "#+want to be with others.#P"
- "#+But if you go around feeling\n"
- "#+depressed too much...#P"
- "#+Your nutritional balance goes out\n"
- "#+of wack. Eat more vegetables!#P"
- "#+However...#W\n"
- "#+It~27s not a bad thing\n"
- "#+to feel lonely.#P"
- "#+You know what it~27s like when you aren~27t\n"
- "#+alone~2c so that~27s why you feel lonesome.#P"
- "#+And that~27s why you aren~27t really alone.#P"
- "#+A lonely person like you should be...";
+ALIGNED(4) const char gLonelyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The lonely type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You always act cheerful and\n"
+ "{CENTER_ALIGN}jocular around other people.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But that~27s only because\n"
+ "{CENTER_ALIGN}you are with other people.{EXTRA_MSG}"
+ "{CENTER_ALIGN}However~2c when you get alone...{EXTRA_MSG}"
+ "{CENTER_ALIGN}Do you find yourself\n"
+ "{CENTER_ALIGN}feeling oddly depressed?{EXTRA_MSG}"
+ "{CENTER_ALIGN}That~27s why you always\n"
+ "{CENTER_ALIGN}want to be with others.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But if you go around feeling\n"
+ "{CENTER_ALIGN}depressed too much...{EXTRA_MSG}"
+ "{CENTER_ALIGN}Your nutritional balance goes out\n"
+ "{CENTER_ALIGN}of wack. Eat more vegetables!{EXTRA_MSG}"
+ "{CENTER_ALIGN}However...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}It~27s not a bad thing\n"
+ "{CENTER_ALIGN}to feel lonely.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You know what it~27s like when you aren~27t\n"
+ "{CENTER_ALIGN}alone~2c so that~27s why you feel lonesome.{EXTRA_MSG}"
+ "{CENTER_ALIGN}And that~27s why you aren~27t really alone.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A lonely person like you should be...");
-ALIGNED(4) const char gRelaxedDescription[] =
- "#+You appear to be...#W\n"
- "#+The relaxed type.#P"
- "#+Do you occasionally\n"
- "#+zone out and miss a bus?#P"
- "#+Or do you find yourself dozing off?#P"
- "#+Or is your reaction time\n"
- "#+a little slower than others?#P"
- "#+But that~27s not necessarily\n"
- "#+a bad thing.#P"
- "#+You can do things at your own\n"
- "#+tempo without feeling pressured.#P"
- "#+You can live in a relaxed and\n"
- "#+unhurried manner without worries.#P"
- "#+I think that~27s a happy\n"
- "#+lifestyle to be envied~2c even.#P"
- "#+You~27re also surprisingly popular.#P"
- "#+The way you vacantly stare\n"
- "#+off into the distance...#P"
- "#+It should make that someone\n"
- "#+special~27s pulse race.#P"
- "#+A relaxed person like you should be...";
+ALIGNED(4) const char gRelaxedDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The relaxed type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Do you occasionally\n"
+ "{CENTER_ALIGN}zone out and miss a bus?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Or do you find yourself dozing off?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Or is your reaction time\n"
+ "{CENTER_ALIGN}a little slower than others?{EXTRA_MSG}"
+ "{CENTER_ALIGN}But that~27s not necessarily\n"
+ "{CENTER_ALIGN}a bad thing.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can do things at your own\n"
+ "{CENTER_ALIGN}tempo without feeling pressured.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can live in a relaxed and\n"
+ "{CENTER_ALIGN}unhurried manner without worries.{EXTRA_MSG}"
+ "{CENTER_ALIGN}I think that~27s a happy\n"
+ "{CENTER_ALIGN}lifestyle to be envied~2c even.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re also surprisingly popular.{EXTRA_MSG}"
+ "{CENTER_ALIGN}The way you vacantly stare\n"
+ "{CENTER_ALIGN}off into the distance...{EXTRA_MSG}"
+ "{CENTER_ALIGN}It should make that someone\n"
+ "{CENTER_ALIGN}special~27s pulse race.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A relaxed person like you should be...");
-ALIGNED(4) const char gCalmDescription[] =
- "#+You appear to be...#W\n"
- "#+The calm type.#P"
- "#+You~27re capable of giving advice\n"
- "#+to friends with worries.#P"
- "#+You don~27t like to fight.#P"
- "#+You~27re a warm~2c kindhearted\n"
- "#+person who cares.#P"
- "#+You must have many friends\n"
- "#+who look up to you.#P"
- "#+However...#W\n"
- "#+You may also be somewhat gullible...#P"
- "#+As well as a little careless...#P"
- "#+And even a little sloppy.#P"
- "#+You might want to keep\n"
- "#+those points in mind.#P"
- "#+A calm person like you should be...";
+ALIGNED(4) const char gCalmDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The calm type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re capable of giving advice\n"
+ "{CENTER_ALIGN}to friends with worries.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You don~27t like to fight.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re a warm~2c kindhearted\n"
+ "{CENTER_ALIGN}person who cares.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You must have many friends\n"
+ "{CENTER_ALIGN}who look up to you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}However...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You may also be somewhat gullible...{EXTRA_MSG}"
+ "{CENTER_ALIGN}As well as a little careless...{EXTRA_MSG}"
+ "{CENTER_ALIGN}And even a little sloppy.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You might want to keep\n"
+ "{CENTER_ALIGN}those points in mind.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A calm person like you should be...");
-ALIGNED(4) const char gSassyDescription[] =
- "#+You appear to be...#W\n"
- "#+The sassy type.#P"
- "#+You tend to be somewhat cynical.#P"
- "#+Despite that~2c there is something\n"
- "#+appealing and lovable about you.#P"
- "#+But do you occasionally say something\n"
- "#+arrogant that angers others?#P"
- "#+Do you make that mistake?#P"
- "#+Or have people called you\n"
- "#+conceited~2c vain~2c or selfish?#P"
- "#+Have people said that about you?#P"
- "#+Huh?#W You~27re telling me to get lost?#P"
- "#+Why~2c you... Come here and say that!#W\n"
- "#+......Gasp!#P"
- "#+...I~27m sorry.\n"
- "#+I let my feelings run away.\n"
- "#+I truly regret this~2c really.#P"
- "#+Anyway~2c your cool and aloof\n"
- "#+attitude is what defines you.#P"
- "#+It makes you exasperating and\n"
- "#+appealing at the same time.#P"
- "#+A sassy person like you should be...";
+ALIGNED(4) const char gSassyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The sassy type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You tend to be somewhat cynical.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Despite that~2c there is something\n"
+ "{CENTER_ALIGN}appealing and lovable about you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But do you occasionally say something\n"
+ "{CENTER_ALIGN}arrogant that angers others?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Do you make that mistake?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Or have people called you\n"
+ "{CENTER_ALIGN}conceited~2c vain~2c or selfish?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Have people said that about you?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Huh?{WAIT_PRESS} You~27re telling me to get lost?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Why~2c you... Come here and say that!{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}......Gasp!{EXTRA_MSG}"
+ "{CENTER_ALIGN}...I~27m sorry.\n"
+ "{CENTER_ALIGN}I let my feelings run away.\n"
+ "{CENTER_ALIGN}I truly regret this~2c really.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Anyway~2c your cool and aloof\n"
+ "{CENTER_ALIGN}attitude is what defines you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}It makes you exasperating and\n"
+ "{CENTER_ALIGN}appealing at the same time.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A sassy person like you should be...");
-ALIGNED(4) const char gHastyDescription[] =
- "#+You appear to be...#W\n"
- "#+The hasty type.#P"
- "#+You like to take charge\n"
- "#+and get things done.#P"
- "#+You~27re a real go-getter.#P"
- "#+But are you also stressed out?#P"
- "#+You get irritated when your\n"
- "#+friends don~27t show up on time.#P"
- "#+You get frustrated when things\n"
- "#+don~27t turn out the way you expect.#P"
- "#+Maybe you jab the elevator button\n"
- "#+if the elevator is slow to arrive.#P"
- "#+...Maybe you~27re already jabbing\n"
- "#+the A Button repeatedly now.#P"
- "#+Beware--getting too easily irritated\n"
- "#+just isn~27t good for your well-being.#P"
- "#+A hasty person like you should be...";
+ALIGNED(4) const char gHastyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The hasty type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You like to take charge\n"
+ "{CENTER_ALIGN}and get things done.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re a real go-getter.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But are you also stressed out?{EXTRA_MSG}"
+ "{CENTER_ALIGN}You get irritated when your\n"
+ "{CENTER_ALIGN}friends don~27t show up on time.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You get frustrated when things\n"
+ "{CENTER_ALIGN}don~27t turn out the way you expect.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Maybe you jab the elevator button\n"
+ "{CENTER_ALIGN}if the elevator is slow to arrive.{EXTRA_MSG}"
+ "{CENTER_ALIGN}...Maybe you~27re already jabbing\n"
+ "{CENTER_ALIGN}the A Button repeatedly now.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Beware--getting too easily irritated\n"
+ "{CENTER_ALIGN}just isn~27t good for your well-being.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A hasty person like you should be...");
-ALIGNED(4) const char gTimidDescription[] =
- "#+You appear to be...#W\n"
- "#+The timid type.#P"
- "#+You may find it hard to go\n"
- "#+to the washroom at night.#P"
- "#+You may also find it too frightening\n"
- "#+to go back to school to get something\n"
- "#+you left behind in class.#P"
- "#+If you~27re ever walking on a dark\n"
- "#+street at night~2c you probably turn\n"
- "#+around often to check behind you.#P"
- "#+But your timid nature is\n"
- "#+also your good point!#P"
- "#+Because those who know fear are\n"
- "#+those who know true courage.#P"
- "#+A timid person like you should be...";
+ALIGNED(4) const char gTimidDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The timid type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You may find it hard to go\n"
+ "{CENTER_ALIGN}to the washroom at night.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You may also find it too frightening\n"
+ "{CENTER_ALIGN}to go back to school to get something\n"
+ "{CENTER_ALIGN}you left behind in class.{EXTRA_MSG}"
+ "{CENTER_ALIGN}If you~27re ever walking on a dark\n"
+ "{CENTER_ALIGN}street at night~2c you probably turn\n"
+ "{CENTER_ALIGN}around often to check behind you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But your timid nature is\n"
+ "{CENTER_ALIGN}also your good point!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Because those who know fear are\n"
+ "{CENTER_ALIGN}those who know true courage.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A timid person like you should be...");
-ALIGNED(4) const char gNaiveDescription[] =
- "#+You appear to be...#W\n"
- "#+The naive type.#P"
- "#+You are highly curious~2c\n"
- "#+and you love rare things.#P"
- "#+Your cheerful and carefree\n"
- "#+attitude should make things fun\n"
- "#+for the people around you.#P"
- "#+But you do have one flaw.\n"
- "#+You can be childish.#P"
- "#+You can never sit still.\n"
- "#+You~27re always on the move.#P"
- "#+You can also be selfish~2c\n"
- "#+so you should watch yourself.#P"
- "#+A naive person like you should be...";
+ALIGNED(4) const char gNaiveDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The naive type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You are highly curious~2c\n"
+ "{CENTER_ALIGN}and you love rare things.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Your cheerful and carefree\n"
+ "{CENTER_ALIGN}attitude should make things fun\n"
+ "{CENTER_ALIGN}for the people around you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But you do have one flaw.\n"
+ "{CENTER_ALIGN}You can be childish.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can never sit still.\n"
+ "{CENTER_ALIGN}You~27re always on the move.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can also be selfish~2c\n"
+ "{CENTER_ALIGN}so you should watch yourself.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A naive person like you should be...");
-ALIGNED(4) const char gImpishDescription[] =
- "#+You appear to be...#W\n"
- "#+The impish type.#P"
- "#+You~27re playful~2c cheerful~2c\n"
- "#+and you love pranks.#P"
- "#+You~27re also kindhearted.#P"
- "#+That~27s why the people around\n"
- "#+you find you so irresistible.#P"
- "#+You must be the most\n"
- "#+popular person around!#P"
- "#+Oh?#W You~27re not that popular?#W\n"
- "#+You~27re either being modest...\n"
- "#+or you just don~27t notice it.#P"
- "#+I bet people are just too shy\n"
- "#+to let their feelings be known.#P"
- "#+There~27s someone out there who~27s\n"
- "#+afraid to declare their love for you!#P"
- "#+An impish person like you should be...";
+ALIGNED(4) const char gImpishDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The impish type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re playful~2c cheerful~2c\n"
+ "{CENTER_ALIGN}and you love pranks.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re also kindhearted.{EXTRA_MSG}"
+ "{CENTER_ALIGN}That~27s why the people around\n"
+ "{CENTER_ALIGN}you find you so irresistible.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You must be the most\n"
+ "{CENTER_ALIGN}popular person around!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Oh?{WAIT_PRESS} You~27re not that popular?{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You~27re either being modest...\n"
+ "{CENTER_ALIGN}or you just don~27t notice it.{EXTRA_MSG}"
+ "{CENTER_ALIGN}I bet people are just too shy\n"
+ "{CENTER_ALIGN}to let their feelings be known.{EXTRA_MSG}"
+ "{CENTER_ALIGN}There~27s someone out there who~27s\n"
+ "{CENTER_ALIGN}afraid to declare their love for you!{EXTRA_MSG}"
+ "{CENTER_ALIGN}An impish person like you should be...");
-ALIGNED(4) const char gJollyDescription[] =
- "#+You appear to be...#W\n"
- "#+The jolly type.#P"
- "#+Always laughing and smiling~2c\n"
- "#+you uplift everyone around you.#P"
- "#+You love jokes!#P"
- "#+You have lots of friends~2c and\n"
- "#+you~27re popular wherever you go.#P"
- "#+But sometimes you get carried away\n"
- "#+and say things that get you in trouble.#P"
- "#+You should learn to think before\n"
- "#+saying or doing anything.#P"
- "#+A jolly person like you should be...";
+ALIGNED(4) const char gJollyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The jolly type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Always laughing and smiling~2c\n"
+ "{CENTER_ALIGN}you uplift everyone around you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You love jokes!{EXTRA_MSG}"
+ "{CENTER_ALIGN}You have lots of friends~2c and\n"
+ "{CENTER_ALIGN}you~27re popular wherever you go.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But sometimes you get carried away\n"
+ "{CENTER_ALIGN}and say things that get you in trouble.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You should learn to think before\n"
+ "{CENTER_ALIGN}saying or doing anything.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A jolly person like you should be...");
-ALIGNED(4) const char gBraveDescription[] =
- "#+You appear to be...#W\n"
- "#+The brave type.#P"
- "#+You have a strong sense of justice.#W\n"
- "#+You hate evil.#W\n"
- "#+You will take on any opponent.#P"
- "#+You are truly a hero!#P"
- "#+Go forth!#P"
- "#+For justice...#W\n"
- "#+For peace on earth...#W\n"
- "#+Fight the forces of evil!#P"
- "#+......#WIf I~27m wrong...#W\n"
- "#+Work at becoming a true hero!#P"
- "#+A brave person like you should be...";
+ALIGNED(4) const char gBraveDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The brave type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You have a strong sense of justice.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You hate evil.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You will take on any opponent.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You are truly a hero!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Go forth!{EXTRA_MSG}"
+ "{CENTER_ALIGN}For justice...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}For peace on earth...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Fight the forces of evil!{EXTRA_MSG}"
+ "{CENTER_ALIGN}......{WAIT_PRESS}If I~27m wrong...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Work at becoming a true hero!{EXTRA_MSG}"
+ "{CENTER_ALIGN}A brave person like you should be...");
-ALIGNED(4) const char gDocileDescription[] =
- "#+You appear to be...#W\n"
- "#+The docile type.#P"
- "#+You~27re very kindhearted.#W\n"
- "#+Very helpful.#W\n"
- "#+You can make friends with anyone.#P"
- "#+You~27re a wonderful person.#P"
- "#+......#WIs that going overboard?#W\n"
- "#+I don~27t think so.#P"
- "#+You yourself should be\n"
- "#+the best judge of that.#P"
- "#+A docile person like you should be...";
+ALIGNED(4) const char gDocileDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The docile type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re very kindhearted.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Very helpful.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You can make friends with anyone.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re a wonderful person.{EXTRA_MSG}"
+ "{CENTER_ALIGN}......{WAIT_PRESS}Is that going overboard?{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}I don~27t think so.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You yourself should be\n"
+ "{CENTER_ALIGN}the best judge of that.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A docile person like you should be...");
-ALIGNED(4) const char gHardyDescription[] =
- "#+You appear to be...#W\n"
- "#+The hardy type.#P#+You do your homework diligently~2c\n"
- "#+and you know to eat properly.#P"
- "#+You have strong willpower that lets\n"
- "#+you complete tasks~2c however tough.#P"
- "#+But~2c you can also be stubborn to the\n"
- "#+point of even feuding with friends...#P"
- "#+Nothing will go right for you when you~27re\n"
- "#+irritated~2c so learn to laugh it off.#P"
- "#+A hardy person like you should be...";
+ALIGNED(4) const char gHardyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The hardy type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You do your homework diligently~2c\n"
+ "{CENTER_ALIGN}and you know to eat properly.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You have strong willpower that lets\n"
+ "{CENTER_ALIGN}you complete tasks~2c however tough.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But~2c you can also be stubborn to the\n"
+ "{CENTER_ALIGN}point of even feuding with friends...{EXTRA_MSG}"
+ "{CENTER_ALIGN}Nothing will go right for you when you~27re\n"
+ "{CENTER_ALIGN}irritated~2c so learn to laugh it off.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A hardy person like you should be...");
diff --git a/src/data/wonder_mail_1.h b/src/data/wonder_mail_1.h
index 7b840d6..19c49dd 100644
--- a/src/data/wonder_mail_1.h
+++ b/src/data/wonder_mail_1.h
@@ -1,141 +1,259 @@
-ALIGNED(4) const char gUnknown_80DE1E4[] =
+ALIGNED(4) const char gUnknown_80DDBA8[] = _(
+ " What you need to do is\n"
+ "tell your friend--the one you rescued--\n"
+ "this here password.");
+
+ALIGNED(4) const char gUnknown_80DDBFC[] = _(
+ " All righty!\n"
+ "Here~27s your {COLOR_1 LIGHT_BLUE_2}A-OK Mail password{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DDC30[] = _(
+ " Okeydoke! That~27s all done.\n"
+ "Come around whenever you need.");
+
+ALIGNED(4) const char gUnknown_80DDC70[] = _(
+ " Okeydoke! I sent off your\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " Let me save your adventure.");
+
+ALIGNED(4) const char gUnknown_80DDCBC[] = _(
+ "{CENTER_ALIGN}Please choose the Pokémon you want to\n"
+ "{CENTER_ALIGN}send as a helper to your friend.\n"
+ "{CENTER_ALIGN}(Its hold item will not be sent.)");
+
+ALIGNED(4) const char gUnknown_80DDD2C[] = _(
" ...Uh~2c no?\n"
- "You don~27t have an #CGSOS Mail#R.#P"
+ "There appear to be no Pokémon in your\n"
+ "Friend Areas. What do you want to do?");
+
+ALIGNED(4) const char gUnknown_80DDD88[] = _(
+ " You~27re sure you want to\n"
+ "send this here Pokémon?");
+
+ALIGNED(4) const char gUnknown_80DDDBC[] = _(
+ " You~27re sure about this?");
+
+ALIGNED(4) const char gUnknown_80DDDD8[] = _(
+ " All righty. I need you to\n"
+ "pick the {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} you want to send.");
+
+ALIGNED(4) const char gUnknown_80DDE20[] = _(
+ " ...Uh~2c no?\n"
+ "I don~27t see any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} here.");
+
+ALIGNED(4) const char gUnknown_80DDE58[] = _(
+ " Did you know? If you use\n"
+ "a {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}~2c you can send\n"
+ "a {COLOR_1 LIGHT_BLUE_2}helper Pokémon{END_COLOR_TEXT_1} to your friend.");
+
+ALIGNED(4) const char gUnknown_80DDEC0[] = _(
+ " Don~27t you worry. Sending\n"
+ "a Pokémon doesn~27t mean it will go away.\n"
+ "So! Want to send one to your friend?");
+
+ALIGNED(4) const char gUnknown_80DDF2C[] = _(
+ " ...Uh~2c no?\n"
+ "There~27s no space at all to receive\n"
+ "any more mail.{EXTRA_MSG}"
+ " Delete some old mail~2c\n"
+ "and then come to me to receive\n"
+ "your mail~2c OK?");
+
+ALIGNED(4) const char gUnknown_80DDFB8[] = _(
+ " All righty! Connect up\n"
+ "the {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}~2c if you~27d please.\n"
+ "Your friend ready~2c too?");
+
+ALIGNED(4) const char gUnknown_80DE01C[] = _(
+ "{CENTER_ALIGN}Communicating...\n"
+ "{CENTER_ALIGN}Please wait with the power on.\n"
+ "{CENTER_ALIGN}To cancel~2c press {B_BUTTON}.");
+
+ALIGNED(4) const char gUnknown_80DE06C[] = _(
+ " Okeydoke!\n"
+ "I received your friend~27s {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " Let me save your adventure.");
+
+ALIGNED(4) const char gUnknown_80DE0C0[] = _(
+ " Okeydoke! You~27re good to go.\n"
+ "Just give me a shout when you~27d like\n"
+ "to go rescue your friend.");
+
+ALIGNED(4) const char gUnknown_80DE124[] = _(
+ " OK~2c I need you to enter\n"
+ "the {COLOR_1 LIGHT_BLUE_2}SOS Mail password{END_COLOR_TEXT_1} that your\n"
+ "friend gave you.");
+
+ALIGNED(4) const char gUnknown_80DE178[] = _(
+ " How do you want to receive\n"
+ "your friend~27s {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}?");
+
+ALIGNED(4) const char gUnknown_80DE1B4[] = _(
+ " How do you want to send\n"
+ "your {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}?");
+
+ALIGNED(4) const char gUnknown_80DE1E4[] = _(
+ " ...Uh~2c no?\n"
+ "You don~27t have an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
" You~27ll need to arrange\n"
- "to receive your friend~27s #CGSOS Mail#R first.\n"
- "That~27s what you need to do.";
+ "to receive your friend~27s {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} first.\n"
+ "That~27s what you need to do.");
-ALIGNED(4) const char gUnknown_80DE280[] =
+ALIGNED(4) const char gUnknown_80DE280[] = _(
" Okeydoke!\n"
- "Let me show you to the rescue site.";
+ "Let me show you to the rescue site.");
-ALIGNED(4) const char gUnknown_80DE2B0[] =
+ALIGNED(4) const char gUnknown_80DE2B0[] = _(
" ...Uh~2c no?\n"
"Doesn~27t look like you can go to the dungeon\n"
- "named in this #CGSOS Mail#R.#P"
+ "named in this {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
" Come see me about doing\n"
"this rescue when you can actually go\n"
- "to that dungeon~2c all right?";
+ "to that dungeon~2c all right?");
-ALIGNED(4) const char gUnknown_80DE368[] =
+ALIGNED(4) const char gUnknown_80DE368[] = _(
" ...Uh~2c no?\n"
"You~27ve blown this rescue mission too\n"
- "often. Your friend~27s team is beyond help.#P"
+ "often. Your friend~27s team is beyond help.{EXTRA_MSG}"
" I~27m sorry to say this~2c\n"
"but you~27ll have to tell your friend that\n"
- "your rescue attempts failed.";
+ "your rescue attempts failed.");
-ALIGNED(4) const char gUnknown_80DE430[] =
+ALIGNED(4) const char gUnknown_80DE430[] = _(
" Okeydoke.\n"
- "I~27ll need you to choose the #CGSOS Mail#R\n"
- "for you to go on a rescue mission.";
+ "I~27ll need you to choose the {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}\n"
+ "for you to go on a rescue mission.");
-ALIGNED(4) const char gUnknown_80DE48C[] =
+ALIGNED(4) const char gUnknown_80DE48C[] = _(
" What kind of mail do you\n"
- "want to delete?";
+ "want to delete?");
-ALIGNED(4) const char gUnknown_80DE4B8[] =
+ALIGNED(4) const char gUnknown_80DE4B8[] = _(
" All righty. Choose\n"
- "the #CGSOS Mail#R you don~27t need.";
+ "the {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} you don~27t need.");
-ALIGNED(4) const char gUnknown_80DE4F0[] =
+ALIGNED(4) const char gUnknown_80DE4F0[] = _(
" ...Uh~2c no?\n"
- "You don~27t have any #CGSOS Mail#R.";
-
-ALIGNED(4) const char gUnknown_80DE524[] =
- " If you want a reward~2c #C2don~27t\n"
- "delete an A-OK Mail#R before getting a\n"
- "#CGThank-You Mail#R back for it.#P"
- " #C2Be careful#R if you~27re going\n"
- "to delete any #CGA-OK Mail#R.#P"
+ "You don~27t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DE524[] = _(
+ " If you want a reward~2c {COLOR_1 RED}don~27t\n"
+ "delete an A-OK Mail{END_COLOR_TEXT_1} before getting a\n"
+ "{COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1} back for it.{EXTRA_MSG}"
+ " {COLOR_1 RED}Be careful{END_COLOR_TEXT_1} if you~27re going\n"
+ "to delete any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
" Okeydoke.\n"
- "Choose an #CGA-OK Mail#R\n"
- "you don~27t need anymore.";
-ALIGNED(4) const char gUnknown_80DE614[] =
+ "Choose an {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}\n"
+ "you don~27t need anymore.");
+
+ALIGNED(4) const char gUnknown_80DE614[] = _(
" ...Uh~2c no?\n"
- "You don~27t have any #CGA-OK Mail#R.";
-ALIGNED(4) const char gUnknown_80DE648[] =
+ "You don~27t have any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DE648[] = _(
" Uh~2c OK.\n"
"So~2c you want me to delete every piece\n"
- "of mail that you have.";
-ALIGNED(4) const char gUnknown_80DE694[] =
+ "of mail that you have.");
+
+ALIGNED(4) const char gUnknown_80DE694[] = _(
" ...Uh~2c no?\n"
"You don~27t have a single piece of\n"
- "mail on you!";
-ALIGNED(4) const char gUnknown_80DE6D4[] =
- " So~2c delete all your #CGSOS Mail#R~2c\n"
- "#CGA-OK Mail#R~2c and your #CGThank-You Mail#R?\n"
- "You~27re absolutely~2c positively sure?";
-ALIGNED(4) const char gUnknown_80DE754[] =
+ "mail on you!");
+
+ALIGNED(4) const char gUnknown_80DE6D4[] = _(
+ " So~2c delete all your {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}~2c\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}~2c and your {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1}?\n"
+ "You~27re absolutely~2c positively sure?");
+
+ALIGNED(4) const char gUnknown_80DE754[] = _(
" If I delete any mail~2c it~27s\n"
"gone forever and ever. Bye-bye.\n"
- "You~27re really~2c really sure now?";
-ALIGNED(4) const char gUnknown_80DE7B8[] =
+ "You~27re really~2c really sure now?");
+
+ALIGNED(4) const char gUnknown_80DE7B8[] = _(
" OK~2c then.\n"
- "Let me save your adventure now.";
-ALIGNED(4) const char gUnknown_80DE7E8[] =
- " Okeydoke. That~27s all done.";
-ALIGNED(4) const char gUnknown_80DE808[] =
+ "Let me save your adventure now.");
+
+ALIGNED(4) const char gUnknown_80DE7E8[] = _(
+ " Okeydoke. That~27s all done.");
+
+ALIGNED(4) const char gUnknown_80DE808[] = _(
" Do you want to delete\n"
- "any other mail?";
-ALIGNED(4) const char gUnknown_80DE830[] =
+ "any other mail?");
+
+ALIGNED(4) const char gUnknown_80DE830[] = _(
" Okeydoke.\n"
- "I~27ll delete #CGevery piece of mail#R.";
-ALIGNED(4) const char gUnknown_80DE864[] =
+ "I~27ll delete {COLOR_1 LIGHT_BLUE_2}every piece of mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DE864[] = _(
" Okeydoke.\n"
- "Every bit of mail has been deleted.#P"
- " Let me save your adventure.";
-ALIGNED(4) const char gUnknown_80DE8B4[] =
+ "Every bit of mail has been deleted.{EXTRA_MSG}"
+ " Let me save your adventure.");
+
+ALIGNED(4) const char gUnknown_80DE8B4[] = _(
" Well~2c hello~2c there!\n"
- "This is the #CGFriend Rescue#R counter.\n"
- "What can I help you with today?";
-ALIGNED(4) const char gUnknown_80DE918[] =
+ "This is the {COLOR_1 LIGHT_BLUE_2}Friend Rescue{END_COLOR_TEXT_1} counter.\n"
+ "What can I help you with today?");
+
+ALIGNED(4) const char gUnknown_80DE918[] = _(
" Help you with anything\n"
- "else today?";
-ALIGNED(4) const char gUnknown_80DE93C[] =
- " Come again anytime!";
+ "else today?");
-ALIGNED(4) const char gWonderMailErrorText[] =
+ALIGNED(4) const char gUnknown_80DE93C[] = _(
+ " Come again anytime!");
+
+ALIGNED(4) const char gWonderMailErrorText[] = _(
" ...Uh~2c no?\n"
- "Something~27s not working right here...";
-ALIGNED(4) const char gWonderMailNumGBAsText[] =
+ "Something~27s not working right here...");
+
+ALIGNED(4) const char gWonderMailNumGBAsText[] = _(
" ...Uh~2c no?\n"
"The number of GBA systems isn~27t right.\n"
- "You~27d better try this again from the top.";
-ALIGNED(4) const char gWonderMailWrongModeText[] =
+ "You~27d better try this again from the top.");
+
+ALIGNED(4) const char gWonderMailWrongModeText[] = _(
" ...Uh~2c no? You~27re not in the\n"
"same mode as your friend.\n"
- "You~27d better try this again from the top.";
-ALIGNED(4) const char gWonderMailStorageFullText[] =
+ "You~27d better try this again from the top.");
+
+ALIGNED(4) const char gWonderMailStorageFullText[] = _(
" ...Uh~2c no?\n"
"Your storage space is stuffed full.\n"
- "You~27d better make room and try again.";
-ALIGNED(4) const char gWonderMailDuplicateText[] =
+ "You~27d better make room and try again.");
+
+ALIGNED(4) const char gWonderMailDuplicateText[] = _(
" ...Uh~2c no? It looks like\n"
"you received this mail before.\n"
- "You can~27t get the same mail twice. ";
-ALIGNED(4) const char gWonderMailNotEligibleReceiveText[] =
+ "You can~27t get the same mail twice. ");
+
+ALIGNED(4) const char gWonderMailNotEligibleReceiveText[] = _(
" ...Uh~2c no?\n"
- "You~27re not eligible to receive this mail.";
-ALIGNED(4) const char gWonderMailNoRoomText[] =
+ "You~27re not eligible to receive this mail.");
+
+ALIGNED(4) const char gWonderMailNoRoomText[] = _(
" ...Uh~2c no?\n"
"There~27s no room for you to \n"
- "receive any more mail.#P"
+ "receive any more mail.{EXTRA_MSG}"
" You~27d better delete some\n"
"mail and make room before you come see\n"
- "me again about receiving new mail.";
-ALIGNED(4) const char gWonderMailFriendErrorText[] =
+ "me again about receiving new mail.");
+
+ALIGNED(4) const char gWonderMailFriendErrorText[] = _(
" ...Uh~2c no? Looks like your\n"
"friend didn~27t do what needed doing.\n"
- "You~27d better do this again from the top.";
-ALIGNED(4) const char gWonderMailPasswordIncorrectText[] =
+ "You~27d better do this again from the top.");
+
+ALIGNED(4) const char gWonderMailPasswordIncorrectText[] = _(
" ...Uh~2c no?\n"
"This here password looks wrong.\n"
- "Do you want to try that again?";
-ALIGNED(4) const char gWonderMailSOSPasswordIncorrectText[] =
+ "Do you want to try that again?");
+
+ALIGNED(4) const char gWonderMailSOSPasswordIncorrectText[] = _(
" ...Uh~2c no? This password~27s\n"
- "not for any #CGSOS Mail#R.";
-ALIGNED(4) const char gWonderMailAOKMailReceivedText[] =
- ": I received the #CGSOS Mail#R.\n"
- "Your adventure will be saved.";
-ALIGNED(4) const char mail_filler[] = "pksdir0";
+ "not for any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gWonderMailAOKMailReceivedText[] = _(
+ ": I received the {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\n"
+ "Your adventure will be saved.");
+
+ALIGNED(4) const char mail_filler[] = _("pksdir0");
diff --git a/src/personality_test.c b/src/personality_test.c
index 67f0f9f..974ca03 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -89,10 +89,7 @@ struct stack_PartnerSprite
};
extern const char gStarterReveal[];
-extern const char gPartnerPrompt[];
-extern const char gPartnerNickPrompt[];
extern const char gGenderText[];
-extern const char gEndIntroText[];
extern u32 gGenderMenu;
extern const char gUnknown_80F42C0;
@@ -113,7 +110,24 @@ extern const char gRelaxedDescription[];
extern const char gLonelyDescription[];
extern const char gQuirkyDescription[];
+const char gStarterReveal[] = _("\n{CENTER_ALIGN}The Pokémon $m0!");
+const char * const gStarterRevealPtr = gStarterReveal;
+const char gPartnerPrompt[] = _(
+ "{CENTER_ALIGN}This is the final step.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Who would you like to have as a partner?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Choose the Pokémon you want\n"
+ "{CENTER_ALIGN}as your partner from this group.");
+const char * const gPartnerPromptPtr = gPartnerPrompt;
+
+const char gPartnerNickPrompt[] = _("{CENTER_ALIGN}What is your partner~27s nickname?");
+const char * const gPartnerNickPromptPtr = gPartnerNickPrompt;
+
+ALIGNED(4) const char gEndIntroText[] = _(
+ "{CENTER_ALIGN}OK! We~27re all set!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Let~27s get you into the\n"
+ "{CENTER_ALIGN}world of Pokémon!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Go for it!");
const char * const gEndIntroTextPtr = gEndIntroText;
const char * const gPersonalityTypeDescriptionTable[NUM_PERSONALITIES] =
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index da8f44c..656d156 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -5,67 +5,20 @@
#include "constants/species.h"
#include "wonder_mail.h"
-struct unkStruct_203B2C4
-{
- // size: 0x564
- u8 unk0;
- u8 padding[3];
- u32 unk4; // wonder mail link status??
- u8 unk8[0x36]; // Probably a buffer for entry
- u8 unk3E;
- u32 unk40;
- u32 linkError; // another link status
- u8 filler48[0x218 - 0x48];
- s8 unk218;
- u32 unk21C;
- u8 filler220[0x30C - 0x220];
- u32 unk30C;
- u8 filler310[0x35C - 0x310];
- u32 unk35C;
- u8 filler360[0x3BC - 0x360];
- u32 unk3BC;
- u8 filler3C0[0x41C - 0x3C0];
- u32 unk41C;
- /* 0x420 */ struct OpenedFile *faceFile;
- /* 0x424 */ u8 *faceData;
- u16 unk428;
- u16 unk42A;
- u8 unk42C;
- u8 unk42D;
- u8 unk42E;
- u32 unk430;
- u8 padding3[0x534 - 0x434];
- s32 unk534;
- u32 unk538;
-};
-extern struct unkStruct_203B2C4 *gUnknown_203B2C4;
+extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
+extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
struct unkStruct_8095228
{
- u32 unk0;
- u8 unk4;
- u8 padding[0x10 - 0x5];
+ u8 unkArray[0x10];
u32 unk10;
u8 padding2[0x20 - 0x14];
- u32 unk20;
+ struct unkStruct_41C unk20;
u8 padding3[0x2C - 0x24];
s8 unk2C;
u8 padding4[0x30 - 0x2D];
- s8 unk30;
};
-// Used as a temp storage when receiveing A-OK Mail
-struct unkStruct_80293F4
-{
- u8 unkArray[0x10];
- u32 unk10;
- u8 padding[0x30 - 0x14];
-};
-
-
-
-extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
-
extern u32 sub_80144A4(s32 *r0);
extern void sub_8011C28(u32);
extern void sub_8095240(u8);
@@ -81,7 +34,10 @@ extern u8 sub_80A2824(u32);
#include "data/wonder_mail_1.h"
-extern u32 gUnknown_80DED44;
+const struct unkStruct_41C gUnknown_80DED44 =
+{
+ 1, 0, 0, 0
+};
extern u32 gUnknown_80DDA48;
@@ -94,6 +50,11 @@ extern const char gUnknown_80DF0A0[];
extern const char gUnknown_80DF0E0[];
extern const char gUnknown_80DF138[];
extern const char gUnknown_80DF194[];
+extern u32 gUnknown_80DEE44;
+extern const char gUnknown_80DF1C0[];
+extern const char gUnknown_80DF208[];
+extern const char gUnknown_80DF0A0[];
+extern u8 sub_809539C(u32, u32);
extern char gUnknown_202E5D8[0x50];
extern char gAvailablePokemonNames[0x50];
@@ -103,7 +64,6 @@ extern u32 sub_8095324(u32);
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
extern void nullsub_130(void);
extern void sub_8028348(void);
-extern void sub_800641C(void *r0, u8, u8);
extern void ResetUnusedInputStruct();
extern void sub_803084C();
extern u32 sub_8030768(u32);
@@ -196,8 +156,45 @@ extern void sub_801CBB8();
extern void sub_80155F0();
extern void sub_8031E10();
extern void sub_802F2C0();
+extern u16 gUnknown_80E5990[];
+extern s32 sub_8001658(u32, u32);
+extern u32 gUnknown_80E4A40[];
+extern u8 sub_8099B94();
+
+extern void sub_8099A5C(u32, u32, u32*);
+extern void sub_8099AFC(u32, u32, u32*);
+extern void sub_800641C(void *, u32, u32);
+extern void ResetUnusedInputStruct();
+extern void sub_8099690(u32);
+extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
+extern u32 sub_80144A4(s32 *r0);
+extern u32 sub_8031DCC(void);
+extern void sub_8031E00(void);
+extern void sub_8031E10(void);
+extern void sub_8030D40(u8, u32);
+extern u32 sub_8030768(u32);
+extern void sub_803084C(void);
+extern s8 sub_80307EC(void);
+extern void sub_8006518(u32 *);
+extern u8 sub_8012FD8(u32 *r0);
+extern void sub_8013114(u32 *, s32 *);
+extern void sub_8035CC0(u32 *, u32);
+extern void sub_8030810(u32);
+extern u32 sub_8030DA0();
+extern void sub_8030DE4();
+extern void sub_803092C();
+extern void sub_8035CF4(u32 *, u32, u32);
+extern u32 sub_801CA08(u32);
+extern void sub_801CBB8();
+extern void sub_801B3C0(struct unkStruct_41C *);
+extern u8 sub_801CB24();
+extern void sub_801B450();
+extern u32 sub_801B410();
+extern void sub_801CB5C(u32);
+extern void sub_801CCD8();
+extern void sub_8011C28(u32);
void sub_8028B04(u32 r0)
@@ -267,7 +264,7 @@ void sub_8028BF0(void)
return;
}
gUnknown_203B2C0->unk40 = 8;
- gUnknown_203B2C0->unk544 = 0xffff;
+ gUnknown_203B2C0->unk544 = -1;
switch(temp)
{
case 0:
@@ -606,7 +603,7 @@ void sub_8028FDC(void)
{
case 8:
return_var = sub_8095228(gUnknown_203B2C0->unk218);
- if(sub_80A2824(return_var->unk4) == 0)
+ if(sub_80A2824(return_var->unkArray[4]) == 0)
{
sub_8028B04(0x1C);
}
@@ -883,56 +880,54 @@ void sub_80293D8(void)
sub_8028B04(0x27);
}
-// TODO: pls someone fix this madness of a match - Sese
-// This is definitely a fake match with the casting and switch could probably be cleaned up too..
-//
+// TODO: pls look into this later - Sese
void sub_80293F4(void)
{
u32 return_var;
- struct unkStruct_80293F4 temp;
+ struct unkStruct_8095228 temp;
return_var = sub_80154F0();
- MemoryFill8((u8 *)temp.unkArray, 0, 0x30);
+ MemoryFill8((u8 *)&temp, 0, sizeof(struct unkStruct_8095228));
switch(return_var)
{
case 3:
- switch(sub_8039068(0x1C, (gUnknown_203B2C0->unk8), temp.unkArray) - 7)
+ switch(sub_8039068(0x1C, (gUnknown_203B2C0->unk8), temp.unkArray))
{
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
case 8:
case 9:
- break;
case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ break;
+ case 17:
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
- sub_8028B04(0x28);
+ sub_8028B04(40);
break;
- case 11:
+ case 18:
sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
sub_8028B04(7);
break;
- case 0:
+ case 7:
sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
sub_8028B04(7);
break;
- case 12:
- case 13:
- case 14:
+ case 19:
+ case 20:
+ case 21:
break;
- case 15:
+ case 22:
sub_8095274(temp.unk10);
temp.unkArray[0] = 2; // Some sort of Ack?
sub_80951BC(temp.unkArray);
sub_80141B4(gWonderMailAOKMailReceivedText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x101);
- sub_8028B04(0x23);
+ sub_8028B04(35);
break;
- case 16:
- case 17:
+ case 23:
+ case 24:
default:
break;
}
@@ -1113,7 +1108,7 @@ void sub_80297D4(void)
case 2:
sub_8023C60();
sub_8028B04(1);
- gUnknown_203B2C0->unk544 = 0xffff;
+ gUnknown_203B2C0->unk544 = -1;
break;
case 3:
gUnknown_203B2C0->unk544 = sub_8023B44();
@@ -1349,8 +1344,8 @@ u32 sub_8029B50(void)
ResetUnusedInputStruct();
sub_800641C(0,1,1);
- gUnknown_203B2C4 = MemoryAlloc(0x564, 8);
- MemoryFill8((u8 *)gUnknown_203B2C4, 0, 0x564);
+ gUnknown_203B2C4 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C4), 8);
+ MemoryFill8((u8 *)gUnknown_203B2C4, 0, sizeof(struct WonderMailStruct_203B2C4));
sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
@@ -1588,3 +1583,442 @@ void PrintWonderMailLinkError(u32 param_1)
return;
}
}
+
+void sub_8029F98(void)
+{
+ s32 auStack20;
+
+ if (sub_80144A4(&auStack20) != 0) {
+ return;
+ }
+ MemoryFill8((u8 *)&gUnknown_203B2C4->unk41C, 0, 4);
+ gUnknown_203B2C4->unk41C.unk41E = 0;
+ gUnknown_203B2C4->unk41C.unk41D = 1;
+ gUnknown_203B2C4->unk41C.unk41C = 0;
+ if (gUnknown_203B2C4->linkError == 0) {
+ switch(gUnknown_203B2C4->unk40)
+ {
+ case 6:
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 5:
+ case 6:
+ // "Thank-You Mail has been sent"
+ sub_80141B4(gUnknown_80DF194, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
+ break;
+ case 4:
+ default:
+ break;
+ }
+ sub_802B2BC(0xD);
+ break;
+ case 7:
+ sub_802B2BC(0x21);
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ PrintWonderMailLinkError(gUnknown_203B2C4->linkError);
+ sub_802B2BC(0x1F);
+ }
+}
+
+void sub_802A050(void)
+{
+ switch(sub_8031DCC())
+ {
+
+ case 3:
+ case 2:
+ sub_8031E10();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
+ sub_802B2BC(0x1B);
+ break;
+ case 1:
+ sub_8031E00();
+ break;
+ default:
+ return;
+ }
+}
+
+void sub_802A090(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 7:
+ sub_802B2BC(6);
+ break;
+ case 8:
+ case 0:
+ sub_802B2BC(1);
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+void sub_802A0C8(void)
+{
+ switch(sub_8030768(1))
+ {
+ case 2:
+ sub_803084C();
+ sub_802B2BC(1);
+ break;
+ case 3:
+ gUnknown_203B2C4->unk218 = sub_80307EC();
+ sub_802B2BC(0x11);
+ break;
+ case 4:
+ gUnknown_203B2C4->unk4 = 0x10;
+ gUnknown_203B2C4->unk218 = sub_80307EC();
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_8030D40(gUnknown_203B2C4->unk218,0);
+ sub_802B2BC(0x12);
+ break;
+ }
+}
+
+void sub_802A158(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x10);
+ }
+}
+
+void sub_802A174(void)
+{
+ s32 temp;
+
+ temp = -1;
+ sub_8030768(0);
+ if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
+ sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
+ }
+
+ switch(temp)
+ {
+ case 0xB:
+ sub_803084C();
+ sub_802B2BC(0xe);
+ break;
+ case 0xC:
+ gUnknown_203B2C4->unk4 = 0x2b;
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_8030D40(gUnknown_203B2C4->unk218,0);
+ sub_802B2BC(0x12);
+ break;
+ case 0:
+ case 0xD:
+ sub_8035CC0(&gUnknown_203B2C4->unk35C,2);
+ sub_8030810(1);
+ sub_802B2BC(0x10);
+ default:
+ break;
+ }
+}
+
+void sub_802A230(void)
+{
+ switch(sub_8030DA0())
+ {
+ case 2:
+ case 3:
+ sub_8030DE4();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
+ sub_803092C();
+ if (gUnknown_203B2C4->unk4 == 0x2b) {
+ sub_8035CF4(&gUnknown_203B2C4->unk21C, 3, 1);
+ sub_802B2BC(0x11);
+ }
+ else {
+ sub_802B2BC(gUnknown_203B2C4->unk4);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_802A28C(void)
+{
+
+ gUnknown_203B2C4->unk41C.unk41E = 0;
+ gUnknown_203B2C4->unk41C.unk41D = 1;
+ gUnknown_203B2C4->unk41C.unk41C = 0;
+
+ switch(sub_801CA08(1))
+ {
+ case 2:
+ sub_801CBB8();
+ sub_802B2BC(1);
+ break;
+ case 3:
+ gUnknown_203B2C4->unk41C.unk41E = sub_801CB24();
+ sub_802B2BC(0x14);
+ break;
+ case 4:
+ gUnknown_203B2C4->unk4 = 0x13;
+ gUnknown_203B2C4->unk41C.unk41E = sub_801CB24();
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_801B3C0(&gUnknown_203B2C4->unk41C);
+ sub_802B2BC(0x15);
+ break;
+ }
+}
+
+void sub_802A33C(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC,1,1);
+ sub_801CB5C(1);
+ if (gUnknown_203B2C4->unk4 == 0x2b) {
+ sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
+ sub_802B2BC(0x14);
+ }
+ else {
+ sub_802B2BC(gUnknown_203B2C4->unk4);
+ }
+ break;
+ case 1:
+ default:
+ break;
+ }
+}
+
+void sub_802A39C(void)
+{
+ s32 temp;
+
+ temp = -1;
+ sub_801CA08(0);
+ if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
+ sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
+ }
+
+ switch(temp)
+ {
+ case 0xB:
+ sub_801CBB8();
+ sub_802B2BC(0xC);
+ break;
+ case 0xC:
+ gUnknown_203B2C4->unk4 = 0x2b;
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_801B3C0(&gUnknown_203B2C4->unk41C);
+ sub_802B2BC(0x15);
+ break;
+ case 0:
+ case 0xD:
+ sub_8035CC0(&gUnknown_203B2C4->unk35C, 3);
+ sub_801CCD8();
+ sub_802B2BC(0x13);
+ default:
+ break;
+ }
+}
+
+void sub_802A458(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0xD);
+ }
+}
+
+void sub_802A474(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x3);
+ }
+}
+
+void sub_802A490(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x3);
+ }
+}
+
+void sub_802A4AC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x18);
+ sub_8011C28(1);
+ sub_8012574(0);
+ }
+}
+
+void sub_802A4D4(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x1A);
+ }
+}
+
+void sub_802A4F0(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x27);
+ }
+}
+
+void sub_802A50C(void)
+{
+ u8 uVar1;
+ struct unkStruct_8095228 *puVar5;
+ u32 return_var;
+ struct unkStruct_8095228 temp;
+
+ return_var = sub_80154F0();
+ MemoryFill8((u8 *)&temp, 0, sizeof(struct unkStruct_8095228));
+ switch(return_var)
+ {
+ case 3:
+ switch(sub_8039068(0x20,gUnknown_203B2C4->unk8,temp.unkArray))
+ {
+ case 7:
+ case 8:
+ case 9:
+ case 0xA:
+ case 0xD:
+ case 0xE:
+ case 0xF:
+ case 0x10:
+ break;
+ case 0x11:
+ // Wrong password
+ sub_8014248(gUnknown_80DF1C0,0,7,&gUnknown_80DEE44,0,4,0,(u32 *)&gUnknown_203B2C4->faceFile,0xc);
+ sub_802B2BC(0x28);
+ break;
+ case 0x14:
+ // Incorrect password
+ sub_80141B4(gUnknown_80DF208,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
+ sub_802B2BC(0x1f);
+ break;
+ case 0xB:
+ // Not eligible to receive
+ sub_80141B4(gUnknown_80DF0A0,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
+ sub_802B2BC(0x1f);
+ break;
+ case 0x18:
+ // I think this is when password works successfully
+ uVar1 = sub_809539C(4,temp.unk10);
+ puVar5 = sub_8095228(uVar1);
+ *puVar5 = temp;
+ puVar5->unkArray[0] = 6;
+ gUnknown_203B2C4->unk430 = temp.unk10;
+ sub_802B2BC(0x21);
+ break;
+ default:
+ break;
+ }
+ sub_80155F0();
+ break;
+ case 2:
+ sub_80155F0();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
+ sub_802B2BC(1);
+ break;
+ }
+}
+
+void sub_802A68C(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ if (sub_8012600() == 0) {
+ sub_8012750();
+ sub_802B2BC(0xd);
+ }
+ }
+}
+
+void sub_802A6B4(void)
+{
+ int iVar2;
+ u32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ if (sub_8012600() == 0) {
+ iVar2 = sub_8012744();
+ sub_8012750();
+ if (iVar2 == 0) {
+ sub_802B2BC(0x20);
+ }
+ else {
+ sub_802B2BC(3);
+ }
+ }
+ }
+}
+
+void sub_802A6F0(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x18);
+ sub_8011C28(1);
+ sub_8012574(0);
+ }
+}
+
+void sub_802A718(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x25);
+ sub_8011C28(1);
+ sub_8012574(0);
+ }
+}
+
+void sub_802A740(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x1e);
+ }
+}
diff --git a/src/wonder_mail_main_menu_pre.c b/src/wonder_mail_main_menu_pre.c
index c1c5157..288d352 100644
--- a/src/wonder_mail_main_menu_pre.c
+++ b/src/wonder_mail_main_menu_pre.c
@@ -1,6 +1,11 @@
#include "global.h"
#include "save.h"
+#define EXIT_TO_MAIN_MENU 5
+#define PASSWORD_SUCCESS 13
+#define PASSWORD_INVALID 19
+#define PASSWORD_ENTRY_SCREEN 18
+
struct unkWonderMailData
{
u8 unk0[20];
@@ -10,7 +15,7 @@ struct unkStruct_203B3E8
{
// size: 0x49C
u8 unk0; // state variable?
- u8 unk1[0x36]; // Wonder Mail Buffer...
+ u8 PasswordEntryBuffer[0x36]; // Wonder Mail Buffer...
struct unkWonderMailData unk38; // 0x30 - 0x14
u8 unk38_1[0x30 - 20]; // TODO: split for the ldm/stm stuff (fix dumb hack)
u8 fill68[0x1EC - 0x68];
@@ -94,7 +99,7 @@ bool8 CreateWonderMailMenu(void)
MemoryFill8((u8 *)gUnknown_203B3E8, 0, sizeof(struct unkStruct_203B3E8));
for(iVar2 = 0; iVar2 < 0x36; iVar2++){
- gUnknown_203B3E8->unk1[iVar2] = 0;
+ gUnknown_203B3E8->PasswordEntryBuffer[iVar2] = 0;
}
gUnknown_203B3E8->unk490 = 3;
@@ -111,14 +116,14 @@ u8 UpdateWonderMailMenu(void)
case 4:
sub_8039A18();
break;
- case 5: // When you exit out of the menu
+ case EXIT_TO_MAIN_MENU: // When you exit out of the menu
return 3;
case 8:
sub_8039AA8();
break;
- case 11: // "Please enter the Wonder Mail Password" Screen
+ case 11:
break;
- case 12: // Password Entry
+ case 12:
sub_8039B14();
break;
case 6:
@@ -130,28 +135,28 @@ u8 UpdateWonderMailMenu(void)
case 7:
sub_8039D88();
break;
- case 13:
+ case PASSWORD_SUCCESS:
sub_8039D28();
break;
case 14:
sub_8039D68();
break;
- case 15:
+ case 15: // Saving adventure
sub_8039DA4();
break;
- case 16:
+ case 16: // Display "Recieved Wonder Mail was added" and go back to main menu
sub_8039DCC();
break;
case 10:
sub_8039B3C();
break;
- case 17:
+ case 17: // "Please enter the Wonder Mail Password" Screen
sub_8039D0C();
break;
- case 18:
+ case PASSWORD_ENTRY_SCREEN: // Password Entry
sub_8039C60();
break;
- case 19:
+ case PASSWORD_INVALID:
sub_8039DE8();
}
return 0;
@@ -189,7 +194,7 @@ void sub_8039A18(void)
break;
case 0:
case 8:
- sub_803A1C0(5);
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
break;
}
}
@@ -255,7 +260,7 @@ void sub_8039B58(void)
sub_803A1C0(7);
break;
case 10:
- sub_803A1C0(13);
+ sub_803A1C0(PASSWORD_SUCCESS);
break;
}
}
@@ -306,7 +311,7 @@ void sub_8039BAC(u32 arg)
case 10:
case 11:
case 12:
- case 13:
+ case PASSWORD_SUCCESS:
default:
// "Communication Error"
sub_80141B4(&gUnknown_80E7914, 0, 0, 0x101);
@@ -326,23 +331,25 @@ void sub_8039C60(void)
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(&gUnknown_203B3E8->unk1EC,1,1);
- if ( !sub_803D358(gUnknown_203B3E8->unk1,&gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) )
+ if ( !sub_803D358(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) )
{
- sub_803A1C0(19);
+ // Invalid password
+ sub_803A1C0(PASSWORD_INVALID);
}
else {
- // Copying some data but don't know what or structure
+ // Successful password
+ // Copy the decoded data to another buffer?
gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->unk38;
gUnknown_203B3E8->unk498 = 1;
- sub_803A1C0(13);
+ sub_803A1C0(PASSWORD_SUCCESS);
}
break;
case 2:
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(&gUnknown_203B3E8->unk1EC,1,1);
- sub_803A1C0(5);
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
break;
}
}
@@ -352,7 +359,7 @@ void sub_8039D0C(void)
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(0x12);
+ sub_803A1C0(PASSWORD_ENTRY_SCREEN);
}
}
@@ -407,22 +414,24 @@ void sub_8039DCC(void)
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(5);
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
}
}
void sub_8039DE8(void)
{
int iVar2;
+
+ // Prompt to re-enter password
if(sub_80144A4(&iVar2) == 0)
{
switch(iVar2)
{
- case 6:
+ case 6: // Yes
sub_803A1C0(0x11);
break;
- case 0:
- sub_803A1C0(5);
+ case 0: // No
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
break;
}
}
diff --git a/src/wonder_mail_mid.c b/src/wonder_mail_mid.c
deleted file mode 100644
index 62755b1..0000000
--- a/src/wonder_mail_mid.c
+++ /dev/null
@@ -1,400 +0,0 @@
-#include "global.h"
-#include "file_system.h"
-
-struct unkStruct_203B2C4
-{
- // size: 0x564
- u8 unk0;
- u8 padding[3];
- u32 unk4; // wonder mail link status??
- u8 unk8[0x36];
- u8 unk3E;
- u32 unk40;
- u32 linkError; // another link status
- u8 filler48[0x218 - 0x48];
- s8 unk218;
- u32 unk21C;
- u8 filler220[0x30C - 0x220];
- u32 unk30C;
- u8 filler310[0x35C - 0x310];
- u32 unk35C;
- u8 filler360[0x3BC - 0x360];
- u32 unk3BC;
- u8 filler3C0[0x41C - 0x3C0];
- u8 unk41C[4]; // TODO: unify this with wonder_mail.c
- struct OpenedFile *faceFile;
- u8 *faceData;
- u16 unk428;
- u16 unk42A;
- u8 unk42C;
- u8 unk42D;
- u8 unk42E;
- u32 unk430;
- u8 filler434[0x534 - 0x434];
- s32 unk534;
- u32 unk538;
-};
-extern struct unkStruct_203B2C4 *gUnknown_203B2C4;
-
-
-extern u16 gUnknown_80E5990[];
-extern s32 sub_8001658(u32, u32);
-extern u32 gUnknown_80E4A40[];
-extern u8 sub_8099B94();
-
-extern void sub_8099A5C(u32, u32, u32*);
-extern void sub_8099AFC(u32, u32, u32*);
-extern void sub_800641C(void *, u32, u32);
-extern void ResetUnusedInputStruct();
-extern void sub_8099690(u32);
-extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32);
-
-
-extern void MemoryFill8(u8 *dest, u8 value, s32 size);
-extern u32 gUnknown_80DF194;
-extern void PrintWonderMailLinkError(u32 param_1);
-
-extern void sub_802B2BC(u32);
-extern u32 sub_80144A4(s32 *r0);
-extern u32 sub_8031DCC(void);
-extern void sub_8031E00(void);
-extern void sub_8031E10(void);
-extern void sub_8030D40(u8, u32);
-extern u32 sub_8030768(u32);
-extern void sub_803084C(void);
-extern s8 sub_80307EC(void);
-extern void sub_8006518(u32 *);
-extern u8 sub_8012FD8(u32 *r0);
-extern void sub_8013114(u32 *, s32 *);
-extern void sub_8035CC0(u32 *, u32);
-extern void sub_8030810(u32);
-extern u32 sub_8030DA0();
-extern void sub_8030DE4();
-extern void sub_803092C();
-extern void sub_8035CF4(u32 *, u32, u32);
-extern u32 sub_801CA08(u32);
-extern void sub_801CBB8();
-extern void sub_801B3C0(u8 *);
-extern u8 sub_801CB24();
-extern void sub_801B450();
-extern u32 sub_801B410();
-extern void sub_801CB5C(u32);
-extern void sub_801CCD8();
-extern void sub_8011C28(u32);
-extern void sub_8012574(u32);
-
-void sub_8029F98(void)
-{
- s32 auStack20;
-
- if (sub_80144A4(&auStack20) != 0) {
- return;
- }
- MemoryFill8(gUnknown_203B2C4->unk41C, 0, 4);
- gUnknown_203B2C4->unk41C[2] = 0;
- gUnknown_203B2C4->unk41C[1] = 1;
- gUnknown_203B2C4->unk41C[0] = 0;
- if (gUnknown_203B2C4->linkError == 0) {
- switch(gUnknown_203B2C4->unk40)
- {
- case 6:
- switch(gUnknown_203B2C4->unk534)
- {
- case 3:
- case 5:
- case 6:
- // "Thank-You Mail has been sent"
- sub_80141B4(&gUnknown_80DF194, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
- break;
- case 4:
- default:
- break;
- }
- sub_802B2BC(0xD);
- break;
- case 7:
- sub_802B2BC(0x21);
- break;
- default:
- break;
- }
- }
- else
- {
- PrintWonderMailLinkError(gUnknown_203B2C4->linkError);
- sub_802B2BC(0x1F);
- }
-}
-
-void sub_802A050(void)
-{
- switch(sub_8031DCC())
- {
-
- case 3:
- case 2:
- sub_8031E10();
- ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
- sub_802B2BC(0x1B);
- break;
- case 1:
- sub_8031E00();
- break;
- default:
- return;
- }
-}
-
-void sub_802A090(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- switch(temp)
- {
- case 7:
- sub_802B2BC(6);
- break;
- case 8:
- case 0:
- sub_802B2BC(1);
- break;
- default:
- break;
- }
- }
-}
-
-void sub_802A0C8(void)
-{
- switch(sub_8030768(1))
- {
- case 2:
- sub_803084C();
- sub_802B2BC(1);
- break;
- case 3:
- gUnknown_203B2C4->unk218 = sub_80307EC();
- sub_802B2BC(0x11);
- break;
- case 4:
- gUnknown_203B2C4->unk4 = 0x10;
- gUnknown_203B2C4->unk218 = sub_80307EC();
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_8030D40(gUnknown_203B2C4->unk218,0);
- sub_802B2BC(0x12);
- break;
- }
-}
-
-void sub_802A158(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x10);
- }
-}
-
-void sub_802A174(void)
-{
- s32 temp;
-
- temp = -1;
- sub_8030768(0);
- if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
- sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
- }
-
- switch(temp)
- {
- case 0xB:
- sub_803084C();
- sub_802B2BC(0xe);
- break;
- case 0xC:
- gUnknown_203B2C4->unk4 = 0x2b;
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_8030D40(gUnknown_203B2C4->unk218,0);
- sub_802B2BC(0x12);
- break;
- case 0:
- case 0xD:
- sub_8035CC0(&gUnknown_203B2C4->unk35C,2);
- sub_8030810(1);
- sub_802B2BC(0x10);
- default:
- break;
- }
-}
-
-void sub_802A230(void)
-{
- switch(sub_8030DA0())
- {
- case 2:
- case 3:
- sub_8030DE4();
- ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
- sub_803092C();
- if (gUnknown_203B2C4->unk4 == 0x2b) {
- sub_8035CF4(&gUnknown_203B2C4->unk21C, 3, 1);
- sub_802B2BC(0x11);
- }
- else {
- sub_802B2BC(gUnknown_203B2C4->unk4);
- }
- break;
- default:
- break;
- }
-}
-
-void sub_802A28C(void)
-{
-
- gUnknown_203B2C4->unk41C[2] = 0;
- gUnknown_203B2C4->unk41C[1] = 1;
- gUnknown_203B2C4->unk41C[0] = 0;
-
- switch(sub_801CA08(1))
- {
- case 2:
- sub_801CBB8();
- sub_802B2BC(1);
- break;
- case 3:
- gUnknown_203B2C4->unk41C[2] = sub_801CB24();
- sub_802B2BC(0x14);
- break;
- case 4:
- gUnknown_203B2C4->unk4 = 0x13;
- gUnknown_203B2C4->unk41C[2] = sub_801CB24();
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_801B3C0(gUnknown_203B2C4->unk41C);
- sub_802B2BC(0x15);
- break;
- }
-}
-
-void sub_802A33C(void)
-{
- switch(sub_801B410())
- {
- case 2:
- case 3:
- sub_801B450();
- ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B2C4->unk3BC,1,1);
- sub_801CB5C(1);
- if (gUnknown_203B2C4->unk4 == 0x2b) {
- sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
- sub_802B2BC(0x14);
- }
- else {
- sub_802B2BC(gUnknown_203B2C4->unk4);
- }
- break;
- case 1:
- default:
- break;
- }
-}
-
-void sub_802A39C(void)
-{
- s32 temp;
-
- temp = -1;
- sub_801CA08(0);
- if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
- sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
- }
-
- switch(temp)
- {
- case 0xB:
- sub_801CBB8();
- sub_802B2BC(0xC);
- break;
- case 0xC:
- gUnknown_203B2C4->unk4 = 0x2b;
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_801B3C0(gUnknown_203B2C4->unk41C);
- sub_802B2BC(0x15);
- break;
- case 0:
- case 0xD:
- sub_8035CC0(&gUnknown_203B2C4->unk35C, 3);
- sub_801CCD8();
- sub_802B2BC(0x13);
- default:
- break;
- }
-}
-
-void sub_802A458(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0xD);
- }
-}
-
-void sub_802A474(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x3);
- }
-}
-
-void sub_802A490(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x3);
- }
-}
-
-void sub_802A4AC(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x18);
- sub_8011C28(1);
- sub_8012574(0);
- }
-}
-
-void sub_802A4D4(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x1A);
- }
-}
-
-void sub_802A4F0(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x27);
- }
-}
diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c
index 94ab51f..e6c2ecb 100644
--- a/src/wonder_mail_pre.c
+++ b/src/wonder_mail_pre.c
@@ -92,7 +92,7 @@ u32 sub_8027F88(void)
gUnknown_203B2C0->unk42E = 0;
gUnknown_203B2C0->unk428 = 2;
gUnknown_203B2C0->unk42A = 8;
- for(counter = 0; counter < 0x36; counter++){
+ for(counter = 0; counter < 0x36; counter++){
gUnknown_203B2C0->unk8[counter] = 0;
}
gUnknown_203B2C0->unk0 = 0x3D;