diff --git a/include/data_script.h b/include/data_script.h index ffff1f4a5..c8230d44e 100644 --- a/include/data_script.h +++ b/include/data_script.h @@ -41,6 +41,8 @@ // Note for the spriteId: first 4 bits(0xF) are the actual spriteId, but sometimes a 0x40 flag is attached to it, but it has no practical use. Could be different in Blue? #define PORTRAIT(place, id, sprite) { 0x2e, place, id, sprite, 0, NULL } // Sets up portrait data for the specified speaker #define PORTRAIT_REP(id, sprite) { 0x2e, PLACEMENT_COUNT, id, sprite, 0, NULL } // Same as the above, but it assumes the last used placement for the speaker. Useful in long scripts, where you don't need to remember all the placements. + +#define PORTRAIT_POS(id, x, y) { 0x2f, 0, id, x, y, NULL } // Sets portrait delta position, which modifies the portrait's position on the screen. // 30..39: various text printing #define MSG_NPC(id, msg) { 0x34, 0, id, 0, 0, msg } // ID is portrait id of the npc. -1 means no portrait // 3a: yes/no choice (only used for saving) diff --git a/include/textbox.h b/include/textbox.h index 2d7769b8a..0bbb9bb24 100644 --- a/include/textbox.h +++ b/include/textbox.h @@ -1,6 +1,8 @@ #ifndef GUARD_TEXTBOX_H #define GUARD_TEXTBOX_H +#include "structs/str_position.h" + enum { SCRIPT_TEXT_TYPE_INSTANT, // 0x32 Used for narration and signposts @@ -19,6 +21,7 @@ bool8 ScriptClearTextbox(void); bool8 ScriptClearTextbox2(void); void ResetTextboxPortrait(s16 id_); bool8 ScriptSetPortraitInfo(s32 portraitId_, s32 spriteId_, s32 placementId_); +bool8 ScriptSetPortraitPosDelta(s32 portraitId_, PixelPos *newPosDelta); bool8 ScriptPrintText(s32 scriptMsgType, s32 speakerId_, const char *text); #endif // GUARD_WONDER_MAIL_H diff --git a/src/data/ground/ground_data_a03p03_station.h b/src/data/ground/ground_data_a03p03_station.h index aaeb1447c..1f113a60b 100644 --- a/src/data/ground/ground_data_a03p03_station.h +++ b/src/data/ground/ground_data_a03p03_station.h @@ -47,7 +47,7 @@ static const struct ScriptCommand s_gs170_g1_s0_lives0_dlg0[] = { /* 0x821d2f8 * { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT_FLIP, 0x0001, 0x00000002), - { 0x2f, 0x00, 0x0001, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(1, 0, 2), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" Brr... It's too cold!{WAIT_PRESS}\nThere's only snow around us now.")), VARIANT(/* == */ 1, _(" The scenery hasn't changed\nat all for a while now...")), @@ -86,7 +86,7 @@ static const struct ScriptCommand s_gs170_g1_s0_lives0_dlg0[] = { /* 0x821d2f8 * { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, { 0x91, 0x04, 0x0001, 0x00000001, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x00000000), - { 0x2f, 0x00, 0x0001, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(1, 0, 2), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" ............{WAIT_PRESS}\nYeah, you're right.")), VARIANT(/* == */ 1, _(" We came out here.\nThere's no point wondering about it.")), @@ -120,7 +120,7 @@ static const struct ScriptCommand s_gs170_g1_s0_lives0_dlg0[] = { /* 0x821d2f8 * { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, { 0x91, 0x04, 0x0001, 0x00000001, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x00000000), - { 0x2f, 0x00, 0x0001, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(1, 0, 2), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" .........{WAIT_PRESS}Sorry.{WAIT_PRESS}\nI shouldn't have said that.\nIt doesn't help scaring you like that.")), VARIANT(/* == */ 1, _(" We came out here.\nThere's no point wondering about it.")), @@ -186,7 +186,7 @@ static const struct ScriptCommand s_gs170_g1_s0_lives0_dlg0[] = { /* 0x821d2f8 * { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT_REP(0x0001, 0x00000000), - { 0x2f, 0x00, 0x0001, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(1, 0, 2), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" Huh?{WAIT_PRESS} What's the matter?\n{NAME_0}?")), VARIANT_DEFAULT(_(" Huh?{WAIT_PRESS} Is something wrong?\n{NAME_0}?")), @@ -298,7 +298,7 @@ static const struct ScriptCommand s_gs170_g2_s0_lives0_dlg0[] = { /* 0x821ee64 * { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x00000004), - { 0x2f, 0x00, 0x0001, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(1, 0, 2), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" Hey, {NAME_0}.\nWhat's up with you?")), VARIANT(/* == */ 1, _(" Talking to yourself like\nthat...")), diff --git a/src/data/ground/ground_data_a04p01_station.h b/src/data/ground/ground_data_a04p01_station.h index b4e45e049..10146664e 100644 --- a/src/data/ground/ground_data_a04p01_station.h +++ b/src/data/ground/ground_data_a04p01_station.h @@ -145,7 +145,7 @@ static const struct ScriptCommand s_gs171_g3_s0_lives0_dlg0[] = { /* 0x82200b0 * { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(2, 0, 2), MSG_NPC(2, _(" Ah, good of you to come.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -418,7 +418,7 @@ static const struct ScriptCommand s_gs171_g4_s0_lives0_dlg0[] = { /* 0x82213fc * { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000000, 0x00000002, NULL }, + PORTRAIT_POS(2, 0, 2), MSG_NPC(2, _(" We're counting on you!\n{NAME_1}! {NAME_0}!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(30), @@ -644,7 +644,7 @@ static const struct ScriptCommand s_gs171_g5_s0_lives0_dlg0[] = { /* 0x8221f00 * { 0xe4, 0x00, 0x0009, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0004, 0x00000042), - { 0x2f, 0x00, 0x0004, -0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(4, -3, 0), MSG_NPC(4, _(" Awesome, you're alive!{WAIT_PRESS}\nYou really had all of us worried!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -1096,7 +1096,7 @@ static const struct ScriptCommand s_gs171_g6_s0_lives0_dlg0[] = { /* 0x8223d40 * { 0xe4, 0x00, 0x000c, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0007, 0x00000000), - { 0x2f, 0x00, 0x0007, 0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(7, 3, 0), MSG_NPC(7, _(" Yippee!\nThis is the greatest!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -1116,7 +1116,7 @@ static const struct ScriptCommand s_gs171_g6_s0_lives0_dlg0[] = { /* 0x8223d40 * { 0xe4, 0x00, 0x0009, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, -0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(4, -3, 0), MSG_NPC(4, _(" Whoa, hold on there!\nDon't you point those things at me!{WAIT_PRESS}\nFace the other way! The other way!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -1158,7 +1158,7 @@ static const struct ScriptCommand s_gs171_g6_s0_lives0_dlg0[] = { /* 0x8223d40 * UPDATE_VARINT(CALC_SET, EVENT_LOCAL, 1), { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_LEFT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, 0x00000000, 0x00000000, NULL }, + PORTRAIT_POS(4, 0, 0), MSG_NPC(4, _(" What, you're serious?!\nNooooo! Don't!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -1226,7 +1226,7 @@ static const struct ScriptCommand s_gs171_g6_s0_lives0_dlg0[] = { /* 0x8223d40 * { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x0000000c), - { 0x2f, 0x00, 0x0001, 0x00000000, 0x00000003, NULL }, + PORTRAIT_POS(1, 0, 3), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" ...!{WAIT_PRESS} {NAME_0}...!{WAIT_PRESS}\nYour body...{WAIT_PRESS} What's happening?")), VARIANT_DEFAULT(_(" ...!{WAIT_PRESS} {NAME_0}...!{WAIT_PRESS}\nYour body...{WAIT_PRESS} What's happening to you?")), @@ -1333,11 +1333,11 @@ static const struct ScriptCommand s_gs171_g6_s0_lives0_dlg0[] = { /* 0x8223d40 * { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0x2d, 0x09, 0x0009, 0x0000004f, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0009, 0x00000041), - { 0x2f, 0x00, 0x0009, -0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(9, -3, 0), MSG_NPC(9, _(" {NAME_0}!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0006, 0x00000042), - { 0x2f, 0x00, 0x0006, -0x00000001, 0x00000002, NULL }, + PORTRAIT_POS(6, -1, 2), MSG_NPC(6, _(" {NAME_0}...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0014, 0x00000000, 0x00000000, NULL }, @@ -2137,7 +2137,7 @@ static const struct ScriptCommand s_gs171_g7_s0_lives0_dlg0[] = { /* 0x8227f54 * { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0004, 0x00000043), - { 0x2f, 0x00, 0x0004, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(4, -2, 0), MSG_NPC(4, _(" You're right...")), MSG_NPC(4, _(" Just upped and went like\nthat...")), MSG_NPC(4, _(" Why now?\nWhy when the world's been saved?")), diff --git a/src/data/ground/ground_data_b01p01a_station.h b/src/data/ground/ground_data_b01p01a_station.h index a0ec96fae..d59f9db6a 100644 --- a/src/data/ground/ground_data_b01p01a_station.h +++ b/src/data/ground/ground_data_b01p01a_station.h @@ -3902,7 +3902,7 @@ static const struct ScriptCommand s_gs9_g30_s0_lives0_dlg0[] = { /* 0x81acd04 */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_MIDDLE_RIGHT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000000, -0x00000003, NULL }, + PORTRAIT_POS(2, 0, -3), MSG_NPC(2, _(" Keh!\nWho'd run a rescue team from a dump\nlike this? Unbelievable.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -10188,9 +10188,9 @@ static const struct ScriptCommand s_gs9_g75_s0_lives0_dlg0[] = { /* 0x81cb8b4 */ PORTRAIT(PLACEMENT_LEFT_, 0x0000, 0x00000000), PORTRAIT(PLACEMENT_RIGHT, 0x0001, 0x00000000), PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(2, 2, 0), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(3, -2, 0), PORTRAIT(PLACEMENT_LEFT_, 0x0004, 0x00000000), PORTRAIT_REP(0x0001, 0x00000009), MSG_VAR(2, PARTNER_TALK_KIND, 1), @@ -10280,7 +10280,7 @@ static const struct ScriptCommand s_gs9_g75_s0_lives0_dlg0[] = { /* 0x81cb8b4 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, WAIT(15), PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0001, 0x0000000c), - { 0x2f, 0x00, 0x0001, 0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(1, 2, 0), MSG_NPC(1, _(" Aww, no, the {NAME_4}\ngang!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -10351,7 +10351,7 @@ static const struct ScriptCommand s_gs9_g75_s0_lives0_dlg0[] = { /* 0x81cb8b4 */ WAIT(1), { 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_RIGHT, 0x0001, 0x00000004), - { 0x2f, 0x00, 0x0001, -0x00000001, -0x00000004, NULL }, + PORTRAIT_POS(1, -1, -4), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" Wh-what?")), VARIANT_DEFAULT(_(" Wh-what?")), @@ -10520,7 +10520,7 @@ static const struct ScriptCommand s_gs9_g75_s0_lives0_dlg0[] = { /* 0x81cb8b4 */ { 0x91, 0x04, 0x000a, 0x00000002, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_RIGHT, 0x0001, 0x00000004), - { 0x2f, 0x00, 0x0001, -0x00000001, -0x00000004, NULL }, + PORTRAIT_POS(1, -1, -4), MSG_NPC(1, _(" Hmmm...\n{NAME_0}, what do you think?")), MSG_NPC(1, _(" The {NAME_4} are saying\nthey'll do anything we want.")), WAIT(10), @@ -10535,11 +10535,11 @@ static const struct ScriptCommand s_gs9_g75_s0_lives0_dlg0[] = { /* 0x81cb8b4 */ WAIT(2), PORTRAIT(PLACEMENT_LEFT_, 0x0000, 0x00000000), PORTRAIT(PLACEMENT_RIGHT, 0x0001, 0x00000000), - { 0x2f, 0x00, 0x0001, -0x00000001, -0x00000004, NULL }, + PORTRAIT_POS(1, -1, -4), PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(2, 2, 0), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(3, -2, 0), PORTRAIT(PLACEMENT_LEFT_, 0x0004, 0x00000000), WAIT(30), { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, @@ -11310,7 +11310,7 @@ static const struct ScriptCommand s_gs9_g76_s0_lives0_dlg0[] = { /* 0x81d041c */ { 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(4, -2, 0), MSG_NPC(4, _(" Don't wanna.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -11713,7 +11713,7 @@ static const struct ScriptCommand s_gs9_g77_s1_lives0_dlg0[] = { /* 0x81d23bc */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(2, 1, 0), MSG_NPC(2, _(" Oh!\nA Chestnut!\nWe want a peeled Chestnut!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -11732,12 +11732,12 @@ static const struct ScriptCommand s_gs9_g77_s1_lives0_dlg0[] = { /* 0x81d23bc */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(2, 1, 0), MSG_NPC(2, _(" Who do you think you are?!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(2, -2, 0), MSG_NPC(2, _(" Mukkeeeeeh!\nGet them!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, @@ -11798,7 +11798,7 @@ static const struct ScriptCommand s_gs9_g77_s1_lives0_dlg0[] = { /* 0x81d23bc */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(2, 1, 0), MSG_NPC(2, _(" Why don't you quit lounging\naround yourself?!\nGet moving!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, @@ -11813,7 +11813,7 @@ static const struct ScriptCommand s_gs9_g77_s1_lives0_dlg0[] = { /* 0x81d23bc */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(2, -2, 0), MSG_NPC(2, _(" We'll carry in the materials\nand get the place built. Double-quick!{WAIT_PRESS}\nYou just wait!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, SCENARIO_ADVANCE(SCENARIO_SUB1, /*unused*/ 30), @@ -12148,7 +12148,7 @@ static const struct ScriptCommand s_gs9_g78_s0_lives0_dlg0[] = { /* 0x81d3cc4 */ { 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, -0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(4, -3, 0), MSG_NPC(4, _(" Say, there.{WAIT_PRESS}\nThere's something I want to ask...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -12178,7 +12178,7 @@ static const struct ScriptCommand s_gs9_g78_s0_lives0_dlg0[] = { /* 0x81d3cc4 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_TOP_FLIP, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, -0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(4, -3, 0), MSG_NPC(4, _(" ............")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -12586,7 +12586,7 @@ static const struct ScriptCommand s_gs9_g79_s0_lives0_dlg0[] = { /* 0x81d5d20 */ CALL_SCRIPT(NOTICE_FUNC), { 0x91, 0x04, 0x0001, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_RIGHT, 0x0001, 0x00000004), - { 0x2f, 0x00, 0x0001, -0x00000001, -0x00000004, NULL }, + PORTRAIT_POS(1, -1, -4), MSG_VAR(2, PARTNER_TALK_KIND, 1), VARIANT(/* == */ 1, _(" More {NAME_2}?{WAIT_PRESS}\nTwo of them, even...")), VARIANT_DEFAULT(_(" More {NAME_2}?{WAIT_PRESS}\nTwo of them...")), @@ -12618,7 +12618,7 @@ static const struct ScriptCommand s_gs9_g79_s0_lives0_dlg0[] = { /* 0x81d5d20 */ { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(2, 3, 0), MSG_NPC(2, _(" N-no!")), WAIT(20), { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, @@ -13546,12 +13546,12 @@ static const struct ScriptCommand s_gs9_g84_s0_lives0_dlg0[] = { /* 0x81da9c8 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0003, 0x00000002), - { 0x2f, 0x00, 0x0003, 0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(3, 2, 0), MSG_NPC(3, _(" {NAME_2}!{WAIT_PRESS}\nYou're safe! Yesssss!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000006), - { 0x2f, 0x00, 0x0002, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(2, -2, 0), MSG_NPC(2, _(" I'm so sorry, {NAME_3}.{WAIT_PRESS}\nThat dungeon--it was too much for me.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), diff --git a/src/data/ground/ground_data_b01p02a_station.h b/src/data/ground/ground_data_b01p02a_station.h index eaea044be..6ebae7f16 100644 --- a/src/data/ground/ground_data_b01p02a_station.h +++ b/src/data/ground/ground_data_b01p02a_station.h @@ -500,7 +500,7 @@ static const struct ScriptCommand s_gs12_g9_s0_lives0_dlg0[] = { /* 0x81e2ec0 */ { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0x34, 0x00, -0x0001, 0x00000000, 0x00000000, _(" Y-yes...") }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, -0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(2, -1, 0), { 0x2d, 0x03, 0x0002, 0x00000073, 0x00000000, NULL }, MSG_NPC(2, _(" I'm named Spinda.")), { 0x2d, 0x09, 0x0002, 0x00000073, 0x00000000, NULL }, diff --git a/src/data/ground/ground_data_d03p02_station.h b/src/data/ground/ground_data_d03p02_station.h index bea6310d2..c0c80e62a 100644 --- a/src/data/ground/ground_data_d03p02_station.h +++ b/src/data/ground/ground_data_d03p02_station.h @@ -108,7 +108,7 @@ static const struct ScriptCommand s_gs183_g1_s0_lives0_dlg0[] = { /* 0x82333ec * VARIANT_DEFAULT(_(" Oh, hi!\nYou're the {NAME_4} we saved!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_LEFT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, 0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(4, 2, 0), MSG_NPC(4, _(" WE GOT WORD OF THIS.{WAIT_PRESS}\nWE CAN RESCUE DIGLETT FROM THE\nSKY. BZBZBZZ!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -116,7 +116,7 @@ static const struct ScriptCommand s_gs183_g1_s0_lives0_dlg0[] = { /* 0x82333ec * { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, MSG_NPC(4, _(" HOLD ON TO US TIGHT.\nBZBZBZZZ!")), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(4, -2, 0), MSG_NPC(4, _(" DON'T BE SCARED.\nWE WON'T MAKE THE MISTAKE OF\nZAPPING YOU. BZBZBZZT!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0008, 0x00000000, 0x00000000, NULL }, diff --git a/src/data/ground/ground_data_d04p02_station.h b/src/data/ground/ground_data_d04p02_station.h index 32c06862d..744de0df6 100644 --- a/src/data/ground/ground_data_d04p02_station.h +++ b/src/data/ground/ground_data_d04p02_station.h @@ -76,7 +76,7 @@ static const struct ScriptCommand s_gs185_g1_s0_lives0_dlg0[] = { /* 0x8234d94 * { 0xe2, 0x00, 0x01d1, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000000, -0x00000003, NULL }, + PORTRAIT_POS(2, 0, -3), MSG_NPC(2, _(" Did you maybe come looking\nfor me?")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(16), diff --git a/src/data/ground/ground_data_d10p03_station.h b/src/data/ground/ground_data_d10p03_station.h index 6d955eb22..6b1692340 100644 --- a/src/data/ground/ground_data_d10p03_station.h +++ b/src/data/ground/ground_data_d10p03_station.h @@ -64,7 +64,7 @@ static const struct ScriptCommand s_gs200_g1_s0_lives0_dlg0[] = { /* 0x824fcb4 * { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, 0x00000003, 0x00000000, NULL }, + PORTRAIT_POS(2, 3, 0), MSG_NPC(2, _(" No!\nI cannot allow your passage!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -172,7 +172,7 @@ static const struct ScriptCommand s_gs200_g1_s0_lives0_dlg0[] = { /* 0x824fcb4 * { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, -0x00000002, 0x00000002, NULL }, + PORTRAIT_POS(3, -2, 2), MSG_NPC(3, _(" There is nothing false in\nwhat they said.")), MSG_NPC(3, _(" Calamities are indeed\noccurring in nature everywhere.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, diff --git a/src/data/ground/ground_data_d11p03_station.h b/src/data/ground/ground_data_d11p03_station.h index 03c83a2d9..68b42800d 100644 --- a/src/data/ground/ground_data_d11p03_station.h +++ b/src/data/ground/ground_data_d11p03_station.h @@ -685,7 +685,7 @@ static const struct ScriptCommand s_gs203_g3_s0_lives0_dlg0[] = { /* 0x8259658 * { 0x62, 0x00, 0x0200, -0x00000010, 0x00000010, NULL }, CALL_SCRIPT(SHOCK_FUNC), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0002, 0x00000041), - { 0x2f, 0x00, 0x0002, 0x00000000, 0x00000003, NULL }, + PORTRAIT_POS(2, 0, 3), MSG_NPC(2, _(" Wuh!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL }, @@ -716,7 +716,7 @@ static const struct ScriptCommand s_gs203_g3_s0_lives0_dlg0[] = { /* 0x8259658 * { 0xe4, 0x00, 0x000a, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_LEFT_, 0x0005, 0x00000000), - { 0x2f, 0x00, 0x0005, 0x00000001, -0x00000001, NULL }, + PORTRAIT_POS(5, 1, -1), BGM_SWITCH(6), MSG_NPC(5, _(" Cease fighting at once,\n{NAME_2}.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, diff --git a/src/data/ground/ground_data_t01p01_station.h b/src/data/ground/ground_data_t01p01_station.h index c6942fbb8..da93db0ff 100644 --- a/src/data/ground/ground_data_t01p01_station.h +++ b/src/data/ground/ground_data_t01p01_station.h @@ -5673,7 +5673,7 @@ static const struct ScriptCommand s_gs1_g23_s0_lives0_dlg0[] = { /* 0x814dc14 */ { 0xe4, 0x00, 0x000d, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, -0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(3, -1, 0), MSG_NPC(3, _(" I joined the chase...")), MSG_NPC(3, _(" But they fled into Mt. Blaze.")), MSG_NPC(3, _(" For the life of me, I can't\ngo in there.\nAnd that's where I lost their trail.")), @@ -5766,18 +5766,18 @@ static const struct ScriptCommand s_gs1_g23_s0_lives0_dlg0[] = { /* 0x814dc14 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000042), - { 0x2f, 0x00, 0x0003, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(3, 0, -1), MSG_NPC(3, _(" H-hey! Over there...")), WAIT(4), { 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_RIGHT, 0x0006, 0x00000042), - { 0x2f, 0x00, 0x0006, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(6, -2, 0), MSG_NPC(6, _(" ...{NAME_0}!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(4), PORTRAIT(PLACEMENT_RIGHT, 0x0005, 0x00000000), - { 0x2f, 0x00, 0x0005, 0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(5, 1, 0), MSG_NPC(5, _(" Th-they're back...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0004, 0x00000000, 0x00000000, NULL }, @@ -5840,10 +5840,10 @@ static const struct ScriptCommand s_gs1_g23_s0_lives0_dlg0[] = { /* 0x814dc14 */ PORTRAIT_REP(0x0002, 0x00000046), MSG_NPC(2, _(" Ugege?!")), PORTRAIT(PLACEMENT_MIDDLE_RIGHT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, 0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(4, 1, 0), MSG_NPC(4, _(" Wh-what?!")), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000042), - { 0x2f, 0x00, 0x0003, -0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(3, -1, 0), MSG_NPC(3, _(" Is that true?!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(4), @@ -6048,7 +6048,7 @@ static const struct ScriptCommand s_gs1_g23_s0_lives0_dlg0[] = { /* 0x814dc14 */ { 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_RIGHT, 0x0004, 0x00000041), - { 0x2f, 0x00, 0x0004, 0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(4, 2, 0), MSG_NPC(4, _(" You rotten...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, FANFARE_PLAY2(455), @@ -7201,7 +7201,7 @@ static const struct ScriptCommand s_gs1_g26_s0_lives0_dlg0[] = { /* 0x8154794 */ { 0xe4, 0x00, 0x0008, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(3, 0, -1), MSG_NPC(3, _(" Can I get everyone's\nattention here?")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(30), @@ -7351,7 +7351,7 @@ static const struct ScriptCommand s_gs1_g26_s0_lives0_dlg0[] = { /* 0x8154794 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_RIGHT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, 0x00000000, 0x00000001, NULL }, + PORTRAIT_POS(4, 0, 1), MSG_NPC(4, _(" It's rumored {NAME_9}\nis a Ground type.")), MSG_NPC(4, _(" I am a Water type.\nStrong against the Ground type.")), MSG_NPC(4, _(" My Hydro Pump will put\n{NAME_9} down in one shot.")), @@ -7382,7 +7382,7 @@ static const struct ScriptCommand s_gs1_g26_s0_lives0_dlg0[] = { /* 0x8154794 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0005, 0x00000000), - { 0x2f, 0x00, 0x0005, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(5, 0, -1), MSG_NPC(5, _(" Darlings, when I see a tough\nPokémon, I want to tangle with them.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(30), @@ -7408,7 +7408,7 @@ static const struct ScriptCommand s_gs1_g26_s0_lives0_dlg0[] = { /* 0x8154794 */ { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, WAIT(30), PORTRAIT(PLACEMENT_RIGHT, 0x0006, 0x00000000), - { 0x2f, 0x00, 0x0006, 0x00000000, 0x00000001, NULL }, + PORTRAIT_POS(6, 0, 1), MSG_NPC(6, _(" If {NAME_9}'s awakened\nunderground, that suits me fine.")), MSG_NPC(6, _(" I'll use my Rock Throw to\nkeep it buried underground.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, @@ -8701,7 +8701,7 @@ static const struct ScriptCommand s_gs1_g28_s0_lives0_dlg0[] = { /* 0x815aae0 */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(3, 0, -1), MSG_NPC(3, _(" ............{WAIT_PRESS}\nThey were wiped out...{WAIT_PRESS}\nIn the underground dungeon...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, @@ -8710,7 +8710,7 @@ static const struct ScriptCommand s_gs1_g28_s0_lives0_dlg0[] = { /* 0x815aae0 */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_RIGHT, 0x0005, 0x00000003), - { 0x2f, 0x00, 0x0005, 0x00000000, 0x00000001, NULL }, + PORTRAIT_POS(5, 0, 1), MSG_NPC(5, _(" Groan... That place...{WAIT_PRESS}\nIt's rough, seriously...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, @@ -8718,14 +8718,14 @@ static const struct ScriptCommand s_gs1_g28_s0_lives0_dlg0[] = { /* 0x815aae0 */ { 0x91, 0x04, 0x000a, 0x00000003, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0006, 0x00000000), - { 0x2f, 0x00, 0x0006, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(6, 0, -1), MSG_NPC(6, _(" ...We couldn't get far\nenough to even see {NAME_9}...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0008, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_RIGHT, 0x0007, 0x00000000), - { 0x2f, 0x00, 0x0007, 0x00000000, 0x00000001, NULL }, + PORTRAIT_POS(7, 0, 1), MSG_NPC(7, _(" I don't want to ever go\nback to a place that bad...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL }, @@ -8825,7 +8825,7 @@ static const struct ScriptCommand s_gs1_g28_s0_lives0_dlg0[] = { /* 0x815aae0 */ { 0x93, 0x04, 0x000a, 0x00000055, 0x00000000, NULL }, WAIT(15), PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0001, 0x00000005), - { 0x2f, 0x00, 0x0001, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(1, -2, 0), MSG_NPC(1, _(" E-even {NAME_3}...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x0004, 0x00000000, 0x00000000, NULL }, @@ -8967,7 +8967,7 @@ static const struct ScriptCommand s_gs1_g28_s0_lives0_dlg0[] = { /* 0x815aae0 */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(3, 0, -1), MSG_NPC(3, _(" ...No.\n{NAME_1} is right.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -10873,7 +10873,7 @@ static const struct ScriptCommand s_gs1_g31_s0_lives0_dlg0[] = { /* 0x81641b8 */ { 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x000c, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_FLIP, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, -0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(3, -1, 0), MSG_NPC(3, _(" Look!\nHere they come!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -10931,7 +10931,7 @@ static const struct ScriptCommand s_gs1_g31_s0_lives0_dlg0[] = { /* 0x81641b8 */ { 0xe4, 0x00, 0x0008, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, 0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(3, 1, 0), MSG_NPC(3, _(" Pelipper spread the word\nwith an extra edition of the Pokémon\nNews.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -14370,7 +14370,7 @@ static const struct ScriptCommand s_gs1_g48_s0_lives0_dlg0[] = { /* 0x8173394 */ { 0xe4, 0x00, 0x000a, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_LEFT, 0x0005, 0x00000000), - { 0x2f, 0x00, 0x0005, -0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(5, -1, 0), MSG_NPC(5, _(" ...Wh-where...?")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), @@ -14392,7 +14392,7 @@ static const struct ScriptCommand s_gs1_g48_s0_lives0_dlg0[] = { /* 0x8173394 */ { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0004, 0x00000000), - { 0x2f, 0x00, 0x0004, -0x00000003, 0x00000001, NULL }, + PORTRAIT_POS(4, -3, 1), MSG_NPC(4, _(" Now wait.{WAIT_PRESS}\nThere must be a good reason for this.")), MSG_NPC(4, _(" We should at least hear\nthat.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, diff --git a/src/data/ground/ground_data_t01p02a_station.h b/src/data/ground/ground_data_t01p02a_station.h index f7e5677d6..181d08456 100644 --- a/src/data/ground/ground_data_t01p02a_station.h +++ b/src/data/ground/ground_data_t01p02a_station.h @@ -2209,7 +2209,7 @@ static const struct ScriptCommand s_gs2_g29_s0_lives0_dlg0[] = { /* 0x81863ec */ { 0xe4, 0x00, 0x000a, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_TOP_RIGHT, 0x0005, 0x00000000), - { 0x2f, 0x00, 0x0005, 0x00000002, 0x00000003, NULL }, + PORTRAIT_POS(5, 2, 3), MSG_NPC(5, _(" I'm Snubbull.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, FANFARE_PLAY2(465), @@ -2230,7 +2230,7 @@ static const struct ScriptCommand s_gs2_g29_s0_lives0_dlg0[] = { /* 0x81863ec */ { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_TOP_RIGHT, 0x0006, 0x00000000), - { 0x2f, 0x00, 0x0006, 0x00000000, -0x00000001, NULL }, + PORTRAIT_POS(6, 0, -1), MSG_NPC(6, _(" It appeared without me\nnoticing.")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, { 0xe4, 0x00, 0x000b, 0x00000000, 0x00000000, NULL }, @@ -2311,12 +2311,12 @@ static const struct ScriptCommand s_gs2_g29_s0_lives0_dlg0[] = { /* 0x81863ec */ { 0xe4, 0x00, 0x0007, 0x00000000, 0x00000000, NULL }, { 0xe3, 0x00, 0x0005, 0x00000000, 0x00000000, NULL }, PORTRAIT(PLACEMENT_MIDDLE_LEFT, 0x0002, 0x00000000), - { 0x2f, 0x00, 0x0002, -0x00000002, 0x00000000, NULL }, + PORTRAIT_POS(2, -2, 0), MSG_NPC(2, _(" So if I evolved, I would\nbecome like {NAME_3}?!")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), PORTRAIT(PLACEMENT_RIGHT, 0x0003, 0x00000000), - { 0x2f, 0x00, 0x0003, -0x00000001, 0x00000000, NULL }, + PORTRAIT_POS(3, -1, 0), MSG_NPC(3, _(" I wish...{WAIT_PRESS}\nI want to be Butterfree quickly...")), { 0x30, 0x00, 0x0000, 0x00000000, 0x00000000, NULL }, WAIT(10), diff --git a/src/ground_script.c b/src/ground_script.c index bbe465de1..4a22b01ea 100644 --- a/src/ground_script.c +++ b/src/ground_script.c @@ -84,7 +84,6 @@ void sub_80975A8(s16, bool8); u32 sub_809A6E4(); u32 sub_809A6F8(); u32 sub_809A768(); -u32 sub_809ADD8(); bool8 sub_809AEEC(const char*); bool8 sub_809AF2C(const char*); bool8 sub_809AF6C(s16, const char*); @@ -1942,7 +1941,7 @@ s32 ExecuteScriptCommand(Action *action) PixelPos pos; pos.x = curCmd.arg1; pos.y = curCmd.arg2; - sub_809ADD8(curCmd.argShort, &pos); + ScriptSetPortraitPosDelta(curCmd.argShort, &pos); break; } case 0x32 ... 0x38: { diff --git a/src/textbox.c b/src/textbox.c index 606e1113f..fb3514ccd 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -753,7 +753,7 @@ bool8 ScriptSetPortraitInfo(s32 portraitId_, s32 spriteId_, s32 placementId_) return FALSE; } -bool8 sub_809ADD8(s32 portraitId_, PixelPos *newPosDelta) +bool8 ScriptSetPortraitPosDelta(s32 portraitId_, PixelPos *newPosDelta) { s32 portraitId = (s16) portraitId_; struct TextboxPortrait *portraitPtr = &sTextbox->portraits[portraitId];