#ifndef AC_EV_GHOST_H #define AC_EV_GHOST_H #include "types.h" #include "m_actor.h" #include "ac_npc.h" #ifdef __cplusplus extern "C" { #endif #define aEGH_MINIMUM_GRASS_COUNT 8 #define aEGH_BIT_FOUND_GHOST 1 enum { aEGH_ITEM_LIST_FTR_A, aEGH_ITEM_LIST_FTR_B, aEGH_ITEM_LIST_FTR_C, aEGH_ITEM_LIST_FTR_EVENT, aEGH_ITEM_LIST_FTR_LOTTERY, aEGH_ITEM_LIST_CARPET_A, aEGH_ITEM_LIST_CARPET_B, aEGH_ITEM_LIST_CARPET_C, aEGH_ITEM_LIST_CARPET_EVENT, aEGH_ITEM_LIST_WALL_A, aEGH_ITEM_LIST_WALL_B, aEGH_ITEM_LIST_WALL_C, aEGH_ITEM_LIST_WALL_EVENT, aEGH_ITEM_LIST_CLOTH_A, aEGH_ITEM_LIST_CLOTH_B, aEGH_ITEM_LIST_CLOTH_C, aEGH_ITEM_LIST_CLOTH_EVENT, aEGH_ITEM_LIST_BINSEN_A, aEGH_ITEM_LIST_BINSEN_B, aEGH_ITEM_LIST_BINSEN_C, aEGH_ITEM_LIST_HANIWA, aEGH_ITEM_LIST_UMBRELLA, aEGH_ITEM_LIST_NUM }; typedef struct ev_ghost_s EV_GHOST_ACTOR; typedef void (*aEGH_PROC)(EV_GHOST_ACTOR*, GAME_PLAY*); struct ev_ghost_s { /* 0x000 */ NPC_ACTOR npc_class; /* 0x994 */ aEGH_PROC think_proc; /* 0x998 */ int msg_no; /* 0x99C */ mActor_name_t give_item; /* 0x99E */ s16 bye_bye_angle; /* 0x9A0 */ u8 bye_bye_timer; /* 0x9A1 */ u8 bye_bye_scale_timer; /* 0x9A2 */ u8 bye_bye_transparency_delay_timer; /* 0x9A3 */ u8 think_act; /* 0x9A4 */ u8 after_talk_think_act; /* 0x9A5 */ u8 _9A5; /* 0x9A6 */ u8 talk_act; /* 0x9A7 */ u8 _9A7; /* 0x9A8 */ u8 melody_inst; /* 0x9A9 */ u8 alpha; /* 0x9AA */ u8 _9AA; /* 0x9AB */ u8 roof_pal; /* 0x9AC */ u8 _9AC; }; extern ACTOR_PROFILE Ev_Ghost_Profile; #ifdef __cplusplus } #endif #endif