From 974e6ad2ae7b4bc68239d19e30777eebac6c9bf4 Mon Sep 17 00:00:00 2001 From: Cuyler36 Date: Wed, 24 May 2023 01:07:40 -0400 Subject: [PATCH] Implement & link m_item_name --- config/rel_slices.yml | 3 + include/m_item_name.h | 30 ++++ include/m_name_table.h | 79 +++++++++ include/m_room_type.h | 1 + rel/m_item_name.c | 356 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 469 insertions(+) create mode 100644 rel/m_item_name.c diff --git a/config/rel_slices.yml b/config/rel_slices.yml index f3eabf29..4909e07d 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -31,6 +31,9 @@ m_home.c: .data: [0x806546C8, 0x80655340] m_house.c: .text: [0x803B3688, 0x803B3880] +m_item_name.c: + .text: [0x803B5A68, 0x803B5CC4] + .data: [0x80655388, 0x80655D48] m_kabu_manager.c: .text: [0x803B5CC4, 0x803B6280] .rodata: [0x80642480, 0x806424C0] diff --git a/include/m_item_name.h b/include/m_item_name.h index 3c8be34a..b19058ec 100644 --- a/include/m_item_name.h +++ b/include/m_item_name.h @@ -10,6 +10,36 @@ extern "C" { #define mIN_ITEM_NAME_LEN 16 +extern u8 itemName_paper[]; +extern u8 itemName_money[]; +extern u8 itemName_tool[]; +extern u8 itemName_fish[]; +extern u8 itemName_cloth[]; +extern u8 itemName_etc[]; +extern u8 itemName_carpet[]; +extern u8 itemName_wall[]; +extern u8 itemName_fruit[]; +extern u8 itemName_plant[]; +extern u8 itemName_minidisk[]; +extern u8 itemName_dummy[]; +extern u8 itemName_ticket[]; +extern u8 itemName_insect[]; +extern u8 itemName_hukubukuro[]; +extern u8 itemName_kabu[]; + +extern u8 ftrName_table[]; +extern u8 ftrName2_table[]; + +enum item_article { + mIN_ARTICLE_NONE, + mIN_ARTICLE_A, + mIN_ARTICLE_AN, + mIN_ARTICLE_THE, + mIN_ARTICLE_SOME, + + mIN_ARTICLE_NUM +}; + extern void mIN_copy_name_str(u8* str, mActor_name_t item_no); extern int mIN_get_item_article(mActor_name_t item_no); diff --git a/include/m_name_table.h b/include/m_name_table.h index 302c0f75..ec66f7b7 100644 --- a/include/m_name_table.h +++ b/include/m_name_table.h @@ -31,9 +31,33 @@ enum { NAME_TYPE_NUM }; +enum { + ITEM1_CAT_PAPER, + ITEM1_CAT_MONEY, + ITEM1_CAT_TOOL, + ITEM1_CAT_FISH, + ITEM1_CAT_CLOTH, + ITEM1_CAT_ETC, + ITEM1_CAT_CARPET, + ITEM1_CAT_WALL, + ITEM1_CAT_FRUIT, + ITEM1_CAT_PLANT, + ITEM1_CAT_MINIDISK, + ITEM1_CAT_DUMMY, /* diaries */ + ITEM1_CAT_TICKET, + ITEM1_CAT_INSECT, + ITEM1_CAT_HUKUBUKURO, + ITEM1_CAT_KABU, + + ITEM1_CAT_NUM +}; + +extern int mNT_check_unknown(mActor_name_t item_no); + /* Retrieve the item actor's category */ #define ITEM_NAME_GET_TYPE(n) (((n) & 0xF000) >> 12) #define ITEM_NAME_GET_CAT(n) (((n) & 0x0F00) >> 8) +#define ITEM_NAME_GET_INDEX(n) ((mActor_name_t)(n) & 0xFF) #define ITEM_IS_FTR(n) \ (ITEM_NAME_GET_TYPE(n) == NAME_TYPE_FTR0 || ITEM_NAME_GET_TYPE(n) == NAME_TYPE_FTR1) @@ -88,6 +112,25 @@ enum { #define BG_CATEGORY 0 #define ENV_CATEGORY 8 +/* TODO: these should be calculated via definitions later */ +#define FTR_NUM 1266 +#define PAPER_NUM 256 +#define MONEY_NUM 4 +#define TOOL_NUM 92 +#define FISH_NUM 40 +#define CLOTH_NUM 255 +#define ETC_NUM 49 +#define CARPET_NUM 67 +#define WALL_NUM 67 +#define FRUIT_NUM 8 +#define PLANT_NUM 11 +#define MINIDISK_NUM 55 +#define DIARY_NUM 16 +#define TICKET_NUM 96 +#define INSECT_NUM 40 + 5 // 5 spirits +#define HUKUBUKURO_NUM 2 +#define KABU_NUM 4 + #define EMPTY_NO 0x0000 #define GRASS_A 0x0008 @@ -235,6 +278,41 @@ enum { #define DEAD_GOLD_SAPLING (GOLD_TREE + 1) /* 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 FTR_REDALOHASHIRT 0x1814 #define FTR_BLUEALOHASHIRT 0x1818 @@ -250,6 +328,7 @@ enum { #define ITM_DUST1_BOOT 0x250F #define ITM_DUST2_OLD_TIRE 0x2510 #define ITM_PITFALL 0x2512 +#define ITM_SIGNBOARD 0x251E #define ITM_FOOD_START 0x2800 diff --git a/include/m_room_type.h b/include/m_room_type.h index 4c758926..32c05159 100644 --- a/include/m_room_type.h +++ b/include/m_room_type.h @@ -60,6 +60,7 @@ typedef struct room_type_place_info_s { extern void mRmTp_DrawFamicomInfo(gfxprint_t* gfxprint); extern void mRmTp_MakeFamicom_Fdebug(); +extern mActor_name_t mRmTp_FtrItemNo2Item1ItemNo(mActor_name_t ftr_item_no, void* unused); /* second paramter is probably GAME*? */ extern int mRmTp_FtrItemNo2FtrIdx(mActor_name_t ftr_item_no); extern int mRmTp_GetFurnitureData(mActor_name_t ftr, int ut_x, int ut_z, mRmTp_FtrPlaceInfo_t* place_info); diff --git a/rel/m_item_name.c b/rel/m_item_name.c new file mode 100644 index 00000000..70da40d5 --- /dev/null +++ b/rel/m_item_name.c @@ -0,0 +1,356 @@ +#include "m_item_name.h" + +#include "m_name_table.h" +#include "m_lib.h" +#include "m_room_type.h" +#include "m_actor_type.h" +#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 +}; + +static u8 itemArt_Money[MONEY_NUM] = { + 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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +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 +}; + +static u8 itemArt_Hukubukuro[HUKUBUKURO_NUM] = { + mIN_ARTICLE_A, mIN_ARTICLE_A +}; + +static u8 itemArt_Kabu[KABU_NUM] = { + 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 +}; + +/** + * @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); +} + +/** + * @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 + }; + + 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, NULL); + + 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_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); + } + else if (item_no == EMPTY_NO) { + mem_clear(dst, mIN_ITEM_NAME_LEN, CHAR_SPACE); + } + break; + } + } + } +} + +#pragma pool_data on +/** + * @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 + }; + + int article = mIN_ARTICLE_NONE; + mActor_name_t item_no = mRmTp_FtrItemNo2Item1ItemNo(item, NULL); + 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; + } + + 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; +} +#pragma pool_data reset