- Optimized blockInfo.ScreenRect calculation for static tiles

- Fixed TScreenBuffer.Find to correctly handle the new buffer usage (search at the end, not the beginning)
This commit is contained in:
Andreas Schneider 2009-07-30 17:04:49 +02:00
parent 1196ad6425
commit 01d5fb98d1
4 changed files with 2512 additions and 2512 deletions

View File

@ -49,64 +49,64 @@
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="UfrmMain.pas"/> <Filename Value="UfrmMain.pas"/>
<ComponentName Value="frmMain"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmMain"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmMain"/> <UnitName Value="UfrmMain"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="UdmNetwork.pas"/> <Filename Value="UdmNetwork.pas"/>
<ComponentName Value="dmNetwork"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="dmNetwork"/>
<ResourceBaseClass Value="DataModule"/> <ResourceBaseClass Value="DataModule"/>
<UnitName Value="UdmNetwork"/> <UnitName Value="UdmNetwork"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="UfrmLogin.pas"/> <Filename Value="UfrmLogin.pas"/>
<ComponentName Value="frmLogin"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmLogin"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmLogin"/> <UnitName Value="UfrmLogin"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="UfrmInitialize.pas"/> <Filename Value="UfrmInitialize.pas"/>
<ComponentName Value="frmInitialize"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmInitialize"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmInitialize"/> <UnitName Value="UfrmInitialize"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="UfrmAccountControl.pas"/> <Filename Value="UfrmAccountControl.pas"/>
<ComponentName Value="frmAccountControl"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmAccountControl"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmAccountControl"/> <UnitName Value="UfrmAccountControl"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="UfrmEditAccount.pas"/> <Filename Value="UfrmEditAccount.pas"/>
<ComponentName Value="frmEditAccount"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmEditAccount"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmEditAccount"/> <UnitName Value="UfrmEditAccount"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
<Filename Value="Tools/UfrmDrawSettings.pas"/> <Filename Value="Tools/UfrmDrawSettings.pas"/>
<ComponentName Value="frmDrawSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmDrawSettings"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmDrawSettings"/> <UnitName Value="UfrmDrawSettings"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
<Filename Value="Tools/UfrmBoundaries.pas"/> <Filename Value="Tools/UfrmBoundaries.pas"/>
<ComponentName Value="frmBoundaries"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmBoundaries"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmBoundaries"/> <UnitName Value="UfrmBoundaries"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="Tools/UfrmElevateSettings.pas"/> <Filename Value="Tools/UfrmElevateSettings.pas"/>
<ComponentName Value="frmElevateSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmElevateSettings"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmElevateSettings"/> <UnitName Value="UfrmElevateSettings"/>
</Unit9> </Unit9>
@ -122,64 +122,64 @@
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="Tools/UfrmConfirmation.pas"/> <Filename Value="Tools/UfrmConfirmation.pas"/>
<ComponentName Value="frmConfirmation"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmConfirmation"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmConfirmation"/> <UnitName Value="UfrmConfirmation"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<Filename Value="Tools/UfrmMoveSettings.pas"/> <Filename Value="Tools/UfrmMoveSettings.pas"/>
<ComponentName Value="frmMoveSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmMoveSettings"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmMoveSettings"/> <UnitName Value="UfrmMoveSettings"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
<Filename Value="UfrmAbout.pas"/> <Filename Value="UfrmAbout.pas"/>
<ComponentName Value="frmAbout"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmAbout"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmAbout"/> <UnitName Value="UfrmAbout"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="Tools/UfrmHueSettings.pas"/> <Filename Value="Tools/UfrmHueSettings.pas"/>
<ComponentName Value="frmHueSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmHueSettings"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmHueSettings"/> <UnitName Value="UfrmHueSettings"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
<Filename Value="UfrmRadar.pas"/> <Filename Value="UfrmRadar.pas"/>
<ComponentName Value="frmRadarMap"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmRadarMap"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmRadar"/> <UnitName Value="UfrmRadar"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
<Filename Value="UfrmLargeScaleCommand.pas"/> <Filename Value="UfrmLargeScaleCommand.pas"/>
<ComponentName Value="frmLargeScaleCommand"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmLargeScaleCommand"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmLargeScaleCommand"/> <UnitName Value="UfrmLargeScaleCommand"/>
</Unit17> </Unit17>
<Unit18> <Unit18>
<Filename Value="Tools/UfrmVirtualLayer.pas"/> <Filename Value="Tools/UfrmVirtualLayer.pas"/>
<ComponentName Value="frmVirtualLayer"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmVirtualLayer"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmVirtualLayer"/> <UnitName Value="UfrmVirtualLayer"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
<Filename Value="Tools/UfrmFilter.pas"/> <Filename Value="Tools/UfrmFilter.pas"/>
<ComponentName Value="frmFilter"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmFilter"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmFilter"/> <UnitName Value="UfrmFilter"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
<Filename Value="UfrmTileInfo.pas"/> <Filename Value="UfrmTileInfo.pas"/>
<ComponentName Value="frmTileInfo"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmTileInfo"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmTileInfo"/> <UnitName Value="UfrmTileInfo"/>
</Unit20> </Unit20>
@ -195,9 +195,9 @@
</Unit22> </Unit22>
<Unit23> <Unit23>
<Filename Value="UfrmRegionControl.pas"/> <Filename Value="UfrmRegionControl.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmRegionControl"/> <ComponentName Value="frmRegionControl"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="UfrmRegionControl"/> <UnitName Value="UfrmRegionControl"/>
</Unit23> </Unit23>

