Converting ac_mikuji to also use structure actor

This commit is contained in:
Hexalotl
2024-01-30 16:20:12 -08:00
parent d647c5a258
commit 3330c9b248
3 changed files with 27 additions and 32 deletions
+2 -8
View File
@@ -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;
+22 -21
View File
@@ -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 {
+3 -3
View File
@@ -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++;
}