From 32a293506a4f637c5a0aedced0ae8747eea8b7d6 Mon Sep 17 00:00:00 2001 From: Cuyler36 <24523422+Cuyler36@users.noreply.github.com> Date: Sat, 31 Aug 2024 06:35:33 -0400 Subject: [PATCH] Implement & link ac_sign, link m_titledemo --- config/rel_slices.yml | 9 + include/ac_sign.h | 44 +- include/audio_defs.h | 2 + include/m_actor.h | 2 +- include/m_clip.h | 3 +- include/m_collision_bg.h | 1 + include/m_name_table.h | 73 +-- include/m_player_lib.h | 2 +- include/sys_math.h | 2 + src/ac_sign.c | 1022 ++++++++++++++++++++++++++++++++++++++ src/m_item_name.c | 766 ++++++++++++++++++---------- src/m_titledemo.c | 230 +++++---- 12 files changed, 1738 insertions(+), 418 deletions(-) create mode 100644 src/ac_sign.c diff --git a/config/rel_slices.yml b/config/rel_slices.yml index 7fde6ccd..32ffbd0d 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -304,6 +304,11 @@ m_skin_matrix.c: m_snowman.c: .text: [0x803F1BB4, 0x803F1F94] .rodata: [0x80643318, 0x80643330] +m_titledemo.c: + .text: [0x803F1F94, 0x803F2428] + .rodata: [0x80643330, 0x80643350] + .data: [0x8065E2D8, 0x8065E2F0] + .bss: [0x8129F408, 0x8129F410] m_time.c: .text: [0x803F33DC, 0x803F3E58] .rodata: [0x806433B0, 0x806433D8] @@ -528,6 +533,10 @@ ac_set_ovl_insect.c: ac_shop_design.c: .text: [0x8049C748, 0x8049D51C] .data: [0x8068E3C0, 0x8068E430] +ac_sign.c: + .text: [0x804A127C, 0x804A3328] + .rodata: [0x80645D18, 0x80645D78] + .data: [0x8068E880, 0x8068E8E8] ac_t_anrium1.c: .text: [0x804A7750, 0x804A78A4] .data: [0x8068E9C8, 0x8068EA08] diff --git a/include/ac_sign.h b/include/ac_sign.h index 59278feb..a6ad7e3e 100644 --- a/include/ac_sign.h +++ b/include/ac_sign.h @@ -3,13 +3,53 @@ #include "types.h" #include "m_actor.h" +#include "m_field_make.h" +#include "m_olib.h" #ifdef __cplusplus extern "C" { #endif -extern int aSIGN_set_white_sign(GAME* game, const xyz_t* pos_p); -extern int aSIGN_erase_white_sign(GAME* game, const xyz_t* pos_p); +#define aSIGN_SINGLE_NUM 10 + +#define aSIGN_CULL_MAX_DIST (mFI_UNIT_BASE_SIZE_F * 4) + +typedef struct sign_actor_s SIGN_ACTOR; + +typedef struct sign_draw_s { + BlockOrUnit_c block; + u16 exist_bitfield[UT_Z_NUM]; +} aSIGN_draw_c; + +typedef struct sign_single_s { + BlockOrUnit_c block; + BlockOrUnit_c unit; + mActor_name_t item; + xyz_t scale; + f32 _20; + s16 _24; + s16 _26; + int exist_flag; +} aSIGN_single_c; + +typedef void (*aSIGN_ACTION_PROC)(SIGN_ACTOR*, GAME*); + +struct sign_actor_s { + ACTOR actor_class; + aSIGN_ACTION_PROC action_proc; + aSIGN_draw_c draw[mFM_VISIBLE_BLOCK_NUM]; + aSIGN_single_c single[aSIGN_SINGLE_NUM]; + BlockOrUnit_c target_block; + BlockOrUnit_c target_unit; + xyz_t target_pos; + xyz_t sign_birth_pos; + xyz_t sign_pos; + int _404; + int is_winter; +}; + +extern int aSIGN_set_white_sign(GAME* game, xyz_t* pos_p); +extern int aSIGN_erase_white_sign(GAME* game, xyz_t* pos_p); extern ACTOR_PROFILE Ac_Sign_Profile; diff --git a/include/audio_defs.h b/include/audio_defs.h index e2718fab..e40791a1 100644 --- a/include/audio_defs.h +++ b/include/audio_defs.h @@ -162,6 +162,8 @@ typedef enum audio_sound_effects { NA_SE_SCOOP_ITEM_HIT, NA_SE_AXE_BALL_HIT, + NA_SE_461 = 0x461, + NA_SE_COIN_GASAGOSO = 0x465, } AudioSE; diff --git a/include/m_actor.h b/include/m_actor.h index c7a193de..a1965148 100644 --- a/include/m_actor.h +++ b/include/m_actor.h @@ -449,7 +449,7 @@ typedef enum bank_id { ACTOR_OBJ_BANK_408, ACTOR_OBJ_BANK_EF_MUSEUM, ACTOR_OBJ_BANK_EF_MINSECT, - ACTOR_OBJ_BANK_411, + ACTOR_OBJ_BANK_AC_SIGN, ACTOR_OBJ_BANK_MURAL, ACTOR_OBJ_BANK_413, ACTOR_OBJ_BANK_414, diff --git a/include/m_clip.h b/include/m_clip.h index 1da06acd..720f09dd 100644 --- a/include/m_clip.h +++ b/include/m_clip.h @@ -27,6 +27,7 @@ #include "ac_shop_design.h" #include "ac_effectbg.h" #include "ac_htable.h" +#include "ac_sign.h" #ifdef __cplusplus extern "C" { @@ -87,7 +88,7 @@ typedef struct clip_s { /* 0x0DC */ aAL_Clip_c* animal_logo_clip; /* 0x0E0 */ void* _0E0; /* 0x0E4 */ void* _0E4; - /* 0x0E8 */ void* _0E8; + /* 0x0E8 */ SIGN_ACTOR* sign_control_actor; /* 0x0EC */ aAPC_Clip_c* aprilfool_control_clip; /* 0x0F0 */ aEvMgr_Clip_c* event_manager_clip; /* 0x0F4 */ aGHC_Clip_c* groundhog_control_clip; diff --git a/include/m_collision_bg.h b/include/m_collision_bg.h index 025eb60e..c7181452 100644 --- a/include/m_collision_bg.h +++ b/include/m_collision_bg.h @@ -343,6 +343,7 @@ extern int mCoBG_GetBlockBgCheckMode(void); extern void mCoBG_GroundCheckOnly(xyz_t* reverse_pos, ACTOR* actor, f32 check_range, f32 offset_y, s16 check_type); extern f32 mCoBG_Wpos2BgUtCenterHeight_AddColumn(xyz_t pos); extern f32 mCoBG_UtNum2UtCenterY_Keep(int ut_x, int ut_z); +extern int mCoBG_RegistDecalCircle(const xyz_t* pos_p, f32 radius_start, f32 radius_end, s16 timer); extern void mCoBG_InitMoveBgData(); extern void mCoBG_InitBlockBgCheckMode(); diff --git a/include/m_name_table.h b/include/m_name_table.h index aa8305bf..ecf6af64 100644 --- a/include/m_name_table.h +++ b/include/m_name_table.h @@ -36,6 +36,10 @@ enum { NAME_TYPE_NUM }; +#define ITEM0_CAT_OBJ 0 +#define ITEM0_CAT_PLANT 8 +#define ITEM0_CAT_SIGN 9 + enum { ITEM1_CAT_PAPER, ITEM1_CAT_MONEY, @@ -786,40 +790,40 @@ extern int mNT_check_unknown(mActor_name_t item_no); /* end of environmental objects */ #define SIGNBOARD_START 0x0900 -#define SIGNBOARD (SIGNBOARD_START) -#define SIGNBOARD0_PLR0 (SIGNBOARD_START + 1) -#define SIGNBOARD1_PLR0 (SIGNBOARD0_PLR0 + 1) -#define SIGNBOARD2_PLR0 (SIGNBOARD1_PLR0 + 1) -#define SIGNBOARD3_PLR0 (SIGNBOARD2_PLR0 + 1) -#define SIGNBOARD4_PLR0 (SIGNBOARD3_PLR0 + 1) -#define SIGNBOARD5_PLR0 (SIGNBOARD4_PLR0 + 1) -#define SIGNBOARD6_PLR0 (SIGNBOARD5_PLR0 + 1) -#define SIGNBOARD7_PLR0 (SIGNBOARD6_PLR0 + 1) -#define SIGNBOARD0_PLR1 (SIGNBOARD7_PLR0 + 1) -#define SIGNBOARD1_PLR1 (SIGNBOARD0_PLR1 + 1) -#define SIGNBOARD2_PLR1 (SIGNBOARD1_PLR1 + 1) -#define SIGNBOARD3_PLR1 (SIGNBOARD2_PLR1 + 1) -#define SIGNBOARD4_PLR1 (SIGNBOARD3_PLR1 + 1) -#define SIGNBOARD5_PLR1 (SIGNBOARD4_PLR1 + 1) -#define SIGNBOARD6_PLR1 (SIGNBOARD5_PLR1 + 1) -#define SIGNBOARD7_PLR1 (SIGNBOARD6_PLR1 + 1) -#define SIGNBOARD0_PLR2 (SIGNBOARD7_PLR1 + 1) -#define SIGNBOARD1_PLR2 (SIGNBOARD0_PLR2 + 1) -#define SIGNBOARD2_PLR2 (SIGNBOARD1_PLR2 + 1) -#define SIGNBOARD3_PLR2 (SIGNBOARD2_PLR2 + 1) -#define SIGNBOARD4_PLR2 (SIGNBOARD3_PLR2 + 1) -#define SIGNBOARD5_PLR2 (SIGNBOARD4_PLR2 + 1) -#define SIGNBOARD6_PLR2 (SIGNBOARD5_PLR2 + 1) -#define SIGNBOARD7_PLR2 (SIGNBOARD6_PLR2 + 1) -#define SIGNBOARD0_PLR3 (SIGNBOARD7_PLR2 + 1) -#define SIGNBOARD1_PLR3 (SIGNBOARD0_PLR3 + 1) -#define SIGNBOARD2_PLR3 (SIGNBOARD1_PLR3 + 1) -#define SIGNBOARD3_PLR3 (SIGNBOARD2_PLR3 + 1) -#define SIGNBOARD4_PLR3 (SIGNBOARD3_PLR3 + 1) -#define SIGNBOARD5_PLR3 (SIGNBOARD4_PLR3 + 1) -#define SIGNBOARD6_PLR3 (SIGNBOARD5_PLR3 + 1) -#define SIGNBOARD7_PLR3 (SIGNBOARD6_PLR3 + 1) -#define SIGNBOARD_END (SIGNBOARD7_PLR3) +#define SIGNBOARD0_PLR0 (SIGNBOARD_START + 0) +#define SIGNBOARD1_PLR0 (SIGNBOARD_START + 1) +#define SIGNBOARD2_PLR0 (SIGNBOARD_START + 2) +#define SIGNBOARD3_PLR0 (SIGNBOARD_START + 3) +#define SIGNBOARD4_PLR0 (SIGNBOARD_START + 4) +#define SIGNBOARD5_PLR0 (SIGNBOARD_START + 5) +#define SIGNBOARD6_PLR0 (SIGNBOARD_START + 6) +#define SIGNBOARD7_PLR0 (SIGNBOARD_START + 7) +#define SIGNBOARD0_PLR1 (SIGNBOARD_START + 8) +#define SIGNBOARD1_PLR1 (SIGNBOARD_START + 9) +#define SIGNBOARD2_PLR1 (SIGNBOARD_START + 10) +#define SIGNBOARD3_PLR1 (SIGNBOARD_START + 11) +#define SIGNBOARD4_PLR1 (SIGNBOARD_START + 12) +#define SIGNBOARD5_PLR1 (SIGNBOARD_START + 13) +#define SIGNBOARD6_PLR1 (SIGNBOARD_START + 14) +#define SIGNBOARD7_PLR1 (SIGNBOARD_START + 15) +#define SIGNBOARD0_PLR2 (SIGNBOARD_START + 16) +#define SIGNBOARD1_PLR2 (SIGNBOARD_START + 17) +#define SIGNBOARD2_PLR2 (SIGNBOARD_START + 18) +#define SIGNBOARD3_PLR2 (SIGNBOARD_START + 19) +#define SIGNBOARD4_PLR2 (SIGNBOARD_START + 20) +#define SIGNBOARD5_PLR2 (SIGNBOARD_START + 21) +#define SIGNBOARD6_PLR2 (SIGNBOARD_START + 22) +#define SIGNBOARD7_PLR2 (SIGNBOARD_START + 23) +#define SIGNBOARD0_PLR3 (SIGNBOARD_START + 24) +#define SIGNBOARD1_PLR3 (SIGNBOARD_START + 25) +#define SIGNBOARD2_PLR3 (SIGNBOARD_START + 26) +#define SIGNBOARD3_PLR3 (SIGNBOARD_START + 27) +#define SIGNBOARD4_PLR3 (SIGNBOARD_START + 28) +#define SIGNBOARD5_PLR3 (SIGNBOARD_START + 29) +#define SIGNBOARD6_PLR3 (SIGNBOARD_START + 30) +#define SIGNBOARD7_PLR3 (SIGNBOARD_START + 31) +#define SIGNBOARD (SIGNBOARD_START + 32) +#define SIGNBOARD_END (SIGNBOARD) #define FTR0_START 0x1000 #define FTR_CLASSIC_WARDROBE 0x1004 @@ -3085,6 +3089,7 @@ extern int mNT_check_unknown(mActor_name_t item_no); #define RSV_CLOTH5 0xFE25 #define RSV_CLOTH6 0xFE26 #define RSV_CLOTH7 0xFE27 +#define RSV_SIGNBOARD 0xFE30 #define RSV_NW_ORIGINAL0 0xFE31 #define RSV_NW_ORIGINAL1 0xFE32 #define RSV_NW_ORIGINAL2 0xFE33 diff --git a/include/m_player_lib.h b/include/m_player_lib.h index 0e32ee73..7635d94c 100644 --- a/include/m_player_lib.h +++ b/include/m_player_lib.h @@ -13,7 +13,7 @@ extern "C" { extern void mPlib_Object_Exchange_keep_Player_dt(GAME_PLAY*); extern PLAYER_ACTOR* get_player_actor_withoutCheck(GAME_PLAY* play); extern mPlayer_Controller_Data_c* mPlib_Get_controller_data_for_title_demo_p(); -extern void mPlib_SetData1_controller_data_for_title_demo(f32 stick_x, f32 stick_y, int btn_a, int btn_b); +extern void mPlib_SetData1_controller_data_for_title_demo(int btn_a, int btn_b, f32 stick_x, f32 stick_y); extern void mPlib_SetData2_controller_data_for_title_demo(mActor_name_t tool); extern void mPlib_Clear_controller_data_for_title_demo(); extern void mPlib_request_main_invade_type1(GAME_PLAY* play); diff --git a/include/sys_math.h b/include/sys_math.h index b0dc5cd8..c4add2db 100644 --- a/include/sys_math.h +++ b/include/sys_math.h @@ -24,6 +24,8 @@ extern "C" { #define USHT_MIN ((f32)USHT_MIN_S) #define USHT_MAX ((f32)USHT_MAX_S) +#define FLT_MAX (3.4028235e+38f) + /* Macro to generate a random float in the range of [0, n) */ #define RANDOM_F(n) (fqrand() * (f32)(n)) diff --git a/src/ac_sign.c b/src/ac_sign.c new file mode 100644 index 00000000..2f46d959 --- /dev/null +++ b/src/ac_sign.c @@ -0,0 +1,1022 @@ +#include "ac_sign.h" + +#include "m_common_data.h" +#include "m_debug.h" +#include "m_skin_matrix.h" +#include "libultra/libultra.h" +#include "m_player_lib.h" +#include "m_msg.h" +#include "m_choice.h" +#include "m_needlework_ovl.h" +#include "sys_matrix.h" +#include "m_rcp.h" + +enum { + aSIGN_ACTION_WAIT, + aSIGN_ACTION_TALK, + aSIGN_ACTION_TALK_END, + aSIGN_ACTION_MENU_OPEN_WAIT, + aSIGN_ACTION_MENU_END_WAIT, + aSIGN_ACTION_SINGLE_BIRTH, + aSIGN_ACTION_SINGLE_ERASE, + + aSIGN_ACTION_NUM +}; + +extern Vtx obj_kanban_shadow_v[]; +extern Gfx obj_kanban_shadowT_model[]; + +static u8 aSIGN_shadow_vtx_fix_flg_table[] = { TRUE, FALSE, FALSE, TRUE }; +static bIT_ShadowData_c aSIGN_shadow_data = { + ARRAY_COUNT(aSIGN_shadow_vtx_fix_flg_table), + aSIGN_shadow_vtx_fix_flg_table, + 50.0f, + obj_kanban_shadow_v, + obj_kanban_shadowT_model, +}; + +static void aSIGN_actor_ct(ACTOR* actorx, GAME* game); +static void aSIGN_actor_dt(ACTOR* actorx, GAME* game); +static void aSIGN_actor_move(ACTOR* actorx, GAME* game); +static void aSIGN_actor_draw(ACTOR* actorx, GAME* game); + +// clang-format off +ACTOR_PROFILE Ac_Sign_Profile = { + mAc_PROFILE_AC_SIGN, + ACTOR_PART_ITEM, + ACTOR_STATE_NO_DRAW_WHILE_CULLED | ACTOR_STATE_NO_MOVE_WHILE_CULLED, + EMPTY_NO, + ACTOR_OBJ_BANK_AC_SIGN, + sizeof(SIGN_ACTOR), + &aSIGN_actor_ct, + &aSIGN_actor_dt, + &aSIGN_actor_move, + &aSIGN_actor_draw, + NULL, +}; +// clang-format on + +static void aSIGN_setup_action(SIGN_ACTOR* sign, int action); +static void aSIGN_change_my_original(SIGN_ACTOR* sign, GAME* game, u16 design_no); +static void aSIGN_single_birth(SIGN_ACTOR* sign, GAME* game); +static void aSIGN_single_erase(SIGN_ACTOR* sign, GAME* game); + +static void aSIGN_actor_ct(ACTOR* actorx, GAME* game) { + SIGN_ACTOR* sign = (SIGN_ACTOR*)actorx; + + Common_Get(clip).sign_control_actor = sign; + sign->is_winter = Common_Get(time.season) == mTM_SEASON_WINTER; + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); +} + +static void aSIGN_actor_dt(ACTOR* actorx, GAME* game) { + Common_Get(clip).sign_control_actor = NULL; +} + +static int aSIGN_no_cull_check(GAME_PLAY* play, int bz, int bx, int ut_z, int ut_x) { + xyz_t center_pos; + xyz_t clip_pos; + f32 w; + f32 max_dist = aSIGN_CULL_MAX_DIST; + + if (GETREG(NMREG, 5)) { + max_dist = GETREG(NMREG, 5); + } + + /* Get the world space of the unit */ + mFI_BkandUtNum2CenterWpos(¢er_pos, bx, bz, ut_x, ut_z); + center_pos.y = mFI_UNIT_BASE_SIZE_F + mCoBG_GetBgY_OnlyCenter_FromWpos2(center_pos, 0.0f); + + /* Transform world space to clip space */ + Skin_Matrix_PrjMulVector(&play->projection_matrix, ¢er_pos, &clip_pos, &w); + + /* Test that the clip space is within the camera bounds */ + if (clip_pos.z > -max_dist) { + f32 inv_w = (w < 1.0f) ? 1.0f : (1.0f / w); + + if (inv_w * (fabsf(clip_pos.x) - max_dist) < 1.0f && inv_w * (fabsf(clip_pos.y) - max_dist) < 1.0f) { + return TRUE; + } + } + + return FALSE; +} + +static int aSIGN_no_cull_talk_area(GAME_PLAY* play, int bz, int bx, int ut_z, int ut_x) { + xyz_t center_pos; + + mFI_BkandUtNum2CenterWpos(¢er_pos, bx, bz, ut_x, ut_z); + if (Camera2_CheckEnterCullingArea(center_pos.x, center_pos.z, 65.0f) == FALSE) { + return TRUE; + } + + return FALSE; +} + +static int aSIGN_draw_anime_check(SIGN_ACTOR* sign, int ut_z, int ut_x) { + int i; + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + if (sign->single[i].exist_flag && sign->single[i].unit.z == ut_z && sign->single[i].unit.x == ut_x) { + return TRUE; + } + } + + return FALSE; +} + +static void aSIGN_draw_set(SIGN_ACTOR* sign, aSIGN_draw_c* draw, GAME_PLAY* play, int bz, int bx, int base_ut_z, + int base_ut_x) { + mActor_name_t* fg_p = mFI_BkNumtoUtFGTop(bx, bz); + int ut_z; + int ut_x; + int ut_z_max = 5; + int ut_x_max = 7; + + if (GETREG(NMREG, 2)) { + ut_z_max = GETREG(NMREG, 2); + } + + if (GETREG(NMREG, 3)) { + ut_x_max = GETREG(NMREG, 3); + } + + draw->block.z = bz; + draw->block.x = bx; + + if (fg_p != NULL) { + + for (ut_z = 0; ut_z < UT_Z_NUM; ut_z++) { + u16 ut_x_bitfield = 0; + u16 x_bit = 1; + + for (ut_x = 0; ut_x < UT_X_NUM; ut_x++) { + int ut_z_local = base_ut_z - ut_z; + int ut_x_local = base_ut_x - ut_x; + + ut_z_local = ABS(ut_z_local); + ut_x_local = ABS(ut_x_local); + + if (ITEM_NAME_GET_TYPE(*fg_p) == NAME_TYPE_ITEM0 && ITEM_NAME_GET_CAT(*fg_p) == ITEM0_CAT_SIGN) { + if (aSIGN_draw_anime_check(sign, ut_z, ut_x) == FALSE) { + if ((ut_z_local <= ut_z_max && ut_x_local <= ut_z_max) || + (ut_z_local <= ut_x_max && ut_x_local <= ut_x_max && + aSIGN_no_cull_check(play, bz, bx, ut_z, ut_x))) { + if (Camera2_CheckCullingMode()) { + if (aSIGN_no_cull_talk_area(play, bz, bx, ut_z, ut_x)) { + ut_x_bitfield |= x_bit; + } + } else { + ut_x_bitfield |= x_bit; + } + } + } + } + + x_bit <<= 1; + fg_p++; + } + + draw->exist_bitfield[ut_z] = ut_x_bitfield; + } + } +} + +static void aSIGN_actor_set_draw(SIGN_ACTOR* sign, GAME* game) { + xyz_t* camera_center_pos_p = Camera2_getCenterPos_p(); + int bz_max = mFI_GetBlockZMax(); + int bx_max = mFI_GetBlockXMax(); + int bz0; + int bx0; + xyz_t pos; + int ut_z; + int ut_x; + int t_bz; + int t_bx; + int bz; + int bx; + int base_ut_z; + int base_ut_x; + int t_base_ut_z; + int t_base_ut_x; + int i; + int j; + aSIGN_draw_c* draw_p; + + for (i = 0, draw_p = sign->draw; i < 2; i++) { + for (j = 0; j < 2; j++) { + bzero(draw_p->exist_bitfield, sizeof(draw_p->exist_bitfield)); + draw_p++; + } + } + + pos = *camera_center_pos_p; + if (mPlib_get_player_actor_main_index(game) == mPlayer_INDEX_DOOR) { + pos.z -= mFI_UT_WORLDSIZE_Z_F; + } + + if (GETREG(NMREG, 4)) { + pos.z -= (f32)GETREG(NMREG, 4); + } else { + pos.z -= 2 * mFI_UT_WORLDSIZE_Z_F; + } + + if (mFI_Wpos2BkandUtNuminBlock(&bx0, &bz0, &ut_x, &ut_z, pos)) { + if (ut_z < (UT_Z_NUM / 2)) { + t_bz = bz0 - 1; + t_base_ut_z = ut_z + UT_Z_NUM; + } else { + t_bz = bz0; + t_base_ut_z = ut_z; + } + + if (ut_x < (UT_X_NUM / 2)) { + t_bx = bx0 - 1; + t_base_ut_x = ut_x + UT_X_NUM; + } else { + t_bx = bx0; + t_base_ut_x = ut_x; + } + + bz = t_bz; + base_ut_z = t_base_ut_z; + for (i = 0, draw_p = sign->draw; i < 2; i++) { + bx = t_bx; + base_ut_x = t_base_ut_x; + for (j = 0; j < 2; j++) { + if (bz >= 0 && bz < bz_max && bx >= 0 && bx < bx_max) { + aSIGN_draw_set(sign, draw_p, (GAME_PLAY*)game, bz, bx, base_ut_z, base_ut_x); + } + + bx++; + base_ut_x -= UT_X_NUM; + draw_p++; + } + + bz++; + base_ut_z -= UT_Z_NUM; + } + } +} + +static int aSIGN_actor_BkandUtNum_formal(int* bz_p, int* bx_p, int* ut_z_p, int* ut_x_p) { + int bz_max = mFI_GetBlockZMax(); + int bx_max = mFI_GetBlockXMax(); + + if (*ut_z_p < 0) { + (*ut_z_p) += UT_Z_NUM; + (*bz_p)--; + } else if (*ut_z_p >= UT_Z_NUM) { + (*ut_z_p) -= UT_Z_NUM; + (*bz_p)++; + } + + if (*ut_x_p < 0) { + (*ut_x_p) += UT_X_NUM; + (*bx_p)--; + } else if (*ut_x_p >= UT_X_NUM) { + (*ut_x_p) -= UT_X_NUM; + (*bx_p)++; + } + + return *bz_p >= 0 && *bz_p < bz_max && *bx_p >= 0 && *bx_p < bx_max; +} + +static int aSIGN_actor_set_target(SIGN_ACTOR* sign, GAME* game) { + xyz_t sign_pos; + int base_bz; + int base_bx; + int base_ut_z; + int base_ut_x; + int bz; + int bx; + int ut_z; + int ut_x; + ACTOR* player_actor = GET_PLAYER_ACTOR_GAME_ACTOR(game); + f32 min_dist = FLT_MAX; + int z; + int x; + int i; + int j; + aSIGN_draw_c* draw_p; + int res = FALSE; + + if (mFI_Wpos2BkandUtNuminBlock(&base_bx, &base_bz, &base_ut_x, &base_ut_z, player_actor->world.position)) { + + for (z = -1; z < 1; z++) { + + for (x = -1; x < 2; x++) { + bz = base_bz; + bx = base_bx; + ut_x = base_ut_x + x; + ut_z = base_ut_z + z; + + if (aSIGN_actor_BkandUtNum_formal(&bz, &bx, &ut_z, &ut_x)) { + for (i = 0, draw_p = sign->draw; i < 2; i++) { + for (j = 0; j < 2; j++) { + if (draw_p->block.z == bz && draw_p->block.x == bx && + (draw_p->exist_bitfield[ut_z] & (1 << ut_x)) != 0) { + mFI_BkandUtNum2CenterWpos(&sign_pos, bx, bz, ut_x, ut_z); + sign_pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos2(sign_pos, 0.0f); + if (player_actor->world.position.z > sign_pos.z) { + s16 angle_y = search_position_angleY(&sign_pos, &player_actor->world.position); + int abs_angle_y = ABS(angle_y); + + if (abs_angle_y < DEG2SHORT_ANGLE2(45.0f)) { + s16 d_angle_y = + (angle_y + DEG2SHORT_ANGLE2(180.0f)) - player_actor->shape_info.rotation.y; + s16 diff_angle_y = ABS(d_angle_y); + + if (diff_angle_y <= DEG2SHORT_ANGLE2(68.83483f)) { + f32 dist_sq = Math3DLengthSquare(&player_actor->world.position, &sign_pos); + + if (dist_sq < SQ(55.0f) && dist_sq < min_dist) { + res = TRUE; + min_dist = dist_sq; + sign->sign_pos.x = sign_pos.x; + sign->sign_pos.y = sign_pos.y; + sign->sign_pos.z = sign_pos.z; + sign->target_block.z = bz; + sign->target_block.x = bx; + sign->target_unit.z = ut_z; + sign->target_unit.x = ut_x; + xyz_t_move(&sign->target_pos, &sign_pos); + } + } + } + } + } + + draw_p++; + } + } + } + } + } + } + + return res; +} + +static ACTOR* aSIGN_search_exist_npc_inCircle_forSign(GAME* game, const xyz_t* pos_p, f32 max_dist) { + GAME_PLAY* play = (GAME_PLAY*)game; + Actor_info* actor_info_p = &play->actor_info; + ACTOR* actor = actor_info_p->list[ACTOR_PART_NPC].actor; + f32 x = pos_p->x; + f32 z = pos_p->z; + + for (actor; actor != NULL; actor = actor->next_actor) { + f32 dist = Math3DVecLengthSquare2D(actor->world.position.x - x, actor->world.position.z - z); + + if (dist < max_dist) { + NPC_ACTOR* npc_actor = (NPC_ACTOR*)actor; + + if (npc_actor->condition_info.hide_flg == FALSE) { + return actor; + } + } + } + + actor = actor_info_p->list[ACTOR_PART_BG].actor; + for (actor; actor != NULL; actor = actor->next_actor) { + if (actor->id == mAc_PROFILE_PSNOWMAN) { + f32 dist = Math3DVecLengthSquare2D(actor->world.position.x - x, actor->world.position.z - z); + + if (dist < max_dist) { + return actor; + } + } + } + + return NULL; +} + +static int aSIGN_single_anime_check(aSIGN_single_c* single_p, xyz_t pos) { + int bz; + int bx; + int ut_z; + int ut_x; + + mFI_Wpos2BkandUtNuminBlock(&bx, &bz, &ut_x, &ut_z, pos); + if (single_p->block.x == bx && single_p->block.z == bz && single_p->unit.x == ut_x && single_p->unit.z == ut_z) { + return TRUE; + } + + return FALSE; +} + +extern int aSIGN_set_white_sign(GAME* game, xyz_t* pos_p) { + SIGN_ACTOR* sign = Common_Get(clip).sign_control_actor; + int no_free_single = TRUE; + ACTOR* actor_in_circle; + int i; + + if (sign == NULL) { + return FALSE; + } + + actor_in_circle = aSIGN_search_exist_npc_inCircle_forSign(game, pos_p, 20.0f); + if (actor_in_circle != NULL) { + return FALSE; + } + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + if (sign->single[i].exist_flag == FALSE) { + no_free_single = FALSE; + break; + } + } + + if (no_free_single) { + return FALSE; + } + + sign->sign_birth_pos = *pos_p; + sAdo_OngenTrgStart(NA_SE_ITEM_HORIDASHI, &sign->sign_birth_pos); + aSIGN_setup_action(sign, aSIGN_ACTION_SINGLE_BIRTH); + return TRUE; +} + +extern int aSIGN_erase_white_sign(GAME* game, xyz_t* pos_p) { + SIGN_ACTOR* sign = Common_Get(clip).sign_control_actor; + int i; + + if (sign == NULL) { + return FALSE; + } + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + aSIGN_single_c* single = &sign->single[i]; + + if (single->exist_flag != 0) { + /* Check if a sign is already being erected here */ + if (aSIGN_single_anime_check(single, *pos_p) != FALSE) { + return FALSE; + } + } else { + mActor_name_t* fg_p = mFI_GetUnitFG(*pos_p); + + single->scale.x = 0.0099f; + single->scale.y = 0.0099f; + single->scale.z = 0.0099f; + + mFI_Wpos2BkandUtNuminBlock(&single->block.x, &single->block.z, &single->unit.x, &single->unit.z, *pos_p); + single->exist_flag = 2; + single->item = *fg_p; + } + } + + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + return TRUE; +} + +static void aSIGN_set_talk_info(ACTOR* actorx) { + int player_no = Common_Get(player_no); + rgba_t window_color; + + if (player_no < PLAYER_NUM) { + if (GETREG(NMREG, 90)) { + mDemo_Set_msg_num(0x3065); + } else { + mDemo_Set_msg_num(0x3064); + } + } else { + mDemo_Set_msg_num(0x3065); + } + + mDemo_Set_talk_display_name(FALSE); + mDemo_Set_ListenAble(); + window_color.r = 185; + window_color.g = 60; + window_color.b = 40; + window_color.a = 255; + mDemo_Set_talk_window_color(&window_color); + mDemo_Set_camera(CAMERA2_PROCESS_NORMAL); + mDemo_Set_use_zoom_sound(TRUE); +} + +static void aSIGN_talk(SIGN_ACTOR* sign, GAME* game) { + mMsg_Window_c* msg_p = mMsg_Get_base_window_p(); + + if (mDemo_Check(mDemo_TYPE_SPEAK, &sign->actor_class)) { + ACTOR* player_actor = GET_PLAYER_ACTOR_GAME_ACTOR(game); + s_xyz player_angle = player_actor->shape_info.rotation; + s16 target_y = search_position_angleY(&player_actor->world.position, &sign->target_pos); + + add_calc_short_angle2(&player_angle.y, target_y, 0.3f, DEG2SHORT_ANGLE2(22.5f), DEG2SHORT_ANGLE2(1.40625f)); + GET_PLAYER_ACTOR_NOW()->Set_force_position_angle_proc(gamePT, NULL, &player_angle, + mPlayer_FORCE_POSITION_ANGLE_ROTY); + + if (mMsg_Check_MainNormalContinue(msg_p) == TRUE) { + switch (mChoice_GET_CHOSENUM()) { + case mChoice_CHOICE0: + mMsg_REQUEST_MAIN_DISAPPEAR_WAIT_TYPE1(); + aSIGN_setup_action(sign, aSIGN_ACTION_MENU_OPEN_WAIT); + break; + case mChoice_CHOICE1: + default: + mMsg_REQUEST_MAIN_DISAPPEAR_WAIT_TYPE1(); + aSIGN_setup_action(sign, aSIGN_ACTION_TALK_END); + break; + } + } + } else { + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + } +} + +static void aSIGN_talk_end(SIGN_ACTOR* sign, GAME* game) { + if (mMsg_CHECK_MAIN_WAIT()) { + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + mMsg_request_main_forceoff(); + } +} + +static void aSIGN_wait(SIGN_ACTOR* sign, GAME* game) { + if (mDemo_Get_talk_actor() == NULL && aSIGN_actor_set_target(sign, game) && chkTrigger(BUTTON_A) && + mDemo_Get_talk_actor() == NULL) { + mDemo_Request(mDemo_TYPE_SPEAK, &sign->actor_class, &aSIGN_set_talk_info); + aSIGN_setup_action(sign, aSIGN_ACTION_TALK); + } +} + +static void aSIGN_menu_open_wait(SIGN_ACTOR* sign, GAME* game) { + u32 player_no = Common_Get(player_no); + GAME_PLAY* play = (GAME_PLAY*)game; + Submenu* submenu_p = &play->submenu; + + if (mMsg_CHECK_MAIN_WAIT()) { + + mSM_open_submenu(submenu_p, mSM_OVL_NEEDLEWORK, 0, player_no); + aSIGN_setup_action(sign, aSIGN_ACTION_MENU_END_WAIT); + mMsg_request_main_forceoff(); + } +} + +static void aSIGN_menu_end_wait(SIGN_ACTOR* sign, GAME* game) { + u32 player_no = Common_Get(player_no); + GAME_PLAY* play = (GAME_PLAY*)game; + Submenu* submenu_p = &play->submenu; + + if (submenu_p->open_flag == FALSE && mMsg_CHECK_NOT_SERIES_MAIN_WAIT() == TRUE) { + Submenu_Item_c* sm_item_p = submenu_p->item_p; + + if (sm_item_p->item == RSV_NO) { + int img_no = mNW_get_image_no(submenu_p, sm_item_p->slot_no); + img_no += player_no * mPr_ORIGINAL_DESIGN_COUNT; + + aSIGN_change_my_original(sign, game, img_no); + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + } else { + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + } + } +} + +static void aSIGN_setup_action(SIGN_ACTOR* sign, int action) { + // clang-format off + static aSIGN_ACTION_PROC process[] = { + &aSIGN_wait, + &aSIGN_talk, + &aSIGN_talk_end, + &aSIGN_menu_open_wait, + &aSIGN_menu_end_wait, + &aSIGN_single_birth, + &aSIGN_single_erase, + }; + // clang-format on + + sign->action_proc = process[action]; +} + +static void aSIGN_change_my_original(SIGN_ACTOR* sign, GAME* game, u16 design_no) { + mActor_name_t* fg_p = mFI_GetUnitFG(sign->sign_pos); + + if (ITEM_IS_SIGNBOARD(*fg_p)) { + mFI_SetFG_common(SIGNBOARD_START + design_no, sign->sign_pos, TRUE); + sAdo_OngenTrgStart(NA_SE_461, &sign->sign_pos); + } +} + +static void aSIGN_single_birth(SIGN_ACTOR* sign, GAME* game) { + ACTOR* player_actor = GET_PLAYER_ACTOR_GAME_ACTOR(game); // unused + xyz_t sign_birth_pos = sign->sign_birth_pos; + int i; + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + if (sign->single[i].exist_flag != 0) { + if (aSIGN_single_anime_check(&sign->single[i], sign_birth_pos)) { + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + return; + } + } else { + mActor_name_t* fg_p = mFI_GetUnitFG(sign_birth_pos); // unused + + sign->single[i].item = SIGNBOARD; + sign->single[i].scale.x = 0.0001f; + sign->single[i].scale.y = 0.0001f; + sign->single[i].scale.z = 0.0001f; + mFI_Wpos2BkandUtNuminBlock(&sign->single[i].block.x, &sign->single[i].block.z, &sign->single[i].unit.x, + &sign->single[i].unit.z, sign_birth_pos); + sign->single[i].exist_flag = 1; + sign->single[i]._24 = 0; + sign->single[i]._20 = 0.005f; + sign->single[i]._26 = 6000; + + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + mFI_BkandUtNum2CenterWpos(&sign_birth_pos, sign->single[i].block.x, sign->single[i].block.z, + sign->single[i].unit.x, sign->single[i].unit.z); + mFI_SetFG_common(RSV_SIGNBOARD, sign_birth_pos, TRUE); + mCoBG_RegistDecalCircle(&sign_birth_pos, 16.0f, 19.0f, 36); + return; + } + } + + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); +} + +static void aSIGN_single_erase(SIGN_ACTOR* sign, GAME* game) { + ACTOR* player_actor = GET_PLAYER_ACTOR_GAME_ACTOR(game); // unused + xyz_t sign_birth_pos = sign->sign_birth_pos; + int i; + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + aSIGN_single_c* single = &sign->single[i]; + + if (single->exist_flag != 0) { + if (aSIGN_single_anime_check(single, sign_birth_pos)) { + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + return; + } + } else { + mActor_name_t* fg_p = mFI_GetUnitFG(sign_birth_pos); + + single->scale.x = 0.0099f; + single->scale.y = 0.0099f; + single->scale.z = 0.0099f; + mFI_Wpos2BkandUtNuminBlock(&single->block.x, &single->block.z, &single->unit.x, &single->unit.z, + sign_birth_pos); + single->exist_flag = 2; + single->item = *fg_p; + + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); + return; + } + } + + aSIGN_setup_action(sign, aSIGN_ACTION_WAIT); +} + +static void aSIGN_single_all_check(SIGN_ACTOR* sign) { + s16 prev_angle; + s16 now_angle; + xyz_t* scale_p; + int i; + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + if (sign->single[i].exist_flag != 0) { + f32 wobble; + + if (sign->single[i].exist_flag == 1) { + + prev_angle = sign->single[i]._24; + sign->single[i]._24 = prev_angle + sign->single[i]._26; + now_angle = sign->single[i]._24; + sign->single[i].scale.y = sign->single[i]._20 * sinf_table((f32)now_angle * 0.0000958738f); + sign->single[i].scale.x = 0.01f - sign->single[i].scale.y; + sign->single[i].scale.y += 0.01f; + sign->single[i].scale.z = sign->single[i].scale.x; + + if ((prev_angle < 0 && now_angle >= 0) || (prev_angle < -0x8000 && now_angle >= -0x8000)) { + sign->single[i]._20 *= 0.4f; + sign->single[i]._26 += 750; + } + } + + if (sign->single[i].exist_flag == 2) { + scale_p = &sign->single[i].scale; + add_calc(&scale_p->x, 0.0f, 0.5f, 0.0006f, 0.001f); + add_calc(&scale_p->y, 0.0f, 0.5f, 0.0006f, 0.001f); + add_calc(&scale_p->z, 0.0f, 0.5f, 0.0006f, 0.001f); + } + + // wobble = ABS(sign->single[i]._20); + if (ABS(sign->single[i]._20) < 0.0002f && sign->single[i].exist_flag == 1) { + xyz_t center_pos; + + mFI_BkandUtNum2CenterWpos(¢er_pos, sign->single[i].block.x, sign->single[i].block.z, + sign->single[i].unit.x, sign->single[i].unit.z); + mFI_SetFG_common(SIGNBOARD_END, center_pos, TRUE); + sign->single[i].exist_flag = 0; + } + + if (sign->single[i].scale.x <= 0.0f && sign->single[i].exist_flag == 2) { + xyz_t center_pos; + + mFI_BkandUtNum2CenterWpos(¢er_pos, sign->single[i].block.x, sign->single[i].block.z, + sign->single[i].unit.x, sign->single[i].unit.z); + center_pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos2(center_pos, 0.0f); // unused?? + sign->single[i].exist_flag = 0; + } + } + } +} + +static void aSIGN_random_set(void); +static void aSIGN_all_clear(void); + +static void aSIGN_actor_move(ACTOR* actorx, GAME* game) { + SIGN_ACTOR* sign = (SIGN_ACTOR*)actorx; + + (*sign->action_proc)(sign, game); + aSIGN_single_all_check(sign); + aSIGN_actor_set_draw(sign, game); + + if (GETREG(NMREG, 1)) { + int type = GETREG(NMREG, 0); + + if (type == 1000 || type == 100) { + aSIGN_random_set(); + SETREG(NMREG, 0, 0); + } + + if (GETREG(NMREG, 0) == 10) { + aSIGN_all_clear(); + SETREG(NMREG, 0, 0); + } + } +} + +static void aSIGN_random_set(void) { + mActor_name_t* fg_p; + int ut_z; + int ut_x; + int bz; + int bx; + int bx_max = mFI_GetBlockXMax(); + int bz_max = mFI_GetBlockZMax(); + + for (bz = 0; bz < bz_max; bz++) { + + for (bx = 0; bx < bx_max; bx++) { + fg_p = mFI_BkNumtoUtFGTop(bx, bz); + for (ut_z = 0; ut_z < UT_Z_NUM; ut_z++) { + for (ut_x = 0; ut_x < UT_X_NUM; ut_x++) { + if (*fg_p == TREE && GETREG(NMREG, 0) == 1000) { + mFI_UtNumtoFGSet_common(SIGNBOARD_START + (qrand() >> 27), bx * UT_X_NUM + ut_x, + bz * UT_Z_NUM + ut_z, TRUE); + } else if (*fg_p == EMPTY_NO && GETREG(NMREG, 0) == 100) { + if ((ut_z & 1) != 0 && (ut_x & 1) != 0) { + mFI_UtNumtoFGSet_common(SIGNBOARD_START + (u16)(qrand() >> 27), bx * UT_X_NUM + ut_x, + bz * UT_Z_NUM + ut_z, TRUE); + } + } + + fg_p++; + } + } + } + } +} + +static void aSIGN_all_clear(void) { + mActor_name_t* fg_p; + int ut_z; + int ut_x; + int bz; + int bx; + int bx_max = mFI_GetBlockXMax(); + int bz_max = mFI_GetBlockZMax(); + + for (bz = 0; bz < bz_max; bz++) { + for (bx = 0; bx < bx_max; bx++) { + fg_p = mFI_BkNumtoUtFGTop(bx, bz); + for (ut_z = 0; ut_z < UT_Z_NUM; ut_z++) { + for (ut_x = 0; ut_x < UT_X_NUM; ut_x++) { + if (*fg_p >= SIGNBOARD_START && *fg_p < (SIGNBOARD_END + 1)) { + mFI_UtNumtoFGSet_common(EMPTY_NO, bx * UT_X_NUM + ut_x, bz * UT_Z_NUM + ut_z, TRUE); + } + + fg_p++; + } + } + } + } +} + +static void aSIGN_draw_shadow(GAME* game, bIT_ShadowData_c* shadow_data); + +extern u8 hakushi_tex[]; +extern u16 hakushi_pal[]; +extern Gfx write_model[]; +extern Gfx obj_sign_s_model[]; +extern Gfx obj_sign_w_model[]; + +static void aSIGN_single_all_draw(SIGN_ACTOR* sign, GAME* game) { + static Gfx* mdl[] = { obj_sign_s_model, obj_sign_w_model }; + + GRAPH* graph = game->graph; + int i; + + _texture_z_light_fog_prim_npc(graph); + + OPEN_DISP(graph); + gDPSetTextureAdjustMode(NEXT_POLY_OPA_DISP, G_TA_DOLPHIN); + CLOSE_DISP(graph); + + for (i = 0; i < aSIGN_SINGLE_NUM; i++) { + if (sign->single[i].exist_flag != 0) { + xyz_t sign_pos; + u32 player_no; + int my_original_idx; + u16* pal_p; + u8* tex_p; + + Matrix_push(); + mFI_BkandUtNum2CenterWpos(&sign_pos, sign->single[i].block.x, sign->single[i].block.z, + sign->single[i].unit.x, sign->single[i].unit.z); + sign_pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos2(sign_pos, 0.0f); + player_no = (sign->single[i].item >> 3) & 3; + my_original_idx = sign->single[i].item & 7; + + Matrix_translate(sign_pos.x, sign_pos.y, sign_pos.z - 1.0f, 0); + Matrix_scale(sign->single[i].scale.x, sign->single[i].scale.y, sign->single[i].scale.z, 1); + + OPEN_POLY_OPA_DISP(graph); + + if ((sign->single[i].item >> 5) & 1) { + pal_p = hakushi_pal; + tex_p = hakushi_tex; + } else { + pal_p = mNW_PaletteIdx2Palette(Save_Get(private_data[player_no]).my_org[my_original_idx].palette); + tex_p = Save_Get(private_data[player_no]).my_org[my_original_idx].design.data; + } + + gSPSegment(POLY_OPA_DISP++, ANIME_1_TXT_SEG, pal_p); + gSPSegment(POLY_OPA_DISP++, ANIME_2_TXT_SEG, tex_p); + gSPMatrix(POLY_OPA_DISP++, _Matrix_to_Mtx_new(graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, write_model); + gSPDisplayList(POLY_OPA_DISP++, mdl[sign->is_winter]); + + CLOSE_POLY_OPA_DISP(graph); + + aSIGN_draw_shadow(game, &aSIGN_shadow_data); + Matrix_pull(); + } + } + + OPEN_DISP(graph); + gDPSetTextureAdjustMode(NEXT_POLY_OPA_DISP, G_TA_N64); + CLOSE_DISP(graph); +} + +static void aSIGN_actor_draw(ACTOR* actorx, GAME* game) { + static Gfx* mdl[] = { obj_sign_s_model, obj_sign_w_model }; + + GRAPH* graph = game->graph; + SIGN_ACTOR* sign = (SIGN_ACTOR*)actorx; + MtxF* mtxf = get_Matrix_now(); + mActor_name_t* fg_p; + int ut_z; + int ut_x; + int i; + int j; + aSIGN_draw_c* draw_p; + u16 exist_bitfield; + u16 ut_bit; + + aSIGN_single_all_draw(sign, game); + _texture_z_light_fog_prim_npc(graph); + + draw_p = sign->draw; + + OPEN_DISP(graph); + gDPSetTextureAdjustMode(NEXT_POLY_OPA_DISP, G_TA_DOLPHIN); + CLOSE_DISP(graph); + + for (i = 0; i < 2; i++) { + for (j = 0; j < 2; j++) { + fg_p = mFI_BkNumtoUtFGTop(draw_p->block.x, draw_p->block.z); + for (ut_z = 0; ut_z < UT_Z_NUM; ut_z++) { + exist_bitfield = draw_p->exist_bitfield[ut_z]; + + if (exist_bitfield == 0) { + fg_p += UT_X_NUM; + } else { + for (ut_x = 0, ut_bit = 1; ut_x < UT_X_NUM; ut_x++) { + if ((exist_bitfield & ut_bit) != 0) { + mActor_name_t item = *fg_p; + + if (ITEM_NAME_GET_TYPE(item) == NAME_TYPE_ITEM0 && + ITEM_NAME_GET_CAT(item) == ITEM0_CAT_SIGN) { + xyz_t sign_pos; + u32 player_no; + int my_original_idx; + u16* pal_p; + u8* tex_p; + + mFI_BkandUtNum2CenterWpos(&sign_pos, draw_p->block.x, draw_p->block.z, ut_x, ut_z); + sign_pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos2(sign_pos, 0.0f); + + player_no = (item >> 3) & 3; + my_original_idx = item & 7; + + OPEN_POLY_OPA_DISP(graph); + + /* Copy sign position to world matrix translation */ + mtxf->mf[3][0] = sign_pos.x; + mtxf->mf[3][1] = sign_pos.y; + mtxf->mf[3][2] = sign_pos.z; + + if ((item >> 5) & 1) { + pal_p = hakushi_pal; + tex_p = hakushi_tex; + } else { + pal_p = mNW_PaletteIdx2Palette( + Save_Get(private_data[player_no]).my_org[my_original_idx].palette); + tex_p = Save_Get(private_data[player_no]).my_org[my_original_idx].design.data; + } + + gSPSegment(POLY_OPA_DISP++, ANIME_1_TXT_SEG, pal_p); + gSPSegment(POLY_OPA_DISP++, ANIME_2_TXT_SEG, tex_p); + gSPMatrix(POLY_OPA_DISP++, _Matrix_to_Mtx_new(graph), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, write_model); + gSPDisplayList(POLY_OPA_DISP++, mdl[sign->is_winter]); + + CLOSE_POLY_OPA_DISP(graph); + + /* Draw shadow behind the sign */ + mtxf->mf[3][0] = sign_pos.x; + mtxf->mf[3][1] = sign_pos.y; + mtxf->mf[3][2] = sign_pos.z - 1.0f; + aSIGN_draw_shadow(game, &aSIGN_shadow_data); + } + } + + ut_bit <<= 1; + fg_p++; + } + } + } + + draw_p++; + } + } + + OPEN_DISP(graph); + gDPSetTextureAdjustMode(NEXT_POLY_OPA_DISP, G_TA_N64); + CLOSE_DISP(graph); +} + +static void aSIGN_copy_vtx(Vtx* dst, Vtx* src, u32 n_vtx, u8* vtx_fix_flg_table, int fix_ofs) { + int i; + + for (i = 0; i != n_vtx; i++) { + *dst = *src; + + if (*vtx_fix_flg_table == TRUE) { + dst->v.ob[0] = src->v.ob[0] + fix_ofs; + } else { + dst->v.ob[0] = src->v.ob[0]; + } + + src++; + dst++; + vtx_fix_flg_table++; + } +} + +static void aSIGN_draw_shadow(GAME* game, bIT_ShadowData_c* shadow_data) { + GAME_PLAY* play = (GAME_PLAY*)game; + GRAPH* graph = game->graph; + Vtx* vtx = (Vtx*)GRAPH_ALLOC_TYPE(graph, Vtx, shadow_data->vtx_num); + rgba_t color; + u8 l; + u8 r; + u8 g; + u8 b; + u8 a; + + if (vtx != NULL) { + aSIGN_copy_vtx(vtx, shadow_data->vtx, shadow_data->vtx_num, shadow_data->vtx_fix_flags, + play->kankyo.shadow_pos * shadow_data->size); + } else { + vtx = shadow_data->vtx; + } + + OPEN_SHADOW_DISP(graph); + + gDPPipeSync(SHADOW_DISP++); + gSPMatrix(SHADOW_DISP++, _Matrix_to_Mtx_new(graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(SHADOW_DISP++, ANIME_3_TXT_SEG, vtx); + l = play->kankyo.shadow_alpha; + r = play->kankyo.base_light.shadow_color[0]; + g = play->kankyo.base_light.shadow_color[1]; + b = play->kankyo.base_light.shadow_color[2]; + a = play->kankyo.shadow_alpha; + gDPSetPrimColor(SHADOW_DISP++, 0, l, r, g, b, a); + gSPDisplayList(SHADOW_DISP++, shadow_data->gfx); + + CLOSE_SHADOW_DISP(graph); +} diff --git a/src/m_item_name.c b/src/m_item_name.c index 1b7b1b3d..6342323f 100644 --- a/src/m_item_name.c +++ b/src/m_item_name.c @@ -7,348 +7,594 @@ #include "m_font.h" static u8 itemArt_Paper[PAPER_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, }; static u8 itemArt_Money[MONEY_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE + mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, }; static u8 itemArt_Tool[TOOL_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, - mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, + mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, }; static u8 itemArt_Fish[FISH_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, }; static u8 itemArt_Cloth[CLOTH_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, }; static u8 itemArt_Etc[ETC_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, - mIN_ARTICLE_NONE + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, + mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, + mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, + mIN_ARTICLE_NONE, }; static u8 itemArt_Carpet[CARPET_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, + mIN_ARTICLE_A, }; static u8 itemArt_Wall[WALL_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, }; static u8 itemArt_Fruit[FRUIT_NUM] = { - mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, }; static u8 itemArt_Plant[PLANT_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, }; static u8 itemArt_MiniDisk[MINIDISK_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, }; static u8 itemArt_Diary[DIARY_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, }; static u8 itemArt_Ticket[TICKET_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, }; static u8 itemArt_Insect[INSECT_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, }; static u8 itemArt_Hukubukuro[HUKUBUKURO_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A + mIN_ARTICLE_A, + mIN_ARTICLE_A, }; static u8 itemArt_Kabu[KABU_NUM] = { - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE + mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, }; static u8 ftrArt[FTR_NUM] = { - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, - mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, - mIN_ARTICLE_NONE, mIN_ARTICLE_NONE + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, + mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_THE, mIN_ARTICLE_THE, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_AN, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, + mIN_ARTICLE_NONE, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, + mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_A, mIN_ARTICLE_NONE, mIN_ARTICLE_NONE, }; /** * @brief Copies an item name from src to dst. - * + * * @param dst Destination item name buffer * @param src Source item name buffer **/ static void mIN_dma_itemName(u8* dst, u8* src) { - mem_copy(dst, src, mIN_ITEM_NAME_LEN); + mem_copy(dst, src, mIN_ITEM_NAME_LEN); } /** * @brief Retrieves and copies an item name to a destination buffer from an item no. - * + * * @param dst The item name destination buffer * @param item The item no whose name will be retrieved **/ extern void mIN_copy_name_str(u8* dst, mActor_name_t item) { - static u8* itemName_table[ITEM1_CAT_NUM] = { - itemName_paper, - itemName_money, - itemName_tool, - itemName_fish, - itemName_cloth, - itemName_etc, - itemName_carpet, - itemName_wall, - itemName_fruit, - itemName_plant, - itemName_minidisk, - itemName_dummy, - itemName_ticket, - itemName_insect, - itemName_hukubukuro, - itemName_kabu - }; + // clang-format off + static u8* itemName_table[ITEM1_CAT_NUM] = { + itemName_paper, + itemName_money, + itemName_tool, + itemName_fish, + itemName_cloth, + itemName_etc, + itemName_carpet, + itemName_wall, + itemName_fruit, + itemName_plant, + itemName_minidisk, + itemName_dummy, + itemName_ticket, + itemName_insect, + itemName_hukubukuro, + itemName_kabu + }; + // clang-format on - static u8 unknown_item_str[mIN_ITEM_NAME_LEN] = { CHAR_u, CHAR_n, CHAR_k, CHAR_n, CHAR_o, CHAR_w, CHAR_n, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE }; + static u8 unknown_item_str[mIN_ITEM_NAME_LEN] = { CHAR_u, CHAR_n, CHAR_k, CHAR_n, + CHAR_o, CHAR_w, CHAR_n, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE }; - u8 item_name[mIN_ITEM_NAME_LEN]; - u32 itm = item; - mActor_name_t item_no = mRmTp_FtrItemNo2Item1ItemNo(item, FALSE); + u8 item_name[mIN_ITEM_NAME_LEN]; + u32 itm = item; + mActor_name_t item_no = mRmTp_FtrItemNo2Item1ItemNo(item, FALSE); - if (mNT_check_unknown(item_no) == TRUE) { - mem_copy(dst, unknown_item_str, mIN_ITEM_NAME_LEN); - } - else { - switch (ITEM_NAME_GET_TYPE(item_no)) { - case NAME_TYPE_ITEM1: - { - mIN_dma_itemName(item_name, itemName_table[ITEM_NAME_GET_CAT(item_no)] + ITEM_NAME_GET_INDEX(item_no) * mIN_ITEM_NAME_LEN); - mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); - break; - } + if (mNT_check_unknown(item_no) == TRUE) { + mem_copy(dst, unknown_item_str, mIN_ITEM_NAME_LEN); + } else { + switch (ITEM_NAME_GET_TYPE(item_no)) { + case NAME_TYPE_ITEM1: { + mIN_dma_itemName(item_name, itemName_table[ITEM_NAME_GET_CAT(item_no)] + + ITEM_NAME_GET_INDEX(item_no) * mIN_ITEM_NAME_LEN); + mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); + break; + } - case NAME_TYPE_FTR0: - { - mIN_dma_itemName(item_name, ftrName_table + ((item_no / 4) & 0x3FF) * mIN_ITEM_NAME_LEN); - mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); - break; - } + case NAME_TYPE_FTR0: { + mIN_dma_itemName(item_name, ftrName_table + ((item_no / 4) & 0x3FF) * mIN_ITEM_NAME_LEN); + mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); + break; + } - case NAME_TYPE_FTR1: - { - mIN_dma_itemName(item_name, ftrName2_table + ((item_no / 4) & 0x3FF) * mIN_ITEM_NAME_LEN); - mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); - break; - } + case NAME_TYPE_FTR1: { + mIN_dma_itemName(item_name, ftrName2_table + ((item_no / 4) & 0x3FF) * mIN_ITEM_NAME_LEN); + mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); + break; + } - default: - { - if (item_no >= SIGNBOARD && item_no <= SIGNBOARD7_PLR3) { - mIN_dma_itemName(item_name, itemName_table[ITEM1_CAT_ETC] + (ITM_SIGNBOARD & 0xFF) * mIN_ITEM_NAME_LEN); - mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); + default: { + if (ITEM_IS_SIGNBOARD(item_no)) { + mIN_dma_itemName(item_name, + itemName_table[ITEM1_CAT_ETC] + (ITM_SIGNBOARD & 0xFF) * mIN_ITEM_NAME_LEN); + mem_copy(dst, item_name, mIN_ITEM_NAME_LEN); + } else if (item_no == EMPTY_NO) { + mem_clear(dst, mIN_ITEM_NAME_LEN, CHAR_SPACE); + } + break; + } } - else if (item_no == EMPTY_NO) { - mem_clear(dst, mIN_ITEM_NAME_LEN, CHAR_SPACE); - } - break; - } } - } } /** * @brief Gets the artticle type for a given item. - * + * * @param item The item no whose article type will be retrieved * @return mIN_ARTICLE_* item article **/ extern int mIN_get_item_article(mActor_name_t item) { - static u8* itemArt_table[ITEM1_CAT_NUM] = { - itemArt_Paper, - itemArt_Money, - itemArt_Tool, - itemArt_Fish, - itemArt_Cloth, - itemArt_Etc, - itemArt_Carpet, - itemArt_Wall, - itemArt_Fruit, - itemArt_Plant, - itemArt_MiniDisk, - itemArt_Diary, - itemArt_Ticket, - itemArt_Insect, - itemArt_Hukubukuro, - itemArt_Kabu - }; + // clang-format off + static u8* itemArt_table[ITEM1_CAT_NUM] = { + itemArt_Paper, + itemArt_Money, + itemArt_Tool, + itemArt_Fish, + itemArt_Cloth, + itemArt_Etc, + itemArt_Carpet, + itemArt_Wall, + itemArt_Fruit, + itemArt_Plant, + itemArt_MiniDisk, + itemArt_Diary, + itemArt_Ticket, + itemArt_Insect, + itemArt_Hukubukuro, + itemArt_Kabu + }; + // clang-format on - int article = mIN_ARTICLE_NONE; - mActor_name_t item_no = mRmTp_FtrItemNo2Item1ItemNo(item, FALSE); - int index = item_no & 0xFF; + int article = mIN_ARTICLE_NONE; + mActor_name_t item_no = mRmTp_FtrItemNo2Item1ItemNo(item, FALSE); + int index = item_no & 0xFF; - switch (ITEM_NAME_GET_TYPE(item_no)) { - case NAME_TYPE_ITEM1: - { - article = itemArt_table[ITEM_NAME_GET_CAT(item_no)][index]; - break; + switch (ITEM_NAME_GET_TYPE(item_no)) { + case NAME_TYPE_ITEM1: { + article = itemArt_table[ITEM_NAME_GET_CAT(item_no)][index]; + break; + } + + case NAME_TYPE_FTR0: + case NAME_TYPE_FTR1: { + int ftr_idx = mRmTp_FtrItemNo2FtrIdx(item_no); + if (ftr_idx < FTR_NUM) { + return ftrArt[ftr_idx]; + } + return mIN_ARTICLE_NONE; + } + + default: { + if (ITEM_IS_SIGNBOARD(item_no)) { + article = itemArt_Etc[ITM_SIGNBOARD & 0xFF]; + } + break; + } } - case NAME_TYPE_FTR0: - case NAME_TYPE_FTR1: - { - int ftr_idx = mRmTp_FtrItemNo2FtrIdx(item_no); - if (ftr_idx < FTR_NUM) { - return ftrArt[ftr_idx]; - } - return mIN_ARTICLE_NONE; - } - - default: - { - if (item_no >= SIGNBOARD && item_no <= SIGNBOARD7_PLR3) { - article = itemArt_Etc[ITM_SIGNBOARD & 0xFF]; - } - break; - } - } - - return article; + return article; } diff --git a/src/m_titledemo.c b/src/m_titledemo.c index ab9d68ed..0909ba2e 100644 --- a/src/m_titledemo.c +++ b/src/m_titledemo.c @@ -19,169 +19,161 @@ static int S_tdemo_frame; static u16 S_titledemo_to_play; static u16 get_demo_header(int titledemo_no, int key) { - static u16* pact_data_header_pt[mTD_TITLE_DEMO_NUM] = { - pact0_head_table, pact1_head_table, pact2_head_table, pact3_head_table, pact4_head_table - }; + static u16* pact_data_header_pt[mTD_TITLE_DEMO_NUM] = { pact0_head_table, pact1_head_table, pact2_head_table, + pact3_head_table, pact4_head_table }; - return pact_data_header_pt[titledemo_no][key]; + return pact_data_header_pt[titledemo_no][key]; } extern int mTD_demono_get() { - if (S_now_demono == -1) { - S_now_demono = 1; - } - else { - S_now_demono++; - if (S_now_demono > mTD_TITLE_DEMO_NUM) { - S_now_demono = 1; + if (S_now_demono == -1) { + S_now_demono = 1; + } else { + S_now_demono++; + if (S_now_demono > mTD_TITLE_DEMO_NUM) { + S_now_demono = 1; + } } - } - return S_now_demono; + return S_now_demono; } extern void mTD_player_keydata_init(GAME_PLAY* play) { - PLAYER_ACTOR* player = get_player_actor_withoutCheck(play); + PLAYER_ACTOR* player = get_player_actor_withoutCheck(play); - if (mEv_CheckTitleDemo() > 0) { - u16 angle; - mActor_name_t tool = get_demo_header(mEv_CheckTitleDemo() - 1, mTD_HEADER_TOOL); + if (mEv_CheckTitleDemo() > 0) { + u16 angle; + mActor_name_t tool = get_demo_header(mEv_CheckTitleDemo() - 1, mTD_HEADER_TOOL); - if (tool == ITM_AXE) { - tool = ITM_AXE; - } - else if (tool == ITM_ROD) { - tool = ITM_ROD; - } - else if (tool == ITM_UMBRELLA00) { - tool = ITM_UMBRELLA00; + if (tool == ITM_AXE) { + tool = ITM_AXE; + } else if (tool == ITM_ROD) { + tool = ITM_ROD; + } else if (tool == ITM_UMBRELLA00) { + tool = ITM_UMBRELLA00; + } + + mPlib_SetData2_controller_data_for_title_demo(tool); + angle = get_demo_header(mEv_CheckTitleDemo() - 1, mTD_HEADER_ROTATION); + + player->actor_class.shape_info.rotation.y = angle; + player->actor_class.world.angle.y = angle; } - mPlib_SetData2_controller_data_for_title_demo(tool); - angle = get_demo_header(mEv_CheckTitleDemo() - 1, mTD_HEADER_ROTATION); - - player->actor_class.shape_info.rotation.y = angle; - player->actor_class.world.angle.y = angle; - } - - S_tdemo_frame = 0; + S_tdemo_frame = 0; } static u16 get_tdemo_keydata(int frame) { - /* BUG: this was probably meant to be marked as static */ - u16* pact_data_keydata_pt[mTD_TITLE_DEMO_NUM] = { pact0_key_data, pact1_key_data, pact2_key_data, pact3_key_data, pact4_key_data }; + /* BUG: this was probably meant to be marked as static */ + u16* pact_data_keydata_pt[mTD_TITLE_DEMO_NUM] = { pact0_key_data, pact1_key_data, pact2_key_data, pact3_key_data, + pact4_key_data }; - return pact_data_keydata_pt[mEv_CheckTitleDemo() - 1][frame]; + return pact_data_keydata_pt[mEv_CheckTitleDemo() - 1][frame]; } -#define mTD_KEYDATA_A(d) ((d) & 1) -#define mTD_KEYDATA_B(d) (((d) >> 8) & 1) -#define mTD_KEYDATA_STICKX(d) (((s16)(d) & 0xFE00) / 512) -#define mTD_KEYDATA_STICKY(d) (((s16)((d) << 8) & 0xFE00) / 512) - -/* @nonmatching */ +/* @fakematch? - the weirdness with btn_a needing to be assigned to a u8 then int needs to be investigated */ static void set_player_demo_keydata(int frame) { - u16 keydata0; - u16 keydata1; - int k0_sx; - int k0_sy; - int k1_sx; - int k1_sy; - f32 stick_x; - f32 stick_y; - int btn_a; - int btn_b; - int f0; - int f1; + u16 keydata0; + u16 keydata1; + s8 k0_sx; + s8 k0_sy; + s8 k1_sx; + s8 k1_sy; + f32 stick_x; + f32 stick_y; + u8 tmp_a; + int btn_a; + int btn_b; + int f0; + int f1; - /* convert 60fps framerate to 30fps input */ - f0 = frame / 2; - f1 = f0 + (frame % 2); - - if (f0 != f1 && f1 < 1800) { - keydata0 = get_tdemo_keydata(f0); - keydata1 = get_tdemo_keydata(f1); + /* convert 60fps framerate to 30fps input */ + f0 = frame / 2; + f1 = f0 + (frame % 2); - k0_sx = (s16)(keydata0 & 0xFE00) / 512; - k0_sy = (s16)((keydata0 & 0x00FE) << 8) / 512; - k1_sx = (s16)(keydata1 & 0xFE00) / 512; - k1_sy = (s16)((keydata1 & 0x00FE) << 8) / 512; - - /* blend stick inputs between the current frame & next frame */ - stick_x = ((f32)(s8)k0_sx + (f32)(s8)k1_sx) / 2.0f; - stick_y = ((f32)(s8)k0_sy + (f32)(s8)k1_sy) / 2.0f; - - btn_a = mTD_KEYDATA_A(keydata0); - btn_b = mTD_KEYDATA_B(keydata0); - } - else { - keydata0 = get_tdemo_keydata(f0); - k0_sx = (s16)(keydata0 & 0xFE00) / 512; - k0_sy = (s16)((keydata0 & 0x00FE) << 8) / 512; - - // single line does not make it any better - stick_x = (f32)(s8)k0_sx; - stick_y = (f32)(s8)k0_sy; - - btn_a = keydata0 & 1; - btn_b = (keydata0 >> 8) & 1; - } - mPlib_SetData1_controller_data_for_title_demo(stick_x, stick_y, btn_a, btn_b); + if (f0 != f1 && f1 < 1800) { + keydata0 = get_tdemo_keydata(f0); + keydata1 = get_tdemo_keydata(f1); + + k0_sx = (s16)(keydata0 & 0xFE00) / 512; + k0_sy = (s16)((keydata0 & 0x00FE) << 8) / 512; + k1_sx = (s16)(keydata1 & 0xFE00) / 512; + k1_sy = (s16)((keydata1 & 0x00FE) << 8) / 512; + + /* blend stick inputs between the current frame & next frame */ + stick_x = ((f32)(int)k0_sx + (f32)(int)k1_sx) / 2.0f; + stick_y = ((f32)(int)k0_sy + (f32)(int)k1_sy) / 2.0f; + + tmp_a = keydata0 & 1; + btn_a = tmp_a; + btn_b = (u8)(keydata0 >> 8) & 1; + } else { + keydata0 = get_tdemo_keydata(f0); + k0_sx = ((s16)(keydata0 & 0xFE00)) / 512; + k0_sy = ((s16)((keydata0 & 0x00FE) << 8)) / 512; + + stick_x = (f32)(int)k0_sx; + stick_y = (f32)(int)k0_sy; + + tmp_a = keydata0 & 1; + btn_a = tmp_a; + btn_b = (u8)(keydata0 >> 8) & 1; + } + mPlib_SetData1_controller_data_for_title_demo(btn_a, btn_b, (f32)stick_x, (f32)stick_y); } static void mTD_game_end_init(GAME_PLAY* play) { - play->fb_fade_type = 10; // TODO: enum/define - play->fb_wipe_type = 3; // TODO: enum/define + play->fb_fade_type = 10; // TODO: enum/define + play->fb_wipe_type = 3; // TODO: enum/define - mPlib_request_main_invade_type1(play); - mBGMPsComp_make_ps_wipe(0x521C); // TODO: enum/define + mPlib_request_main_invade_type1(play); + mBGMPsComp_make_ps_wipe(0x521C); // TODO: enum/define } extern void title_demo_move(GAME_PLAY* play) { - if (mEv_CheckTitleDemo() > 0) { - set_player_demo_keydata(S_tdemo_frame); - S_tdemo_frame++; + if (mEv_CheckTitleDemo() > 0) { + set_player_demo_keydata(S_tdemo_frame); + S_tdemo_frame++; - if (S_tdemo_frame >= 3600) { - mTD_game_end_init(play); + if (S_tdemo_frame >= 3600) { + mTD_game_end_init(play); + } } - } } extern void mTD_rtc_set() { - if (S_titledemo_to_play == TRUE) { - S_titledemo_to_play = FALSE; + if (S_titledemo_to_play == TRUE) { + S_titledemo_to_play = FALSE; - if (Common_Get(time.rtc_crashed) == TRUE) { - lbRTC_TimeCopy(Common_GetPointer(time.rtc_time), Common_GetPointer(newly_set_time)); - } - else { - lbRTC_GetTime(Common_GetPointer(time.rtc_time)); - } + if (Common_Get(time.rtc_crashed) == TRUE) { + lbRTC_TimeCopy(Common_GetPointer(time.rtc_time), Common_GetPointer(newly_set_time)); + } else { + lbRTC_GetTime(Common_GetPointer(time.rtc_time)); + } - Common_Set(time.rtc_enabled, TRUE); - mTM_set_season(); - } + Common_Set(time.rtc_enabled, TRUE); + mTM_set_season(); + } } extern void mTD_rtc_reserve() { - S_titledemo_to_play = TRUE; + S_titledemo_to_play = TRUE; } extern int mTD_get_titledemo_no() { - int titledemo_no = S_now_demono; - if (titledemo_no <= 0) { - titledemo_no = 1; - } + int titledemo_no = S_now_demono; + if (titledemo_no <= 0) { + titledemo_no = 1; + } - return titledemo_no - 1; + return titledemo_no - 1; } extern int mTD_tdemo_button_ok_check() { - int res = TRUE; - if (S_tdemo_frame >= 3530) { - res = FALSE; - } - - return res; + int res = TRUE; + if (S_tdemo_frame >= 3530) { + res = FALSE; + } + + return res; }