diff --git a/Client/CentrED.lpi b/Client/CentrED.lpi
index 30392a8..6357c57 100644
--- a/Client/CentrED.lpi
+++ b/Client/CentrED.lpi
@@ -18,7 +18,7 @@
-
+
@@ -37,24 +37,27 @@
-
+
-
-
+
-
+
+
-
-
+
+
+
+
+
-
+
-
+
@@ -246,6 +249,11 @@
+
+
+
+
+
@@ -275,9 +283,15 @@
+
+
+
+
+
-
+
diff --git a/Client/CentrED.lpr b/Client/CentrED.lpr
index fb0e175..7f7a689 100644
--- a/Client/CentrED.lpr
+++ b/Client/CentrED.lpr
@@ -1,52 +1,53 @@
-(*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at
- * http://www.opensource.org/licenses/cddl1.php.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at
- * http://www.opensource.org/licenses/cddl1.php. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying * information:
- * Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- *
- *
- * Portions Copyright 2009 Andreas Schneider
- *)
-program CentrED;
-
-{$mode objfpc}{$H+}
-
-uses
- {$IFDEF UNIX}{$IFDEF UseCThreads}
- cthreads,
- {$ENDIF}{$ENDIF}
- Interfaces, // this includes the LCL widgetset
+(*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * http://www.opensource.org/licenses/cddl1.php.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * http://www.opensource.org/licenses/cddl1.php. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Portions Copyright 2009 Andreas Schneider
+ *)
+program CentrED;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
+ cthreads,
+ {$ENDIF}{$ENDIF}
+ Interfaces, // this includes the LCL widgetset
Forms, LResources, lnetvisual, LazOpenGLContext, UdmNetwork, UfrmMain,
UfrmLogin, UfrmInitialize, UfrmAccountControl, virtualtreeview_package,
- UfrmEditAccount, UfrmDrawSettings, UfrmBoundaries, UfrmElevateSettings,
- UOverlayUI, UResourceManager, UfrmConfirmation, UfrmMoveSettings, UfrmAbout,
- UfrmHueSettings, UfrmRadar, UfrmLargeScaleCommand, UfrmVirtualLayer,
- UfrmFilter, UfrmTileInfo, UGUIPlatformUtils, UPlatformTypes,
- UfrmRegionControl, UPackets, UPacketHandlers, UAdminHandling, UGameResources,
- ULandscape, UfrmToolWindow;
-
-{$IFDEF WINDOWS}{$R CentrED.rc}{$ENDIF}
-
-begin
- {$I CentrED.lrs}
- Application.Initialize;
- Application.CreateForm(TdmNetwork, dmNetwork);
- Application.Run;
-end.
-
+ multiloglaz, UfrmEditAccount, UfrmDrawSettings, UfrmBoundaries,
+ UfrmElevateSettings, UOverlayUI, UResourceManager, UfrmConfirmation,
+ UfrmMoveSettings, UfrmAbout, UfrmHueSettings, UfrmRadar,
+ UfrmLargeScaleCommand, UfrmVirtualLayer, UfrmFilter, UfrmTileInfo,
+ UGUIPlatformUtils, UPlatformTypes, UfrmRegionControl, UPackets,
+ UPacketHandlers, UAdminHandling, UGameResources, ULandscape, UfrmToolWindow,
+ Logging;
+
+{$IFDEF WINDOWS}{$R CentrED.rc}{$ENDIF}
+
+begin
+ {$I CentrED.lrs}
+ Application.Initialize;
+ Application.CreateForm(TdmNetwork, dmNetwork);
+ Application.Run;
+end.
+
diff --git a/Client/CentrED.rc b/Client/CentrED.rc
index 362bf30..0cb609c 100644
--- a/Client/CentrED.rc
+++ b/Client/CentrED.rc
@@ -1,5 +1,5 @@
1 VERSIONINFO
-FILEVERSION 0,4,2,123
+FILEVERSION 0,4,2,127
PRODUCTVERSION 0,4,2,85
{
BLOCK "StringFileInfo"
@@ -9,7 +9,7 @@ PRODUCTVERSION 0,4,2,85
VALUE "Comments", "\000"
VALUE "CompanyName", "AKS DataBasis\000"
VALUE "FileDescription", "UO CentrED\000"
- VALUE "FileVersion", "0.4.2.123\000"
+ VALUE "FileVersion", "0.4.2.127\000"
VALUE "InternalName", "\000"
VALUE "LegalCopyright", "Andreas Schneider\000"
VALUE "LegalTrademarks", "\000"
diff --git a/Client/ULandscape.pas b/Client/ULandscape.pas
index 87eb0b1..c1ffa58 100644
--- a/Client/ULandscape.pas
+++ b/Client/ULandscape.pas
@@ -118,7 +118,6 @@ type
TMapChangedEvent = procedure(AMapCell: TMapCell) of object;
TNewBlockEvent = procedure(ABlock: TBlock) of object;
TStaticChangedEvent = procedure(AStaticItem: TStaticItem) of object;
- TStaticFilter = function(AStatic: TStaticItem): Boolean of object;
TScreenBuffer = class;
@@ -180,7 +179,7 @@ type
{ Methods }
procedure FillDrawList(ADrawList: TScreenBuffer; AX, AY, AWidth,
AHeight: Word; AMinZ, AMaxZ: ShortInt; AMap, AStatics: Boolean;
- ANoDraw: Boolean; AStaticsFilter: TStaticFilter);
+ ANoDraw: Boolean);
function GetEffectiveAltitude(ATile: TMapCell): ShortInt;
function GetLandAlt(AX, AY: Word; ADefault: ShortInt): ShortInt;
procedure GetNormals(AX, AY: Word; var ANormals: TNormals);
@@ -845,7 +844,7 @@ end;
procedure TLandscape.FillDrawList(ADrawList: TScreenBuffer; AX, AY, AWidth,
AHeight: Word; AMinZ, AMaxZ: ShortInt; AMap, AStatics: Boolean;
- ANoDraw: Boolean; AStaticsFilter: TStaticFilter);
+ ANoDraw: Boolean);
var
landAlt: ShortInt;
drawMapCell: TMapCell;
@@ -881,8 +880,7 @@ begin
if drawStatics <> nil then
for i := 0 to drawStatics.Count - 1 do
if (TStaticItem(drawStatics[i]).Z >= AMinZ) and
- (TStaticItem(drawStatics[i]).Z <= AMaxZ) and
- ((AStaticsFilter = nil) or AStaticsFilter(TStaticItem(drawStatics[i]))) then
+ (TStaticItem(drawStatics[i]).Z <= AMaxZ) then
begin
TStaticItem(drawStatics[i]).UpdatePriorities(
ResMan.Tiledata.StaticTiles[TStaticItem(drawStatics[i]).TileID],
diff --git a/Client/UfrmMain.lfm b/Client/UfrmMain.lfm
index 1de2308..0a6cc2a 100644
--- a/Client/UfrmMain.lfm
+++ b/Client/UfrmMain.lfm
@@ -5,7 +5,7 @@ object frmMain: TfrmMain
Width = 766
ActiveControl = oglGameWindow
Caption = 'UO CentrED'
- ClientHeight = 583
+ ClientHeight = 580
ClientWidth = 766
Constraints.MinHeight = 603
Constraints.MinWidth = 766
@@ -22,7 +22,7 @@ object frmMain: TfrmMain
object pnlBottom: TPanel
Left = 0
Height = 31
- Top = 552
+ Top = 549
Width = 766
Align = alBottom
BevelOuter = bvNone
@@ -33,7 +33,7 @@ object frmMain: TfrmMain
Left = 11
Height = 14
Top = 7
- Width = 10
+ Width = 11
Caption = 'X:'
ParentColor = False
end
@@ -41,7 +41,7 @@ object frmMain: TfrmMain
Left = 88
Height = 14
Top = 7
- Width = 9
+ Width = 10
Caption = 'Y:'
ParentColor = False
end
@@ -54,10 +54,10 @@ object frmMain: TfrmMain
ParentColor = False
end
object lblTip: TLabel
- Left = 534
+ Left = 528
Height = 31
Top = 0
- Width = 224
+ Width = 230
Align = alRight
Alignment = taRightJustify
BorderSpacing.Right = 8
@@ -66,10 +66,10 @@ object frmMain: TfrmMain
ParentColor = False
end
object lblTipC: TLabel
- Left = 511
+ Left = 498
Height = 31
Top = 0
- Width = 23
+ Width = 30
Align = alRight
Caption = 'Tip: '
Font.Height = -11
@@ -80,7 +80,7 @@ object frmMain: TfrmMain
end
object edX: TSpinEdit
Left = 24
- Height = 23
+ Height = 19
Top = 3
Width = 55
MaxValue = 100000
@@ -88,7 +88,7 @@ object frmMain: TfrmMain
end
object edY: TSpinEdit
Left = 104
- Height = 23
+ Height = 19
Top = 3
Width = 52
MaxValue = 100000
@@ -107,7 +107,7 @@ object frmMain: TfrmMain
end
object pcLeft: TPageControl
Left = 0
- Height = 528
+ Height = 525
Top = 24
Width = 224
ActivePage = tsTiles
@@ -116,13 +116,13 @@ object frmMain: TfrmMain
TabOrder = 1
object tsTiles: TTabSheet
Caption = 'Tiles'
- ClientHeight = 502
- ClientWidth = 216
+ ClientHeight = 492
+ ClientWidth = 218
object lblFilter: TLabel
AnchorSideLeft.Control = cbTerrain
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbTerrain
- Left = 75
+ Left = 81
Height = 14
Top = 8
Width = 30
@@ -139,9 +139,9 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = spTileList
Left = 4
- Height = 266
- Top = 50
- Width = 208
+ Height = 250
+ Top = 56
+ Width = 210
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 4
@@ -193,13 +193,13 @@ object frmMain: TfrmMain
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 181
- Top = 321
- Width = 216
+ Top = 311
+ Width = 218
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'Random pool'
- ClientHeight = 163
- ClientWidth = 212
+ ClientHeight = 167
+ ClientWidth = 216
TabOrder = 1
object btnAddRandom: TSpeedButton
AnchorSideLeft.Control = gbRandom
@@ -359,10 +359,10 @@ object frmMain: TfrmMain
object btnRandomPresetSave: TSpeedButton
AnchorSideTop.Control = cbRandomPreset
AnchorSideRight.Control = btnRandomPresetDelete
- Left = 160
+ Left = 164
Height = 22
Hint = 'Save Preset'
- Top = 138
+ Top = 134
Width = 22
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@@ -413,10 +413,10 @@ object frmMain: TfrmMain
AnchorSideTop.Control = btnRandomPresetSave
AnchorSideRight.Control = gbRandom
AnchorSideRight.Side = asrBottom
- Left = 186
+ Left = 190
Height = 22
Hint = 'Delete Preset'
- Top = 138
+ Top = 134
Width = 22
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@@ -473,9 +473,9 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = cbRandomPreset
Cursor = 63
Left = 4
- Height = 110
+ Height = 106
Top = 24
- Width = 204
+ Width = 208
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 2
@@ -519,14 +519,14 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = gbRandom
AnchorSideBottom.Side = asrBottom
Left = 4
- Height = 21
- Top = 138
- Width = 152
+ Height = 29
+ Top = 134
+ Width = 156
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Right = 4
BorderSpacing.Bottom = 4
- ItemHeight = 13
+ ItemHeight = 0
OnChange = cbRandomPresetChange
Style = csDropDownList
TabOrder = 1
@@ -539,8 +539,8 @@ object frmMain: TfrmMain
Cursor = crVSplit
Left = 0
Height = 5
- Top = 316
- Width = 216
+ Top = 306
+ Width = 218
Align = alNone
Anchors = [akLeft, akRight, akBottom]
ResizeAnchor = akBottom
@@ -550,10 +550,10 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = vdtTiles
AnchorSideBottom.Side = asrBottom
- Left = 108
- Height = 23
+ Left = 110
+ Height = 19
Hint = 'Append S or T to restrict the search to Statics or Terrain.'
- Top = 285
+ Top = 279
Width = 96
Anchors = [akRight, akBottom]
BorderSpacing.Right = 8
@@ -572,10 +572,10 @@ object frmMain: TfrmMain
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tsTiles
AnchorSideRight.Side = asrBottom
- Left = 75
- Height = 23
+ Left = 81
+ Height = 19
Top = 22
- Width = 125
+ Width = 121
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 16
OnEditingDone = edFilterEditingDone
@@ -586,10 +586,10 @@ object frmMain: TfrmMain
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = cbTerrain
AnchorSideTop.Side = asrBottom
- Left = 5
- Height = 19
- Top = 27
- Width = 53
+ Left = 4
+ Height = 22
+ Top = 30
+ Width = 60
Caption = 'Statics'
Checked = True
OnChange = cbStaticsChange
@@ -600,9 +600,9 @@ object frmMain: TfrmMain
AnchorSideLeft.Control = tsTiles
AnchorSideTop.Control = tsTiles
Left = 4
- Height = 19
+ Height = 22
Top = 8
- Width = 55
+ Width = 61
BorderSpacing.Left = 4
BorderSpacing.Top = 8
Caption = 'Terrain'
@@ -614,25 +614,26 @@ object frmMain: TfrmMain
end
object tsClients: TTabSheet
Caption = 'Clients'
- ClientHeight = 502
- ClientWidth = 216
+ ClientHeight = 495
+ ClientWidth = 218
object lbClients: TListBox
Left = 0
- Height = 502
+ Height = 495
Top = 0
- Width = 216
+ Width = 218
Align = alClient
ItemHeight = 0
OnDblClick = mnuGoToClientClick
PopupMenu = pmClients
Sorted = True
TabOrder = 0
+ TopIndex = -1
end
end
object tsLocations: TTabSheet
Caption = 'Locations'
- ClientHeight = 502
- ClientWidth = 216
+ ClientHeight = 495
+ ClientWidth = 218
object btnClearLocations: TSpeedButton
AnchorSideLeft.Control = btnDeleteLocation
AnchorSideLeft.Side = asrBottom
@@ -640,7 +641,7 @@ object frmMain: TfrmMain
Left = 128
Height = 22
Hint = 'Clear'
- Top = 460
+ Top = 453
Width = 23
BorderSpacing.Left = 4
Color = clBtnFace
@@ -693,7 +694,7 @@ object frmMain: TfrmMain
Left = 101
Height = 22
Hint = 'Delete'
- Top = 460
+ Top = 453
Width = 23
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 4
@@ -745,7 +746,7 @@ object frmMain: TfrmMain
Left = 74
Height = 22
Hint = 'Add'
- Top = 460
+ Top = 453
Width = 23
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@@ -799,9 +800,9 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = btnDeleteLocation
Cursor = 63
Left = 4
- Height = 438
+ Height = 431
Top = 18
- Width = 208
+ Width = 210
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 4
BorderStyle = bsSingle
@@ -816,7 +817,7 @@ object frmMain: TfrmMain
item
Position = 1
Text = 'Name'
- Width = 129
+ Width = 131
end>
Header.DefaultHeight = 17
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
@@ -1011,7 +1012,7 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = spChat
Left = 224
Height = 22
- Top = 416
+ Top = 413
Width = 542
Anchors = [akLeft, akRight, akBottom]
BevelInner = bvRaised
@@ -1024,7 +1025,7 @@ object frmMain: TfrmMain
Left = 10
Height = 18
Top = 2
- Width = 101
+ Width = 104
Align = alLeft
BorderSpacing.Left = 8
Caption = 'Chat and Messages'
@@ -1045,7 +1046,7 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = pnlBottom
Left = 224
Height = 109
- Top = 443
+ Top = 440
Width = 542
Anchors = [akTop, akLeft, akRight, akBottom]
BevelOuter = bvNone
@@ -1056,7 +1057,7 @@ object frmMain: TfrmMain
object vstChat: TVirtualStringTree
Cursor = 63
Left = 0
- Height = 86
+ Height = 90
Top = 0
Width = 542
Align = alClient
@@ -1094,8 +1095,8 @@ object frmMain: TfrmMain
end
object edChat: TEdit
Left = 0
- Height = 23
- Top = 86
+ Height = 19
+ Top = 90
Width = 542
Align = alBottom
OnKeyPress = edChatKeyPress
@@ -1110,7 +1111,7 @@ object frmMain: TfrmMain
Cursor = crVSplit
Left = 224
Height = 5
- Top = 438
+ Top = 435
Width = 542
Align = alNone
Anchors = [akLeft, akRight, akBottom]
@@ -1127,7 +1128,7 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlChatHeader
Left = 224
- Height = 392
+ Height = 389
Top = 24
Width = 542
Anchors = [akTop, akLeft, akRight, akBottom]
diff --git a/Client/UfrmMain.pas b/Client/UfrmMain.pas
index a2b6c9e..ab86db8 100644
--- a/Client/UfrmMain.pas
+++ b/Client/UfrmMain.pas
@@ -351,7 +351,7 @@ uses
UfrmBoundaries, UfrmElevateSettings, UfrmConfirmation, UfrmMoveSettings,
UfrmAbout, UPacketHandlers, UfrmHueSettings, UfrmRadar, UfrmLargeScaleCommand,
UfrmLogin, UResourceManager, UfrmVirtualLayer, UfrmFilter, UfrmTileInfo,
- UfrmRegionControl;
+ UfrmRegionControl, Logging;
type
TGLArrayf4 = array[0..3] of GLfloat;
@@ -1782,7 +1782,6 @@ var
ghostTile: TWorldItem;
tileRect: TRect;
virtualTile: TVirtualTile;
- staticsFilter: TStaticFilter;
intensity: GLfloat;
blockInfo: PBlockInfo;
item: TWorldItem;
@@ -2269,7 +2268,7 @@ begin
FLandscape.FillDrawList(FScreenBuffer, FX + FLowOffsetX, FY + FLowOffsetY,
FRangeX, FRangeY, frmBoundaries.tbMinZ.Position,
frmBoundaries.tbMaxZ.Position, tbTerrain.Down, tbStatics.Down,
- acNoDraw.Checked, nil); //TODO : statics filter
+ acNoDraw.Checked); //TODO : statics filter
//TODO : ghost tile
//Pre-process the buffer
diff --git a/Logging.pas b/Logging.pas
new file mode 100644
index 0000000..33b98e0
--- /dev/null
+++ b/Logging.pas
@@ -0,0 +1,39 @@
+unit Logging;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ MultiLog, IPCChannel;
+
+const
+ lcAll = [0..31]; //all logging classes
+ lcDebug = 0;
+ lcError = 1;
+ lcInfo = 2;
+ lcWarning = 3;
+
+ lcEvents = 4;
+
+ lcServer = 10;
+ lcClient = 11;
+ lcLandscape = 12;
+
+var
+ Logger: TLogger;
+
+implementation
+
+initialization
+ Logger := TLogger.Create;
+ {$IFNDEF NoLogging}
+ Logger.Channels.Add(TIPCChannel.Create);
+ Logger.ActiveClasses := lcAll;
+ {$ENDIF}
+
+finalization
+ Logger.Free;
+
+end.
+