mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-08-22 05:49:04 -04:00
Implement & link ac_boat
This commit is contained in:
+23
-1
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "m_actor.h"
|
||||
#include "c_keyframe.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -10,9 +11,30 @@ extern "C" {
|
||||
|
||||
typedef struct boat_s BOAT_ACTOR;
|
||||
|
||||
typedef void (*aBT_PROC)(BOAT_ACTOR*, GAME_PLAY*);
|
||||
|
||||
struct boat_s {
|
||||
ACTOR actor_class;
|
||||
// TODO
|
||||
int _174;
|
||||
cKF_SkeletonInfo_R_c keyframe;
|
||||
int _1E8;
|
||||
s_xyz work[15];
|
||||
s_xyz morph[15];
|
||||
aBT_PROC action_proc;
|
||||
int _2A4;
|
||||
int _2A8;
|
||||
int _2AC;
|
||||
int _2B0;
|
||||
int action;
|
||||
int roll_cycle;
|
||||
int roll_timer;
|
||||
int point;
|
||||
int direction;
|
||||
f32 _2C8;
|
||||
f32 _2CC;
|
||||
f32 _2D0;
|
||||
f32 rudder;
|
||||
int _2D8;
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Boat_Profile;
|
||||
|
||||
+14
-12
@@ -8,6 +8,7 @@
|
||||
#include "m_npc_schedule.h"
|
||||
#include "m_actor_dlftbls.h"
|
||||
#include "m_npc.h"
|
||||
#include "c_keyframe.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -137,19 +138,21 @@ typedef struct npc_info_s {
|
||||
mActor_name_t npc_name;
|
||||
} NpcActorInfo_c;
|
||||
|
||||
typedef struct npc_animation_s {
|
||||
cKF_SkeletonInfo_R_c keyframe;
|
||||
s_xyz work[27];
|
||||
s_xyz morph[27];
|
||||
int _1B4;
|
||||
s8 animation_id;
|
||||
} aNPC_ANIMATION_c;
|
||||
|
||||
/* TODO: draw data */
|
||||
typedef struct npc_draw_info_s {
|
||||
/* 0x000 */ u8 _000[0x20 - 0];
|
||||
/* 0x020 */ f32 _20;
|
||||
/* 0x024 */ f32 _24;
|
||||
/* 0x028 */ u8 _028[0x534 - 0x028];
|
||||
/* 0x538 */ u8 _534;
|
||||
/* 0x538 */ u8 _535;
|
||||
/* 0x538 */ u8 _536;
|
||||
/* 0x538 */ u8 _537;
|
||||
/* 0x538 */ u8 _538;
|
||||
/* 0x538 */ u8 _539;
|
||||
/* 0x540 */ u8 _53A[0x580 - 0x53A];
|
||||
/* 0x000 */ u8 _000[0x14 - 0];
|
||||
/* 0x014 */ aNPC_ANIMATION_c main_animation;
|
||||
/* 0x1D0 */ aNPC_ANIMATION_c sub_animation0;
|
||||
/* 0x38C */ aNPC_ANIMATION_c sub_animation1;
|
||||
/* 0x548 */ u8 _548[0x580 - 0x548];
|
||||
/* 0x580 */ int animation_id;
|
||||
/* 0x584 */ int texture_bank_idx;
|
||||
/* 0x588 */ u8 _588[0x5BD - 0x588];
|
||||
@@ -158,7 +161,6 @@ typedef struct npc_draw_info_s {
|
||||
/* 0x5BE */ u8 _5BF[0x630 - 0x5BF];
|
||||
} aNPC_draw_info_c;
|
||||
|
||||
|
||||
typedef void (*aNPC_THINK_PROC)(NPC_ACTOR*, GAME_PLAY*, int);
|
||||
|
||||
#define aNPC_THINK_INTERRUPT_FRIENDSHIP (1 << 0)
|
||||
|
||||
@@ -260,6 +260,8 @@ extern int mCoBG_ExistHeightGap_KeepAndNow(xyz_t wpos);
|
||||
extern void mCoBG_GetNorm_By3Point(xyz_t* norm, xyz_t* p0, xyz_t* p1, xyz_t* p2);
|
||||
extern int mCoBG_SearchWaterLimitDistN(xyz_t* water_pos, xyz_t wpos, s16 angle, float max_dist, int divisor);
|
||||
extern f32 mCoBG_GetBalloonGroundY(const xyz_t* pos);
|
||||
extern void mCoBG_MakeBoatCollision(ACTOR* actor, xyz_t* pos, s16* angle_y);
|
||||
extern void mCoBG_DeleteBoatCollision(ACTOR* actor);
|
||||
|
||||
extern void mCoBG_InitMoveBgData();
|
||||
extern void mCoBG_InitBlockBgCheckMode();
|
||||
|
||||
@@ -300,7 +300,7 @@ typedef struct common_data_s {
|
||||
/* 0x02DBA2 */ s16 island_weather;
|
||||
/* 0x02DBA4 */ s16 island_weather_intensity;
|
||||
/* 0x02DBA6 */ s16 _2DBA6;
|
||||
/* 0x02DBA8 */ u8 _2DBA8;
|
||||
/* 0x02DBA8 */ u8 memcard_slot;
|
||||
/* 0X02DBAC */ int famicom_2DBAC;
|
||||
/* 0x02DBB0 */ s16 can_look_goki_count;
|
||||
/* 0x02DBB4 */ f32 rainbow_opacity; /* current opacity of rainbow (0.0f - 1.0f) */
|
||||
|
||||
@@ -2164,6 +2164,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define DUMMY_TAMA 0xF110
|
||||
#define DUMMY_DOUZOU 0xF11D
|
||||
#define DUMMY_NAMEPLATE 0xF11F
|
||||
#define DUMMY_BOAT 0xF128
|
||||
|
||||
#define RSV_DOOR 0xFE1B
|
||||
#define RSV_FE1C 0xFE1C
|
||||
|
||||
@@ -18,7 +18,7 @@ extern void mPlib_request_main_invade_type1(GAME_PLAY* play);
|
||||
extern mActor_name_t mPlib_Get_itemNo_forWindow();
|
||||
extern int mPlib_check_able_change_camera_normal_index();
|
||||
extern void mPlib_request_main_refuse_type1(GAME_PLAY* play);
|
||||
extern void mPlib_request_main_wait_type3(GAME_PLAY* play);
|
||||
extern void mPlib_request_main_wait_type3(GAME* game);
|
||||
extern void mPlib_Set_able_force_speak_label(ACTOR* actor);
|
||||
extern int mPlib_request_main_demo_walk_type1(GAME* game, f32 goal_x, f32 goal_z, f32 speed, int flag);
|
||||
extern void mPlib_Set_goal_player_demo_walk(f32 goal_x, f32 goal_z, f32 speed);
|
||||
@@ -51,6 +51,10 @@ extern int mPlib_Check_tree_shaken_little(const xyz_t* pos);
|
||||
extern int mPlib_request_main_recieve_wait_type1(GAME* game, mActor_name_t item, int counter_flag);
|
||||
extern int mPlib_able_player_warp_forEvent();
|
||||
extern int mPlib_Get_unable_wade();
|
||||
extern void mPlib_Set_boat_angleZ(s16 angleZ);
|
||||
extern int mPlib_Get_end_player_demo_walk();
|
||||
extern int mPlib_request_main_demo_geton_boat_type1(f32 goal_x, f32 goal_z, s16 angleY);
|
||||
extern int mPlib_request_main_demo_getoff_boat_standup_type1(const xyz_t* pos, s16 angleY);
|
||||
|
||||
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user