From 392bd3db145b44f85228e393fa451115852c2aea Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 8 Dec 2009 16:17:45 +0100 Subject: [PATCH] - Added missing icon - Fixed compilation of server --- Client/CentrED.ico | Bin 0 -> 5494 bytes Server/ULandscape.pas | 23 +++++++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 Client/CentrED.ico diff --git a/Client/CentrED.ico b/Client/CentrED.ico new file mode 100644 index 0000000000000000000000000000000000000000..1bd926290a77127067348afe5a4977c4733e37cb GIT binary patch literal 5494 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 literal 0 HcmV?d00001 diff --git a/Server/ULandscape.pas b/Server/ULandscape.pas index 631d29d..a675302 100644 --- a/Server/ULandscape.pas +++ b/Server/ULandscape.pas @@ -73,6 +73,8 @@ type property Static: TSeperatedStaticBlock read FStaticBlock; end; + TBlockCache = specialize TCacheManager; + { TLandscape } TLandscape = class(TObject) @@ -93,10 +95,10 @@ type FTiledataProvider: TTiledataProvider; FOwnsStreams: Boolean; FRadarMap: TRadarMap; - FBlockCache: TCacheManager; + FBlockCache: TBlockCache; FBlockSubscriptions: TBlockSubscriptions; procedure OnBlockChanged(ABlock: TMulBlock); - procedure OnRemoveCachedObject(AObject: TObject); + procedure OnRemoveCachedObject(ABlock: TBlock); function GetMapCell(AX, AY: Word): TMapCell; function GetStaticList(AX, AY: Word): TStaticItemList; function GetBlockSubscriptions(AX, AY: Word): TLinkedList; @@ -312,7 +314,7 @@ begin if AValid then begin Write(TimeStamp, 'Creating Cache'); - FBlockCache := TCacheManager.Create(256); + FBlockCache := TBlockCache.Create(256); FBlockCache.OnRemoveObject := @OnRemoveCachedObject; Write(', Tiledata'); FTiledataProvider := TTiledataProvider.Create(ATiledata); @@ -481,15 +483,12 @@ begin // Do nothing for now end; -procedure TLandscape.OnRemoveCachedObject(AObject: TObject); -var - block: TBlock; +procedure TLandscape.OnRemoveCachedObject(ABlock: TBlock); begin - block := AObject as TBlock; - if block <> nil then + if ABlock <> nil then begin - if block.Map.Changed then SaveBlock(block.Map); - if block.Static.Changed then SaveBlock(block.Static); + if ABlock.Map.Changed then SaveBlock(ABlock.Map); + if ABlock.Static.Changed then SaveBlock(ABlock.Static); end; end; @@ -500,7 +499,7 @@ begin Result := nil; if (AX >= 0) and (AX < FWidth) and (AY >= 0) and (AY < FHeight) then begin - if FBlockCache.QueryID(GetID(AX, AY), TObject(block)) then + if FBlockCache.QueryID(GetID(AX, AY), block) then Result := block.Map else Result := LoadBlock(AX, AY).Map; @@ -514,7 +513,7 @@ begin Result := nil; if (AX >= 0) and (AX < FWidth) and (AY >= 0) and (AY < FHeight) then begin - if FBlockCache.QueryID(GetID(AX, AY), TObject(block)) then + if FBlockCache.QueryID(GetID(AX, AY), block) then Result := TSeperatedStaticBlock(block.Static) else Result := TSeperatedStaticBlock(LoadBlock(AX, AY).Static);