From 7aa204fe33f718e4e83d8096f35c83fcd95a5174 Mon Sep 17 00:00:00 2001 From: Cuyler36 Date: Mon, 18 Mar 2024 15:25:27 -0400 Subject: [PATCH] Implement & link bg_xmas_item --- config/rel_slices.yml | 5 + include/bg_item.h | 142 +- include/m_actor.h | 2 +- src/bg_cherry_item.c | 144 ++ src/bg_item.c | 144 ++ src/bg_item_clip.c_inc | 4 +- src/bg_item_common.c_inc | 4 +- src/bg_winter_item.c | 144 ++ src/bg_xmas_item.c | 305 ++++ src/bg_xmas_item_data.c_inc | 2758 +++++++++++++++++++++++++++++++++++ src/bg_xmas_item_draw.c_inc | 40 + src/bg_xmas_item_move.c_inc | 54 + 12 files changed, 3600 insertions(+), 146 deletions(-) create mode 100644 src/bg_xmas_item.c create mode 100644 src/bg_xmas_item_data.c_inc create mode 100644 src/bg_xmas_item_draw.c_inc create mode 100644 src/bg_xmas_item_move.c_inc diff --git a/config/rel_slices.yml b/config/rel_slices.yml index b3c00cac..1a040186 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -614,6 +614,11 @@ bg_winter_item.c: .rodata: [0x80646228, 0x806462C8] .data: [0x80695D98, 0x80698D10] .bss: [0x812FDDE8, 0x812FE278] +bg_xmas_item.c: + .text: [0x804C5E30, 0x804CD474] + .rodata: [0x806462C8, 0x80646368] + .data: [0x80698D10, 0x8069BD10] + .bss: [0x812FE278, 0x812FE708] ef_effect_control.c: .text: [0x804CD474, 0x804CEC5C] .rodata: [0x80646368, 0x806463C8] diff --git a/include/bg_item.h b/include/bg_item.h index 899afa07..ad767798 100644 --- a/include/bg_item.h +++ b/include/bg_item.h @@ -30,134 +30,6 @@ enum { bIT_TYPE_CAT_NUM }; -enum { - bIT_DRAW_TYPE_STUMP1, - bIT_DRAW_TYPE_STUMP2, - bIT_DRAW_TYPE_STUMP3, - bIT_DRAW_TYPE_STUMP4, - bIT_DRAW_TYPE_FENCE, - bIT_DRAW_TYPE_NOTICE, - bIT_DRAW_TYPE_GRASS, - bIT_DRAW_TYPE_MAPBOARD, - bIT_DRAW_TYPE_MELODY, - bIT_DRAW_TYPE_FENCES, - bIT_DRAW_TYPE_HONYCOMB, - bIT_DRAW_TYPE_HOLE00_G, - bIT_DRAW_TYPE_HOLE00_S, - bIT_DRAW_TYPE_CRACK00_G, - bIT_DRAW_TYPE_CRACK00_S, - bIT_DRAW_TYPE_HOLE00_SHIN_G, - bIT_DRAW_TYPE_STONE_A, - bIT_DRAW_TYPE_STONE_B, - bIT_DRAW_TYPE_STONE_C, - bIT_DRAW_TYPE_STONE_D, - bIT_DRAW_TYPE_STONE_E, - bIT_DRAW_TYPE_TANE, - bIT_DRAW_TYPE_TREE0, - bIT_DRAW_TYPE_TREE1, - bIT_DRAW_TYPE_TREE2, - bIT_DRAW_TYPE_TREE3, - bIT_DRAW_TYPE_TREE4, - bIT_DRAW_TYPE_TREE4_AP, - bIT_DRAW_TYPE_TREE4_OR, - bIT_DRAW_TYPE_TREE4_PH, - bIT_DRAW_TYPE_TREE4_PR, - bIT_DRAW_TYPE_TREE4_NT, - bIT_DRAW_TYPE_TREE4_BG, - bIT_DRAW_TYPE_FLOWER_LEAF, - bIT_DRAW_TYPE_FLOWER00, - bIT_DRAW_TYPE_FLOWER01, - bIT_DRAW_TYPE_FLOWER02, - bIT_DRAW_TYPE_TREE0_DEAD, - bIT_DRAW_TYPE_PALM000, - bIT_DRAW_TYPE_PALM001, - bIT_DRAW_TYPE_PALM002, - bIT_DRAW_TYPE_PALM003, - bIT_DRAW_TYPE_PALM004, - bIT_DRAW_TYPE_PALM004_CC, - bIT_DRAW_TYPE_PALM_STUMP001, - bIT_DRAW_TYPE_PALM_STUMP002, - bIT_DRAW_TYPE_PALM_STUMP003, - bIT_DRAW_TYPE_PALM_STUMP004, - bIT_DRAW_TYPE_PALM000_DEAD, - bIT_DRAW_TYPE_CEDAR000, - bIT_DRAW_TYPE_CEDAR001, - bIT_DRAW_TYPE_CEDAR002, - bIT_DRAW_TYPE_CEDAR003, - bIT_DRAW_TYPE_CEDAR004, - bIT_DRAW_TYPE_CEDAR_STUMP001, - bIT_DRAW_TYPE_CEDAR_STUMP002, - bIT_DRAW_TYPE_CEDAR_STUMP003, - bIT_DRAW_TYPE_CEDAR_STUMP004, - bIT_DRAW_TYPE_CEDAR000_DEAD, - bIT_DRAW_TYPE_GOLD_TREE000, - bIT_DRAW_TYPE_GOLD_TREE001, - bIT_DRAW_TYPE_GOLD_TREE002, - bIT_DRAW_TYPE_GOLD_TREE003, - bIT_DRAW_TYPE_GOLD_TREE004, - bIT_DRAW_TYPE_GOLD_TREE_STUMP001, - bIT_DRAW_TYPE_GOLD_TREE_STUMP002, - bIT_DRAW_TYPE_GOLD_TREE_STUMP003, - bIT_DRAW_TYPE_GOLD_TREE_STUMP004, - bIT_DRAW_TYPE_GOLD_TREE000_DEAD, - bIT_DRAW_TYPE_APPLE, - bIT_DRAW_TYPE_ORANGE, - bIT_DRAW_TYPE_PEACH, - bIT_DRAW_TYPE_PEAR, - bIT_DRAW_TYPE_NUTS, - bIT_DRAW_TYPE_MATUTAKE, - bIT_DRAW_TYPE_KABU, - bIT_DRAW_TYPE_FISH, - bIT_DRAW_TYPE_BAG, - bIT_DRAW_TYPE_LEAF, - bIT_DRAW_TYPE_ROLL, - bIT_DRAW_TYPE_BOX, - bIT_DRAW_TYPE_PACK, - bIT_DRAW_TYPE_PRESENT, - bIT_DRAW_TYPE_SEED, - bIT_DRAW_TYPE_HANIWA, - bIT_DRAW_TYPE_OTHER, - bIT_DRAW_TYPE_86, - bIT_DRAW_TYPE_TOOL, - bIT_DRAW_TYPE_FOSSIL, - bIT_DRAW_TYPE_TRASH, - bIT_DRAW_TYPE_90, - bIT_DRAW_TYPE_OTOSI, - bIT_DRAW_TYPE_SHELL_A, - bIT_DRAW_TYPE_SHELL_B, - bIT_DRAW_TYPE_SHELL_C, - bIT_DRAW_TYPE_CANDY, - bIT_DRAW_TYPE_COCONUT, - bIT_DRAW_TYPE_97, - bIT_DRAW_TYPE_CLOTH, - bIT_DRAW_TYPE_CARPET, - bIT_DRAW_TYPE_WALL, - bIT_DRAW_TYPE_AXE, - bIT_DRAW_TYPE_NET, - bIT_DRAW_TYPE_ROD, - bIT_DRAW_TYPE_SCOOP, - bIT_DRAW_TYPE_GOLD_AXE, - bIT_DRAW_TYPE_GOLD_NET, - bIT_DRAW_TYPE_GOLD_ROD, - bIT_DRAW_TYPE_GOLD_SCOOP, - bIT_DRAW_TYPE_UMBRELLA, - bIT_DRAW_TYPE_PINWHEEL, - bIT_DRAW_TYPE_FAN, - bIT_DRAW_TYPE_PAPER, - bIT_DRAW_TYPE_SEEDBAG, - bIT_DRAW_TYPE_LUCKBAG, - bIT_DRAW_TYPE_GYMCARD, - bIT_DRAW_TYPE_MUSIC, - bIT_DRAW_TYPE_LOTTERY, - bIT_DRAW_TYPE_BONE, - bIT_DRAW_TYPE_DIARY, - bIT_DRAW_TYPE_FORK, - bIT_DRAW_TYPE_FISH2, - bIT_DRAW_TYPE_NONE, - - bIT_DRAW_TYPE_MAX -}; - enum { bIT_PAL_FLOWER_A, bIT_PAL_FLOWER_B, @@ -193,7 +65,7 @@ typedef struct type_data_s { typedef struct draw_pos_s { MtxF mtxf; - int _04; + void* _04; s16 next_add_cnt; // this isn't right u8 cull_flag; s8 sub_idx; @@ -372,18 +244,6 @@ struct bg_common_s { int _139F4[mFM_VISIBLE_BLOCK_NUM]; }; -typedef struct blk_idx_info_s { - u16 idx[bIT_DRAW_TYPE_MAX]; -} bg_item_idx_info_c; - -typedef struct bg_item_actor_s BG_ITEM_ACTOR; - -struct bg_item_actor_s { - ACTOR actor_class; - bg_item_common_c common; - bg_item_idx_info_c item_idx_info[mFM_VISIBLE_BLOCK_NUM]; -}; - extern ACTOR_PROFILE BgItem_Profile; #ifdef __cplusplus diff --git a/include/m_actor.h b/include/m_actor.h index 15083afd..8a4d1bd2 100644 --- a/include/m_actor.h +++ b/include/m_actor.h @@ -76,7 +76,7 @@ typedef enum bank_id { ACTOR_OBJ_BANK_35, ACTOR_OBJ_BANK_BG_CHERRY_ITEM, ACTOR_OBJ_BANK_BG_WINTER_ITEM, - ACTOR_OBJ_BANK_38, + ACTOR_OBJ_BANK_BG_XMAS_ITEM, ACTOR_OBJ_BANK_39, ACTOR_OBJ_BANK_40, ACTOR_OBJ_BANK_TRAINWINDOW, diff --git a/src/bg_cherry_item.c b/src/bg_cherry_item.c index 944304f5..042f46cd 100644 --- a/src/bg_cherry_item.c +++ b/src/bg_cherry_item.c @@ -18,6 +18,150 @@ #define bIT_CLIP (Common_Get(clip).bg_item_clip) +enum { + bIT_DRAW_TYPE_STUMP1, + bIT_DRAW_TYPE_STUMP2, + bIT_DRAW_TYPE_STUMP3, + bIT_DRAW_TYPE_STUMP4, + bIT_DRAW_TYPE_FENCE, + bIT_DRAW_TYPE_NOTICE, + bIT_DRAW_TYPE_GRASS, + bIT_DRAW_TYPE_MAPBOARD, + bIT_DRAW_TYPE_MELODY, + bIT_DRAW_TYPE_FENCES, + bIT_DRAW_TYPE_HONYCOMB, + bIT_DRAW_TYPE_HOLE00_G, + bIT_DRAW_TYPE_HOLE00_S, + bIT_DRAW_TYPE_CRACK00_G, + bIT_DRAW_TYPE_CRACK00_S, + bIT_DRAW_TYPE_HOLE00_SHIN_G, + bIT_DRAW_TYPE_STONE_A, + bIT_DRAW_TYPE_STONE_B, + bIT_DRAW_TYPE_STONE_C, + bIT_DRAW_TYPE_STONE_D, + bIT_DRAW_TYPE_STONE_E, + bIT_DRAW_TYPE_TANE, + bIT_DRAW_TYPE_TREE0, + bIT_DRAW_TYPE_TREE1, + bIT_DRAW_TYPE_TREE2, + bIT_DRAW_TYPE_TREE3, + bIT_DRAW_TYPE_TREE4, + bIT_DRAW_TYPE_TREE4_AP, + bIT_DRAW_TYPE_TREE4_OR, + bIT_DRAW_TYPE_TREE4_PH, + bIT_DRAW_TYPE_TREE4_PR, + bIT_DRAW_TYPE_TREE4_NT, + bIT_DRAW_TYPE_TREE4_BG, + bIT_DRAW_TYPE_FLOWER_LEAF, + bIT_DRAW_TYPE_FLOWER00, + bIT_DRAW_TYPE_FLOWER01, + bIT_DRAW_TYPE_FLOWER02, + bIT_DRAW_TYPE_TREE0_DEAD, + bIT_DRAW_TYPE_PALM000, + bIT_DRAW_TYPE_PALM001, + bIT_DRAW_TYPE_PALM002, + bIT_DRAW_TYPE_PALM003, + bIT_DRAW_TYPE_PALM004, + bIT_DRAW_TYPE_PALM004_CC, + bIT_DRAW_TYPE_PALM_STUMP001, + bIT_DRAW_TYPE_PALM_STUMP002, + bIT_DRAW_TYPE_PALM_STUMP003, + bIT_DRAW_TYPE_PALM_STUMP004, + bIT_DRAW_TYPE_PALM000_DEAD, + bIT_DRAW_TYPE_CEDAR000, + bIT_DRAW_TYPE_CEDAR001, + bIT_DRAW_TYPE_CEDAR002, + bIT_DRAW_TYPE_CEDAR003, + bIT_DRAW_TYPE_CEDAR004, + bIT_DRAW_TYPE_CEDAR_STUMP001, + bIT_DRAW_TYPE_CEDAR_STUMP002, + bIT_DRAW_TYPE_CEDAR_STUMP003, + bIT_DRAW_TYPE_CEDAR_STUMP004, + bIT_DRAW_TYPE_CEDAR000_DEAD, + bIT_DRAW_TYPE_GOLD_TREE000, + bIT_DRAW_TYPE_GOLD_TREE001, + bIT_DRAW_TYPE_GOLD_TREE002, + bIT_DRAW_TYPE_GOLD_TREE003, + bIT_DRAW_TYPE_GOLD_TREE004, + bIT_DRAW_TYPE_GOLD_TREE_STUMP001, + bIT_DRAW_TYPE_GOLD_TREE_STUMP002, + bIT_DRAW_TYPE_GOLD_TREE_STUMP003, + bIT_DRAW_TYPE_GOLD_TREE_STUMP004, + bIT_DRAW_TYPE_GOLD_TREE000_DEAD, + bIT_DRAW_TYPE_APPLE, + bIT_DRAW_TYPE_ORANGE, + bIT_DRAW_TYPE_PEACH, + bIT_DRAW_TYPE_PEAR, + bIT_DRAW_TYPE_NUTS, + bIT_DRAW_TYPE_MATUTAKE, + bIT_DRAW_TYPE_KABU, + bIT_DRAW_TYPE_FISH, + bIT_DRAW_TYPE_BAG, + bIT_DRAW_TYPE_LEAF, + bIT_DRAW_TYPE_ROLL, + bIT_DRAW_TYPE_BOX, + bIT_DRAW_TYPE_PACK, + bIT_DRAW_TYPE_PRESENT, + bIT_DRAW_TYPE_SEED, + bIT_DRAW_TYPE_HANIWA, + bIT_DRAW_TYPE_OTHER, + bIT_DRAW_TYPE_86, + bIT_DRAW_TYPE_TOOL, + bIT_DRAW_TYPE_FOSSIL, + bIT_DRAW_TYPE_TRASH, + bIT_DRAW_TYPE_90, + bIT_DRAW_TYPE_OTOSI, + bIT_DRAW_TYPE_SHELL_A, + bIT_DRAW_TYPE_SHELL_B, + bIT_DRAW_TYPE_SHELL_C, + bIT_DRAW_TYPE_CANDY, + bIT_DRAW_TYPE_COCONUT, + bIT_DRAW_TYPE_97, + bIT_DRAW_TYPE_CLOTH, + bIT_DRAW_TYPE_CARPET, + bIT_DRAW_TYPE_WALL, + bIT_DRAW_TYPE_AXE, + bIT_DRAW_TYPE_NET, + bIT_DRAW_TYPE_ROD, + bIT_DRAW_TYPE_SCOOP, + bIT_DRAW_TYPE_GOLD_AXE, + bIT_DRAW_TYPE_GOLD_NET, + bIT_DRAW_TYPE_GOLD_ROD, + bIT_DRAW_TYPE_GOLD_SCOOP, + bIT_DRAW_TYPE_UMBRELLA, + bIT_DRAW_TYPE_PINWHEEL, + bIT_DRAW_TYPE_FAN, + bIT_DRAW_TYPE_PAPER, + bIT_DRAW_TYPE_SEEDBAG, + bIT_DRAW_TYPE_LUCKBAG, + bIT_DRAW_TYPE_GYMCARD, + bIT_DRAW_TYPE_MUSIC, + bIT_DRAW_TYPE_LOTTERY, + bIT_DRAW_TYPE_BONE, + bIT_DRAW_TYPE_DIARY, + bIT_DRAW_TYPE_FORK, + bIT_DRAW_TYPE_FISH2, + bIT_DRAW_TYPE_NONE, + + bIT_DRAW_TYPE_MAX +}; + +#define bIT_TYPE_BASE bIT_DRAW_TYPE_GOLD_TREE000_DEAD + +typedef struct blk_idx_info_s { + u16 idx[bIT_DRAW_TYPE_MAX]; +} bg_item_idx_info_c; + +typedef struct bg_item_actor_s BG_ITEM_ACTOR; + +struct bg_item_actor_s { + ACTOR actor_class; + bg_item_common_c common; + bg_item_idx_info_c item_idx_info[mFM_VISIBLE_BLOCK_NUM]; +}; + +#define bIT_GET_COMMON(actorx) (&((BG_ITEM_ACTOR*)(actorx))->common) + static void bCI_actor_ct(ACTOR* actorx, GAME* game); static void bCI_actor_dt(ACTOR* actorx, GAME* game); static void bCI_actor_move(ACTOR* actorx, GAME* game); diff --git a/src/bg_item.c b/src/bg_item.c index 77a8f17e..71284f52 100644 --- a/src/bg_item.c +++ b/src/bg_item.c @@ -17,6 +17,150 @@ #define bIT_CLIP (Common_Get(clip).bg_item_clip) +enum { + bIT_DRAW_TYPE_STUMP1, + bIT_DRAW_TYPE_STUMP2, + bIT_DRAW_TYPE_STUMP3, + bIT_DRAW_TYPE_STUMP4, + bIT_DRAW_TYPE_FENCE, + bIT_DRAW_TYPE_NOTICE, + bIT_DRAW_TYPE_GRASS, + bIT_DRAW_TYPE_MAPBOARD, + bIT_DRAW_TYPE_MELODY, + bIT_DRAW_TYPE_FENCES, + bIT_DRAW_TYPE_HONYCOMB, + bIT_DRAW_TYPE_HOLE00_G, + bIT_DRAW_TYPE_HOLE00_S, + bIT_DRAW_TYPE_CRACK00_G, + bIT_DRAW_TYPE_CRACK00_S, + bIT_DRAW_TYPE_HOLE00_SHIN_G, + bIT_DRAW_TYPE_STONE_A, + bIT_DRAW_TYPE_STONE_B, + bIT_DRAW_TYPE_STONE_C, + bIT_DRAW_TYPE_STONE_D, + bIT_DRAW_TYPE_STONE_E, + bIT_DRAW_TYPE_TANE, + bIT_DRAW_TYPE_TREE0, + bIT_DRAW_TYPE_TREE1, + bIT_DRAW_TYPE_TREE2, + bIT_DRAW_TYPE_TREE3, + bIT_DRAW_TYPE_TREE4, + bIT_DRAW_TYPE_TREE4_AP, + bIT_DRAW_TYPE_TREE4_OR, + bIT_DRAW_TYPE_TREE4_PH, + bIT_DRAW_TYPE_TREE4_PR, + bIT_DRAW_TYPE_TREE4_NT, + bIT_DRAW_TYPE_TREE4_BG, + bIT_DRAW_TYPE_FLOWER_LEAF, + bIT_DRAW_TYPE_FLOWER00, + bIT_DRAW_TYPE_FLOWER01, + bIT_DRAW_TYPE_FLOWER02, + bIT_DRAW_TYPE_TREE0_DEAD, + bIT_DRAW_TYPE_PALM000, + bIT_DRAW_TYPE_PALM001, + bIT_DRAW_TYPE_PALM002, + bIT_DRAW_TYPE_PALM003, + bIT_DRAW_TYPE_PALM004, + bIT_DRAW_TYPE_PALM004_CC, + bIT_DRAW_TYPE_PALM_STUMP001, + bIT_DRAW_TYPE_PALM_STUMP002, + bIT_DRAW_TYPE_PALM_STUMP003, + bIT_DRAW_TYPE_PALM_STUMP004, + bIT_DRAW_TYPE_PALM000_DEAD, + bIT_DRAW_TYPE_CEDAR000, + bIT_DRAW_TYPE_CEDAR001, + bIT_DRAW_TYPE_CEDAR002, + bIT_DRAW_TYPE_CEDAR003, + bIT_DRAW_TYPE_CEDAR004, + bIT_DRAW_TYPE_CEDAR_STUMP001, + bIT_DRAW_TYPE_CEDAR_STUMP002, + bIT_DRAW_TYPE_CEDAR_STUMP003, + bIT_DRAW_TYPE_CEDAR_STUMP004, + bIT_DRAW_TYPE_CEDAR000_DEAD, + bIT_DRAW_TYPE_GOLD_TREE000, + bIT_DRAW_TYPE_GOLD_TREE001, + bIT_DRAW_TYPE_GOLD_TREE002, + bIT_DRAW_TYPE_GOLD_TREE003, + bIT_DRAW_TYPE_GOLD_TREE004, + bIT_DRAW_TYPE_GOLD_TREE_STUMP001, + bIT_DRAW_TYPE_GOLD_TREE_STUMP002, + bIT_DRAW_TYPE_GOLD_TREE_STUMP003, + bIT_DRAW_TYPE_GOLD_TREE_STUMP004, + bIT_DRAW_TYPE_GOLD_TREE000_DEAD, + bIT_DRAW_TYPE_APPLE, + bIT_DRAW_TYPE_ORANGE, + bIT_DRAW_TYPE_PEACH, + bIT_DRAW_TYPE_PEAR, + bIT_DRAW_TYPE_NUTS, + bIT_DRAW_TYPE_MATUTAKE, + bIT_DRAW_TYPE_KABU, + bIT_DRAW_TYPE_FISH, + bIT_DRAW_TYPE_BAG, + bIT_DRAW_TYPE_LEAF, + bIT_DRAW_TYPE_ROLL, + bIT_DRAW_TYPE_BOX, + bIT_DRAW_TYPE_PACK, + bIT_DRAW_TYPE_PRESENT, + bIT_DRAW_TYPE_SEED, + bIT_DRAW_TYPE_HANIWA, + bIT_DRAW_TYPE_OTHER, + bIT_DRAW_TYPE_86, + bIT_DRAW_TYPE_TOOL, + bIT_DRAW_TYPE_FOSSIL, + bIT_DRAW_TYPE_TRASH, + bIT_DRAW_TYPE_90, + bIT_DRAW_TYPE_OTOSI, + bIT_DRAW_TYPE_SHELL_A, + bIT_DRAW_TYPE_SHELL_B, + bIT_DRAW_TYPE_SHELL_C, + bIT_DRAW_TYPE_CANDY, + bIT_DRAW_TYPE_COCONUT, + bIT_DRAW_TYPE_97, + bIT_DRAW_TYPE_CLOTH, + bIT_DRAW_TYPE_CARPET, + bIT_DRAW_TYPE_WALL, + bIT_DRAW_TYPE_AXE, + bIT_DRAW_TYPE_NET, + bIT_DRAW_TYPE_ROD, + bIT_DRAW_TYPE_SCOOP, + bIT_DRAW_TYPE_GOLD_AXE, + bIT_DRAW_TYPE_GOLD_NET, + bIT_DRAW_TYPE_GOLD_ROD, + bIT_DRAW_TYPE_GOLD_SCOOP, + bIT_DRAW_TYPE_UMBRELLA, + bIT_DRAW_TYPE_PINWHEEL, + bIT_DRAW_TYPE_FAN, + bIT_DRAW_TYPE_PAPER, + bIT_DRAW_TYPE_SEEDBAG, + bIT_DRAW_TYPE_LUCKBAG, + bIT_DRAW_TYPE_GYMCARD, + bIT_DRAW_TYPE_MUSIC, + bIT_DRAW_TYPE_LOTTERY, + bIT_DRAW_TYPE_BONE, + bIT_DRAW_TYPE_DIARY, + bIT_DRAW_TYPE_FORK, + bIT_DRAW_TYPE_FISH2, + bIT_DRAW_TYPE_NONE, + + bIT_DRAW_TYPE_MAX +}; + +#define bIT_TYPE_BASE bIT_DRAW_TYPE_GOLD_TREE000_DEAD + +typedef struct blk_idx_info_s { + u16 idx[bIT_DRAW_TYPE_MAX]; +} bg_item_idx_info_c; + +typedef struct bg_item_actor_s BG_ITEM_ACTOR; + +struct bg_item_actor_s { + ACTOR actor_class; + bg_item_common_c common; + bg_item_idx_info_c item_idx_info[mFM_VISIBLE_BLOCK_NUM]; +}; + +#define bIT_GET_COMMON(actorx) (&((BG_ITEM_ACTOR*)(actorx))->common) + static void bIT_actor_ct(ACTOR* actorx, GAME* game); static void bIT_actor_dt(ACTOR* actorx, GAME* game); static void bIT_actor_move(ACTOR* actorx, GAME* game); diff --git a/src/bg_item_clip.c_inc b/src/bg_item_clip.c_inc index ec59cac0..c8c98e7d 100644 --- a/src/bg_item_clip.c_inc +++ b/src/bg_item_clip.c_inc @@ -76,7 +76,7 @@ static int bIT_fruit_set(mActor_name_t fg_item, int ut_x, int ut_z, s16 count, i static int bIT_actor_fade_entry(mActor_name_t fg_name, xyz_t* pos); static void bIT_clip_ct(ACTOR* actorx) { - BG_ITEM_ACTOR* bg_item = (BG_ITEM_ACTOR*)actorx; + // BG_ITEM_ACTOR* bg_item = (BG_ITEM_ACTOR*)actorx; if (bIT_CLIP == NULL) { bIT_CLIP = (bIT_Clip_c*)zelda_malloc(sizeof(bIT_Clip_c)); @@ -96,7 +96,7 @@ static void bIT_clip_ct(ACTOR* actorx) { bIT_CLIP->ten_coin_entry_ex_proc = &bg_item_ten_coin_entry_ex; bIT_CLIP->fruit_set_proc = &bIT_fruit_set; bIT_CLIP->fade_entry_proc = &bIT_actor_fade_entry; - bIT_CLIP->bg_item_common_p = &bg_item->common; + bIT_CLIP->bg_item_common_p = bIT_GET_COMMON(actorx); bIT_CLIP->bg_item_actorx = actorx; } } diff --git a/src/bg_item_common.c_inc b/src/bg_item_common.c_inc index a3cfe9cf..c44d58c3 100644 --- a/src/bg_item_common.c_inc +++ b/src/bg_item_common.c_inc @@ -1878,7 +1878,7 @@ static void fg_no2fg_type(mActor_name_t fg_no, bg_item_type_data_c* type_data, m type_data->pos_x_tbl_p = src->pos_x_tbl_p; type_data->pos_z_tbl_p = src->pos_z_tbl_p; - type_data->type = 68 + mNT_get_itemTableNo(fg_no); + type_data->type = bIT_TYPE_BASE + mNT_get_itemTableNo(fg_no); break; } @@ -1892,7 +1892,7 @@ static void fg_no2fg_type(mActor_name_t fg_no, bg_item_type_data_c* type_data, m type_data->pos_x_tbl_p = src->pos_x_tbl_p; type_data->pos_z_tbl_p = src->pos_z_tbl_p; - type_data->type = 68 + mNT_get_itemTableNo(fg_no); + type_data->type = bIT_TYPE_BASE + mNT_get_itemTableNo(fg_no); break; } diff --git a/src/bg_winter_item.c b/src/bg_winter_item.c index f4f004ae..cdc0bc44 100644 --- a/src/bg_winter_item.c +++ b/src/bg_winter_item.c @@ -18,6 +18,150 @@ #define bIT_CLIP (Common_Get(clip).bg_item_clip) +enum { + bIT_DRAW_TYPE_STUMP1, + bIT_DRAW_TYPE_STUMP2, + bIT_DRAW_TYPE_STUMP3, + bIT_DRAW_TYPE_STUMP4, + bIT_DRAW_TYPE_FENCE, + bIT_DRAW_TYPE_NOTICE, + bIT_DRAW_TYPE_GRASS, + bIT_DRAW_TYPE_MAPBOARD, + bIT_DRAW_TYPE_MELODY, + bIT_DRAW_TYPE_FENCES, + bIT_DRAW_TYPE_HONYCOMB, + bIT_DRAW_TYPE_HOLE00_G, + bIT_DRAW_TYPE_HOLE00_S, + bIT_DRAW_TYPE_CRACK00_G, + bIT_DRAW_TYPE_CRACK00_S, + bIT_DRAW_TYPE_HOLE00_SHIN_G, + bIT_DRAW_TYPE_STONE_A, + bIT_DRAW_TYPE_STONE_B, + bIT_DRAW_TYPE_STONE_C, + bIT_DRAW_TYPE_STONE_D, + bIT_DRAW_TYPE_STONE_E, + bIT_DRAW_TYPE_TANE, + bIT_DRAW_TYPE_TREE0, + bIT_DRAW_TYPE_TREE1, + bIT_DRAW_TYPE_TREE2, + bIT_DRAW_TYPE_TREE3, + bIT_DRAW_TYPE_TREE4, + bIT_DRAW_TYPE_TREE4_AP, + bIT_DRAW_TYPE_TREE4_OR, + bIT_DRAW_TYPE_TREE4_PH, + bIT_DRAW_TYPE_TREE4_PR, + bIT_DRAW_TYPE_TREE4_NT, + bIT_DRAW_TYPE_TREE4_BG, + bIT_DRAW_TYPE_FLOWER_LEAF, + bIT_DRAW_TYPE_FLOWER00, + bIT_DRAW_TYPE_FLOWER01, + bIT_DRAW_TYPE_FLOWER02, + bIT_DRAW_TYPE_TREE0_DEAD, + bIT_DRAW_TYPE_PALM000, + bIT_DRAW_TYPE_PALM001, + bIT_DRAW_TYPE_PALM002, + bIT_DRAW_TYPE_PALM003, + bIT_DRAW_TYPE_PALM004, + bIT_DRAW_TYPE_PALM004_CC, + bIT_DRAW_TYPE_PALM_STUMP001, + bIT_DRAW_TYPE_PALM_STUMP002, + bIT_DRAW_TYPE_PALM_STUMP003, + bIT_DRAW_TYPE_PALM_STUMP004, + bIT_DRAW_TYPE_PALM000_DEAD, + bIT_DRAW_TYPE_CEDAR000, + bIT_DRAW_TYPE_CEDAR001, + bIT_DRAW_TYPE_CEDAR002, + bIT_DRAW_TYPE_CEDAR003, + bIT_DRAW_TYPE_CEDAR004, + bIT_DRAW_TYPE_CEDAR_STUMP001, + bIT_DRAW_TYPE_CEDAR_STUMP002, + bIT_DRAW_TYPE_CEDAR_STUMP003, + bIT_DRAW_TYPE_CEDAR_STUMP004, + bIT_DRAW_TYPE_CEDAR000_DEAD, + bIT_DRAW_TYPE_GOLD_TREE000, + bIT_DRAW_TYPE_GOLD_TREE001, + bIT_DRAW_TYPE_GOLD_TREE002, + bIT_DRAW_TYPE_GOLD_TREE003, + bIT_DRAW_TYPE_GOLD_TREE004, + bIT_DRAW_TYPE_GOLD_TREE_STUMP001, + bIT_DRAW_TYPE_GOLD_TREE_STUMP002, + bIT_DRAW_TYPE_GOLD_TREE_STUMP003, + bIT_DRAW_TYPE_GOLD_TREE_STUMP004, + bIT_DRAW_TYPE_GOLD_TREE000_DEAD, + bIT_DRAW_TYPE_APPLE, + bIT_DRAW_TYPE_ORANGE, + bIT_DRAW_TYPE_PEACH, + bIT_DRAW_TYPE_PEAR, + bIT_DRAW_TYPE_NUTS, + bIT_DRAW_TYPE_MATUTAKE, + bIT_DRAW_TYPE_KABU, + bIT_DRAW_TYPE_FISH, + bIT_DRAW_TYPE_BAG, + bIT_DRAW_TYPE_LEAF, + bIT_DRAW_TYPE_ROLL, + bIT_DRAW_TYPE_BOX, + bIT_DRAW_TYPE_PACK, + bIT_DRAW_TYPE_PRESENT, + bIT_DRAW_TYPE_SEED, + bIT_DRAW_TYPE_HANIWA, + bIT_DRAW_TYPE_OTHER, + bIT_DRAW_TYPE_86, + bIT_DRAW_TYPE_TOOL, + bIT_DRAW_TYPE_FOSSIL, + bIT_DRAW_TYPE_TRASH, + bIT_DRAW_TYPE_90, + bIT_DRAW_TYPE_OTOSI, + bIT_DRAW_TYPE_SHELL_A, + bIT_DRAW_TYPE_SHELL_B, + bIT_DRAW_TYPE_SHELL_C, + bIT_DRAW_TYPE_CANDY, + bIT_DRAW_TYPE_COCONUT, + bIT_DRAW_TYPE_97, + bIT_DRAW_TYPE_CLOTH, + bIT_DRAW_TYPE_CARPET, + bIT_DRAW_TYPE_WALL, + bIT_DRAW_TYPE_AXE, + bIT_DRAW_TYPE_NET, + bIT_DRAW_TYPE_ROD, + bIT_DRAW_TYPE_SCOOP, + bIT_DRAW_TYPE_GOLD_AXE, + bIT_DRAW_TYPE_GOLD_NET, + bIT_DRAW_TYPE_GOLD_ROD, + bIT_DRAW_TYPE_GOLD_SCOOP, + bIT_DRAW_TYPE_UMBRELLA, + bIT_DRAW_TYPE_PINWHEEL, + bIT_DRAW_TYPE_FAN, + bIT_DRAW_TYPE_PAPER, + bIT_DRAW_TYPE_SEEDBAG, + bIT_DRAW_TYPE_LUCKBAG, + bIT_DRAW_TYPE_GYMCARD, + bIT_DRAW_TYPE_MUSIC, + bIT_DRAW_TYPE_LOTTERY, + bIT_DRAW_TYPE_BONE, + bIT_DRAW_TYPE_DIARY, + bIT_DRAW_TYPE_FORK, + bIT_DRAW_TYPE_FISH2, + bIT_DRAW_TYPE_NONE, + + bIT_DRAW_TYPE_MAX +}; + +#define bIT_TYPE_BASE bIT_DRAW_TYPE_GOLD_TREE000_DEAD + +typedef struct blk_idx_info_s { + u16 idx[bIT_DRAW_TYPE_MAX]; +} bg_item_idx_info_c; + +typedef struct bg_item_actor_s BG_ITEM_ACTOR; + +struct bg_item_actor_s { + ACTOR actor_class; + bg_item_common_c common; + bg_item_idx_info_c item_idx_info[mFM_VISIBLE_BLOCK_NUM]; +}; + +#define bIT_GET_COMMON(actorx) (&((BG_ITEM_ACTOR*)(actorx))->common) + static void bWI_actor_ct(ACTOR* actorx, GAME* game); static void bWI_actor_dt(ACTOR* actorx, GAME* game); static void bWI_actor_move(ACTOR* actorx, GAME* game); diff --git a/src/bg_xmas_item.c b/src/bg_xmas_item.c new file mode 100644 index 00000000..e2c5b21c --- /dev/null +++ b/src/bg_xmas_item.c @@ -0,0 +1,305 @@ +#include "bg_item.h" +#include "bg_xmas_item.h" + +#include "m_common_data.h" +#include "m_name_table.h" +#include "m_malloc.h" +#include "libultra/libultra.h" +#include "m_player_lib.h" +#include "sys_matrix.h" +#include "m_skin_matrix.h" +#include "gfxalloc.h" +#include "m_rcp.h" +#include "m_event_map_npc.h" + +#define GOLD_TREE_SAPLING_EFFECT_X 13.0f +#define GOLD_TREE_SAPLING_EFFECT_Y 33.0f +#define GOLD_TREE_SAPLING_EFFECT_Z 10.0f + +#define bIT_CLIP (Common_Get(clip).bg_item_clip) + +enum { + bIT_DRAW_TYPE_STUMP1, + bIT_DRAW_TYPE_STUMP2, + bIT_DRAW_TYPE_STUMP3, + bIT_DRAW_TYPE_STUMP4, + bIT_DRAW_TYPE_FENCE, + bIT_DRAW_TYPE_NOTICE, + bIT_DRAW_TYPE_GRASS, + bIT_DRAW_TYPE_MAPBOARD, + bIT_DRAW_TYPE_MELODY, + bIT_DRAW_TYPE_FENCES, + bIT_DRAW_TYPE_HONYCOMB, + bIT_DRAW_TYPE_HOLE00_G, + bIT_DRAW_TYPE_HOLE00_S, + bIT_DRAW_TYPE_CRACK00_G, + bIT_DRAW_TYPE_CRACK00_S, + bIT_DRAW_TYPE_HOLE00_SHIN_G, + bIT_DRAW_TYPE_STONE_A, + bIT_DRAW_TYPE_STONE_B, + bIT_DRAW_TYPE_STONE_C, + bIT_DRAW_TYPE_STONE_D, + bIT_DRAW_TYPE_STONE_E, + bIT_DRAW_TYPE_TANE, + bIT_DRAW_TYPE_TREE0, + bIT_DRAW_TYPE_TREE1, + bIT_DRAW_TYPE_TREE2, + bIT_DRAW_TYPE_TREE3, + bIT_DRAW_TYPE_TREE4, + bIT_DRAW_TYPE_TREE4_AP, + bIT_DRAW_TYPE_TREE4_OR, + bIT_DRAW_TYPE_TREE4_PH, + bIT_DRAW_TYPE_TREE4_PR, + bIT_DRAW_TYPE_TREE4_NT, + bIT_DRAW_TYPE_TREE4_BG, + bIT_DRAW_TYPE_TREE4_LIGHT, + bIT_DRAW_TYPE_FLOWER_LEAF, + bIT_DRAW_TYPE_FLOWER00, + bIT_DRAW_TYPE_FLOWER01, + bIT_DRAW_TYPE_FLOWER02, + bIT_DRAW_TYPE_TREE0_DEAD, + bIT_DRAW_TYPE_PALM000, + bIT_DRAW_TYPE_PALM001, + bIT_DRAW_TYPE_PALM002, + bIT_DRAW_TYPE_PALM003, + bIT_DRAW_TYPE_PALM004, + bIT_DRAW_TYPE_PALM004_CC, + bIT_DRAW_TYPE_PALM_STUMP001, + bIT_DRAW_TYPE_PALM_STUMP002, + bIT_DRAW_TYPE_PALM_STUMP003, + bIT_DRAW_TYPE_PALM_STUMP004, + bIT_DRAW_TYPE_PALM000_DEAD, + bIT_DRAW_TYPE_CEDAR000, + bIT_DRAW_TYPE_CEDAR001, + bIT_DRAW_TYPE_CEDAR002, + bIT_DRAW_TYPE_CEDAR003, + bIT_DRAW_TYPE_CEDAR004, + bIT_DRAW_TYPE_CEDAR004_LIGHT, + bIT_DRAW_TYPE_CEDAR_STUMP001, + bIT_DRAW_TYPE_CEDAR_STUMP002, + bIT_DRAW_TYPE_CEDAR_STUMP003, + bIT_DRAW_TYPE_CEDAR_STUMP004, + bIT_DRAW_TYPE_CEDAR000_DEAD, + bIT_DRAW_TYPE_GOLD_TREE000, + bIT_DRAW_TYPE_GOLD_TREE001, + bIT_DRAW_TYPE_GOLD_TREE002, + bIT_DRAW_TYPE_GOLD_TREE003, + bIT_DRAW_TYPE_GOLD_TREE004, + bIT_DRAW_TYPE_GOLD_TREE_STUMP001, + bIT_DRAW_TYPE_GOLD_TREE_STUMP002, + bIT_DRAW_TYPE_GOLD_TREE_STUMP003, + bIT_DRAW_TYPE_GOLD_TREE_STUMP004, + bIT_DRAW_TYPE_GOLD_TREE000_DEAD, + bIT_DRAW_TYPE_APPLE, + bIT_DRAW_TYPE_ORANGE, + bIT_DRAW_TYPE_PEACH, + bIT_DRAW_TYPE_PEAR, + bIT_DRAW_TYPE_NUTS, + bIT_DRAW_TYPE_MATUTAKE, + bIT_DRAW_TYPE_KABU, + bIT_DRAW_TYPE_FISH, + bIT_DRAW_TYPE_BAG, + bIT_DRAW_TYPE_LEAF, + bIT_DRAW_TYPE_ROLL, + bIT_DRAW_TYPE_BOX, + bIT_DRAW_TYPE_PACK, + bIT_DRAW_TYPE_PRESENT, + bIT_DRAW_TYPE_SEED, + bIT_DRAW_TYPE_HANIWA, + bIT_DRAW_TYPE_OTHER, + bIT_DRAW_TYPE_86, + bIT_DRAW_TYPE_TOOL, + bIT_DRAW_TYPE_FOSSIL, + bIT_DRAW_TYPE_TRASH, + bIT_DRAW_TYPE_90, + bIT_DRAW_TYPE_OTOSI, + bIT_DRAW_TYPE_SHELL_A, + bIT_DRAW_TYPE_SHELL_B, + bIT_DRAW_TYPE_SHELL_C, + bIT_DRAW_TYPE_CANDY, + bIT_DRAW_TYPE_COCONUT, + bIT_DRAW_TYPE_97, + bIT_DRAW_TYPE_CLOTH, + bIT_DRAW_TYPE_CARPET, + bIT_DRAW_TYPE_WALL, + bIT_DRAW_TYPE_AXE, + bIT_DRAW_TYPE_NET, + bIT_DRAW_TYPE_ROD, + bIT_DRAW_TYPE_SCOOP, + bIT_DRAW_TYPE_GOLD_AXE, + bIT_DRAW_TYPE_GOLD_NET, + bIT_DRAW_TYPE_GOLD_ROD, + bIT_DRAW_TYPE_GOLD_SCOOP, + bIT_DRAW_TYPE_UMBRELLA, + bIT_DRAW_TYPE_PINWHEEL, + bIT_DRAW_TYPE_FAN, + bIT_DRAW_TYPE_PAPER, + bIT_DRAW_TYPE_SEEDBAG, + bIT_DRAW_TYPE_LUCKBAG, + bIT_DRAW_TYPE_GYMCARD, + bIT_DRAW_TYPE_MUSIC, + bIT_DRAW_TYPE_LOTTERY, + bIT_DRAW_TYPE_BONE, + bIT_DRAW_TYPE_DIARY, + bIT_DRAW_TYPE_FORK, + bIT_DRAW_TYPE_FISH2, + bIT_DRAW_TYPE_NONE, + + bIT_DRAW_TYPE_MAX +}; + +#define bIT_TYPE_BASE bIT_DRAW_TYPE_GOLD_TREE000_DEAD + +typedef struct bg_item_idx_info_s { + s16 v0; + s16 v1; +} bg_item_idx_info_c; + +typedef struct blk_idx_info_s { + bg_item_idx_info_c info[UT_TOTAL_NUM + 1]; + u16 idx[bIT_DRAW_TYPE_MAX]; +} bg_item_blk_idx_info_c; + +typedef struct bg_xmas_item_actor_s BG_XMAS_ITEM_ACTOR; + +struct bg_xmas_item_actor_s { + ACTOR actor_class; + bg_item_blk_idx_info_c item_idx_info[mFM_VISIBLE_BLOCK_NUM]; + bg_item_common_c common; +}; + +#define bIT_GET_COMMON(actorx) (&((BG_XMAS_ITEM_ACTOR*)(actorx))->common) + +static void bXI_actor_ct(ACTOR* actorx, GAME* game); +static void bXI_actor_dt(ACTOR* actorx, GAME* game); +static void bXI_actor_move(ACTOR* actorx, GAME* game); +static void bXI_actor_draw(ACTOR* actorx, GAME* game); + +ACTOR_PROFILE BgXmasItem_Profile = { + mAc_PROFILE_BGXMASITEM, + ACTOR_PART_ITEM, + ACTOR_STATE_NO_DRAW_WHILE_CULLED | ACTOR_STATE_NO_MOVE_WHILE_CULLED, + EMPTY_NO, + ACTOR_OBJ_BANK_BG_XMAS_ITEM, + sizeof(BG_XMAS_ITEM_ACTOR), + &bXI_actor_ct, + &bXI_actor_dt, + &bXI_actor_move, + &bXI_actor_draw, + NULL, +}; + +static f32 pos_table[] = { + 20.0f, 60.0f, 100.0f, 140.0f, 180.0f, 220.0f, 260.0f, 300.0f, + 340.0f, 380.0f, 420.0f, 460.0f, 500.0f, 540.0f, 580.0f, 620.0f, +}; + +static f32 pos_table2[] = { + 0.0f, 40.0f, 80.0f, 120.0f, 160.0f, 200.0f, 240.0f, 280.0f, + 320.0f, 360.0f, 400.0f, 440.0f, 480.0f, 520.0f, 560.0f, 600.0f, +}; + +static void bg_item_common_draw_loop_type1(GRAPH* graph, Gfx** gfx_pp, bg_item_draw_list_c* draw_list, + bg_item_draw_pos_c* draw_pos, Gfx** display_list_table); +static void bg_item_common_s_draw_loop_type1(GRAPH* graph, Gfx** gfx_pp, bg_item_draw_list_c* draw_list, + int shadow_vtx_count, Vtx* shadow_vtx, bg_item_draw_pos_c* draw_pos, + Gfx** display_list_table); + +static int bIT_actor_drop_entry(bg_item_drop_table_c* drop_info, mActor_name_t fg_item, xyz_t* pos, xyz_t* target_pos, + u16 flags, s16 layer); +static void bit_cmn_single_drawS_shadow(GAME* game, bg_item_common_info_c* common_info, mActor_name_t fg_no, xyz_t* pos, + s_xyz* angle, xyz_t* scale, u8 alpha, f32 shadow_pos, rgba_t* shadow_color); +static int bIT_actor_hole_effect_entry(bg_item_hole_c* hole, mActor_name_t fg_item, xyz_t* pos, u16 frames, + u16 wait_frames, s16 mode, s16 wait_type); +static void bXI_draw_loop_type1_xtree(GRAPH* graph, Gfx** gfx_pp, bg_item_draw_list_c* draw_list, + bg_item_draw_pos_c* draw_pos, Gfx** display_list_table); + +#include "../src/bg_xmas_item_data.c_inc" +#include "../src/bg_item_clip.c_inc" +#include "../src/bg_item_common.c_inc" + +extern u16 obj_g_hole_pal[]; +extern u16 obj_b_hole_pal[]; + +static void bXI_actor_ct(ACTOR* actorx, GAME* game) { + BG_XMAS_ITEM_ACTOR* bg_item = (BG_XMAS_ITEM_ACTOR*)actorx; + bg_item_common_c* common; + bg_item_common_info_c* common_info; + int i; + int max; + int event_type; + PLAYER_ACTOR* player; + + common = &bg_item->common; + common_info = &common->common_info; + bIT_clip_ct(actorx); + mFI_InitItemTable(&common->item_table); + player = GET_PLAYER_ACTOR((GAME_PLAY*)game); + event_type = mEvMN_GetEventTypeMap(); + + if (player != NULL) { + mFI_GetItemTable(&common->item_table, player->actor_class.world.position, __FILE__, 288); + mFI_BornItemON(); + } + + for (i = 0; i < common->item_table.count; i++) { + bIT_common_clear_treeatr(common->item_table.block_info_tbl[i].block_x, + common->item_table.block_info_tbl[i].block_z, &common->block_info_table.info_tbl[i]); + + if (event_type == -1 || mEvMN_GetMapIdx(event_type) == -1) { + mFI_ClearHoleBlock(common->item_table.block_info_tbl[i].block_x, + common->item_table.block_info_tbl[i].block_z); + } + } + + for (i = 0; i < mFM_VISIBLE_BLOCK_NUM; i++) { + int j; + + common->draw_table[i].draw_data.val = bIT_DRAW_TYPE_MAX - 1; + common->draw_table[i].draw_data.idx_p = bg_item->item_idx_info[i].idx; + + for (j = 0; j < (UT_TOTAL_NUM + 1); j++) { + common->draw_table[i].draw_data.draw_pos[j]._04 = &bg_item->item_idx_info[i].info[j]; + } + + for (j = 0; j < (UT_TOTAL_NUM + 1); j++) { + int shift = ((j - 1) & 0xF) + (((j - 1) >> 4) & 0xF); + + bg_item->item_idx_info[i].info[j].v0 = shift % 3; + bg_item->item_idx_info[i].info[j].v1 = 0; + } + } + + for (i = 0; i < mFM_VISIBLE_BLOCK_NUM; i++) { + common->_139F4[i] = i; + } + + common_info->_30 = ACTOR_OBJ_BANK_BG_XMAS_ITEM; + common_info->draw_part_table_p = draw_part_table_a; + + common_info->pal_p[bIT_PAL_FLOWER_A] = g_fdinfo->field_palette.flower0_pal; + common_info->pal_p[bIT_PAL_FLOWER_B] = g_fdinfo->field_palette.flower1_pal; + common_info->pal_p[bIT_PAL_FLOWER_C] = g_fdinfo->field_palette.flower2_pal; + common_info->pal_p[bIT_PAL_GRASS] = g_fdinfo->field_palette.grass_pal; + common_info->pal_p[bIT_PAL_TREE] = g_fdinfo->field_palette.cedar_tree_pal; + common_info->pal_p[bIT_PAL_PALM_TREE] = g_fdinfo->field_palette.palm_tree_pal; + common_info->pal_p[bIT_PAL_GOLD_TREE] = g_fdinfo->field_palette.golden_tree_pal; + common_info->pal_p[bIT_PAL_HOLE_G] = obj_g_hole_pal; + common_info->pal_p[bIT_PAL_HOLE_S] = obj_b_hole_pal; + + common->bg_item_actorx_p = actorx; + + common_info->pos_table_p = pos_table; + bg_item_common_chg_BGDataR(common); + bg_item_common_construct(game, common); +} + +static void bXI_actor_dt(ACTOR* actorx, GAME* game) { + BG_XMAS_ITEM_ACTOR* bg_item = (BG_XMAS_ITEM_ACTOR*)actorx; + + bg_item_common_destruct((GAME_PLAY*)game, actorx, &bg_item->common); + bIT_clip_dt(); +} + +#include "../src/bg_xmas_item_move.c_inc" +#include "../src/bg_xmas_item_draw.c_inc" diff --git a/src/bg_xmas_item_data.c_inc b/src/bg_xmas_item_data.c_inc new file mode 100644 index 00000000..552462f2 --- /dev/null +++ b/src/bg_xmas_item_data.c_inc @@ -0,0 +1,2758 @@ +static bg_item_type_data_c typeData_table_bgXmasItem[] = { + { 0, bIT_DRAW_TYPE_NONE, NULL, NULL }, // 0x0000 + { 0, bIT_DRAW_TYPE_STUMP1, pos_table, pos_table }, // 0x0001 + { 0, bIT_DRAW_TYPE_STUMP2, pos_table, pos_table }, // 0x0002 + { 0, bIT_DRAW_TYPE_STUMP3, pos_table, pos_table }, // 0x0003 + { 0, bIT_DRAW_TYPE_STUMP4, pos_table, pos_table }, // 0x0004 + { 0, bIT_DRAW_TYPE_FENCE, pos_table2, pos_table }, // 0x0005 + { 0, bIT_DRAW_TYPE_NONE, pos_table, pos_table }, // 0x0006 + { 0, bIT_DRAW_TYPE_NOTICE, pos_table2, pos_table }, // 0x0007 + { 0, bIT_DRAW_TYPE_GRASS, pos_table, pos_table }, // 0x0008 + { 0, bIT_DRAW_TYPE_GRASS, pos_table, pos_table }, // 0x0009 + { 0, bIT_DRAW_TYPE_GRASS, pos_table, pos_table }, // 0x000A + { 0, bIT_DRAW_TYPE_NONE, pos_table, pos_table }, // 0x000B + { 0, bIT_DRAW_TYPE_MAPBOARD, pos_table2, pos_table }, // 0x000C + { 0, bIT_DRAW_TYPE_NONE, pos_table, pos_table }, // 0x000D + { 0, bIT_DRAW_TYPE_MELODY, pos_table2, pos_table }, // 0x000E + { 0, bIT_DRAW_TYPE_NONE, pos_table2, pos_table }, // 0x000F + { 0, bIT_DRAW_TYPE_FENCES, pos_table, pos_table }, // 0x0010 + { 0, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0011 + { 1, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0012 + { 2, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0013 + { 3, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0014 + { 4, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0015 + { 5, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0016 + { 6, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0017 + { 7, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0018 + { 8, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0019 + { 9, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x001A + { 10, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x001B + { 11, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x001C + { 12, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x001D + { 13, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x001E + { 14, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x001F + { 15, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0020 + { 16, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0021 + { 17, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0022 + { 18, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0023 + { 19, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0024 + { 20, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0025 + { 21, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0026 + { 22, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0027 + { 23, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0028 + { 24, bIT_DRAW_TYPE_HOLE00_G, pos_table, pos_table }, // 0x0029 + { 0, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x002A + { 1, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x002B + { 2, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x002C + { 3, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x002D + { 4, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x002E + { 5, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x002F + { 6, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0030 + { 7, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0031 + { 8, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0032 + { 9, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0033 + { 10, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0034 + { 11, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0035 + { 12, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0036 + { 13, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0037 + { 14, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0038 + { 15, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0039 + { 16, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x003A + { 17, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x003B + { 18, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x003C + { 19, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x003D + { 20, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x003E + { 21, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x003F + { 22, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0040 + { 23, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0041 + { 24, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0042 + { 0, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0043 + { 1, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0044 + { 2, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0045 + { 3, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0046 + { 4, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0047 + { 5, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0048 + { 6, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0049 + { 7, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x004A + { 8, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x004B + { 9, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x004C + { 10, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x004D + { 11, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x004E + { 12, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x004F + { 13, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0050 + { 14, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0051 + { 15, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0052 + { 16, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0053 + { 17, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0054 + { 18, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0055 + { 19, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0056 + { 20, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0057 + { 21, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0058 + { 22, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x0059 + { 23, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x005A + { 24, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, // 0x005B + { 0, bIT_DRAW_TYPE_NONE, pos_table, pos_table }, // 0x005C + { 0, bIT_DRAW_TYPE_HOLE00_SHIN_G, pos_table, pos_table }, // 0x005D + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x005E + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x005F + { 0, bIT_DRAW_TYPE_TREE4_LIGHT, pos_table, pos_table }, // 0x0060 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0061 + { 0, bIT_DRAW_TYPE_HONYCOMB, pos_table, pos_table }, // 0x0062 + { 0, bIT_DRAW_TYPE_STONE_A, pos_table, pos_table }, // 0x0063 + { 1, bIT_DRAW_TYPE_STONE_B, pos_table, pos_table }, // 0x0064 + { 2, bIT_DRAW_TYPE_STONE_C, pos_table, pos_table }, // 0x0065 + { 3, bIT_DRAW_TYPE_STONE_D, pos_table, pos_table }, // 0x0066 + { 4, bIT_DRAW_TYPE_STONE_E, pos_table, pos_table }, // 0x0067 + { 0, bIT_DRAW_TYPE_TANE, pos_table, pos_table }, // 0x0068 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0069 + { 0, bIT_DRAW_TYPE_STONE_A, pos_table, pos_table }, // 0x006A + { 1, bIT_DRAW_TYPE_STONE_B, pos_table, pos_table }, // 0x006B + { 2, bIT_DRAW_TYPE_STONE_C, pos_table, pos_table }, // 0x006C + { 3, bIT_DRAW_TYPE_STONE_D, pos_table, pos_table }, // 0x006D + { 4, bIT_DRAW_TYPE_STONE_E, pos_table, pos_table }, // 0x006E + { 0, bIT_DRAW_TYPE_NONE, pos_table, pos_table }, // 0x006F + { 0, bIT_DRAW_TYPE_PALM_STUMP001, pos_table, pos_table }, // 0x0070 + { 0, bIT_DRAW_TYPE_PALM_STUMP002, pos_table, pos_table }, // 0x0071 + { 0, bIT_DRAW_TYPE_PALM_STUMP003, pos_table, pos_table }, // 0x0072 + { 0, bIT_DRAW_TYPE_PALM_STUMP004, pos_table, pos_table }, // 0x0073 + { 0, bIT_DRAW_TYPE_CEDAR_STUMP001, pos_table, pos_table }, // 0x0074 + { 0, bIT_DRAW_TYPE_CEDAR_STUMP002, pos_table, pos_table }, // 0x0075 + { 0, bIT_DRAW_TYPE_CEDAR_STUMP003, pos_table, pos_table }, // 0x0076 + { 0, bIT_DRAW_TYPE_CEDAR_STUMP004, pos_table, pos_table }, // 0x0077 + { 0, bIT_DRAW_TYPE_CEDAR004, pos_table, pos_table }, // 0x0078 + { 0, bIT_DRAW_TYPE_CEDAR004, pos_table, pos_table }, // 0x0079 + { 0, bIT_DRAW_TYPE_CEDAR004, pos_table, pos_table }, // 0x007A + { 0, bIT_DRAW_TYPE_GOLD_TREE_STUMP001, pos_table, pos_table }, // 0x007B + { 0, bIT_DRAW_TYPE_GOLD_TREE_STUMP002, pos_table, pos_table }, // 0x007C + { 0, bIT_DRAW_TYPE_GOLD_TREE_STUMP003, pos_table, pos_table }, // 0x007D + { 0, bIT_DRAW_TYPE_GOLD_TREE_STUMP004, pos_table, pos_table }, // 0x007E + { 0, bIT_DRAW_TYPE_GOLD_TREE004, pos_table, pos_table }, // 0x007F + { 0, bIT_DRAW_TYPE_GOLD_TREE004, pos_table, pos_table }, // 0x0080 + { 0, bIT_DRAW_TYPE_GOLD_TREE004, pos_table, pos_table }, // 0x0081 + { 0, bIT_DRAW_TYPE_CEDAR004_LIGHT, pos_table, pos_table }, // 0x0082 +}; + +static bg_item_type_data_c typeData_table_bgXmasItem2[] = { + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x0800 + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0801 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0802 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0803 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0804 + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x0805 + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0806 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0807 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0808 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0809 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x080A + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x080B + { 0, bIT_DRAW_TYPE_TREE4_AP, pos_table, pos_table }, // 0x080C + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x080D + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x080E + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x080F + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0810 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0811 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0812 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0813 + { 0, bIT_DRAW_TYPE_TREE4_OR, pos_table, pos_table }, // 0x0814 + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x0815 + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0816 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0817 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0818 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0819 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x081A + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x081B + { 0, bIT_DRAW_TYPE_TREE4_PH, pos_table, pos_table }, // 0x081C + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x081D + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x081E + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x081F + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0820 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0821 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0822 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0823 + { 0, bIT_DRAW_TYPE_TREE4_PR, pos_table, pos_table }, // 0x0824 + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x0825 + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0826 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0827 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0828 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x0829 + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x082A + { 0, bIT_DRAW_TYPE_TREE4, pos_table, pos_table }, // 0x082B + { 0, bIT_DRAW_TYPE_TREE4_NT, pos_table, pos_table }, // 0x082C + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x082D + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x082E + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x082F + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0830 + { 0, bIT_DRAW_TYPE_TREE4_BG, pos_table, pos_table }, // 0x0831 + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x0832 + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0833 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0834 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0835 + { 0, bIT_DRAW_TYPE_TREE4_BG, pos_table, pos_table }, // 0x0836 + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x0837 + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0838 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0839 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x083A + { 0, bIT_DRAW_TYPE_TREE4_BG, pos_table, pos_table }, // 0x083B + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x083C + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x083D + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x083E + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x083F + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x0840 + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x0841 + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x0842 + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x0843 + { 0, bIT_DRAW_TYPE_FLOWER_LEAF, pos_table, pos_table }, // 0x0844 + { 0, bIT_DRAW_TYPE_FLOWER00, pos_table, pos_table }, // 0x0845 + { 0, bIT_DRAW_TYPE_FLOWER01, pos_table, pos_table }, // 0x0846 + { 0, bIT_DRAW_TYPE_FLOWER02, pos_table, pos_table }, // 0x0847 + { 1, bIT_DRAW_TYPE_FLOWER00, pos_table, pos_table }, // 0x0848 + { 1, bIT_DRAW_TYPE_FLOWER01, pos_table, pos_table }, // 0x0849 + { 1, bIT_DRAW_TYPE_FLOWER02, pos_table, pos_table }, // 0x084A + { 2, bIT_DRAW_TYPE_FLOWER00, pos_table, pos_table }, // 0x084B + { 2, bIT_DRAW_TYPE_FLOWER01, pos_table, pos_table }, // 0x084C + { 2, bIT_DRAW_TYPE_FLOWER02, pos_table, pos_table }, // 0x084D + { 0, bIT_DRAW_TYPE_TREE0_DEAD, pos_table, pos_table }, // 0x084E + { 0, bIT_DRAW_TYPE_TREE0, pos_table, pos_table }, // 0x084F + { 0, bIT_DRAW_TYPE_TREE1, pos_table, pos_table }, // 0x0850 + { 0, bIT_DRAW_TYPE_TREE2, pos_table, pos_table }, // 0x0851 + { 0, bIT_DRAW_TYPE_TREE3, pos_table, pos_table }, // 0x0852 + { 0, bIT_DRAW_TYPE_TREE4_BG, pos_table, pos_table }, // 0x0853 + { 0, bIT_DRAW_TYPE_PALM000, pos_table, pos_table }, // 0x0854 + { 0, bIT_DRAW_TYPE_PALM001, pos_table, pos_table }, // 0x0855 + { 0, bIT_DRAW_TYPE_PALM002, pos_table, pos_table }, // 0x0856 + { 0, bIT_DRAW_TYPE_PALM003, pos_table, pos_table }, // 0x0857 + { 0, bIT_DRAW_TYPE_PALM004, pos_table, pos_table }, // 0x0858 + { 0, bIT_DRAW_TYPE_PALM004, pos_table, pos_table }, // 0x0859 + { 0, bIT_DRAW_TYPE_PALM004, pos_table, pos_table }, // 0x085A + { 0, bIT_DRAW_TYPE_PALM004_CC, pos_table, pos_table }, // 0x085B + { 0, bIT_DRAW_TYPE_PALM000_DEAD, pos_table, pos_table }, // 0x085C + { 0, bIT_DRAW_TYPE_CEDAR000, pos_table, pos_table }, // 0x085D + { 0, bIT_DRAW_TYPE_CEDAR001, pos_table, pos_table }, // 0x085E + { 0, bIT_DRAW_TYPE_CEDAR002, pos_table, pos_table }, // 0x085F + { 0, bIT_DRAW_TYPE_CEDAR003, pos_table, pos_table }, // 0x0860 + { 0, bIT_DRAW_TYPE_CEDAR004, pos_table, pos_table }, // 0x0861 + { 0, bIT_DRAW_TYPE_CEDAR000_DEAD, pos_table, pos_table }, // 0x0862 + { 0, bIT_DRAW_TYPE_GOLD_TREE000, pos_table, pos_table }, // 0x0863 + { 0, bIT_DRAW_TYPE_GOLD_TREE001, pos_table, pos_table }, // 0x0864 + { 0, bIT_DRAW_TYPE_GOLD_TREE002, pos_table, pos_table }, // 0x0865 + { 0, bIT_DRAW_TYPE_GOLD_TREE003, pos_table, pos_table }, // 0x0866 + { 0, bIT_DRAW_TYPE_GOLD_TREE004, pos_table, pos_table }, // 0x0867 + { 0, bIT_DRAW_TYPE_GOLD_TREE004, pos_table, pos_table }, // 0x0868 + { 0, bIT_DRAW_TYPE_GOLD_TREE000_DEAD, pos_table, pos_table }, // 0x0869 +}; + +static bg_item_type_data_c typeData_table_dummy[] = { + { 0, bIT_DRAW_TYPE_FISH2, pos_table, pos_table }, +}; + +extern Gfx obj_w_tree5_leafT_mat_model[]; +extern Gfx obj_w_tree5_leafT_gfx_model[]; +extern Gfx obj_w_tree5_trunkT_mat_model[]; +extern Gfx obj_w_tree5_trunkT_gfx_model[]; +extern Gfx obj_tree5_shadowT_mat_model[]; +extern Gfx obj_tree5_shadowT_gfx_model[]; +extern Gfx obj_w_tree4_leafT_mat_model[]; +extern Gfx obj_w_tree4_leafT_gfx_model[]; +extern Gfx obj_w_tree4_trunkT_mat_model[]; +extern Gfx obj_w_tree4_trunkT_gfx_model[]; +extern Gfx obj_tree4_shadowT_mat_model[]; +extern Gfx obj_tree4_shadowT_gfx_model[]; +extern Gfx obj_w_tree3_trunkT_mat_model[]; +extern Gfx obj_w_tree3_trunkT_gfx_model[]; +extern Gfx obj_w_tree3_leafT_mat_model[]; +extern Gfx obj_w_tree3_leafT_gfx_model[]; +extern Gfx obj_tree3_shadowT_mat_model[]; +extern Gfx obj_tree3_shadowT_gfx_model[]; +extern Gfx obj_w_tree2T_mat_model[]; +extern Gfx obj_w_tree2T_gfx_model[]; +extern Gfx obj_w_tree1T_mat_model[]; +extern Gfx obj_w_tree1T_gfx_model[]; +extern Gfx apple_DL_mode[]; +extern Gfx obj_s_tree5_apple_appleT_gfx_model[]; +extern Gfx orange_DL_mode[]; +extern Gfx peach_DL_mode[]; +extern Gfx pear_DL_mode[]; +extern Gfx nuts_DL_mode[]; +extern Gfx bag_DL_mode[]; +extern Gfx obj_w_tree1_deadT_mat_model[]; +extern Gfx obj_w_tree1_deadT_gfx_model[]; +extern Gfx obj_x_tree5_lightT_mat_model[]; +extern Gfx obj_x_tree5_lightT_gfx_model[]; + +static Gfx* x_tree_DL_table[] = { + obj_w_tree5_leafT_mat_model, + obj_w_tree5_leafT_gfx_model, + obj_w_tree5_trunkT_mat_model, + obj_w_tree5_trunkT_gfx_model, + obj_tree5_shadowT_mat_model, + obj_tree5_shadowT_gfx_model, + obj_w_tree4_leafT_mat_model, + obj_w_tree4_leafT_gfx_model, + obj_w_tree4_trunkT_mat_model, + obj_w_tree4_trunkT_gfx_model, + obj_tree4_shadowT_mat_model, + obj_tree4_shadowT_gfx_model, + obj_w_tree3_trunkT_mat_model, + obj_w_tree3_trunkT_gfx_model, + obj_w_tree3_leafT_mat_model, + obj_w_tree3_leafT_gfx_model, + obj_tree3_shadowT_mat_model, + obj_tree3_shadowT_gfx_model, + obj_w_tree2T_mat_model, + obj_w_tree2T_gfx_model, + obj_w_tree1T_mat_model, + obj_w_tree1T_gfx_model, + apple_DL_mode, + obj_s_tree5_apple_appleT_gfx_model, + orange_DL_mode, + peach_DL_mode, + pear_DL_mode, + nuts_DL_mode, + bag_DL_mode, + obj_w_tree1_deadT_mat_model, + obj_w_tree1_deadT_gfx_model, + obj_x_tree5_lightT_mat_model, + obj_x_tree5_lightT_gfx_model, +}; + +static bg_item_draw_list_c x_tree0_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c x_tree0_list2 = { &bg_item_common_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c x_tree0_shadow_list = { &bg_item_common_s_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c x_tree1_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c x_tree1_list2 = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c x_tree1_shadow_list = { &bg_item_common_s_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c x_tree2_list = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c x_tree2_list2 = { &bg_item_common_draw_loop_type1, 14, 15 }; + +static bg_item_draw_list_c x_tree2_shadow_list = { &bg_item_common_s_draw_loop_type1, 16, 17 }; + +static bg_item_draw_list_c x_tree3_list = { &bg_item_common_draw_loop_type1, 18, 19 }; + +static bg_item_draw_list_c x_tree4_list = { &bg_item_common_draw_loop_type1, 20, 21 }; + +static bg_item_draw_list_c tree4_ap_list = { &bg_item_common_draw_loop_type1, 22, 23 }; + +static bg_item_draw_list_c tree4_or_list = { &bg_item_common_draw_loop_type1, 24, 23 }; + +static bg_item_draw_list_c tree4_ph_list = { &bg_item_common_draw_loop_type1, 25, 23 }; + +static bg_item_draw_list_c tree4_pr_list = { &bg_item_common_draw_loop_type1, 26, 23 }; + +static bg_item_draw_list_c tree4_nt_list = { &bg_item_common_draw_loop_type1, 27, 23 }; + +static bg_item_draw_list_c tree4_bg_list = { &bg_item_common_draw_loop_type1, 28, 23 }; + +static bg_item_draw_list_c x_tree0_dead_list = { &bg_item_common_draw_loop_type1, 29, 30 }; + +static bg_item_draw_list_c tree4_light_list = { &bXI_draw_loop_type1_xtree, 31, 32 }; + +static bg_item_draw_list_c* x_tree0_list_table[] = { + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* x_tree1_list_table[] = { + &x_tree1_list2, + &x_tree1_list, +}; + +static bg_item_draw_list_c* x_tree2_list_table[] = { + &x_tree2_list2, + &x_tree2_list, +}; + +static bg_item_draw_list_c* x_tree3_list_table[] = { + &x_tree3_list, +}; + +static bg_item_draw_list_c* x_tree4_list_table[] = { + &x_tree4_list, +}; + +static bg_item_draw_list_c* tree4_ap_list_table[] = { + &tree4_ap_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* tree4_or_list_table[] = { + &tree4_or_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* tree4_ph_list_table[] = { + &tree4_ph_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* tree4_pr_list_table[] = { + &tree4_pr_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* tree4_nt_list_table[] = { + &tree4_nt_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* tree4_bg_list_table[] = { + &tree4_bg_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static bg_item_draw_list_c* x_tree0_dead_list_table[] = { + &x_tree0_dead_list, +}; + +static bg_item_draw_list_c* tree4_light_list_table[] = { + &tree4_light_list, + &x_tree0_list2, + &x_tree0_list, +}; + +static u8 x_tree_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c x_tree4_part = { + x_tree_DL_table, 2, x_tree0_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Vtx obj_tree4_shadow_v[]; + +static bg_item_draw_part_c x_tree3_part = { + x_tree_DL_table, 2, x_tree1_list_table, 4, obj_tree4_shadow_v, 45.0f, x_tree_shadow_v_fix, &x_tree1_shadow_list, +}; + +extern Vtx obj_tree3_shadow_v[]; + +static bg_item_draw_part_c x_tree2_part = { + x_tree_DL_table, 2, x_tree2_list_table, 4, obj_tree3_shadow_v, 30.0f, x_tree_shadow_v_fix, &x_tree2_shadow_list, +}; + +static bg_item_draw_part_c x_tree1_part = { + x_tree_DL_table, 1, x_tree3_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c x_tree0_part = { + x_tree_DL_table, 1, x_tree4_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_ap_part = { + x_tree_DL_table, 3, tree4_ap_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_or_part = { + x_tree_DL_table, 3, tree4_or_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_ph_part = { + x_tree_DL_table, 3, tree4_ph_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_pr_part = { + x_tree_DL_table, 3, tree4_pr_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_nt_part = { + x_tree_DL_table, 3, tree4_nt_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_bg_part = { + x_tree_DL_table, 3, tree4_bg_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +static bg_item_draw_part_c x_tree0_dead_part = { + x_tree_DL_table, 1, x_tree0_dead_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c tree4_light_part = { + x_tree_DL_table, 3, tree4_light_list_table, 4, obj_tree5_shadow_v, 60.0f, x_tree_shadow_v_fix, &x_tree0_shadow_list, +}; + +extern Gfx obj_w_palm1T_mat_model[]; +extern Gfx obj_w_palm1T_gfx_model[]; +extern Gfx obj_w_palm1_deadT_mat_model[]; +extern Gfx obj_w_palm1_deadT_gfx_model[]; +extern Gfx obj_w_palm2T_mat_model[]; +extern Gfx obj_w_palm2T_gfx_model[]; +extern Gfx obj_w_palm3_leafT_mat_model[]; +extern Gfx obj_w_palm3_leafT_gfx_model[]; +extern Gfx obj_w_palm3_trunkT_mat_model[]; +extern Gfx obj_w_palm3_trunkT_gfx_model[]; +extern Gfx obj_w_palm4_leafT_mat_model[]; +extern Gfx obj_w_palm4_leafT_gfx_model[]; +extern Gfx obj_w_palm4_trunkT_mat_model[]; +extern Gfx obj_w_palm4_trunkT_gfx_model[]; +extern Gfx obj_w_palm5_trunkT_mat_model[]; +extern Gfx obj_w_palm5_trunkT_gfx_model[]; +extern Gfx obj_w_palm5_leafT_mat_model[]; +extern Gfx obj_w_palm5_leafT_gfx_model[]; +extern Gfx obj_item_cocoT_mat_model[]; +extern Gfx obj_w_palm5_cocoT_gfx_model[]; +extern Gfx obj_palm3_shadowT_mat_model[]; +extern Gfx obj_palm3_shadowT_gfx_model[]; +extern Gfx obj_palm4_shadowT_mat_model[]; +extern Gfx obj_palm4_shadowT_gfx_model[]; +extern Gfx obj_palm5_shadowT_mat_model[]; +extern Gfx obj_palm5_shadowT_gfx_model[]; + +static Gfx* palm_DL_table[] = { + obj_w_palm1T_mat_model, obj_w_palm1T_gfx_model, obj_w_palm1_deadT_mat_model, + obj_w_palm1_deadT_gfx_model, obj_w_palm2T_mat_model, obj_w_palm2T_gfx_model, + obj_w_palm3_leafT_mat_model, obj_w_palm3_leafT_gfx_model, obj_w_palm3_trunkT_mat_model, + obj_w_palm3_trunkT_gfx_model, obj_w_palm4_leafT_mat_model, obj_w_palm4_leafT_gfx_model, + obj_w_palm4_trunkT_mat_model, obj_w_palm4_trunkT_gfx_model, obj_w_palm5_trunkT_mat_model, + obj_w_palm5_trunkT_gfx_model, obj_w_palm5_leafT_mat_model, obj_w_palm5_leafT_gfx_model, + obj_item_cocoT_mat_model, obj_w_palm5_cocoT_gfx_model, obj_palm3_shadowT_mat_model, + obj_palm3_shadowT_gfx_model, obj_palm4_shadowT_mat_model, obj_palm4_shadowT_gfx_model, + obj_palm5_shadowT_mat_model, obj_palm5_shadowT_gfx_model, +}; + +static bg_item_draw_list_c palm1_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c palm1_dead_list = { &bg_item_common_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c palm2_list = { &bg_item_common_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c palm3_leaf_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c palm3_trunk_list = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c palm4_leaf_list = { &bg_item_common_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c palm4_trunk_list = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c palm5_leaf_list = { &bg_item_common_draw_loop_type1, 16, 17 }; + +static bg_item_draw_list_c palm5_trunk_list = { &bg_item_common_draw_loop_type1, 14, 15 }; + +static bg_item_draw_list_c palm5_coco_list = { &bg_item_common_draw_loop_type1, 18, 19 }; + +static bg_item_draw_list_c palm3_shadow_list = { &bg_item_common_s_draw_loop_type1, 20, 21 }; + +static bg_item_draw_list_c palm4_shadow_list = { &bg_item_common_s_draw_loop_type1, 22, 23 }; + +static bg_item_draw_list_c palm5_shadow_list = { &bg_item_common_s_draw_loop_type1, 24, 25 }; + +static bg_item_draw_list_c* palm1_list_table[] = { + &palm1_list, +}; + +static bg_item_draw_list_c* palm2_list_table[] = { + &palm2_list, +}; + +static bg_item_draw_list_c* palm3_list_table[] = { + &palm3_leaf_list, + &palm3_trunk_list, +}; + +static bg_item_draw_list_c* palm4_list_table[] = { + &palm4_leaf_list, + &palm4_trunk_list, +}; + +static bg_item_draw_list_c* palm5_list_table[] = { + &palm5_leaf_list, + &palm5_trunk_list, +}; + +static bg_item_draw_list_c* palm5_cc_list_table[] = { + &palm5_coco_list, + &palm5_leaf_list, + &palm5_trunk_list, +}; + +static bg_item_draw_list_c* palm1_dead_list_table[] = { + &palm1_dead_list, +}; + +static u8 palm3_shadow_v_fix[] = { + 0, + 1, + 1, + 0, +}; + +static u8 palm5_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c palm000_part = { + palm_DL_table, 1, palm1_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c palm001_part = { + palm_DL_table, 1, palm2_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_palm3_shadow_v[]; + +static bg_item_draw_part_c palm002_part = { + palm_DL_table, 2, palm3_list_table, 4, obj_palm3_shadow_v, 30.0f, palm3_shadow_v_fix, &palm3_shadow_list, +}; + +extern Vtx obj_palm4_shadow_v[]; + +static bg_item_draw_part_c palm003_part = { + palm_DL_table, 2, palm4_list_table, 4, obj_palm4_shadow_v, 45.0f, palm3_shadow_v_fix, &palm4_shadow_list, +}; + +extern Vtx obj_palm5_shadow_v[]; + +static bg_item_draw_part_c palm004_part = { + palm_DL_table, 2, palm5_list_table, 4, obj_palm5_shadow_v, 60.0f, palm5_shadow_v_fix, &palm5_shadow_list, +}; + +extern Vtx obj_palm5_shadow_v[]; + +static bg_item_draw_part_c palm004_cc_part = { + palm_DL_table, 3, palm5_cc_list_table, 4, obj_palm5_shadow_v, 60.0f, palm5_shadow_v_fix, &palm5_shadow_list, +}; + +static bg_item_draw_part_c palm000_dead_part = { + palm_DL_table, 1, palm1_dead_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_cedar3_shadowT_mat_model[]; +extern Gfx obj_cedar3_shadowT_gfx_model[]; +extern Gfx obj_cedar4_shadowT_mat_model[]; +extern Gfx obj_cedar4_shadowT_gfx_model[]; +extern Gfx obj_cedar5_shadowT_mat_model[]; +extern Gfx obj_cedar5_shadowT_gfx_model[]; +extern Gfx obj_w_cedar1T_mat_model[]; +extern Gfx obj_w_cedar1T_gfx_model[]; +extern Gfx obj_w_cedar1_deadT_mat_model[]; +extern Gfx obj_w_cedar1_deadT_gfx_model[]; +extern Gfx obj_w_cedar2T_mat_model[]; +extern Gfx obj_w_cedar2T_gfx_model[]; +extern Gfx obj_w_cedar3_leafT_mat_model[]; +extern Gfx obj_w_cedar3_leafT_gfx_model[]; +extern Gfx obj_w_cedar3_trunkT_mat_model[]; +extern Gfx obj_w_cedar3_trunkT_gfx_model[]; +extern Gfx obj_w_cedar4_trunkT_mat_model[]; +extern Gfx obj_w_cedar4_trunkT_gfx_model[]; +extern Gfx obj_w_cedar4_leafT_mat_model[]; +extern Gfx obj_w_cedar4_leafT_gfx_model[]; +extern Gfx obj_w_cedar5_leafT_mat_model[]; +extern Gfx obj_w_cedar5_leafT_gfx_model[]; +extern Gfx obj_w_cedar5_trunkT_mat_model[]; +extern Gfx obj_w_cedar5_trunkT_gfx_model[]; +extern Gfx obj_x_ceder5_lightT_mat_model[]; +extern Gfx obj_x_ceder5_lightT_gfx_model[]; + +static Gfx* Cedar_DL_table[] = { + obj_cedar3_shadowT_mat_model, obj_cedar3_shadowT_gfx_model, obj_cedar4_shadowT_mat_model, + obj_cedar4_shadowT_gfx_model, obj_cedar5_shadowT_mat_model, obj_cedar5_shadowT_gfx_model, + obj_w_cedar1T_mat_model, obj_w_cedar1T_gfx_model, obj_w_cedar1_deadT_mat_model, + obj_w_cedar1_deadT_gfx_model, obj_w_cedar2T_mat_model, obj_w_cedar2T_gfx_model, + obj_w_cedar3_leafT_mat_model, obj_w_cedar3_leafT_gfx_model, obj_w_cedar3_trunkT_mat_model, + obj_w_cedar3_trunkT_gfx_model, obj_w_cedar4_trunkT_mat_model, obj_w_cedar4_trunkT_gfx_model, + obj_w_cedar4_leafT_mat_model, obj_w_cedar4_leafT_gfx_model, obj_w_cedar5_leafT_mat_model, + obj_w_cedar5_leafT_gfx_model, obj_w_cedar5_trunkT_mat_model, obj_w_cedar5_trunkT_gfx_model, + obj_x_ceder5_lightT_mat_model, obj_x_ceder5_lightT_gfx_model, +}; + +static bg_item_draw_list_c cedar3_shadow_list = { &bg_item_common_s_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c cedar4_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; // @unused + +static bg_item_draw_list_c cedar5_shadow_list = { &bg_item_common_s_draw_loop_type1, 4, 5 }; // @unused + +static bg_item_draw_list_c cedar1_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c cedar1_dead_list = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c cedar2_list = { &bg_item_common_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c cedar3_leaf_list = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c cedar3_trunk_list = { &bg_item_common_draw_loop_type1, 14, 15 }; + +static bg_item_draw_list_c cedar4_leaf_list = { &bg_item_common_draw_loop_type1, 18, 19 }; + +static bg_item_draw_list_c cedar4_trunk_list = { &bg_item_common_draw_loop_type1, 16, 17 }; + +static bg_item_draw_list_c cedar5_leaf_list = { &bg_item_common_draw_loop_type1, 20, 21 }; + +static bg_item_draw_list_c cedar5_trunk_list = { &bg_item_common_draw_loop_type1, 22, 23 }; + +static bg_item_draw_list_c cedar5_light_list = { &bXI_draw_loop_type1_xtree, 24, 25 }; + +static bg_item_draw_list_c* cedar1_list_table[] = { + &cedar1_list, +}; + +static bg_item_draw_list_c* cedar1_dead_list_table[] = { + &cedar1_dead_list, +}; + +static bg_item_draw_list_c* cedar2_list_table[] = { + &cedar2_list, +}; + +static bg_item_draw_list_c* cedar3_list_table[] = { + &cedar3_leaf_list, + &cedar3_trunk_list, +}; + +static bg_item_draw_list_c* cedar4_list_table[] = { + &cedar4_leaf_list, + &cedar4_trunk_list, +}; + +static bg_item_draw_list_c* cedar5_list_table[] = { + &cedar5_leaf_list, + &cedar5_trunk_list, +}; + +static bg_item_draw_list_c* cedar5_light_list_table[] = { + &cedar5_light_list, + &cedar5_leaf_list, + &cedar5_trunk_list, +}; + +static u8 cedar_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c cedar000_part = { + Cedar_DL_table, 1, cedar1_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c cedar001_part = { + Cedar_DL_table, 1, cedar2_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_cedar3_shadow_v[]; + +static bg_item_draw_part_c cedar002_part = { + Cedar_DL_table, 2, cedar3_list_table, 4, obj_cedar3_shadow_v, 30.0f, cedar_shadow_v_fix, &cedar3_shadow_list, +}; + +extern Vtx obj_cedar4_shadow_v[]; + +static bg_item_draw_part_c cedar003_part = { + Cedar_DL_table, 2, cedar4_list_table, 4, obj_cedar4_shadow_v, 45.0f, cedar_shadow_v_fix, &cedar3_shadow_list, +}; + +extern Vtx obj_cedar5_shadow_v[]; + +static bg_item_draw_part_c cedar004_part = { + Cedar_DL_table, 2, cedar5_list_table, 4, obj_cedar5_shadow_v, 60.0f, cedar_shadow_v_fix, &cedar3_shadow_list, +}; + +extern Vtx obj_cedar5_shadow_v[]; + +static bg_item_draw_part_c cedar004_light_part = { + Cedar_DL_table, 3, cedar5_light_list_table, 4, obj_cedar5_shadow_v, 60.0f, cedar_shadow_v_fix, &cedar3_shadow_list, +}; + +static bg_item_draw_part_c cedar000_dead_part = { + Cedar_DL_table, 1, cedar1_dead_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_w_gold_tree1T_mat_model[]; +extern Gfx obj_w_tree1T_gfx_model[]; +extern Gfx obj_w_gold_tree1_deadT_mat_model[]; +extern Gfx obj_w_tree1_deadT_gfx_model[]; +extern Gfx obj_w_gold_tree2T_mat_model[]; +extern Gfx obj_w_tree2T_gfx_model[]; +extern Gfx obj_w_gold_tree3_leafT_mat_model[]; +extern Gfx obj_w_tree3_leafT_gfx_model[]; +extern Gfx obj_w_gold_tree3_trunkT_mat_model[]; +extern Gfx obj_w_tree3_trunkT_gfx_model[]; +extern Gfx obj_w_gold_tree4_leafT_mat_model[]; +extern Gfx obj_w_tree4_leafT_gfx_model[]; +extern Gfx obj_w_gold_tree4_trunkT_mat_model[]; +extern Gfx obj_w_tree4_trunkT_gfx_model[]; +extern Gfx obj_w_gold_tree5_leafT_mat_model[]; +extern Gfx obj_w_tree5_leafT_gfx_model[]; +extern Gfx obj_w_gold_tree5_trunkT_mat_model[]; +extern Gfx obj_w_tree5_trunkT_gfx_model[]; +extern Gfx obj_tree3_shadowT_mat_model[]; +extern Gfx obj_tree3_shadowT_gfx_model[]; +extern Gfx obj_tree4_shadowT_mat_model[]; +extern Gfx obj_tree4_shadowT_gfx_model[]; +extern Gfx obj_tree5_shadowT_mat_model[]; +extern Gfx obj_tree5_shadowT_gfx_model[]; + +static Gfx* GTree_DL_table[] = { + obj_w_gold_tree1T_mat_model, obj_w_tree1T_gfx_model, + obj_w_gold_tree1_deadT_mat_model, obj_w_tree1_deadT_gfx_model, + obj_w_gold_tree2T_mat_model, obj_w_tree2T_gfx_model, + obj_w_gold_tree3_leafT_mat_model, obj_w_tree3_leafT_gfx_model, + obj_w_gold_tree3_trunkT_mat_model, obj_w_tree3_trunkT_gfx_model, + obj_w_gold_tree4_leafT_mat_model, obj_w_tree4_leafT_gfx_model, + obj_w_gold_tree4_trunkT_mat_model, obj_w_tree4_trunkT_gfx_model, + obj_w_gold_tree5_leafT_mat_model, obj_w_tree5_leafT_gfx_model, + obj_w_gold_tree5_trunkT_mat_model, obj_w_tree5_trunkT_gfx_model, + obj_tree3_shadowT_mat_model, obj_tree3_shadowT_gfx_model, + obj_tree4_shadowT_mat_model, obj_tree4_shadowT_gfx_model, + obj_tree5_shadowT_mat_model, obj_tree5_shadowT_gfx_model, +}; + +static bg_item_draw_list_c gold_tree1_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c gold_tree1_dead_list = { &bg_item_common_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c gold_tree2_list = { &bg_item_common_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c gold_tree3_leaf_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c gold_tree3_trunk_list = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c gold_tree4_leaf_list = { &bg_item_common_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c gold_tree4_trunk_list = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c gold_tree5_leaf_list = { &bg_item_common_draw_loop_type1, 14, 15 }; + +static bg_item_draw_list_c gold_tree5_trunk_list = { &bg_item_common_draw_loop_type1, 16, 17 }; + +static bg_item_draw_list_c gold_tree3_shadow_list = { &bg_item_common_s_draw_loop_type1, 18, 19 }; + +static bg_item_draw_list_c gold_tree4_shadow_list = { &bg_item_common_s_draw_loop_type1, 20, 21 }; + +static bg_item_draw_list_c gold_tree5_shadow_list = { &bg_item_common_s_draw_loop_type1, 22, 23 }; + +static bg_item_draw_list_c* gold_tree1_list_table[] = { + &gold_tree1_list, +}; + +static bg_item_draw_list_c* gold_tree1_dead_list_table[] = { + &gold_tree1_dead_list, +}; + +static bg_item_draw_list_c* gold_tree2_list_table[] = { + &gold_tree2_list, +}; + +static bg_item_draw_list_c* gold_tree3_list_table[] = { + &gold_tree3_leaf_list, + &gold_tree3_trunk_list, +}; + +static bg_item_draw_list_c* gold_tree4_list_table[] = { + &gold_tree4_leaf_list, + &gold_tree4_trunk_list, +}; + +static bg_item_draw_list_c* gold_tree5_list_table[] = { + &gold_tree5_leaf_list, + &gold_tree5_trunk_list, +}; + +static u8 gold_tree_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c gold_tree000_part = { + GTree_DL_table, 1, gold_tree1_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c gold_tree001_part = { + GTree_DL_table, 1, gold_tree2_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_tree3_shadow_v[]; + +static bg_item_draw_part_c gold_tree002_part = { + GTree_DL_table, 2, gold_tree3_list_table, 4, + obj_tree3_shadow_v, 30.0f, gold_tree_shadow_v_fix, &gold_tree3_shadow_list, +}; + +extern Vtx obj_tree4_shadow_v[]; + +static bg_item_draw_part_c gold_tree003_part = { + GTree_DL_table, 2, gold_tree4_list_table, 4, + obj_tree4_shadow_v, 45.0f, gold_tree_shadow_v_fix, &gold_tree4_shadow_list, +}; + +extern Vtx obj_tree5_shadow_v[]; + +static bg_item_draw_part_c gold_tree004_part = { + GTree_DL_table, 2, gold_tree5_list_table, 4, + obj_tree5_shadow_v, 60.0f, gold_tree_shadow_v_fix, &gold_tree5_shadow_list, +}; + +static bg_item_draw_part_c gold_tree000_dead_part = { + GTree_DL_table, 1, gold_tree1_dead_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_stump5T_mat_model[]; +extern Gfx obj_stump5T_gfx_model[]; +extern Gfx obj_stump5_shadowT_mat_model[]; +extern Gfx obj_stump5_shadowT_gfx_model[]; +extern Gfx obj_stump4T_mat_model[]; +extern Gfx obj_stump4T_gfx_model[]; +extern Gfx obj_stump4_shadowT_mat_model[]; +extern Gfx obj_stump4_shadowT_gfx_model[]; +extern Gfx obj_stump3T_mat_model[]; +extern Gfx obj_stump3T_gfx_model[]; +extern Gfx obj_stump3_shadowT_mat_model[]; +extern Gfx obj_stump3_shadowT_gfx_model[]; +extern Gfx obj_stump2T_mat_model[]; +extern Gfx obj_stump2T_gfx_model[]; + +static Gfx* x_stump_DL_table[] = { + obj_stump5T_mat_model, obj_stump5T_gfx_model, obj_stump5_shadowT_mat_model, obj_stump5_shadowT_gfx_model, + obj_stump4T_mat_model, obj_stump4T_gfx_model, obj_stump4_shadowT_mat_model, obj_stump4_shadowT_gfx_model, + obj_stump3T_mat_model, obj_stump3T_gfx_model, obj_stump3_shadowT_mat_model, obj_stump3_shadowT_gfx_model, + obj_stump2T_mat_model, obj_stump2T_gfx_model, +}; + +static bg_item_draw_list_c x_stump_list0 = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c x_stump_shadow_list0 = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c x_stump_list1 = { &bg_item_common_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c x_stump_shadow_list1 = { &bg_item_common_s_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c x_stump_list2 = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c x_stump_shadow_list2 = { &bg_item_common_s_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c x_stump_list3 = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c* x_stump_list_table0[] = { + &x_stump_list0, +}; + +static bg_item_draw_list_c* x_stump_list_table1[] = { + &x_stump_list1, +}; + +static bg_item_draw_list_c* x_stump_list_table2[] = { + &x_stump_list2, +}; + +static bg_item_draw_list_c* x_stump_list_table3[] = { + &x_stump_list3, +}; + +static u8 x_stump_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c x_stump_part1 = { + x_stump_DL_table, 1, x_stump_list_table3, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_stump3_shadow_v[]; + +static bg_item_draw_part_c x_stump_part2 = { + x_stump_DL_table, 1, x_stump_list_table2, 4, + obj_stump3_shadow_v, 30.0f, x_stump_shadow_v_fix, &x_stump_shadow_list2, +}; + +extern Vtx obj_stump4_shadow_v[]; + +static bg_item_draw_part_c x_stump_part3 = { + x_stump_DL_table, 1, x_stump_list_table1, 4, + obj_stump4_shadow_v, 45.0f, x_stump_shadow_v_fix, &x_stump_shadow_list1, +}; + +extern Vtx obj_stump5_shadow_v[]; + +static bg_item_draw_part_c x_stump_part4 = { + x_stump_DL_table, 1, x_stump_list_table0, 4, + obj_stump5_shadow_v, 50.0f, x_stump_shadow_v_fix, &x_stump_shadow_list0, +}; + +extern Gfx obj_pstump3_shadowT_mat_model[]; +extern Gfx obj_pstump3_shadowT_gfx_model[]; +extern Gfx obj_pstump4_shadowT_mat_model[]; +extern Gfx obj_pstump4_shadowT_gfx_model[]; +extern Gfx obj_pstump5_shadowT_mat_model[]; +extern Gfx obj_pstump5_shadowT_gfx_model[]; +extern Gfx obj_w_pstump2T_mat_model[]; +extern Gfx obj_w_pstump2T_gfx_model[]; +extern Gfx obj_w_pstump3T_mat_model[]; +extern Gfx obj_w_pstump3T_gfx_model[]; +extern Gfx obj_w_pstump4T_mat_model[]; +extern Gfx obj_w_pstump4T_gfx_model[]; +extern Gfx obj_w_spstump5T_mat_model[]; +extern Gfx obj_w_spstump5T_gfx_model[]; + +static Gfx* palm_stump_DL_table[] = { + obj_pstump3_shadowT_mat_model, obj_pstump3_shadowT_gfx_model, obj_pstump4_shadowT_mat_model, + obj_pstump4_shadowT_gfx_model, obj_pstump5_shadowT_mat_model, obj_pstump5_shadowT_gfx_model, + obj_w_pstump2T_mat_model, obj_w_pstump2T_gfx_model, obj_w_pstump3T_mat_model, + obj_w_pstump3T_gfx_model, obj_w_pstump4T_mat_model, obj_w_pstump4T_gfx_model, + obj_w_spstump5T_mat_model, obj_w_spstump5T_gfx_model, +}; + +static bg_item_draw_list_c pstump3_shadow_list = { &bg_item_common_s_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c pstump4_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c pstump5_shadow_list = { &bg_item_common_s_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c pstump2_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c pstump3_list = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c pstump4_list = { &bg_item_common_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c pstump5_list = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c* pstump2_list_table[] = { + &pstump2_list, +}; + +static bg_item_draw_list_c* pstump3_list_table[] = { + &pstump3_list, +}; + +static bg_item_draw_list_c* pstump4_list_table[] = { + &pstump4_list, +}; + +static bg_item_draw_list_c* pstump5_list_table[] = { + &pstump5_list, +}; + +static u8 pstump3_shadow_v_fix[] = { + 0, + 1, + 1, + 0, +}; + +static u8 pstump5_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c palm_stump001_part = { + palm_stump_DL_table, 1, pstump2_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_pstump3_shadow_v[]; + +static bg_item_draw_part_c palm_stump002_part = { + palm_stump_DL_table, 1, pstump3_list_table, 4, + obj_pstump3_shadow_v, 30.0f, pstump3_shadow_v_fix, &pstump3_shadow_list, +}; + +extern Vtx obj_pstump4_shadow_v[]; + +static bg_item_draw_part_c palm_stump003_part = { + palm_stump_DL_table, 1, pstump4_list_table, 4, + obj_pstump4_shadow_v, 45.0f, pstump3_shadow_v_fix, &pstump4_shadow_list, +}; + +extern Vtx obj_pstump5_shadow_v[]; + +static bg_item_draw_part_c palm_stump004_part = { + palm_stump_DL_table, 1, pstump5_list_table, 4, + obj_pstump5_shadow_v, 50.0f, pstump5_shadow_v_fix, &pstump5_shadow_list, +}; + +extern Gfx obj_cstump3_shadowT_mat_model[]; +extern Gfx obj_cstump3_shadowT_gfx_model[]; +extern Gfx obj_cstump4_shadowT_mat_model[]; +extern Gfx obj_cstump4_shadowT_gfx_model[]; +extern Gfx obj_cstump5_shadowT_mat_model[]; +extern Gfx obj_cstump5_shadowT_gfx_model[]; +extern Gfx obj_w_cstump2T_mat_model[]; +extern Gfx obj_w_cstump2T_gfx_model[]; +extern Gfx obj_w_cstump3T_mat_model[]; +extern Gfx obj_w_cstump3T_gfx_model[]; +extern Gfx obj_w_cstump4T_mat_model[]; +extern Gfx obj_w_cstump4T_gfx_model[]; +extern Gfx obj_w_cstump5T_mat_model[]; +extern Gfx obj_w_cstump5T_gfx_model[]; + +static Gfx* CedarStump_DL_table[] = { + obj_cstump3_shadowT_mat_model, obj_cstump3_shadowT_gfx_model, obj_cstump4_shadowT_mat_model, + obj_cstump4_shadowT_gfx_model, obj_cstump5_shadowT_mat_model, obj_cstump5_shadowT_gfx_model, + obj_w_cstump2T_mat_model, obj_w_cstump2T_gfx_model, obj_w_cstump3T_mat_model, + obj_w_cstump3T_gfx_model, obj_w_cstump4T_mat_model, obj_w_cstump4T_gfx_model, + obj_w_cstump5T_mat_model, obj_w_cstump5T_gfx_model, +}; + +static bg_item_draw_list_c cstump3_shadow_list = { &bg_item_common_s_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c cstump4_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c cstump5_shadow_list = { &bg_item_common_s_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c cstump2_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c cstump3_list = { &bg_item_common_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c cstump4_list = { &bg_item_common_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c cstump5_list = { &bg_item_common_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c* cstump2_list_table[] = { + &cstump2_list, +}; + +static bg_item_draw_list_c* cstump3_list_table[] = { + &cstump3_list, +}; + +static bg_item_draw_list_c* cstump4_list_table[] = { + &cstump4_list, +}; + +static bg_item_draw_list_c* cstump5_list_table[] = { + &cstump5_list, +}; + +static u8 cstump_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c cedar_stump001_part = { + CedarStump_DL_table, 1, cstump2_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_cstump3_shadow_v[]; + +static bg_item_draw_part_c cedar_stump002_part = { + CedarStump_DL_table, 1, cstump3_list_table, 4, + obj_cstump3_shadow_v, 30.0f, cstump_shadow_v_fix, &cstump3_shadow_list, +}; + +extern Vtx obj_cstump4_shadow_v[]; + +static bg_item_draw_part_c cedar_stump003_part = { + CedarStump_DL_table, 1, cstump4_list_table, 4, + obj_cstump4_shadow_v, 45.0f, cstump_shadow_v_fix, &cstump4_shadow_list, +}; + +extern Vtx obj_cstump5_shadow_v[]; + +static bg_item_draw_part_c cedar_stump004_part = { + CedarStump_DL_table, 1, cstump5_list_table, 4, + obj_cstump5_shadow_v, 50.0f, cstump_shadow_v_fix, &cstump5_shadow_list, +}; + +extern Gfx obj_gold_stump2T_mat_model[]; +extern Gfx obj_stump2T_gfx_model[]; +extern Gfx obj_gold_stump3T_mat_model[]; +extern Gfx obj_stump3T_gfx_model[]; +extern Gfx obj_gold_stump4T_mat_model[]; +extern Gfx obj_stump4T_gfx_model[]; +extern Gfx obj_gold_stump5T_mat_model[]; +extern Gfx obj_stump5T_gfx_model[]; +extern Gfx obj_stump3_shadowT_mat_model[]; +extern Gfx obj_stump3_shadowT_gfx_model[]; +extern Gfx obj_stump4_shadowT_mat_model[]; +extern Gfx obj_stump4_shadowT_gfx_model[]; +extern Gfx obj_stump5_shadowT_mat_model[]; +extern Gfx obj_stump5_shadowT_gfx_model[]; + +static Gfx* GStump_DL_table[] = { + obj_gold_stump2T_mat_model, obj_stump2T_gfx_model, obj_gold_stump3T_mat_model, + obj_stump3T_gfx_model, obj_gold_stump4T_mat_model, obj_stump4T_gfx_model, + obj_gold_stump5T_mat_model, obj_stump5T_gfx_model, obj_stump3_shadowT_mat_model, + obj_stump3_shadowT_gfx_model, obj_stump4_shadowT_mat_model, obj_stump4_shadowT_gfx_model, + obj_stump5_shadowT_mat_model, obj_stump5_shadowT_gfx_model, +}; + +static bg_item_draw_list_c gold_stump2_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c gold_stump3_list = { &bg_item_common_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c gold_stump4_list = { &bg_item_common_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c gold_stump5_list = { &bg_item_common_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c gold_stump3_shadow_list = { &bg_item_common_s_draw_loop_type1, 8, 9 }; + +static bg_item_draw_list_c gold_stump4_shadow_list = { &bg_item_common_s_draw_loop_type1, 10, 11 }; + +static bg_item_draw_list_c gold_stump5_shadow_list = { &bg_item_common_s_draw_loop_type1, 12, 13 }; + +static bg_item_draw_list_c* gold_stump2_list_table[] = { + &gold_stump2_list, +}; + +static bg_item_draw_list_c* gold_stump3_list_table[] = { + &gold_stump3_list, +}; + +static bg_item_draw_list_c* gold_stump4_list_table[] = { + &gold_stump4_list, +}; + +static bg_item_draw_list_c* gold_stump5_list_table[] = { + &gold_stump5_list, +}; + +static u8 gold_stump_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +static bg_item_draw_part_c gold_tree_stump001_part = { + GStump_DL_table, 1, gold_stump2_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Vtx obj_stump3_shadow_v[]; + +static bg_item_draw_part_c gold_tree_stump002_part = { + GStump_DL_table, 1, gold_stump3_list_table, 4, + obj_stump3_shadow_v, 30.0f, gold_stump_shadow_v_fix, &gold_stump3_shadow_list, +}; + +extern Vtx obj_stump4_shadow_v[]; + +static bg_item_draw_part_c gold_tree_stump003_part = { + GStump_DL_table, 1, gold_stump4_list_table, 4, + obj_stump4_shadow_v, 45.0f, gold_stump_shadow_v_fix, &gold_stump4_shadow_list, +}; + +extern Vtx obj_stump5_shadow_v[]; + +static bg_item_draw_part_c gold_tree_stump004_part = { + GStump_DL_table, 1, gold_stump5_list_table, 4, + obj_stump5_shadow_v, 50.0f, gold_stump_shadow_v_fix, &gold_stump5_shadow_list, +}; + +extern Gfx obj_w_fenceLT_mat_model[]; +extern Gfx obj_w_fenceLT_gfx_model[]; +extern Gfx obj_fenceL_shadowT_mat_model[]; +extern Gfx obj_fenceL_shadowT_gfx_model[]; + +static Gfx* x_fence_DL_table[] = { + obj_w_fenceLT_mat_model, + obj_w_fenceLT_gfx_model, + obj_fenceL_shadowT_mat_model, + obj_fenceL_shadowT_gfx_model, +}; + +static bg_item_draw_list_c x_fence_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* x_fence_list_table[] = { + &x_fence_list, +}; + +static bg_item_draw_list_c x_fence_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static u8 x_fence_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +extern Vtx obj_fenceL_shadow_v[]; + +static bg_item_draw_part_c x_fence_part = { + x_fence_DL_table, 1, x_fence_list_table, 4, obj_fenceL_shadow_v, 40.0f, x_fence_shadow_v_fix, &x_fence_shadow_list, +}; + +extern Gfx obj_w_noticeT_mat_model[]; +extern Gfx obj_w_noticeT_gfx_model[]; +extern Gfx obj_notice_shadowT_mat_model[]; +extern Gfx obj_notice_shadowT_gfx_model[]; + +static Gfx* x_notice_DL_table[] = { + obj_w_noticeT_mat_model, + obj_w_noticeT_gfx_model, + obj_notice_shadowT_mat_model, + obj_notice_shadowT_gfx_model, +}; + +static bg_item_draw_list_c x_notice_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* x_notice_list_table[] = { + &x_notice_list, +}; + +static bg_item_draw_list_c x_notice_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static u8 x_notice_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +extern Vtx obj_notice_shadow_v[]; + +static bg_item_draw_part_c x_notice_part = { + x_notice_DL_table, 1, x_notice_list_table, 4, + obj_notice_shadow_v, 60.0f, x_notice_shadow_v_fix, &x_notice_shadow_list, +}; + +extern Gfx obj_zassou_aT_mat_model[]; +extern Gfx obj_zassou_aT_gfx_model[]; +extern Gfx obj_zassou_bT_gfx_model[]; +extern Gfx obj_zassou_cT_gfx_model[]; + +static Gfx* grass_DL_table[] = { + obj_zassou_aT_mat_model, + obj_zassou_aT_gfx_model, + obj_zassou_bT_gfx_model, + obj_zassou_cT_gfx_model, +}; + +static bg_item_draw_list_c grass_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* grass_list_table[] = { + &grass_list, +}; + +static bg_item_draw_part_c x_grass_part = { + grass_DL_table, 1, grass_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_w_melodyT_mat_model[]; +extern Gfx obj_w_melodyT_gfx_model[]; +extern Gfx obj_melody_shadowT_mat_model[]; +extern Gfx obj_melody_shadowT_gfx_model[]; + +static Gfx* x_melody_DL_table[] = { + obj_w_melodyT_mat_model, + obj_w_melodyT_gfx_model, + obj_melody_shadowT_mat_model, + obj_melody_shadowT_gfx_model, +}; + +static bg_item_draw_list_c x_melody_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* x_melody_list_table[] = { + &x_melody_list, +}; + +static bg_item_draw_list_c x_melody_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static u8 x_melody_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +extern Vtx obj_melody_shadow_v[]; + +static bg_item_draw_part_c x_melody_part = { + x_melody_DL_table, 1, x_melody_list_table, 4, + obj_melody_shadow_v, 60.0f, x_melody_shadow_v_fix, &x_melody_shadow_list, +}; + +extern Gfx obj_w_fenceST_mat_model[]; +extern Gfx obj_w_fenceST_gfx_model[]; +extern Gfx obj_fenceS_shadowT_mat_model[]; +extern Gfx obj_fenceS_shadowT_gfx_model[]; + +static Gfx* x_fences_DL_table[] = { + obj_w_fenceST_mat_model, + obj_w_fenceST_gfx_model, + obj_fenceS_shadowT_mat_model, + obj_fenceS_shadowT_gfx_model, +}; + +static bg_item_draw_list_c x_fences_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* x_fences_list_table[] = { + &x_fences_list, +}; + +static bg_item_draw_list_c x_fences_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static u8 x_fences_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +extern Vtx obj_fenceS_shadow_v[]; + +static bg_item_draw_part_c x_fences_part = { + x_fences_DL_table, 1, x_fences_list_table, 4, + obj_fenceS_shadow_v, 40.0f, x_fences_shadow_v_fix, &x_fences_shadow_list, +}; + +extern Gfx obj_hole0T_g_mat_model[]; +extern Gfx obj_hole0T_s_mat_model[]; +extern Gfx obj_hole0T_gfx_model[]; +extern Gfx obj_hole1T_gfx_model[]; +extern Gfx obj_hole2T_gfx_model[]; +extern Gfx obj_hole3T_gfx_model[]; +extern Gfx obj_hole4T_gfx_model[]; +extern Gfx obj_hole5T_gfx_model[]; +extern Gfx obj_hole6T_gfx_model[]; +extern Gfx obj_hole7T_gfx_model[]; +extern Gfx obj_hole8T_gfx_model[]; +extern Gfx obj_hole9T_gfx_model[]; +extern Gfx obj_hole10T_gfx_model[]; +extern Gfx obj_hole11T_gfx_model[]; +extern Gfx obj_hole12T_gfx_model[]; +extern Gfx obj_hole13T_gfx_model[]; +extern Gfx obj_hole14T_gfx_model[]; +extern Gfx obj_hole15T_gfx_model[]; +extern Gfx obj_hole16T_gfx_model[]; +extern Gfx obj_hole17T_gfx_model[]; +extern Gfx obj_hole18T_gfx_model[]; +extern Gfx obj_hole19T_gfx_model[]; +extern Gfx obj_hole20T_gfx_model[]; +extern Gfx obj_hole21T_gfx_model[]; +extern Gfx obj_hole22T_gfx_model[]; +extern Gfx obj_hole23T_gfx_model[]; +extern Gfx obj_hole24T_gfx_model[]; + +static Gfx* hole_DL_table[] = { + obj_hole0T_g_mat_model, obj_hole0T_s_mat_model, obj_hole0T_gfx_model, obj_hole1T_gfx_model, obj_hole2T_gfx_model, + obj_hole3T_gfx_model, obj_hole4T_gfx_model, obj_hole5T_gfx_model, obj_hole6T_gfx_model, obj_hole7T_gfx_model, + obj_hole8T_gfx_model, obj_hole9T_gfx_model, obj_hole10T_gfx_model, obj_hole11T_gfx_model, obj_hole12T_gfx_model, + obj_hole13T_gfx_model, obj_hole14T_gfx_model, obj_hole15T_gfx_model, obj_hole16T_gfx_model, obj_hole17T_gfx_model, + obj_hole18T_gfx_model, obj_hole19T_gfx_model, obj_hole20T_gfx_model, obj_hole21T_gfx_model, obj_hole22T_gfx_model, + obj_hole23T_gfx_model, obj_hole24T_gfx_model, +}; + +static bg_item_draw_list_c hole00_g_list = { &bg_item_common_draw_loop_type1, 0, 2 }; + +static bg_item_draw_list_c* hole00_g_list_table[] = { + &hole00_g_list, +}; + +static bg_item_draw_part_c hole00_g_part = { + hole_DL_table, 1, hole00_g_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_list_c hole00_s_list = { &bg_item_common_draw_loop_type1, 1, 2 }; + +static bg_item_draw_list_c* hole00_s_list_table[] = { + &hole00_s_list, +}; + +static bg_item_draw_part_c hole00_s_part = { + hole_DL_table, 1, hole00_s_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_crack0T_g_mat_model[]; +extern Gfx obj_crack0T_s_mat_model[]; +extern Gfx obj_hole0T_gfx_model[]; +extern Gfx obj_hole1T_gfx_model[]; +extern Gfx obj_hole2T_gfx_model[]; +extern Gfx obj_hole3T_gfx_model[]; +extern Gfx obj_hole4T_gfx_model[]; +extern Gfx obj_hole5T_gfx_model[]; +extern Gfx obj_hole6T_gfx_model[]; +extern Gfx obj_hole7T_gfx_model[]; +extern Gfx obj_hole8T_gfx_model[]; +extern Gfx obj_hole9T_gfx_model[]; +extern Gfx obj_hole10T_gfx_model[]; +extern Gfx obj_hole11T_gfx_model[]; +extern Gfx obj_hole12T_gfx_model[]; +extern Gfx obj_hole13T_gfx_model[]; +extern Gfx obj_hole14T_gfx_model[]; +extern Gfx obj_hole15T_gfx_model[]; +extern Gfx obj_hole16T_gfx_model[]; +extern Gfx obj_hole17T_gfx_model[]; +extern Gfx obj_hole18T_gfx_model[]; +extern Gfx obj_hole19T_gfx_model[]; +extern Gfx obj_hole20T_gfx_model[]; +extern Gfx obj_hole21T_gfx_model[]; +extern Gfx obj_hole22T_gfx_model[]; +extern Gfx obj_hole23T_gfx_model[]; +extern Gfx obj_hole24T_gfx_model[]; + +static Gfx* crack_DL_table[] = { + obj_crack0T_g_mat_model, obj_crack0T_s_mat_model, obj_hole0T_gfx_model, obj_hole1T_gfx_model, + obj_hole2T_gfx_model, obj_hole3T_gfx_model, obj_hole4T_gfx_model, obj_hole5T_gfx_model, + obj_hole6T_gfx_model, obj_hole7T_gfx_model, obj_hole8T_gfx_model, obj_hole9T_gfx_model, + obj_hole10T_gfx_model, obj_hole11T_gfx_model, obj_hole12T_gfx_model, obj_hole13T_gfx_model, + obj_hole14T_gfx_model, obj_hole15T_gfx_model, obj_hole16T_gfx_model, obj_hole17T_gfx_model, + obj_hole18T_gfx_model, obj_hole19T_gfx_model, obj_hole20T_gfx_model, obj_hole21T_gfx_model, + obj_hole22T_gfx_model, obj_hole23T_gfx_model, obj_hole24T_gfx_model, +}; + +static bg_item_draw_list_c crack00_g_list = { &bg_item_common_draw_loop_type1, 0, 2 }; + +static bg_item_draw_list_c* crack00_g_list_table[] = { + &crack00_g_list, +}; + +static bg_item_draw_part_c crack00_g_part = { + crack_DL_table, 1, crack00_g_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_list_c crack00_s_list = { &bg_item_common_draw_loop_type1, 1, 2 }; + +static bg_item_draw_list_c* crack00_s_list_table[] = { + &crack00_s_list, +}; + +static bg_item_draw_part_c crack00_s_part = { + crack_DL_table, 1, crack00_s_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_w_sightmapT_mat_model[]; +extern Gfx obj_w_sightmapT_gfx_model[]; +extern Gfx obj_sightmap_shadowT_mat_model[]; +extern Gfx obj_sightmap_shadowT_gfx_model[]; + +static Gfx* x_mapboard_DL_table[] = { + obj_w_sightmapT_mat_model, + obj_w_sightmapT_gfx_model, + obj_sightmap_shadowT_mat_model, + obj_sightmap_shadowT_gfx_model, +}; + +static bg_item_draw_list_c x_mapboard_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* x_mapboard_list_table[] = { + &x_mapboard_list, +}; + +static bg_item_draw_list_c x_mapboard_shadow_list = { &bg_item_common_s_draw_loop_type1, 2, 3 }; + +static u8 x_mapboard_shadow_v_fix[] = { + 1, + 0, + 0, + 1, +}; + +extern Vtx obj_sightmap_shadow_v[]; + +static bg_item_draw_part_c x_mapboard_part = { + x_mapboard_DL_table, 1, x_mapboard_list_table, 4, + obj_sightmap_shadow_v, 60.0f, x_mapboard_shadow_v_fix, &x_mapboard_shadow_list, +}; + +extern Gfx obj_flower_leafT_mat_model[]; +extern Gfx obj_flower_leafT_gfx_model[]; + +static Gfx* x_flower_DL_table[] = { + obj_flower_leafT_mat_model, + obj_flower_leafT_gfx_model, +}; + +static bg_item_draw_list_c x_flower_leaf_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* x_flower_leaf_list_table[] = { + &x_flower_leaf_list, +}; + +static bg_item_draw_part_c x_flower_part = { + x_flower_DL_table, 1, x_flower_leaf_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_flower_aT_mat_model[]; +extern Gfx obj_flower_bT_mat_model[]; +extern Gfx obj_flower_cT_mat_model[]; +extern Gfx obj_flower_aT_gfx_model[]; +extern Gfx obj_flower_bT_gfx_model[]; +extern Gfx obj_flower_cT_gfx_model[]; + +static Gfx* flower_DL_table[] = { + obj_flower_aT_mat_model, obj_flower_bT_mat_model, obj_flower_cT_mat_model, + obj_flower_aT_gfx_model, obj_flower_bT_gfx_model, obj_flower_cT_gfx_model, +}; + +static bg_item_draw_list_c x_flower_list00 = { &bg_item_common_draw_loop_type1, 0, 3 }; + +static bg_item_draw_list_c x_flower_list01 = { &bg_item_common_draw_loop_type1, 1, 3 }; + +static bg_item_draw_list_c x_flower_list02 = { &bg_item_common_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c* x_flower_list_table00[] = { + &x_flower_list00, +}; + +static bg_item_draw_list_c* x_flower_list_table01[] = { + &x_flower_list01, +}; + +static bg_item_draw_list_c* x_flower_list_table02[] = { + &x_flower_list02, +}; + +static bg_item_draw_part_c x_flower_part00 = { + flower_DL_table, 1, x_flower_list_table00, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c x_flower_part01 = { + flower_DL_table, 1, x_flower_list_table01, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c x_flower_part02 = { + flower_DL_table, 1, x_flower_list_table02, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_x_honeycombT_mat_model[]; +extern Gfx obj_x_honeycombT_gfx_model[]; + +static Gfx* honycomb_DL_table[] = { + obj_x_honeycombT_mat_model, + obj_x_honeycombT_gfx_model, +}; + +static bg_item_draw_list_c honycomb_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* honycomb_list_table[] = { + &honycomb_list, +}; + +static bg_item_draw_part_c honycomb_part = { + honycomb_DL_table, 1, honycomb_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static u8 stone_a_shadow_v_fix[] = { + 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, +}; + +static u8 stone_b_shadow_v_fix[] = { + 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, +}; + +static u8 stone_c_shadow_v_fix[] = { + 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, +}; + +static u8 stone_d_shadow_v_fix[] = { + 1, 0, 0, 1, 1, 0, 0, 1, +}; + +static u8 stone_e_shadow_v_fix[] = { + 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, +}; + +extern Gfx obj_w_stoneA_mat_model[]; +extern Gfx obj_w_stoneA_gfx_model[]; +extern Gfx obj_w_stoneB_gfx_model[]; +extern Gfx obj_w_stoneC_gfx_model[]; +extern Gfx obj_w_stoneD_gfx_model[]; +extern Gfx obj_w_stoneE_gfx_model[]; +extern Gfx obj_stoneA_shadowT_mat_model[]; +extern Gfx obj_stoneA_shadowT_gfx_model[]; +extern Gfx obj_stoneB_shadowT_gfx_model[]; +extern Gfx obj_stoneC_shadowT_gfx_model[]; +extern Gfx obj_stoneD_shadowT_gfx_model[]; +extern Gfx obj_stoneE_shadowT_gfx_model[]; + +static Gfx* stone_DL_table[] = { + obj_w_stoneA_mat_model, obj_w_stoneA_gfx_model, obj_w_stoneB_gfx_model, + obj_w_stoneC_gfx_model, obj_w_stoneD_gfx_model, obj_w_stoneE_gfx_model, + obj_stoneA_shadowT_mat_model, obj_stoneA_shadowT_gfx_model, obj_stoneB_shadowT_gfx_model, + obj_stoneC_shadowT_gfx_model, obj_stoneD_shadowT_gfx_model, obj_stoneE_shadowT_gfx_model, +}; + +static bg_item_draw_list_c stone_a_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c stone_a_shadow_list = { &bg_item_common_s_draw_loop_type1, 6, 7 }; + +static bg_item_draw_list_c* stone_a_list_table[] = { + &stone_a_list, +}; + +extern Vtx obj_stoneA_shadow_v[]; + +static bg_item_draw_part_c stone_a_part = { + stone_DL_table, 1, stone_a_list_table, 10, obj_stoneA_shadow_v, 30.0f, stone_a_shadow_v_fix, &stone_a_shadow_list, +}; + +extern Vtx obj_stoneB_shadow_v[]; + +static bg_item_draw_part_c stone_b_part = { + stone_DL_table, 1, stone_a_list_table, 12, obj_stoneB_shadow_v, 20.0f, stone_b_shadow_v_fix, &stone_a_shadow_list, +}; + +extern Vtx obj_stoneC_shadow_v[]; + +static bg_item_draw_part_c stone_c_part = { + stone_DL_table, 1, stone_a_list_table, 12, obj_stoneC_shadow_v, 20.0f, stone_c_shadow_v_fix, &stone_a_shadow_list, +}; + +extern Vtx obj_stoneD_shadow_v[]; + +static bg_item_draw_part_c stone_d_part = { + stone_DL_table, 1, stone_a_list_table, 8, obj_stoneD_shadow_v, 20.0f, stone_d_shadow_v_fix, &stone_a_shadow_list, +}; + +extern Vtx obj_stoneE_shadow_v[]; + +static bg_item_draw_part_c stone_e_part = { + stone_DL_table, 1, stone_a_list_table, 10, obj_stoneE_shadow_v, 20.0f, stone_e_shadow_v_fix, &stone_a_shadow_list, +}; + +extern Gfx obj_taneT_mat_model[]; +extern Gfx obj_taneT_gfx_model[]; + +static Gfx* tane_DL_table[] = { + obj_taneT_mat_model, + obj_taneT_gfx_model, +}; + +static bg_item_draw_list_c tane_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* tane_list_table[] = { + &tane_list, +}; + +static bg_item_draw_part_c tane_part = { + tane_DL_table, 1, tane_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_type_data_c typeData_table_item1[] = { + { 0, bIT_DRAW_TYPE_APPLE, pos_table, pos_table }, // 2XXX +}; + +static bg_item_type_data_c typeData_table_ftr[] = { + { 0, bIT_DRAW_TYPE_LEAF, pos_table, pos_table }, // 1XXX, 3XXX +}; + +static bg_item_type_data_c typeData_table_crack[] = { + { 0, bIT_DRAW_TYPE_CRACK00_G, pos_table, pos_table }, +}; + +extern Gfx apple_DL_mode[]; +extern Gfx apple_DL_vtx[]; + +static Gfx* apple_DL_table[] = { + apple_DL_mode, + apple_DL_vtx, +}; + +static bg_item_draw_list_c apple_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* apple_list_table[] = { + &apple_list, +}; + +static bg_item_draw_part_c apple_part = { + apple_DL_table, 1, apple_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx orange_DL_mode[]; +extern Gfx orange_DL_vtx[]; + +static Gfx* orange_DL_table[] = { + orange_DL_mode, + orange_DL_vtx, +}; + +static bg_item_draw_list_c orange_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* orange_list_table[] = { + &orange_list, +}; + +static bg_item_draw_part_c orange_part = { + orange_DL_table, 1, orange_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx peach_DL_mode[]; +extern Gfx peach_DL_vtx[]; + +static Gfx* peach_DL_table[] = { + peach_DL_mode, + peach_DL_vtx, +}; + +static bg_item_draw_list_c peach_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* peach_list_table[] = { + &peach_list, +}; + +static bg_item_draw_part_c peach_part = { + peach_DL_table, 1, peach_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx pear_DL_mode[]; +extern Gfx pear_DL_vtx[]; + +static Gfx* pear_DL_table[] = { + pear_DL_mode, + pear_DL_vtx, +}; + +static bg_item_draw_list_c pear_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* pear_list_table[] = { + &pear_list, +}; + +static bg_item_draw_part_c pear_part = { + pear_DL_table, 1, pear_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx nuts_DL_mode[]; +extern Gfx nuts_DL_vtx[]; + +static Gfx* nuts_DL_table[] = { + nuts_DL_mode, + nuts_DL_vtx, +}; + +static bg_item_draw_list_c nuts_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* nuts_list_table[] = { + &nuts_list, +}; + +static bg_item_draw_part_c nuts_part = { + nuts_DL_table, 1, nuts_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx matutake_DL_mode[]; +extern Gfx matutake_DL_vtx[]; + +static Gfx* matutake_DL_table[] = { + matutake_DL_mode, + matutake_DL_vtx, +}; + +static bg_item_draw_list_c matutake_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* matutake_list_table[] = { + &matutake_list, +}; + +static bg_item_draw_part_c matutake_part = { + matutake_DL_table, 1, matutake_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx kabu_DL_mode[]; +extern Gfx kabu_DL_vtx[]; + +static Gfx* kabu_DL_table[] = { + kabu_DL_mode, + kabu_DL_vtx, +}; + +static bg_item_draw_list_c kabu_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* kabu_list_table[] = { + &kabu_list, +}; + +static bg_item_draw_part_c kabu_part = { + kabu_DL_table, 1, kabu_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx fish_DL_mode[]; +extern Gfx fish_DL_vtx[]; + +static Gfx* fish_DL_table[] = { + fish_DL_mode, + fish_DL_vtx, +}; + +static bg_item_draw_list_c fish_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* fish_list_table[] = { + &fish_list, +}; + +static bg_item_draw_part_c fish_part = { + fish_DL_table, 1, fish_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx bag_DL_mode[]; +extern Gfx bag_DL_vtx[]; + +static Gfx* bag_DL_table[] = { + bag_DL_mode, + bag_DL_vtx, +}; + +static bg_item_draw_list_c bag_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* bag_list_table[] = { + &bag_list, +}; + +static bg_item_draw_part_c bag_part = { + bag_DL_table, 1, bag_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx leaf_DL_mode[]; +extern Gfx leaf_DL_vtx[]; + +static Gfx* leaf_DL_table[] = { + leaf_DL_mode, + leaf_DL_vtx, +}; + +static bg_item_draw_list_c leaf_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* leaf_list_table[] = { + &leaf_list, +}; + +static bg_item_draw_part_c leaf_part = { + leaf_DL_table, 1, leaf_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_rollT_mat_model[]; +extern Gfx obj_rollT_gfx_model[]; + +static Gfx* roll_DL_table[] = { + obj_rollT_mat_model, + obj_rollT_gfx_model, +}; + +static bg_item_draw_list_c roll_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* roll_list_table[] = { + &roll_list, +}; + +static bg_item_draw_part_c roll_part = { + roll_DL_table, 1, roll_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx box_DL_mode[]; +extern Gfx box_DL_vtx[]; + +static Gfx* box_DL_table[] = { + box_DL_mode, + box_DL_vtx, +}; + +static bg_item_draw_list_c box_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* box_list_table[] = { + &box_list, +}; + +static bg_item_draw_part_c box_part = { + box_DL_table, 1, box_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx pack_DL_mode[]; +extern Gfx pack_DL_vtx[]; + +static Gfx* pack_DL_table[] = { + pack_DL_mode, + pack_DL_vtx, +}; + +static bg_item_draw_list_c pack_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* pack_list_table[] = { + &pack_list, +}; + +static bg_item_draw_part_c pack_part = { + pack_DL_table, 1, pack_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx present_DL_mode[]; +extern Gfx present_DL_vtx[]; + +static Gfx* present_DL_table[] = { + present_DL_mode, + present_DL_vtx, +}; + +static bg_item_draw_list_c present_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* present_list_table[] = { + &present_list, +}; + +static bg_item_draw_part_c present_part = { + present_DL_table, 1, present_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx seed_DL_mode[]; +extern Gfx seed_DL_vtx[]; + +static Gfx* seed_DL_table[] = { + seed_DL_mode, + seed_DL_vtx, +}; + +static bg_item_draw_list_c seed_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* seed_list_table[] = { + &seed_list, +}; + +static bg_item_draw_part_c seed_part = { + seed_DL_table, 1, seed_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_haniwaT_mat_model[]; +extern Gfx obj_haniwaT_gfx_model[]; + +static Gfx* haniwa_DL_table[] = { + obj_haniwaT_mat_model, + obj_haniwaT_gfx_model, +}; + +static bg_item_draw_list_c haniwa_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* haniwa_list_table[] = { + &haniwa_list, +}; + +static bg_item_draw_part_c haniwa_part = { + haniwa_DL_table, 1, haniwa_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_boxT_mat_model[]; +extern Gfx obj_boxT_gfx_model[]; + +static Gfx* other_DL_table[] = { + obj_boxT_mat_model, + obj_boxT_gfx_model, +}; + +static bg_item_draw_list_c other_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* other_list_table[] = { + &other_list, +}; + +static bg_item_draw_part_c other_part = { + other_DL_table, 1, other_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_toolT_mat_model[]; +extern Gfx obj_toolT_gfx_model[]; + +static Gfx* tool_DL_table[] = { + obj_toolT_mat_model, + obj_toolT_gfx_model, +}; + +static bg_item_draw_list_c tool_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* tool_list_table[] = { + &tool_list, +}; + +static bg_item_draw_part_c tool_part = { + tool_DL_table, 1, tool_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_fossilT_mat_model[]; +extern Gfx obj_fossilT_gfx_model[]; + +static Gfx* fossil_DL_table[] = { + obj_fossilT_mat_model, + obj_fossilT_gfx_model, +}; + +static bg_item_draw_list_c fossil_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* fossil_list_table[] = { + &fossil_list, +}; + +static bg_item_draw_part_c fossil_part = { + fossil_DL_table, 1, fossil_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_trashT_mat_model[]; +extern Gfx obj_trashT_gfx_model[]; + +static Gfx* trash_DL_table[] = { + obj_trashT_mat_model, + obj_trashT_gfx_model, +}; + +static bg_item_draw_list_c trash_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* trash_list_table[] = { + &trash_list, +}; + +static bg_item_draw_part_c trash_part = { + trash_DL_table, 1, trash_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_otosiT_mat_model[]; +extern Gfx obj_otosiT_gfx_model[]; + +static Gfx* otosi_DL_table[] = { + obj_otosiT_mat_model, + obj_otosiT_gfx_model, +}; + +static bg_item_draw_list_c otosi_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* otosi_list_table[] = { + &otosi_list, +}; + +static bg_item_draw_part_c otosi_part = { + otosi_DL_table, 1, otosi_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_shellAT_mat_model[]; +extern Gfx obj_item_shellAT_gfx_model[]; +extern Gfx obj_item_shellBT_mat_model[]; +extern Gfx obj_item_shellBT_gfx_model[]; +extern Gfx obj_item_shellCT_mat_model[]; +extern Gfx obj_item_shellCT_gfx_model[]; + +static Gfx* shell_DL_table[] = { + obj_item_shellAT_mat_model, obj_item_shellAT_gfx_model, obj_item_shellBT_mat_model, + obj_item_shellBT_gfx_model, obj_item_shellCT_mat_model, obj_item_shellCT_gfx_model, +}; + +static bg_item_draw_list_c shell_a_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c shell_b_list = { &bg_item_common_draw_loop_type1, 2, 3 }; + +static bg_item_draw_list_c shell_c_list = { &bg_item_common_draw_loop_type1, 4, 5 }; + +static bg_item_draw_list_c* shell_a_list_table[] = { + &shell_a_list, +}; + +static bg_item_draw_list_c* shell_b_list_table[] = { + &shell_b_list, +}; + +static bg_item_draw_list_c* shell_c_list_table[] = { + &shell_c_list, +}; + +static bg_item_draw_part_c shell_a_part = { + shell_DL_table, 1, shell_a_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c shell_b_part = { + shell_DL_table, 1, shell_b_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_c shell_c_part = { + shell_DL_table, 1, shell_c_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_shop_candy_mat_modelT[]; +extern Gfx obj_shop_candy_gfx_modelT[]; + +static Gfx* candy_DL_table[] = { + obj_shop_candy_mat_modelT, + obj_shop_candy_gfx_modelT, +}; + +static bg_item_draw_list_c candy_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* candy_list_table[] = { + &candy_list, +}; + +static bg_item_draw_part_c candy_part = { + candy_DL_table, 1, candy_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_cocoT_mat_model[]; +extern Gfx obj_item_cocoT_gfx_model[]; + +static Gfx* coconut_DL_table[] = { + obj_item_cocoT_mat_model, + obj_item_cocoT_gfx_model, +}; + +static bg_item_draw_list_c coconut_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* coconut_list_table[] = { + &coconut_list, +}; + +static bg_item_draw_part_c coconut_part = { + coconut_DL_table, 1, coconut_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_clothT_mat_model[]; +extern Gfx obj_item_clothT_gfx_model[]; + +static Gfx* cloth_DL_table[] = { + obj_item_clothT_mat_model, + obj_item_clothT_gfx_model, +}; + +static bg_item_draw_list_c cloth_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* cloth_list_table[] = { + &cloth_list, +}; + +static bg_item_draw_part_c cloth_part = { + cloth_DL_table, 1, cloth_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_carpetT_mat_model[]; +extern Gfx obj_item_carpetT_gfx_model[]; + +static Gfx* carpet_DL_table[] = { + obj_item_carpetT_mat_model, + obj_item_carpetT_gfx_model, +}; + +static bg_item_draw_list_c carpet_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* carpet_list_table[] = { + &carpet_list, +}; + +static bg_item_draw_part_c carpet_part = { + carpet_DL_table, 1, carpet_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_wallT_mat_model[]; +extern Gfx obj_item_wallT_gfx_model[]; + +static Gfx* wall_DL_table[] = { + obj_item_wallT_mat_model, + obj_item_wallT_gfx_model, +}; + +static bg_item_draw_list_c wall_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* wall_list_table[] = { + &wall_list, +}; + +static bg_item_draw_part_c wall_part = { + wall_DL_table, 1, wall_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_axeT_mat_model[]; +extern Gfx obj_item_axeT_gfx_model[]; + +static Gfx* axe_DL_table[] = { + obj_item_axeT_mat_model, + obj_item_axeT_gfx_model, +}; + +static bg_item_draw_list_c axe_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* axe_list_table[] = { + &axe_list, +}; + +static bg_item_draw_part_c axe_part = { + axe_DL_table, 1, axe_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_netT_mat_model[]; +extern Gfx obj_item_netT_gfx_model[]; + +static Gfx* net_DL_table[] = { + obj_item_netT_mat_model, + obj_item_netT_gfx_model, +}; + +static bg_item_draw_list_c net_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* net_list_table[] = { + &net_list, +}; + +static bg_item_draw_part_c net_part = { + net_DL_table, 1, net_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_rodT_mat_model[]; +extern Gfx obj_item_rodT_gfx_model[]; + +static Gfx* rod_DL_table[] = { + obj_item_rodT_mat_model, + obj_item_rodT_gfx_model, +}; + +static bg_item_draw_list_c rod_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* rod_list_table[] = { + &rod_list, +}; + +static bg_item_draw_part_c rod_part = { + rod_DL_table, 1, rod_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_shovelT_mat_model[]; +extern Gfx obj_item_shovelT_gfx_model[]; + +static Gfx* scoop_DL_table[] = { + obj_item_shovelT_mat_model, + obj_item_shovelT_gfx_model, +}; + +static bg_item_draw_list_c scoop_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* scoop_list_table[] = { + &scoop_list, +}; + +static bg_item_draw_part_c scoop_part = { + scoop_DL_table, 1, scoop_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_axe2T_mat_model[]; +extern Gfx obj_item_axe2T_gfx_model[]; + +static Gfx* gold_axe_DL_table[] = { + obj_item_axe2T_mat_model, + obj_item_axe2T_gfx_model, +}; + +static bg_item_draw_list_c gold_axe_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* gold_axe_list_table[] = { + &gold_axe_list, +}; + +static bg_item_draw_part_c gold_axe_part = { + gold_axe_DL_table, 1, gold_axe_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_net2T_mat_model[]; +extern Gfx obj_item_net2T_gfx_model[]; + +static Gfx* gold_net_DL_table[] = { + obj_item_net2T_mat_model, + obj_item_net2T_gfx_model, +}; + +static bg_item_draw_list_c gold_net_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* gold_net_list_table[] = { + &gold_net_list, +}; + +static bg_item_draw_part_c gold_net_part = { + gold_net_DL_table, 1, gold_net_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_rod2T_mat_model[]; +extern Gfx obj_item_rod2T_gfx_model[]; + +static Gfx* gold_rod_DL_table[] = { + obj_item_rod2T_mat_model, + obj_item_rod2T_gfx_model, +}; + +static bg_item_draw_list_c gold_rod_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* gold_rod_list_table[] = { + &gold_rod_list, +}; + +static bg_item_draw_part_c gold_rod_part = { + gold_rod_DL_table, 1, gold_rod_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_shovel2T_mat_model[]; +extern Gfx obj_item_shovel2T_gfx_model[]; + +static Gfx* gold_scoop_DL_table[] = { + obj_item_shovel2T_mat_model, + obj_item_shovel2T_gfx_model, +}; + +static bg_item_draw_list_c gold_scoop_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* gold_scoop_list_table[] = { + &gold_scoop_list, +}; + +static bg_item_draw_part_c gold_scoop_part = { + gold_scoop_DL_table, 1, gold_scoop_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_umbrellaT_mat_model[]; +extern Gfx obj_item_umbrellaT_gfx_model[]; + +static Gfx* umbrella_DL_table[] = { + obj_item_umbrellaT_mat_model, + obj_item_umbrellaT_gfx_model, +}; + +static bg_item_draw_list_c umbrella_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* umbrella_list_table[] = { + &umbrella_list, +}; + +static bg_item_draw_part_c umbrella_part = { + umbrella_DL_table, 1, umbrella_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_kazaT_mat_model[]; +extern Gfx obj_item_kazaT_gfx_model[]; + +static Gfx* pinwheel_DL_table[] = { + obj_item_kazaT_mat_model, + obj_item_kazaT_gfx_model, +}; + +static bg_item_draw_list_c pinwheel_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* pinwheel_list_table[] = { + &pinwheel_list, +}; + +static bg_item_draw_part_c pinwheel_part = { + pinwheel_DL_table, 1, pinwheel_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_utiwaT_mat_model[]; +extern Gfx obj_item_utiwaT_gfx_model[]; + +static Gfx* fan_DL_table[] = { + obj_item_utiwaT_mat_model, + obj_item_utiwaT_gfx_model, +}; + +static bg_item_draw_list_c fan_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* fan_list_table[] = { + &fan_list, +}; + +static bg_item_draw_part_c fan_part = { + fan_DL_table, 1, fan_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_paperT_mat_model[]; +extern Gfx obj_item_paperT_gfx_model[]; + +static Gfx* paper_DL_table[] = { + obj_item_paperT_mat_model, + obj_item_paperT_gfx_model, +}; + +static bg_item_draw_list_c paper_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* paper_list_table[] = { + &paper_list, +}; + +static bg_item_draw_part_c paper_part = { + paper_DL_table, 1, paper_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_seedT_mat_model[]; +extern Gfx obj_item_seedT_gfx_model[]; + +static Gfx* seedbag_DL_table[] = { + obj_item_seedT_mat_model, + obj_item_seedT_gfx_model, +}; + +static bg_item_draw_list_c seedbag_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* seedbag_list_table[] = { + &seedbag_list, +}; + +static bg_item_draw_part_c seedbag_part = { + seedbag_DL_table, 1, seedbag_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_fukuT_mat_model[]; +extern Gfx obj_item_fukuT_gfx_model[]; + +static Gfx* luckbag_DL_table[] = { + obj_item_fukuT_mat_model, + obj_item_fukuT_gfx_model, +}; + +static bg_item_draw_list_c luckbag_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* luckbag_list_table[] = { + &luckbag_list, +}; + +static bg_item_draw_part_c luckbag_part = { + luckbag_DL_table, 1, luckbag_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_taisouT_mat_model[]; +extern Gfx obj_item_taisouT_gfx_model[]; + +static Gfx* gymcard_DL_table[] = { + obj_item_taisouT_mat_model, + obj_item_taisouT_gfx_model, +}; + +static bg_item_draw_list_c gymcard_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* gymcard_list_table[] = { + &gymcard_list, +}; + +static bg_item_draw_part_c gymcard_part = { + gymcard_DL_table, 1, gymcard_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_mdT_mat_model[]; +extern Gfx obj_mdT_gfx_model[]; + +static Gfx* music_DL_table[] = { + obj_mdT_mat_model, + obj_mdT_gfx_model, +}; + +static bg_item_draw_list_c music_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* music_list_table[] = { + &music_list, +}; + +static bg_item_draw_part_c music_part = { + music_DL_table, 1, music_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_ticketT_mat_model[]; +extern Gfx obj_item_ticketT_gfx_model[]; + +static Gfx* lottery_DL_table[] = { + obj_item_ticketT_mat_model, + obj_item_ticketT_gfx_model, +}; + +static bg_item_draw_list_c lottery_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* lottery_list_table[] = { + &lottery_list, +}; + +static bg_item_draw_part_c lottery_part = { + lottery_DL_table, 1, lottery_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_boneT_mat_model[]; +extern Gfx obj_item_boneT_gfx_model[]; + +static Gfx* bone_DL_table[] = { + obj_item_boneT_mat_model, + obj_item_boneT_gfx_model, +}; + +static bg_item_draw_list_c bone_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* bone_list_table[] = { + &bone_list, +}; + +static bg_item_draw_part_c bone_part = { + bone_DL_table, 1, bone_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_diaryT_mat_model[]; +extern Gfx obj_item_diaryT_gfx_model[]; + +static Gfx* diary_DL_table[] = { + obj_item_diaryT_mat_model, + obj_item_diaryT_gfx_model, +}; + +static bg_item_draw_list_c diary_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* diary_list_table[] = { + &diary_list, +}; + +static bg_item_draw_part_c diary_part = { + diary_DL_table, 1, diary_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +extern Gfx obj_item_fork_onT_mat_model[]; +extern Gfx obj_item_fork_onT_gfx_model[]; + +static Gfx* fork_DL_table[] = { + obj_item_fork_onT_mat_model, + obj_item_fork_onT_gfx_model, +}; + +static bg_item_draw_list_c fork_list = { &bg_item_common_draw_loop_type1, 0, 1 }; + +static bg_item_draw_list_c* fork_list_table[] = { + &fork_list, +}; + +static bg_item_draw_part_c fork_part = { + fork_DL_table, 1, fork_list_table, 0, NULL, 0.0f, NULL, NULL, +}; + +static bg_item_draw_part_table_c draw_part_table_a[] = { + { &x_stump_part1, 1 }, // bIT_DRAW_TYPE_STUMP1 + { &x_stump_part2, 1 }, // bIT_DRAW_TYPE_STUMP2 + { &x_stump_part3, 1 }, // bIT_DRAW_TYPE_STUMP3 + { &x_stump_part4, 1 }, // bIT_DRAW_TYPE_STUMP4 + { &x_fence_part, 1 }, // bIT_DRAW_TYPE_FENCE + { &x_notice_part, 1 }, // bIT_DRAW_TYPE_NOTICE + { &x_grass_part, 2 }, // bIT_DRAW_TYPE_GRASS + { &x_mapboard_part, 1 }, // bIT_DRAW_TYPE_MAPBOARD + { &x_melody_part, 1 }, // bIT_DRAW_TYPE_MELODY + { &x_fences_part, 1 }, // bIT_DRAW_TYPE_FENCES + { &honycomb_part, 1 }, // bIT_DRAW_TYPE_HONYCOMB + { &hole00_g_part, 1 }, // bIT_DRAW_TYPE_HOLE00_G + { &hole00_s_part, 1 }, // bIT_DRAW_TYPE_HOLE00_S + { &crack00_g_part, 1 }, // bIT_DRAW_TYPE_CRACK00_G + { &crack00_s_part, 1 }, // bIT_DRAW_TYPE_CRACK00_S + { &hole00_g_part, 1 }, // bIT_DRAW_TYPE_HOLE00_SHIN_G + { &stone_a_part, 1 }, // bIT_DRAW_TYPE_STONE_A + { &stone_b_part, 1 }, // bIT_DRAW_TYPE_STONE_B + { &stone_c_part, 1 }, // bIT_DRAW_TYPE_STONE_C + { &stone_d_part, 1 }, // bIT_DRAW_TYPE_STONE_D + { &stone_e_part, 1 }, // bIT_DRAW_TYPE_STONE_E + { &tane_part, 1 }, // bIT_DRAW_TYPE_TANE + { &x_tree0_part, 1 }, // bIT_DRAW_TYPE_TREE0 + { &x_tree1_part, 1 }, // bIT_DRAW_TYPE_TREE1 + { &x_tree2_part, 1 }, // bIT_DRAW_TYPE_TREE2 + { &x_tree3_part, 1 }, // bIT_DRAW_TYPE_TREE3 + { &x_tree4_part, 1 }, // bIT_DRAW_TYPE_TREE4 + { &tree4_ap_part, 1 }, // bIT_DRAW_TYPE_TREE4_AP + { &tree4_or_part, 1 }, // bIT_DRAW_TYPE_TREE4_OR + { &tree4_ph_part, 1 }, // bIT_DRAW_TYPE_TREE4_PH + { &tree4_pr_part, 1 }, // bIT_DRAW_TYPE_TREE4_PR + { &tree4_nt_part, 1 }, // bIT_DRAW_TYPE_TREE4_NT + { &tree4_bg_part, 1 }, // bIT_DRAW_TYPE_TREE4_BG + { &tree4_light_part, 1 }, // bIT_DRAW_TYPE_TREE4_LIGHT + { &x_flower_part, 1 }, // bIT_DRAW_TYPE_FLOWER_LEAF + { &x_flower_part00, 1 }, // bIT_DRAW_TYPE_FLOWER00 + { &x_flower_part01, 1 }, // bIT_DRAW_TYPE_FLOWER01 + { &x_flower_part02, 1 }, // bIT_DRAW_TYPE_FLOWER02 + { &x_tree0_dead_part, 1 }, // bIT_DRAW_TYPE_TREE0_DEAD + { &palm000_part, 1 }, // bIT_DRAW_TYPE_PALM000 + { &palm001_part, 1 }, // bIT_DRAW_TYPE_PALM001 + { &palm002_part, 1 }, // bIT_DRAW_TYPE_PALM002 + { &palm003_part, 1 }, // bIT_DRAW_TYPE_PALM003 + { &palm004_part, 1 }, // bIT_DRAW_TYPE_PALM004 + { &palm004_cc_part, 1 }, // bIT_DRAW_TYPE_PALM004_CC + { &palm_stump001_part, 0 }, // bIT_DRAW_TYPE_PALM_STUMP001 + { &palm_stump002_part, 0 }, // bIT_DRAW_TYPE_PALM_STUMP002 + { &palm_stump003_part, 0 }, // bIT_DRAW_TYPE_PALM_STUMP003 + { &palm_stump004_part, 0 }, // bIT_DRAW_TYPE_PALM_STUMP004 + { &palm000_dead_part, 0 }, // bIT_DRAW_TYPE_PALM000_DEAD + { &cedar000_part, 0 }, // bIT_DRAW_TYPE_CEDAR000 + { &cedar001_part, 0 }, // bIT_DRAW_TYPE_CEDAR001 + { &cedar002_part, 0 }, // bIT_DRAW_TYPE_CEDAR002 + { &cedar003_part, 0 }, // bIT_DRAW_TYPE_CEDAR003 + { &cedar004_part, 0 }, // bIT_DRAW_TYPE_CEDAR004 + { &cedar004_light_part, 0 }, // bIT_DRAW_TYPE_CEDAR004_LIGHT + { &cedar_stump001_part, 0 }, // bIT_DRAW_TYPE_CEDAR_STUMP001 + { &cedar_stump002_part, 0 }, // bIT_DRAW_TYPE_CEDAR_STUMP002 + { &cedar_stump003_part, 0 }, // bIT_DRAW_TYPE_CEDAR_STUMP003 + { &cedar_stump004_part, 0 }, // bIT_DRAW_TYPE_CEDAR_STUMP004 + { &cedar000_dead_part, 0 }, // bIT_DRAW_TYPE_CEDAR000_DEAD + { &gold_tree000_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE000 + { &gold_tree001_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE001 + { &gold_tree002_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE002 + { &gold_tree003_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE003 + { &gold_tree004_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE004 + { &gold_tree_stump001_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE_STUMP001 + { &gold_tree_stump002_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE_STUMP002 + { &gold_tree_stump003_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE_STUMP003 + { &gold_tree_stump004_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE_STUMP004 + { &gold_tree000_dead_part, 0 }, // bIT_DRAW_TYPE_GOLD_TREE000_DEAD + { &apple_part, 1 }, // bIT_DRAW_TYPE_APPLE + { &orange_part, 1 }, // bIT_DRAW_TYPE_ORANGE + { &peach_part, 1 }, // bIT_DRAW_TYPE_PEACH + { &pear_part, 1 }, // bIT_DRAW_TYPE_PEAR + { &nuts_part, 1 }, // bIT_DRAW_TYPE_NUTS + { &matutake_part, 1 }, // bIT_DRAW_TYPE_MATUTAKE + { &kabu_part, 1 }, // bIT_DRAW_TYPE_KABU + { &fish_part, 1 }, // bIT_DRAW_TYPE_FISH + { &bag_part, 1 }, // bIT_DRAW_TYPE_BAG + { &leaf_part, 1 }, // bIT_DRAW_TYPE_LEAF + { &roll_part, 1 }, // bIT_DRAW_TYPE_ROLL + { &box_part, 1 }, // bIT_DRAW_TYPE_BOX + { &pack_part, 1 }, // bIT_DRAW_TYPE_PACK + { &present_part, 1 }, // bIT_DRAW_TYPE_PRESENT + { &seed_part, 1 }, // bIT_DRAW_TYPE_SEED + { &haniwa_part, 1 }, // bIT_DRAW_TYPE_HANIWA + { &other_part, 1 }, // bIT_DRAW_TYPE_OTHER + { NULL, 1 }, // bIT_DRAW_TYPE_86 + { &tool_part, 1 }, // bIT_DRAW_TYPE_TOOL + { &fossil_part, 1 }, // bIT_DRAW_TYPE_FOSSIL + { &trash_part, 1 }, // bIT_DRAW_TYPE_TRASH + { NULL, 1 }, // bIT_DRAW_TYPE_90 + { &otosi_part, 1 }, // bIT_DRAW_TYPE_OTOSI + { &shell_a_part, 2 }, // bIT_DRAW_TYPE_SHELL_A + { &shell_b_part, 2 }, // bIT_DRAW_TYPE_SHELL_B + { &shell_c_part, 2 }, // bIT_DRAW_TYPE_SHELL_C + { &candy_part, 1 }, // bIT_DRAW_TYPE_CANDY + { &coconut_part, 1 }, // bIT_DRAW_TYPE_COCONUT + { NULL, 1 }, // bIT_DRAW_TYPE_97 + { &cloth_part, 1 }, // bIT_DRAW_TYPE_CLOTH + { &carpet_part, 1 }, // bIT_DRAW_TYPE_CARPET + { &wall_part, 1 }, // bIT_DRAW_TYPE_WALL + { &axe_part, 1 }, // bIT_DRAW_TYPE_AXE + { &net_part, 1 }, // bIT_DRAW_TYPE_NET + { &rod_part, 1 }, // bIT_DRAW_TYPE_ROD + { &scoop_part, 1 }, // bIT_DRAW_TYPE_SCOOP + { &gold_axe_part, 1 }, // bIT_DRAW_TYPE_GOLD_AXE + { &gold_net_part, 1 }, // bIT_DRAW_TYPE_GOLD_NET + { &gold_rod_part, 1 }, // bIT_DRAW_TYPE_GOLD_ROD + { &gold_scoop_part, 1 }, // bIT_DRAW_TYPE_GOLD_SCOOP + { &umbrella_part, 1 }, // bIT_DRAW_TYPE_UMBRELLA + { &pinwheel_part, 1 }, // bIT_DRAW_TYPE_PINWHEEL + { &fan_part, 1 }, // bIT_DRAW_TYPE_FAN + { &paper_part, 1 }, // bIT_DRAW_TYPE_PAPER + { &seedbag_part, 1 }, // bIT_DRAW_TYPE_SEEDBAG + { &luckbag_part, 1 }, // bIT_DRAW_TYPE_LUCKBAG + { &gymcard_part, 1 }, // bIT_DRAW_TYPE_GYMCARD + { &music_part, 1 }, // bIT_DRAW_TYPE_MUSIC + { &lottery_part, 1 }, // bIT_DRAW_TYPE_LOTTERY + { &bone_part, 1 }, // bIT_DRAW_TYPE_BONE + { &diary_part, 1 }, // bIT_DRAW_TYPE_DIARY + { &fork_part, 1 }, // bIT_DRAW_TYPE_FORK + { &fish_part, 0 }, // bIT_DRAW_TYPE_FISH2 + { NULL, 0 }, // bIT_DRAW_TYPE_NONE +}; diff --git a/src/bg_xmas_item_draw.c_inc b/src/bg_xmas_item_draw.c_inc new file mode 100644 index 00000000..90683267 --- /dev/null +++ b/src/bg_xmas_item_draw.c_inc @@ -0,0 +1,40 @@ +static void bXI_actor_draw(ACTOR* actorx, GAME* game) { + BG_XMAS_ITEM_ACTOR* bg_item = (BG_XMAS_ITEM_ACTOR*)actorx; + GAME_PLAY* play = (GAME_PLAY*)game; + + bg_item_common_draw(play, &bg_item->common, draw_part_table_a); +} + +static void bXI_draw_loop_type1_xtree(GRAPH* graph, Gfx** gfx_pp, bg_item_draw_list_c* draw_list, + bg_item_draw_pos_c* draw_pos, Gfx** display_list_table) { + Gfx* dl = display_list_table[draw_list->mat_idx]; + + gSPDisplayList((*gfx_pp)++, display_list_table[draw_list->gfx_idx]); + + while (draw_pos->next_add_cnt != 256) { + if (draw_pos->cull_flag == FALSE) { + bg_item_idx_info_c* idx_info; + + Matrix_put(&draw_pos->mtxf); + gSPMatrix((*gfx_pp)++, _Matrix_to_Mtx_new(graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + idx_info = (bg_item_idx_info_c*)draw_pos->_04; + + if (idx_info->v1 == 0) { + gDPSetPrimColor((*gfx_pp)++, 0, 128, 255, 255, 100, 255); + } else if (idx_info->v1 == 1) { + gDPSetPrimColor((*gfx_pp)++, 0, 128, 100, 255, 255, 255); + } else { + gDPSetPrimColor((*gfx_pp)++, 0, 128, 255, 100, 255, 255); + } + + gSPDisplayList((*gfx_pp)++, dl); + } + + draw_pos += draw_pos->next_add_cnt; + } + + gDPPipeSync((*gfx_pp)++); + gDPSetPrimColor((*gfx_pp)++, 0, 128, 255, 255, 255, 255); + gSPLoadGeometryMode((*gfx_pp)++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_FOG | G_LIGHTING | G_SHADING_SMOOTH); + gDPSetCombineLERP((*gfx_pp)++, TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, PRIMITIVE, 0, COMBINED, 0, 0, 0, 0, COMBINED); +} diff --git a/src/bg_xmas_item_move.c_inc b/src/bg_xmas_item_move.c_inc new file mode 100644 index 00000000..ae78f545 --- /dev/null +++ b/src/bg_xmas_item_move.c_inc @@ -0,0 +1,54 @@ +static bg_item_type_data_c* type_data_table_p_a[bIT_TYPE_CAT_NUM] = { + typeData_table_bgXmasItem, typeData_table_bgXmasItem2, typeData_table_ftr, + typeData_table_item1, typeData_table_crack, typeData_table_dummy, +}; + +static int bg_xmas_item_talking_display_limit_check(int idx) { + int res = FALSE; + + if ((idx >= bIT_DRAW_TYPE_TREE2 && idx <= bIT_DRAW_TYPE_TREE4_LIGHT) || + (idx >= bIT_DRAW_TYPE_PALM002 && idx <= bIT_DRAW_TYPE_PALM004_CC) || + (idx >= bIT_DRAW_TYPE_CEDAR002 && idx <= bIT_DRAW_TYPE_CEDAR004_LIGHT) || + (idx >= bIT_DRAW_TYPE_GOLD_TREE002 && idx <= bIT_DRAW_TYPE_GOLD_TREE004) || idx == bIT_DRAW_TYPE_NOTICE || + idx == bIT_DRAW_TYPE_MAPBOARD || idx == bIT_DRAW_TYPE_MELODY) { + res = TRUE; + } + + return res; +} + +static void bXI_actor_move(ACTOR* actorx, GAME* game) { + BG_XMAS_ITEM_ACTOR* bg_item = (BG_XMAS_ITEM_ACTOR*)actorx; + GAME_PLAY* play = (GAME_PLAY*)game; + bg_item_common_c* common = &bg_item->common; + bg_item_common_info_c* common_info = &common->common_info; + + common_info->type_data_table_p = type_data_table_p_a; + common_info->pos_table_p = pos_table; + common->flags = 0; + + if (Camera2_CheckCullingMode() != FALSE) { + common->flags |= 1; + } + + common->talk_display_limit_check_proc = &bg_xmas_item_talking_display_limit_check; + bg_item_common_move(play, actorx, common); + + { + bg_item_blk_idx_info_c* blk_info = bg_item->item_idx_info; + bg_item_idx_info_c* item_idx_info; + u32 frame = play->game_frame & ~0x1F; + int i; + + for (i = 0; i < mFM_VISIBLE_BLOCK_NUM; i++, blk_info++) { + int j; + item_idx_info = blk_info->info; + + for (j = 0; j < (UT_TOTAL_NUM + 1); j++, item_idx_info++) { + int ofs = frame + item_idx_info->v0; + + item_idx_info->v1 = ofs % 3; + } + } + } +}