mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Match m_player_main_wade.c_inc
This commit is contained in:
+211
-199
@@ -10,321 +10,321 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
CAMERA2_PROCESS_STOP,
|
||||
CAMERA2_PROCESS_NORMAL,
|
||||
CAMERA2_PROCESS_WADE,
|
||||
CAMERA2_PROCESS_TALK,
|
||||
CAMERA2_PROCESS_DEMO,
|
||||
CAMERA2_PROCESS_ITEM,
|
||||
CAMERA2_PROCESS_LOCK,
|
||||
CAMERA2_PROCESS_DOOR,
|
||||
CAMERA2_PROCESS_SIMPLE,
|
||||
CAMERA2_PROCESS_CUST_TALK,
|
||||
CAMERA2_PROCESS_INTER,
|
||||
CAMERA2_PROCESS_STAFF_ROLL,
|
||||
CAMERA2_PROCESS_INTER2,
|
||||
CAMERA2_PROCESS_STOP,
|
||||
CAMERA2_PROCESS_NORMAL,
|
||||
CAMERA2_PROCESS_WADE,
|
||||
CAMERA2_PROCESS_TALK,
|
||||
CAMERA2_PROCESS_DEMO,
|
||||
CAMERA2_PROCESS_ITEM,
|
||||
CAMERA2_PROCESS_LOCK,
|
||||
CAMERA2_PROCESS_DOOR,
|
||||
CAMERA2_PROCESS_SIMPLE,
|
||||
CAMERA2_PROCESS_CUST_TALK,
|
||||
CAMERA2_PROCESS_INTER,
|
||||
CAMERA2_PROCESS_STAFF_ROLL,
|
||||
CAMERA2_PROCESS_INTER2,
|
||||
|
||||
CAMERA2_PROCESS_NUM
|
||||
CAMERA2_PROCESS_NUM
|
||||
};
|
||||
|
||||
typedef struct camera_main_cust_talk_s {
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
f32 center_ratio;
|
||||
f32 cull_timer;
|
||||
s16 angle_x;
|
||||
s16 angle_y;
|
||||
f32 distance;
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
f32 center_ratio;
|
||||
f32 cull_timer;
|
||||
s16 angle_x;
|
||||
s16 angle_y;
|
||||
f32 distance;
|
||||
} CameraCustTalk;
|
||||
|
||||
typedef struct camera_main_demo_s {
|
||||
xyz_t starting_center_pos;
|
||||
f32 starting_distance;
|
||||
s_xyz starting_direction;
|
||||
xyz_t starting_center_pos;
|
||||
f32 starting_distance;
|
||||
s_xyz starting_direction;
|
||||
|
||||
xyz_t goal_center_pos;
|
||||
f32 goal_distance;
|
||||
s_xyz goal_direction;
|
||||
xyz_t goal_center_pos;
|
||||
f32 goal_distance;
|
||||
s_xyz goal_direction;
|
||||
|
||||
f32 goal_delta;
|
||||
f32 acceleration_delta;
|
||||
f32 braking_delta;
|
||||
f32 now_delta;
|
||||
f32 goal_delta;
|
||||
f32 acceleration_delta;
|
||||
f32 braking_delta;
|
||||
f32 now_delta;
|
||||
} CameraDemo;
|
||||
|
||||
typedef struct camera_main_door_s {
|
||||
u32 flags;
|
||||
int morph_counter;
|
||||
xyz_t center_position;
|
||||
u32 flags;
|
||||
int morph_counter;
|
||||
xyz_t center_position;
|
||||
} CameraDoor;
|
||||
|
||||
typedef struct camera_main_inter_s {
|
||||
xyz_t starting_center_pos;
|
||||
xyz_t starting_eye_pos;
|
||||
|
||||
xyz_t goal_center_pos;
|
||||
xyz_t goal_eye_pos;
|
||||
xyz_t starting_center_pos;
|
||||
xyz_t starting_eye_pos;
|
||||
|
||||
f32 slope0;
|
||||
f32 slope1;
|
||||
xyz_t goal_center_pos;
|
||||
xyz_t goal_eye_pos;
|
||||
|
||||
u32 flags;
|
||||
f32 slope0;
|
||||
f32 slope1;
|
||||
|
||||
int now_delta;
|
||||
int max_delta;
|
||||
u32 flags;
|
||||
|
||||
int pad[2];
|
||||
int now_delta;
|
||||
int max_delta;
|
||||
|
||||
int pad[2];
|
||||
} CameraInter;
|
||||
|
||||
typedef struct camera_main_item_s {
|
||||
int type;
|
||||
f32 cull_timer;
|
||||
int type;
|
||||
f32 cull_timer;
|
||||
} CameraItem;
|
||||
|
||||
typedef struct camera_main_lock_s {
|
||||
xyz_t center_pos;
|
||||
xyz_t eye_pos;
|
||||
xyz_t center_pos;
|
||||
xyz_t eye_pos;
|
||||
|
||||
f32 fov_y;
|
||||
f32 fov_y;
|
||||
|
||||
int morph_counter;
|
||||
int morph_counter;
|
||||
|
||||
f32 near;
|
||||
f32 far;
|
||||
f32 near;
|
||||
f32 far;
|
||||
} CameraLock;
|
||||
|
||||
typedef struct camera_main_normal_s {
|
||||
u32 flags;
|
||||
u32 flags;
|
||||
|
||||
int last_indoor_distance_addition_idx;
|
||||
int last_indoor_direction_addition_idx;
|
||||
int last_indoor_distance_addition_idx;
|
||||
int last_indoor_direction_addition_idx;
|
||||
|
||||
int morph_counter;
|
||||
int morph_counter;
|
||||
} CameraNormal;
|
||||
|
||||
typedef struct camera_main_simple_s {
|
||||
xyz_t center_pos;
|
||||
s_xyz angle;
|
||||
f32 distance;
|
||||
xyz_t center_pos;
|
||||
s_xyz angle;
|
||||
f32 distance;
|
||||
|
||||
int morph_counter;
|
||||
int mode;
|
||||
int morph_counter;
|
||||
int mode;
|
||||
|
||||
f32 cull_timer;
|
||||
f32 cull_timer;
|
||||
} CameraSimple;
|
||||
|
||||
typedef struct camera_main_staff_roll_s {
|
||||
xyz_t last_center_pos;
|
||||
xyz_t last_eye_pos;
|
||||
f32 last_distance;
|
||||
xyz_t last_center_pos;
|
||||
xyz_t last_eye_pos;
|
||||
f32 last_distance;
|
||||
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
|
||||
s16 rotation_y_delta;
|
||||
s16 r_delta;
|
||||
s16 rotation_x_delta;
|
||||
s16 rotation_y_delta;
|
||||
s16 r_delta;
|
||||
s16 rotation_x_delta;
|
||||
|
||||
u16 flags;
|
||||
u16 morph_counter;
|
||||
u16 pad;
|
||||
u16 dist_counter;
|
||||
s_xyz last_direction;
|
||||
u16 flags;
|
||||
u16 morph_counter;
|
||||
u16 pad;
|
||||
u16 dist_counter;
|
||||
s_xyz last_direction;
|
||||
} CameraStaffRoll;
|
||||
|
||||
typedef struct camera_main_talk_s {
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
|
||||
xyz_t listener_pos;
|
||||
|
||||
f32 cull_timer;
|
||||
u32 flags;
|
||||
xyz_t listener_pos;
|
||||
|
||||
xyz_t goal_center_pos;
|
||||
f32 cull_timer;
|
||||
u32 flags;
|
||||
|
||||
xyz_t goal_center_pos;
|
||||
} CameraTalk;
|
||||
|
||||
typedef struct camera_main_wade_s {
|
||||
f32 timer;
|
||||
f32 timer;
|
||||
|
||||
xyz_t start_pos;
|
||||
xyz_t goal_pos;
|
||||
xyz_t start_pos;
|
||||
xyz_t goal_pos;
|
||||
|
||||
f32 goal_time;
|
||||
f32 goal_time;
|
||||
} CameraWade;
|
||||
|
||||
typedef union camera_main_data_u {
|
||||
CameraCustTalk cust_talk;
|
||||
CameraDemo demo;
|
||||
CameraDoor door;
|
||||
CameraInter inter;
|
||||
CameraItem item;
|
||||
CameraLock lock;
|
||||
CameraNormal normal;
|
||||
CameraSimple simple;
|
||||
CameraStaffRoll staff_roll;
|
||||
CameraTalk talk;
|
||||
CameraWade wade;
|
||||
|
||||
u64 align;
|
||||
CameraCustTalk cust_talk;
|
||||
CameraDemo demo;
|
||||
CameraDoor door;
|
||||
CameraInter inter;
|
||||
CameraItem item;
|
||||
CameraLock lock;
|
||||
CameraNormal normal;
|
||||
CameraSimple simple;
|
||||
CameraStaffRoll staff_roll;
|
||||
CameraTalk talk;
|
||||
CameraWade wade;
|
||||
|
||||
u64 align;
|
||||
} CameraMainData;
|
||||
|
||||
/* request index data */
|
||||
|
||||
typedef struct camera_request_cust_talk_s {
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
f32 center_ratio;
|
||||
s16 angle_x;
|
||||
s16 angle_y;
|
||||
f32 distance;
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
f32 center_ratio;
|
||||
s16 angle_x;
|
||||
s16 angle_y;
|
||||
f32 distance;
|
||||
} CameraRequestCustTalk;
|
||||
|
||||
typedef struct camera_request_demo_s {
|
||||
xyz_t starting_center_pos;
|
||||
f32 starting_distance;
|
||||
s_xyz starting_direction;
|
||||
xyz_t starting_center_pos;
|
||||
f32 starting_distance;
|
||||
s_xyz starting_direction;
|
||||
|
||||
xyz_t goal_center_pos;
|
||||
f32 goal_distance;
|
||||
s_xyz goal_direction;
|
||||
xyz_t goal_center_pos;
|
||||
f32 goal_distance;
|
||||
s_xyz goal_direction;
|
||||
|
||||
f32 goal_delta;
|
||||
f32 acceleration_delta;
|
||||
f32 braking_delta;
|
||||
f32 goal_delta;
|
||||
f32 acceleration_delta;
|
||||
f32 braking_delta;
|
||||
} CameraRequestDemo;
|
||||
|
||||
typedef struct camera_request_door_s {
|
||||
ACTOR* door_actor;
|
||||
u32 flags;
|
||||
ACTOR* door_actor;
|
||||
u32 flags;
|
||||
} CameraRequestDoor;
|
||||
|
||||
typedef struct camera_request_inter_s {
|
||||
xyz_t starting_center_pos;
|
||||
xyz_t starting_eye_pos;
|
||||
|
||||
xyz_t goal_center_pos;
|
||||
xyz_t goal_eye_pos;
|
||||
xyz_t starting_center_pos;
|
||||
xyz_t starting_eye_pos;
|
||||
|
||||
f32 slope0;
|
||||
f32 slope1;
|
||||
xyz_t goal_center_pos;
|
||||
xyz_t goal_eye_pos;
|
||||
|
||||
u32 flags;
|
||||
f32 slope0;
|
||||
f32 slope1;
|
||||
|
||||
int morph_counter;
|
||||
u32 flags;
|
||||
|
||||
int pad[2];
|
||||
int morph_counter;
|
||||
|
||||
int pad[2];
|
||||
} CameraRequestInter;
|
||||
|
||||
typedef struct camera_request_item_s {
|
||||
int type;
|
||||
int type;
|
||||
} CameraRequestItem;
|
||||
|
||||
typedef struct camera_request_lock_s {
|
||||
xyz_t center_pos;
|
||||
xyz_t eye_pos;
|
||||
xyz_t center_pos;
|
||||
xyz_t eye_pos;
|
||||
|
||||
f32 fov_y;
|
||||
f32 fov_y;
|
||||
|
||||
int morph_counter;
|
||||
int morph_counter;
|
||||
|
||||
f32 near;
|
||||
f32 far;
|
||||
f32 near;
|
||||
f32 far;
|
||||
} CameraRequestLock;
|
||||
|
||||
typedef struct camera_request_normal_s {
|
||||
xyz_t position;
|
||||
xyz_t position;
|
||||
|
||||
int flags;
|
||||
int flags;
|
||||
} CameraRequestNormal;
|
||||
|
||||
typedef struct camera_request_simple_s {
|
||||
xyz_t center_pos;
|
||||
s_xyz angle;
|
||||
f32 distance;
|
||||
xyz_t center_pos;
|
||||
s_xyz angle;
|
||||
f32 distance;
|
||||
|
||||
int morph_counter;
|
||||
int mode;
|
||||
int morph_counter;
|
||||
int mode;
|
||||
} CameraRequestSimple;
|
||||
|
||||
typedef struct camera_request_staff_roll_s {
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
} CameraRequestStaffRoll;
|
||||
|
||||
typedef struct camera_request_talk_s {
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
ACTOR* speaker_actor;
|
||||
ACTOR* listener_actor;
|
||||
|
||||
xyz_t listener_pos;
|
||||
xyz_t listener_pos;
|
||||
|
||||
u32 flags;
|
||||
u32 flags;
|
||||
} CameraRequestTalk;
|
||||
|
||||
typedef struct camera_request_wade_s {
|
||||
xyz_t goal_pos;
|
||||
f32 goal_time;
|
||||
xyz_t goal_pos;
|
||||
f32 goal_time;
|
||||
} CameraRequestWade;
|
||||
|
||||
typedef union camera_request_data_u {
|
||||
CameraRequestCustTalk cust_talk;
|
||||
CameraRequestDemo demo;
|
||||
CameraRequestDoor door;
|
||||
CameraRequestInter inter;
|
||||
CameraRequestItem item;
|
||||
CameraRequestLock lock;
|
||||
CameraRequestNormal normal;
|
||||
CameraRequestSimple simple;
|
||||
CameraRequestStaffRoll staff_roll;
|
||||
CameraRequestTalk talk;
|
||||
CameraRequestWade wade;
|
||||
|
||||
u64 align;
|
||||
CameraRequestCustTalk cust_talk;
|
||||
CameraRequestDemo demo;
|
||||
CameraRequestDoor door;
|
||||
CameraRequestInter inter;
|
||||
CameraRequestItem item;
|
||||
CameraRequestLock lock;
|
||||
CameraRequestNormal normal;
|
||||
CameraRequestSimple simple;
|
||||
CameraRequestStaffRoll staff_roll;
|
||||
CameraRequestTalk talk;
|
||||
CameraRequestWade wade;
|
||||
|
||||
u64 align;
|
||||
} CameraRequestData;
|
||||
|
||||
typedef struct camera_lookat_s {
|
||||
xyz_t eye;
|
||||
xyz_t center;
|
||||
xyz_t up;
|
||||
xyz_t eye;
|
||||
xyz_t center;
|
||||
xyz_t up;
|
||||
} CameraLookat;
|
||||
|
||||
typedef struct camera_perspective_s {
|
||||
f32 fov_y;
|
||||
f32 aspect_ratio;
|
||||
f32 near;
|
||||
f32 far;
|
||||
f32 scale;
|
||||
f32 fov_y;
|
||||
f32 aspect_ratio;
|
||||
f32 near;
|
||||
f32 far;
|
||||
f32 scale;
|
||||
} CameraPerspective;
|
||||
|
||||
typedef struct camera_s {
|
||||
CameraLookat lookat;
|
||||
CameraPerspective perspective;
|
||||
CameraLookat lookat;
|
||||
CameraPerspective perspective;
|
||||
|
||||
s_xyz direction; /* camera orientation */
|
||||
s_xyz direction_velocity; /* camera orentation rate of change */
|
||||
s_xyz direction; /* camera orientation */
|
||||
s_xyz direction_velocity; /* camera orentation rate of change */
|
||||
|
||||
xyz_t movement_velocity; /* camera world position velocity */
|
||||
xyz_t movement_velocity; /* camera world position velocity */
|
||||
|
||||
f32 focus_distance; /* distance to the camera focal point/subject */
|
||||
f32 focus_distance_velocity; /* rate of change of the camera focus */
|
||||
f32 focus_distance; /* distance to the camera focal point/subject */
|
||||
f32 focus_distance_velocity; /* rate of change of the camera focus */
|
||||
|
||||
int indoor_distance_addition_idx; /* index of indoor distance adjustment LUT value to apply */
|
||||
int indoor_direction_addition_idx; /* index of indoor direction adjustment LUT value to apply */
|
||||
int indoor_distance_addition_idx; /* index of indoor distance adjustment LUT value to apply */
|
||||
int indoor_direction_addition_idx; /* index of indoor direction adjustment LUT value to apply */
|
||||
|
||||
int now_main_index; /* current main index type */
|
||||
int last_main_index; /* previous main index type */
|
||||
int requested_main_index; /* requested main index type */
|
||||
int requested_main_index_priority; /* requested main index priority value */
|
||||
int requested_main_index_flag; /* TRUE/FALSE requested main index has been set */
|
||||
int now_main_index; /* current main index type */
|
||||
int last_main_index; /* previous main index type */
|
||||
int requested_main_index; /* requested main index type */
|
||||
int requested_main_index_priority; /* requested main index priority value */
|
||||
int requested_main_index_flag; /* TRUE/FALSE requested main index has been set */
|
||||
|
||||
CameraMainData main_data; /* current main index data */
|
||||
CameraRequestData request_data; /* requested index data */
|
||||
CameraMainData main_data; /* current main index data */
|
||||
CameraRequestData request_data; /* requested index data */
|
||||
|
||||
xyz_t mic_pos; /* mic position */
|
||||
u32 flags; /* camera flags */
|
||||
xyz_t mic_pos; /* mic position */
|
||||
u32 flags; /* camera flags */
|
||||
|
||||
xyz_t offset_eye;
|
||||
xyz_t offset_center;
|
||||
xyz_t offset_eye;
|
||||
xyz_t offset_center;
|
||||
} Camera2;
|
||||
|
||||
extern s16 getCamera2AngleY(GAME_PLAY* play);
|
||||
@@ -341,24 +341,36 @@ extern int Camera2_request_main_wade(GAME_PLAY* play, xyz_t* pos, int priority,
|
||||
extern int Camera2_request_main_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority);
|
||||
extern int Camera2_request_main_talk_pos(GAME_PLAY* play, ACTOR* speaker, xyz_t* listener_pos, int priority);
|
||||
extern int Camera2_request_main_normal(GAME_PLAY* play, int flags, int priority);
|
||||
extern int Camera2_request_main_demo(GAME_PLAY* play, const xyz_t* start_center, const f32 start_dist, const s_xyz* start_dir, const xyz_t* goal_center, const f32 goal_dist, const s_xyz* goal_dir, const f32 goal_delta, const f32 accel_delta, const f32 braking_delta, const int priority);
|
||||
extern int Camera2_request_main_demo_fromNowPos(GAME_PLAY* play, const xyz_t* goal_center, const s_xyz* goal_dir, const f32 goal_dist, const f32 goal_delta, const f32 accel_delta, const f32 braking_delta, const int priority);
|
||||
extern int Camera2_request_main_demo_fromNowPos2(GAME_PLAY* play, const xyz_t* goal_center, const f32 goal_delta, const f32 accel_delta, const f32 braking_delta, const int priority);
|
||||
extern int Camera2_request_main_demo(GAME_PLAY* play, const xyz_t* start_center, const f32 start_dist,
|
||||
const s_xyz* start_dir, const xyz_t* goal_center, const f32 goal_dist,
|
||||
const s_xyz* goal_dir, const f32 goal_delta, const f32 accel_delta,
|
||||
const f32 braking_delta, const int priority);
|
||||
extern int Camera2_request_main_demo_fromNowPos(GAME_PLAY* play, const xyz_t* goal_center, const s_xyz* goal_dir,
|
||||
const f32 goal_dist, const f32 goal_delta, const f32 accel_delta,
|
||||
const f32 braking_delta, const int priority);
|
||||
extern int Camera2_request_main_demo_fromNowPos2(GAME_PLAY* play, const xyz_t* goal_center, const f32 goal_delta,
|
||||
const f32 accel_delta, const f32 braking_delta, const int priority);
|
||||
extern int Camera2_request_main_item(GAME_PLAY* play, int type, int priority);
|
||||
extern int Camera2_request_main_lock(GAME_PLAY* play, xyz_t* center_pos, xyz_t* eye_pos, f32 fov_y, int morph_counter, f32 near, f32 far, int priority);
|
||||
extern int Camera2_request_main_lock(GAME_PLAY* play, xyz_t* center_pos, xyz_t* eye_pos, f32 fov_y, int morph_counter,
|
||||
f32 near, f32 far, int priority);
|
||||
extern int Camera2_request_main_door(GAME_PLAY* play, ACTOR* door_actor, u32 flags, int priority);
|
||||
extern int Camera2_request_main_simple2(GAME_PLAY* play, xyz_t* center, s_xyz* dir, f32 dist, int morph_counter, int mode, int priority);
|
||||
extern int Camera2_request_main_simple2(GAME_PLAY* play, xyz_t* center, s_xyz* dir, f32 dist, int morph_counter,
|
||||
int mode, int priority);
|
||||
extern int Camera2_request_main_simple_kirin(GAME_PLAY* play, const xyz_t* center, int priority);
|
||||
extern int Camera2_request_main_simple_fishing(GAME_PLAY* play, const xyz_t* player_pos, const xyz_t* bobber_pos, int priority);
|
||||
extern int Camera2_request_main_simple_fishing(GAME_PLAY* play, const xyz_t* player_pos, const xyz_t* bobber_pos,
|
||||
int priority);
|
||||
extern int Camera2_request_main_simple_fishing_return(GAME_PLAY* play, xyz_t* player_pos, int priority);
|
||||
extern int Camera2_request_main_simple(GAME_PLAY* play, xyz_t* pos, s_xyz* dir, f32 dist, int morph_counter, int priority);
|
||||
extern int Camera2_request_main_simple(GAME_PLAY* play, xyz_t* pos, s_xyz* dir, f32 dist, int morph_counter,
|
||||
int priority);
|
||||
extern void Camera2_main_Simple_AngleDistStd(GAME_PLAY* play, s_xyz* angle, f32* dist);
|
||||
extern int Camera2_request_main_listen_front_low_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority);
|
||||
extern int Camera2_request_main_needlework_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority);
|
||||
extern int Camera2_request_main_cust_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, f32 center_ratio, int priority, s16 angle_x, s16 angle_y, f32 distance);
|
||||
extern int Camera2_request_main_cust_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, f32 center_ratio,
|
||||
int priority, s16 angle_x, s16 angle_y, f32 distance);
|
||||
extern int Camera2_request_BuySikimono_WallPaper(GAME_PLAY* play, xyz_t* center, xyz_t* eye);
|
||||
extern int Camera2_Inter_set_reverse_mode(GAME_PLAY* play);
|
||||
extern int Camera2_request_main_inter(GAME_PLAY* play, xyz_t* start_center, xyz_t* start_eye, xyz_t* goal_center, xyz_t* goal_eye, f32 s0, f32 s1, u32 flags, int morph_counter, int priority);
|
||||
extern int Camera2_request_main_inter(GAME_PLAY* play, xyz_t* start_center, xyz_t* start_eye, xyz_t* goal_center,
|
||||
xyz_t* goal_eye, f32 s0, f32 s1, u32 flags, int morph_counter, int priority);
|
||||
extern int Camera2_request_main_staff_roll(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority);
|
||||
extern void Init_Camera2(GAME_PLAY* play);
|
||||
extern void Camera2_process(GAME_PLAY* play);
|
||||
|
||||
+15
-4
@@ -28,6 +28,9 @@ typedef struct player_actor_s PLAYER_ACTOR;
|
||||
#define mPlayer_FORCE_POSITION_ANGLE_ROTY (1 << 5)
|
||||
#define mPlayer_FORCE_POSITION_ANGLE_ROTZ (1 << 6)
|
||||
|
||||
#define mPlayer_WALK_FLAG_SET_POS (1 << 1)
|
||||
#define mPlayer_WALK_FLAG_RESET_MORPH (1 << 2)
|
||||
|
||||
enum {
|
||||
mPlayer_JOINT_ROOT,
|
||||
mPlayer_JOINT_BASE,
|
||||
@@ -1265,6 +1268,13 @@ typedef struct player_main_return_outdoor2_s {
|
||||
int prev_main_index;
|
||||
} mPlayer_main_return_outdoor2_c;
|
||||
|
||||
typedef struct player_main_wade_s {
|
||||
int dir;
|
||||
xyz_t start_pos;
|
||||
xyz_t end_pos;
|
||||
f32 timer;
|
||||
} mPlayer_main_wade_c;
|
||||
|
||||
typedef struct player_main_pickup_s {
|
||||
xyz_t target_pos;
|
||||
xyz_t item_pos;
|
||||
@@ -1328,6 +1338,7 @@ typedef union {
|
||||
mPlayer_main_return_demo_c return_demo;
|
||||
mPlayer_main_return_outdoor_c return_outdoor;
|
||||
mPlayer_main_return_outdoor2_c return_outdoor2;
|
||||
mPlayer_main_wade_c wade;
|
||||
mPlayer_main_pickup_c pickup;
|
||||
mPlayer_main_pickup_jump_c pickup_jump;
|
||||
mPlayer_main_get_scoop_c get_scoop;
|
||||
@@ -1535,10 +1546,10 @@ struct player_actor_s {
|
||||
/* 0x13A4 */ s8 update_scene_bg_mode;
|
||||
};
|
||||
|
||||
void Player_actor_ct(PLAYER_ACTOR*, GAME*);
|
||||
void Player_actor_dt(PLAYER_ACTOR*, GAME*);
|
||||
void Player_actor_move(PLAYER_ACTOR*, GAME*);
|
||||
void Player_actor_draw(PLAYER_ACTOR*, GAME*);
|
||||
extern void Player_actor_ct(ACTOR*, GAME*);
|
||||
extern void Player_actor_dt(ACTOR*, GAME*);
|
||||
extern void Player_actor_move(ACTOR*, GAME*);
|
||||
extern void Player_actor_draw(ACTOR*, GAME*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
static int Player_actor_request_main_wade(GAME* game, int dir, int priority) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_WADE, priority)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_wade_c* request_wade_p = &player->requested_main_index_data.wade;
|
||||
|
||||
request_wade_p->dir = dir;
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_WADE, priority);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static int Player_actor_request_main_wade_all(GAME* game, int dir, int priority) {
|
||||
return Player_actor_request_main_wade(game, dir, priority) != FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Wade_common(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_request_wade_c* request_wade_p = &player->requested_main_index_data.wade;
|
||||
mPlayer_main_wade_c* main_wade_p = &player->main_data.wade;
|
||||
xyz_t* pos_p;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
int dir;
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
xyz_t eye_pos;
|
||||
|
||||
Player_actor_setup_main_Wade_other_func1(actorx, game);
|
||||
dir = request_wade_p->dir;
|
||||
pos_p = &actorx->world.position;
|
||||
Player_actor_SetupItem_Base1(actorx, 0, -5.0f, &anim1_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actorx, game, mPlayer_ANIM_WAIT1, anim1_idx, 1.0f, 1.0f, 0.5f, -5.0f,
|
||||
part_table_idx);
|
||||
main_wade_p->dir = dir;
|
||||
main_wade_p->start_pos = *pos_p;
|
||||
|
||||
Player_actor_Culc_wade_end_pos(pos_p, &main_wade_p->end_pos, dir, 18.00001f);
|
||||
main_wade_p->timer = 0.0f;
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
|
||||
eye_pos = main_wade_p->end_pos;
|
||||
eye_pos.y += actorx->eye.position.y - pos_p->y;
|
||||
Camera2_request_main_wade(play, &eye_pos, 9, 36.0f);
|
||||
Player_actor_setup_main_Wade_other_func2(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Wade(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_setup_main_Wade_common(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Wade(ACTOR* actorx, GAME* game) {
|
||||
mDemo_End(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_CulcAnimation_Wade(ACTOR* actorx) {
|
||||
f32 last_kf0_current_frame;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actorx, &last_kf0_current_frame);
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Wade(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_wade_c* main_wade_p = &player->main_data.wade;
|
||||
xyz_t* start_pos_p = &main_wade_p->start_pos;
|
||||
xyz_t* end_pos_p = &main_wade_p->end_pos;
|
||||
xyz_t* pos_p = &actorx->world.position;
|
||||
f32 timer = main_wade_p->timer;
|
||||
f32 percent = get_percent_forAccelBrake(timer, 0.0f, 36.0f, 1.2f, 34.8f);
|
||||
|
||||
pos_p->x = start_pos_p->x + percent * (end_pos_p->x - start_pos_p->x);
|
||||
pos_p->y = start_pos_p->y + percent * (end_pos_p->y - start_pos_p->y);
|
||||
pos_p->z = start_pos_p->z + percent * (end_pos_p->z - start_pos_p->z);
|
||||
|
||||
Player_actor_Movement_Base_Stop(actorx, FALSE);
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Wade(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Wade(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type2(actorx);
|
||||
}
|
||||
|
||||
static int Player_actor_able_request_proc_index_fromWade_common(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_wade_c* main_wade_p = &player->main_data.wade;
|
||||
f32* timer_p = &main_wade_p->timer;
|
||||
|
||||
if (*timer_p > 36.0f) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
*timer_p += 1.0f;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromWade(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_wade_c* main_wade_p = &player->main_data.wade;
|
||||
|
||||
if (Player_actor_able_request_proc_index_fromWade_common(actorx)) {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
Player_actor_request_main_walk_all(game, &main_wade_p->end_pos, -5.0f,
|
||||
mPlayer_WALK_FLAG_SET_POS | mPlayer_WALK_FLAG_RESET_MORPH, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static int Player_actor_Request_Wade(ACTOR* actorx) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void Player_actor_main_Wade(ACTOR* actorx, GAME* game) {
|
||||
if (Player_actor_Request_Wade(actorx)) {
|
||||
Player_actor_main_Wade_other_func1(actorx, game);
|
||||
Player_actor_Movement_Wade(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
Player_actor_CulcAnimation_Wade(actorx);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_eye_pattern_normal(actorx);
|
||||
Player_actor_ObjCheck_Wade(actorx, game);
|
||||
Player_actor_BGcheck_Wade(actorx);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromWade(actorx, game);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user