Add DialogType and DialogFlagType enums

This commit is contained in:
Tal Hayon 2022-04-23 00:13:01 +03:00
parent a957ee9580
commit 5347c5ddaf
24 changed files with 516 additions and 461 deletions

View File

@ -19,6 +19,38 @@
#include "structures.h"
typedef enum {
DIALOG_ROOM_FLAG,
DIALOG_LOCAL_FLAG,
DIALOG_GLOBAL_FLAG,
DIALOG_KINSTONE,
DIALOG_INVENTORY,
} DialogFlagType;
typedef enum {
DIALOG_NONE,
DIALOG_NORMAL,
DIALOG_SET_FLAG,
DIALOG_TOGGLE_FLAG,
DIALOG_CHECK_FLAG,
DIALOG_CALL_FUNC,
DIALOG_MINISH,
} DialogType;
typedef struct {
u32 flag : 12;
DialogFlagType flagType : 4;
DialogType type : 4;
u32 fromSelf : 1;
union {
struct {
u16 a;
u16 b;
} indices;
void (*func)(Entity* e);
} data;
} Dialog;
void sub_0806EC20(Entity* ent);
void sub_0806EC38(void);
u32 sub_0806ED78(Entity* ent);

View File

@ -175,20 +175,6 @@ typedef struct {
} struct_02034480;
extern struct_02034480 gUnk_02034480;
typedef struct {
u32 flag : 12;
u32 flagType : 4;
u32 type : 4;
u32 unk : 1;
union {
struct {
u16 a;
u16 b;
} indices;
void (*func)(Entity* e);
} data;
} Dialog;
extern u16 gBG0Buffer[0x400];
extern u16 gBG1Buffer[0x400];
extern u16 gBG2Buffer[0x400];

View File

@ -99,10 +99,16 @@ void sub_0806362C(Entity* this) {
void sub_080636D8(Entity* this) {
static const Dialog gUnk_0810CAAC[] = {
{ 0, 0, 1, 1, { 0, 0x2510 } }, { 0, 0, 1, 1, { 0, 0x2510 } }, { 5, 0, 3, 1, { 0x3424, 0x3423 } },
{ 5, 0, 3, 1, { 0x3424, 0x3423 } }, { 5, 0, 3, 1, { 0x351f, 0x351e } }, { 5, 0, 3, 1, { 0x361e, 0x361d } },
{ 5, 0, 3, 1, { 0x371f, 0x371e } }, { 5, 0, 3, 1, { 0x381f, 0x381e } }, { 5, 0, 3, 1, { 0x3919, 0x3918 } },
{ 5, 0, 3, 1, { 0x3919, 0x3918 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x2510 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x2510 } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3424, 0x3423 } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3424, 0x3423 } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x351f, 0x351e } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x361e, 0x361d } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x371f, 0x371e } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x381f, 0x381e } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3919, 0x3918 } },
{ 5, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3919, 0x3918 } },
};
ShowNPCDialogue(this, &gUnk_0810CAAC[gSave.global_progress]);

View File

@ -82,7 +82,7 @@ void sub_080672C8(Entity* this) {
}
void sub_08067304(Entity* this) {
static const Dialog dialog = { 0xb, 3, 4, 1, { 0x3642, 0x3641 } };
static const Dialog dialog = { 0xb, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x3642, 0x3641 } };
ShowNPCDialogue(this, &dialog);
}

View File

@ -126,10 +126,16 @@ void sub_0806464C(Entity* this) {
void sub_08064688(Entity* this) {
static const Dialog gUnk_0810F894[] = {
{ 7, 0, 3, 1, { 0x3426, 0x3425 } }, { 7, 0, 3, 1, { 0x3426, 0x3425 } }, { 7, 0, 3, 1, { 0x3426, 0x3425 } },
{ 7, 0, 3, 1, { 0x3426, 0x3425 } }, { 7, 0, 3, 1, { 0x3521, 0x3520 } }, { 0, 0, 1, 1, { 0, 0x361f } },
{ 0, 0, 1, 1, { 0, 0x3720 } }, { 0, 0, 1, 1, { 0, 0x3820 } }, { 0, 0, 1, 1, { 0, 0x3820 } },
{ 0, 0, 1, 1, { 0, 0x3820 } },
{ 7, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3426, 0x3425 } },
{ 7, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3426, 0x3425 } },
{ 7, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3426, 0x3425 } },
{ 7, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3426, 0x3425 } },
{ 7, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3521, 0x3520 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x361f } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3720 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3820 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3820 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3820 } },
};
ShowNPCDialogue(this, &gUnk_0810F894[gSave.global_progress]);
}

View File