View File

@ -1066,7 +1066,7 @@ var
begin begin
Result := nil; Result := nil;
current := FShortCuts[0]; current := FShortCuts[0];
while (current <> nil) and (Result = nil) do while current <> nil do //search the last matching tile
begin begin
if (current^.State = ssNormal) and if (current^.State = ssNormal) and
PtInRect(current^.ScreenRect, AScreenPosition) and PtInRect(current^.ScreenRect, AScreenPosition) and

View File

@ -116,17 +116,17 @@ object frmMain: TfrmMain
TabOrder = 1 TabOrder = 1
object tsTiles: TTabSheet object tsTiles: TTabSheet
Caption = 'Tiles' Caption = 'Tiles'
ClientHeight = 500 ClientHeight = 492
ClientWidth = 222 ClientWidth = 218
object pnlTileListSettings: TPanel object pnlTileListSettings: TPanel
Left = 0 Left = 0
Height = 56 Height = 56
Top = 0 Top = 0
Width = 222 Width = 218
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 56 ClientHeight = 56
ClientWidth = 222 ClientWidth = 218
TabOrder = 0 TabOrder = 0
object lblFilter: TLabel object lblFilter: TLabel
Left = 84 Left = 84
@ -138,9 +138,9 @@ object frmMain: TfrmMain
end end
object cbTerrain: TCheckBox object cbTerrain: TCheckBox
Left = 4 Left = 4
Height = 18 Height = 22
Top = 8 Top = 8
Width = 57 Width = 61
Caption = 'Terrain' Caption = 'Terrain'
Checked = True Checked = True
OnChange = cbTerrainChange OnChange = cbTerrainChange
@ -149,9 +149,9 @@ object frmMain: TfrmMain
end end
object cbStatics: TCheckBox object cbStatics: TCheckBox
Left = 4 Left = 4
Height = 18 Height = 22
Top = 32 Top = 32
Width = 56 Width = 60
Caption = 'Statics' Caption = 'Statics'
Checked = True Checked = True
OnChange = cbStaticsChange OnChange = cbStaticsChange
@ -170,9 +170,9 @@ object frmMain: TfrmMain
object vdtTiles: TVirtualDrawTree object vdtTiles: TVirtualDrawTree
Tag = 1 Tag = 1
Left = 0 Left = 0
Height = 246 Height = 238
Top = 56 Top = 56
Width = 222 Width = 218
Align = alClient Align = alClient
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragMode = dmAutomatic DragMode = dmAutomatic
@ -216,12 +216,12 @@ object frmMain: TfrmMain
object gbRandom: TGroupBox object gbRandom: TGroupBox
Left = 0 Left = 0
Height = 193 Height = 193
Top = 307 Top = 299
Width = 222 Width = 218
Align = alBottom Align = alBottom
Caption = 'Random pool' Caption = 'Random pool'
ClientHeight = 179 ClientHeight = 179
ClientWidth = 220 ClientWidth = 216
TabOrder = 2 TabOrder = 2
object vdtRandom: TVirtualDrawTree object vdtRandom: TVirtualDrawTree
Tag = 1 Tag = 1
@ -229,7 +229,7 @@ object frmMain: TfrmMain
Left = 0 Left = 0
Height = 127 Height = 127
Top = 22 Top = 22
Width = 220 Width = 216
Align = alClient Align = alClient
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragType = dtVCL DragType = dtVCL
@ -267,11 +267,11 @@ object frmMain: TfrmMain
Left = 0 Left = 0
Height = 22 Height = 22
Top = 0 Top = 0
Width = 220 Width = 216
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 22 ClientHeight = 22
ClientWidth = 220 ClientWidth = 216
TabOrder = 1 TabOrder = 1
object btnAddRandom: TSpeedButton object btnAddRandom: TSpeedButton
Left = 2 Left = 2
@ -422,12 +422,12 @@ object frmMain: TfrmMain
Left = 4 Left = 4
Height = 22 Height = 22
Top = 153 Top = 153
Width = 212 Width = 208
Align = alBottom Align = alBottom
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 22 ClientHeight = 22
ClientWidth = 212 ClientWidth = 208
TabOrder = 2 TabOrder = 2
object btnRandomPresetSave: TSpeedButton object btnRandomPresetSave: TSpeedButton
Left = 158 Left = 158
@ -529,7 +529,7 @@ object frmMain: TfrmMain
end end
object cbRandomPreset: TComboBox object cbRandomPreset: TComboBox
Left = 0 Left = 0
Height = 25 Height = 29
Top = 0 Top = 0
Width = 152 Width = 152
ItemHeight = 0 ItemHeight = 0
@ -543,8 +543,8 @@ object frmMain: TfrmMain
Cursor = crVSplit Cursor = crVSplit
Left = 0 Left = 0
Height = 5 Height = 5
Top = 302 Top = 294
Width = 222 Width = 218
Align = alBottom Align = alBottom
ResizeAnchor = akBottom ResizeAnchor = akBottom
end end
@ -565,13 +565,13 @@ object frmMain: TfrmMain
end end
object tsClients: TTabSheet object tsClients: TTabSheet
Caption = 'Clients' Caption = 'Clients'
ClientHeight = 500 ClientHeight = 492
ClientWidth = 222 ClientWidth = 218
object lbClients: TListBox object lbClients: TListBox
Left = 0 Left = 0
Height = 500 Height = 492
Top = 0 Top = 0
Width = 222 Width = 218
Align = alClient Align = alClient
ItemHeight = 0 ItemHeight = 0
OnDblClick = mnuGoToClientClick OnDblClick = mnuGoToClientClick
@ -583,14 +583,14 @@ object frmMain: TfrmMain
end end
object tsLocations: TTabSheet object tsLocations: TTabSheet
Caption = 'Locations' Caption = 'Locations'
ClientHeight = 500 ClientHeight = 492
ClientWidth = 222 ClientWidth = 218
object vstLocations: TVirtualStringTree object vstLocations: TVirtualStringTree
Cursor = 63 Cursor = 63
Left = 4 Left = 4
Height = 464 Height = 456
Top = 4 Top = 4
Width = 214 Width = 210
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BorderStyle = bsSingle BorderStyle = bsSingle
@ -605,7 +605,7 @@ object frmMain: TfrmMain
item item
Position = 1 Position = 1
Text = 'Name' Text = 'Name'
Width = 135 Width = 131
end> end>
Header.DefaultHeight = 17 Header.DefaultHeight = 17
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
@ -625,13 +625,13 @@ object frmMain: TfrmMain
object pnlLocationControls: TPanel object pnlLocationControls: TPanel
Left = 4 Left = 4
Height = 24 Height = 24
Top = 472 Top = 464
Width = 214 Width = 210
Align = alBottom Align = alBottom
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 24 ClientHeight = 24
ClientWidth = 214 ClientWidth = 210
TabOrder = 1 TabOrder = 1
object btnClearLocations: TSpeedButton object btnClearLocations: TSpeedButton
Left = 112 Left = 112
@ -987,7 +987,7 @@ object frmMain: TfrmMain
Left = 10 Left = 10
Height = 20 Height = 20
Top = 2 Top = 2
Width = 95 Width = 104
Align = alLeft Align = alLeft
BorderSpacing.Left = 8 BorderSpacing.Left = 8
Caption = 'Chat and Messages' Caption = 'Chat and Messages'

