Esempio n. 1
0
    private static void Tooltip_Base(Form cForm, Tooltip_Dlg.Tooltip_Text_Info[] saTextInfo, int nRank, G_ID eWidowID, int Valid_Weapons)
    {
        Tooltip_Dlg.Create_Texture        item = default(Tooltip_Dlg.Create_Texture);
        List <Tooltip_Dlg.Create_Texture> list = new List <Tooltip_Dlg.Create_Texture>();
        float num    = 230f;
        float num2   = 0f;
        float num3   = 0f;
        Rect  rcRect = default(Rect);

        num2 += 13f;
        int i = 0;

        while (i < saTextInfo.Length)
        {
            string strName = "ItemInfo_" + i;
            float  num4;
            if (saTextInfo[i].m_nTextureType == 3)
            {
                item.m_fY    = num2 + saTextInfo[i].m_fY;
                item.m_nRank = nRank;
                num4         = Tooltip_Dlg.F_STAR_HEIGHT + saTextInfo[i].m_fY;
                goto IL_2A9;
            }
            if (saTextInfo[i].m_nTextureType == 4)
            {
                item.m_fY = num2 + saTextInfo[i].m_fY;
                num4      = Tooltip_Dlg.F_WEAPON_HEIGHT + saTextInfo[i].m_fY;
                goto IL_2A9;
            }
            if (saTextInfo[i].m_nTextureType == 1)
            {
                item.m_fY = num2 + 8f - Tooltip_Dlg.F_LINE_TEXTURE_HEIGHT;
                num4      = 16f + Tooltip_Dlg.F_LINE_TEXTURE_HEIGHT;
                goto IL_2A9;
            }
            if (saTextInfo[i].m_nTextureType == 2)
            {
                item.m_fY = num2 + 8f - Tooltip_Dlg.F_LINE_TEXTURE_HEIGHT;
                num4      = 16f + Tooltip_Dlg.F_LINE_TEXTURE_HEIGHT;
                goto IL_2A9;
            }
            if (saTextInfo[i].m_strText != null)
            {
                if (i == 0)
                {
                    num4 = 22f;
                }
                else if (i == saTextInfo.Length - 1)
                {
                    int num5 = 0;
                    if (i == saTextInfo.Length - 1)
                    {
                        num5 = saTextInfo[i].m_strText.Length / 20;
                        num5++;
                    }
                    num4 = 20f * (float)num5;
                }
                else
                {
                    num4 = 20f;
                }
                string strText = saTextInfo[i].m_strText;
                rcRect.x      = ((i != 0) ? 13f : 0f);
                rcRect.y      = num2;
                rcRect.width  = ((i != 0) ? (num - 26f) : num);
                rcRect.height = num4;
                SpriteText.Anchor_Pos ePso = SpriteText.Anchor_Pos.Upper_Left;
                Tooltip_Dlg.s_laText = Tooltip_Dlg.Create_Text(cForm, strName, strText, rcRect, saTextInfo[i].m_fFontSize, ePso, false, NrTSingleton <CTextParser> .Instance.GetTextColor(saTextInfo[i].m_strTextColorCode));
                item.m_laText        = Tooltip_Dlg.s_laText;
                if (num3 < Tooltip_Dlg.s_laText.spriteText.TotalWidth)
                {
                    num3 = Tooltip_Dlg.s_laText.spriteText.TotalWidth;
                }
                num4 = Tooltip_Dlg.s_laText.spriteText.TotalHeight + 5f;
                goto IL_2A9;
            }
IL_2DD:
            i++;
            continue;
IL_2A9:
            item.m_nTextureType = saTextInfo[i].m_nTextureType;
            item.m_eAnchor      = saTextInfo[i].m_eAnchor;
            list.Add(item);
            num2 += num4;
            goto IL_2DD;
        }
        num2 += 13f;
        if (num3 < Tooltip_Dlg.F_STAR_MAX_WIDTH)
        {
            num3 = Tooltip_Dlg.F_STAR_MAX_WIDTH + 26f;
        }
        float num6 = num3 + 26f;

        cForm.SetSize((int)num6, (int)num2);
        for (int j = 0; j < list.Count; j++)
        {
            switch (list[j].m_nTextureType)
            {
            case 0:
                if (list[j].m_eAnchor == SpriteText.Anchor_Pos.Middle_Center)
                {
                    float x = num6 / 2f - list[j].m_laText.spriteText.TotalWidth / 2f;
                    list[j].m_laText.SetLocation(x, list[j].m_laText.GetLocationY());
                }
                break;

            case 1:
                Tooltip_Dlg.Draw_Line(cForm, list[j].m_fY, num6, false);
                break;

            case 2:
                Tooltip_Dlg.Draw_Line(cForm, list[j].m_fY, num6, true);
                break;

            case 3:
                Tooltip_Dlg.Draw_Star(cForm, list[j].m_fY, num6, list[j].m_nRank);
                break;

            case 4:
                Tooltip_Dlg.Draw_Weapon(cForm, list[j].m_fY, num6, Valid_Weapons);
                break;
            }
        }
    }