@ -35,66 +35,66 @@ extern Hitbox* gUnk_08111154[8];
void sub_08067790(Entity* this) {
static const Dialog dialogs[][10] = {
{ { 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3503, 0x3504 },
{ 0, 0, 6, 1, 0x3603, 0x3604 },
{ 0, 0, 6, 1, 0x3703, 0x3704 },
{ 0, 0, 6, 1, 0x3803, 0x3804 },
{ 0, 0, 6, 1, 0x3902, 0x3903 },
{ 0, 0, 6, 1, 0x3902, 0x3903 } },
{ { 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3503, 0x3504 },
{ 0, 0, 6, 1, 0x3603, 0x3604 },
{ 0, 0, 6, 1, 0x3703, 0x3704 },
{ 0, 0, 6, 1, 0x3803, 0x3804 },
{ 0, 0, 6, 1, 0x3902, 0x3903 },
{ 0, 0, 6, 1, 0x3902, 0x3903 } },
{ { 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3503, 0x3504 },
{ 0, 0, 6, 1, 0x3603, 0x3604 },
{ 0, 0, 6, 1, 0x3703, 0x3704 },
{ 0, 0, 6, 1, 0x3803, 0x3804 },
{ 0, 0, 6, 1, 0x3902, 0x3903 },
{ 0, 0, 6, 1, 0x3902, 0x3903 } },
{ { 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3503, 0x3504 },
{ 0, 0, 6, 1, 0x3603, 0x3604 },
{ 0, 0, 6, 1, 0x3703, 0x3704 },
{ 0, 0, 6, 1, 0x3803, 0x3804 },
{ 0, 0, 6, 1, 0x3902, 0x3903 },
{ 0, 0, 6, 1, 0x3902, 0x3903 } },
{ { 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 },
{ 0, 0, 6, 1, 0x4e17, 0x4e18 } },
{ { 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3407, 0x3408 },
{ 0, 0, 6, 1, 0x3503, 0x3504 },
{ 0, 0, 6, 1, 0x3603, 0x3604 },
{ 0, 0, 6, 1, 0x3703, 0x3704 },
{ 0, 0, 6, 1, 0x3803, 0x3804 },
{ 0, 0, 6, 1, 0x3902, 0x3903 },
{ 0, 0, 6, 1, 0x3902, 0x3903 } },
{ { 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3503, 0x3504 },
{ 0, 0, DIALOG_MINISH, 1, 0x3603, 0x3604 },
{ 0, 0, DIALOG_MINISH, 1, 0x3703, 0x3704 },
{ 0, 0, DIALOG_MINISH, 1, 0x3803, 0x3804 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 } },
{ { 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3503, 0x3504 },
{ 0, 0, DIALOG_MINISH, 1, 0x3603, 0x3604 },
{ 0, 0, DIALOG_MINISH, 1, 0x3703, 0x3704 },
{ 0, 0, DIALOG_MINISH, 1, 0x3803, 0x3804 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 } },
{ { 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3503, 0x3504 },
{ 0, 0, DIALOG_MINISH, 1, 0x3603, 0x3604 },
{ 0, 0, DIALOG_MINISH, 1, 0x3703, 0x3704 },
{ 0, 0, DIALOG_MINISH, 1, 0x3803, 0x3804 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 } },
{ { 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3503, 0x3504 },
{ 0, 0, DIALOG_MINISH, 1, 0x3603, 0x3604 },
{ 0, 0, DIALOG_MINISH, 1, 0x3703, 0x3704 },
{ 0, 0, DIALOG_MINISH, 1, 0x3803, 0x3804 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 } },
{ { 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 },
{ 0, 0, DIALOG_MINISH, 1, 0x4e17, 0x4e18 } },
{ { 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3407, 0x3408 },
{ 0, 0, DIALOG_MINISH, 1, 0x3503, 0x3504 },
{ 0, 0, DIALOG_MINISH, 1, 0x3603, 0x3604 },
{ 0, 0, DIALOG_MINISH, 1, 0x3703, 0x3704 },
{ 0, 0, DIALOG_MINISH, 1, 0x3803, 0x3804 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 },
{ 0, 0, DIALOG_MINISH, 1, 0x3902, 0x3903 } },
};
ShowNPCDialogue(this, &dialogs[this->type][gSave.global_progress]);
}

View File

