Пример #1
0
        public Controls(
            KOEI.WP7_2012.WP7 wp,
            KOEI.WP7_2012.Horse.Breeding.Enums.血統タイプ type,
            Enums.NameType dispNameType,
            UMAListView.Setting listViewSetting,
            Breeding.ListViewSetting breedingListViewSetting
            )
        {
            this.InitializeComponent();

            this.wp_ = wp;
            this.type_ = type;
            this.dispNameType_ = dispNameType;
            this.area_ = Area.日本;
            this.listViewSetting_ = listViewSetting;
            this.breedingListViewSetting_ = breedingListViewSetting;
            this.SetupControls();
        }
        /// <summary>
        /// 表示する馬リストを作成する
        /// </summary>
        /// <param name="wp"></param>
        /// <param name="arg">配合する繁殖牝馬の番号</param>
        /// <returns></returns>
        protected override ListViewItem[] CreateHorseListSub( KOEI.WP7_2012.WP7 wp, object arg )
        {
            this.__subitems_stack__ = new ListViewItem.ListViewSubItem[ DefaultColumnHeaders.Length ];

            var dam_num = (uint)arg;
            var dam_pedigree = new KOEI.WP7_2012.Horse.Pedigree( wp, dam_num, KOEI.WP7_2012.Horse.Breeding.Enums.血統タイプ.母系 );

            var family_line_info = KOEI.WP7_2012.Horse.FamilyLineInfo.CreateFamilyLineInfoList( wp, this.ListViewConfig.BreedingArea );

            var sire_data = new HSireData();
            var sire_blood_data = new HBloodData();
            var sire_abl_data = new HAblData();

            var items = new List< ListViewItem >();

            this.white_color_horse_ = 0;

            for( var i=0; i<wp.Config.HorseSireTable.RecordMaxLength; ++i )
            {
                var horse_num = i;

                wp.HSireTable.GetData( (uint)horse_num, ref sire_data );
                wp.HAblTable.GetData( sire_data.abl_num, ref sire_abl_data );

                if( !this.IsViewRecord( wp, (uint)horse_num, ref sire_data, ref sire_abl_data ) ) {
                    continue;
                }

                wp.HBloodTable.GetData( sire_data.blood_num, ref sire_blood_data );

                if( sire_blood_data.father_num == wp.Config.IgnoreBloodNumber ) {
                    continue;
                }

                var sire_pedigree = new KOEI.WP7_2012.Horse.Pedigree(
                    wp,
                    (uint)horse_num,
                    KOEI.WP7_2012.Horse.Breeding.Enums.血統タイプ.父系
                );

                var breeding = new KOEI.WP7_2012.Horse.Breeding.Breeding(
                    wp,
                    family_line_info,
                    this.ListViewConfig.BreedingArea,
                    sire_pedigree,
                    dam_pedigree
                );

                if( this.ListViewConfig.MaxRisk < breeding.Combination.GetPoint(wp).Risk ) {
                    continue;
                }

                items.Add( this.CreateListViewItemByHorseNum( wp, (uint)horse_num, ref sire_data, breeding ) );
            }

            return items.ToArray();
        }