- Several code cleanups

- Fixed TArt.RefreshBuffer using the wrong variable (j <> i)
- Suppressed some hints
This commit is contained in:
Andreas Schneider 2009-12-17 15:41:54 +01:00
parent 13264d3251
commit c41fd3be95
17 changed files with 4091 additions and 4105 deletions

View File

@ -13,7 +13,7 @@ object frmFilter: TfrmFilter
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
LCLVersion = '0.9.27'
LCLVersion = '0.9.29'
object rgFilterType: TRadioGroup
Left = 4
Height = 40
@ -31,8 +31,8 @@ object frmFilter: TfrmFilter
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
ClientHeight = 26
ClientWidth = 222
ClientHeight = 22
ClientWidth = 220
Columns = 2
ItemIndex = 0
Items.Strings = (
@ -50,8 +50,8 @@ object frmFilter: TfrmFilter
Align = alClient
BorderSpacing.Around = 4
Caption = 'Tile filter'
ClientHeight = 245
ClientWidth = 222
ClientHeight = 241
ClientWidth = 220
TabOrder = 1
object Label1: TLabel
AnchorSideLeft.Control = GroupBox1
@ -60,9 +60,9 @@ object frmFilter: TfrmFilter
AnchorSideRight.Control = GroupBox1
AnchorSideRight.Side = asrBottom
Left = 4
Height = 30
Top = 30
Width = 214
Height = 27
Top = 27
Width = 212
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 4
Caption = 'Drag and Drop static tiles from the tile list on this list to add them to the filter.'
@ -79,7 +79,7 @@ object frmFilter: TfrmFilter
Left = 30
Height = 22
Hint = 'Clear'
Top = 219
Top = 215
Width = 22
Anchors = [akLeft, akBottom]
Color = clBtnFace
@ -131,7 +131,7 @@ object frmFilter: TfrmFilter
Left = 4
Height = 22
Hint = 'Delete'
Top = 219
Top = 215
Width = 22
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 4
@ -187,9 +187,9 @@ object frmFilter: TfrmFilter
AnchorSideBottom.Control = btnDelete
Cursor = 63
Left = 4
Height = 151
Top = 64
Width = 214
Height = 153
Top = 58
Width = 212
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 4
BorderStyle = bsSingle
@ -226,9 +226,9 @@ object frmFilter: TfrmFilter
AnchorSideLeft.Control = GroupBox1
AnchorSideTop.Control = GroupBox1
Left = 4
Height = 22
Height = 19
Top = 4
Width = 85
Width = 78
BorderSpacing.Around = 4
Caption = 'Filter active'
OnChange = cbTileFilterChange
@ -243,14 +243,14 @@ object frmFilter: TfrmFilter
Align = alBottom
BorderSpacing.Around = 4
Caption = 'Hue filter'
ClientHeight = 154
ClientWidth = 222
ClientHeight = 150
ClientWidth = 220
TabOrder = 2
object cbHueFilter: TCheckBox
Left = 4
Height = 22
Height = 19
Top = 4
Width = 214
Width = 212
Align = alTop
BorderSpacing.Around = 4
Caption = 'Filter active'
@ -260,9 +260,9 @@ object frmFilter: TfrmFilter
object vdtHues: TVirtualDrawTree
Cursor = 63
Left = 4
Height = 120
Top = 30
Width = 214
Height = 119
Top = 27
Width = 212
Align = alClient
BorderSpacing.Around = 4
BorderStyle = bsSingle
@ -280,7 +280,7 @@ object frmFilter: TfrmFilter
item
Position = 2
Text = 'Name'
Width = 154
Width = 150
end>
Header.DefaultHeight = 17
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]

View File

@ -32,7 +32,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, VirtualTrees, LCLIntf, LMessages, Buttons, UPlatformTypes, UStatics,
PairSplitter, Menus;
Menus;
type

View File