@ -189,11 +189,11 @@ void sub_080691E0(Entity* ent) {
// Show dialogue
void Cow_ShowDialogue(Entity* ent) {
static const Dialog gUnk_08111938[] = { { 0x0, 0x0, 6, 1, { 0x2018, 0x3f34 } },
{ 0x0, 0x0, 6, 1, { 0x2018, 0x3f35 } },
{ 0x0, 0x0, 6, 1, { 0x2018, 0x3f36 } },
{ 0x0, 0x0, 6, 1, { 0x2018, 0x3f37 } },
{ 0x0, 0x0, 6, 1, { 0x2018, 0x3f38 } } };
static const Dialog gUnk_08111938[] = { { 0x0, 0x0, DIALOG_MINISH, 1, { 0x2018, 0x3f34 } },
{ 0x0, 0x0, DIALOG_MINISH, 1, { 0x2018, 0x3f35 } },
{ 0x0, 0x0, DIALOG_MINISH, 1, { 0x2018, 0x3f36 } },
{ 0x0, 0x0, DIALOG_MINISH, 1, { 0x2018, 0x3f37 } },
{ 0x0, 0x0, DIALOG_MINISH, 1, { 0x2018, 0x3f38 } } };
ShowNPCDialogue(ent, &gUnk_08111938[ent->type]);
}

View File

@ -57,7 +57,7 @@ void sub_08065A34(Entity* this) {
void sub_08065A50(Entity* this) {
static const Dialog typeDialogs[] = {
{ 0, 0, 6, 1, { 0x2017, 0x3f3c } },
{ 0, 0, DIALOG_MINISH, 1, { 0x2017, 0x3f3c } },
};
ShowNPCDialogue(this, &typeDialogs[this->type]);
}

View File

@ -65,8 +65,8 @@ void sub_0806BCD4(Entity* this) {
void sub_0806BCE8(Entity* this) {
static const Dialog gUnk_08113158[] = {
{ 0x29, 3, 4, 1, { 0x1a07, 0x1a02 } },
{ 0x29, 3, 4, 1, { 0x1a11, 0x1a0d } },
{ 0x29, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x1a07, 0x1a02 } },
{ 0x29, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x1a11, 0x1a0d } },
};
ShowNPCDialogue(this, &gUnk_08113158[this->type]);
}

View File

@ -239,22 +239,22 @@ void sub_08065F20(Entity* this) {
void sub_08065F64(Entity* this) {
static const Dialog dialogs[][8] = {
{ { 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } },
{ 0, 0, 1, 1, { 0, 0x3f31 } } },
{ { 4, 0, 3, 1, { 0x3417, 0x3416 } },
{ 4, 0, 3, 1, { 0x3417, 0x3416 } },
{ 4, 0, 3, 1, { 0x3513, 0x3512 } },
{ 4, 0, 3, 1, { 0x3613, 0x3612 } },
{ 4, 0, 3, 1, { 0x3713, 0x3712 } },
{ 4, 0, 3, 1, { 0x3813, 0x3812 } },
{ 4, 0, 3, 1, { 0x3912, 0x3911 } },
{ 0, 0, 1, 1, { 0, 0x3A03 } } },
{ { 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f31 } } },
{ { 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3417, 0x3416 } },
{ 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3417, 0x3416 } },
{ 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3513, 0x3512 } },
{ 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3613, 0x3612 } },
{ 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3713, 0x3712 } },
{ 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3813, 0x3812 } },
{ 4, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3912, 0x3911 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3A03 } } },
};
s32 tmp = gSave.global_progress - 2;
if (tmp < 0) {

View File

@ -124,9 +124,12 @@ void sub_080694B0(Entity* this) {
void sub_080694D8(Entity* this) {
static const Dialog gUnk_08111A94[] = {
{ 0x2f, 3, 4, 1, { 0x3f13, 0x3f0e } }, { 0x2f, 3, 4, 1, { 0x3f14, 0x3f0f } },
{ 0x2f, 3, 4, 1, { 0x3f15, 0x3f10 } }, { 0x2f, 3, 4, 1, { 0x3f16, 0x3f11 } },
{ 0x2f, 3, 4, 1, { 0x3f17, 0x3f12 } }, { 0, 0, 1, 1, { 0, 0x3f18 } },
{ 0x2f, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x3f13, 0x3f0e } },
{ 0x2f, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x3f14, 0x3f0f } },
{ 0x2f, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x3f15, 0x3f10 } },
{ 0x2f, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x3f16, 0x3f11 } },
{ 0x2f, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x3f17, 0x3f12 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3f18 } },
};
ShowNPCDialogue(this, &gUnk_08111A94[this->type]);
}

View File

