Implement & link ac_garagara

This commit is contained in:
Cuyler36
2024-11-01 23:55:56 -04:00
parent b4d55bae76
commit bb58917b7b
6 changed files with 469 additions and 4 deletions
+65 -1
View File
@@ -3,11 +3,76 @@
#include "types.h"
#include "m_actor.h"
#include "c_keyframe.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aGRGR_JOINT_NUM 3
enum {
aGRGR_MODE_NONE,
aGRGR_MODE_FUKUBIKI,
aGRGR_MODE_NUM
};
enum {
aGRGR_BALL_FIRST_PLACE,
aGRGR_BALL_SECOND_PLACE,
aGRGR_BALL_THIRD_PLACE,
aGRGR_BALL_NOT_WINNER,
aGRGR_BALL_TYPE_NUM
};
typedef int (*aGRGR_GARAGARA_ANIME_START_PROC)(int);
typedef int (*aGRGR_DELETE_BALL_PROC)(void);
typedef struct garagara_clip_s {
ACTOR* actorx;
aGRGR_GARAGARA_ANIME_START_PROC garagara_anime_start_proc;
aGRGR_DELETE_BALL_PROC delete_ball_proc;
} aGRGR_clip_c;
typedef struct garagara_ball_s {
xyz_t pos;
xyz_t old_pos;
int ball_type;
s16 status;
f32 vel_y;
f32 acc_y;
f32 max_vel_y;
f32 vel_xz;
s16 angle;
s16 remove_timer;
xyz_t src_pos;
s16 old_on_ground;
s16 on_ground;
s16 hit_wall;
s16 hit_wall_angle;
} aGRGR_ball_c;
typedef struct garagara_actor_s GARAGARA_ACTOR;
struct garagara_actor_s {
ACTOR actor_class;
int mode;
s16 status;
int ball_type;
int anime_frame;
cKF_SkeletonInfo_R_c keyframe;
s_xyz work[aGRGR_JOINT_NUM];
s_xyz morph[aGRGR_JOINT_NUM];
Mtx mtx[2][aGRGR_JOINT_NUM];
aGRGR_clip_c clip;
u8* bank;
int request_flag;
s16 request_status;
aGRGR_ball_c ball;
};
extern ACTOR_PROFILE Garagara_Profile;
#ifdef __cplusplus
@@ -15,4 +80,3 @@ extern ACTOR_PROFILE Garagara_Profile;
#endif
#endif
+1 -1
View File
@@ -71,7 +71,7 @@ typedef enum audio_sound_effects {
NA_SE_TEMOCHI_KAZAGURUMA,
NA_SE_REGISTER = 0x50,
NA_SE_51 = 0x51,
NA_SE_52 = 0x52,
NA_SE_ITEM_HORIDASHI = 0x57,
+2 -1
View File
@@ -30,6 +30,7 @@
#include "ac_sign.h"
#include "ac_boxTrick01.h"
#include "ac_broker_design.h"
#include "ac_garagara.h"
#ifdef __cplusplus
extern "C" {
@@ -80,7 +81,7 @@ typedef struct clip_s {
/* 0x0B4 */ EffectBG_MAKE_EFFECTBG_PROC make_effect_bg_proc;
/* 0x0B8 */ aShopUmbrella_Clip_c* shop_umbrella_clip;
/* 0x0BC */ aAR_Clip_c* arrange_room_clip;
/* 0x0C0 */ void* _0C0;
/* 0x0C0 */ aGRGR_clip_c* garagara_clip;
/* 0x0C4 */ void* _0C4;
/* 0x0C8 */ void* shrine_clip;
/* 0x0CC */ void* _0CC;