- Added Logging unit and MultiLog dependency

- Removed StaticsFilter parameter from FillDrawList
This commit is contained in:
2009-09-28 18:16:29 +02:00
parent b9ef61c0db
commit 99c21fa951
7 changed files with 187 additions and 135 deletions
+24 -10
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>
+51 -50
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.
+2 -2
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"
+3 -5
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],
+66 -65
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]
+2 -3
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
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.