@ -55,12 +55,14 @@ void HurdyGurdyMan_Head(Entity* this) {
}
void sub_0806E418(Entity* this) {
static const Dialog dialogs[] = {
{ 0x59, 0x1, 3, 1, { 0x4f52, 0x4f51 } }, { 0x59, 0x1, 3, 1, { 0x4f52, 0x4f51 } },
{ 0x59, 0x1, 3, 1, { 0x4f54, 0x4f53 } }, { 0x59, 0x1, 3, 1, { 0x4f56, 0x4f55 } },
{ 0x59, 0x1, 3, 1, { 0x4f58, 0x4f57 } }, { 0x59, 0x1, 3, 1, { 0x4f5a, 0x4f59 } },
{ 0x59, 0x1, 3, 1, { 0x4f5c, 0x4f5b } }, { 0x59, 0x1, 3, 1, { 0x4f5e, 0x4f5d } }
};
static const Dialog dialogs[] = { { 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f52, 0x4f51 } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f52, 0x4f51 } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f54, 0x4f53 } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f56, 0x4f55 } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f58, 0x4f57 } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f5a, 0x4f59 } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f5c, 0x4f5b } },
{ 0x59, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f5e, 0x4f5d } } };
s32 tmp = gSave.global_progress - 2;
if (tmp < 0) {
tmp = 0;

View File

@ -78,10 +78,16 @@ void sub_0806C4A8(Entity* this, ScriptExecutionContext* context) {
void sub_0806C4DC(Entity* this) {
static const Dialog dialogs[] = {
{ 1, 0, 3, 1, { 0x4f03, 0x4f02 } }, { 1, 0, 3, 1, { 0x4f03, 0x4f02 } }, { 1, 0, 3, 1, { 0x4f03, 0x4f02 } },
{ 1, 0, 3, 1, { 0x4f03, 0x4f02 } }, { 1, 0, 3, 1, { 0x4f0d, 0x4f0c } }, { 1, 0, 3, 1, { 0x4f1b, 0x4f1a } },
{ 1, 0, 3, 1, { 0x4f27, 0x4f26 } }, { 1, 0, 3, 1, { 0x4f33, 0x4f32 } }, { 1, 0, 3, 1, { 0x4f3f, 0x4f3e } },
{ 1, 0, 3, 1, { 0x4f49, 0x4f48 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f03, 0x4f02 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f03, 0x4f02 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f03, 0x4f02 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f03, 0x4f02 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f0d, 0x4f0c } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f1b, 0x4f1a } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f27, 0x4f26 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f33, 0x4f32 } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f3f, 0x4f3e } },
{ 1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f49, 0x4f48 } },
};
ShowNPCDialogue(this, &dialogs[gSave.global_progress]);
}

View File

@ -50,11 +50,21 @@ void sub_0806CE5C(Entity* this) {
void sub_0806CE80(Entity* this) {
static const Dialog dialogs[] = {
{ 0x89, 1, 2, 1, 0x4c0d, 0x4c01 }, { 0x89, 1, 2, 1, 0x4c0d, 0x4c01 }, { 0x89, 1, 2, 1, 0x4c0d, 0x4c01 },
{ 0x89, 1, 2, 1, 0x4c0d, 0x4c01 }, { 0, 0, 1, 1, 0, 0x4c0e }, { 0, 0, 1, 1, 0, 0x4c0e },
{ 0, 0, 1, 1, 0, 0x4c0f }, { 0, 0, 1, 1, 0, 0x4c10 }, { 0, 0, 1, 1, 0, 0x4c11 },
{ 0, 0, 1, 1, 0, 0x4c12 }, { 0, 0, 1, 1, 0, 0x4c14 }, { 0, 0, 1, 1, 0, 0x4c02 },
{ 0, 0, 1, 1, 0, 0x4c0c }, { 0, 0, 1, 1, 0, 0x4c03 }, { 0, 0, 1, 1, 0, 0x4c04 },
{ 0x89, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, 0x4c0d, 0x4c01 },
{ 0x89, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, 0x4c0d, 0x4c01 },
{ 0x89, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, 0x4c0d, 0x4c01 },
{ 0x89, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, 0x4c0d, 0x4c01 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c0e },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c0e },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c0f },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c10 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c11 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c12 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c14 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c02 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c0c },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c03 },
{ 0, 0, DIALOG_NORMAL, 1, 0, 0x4c04 },
};
u32 v;
u32 v2;

View File

@ -68,11 +68,16 @@ void sub_080670B4(Entity* this) {
void sub_080670E4(Entity* this) {
static const Dialog dialogs[] = {
{ 0, 0, 3, 1, { 0x4101, 0x4100 } }, { 0, 0, 3, 1, { 0x4101, 0x4100 } },
{ 0, 0, 3, 1, { 0x4101, 0x4100 } }, { 0, 0, 3, 1, { 0x4101, 0x4100 } },
{ 0, 0, 3, 1, { 0x4101, 0x4100 } }, { 0xb, 3, 4, 1, { 0x4104, 0x4102 } },
{ 0xb, 3, 4, 1, { 0x4104, 0x4103 } }, { 0xb, 3, 4, 1, { 0x4104, 0x4103 } },
{ 0xb, 3, 4, 1, { 0x4104, 0x4105 } }, { 0xb, 3, 4, 1, { 0x4104, 0x4105 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4101, 0x4100 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4101, 0x4100 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4101, 0x4100 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4101, 0x4100 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4101, 0x4100 } },
{ 0xb, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x4104, 0x4102 } },
{ 0xb, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x4104, 0x4103 } },
{ 0xb, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x4104, 0x4103 } },
{ 0xb, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x4104, 0x4105 } },
{ 0xb, DIALOG_KINSTONE, DIALOG_CHECK_FLAG, 1, { 0x4104, 0x4105 } },
};
ShowNPCDialogue(this, &dialogs[gSave.global_progress]);
}

