portrait pos script command

This commit is contained in:
DizzyEggg
2025-06-18 21:31:12 +02:00
parent 3b92a3f110
commit 3a90865d73
14 changed files with 76 additions and 72 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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...")),

View File

@@ -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?")),

View File

@@ -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),

View File

@@ -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 },

View File

@@ -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 },

View File

@@ -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),

View File

@@ -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 },

View File

@@ -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 },

View File

@@ -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 },

View File

@@ -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),

View File

@@ -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: {

View File

@@ -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];