mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
106 lines
3.6 KiB
C
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
|