View File

@ -90,11 +90,11 @@ void sub_0806B41C(Entity* this) {
void sub_0806B4F0(Entity* this) {
static const Dialog gUnk_08112E2C[5] = {
{ 0, 0, 5, 0, { .func = sub_0806B504 } },
{ 0, 0, 1, 1, { 0, 0x2312 } },
{ 0, 0, 1, 1, { 0, 0x2311 } },
{ 0, 0, 1, 1, { 0, 0x2519 } },
{ 0, 0, 5, 0, { .func = sub_0806B540 } },
{ 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806B504 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x2312 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x2311 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x2519 } },
{ 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806B540 } },
};
ShowNPCDialogue(this, &gUnk_08112E2C[this->type2]);
}

View File

@ -136,10 +136,16 @@ void sub_08063C74(void) {
void sub_08063C90(Entity* this) {
static const Dialog gUnk_0810CE04[] = {
{ 6, 0, 3, 1, { 0x3422, 0x3421 } }, { 6, 0, 3, 1, { 0x3422, 0x3421 } }, { 6, 0, 3, 1, { 0x3422, 0x3421 } },
{ 6, 0, 3, 1, { 0x3422, 0x3421 } }, { 6, 0, 3, 1, { 0x351d, 0x351c } }, { 6, 0, 3, 1, { 0x361c, 0x361b } },
{ 6, 0, 3, 1, { 0x371d, 0x371c } }, { 6, 0, 3, 1, { 0x381d, 0x381c } }, { 6, 0, 3, 1, { 0x3917, 0x3916 } },
{ 6, 0, 3, 1, { 0x3917, 0x3916 } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3422, 0x3421 } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3422, 0x3421 } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3422, 0x3421 } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3422, 0x3421 } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x351d, 0x351c } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x361c, 0x361b } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x371d, 0x371c } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x381d, 0x381c } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3917, 0x3916 } },
{ 6, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3917, 0x3916 } },
};
ShowNPCDialogue(this, &gUnk_0810CE04[gSave.global_progress]);
}

View File

