Files
ac-decomp/include/ac_npc_totakeke.h

127 lines
2.9 KiB
C

#ifndef AC_NPC_TOTAKEKE_H
#define AC_NPC_TOTAKEKE_H
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#include "m_item_name.h"
#ifdef __cplusplus
extern "C" {
#endif
extern ACTOR_PROFILE Npc_Totakeke_Profile;
// @BUG - this should've been updated to mIN_ITEM_NAME_LEN
#ifndef BUGFIXES
#define aNTT_REQUEST_STR_LEN 10
#else
#define aNTT_REQUEST_STR_LEN mIN_ITEM_NAME_LEN
#endif
typedef struct npc_totakeke_s NPC_TOTAKEKE_ACTOR;
typedef struct npc_totakeke_think_data_s aNTT_think_data_c;
typedef struct npc_totakeke_event_save_s aNTT_event_save_c;
typedef struct npc_totakeke_event_common_s aNTT_event_common_c;
typedef void (*aNTT_PROC)(NPC_TOTAKEKE_ACTOR* totakeke, GAME_PLAY* play);
struct npc_totakeke_s {
/* 0x000 */ NPC_ACTOR npc_class;
/* 0x994 */ aNTT_PROC proc;
/* 0x998 */ s16 roll2_count;
/* 0x99a */ s16 roll4_count;
/* 0x99c */ s16 show_timer;
/* 0x99e */ u8 song;
/* 0x99f */ u8 _99f;
/* 0x9a0 */ u8 _9a0;
/* 0x9a1 */ u8 _9a1;
/* 0x9a2 */ u8 _9a2;
/* 0x9a3 */ u8 talk;
/* 0x9a4 */ u8 think;
/* 0x9a5 */ u8 pre_roll_think;
/* 0x9a6 */ u8 post_roll_think;
/* 0x9a7 */ u8 melody_inst;
/* 0x9a8 */ u8 think_proc_id;
/* 0x9a9 */ u8 majin_flag;
/* 0x9aa */ u8 _9aa;
/* 0x9ab */ u8 _9ab;
};
struct npc_totakeke_think_data_s {
/* 0x00 */ u8 think_proc_id;
/* 0x01 */ u8 think_init_idx;
/* 0x02 */ u8 next_talk;
/* 0x03 */ u8 talk;
/* 0x04 */ u8 pre_roll_think;
};
#define aNTT_FLAG_HELLO (1 << 0)
#define aNTT_FLAG_1 (1 << 1)
#define aNTT_FLAG_2 (1 << 2)
#define aNTT_FLAG_3 (1 << 3)
#define aNTT_FLAG_AIRCHECK_RECEIVED (1 << 4)
#define aNTT_FLAG_5 (1 << 5)
#define aNTT_FLAG_6 (1 << 6)
#define aNTT_FLAG_7 (1 << 7)
#define aNTT_FLAG_SP_DELETE_MAJIN (1 << 13)
#define aNTT_FLAG_SP_ROLL_DRAW (1 << 14)
#define aNTT_FLAG_SP_ROLL_END (1 << 15)
struct npc_totakeke_event_save_s {
/* 0x00 */ s16 _00;
/* 0x01 */ u16 bitfield;
/* 0x04 */ u8 request_str[mIN_ITEM_NAME_LEN];
/* 0x14 */ u8 roll_flag;
/* 0x15 */ u8 copyright_alpha;
};
struct npc_totakeke_event_common_s {
/* 0x00 */ u16 foreigner_bitfield;
/* 0x02 */ u16 _02;
/* 0x04 */ u8 request_str;
/* 0x05 */ u16 _05;
/* 0x07 */ u8 _07;
/* 0x08 */ u8 _08;
/* 0x09 */ u8 _09;
/* 0x0a */ u8 _0a;
/* 0x0b */ u8 _0b;
/* 0x0c */ u8 _0c;
/* 0x0d */ u8 _0d;
/* 0x0e */ u8 _0e;
/* 0x0f */ u8 _0f;
};
enum aNTT_talk_proc {
aNTT_TALK_NONE,
aNTT_TALK_SELECT0,
aNTT_TALK_SELECT1,
aNTT_TALK_STOP_PLAYER,
aNTT_TALK_SUBMENU,
aNTT_TALK_SUBMENU2,
aNTT_TALK_GIVE
};
enum aNTT_think_proc {
aNTT_THINK_NONE,
aNTT_THINK_WAIT,
aNTT_THINK_ROLL,
aNTT_THINK_ROLL1,
aNTT_THINK_ROLL2,
aNTT_THINK_ROLL4,
aNTT_THINK_ROLL_END,
aNTT_THINK_7,
aNTT_THINK_8,
aNTT_THINK_9,
aNTT_THINK_GIVE_MERODY,
aNTT_THINK_POCKETS_FULL,
aNTT_THINK_GIVE_LATER,
};
#ifdef __cplusplus
}
#endif
#endif