Implement & link ac_needlework_indoor

This commit is contained in:
Cuyler36
2025-05-11 01:11:33 -04:00
parent da0c91fd94
commit 6d1c592645
6 changed files with 450 additions and 5 deletions
+21 -1
View File
@@ -3,11 +3,32 @@
#include "types.h"
#include "m_actor.h"
#include "m_needlework.h"
#include "ac_needlework_indoor_clip.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct needlework_indoor_movebg_s {
xyz_t pos;
mCoBG_bg_regist_c regist;
int regist_idx;
} aNI_MoveBg_c;
typedef struct needlework_indoor_actor_s NEEDLEWORK_INDOOR_ACTOR;
/* sizeof(NEEDLEWORK_INDOOR_ACTOR) == 0x3F0 */
struct needlework_indoor_actor_s {
/* 0x000 */ ACTOR actor_class;
/* 0x174 */ u8 _174[0x188 - 0x174];
/* 0x188 */ mNW_original_design_c* data[2][mNW_TYPE_NUM][mNW_DESIGN_NUM];
/* 0x1C8 */ int design_buf_idx[mNW_TYPE_NUM][mNW_DESIGN_NUM];
/* 0x1E8 */ aNI_MoveBg_c cloth_move_bg[mNW_CLOTH_DESIGN_NUM];
/* 0x2E8 */ aNI_MoveBg_c umbrella_move_bg[mNW_UMBRELLA_DESIGN_NUM];
/* 0x3E8 */ aNI_Clip_c clip;
};
extern ACTOR_PROFILE Needlework_Indoor_Profile;
#ifdef __cplusplus
@@ -15,4 +36,3 @@ extern ACTOR_PROFILE Needlework_Indoor_Profile;
#endif
#endif
+42
View File
@@ -0,0 +1,42 @@
#ifndef AC_NEEDLEWORK_INDOOR_CLIP_H
#define AC_NEEDLEWORK_INDOOR_CLIP_H
#include "types.h"
#include "m_actor_type.h"
#include "m_needlework.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef int (*aNI_REQUESTCOPYCLOTHDATA_PROC)(int manekin_idx, mNW_original_design_c* design);
typedef int (*aNI_REQUESTCOPYUMBDATA_PROC)(int umbrella_idx, mNW_original_design_c* design);
typedef int (*aNI_REQUESTEXCHANGECLOTHDATA_PROC)(int manekin_idx, int player_org_idx);
typedef int (*aNI_REQUESTEXCHANGEUMBDATA_PROC)(int umbrella_idx, int player_org_idx);
typedef struct needlework_indoor_clip_s {
ACTOR* needlework_indoor_actor_p;
int copy_cloth_data_requested;
aNI_REQUESTCOPYCLOTHDATA_PROC request_copy_cloth_data_proc;
int copy_cloth_data_idx;
mNW_original_design_c* copy_cloth_data_design_p;
int exchange_cloth_data_requested;
aNI_REQUESTEXCHANGECLOTHDATA_PROC request_exchange_cloth_data_proc;
int exchange_cloth_data_idx;
int exchange_cloth_data_player_org_idx;
int copy_umb_data_requested;
aNI_REQUESTCOPYUMBDATA_PROC request_copy_umb_data_proc;
int copy_umb_data_idx;
mNW_original_design_c* copy_umb_data_design_p;
int exchange_umb_data_requested;
aNI_REQUESTEXCHANGEUMBDATA_PROC request_exchange_umb_data_proc;
int exchange_umb_data_idx;
int exchange_umb_data_player_org_idx;
int _44;
} aNI_Clip_c;
#ifdef __cplusplus
}
#endif
#endif /* AC_NEEDLEWORK_INDOOR_CLIP_H */
+2 -1
View File
@@ -35,6 +35,7 @@
#include "ac_hatumode_control.h"
#include "ac_station_clip.h"
#include "ac_mikanbox_clip.h"
#include "ac_needlework_indoor_clip.h"
#ifdef __cplusplus
extern "C" {
@@ -46,7 +47,7 @@ typedef void (*CLIP_NONE_PROC)();
typedef struct clip_s {
/* 0x000 */ BoxTrick01_data_c box_trick_data[4];
/* 0x020 */ int arrange_ftr_num;
/* 0x024 */ void* _024;
/* 0x024 */ aNI_Clip_c* needlework_indoor_clip;
/* 0x028 */ void* misin_clip;
/* 0x02C */ aHTBL_Clip_c* htbl_clip;
/* 0x030 */ void* _030;
+3 -2
View File
@@ -13,8 +13,9 @@ extern "C" {
#define mNW_ORIGINAL_DESIGN_HEIGHT 32 /* height */
#define mNW_DEFAULT_ORIGINAL_TEX_NUM 4 /* number of 'default' player textures which are not blank */
#define mNW_CLOTH_DESIGN_NUM 4 /* number of clothing designs in Able Sisters' */
#define mNW_UMBRELLA_DESIGN_NUM 4 /* number of umbrella designs in Able Sisters' */
#define mNW_DESIGN_NUM 4 // default number of designs
#define mNW_CLOTH_DESIGN_NUM mNW_DESIGN_NUM /* number of clothing designs in Able Sisters' */
#define mNW_UMBRELLA_DESIGN_NUM mNW_DESIGN_NUM /* number of umbrella designs in Able Sisters' */
#define mNW_TOTAL_DESIGN_NUM (mNW_CLOTH_DESIGN_NUM + mNW_UMBRELLA_DESIGN_NUM) /* total designs in Able Sisters' */
#define mNW_DESIGN_TEX_SIZE (mNW_ORIGINAL_DESIGN_HEIGHT * (mNW_ORIGINAL_DESIGN_WIDTH / 2)) /* total texture data size */