@ -5,6 +5,7 @@
#include "save.h"
#include "npc.h"
#include "functions.h"
#include "item.h"
void SmallTownMinish(Entity* this) {
static const Hitbox gUnk_081142FC = { -2, 1, { 0, 0, 0, 0 }, 6, 6 };
@ -25,62 +26,64 @@ void SmallTownMinish(Entity* this) {
}
void sub_0806E2DC(Entity* this) {
static const Dialog gUnk_08114308[][8] = { { { 0x0, 0x0, 1, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3638 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3737 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3839 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392c } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3639 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3738 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392d } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x363a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3739 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392e } } },
{ { 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392f } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3930 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3930 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } } },
{ { 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } } } };
static const Dialog gUnk_08114308[][8] = {
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3638 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3737 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3839 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392c } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3639 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3738 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x383a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392d } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392d } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x363a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3739 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x383b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392e } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392e } } },
{ { ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x363c, 0x363b } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x363c, 0x363b } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x363c, 0x363b } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x363c, 0x363b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x373a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x383c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x392f } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x383d } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3930 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x3930 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e1c } } },
{ { ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } },
{ ITEM_POWER_BRACELETS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4e1e, 0x4e1d } } }
};
s32 dialog = gSave.global_progress - 2;
if (dialog < 0) {
dialog = 0;

View File

@ -144,10 +144,14 @@ void sub_08066218(Entity* this) {
void sub_0806622C(Entity* this) {
static const Dialog dialogs[] = {
{ 0x15, 2, 4, 1, { 0x3201, 0x100e } }, { 0x15, 2, 4, 1, { 0x3201, 0x100e } },
{ 0x15, 2, 4, 1, { 0x3202, 0x100e } }, { 0x15, 2, 4, 1, { 0x3203, 0x100e } },
{ 0x15, 2, 4, 1, { 0x3204, 0x100e } }, { 0x15, 2, 4, 1, { 0x3205, 0x100e } },
{ 0x15, 2, 4, 1, { 0x3206, 0x100e } }, { 0x15, 2, 4, 1, { 0x3206, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3201, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3201, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3202, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3203, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3204, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3205, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3206, 0x100e } },
{ TABIDACHI, DIALOG_GLOBAL_FLAG, DIALOG_CHECK_FLAG, 1, { 0x3206, 0x100e } },
};
u32 index;

View File

@ -80,8 +80,8 @@ void sub_08062CA4(Entity* ent) {
void sub_08062CBC(Entity* ent) {
static const Dialog gUnk_0810C2E4[2] = {
{ 0, 0, 0x3, 1, { 0x4001, 0x4000 } },
{ 0, 0, 0x3, 1, { 0x4003, 0x4002 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4001, 0x4000 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4003, 0x4002 } },
};
u32 uVar1;
if (CheckKinstoneFused(44)) {

View File

@ -72,22 +72,22 @@ void Teachers_Head(Entity* this) {
void sub_0806C70C(Entity* this) {
static const Dialog gUnk_08113930[][8] = {
{ { 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e09 } },
{ 0, 0, 1, 1, { 0, 0x3e09 } } },
{ { 0xa, 0, 3, 1, { 0x3435, 0x3434 } },
{ 0xa, 0, 3, 1, { 0x3435, 0x3434 } },
{ 0xa, 0, 3, 1, { 0x3528, 0x3527 } },
{ 0xa, 0, 3, 1, { 0x3625, 0x3624 } },
{ 0, 0, 3, 1, { 0x3e03, 0x3e02 } },
{ 0, 0, 1, 1, { 0, 0x3e06 } },
{ 0, 0, 1, 1, { 0, 0x3e0a } },
{ 0, 0, 1, 1, { 0, 0x3e0a } } },
{ { 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e01 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e01 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e01 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e01 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e01 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e01 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e09 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e09 } } },
{ { 0xa, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3435, 0x3434 } },
{ 0xa, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3435, 0x3434 } },
{ 0xa, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3528, 0x3527 } },
{ 0xa, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3625, 0x3624 } },
{ 0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x3e03, 0x3e02 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e06 } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e0a } },
{ 0, 0, DIALOG_NORMAL, 1, { 0, 0x3e0a } } },
};
int offset;

View File

@ -354,166 +354,168 @@ void sub_0806AFA0(Entity* this) {
void sub_0806AFBC(Entity* this, ScriptExecutionContext* context) {
//! @bug sub_0806B004 uses context but ShowNPCDialogue doesn't pass it.
// In fact r1 contains sub_0806B004's address.
static const Dialog dialogs[][8] = { { { 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B004 } } },
{ { 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B064 } } },
{ { 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } },
{ 0x46, 0x4, 4, 1, { 0x4b0a, 0x4b04 } } },
{ { 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } },
{ 0x46, 0x4, 4, 1, { 0x4b07, 0x4b01 } } },
{ { 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } },
{ 0x46, 0x4, 4, 1, { 0x4b08, 0x4b02 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } },
{ 0x46, 0x4, 4, 1, { 0x4c0a, 0x4c05 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c05 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } },
{ 0x46, 0x4, 4, 1, { 0x4c0b, 0x4c06 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4c06 } } },
{ { 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } } },
{ { 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B098 } } },
{ { 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B0E0 } } },
{ { 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, 5, 0, { .func = (EntityActionPtr)sub_0806B134 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e30 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e31 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e32 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e33 } } },
{ { 0x0, 0x0, 3, 1, { 0x4f15, 0x4f14 } },
{ 0x0, 0x0, 3, 1, { 0x4f15, 0x4f14 } },
{ 0x0, 0x0, 3, 1, { 0x4f15, 0x4f14 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f22 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f2e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f3a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f3a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f3a } } },
{ { 0x1, 0x0, 3, 1, { 0x4f17, 0x4f16 } },
{ 0x1, 0x0, 3, 1, { 0x4f17, 0x4f16 } },
{ 0x1, 0x0, 3, 1, { 0x4f17, 0x4f16 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f23 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f2f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f3b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f3b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4f3b } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b11 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b11 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b15 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b15 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b12 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b12 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b16 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b16 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b13 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b13 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b17 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b17 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b14 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b14 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b18 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4b18 } } },
{ { 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } },
{ 0x0, 0x0, 3, 1, { 0x4e26, 0x4e25 } } },
{ { 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, 0x1, 2, 1, { 0x4e28, 0x4e27 } } } };
static const Dialog dialogs[][8] = {
{ { 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B004 } } },
{ { 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B064 } } },
{ { ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b0a, 0x4b04 } } },
{ { ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b07, 0x4b01 } } },
{ { ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4b08, 0x4b02 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4c0a, 0x4c05 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c05 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } },
{ ITEM_FLIPPERS, DIALOG_INVENTORY, DIALOG_CHECK_FLAG, 1, { 0x4c0b, 0x4c06 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4c06 } } },
{ { 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } } },
{ { 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B098 } } },
{ { 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B0E0 } } },
{ { 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } },
{ 0x0, 0x0, DIALOG_CALL_FUNC, 0, { .func = (EntityActionPtr)sub_0806B134 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e2f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e30 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e31 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e32 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e33 } } },
{ { 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f15, 0x4f14 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f15, 0x4f14 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f15, 0x4f14 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f22 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f2e } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f3a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f3a } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f3a } } },
{ { 0x1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f17, 0x4f16 } },
{ 0x1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f17, 0x4f16 } },
{ 0x1, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4f17, 0x4f16 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f23 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f2f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f3b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f3b } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4f3b } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0d } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b11 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b11 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b15 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b15 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0e } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b12 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b12 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b16 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b16 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b0f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b13 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b13 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b17 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b17 } } },
{ { 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b10 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b14 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b14 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b18 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4b18 } } },
{ { 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e26, 0x4e25 } } },
{ { 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } },
{ 0x9c, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x4e28, 0x4e27 } } }
};
int idx = gSave.global_progress - 2;
if (idx < 0)
idx = 0;