@ -497,6 +497,7 @@ end;
function TSeperatedStaticBlock.Clone: TSeperatedStaticBlock;
begin
raise Exception.Create('TSeperatedStaticBlock.Clone is not implemented (yet).');
Result := nil;
end;
function TSeperatedStaticBlock.GetSize: Integer;
@ -1375,7 +1376,6 @@ function TScreenBuffer.Find(AScreenPosition: TPoint): PBlockInfo;
var
current: PBlockInfo;
buff: array[0..3] of GLuint;
hits: GLint;
begin
Result := nil;
current := FShortCuts[0];
@ -1586,8 +1586,6 @@ end;
{ TGLText }
constructor TGLText.Create(AFont: TGLFont; AText: String);
var
i: Integer;
begin
FFont := AFont;
FText := AText;
@ -1598,7 +1596,6 @@ end;
procedure TGLText.Render(AScreenRect: TRect);
var
x, y: Integer;
i: Integer;
begin
y := AScreenRect.Top + (AScreenRect.Bottom - AScreenRect.Top - FHeight) div 2;
x := AScreenRect.Left + (AScreenRect.Right - AScreenRect.Left - FWidth) div 2;

View File

@ -56,11 +56,11 @@ procedure RegisterPacketHandler(AID: Byte; APacketHandler: TPacketHandler);
implementation
uses
UPackets, UAdminHandling;
UAdminHandling;
procedure RegisterPacketHandler(AID: Byte; APacketHandler: TPacketHandler);
begin
if Assigned(PacketHandlers[AID]) then FreeAndNil(PacketHandlers[AID]);
FreeAndNil(PacketHandlers[AID]);
PacketHandlers[AID] := APacketHandler;
end;

View File

@ -28,7 +28,7 @@ unit UPackets;
interface
uses
Classes, dzlib, UEnhancedMemoryStream, UPacket, UMap, UStatics;
Classes, dzlib, UEnhancedMemoryStream, UPacket, UStatics;
type
TBlockCoords = packed record
@ -195,8 +195,6 @@ end;
{ TRequestBlocksPacket }
constructor TRequestBlocksPacket.Create(ACoords: TBlockCoordsArray);
var
i: Integer;
begin
inherited Create($04, 0);
FStream.Write(ACoords[0], Length(ACoords) * SizeOf(TBlockCoords));

View File

@ -36,7 +36,7 @@ type
{ TResourceManager }
TResourceManager = class(TObject)
TResourceManager = class
constructor Create(AFileName: string);
destructor Destroy; override;
protected

View File

