Files
2024-11-02 09:09:41 -04:00

96 lines
2.0 KiB
C

#ifndef AC_EFFECTBG_H
#define AC_EFFECTBG_H
#include "types.h"
#include "m_actor.h"
#include "c_keyframe.h"
#ifdef __cplusplus
extern "C" {
#endif
#define EffectBg_ENTRY_NUM 3
#define EffectBg_JOINT_NUM 4
#define EffectBg_JOINT_ALL 6
enum {
EffectBG_EFFECT_SHAKE,
EffectBG_EFFECT_CUT_LEFT,
EffectBG_EFFECT_CUT_RIGHT,
EffectBG_EFFECT_SHAKE_SMALL,
EffectBG_EFFECT_SHAKE_LARGE,
EffectBG_EFFECT_NUM,
EffectBG_EFFECT_CUT_RIGHT_PALM = EffectBG_EFFECT_NUM,
EffectBG_EFFECT_CUT_RIGHT_CEDAR,
EffectBG_EFFECT_CUT_RIGHT_GOLD
};
enum {
EffectBG_VARIANT_TREE_SMALL = -1,
EffectBG_VARIANT_TREE_MED,
EffectBG_VARIANT_TREE_LARGE,
EffectBG_VARIANT_TREE_FULL,
EffectBG_VARIANT_NUM,
EffectBG_VARIANT_TREE_XMAS = EffectBG_VARIANT_NUM,
EffectBG_VARIANT_PALM_SMALL,
EffectBG_VARIANT_PALM_MED,
EffectBG_VARIANT_PALM_LARGE,
EffectBG_VARIANT_PALM_FULL,
EffectBG_VARIANT_CEDAR_SMALL,
EffectBG_VARIANT_CEDAR_MED,
EffectBG_VARIANT_CEDAR_LARGE,
EffectBG_VARIANT_CEDAR_FULL,
EffectBG_VARIANT_CEDAR_XMAS,
EffectBG_VARIANT_GOLD_SMALL,
EffectBG_VARIANT_GOLD_MED,
EffectBG_VARIANT_GOLD_LARGE,
EffectBG_VARIANT_GOLD_FULL,
EffectBG_VARIANT_ALL
};
typedef void (*EffectBG_MAKE_EFFECTBG_PROC)(GAME*, s16, s16, xyz_t*);
typedef struct effectbg_entry_s {
cKF_SkeletonInfo_R_c keyframe;
Mtx mtx[2][EffectBg_JOINT_ALL];
xyz_t base_pos;
xyz_t effect_pos;
s_xyz work[EffectBg_JOINT_NUM];
s_xyz morph[EffectBg_JOINT_NUM];
s16 timer;
s16 timer_max;
s16 type;
s16 variant;
s16 add_angle;
s16 leaf_angle;
u8 status;
int block_ux;
int block_uz;
} EffectBg_c;
typedef struct effectbg_actor_s EFFECTBG_ACTOR;
struct effectbg_actor_s {
ACTOR actor_class;
int _174;
EffectBg_c effect[EffectBg_ENTRY_NUM];
int _CE8;
u16* tree_pal;
u16* palm_pal;
u16* palm_pal2;
u16* gold_pal;
int _CFC;
};
extern ACTOR_PROFILE Effectbg_Profile;
#ifdef __cplusplus
}
#endif
#endif