View File

@ -128,11 +128,16 @@ void sub_0806C90C(Entity* this, ScriptExecutionContext* context) {
void sub_0806C928(Entity* this, ScriptExecutionContext* context) {
static const Dialog gUnk_08113ABC[] = {
{ 0x0, 0x0, 3, 1, { 0x4e20, 0x4e1f } }, { 0x0, 0x0, 3, 1, { 0x4e20, 0x4e1f } },
{ 0x0, 0x0, 3, 1, { 0x4e20, 0x4e1f } }, { 0x0, 0x0, 3, 1, { 0x4e20, 0x4e1f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e21 } }, { 0x0, 0x0, 1, 1, { 0x0, 0x4e22 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e23 } }, { 0x0, 0x0, 1, 1, { 0x0, 0x4e23 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e24 } }, { 0x0, 0x0, 1, 1, { 0x0, 0x4e24 } }
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e20, 0x4e1f } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e20, 0x4e1f } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e20, 0x4e1f } },
{ 0x0, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { 0x4e20, 0x4e1f } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e21 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e22 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e23 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e23 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e24 } },
{ 0x0, 0x0, DIALOG_NORMAL, 1, { 0x0, 0x4e24 } },
};
ShowNPCDialogue(this, &gUnk_08113ABC[gSave.global_progress]);
}
@ -223,40 +228,13 @@ void sub_0806CA2C(Entity* this, ScriptExecutionContext* context) {
}
void sub_0806CA3C(Entity* this, ScriptExecutionContext* context) {
static const Dialog gUnk_08113B28 = {
#if defined(DEMO_JP) || defined(EU) || defined(JP)
0xf5,
1,
2,
1,
{ 0x2f19, 0x2f16 }
#else
0xf8,
1,
2,
1,
{ 0x2f19, 0x2f16 }
#endif
};
static const Dialog gUnk_08113B28 = { KUMOUE_GIRL_TALK, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x2f19, 0x2f16 } };
ShowNPCDialogue(this, &gUnk_08113B28);
}
void sub_0806CA4C(Entity* this, ScriptExecutionContext* context) {
static const Dialog gUnk_08113B30 = {
#if defined(DEMO_JP) || defined(EU) || defined(JP)
0xf4,
0x1,
2,
1,
{ 0x2f18, 0x2f17 }
#else
0xf7,
0x1,
2,
1,
{ 0x2f18, 0x2f17 }
#endif
KUMOUE_UNCLE_TALK, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { 0x2f18, 0x2f17 }
};
ShowNPCDialogue(this, &gUnk_08113B30);
}

View File

