mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
57 lines
1.1 KiB
C
57 lines
1.1 KiB
C
#ifndef AC_MAILBOX_H
|
|
#define AC_MAILBOX_H
|
|
|
|
#include "types.h"
|
|
#include "m_actor.h"
|
|
#include "c_keyframe.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define aMBX_PLAYER_OPEN_ANGLE DEG2SHORT_ANGLE2(38.2379150390625f)
|
|
|
|
typedef struct mailbox_actor_s MAILBOX_ACTOR;
|
|
|
|
typedef void (*aMBX_ACT_PROC)(MAILBOX_ACTOR* actor, GAME_PLAY* play);
|
|
|
|
#define aMBX_JOINT_NUM 6
|
|
|
|
enum {
|
|
aMBX_REQUEST_NONE, // no current request
|
|
aMBX_REQUEST_DELIVERY, // delivery by Pete, open -> close
|
|
aMBX_REQUEST_OPEN, // player opens mailbox, hold state for submenu
|
|
|
|
aMBX_REQUEST_NUM
|
|
};
|
|
|
|
struct mailbox_actor_s {
|
|
ACTOR actor_class;
|
|
void* segp;
|
|
|
|
int kf0_state;
|
|
cKF_SkeletonInfo_R_c kf0;
|
|
s_xyz joint0[aMBX_JOINT_NUM+1];
|
|
s_xyz morph0[aMBX_JOINT_NUM+1];
|
|
int anim_idx0;
|
|
|
|
int kf1_state;
|
|
cKF_SkeletonInfo_R_c kf1;
|
|
s_xyz joint1[aMBX_JOINT_NUM+1];
|
|
s_xyz morph1[aMBX_JOINT_NUM+1];
|
|
int anim_idx1;
|
|
|
|
int action;
|
|
aMBX_ACT_PROC act_proc;
|
|
int arrange_idx;
|
|
int req;
|
|
};
|
|
|
|
extern ACTOR_PROFILE MailBox_Profile;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|