msg letter command

This commit is contained in:
DizzyEggg 2025-06-18 21:55:17 +02:00
parent f00a53746b
commit 40d995ffba
4 changed files with 39 additions and 38 deletions

View File

@ -48,6 +48,7 @@
#define TEXTBOX_CLEAR2 { 0x31, 0, 0, 0, 0, NULL } // Used rarely, I don't think there's a functional difference between 0x30 and 0x31.
#define MSG_INSTANT(msg) { 0x32, 0, -1, 0, 0, msg }
#define MSG_NPC(id, msg) { 0x34, 0, id, 0, 0, msg } // ID is portrait id of the npc. -1 means no portrait
#define MSG_LETTER(msg) { 0x35, 0, -1, 0, 0, msg }
// 3a: yes/no choice (only used for saving)
// 3b: uber command (conditional jump)
// 3c: unknown textbox-related cjump

View File

@ -533,14 +533,14 @@ static const struct ScriptCommand s_gs9_g0_s0_obj0_dlg2[] = { /* 0x819c378 */
LABEL(1), /* = 0x01 */
{ 0x3b, 0x08, 0x0000, 0x00000000, 0x00000000, NULL },
COND_EQUAL(0, /* to label */ 2),
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}<Pokémon News>\n{CENTER_ALIGN}= Extra! =") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}Buried Relic Discovered!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}Mystery ruin\n{CENTER_ALIGN}found underground!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}Its site had been hidden by the crater\n{CENTER_ALIGN}of a meteor strike in ancient times.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}The Buried Relic is thought to date\n{CENTER_ALIGN}back beyond recorded history.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}There are rumors of treasures...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}And perhaps even Pokémon\n{CENTER_ALIGN}that lived in ancient times.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}The Buried Relic is the main\n{CENTER_ALIGN}topic in Pokémon Square.") },
MSG_LETTER(_("{CENTER_ALIGN}<Pokémon News>\n{CENTER_ALIGN}= Extra! =")),
MSG_LETTER(_("{CENTER_ALIGN}Buried Relic Discovered!")),
MSG_LETTER(_("{CENTER_ALIGN}Mystery ruin\n{CENTER_ALIGN}found underground!")),
MSG_LETTER(_("{CENTER_ALIGN}Its site had been hidden by the crater\n{CENTER_ALIGN}of a meteor strike in ancient times.")),
MSG_LETTER(_("{CENTER_ALIGN}The Buried Relic is thought to date\n{CENTER_ALIGN}back beyond recorded history.")),
MSG_LETTER(_("{CENTER_ALIGN}There are rumors of treasures...")),
MSG_LETTER(_("{CENTER_ALIGN}And perhaps even Pokémon\n{CENTER_ALIGN}that lived in ancient times.")),
MSG_LETTER(_("{CENTER_ALIGN}The Buried Relic is the main\n{CENTER_ALIGN}topic in Pokémon Square.")),
TEXTBOX_CLEAR,
SCENARIO_CALC(SCENARIO_SUB7, 49, 2),
JUMP_SCRIPT(END_TALK),
@ -2305,13 +2305,13 @@ static const struct ScriptCommand s_gs9_g20_s0_lives0_dlg0[] = { /* 0x81a48c8 */
MSG_INSTANT(_("{CENTER_ALIGN}{NAME_0} read the letter.")),
TEXTBOX_CLEAR,
WAIT(30),
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("“BZZ BZZ BZZ!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" I HEARD ABOUT YOU FROM CATERPIE.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" PLEASE. WE NEED YOUR HELP.\n MAGNEMITE IS IN TROUBLE.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" A STRANGE ELECTROMAGNETIC WAVE\n FLOWED THROUGH A DUNGEON...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" AND IT STUCK TOGETHER MAGNEMITE\n AND MAGNEMITE...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" THAT ISN'T ENOUGH TO FORM\n A MAGNETON. IT'S NOT COMPLETE\n THE WAY IT IS NOW.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" PLEASE. WE NEED HELP. BZZ BZZ BZZ.\n\n FROM MAGNEMITE'S FRIEND”") },
MSG_LETTER(_("“BZZ BZZ BZZ!")),
MSG_LETTER(_(" I HEARD ABOUT YOU FROM CATERPIE.")),
MSG_LETTER(_(" PLEASE. WE NEED YOUR HELP.\n MAGNEMITE IS IN TROUBLE.")),
MSG_LETTER(_(" A STRANGE ELECTROMAGNETIC WAVE\n FLOWED THROUGH A DUNGEON...")),
MSG_LETTER(_(" AND IT STUCK TOGETHER MAGNEMITE\n AND MAGNEMITE...")),
MSG_LETTER(_(" THAT ISN'T ENOUGH TO FORM\n A MAGNETON. IT'S NOT COMPLETE\n THE WAY IT IS NOW.")),
MSG_LETTER(_(" PLEASE. WE NEED HELP. BZZ BZZ BZZ.\n\n FROM MAGNEMITE'S FRIEND”")),
TEXTBOX_CLEAR,
WAIT(30),
PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x00000000),
@ -7832,10 +7832,10 @@ static const struct ScriptCommand s_gs9_g53_s0_lives0_dlg0[] = { /* 0x81c02fc */
WAIT(30),
MSG_INSTANT(_("{CENTER_ALIGN}{NAME_0} began reading the letter.")),
TEXTBOX_CLEAR,
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("“Take care!\n It's farewell, but only for now.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" Until the day I can deliver mail\n to you again...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" I'll always be waiting.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _(" - The wandering postal carrier,\n Pelipper -”") },
MSG_LETTER(_("“Take care!\n It's farewell, but only for now.")),
MSG_LETTER(_(" Until the day I can deliver mail\n to you again...")),
MSG_LETTER(_(" I'll always be waiting.")),
MSG_LETTER(_(" - The wandering postal carrier,\n Pelipper -”")),
TEXTBOX_CLEAR,
PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x0000000b),
MSG_NPC(1, _(" Even Pelipper...")),

View File

@ -6027,12 +6027,12 @@ static const struct ScriptCommand s_gs1_g23_s0_lives0_dlg0[] = { /* 0x814dc14 */
{ 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL },
WAIT(30),
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}<Pokémon News>\n{CENTER_ALIGN}= EXTRA =") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN} \n{CENTER_ALIGN}{NAME_0} Innocent!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}{NAME_0} met with Ninetales under\n{CENTER_ALIGN}the watchful eye of Alakazam...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}...And proved that it had nothing to\n{CENTER_ALIGN}do with the human in the legend.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}As a result, Gengar's claims were\n{CENTER_ALIGN}found to be malicious lies.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("{CENTER_ALIGN}-End-") },
MSG_LETTER(_("{CENTER_ALIGN}<Pokémon News>\n{CENTER_ALIGN}= EXTRA =")),
MSG_LETTER(_("{CENTER_ALIGN} \n{CENTER_ALIGN}{NAME_0} Innocent!")),
MSG_LETTER(_("{CENTER_ALIGN}{NAME_0} met with Ninetales under\n{CENTER_ALIGN}the watchful eye of Alakazam...")),
MSG_LETTER(_("{CENTER_ALIGN}...And proved that it had nothing to\n{CENTER_ALIGN}do with the human in the legend.")),
MSG_LETTER(_("{CENTER_ALIGN}As a result, Gengar's claims were\n{CENTER_ALIGN}found to be malicious lies.")),
MSG_LETTER(_("{CENTER_ALIGN}-End-")),
TEXTBOX_CLEAR,
FANFARE_PLAY2(470),
{ 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL },
@ -13499,7 +13499,7 @@ static const struct ScriptCommand s_gs1_g46_s0_lives0_dlg0[] = { /* 0x816e9f8 */
MSG_NPC(3, _("...................................")),
MSG_NPC(4, _("....................................")),
MSG_NPC(5, _("....................................")),
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("...............................................................\n...............................................................\n...............................................................") },
MSG_LETTER(_("...............................................................\n...............................................................\n...............................................................")),
TEXTBOX_CLEAR,
WAIT(60),
MSG_NPC(2, _(" ...{WAIT_PRESS}Well, uh...{WAIT_PRESS}\nI know you want to become tougher, but...")),

View File

@ -994,12 +994,12 @@ static const struct ScriptCommand s_gs4_g5_s0_lives0_dlg0[] = { /* 0x818d758 */
MSG_INSTANT(_("{CENTER_ALIGN}{NAME_0} read the letter.")),
TEXTBOX_CLEAR,
WAIT(20),
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("“Please allow me to introduce myself.\nMy name is Smeargle.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("I once had aspirations of becoming\nan artist.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("Then, one day...{WAIT_PRESS}\nThere was an incident of an unforgivable\nnature...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("I fled because I didn't want to become an\nadult.{WAIT_PRESS}\nBut then I lost my way...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("I now find myself in this forest, unable to\nextricate myself...") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("I am lost in the {COLOR YELLOW_D}Howling Forest{RESET}!{WAIT_PRESS}\nSomebody!{WAIT_PRESS} Please save me!”") },
MSG_LETTER(_("“Please allow me to introduce myself.\nMy name is Smeargle.")),
MSG_LETTER(_("I once had aspirations of becoming\nan artist.")),
MSG_LETTER(_("Then, one day...{WAIT_PRESS}\nThere was an incident of an unforgivable\nnature...")),
MSG_LETTER(_("I fled because I didn't want to become an\nadult.{WAIT_PRESS}\nBut then I lost my way...")),
MSG_LETTER(_("I now find myself in this forest, unable to\nextricate myself...")),
MSG_LETTER(_("I am lost in the {COLOR YELLOW_D}Howling Forest{RESET}!{WAIT_PRESS}\nSomebody!{WAIT_PRESS} Please save me!”")),
TEXTBOX_CLEAR,
WAIT(20),
{ 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
@ -1133,12 +1133,12 @@ static const struct ScriptCommand s_gs4_g7_s0_lives0_dlg0[] = { /* 0x818e464 */
MSG_INSTANT(_("{CENTER_ALIGN}{NAME_0} read the SOS Mail\n{CENTER_ALIGN}apparently sent by Medicham.")),
TEXTBOX_CLEAR,
WAIT(20),
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("“My name is Medicham.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("We had no trouble entering this dungeon...{WAIT_PRESS}\nBut it's horrible here!\nIt is much too difficult!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("Ekans, he was defeated right away.\nIt makes me want to scream!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("Somebody!{WAIT_PRESS}\nPlease help me!") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("The place is the {COLOR YELLOW_D}Wish Cave{RESET}.") },
{ 0x35, 0x00, -0x0001, 0x00000000, 0x00000000, _("The reward is a secret〜♪{WAIT_PRESS}\nBut it's really very nice--you can be\nsure of that〜♪”") },
MSG_LETTER(_("“My name is Medicham.")),
MSG_LETTER(_("We had no trouble entering this dungeon...{WAIT_PRESS}\nBut it's horrible here!\nIt is much too difficult!")),
MSG_LETTER(_("Ekans, he was defeated right away.\nIt makes me want to scream!")),
MSG_LETTER(_("Somebody!{WAIT_PRESS}\nPlease help me!")),
MSG_LETTER(_("The place is the {COLOR YELLOW_D}Wish Cave{RESET}.")),
MSG_LETTER(_("The reward is a secret〜♪{WAIT_PRESS}\nBut it's really very nice--you can be\nsure of that〜♪”")),
TEXTBOX_CLEAR,
WAIT(30),
MSG_INSTANT(_("{CENTER_ALIGN}The place in which Medicham\n{CENTER_ALIGN}is thought to have gone missing...")),