@ -5,7 +5,7 @@ object frmMain: TfrmMain
Width = 766
ActiveControl = oglGameWindow
Caption = 'UO CentrED'
ClientHeight = 580
ClientHeight = 583
ClientWidth = 766
Constraints.MinHeight = 603
Constraints.MinWidth = 766
@ -23,7 +23,7 @@ object frmMain: TfrmMain
object pnlBottom: TPanel
Left = 0
Height = 31
Top = 549
Top = 552
Width = 766
Align = alBottom
BevelOuter = bvNone
@ -34,7 +34,7 @@ object frmMain: TfrmMain
Left = 11
Height = 14
Top = 7
Width = 11
Width = 10
Caption = 'X:'
ParentColor = False
end
@ -42,7 +42,7 @@ object frmMain: TfrmMain
Left = 88
Height = 14
Top = 7
Width = 10
Width = 9
Caption = 'Y:'
ParentColor = False
end
@ -55,10 +55,10 @@ object frmMain: TfrmMain
ParentColor = False
end
object lblTip: TLabel
Left = 528
Left = 534
Height = 31
Top = 0
Width = 230
Width = 224
Align = alRight
Alignment = taRightJustify
BorderSpacing.Right = 8
@ -67,10 +67,10 @@ object frmMain: TfrmMain
ParentColor = False
end
object lblTipC: TLabel
Left = 498
Left = 511
Height = 31
Top = 0
Width = 30
Width = 23
Align = alRight
Caption = 'Tip: '
Font.Height = -11
@ -81,7 +81,7 @@ object frmMain: TfrmMain
end
object edX: TSpinEdit
Left = 24
Height = 19
Height = 21
Top = 3
Width = 55
MaxValue = 100000
@ -89,7 +89,7 @@ object frmMain: TfrmMain
end
object edY: TSpinEdit
Left = 104
Height = 19
Height = 21
Top = 3
Width = 52
MaxValue = 100000
@ -108,7 +108,7 @@ object frmMain: TfrmMain
end
object pcLeft: TPageControl
Left = 0
Height = 525
Height = 528
Top = 24
Width = 224
ActivePage = tsTiles
@ -117,13 +117,13 @@ object frmMain: TfrmMain
TabOrder = 1
object tsTiles: TTabSheet
Caption = 'Tiles'
ClientHeight = 492
ClientWidth = 218
ClientHeight = 502
ClientWidth = 216
object lblFilter: TLabel
AnchorSideLeft.Control = cbTerrain
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbTerrain
Left = 81
Left = 75
Height = 14
Top = 8
Width = 30
@ -140,9 +140,9 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = spTileList
Left = 4
Height = 242
Top = 56
Width = 210
Height = 258
Top = 50
Width = 208
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 4
@ -194,13 +194,13 @@ object frmMain: TfrmMain
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 189
Top = 303
Width = 218
Top = 313
Width = 216
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'Random pool'
ClientHeight = 175
ClientWidth = 216
ClientHeight = 171
ClientWidth = 212
TabOrder = 1
object btnAddRandom: TSpeedButton
AnchorSideLeft.Control = gbRandom
@ -360,10 +360,10 @@ object frmMain: TfrmMain
object btnRandomPresetSave: TSpeedButton
AnchorSideTop.Control = cbRandomPreset
AnchorSideRight.Control = btnRandomPresetDelete
Left = 164
Left = 160
Height = 22
Hint = 'Save Preset'
Top = 142
Top = 146
Width = 22
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@ -414,10 +414,10 @@ object frmMain: TfrmMain
AnchorSideTop.Control = btnRandomPresetSave
AnchorSideRight.Control = gbRandom
AnchorSideRight.Side = asrBottom
Left = 190
Left = 186
Height = 22
Hint = 'Delete Preset'
Top = 142
Top = 146
Width = 22
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@ -474,9 +474,9 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = cbRandomPreset
Cursor = 63
Left = 4
Height = 114
Height = 118
Top = 24
Width = 208
Width = 204
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 2
@ -522,14 +522,14 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = gbRandom
AnchorSideBottom.Side = asrBottom
Left = 4
Height = 29
Top = 142
Width = 156
Height = 21
Top = 146
Width = 152
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Right = 4
BorderSpacing.Bottom = 4
ItemHeight = 0
ItemHeight = 13
OnChange = cbRandomPresetChange
Sorted = True
Style = csDropDownList
@ -543,8 +543,8 @@ object frmMain: TfrmMain
Cursor = crVSplit
Left = 0
Height = 5
Top = 298
Width = 218
Top = 308
Width = 216
Align = alNone
Anchors = [akLeft, akRight, akBottom]
ResizeAnchor = akBottom
@ -554,10 +554,10 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = vdtTiles
AnchorSideBottom.Side = asrBottom
Left = 110
Height = 19
Left = 108
Height = 21
Hint = 'Append S or T to restrict the search to Statics or Terrain.'
Top = 271
Top = 279
Width = 96
Anchors = [akRight, akBottom]
BorderSpacing.Right = 8
@ -576,10 +576,10 @@ object frmMain: TfrmMain
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = tsTiles
AnchorSideRight.Side = asrBottom
Left = 81
Height = 19
Left = 75
Height = 21
Top = 22
Width = 121
Width = 125
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 16
OnEditingDone = edFilterEditingDone
@ -590,10 +590,10 @@ object frmMain: TfrmMain
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = cbTerrain
AnchorSideTop.Side = asrBottom
Left = 4
Height = 22
Top = 30
Width = 60
Left = 5
Height = 19
Top = 27
Width = 53
Caption = 'Statics'
Checked = True
OnChange = cbStaticsChange
@ -604,9 +604,9 @@ object frmMain: TfrmMain
AnchorSideLeft.Control = tsTiles
AnchorSideTop.Control = tsTiles
Left = 4
Height = 22
Height = 19
Top = 8
Width = 61
Width = 55
BorderSpacing.Left = 4
BorderSpacing.Top = 8
Caption = 'Terrain'
@ -618,26 +618,25 @@ object frmMain: TfrmMain
end
object tsClients: TTabSheet
Caption = 'Clients'
ClientHeight = 492
ClientWidth = 218
ClientHeight = 499
ClientWidth = 216
object lbClients: TListBox
Left = 0
Height = 492
Height = 499
Top = 0
Width = 218
Width = 216
Align = alClient
ItemHeight = 0
OnDblClick = mnuGoToClientClick
PopupMenu = pmClients
Sorted = True
TabOrder = 0
TopIndex = -1
end
end
object tsLocations: TTabSheet
Caption = 'Locations'
ClientHeight = 492
ClientWidth = 218
ClientHeight = 499
ClientWidth = 216
object btnClearLocations: TSpeedButton
AnchorSideLeft.Control = btnDeleteLocation
AnchorSideLeft.Side = asrBottom
@ -645,7 +644,7 @@ object frmMain: TfrmMain
Left = 125
Height = 22
Hint = 'Clear'
Top = 466
Top = 473
Width = 23
BorderSpacing.Left = 4
Color = clBtnFace
@ -698,7 +697,7 @@ object frmMain: TfrmMain
Left = 98
Height = 22
Hint = 'Delete'
Top = 466
Top = 473
Width = 23
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 4
@ -750,7 +749,7 @@ object frmMain: TfrmMain
Left = 71
Height = 22
Hint = 'Add'
Top = 466
Top = 473
Width = 23
Anchors = [akTop, akRight]
BorderSpacing.Right = 4
@ -804,9 +803,9 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = btnDeleteLocation
Cursor = 63
Left = 4
Height = 458
Height = 465
Top = 4
Width = 210
Width = 208
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 4
BorderStyle = bsSingle
@ -821,7 +820,7 @@ object frmMain: TfrmMain
item
Position = 1
Text = 'Name'
Width = 131
Width = 129
end>
Header.DefaultHeight = 17
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
@ -1029,7 +1028,7 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = spChat
Left = 224
Height = 22
Top = 413
Top = 416
Width = 542
Anchors = [akLeft, akRight, akBottom]
BevelInner = bvRaised
@ -1042,7 +1041,7 @@ object frmMain: TfrmMain
Left = 10
Height = 18
Top = 2
Width = 104
Width = 101
Align = alLeft
BorderSpacing.Left = 8
Caption = 'Chat and Messages'
@ -1063,7 +1062,7 @@ object frmMain: TfrmMain
AnchorSideBottom.Control = pnlBottom
Left = 224
Height = 109
Top = 440
Top = 443
Width = 542
Anchors = [akTop, akLeft, akRight, akBottom]
BevelOuter = bvNone
@ -1074,7 +1073,7 @@ object frmMain: TfrmMain
object vstChat: TVirtualStringTree
Cursor = 63
Left = 0
Height = 90
Height = 88
Top = 0
Width = 542
Align = alClient
@ -1112,8 +1111,8 @@ object frmMain: TfrmMain
end
object edChat: TEdit
Left = 0
Height = 19
Top = 90
Height = 21
Top = 88
Width = 542
Align = alBottom
OnKeyPress = edChatKeyPress
@ -1128,7 +1127,7 @@ object frmMain: TfrmMain
Cursor = crVSplit
Left = 224
Height = 5
Top = 435
Top = 438
Width = 542
Align = alNone
Anchors = [akLeft, akRight, akBottom]
@ -1145,7 +1144,7 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlChatHeader
Left = 224
Height = 389
Height = 392
Top = 24
Width = 542
Anchors = [akTop, akLeft, akRight, akBottom]

