Implement & link ac_shop_goods

This commit is contained in:
Cuyler36
2024-09-02 18:13:21 -04:00
parent 2d8b09873e
commit 631a443f8f
6 changed files with 1540 additions and 0 deletions
+5
View File
@@ -533,6 +533,11 @@ ac_set_ovl_insect.c:
ac_shop_design.c:
.text: [0x8049C748, 0x8049D51C]
.data: [0x8068E3C0, 0x8068E430]
ac_shop_goods.c:
.text: [0x8049D51C, 0x8049E6F4]
.rodata: [0x80644E28, 0x80645CB0]
.data: [0x8068E430, 0x8068E458]
.bss: [0x812FD270, 0x812FD480]
ac_shop_indoor.c:
.text: [0x8049E6F4, 0x8049F40C]
.rodata: [0x80645CB0, 0x80645CD0]
+2
View File
@@ -297,6 +297,8 @@ extern int aMR_DrawDolphinMode(u16 ftr_name);
extern Gfx* aMR_IconNo2Gfx1(int icon_no);
extern Gfx* aMR_IconNo2Gfx2(int icon_no);
extern int aMR_RadioBgmNow(void);
extern void aMR_ThrowItem_FurnitureLock(void);
extern void aMR_ThrowItem_FurnitureUnlock(void);
#ifdef __cplusplus
}
+33
View File
@@ -9,6 +9,39 @@
extern "C" {
#endif
#define aSG_SINGLE_DRAW_NUM 9
typedef struct ac_shop_goods_s SHOP_GOODS_ACTOR;
typedef struct ac_shop_good_single_draw_s {
mActor_name_t item;
s16 layer;
xyz_t target_pos;
xyz_t current_pos;
xyz_t start_pos;
f32 scale;
u16 counter;
s_xyz angle;
f32 velocity_y;
f32 _38;
f32 acceleration_y;
s16 _40;
u16 flags;
int delay_timer;
} aSG_single_draw_c;
struct ac_shop_goods_s {
ACTOR actor_class;
int picture_count;
int bx;
int bz;
f32 bx_pos;
f32 bz_pos;
s16 mode;
s16 _18A;
aSG_single_draw_c single_draw[aSG_SINGLE_DRAW_NUM];
};
extern ACTOR_PROFILE Shop_Goods_Profile;
#ifdef __cplusplus
+1
View File
@@ -2278,6 +2278,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
#define ITM_DIARY_END (ITM_DIARY_START + 16)
#define ITM_TICKET_START 0x2C00
#define ITM_TICKET_END (ITM_TICKET_START + 95)
#define ITM_INSECT_START 0x2D00
#define ITM_INSECT00 (ITM_INSECT_START + 0)
+528
View File
@@ -0,0 +1,528 @@
#include "ac_shop_goods.h"
#include "m_common_data.h"
#include "m_player_lib.h"
#include "m_rcp.h"
#include "sys_matrix.h"
#include "ac_my_room.h"
#include "m_malloc.h"
static void Shop_Goods_Actor_ct(ACTOR* actorx, GAME* game);
static void Shop_Goods_Actor_dt(ACTOR* actorx, GAME* game);
static void Shop_Goods_Actor_move(ACTOR* actorx, GAME* game);
static void Shop_Goods_Actor_draw(ACTOR* actorx, GAME* game);
// clang-format off
ACTOR_PROFILE Shop_Goods_Profile = {
mAc_PROFILE_SHOP_GOODS,
ACTOR_PART_CONTROL,
ACTOR_STATE_NO_DRAW_WHILE_CULLED | ACTOR_STATE_NO_MOVE_WHILE_CULLED,
EMPTY_NO,
ACTOR_OBJ_BANK_SHOP_GOODS,
sizeof(SHOP_GOODS_ACTOR),
&Shop_Goods_Actor_ct,
&Shop_Goods_Actor_dt,
&Shop_Goods_Actor_move,
&Shop_Goods_Actor_draw,
NULL,
};
// clang-format on
#define aSG_DATA_ROTATE_Y_FLAG (1 << 0)
#include "../src/ac_shop_goods_data.c_inc"
#define aSG_SCALE_FLAG (1 << 0)
static s16 SG_angle_y[UT_Z_NUM][UT_X_NUM];
static SHOP_GOODS_ACTOR* Glb_shop_goods_actor;
static int picture_count;
static s16 mode;
static s16 Shop_Goods_Actor_single_get_angle_y(int ut_z, int ut_x, int layer) {
if (layer == mCoBG_LAYER1) {
return SG_angle_y[ut_z][ut_x];
}
return 0;
}
static void Shop_Goods_Actor_single_set_angle_y(int ut_z, int ut_x, int layer, s16 angle_y) {
if (layer == mCoBG_LAYER1) {
SG_angle_y[ut_z][ut_x] = angle_y;
}
}
static void Shop_Goods_draw_ta_set(GAME* game) {
OPEN_DISP(game->graph);
gDPSetTextureAdjustMode(NEXT_POLY_OPA_DISP, G_TA_DOLPHIN);
gDPSetTextureAdjustMode(NEXT_POLY_XLU_DISP, G_TA_DOLPHIN);
CLOSE_DISP(game->graph);
}
static void Shop_Goods_draw_ta_clr(GAME* game) {
OPEN_DISP(game->graph);
gDPSetTextureAdjustMode(NEXT_POLY_OPA_DISP, G_TA_N64);
gDPSetTextureAdjustMode(NEXT_POLY_XLU_DISP, G_TA_N64);
CLOSE_DISP(game->graph);
}
static int Shop_Goods_Actor_drop_entry(SHOP_GOODS_ACTOR* shop_goods, mActor_name_t item, xyz_t* now_pos,
xyz_t* target_pos, s16 layer, int timer, u16 flags);
static int Shop_Goods_Actor_player_drop_entry(GAME* game, mActor_name_t item, int ut_x, int ut_z, int layer,
int delay_timer) {
ACTOR* player_actor = GET_PLAYER_ACTOR_GAME_ACTOR(game);
int res = 0;
xyz_t now_pos;
xyz_t target_pos;
mActor_name_t* fg_p;
target_pos.x = 0.0f;
target_pos.y = 0.0f;
target_pos.z = 0.0f;
mFI_UtNum2CenterWpos(&target_pos, ut_x, ut_z);
if (layer == mCoBG_LAYER0) {
target_pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos2(target_pos, -1.0f);
} else {
target_pos.y = mCoBG_GetBgY_AngleS_FromWpos(NULL, target_pos, -1.0f);
}
if (layer == mCoBG_LAYER0) {
fg_p = mFI_GetUnitFG(target_pos);
} else {
fg_p = mFI_GetUnitFG2(target_pos);
}
if (*fg_p == EMPTY_NO) {
xyz_t_move(&now_pos, &player_actor->world.position);
now_pos.y += 50.0f;
if (Shop_Goods_Actor_drop_entry(Glb_shop_goods_actor, item, &now_pos, &target_pos, layer, delay_timer, 1)) {
if (layer == mCoBG_LAYER0) {
mFI_SetFG_common(RSV_NO, target_pos, FALSE);
} else {
mFI_SetFG2(RSV_NO, target_pos);
}
if (layer == mCoBG_LAYER1) {
SG_angle_y[ut_z][ut_x] = 0;
}
res = 1;
aMR_ThrowItem_FurnitureLock();
}
} else {
res = -1;
}
return res;
}
static int Shop_Goods_Actor_drop_entry(SHOP_GOODS_ACTOR* shop_goods, mActor_name_t item, xyz_t* now_pos,
xyz_t* target_pos, s16 layer, int delay_timer, u16 flags) {
aSG_single_draw_c* single_draw_p = shop_goods->single_draw;
int i;
f32 dist_xz;
f32 dist_y;
int res = FALSE;
for (i = 0; i < aSG_SINGLE_DRAW_NUM; i++) {
if (single_draw_p->counter == 0) {
xyz_t_move(&single_draw_p->start_pos, now_pos);
xyz_t_move(&single_draw_p->current_pos, now_pos);
xyz_t_move(&single_draw_p->target_pos, target_pos);
single_draw_p->item = item;
single_draw_p->layer = layer;
single_draw_p->angle.y = search_position_angleY(&single_draw_p->current_pos, &single_draw_p->target_pos);
single_draw_p->flags = flags;
single_draw_p->acceleration_y = -1.2f;
single_draw_p->counter = 1;
single_draw_p->_40 = 0;
single_draw_p->delay_timer = delay_timer;
if ((flags & 1)) {
single_draw_p->scale = 0.0f;
} else {
single_draw_p->scale = 1.0f;
}
dist_xz = search_position_distanceXZ(&single_draw_p->target_pos, &single_draw_p->current_pos);
dist_y = single_draw_p->target_pos.y - single_draw_p->current_pos.y;
if (dist_xz != 0.0f) {
f32 tmp =
((single_draw_p->acceleration_y * 0.5f) + (single_draw_p->acceleration_y * 0.5f) * 28.0f) * 14.0f;
single_draw_p->velocity_y = (dist_y - tmp) / 28.0f;
} else {
single_draw_p->velocity_y = 0.0f;
}
res = TRUE;
break;
}
single_draw_p++;
}
return res;
}
static void Shop_Goods_Actor_drop_destruct(SHOP_GOODS_ACTOR* shop_goods) {
int i;
aSG_single_draw_c* single_draw_p = shop_goods->single_draw;
for (i = 0; i < aSG_SINGLE_DRAW_NUM; i++) {
if (single_draw_p->counter != 0) {
if (single_draw_p->layer == mCoBG_LAYER0) {
mFI_SetFG_common(single_draw_p->item, single_draw_p->target_pos, FALSE);
} else {
mFI_SetFG2(single_draw_p->item, single_draw_p->target_pos);
}
}
single_draw_p++;
}
}
static void Shop_Goods_Actor_drop_move(SHOP_GOODS_ACTOR* shop_goods) {
int i;
aSG_single_draw_c* single_draw_p = shop_goods->single_draw;
for (i = 0; i < aSG_SINGLE_DRAW_NUM; i++, single_draw_p++) {
if (single_draw_p->delay_timer > 0) {
single_draw_p->delay_timer--;
continue;
}
if (single_draw_p->counter != 0) {
f32 percent_xz = (f32)single_draw_p->counter * (1.0f / 30.0f);
if (percent_xz > 1.0f) {
percent_xz = 1.0f;
} else {
percent_xz = percent_xz;
}
single_draw_p->velocity_y += single_draw_p->acceleration_y * 0.5f;
single_draw_p->current_pos.y += single_draw_p->velocity_y * 0.5f;
single_draw_p->current_pos.x =
single_draw_p->start_pos.x + percent_xz * (single_draw_p->target_pos.x - single_draw_p->start_pos.x);
single_draw_p->current_pos.z =
single_draw_p->start_pos.z + percent_xz * (single_draw_p->target_pos.z - single_draw_p->start_pos.z);
if ((single_draw_p->flags & aSG_SCALE_FLAG)) {
single_draw_p->scale = 0.1f + (1.0f - SQ(1.0f - (f32)single_draw_p->counter / 28.0f)) * 0.9f;
}
if (single_draw_p->counter == 27) {
if (single_draw_p->item == ITM_FOOD_APPLE || single_draw_p->item == ITM_FOOD_CHERRY ||
single_draw_p->item == ITM_FOOD_PEAR || single_draw_p->item == ITM_FOOD_PEACH ||
single_draw_p->item == ITM_FOOD_ORANGE) {
sAdo_OngenTrgStart(0x127, &single_draw_p->current_pos);
} else if (single_draw_p->item == ITM_MONEY_1000 || single_draw_p->item == ITM_MONEY_10000 ||
single_draw_p->item == ITM_MONEY_30000 || single_draw_p->item == ITM_MONEY_100) {
sAdo_OngenTrgStart(0x444, &single_draw_p->current_pos);
} else {
sAdo_OngenTrgStart(0x128, &single_draw_p->current_pos);
}
}
if (single_draw_p->current_pos.y <= single_draw_p->target_pos.y) {
if (single_draw_p->_40 == 0) {
single_draw_p->flags &= ~aSG_SCALE_FLAG;
single_draw_p->scale = 1.0f;
xyz_t_move(&single_draw_p->current_pos, &single_draw_p->target_pos);
single_draw_p->velocity_y = -single_draw_p->velocity_y * 0.25f;
single_draw_p->_40++;
if (single_draw_p->velocity_y > 3.0f) {
single_draw_p->velocity_y = 3.0f;
}
} else {
if (single_draw_p->layer == mCoBG_LAYER0) {
mFI_SetFG_common(single_draw_p->item, single_draw_p->target_pos, FALSE);
} else {
mFI_SetFG2(single_draw_p->item, single_draw_p->target_pos);
}
single_draw_p->counter = 0;
aMR_ThrowItem_FurnitureUnlock();
}
} else {
single_draw_p->counter++;
}
}
}
}
static void Shop_Goods_Actor_single_drawR(GAME* game, mActor_name_t item, xyz_t* pos, xyz_t* scale, s16 angle_y,
int layer) {
GAME_PLAY* play = (GAME_PLAY*)game;
const aSG_data_c* src_data_p = l_shop_goods_dsp_table;
int i;
for (i = 0; i < picture_count; i++) {
const aSG_data_c* data_p = &src_data_p[i];
// Global_light* glight = &((GAME_PLAY*)game)->global_light;
LightsN* lightsN;
if (item >= data_p->item_start && item <= data_p->item_end) {
int xlu_flag = data_p->xlu_gfx0[mode] != NULL;
GRAPH* graph;
if (xlu_flag) {
_texture_z_light_fog_prim_xlu(game->graph);
}
_texture_z_light_fog_prim(game->graph);
graph = play->game.graph;
OPEN_DISP(graph);
lightsN = Global_light_read(&play->global_light, graph);
LightsN_list_check(lightsN, play->global_light.list, pos);
LightsN_disp(lightsN, play->game.graph);
Matrix_translate(pos->x, pos->y, pos->z, 0);
if ((data_p->flags & aSG_DATA_ROTATE_Y_FLAG) && layer == mCoBG_LAYER1) {
Matrix_RotateY(angle_y, 1);
}
Matrix_scale(scale->x, scale->y, scale->z, 1);
gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(NEXT_POLY_OPA_DISP, data_p->gfx0[mode]);
if (data_p->gfx1[mode] != NULL) {
gSPDisplayList(NEXT_POLY_OPA_DISP, data_p->gfx1[mode]);
}
if (xlu_flag != FALSE) {
gSPMatrix(NEXT_POLY_XLU_DISP, _Matrix_to_Mtx_new(game->graph),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(NEXT_POLY_XLU_DISP, data_p->xlu_gfx0[mode]);
if (data_p->xlu_gfx1[mode] != NULL) {
gSPDisplayList(NEXT_POLY_XLU_DISP, data_p->xlu_gfx1[mode]);
}
}
CLOSE_DISP(graph);
return;
}
}
}
static void Shop_Goods_Actor_single_draw(GAME* game, mActor_name_t item, xyz_t* pos, f32 scale, s16 angle_y,
int layer) {
xyz_t xyz_scale;
Shop_Goods_draw_ta_set(game);
xyz_scale.x = scale;
xyz_scale.y = scale;
xyz_scale.z = scale;
Shop_Goods_Actor_single_drawR(game, item, pos, &xyz_scale, angle_y, layer);
Shop_Goods_draw_ta_clr(game);
}
static void Shop_Goods_Actor_drop_draw(ACTOR* actorx, GAME* game) {
SHOP_GOODS_ACTOR* shop_goods = (SHOP_GOODS_ACTOR*)actorx;
int i;
aSG_single_draw_c* single_draw_p = shop_goods->single_draw;
for (i = 0; i < aSG_SINGLE_DRAW_NUM; i++) {
if (single_draw_p->counter != 0) {
int ut_x;
int ut_z;
s16 angle_y;
if (mFI_Wpos2UtNum(&ut_x, &ut_z, single_draw_p->target_pos)) {
angle_y = SG_angle_y[ut_z][ut_x];
} else {
angle_y = 0;
}
Shop_Goods_Actor_single_draw(game, single_draw_p->item, &single_draw_p->current_pos,
single_draw_p->scale * 0.01f, angle_y, single_draw_p->layer);
}
single_draw_p++;
}
}
static int aSG_CountPictureKind(void) {
const aSG_data_c* data_p = l_shop_goods_dsp_table;
int count = 0;
for (data_p; data_p->item_start != EMPTY_NO || data_p->item_end != EMPTY_NO; data_p++) {
count++;
}
return count;
}
static void Shop_Goods_Actor_ct(ACTOR* actorx, GAME* game) {
SHOP_GOODS_ACTOR* shop_goods = (SHOP_GOODS_ACTOR*)actorx;
int i;
shop_goods->picture_count = aSG_CountPictureKind();
picture_count = shop_goods->picture_count;
mFI_Wpos2BlockNum(&shop_goods->bx, &shop_goods->bz, actorx->world.position);
shop_goods->bx_pos = (f32)shop_goods->bx * mFI_BK_WORLDSIZE_X_F;
shop_goods->bz_pos = (f32)shop_goods->bz * mFI_BK_WORLDSIZE_Z_F;
shop_goods->mode = actorx->actor_specific;
mode = shop_goods->mode;
for (i = 0; i < aSG_SINGLE_DRAW_NUM; i++) {
shop_goods->single_draw[i].counter = 0;
}
Glb_shop_goods_actor = shop_goods;
if (Common_Get(clip).shop_goods_clip == NULL) {
Common_Get(clip).shop_goods_clip = (aSG_Clip_c*)zelda_malloc(sizeof(aSG_Clip_c));
Common_Get(clip).shop_goods_clip->single_draw_proc = &Shop_Goods_Actor_single_draw;
Common_Get(clip).shop_goods_clip->player_drop_entry_proc = &Shop_Goods_Actor_player_drop_entry;
Common_Get(clip).shop_goods_clip->single_get_angle_y_proc = &Shop_Goods_Actor_single_get_angle_y;
Common_Get(clip).shop_goods_clip->single_set_angle_y_proc = &Shop_Goods_Actor_single_set_angle_y;
}
}
static void Shop_Goods_Actor_dt(ACTOR* actorx, GAME* game) {
SHOP_GOODS_ACTOR* shop_goods = (SHOP_GOODS_ACTOR*)actorx;
Shop_Goods_Actor_drop_destruct(shop_goods);
if (Common_Get(clip).shop_goods_clip != NULL) {
zelda_free(Common_Get(clip).shop_goods_clip);
/* @BUG - shouldn't shop_goods_clip get set to NULL? */
#ifdef BUGFIXES
Common_Get(clip).shop_goods_clip = NULL;
#endif
}
}
static void Shop_Goods_Actor_move(ACTOR* actorx, GAME* game) {
SHOP_GOODS_ACTOR* shop_goods = (SHOP_GOODS_ACTOR*)actorx;
Shop_Goods_Actor_drop_move(shop_goods);
}
static void aSG_DrawGoods(GRAPH* graph, Global_light* glight, SHOP_GOODS_ACTOR* shop_goods, int bx, int bz, int ux,
int uz, const aSG_data_c* data_p, int layer) {
xyz_t pos;
int mode = shop_goods->mode;
Gfx* gfx0 = data_p->gfx0[mode];
Gfx* gfx1 = data_p->gfx1[mode];
Gfx* xlu_gfx0 = data_p->xlu_gfx0[mode];
Gfx* xlu_gfx1 = data_p->xlu_gfx1[mode];
LightsN* lightsN;
mFI_BkandUtNum2CenterWpos(&pos, bx, bz, ux, uz);
if (layer == mCoBG_LAYER0) {
pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos2(pos, 0.0f);
} else {
pos.y = mCoBG_GetBgY_AngleS_FromWpos(NULL, pos, 0.0f);
}
OPEN_DISP(graph);
lightsN = Global_light_read(glight, graph);
LightsN_list_check(lightsN, glight->list, &pos);
LightsN_disp(lightsN, graph);
if (gfx0 != NULL || xlu_gfx0 != NULL) {
Matrix_translate(pos.x, pos.y, pos.z, 0);
if ((data_p->flags & aSG_DATA_ROTATE_Y_FLAG) && layer == mCoBG_LAYER1) {
Matrix_RotateY(SG_angle_y[uz][ux], 1);
}
Matrix_scale(0.01f, 0.01f, 0.01f, 1);
if (gfx0 != NULL) {
_texture_z_light_fog_prim(graph);
gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(NEXT_POLY_OPA_DISP, gfx0);
if (gfx1 != NULL) {
gSPDisplayList(NEXT_POLY_OPA_DISP, gfx1);
}
}
if (xlu_gfx0 != NULL) {
_texture_z_light_fog_prim_xlu(graph);
gSPMatrix(NEXT_POLY_XLU_DISP, _Matrix_to_Mtx_new(graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(NEXT_POLY_XLU_DISP, xlu_gfx0);
if (xlu_gfx1 != NULL) {
gSPDisplayList(NEXT_POLY_XLU_DISP, xlu_gfx1);
}
}
}
CLOSE_DISP(graph);
}
static void aSG_DrawGoodsPicture(ACTOR* actorx, GAME* game) {
GAME_PLAY* play = (GAME_PLAY*)game;
Global_light* glight = &play->global_light;
SHOP_GOODS_ACTOR* shop_goods = (SHOP_GOODS_ACTOR*)actorx;
const aSG_data_c* data_p = l_shop_goods_dsp_table;
int picture_count = shop_goods->picture_count;
int bx = shop_goods->bx;
int bz = shop_goods->bz;
mActor_name_t* fg_p = mFI_BkNumtoUtFGTop(bx, bz);
mActor_name_t* fg2_p = mFI_BkNum2UtFGTop_layer(bx, bz, mCoBG_LAYER1);
s16 mode = shop_goods->mode;
int ux;
int uz;
int i;
if (fg_p != NULL) {
for (uz = 0; uz < UT_Z_NUM; uz++) {
for (ux = 0; ux < UT_X_NUM; ux++) {
if (*fg_p != RSV_NO) {
for (i = 0; i < picture_count; i++) {
if (*fg_p >= data_p[i].item_start && *fg_p <= data_p[i].item_end) {
aSG_DrawGoods(game->graph, glight, shop_goods, bx, bz, ux, uz, &data_p[i], mCoBG_LAYER0);
break;
}
}
}
fg_p++;
}
}
}
if (mode == 1 && fg2_p != NULL) {
for (uz = 0; uz < UT_Z_NUM; uz++) {
for (ux = 0; ux < UT_X_NUM; ux++) {
if (*fg2_p != RSV_NO) {
for (i = 0; i < picture_count; i++) {
if (*fg2_p >= data_p[i].item_start && *fg2_p <= data_p[i].item_end) {
aSG_DrawGoods(game->graph, glight, shop_goods, bx, bz, ux, uz, &data_p[i], mCoBG_LAYER1);
break;
}
}
}
fg2_p++;
}
}
}
}
static void Shop_Goods_Actor_draw(ACTOR* actorx, GAME* game) {
_texture_z_light_fog_prim(game->graph);
Shop_Goods_draw_ta_set(game);
aSG_DrawGoodsPicture(actorx, game);
Shop_Goods_draw_ta_clr(game);
Shop_Goods_Actor_drop_draw(actorx, game);
}
+971
View File
@@ -0,0 +1,971 @@
extern Gfx obj_apple2_modelT[];
extern Gfx obj_axeT_mat_model[];
extern Gfx obj_axeT_gfx_model[];
extern Gfx obj_paper_mat_model[];
extern Gfx obj_paper_gfx_model[];
extern Gfx obj_carpetT_mat_model[];
extern Gfx obj_carpetT_gfx_model[];
extern Gfx item_fish_modelT[];
extern Gfx obj_shop_fossil_mat_model[];
extern Gfx obj_shop_fossil_gfx_model[];
extern Gfx obj_fukuT_mat_model[];
extern Gfx obj_fukuT_gfx_model[];
extern Gfx item_kabu_modelT[];
extern Gfx obj_shop_kanbanT_mat_model[];
extern Gfx obj_shop_kanbanT_gfx_model[];
extern Gfx obj_shop_kaza1_model[];
extern Gfx obj_shop_kaza2_model[];
extern Gfx obj_shop_kaza3_model[];
extern Gfx obj_shop_kaza4_model[];
extern Gfx obj_shop_kaza5_model[];
extern Gfx obj_shop_kaza6_model[];
extern Gfx obj_shop_kaza7_model[];
extern Gfx obj_shop_kaza8_model[];
extern Gfx item_matutake_modelT[];
extern Gfx obj_mdT_mat_model[];
extern Gfx obj_mdT_gfx_model[];
extern Gfx obj_shop_cnaegiT_mat_model[];
extern Gfx obj_shop_cnaegiT_gfx_model[];
extern Gfx obj_naegiT_mat_model[];
extern Gfx obj_naegiT_gfx_model[];
extern Gfx obj_netT_mat_model[];
extern Gfx obj_netT_gfx_model[];
extern Gfx item_orange_modelT[];
extern Gfx obj_paintT_a_mat_model[];
extern Gfx obj_paintT_b_mat_model[];
extern Gfx obj_paintT_c_mat_model[];
extern Gfx obj_paintT_d_mat_model[];
extern Gfx obj_paintT_e_mat_model[];
extern Gfx obj_paintT_f_mat_model[];
extern Gfx obj_paintT_g_mat_model[];
extern Gfx obj_paintT_h_mat_model[];
extern Gfx obj_paintT_i_mat_model[];
extern Gfx obj_paintT_j_mat_model[];
extern Gfx obj_paintT_k_mat_model[];
extern Gfx obj_paintT_l_mat_model[];
extern Gfx obj_paintT_gfx_model[];
extern Gfx obj_rodT_mat_model[];
extern Gfx obj_rodT_gfx_model[];
extern Gfx obj_rod_lineT_mat_model[];
extern Gfx obj_rod_lineT_gfx_model[];
extern Gfx obj_sangoT_mat_model[];
extern Gfx obj_sangoT_gfx_model[];
extern Gfx obj_seed_mat_model[];
extern Gfx obj_seed_gfx_model[];
extern Gfx obj_honegaiT_mat_model[];
extern Gfx obj_honegaiT_gfx_model[];
extern Gfx obj_horagaiT_mat_model[];
extern Gfx obj_horagaiT_gfx_model[];
extern Gfx obj_komagaiT_mat_model[];
extern Gfx obj_komagaiT_gfx_model[];
extern Gfx obj_takaragaiT_mat_model[];
extern Gfx obj_takaragaiT_gfx_model[];
extern Gfx obj_ougigaiT_mat_model[];
extern Gfx obj_ougigaiT_gfx_model[];
extern Gfx obj_sakuragaiT_mat_model[];
extern Gfx obj_sakuragaiT_gfx_model[];
extern Gfx obj_shakogaiT_mat_model[];
extern Gfx obj_shakogaiT_gfx_model[];
extern Gfx obj_shovelT_mat_model[];
extern Gfx obj_shovelT_gfx_model[];
extern Gfx obj_soldoutT_mat_model[];
extern Gfx obj_soldoutT_gfx_model[];
extern Gfx obj_ticketT_mat_model[];
extern Gfx obj_ticketT_gfx_model[];
extern Gfx obj_axe2T_mat_model[];
extern Gfx obj_axe2T_gfx_model[];
extern Gfx obj_net2T_mat_model[];
extern Gfx obj_net2T_gfx_model[];
extern Gfx obj_rod2T_mat_model[];
extern Gfx obj_rod2T_gfx_model[];
extern Gfx obj_rod2_lineT_mat_model[];
extern Gfx obj_rod2_lineT_gfx_model[];
extern Gfx obj_shovel2T_mat_model[];
extern Gfx obj_shovel2T_gfx_model[];
extern Gfx obj_g2T_mat_model[];
extern Gfx obj_g2T_gfx_model[];
extern Gfx obj_nagagutuT_mat_model[];
extern Gfx obj_nagagutuT_gfx_model[];
extern Gfx obj_g1T_mat_model[];
extern Gfx obj_g1T_gfx_model[];
extern Gfx obj_shop_utiwa1_mat_model[];
extern Gfx obj_shop_utiwa1_gfx_model[];
extern Gfx obj_shop_utiwa2_mat_model[];
extern Gfx obj_shop_utiwa2_gfx_model[];
extern Gfx obj_shop_utiwa3_mat_model[];
extern Gfx obj_shop_utiwa3_gfx_model[];
extern Gfx obj_shop_utiwa4_mat_model[];
extern Gfx obj_shop_utiwa4_gfx_model[];
extern Gfx obj_shop_utiwa5_mat_model[];
extern Gfx obj_shop_utiwa5_gfx_model[];
extern Gfx obj_shop_utiwa6_mat_model[];
extern Gfx obj_shop_utiwa6_gfx_model[];
extern Gfx obj_shop_utiwa7_mat_model[];
extern Gfx obj_shop_utiwa7_gfx_model[];
extern Gfx obj_shop_utiwa8_mat_model[];
extern Gfx obj_shop_utiwa8_gfx_model[];
extern Gfx obj_wallT_mat_model[];
extern Gfx obj_wallT_gfx_model[];
extern Gfx int_iid_diary_model[];
extern Gfx int_iid_funediary_model[];
extern Gfx int_iid_mdiary_model[];
extern Gfx int_iid_newediary_model[];
extern Gfx int_ike_nikki_fan1_on_model[];
extern Gfx int_ike_nikki_fan2_on_model[];
extern Gfx int_ike_nikki_fan3_on_model[];
extern Gfx int_ike_nikki_fan4_on_model[];
extern Gfx int_ike_nikki_fan5_on_model[];
extern Gfx int_ike_nikki_wafu1_on_model[];
extern Gfx bag_DL_mode[];
extern Gfx bag_DL_vtx[];
extern Gfx obj_shop_candy_modelT[];
extern Gfx obj_item_cocoT_mat_model[];
extern Gfx obj_item_cocoT_gfx_model[];
extern Gfx nuts_DL_mode[];
extern Gfx nuts_DL_vtx[];
extern Gfx obj_otosiT_mat_model[];
extern Gfx obj_otosiT_gfx_model[];
extern Gfx peach_DL_mode[];
extern Gfx peach_DL_vtx[];
extern Gfx pear_DL_mode[];
extern Gfx pear_DL_vtx[];
extern Gfx int_nog_collegenote_model[];
extern Gfx int_nog_harddiaryT_model[];
extern Gfx int_nog_schoolnote_model[];
extern Gfx int_nog_systemnote_model[];
extern Gfx int_nog_tudurinoteT_model[];
extern Gfx int_tak_nikki01_on_model[];
typedef struct ac_shop_goods_data_s {
mActor_name_t item_start;
mActor_name_t item_end;
Gfx* gfx0[2];
Gfx* gfx1[2];
Gfx* xlu_gfx0[2];
Gfx* xlu_gfx1[2];
int flags;
} aSG_data_c;
// clang-format off
static const aSG_data_c l_shop_goods_dsp_table[] = {
{
ITM_PAPER00,
ITM_PAPER_END - 1,
{ obj_paper_mat_model, obj_paper_mat_model },
{ obj_paper_gfx_model, obj_paper_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
0xFE0E,
0xFE0E,
{ obj_soldoutT_mat_model, obj_soldoutT_mat_model },
{ obj_soldoutT_gfx_model, obj_soldoutT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
0xFE10,
0xFE18,
{ obj_soldoutT_mat_model, obj_soldoutT_mat_model },
{ obj_soldoutT_gfx_model, obj_soldoutT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_CARPET00,
ITM_CARPET66,
{ obj_carpetT_mat_model, obj_carpetT_mat_model },
{ obj_carpetT_gfx_model, obj_carpetT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_WALL00,
ITM_WALL66,
{ obj_wallT_mat_model, obj_wallT_mat_model },
{ obj_wallT_gfx_model, obj_wallT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_CLOTH000,
ITM_CLOTH254,
{ NULL, obj_wallT_mat_model },
{ NULL, obj_wallT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_AXE,
ITM_AXE,
{ obj_axeT_mat_model, obj_axeT_mat_model },
{ obj_axeT_gfx_model, obj_axeT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_AXE_USE_1,
ITM_AXE_USE_7,
{ obj_axeT_mat_model, obj_axeT_mat_model },
{ obj_axeT_gfx_model, obj_axeT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHOVEL,
ITM_SHOVEL,
{ obj_shovelT_mat_model, obj_shovelT_mat_model },
{ obj_shovelT_gfx_model, obj_shovelT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_NET,
ITM_NET,
{ obj_netT_mat_model, obj_netT_mat_model },
{ obj_netT_gfx_model, obj_netT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_ROD,
ITM_ROD,
{ obj_rodT_mat_model, obj_rodT_mat_model },
{ obj_rodT_gfx_model, obj_rodT_gfx_model },
{ obj_rod_lineT_mat_model, obj_rod_lineT_mat_model },
{ obj_rod_lineT_gfx_model, obj_rod_lineT_gfx_model },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SAPLING,
ITM_SAPLING,
{ obj_naegiT_mat_model, obj_naegiT_mat_model },
{ obj_naegiT_gfx_model, obj_naegiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_WHITE_PANSY_BAG,
ITM_YELLOW_TULIP_BAG,
{ obj_seed_mat_model, obj_seed_mat_model },
{ obj_seed_gfx_model, obj_seed_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_CEDAR_SAPLING,
ITM_CEDAR_SAPLING,
{ obj_shop_cnaegiT_mat_model, obj_shop_cnaegiT_mat_model },
{ obj_shop_cnaegiT_gfx_model, obj_shop_cnaegiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_YELLOW_PINWHEEL,
ITM_YELLOW_PINWHEEL,
{ obj_shop_kaza1_model, obj_shop_kaza1_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_RED_PINWHEEL,
ITM_RED_PINWHEEL,
{ obj_shop_kaza2_model, obj_shop_kaza2_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_TIGER_PINWHEEL,
ITM_TIGER_PINWHEEL,
{ obj_shop_kaza3_model, obj_shop_kaza3_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_GREEN_PINWHEEL,
ITM_GREEN_PINWHEEL,
{ obj_shop_kaza4_model, obj_shop_kaza4_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_PINK_PINWHEEL,
ITM_PINK_PINWHEEL,
{ obj_shop_kaza5_model, obj_shop_kaza5_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_STRIPED_PINWHEEL,
ITM_STRIPED_PINWHEEL,
{ obj_shop_kaza6_model, obj_shop_kaza6_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_FLOWER_PINWHEEL,
ITM_FLOWER_PINWHEEL,
{ obj_shop_kaza7_model, obj_shop_kaza7_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_FANCY_PINWHEEL,
ITM_FANCY_PINWHEEL,
{ obj_shop_kaza8_model, obj_shop_kaza8_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_BLUEBELL_FAN,
ITM_BLUEBELL_FAN,
{ obj_shop_utiwa1_mat_model, obj_shop_utiwa1_mat_model },
{ obj_shop_utiwa1_gfx_model, obj_shop_utiwa1_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_PLUM_FAN,
ITM_PLUM_FAN,
{ obj_shop_utiwa2_mat_model, obj_shop_utiwa2_mat_model },
{ obj_shop_utiwa2_gfx_model, obj_shop_utiwa2_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_BAMBOO_FAN,
ITM_BAMBOO_FAN,
{ obj_shop_utiwa3_mat_model, obj_shop_utiwa3_mat_model },
{ obj_shop_utiwa3_gfx_model, obj_shop_utiwa3_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_CLOUD_FAN,
ITM_CLOUD_FAN,
{ obj_shop_utiwa4_mat_model, obj_shop_utiwa4_mat_model },
{ obj_shop_utiwa4_gfx_model, obj_shop_utiwa4_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_MAPLE_FAN,
ITM_MAPLE_FAN,
{ obj_shop_utiwa5_mat_model, obj_shop_utiwa5_mat_model },
{ obj_shop_utiwa5_gfx_model, obj_shop_utiwa5_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_FAN_FAN,
ITM_FAN_FAN,
{ obj_shop_utiwa6_mat_model, obj_shop_utiwa6_mat_model },
{ obj_shop_utiwa6_gfx_model, obj_shop_utiwa6_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_FLOWER_FAN,
ITM_FLOWER_FAN,
{ obj_shop_utiwa7_mat_model, obj_shop_utiwa7_mat_model },
{ obj_shop_utiwa7_gfx_model, obj_shop_utiwa7_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_LEAF_FAN,
ITM_LEAF_FAN,
{ obj_shop_utiwa8_mat_model, obj_shop_utiwa8_mat_model },
{ obj_shop_utiwa8_gfx_model, obj_shop_utiwa8_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_FOOD_APPLE,
ITM_FOOD_APPLE,
{ obj_apple2_modelT, obj_apple2_modelT },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_PEACH,
ITM_FOOD_PEACH,
{ peach_DL_mode, peach_DL_mode },
{ peach_DL_vtx, peach_DL_vtx },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_ORANGE,
ITM_FOOD_ORANGE,
{ item_orange_modelT, item_orange_modelT },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FISH00,
ITM_FISH39,
{ item_fish_modelT, item_fish_modelT },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_MUSHROOM,
ITM_FOOD_MUSHROOM,
{ item_matutake_modelT, item_matutake_modelT },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_KABU_10,
ITM_KABU_SPOILED,
{ item_kabu_modelT, item_kabu_modelT },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_CANDY,
ITM_FOOD_CANDY,
{ obj_shop_candy_modelT, obj_shop_candy_modelT },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_CHERRY,
ITM_FOOD_CHERRY,
{ nuts_DL_mode, nuts_DL_mode },
{ nuts_DL_vtx, nuts_DL_vtx },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_PEAR,
ITM_FOOD_PEAR,
{ pear_DL_mode, pear_DL_mode },
{ pear_DL_vtx, pear_DL_vtx },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_FOOD_COCONUT,
ITM_FOOD_COCONUT,
{ obj_item_cocoT_mat_model, obj_item_cocoT_mat_model },
{ obj_item_cocoT_gfx_model, obj_item_cocoT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_MONEY_1000,
ITM_MONEY_100,
{ bag_DL_mode, bag_DL_mode },
{ bag_DL_vtx, bag_DL_vtx },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_MINIDISK00,
ITM_MINIDISK54,
{ obj_mdT_mat_model, obj_mdT_mat_model },
{ obj_mdT_gfx_model, obj_mdT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_TICKET_START,
ITM_TICKET_END,
{ obj_ticketT_mat_model, obj_ticketT_mat_model },
{ obj_ticketT_gfx_model, obj_ticketT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_HUKUBUKURO_BAG,
ITM_HUKUBUKURO_PRESENT,
{ obj_fukuT_mat_model, obj_fukuT_mat_model },
{ obj_fukuT_gfx_model, obj_fukuT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DUST0_EMPTY_CAN,
ITM_DUST0_EMPTY_CAN,
{ obj_g2T_mat_model, obj_g2T_mat_model },
{ obj_g2T_gfx_model, obj_g2T_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DUST1_BOOT,
ITM_DUST1_BOOT,
{ obj_nagagutuT_mat_model, obj_nagagutuT_mat_model },
{ obj_nagagutuT_gfx_model, obj_nagagutuT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DUST2_OLD_TIRE,
ITM_DUST2_OLD_TIRE,
{ obj_g1T_mat_model, obj_g1T_mat_model },
{ obj_g1T_gfx_model, obj_g1T_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_FOSSIL,
ITM_FOSSIL,
{ obj_shop_fossil_mat_model, obj_shop_fossil_mat_model },
{ obj_shop_fossil_gfx_model, obj_shop_fossil_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_PITFALL,
ITM_PITFALL,
{ obj_otosiT_mat_model, obj_otosiT_mat_model },
{ obj_otosiT_gfx_model, obj_otosiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_SHELL1,
ITM_SHELL1,
{ obj_komagaiT_mat_model, obj_komagaiT_mat_model },
{ obj_komagaiT_gfx_model, obj_komagaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL3,
ITM_SHELL3,
{ obj_takaragaiT_mat_model, obj_takaragaiT_mat_model },
{ obj_takaragaiT_gfx_model, obj_takaragaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL2,
ITM_SHELL2,
{ obj_honegaiT_mat_model, obj_honegaiT_mat_model },
{ obj_honegaiT_gfx_model, obj_honegaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL6,
ITM_SHELL6,
{ obj_horagaiT_mat_model, obj_horagaiT_mat_model },
{ obj_horagaiT_gfx_model, obj_horagaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL4,
ITM_SHELL4,
{ obj_sakuragaiT_mat_model, obj_sakuragaiT_mat_model },
{ obj_sakuragaiT_gfx_model, obj_sakuragaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL0,
ITM_SHELL0,
{ obj_ougigaiT_mat_model, obj_ougigaiT_mat_model },
{ obj_ougigaiT_gfx_model, obj_ougigaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL5,
ITM_SHELL5,
{ obj_shakogaiT_mat_model, obj_shakogaiT_mat_model },
{ obj_shakogaiT_gfx_model, obj_shakogaiT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SHELL7,
ITM_SHELL7,
{ obj_sangoT_mat_model, obj_sangoT_mat_model },
{ obj_sangoT_gfx_model, obj_sangoT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_RED_PAINT,
ITM_RED_PAINT,
{ obj_paintT_a_mat_model, obj_paintT_a_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_ORANGE_PAINT,
ITM_ORANGE_PAINT,
{ obj_paintT_b_mat_model, obj_paintT_b_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_YELLOW_PAINT,
ITM_YELLOW_PAINT,
{ obj_paintT_c_mat_model, obj_paintT_c_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_PALE_GREEN_PAINT,
ITM_PALE_GREEN_PAINT,
{ obj_paintT_d_mat_model, obj_paintT_d_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_GREEN_PAINT,
ITM_GREEN_PAINT,
{ obj_paintT_e_mat_model, obj_paintT_e_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_SKY_BLUE_PAINT,
ITM_SKY_BLUE_PAINT,
{ obj_paintT_f_mat_model, obj_paintT_f_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_BLUE_PAINT,
ITM_BLUE_PAINT,
{ obj_paintT_g_mat_model, obj_paintT_g_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_PURPLE_PAINT,
ITM_PURPLE_PAINT,
{ obj_paintT_h_mat_model, obj_paintT_h_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_PINK_PAINT,
ITM_PINK_PAINT,
{ obj_paintT_i_mat_model, obj_paintT_i_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_BLACK_PAINT,
ITM_BLACK_PAINT,
{ obj_paintT_j_mat_model, obj_paintT_j_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_WHITE_PAINT,
ITM_WHITE_PAINT,
{ obj_paintT_k_mat_model, obj_paintT_k_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_BROWN_PAINT,
ITM_BROWN_PAINT,
{ obj_paintT_l_mat_model, obj_paintT_l_mat_model },
{ obj_paintT_gfx_model, obj_paintT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
0
},
{
ITM_GOLDEN_NET,
ITM_GOLDEN_NET,
{ obj_net2T_mat_model, obj_net2T_mat_model },
{ obj_net2T_gfx_model, obj_net2T_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_GOLDEN_AXE,
ITM_GOLDEN_AXE,
{ obj_axe2T_mat_model, obj_axe2T_mat_model },
{ obj_axe2T_gfx_model, obj_axe2T_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_GOLDEN_SHOVEL,
ITM_GOLDEN_SHOVEL,
{ obj_shovel2T_mat_model, obj_shovel2T_mat_model },
{ obj_shovel2T_gfx_model, obj_shovel2T_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_GOLDEN_ROD,
ITM_GOLDEN_ROD,
{ obj_rod2T_mat_model, obj_rod2T_mat_model },
{ obj_rod2T_gfx_model, obj_rod2T_gfx_model },
{ obj_rod2_lineT_mat_model, obj_rod2_lineT_mat_model },
{ obj_rod2_lineT_gfx_model, obj_rod2_lineT_gfx_model },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_SIGNBOARD,
ITM_SIGNBOARD,
{ obj_shop_kanbanT_mat_model, obj_shop_kanbanT_mat_model },
{ obj_shop_kanbanT_gfx_model, obj_shop_kanbanT_gfx_model },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY00,
ITM_DIARY00,
{ int_nog_collegenote_model, int_nog_collegenote_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY01,
ITM_DIARY01,
{ int_nog_schoolnote_model, int_nog_schoolnote_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY02,
ITM_DIARY02,
{ int_nog_systemnote_model, int_nog_systemnote_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY03,
ITM_DIARY03,
{ int_nog_harddiaryT_model, int_nog_harddiaryT_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY04,
ITM_DIARY04,
{ int_nog_tudurinoteT_model, int_nog_tudurinoteT_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY05,
ITM_DIARY05,
{ int_iid_diary_model, int_iid_diary_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY06,
ITM_DIARY06,
{ int_iid_funediary_model, int_iid_funediary_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY07,
ITM_DIARY07,
{ int_iid_mdiary_model, int_iid_mdiary_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY08,
ITM_DIARY08,
{ int_iid_newediary_model, int_iid_newediary_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY09,
ITM_DIARY09,
{ int_tak_nikki01_on_model, int_tak_nikki01_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY10,
ITM_DIARY10,
{ int_ike_nikki_fan1_on_model, int_ike_nikki_fan1_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY11,
ITM_DIARY11,
{ int_ike_nikki_fan2_on_model, int_ike_nikki_fan2_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY12,
ITM_DIARY12,
{ int_ike_nikki_fan3_on_model, int_ike_nikki_fan3_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY13,
ITM_DIARY13,
{ int_ike_nikki_fan4_on_model, int_ike_nikki_fan4_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY14,
ITM_DIARY14,
{ int_ike_nikki_fan5_on_model, int_ike_nikki_fan5_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
ITM_DIARY15,
ITM_DIARY15,
{ int_ike_nikki_wafu1_on_model, int_ike_nikki_wafu1_on_model },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
aSG_DATA_ROTATE_Y_FLAG
},
{
EMPTY_NO,
EMPTY_NO,
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
{ NULL, NULL },
0
},
};
// clang-format on