def _3_3_5_mappings(): return [ dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'int', 'category'), dbc.Mapping(2, 'int', 'dispel'), dbc.Mapping(3, 'int', 'mechanic'), dbc.Mapping(4, 'int', 'attr', count = 8), dbc.Mapping(12, 'int', 'stances'), dbc.Mapping(14, 'int', 'stances_not'), dbc.Mapping(16, 'int', 'target_mask'), dbc.Mapping(28, 'int', 'cast_time_index'), dbc.Mapping(29, 'int', 'cooldown'), dbc.Mapping(30, 'int', 'category_cooldown'), dbc.Mapping(31, 'int', 'interrupt_flags'), dbc.Mapping(32, 'int', 'aura_interrupt_flags'), dbc.Mapping(33, 'int', 'channel_interrupt_flags'), dbc.Mapping(34, 'int', 'proc_flags'), dbc.Mapping(35, 'int', 'proc_chance'), dbc.Mapping(36, 'int', 'proc_charges'), dbc.Mapping(37, 'int', 'max_level'), dbc.Mapping(38, 'int', 'base_level'), dbc.Mapping(39, 'int', 'level'), dbc.Mapping(40, 'int', 'duration_index'), dbc.Mapping(41, 'int', 'power_type'), dbc.Mapping(42, 'int', 'power'), dbc.Mapping(46, 'int', 'range_index'), dbc.Mapping(47, 'float', 'speed'), dbc.Mapping(49, 'int', 'stacks'), dbc.Mapping(68, 'sint', 'item_class'), dbc.Mapping(69, 'int', 'item_subclass'), dbc.Mapping(70, 'int', 'inv_slot'), dbc.Mapping(71, 'int', 'effect', count = 3), dbc.Mapping(74, 'int', 'die_sides', count = 3), #dbc.Mapping(71, 'int', 'base_dice', count = 3), dbc.Mapping(77, 'float', 'real_points_per_level', count = 3), dbc.Mapping(80, 'sint', 'base_points', count = 3), dbc.Mapping(83, 'sint', 'mechanic_effect', count = 3), dbc.Mapping(86, 'int', 'target_a', count = 3), dbc.Mapping(89, 'int', 'target_b', count = 3), dbc.Mapping(92, 'int', 'radius_index', count = 3), dbc.Mapping(95, 'int', 'aura', count = 3), dbc.Mapping(98, 'int', 'amplitude', count = 3), dbc.Mapping(101, 'float', 'multiple_value', count = 3), dbc.Mapping(104, 'int', 'chain', count = 3), dbc.Mapping(110, 'int', 'misc_a', count = 3), dbc.Mapping(113, 'int', 'misc_b', count = 3), dbc.Mapping(116, 'int', 'trigger', count = 3), dbc.Mapping(119, 'float', 'points_per_cp', count = 3), dbc.Mapping(133, 'int', 'icon_id'), dbc.Mapping(136, 'str', 'name'), dbc.Mapping(153, 'str', 'rank'), dbc.Mapping(187, 'str', 'tooltip'), dbc.Mapping(205, 'int', 'gcd_category'), dbc.Mapping(206, 'int', 'gcd'), dbc.Mapping(207, 'int', 'max_target_level'), dbc.Mapping(208, 'int', 'spell_family'), dbc.Mapping(200, 'int', '_spell_mask0'), dbc.Mapping(201, 'int', '_spell_mask1'), dbc.Mapping(202, 'int', 'spell_mask', post_process = flag12bytes), dbc.Mapping(212, 'int', 'max_targets'), dbc.Mapping(213, 'int', 'spell_class'), dbc.Mapping(214, 'int', 'prevention'), dbc.Mapping(216, 'float', 'dmg_multiplier', count = 3), dbc.Mapping(225, 'int', 'school_mask'), ]
def _2_0_3_mappings(): return [ dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'int', 'school_mask', post_process = lambda x, _: (1 << x)), dbc.Mapping(2, 'int', 'category'), dbc.Mapping(4, 'int', 'dispel'), dbc.Mapping(5, 'int', 'mechanic'), dbc.Mapping(6, 'int', 'attr', count = 6), dbc.Mapping(12, 'int', 'stances'), dbc.Mapping(13, 'int', 'stances_not'), dbc.Mapping(14, 'int', 'target_mask'), dbc.Mapping(21, 'int', 'cast_time_index'), dbc.Mapping(22, 'int', 'cooldown'), dbc.Mapping(23, 'int', 'category_cooldown'), dbc.Mapping(24, 'int', 'interrupt_flags'), dbc.Mapping(25, 'int', 'aura_interrupt_flags'), dbc.Mapping(26, 'int', 'channel_interrupt_flags'), dbc.Mapping(27, 'int', 'proc_flags'), dbc.Mapping(28, 'int', 'proc_chance'), dbc.Mapping(29, 'int', 'proc_charges'), dbc.Mapping(30, 'int', 'max_level'), dbc.Mapping(31, 'int', 'base_level'), dbc.Mapping(32, 'int', 'level'), dbc.Mapping(33, 'int', 'duration_index'), dbc.Mapping(34, 'int', 'power_type'), dbc.Mapping(35, 'int', 'power'), dbc.Mapping(39, 'int', 'range_index'), dbc.Mapping(40, 'float', 'speed'), dbc.Mapping(42, 'int', 'stacks'), dbc.Mapping(61, 'sint', 'item_class'), dbc.Mapping(62, 'int', 'item_subclass', post_process = lambda x, _: 0 if x == 0xFFFFFFFF else x), dbc.Mapping(63, 'int', 'inv_slot'), dbc.Mapping(64, 'int', 'effect', count = 3), dbc.Mapping(67, 'int', 'die_sides', count = 3), dbc.Mapping(70, 'int', 'base_dice', count = 3), dbc.Mapping(76, 'float', 'real_points_per_level', count = 3), dbc.Mapping(79, 'sint', 'base_points', count = 3), dbc.Mapping(82, 'sint', 'mechanic_effect', count = 3), dbc.Mapping(85, 'int', 'target_a', count = 3), dbc.Mapping(88, 'int', 'target_b', count = 3), dbc.Mapping(91, 'int', 'radius_index', count = 3), dbc.Mapping(94, 'int', 'aura', count = 3), dbc.Mapping(97, 'int', 'amplitude', count = 3), dbc.Mapping(100, 'float', 'multiple_value', count = 3), dbc.Mapping(103, 'int', 'chain', count = 3), dbc.Mapping(109, 'int', 'misc_a', count = 3), dbc.Mapping(112, 'int', 'misc_b', count = 3), dbc.Mapping(115, 'int', 'trigger', count = 3), dbc.Mapping(117, 'float', 'points_per_cp', count = 3), dbc.Mapping(120, 'int', 'icon_id'), dbc.Mapping(123, 'str', 'name'), dbc.Mapping(132, 'str', 'rank'), dbc.Mapping(150, 'str', 'tooltip'), dbc.Mapping(160, 'int', 'gcd_category'), dbc.Mapping(161, 'int', 'gcd'), dbc.Mapping(162, 'int', 'max_target_level'), dbc.Mapping(163, 'int', 'spell_family'), dbc.Mapping(164, 'long', 'spell_mask'), dbc.Mapping(166, 'int', 'max_targets'), dbc.Mapping(167, 'int', 'spell_class'), dbc.Mapping(168, 'int', 'prevention'), dbc.Mapping(170, 'float', 'dmg_multiplier', count = 3), ]
def _2_4_3_mappings(): return [ dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'int', 'category'), dbc.Mapping(3, 'int', 'dispel'), dbc.Mapping(4, 'int', 'mechanic'), dbc.Mapping(5, 'int', 'attr', count = 7), dbc.Mapping(12, 'int', 'stances'), dbc.Mapping(13, 'int', 'stances_not'), dbc.Mapping(14, 'int', 'target_mask'), dbc.Mapping(22, 'int', 'cast_time_index'), dbc.Mapping(23, 'int', 'cooldown'), dbc.Mapping(24, 'int', 'category_cooldown'), dbc.Mapping(25, 'int', 'interrupt_flags'), dbc.Mapping(26, 'int', 'aura_interrupt_flags'), dbc.Mapping(27, 'int', 'channel_interrupt_flags'), dbc.Mapping(28, 'int', 'proc_flags'), dbc.Mapping(29, 'int', 'proc_chance'), dbc.Mapping(30, 'int', 'proc_charges'), dbc.Mapping(31, 'int', 'max_level'), dbc.Mapping(32, 'int', 'base_level'), dbc.Mapping(33, 'int', 'level'), dbc.Mapping(34, 'int', 'duration_index'), dbc.Mapping(35, 'int', 'power_type'), dbc.Mapping(36, 'int', 'power'), dbc.Mapping(40, 'int', 'range_index'), dbc.Mapping(41, 'float', 'speed'), dbc.Mapping(43, 'int', 'stacks'), dbc.Mapping(62, 'sint', 'item_class'), dbc.Mapping(63, 'int', 'item_subclass'), dbc.Mapping(64, 'int', 'inv_slot'), dbc.Mapping(65, 'int', 'effect', count = 3), dbc.Mapping(68, 'int', 'die_sides', count = 3), dbc.Mapping(71, 'int', 'base_dice', count = 3), dbc.Mapping(77, 'float', 'real_points_per_level', count = 3), dbc.Mapping(80, 'sint', 'base_points', count = 3), dbc.Mapping(83, 'sint', 'mechanic_effect', count = 3), dbc.Mapping(86, 'int', 'target_a', count = 3), dbc.Mapping(89, 'int', 'target_b', count = 3), dbc.Mapping(92, 'int', 'radius_index', count = 3), dbc.Mapping(95, 'int', 'aura', count = 3), dbc.Mapping(98, 'int', 'amplitude', count = 3), dbc.Mapping(101, 'float', 'multiple_value', count = 3), dbc.Mapping(104, 'int', 'chain', count = 3), dbc.Mapping(110, 'int', 'misc_a', count = 3), dbc.Mapping(113, 'int', 'misc_b', count = 3), dbc.Mapping(116, 'int', 'trigger', count = 3), dbc.Mapping(119, 'float', 'points_per_cp', count = 3), dbc.Mapping(124, 'int', 'icon_id'), dbc.Mapping(127, 'str', 'name'), dbc.Mapping(144, 'str', 'rank'), dbc.Mapping(178, 'str', 'tooltip'), dbc.Mapping(196, 'int', 'gcd_category'), dbc.Mapping(197, 'int', 'gcd'), dbc.Mapping(198, 'int', 'max_target_level'), dbc.Mapping(199, 'int', 'spell_family'), dbc.Mapping(200, 'long', 'spell_mask'), dbc.Mapping(202, 'int', 'max_targets'), dbc.Mapping(203, 'int', 'spell_class'), dbc.Mapping(204, 'int', 'prevention'), dbc.Mapping(206, 'float', 'dmg_multiplier', count = 3), dbc.Mapping(215, 'int', 'school_mask'), ]
def _casttime_mapping(self): return [dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'int', 'cast_time')]
def _radius_mapping(self): return [dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'float', 'radius')]
def _range_mapping(self): return [dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'float', 'min'), dbc.Mapping(2, 'float', 'max')]
def _duration_mapping(self): return [dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'int', 'duration'), dbc.Mapping(2, 'int', 'duration_per_level'), dbc.Mapping(3, 'int', 'max_duration')]
def _icon_mapping(self): return [dbc.Mapping(0, 'int', 'id'), dbc.Mapping(1, 'str', 'path')]