diff --git a/include/ac_mikuji.h b/include/ac_mikuji.h index 37c8e18f..58845d81 100644 --- a/include/ac_mikuji.h +++ b/include/ac_mikuji.h @@ -2,7 +2,7 @@ #define AC_MIKUJI_H #include "types.h" -#include "m_actor.h" +#include "ac_structure.h" #ifdef __cplusplus extern "C" { @@ -13,13 +13,7 @@ typedef struct actor_mikuji_s MIKUJI_ACTOR; typedef void (*MIKUJI_PROC)(MIKUJI_ACTOR*, GAME_PLAY*); struct actor_mikuji_s{ - ACTOR actor_class; - u8 pad[0x2A0 - 0x174]; - MIKUJI_PROC proc; - u8 pad2[0x2B4 - 0x2A4]; - int current_action; - int next_action; - u8 pad3[0x2DC - 0x2BC]; + STRUCTURE_ACTOR structure_class; }; extern ACTOR_PROFILE Mikuji_Profile; diff --git a/include/ac_structure.h b/include/ac_structure.h index 61231d27..176f253a 100644 --- a/include/ac_structure.h +++ b/include/ac_structure.h @@ -189,33 +189,34 @@ typedef u16* (*aSTR_GET_PAL_SEGMENT_PROC)(s16); typedef void (*aSTR_MOVE_PROC)(ACTOR*, GAME*); +// sizeof(actor_structure_s) == 0x2DC struct actor_structure_s { - ACTOR actor_class; - int keyframe_state; - cKF_SkeletonInfo_R_c keyframe; - int keyframe_saved_keyframe; - s_xyz work_area[15]; - s_xyz morph_area[15]; - aSTR_MOVE_PROC action_proc; - int _2A4; - int structure_type; /* aSTR_TYPE_* */ - int structure_pal; /* aSTR_PAL_* */ - int request_type; - int action; + /* 0x000*/ ACTOR actor_class; + /* 0x174*/ int keyframe_state; + /* 0x178*/ cKF_SkeletonInfo_R_c keyframe; + /* 0x1E8*/ int keyframe_saved_keyframe; + /* 0x1EC*/ s_xyz work_area[15]; + /* 0x246*/ s_xyz morph_area[15]; + /* 0x2A0*/ aSTR_MOVE_PROC action_proc; + /* 0x2A4*/ int _2A4; + /* 0x2A8*/ int structure_type; /* aSTR_TYPE_* */ + /* 0x2AC*/ int structure_pal; /* aSTR_PAL_* */ + /* 0x2B0*/ int request_type; + /* 0x2B4*/ int action; /* general purpose members with unique usage between structure actors */ - int arg0; - int arg1; - int arg2; - int arg3; + /* 0x2B8*/ int arg0; + /* 0x2BC*/ int arg1; + /* 0x2C0*/ int arg2; + /* 0x2C4*/ int arg3; /* general purpose float members with unique usage between structure actors*/ - f32 arg0_f; - f32 arg1_f; - f32 arg2_f; - f32 arg3_f; + /* 0x2C8*/ f32 arg0_f; + /* 0x2CC*/ f32 arg1_f; + /* 0x2D0*/ f32 arg2_f; + /* 0x2D4*/ f32 arg3_f; - u32 season; + /* 0x2D8*/ u32 season; }; typedef struct actor_overlay_info_s { diff --git a/src/ac_mikuji_move.c_inc b/src/ac_mikuji_move.c_inc index 96d67ff4..153df77d 100644 --- a/src/ac_mikuji_move.c_inc +++ b/src/ac_mikuji_move.c_inc @@ -15,11 +15,11 @@ static void aMIK_set_bgOffset(MIKUJI_ACTOR* mikuji, int offs) offset = height_table[offs]; for(i = 0; i < 2; i++){ - pos.z = mikuji->actor_class.home.position.z + addZ[i]; - pos.x = mikuji->actor_class.home.position.x + addX[0]; + pos.z = mikuji->structure_class.actor_class.home.position.z + addZ[i]; + pos.x = mikuji->structure_class.actor_class.home.position.x + addX[0]; mCoBG_SetPluss5PointOffset_file(pos, *offset, __FILE__, 97); offset++; - pos.x = mikuji->actor_class.home.position.x + addX[1]; + pos.x = mikuji->structure_class.actor_class.home.position.x + addX[1]; mCoBG_SetPluss5PointOffset_file(pos, *offset, __FILE__, 101); offset++; }