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

View File

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

View File

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

View File

@ -2133,10 +2133,10 @@ begin
hue := nil;
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),
blockInfo^.LowRes.RealWidth,
Trunc(blockInfo^.LowRes.RealHeight));
blockInfo^.LowRes.RealHeight);
south := blockInfo^.LowRes.RealHeight;
east := blockInfo^.LowRes.RealWidth div 2;