View File

@ -2133,10 +2133,10 @@ begin
hue := nil; hue := nil;
blockInfo^.LowRes := FTextureManager.GetArtMaterial($4000 + staticItem.TileID, hue, (staticTileData.Flags and tdfPartialHue) = tdfPartialHue); blockInfo^.LowRes := FTextureManager.GetArtMaterial($4000 + staticItem.TileID, hue, (staticTileData.Flags and tdfPartialHue) = tdfPartialHue);
blockInfo^.ScreenRect := Bounds(Trunc(drawX - blockInfo^.LowRes.RealWidth div 2), blockInfo^.ScreenRect := Bounds(Trunc(drawX - blockInfo^.LowRes.RealWidth / 2),
Trunc(drawY + 44 - blockInfo^.LowRes.RealHeight - z * 4), Trunc(drawY + 44 - blockInfo^.LowRes.RealHeight - z * 4),
blockInfo^.LowRes.RealWidth, blockInfo^.LowRes.RealWidth,
Trunc(blockInfo^.LowRes.RealHeight)); blockInfo^.LowRes.RealHeight);
south := blockInfo^.LowRes.RealHeight; south := blockInfo^.LowRes.RealHeight;
east := blockInfo^.LowRes.RealWidth div 2; east := blockInfo^.LowRes.RealWidth div 2;