mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-06-29 01:30:53 -04:00
Implement & link ac_garagara
This commit is contained in:
+65
-1
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user