コード例 #1
0
        /// <summary>
        /// Returns the content of a certain catalogue page as string.
        /// </summary>
        /// <param name="pageName">The name of the catalogue page to retrieve the content of.</param>
        /// <param name="userRank">The rank of the user to handout the page content to. If this rank is lower than the required minimum rank to access this page, the 'access denied' cast is returned.</param>
        /// <returns></returns>
        public static string getPage(string pageName, byte userRank)
        {
            try
            {
                cataloguePage objPage = ((cataloguePage)cataloguePages[pageName]);
                if (userRank < objPage.minRank)
                {
                    return("holo.cast.catalogue.access_denied");
                }

                return(objPage.pageData);
            }

            catch
            {
                return("cast_catalogue.access_denied");
            }
        }
コード例 #2
0
        /// <summary>
        /// Caches a specified catalogue page, plus the items on this page.
        /// </summary>
        /// <param name="pageID">The ID of the page to cache. If -1 is specified, all the items that aren't on a page are cached.</param>
        private static void cachePage(int pageID)
        {
            DataRow dRow;

            using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
            {
                dRow = dbClient.getRow("SELECT indexname,minrank,displayname,style_layout,img_header,img_side,label_description,label_misc,label_moredetails FROM catalogue_pages WHERE indexid = '" + pageID + "' LIMIT 1");
            }

            if (pageID > 0 && dRow.Table.Rows.Count == 0)
            {
                return;
            }

            object[] pageObject = dRow.ItemArray;
            string[] pageData   = new string[pageObject.Length];
            for (int a = 0; a < pageData.Length; a++)
            {
                pageData[a] = pageObject[a].ToString();
            }


            string        pageIndexName = "";
            StringBuilder pageBuilder   = new System.Text.StringBuilder();
            cataloguePage objPage       = new cataloguePage();

            if (pageID > 0)
            {
                pageIndexName       = pageData[0];
                objPage.displayName = pageData[2];
                objPage.minRank     = Convert.ToByte(bool.Parse(pageData[1]));

                // Add the required fields for catalogue page (indexname, showname, page layout style (boxes etc))
                pageBuilder.Append("i:" + pageIndexName + Convert.ToChar(13) + "n:" + pageData[2] + Convert.ToChar(13) + "l:" + pageData[3] + Convert.ToChar(13));

                if (pageData[4] != "") // If there's a headline image set, add it
                {
                    pageBuilder.Append("g:" + pageData[4] + Convert.ToChar(13));
                }
                if (pageData[5] != "")  // If there is/are side image(s) set, add it/them
                {
                    pageBuilder.Append("e:" + pageData[5] + Convert.ToChar(13));
                }
                if (pageData[6] != "") // If there's a description set, add it
                {
                    pageBuilder.Append("h:" + pageData[6] + Convert.ToChar(13));
                }
                if (pageData[8] != "") // If there's a 'Click here for more details' label set, add it
                {
                    pageBuilder.Append("w:" + pageData[8] + Convert.ToChar(13));
                }
                if (pageData[7] != "") // If the misc additions field is not blank
                {
                    string[] miscDetail = pageData[7].Split(Convert.ToChar(13));
                    for (int m = 0; m < miscDetail.Length; m++)
                    {
                        pageBuilder.Append(miscDetail[m] + Convert.ToChar(13));
                    }
                }
            }

            DataTable dTable;

            using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
            {
                dTable = dbClient.getTable("SELECT tid, typeid, length, width, catalogue_cost, door, tradeable, recycleable, catalogue_name, catalogue_description, name_cct, colour, top, drink_ids, next_to_required, rights_required FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC");
            }
            int count = dTable.Rows.Count;

            int[]    itemTemplateIDs      = new int[count];
            int[]    itemTypeIDs          = new int[count];
            int[]    itemLengths          = new int[count];
            int[]    itemWidths           = new int[count];
            int[]    itemCosts            = new int[count];
            int[]    itemDoorFlags        = new int[count];
            int[]    itemTradeableFlags   = new int[count];
            int[]    itemRecycleableFlags = new int[count];
            string[] itemNames            = new string[count];
            string[] itemDescs            = new string[count];
            string[] itemCCTs             = new string[count];
            string[] itemColours          = new string[count];
            string[] itemTopHs            = new string[count];
            string[] itemDrinks           = new string[count];
            int[]    nexttoRequired       = new int[count];
            int[]    rightsRequired       = new int[count];
            int      i = 0;

            //tid,
            //typeid,
            //length,
            //width,
            //catalogue_cost,
            //door,
            //tradeable,
            //recycleable,
            //catalogue_name,
            //catalogue_description,
            //name_cct,
            //colour,
            //top
            //drinkids
            foreach (DataRow dbRow in dTable.Rows)
            {
                itemTemplateIDs[i]      = Convert.ToInt32(dbRow["tid"]);
                itemTypeIDs[i]          = Convert.ToInt32(dbRow["typeid"]);
                itemLengths[i]          = Convert.ToInt32(dbRow["length"]);
                itemWidths[i]           = Convert.ToInt32(dbRow["width"]);
                itemCosts[i]            = Convert.ToInt32(dbRow["catalogue_cost"]);
                itemDoorFlags[i]        = Convert.ToInt32(dbRow["door"]);
                itemTradeableFlags[i]   = Convert.ToInt32(dbRow["tradeable"]);
                itemRecycleableFlags[i] = Convert.ToInt32(dbRow["recycleable"]);
                itemNames[i]            = Convert.ToString(dbRow["catalogue_name"]);
                itemDescs[i]            = Convert.ToString(dbRow["catalogue_description"]);
                itemCCTs[i]             = Convert.ToString(dbRow["name_cct"]);
                itemColours[i]          = Convert.ToString(dbRow["colour"]);
                itemTopHs[i]            = Convert.ToString(dbRow["top"]);
                itemDrinks[i]           = Convert.ToString(dbRow["drink_ids"]);
                nexttoRequired[i]       = Convert.ToInt32(dbRow["next_to_required"]);
                rightsRequired[i]       = Convert.ToInt32(dbRow["rights_required"]);
                i++;
            }

            for (i = 0; i < itemTemplateIDs.Length; i++)
            {
                if (stringManager.getStringPart(itemCCTs[i], 0, 4) != "deal")
                {
                    itemCache.Add(itemTemplateIDs[i], new itemTemplate(itemCCTs[i], Convert.ToByte(itemTypeIDs[i]), itemColours[i], itemLengths[i], itemWidths[i], double.Parse(itemTopHs[i]), (itemDoorFlags[i] == 1), (itemTradeableFlags[i] == 1), (itemRecycleableFlags[i] == 1), nexttoRequired[i], rightsRequired[i], itemDrinks[i]));
                    if (pageID == -1)
                    {
                        continue;
                    }

                    pageBuilder.Append("p:" + itemNames[i] + Convert.ToChar(9) + itemDescs[i] + Convert.ToChar(9) + itemCosts[i] + Convert.ToChar(9) + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                    {
                        pageBuilder.Append("i");
                    }
                    else
                    {
                        pageBuilder.Append("s");
                    }

                    pageBuilder.Append(Convert.ToChar(9) + itemCCTs[i] + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                    {
                        pageBuilder.Append(Convert.ToChar(9));
                    }
                    else
                    {
                        pageBuilder.Append("0" + Convert.ToChar(9));
                    }

                    if (itemTypeIDs[i] == 0)
                    {
                        pageBuilder.Append(Convert.ToChar(9));
                    }
                    else
                    {
                        pageBuilder.Append(itemLengths[i] + "," + itemWidths[i] + Convert.ToChar(9));
                    }

                    pageBuilder.Append(itemCCTs[i] + Convert.ToChar(9));

                    if (itemTypeIDs[i] > 0)
                    {
                        pageBuilder.Append(itemColours[i]);
                    }

                    pageBuilder.Append(Convert.ToChar(13));
                }
                else
                {
                    int dealID = int.Parse(itemCCTs[i].Substring(4));
                    using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
                    {
                        dTable = dbClient.getTable("SELECT tid, amount FROM catalogue_deals WHERE id = '" + dealID + "'");
                    }
                    count = dTable.Rows.Count;
                    int[] dealItemIDs     = new int[count];
                    int[] dealItemAmounts = new int[count];
                    int   n = 0;
                    foreach (DataRow dbRow in dTable.Rows)
                    {
                        dealItemIDs[n]     = Convert.ToInt32(dbRow["tid"]);
                        dealItemAmounts[n] = Convert.ToInt32(dbRow["amount"]);
                        n++;
                    }

                    pageBuilder.Append("p:" + itemNames[i] + Convert.ToChar(9) + itemDescs[i] + Convert.ToChar(9) + itemCosts[i] + Convert.ToChar(9) + Convert.ToChar(9) + "d");
                    pageBuilder.Append(Convert.ToChar(9), 4);
                    pageBuilder.Append("deal" + dealID + Convert.ToChar(9) + Convert.ToChar(9) + dealItemIDs.Length + Convert.ToChar(9));

                    for (int l = 0; l < dealItemIDs.Length; l++)
                    {
                        using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
                        {
                            dRow = dbClient.getRow("SELECT name_cct, colour FROM catalogue_items WHERE tid = '" + dealItemIDs[l] + "' LIMIT 1");
                        }

                        string itemCCT    = Convert.ToString(dRow["name_cct"]);
                        string itemColour = Convert.ToString(dRow["colour"]);
                        pageBuilder.Append(itemCCT + Convert.ToChar(9) + dealItemAmounts[l] + Convert.ToChar(9) + itemColour + Convert.ToChar(9));
                    }
                }
            }
            if (pageID == -1)
            {
                return;
            }

            objPage.pageData = pageBuilder.ToString();
            cataloguePages.Add(pageIndexName, objPage);
        }
コード例 #3
0
ファイル: catalogueManager.cs プロジェクト: habb0/HoloRebirth
        /// <summary>
        /// Caches a specified catalogue page, plus the items on this page.
        /// </summary>
        /// <param name="pageID">The ID of the page to cache. If -1 is specified, all the items that aren't on a page are cached.</param>
        private static void cachePage(int pageID)
        {
            DataRow dRow;
            using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
            {
                dRow = dbClient.getRow("SELECT indexname,minrank,displayname,style_layout,img_header,img_side,label_description,label_misc,label_moredetails FROM catalogue_pages WHERE indexid = '" + pageID + "' LIMIT 1");
            }

            if (pageID > 0 && dRow.Table.Rows.Count == 0)
            {
                return;
            }

            object[] pageObject = dRow.ItemArray;
            string[] pageData = new string[pageObject.Length];
            for (int a = 0; a < pageData.Length; a++)
                pageData[a] = pageObject[a].ToString();

            string pageIndexName = "";
            StringBuilder pageBuilder = new System.Text.StringBuilder();
            cataloguePage objPage = new cataloguePage();

            if (pageID > 0)
            {
                pageIndexName = pageData[0];
                objPage.displayName = pageData[2];
                objPage.minRank = Convert.ToByte(bool.Parse(pageData[1]));

                // Add the required fields for catalogue page (indexname, showname, page layout style (boxes etc))
                pageBuilder.Append("i:" + pageIndexName + Convert.ToChar(13) + "n:" + pageData[2] + Convert.ToChar(13) + "l:" + pageData[3] + Convert.ToChar(13));

                if (pageData[4] != "") // If there's a headline image set, add it
                    pageBuilder.Append("g:" + pageData[4] + Convert.ToChar(13));
                if (pageData[5] != "")  // If there is/are side image(s) set, add it/them
                    pageBuilder.Append("e:" + pageData[5] + Convert.ToChar(13));
                if (pageData[6] != "") // If there's a description set, add it
                    pageBuilder.Append("h:" + pageData[6] + Convert.ToChar(13));
                if (pageData[8] != "") // If there's a 'Click here for more details' label set, add it
                    pageBuilder.Append("w:" + pageData[8] + Convert.ToChar(13));
                if (pageData[7] != "") // If the misc additions field is not blank
                {
                    string[] miscDetail = pageData[7].Split(Convert.ToChar(13));
                    for (int m = 0; m < miscDetail.Length; m++)
                        pageBuilder.Append(miscDetail[m] + Convert.ToChar(13));
               }
            }

            DataTable dTable;
            using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
            {
                dTable = dbClient.getTable("SELECT tid, typeid, length, width, catalogue_cost, door, tradeable, recycleable, catalogue_name, catalogue_description, name_cct, colour, top FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC");
            }
            int count = dTable.Rows.Count;
            int[] itemTemplateIDs = new int[count];
            int[] itemTypeIDs = new int[count];
            int[] itemLengths = new int[count];
            int[] itemWidths = new int[count];
            int[] itemCosts = new int[count];
            int[] itemDoorFlags = new int[count];
            int[] itemTradeableFlags = new int[count];
            int[] itemRecycleableFlags = new int[count];
            string[] itemNames = new string[count];
            string[] itemDescs = new string[count];
            string[] itemCCTs = new string[count];
            string[] itemColours = new string[count];
            string[] itemTopHs = new string[count];
            int i = 0;
            //tid,
            //typeid,
            //length,
            //width,
            //catalogue_cost,
            //door,
            //tradeable,
            //recycleable,
            //catalogue_name,
            //catalogue_description,
            //name_cct,
            //colour,
            //top
            foreach (DataRow dbRow in dTable.Rows)
            {
                itemTemplateIDs[i] = Convert.ToInt32(dbRow["tid"]);
                itemTypeIDs[i] = Convert.ToInt32(dbRow["typeid"]);
                itemLengths[i] = Convert.ToInt32(dbRow["length"]);
                itemWidths[i] = Convert.ToInt32(dbRow["width"]);
                itemCosts[i] = Convert.ToInt32(dbRow["catalogue_cost"]);
                itemDoorFlags[i] = Convert.ToInt32(dbRow["door"]);
                itemTradeableFlags[i] = Convert.ToInt32(dbRow["tradeable"]);
                itemRecycleableFlags[i] = Convert.ToInt32(dbRow["recycleable"]);
                itemNames[i] = Convert.ToString(dbRow["catalogue_name"]);
                itemDescs[i] = Convert.ToString(dbRow["catalogue_description"]);
                itemCCTs[i] = Convert.ToString(dbRow["name_cct"]);
                itemColours[i] = Convert.ToString(dbRow["colour"]);
                itemTopHs[i] = Convert.ToString(dbRow["top"]);
                i++;
            }

            for (i = 0; i < itemTemplateIDs.Length; i++)
            {
                if(stringManager.getStringPart(itemCCTs[i],0,4) != "deal")
                {
                    itemCache.Add(itemTemplateIDs[i], new itemTemplate(itemCCTs[i], Convert.ToByte(itemTypeIDs[i]), itemColours[i], itemLengths[i], itemWidths[i], double.Parse(itemTopHs[i]), (itemDoorFlags[i] == 1), (itemTradeableFlags[i] == 1), (itemRecycleableFlags[i] == 1)));
                    if (pageID == -1)
                        continue;

                    pageBuilder.Append("p:" + itemNames[i] + Convert.ToChar(9) + itemDescs[i] + Convert.ToChar(9) + itemCosts[i] + Convert.ToChar(9) + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                        pageBuilder.Append("i");
                    else
                        pageBuilder.Append("s");

                    pageBuilder.Append(Convert.ToChar(9) + itemCCTs[i] + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                        pageBuilder.Append(Convert.ToChar(9));
                    else
                        pageBuilder.Append("0" + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                        pageBuilder.Append(Convert.ToChar(9));
                    else
                        pageBuilder.Append(itemLengths[i] + "," + itemWidths[i] + Convert.ToChar(9));

                    pageBuilder.Append(itemCCTs[i] + Convert.ToChar(9));

                    if (itemTypeIDs[i] > 0)
                        pageBuilder.Append(itemColours[i]);

                    pageBuilder.Append(Convert.ToChar(13));
                }
                else
                {
                    int dealID = int.Parse(itemCCTs[i].Substring(4));
                    using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
                    {
                        dTable = dbClient.getTable("SELECT tid, amount FROM catalogue_deals WHERE id = '" + dealID + "'");
                    }
                    count = dTable.Rows.Count;
                    int[] dealItemIDs = new int[count];
                    int[] dealItemAmounts = new int[count];
                    int n = 0;
                    foreach(DataRow dbRow in dTable.Rows)
                    {
                        dealItemIDs[n] = Convert.ToInt32(dbRow["tid"]);
                        dealItemAmounts[n] = Convert.ToInt32(dbRow["amount"]);
                        n++;
                    }

                    pageBuilder.Append("p:" + itemNames[i] + Convert.ToChar(9) + itemDescs[i] + Convert.ToChar(9) + itemCosts[i] + Convert.ToChar(9) + Convert.ToChar(9) + "d");
                    pageBuilder.Append(Convert.ToChar(9), 4);
                    pageBuilder.Append("deal" + dealID + Convert.ToChar(9) + Convert.ToChar(9) + dealItemIDs.Length + Convert.ToChar(9));

                    for (int l = 0; l < dealItemIDs.Length; l++)
                    {
                        using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
                        {
                            dRow = dbClient.getRow("SELECT name_cct, colour FROM catalogue_items WHERE tid = '" + dealItemIDs[l] + "' LIMIT 1");
                        }

                        string itemCCT = Convert.ToString(dRow["name_cct"]);
                        string itemColour = Convert.ToString(dRow["colour"]);
                        pageBuilder.Append(itemCCT + Convert.ToChar(9) + dealItemAmounts[l] + Convert.ToChar(9) + itemColour + Convert.ToChar(9));
                    }
                }
            }
            if (pageID == -1)
                return;

            objPage.pageData = pageBuilder.ToString();
            cataloguePages.Add(pageIndexName, objPage);
        }
コード例 #4
0
        /// <summary>
        /// Caches a specified catalogue page, plus the items on this page.
        /// </summary>
        /// <param name="pageID">The ID of the page to cache. If -1 is specified, all the items that aren't on a page are cached.</param>
        private static void cachePage(int pageID)
        {
            string[] pageData = DB.runReadRow("SELECT indexname,minrank,displayname,style_layout,img_header,img_side,label_description,label_misc,label_moredetails FROM catalogue_pages WHERE indexid = '" + pageID + "'");
            if (pageID > 0 && pageData.Length == 0)
            {
                return;
            }

            string        pageIndexName = "";
            StringBuilder pageBuilder   = new System.Text.StringBuilder();
            cataloguePage objPage       = new cataloguePage();

            if (pageID > 0)
            {
                pageIndexName       = pageData[0];
                objPage.displayName = pageData[2];
                objPage.minRank     = byte.Parse(pageData[1]);

                // Add the required fields for catalogue page (indexname, showname, page layout style (boxes etc))
                pageBuilder.Append("i:" + pageIndexName + Convert.ToChar(13) + "n:" + pageData[2] + Convert.ToChar(13) + "l:" + pageData[3] + Convert.ToChar(13));

                if (pageData[4] != "") // If there's a headline image set, add it
                {
                    pageBuilder.Append("g:" + pageData[4] + Convert.ToChar(13));
                }
                if (pageData[5] != "")  // If there is/are side image(s) set, add it/them
                {
                    pageBuilder.Append("e:" + pageData[5] + Convert.ToChar(13));
                }
                if (pageData[6] != "") // If there's a description set, add it
                {
                    pageBuilder.Append("h:" + pageData[6] + Convert.ToChar(13));
                }
                if (pageData[8] != "") // If there's a 'Click here for more details' label set, add it
                {
                    pageBuilder.Append("w:" + pageData[8] + Convert.ToChar(13));
                }
                if (pageData[7] != "") // If the misc additions field is not blank
                {
                    string[] miscDetail = pageData[7].Split(Convert.ToChar(13));
                    for (int m = 0; m < miscDetail.Length; m++)
                    {
                        pageBuilder.Append(miscDetail[m] + Convert.ToChar(13));
                    }
                }
            }

            int[]    itemTemplateIDs      = DB.runReadColumn("SELECT tid FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemTypeIDs          = DB.runReadColumn("SELECT typeid FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemLengths          = DB.runReadColumn("SELECT length FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemWidths           = DB.runReadColumn("SELECT width FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemCosts            = DB.runReadColumn("SELECT catalogue_cost FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemDoorFlags        = DB.runReadColumn("SELECT door FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemTradeableFlags   = DB.runReadColumn("SELECT tradeable FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            int[]    itemRecycleableFlags = DB.runReadColumn("SELECT recycleable FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0, null);
            string[] itemNames            = DB.runReadColumn("SELECT catalogue_name FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0);
            string[] itemDescs            = DB.runReadColumn("SELECT catalogue_description FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0);
            string[] itemCCTs             = DB.runReadColumn("SELECT name_cct FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0);
            string[] itemColours          = DB.runReadColumn("SELECT colour FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0);
            string[] itemTopHs            = DB.runReadColumn("SELECT top FROM catalogue_items WHERE catalogue_id_page = '" + pageID + "' ORDER BY catalogue_id_index ASC", 0);

            for (int i = 0; i < itemTemplateIDs.Length; i++)
            {
                if (stringManager.getStringPart(itemCCTs[i], 0, 4) != "deal")
                {
                    itemCache.Add(itemTemplateIDs[i], new itemTemplate(itemCCTs[i], Convert.ToByte(itemTypeIDs[i]), itemColours[i], itemLengths[i], itemWidths[i], double.Parse(itemTopHs[i]), (itemDoorFlags[i] == 1), (itemTradeableFlags[i] == 1), (itemRecycleableFlags[i] == 1)));
                    if (pageID == -1)
                    {
                        continue;
                    }

                    pageBuilder.Append("p:" + itemNames[i] + Convert.ToChar(9) + itemDescs[i] + Convert.ToChar(9) + itemCosts[i] + Convert.ToChar(9) + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                    {
                        pageBuilder.Append("i");
                    }
                    else
                    {
                        pageBuilder.Append("s");
                    }

                    pageBuilder.Append(Convert.ToChar(9) + itemCCTs[i] + Convert.ToChar(9));

                    if (itemTypeIDs[i] == 0)
                    {
                        pageBuilder.Append(Convert.ToChar(9));
                    }
                    else
                    {
                        pageBuilder.Append("0" + Convert.ToChar(9));
                    }

                    if (itemTypeIDs[i] == 0)
                    {
                        pageBuilder.Append(Convert.ToChar(9));
                    }
                    else
                    {
                        pageBuilder.Append(itemLengths[i] + "," + itemWidths[i] + Convert.ToChar(9));
                    }

                    pageBuilder.Append(itemCCTs[i] + Convert.ToChar(9));

                    if (itemTypeIDs[i] > 0)
                    {
                        pageBuilder.Append(itemColours[i]);
                    }

                    pageBuilder.Append(Convert.ToChar(13));
                }
                else
                {
                    int   dealID          = int.Parse(itemCCTs[i].Substring(4));
                    int[] dealItemIDs     = DB.runReadColumn("SELECT tid FROM catalogue_deals WHERE id = '" + dealID + "'", 0, null);
                    int[] dealItemAmounts = DB.runReadColumn("SELECT amount FROM catalogue_deals WHERE id = '" + dealID + "'", 0, null);

                    pageBuilder.Append("p:" + itemNames[i] + Convert.ToChar(9) + itemDescs[i] + Convert.ToChar(9) + itemCosts[i] + Convert.ToChar(9) + Convert.ToChar(9) + "d");
                    pageBuilder.Append(Convert.ToChar(9), 4);
                    pageBuilder.Append("deal" + dealID + Convert.ToChar(9) + Convert.ToChar(9) + dealItemIDs.Length + Convert.ToChar(9));

                    for (int y = 0; y < dealItemIDs.Length; y++)
                    {
                        string itemCCT    = DB.runRead("SELECT name_cct FROM catalogue_items WHERE tid = '" + dealItemIDs[y] + "'");
                        string itemColour = DB.runRead("SELECT colour FROM catalogue_items WHERE tid = '" + dealItemIDs[y] + "'");
                        pageBuilder.Append(itemCCT + Convert.ToChar(9) + dealItemAmounts[y] + Convert.ToChar(9) + itemColour + Convert.ToChar(9));
                    }
                }
            }

            if (pageID == -1)
            {
                return;
            }

            objPage.pageData = pageBuilder.ToString();
            cataloguePages.Add(pageIndexName, objPage);
        }