View File

@ -607,8 +607,6 @@ end;
procedure TfrmMain.oglGameWindowMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
node: PVirtualNode;
tileInfo: PTileInfo;
map: TMapCell;
i: Integer;
z: ShortInt;
@ -923,7 +921,7 @@ end;
procedure TfrmMain.btnRandomPresetSaveClick(Sender: TObject);
var
presetName: string;
i, index: Integer;
i: Integer;
preset, tile: TDOMElement;
children: TDOMNodeList;
tileNode: PVirtualNode;
@ -2047,7 +2045,7 @@ end;
procedure TfrmMain.PrepareScreenBlock(ABlockInfo: PBlockInfo);
procedure GetLandAlt(const AX, AY: Integer; const ADefaultZ,
ADefaultRaw: SmallInt; var Z, RawZ: SmallInt);
ADefaultRaw: SmallInt; out Z, RawZ: SmallInt);
var
cell: TMapCell;
begin
@ -2547,7 +2545,7 @@ begin
virtualTile.Y := tileY;
virtualTile.Z := frmVirtualLayer.seZ.Value;
virtualTile.Priority := virtualTile.Z;
virtualTile.PriorityBonus := MaxInt;
virtualTile.PriorityBonus := High(ShortInt);
Inc(i);
end;

View File

