diff --git a/overviewer_core/src/iterate.c b/overviewer_core/src/iterate.c index 5c9c51b..6516237 100644 --- a/overviewer_core/src/iterate.c +++ b/overviewer_core/src/iterate.c @@ -16,6 +16,7 @@ */ #include "overviewer.h" +#include "mc_id.h" static PyObject *textures = NULL; @@ -250,20 +251,20 @@ is_stairs(int block) { * Determines if a block is stairs of any material */ switch (block) { - case 53: /* oak wood stairs */ - case 67: /* cobblestone stairs */ - case 108: /* brick stairs */ - case 109: /* stone brick stairs */ - case 114: /* nether brick stairs */ - case 128: /* sandstone stairs */ - case 134: /* spruce wood stairs */ - case 135: /* birch wood stairs */ - case 136: /* jungle wood stairs */ - case 156: /* quartz stairs */ - case 163: /* acacia wood stairs */ - case 164: /* dark wood stairs */ - case 180: /* red sandstone stairs */ - case 203: /* purpur stairs */ + case block_oak_stairs: + case block_stone_stairs: + case block_brick_stairs: + case block_stone_brick_stairs: + case block_nether_brick_stairs: + case block_sandstone_stairs: + case block_spruce_stairs: + case block_birch_stairs: + case block_jungle_stairs: + case block_quartz_stairs: + case block_acacia_stairs: + case block_dark_oak_stairs: + case block_red_sandstone_stairs: + case block_purpur_stairs: return 1; } return 0; @@ -278,18 +279,18 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { int x = state->x, y = state->y, z = state->z; unsigned short data = 0; - if (state->block == 2) { /* grass */ + if (state->block == block_grass) { /* grass */ /* return 0x10 if grass is covered in snow */ if (get_data(state, BLOCKS, x, y+1, z) == 78) return 0x10; return ancilData; - } else if (state->block == 8 || state->block == 9) { /* water */ + } else if (state->block == block_flowing_water || state->block == block_water) { /* water */ data = check_adjacent_blocks(state, x, y, z, state->block) ^ 0x0f; /* an aditional bit for top is added to the 4 bits of check_adjacent_blocks */ if (get_data(state, BLOCKS, x, y+1, z) != state->block) data |= 0x10; return data; - } else if ((state->block == 20) || (state->block == 79) || (state->block == 95)) { /* glass and ice and stained glass*/ + } else if ((state->block == block_glass) || (state->block == block_ice) || (state->block == block_stained_glass)) { /* glass and ice and stained glass*/ /* an aditional bit for top is added to the 4 bits of check_adjacent_blocks * Note that stained glass encodes 16 colors using 4 bits. this pushes us over the 8-bits of an unsigned char, * forcing us to use an unsigned short to hold 16 bits of pseudo ancil data @@ -301,14 +302,14 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { } data = (check_adjacent_blocks(state, x, y, z, state->block) ^ 0x0f) | data; return (data << 4) | (ancilData & 0x0f); - } else if ((state->block == 85) || (state->block == 188) || (state->block == 189) || - (state->block == 190) || (state->block == 191) || (state->block == 192)) { /* fences */ + } else if ((state->block == block_fence) || (state->block == block_spruce_fence) || (state->block == block_birch_fence) || + (state->block == block_jungle_fence) || (state->block == block_dark_oak_fence) || (state->block == block_acacia_fence)) { /* fences */ /* check for fences AND fence gates */ - return check_adjacent_blocks(state, x, y, z, state->block) | check_adjacent_blocks(state, x, y, z, 107) | - check_adjacent_blocks(state, x, y, z, 183) | check_adjacent_blocks(state, x, y, z, 184) | check_adjacent_blocks(state, x, y, z, 185) | - check_adjacent_blocks(state, x, y, z, 186) | check_adjacent_blocks(state, x, y, z, 187); + return check_adjacent_blocks(state, x, y, z, state->block) | check_adjacent_blocks(state, x, y, z, block_fence_gate) | + check_adjacent_blocks(state, x, y, z, block_fence_gate) | check_adjacent_blocks(state, x, y, z, block_birch_fence_gate) | check_adjacent_blocks(state, x, y, z, block_jungle_fence_gate) | + check_adjacent_blocks(state, x, y, z, block_dark_oak_fence_gate) | check_adjacent_blocks(state, x, y, z, block_acacia_fence_gate); - } else if (state->block == 55) { /* redstone */ + } else if (state->block == block_redstone_wire) { /* redstone */ /* three addiotional bit are added, one for on/off state, and * another two for going-up redstone wire in the same block * (connection with the level y+1) */ @@ -342,7 +343,7 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { } return final_data; - } else if (state->block == 54 || state->block == 146) { /* normal chests and trapped chests */ + } else if (state->block == block_chest || state->block == block_trapped_chest) { /* Orientation is given by ancilData, pseudo data needed to * choose from single or double chest and the correct half of * the chest. */ @@ -379,7 +380,7 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { } return final_data; - } else if ((state->block == 101) || (state->block == 102) || (state->block == 160)) { + } else if ((state->block == block_iron_bars) || (state->block == block_glass_pane) || (state->block == block_stained_glass_pane)) { /* iron bars and glass panes: * they seem to stick to almost everything but air, * not sure yet! Still a TODO! */ @@ -388,13 +389,13 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { data = (check_adjacent_blocks(state, x, y, z, 0) ^ 0x0f); return (data << 4) | (ancilData & 0xf); - } else if ((state->block == 90) || (state->block == 113)) { + } else if ((state->block == block_portal) || (state->block == block_nether_brick_fence)) { /* portal and nether brick fences */ return check_adjacent_blocks(state, x, y, z, state->block); - } else if ((state->block == 64) || (state->block == 71) || (state->block == 193) || - (state->block == 194) || (state->block == 195) || (state->block == 196) || - (state->block ==197)) { + } else if ((state->block == block_wooden_door) || (state->block == block_iron_door) || (state->block == block_spruce_door) || + (state->block == block_birch_door) || (state->block == block_jungle_door) || (state->block == block_acacia_door) || + (state->block == block_dark_oak_door)) { /* use bottom block data format plus one bit for top/down * block (0x8) and one bit for hinge position (0x10) */ @@ -420,14 +421,14 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { } return data; - } else if (state->block == 139) { /* cobblestone and mossy cobbleston wall */ + } else if (state->block == block_cobblestone_wall) { /* check for walls and add one bit with the type of wall (mossy or cobblestone)*/ if (ancilData == 0x1) { return check_adjacent_blocks(state, x, y, z, state->block) | 0x10; } else { return check_adjacent_blocks(state, x, y, z, state->block); } - } else if (state->block == 111) { /* lilypads */ + } else if (state->block == block_waterlily) { int wx,wz,wy,rotation; long pr; /* calculate the global block coordinates of this position */ @@ -547,11 +548,11 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { } return ancilData; - } else if (state->block == 175) { /* doublePlants */ + } else if (state->block == block_double_plant) { /* doublePlants */ /* use bottom block data format plus one bit for top * block (0x8) */ - if( get_data(state, BLOCKS, x, y-1, z) == 175 ) { + if( get_data(state, BLOCKS, x, y-1, z) == block_double_plant ) { data = get_data(state, DATA, x, y-1, z) | 0x8; } else { data = ancilData; @@ -663,7 +664,6 @@ chunk_render(PyObject *self, PyObject *args) { unsigned short ancilData; state.imgy -= 12; - /* get blockid */ state.block = getArrayShort3D(blocks_py, state.x, state.y, state.z); if (state.block == 0 || render_mode_hidden(rendermode, state.x, state.y, state.z)) { @@ -698,24 +698,28 @@ chunk_render(PyObject *self, PyObject *args) { * grass, water, glass, chest, restone wire, * ice, fence, portal, iron bars, glass panes, * trapped chests, stairs */ - if ((state.block == 2) || - (state.block == 8) || (state.block == 9) || - (state.block == 20) || (state.block == 54) || - (state.block == 55) || + if ((state.block == block_grass) || + (state.block == block_flowing_water) || (state.block == block_water) || + (state.block == block_glass) || (state.block == block_chest) || + (state.block == block_redstone_wire) || /* doors */ - (state.block == 64) || (state.block == 193) || - (state.block == 194) || (state.block == 195) || - (state.block == 196) || (state.block == 197) || - (state.block == 71) || /* end doors */ - (state.block == 79) || - (state.block == 85) || (state.block == 90) || - (state.block == 101) || (state.block == 102) || - (state.block == 111) || (state.block == 113) || - (state.block == 139) || (state.block == 175) || - (state.block == 160) || (state.block == 95) || - (state.block == 146) || (state.block == 188) || - (state.block == 189) || (state.block == 190) || - (state.block == 191) || (state.block == 192) || + (state.block == block_wooden_door ) || + (state.block == block_iron_door ) || + (state.block == block_spruce_door ) || + (state.block == block_birch_door ) || + (state.block == block_jungle_door ) || + (state.block == block_acacia_door ) || + (state.block == block_dark_oak_door) || + /* end doors */ + (state.block == block_ice) || + (state.block == block_fence) || (state.block == block_portal) || + (state.block == block_iron_bars) || (state.block == block_glass_pane) || + (state.block == block_waterlily) || (state.block == block_nether_brick_fence) || + (state.block == block_cobblestone_wall) || (state.block == block_double_plant) || + (state.block == block_stained_glass_pane) || (state.block == block_stained_glass) || + (state.block == block_trapped_chest) || (state.block == block_spruce_fence) || + (state.block == block_birch_fence) || (state.block == block_jungle_fence) || + (state.block == block_dark_oak_fence) || (state.block == block_acacia_fence) || is_stairs(state.block)) { ancilData = generate_pseudo_data(&state, ancilData); state.block_pdata = ancilData; @@ -738,7 +742,7 @@ chunk_render(PyObject *self, PyObject *args) { if (t != NULL && t != Py_None) { PyObject *src, *mask, *mask_light; - int do_rand = (state.block == 31 /*|| state.block == 38 || state.block == 175*/); + int do_rand = (state.block == block_tallgrass /*|| state.block == block_red_flower || state.block == block_double_plant*/); int randx = 0, randy = 0; src = PyTuple_GetItem(t, 0); mask = PyTuple_GetItem(t, 0); @@ -762,7 +766,7 @@ chunk_render(PyObject *self, PyObject *args) { state.imgx -= randx; state.imgy -= randy; } - } + } } } } diff --git a/overviewer_core/src/mc_id.h b/overviewer_core/src/mc_id.h new file mode 100644 index 0000000..aa18562 --- /dev/null +++ b/overviewer_core/src/mc_id.h @@ -0,0 +1,480 @@ +#ifndef __MC_ID_H_INCLUDED__ +#define __MC_ID_H_INCLUDED__ + +#include + +enum mc_block_id +{ + block_air = 0, + block_stone = 1, + block_grass = 2, + block_dirt = 3, + block_cobblestone = 4, + block_planks = 5, + block_sapling = 6, + block_bedrock = 7, + block_flowing_water = 8, + block_water = 9, + block_flowing_lava = 10, + block_lava = 11, + block_sand = 12, + block_gravel = 13, + block_gold_ore = 14, + block_iron_ore = 15, + block_coal_ore = 16, + block_log = 17, + block_leaves = 18, + block_sponge = 19, + block_glass = 20, + block_lapis_ore = 21, + block_lapis_block = 22, + block_dispenser = 23, + block_sandstone = 24, + block_noteblock = 25, + block_bed = 26, + block_golden_rail = 27, + block_detector_rail = 28, + block_sticky_piston = 29, + block_web = 30, + block_tallgrass = 31, + block_deadbush = 32, + block_piston = 33, + block_piston_head = 34, + block_wool = 35, + block_yellow_flower = 37, + block_red_flower = 38, + block_brown_mushroom = 39, + block_red_mushroom = 40, + block_gold_block = 41, + block_iron_block = 42, + block_double_stone_slab = 43, + block_stone_slab = 44, + block_brick_block = 45, + block_tnt = 46, + block_bookshelf = 47, + block_mossy_cobblestone = 48, + block_obsidian = 49, + block_torch = 50, + block_fire = 51, + block_mob_spawner = 52, + block_oak_stairs = 53, + block_chest = 54, + block_redstone_wire = 55, + block_diamond_ore = 56, + block_diamond_block = 57, + block_crafting_table = 58, + block_wheat = 59, + block_farmland = 60, + block_furnace = 61, + block_lit_furnace = 62, + block_standing_sign = 63, + block_wooden_door = 64, + block_ladder = 65, + block_rail = 66, + block_stone_stairs = 67, + block_wall_sign = 68, + block_lever = 69, + block_stone_pressure_plate = 70, + block_iron_door = 71, + block_wooden_pressure_plate = 72, + block_redstone_ore = 73, + block_lit_redstone_ore = 74, + block_unlit_redstone_torch = 75, + block_redstone_torch = 76, + block_stone_button = 77, + block_snow_layer = 78, + block_ice = 79, + block_snow = 80, + block_cactus = 81, + block_clay = 82, + block_reeds = 83, + block_jukebox = 84, + block_fence = 85, + block_pumpkin = 86, + block_netherrack = 87, + block_soul_sand = 88, + block_glowstone = 89, + block_portal = 90, + block_lit_pumpkin = 91, + block_cake = 92, + block_unpowered_repeater = 93, + block_powered_repeater = 94, + block_stained_glass = 95, + block_trapdoor = 96, + block_monster_egg = 97, + block_stonebrick = 98, + block_brown_mushroom_block = 99, + block_red_mushroom_block = 100, + block_iron_bars = 101, + block_glass_pane = 102, + block_melon_block = 103, + block_pumpkin_stem = 104, + block_melon_stem = 105, + block_vine = 106, + block_fence_gate = 107, + block_brick_stairs = 108, + block_stone_brick_stairs = 109, + block_mycelium = 110, + block_waterlily = 111, + block_nether_brick = 112, + block_nether_brick_fence = 113, + block_nether_brick_stairs = 114, + block_nether_wart = 115, + block_enchanting_table = 116, + block_brewing_stand = 117, + block_cauldron = 118, + block_end_portal = 119, + block_end_portal_frame = 120, + block_end_stone = 121, + block_dragon_egg = 122, + block_redstone_lamp = 123, + block_lit_redstone_lamp = 124, + block_double_wooden_slab = 125, + block_wooden_slab = 126, + block_cocoa = 127, + block_sandstone_stairs = 128, + block_emerald_ore = 129, + block_ender_chest = 130, + block_tripwire_hook = 131, + block_tripwire_wire = 132, + block_emerald_block = 133, + block_spruce_stairs = 134, + block_birch_stairs = 135, + block_jungle_stairs = 136, + block_command_block = 137, + block_beacon = 138, + block_cobblestone_wall = 139, + block_flower_pot = 140, + block_carrots = 141, + block_potatoes = 142, + block_wooden_button = 143, + block_skull = 144, + block_anvil = 145, + block_trapped_chest = 146, + block_light_weighted_pressure_plate = 147, + block_heavy_weighted_pressure_plate = 148, + block_unpowered_comparator = 149, + block_powered_comparator = 150, + block_daylight_detector = 151, + block_redstone_block = 152, + block_quartz_ore = 153, + block_hopper = 154, + block_quartz_block = 155, + block_quartz_stairs = 156, + block_activator_rail = 157, + block_dropper = 158, + block_stained_hardened_clay = 159, + block_stained_glass_pane = 160, + block_leaves2 = 161, + block_log2 = 162, + block_acacia_stairs = 163, + block_dark_oak_stairs = 164, + block_slime = 165, + block_barrier = 166, + block_iron_trapdoor = 167, + block_prismarine = 168, + block_sea_lantern = 169, + block_hay_block = 170, + block_carpet = 171, + block_hardened_clay = 172, + block_coal_block = 173, + block_packed_ice = 174, + block_double_plant = 175, + block_standing_banner = 176, + block_wall_banner = 177, + block_daylight_detector_inverted = 178, + block_red_sandstone = 179, + block_red_sandstone_stairs = 180, + block_double_stone_slab2 = 181, + block_stone_slab2 = 182, + block_spruce_fence_gate = 183, + block_birch_fence_gate = 184, + block_jungle_fence_gate = 185, + block_dark_oak_fence_gate = 186, + block_acacia_fence_gate = 187, + block_spruce_fence = 188, + block_birch_fence = 189, + block_jungle_fence = 190, + block_dark_oak_fence = 191, + block_acacia_fence = 192, + block_spruce_door = 193, + block_birch_door = 194, + block_jungle_door = 195, + block_acacia_door = 196, + block_dark_oak_door = 197, + block_end_rod = 198, + block_chorus_plant = 199, + block_chorus_flower = 200, + block_purpur_block = 201, + block_purpur_pillar = 202, + block_purpur_stairs = 203, + block_purpur_double_slab = 204, + block_purpur_slab = 205, + block_end_bricks = 206, + block_beetroots = 207, + block_grass_path = 208, + block_end_gateway = 209, + block_repeating_command_block = 210, + block_chain_command_block = 211, + block_frosted_ice = 212, + block_magma = 213, + block_nether_wart_block = 214, + block_red_nether_brick = 215, + block_bone_block = 216, + block_structure_void = 217, + block_observer = 218, + block_white_shulker_box = 219, + block_orange_shulker_box = 220, + block_magenta_shulker_box = 221, + block_light_blue_shulker_box = 222, + block_yellow_shulker_box = 223, + block_lime_shulker_box = 224, + block_pink_shulker_box = 225, + block_gray_shulker_box = 226, + block_silver_shulker_box = 227, + block_cyan_shulker_box = 228, + block_purple_shulker_box = 229, + block_blue_shulker_box = 230, + block_brown_shulker_box = 231, + block_green_shulker_box = 232, + block_red_shulker_box = 233, + block_black_shulker_box = 234, + block_white_glazed_terracotta = 235, + block_orange_glazed_terracotta = 236, + block_magenta_glazed_terracotta = 237, + block_light_blue_glazed_terracotta = 238, + block_yellow_glazed_terracotta = 239, + block_lime_glazed_terracotta = 240, + block_pink_glazed_terracotta = 241, + block_gray_glazed_terracotta = 242, + block_light_gray_glazed_terracotta = 243, + block_cyan_glazed_terracotta = 244, + block_purple_glazed_terracotta = 245, + block_blue_glazed_terracotta = 246, + block_brown_glazed_terracotta = 247, + block_green_glazed_terracotta = 248, + block_red_glazed_terracotta = 249, + block_black_glazed_terracotta = 250, + block_concrete = 251, + block_concrete_powder = 252, + block_structure_block = 255, +}; + +typedef uint16_t mc_block_t; + + +enum mc_item_id +{ + item_iron_shovel = 256, + item_iron_pickaxe = 257, + item_iron_axe = 258, + item_flint_and_steel = 259, + item_apple = 260, + item_bow = 261, + item_arrow = 262, + item_coal = 263, + item_diamond = 264, + item_iron_ingot = 265, + item_gold_ingot = 266, + item_iron_sword = 267, + item_wooden_sword = 268, + item_wooden_shovel = 269, + item_wooden_pickaxe = 270, + item_wooden_axe = 271, + item_stone_sword = 272, + item_stone_shovel = 273, + item_stone_pickaxe = 274, + item_stone_axe = 275, + item_diamond_sword = 276, + item_diamond_shovel = 277, + item_diamond_pickaxe = 278, + item_diamond_axe = 279, + item_stick = 280, + item_bowl = 281, + item_mushroom_stew = 282, + item_golden_sword = 283, + item_golden_shovel = 284, + item_golden_pickaxe = 285, + item_golden_axe = 286, + item_string = 287, + item_feather = 288, + item_gunpowder = 289, + item_wooden_hoe = 290, + item_stone_hoe = 291, + item_iron_hoe = 292, + item_diamond_hoe = 293, + item_golden_hoe = 294, + item_wheat_seeds = 295, + item_wheat = 296, + item_bread = 297, + item_leather_helmet = 298, + item_leather_chestplate = 299, + item_leather_leggings = 300, + item_leather_boots = 301, + item_chainmail_helmet = 302, + item_chainmail_chestplate = 303, + item_chainmail_leggings = 304, + item_chainmail_boots = 305, + item_iron_helmet = 306, + item_iron_chestplate = 307, + item_iron_leggings = 308, + item_iron_boots = 309, + item_diamond_helmet = 310, + item_diamond_chestplate = 311, + item_diamond_leggings = 312, + item_diamond_boots = 313, + item_golden_helmet = 314, + item_golden_chestplate = 315, + item_golden_leggings = 316, + item_golden_boots = 317, + item_flint = 318, + item_porkchop = 319, + item_cooked_porkchop = 320, + item_painting = 321, + item_golden_apple = 322, + item_sign = 323, + item_wooden_door = 324, + item_bucket = 325, + item_water_bucket = 326, + item_lava_bucket = 327, + item_minecart = 328, + item_saddle = 329, + item_iron_door = 330, + item_redstone = 331, + item_snowball = 332, + item_boat = 333, + item_leather = 334, + item_milk_bucket = 335, + item_brick = 336, + item_clay_ball = 337, + item_reeds = 338, + item_paper = 339, + item_book = 340, + item_slime_ball = 341, + item_chest_minecart = 342, + item_furnace_minecart = 343, + item_egg = 344, + item_compass = 345, + item_fishing_rod = 346, + item_clock = 347, + item_glowstone_dust = 348, + item_fish = 349, + item_cooked_fish = 350, + item_dye = 351, + item_bone = 352, + item_sugar = 353, + item_cake = 354, + item_bed = 355, + item_repeater = 356, + item_cookie = 357, + item_filled_map = 358, + item_shears = 359, + item_melon = 360, + item_pumpkin_seeds = 361, + item_melon_seeds = 362, + item_beef = 363, + item_cooked_beef = 364, + item_chicken = 365, + item_cooked_chicken = 366, + item_rotten_flesh = 367, + item_ender_pearl = 368, + item_blaze_rod = 369, + item_ghast_tear = 370, + item_gold_nugget = 371, + item_nether_wart = 372, + item_potion = 373, + item_glass_bottle = 374, + item_spider_eye = 375, + item_fermented_spider_eye = 376, + item_blaze_powder = 377, + item_magma_cream = 378, + item_brewing_stand = 379, + item_cauldron = 380, + item_ender_eye = 381, + item_speckled_melon = 382, + item_spawn_egg = 383, + item_experience_bottle = 384, + item_fire_charge = 385, + item_writable_book = 386, + item_written_book = 387, + item_emerald = 388, + item_item_frame = 389, + item_flower_pot = 390, + item_carrot = 391, + item_potato = 392, + item_baked_potato = 393, + item_poisonous_potato = 394, + item_map = 395, + item_golden_carrot = 396, + item_skull = 397, + item_carrot_on_a_stick = 398, + item_nether_star = 399, + item_pumpkin_pie = 400, + item_fireworks = 401, + item_firework_charge = 402, + item_enchanted_book = 403, + item_comparator = 404, + item_netherbrick = 405, + item_quartz = 406, + item_tnt_minecart = 407, + item_hopper_minecart = 408, + item_prismarine_shard = 409, + item_prismarine_crystals = 410, + item_rabbit = 411, + item_cooked_rabbit = 412, + item_rabbit_stew = 413, + item_rabbit_foot = 414, + item_rabbit_hide = 415, + item_armor_stand = 416, + item_iron_horse_armor = 417, + item_golden_horse_armor = 418, + item_diamond_horse_armor = 419, + item_lead = 420, + item_name_tag = 421, + item_command_block_minecart = 422, + item_mutton = 423, + item_cooked_mutton = 424, + item_banner = 425, + item_end_crystal = 426, + item_spruce_door = 427, + item_birch_door = 428, + item_jungle_door = 429, + item_acacia_door = 430, + item_dark_oak_door = 431, + item_chorus_fruit = 432, + item_popped_chorus_fruit = 433, + item_beetroot = 434, + item_beetroot_seeds = 435, + item_beetroot_soup = 436, + item_dragon_breath = 437, + item_splash_potion = 438, + item_spectral_arrow = 439, + item_tipped_arrow = 440, + item_lingering_potion = 441, + item_shield = 442, + item_elytra = 443, + item_spruce_boat = 444, + item_birch_boat = 445, + item_jungle_boat = 446, + item_acacia_boat = 447, + item_dark_oak_boat = 448, + item_totem_of_undying = 449, + item_shulker_shell = 450, + item_iron_nugget = 452, + item_knowledge_book = 453, + item_record_13 = 2256, + item_record_cat = 2257, + item_record_blocks = 2258, + item_record_chirp = 2259, + item_record_far = 2260, + item_record_mall = 2261, + item_record_mellohi = 2262, + item_record_stal = 2263, + item_record_strad = 2264, + item_record_ward = 2265, + item_record_11 = 2266, + item_record_wait = 2267 +}; + +typedef uint16_t mc_item_t; +#endif \ No newline at end of file