@ -337,122 +337,128 @@ void sub_0806F188(Entity* ent) {
}
void ShowNPCDialogue(Entity* ent, const Dialog* dia) {
u32 uVar1;
u32 fromSelf;
s32 temp;
u32 uVar2;
u32 uVar3;
u32 flagType;
s32 uVar4;
int iVar5;
bool32 isFlagSet;
temp = *(((u16*)dia) + 1);
uVar1 = (temp >> 4) & 1;
fromSelf = (temp >> 4) & 1;
temp &= 0xf;
switch (temp) {
case 2:
case DIALOG_SET_FLAG:
uVar3 = (int)*(u32*)dia;
temp = (s32)uVar3 >> 0xc & 0xf;
uVar3 = uVar3 & 0xfff;
iVar5 = 0;
isFlagSet = FALSE;
switch (temp) {
case 0:
iVar5 = CheckRoomFlag(uVar3);
_SetRoomFlag:
case DIALOG_ROOM_FLAG:
isFlagSet = CheckRoomFlag(uVar3);
SetRoomFlag(uVar3);
break;
case 1:
iVar5 = CheckLocalFlag(uVar3);
_SetLocalFlag:
case DIALOG_LOCAL_FLAG:
isFlagSet = CheckLocalFlag(uVar3);
SetLocalFlag(uVar3);
break;
case 2:
iVar5 = CheckGlobalFlag(uVar3);
case DIALOG_GLOBAL_FLAG:
isFlagSet = CheckGlobalFlag(uVar3);
SetGlobalFlag(uVar3);
break;
}
_check:
if (iVar5 == 0) {
if (!isFlagSet) {
uVar2 = dia->data.indices.b;
} else {
uVar2 = dia->data.indices.a;
}
break;
case 3:
case DIALOG_TOGGLE_FLAG:
uVar3 = (int)*(u32*)dia;
uVar4 = (s32)uVar3 >> 0xc & 0xf;
uVar3 = uVar3 & 0xfff;
iVar5 = 0;
isFlagSet = 0;
switch (uVar4) {
case 0:
iVar5 = CheckRoomFlag(uVar3);
if (iVar5 == 0) {
goto _SetRoomFlag;
case DIALOG_ROOM_FLAG:
isFlagSet = CheckRoomFlag(uVar3);
if (!isFlagSet) {
SetRoomFlag(uVar3);
} else {
ClearRoomFlag(uVar3);
}
break;
case 1:
iVar5 = CheckLocalFlag(uVar3);
if (iVar5 == 0) {
goto _SetLocalFlag;
case DIALOG_LOCAL_FLAG:
isFlagSet = CheckLocalFlag(uVar3);
if (!isFlagSet) {
SetLocalFlag(uVar3);
} else {
ClearLocalFlag(uVar3);
}
break;
case 2:
iVar5 = CheckGlobalFlag(uVar3);
if (iVar5 == 0) {
case DIALOG_GLOBAL_FLAG:
isFlagSet = CheckGlobalFlag(uVar3);
if (!isFlagSet) {
SetGlobalFlag(uVar3);
} else {
ClearGlobalFlag(uVar3);
}
break;
}
goto _check;
case 4:
if (!isFlagSet) {
uVar2 = dia->data.indices.b;
} else {
uVar2 = dia->data.indices.a;
}
break;
case DIALOG_CHECK_FLAG:
uVar3 = (int)*(u32*)dia;
uVar4 = (s32)uVar3 >> 0xc & 0xf;
uVar3 = uVar3 & 0xfff;
iVar5 = 0;
isFlagSet = FALSE;
{
u32 local;
bool32 local;
switch (uVar4) {
case 0:
local = CheckRoomFlag(uVar3);
case DIALOG_ROOM_FLAG:
isFlagSet = CheckRoomFlag(uVar3);
break;
case 1:
local = CheckLocalFlag(uVar3);
case DIALOG_LOCAL_FLAG:
isFlagSet = CheckLocalFlag(uVar3);
break;
case 2:
local = CheckGlobalFlag(uVar3);
case DIALOG_GLOBAL_FLAG:
isFlagSet = CheckGlobalFlag(uVar3);
break;
case 3:
local = CheckKinstoneFused(uVar3);
case DIALOG_KINSTONE:
isFlagSet = CheckKinstoneFused(uVar3);
break;
case 4:
case DIALOG_INVENTORY:
local = GetInventoryValue(uVar3);
if (local != 0) {
local = 1;
}
isFlagSet = local;
break;
default:
goto _check;
}
iVar5 = local;
}
goto _check;
case 5:
if (!isFlagSet) {
uVar2 = dia->data.indices.b;
} else {
uVar2 = dia->data.indices.a;
}
break;
case DIALOG_CALL_FUNC:
if (dia->data.func != 0) {
dia->data.func(ent);
return;
}
default:
case 0:
case DIALOG_NONE:
uVar2 = 0;
break;
case 1:
case DIALOG_NORMAL:
uVar2 = dia->data.indices.b;
break;
case 6:
case DIALOG_MINISH:
if ((gPlayerState.flags & PL_MINISH) != 0) {
uVar2 = dia->data.indices.b;
} else {
@ -461,7 +467,7 @@ void ShowNPCDialogue(Entity* ent, const Dialog* dia) {
break;
}
if (uVar1 != 0) {
if (fromSelf) {
MessageNoOverlap(uVar2, ent);
} else {
MessageFromTarget(uVar2);