@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
* Portions Copyright 2009 Andreas Schneider
*)
unit UfrmTileInfo;
@ -31,7 +31,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, LCLIntf, LCLType, LMessages, strutils;
ExtCtrls, LCLIntf, LCLType, strutils;
type
@ -48,7 +48,6 @@ type
{ private declarations }
public
procedure Update(ATileID: Word);
//procedure Show; overload; reintroduce;
procedure Show(ATileID: Word); overload;
end;
@ -158,21 +157,6 @@ begin
end;
end;
{procedure TfrmTileInfo.Show;
begin
ShowWindow(Handle, SW_SHOWNOACTIVATE);
Include(FormState, fsVisible);
VisibleChanging;
try
Perform(CM_VISIBLECHANGED, WParam(Ord(True)), 0);
AdjustSize;
RequestAlign;
finally
VisibleChanged;
end;
//FormShow(Self);
end;}
procedure TfrmTileInfo.Show(ATileID: Word);
begin
Update(ATileID);

View File

@ -5,7 +5,7 @@ unit Logging;
interface
uses
MultiLog, IPCChannel;
MultiLog{$IFNDEF NoLogging}, IPCChannel{$ENDIF};
const
lcAll = [0..31]; //all logging classes

View File

@ -28,8 +28,8 @@ unit UMulManager;
interface
uses
SysUtils, UMulProvider, UTileDataProvider, UArtProvider, UGumpProvider,
UTexmapProvider, UHueProvider, URadarProvider, UAnimDataProvider;
SysUtils, UTileDataProvider, UArtProvider, UGumpProvider, UTexmapProvider,
UHueProvider, URadarProvider, UAnimDataProvider;
type

View File

@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
* Portions Copyright 2009 Andreas Schneider
*)
unit URadarProvider;
@ -33,7 +33,10 @@ uses
SysUtils, Classes, UBufferedStreams;
type
TRadarProvider = class(TObject)
{ TRadarProvider }
TRadarProvider = class
constructor Create; overload; virtual;
constructor Create(AData: TStream; AReadOnly: Boolean = False); overload; virtual;
constructor Create(AData: string; AReadOnly: Boolean = False); overload; virtual;
@ -77,18 +80,18 @@ end;
destructor TRadarProvider.Destroy;
begin
if Assigned(FData) then FreeAndNil(FData);
FreeAndNil(FData);
inherited Destroy;
end;
function TRadarProvider.GetColor(AID: Integer): Word;
begin
Result := 0;
if (AID >= 0) and (AID < $10000) then
begin
FData.Position := SizeOf(Word) * AID;
FData.Read(Result, SizeOf(Word));
end else
Result := 0;
end;
end;
procedure TRadarProvider.SetColor(AID: Integer; AColor: Word);

View File

