mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-22 22:24:16 -04:00
61 lines
1.2 KiB
C
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
|