diff --git a/Client/CentrED.lpi b/Client/CentrED.lpi
index 7be464f..669ff6a 100644
--- a/Client/CentrED.lpi
+++ b/Client/CentrED.lpi
@@ -25,19 +25,19 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -50,6 +50,7 @@
+
@@ -57,6 +58,7 @@
+
@@ -64,6 +66,7 @@
+
@@ -142,6 +145,7 @@
+
@@ -149,6 +153,7 @@
+
@@ -163,6 +168,7 @@
+
@@ -177,6 +183,7 @@
+
@@ -208,7 +215,6 @@
-
@@ -219,11 +225,9 @@
-
-
diff --git a/Client/Tools/UfrmFilter.lfm b/Client/Tools/UfrmFilter.lfm
index 3184f6d..59e47fc 100644
--- a/Client/Tools/UfrmFilter.lfm
+++ b/Client/Tools/UfrmFilter.lfm
@@ -3,9 +3,7 @@ object frmFilter: TfrmFilter
Height = 491
Top = 171
Width = 236
- HorzScrollBar.Page = 235
- VertScrollBar.Page = 490
- ActiveControl = rgFilterType
+ ActiveControl = rgFilterType.RadioButton0
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsToolWindow
Caption = 'Filter'
@@ -13,6 +11,7 @@ object frmFilter: TfrmFilter
ClientWidth = 236
OnCreate = FormCreate
OnShow = FormShow
+ LCLVersion = '0.9.25'
object rgFilterType: TRadioGroup
Left = 4
Height = 40
@@ -30,7 +29,7 @@ object frmFilter: TfrmFilter
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
- ClientHeight = 18
+ ClientHeight = 21
ClientWidth = 222
Columns = 2
ItemIndex = 0
@@ -48,13 +47,13 @@ object frmFilter: TfrmFilter
Align = alClient
BorderSpacing.Around = 4
Caption = 'Tile filter'
- ClientHeight = 236
+ ClientHeight = 239
ClientWidth = 222
TabOrder = 1
object Label1: TLabel
Left = 4
Height = 25
- Top = 32
+ Top = 29
Width = 214
Align = alTop
BorderSpacing.Around = 4
@@ -65,8 +64,8 @@ object frmFilter: TfrmFilter
object vdtFilter: TVirtualDrawTree
Tag = 1
Left = 4
- Height = 145
- Top = 61
+ Height = 151
+ Top = 58
Width = 214
Align = alClient
BorderSpacing.Around = 4
@@ -99,7 +98,7 @@ object frmFilter: TfrmFilter
object pnlControls: TPanel
Left = 4
Height = 22
- Top = 210
+ Top = 213
Width = 214
Align = alBottom
BorderSpacing.Around = 4
@@ -114,83 +113,40 @@ object frmFilter: TfrmFilter
Width = 23
Color = clBtnFace
Glyph.Data = {
- 810900002F2A2058504D202A2F0A7374617469632063686172202A6772617068
- 69635B5D203D207B0A223136203136203131332032222C0A222E2E2063204E6F
- 6E65222C0A222E2C20632023444436413638222C0A222E2D2063202344433634
- 3633222C0A222E2A20632023444136343631222C0A222E612063202344393633
- 3544222C0A222E6220632023444636413641222C0A222E632063202345443933
- 3845222C0A222E6420632023463843334245222C0A222E652063202346394433
- 4343222C0A222E6620632023463943424334222C0A222E672063202346344234
- 4141222C0A222E6820632023453237303636222C0A222E692063202344313545
- 3533222C0A222E6A20632023453036393641222C0A222E6B2063202346324144
- 4141222C0A222E6C20632023464444434438222C0A222E6D2063202346414241
- 4145222C0A222E6E20632023464141333931222C0A222E6F2063202346413944
- 3842222C0A222E7020632023464241393943222C0A222E712063202346434337
- 4241222C0A222E7220632023453937423730222C0A222E732063202343433542
- 3443222C0A222E7420632023463341374133222C0A222E752063202346444442
- 4434222C0A222E7620632023464139413837222C0A222E772063202346303931
- 3746222C0A222E7820632023463138453741222C0A222E792063202346383934
- 3746222C0A222E7A20632023463939323745222C0A222E412063202346383843
- 3736222C0A222E4220632023463842364138222C0A222E432063202345333645
- 3633222C0A222E4420632023433735373435222C0A222E452063202345413833
- 3744222C0A222E4620632023464344344344222C0A222E472063202346373933
- 3745222C0A222E4820632023454538413735222C0A222E492063202346363834
- 3643222C0A222E4A20632023463337393633222C0A222E4B2063202346384146
- 4134222C0A222E4C20632023443034463345222C0A222E4D2063202344453641
- 3637222C0A222E4E20632023463541464135222C0A222E4F2063202346414142
- 3944222C0A222E5020632023463038433737222C0A222E512063202345433546
- 3534222C0A222E5220632023463237373633222C0A222E532063202346343845
- 3831222C0A222E5420632023453937463738222C0A222E552063202343303533
- 3341222C0A222E5620632023444236393634222C0A222E572063202346394239
- 4146222C0A222E5820632023464139333746222C0A222E592063202346303835
- 3730222C0A222E5A20632023464646464646222C0A222E302063202345393539
- 3444222C0A222E3120632023454536413545222C0A222E322063202346313944
- 3936222C0A222E3320632023424534463336222C0A222E342063202344413633
- 3546222C0A222E3520632023463741424131222C0A222E362063202346383836
- 3730222C0A222E3720632023463638323638222C0A222E382063202345413636
- 3543222C0A222E3920632023463139433936222C0A222E402063202342433530
- 3332222C0A222E2320632023443736323543222C0A222E3B2063202345453843
- 3831222C0A222E3A20632023463739313745222C0A222E3D2063202346333733
- 3544222C0A222E2B20632023453935423446222C0A222E252063202346303833
- 3742222C0A222E2420632023453237423735222C0A222E282063202342413442
- 3245222C0A222E2920632023444235363442222C0A222E5B2063202346364142
- 4132222C0A222E5D20632023463036343536222C0A222C2E2063202345453636
- 3532222C0A222C2C20632023453635383443222C0A222C2D2063202345363541
- 3532222C0A222C2A20632023463541333946222C0A222C612063202343343530
- 3334222C0A222C6220632023434636313533222C0A222C632063202345333642
- 3631222C0A222C6420632023463541434131222C0A222C652063202345413543
- 3530222C0A222C6620632023453635393445222C0A222C672063202345363536
- 3443222C0A222C6820632023453635363530222C0A222C692063202346344132
- 3945222C0A222C6A20632023443636303534222C0A222C6B2063202342383441
- 3241222C0A222C6C20632023434235393439222C0A222C6D2063202345303635
- 3543222C0A222C6E20632023463541364131222C0A222C6F2063202345463836
- 3745222C0A222C7020632023453936333542222C0A222C712063202345373544
- 3539222C0A222C7220632023454538343744222C0A222C732063202346344130
- 3945222C0A222C7420632023443735443531222C0A222C752063202342373441
- 3242222C0A222C7620632023433635353432222C0A222C772063202343433532
- 3343222C0A222C7820632023453837413735222C0A222C792063202345453932
- 3846222C0A222C7A20632023453437383731222C0A222C412063202343313444
- 3333222C0A222C4220632023424535333338222C0A222C432063202342443531
- 3335222C0A222C4420632023424334423330222C0A222C452063202342383445
- 3245222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
- 2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2C2E2D2E2A2E612E2E
- 2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E622E632E642E652E66
- 2E672E682E692E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E6A2E6B2E6C2E6D
- 2E6E2E6F2E702E712E722E732E2E2E2E2E2E222C0A222E2E2E2E2E6A2E742E75
- 2E762E772E782E792E7A2E412E422E432E442E2E2E2E222C0A222E2E2E2E2E45
- 2E462E6F2E472E482E492E492E492E492E4A2E4B2E4C2E2E2E2E222C0A222E2E
- 2E4D2E4E2E4F2E502E512E512E512E512E512E512E522E532E542E552E2E222C
- 0A222E2E2E562E572E582E592E5A2E5A2E5A2E5A2E5A2E5A2E302E312E322E33
- 2E2E222C0A222E2E2E342E352E362E372E5A2E5A2E5A2E5A2E5A2E5A2E302E38
- 2E392E402E2E222C0A222E2E2E232E3B2E3A2E3D2E302E302E302E302E302E30
- 2E2B2E252E242E282E2E222C0A222E2E2E2E2E292E5B2E5D2C2E2E302E302E30
- 2E302C2C2C2D2C2A2C612E2E2E2E222C0A222E2E2E2E2C622C632C642E512C65
- 2E302C662C672C682C692C6A2C6B2E2E2E2E222C0A222E2E2E2E2E2E2C6C2C6D
- 2C6E2C6F2C702C712C722C732C742C752E2E2E2E2E2E222C0A222E2E2E2E2E2E
- 2E2E2C762C772C782C792C792C7A2C412C752E2E2E2E2E2E2E2E222C0A222E2E
- 2E2E2E2E2E2E2E2E2E2E2C422C432C442C452E2E2E2E2E2E2E2E2E2E2E2E222C
- 0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
- 2E2E227D0A
+ 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
@@ -204,78 +160,40 @@ object frmFilter: TfrmFilter
Width = 23
Color = clBtnFace
Glyph.Data = {
- F10800002F2A2058504D202A2F0A7374617469632063686172202A6772617068
- 69635B5D203D207B0A223136203136203130342032222C0A222E2E2063204E6F
- 6E65222C0A222E2C20632023464630303030222C0A222E2D2063202346443030
- 3030222C0A222E2A20632023464632423236222C0A222E612063202346463639
- 3543222C0A222E6220632023464636383542222C0A222E632063202346453637
- 3541222C0A222E6420632023464536353538222C0A222E652063202346453633
- 3536222C0A222E6620632023464536313534222C0A222E672063202346433237
- 3232222C0A222E6820632023464230303030222C0A222E692063202346463641
- 3544222C0A222E6A20632023464634373433222C0A222E6B2063202346453334
- 3334222C0A222E6C20632023464533323332222C0A222E6D2063202346443330
- 3330222C0A222E6E20632023464432443244222C0A222E6F2063202346433343
- 3338222C0A222E7020632023464335443446222C0A222E712063202346413235
- 3146222C0A222E7220632023463730303030222C0A222E732063202346463542
- 3538222C0A222E7420632023464643464346222C0A222E752063202346453532
- 3532222C0A222E7620632023464432463246222C0A222E772063202346443243
- 3243222C0A222E7820632023464334423442222C0A222E792063202346454343
- 4343222C0A222E7A20632023464234433438222C0A222E412063202346423537
- 3439222C0A222E4220632023463932333144222C0A222E432063202346353030
- 3030222C0A222E4420632023464534373433222C0A222E452063202346464633
- 4633222C0A222E4620632023464645444544222C0A222E472063202346433443
- 3443222C0A222E4820632023464334413441222C0A222E492063202346464543
- 4543222C0A222E4A20632023464646324632222C0A222E4B2063202346454341
- 4341222C0A222E4C20632023464132463241222C0A222E4D2063202346413531
- 3432222C0A222E4E20632023463330303030222C0A222E4F2063202346453333
- 3333222C0A222E5020632023464435303530222C0A222E512063202346454543
- 4543222C0A222E5220632023464133453345222C0A222E532063202346383137
- 3137222C0A222E5420632023463934453346222C0A222E552063202346313030
- 3030222C0A222E5620632023464536343537222C0A222E572063202346393344
- 3344222C0A222E5820632023463831363136222C0A222E592063202346373133
- 3133222C0A222E5A20632023463834423343222C0A222E302063202346453632
- 3535222C0A222E3120632023464332393239222C0A222E322063202346433438
- 3438222C0A222E3320632023463933413341222C0A222E342063202346373132
- 3132222C0A222E3520632023463630463046222C0A222E362063202346383438
- 3338222C0A222E3720632023464435463532222C0A222E382063202346433238
- 3238222C0A222E3920632023464334373437222C0A222E402063202346464631
- 4631222C0A222E2320632023464545414541222C0A222E3B2063202346373334
- 3334222C0A222E3A20632023463530423042222C0A222E3D2063202346383435
- 3335222C0A222E2B20632023454630303030222C0A222E252063202346443544
- 3446222C0A222E2420632023464233373332222C0A222E282063202346454342
- 4342222C0A222E2920632023464545424542222C0A222E5B2063202346393342
- 3342222C0A222E5D20632023463833393339222C0A222C2E2063202346454631
- 4631222C0A222C2C20632023464443354335222C0A222C2D2063202346363144
- 3138222C0A222C2A20632023463734333333222C0A222C612063202346393030
- 3030222C0A222C6220632023464235383441222C0A222C632063202346423437
- 3432222C0A222C6420632023464443394339222C0A222C652063202346363130
- 3130222C0A222C6620632023463733333333222C0A222C672063202346373335
- 3330222C0A222C6820632023463734343334222C0A222C692063202346323142
- 3134222C0A222C6A20632023454430303030222C0A222C6B2063202346413533
- 3434222C0A222C6C20632023463932393234222C0A222C6D2063202346353043
- 3043222C0A222C6E20632023463530393039222C0A222C6F2063202346353142
- 3136222C0A222C7020632023463131423134222C0A222C712063202346353230
- 3141222C0A222C7220632023463934433343222C0A222C732063202346383439
- 3341222C0A222C7420632023463834373338222C0A222C752063202346373433
- 3334222C0A222C7620632023463734323332222C0A222E2E2E2E2E2E2E2E2E2E
- 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E
- 2E2E2E2C2E2C2E2C2E2C2E2D2E2D2E2D2E2D2E2E2E2E2E2E2E2E222C0A222E2E
- 2E2E2E2E2E2C2E2A2E612E622E632E642E652E662E672E682E2E2E2E2E2E222C
- 0A222E2E2E2E2E2C2E2A2E692E6A2E6B2E6C2E6D2E6E2E6F2E702E712E722E2E
- 2E2E222C0A222E2E2E2C2E2A2E692E732E742E752E762E772E782E792E7A2E41
- 2E422E432E2E222C0A222E2E2E2C2E622E442E742E452E462E472E482E492E4A
- 2E4B2E4C2E4D2E4E2E2E222C0A222E2E2E2C2E632E4F2E502E462E452E462E46
- 2E4A2E512E522E532E542E552E2E222C0A222E2E2E2D2E562E6D2E6E2E782E46
- 2E4A2E4A2E492E572E582E592E5A2E552E2E222C0A222E2E2E2D2E302E772E31
- 2E322E462E4A2E4A2E512E332E342E352E362E552E2E222C0A222E2E2E2D2E37
- 2E382E392E492E4A2E492E512E402E232E3B2E3A2E3D2E2B2E2E222C0A222E2E
- 2E682E252E242E282E4A2E292E5B2E5D2E232C2E2C2C2C2D2C2A2E2B2E2E222C
- 0A222E2E2C612E712C622C632C642E5B2E592C652C662C2C2C672C682C692C6A
- 2E2E222C0A222E2E2E2E2E722E422C6B2C6C2E342E352C6D2C6E2C6F2C2A2C70
- 2C6A2E2E2E2E222C0A222E2E2E2E2E2E2E432C712C722C732C742E3D2C752C76
- 2C702C6A2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E552E552E552E552E2B
- 2E2B2C6A2C6A2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E
- 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A
+ 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
@@ -285,7 +203,7 @@ object frmFilter: TfrmFilter
end
object cbTileFilter: TCheckBox
Left = 4
- Height = 24
+ Height = 21
Top = 4
Width = 214
Align = alTop
@@ -304,12 +222,12 @@ object frmFilter: TfrmFilter
Align = alBottom
BorderSpacing.Around = 4
Caption = 'Hue filter'
- ClientHeight = 146
+ ClientHeight = 149
ClientWidth = 222
TabOrder = 2
object cbHueFilter: TCheckBox
Left = 4
- Height = 24
+ Height = 21
Top = 4
Width = 214
Align = alTop
@@ -319,8 +237,8 @@ object frmFilter: TfrmFilter
end
object vdtHues: TVirtualDrawTree
Left = 4
- Height = 110
- Top = 32
+ Height = 116
+ Top = 29
Width = 214
Align = alClient
BorderSpacing.Around = 4
diff --git a/Client/UGUIPlatformUtils.pas b/Client/UGUIPlatformUtils.pas
index 4f73fa7..1bae25a 100644
--- a/Client/UGUIPlatformUtils.pas
+++ b/Client/UGUIPlatformUtils.pas
@@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2007 Andreas Schneider
+ * Portions Copyright 2008 Andreas Schneider
*)
unit UGUIPlatformUtils;
@@ -32,7 +32,8 @@ interface
uses
Classes, SysUtils
{$IFDEF LCLWin32}, windows{$ENDIF}
- {$IFDEF LCLGtk}, gtk{$ENDIF};
+ {$IFDEF LCLGtk}, gtk{$ENDIF}
+ {$IFDEF LCLGtk2}, gtk2{$ENDIF};
procedure SetWindowParent(AHandle, AParent: THANDLE);
@@ -46,7 +47,15 @@ begin
{$IFDEF LCLGtk}
gtk_window_set_transient_for(PGtkWindow(AHandle), PGtkWindow(AParent));
{$ENDIF}
+ {$IFDEF LCLGtk2}
+ gtk_window_set_transient_for(PGtkWindow(AHandle), PGtkWindow(AParent));
+ {$ENDIF}
end;
+initialization
+ {$IFDEF LCLGtk2}
+ gtk_rc_parse_string('style "user-font" { font_name = "Sans 8" } widget_class "*" style "user-font"');
+ {$ENDIF}
+
end.
diff --git a/Client/UfrmAbout.lfm b/Client/UfrmAbout.lfm
index 24cfb74..c6bd5bc 100644
--- a/Client/UfrmAbout.lfm
+++ b/Client/UfrmAbout.lfm
@@ -1,105 +1,141 @@
object frmAbout: TfrmAbout
Left = 290
- Height = 323
+ Height = 374
Top = 171
- Width = 355
- HorzScrollBar.Page = 354
- VertScrollBar.Page = 322
- ActiveControl = btnClose
+ Width = 364
+ HorzScrollBar.Page = 363
+ VertScrollBar.Page = 373
+ AutoSize = True
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
Caption = 'About CentrED'
- ClientHeight = 323
- ClientWidth = 355
+ ClientHeight = 374
+ ClientWidth = 364
OnCreate = FormCreate
Position = poScreenCenter
+ LCLVersion = '0.9.25'
object Label3: TLabel
Left = 8
- Height = 61
- Top = 208
- Width = 339
+ Height = 89
+ Top = 230
+ Width = 348
+ Align = alTop
+ BorderSpacing.Top = 16
BorderSpacing.Around = 8
- Caption = 'Ultima™ Online © 1997 Electronic Arts Inc. Ultima, the UO logo, Are You With Us?, ORIGIN, the ORIGIN logo and We create worlds are trademarks or registered trademarks of Electronic Arts Inc. in the U.S. and/or other countries. All rights reserved.'
+ Caption = 'Ultima(tm) Online (c) 1997 Electronic Arts Inc. Ultima, the UO logo, Are You With Us?, ORIGIN, the ORIGIN logo and We create worlds are trademarks or registered trademarks of Electronic Arts Inc. in the U.S. and/or other countries. All rights reserved.'
ParentColor = False
WordWrap = True
end
object Label5: TLabel
Left = 8
- Height = 16
- Top = 128
- Width = 227
+ Height = 20
+ Top = 120
+ Width = 348
+ Align = alTop
+ BorderSpacing.Left = 8
+ BorderSpacing.Right = 8
Caption = 'It is using the following great components:'
ParentColor = False
end
object Label6: TLabel
Left = 16
- Height = 46
- Top = 144
- Width = 218
+ Height = 66
+ Top = 140
+ Width = 340
+ Align = alTop
+ BorderSpacing.Left = 16
+ BorderSpacing.Right = 8
Caption = '- Vampyre Imaging Lib by Marek Mauder'#13#10'- lNet by Ales Katona and Micha Nelissen'#13#10'- VirtualTrees by Mike Lischke'
ParentColor = False
end
object Label7: TLabel
Left = 8
- Height = 16
- Top = 104
- Width = 310
+ Height = 20
+ Top = 100
+ Width = 348
+ Align = alTop
+ BorderSpacing.Left = 8
+ BorderSpacing.Right = 8
Caption = 'CentrED has been developed using Lazarus and FreePascal.'
ParentColor = False
WordWrap = True
end
- object Panel1: TPanel
- Height = 88
- Width = 202
- BevelInner = bvRaised
- BevelOuter = bvLowered
- ClientHeight = 88
- ClientWidth = 202
+ object Panel2: TPanel
+ Height = 92
+ Width = 364
+ Align = alTop
+ AutoSize = True
+ BorderSpacing.Bottom = 8
+ ClientHeight = 92
+ ClientWidth = 364
TabOrder = 0
- object Label1: TLabel
- Left = 2
- Height = 38
- Top = 2
- Width = 198
- Align = alTop
- Alignment = taCenter
- AutoSize = False
- Caption = 'UO CentrED'
- Font.Height = -27
- Font.Style = [fsBold]
- ParentColor = False
- end
- object lblVersion: TLabel
- Left = 6
- Height = 18
- Top = 40
- Width = 190
- Align = alTop
- Alignment = taRightJustify
- BorderSpacing.Left = 4
- BorderSpacing.Right = 4
- Font.Style = [fsItalic]
- ParentColor = False
- end
- object lblCopyright: TLabel
- Left = 6
- Height = 19
- Top = 63
- Width = 190
- Align = alBottom
- Alignment = taCenter
- BorderSpacing.Around = 4
- ParentColor = False
+ object Panel1: TPanel
+ Left = 1
+ Height = 91
+ Top = 1
+ Width = 215
+ AutoSize = True
+ BevelInner = bvRaised
+ BevelOuter = bvLowered
+ ClientHeight = 91
+ ClientWidth = 215
+ TabOrder = 0
+ object Label1: TLabel
+ Left = 2
+ Height = 38
+ Top = 2
+ Width = 211
+ Align = alTop
+ Alignment = taCenter
+ AutoSize = False
+ Caption = 'UO CentrED'
+ Font.Height = -27
+ Font.Style = [fsBold]
+ ParentColor = False
+ end
+ object lblVersion: TLabel
+ Left = 6
+ Height = 21
+ Top = 40
+ Width = 203
+ Align = alTop
+ Alignment = taRightJustify
+ BorderSpacing.Left = 4
+ BorderSpacing.Right = 4
+ Font.Style = [fsItalic]
+ ParentColor = False
+ end
+ object lblCopyright: TLabel
+ Left = 6
+ Height = 22
+ Top = 65
+ Width = 203
+ Align = alTop
+ Alignment = taCenter
+ BorderSpacing.Around = 4
+ ParentColor = False
+ end
end
end
- object btnClose: TButton
- Left = 144
+ object Panel3: TPanel
+ Left = 8
Height = 25
- Top = 288
- Width = 75
- BorderSpacing.InnerBorder = 4
- Caption = 'Close'
- OnClick = btnCloseClick
+ Top = 327
+ Width = 348
+ Align = alTop
+ BorderSpacing.Around = 8
+ ClientHeight = 25
+ ClientWidth = 348
TabOrder = 1
+ object btnClose: TButton
+ Left = 272
+ Height = 23
+ Top = 1
+ Width = 75
+ Align = alRight
+ BorderSpacing.InnerBorder = 4
+ Caption = 'Close'
+ TabOrder = 0
+ end
end
end
diff --git a/Client/UfrmAbout.pas b/Client/UfrmAbout.pas
index f49e71f..1fd6921 100644
--- a/Client/UfrmAbout.pas
+++ b/Client/UfrmAbout.pas
@@ -37,16 +37,18 @@ type
{ TfrmAbout }
- TfrmAbout = class(TForm)
- btnClose: TButton;
+ TfrmAbout = class(TForm)
+ btnClose: TButton;
Label1: TLabel;
- lblCopyright: TLabel;
Label3: TLabel;
- lblVersion: TLabel;
Label5: TLabel;
Label6: TLabel;
- Label7: TLabel;
- Panel1: TPanel;
+ Label7: TLabel;
+ lblCopyright: TLabel;
+ lblVersion: TLabel;
+ Panel1: TPanel;
+ Panel2: TPanel;
+ Panel3: TPanel;
procedure btnCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
diff --git a/Client/UfrmMain.lfm b/Client/UfrmMain.lfm
index bc62e60..4ffe6c1 100644
--- a/Client/UfrmMain.lfm
+++ b/Client/UfrmMain.lfm
@@ -3,11 +3,9 @@ object frmMain: TfrmMain
Height = 603
Top = 144
Width = 766
- HorzScrollBar.Page = 765
- VertScrollBar.Page = 570
ActiveControl = edX
Caption = 'UO CentrED'
- ClientHeight = 571
+ ClientHeight = 574
ClientWidth = 766
Constraints.MinHeight = 603
Constraints.MinWidth = 766
@@ -18,10 +16,11 @@ object frmMain: TfrmMain
OnDestroy = FormDestroy
Position = poScreenCenter
ShowInTaskBar = stAlways
+ LCLVersion = '0.9.25'
WindowState = wsMaximized
object pnlBottom: TPanel
Height = 31
- Top = 540
+ Top = 543
Width = 766
Align = alBottom
BevelOuter = bvNone
@@ -101,7 +100,7 @@ object frmMain: TfrmMain
end
end
object pcLeft: TPageControl
- Height = 516
+ Height = 519
Top = 24
Width = 224
ActivePage = tsTiles
@@ -110,7 +109,7 @@ object frmMain: TfrmMain
TabOrder = 1
object tsTiles: TTabSheet
Caption = 'Tiles'
- ClientHeight = 482
+ ClientHeight = 488
ClientWidth = 220
object pnlTileListSettings: TPanel
Height = 56
@@ -130,7 +129,7 @@ object frmMain: TfrmMain
end
object cbTerrain: TCheckBox
Left = 4
- Height = 24
+ Height = 21
Top = 8
Width = 64
Caption = 'Terrain'
@@ -141,7 +140,7 @@ object frmMain: TfrmMain
end
object cbStatics: TCheckBox
Left = 4
- Height = 24
+ Height = 21
Top = 32
Width = 62
Caption = 'Statics'
@@ -161,7 +160,7 @@ object frmMain: TfrmMain
end
object vdtTiles: TVirtualDrawTree
Tag = 1
- Height = 228
+ Height = 234
Top = 56
Width = 220
Align = alClient
@@ -203,17 +202,17 @@ object frmMain: TfrmMain
end
object gbRandom: TGroupBox
Height = 193
- Top = 289
+ Top = 295
Width = 220
Align = alBottom
Caption = 'Random pool'
- ClientHeight = 171
+ ClientHeight = 174
ClientWidth = 214
TabOrder = 2
object vdtRandom: TVirtualDrawTree
Tag = 1
Cursor = 63
- Height = 119
+ Height = 122
Top = 22
Width = 214
Align = alClient
@@ -398,7 +397,7 @@ object frmMain: TfrmMain
object pnlRandomPreset: TPanel
Left = 4
Height = 22
- Top = 145
+ Top = 148
Width = 206
Align = alBottom
BorderSpacing.Around = 4
@@ -503,7 +502,7 @@ object frmMain: TfrmMain
ParentShowHint = False
end
object cbRandomPreset: TComboBox
- Height = 21
+ Height = 25
Width = 152
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
MaxLength = 0
@@ -516,7 +515,7 @@ object frmMain: TfrmMain
object spTileList: TSplitter
Cursor = crVSplit
Height = 5
- Top = 284
+ Top = 290
Width = 220
Align = alBottom
ResizeAnchor = akBottom
@@ -538,10 +537,10 @@ object frmMain: TfrmMain
end
object tsClients: TTabSheet
Caption = 'Clients'
- ClientHeight = 516
+ ClientHeight = 525
ClientWidth = 224
object lbClients: TListBox
- Height = 516
+ Height = 525
Width = 224
Align = alClient
OnDblClick = mnuGoToClientClick
@@ -553,11 +552,11 @@ object frmMain: TfrmMain
end
object tsLocations: TTabSheet
Caption = 'Locations'
- ClientHeight = 516
+ ClientHeight = 525
ClientWidth = 224
object vstLocations: TVirtualStringTree
Left = 4
- Height = 480
+ Height = 489
Top = 4
Width = 216
Align = alClient
@@ -589,7 +588,7 @@ object frmMain: TfrmMain
object pnlLocationControls: TPanel
Left = 4
Height = 24
- Top = 488
+ Top = 497
Width = 216
Align = alBottom
BorderSpacing.Around = 4
@@ -918,16 +917,16 @@ object frmMain: TfrmMain
end
object pnlMain: TPanel
Left = 224
- Height = 516
+ Height = 519
Top = 24
Width = 542
Align = alClient
BevelOuter = bvNone
- ClientHeight = 516
+ ClientHeight = 519
ClientWidth = 542
TabOrder = 3
object oglGameWindow: TOpenGLControl
- Height = 365
+ Height = 368
Width = 542
Align = alClient
OnDblClick = oglGameWindowDblClick
@@ -941,7 +940,7 @@ object frmMain: TfrmMain
end
object pnlChatHeader: TPanel
Height = 24
- Top = 365
+ Top = 368
Width = 542
Align = alBottom
BevelInner = bvRaised
@@ -967,7 +966,7 @@ object frmMain: TfrmMain
end
object pnlChat: TPanel
Height = 122
- Top = 394
+ Top = 397
Width = 542
Align = alBottom
BevelOuter = bvNone
@@ -1018,13 +1017,13 @@ object frmMain: TfrmMain
object spChat: TSplitter
Cursor = crVSplit
Height = 5
- Top = 389
+ Top = 392
Width = 542
Align = alBottom
AutoSnap = False
MinSize = 100
- Visible = False
ResizeAnchor = akBottom
+ Visible = False
end
end
object MainMenu1: TMainMenu
diff --git a/Imaging/ImagingComponents.pas b/Imaging/ImagingComponents.pas
index 7f3aae3..e55b2d6 100644
--- a/Imaging/ImagingComponents.pas
+++ b/Imaging/ImagingComponents.pas
@@ -114,7 +114,7 @@ type
{ Returns file extensions of this graphic class.}
class function GetFileExtensions: string; override;
{ Returns default MIME type of this graphic class.}
- function GetDefaultMimeType: string; override;
+ function GetMimeType: string; override;
{$ENDIF}
{ Default (the most common) file extension of this graphic class.}
property DefaultFileExt: string read FDefaultFileExt;
@@ -637,6 +637,7 @@ var
{$IFDEF COMPONENT_SET_LCL}
RawImage: TRawImage;
LineLazBytes: LongInt;
+ rect: TRect;
{$ENDIF}
begin
{$IFDEF COMPONENT_SET_LCL}
@@ -725,7 +726,8 @@ begin
{$IFDEF COMPONENT_SET_LCL}
// Get raw image from bitmap (mask handle must be 0 or expect violations)
{ If you get complitation error here upgrade to Lazarus 0.9.24+ }
- if RawImage_FromBitmap(RawImage, Bitmap.Handle, 0, Classes.Rect(0, 0, Data.Width, Data.Height)) then
+ rect := Classes.Rect(0, 0, Data.Width, Data.Height);
+ if RawImage_FromBitmap(RawImage, Bitmap.Handle, 0, @rect) then
begin
LineLazBytes := GetBytesPerLine(Data.Width, RawImage.Description.BitsPerPixel,
RawImage.Description.LineEnd);
@@ -1012,7 +1014,7 @@ begin
Result := StringReplace(GetFileFormat.Extensions.CommaText, ',', ';', [rfReplaceAll]);
end;
-function TImagingGraphicForSave.GetDefaultMimeType: string;
+function TImagingGraphicForSave.GetMimeType: string;
begin
Result := 'image/' + FDefaultFileExt;
end;
diff --git a/Server/UConfig.pas b/Server/UConfig.pas
index 499ec53..948d375 100644
--- a/Server/UConfig.pas
+++ b/Server/UConfig.pas
@@ -35,7 +35,7 @@ uses
type
- TInvalidConfigVersionExeption = class(Exception);
+ TInvalidConfigException = class(Exception);
{ TMapInfo }
@@ -202,13 +202,13 @@ begin
if not ((xmlDoc.DocumentElement.NodeName = 'CEDConfig') and
TryStrToInt(xmlDoc.DocumentElement.AttribStrings['Version'], version) and
(version = CONFIGVERSION)) then
- raise TInvalidConfigVersionExeption.Create(Format('%d <> %d', [version, CONFIGVERSION]));
+ raise TInvalidConfigException.Create(Format('Version mismatch: %d <> %d', [version, CONFIGVERSION]));
FPort := TXmlHelper.ReadInteger(xmlDoc.DocumentElement, 'Port', 2597);
xmlElement := TDOMElement(xmlDoc.DocumentElement.FindNode('Map'));
if not assigned(xmlElement) then
- raise TInvalidConfigVersionExeption.Create('Map information not found');
+ raise TInvalidConfigException.Create('Map information not found');
FMap := TMapInfo.Deserialize(Self, xmlElement);
FTiledata := TXmlHelper.ReadString(xmlDoc.DocumentElement, 'Tiledata', 'tiledata.mul');
@@ -216,7 +216,7 @@ begin
xmlElement := TDOMElement(xmlDoc.DocumentElement.FindNode('Accounts'));
if not assigned(xmlElement) then
- raise TInvalidConfigVersionExeption.Create('Account information not found');
+ raise TInvalidConfigException.Create('Account information not found');
FAccounts := TAccountList.Deserialize(Self, xmlElement);
xmlDoc.Free;
diff --git a/Server/ULandscape.pas b/Server/ULandscape.pas
index b2936a3..e4d50b8 100644
--- a/Server/ULandscape.pas
+++ b/Server/ULandscape.pas
@@ -462,56 +462,8 @@ end;
//Intelligent write: replace if possible, otherwise extend
procedure TLandscape.Flush;
-{var
- blockID, blockType: Integer;
- worldBlock: TWorldBlock;
- index: TGenericIndex;
- i, j, size: Integer;}
begin
- {for blockID := 0 to FWidth * FHeight - 1 do
- begin
- for blockType := 0 to 1 do
- begin
- worldBlock := FPersistentBlocks[blockID][blockType];
- if Assigned(worldBlock) and worldBlock.Changed then
- begin
- if worldBlock is TMapBlock then
- begin
- FMap.Position := ((worldBlock.X * FHeight) + worldBlock.Y) * 196;
- worldBlock.Write(FMap);
- for i := 0 to 63 do
- TMapBlock(worldBlock).Cells[i].InitOriginalState;
- worldBlock.CleanUp;
- end else if worldBlock is TStaticBlock then
- begin
- FStaIdx.Position := ((worldBlock.X * FHeight) + worldBlock.Y) * 12;
- index := TGenericIndex.Create(FStaIdx);
- size := worldBlock.GetSize;
- if (size > index.Size) or (index.Lookup = LongInt($FFFFFFFF)) then
- begin
- FStatics.Position := FStatics.Size;
- index.Lookup := FStatics.Position;
- end;
- if size = 0 then
- index.Lookup := LongInt($FFFFFFFF)
- else
- begin
- index.Size := size;
- FStatics.Position := index.Lookup;
- worldBlock.Write(FStatics);
- end;
- FStaIdx.Seek(-12, soFromCurrent);
- index.Write(FStaIdx);
- index.Free;
- for i := 0 to 63 do
- for j := 0 to TSeperatedStaticBlock(worldBlock).Cells[i].Count - 1 do
- TStaticItem(TSeperatedStaticBlock(worldBlock).Cells[i].Items[j]).InitOriginalState;
- worldBlock.CleanUp;
- end;
- end;
- end;
- end;}
- FBlockCache.Clear;
+ FBlockCache.Clear; //Clear writes modified blocks before removing them from the cache
end;
procedure TLandscape.SaveBlock(AWorldBlock: TWorldBlock);