@ -156,7 +156,9 @@ begin
block.Position := lookup[iCurrentHeight];
iCurrentWidth := 0;
P := FGraphic.Bits + iCurrentHeight * width * 2;
while (block.Read(offset, SizeOf(Word)) = SizeOf(Word)) and (block.Read(run, SizeOf(Word)) = SizeOf(Word)) and (offset + run <> 0) do
while (block.Read(offset, SizeOf(Word)) = SizeOf(Word)) and
(block.Read(run, SizeOf(Word)) = SizeOf(Word)) and
(offset + run <> 0) do
begin
inc(iCurrentWidth, offset);
for i := 0 to run - 1 do
@ -231,7 +233,7 @@ end;
procedure TArt.RefreshBuffer;
var
argbGraphic: TSingleImage;
i, j, x, y, lineWidth, start: Integer;
i, x, y, lineWidth, start: Integer;
iCurrentHeight, iCurrentWidth: Integer;
width, height: SmallInt;
color, run, offset: Word;
@ -251,14 +253,14 @@ begin
for i := 1 to 22 do
begin
Dec(x);
FBuffer.Write(PWordArray(argbGraphic.Bits + y * 44 * 2)^[x + j], lineWidth);
FBuffer.Write(PWordArray(argbGraphic.Bits + y * 44 * 2)^[x + i], lineWidth);
Inc(y);
Inc(lineWidth, 2);
end;
for i := 1 to 22 do
begin
Dec(lineWidth, 2);
FBuffer.Write(PWordArray(argbGraphic.Bits + y * 44 * 2)^[x + j], lineWidth);
FBuffer.Write(PWordArray(argbGraphic.Bits + y * 44 * 2)^[x + i], lineWidth);
Inc(x);
Inc(y);
end;

View File

@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
* Portions Copyright 2009 Andreas Schneider
*)
unit UHue;
@ -30,10 +30,14 @@ unit UHue;
interface
uses
SysUtils, Classes, Graphics, UMulBlock, UGraphicHelper;
SysUtils, Classes, Graphics, UMulBlock;
type
TColorTable = array[0..31] of Word;
{ THue }
THue = class(TMulBlock)
constructor Create(AData: TStream);
function Clone: THue; override;
@ -52,7 +56,11 @@ type
property TableEnd: Word read FTableEnd write FTableEnd;
property Name: string read GetName write SetName;
end;
THueEntries = array[0..7] of THue;
{ THueGroup }
THueGroup = class(TMulBlock)
constructor Create(AData: TStream);
destructor Destroy; override;
@ -92,7 +100,7 @@ var
color: Word;
begin
SetLength(FName, 20);
if Assigned(AData) then
if AData <> nil then
begin
buffer := TMemoryStream.Create;
buffer.CopyFrom(AData, 88);
@ -158,7 +166,7 @@ var
i: Integer;
buffer: TMemoryStream;
begin
if Assigned(AData) then
if AData <> nil then
begin
buffer := TMemoryStream.Create;
buffer.CopyFrom(AData, 708);
@ -170,7 +178,7 @@ begin
for i := 0 to 7 do
FHueEntries[i] := THue.Create(buffer);
if Assigned(buffer) then FreeAndNil(buffer);
buffer.Free;
end;
destructor THueGroup.Destroy;
@ -178,9 +186,8 @@ var
i: Integer;
begin
for i := 0 to 7 do
if Assigned(FHueEntries[i]) then
FreeAndNil(FHueEntries[i]);
inherited;
FreeAndNil(FHueEntries[i]);
inherited Destroy;
end;
function THueGroup.GetHueEntry(AIndex: Integer): THue;
@ -195,7 +202,7 @@ end;
procedure THueGroup.SetHueEntry(AIndex: Integer; AValue: THue);
begin
if Assigned(FHueEntries[AIndex]) then FreeAndNil(FHueEntries[AIndex]);
FreeAndNil(FHueEntries[AIndex]);
FHueEntries[AIndex] := AValue;
end;

View File

@ -30,7 +30,7 @@ unit UMap;
interface
uses
SysUtils, Classes, fgl, UMulBlock, UWorldItem;
SysUtils, Classes, fgl, UWorldItem;
const
MapCellSize = 3;

View File

@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
* Portions Copyright 2007 Andreas Schneider
* Portions Copyright 2009 Andreas Schneider
*)
unit UMulBlock;
@ -38,7 +38,7 @@ type
{ TMulBlockEventHandler }
TMulBlockEventHandler = class(TObject)
TMulBlockEventHandler = class
constructor Create;
destructor Destroy; override;
protected
@ -51,7 +51,7 @@ type
{ TMulBlock }
TMulBlock = class(TObject)
TMulBlock = class
constructor Create;
destructor Destroy; override;
protected

View File

@ -210,8 +210,6 @@ begin
end;
destructor TStaticBlock.Destroy;
var
i: Integer;
begin
FreeAndNil(FItems);
inherited;