diff --git a/Client/Tools/UfrmFilter.lfm b/Client/Tools/UfrmFilter.lfm index 094c49d..f1c7aa7 100644 --- a/Client/Tools/UfrmFilter.lfm +++ b/Client/Tools/UfrmFilter.lfm @@ -1,309 +1,306 @@ -object frmFilter: TfrmFilter - Left = 290 - Height = 492 - Top = 171 - Width = 236 - ActiveControl = rgFilterType.RadioButton0 - BorderIcons = [biSystemMenu, biMinimize] - BorderStyle = bsToolWindow - Caption = 'Filter' - ClientHeight = 492 - ClientWidth = 236 - Font.Height = -11 - OnCreate = FormCreate - OnDestroy = FormDestroy - OnShow = FormShow - LCLVersion = '0.9.25' - object rgFilterType: TRadioGroup - Left = 4 - Height = 40 - Top = 4 - Width = 228 - Align = alTop - AutoFill = True - BorderSpacing.Around = 4 - Caption = 'Filter rule' - ChildSizing.LeftRightSpacing = 6 - ChildSizing.TopBottomSpacing = 6 - ChildSizing.EnlargeHorizontal = crsHomogenousChildResize - ChildSizing.EnlargeVertical = crsHomogenousChildResize - ChildSizing.ShrinkHorizontal = crsScaleChilds - ChildSizing.ShrinkVertical = crsScaleChilds - ChildSizing.Layout = cclLeftToRightThenTopToBottom - ChildSizing.ControlsPerLine = 2 - ClientHeight = 23 - ClientWidth = 224 - Columns = 2 - ItemIndex = 0 - Items.Strings = ( - 'Exclusive' - 'Inclusive' - ) - ParentFont = True - TabOrder = 0 - end - object GroupBox1: TGroupBox - Left = 4 - Height = 259 - Top = 48 - Width = 228 - Align = alClient - BorderSpacing.Around = 4 - Caption = 'Tile filter' - ClientHeight = 242 - ClientWidth = 224 - ParentFont = True - TabOrder = 1 - object Label1: TLabel - Left = 4 - Height = 28 - Top = 28 - Width = 216 - Align = alTop - BorderSpacing.Around = 4 - Caption = 'Drag and Drop static tiles from the tile list on this list to add them to the filter.' - ParentColor = False - ParentFont = True - WordWrap = True - end - object vdtFilter: TVirtualDrawTree - Tag = 1 - Cursor = 63 - Left = 4 - Height = 152 - Top = 60 - Width = 216 - Align = alClient - BorderSpacing.Around = 4 - BorderStyle = bsSingle - DefaultNodeHeight = 44 - DragType = dtVCL - Header.Options = [hoColumnResize, hoDrag, hoVisible] - Header.ParentFont = True - Header.Style = hsFlatButtons - Header.Columns = < - item - Text = 'ID' - end - item - Position = 1 - Width = 44 - Text = 'Tile' - end - item - Position = 2 - Width = 100 - Text = 'Name' - end> - ParentFont = True - TabOrder = 0 - TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] - TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect] - OnDragOver = vdtFilterDragOver - OnDragDrop = vdtFilterDragDrop - OnDrawNode = vdtFilterDrawNode - end - object pnlControls: TPanel - Left = 4 - Height = 22 - Top = 216 - Width = 216 - Align = alBottom - BorderSpacing.Around = 4 - BevelOuter = bvNone - ClientHeight = 22 - ClientWidth = 216 - ParentFont = True - TabOrder = 1 - object btnDelete: TSpeedButton - Left = 84 - Height = 22 - Hint = 'Delete' - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 20000000000000040000640000006400000000000000000000004F91AB005588 - 9C0043718A004E6974003E4B4C00457796003E6A950037556C005C7E8800548B - A00031464100FFFFFF002B3238002D3B430074B9C8007FC4D5004788A7004A92 - B500435E6F002E3040002E3538003D5E7B003853BEFF3551BDFF304BBCFF2E4E - B8FF303B3600FFFFFF00313637002C2D2B00588997007BC3D400365F8400396E - 9A003B6282003A5564004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 - E4FF334DC1FF2B4AB7FFFFFFFF0036423900486B710061B4CE00396F9600375C - 83004085B1004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 - EEFF9EA0F4FF515DD7FF2B4AB7FFFFFFFF00354C4C004D94AF00375D7F003348 - 5C005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 - E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FFFFFFFF004A90A6003B5864003D5B - 6A004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 - E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF57929C00498BA40047676D005C62 - D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 - E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF54839500FFFFFF005F63 - DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF6FA2AF00000000006469 - DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF58B2E00000000000676A - DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F - ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF000000000800000000E8 - 1D007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 - F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF000000000000000001000100DB12 - C0006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 - F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF00000000000000002401AD00BA02 - AE002301AE006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 - FBFFBAC7FCFF707BE9FF4C5BCCFFBB02F00000010000D8000000000000000000 - 000008000000010008006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 - F4FF6670E2FF535ED1FF5031DE005031DE002501AC00B902AD000D040400F804 - 0500F20005000A0106000C040500F8040600686ADDFF6364DCFF6164DAFF5D63 - D9FFF2000700F804610000000000710900005031DE005031DE004034DE004034 - DE0068B0E00068B0E0000E049300F8049500F2009500070102000F049500F804 - 0200F2000200080104000E040200F8040400F200040009010500 - } - NumGlyphs = 0 - OnClick = btnDeleteClick - ShowHint = True - ParentFont = True - ParentShowHint = False - end - object btnClear: TSpeedButton - Left = 108 - Height = 22 - Hint = 'Clear' - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 20000000000000040000640000006400000000000000000000003ADCFE004800 - 3A00FEFF4800FCFF1C00FCFF1C0080FF9C00003BD700AF9AFF00002CC600FDEB - 9B000000000000000000000000000000000000000000000000000EECFF00B2FC - FF000046C00078D0FF000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 - EFFF0000EDFF0000EDFFCBF3FC008905000024AEEF00E4A81C000000DB00B29E - FF0088000D000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 - F7FF3242F7FF141BF1FF0000EDFFFCFF1C00FCFF1C0080FF9C0004000000FFBC - 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 - F5FF161BF5FF3343F7FF141BF1FF0000EDFFE4FF5C000050FF004C0000000000 - F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 - F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF000008000052FF000000 - FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA - FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF0000CC0088005B000000 - FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 - FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00B8FF00E3FFA8000000 - FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC - FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF08009000FCFF72000000 - FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC - FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF02000000E4FF5C000000 - FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 - FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FFFCFF1C00000000000000 - FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC - FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000CCFF4C000000 - FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B - FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 - 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D - FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 - 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 - FEFF5461FEFF2227FCFF0000FBFFFCFF1C00000000000000000008000000EFEF - EF00EFEFEF00EFEFEF000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 - FDFF0000FDFF0000FDFF000000000000000000000000000000009034DE009034 - DE00D86FDF00D86FDF00E0A223004AC6080000000000580000005870DF000C70 - DF000000000000000000000000002070DF000000000000000000 - } - NumGlyphs = 0 - OnClick = btnClearClick - ShowHint = True - ParentFont = True - ParentShowHint = False - end - end - object cbTileFilter: TCheckBox - Left = 4 - Height = 20 - Top = 4 - Width = 216 - Align = alTop - BorderSpacing.Around = 4 - Caption = 'Filter active' - Checked = True - ParentFont = True - State = cbChecked - TabOrder = 2 - end - end - object GroupBox2: TGroupBox - Left = 4 - Height = 168 - Top = 320 - Width = 228 - Align = alBottom - BorderSpacing.Around = 4 - Caption = 'Hue filter' - ClientHeight = 151 - ClientWidth = 224 - ParentFont = True - TabOrder = 2 - object cbHueFilter: TCheckBox - Left = 4 - Height = 20 - Top = 4 - Width = 216 - Align = alTop - BorderSpacing.Around = 4 - Caption = 'Filter active' - ParentFont = True - TabOrder = 0 - end - object vdtHues: TVirtualDrawTree - Cursor = 63 - Left = 4 - Height = 119 - Top = 28 - Width = 216 - Align = alClient - BorderSpacing.Around = 4 - BorderStyle = bsSingle - Header.AutoSizeIndex = 2 - Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] - Header.ParentFont = True - Header.Style = hsFlatButtons - Header.Columns = < - item - Width = 20 - end - item - Position = 1 - Width = 38 - Text = 'Hue' - end - item - Position = 2 - Width = 158 - Text = 'Name' - end> - ParentFont = True - PopupMenu = pmHues - TabOrder = 1 - TreeOptions.MiscOptions = [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] - TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] - TreeOptions.SelectionOptions = [toFullRowSelect] - OnChecked = vdtHuesChecked - OnDrawNode = vdtHuesDrawNode - end - end - object Splitter1: TSplitter - Cursor = crVSplit - Height = 5 - Top = 311 - Width = 236 - Align = alBottom - ResizeAnchor = akBottom - end - object pmHues: TPopupMenu - left = 148 - top = 404 - object mnuCheckHues: TMenuItem - Caption = 'Check all hues' - OnClick = mnuCheckHuesClick - end - object mnuUncheckHues: TMenuItem - Caption = 'Uncheck all hues' - OnClick = mnuUncheckHuesClick - end - end -end +object frmFilter: TfrmFilter + Left = 290 + Height = 492 + Top = 171 + Width = 236 + ActiveControl = rgFilterType.RadioButton0 + BorderIcons = [biSystemMenu, biMinimize] + BorderStyle = bsToolWindow + Caption = 'Filter' + ClientHeight = 492 + ClientWidth = 236 + Font.Height = -11 + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + LCLVersion = '0.9.27' + object rgFilterType: TRadioGroup + Left = 4 + Height = 40 + Top = 4 + Width = 228 + Align = alTop + AutoFill = True + BorderSpacing.Around = 4 + Caption = 'Filter rule' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + ClientHeight = 26 + ClientWidth = 226 + Columns = 2 + ItemIndex = 0 + Items.Strings = ( + 'Exclusive' + 'Inclusive' + ) + TabOrder = 0 + end + object GroupBox1: TGroupBox + Left = 4 + Height = 259 + Top = 48 + Width = 228 + Align = alClient + BorderSpacing.Around = 4 + Caption = 'Tile filter' + ClientHeight = 245 + ClientWidth = 226 + TabOrder = 1 + object Label1: TLabel + Left = 4 + Height = 30 + Top = 30 + Width = 218 + Align = alTop + BorderSpacing.Around = 4 + Caption = 'Drag and Drop static tiles from the tile list on this list to add them to the filter.' + ParentColor = False + WordWrap = True + end + object vdtFilter: TVirtualDrawTree + Tag = 1 + Cursor = 63 + Left = 4 + Height = 151 + Top = 64 + Width = 218 + Align = alClient + BorderSpacing.Around = 4 + BorderStyle = bsSingle + DefaultNodeHeight = 44 + DragType = dtVCL + Header.AutoSizeIndex = 0 + Header.Columns = < + item + Position = 0 + Text = 'ID' + end + item + Position = 1 + Text = 'Tile' + Width = 44 + end + item + Position = 2 + Text = 'Name' + Width = 100 + end> + Header.DefaultHeight = 17 + Header.Options = [hoColumnResize, hoDrag, hoVisible] + Header.ParentFont = True + Header.Style = hsFlatButtons + TabOrder = 0 + TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] + TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect] + OnDragOver = vdtFilterDragOver + OnDragDrop = vdtFilterDragDrop + OnDrawNode = vdtFilterDrawNode + end + object pnlControls: TPanel + Left = 4 + Height = 22 + Top = 219 + Width = 218 + Align = alBottom + BorderSpacing.Around = 4 + BevelOuter = bvNone + ClientHeight = 22 + ClientWidth = 218 + TabOrder = 1 + object btnDelete: TSpeedButton + Left = 84 + Height = 22 + Hint = 'Delete' + Top = 0 + Width = 23 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 20000000000000040000640000006400000000000000000000004F91AB005588 + 9C0043718A004E6974003E4B4C00457796003E6A950037556C005C7E8800548B + A00031464100FFFFFF002B3238002D3B430074B9C8007FC4D5004788A7004A92 + B500435E6F002E3040002E3538003D5E7B003853BEFF3551BDFF304BBCFF2E4E + B8FF303B3600FFFFFF00313637002C2D2B00588997007BC3D400365F8400396E + 9A003B6282003A5564004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 + E4FF334DC1FF2B4AB7FFFFFFFF0036423900486B710061B4CE00396F9600375C + 83004085B1004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 + EEFF9EA0F4FF515DD7FF2B4AB7FFFFFFFF00354C4C004D94AF00375D7F003348 + 5C005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 + E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FFFFFFFF004A90A6003B5864003D5B + 6A004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF57929C00498BA40047676D005C62 + D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF54839500FFFFFF005F63 + DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF6FA2AF00000000006469 + DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF58B2E00000000000676A + DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F + ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF000000000800000000E8 + 1D007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 + F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF000000000000000001000100DB12 + C0006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 + F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF00000000000000002401AD00BA02 + AE002301AE006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 + FBFFBAC7FCFF707BE9FF4C5BCCFFBB02F00000010000D8000000000000000000 + 000008000000010008006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 + F4FF6670E2FF535ED1FF5031DE005031DE002501AC00B902AD000D040400F804 + 0500F20005000A0106000C040500F8040600686ADDFF6364DCFF6164DAFF5D63 + D9FFF2000700F804610000000000710900005031DE005031DE004034DE004034 + DE0068B0E00068B0E0000E049300F8049500F2009500070102000F049500F804 + 0200F2000200080104000E040200F8040400F200040009010500 + } + NumGlyphs = 0 + OnClick = btnDeleteClick + ShowHint = True + ParentShowHint = False + end + object btnClear: TSpeedButton + Left = 108 + Height = 22 + Hint = 'Clear' + Top = 0 + Width = 23 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 20000000000000040000640000006400000000000000000000003ADCFE004800 + 3A00FEFF4800FCFF1C00FCFF1C0080FF9C00003BD700AF9AFF00002CC600FDEB + 9B000000000000000000000000000000000000000000000000000EECFF00B2FC + FF000046C00078D0FF000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 + EFFF0000EDFF0000EDFFCBF3FC008905000024AEEF00E4A81C000000DB00B29E + FF0088000D000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 + F7FF3242F7FF141BF1FF0000EDFFFCFF1C00FCFF1C0080FF9C0004000000FFBC + 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 + F5FF161BF5FF3343F7FF141BF1FF0000EDFFE4FF5C000050FF004C0000000000 + F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 + F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF000008000052FF000000 + FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA + FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF0000CC0088005B000000 + FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 + FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00B8FF00E3FFA8000000 + FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF08009000FCFF72000000 + FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF02000000E4FF5C000000 + FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 + FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FFFCFF1C00000000000000 + FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC + FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000CCFF4C000000 + FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B + FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 + 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D + FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 + 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 + FEFF5461FEFF2227FCFF0000FBFFFCFF1C00000000000000000008000000EFEF + EF00EFEFEF00EFEFEF000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 + FDFF0000FDFF0000FDFF000000000000000000000000000000009034DE009034 + DE00D86FDF00D86FDF00E0A223004AC6080000000000580000005870DF000C70 + DF000000000000000000000000002070DF000000000000000000 + } + NumGlyphs = 0 + OnClick = btnClearClick + ShowHint = True + ParentShowHint = False + end + end + object cbTileFilter: TCheckBox + Left = 4 + Height = 22 + Top = 4 + Width = 218 + Align = alTop + BorderSpacing.Around = 4 + Caption = 'Filter active' + Checked = True + State = cbChecked + TabOrder = 2 + end + end + object GroupBox2: TGroupBox + Left = 4 + Height = 168 + Top = 320 + Width = 228 + Align = alBottom + BorderSpacing.Around = 4 + Caption = 'Hue filter' + ClientHeight = 154 + ClientWidth = 226 + TabOrder = 2 + object cbHueFilter: TCheckBox + Left = 4 + Height = 22 + Top = 4 + Width = 218 + Align = alTop + BorderSpacing.Around = 4 + Caption = 'Filter active' + TabOrder = 0 + end + object vdtHues: TVirtualDrawTree + Cursor = 63 + Left = 4 + Height = 120 + Top = 30 + Width = 218 + Align = alClient + BorderSpacing.Around = 4 + BorderStyle = bsSingle + Header.AutoSizeIndex = 2 + Header.Columns = < + item + Position = 0 + Width = 20 + end + item + Position = 1 + Text = 'Hue' + Width = 38 + end + item + Position = 2 + Text = 'Name' + Width = 158 + end> + Header.DefaultHeight = 17 + Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] + Header.ParentFont = True + Header.Style = hsFlatButtons + PopupMenu = pmHues + TabOrder = 1 + TreeOptions.MiscOptions = [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] + TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] + TreeOptions.SelectionOptions = [toFullRowSelect] + OnChecked = vdtHuesChecked + OnDrawNode = vdtHuesDrawNode + end + end + object Splitter1: TSplitter + Cursor = crVSplit + Left = 0 + Height = 5 + Top = 311 + Width = 236 + Align = alBottom + ResizeAnchor = akBottom + end + object pmHues: TPopupMenu + left = 148 + top = 404 + object mnuCheckHues: TMenuItem + Caption = 'Check all hues' + OnClick = mnuCheckHuesClick + end + object mnuUncheckHues: TMenuItem + Caption = 'Uncheck all hues' + OnClick = mnuUncheckHuesClick + end + end +end diff --git a/Client/Tools/UfrmFilter.pas b/Client/Tools/UfrmFilter.pas index 9c59904..f6ac5c5 100644 --- a/Client/Tools/UfrmFilter.pas +++ b/Client/Tools/UfrmFilter.pas @@ -111,8 +111,9 @@ procedure TfrmFilter.FormShow(Sender: TObject); var upperLeft, lowerLeft: TPoint; begin - upperLeft := frmMain.pnlMain.ClientToScreen(Point(0, 0)); - lowerLeft := frmMain.pnlMain.ClientToScreen(Point(0, frmMain.pnlMain.Height)); + upperLeft := frmMain.pcLeft.ClientToScreen(Point(frmMain.pcLeft.Width, 0)); + lowerLeft := frmMain.pcLeft.ClientToScreen(Point(frmMain.pcLeft.Width, + frmMain.pcLeft.Height)); Left := upperLeft.x; Top := upperLeft.y; Height := lowerLeft.y - upperLeft.y; diff --git a/Client/UfrmMain.lfm b/Client/UfrmMain.lfm index 5414bbf..0c06a15 100644 --- a/Client/UfrmMain.lfm +++ b/Client/UfrmMain.lfm @@ -3,7 +3,6 @@ object frmMain: TfrmMain Height = 603 Top = 126 Width = 766 - ActiveControl = pcLeft Caption = 'UO CentrED' ClientHeight = 580 ClientWidth = 766 @@ -118,62 +117,34 @@ object frmMain: TfrmMain Caption = 'Tiles' ClientHeight = 492 ClientWidth = 218 - object pnlTileListSettings: TPanel - Left = 0 - Height = 56 - Top = 0 - Width = 218 - Align = alTop - BevelOuter = bvNone - ClientHeight = 56 - ClientWidth = 218 - TabOrder = 0 - object lblFilter: TLabel - Left = 84 - Height = 14 - Top = 8 - Width = 30 - Caption = 'Filter:' - ParentColor = False - end - object cbTerrain: TCheckBox - Left = 4 - Height = 22 - Top = 8 - Width = 61 - Caption = 'Terrain' - Checked = True - OnChange = cbTerrainChange - State = cbChecked - TabOrder = 0 - end - object cbStatics: TCheckBox - Left = 4 - Height = 22 - Top = 32 - Width = 60 - Caption = 'Statics' - Checked = True - OnChange = cbStaticsChange - State = cbChecked - TabOrder = 1 - end - object edFilter: TEdit - Left = 84 - Height = 19 - Top = 24 - Width = 112 - OnEditingDone = edFilterEditingDone - TabOrder = 2 - end + object lblFilter: TLabel + AnchorSideLeft.Control = cbTerrain + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = cbTerrain + Left = 81 + Height = 14 + Top = 8 + Width = 30 + BorderSpacing.Left = 16 + Caption = 'Filter:' + ParentColor = False end object vdtTiles: TVirtualDrawTree Tag = 1 - Left = 0 - Height = 238 + AnchorSideLeft.Control = tsTiles + AnchorSideTop.Control = cbStatics + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = tsTiles + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = spTileList + Left = 4 + Height = 250 Top = 56 - Width = 218 - Align = alClient + Width = 210 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Left = 4 + BorderSpacing.Top = 4 + BorderSpacing.Right = 4 DefaultNodeHeight = 44 DragMode = dmAutomatic DragType = dtVCL @@ -199,7 +170,7 @@ object frmMain: TfrmMain Header.ParentFont = True Header.Style = hsFlatButtons PopupMenu = pmTileList - TabOrder = 1 + TabOrder = 0 TreeOptions.AutoOptions = [toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag] TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages, toStaticBackground] @@ -214,527 +185,29 @@ object frmMain: TfrmMain OnScroll = vdtTilesScroll end object gbRandom: TGroupBox + AnchorSideTop.Control = spTileList + AnchorSideTop.Side = asrBottom + AnchorSideBottom.Control = tsTiles + AnchorSideBottom.Side = asrBottom Left = 0 - Height = 193 - Top = 299 + Height = 181 + Top = 311 Width = 218 Align = alBottom + Anchors = [akTop, akLeft, akRight, akBottom] Caption = 'Random pool' - ClientHeight = 179 + ClientHeight = 167 ClientWidth = 216 - TabOrder = 2 - object vdtRandom: TVirtualDrawTree - Tag = 1 - Cursor = 63 - Left = 0 - Height = 127 - Top = 22 - Width = 216 - Align = alClient - DefaultNodeHeight = 44 - DragType = dtVCL - Header.AutoSizeIndex = 0 - Header.Columns = < - item - Position = 0 - Text = 'ID' - end - item - Position = 1 - Text = 'Tile' - Width = 44 - end - item - Position = 2 - Text = 'Name' - Width = 100 - end> - Header.DefaultHeight = 17 - Header.Options = [hoColumnResize, hoDrag, hoVisible] - Header.ParentFont = True - Header.Style = hsFlatButtons - TabOrder = 0 - TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] - TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect] - OnDragOver = vdtRandomDragOver - OnDragDrop = vdtRandomDragDrop - OnDrawNode = vdtTilesDrawNode - OnLoadNode = vdtRandomLoadNode - OnSaveNode = vdtRandomSaveNode - OnUpdating = vdtRandomUpdating - end - object pnlRandomControl: TPanel - Left = 0 - Height = 22 - Top = 0 - Width = 216 - Align = alTop - BevelOuter = bvNone - ClientHeight = 22 - ClientWidth = 216 - TabOrder = 1 - object btnAddRandom: TSpeedButton - Left = 2 - Height = 22 - Hint = 'Add' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000003A8C44FF368940FF32873CFF2F84 - 37FF000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000459653FF419950FF7DC28FFF96D0A6FF96CFA6FF78BE - 89FF368D42FF2C8134FF00000000000000000000000000000000000000000000 - 0000000000004D9C5DFF64B478FFA8DBB5FF87CC98FF66BC7DFF64BA7CFF86CB - 98FFA5D9B4FF58AA6BFF2C8134FF000000000000000000000000000000000000 - 000056A366FF6AB97DFFA8DBB2FF60BC77FF5CBA73FF59B870FF59B56FFF58B5 - 6FFF5BB774FFA5D9B3FF5AAA6CFF2C8234FF0000000000000000000000000000 - 000053AB68FFAADDB4FF64C179FF5FBE71FF60BC77FFFFFFFFFFFFFFFFFF59B8 - 70FF58B56EFF5CB774FFA6DAB4FF388F43FF00000000000000000000000061AC - 75FF8ACC98FF89D396FF6BC67AFF63C170FF55AB65FFFFFFFFFFFFFFFFFF59B8 - 70FF59B870FF5BB972FF85CC97FF7BBE8DFF308539FF000000000000000065AF - 7AFFA9DDB3FF7DCF8AFF75CC81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF59B870FF67BE7DFF9CD4ABFF34883DFF000000000000000069B2 - 7EFFB6E2BEFF8BD597FF7AC986FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF59B870FF69C17EFF9DD4AAFF388B42FF00000000000000006DB5 - 83FFACDDB6FFA6DFAFFF81CB8CFF7CC986FF6EBD79FFFFFFFFFFFFFFFFFF5BAC - 6AFF60BC77FF5CBA73FF8BD199FF80C592FF3C8E47FF00000000000000000000 - 000085C797FFD2EED7FF95D9A0FF8AD394FF7FC889FFFFFFFFFFFFFFFFFF79CD - 85FF6BC37CFF6FC77EFFACDFB5FF459E57FF0000000000000000000000000000 - 000070B887FFAADAB7FFD8F1DCFF92D89DFF88CD93FF84CC8EFF8BD496FF8AD4 - 95FF83D28EFFAFE0B7FF6BB97DFF489856FF0000000000000000000000000000 - 00000000000070B887FFAFDCBBFFDCF2E0FFB6E4BDFF9BDBA5FF96D9A0FFA5DF - AFFFC0E8C5FF79C28AFF509E5FFF000000000000000000000000000000000000 - 0000000000000000000071B887FF94CEA4FFC3E6CBFFCFEBD4FFC9E9CEFFAFDD - B8FF6DB97FFF58A569FF00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000006EB684FF6AB380FF67B17CFF63AE - 77FF000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnAddRandomClick - ShowHint = True - ParentShowHint = False - end - object btnDeleteRandom: TSpeedButton - Left = 26 - Height = 22 - Hint = 'Delete' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000003853BEFF3551BDFF304BBCFF2E4E - B8FF000000000000000000000000000000000000000000000000000000000000 - 000000000000000000004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 - E4FF334DC1FF2B4AB7FF00000000000000000000000000000000000000000000 - 0000000000004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 - EEFF9EA0F4FF515DD7FF2B4AB7FF000000000000000000000000000000000000 - 00005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 - E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FF0000000000000000000000000000 - 00004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 - E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF0000000000000000000000005C62 - D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 - E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF00000000000000005F63 - DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF00000000000000006469 - DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF0000000000000000676A - DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F - ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF00000000000000000000 - 00007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 - F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF0000000000000000000000000000 - 00006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 - F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF0000000000000000000000000000 - 0000000000006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 - FBFFBAC7FCFF707BE9FF4C5BCCFF000000000000000000000000000000000000 - 000000000000000000006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 - F4FF6670E2FF535ED1FF00000000000000000000000000000000000000000000 - 000000000000000000000000000000000000686ADDFF6364DCFF6164DAFF5D63 - D9FF000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnDeleteRandomClick - ShowHint = True - ParentShowHint = False - end - object btnClearRandom: TSpeedButton - Left = 50 - Height = 22 - Hint = 'Clear' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 - EFFF0000EDFF0000EDFF00000000000000000000000000000000000000000000 - 0000000000000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 - F7FF3242F7FF141BF1FF0000EDFF000000000000000000000000000000000000 - 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 - F5FF161BF5FF3343F7FF141BF1FF0000EDFF0000000000000000000000000000 - F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 - F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF00000000000000000000 - FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA - FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF00000000000000000000 - FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 - FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00000000000000000000 - FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC - FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF00000000000000000000 - FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC - FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF00000000000000000000 - FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 - FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FF00000000000000000000 - FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC - FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000000000000000 - FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B - FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 - 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D - FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 - 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 - FEFF5461FEFF2227FCFF0000FBFF000000000000000000000000000000000000 - 000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 - FDFF0000FDFF0000FDFF00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnClearRandomClick - ShowHint = True - ParentShowHint = False - end - end - object pnlRandomPreset: TPanel - Left = 4 - Height = 22 - Top = 153 - Width = 208 - Align = alBottom - BorderSpacing.Around = 4 - BevelOuter = bvNone - ClientHeight = 22 - ClientWidth = 208 - TabOrder = 2 - object btnRandomPresetSave: TSpeedButton - Left = 158 - Height = 22 - Hint = 'Save Preset' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 000000000000000000000000000000000000BA6833FFC38458FFD38B68FFE18F - 70FFDC8D6CFFDA8B6DFFD78A6EFFCD8B6CFFAB6D44FFA65F2EFF00000000BA65 - 30FFBB6631FFBA6630FFBA6630FFBA6530FFC68355FFEFCEBAFFDDFFFFFF87EE - C7FFA2F4D7FFA2F6D7FF8CEEC7FFE0FFFFFFDDA285FFAB6A3EFFBC6933FFF8F1 - EAFFF7ECDFFFF6EADEFFF6EADCFFF6EADCFFC37F51FFEFB69AFFEAF3E8FF51BF - 84FF6FC998FF71C999FF54BF84FFE4F4E9FFDD9C7BFFAA693AFFBF7138FFF5EB - DFFFFDBF68FFFBBE65FFFCBE64FFFCBE64FFC48154FFEAB697FFF3F3EAFFEDF1 - E6FFEFF1E6FFEFF0E6FFEDF1E5FFF3F5EDFFD59C79FFB07044FFC1783CFFF7ED - E3FFFDC26EFFFFD79EFFFFD69BFFFFD798FFC98B61FFE6B592FFE2A781FFE1A7 - 81FFDEA37DFFDCA17BFFDB9F79FFD99E77FFD49A73FFBB7E57FFC47C40FFF7F0 - E6FFF8B455FFF7B554FFF8B453FFF8B253FFCA8D65FFEAB899FFDDA57EFFDDA6 - 80FFDBA37CFFD9A07AFFD9A079FFD89F78FFD89E78FFBF845DFFC58245FFF8F2 - EBFFFEE7D6FFFDE7D6FFFDE7D6FFFDE6D5FFC8885DFFEFBFA1FFFDFCFAFFFEFC - FBFFFEFDFDFFFEFDFCFFFDFBFAFFFDFCFBFFDDA885FFC17F53FFC68447FFF9F3 - ECFFFEE8D6FFFDE7D6FFFDE7D6FFFDE7D5FFC7865BFFEFC09EFFFFFFFFFFCC93 - 6EFFFFFFFFFFFFFFFFFFFFFBF7FFFFF8F1FFE4AF8CFFC78A61FFC68849FFF9F4 - EDFFFEE8D8FFFEE8D7FFFEE7D6FFFDE5D3FFCC8D65FFF3CDB0FFFFFFFFFFE3C7 - B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEABFA1FFC98960FFC6884AFFF9F4 - EFFFFEE7D7FFFDE7D5FFFDE6D4FFFCE6D2FFD4976EFFD49E7BFFD09871FFD6A4 - 82FFCD8E68FFCD9069FFD09A75FFD19973FFC88B62FF00000000C6894BFFF9F4 - F0FFFCE6D3FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DCC2FFF5D6BBFFF3D4 - B5FFF1D2B3FFF8F4F0FFC48246FF000000000000000000000000C6894BFFF9F5 - F1FFFCE3CFFFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9BCFFF4E9DFFFF7F2 - ECFFFBF7F3FFF5EFE9FFC27E45FF000000000000000000000000C6894CFFF9F5 - F1FFFCE3CDFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6BAFFFDFBF8FFFCE6 - CDFFFAE5C9FFE2B684FFBF7942FF000000000000000000000000C5884BFFFAF6 - F2FFFAE0C7FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6B8FFFFFBF8FFF6D8 - B4FFE1B07DFFDB9264FF00000000000000000000000000000000C48549FFF7F2 - ECFFF8F4EEFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2ECFFF2E6D7FFE2B2 - 7DFFDB9465FF000000000000000000000000000000000000000000000000C88B - 4DFFC88C4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B4FFFC5894BFFC476 - 3BFF000000000000000000000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnRandomPresetSaveClick - ShowCaption = False - ShowHint = True - ParentShowHint = False - end - object btnRandomPresetDelete: TSpeedButton - Left = 182 - Height = 22 - Hint = 'Delete Preset' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000BA6530FFBB6631FFBA6630FFBA6630FFBA6630FFBA6530FFBA652FFFB965 - 2EFF6E5E76FF1949A8FF0542BBFF1348ADFF394E8FFF0000000000000000BC69 - 33FFF8F1EAFFF7ECDFFFF6EBDEFFF6EADEFFF6EADCFFF6EADCFFFAF3EBFF8AA5 - D7FF2866CAFF2177E6FF0579EAFF0164DDFF064DBBFF0000000000000000BF71 - 38FFF5EBDFFFFDBF68FFFCBD67FFFBBE65FFFCBE64FFFCBE64FFFCBD62FF1E52 - B0FF639DF4FF187FFFFF0076F8FF0076EEFF0368E1FF0345B9FF00000000C178 - 3CFFF7EDE3FFFDC26EFFFFD8A0FFFFD79EFFFFD69BFFFFD798FFFFD696FF0543 - BCFFAECDFEFFFFFFFFFFFFFFFFFFFFFFFFFF187FEFFF0442BCFF00000000C47C - 40FFF7F0E6FFF8B455FFF7B456FFF7B554FFF8B453FFF8B253FFF7B352FF2453 - ABFF8DB5F6FF4D92FFFF1177FFFF2186FFFF408AEBFF0344B9FF00000000C580 - 42FFF8F1E8FFFEE5D5FFFDE5D3FFFDE5D3FFFCE5D3FFFCE5D3FFFCE4D1FF94A1 - C9FF3D76D1FF8DB5F7FFB8D6FEFF72A8F5FF2F6BC9FF0000000000000000C582 - 45FFF8F2EBFFFEE7D6FFFDE7D6FFFDE7D6FFFDE7D6FFFDE6D5FFFDE5D3FFFCE4 - D1FF94A1C9FF2A5EC1FF0543BCFF1F59BFFF686279FF0000000000000000C684 - 47FFF9F3ECFFFEE8D6FFFEE8D7FFFDE7D6FFFDE7D6FFFDE7D5FFFDE5D3FFFBE4 - D0FFFBE3CCFFFADFC7FFFADFC6FFFAF2EAFFC68042FF0000000000000000C688 - 49FFF9F4EDFFFEE8D8FFFEE8D8FFFEE8D7FFFEE7D6FFFDE5D3FFFCE4D1FFFBE1 - CCFFFAE0C7FFF9DDC3FFF8DCC2FFFAF4EDFFC68245FF0000000000000000C688 - 4AFFF9F4EFFFFEE7D7FFFDE7D6FFFDE7D5FFFDE6D4FFFCE6D2FFFBE1CCFFFADF - C7FFF8DCC2FFF6DABDFFF6D8BBFFFAF4EFFFC68346FF0000000000000000C689 - 4BFFF9F4F0FFFCE6D3FFFCE6D4FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DC - C2FFF5D6BBFFF3D4B5FFF1D2B3FFF8F4F0FFC48246FF0000000000000000C689 - 4BFFF9F5F1FFFCE3CFFFFBE4D0FFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9 - BCFFF4E9DFFFF7F2ECFFFBF7F3FFF5EFE9FFC27E45FF0000000000000000C689 - 4CFFF9F5F1FFFCE3CDFFFBE3CEFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6 - BAFFFDFBF8FFFCE6CDFFFAE5C9FFE2B684FFBF7942FF0000000000000000C588 - 4BFFFAF6F2FFFAE0C7FFFBE1C9FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6 - B8FFFFFBF8FFF6D8B4FFE1B07DFFDB9264FF000000000000000000000000C485 - 49FFF7F2ECFFF8F4EEFFF8F4EDFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2 - ECFFF2E6D7FFE2B27DFFDB9465FF000000000000000000000000000000000000 - 0000C88B4DFFC88C4FFFC88C4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B - 4FFFC5894BFFC4763BFF00000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnRandomPresetDeleteClick - ShowCaption = False - ShowHint = True - ParentShowHint = False - end - object cbRandomPreset: TComboBox - Left = 0 - Height = 29 - Top = 0 - Width = 152 - ItemHeight = 0 - OnChange = cbRandomPresetChange - Style = csDropDownList - TabOrder = 0 - end - end - end - object spTileList: TSplitter - Cursor = crVSplit - Left = 0 - Height = 5 - Top = 294 - Width = 218 - Align = alBottom - ResizeAnchor = akBottom - end - object edSearchID: TEdit - Left = 118 - Height = 19 - Hint = 'Append S or T to restrict the search to Statics or Terrain.' - Top = 256 - Width = 96 - CharCase = ecUppercase - OnExit = edSearchIDExit - OnKeyPress = edSearchIDKeyPress - ParentShowHint = False - ShowHint = True - TabOrder = 3 - Visible = False - end - end - object tsClients: TTabSheet - Caption = 'Clients' - ClientHeight = 492 - ClientWidth = 218 - object lbClients: TListBox - Left = 0 - Height = 492 - Top = 0 - Width = 218 - Align = alClient - ItemHeight = 0 - OnDblClick = mnuGoToClientClick - PopupMenu = pmClients - Sorted = True - TabOrder = 0 - TopIndex = -1 - end - end - object tsLocations: TTabSheet - Caption = 'Locations' - ClientHeight = 492 - ClientWidth = 218 - object vstLocations: TVirtualStringTree - Cursor = 63 - Left = 4 - Height = 456 - Top = 4 - Width = 210 - Align = alClient - BorderSpacing.Around = 4 - BorderStyle = bsSingle - DefaultText = 'Node' - Header.AutoSizeIndex = 1 - Header.Columns = < - item - Position = 0 - Text = 'Coords' - Width = 75 - end - item - Position = 1 - Text = 'Name' - Width = 131 - end> - Header.DefaultHeight = 17 - Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] - Header.ParentFont = True - Header.Style = hsFlatButtons - TabOrder = 0 - TreeOptions.AutoOptions = [toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] - TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] - TreeOptions.SelectionOptions = [toFullRowSelect] - OnDblClick = vstLocationsDblClick - OnFreeNode = vstLocationsFreeNode - OnGetText = vstLocationsGetText - OnLoadNode = vstLocationsLoadNode - OnNewText = vstLocationsNewText - OnSaveNode = vstLocationsSaveNode - end - object pnlLocationControls: TPanel - Left = 4 - Height = 24 - Top = 464 - Width = 210 - Align = alBottom - BorderSpacing.Around = 4 - BevelOuter = bvNone - ClientHeight = 24 - ClientWidth = 210 TabOrder = 1 - object btnClearLocations: TSpeedButton - Left = 112 - Height = 22 - Hint = 'Clear' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 - EFFF0000EDFF0000EDFF00000000000000000000000000000000000000000000 - 0000000000000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 - F7FF3242F7FF141BF1FF0000EDFF000000000000000000000000000000000000 - 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 - F5FF161BF5FF3343F7FF141BF1FF0000EDFF0000000000000000000000000000 - F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 - F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF00000000000000000000 - FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA - FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF00000000000000000000 - FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 - FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00000000000000000000 - FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC - FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF00000000000000000000 - FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC - FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF00000000000000000000 - FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 - FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FF00000000000000000000 - FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC - FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000000000000000 - FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B - FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 - 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D - FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 - 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 - FEFF5461FEFF2227FCFF0000FBFF000000000000000000000000000000000000 - 000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 - FDFF0000FDFF0000FDFF00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnClearLocationsClick - ShowHint = True - ParentShowHint = False - end - object btnDeleteLocation: TSpeedButton - Left = 88 - Height = 22 - Hint = 'Delete' - Top = 0 - Width = 23 - Color = clBtnFace - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000003853BEFF3551BDFF304BBCFF2E4E - B8FF000000000000000000000000000000000000000000000000000000000000 - 000000000000000000004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 - E4FF334DC1FF2B4AB7FF00000000000000000000000000000000000000000000 - 0000000000004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 - EEFF9EA0F4FF515DD7FF2B4AB7FF000000000000000000000000000000000000 - 00005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 - E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FF0000000000000000000000000000 - 00004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 - E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF0000000000000000000000005C62 - D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 - E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF00000000000000005F63 - DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF00000000000000006469 - DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF0000000000000000676A - DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F - ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF00000000000000000000 - 00007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 - F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF0000000000000000000000000000 - 00006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 - F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF0000000000000000000000000000 - 0000000000006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 - FBFFBAC7FCFF707BE9FF4C5BCCFF000000000000000000000000000000000000 - 000000000000000000006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 - F4FF6670E2FF535ED1FF00000000000000000000000000000000000000000000 - 000000000000000000000000000000000000686ADDFF6364DCFF6164DAFF5D63 - D9FF000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000 - } - NumGlyphs = 0 - OnClick = btnDeleteLocationClick - ShowHint = True - ParentShowHint = False - end - object btnAddLocation: TSpeedButton - Left = 64 + object btnAddRandom: TSpeedButton + AnchorSideLeft.Control = gbRandom + AnchorSideTop.Control = gbRandom + Left = 4 Height = 22 Hint = 'Add' Top = 0 Width = 23 + BorderSpacing.Left = 4 Color = clBtnFace Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 @@ -773,10 +246,591 @@ object frmMain: TfrmMain 0000000000000000000000000000000000000000000000000000 } NumGlyphs = 0 - OnClick = btnAddLocationClick + OnClick = btnAddRandomClick ShowHint = True ParentShowHint = False end + object btnDeleteRandom: TSpeedButton + AnchorSideLeft.Control = btnAddRandom + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnAddRandom + Left = 31 + Height = 22 + Hint = 'Delete' + Top = 0 + Width = 23 + BorderSpacing.Left = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003853BEFF3551BDFF304BBCFF2E4E + B8FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 + E4FF334DC1FF2B4AB7FF00000000000000000000000000000000000000000000 + 0000000000004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 + EEFF9EA0F4FF515DD7FF2B4AB7FF000000000000000000000000000000000000 + 00005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 + E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FF0000000000000000000000000000 + 00004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF0000000000000000000000005C62 + D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF00000000000000005F63 + DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF00000000000000006469 + DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF0000000000000000676A + DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F + ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF00000000000000000000 + 00007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 + F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF0000000000000000000000000000 + 00006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 + F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF0000000000000000000000000000 + 0000000000006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 + FBFFBAC7FCFF707BE9FF4C5BCCFF000000000000000000000000000000000000 + 000000000000000000006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 + F4FF6670E2FF535ED1FF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000686ADDFF6364DCFF6164DAFF5D63 + D9FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnDeleteRandomClick + ShowHint = True + ParentShowHint = False + end + object btnClearRandom: TSpeedButton + AnchorSideLeft.Control = btnDeleteRandom + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnDeleteRandom + Left = 58 + Height = 22 + Hint = 'Clear' + Top = 0 + Width = 23 + BorderSpacing.Left = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 + EFFF0000EDFF0000EDFF00000000000000000000000000000000000000000000 + 0000000000000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 + F7FF3242F7FF141BF1FF0000EDFF000000000000000000000000000000000000 + 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 + F5FF161BF5FF3343F7FF141BF1FF0000EDFF0000000000000000000000000000 + F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 + F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF00000000000000000000 + FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA + FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF00000000000000000000 + FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 + FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00000000000000000000 + FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF00000000000000000000 + FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF00000000000000000000 + FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 + FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FF00000000000000000000 + FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC + FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000000000000000 + FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B + FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 + 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D + FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 + 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 + FEFF5461FEFF2227FCFF0000FBFF000000000000000000000000000000000000 + 000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 + FDFF0000FDFF0000FDFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnClearRandomClick + ShowHint = True + ParentShowHint = False + end + object btnRandomPresetSave: TSpeedButton + AnchorSideTop.Control = cbRandomPreset + AnchorSideRight.Control = btnRandomPresetDelete + Left = 164 + Height = 22 + Hint = 'Save Preset' + Top = 134 + Width = 22 + Anchors = [akTop, akRight] + BorderSpacing.Right = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 000000000000000000000000000000000000BA6833FFC38458FFD38B68FFE18F + 70FFDC8D6CFFDA8B6DFFD78A6EFFCD8B6CFFAB6D44FFA65F2EFF00000000BA65 + 30FFBB6631FFBA6630FFBA6630FFBA6530FFC68355FFEFCEBAFFDDFFFFFF87EE + C7FFA2F4D7FFA2F6D7FF8CEEC7FFE0FFFFFFDDA285FFAB6A3EFFBC6933FFF8F1 + EAFFF7ECDFFFF6EADEFFF6EADCFFF6EADCFFC37F51FFEFB69AFFEAF3E8FF51BF + 84FF6FC998FF71C999FF54BF84FFE4F4E9FFDD9C7BFFAA693AFFBF7138FFF5EB + DFFFFDBF68FFFBBE65FFFCBE64FFFCBE64FFC48154FFEAB697FFF3F3EAFFEDF1 + E6FFEFF1E6FFEFF0E6FFEDF1E5FFF3F5EDFFD59C79FFB07044FFC1783CFFF7ED + E3FFFDC26EFFFFD79EFFFFD69BFFFFD798FFC98B61FFE6B592FFE2A781FFE1A7 + 81FFDEA37DFFDCA17BFFDB9F79FFD99E77FFD49A73FFBB7E57FFC47C40FFF7F0 + E6FFF8B455FFF7B554FFF8B453FFF8B253FFCA8D65FFEAB899FFDDA57EFFDDA6 + 80FFDBA37CFFD9A07AFFD9A079FFD89F78FFD89E78FFBF845DFFC58245FFF8F2 + EBFFFEE7D6FFFDE7D6FFFDE7D6FFFDE6D5FFC8885DFFEFBFA1FFFDFCFAFFFEFC + FBFFFEFDFDFFFEFDFCFFFDFBFAFFFDFCFBFFDDA885FFC17F53FFC68447FFF9F3 + ECFFFEE8D6FFFDE7D6FFFDE7D6FFFDE7D5FFC7865BFFEFC09EFFFFFFFFFFCC93 + 6EFFFFFFFFFFFFFFFFFFFFFBF7FFFFF8F1FFE4AF8CFFC78A61FFC68849FFF9F4 + EDFFFEE8D8FFFEE8D7FFFEE7D6FFFDE5D3FFCC8D65FFF3CDB0FFFFFFFFFFE3C7 + B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEABFA1FFC98960FFC6884AFFF9F4 + EFFFFEE7D7FFFDE7D5FFFDE6D4FFFCE6D2FFD4976EFFD49E7BFFD09871FFD6A4 + 82FFCD8E68FFCD9069FFD09A75FFD19973FFC88B62FF00000000C6894BFFF9F4 + F0FFFCE6D3FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DCC2FFF5D6BBFFF3D4 + B5FFF1D2B3FFF8F4F0FFC48246FF000000000000000000000000C6894BFFF9F5 + F1FFFCE3CFFFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9BCFFF4E9DFFFF7F2 + ECFFFBF7F3FFF5EFE9FFC27E45FF000000000000000000000000C6894CFFF9F5 + F1FFFCE3CDFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6BAFFFDFBF8FFFCE6 + CDFFFAE5C9FFE2B684FFBF7942FF000000000000000000000000C5884BFFFAF6 + F2FFFAE0C7FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6B8FFFFFBF8FFF6D8 + B4FFE1B07DFFDB9264FF00000000000000000000000000000000C48549FFF7F2 + ECFFF8F4EEFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2ECFFF2E6D7FFE2B2 + 7DFFDB9465FF000000000000000000000000000000000000000000000000C88B + 4DFFC88C4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B4FFFC5894BFFC476 + 3BFF000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnRandomPresetSaveClick + ShowCaption = False + ShowHint = True + ParentShowHint = False + end + object btnRandomPresetDelete: TSpeedButton + AnchorSideTop.Control = btnRandomPresetSave + AnchorSideRight.Control = gbRandom + AnchorSideRight.Side = asrBottom + Left = 190 + Height = 22 + Hint = 'Delete Preset' + Top = 134 + Width = 22 + Anchors = [akTop, akRight] + BorderSpacing.Right = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000BA6530FFBB6631FFBA6630FFBA6630FFBA6630FFBA6530FFBA652FFFB965 + 2EFF6E5E76FF1949A8FF0542BBFF1348ADFF394E8FFF0000000000000000BC69 + 33FFF8F1EAFFF7ECDFFFF6EBDEFFF6EADEFFF6EADCFFF6EADCFFFAF3EBFF8AA5 + D7FF2866CAFF2177E6FF0579EAFF0164DDFF064DBBFF0000000000000000BF71 + 38FFF5EBDFFFFDBF68FFFCBD67FFFBBE65FFFCBE64FFFCBE64FFFCBD62FF1E52 + B0FF639DF4FF187FFFFF0076F8FF0076EEFF0368E1FF0345B9FF00000000C178 + 3CFFF7EDE3FFFDC26EFFFFD8A0FFFFD79EFFFFD69BFFFFD798FFFFD696FF0543 + BCFFAECDFEFFFFFFFFFFFFFFFFFFFFFFFFFF187FEFFF0442BCFF00000000C47C + 40FFF7F0E6FFF8B455FFF7B456FFF7B554FFF8B453FFF8B253FFF7B352FF2453 + ABFF8DB5F6FF4D92FFFF1177FFFF2186FFFF408AEBFF0344B9FF00000000C580 + 42FFF8F1E8FFFEE5D5FFFDE5D3FFFDE5D3FFFCE5D3FFFCE5D3FFFCE4D1FF94A1 + C9FF3D76D1FF8DB5F7FFB8D6FEFF72A8F5FF2F6BC9FF0000000000000000C582 + 45FFF8F2EBFFFEE7D6FFFDE7D6FFFDE7D6FFFDE7D6FFFDE6D5FFFDE5D3FFFCE4 + D1FF94A1C9FF2A5EC1FF0543BCFF1F59BFFF686279FF0000000000000000C684 + 47FFF9F3ECFFFEE8D6FFFEE8D7FFFDE7D6FFFDE7D6FFFDE7D5FFFDE5D3FFFBE4 + D0FFFBE3CCFFFADFC7FFFADFC6FFFAF2EAFFC68042FF0000000000000000C688 + 49FFF9F4EDFFFEE8D8FFFEE8D8FFFEE8D7FFFEE7D6FFFDE5D3FFFCE4D1FFFBE1 + CCFFFAE0C7FFF9DDC3FFF8DCC2FFFAF4EDFFC68245FF0000000000000000C688 + 4AFFF9F4EFFFFEE7D7FFFDE7D6FFFDE7D5FFFDE6D4FFFCE6D2FFFBE1CCFFFADF + C7FFF8DCC2FFF6DABDFFF6D8BBFFFAF4EFFFC68346FF0000000000000000C689 + 4BFFF9F4F0FFFCE6D3FFFCE6D4FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DC + C2FFF5D6BBFFF3D4B5FFF1D2B3FFF8F4F0FFC48246FF0000000000000000C689 + 4BFFF9F5F1FFFCE3CFFFFBE4D0FFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9 + BCFFF4E9DFFFF7F2ECFFFBF7F3FFF5EFE9FFC27E45FF0000000000000000C689 + 4CFFF9F5F1FFFCE3CDFFFBE3CEFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6 + BAFFFDFBF8FFFCE6CDFFFAE5C9FFE2B684FFBF7942FF0000000000000000C588 + 4BFFFAF6F2FFFAE0C7FFFBE1C9FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6 + B8FFFFFBF8FFF6D8B4FFE1B07DFFDB9264FF000000000000000000000000C485 + 49FFF7F2ECFFF8F4EEFFF8F4EDFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2 + ECFFF2E6D7FFE2B27DFFDB9465FF000000000000000000000000000000000000 + 0000C88B4DFFC88C4FFFC88C4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B + 4FFFC5894BFFC4763BFF00000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnRandomPresetDeleteClick + ShowCaption = False + ShowHint = True + ParentShowHint = False + end + object vdtRandom: TVirtualDrawTree + Tag = 1 + AnchorSideLeft.Control = gbRandom + AnchorSideTop.Control = btnAddRandom + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = gbRandom + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = cbRandomPreset + Cursor = 63 + Left = 4 + Height = 106 + Top = 24 + Width = 208 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Left = 4 + BorderSpacing.Top = 2 + BorderSpacing.Right = 4 + BorderSpacing.Bottom = 4 + DefaultNodeHeight = 44 + DragType = dtVCL + Header.AutoSizeIndex = 0 + Header.Columns = < + item + Position = 0 + Text = 'ID' + end + item + Position = 1 + Text = 'Tile' + Width = 44 + end + item + Position = 2 + Text = 'Name' + Width = 100 + end> + Header.DefaultHeight = 17 + Header.Options = [hoColumnResize, hoDrag, hoVisible] + Header.ParentFont = True + Header.Style = hsFlatButtons + TabOrder = 0 + TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] + TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect] + OnDragOver = vdtRandomDragOver + OnDragDrop = vdtRandomDragDrop + OnDrawNode = vdtTilesDrawNode + OnLoadNode = vdtRandomLoadNode + OnSaveNode = vdtRandomSaveNode + OnUpdating = vdtRandomUpdating + end + object cbRandomPreset: TComboBox + AnchorSideLeft.Control = gbRandom + AnchorSideRight.Control = btnRandomPresetSave + AnchorSideBottom.Control = gbRandom + AnchorSideBottom.Side = asrBottom + Left = 4 + Height = 29 + Top = 134 + Width = 156 + Anchors = [akLeft, akRight, akBottom] + BorderSpacing.Left = 4 + BorderSpacing.Right = 4 + BorderSpacing.Bottom = 4 + ItemHeight = 0 + OnChange = cbRandomPresetChange + Style = csDropDownList + TabOrder = 1 + end + end + object spTileList: TSplitter + AnchorSideLeft.Control = tsTiles + AnchorSideRight.Control = tsTiles + AnchorSideRight.Side = asrBottom + Cursor = crVSplit + Left = 0 + Height = 5 + Top = 306 + Width = 218 + Align = alNone + Anchors = [akTop, akLeft, akRight] + ResizeAnchor = akBottom + end + object edSearchID: TEdit + AnchorSideRight.Control = vdtTiles + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = vdtTiles + AnchorSideBottom.Side = asrBottom + Left = 114 + Height = 19 + Hint = 'Append S or T to restrict the search to Statics or Terrain.' + Top = 283 + Width = 96 + Anchors = [akRight, akBottom] + BorderSpacing.Right = 4 + BorderSpacing.Bottom = 4 + CharCase = ecUppercase + OnExit = edSearchIDExit + OnKeyPress = edSearchIDKeyPress + ParentShowHint = False + ShowHint = True + TabOrder = 2 + Visible = False + end + object edFilter: TEdit + AnchorSideLeft.Control = lblFilter + AnchorSideTop.Control = lblFilter + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = tsTiles + AnchorSideRight.Side = asrBottom + Left = 81 + Height = 19 + Top = 22 + Width = 121 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 16 + OnEditingDone = edFilterEditingDone + TabOrder = 4 + end + object cbStatics: TCheckBox + AnchorSideLeft.Control = cbTerrain + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = cbTerrain + AnchorSideTop.Side = asrBottom + Left = 4 + Height = 22 + Top = 30 + Width = 60 + Caption = 'Statics' + Checked = True + OnChange = cbStaticsChange + State = cbChecked + TabOrder = 5 + end + object cbTerrain: TCheckBox + AnchorSideLeft.Control = tsTiles + AnchorSideTop.Control = tsTiles + Left = 4 + Height = 22 + Top = 8 + Width = 61 + BorderSpacing.Left = 4 + BorderSpacing.Top = 8 + Caption = 'Terrain' + Checked = True + OnChange = cbTerrainChange + State = cbChecked + TabOrder = 6 + end + end + object tsClients: TTabSheet + Caption = 'Clients' + ClientHeight = 492 + ClientWidth = 218 + object lbClients: TListBox + Left = 0 + Height = 492 + Top = 0 + Width = 218 + Align = alClient + ItemHeight = 0 + OnDblClick = mnuGoToClientClick + PopupMenu = pmClients + Sorted = True + TabOrder = 0 + TopIndex = -1 + end + end + object tsLocations: TTabSheet + Caption = 'Locations' + ClientHeight = 492 + ClientWidth = 218 + object btnClearLocations: TSpeedButton + AnchorSideLeft.Control = btnDeleteLocation + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnDeleteLocation + Left = 128 + Height = 22 + Hint = 'Clear' + Top = 450 + Width = 23 + BorderSpacing.Left = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000F1FF0000F1FF0000F1FF0000F1FF0000EFFF0000 + EFFF0000EDFF0000EDFF00000000000000000000000000000000000000000000 + 0000000000000000F5FF1A20F5FF3C4CF9FF3A49F8FF3847F8FF3545F8FF3443 + F7FF3242F7FF141BF1FF0000EDFF000000000000000000000000000000000000 + 00000000F7FF1D23F9FF4453FAFF2429F9FF1212F7FF0F0FF6FF0C0CF5FF0909 + F5FF161BF5FF3343F7FF141BF1FF0000EDFF0000000000000000000000000000 + F9FF1F25FAFF4A58FBFF4247FBFFC9C9FDFF3B3BF9FF1313F7FF1010F6FF3333 + F7FFC5C5FDFF3035F7FF3444F7FF141BF2FF0000EDFF00000000000000000000 + FBFF4F5DFDFF3237FBFFCBCBFEFFF2F2FFFFEBEBFEFF3B3BF9FF3939F8FFEAEA + FEFFF1F1FEFFC5C5FDFF181DF6FF3343F7FF0000EFFF00000000000000000000 + FDFF525FFDFF2828FCFF4747FCFFECECFFFFF2F2FFFFECECFFFFECECFEFFF1F1 + FFFFEAEAFEFF3434F7FF0B0BF5FF3545F8FF0000EFFF00000000000000000000 + FDFF5562FEFF2C2CFDFF2929FCFF4848FCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FEFF3A3AF9FF1212F7FF0F0FF6FF3848F8FF0000F1FF00000000000000000000 + FDFF5764FEFF3030FDFF2D2DFDFF4B4BFCFFEDEDFFFFF2F2FFFFF2F2FFFFECEC + FFFF3D3DF9FF1616F8FF1313F7FF3C4BF8FF0000F1FF00000000000000000000 + FFFF5A67FEFF3333FEFF5050FDFFEDEDFFFFF3F3FFFFEDEDFFFFEDEDFFFFF2F2 + FFFFECECFEFF3E3EFAFF1717F8FF3F4EF9FF0000F1FF00000000000000000000 + FFFF5B68FFFF4347FEFFCFCFFFFFF3F3FFFFEDEDFFFF4C4CFCFF4A4AFCFFECEC + FFFFF2F2FFFFCACAFEFF2A2FFAFF4251FAFF0000F3FF00000000000000000000 + FFFF262BFFFF5D6AFFFF585BFFFFCFCFFFFF5252FEFF2F2FFDFF2C2CFDFF4B4B + FCFFCCCCFEFF484CFBFF4957FBFF1D23F9FF0000F5FF00000000000000000000 + 00000000FFFF262BFFFF5D6AFFFF4347FFFF3434FEFF3232FEFF3030FDFF2D2D + FDFF383CFCFF4F5DFCFF1F25FAFF0000F7FF0000000000000000000000000000 + 0000000000000000FFFF262BFFFF5C69FFFF5B68FFFF5A67FEFF5865FEFF5663 + FEFF5461FEFF2227FCFF0000FBFF000000000000000000000000000000000000 + 000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FDFF0000 + FDFF0000FDFF0000FDFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnClearLocationsClick + ShowHint = True + ParentShowHint = False + end + object btnDeleteLocation: TSpeedButton + AnchorSideLeft.Control = tsLocations + AnchorSideLeft.Side = asrCenter + AnchorSideBottom.Control = tsLocations + AnchorSideBottom.Side = asrBottom + Left = 101 + Height = 22 + Hint = 'Delete' + Top = 450 + Width = 23 + Anchors = [akLeft, akBottom] + BorderSpacing.Bottom = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003853BEFF3551BDFF304BBCFF2E4E + B8FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178 + E4FF334DC1FF2B4AB7FF00000000000000000000000000000000000000000000 + 0000000000004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84 + EEFF9EA0F4FF515DD7FF2B4AB7FF000000000000000000000000000000000000 + 00005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56 + E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FF0000000000000000000000000000 + 00004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF0000000000000000000000005C62 + D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59 + E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF00000000000000005F63 + DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF00000000000000006469 + DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF0000000000000000676A + DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F + ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF00000000000000000000 + 00007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84 + F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF0000000000000000000000000000 + 00006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92 + F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF0000000000000000000000000000 + 0000000000006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9 + FBFFBAC7FCFF707BE9FF4C5BCCFF000000000000000000000000000000000000 + 000000000000000000006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4 + F4FF6670E2FF535ED1FF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000686ADDFF6364DCFF6164DAFF5D63 + D9FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnDeleteLocationClick + ShowHint = True + ParentShowHint = False + end + object btnAddLocation: TSpeedButton + AnchorSideTop.Control = btnDeleteLocation + AnchorSideRight.Control = btnDeleteLocation + Left = 74 + Height = 22 + Hint = 'Add' + Top = 450 + Width = 23 + Anchors = [akTop, akRight] + BorderSpacing.Right = 4 + Color = clBtnFace + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003A8C44FF368940FF32873CFF2F84 + 37FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000459653FF419950FF7DC28FFF96D0A6FF96CFA6FF78BE + 89FF368D42FF2C8134FF00000000000000000000000000000000000000000000 + 0000000000004D9C5DFF64B478FFA8DBB5FF87CC98FF66BC7DFF64BA7CFF86CB + 98FFA5D9B4FF58AA6BFF2C8134FF000000000000000000000000000000000000 + 000056A366FF6AB97DFFA8DBB2FF60BC77FF5CBA73FF59B870FF59B56FFF58B5 + 6FFF5BB774FFA5D9B3FF5AAA6CFF2C8234FF0000000000000000000000000000 + 000053AB68FFAADDB4FF64C179FF5FBE71FF60BC77FFFFFFFFFFFFFFFFFF59B8 + 70FF58B56EFF5CB774FFA6DAB4FF388F43FF00000000000000000000000061AC + 75FF8ACC98FF89D396FF6BC67AFF63C170FF55AB65FFFFFFFFFFFFFFFFFF59B8 + 70FF59B870FF5BB972FF85CC97FF7BBE8DFF308539FF000000000000000065AF + 7AFFA9DDB3FF7DCF8AFF75CC81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF59B870FF67BE7DFF9CD4ABFF34883DFF000000000000000069B2 + 7EFFB6E2BEFF8BD597FF7AC986FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF59B870FF69C17EFF9DD4AAFF388B42FF00000000000000006DB5 + 83FFACDDB6FFA6DFAFFF81CB8CFF7CC986FF6EBD79FFFFFFFFFFFFFFFFFF5BAC + 6AFF60BC77FF5CBA73FF8BD199FF80C592FF3C8E47FF00000000000000000000 + 000085C797FFD2EED7FF95D9A0FF8AD394FF7FC889FFFFFFFFFFFFFFFFFF79CD + 85FF6BC37CFF6FC77EFFACDFB5FF459E57FF0000000000000000000000000000 + 000070B887FFAADAB7FFD8F1DCFF92D89DFF88CD93FF84CC8EFF8BD496FF8AD4 + 95FF83D28EFFAFE0B7FF6BB97DFF489856FF0000000000000000000000000000 + 00000000000070B887FFAFDCBBFFDCF2E0FFB6E4BDFF9BDBA5FF96D9A0FFA5DF + AFFFC0E8C5FF79C28AFF509E5FFF000000000000000000000000000000000000 + 0000000000000000000071B887FF94CEA4FFC3E6CBFFCFEBD4FFC9E9CEFFAFDD + B8FF6DB97FFF58A569FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000006EB684FF6AB380FF67B17CFF63AE + 77FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000 + } + NumGlyphs = 0 + OnClick = btnAddLocationClick + ShowHint = True + ParentShowHint = False + end + object vstLocations: TVirtualStringTree + AnchorSideLeft.Control = tsLocations + AnchorSideTop.Control = tsLocations + AnchorSideRight.Control = tsLocations + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = btnDeleteLocation + Cursor = 63 + Left = 4 + Height = 428 + Top = 18 + Width = 210 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 4 + BorderStyle = bsSingle + DefaultText = 'Node' + Header.AutoSizeIndex = 1 + Header.Columns = < + item + Position = 0 + Text = 'Coords' + Width = 75 + end + item + Position = 1 + Text = 'Name' + Width = 131 + end> + Header.DefaultHeight = 17 + Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] + Header.ParentFont = True + Header.Style = hsFlatButtons + TabOrder = 0 + TreeOptions.AutoOptions = [toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] + TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] + TreeOptions.SelectionOptions = [toFullRowSelect] + OnDblClick = vstLocationsDblClick + OnFreeNode = vstLocationsFreeNode + OnGetText = vstLocationsGetText + OnLoadNode = vstLocationsLoadNode + OnNewText = vstLocationsNewText + OnSaveNode = vstLocationsSaveNode end end end @@ -945,132 +999,145 @@ object frmMain: TfrmMain Style = tbsCheck end end - object pnlMain: TPanel + object pnlChatHeader: TPanel + AnchorSideLeft.Control = pnlChat + AnchorSideTop.Control = spChat + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = pnlChat + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = spChat Left = 224 - Height = 525 - Top = 24 + Height = 22 + Top = 413 Width = 542 - Align = alClient - BevelOuter = bvNone - ClientHeight = 525 + Anchors = [akLeft, akRight, akBottom] + BevelInner = bvRaised + BevelOuter = bvLowered + ClientHeight = 22 ClientWidth = 542 TabOrder = 3 - object oglGameWindow: TOpenGLControl + object lblChatHeaderCaption: TLabel + Cursor = crHandPoint + Left = 10 + Height = 18 + Top = 2 + Width = 104 + Align = alLeft + BorderSpacing.Left = 8 + Caption = 'Chat and Messages' + Layout = tlCenter + ParentColor = False + OnClick = lblChatHeaderCaptionClick + OnMouseEnter = lblChatHeaderCaptionMouseEnter + OnMouseLeave = lblChatHeaderCaptionMouseLeave + end + end + object pnlChat: TPanel + AnchorSideLeft.Control = pcLeft + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = spChat + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = pnlBottom + Left = 224 + Height = 109 + Top = 440 + Width = 542 + Anchors = [akTop, akLeft, akRight, akBottom] + BevelOuter = bvNone + ClientHeight = 109 + ClientWidth = 542 + TabOrder = 4 + Visible = False + object vstChat: TVirtualStringTree + Cursor = 63 Left = 0 - Height = 374 + Height = 90 Top = 0 Width = 542 Align = alClient - OnDblClick = oglGameWindowDblClick - OnMouseDown = oglGameWindowMouseDown - OnMouseEnter = oglGameWindowMouseEnter - OnMouseLeave = oglGameWindowMouseLeave - OnMouseMove = oglGameWindowMouseMove - OnMouseUp = oglGameWindowMouseUp - OnMouseWheel = oglGameWindowMouseWheel - OnPaint = oglGameWindowPaint - OnResize = oglGameWindowResize - end - object pnlChatHeader: TPanel - Left = 0 - Height = 24 - Top = 374 - Width = 542 - Align = alBottom - BevelInner = bvRaised - BevelOuter = bvLowered - ClientHeight = 24 - ClientWidth = 542 + DefaultText = 'Node' + Header.AutoSizeIndex = 2 + Header.Columns = < + item + Position = 0 + Text = 'Time' + Width = 75 + end + item + Position = 1 + Text = 'Sender' + Width = 75 + end + item + Position = 2 + Text = 'Message' + Width = 392 + end> + Header.DefaultHeight = 17 + Header.MainColumn = 2 + Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] + Header.ParentFont = True + Header.Style = hsFlatButtons TabOrder = 0 - object lblChatHeaderCaption: TLabel - Cursor = crHandPoint - Left = 10 - Height = 20 - Top = 2 - Width = 104 - Align = alLeft - BorderSpacing.Left = 8 - Caption = 'Chat and Messages' - Layout = tlCenter - ParentColor = False - OnClick = lblChatHeaderCaptionClick - OnMouseEnter = lblChatHeaderCaptionMouseEnter - OnMouseLeave = lblChatHeaderCaptionMouseLeave - end + TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] + TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] + TreeOptions.PaintOptions = [toHideSelection, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] + OnClick = vstChatClick + OnFreeNode = vstChatFreeNode + OnGetText = vstChatGetText + OnPaintText = vstChatPaintText end - object pnlChat: TPanel + object edChat: TEdit Left = 0 - Height = 122 - Top = 403 + Height = 19 + Top = 90 Width = 542 Align = alBottom - BevelOuter = bvNone - ClientHeight = 122 - ClientWidth = 542 + OnKeyPress = edChatKeyPress TabOrder = 1 - Visible = False - object vstChat: TVirtualStringTree - Cursor = 63 - Left = 0 - Height = 103 - Top = 0 - Width = 542 - Align = alClient - DefaultText = 'Node' - Header.AutoSizeIndex = 2 - Header.Columns = < - item - Position = 0 - Text = 'Time' - Width = 75 - end - item - Position = 1 - Text = 'Sender' - Width = 75 - end - item - Position = 2 - Text = 'Message' - Width = 392 - end> - Header.DefaultHeight = 17 - Header.MainColumn = 2 - Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] - Header.ParentFont = True - Header.Style = hsFlatButtons - TabOrder = 0 - TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] - TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] - TreeOptions.PaintOptions = [toHideSelection, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] - OnClick = vstChatClick - OnFreeNode = vstChatFreeNode - OnGetText = vstChatGetText - OnPaintText = vstChatPaintText - end - object edChat: TEdit - Left = 0 - Height = 19 - Top = 103 - Width = 542 - Align = alBottom - OnKeyPress = edChatKeyPress - TabOrder = 1 - end - end - object spChat: TSplitter - Cursor = crVSplit - Left = 0 - Height = 5 - Top = 398 - Width = 542 - Align = alBottom - AutoSnap = False - MinSize = 100 - ResizeAnchor = akBottom - Visible = False end end + object spChat: TSplitter + AnchorSideLeft.Control = pcLeft + AnchorSideLeft.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Cursor = crVSplit + Left = 224 + Height = 5 + Top = 435 + Width = 542 + Align = alNone + Anchors = [akLeft, akRight] + AutoSnap = False + ResizeAnchor = akBottom + Visible = False + end + object oglGameWindow: TOpenGLControl + AnchorSideLeft.Control = pcLeft + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = tbMain + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = pnlChatHeader + Left = 224 + Height = 389 + Top = 24 + Width = 542 + Anchors = [akTop, akLeft, akRight, akBottom] + OnDblClick = oglGameWindowDblClick + OnMouseDown = oglGameWindowMouseDown + OnMouseEnter = oglGameWindowMouseEnter + OnMouseLeave = oglGameWindowMouseLeave + OnMouseMove = oglGameWindowMouseMove + OnMouseUp = oglGameWindowMouseUp + OnMouseWheel = oglGameWindowMouseWheel + OnPaint = oglGameWindowPaint + OnResize = oglGameWindowResize + end object MainMenu1: TMainMenu Images = ImageList1 left = 232 @@ -1993,7 +2060,7 @@ object frmMain: TfrmMain } end object pmTileList: TPopupMenu - left = 185 + left = 184 top = 128 object mnuAddToRandom: TMenuItem Caption = 'Add to random pool' @@ -2346,8 +2413,8 @@ object frmMain: TfrmMain end end object pmClients: TPopupMenu - left = 185 - top = 163 + left = 184 + top = 168 object mnuGoToClient: TMenuItem Caption = 'GoTo' Default = True @@ -2461,19 +2528,6 @@ object frmMain: TfrmMain OnExecute = acNoDrawExecute end end - object pmGrabTileInfo: TPopupMenu - OnPopup = pmGrabTileInfoPopup - left = 368 - top = 32 - object mnuGrabTileID: TMenuItem - Caption = 'Grab TileID' - OnClick = mnuGrabTileIDClick - end - object mnuGrabHue: TMenuItem - Caption = 'Grab Hue' - OnClick = mnuGrabHueClick - end - end object tmGrabTileInfo: TTimer Enabled = False Interval = 250 @@ -2487,4 +2541,17 @@ object frmMain: TfrmMain left = 185 top = 200 end + object pmGrabTileInfo: TPopupMenu + OnPopup = pmGrabTileInfoPopup + left = 368 + top = 33 + object mnuGrabTileID: TMenuItem + Caption = 'Grab TileID' + OnClick = mnuGrabTileIDClick + end + object mnuGrabHue: TMenuItem + Caption = 'Grab Hue' + OnClick = mnuGrabHueClick + end + end end diff --git a/Client/UfrmMain.pas b/Client/UfrmMain.pas index e801071..8f6ac21 100644 --- a/Client/UfrmMain.pas +++ b/Client/UfrmMain.pas @@ -60,30 +60,35 @@ type ActionList1: TActionList; ApplicationProperties1: TApplicationProperties; btnAddLocation: TSpeedButton; + btnAddRandom: TSpeedButton; btnClearLocations: TSpeedButton; + btnClearRandom: TSpeedButton; btnDeleteLocation: TSpeedButton; + btnDeleteRandom: TSpeedButton; btnGoTo: TButton; + btnRandomPresetDelete: TSpeedButton; + btnRandomPresetSave: TSpeedButton; cbRandomPreset: TComboBox; - cbTerrain: TCheckBox; cbStatics: TCheckBox; - edFilter: TEdit; + cbTerrain: TCheckBox; edChat: TEdit; + edFilter: TEdit; edSearchID: TEdit; gbRandom: TGroupBox; ImageList1: TImageList; lblChatHeaderCaption: TLabel; + lblFilter: TLabel; lblTipC: TLabel; lblTip: TLabel; lblTileInfo: TLabel; - lblFilter: TLabel; lblX: TLabel; lblY: TLabel; lbClients: TListBox; MainMenu1: TMainMenu; + mnuGrabHue: TMenuItem; + mnuGrabTileID: TMenuItem; mnuRegionControl: TMenuItem; mnuVirtualLayer: TMenuItem; - mnuGrabTileID: TMenuItem; - mnuGrabHue: TMenuItem; mnuLargeScaleCommands: TMenuItem; mnuSetHue: TMenuItem; mnuGoToClient: TMenuItem; @@ -107,27 +112,17 @@ type mnuDisconnect: TMenuItem; mnuCentrED: TMenuItem; oglGameWindow: TOpenGLControl; - pnlRandomPreset: TPanel; - pnlLocationControls: TPanel; - pnlChat: TPanel; - pnlChatHeader: TPanel; - pnlMain: TPanel; - pnlRandomControl: TPanel; - pnlTileListSettings: TPanel; pcLeft: TPageControl; + pmGrabTileInfo: TPopupMenu; pnlBottom: TPanel; edX: TSpinEdit; edY: TSpinEdit; pmTileList: TPopupMenu; - btnAddRandom: TSpeedButton; - btnDeleteRandom: TSpeedButton; - btnClearRandom: TSpeedButton; pmTools: TPopupMenu; pmClients: TPopupMenu; - pmGrabTileInfo: TPopupMenu; + pnlChat: TPanel; + pnlChatHeader: TPanel; spChat: TSplitter; - btnRandomPresetSave: TSpeedButton; - btnRandomPresetDelete: TSpeedButton; spTileList: TSplitter; tbFilter: TToolButton; tbFlat: TToolButton; @@ -157,8 +152,8 @@ type tsTiles: TTabSheet; vdtTiles: TVirtualDrawTree; vdtRandom: TVirtualDrawTree; - vstLocations: TVirtualStringTree; vstChat: TVirtualStringTree; + vstLocations: TVirtualStringTree; procedure acBoundariesExecute(Sender: TObject); procedure acDeleteExecute(Sender: TObject); procedure acDrawExecute(Sender: TObject); @@ -739,6 +734,7 @@ begin Randomize; vstChat.NodeDataSize := SizeOf(TChatInfo); + pnlChatHeader.AnchorSide[akBottom].Control := pnlBottom; FLocationsFile := IncludeTrailingPathDelimiter(ExtractFilePath( Application.ExeName)) + 'Locations.dat'; @@ -1113,12 +1109,13 @@ begin begin pnlChat.Visible := False; spChat.Visible := False; + pnlChatHeader.AnchorSide[akBottom].Control := pnlBottom; end else begin spChat.Visible := True; pnlChat.Visible := True; - spChat.Top := pnlChatHeader.Top + pnlChatHeader.Height; - pnlChat.Top := spChat.Top + spChat.Height; + spChat.Top := pnlChat.Top - spChat.Height; + pnlChatHeader.AnchorSide[akBottom].Control := spChat; lblChatHeaderCaption.Font.Bold := False; lblChatHeaderCaption.Font.Italic := False; @@ -1368,8 +1365,6 @@ procedure TfrmMain.vdtTilesKeyPress(Sender: TObject; var Key: char); begin if Key in ['$', '0'..'9'] then begin - edSearchID.Top := vdtTiles.Top + vdtTiles.Height - edSearchID.Height - 4; - edSearchID.Left := vdtTiles.Left + vdtTiles.Width - edSearchID.Width - 4; edSearchID.Text := Key; edSearchID.Visible := True; edSearchID.SetFocus;