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. +