mirror of https://github.com/zeldaret/tmc.git
				
				
				
			Add DialogType and DialogFlagType enums
This commit is contained in:
		
							parent
							
								
									a957ee9580
								
							
						
					
					
						commit
						5347c5ddaf
					
				| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										120
									
								
								src/npc/cat.c
								
								
								
								
							
							
						
						
									
										120
									
								
								src/npc/cat.c
								
								
								
								
							| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										106
									
								
								src/npcUtils.c
								
								
								
								
							
							
						
						
									
										106
									
								
								src/npcUtils.c
								
								
								
								
							| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue