- Added Logging unit and MultiLog dependency

- Removed StaticsFilter parameter from FillDrawList
This commit is contained in:
Andreas Schneider 2009-09-28 18:16:29 +02:00
parent b9ef61c0db
commit 99c21fa951
7 changed files with 187 additions and 135 deletions

View File

@ -18,7 +18,7 @@
<AutoIncrementBuild Value="True"/>
<CurrentMajorRevNr Value="4"/>
<CurrentMinorRevNr Value="2"/>
<CurrentBuildNr Value="123"/>
<CurrentBuildNr Value="127"/>
<ProjectVersion Value="0.4.2.85"/>
<CompanyName Value="AKS DataBasis"/>
<FileDescription Value="UO CentrED"/>
@ -37,24 +37,27 @@
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="4">
<RequiredPackages Count="5">
<Item1>
<PackageName Value="LazOpenGLContext"/>
<MinVersion Valid="True"/>
<PackageName Value="multiloglaz"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
<PackageName Value="LazOpenGLContext"/>
<MinVersion Valid="True"/>
</Item2>
<Item3>
<PackageName Value="lnetvisual"/>
<MinVersion Minor="5" Release="3" Valid="True"/>
<PackageName Value="LCL"/>
</Item3>
<Item4>
<PackageName Value="lnetvisual"/>
<MinVersion Minor="5" Release="3" Valid="True"/>
</Item4>
<Item5>
<PackageName Value="virtualtreeview_package"/>
<MinVersion Major="4" Minor="5" Release="1" Valid="True"/>
</Item4>
</Item5>
</RequiredPackages>
<Units Count="30">
<Units Count="31">
<Unit0>
<Filename Value="CentrED.lpr"/>
<IsPartOfProject Value="True"/>
@ -246,6 +249,11 @@
<ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmToolWindow"/>
</Unit29>
<Unit30>
<Filename Value="../Logging.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="Logging"/>
</Unit30>
</Units>
</ProjectOptions>
<CompilerOptions>
@ -275,9 +283,15 @@
<Debugging>
<GenerateDebugInfo Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CustomOptions Value="-FE../bin/ "/>
<CustomOptions Value="-FE../bin/
"/>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>

View File

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

View File

@ -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"

View File

@ -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],

View File

@ -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]

View File

@ -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

39
Logging.pas Normal file
View File

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