[LIST]
[*][COLOR=#333333][COLOR=#0600FF][B]using[/B][/COLOR] [COLOR=#008080]System.Collections.Generic[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333][COLOR=#0600FF][B]using[/B][/COLOR] [COLOR=#008080]Plus.HabboHotel.Catalog[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333][COLOR=#0600FF][B]using[/B][/COLOR] [COLOR=#008080]Plus.HabboHotel.GameClients[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333][COLOR=#0600FF][B]namespace[/B][/COLOR] Plus[COLOR=#008000].[/COLOR][COLOR=#0000FF]Communication[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Packets[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Outgoing[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Catalog[/COLOR][/COLOR]
[*][COLOR=#333333][COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]public[/B][/COLOR] [COLOR=#6666CC][B]class[/B][/COLOR] CatalogIndexComposer [COLOR=#008000]:[/COLOR] ServerPacket[/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]public[/B][/COLOR] CatalogIndexComposer[COLOR=#008000]([/COLOR]GameClient Session, ICollection[COLOR=#008000]<[/COLOR]CatalogPage[COLOR=#008000]>[/COLOR] Pages, [COLOR=#6666CC][B]int[/B][/COLOR] Sub [COLOR=#008000]=[/COLOR] [COLOR=#FF0000]0[/COLOR][COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]:[/COLOR] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000]([/COLOR]ServerPacketHeader[COLOR=#008000].[/COLOR][COLOR=#0000FF]CatalogIndexMessageComposer[/COLOR][COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] WriteRootIndex[COLOR=#008000]([/COLOR]Session, Pages[COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]foreach[/B][/COLOR] [COLOR=#008000]([/COLOR]CatalogPage Page [COLOR=#0600FF][B]in[/B][/COLOR] Pages[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]if[/B][/COLOR] [COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]ParentId[/COLOR] [COLOR=#008000]!=[/COLOR] [COLOR=#008000]-[/COLOR][COLOR=#FF0000]1[/COLOR] [COLOR=#008000]||[/COLOR] Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumRank[/COLOR] [COLOR=#008000]>[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]||[/COLOR] [COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumVIP[/COLOR] [COLOR=#008000]>[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]VIPRank[/COLOR] [COLOR=#008000]&&[/COLOR]Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]==[/COLOR] [COLOR=#FF0000]1[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]continue[/B][/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] WritePage[COLOR=#008000]([/COLOR]Page, CalcTreeSize[COLOR=#008000]([/COLOR]Session, Pages, Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Id[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]foreach[/B][/COLOR] [COLOR=#008000]([/COLOR]CatalogPage child [COLOR=#0600FF][B]in[/B][/COLOR] Pages[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]if[/B][/COLOR] [COLOR=#008000]([/COLOR]child[COLOR=#008000].[/COLOR][COLOR=#0000FF]ParentId[/COLOR] [COLOR=#008000]!=[/COLOR] Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Id[/COLOR] [COLOR=#008000]||[/COLOR] child[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumRank[/COLOR] [COLOR=#008000]>[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]||[/COLOR] [COLOR=#008000]([/COLOR]child[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumVIP[/COLOR] [COLOR=#008000]>[/COLOR]Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]VIPRank[/COLOR] [COLOR=#008000]&&[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]==[/COLOR] [COLOR=#FF0000]1[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]continue[/B][/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] WritePage[COLOR=#008000]([/COLOR]child, CalcTreeSize[COLOR=#008000]([/COLOR]Session, Pages, child[COLOR=#008000].[/COLOR][COLOR=#0000FF]Id[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]foreach[/B][/COLOR] [COLOR=#008000]([/COLOR]CatalogPage baby [COLOR=#0600FF][B]in[/B][/COLOR] Pages[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]if[/B][/COLOR] [COLOR=#008000]([/COLOR]baby[COLOR=#008000].[/COLOR][COLOR=#0000FF]ParentId[/COLOR] [COLOR=#008000]!=[/COLOR] child[COLOR=#008000].[/COLOR][COLOR=#0000FF]Id[/COLOR] [COLOR=#008000]||[/COLOR] baby[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumRank[/COLOR] [COLOR=#008000]>[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]||[/COLOR] [COLOR=#008000]([/COLOR]baby[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumVIP[/COLOR] [COLOR=#008000]>[/COLOR]Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]VIPRank[/COLOR] [COLOR=#008000]&&[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]==[/COLOR] [COLOR=#FF0000]1[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]continue[/B][/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] WritePage[COLOR=#008000]([/COLOR]baby, [COLOR=#FF0000]0[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteBoolean[/COLOR][COLOR=#008000]([/COLOR][COLOR=#0600FF][B]false[/B][/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteString[/COLOR][COLOR=#008000]([/COLOR][COLOR=#666666]"NORMAL"[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]public[/B][/COLOR] [COLOR=#6666CC][B]void[/B][/COLOR] WriteRootIndex[COLOR=#008000]([/COLOR]GameClient Session, ICollection[COLOR=#008000]<[/COLOR]CatalogPage[COLOR=#008000]>[/COLOR] Pages[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteBoolean[/COLOR][COLOR=#008000]([/COLOR][COLOR=#0600FF][B]true[/B][/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR][COLOR=#FF0000]0[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000]-[/COLOR][COLOR=#FF0000]1[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteString[/COLOR][COLOR=#008000]([/COLOR][COLOR=#666666]"root"[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteString[/COLOR][COLOR=#008000]([/COLOR][COLOR=#6666CC][B]string[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Empty[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR][COLOR=#FF0000]0[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR]CalcTreeSize[COLOR=#008000]([/COLOR]Session, Pages, [COLOR=#008000]-[/COLOR][COLOR=#FF0000]1[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]public[/B][/COLOR] [COLOR=#6666CC][B]void[/B][/COLOR] WritePage[COLOR=#008000]([/COLOR]CatalogPage Page, [COLOR=#6666CC][B]int[/B][/COLOR] TreeSize[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteBoolean[/COLOR][COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Visible[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Icon[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000]![/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Enabled[/COLOR] [COLOR=#008000]?[/COLOR] [COLOR=#008000]-[/COLOR][COLOR=#FF0000]1[/COLOR] [COLOR=#008000]:[/COLOR] Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Id[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteString[/COLOR][COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]PageLink[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteString[/COLOR][COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]Caption[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]ItemOffers[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Count[/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]foreach[/B][/COLOR] [COLOR=#008000]([/COLOR][COLOR=#6666CC][B]int[/B][/COLOR] i [COLOR=#0600FF][B]in[/B][/COLOR] Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]ItemOffers[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Keys[/COLOR][COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR]i[COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]base[/B][/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]WriteInteger[/COLOR][COLOR=#008000]([/COLOR]TreeSize[COLOR=#008000])[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]public[/B][/COLOR] [COLOR=#6666CC][B]int[/B][/COLOR] CalcTreeSize[COLOR=#008000]([/COLOR]GameClient Session, ICollection[COLOR=#008000]<[/COLOR]CatalogPage[COLOR=#008000]>[/COLOR] Pages, [COLOR=#6666CC][B]int[/B][/COLOR] ParentId[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#6666CC][B]int[/B][/COLOR] i [COLOR=#008000]=[/COLOR] [COLOR=#FF0000]0[/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]foreach[/B][/COLOR] [COLOR=#008000]([/COLOR]CatalogPage Page [COLOR=#0600FF][B]in[/B][/COLOR] Pages[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]{[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]if[/B][/COLOR] [COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumRank[/COLOR] [COLOR=#008000]>[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]||[/COLOR] [COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]MinimumVIP[/COLOR] [COLOR=#008000]>[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]VIPRank[/COLOR] [COLOR=#008000]&&[/COLOR] Session[COLOR=#008000].[/COLOR][COLOR=#0000FF]GetHabbo[/COLOR][COLOR=#008000]([/COLOR][COLOR=#008000])[/COLOR][COLOR=#008000].[/COLOR][COLOR=#0000FF]Rank[/COLOR] [COLOR=#008000]==[/COLOR][COLOR=#FF0000]1[/COLOR][COLOR=#008000])[/COLOR] [COLOR=#008000]||[/COLOR] Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]ParentId[/COLOR] [COLOR=#008000]!=[/COLOR] ParentId[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]continue[/B][/COLOR][COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]if[/B][/COLOR] [COLOR=#008000]([/COLOR]Page[COLOR=#008000].[/COLOR][COLOR=#0000FF]ParentId[/COLOR] [COLOR=#008000]==[/COLOR] ParentId[COLOR=#008000])[/COLOR][/COLOR]
[*][COLOR=#333333] i[COLOR=#008000]++;[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#0600FF][B]return[/B][/COLOR] i[COLOR=#008000];[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333] [COLOR=#008000]}[/COLOR][/COLOR]
[*][COLOR=#333333][COLOR=#008000]}[/COLOR][/COLOR]
[/LIST]