#ifndef EF_EFFECT_CONTROL_H #define EF_EFFECT_CONTROL_H #include "types.h" #include "m_lib.h" #include "m_actor.h" #ifdef __cplusplus extern "C" { #endif enum effect_type { eEC_EFFECT_SHOCK, eEC_EFFECT_DUST, eEC_EFFECT_MUKA, eEC_EFFECT_WARAU, eEC_EFFECT_HA, eEC_EFFECT_SIBUKI, eEC_EFFECT_GIMONHU, eEC_EFFECT_KANTANHU, eEC_EFFECT_ASE, eEC_EFFECT_ASE_CH, eEC_EFFECT_KANGAERU, eEC_EFFECT_OTIKOMI, eEC_EFFECT_BURUBURU, eEC_EFFECT_SIAWASE_HIKARI, eEC_EFFECT_SIAWASE_HANA, eEC_EFFECT_SIAWASE_HANA_CH, eEC_EFFECT_TAKURAMI, eEC_EFFECT_TAKURAMI_KIRA, eEC_EFFECT_KAZE, eEC_EFFECT_KAZE_HAPPA, eEC_EFFECT_LOVELOVE, eEC_EFFECT_LOVELOVE_HEART, eEC_EFFECT_PUN, eEC_EFFECT_PUN_YUGE, eEC_EFFECT_PUN_SEKIMEN, eEC_EFFECT_NAKU, eEC_EFFECT_NAMIDA, eEC_EFFECT_HIRAMEKI_DEN, eEC_EFFECT_HIRAMEKI_HIKARI, eEC_EFFECT_SITUREN, eEC_EFFECT_ASE2, eEC_EFFECT_DASH_ASIMOTO, eEC_EFFECT_KONPU, eEC_EFFECT_LOVELOVE2, eEC_EFFECT_KPUN, eEC_EFFECT_KISHA_KEMURI, eEC_EFFECT_NEBOKE, eEC_EFFECT_NEBOKE_AWA, eEC_EFFECT_HANABI_YANAGI, eEC_EFFECT_HANABI_BOTAN1, eEC_EFFECT_HANABI_BOTAN2, eEC_EFFECT_HANABI_HOSHI, eEC_EFFECT_HANABI_SET, eEC_EFFECT_HANABI_SWITCH, eEC_EFFECT_FOOTPRINT, eEC_EFFECT_TURN_FOOTPRINT, eEC_EFFECT_BUBU, eEC_EFFECT_TURN_ASIMOTO, eEC_EFFECT_STRING, eEC_EFFECT_YUKIHANE, eEC_EFFECT_ANAHIKARI, eEC_EFFECT_BUSH_HAPPA, eEC_EFFECT_BUSH_YUKI, eEC_EFFECT_TUMBLE, eEC_EFFECT_TUMBLE_BODYPRINT, eEC_EFFECT_SLIP, eEC_EFFECT_TUMBLE_DUST, eEC_EFFECT_SWING_NET, eEC_EFFECT_AMI_MIZU, eEC_EFFECT_MIZUTAMA, eEC_EFFECT_YUKIDAMA, eEC_EFFECT_KIKUZU, eEC_EFFECT_SWING_AXE, eEC_EFFECT_STEAM, eEC_EFFECT_NIGHT15_MOON, eEC_EFFECT_NIGHT13_MOON, eEC_EFFECT_NEBOKE_AKUBI, eEC_EFFECT_SLIP_FOOTPRINT, eEC_EFFECT_WALK_ASIMOTO, eEC_EFFECT_TURI_HAMON, eEC_EFFECT_TURI_MIZU, eEC_EFFECT_TURI_HANE0, eEC_EFFECT_TURI_HANE1, eEC_EFFECT_TURI_SUITEKI, eEC_EFFECT_ONGEN, eEC_EFFECT_IMPACT_STAR, eEC_EFFECT_SANDSPLASH, eEC_EFFECT_YOUNG_TREE, eEC_EFFECT_SWING_ROD, eEC_EFFECT_DOYON, eEC_EFFECT_KAGU_HAPPA, eEC_EFFECT_HANABI_DUMMY, eEC_EFFECT_DIG_HOLE, eEC_EFFECT_DIG_SCOOP, eEC_EFFECT_DIG_MUD, eEC_EFFECT_KIGAE, eEC_EFFECT_KIGAE_LIGHT, eEC_EFFECT_TAPE, eEC_EFFECT_CLACKER, eEC_EFFECT_KAMIFUBUKI, eEC_EFFECT_CAR_BLIGHT, eEC_EFFECT_TAMAIRE, eEC_EFFECT_CAR_LIGHT, eEC_EFFECT_RESET_HOLE, eEC_EFFECT_GOKI, eEC_EFFECT_HANABIRA, eEC_EFFECT_WAIT_ASIMOTO, eEC_EFFECT_OTOSIANA, eEC_EFFECT_IKIGIRE, eEC_EFFECT_YUKIDARUMA, eEC_EFFECT_KYOUSOU_ONPU, eEC_EFFECT_DOUZOU_LIGHT, eEC_EFFECT_HALLOWEEN_SMOKE, eEC_EFFECT_HALLOWEEN, eEC_EFFECT_MOTIYUGE, eEC_EFFECT_TABERU, eEC_EFFECT_KASAMIZU, eEC_EFFECT_KASAMIZUTAMA, eEC_EFFECT_HANATIRI, eEC_EFFECT_URANAI, eEC_EFFECT_SUISOU_AWA, eEC_EFFECT_BREAK_AXE, eEC_EFFECT_YAJIRUSHI, eEC_EFFECT_SOBA_YUGE, eEC_EFFECT_FURO_YUGE, eEC_EFFECT_SHOOTING, eEC_EFFECT_SHOOTING_SET, eEC_EFFECT_SHOOTING_KIRA, eEC_EFFECT_COIN, eEC_EFFECT_TENT_LAMP, eEC_EFFECT_FLASH, eEC_EFFECT_FLASHC, eEC_EFFECT_KILLER, eEC_EFFECT_MAKE_HEM, eEC_EFFECT_MAKE_HEM_KIRA, eEC_EFFECT_MAKE_HEM_LIGHT, eEC_EFFECT_NUM }; enum { eEC_LIGHT_COLOR_DISABLED, eEC_LIGHT_COLOR_INCREASING, eEC_LIGHT_COLOR_MAXIMUM, eEC_LIGHT_COLOR_DECREASING, eEC_LIGHT_COLOR_NUM }; typedef void (*eEC_NAME2EFFECTMAKE_PROC)(int, xyz_t, int, short, GAME*, u16, s16, s16); typedef void (*eEC_NAME2EFFECTKILL_PROC)(int, u16); typedef void (*eEC_REGISTEFFECTLIGHT_PROC)(f32*, s16, s16, s16); typedef int (*eEC_EFFECTLIGHTSTATUS_PROC)(rgba_t*, int*); // returns eEC_LIGHT_COLOR_* typedef struct effect_control_clip_s { /* 0x00 */ eEC_NAME2EFFECTMAKE_PROC effect_make_proc; /* 0x04 */ eEC_NAME2EFFECTKILL_PROC effect_kill_proc; /* 0x08 */ u8 _08[0x30 - 0x08]; /* 0x30 */ eEC_REGISTEFFECTLIGHT_PROC regist_effect_light; /* 0x34 */ void* _34; /* 0x38 */ void* _38; /* 0x3C */ eEC_EFFECTLIGHTSTATUS_PROC effect_light_status; /* 0x40 */ void* _40; /* 0x44 */ void* _44; } eEC_EffectControl_Clip_c; typedef struct effect_control_s EFFECT_CONTROL_ACTOR; struct effect_control_s { ACTOR actor_class; eEC_EffectControl_Clip_c clip; }; extern ACTOR_PROFILE Effect_Control_Profile; #ifdef __cplusplus } #endif #endif