Files
ac-decomp/include/ac_ev_dozaemon.h
2025-02-08 01:45:20 -05:00

77 lines
1.3 KiB
C

#ifndef AC_EV_DOZAEMON_H
#define AC_EV_DOZAEMON_H
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aEDZ_SAVE_FLAG_WAKEUP (1 << 0)
#define aEDZ_SAVE_FLAG_GIVE (1 << 1)
#define aEDZ_SAVE_FLAG_GAVE_FIRST (1 << 2)
enum {
aEDZ_INIT_PROC_NONE,
aEDZ_INIT_PROC_NORMAL_WAIT,
aEDZ_INIT_PROC_TAORERU,
aEDZ_INIT_PROC_OKIAGARU,
aEDZ_INIT_PROC_WANDER,
aEDZ_INIT_PROC_NUM
};
enum {
aEDZ_THINK_PROC_NONE,
aEDZ_THINK_PROC_ANIME_NEXT,
aEDZ_THINK_PROC_NUM
};
enum {
aEDZ_TALK_PROC_NONE,
aEDZ_TALK_PROC_NORMAL,
aEDZ_TALK_PROC_FORCE,
aEDZ_TALK_PROC_NUM
};
enum {
aEDZ_THINK_NORMAL_WAIT,
aEDZ_THINK_TAORERU,
aEDZ_THINK_OKIAGARU,
aEDZ_THINK_OKIAGARU_AFTER,
aEDZ_THINK_WANDER,
aEDZ_THINK_NUM
};
typedef struct dozaemon_actor_s DOZAEMON_ACTOR;
typedef void (*aEDZ_THINK_PROC)(DOZAEMON_ACTOR* actor, GAME_PLAY* play);
typedef void (*aEDZ_TALK_PROC)(DOZAEMON_ACTOR* actor, GAME_PLAY* play);
struct dozaemon_actor_s {
NPC_ACTOR npc_class;
aEDZ_THINK_PROC think_proc;
aEDZ_TALK_PROC talk_proc;
s16 give_flag;
s16 _99E[2];
u8 think_idx;
u8 next_think_idx;
u8 _9A4;
u8 _9A5;
u8 change_think;
u8 melody_backup;
};
extern ACTOR_PROFILE Ev_Dozaemon_Profile;
#ifdef __cplusplus
}
#endif
#endif