Files
ac-decomp/include/ac_npc_mask_cat2.h
2025-05-19 01:56:19 -05:00

106 lines
3.6 KiB
C

#ifndef AC_NPC_MASK_CAT2_H
#define AC_NPC_MASK_CAT2_H
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct npc_mask_cat2_s NPC_MASK_CAT2_ACTOR;
typedef void (*aNM2_TALK_PROC)(NPC_MASK_CAT2_ACTOR*, GAME_PLAY*);
typedef void (*aNM2_INIT_PROC)(NPC_MASK_CAT2_ACTOR*, GAME_PLAY*);
typedef void (*aNM2_MOVE_PROC)(ACTOR*, GAME*);
/* sizeof(np_mask_cat2) == 0x9d0 */
struct npc_mask_cat2_s {
/* 0x000 */ NPC_ACTOR npc_class;
/* 0x994 */ int action;
/* 0x998 */ aNM2_MOVE_PROC move_proc;
/* 0x99C */ BOOL lock_camera_flag;
/* 0x9A0 */ int camera_morph_counter;
/* 0x9A4 */ s16 camera_move;
/* 0x9A6 */ s8 camera_move_cnt;
/* 0x9A7 */ s8 camera_move_set_counter;
/* 0x9A8 */ float camera_move_y;
/* 0x9AC */ float camera_move_range;
/* 0x9B0 */ ACTOR* train_door_actor;
/* 0x9B4 */ int obj_look_type;
/* 0x9B8 */ float obj_dist_ground;
/* 0x9BC */ BOOL camera_eyes_flag;
/* 0x9C0 */ float wait_timer;
/* 0x9C4 */ int unkRotation; // related to head rotation (see aNM2_sitdown_init)
/* 0x9C8 */ u32 arg;
/* 0x9CC */ ACTOR* sasho_actor;
};
extern ACTOR_PROFILE Npc_Mask_Cat2_Profile;
// clang-format off
enum {
aNM2_INIT_ANNOUNCE_START_WAIT, // 0
aNM2_INIT_NONE_1, // 1
aNM2_INIT_NONE_2, // 2
aNM2_INIT_NONE_3, // 3
aNM2_INIT_ANNOUNCE_START_WAIT2, // 4
aNM2_INIT_NONE_4, // 5
aNM2_INIT_NONE_5, // 6
aNM2_INIT_NONE_6, // 7
aNM2_INIT_WALK_DECK, // 8
aNM2_INIT_TURN_DECK, // 9
aNM2_INIT_KEITAI_OFF_START_WAIT, // 10
aNM2_INIT_KEITAI_OFF_END_WAIT, // 11
aNM2_INIT_NONE_7, // 12
aNM2_INIT_NONE_8, // 13
aNM2_INIT_APPROACH, // 14
aNM2_INIT_TALK_START_WAIT, // 15
aNM2_INIT_TALK_START_WAIT2, // 16
aNM2_INIT_SITDOWN_START_WAIT, // 17
aNM2_INIT_SITDOWN, // 18
aNM2_INIT_NONE_9, // 19
aNM2_INIT_DRAW_MENU_OPEN_WAIT, // 20
aNM2_INIT_DRAW_MENU_CLOSE_WAIT, // 21
aNM2_INIT_MSG_WIN_OPEN_WAIT, // 22
aNM2_INIT_TALK_END_WAIT, // 23
aNM2_INIT_SCENE_CHANGE_WAIT, // 24
aNM2_INIT_PROC_NUM
};
enum {
aNM2_MOVE_ANNOUNCE_START_WAIT, // 0
aNM2_MOVE_SAVE_START_WAIT, // 1
aNM2_MOVE_SAVE_END_WAIT, // 2
aNM2_MOVE_ANNOUNCE_END_WAIT, // 3
aNM2_MOVE_ANNOUNCE_START_WAIT_DUPE_1,// 4
aNM2_MOVE_SAVE_START_WAIT_DUPE_1, // 5
aNM2_MOVE_SAVE_END_WAIT_DUPE_1, // 6
aNM2_MOVE_ANNOUNCE_END_WAIT_DUPE_1, // 7
aNM2_MOVE_WALK_DECK, // 8
aNM2_MOVE_TURN_DECK, // 9
aNM2_MOVE_KEITAI_OFF_START_WAIT, // 10
aNM2_MOVE_KEITAI_OFF_END_WAIT, // 11
aNM2_MOVE_ENTER, // 12
aNM2_MOVE_ENTER_DUPE_1, // 13
aNM2_MOVE_APPROACH, // 14
aNM2_MOVE_TALK_START_WAIT, // 15
aNM2_MOVE_TALK_START_WAIT2, // 16
aNM2_MOVE_SITDOWN_START_WAIT, // 17
aNM2_MOVE_SITDOWN, // 18
aNM2_MOVE_SDON_AND_PB_WAIT, // 19
aNM2_MOVE_DRAW_MENU_OPEN_WAIT, // 20
aNM2_MOVE_DRAW_MENU_CLOSE_WAIT, // 21
aNM2_MOVE_MSG_WIN_OPEN_WAIT, // 22
aNM2_MOVE_TALK_END_WAIT, // 23
aNM2_MOVE_NONE, // 24
aNM2_MOVE_PROC_NUM
};
// clang-format on
#ifdef __cplusplus
}
#endif
#endif