Files
2024-08-31 06:35:33 -04:00

61 lines
1.2 KiB
C

#ifndef AC_SIGN_H
#define AC_SIGN_H
#include "types.h"
#include "m_actor.h"
#include "m_field_make.h"
#include "m_olib.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aSIGN_SINGLE_NUM 10
#define aSIGN_CULL_MAX_DIST (mFI_UNIT_BASE_SIZE_F * 4)
typedef struct sign_actor_s SIGN_ACTOR;
typedef struct sign_draw_s {
BlockOrUnit_c block;
u16 exist_bitfield[UT_Z_NUM];
} aSIGN_draw_c;
typedef struct sign_single_s {
BlockOrUnit_c block;
BlockOrUnit_c unit;
mActor_name_t item;
xyz_t scale;
f32 _20;
s16 _24;
s16 _26;
int exist_flag;
} aSIGN_single_c;
typedef void (*aSIGN_ACTION_PROC)(SIGN_ACTOR*, GAME*);
struct sign_actor_s {
ACTOR actor_class;
aSIGN_ACTION_PROC action_proc;
aSIGN_draw_c draw[mFM_VISIBLE_BLOCK_NUM];
aSIGN_single_c single[aSIGN_SINGLE_NUM];
BlockOrUnit_c target_block;
BlockOrUnit_c target_unit;
xyz_t target_pos;
xyz_t sign_birth_pos;
xyz_t sign_pos;
int _404;
int is_winter;
};
extern int aSIGN_set_white_sign(GAME* game, xyz_t* pos_p);
extern int aSIGN_erase_white_sign(GAME* game, xyz_t* pos_p);
extern ACTOR_PROFILE Ac_Sign_Profile;
#ifdef __cplusplus
}
#endif
#endif