mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-08-12 19:24:58 -04:00
Implement & link ac_misin
This commit is contained in:
+52
-1
@@ -3,11 +3,63 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "m_actor.h"
|
||||
#include "m_needlework.h"
|
||||
#include "c_keyframe.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct misin_actor_s MISIN_ACTOR;
|
||||
|
||||
typedef void (*aMSN_REQUEST_MISIN_STOP_PROC)(void);
|
||||
typedef void (*aMSN_REQUEST_MISIN_MOVE_PROC)(void);
|
||||
|
||||
typedef void (*aMSN_REQUEST_DUSTCLOTH_STOP_PROC)(void);
|
||||
typedef void (*aMSN_REQUEST_DUSTCLOTH_MOVE_PROC)(void);
|
||||
|
||||
typedef struct misin_clip_s {
|
||||
MISIN_ACTOR* misin_actor_p;
|
||||
aMSN_REQUEST_MISIN_STOP_PROC request_misin_stop_proc;
|
||||
aMSN_REQUEST_MISIN_MOVE_PROC request_misin_move_proc;
|
||||
aMSN_REQUEST_DUSTCLOTH_STOP_PROC request_dustcloth_stop_proc;
|
||||
aMSN_REQUEST_DUSTCLOTH_MOVE_PROC request_dustcloth_move_proc;
|
||||
} aMSN_Clip_c;
|
||||
|
||||
#define aMSN_GetClip() ((aMSN_Clip_c*)Common_Get(clip).misin_clip)
|
||||
|
||||
typedef struct misin_dustcloth_s {
|
||||
s16 switch_flag;
|
||||
s16 frame;
|
||||
xyz_t pos;
|
||||
xyz_t target_pos;
|
||||
int target_idx;
|
||||
s16 target_angle_y;
|
||||
int moving_flag;
|
||||
mNW_original_design_c* original_p;
|
||||
u16* palette_p;
|
||||
} aMSN_DustCloth_c;
|
||||
|
||||
typedef struct misin_misin_s {
|
||||
s16 status;
|
||||
f32 speed;
|
||||
xyz_t pos;
|
||||
f32 needle_y_counter;
|
||||
xyz_t needle_offset;
|
||||
s16 y_scroll;
|
||||
cKF_SkeletonInfo_R_c keyframe;
|
||||
s_xyz work[17];
|
||||
s_xyz morph[17];
|
||||
Mtx mtx[2][16] ATTRIBUTE_ALIGN(8);
|
||||
} aMSN_Misin_c;
|
||||
|
||||
struct misin_actor_s {
|
||||
ACTOR actor_class;
|
||||
aMSN_DustCloth_c dustcloth;
|
||||
aMSN_Misin_c misin;
|
||||
aMSN_Clip_c clip;
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Misin_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -15,4 +67,3 @@ extern ACTOR_PROFILE Misin_Profile;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+52
-46
@@ -32,52 +32,58 @@ typedef void (*CLIP_NONE_PROC)();
|
||||
|
||||
/* sizeof(Clip_c) == 0x104 */
|
||||
typedef struct clip_s {
|
||||
/* 0x000 */ void* _000[(0x020 - 0x000) / sizeof(void*)];
|
||||
/* 0x020 */ int arrange_ftr_num;
|
||||
/* 0x024 */ void* _024[(0x040 - 0x024) / sizeof(void*)];
|
||||
/* 0x040 */ aNPC_Clip_c* npc_clip;
|
||||
/* 0x044 */ void* _044[(0x060 - 0x044) / sizeof(void*)];
|
||||
/* 0x060 */ aSM_Clip_c* shop_manekin_clip;
|
||||
/* 0x064 */ void* _064;
|
||||
/* 0x068 */ CLIP_NONE_PROC _068;
|
||||
/* 0x06C */ aQMgr_Clip_c* quest_manager_clip;
|
||||
/* 0x070 */ aSI_Clip_c* shop_indoor_clip;
|
||||
/* 0x074 */ bIT_Clip_c* bg_item_clip;
|
||||
/* 0x078 */ aWeather_Clip_c* weather_clip;
|
||||
/* 0x07C */ aINS_Clip_c* insect_clip;
|
||||
/* 0x080 */ aMR_Clip_c* my_room_clip;
|
||||
/* 0x084 */ void* _084;
|
||||
/* 0x088 */ aHOI_Clip_c* handOverItem_clip;
|
||||
/* 0x08C */ aSTR_Clip_c* structure_clip;
|
||||
/* 0x090 */ eEC_EffectControl_Clip_c* effect_clip;
|
||||
/* 0x094 */ aTOL_Clip_c* tools_clip;
|
||||
/* 0x098 */ void* _098;
|
||||
/* 0x09C */ aMI_Clip_c* my_indoor_clip;
|
||||
/* 0x0A0 */ mDemo_Clip_c* demo_clip; /* can be multiple clip classes */
|
||||
/* 0x0A4 */ mDemo_Clip_c* demo_clip2; /* can be multiple clip classes */
|
||||
/* 0x0A8 */ void* _0A8;
|
||||
/* 0x0AC */ aGYO_Clip_c* gyo_clip;
|
||||
/* 0x0B0 */ void* _0B0;
|
||||
/* 0x0B4 */ void* _0B4;
|
||||
/* 0x0B8 */ aShopUmbrella_Clip_c* shop_umbrella_clip;
|
||||
/* 0x0BC */ aAR_Clip_c* arrange_room_clip;
|
||||
/* 0x0C0 */ void* _0C0;
|
||||
/* 0x0C4 */ void* _0C4;
|
||||
/* 0x0C8 */ void* shrine_clip;
|
||||
/* 0x0CC */ void* _0CC;
|
||||
/* 0x0D0 */ void* _0D0;
|
||||
/* 0x0D4 */ CLIP_NONE_PROC ball_redma_proc; /* removed in DnM+ */
|
||||
/* 0x0D8 */ void* _0D8;
|
||||
/* 0x0DC */ aAL_Clip_c* animal_logo_clip;
|
||||
/* 0x0E0 */ void* _0E0;
|
||||
/* 0x0E4 */ void* _0E4;
|
||||
/* 0x0E8 */ void* _0E8;
|
||||
/* 0x0EC */ aAPC_Clip_c* aprilfool_control_clip;
|
||||
/* 0x0F0 */ aEvMgr_Clip_c* event_manager_clip;
|
||||
/* 0x0F4 */ aGHC_Clip_c* groundhog_control_clip;
|
||||
/* 0x0F8 */ void* _0F8;
|
||||
/* 0x0FC */ void* _0FC;
|
||||
/* 0x100 */ void* _100;
|
||||
/* 0x000 */ void* _000[(0x020 - 0x000) / sizeof(void*)];
|
||||
/* 0x020 */ int arrange_ftr_num;
|
||||
/* 0x024 */ void* _024;
|
||||
/* 0x028 */ void* misin_clip;
|
||||
/* 0x02C */ void* _02C;
|
||||
/* 0x030 */ void* _030;
|
||||
/* 0x034 */ void* _034;
|
||||
/* 0x038 */ void* _038;
|
||||
/* 0x03C */ void* _03C;
|
||||
/* 0x040 */ aNPC_Clip_c* npc_clip;
|
||||
/* 0x044 */ void* _044[(0x060 - 0x044) / sizeof(void*)];
|
||||
/* 0x060 */ aSM_Clip_c* shop_manekin_clip;
|
||||
/* 0x064 */ void* _064;
|
||||
/* 0x068 */ CLIP_NONE_PROC _068;
|
||||
/* 0x06C */ aQMgr_Clip_c* quest_manager_clip;
|
||||
/* 0x070 */ aSI_Clip_c* shop_indoor_clip;
|
||||
/* 0x074 */ bIT_Clip_c* bg_item_clip;
|
||||
/* 0x078 */ aWeather_Clip_c* weather_clip;
|
||||
/* 0x07C */ aINS_Clip_c* insect_clip;
|
||||
/* 0x080 */ aMR_Clip_c* my_room_clip;
|
||||
/* 0x084 */ void* _084;
|
||||
/* 0x088 */ aHOI_Clip_c* handOverItem_clip;
|
||||
/* 0x08C */ aSTR_Clip_c* structure_clip;
|
||||
/* 0x090 */ eEC_EffectControl_Clip_c* effect_clip;
|
||||
/* 0x094 */ aTOL_Clip_c* tools_clip;
|
||||
/* 0x098 */ void* _098;
|
||||
/* 0x09C */ aMI_Clip_c* my_indoor_clip;
|
||||
/* 0x0A0 */ mDemo_Clip_c* demo_clip; /* can be multiple clip classes */
|
||||
/* 0x0A4 */ mDemo_Clip_c* demo_clip2; /* can be multiple clip classes */
|
||||
/* 0x0A8 */ void* _0A8;
|
||||
/* 0x0AC */ aGYO_Clip_c* gyo_clip;
|
||||
/* 0x0B0 */ void* _0B0;
|
||||
/* 0x0B4 */ void* _0B4;
|
||||
/* 0x0B8 */ aShopUmbrella_Clip_c* shop_umbrella_clip;
|
||||
/* 0x0BC */ aAR_Clip_c* arrange_room_clip;
|
||||
/* 0x0C0 */ void* _0C0;
|
||||
/* 0x0C4 */ void* _0C4;
|
||||
/* 0x0C8 */ void* shrine_clip;
|
||||
/* 0x0CC */ void* _0CC;
|
||||
/* 0x0D0 */ void* _0D0;
|
||||
/* 0x0D4 */ CLIP_NONE_PROC ball_redma_proc; /* removed in DnM+ */
|
||||
/* 0x0D8 */ void* _0D8;
|
||||
/* 0x0DC */ aAL_Clip_c* animal_logo_clip;
|
||||
/* 0x0E0 */ void* _0E0;
|
||||
/* 0x0E4 */ void* _0E4;
|
||||
/* 0x0E8 */ void* _0E8;
|
||||
/* 0x0EC */ aAPC_Clip_c* aprilfool_control_clip;
|
||||
/* 0x0F0 */ aEvMgr_Clip_c* event_manager_clip;
|
||||
/* 0x0F4 */ aGHC_Clip_c* groundhog_control_clip;
|
||||
/* 0x0F8 */ void* _0F8;
|
||||
/* 0x0FC */ void* _0FC;
|
||||
/* 0x100 */ void* _100;
|
||||
} Clip_c;
|
||||
|
||||
extern void clip_clear();
|
||||
|
||||
Reference in New Issue
Block a user