- Fixed TfrmLogin to create the profile path if it doesn't exist
- Removed old code from TfrmMain.Render - Bumped version to 0.4.5 - Moved TVirtualTile to UWorldItem - Added TVirtualTile handling to CompareWorldItems - Added priorities to the virtual tiles
This commit is contained in:
parent
c030b9c586
commit
8df2313b4d
|
@ -16,9 +16,9 @@
|
|||
<VersionInfo>
|
||||
<UseVersionInfo Value="True"/>
|
||||
<CurrentMajorRevNr Value="4"/>
|
||||
<CurrentMinorRevNr Value="2"/>
|
||||
<CurrentMinorRevNr Value="5"/>
|
||||
<CurrentBuildNr Value="141"/>
|
||||
<ProjectVersion Value="0.4.2.85"/>
|
||||
<ProjectVersion Value="0.4.5.141"/>
|
||||
<CompanyName Value="AKS DataBasis"/>
|
||||
<FileDescription Value="UO CentrED"/>
|
||||
<LegalCopyright Value="Andreas Schneider"/>
|
||||
|
@ -282,6 +282,7 @@
|
|||
<Debugging>
|
||||
<GenerateDebugInfo Value="True"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
|
@ -289,8 +290,7 @@
|
|||
</Options>
|
||||
</Linking>
|
||||
<Other>
|
||||
<CustomOptions Value="-FE../bin/
|
||||
"/>
|
||||
<CustomOptions Value="-FE../bin/
"/>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
1 VERSIONINFO
|
||||
FILEVERSION 0,4,2,141
|
||||
PRODUCTVERSION 0,4,2,85
|
||||
FILEVERSION 0,4,5,141
|
||||
PRODUCTVERSION 0,4,5,141
|
||||
{
|
||||
BLOCK "StringFileInfo"
|
||||
{
|
||||
|
@ -9,13 +9,13 @@ PRODUCTVERSION 0,4,2,85
|
|||
VALUE "Comments", "\000"
|
||||
VALUE "CompanyName", "AKS DataBasis\000"
|
||||
VALUE "FileDescription", "UO CentrED\000"
|
||||
VALUE "FileVersion", "0.4.2.141\000"
|
||||
VALUE "FileVersion", "0.4.5.141\000"
|
||||
VALUE "InternalName", "\000"
|
||||
VALUE "LegalCopyright", "Andreas Schneider\000"
|
||||
VALUE "LegalTrademarks", "\000"
|
||||
VALUE "OriginalFilename", "CentrED.exe\000"
|
||||
VALUE "ProductName", "CentrED\000"
|
||||
VALUE "ProductVersion", "0.4.2.85\000"
|
||||
VALUE "ProductVersion", "0.4.5.141\000"
|
||||
}
|
||||
}
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
1097
Client/UfrmLogin.lfm
1097
Client/UfrmLogin.lfm
File diff suppressed because it is too large
Load Diff
|
@ -171,6 +171,7 @@ begin
|
|||
lblCopyright.Caption := Format('UO CentrED Client Version %s (c) %s', [ProductVersion, Copyright]);
|
||||
|
||||
FProfilePath := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'Profiles' + PathDelim;
|
||||
ForceDirectories(FProfilePath);
|
||||
if FindFirst(FProfilePath + '*.ini', faAnyFile, searchRec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
object frmMain: TfrmMain
|
||||
Left = 228
|
||||
Left = 257
|
||||
Height = 603
|
||||
Top = 128
|
||||
Top = 135
|
||||
Width = 766
|
||||
ActiveControl = oglGameWindow
|
||||
Caption = 'UO CentrED'
|
||||
ClientHeight = 580
|
||||
ClientHeight = 583
|
||||
ClientWidth = 766
|
||||
Constraints.MinHeight = 603
|
||||
Constraints.MinWidth = 766
|
||||
|
@ -22,7 +22,7 @@ object frmMain: TfrmMain
|
|||
object pnlBottom: TPanel
|
||||
Left = 0
|
||||
Height = 31
|
||||
Top = 549
|
||||
Top = 552
|
||||
Width = 766
|
||||
Align = alBottom
|
||||
BevelOuter = bvNone
|
||||
|
@ -33,7 +33,7 @@ object frmMain: TfrmMain
|
|||
Left = 11
|
||||
Height = 14
|
||||
Top = 7
|
||||
Width = 11
|
||||
Width = 10
|
||||
Caption = 'X:'
|
||||
ParentColor = False
|
||||
end
|
||||
|
@ -41,7 +41,7 @@ object frmMain: TfrmMain
|
|||
Left = 88
|
||||
Height = 14
|
||||
Top = 7
|
||||
Width = 10
|
||||
Width = 9
|
||||
Caption = 'Y:'
|
||||
ParentColor = False
|
||||
end
|
||||
|
@ -54,10 +54,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
|
||||
|
@ -66,10 +66,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
|
||||
|
@ -80,7 +80,7 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object edX: TSpinEdit
|
||||
Left = 24
|
||||
Height = 19
|
||||
Height = 21
|
||||
Top = 3
|
||||
Width = 55
|
||||
MaxValue = 100000
|
||||
|
@ -88,7 +88,7 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object edY: TSpinEdit
|
||||
Left = 104
|
||||
Height = 19
|
||||
Height = 21
|
||||
Top = 3
|
||||
Width = 52
|
||||
MaxValue = 100000
|
||||
|
@ -107,7 +107,7 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object pcLeft: TPageControl
|
||||
Left = 0
|
||||
Height = 525
|
||||
Height = 528
|
||||
Top = 24
|
||||
Width = 224
|
||||
ActivePage = tsTiles
|
||||
|
@ -116,13 +116,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
|
||||
|
@ -139,9 +139,9 @@ object frmMain: TfrmMain
|
|||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = spTileList
|
||||
Left = 4
|
||||
Height = 250
|
||||
Top = 56
|
||||
Width = 210
|
||||
Height = 266
|
||||
Top = 50
|
||||
Width = 208
|
||||
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 = 311
|
||||
Width = 218
|
||||
Top = 321
|
||||
Width = 216
|
||||
Align = alBottom
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
Caption = 'Random pool'
|
||||
ClientHeight = 167
|
||||
ClientWidth = 216
|
||||
ClientHeight = 163
|
||||
ClientWidth = 212
|
||||
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 = 164
|
||||
Left = 160
|
||||
Height = 22
|
||||
Hint = 'Save Preset'
|
||||
Top = 134
|
||||
Top = 138
|
||||
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 = 190
|
||||
Left = 186
|
||||
Height = 22
|
||||
Hint = 'Delete Preset'
|
||||
Top = 134
|
||||
Top = 138
|
||||
Width = 22
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 4
|
||||
|
@ -473,9 +473,9 @@ object frmMain: TfrmMain
|
|||
AnchorSideBottom.Control = cbRandomPreset
|
||||
Cursor = 63
|
||||
Left = 4
|
||||
Height = 106
|
||||
Height = 110
|
||||
Top = 24
|
||||
Width = 208
|
||||
Width = 204
|
||||
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 = 29
|
||||
Top = 134
|
||||
Width = 156
|
||||
Height = 21
|
||||
Top = 138
|
||||
Width = 152
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
BorderSpacing.Left = 4
|
||||
BorderSpacing.Right = 4
|
||||
BorderSpacing.Bottom = 4
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
OnChange = cbRandomPresetChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
|
@ -539,8 +539,8 @@ object frmMain: TfrmMain
|
|||
Cursor = crVSplit
|
||||
Left = 0
|
||||
Height = 5
|
||||
Top = 306
|
||||
Width = 218
|
||||
Top = 316
|
||||
Width = 216
|
||||
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 = 110
|
||||
Height = 19
|
||||
Left = 108
|
||||
Height = 21
|
||||
Hint = 'Append S or T to restrict the search to Statics or Terrain.'
|
||||
Top = 279
|
||||
Top = 287
|
||||
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 = 81
|
||||
Height = 19
|
||||
Left = 75
|
||||
Height = 21
|
||||
Top = 22
|
||||
Width = 121
|
||||
Width = 125
|
||||
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 = 4
|
||||
Height = 22
|
||||
Top = 30
|
||||
Width = 60
|
||||
Left = 5
|
||||
Height = 19
|
||||
Top = 27
|
||||
Width = 53
|
||||
Caption = 'Statics'
|
||||
Checked = True
|
||||
OnChange = cbStaticsChange
|
||||
|
@ -600,9 +600,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'
|
||||
|
@ -614,26 +614,25 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object tsClients: TTabSheet
|
||||
Caption = 'Clients'
|
||||
ClientHeight = 492
|
||||
ClientWidth = 218
|
||||
ClientHeight = 502
|
||||
ClientWidth = 216
|
||||
object lbClients: TListBox
|
||||
Left = 0
|
||||
Height = 492
|
||||
Height = 502
|
||||
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 = 502
|
||||
ClientWidth = 216
|
||||
object btnClearLocations: TSpeedButton
|
||||
AnchorSideLeft.Control = btnDeleteLocation
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
|
@ -641,7 +640,7 @@ object frmMain: TfrmMain
|
|||
Left = 128
|
||||
Height = 22
|
||||
Hint = 'Clear'
|
||||
Top = 450
|
||||
Top = 460
|
||||
Width = 23
|
||||
BorderSpacing.Left = 4
|
||||
Color = clBtnFace
|
||||
|
@ -694,7 +693,7 @@ object frmMain: TfrmMain
|
|||
Left = 101
|
||||
Height = 22
|
||||
Hint = 'Delete'
|
||||
Top = 450
|
||||
Top = 460
|
||||
Width = 23
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Bottom = 4
|
||||
|
@ -746,7 +745,7 @@ object frmMain: TfrmMain
|
|||
Left = 74
|
||||
Height = 22
|
||||
Hint = 'Add'
|
||||
Top = 450
|
||||
Top = 460
|
||||
Width = 23
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 4
|
||||
|
@ -800,9 +799,9 @@ object frmMain: TfrmMain
|
|||
AnchorSideBottom.Control = btnDeleteLocation
|
||||
Cursor = 63
|
||||
Left = 4
|
||||
Height = 428
|
||||
Height = 438
|
||||
Top = 18
|
||||
Width = 210
|
||||
Width = 208
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Around = 4
|
||||
BorderStyle = bsSingle
|
||||
|
@ -817,7 +816,7 @@ object frmMain: TfrmMain
|
|||
item
|
||||
Position = 1
|
||||
Text = 'Name'
|
||||
Width = 131
|
||||
Width = 129
|
||||
end>
|
||||
Header.DefaultHeight = 17
|
||||
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
|
||||
|
@ -1012,7 +1011,7 @@ object frmMain: TfrmMain
|
|||
AnchorSideBottom.Control = spChat
|
||||
Left = 224
|
||||
Height = 22
|
||||
Top = 413
|
||||
Top = 416
|
||||
Width = 542
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
BevelInner = bvRaised
|
||||
|
@ -1025,7 +1024,7 @@ object frmMain: TfrmMain
|
|||
Left = 10
|
||||
Height = 18
|
||||
Top = 2
|
||||
Width = 104
|
||||
Width = 101
|
||||
Align = alLeft
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Chat and Messages'
|
||||
|
@ -1046,7 +1045,7 @@ object frmMain: TfrmMain
|
|||
AnchorSideBottom.Control = pnlBottom
|
||||
Left = 224
|
||||
Height = 109
|
||||
Top = 440
|
||||
Top = 443
|
||||
Width = 542
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BevelOuter = bvNone
|
||||
|
@ -1057,7 +1056,7 @@ object frmMain: TfrmMain
|
|||
object vstChat: TVirtualStringTree
|
||||
Cursor = 63
|
||||
Left = 0
|
||||
Height = 90
|
||||
Height = 88
|
||||
Top = 0
|
||||
Width = 542
|
||||
Align = alClient
|
||||
|
@ -1095,8 +1094,8 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object edChat: TEdit
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 90
|
||||
Height = 21
|
||||
Top = 88
|
||||
Width = 542
|
||||
Align = alBottom
|
||||
OnKeyPress = edChatKeyPress
|
||||
|
@ -1111,7 +1110,7 @@ object frmMain: TfrmMain
|
|||
Cursor = crVSplit
|
||||
Left = 224
|
||||
Height = 5
|
||||
Top = 435
|
||||
Top = 438
|
||||
Width = 542
|
||||
Align = alNone
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
|
@ -1128,7 +1127,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]
|
||||
|
|
|
@ -37,9 +37,6 @@ uses
|
|||
ImagingClasses, dateutils, UPlatformTypes, UVector, UMap, contnrs;
|
||||
|
||||
type
|
||||
|
||||
TVirtualTile = class(TWorldItem);
|
||||
|
||||
TAccessChangedListener = procedure(AAccessLevel: TAccessLevel) of object;
|
||||
TScreenBufferState = (sbsValid, sbsIndexed, sbsFiltered);
|
||||
TScreenBufferStates = set of TScreenBufferState;
|
||||
|
@ -1937,170 +1934,6 @@ begin
|
|||
|
||||
if highlight then
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
|
||||
{GetDrawOffset(item.X - FX, item.Y - FY, drawX, drawY);
|
||||
|
||||
{if editing and acDraw.Checked and (singleTarget or multiTarget) then
|
||||
begin
|
||||
ghostTile := FGhostTile;
|
||||
if (ghostTile is TMapCell) and (not frmDrawSettings.cbForceAltitude.Checked) then
|
||||
ghostTile.Z := FLandscape.MapCell[item.X, item.Y].Z;
|
||||
end else
|
||||
ghostTile := nil;} //TODO : re add Ghost Tile
|
||||
|
||||
{if frmVirtualLayer.cbShowLayer.Checked then
|
||||
begin
|
||||
virtualTile := FVirtualLayer[k, j - k];
|
||||
virtualTile.X := FX + offsetX;
|
||||
virtualTile.Y := FY + offsetY;
|
||||
virtualTile.Z := frmVirtualLayer.seZ.Value;
|
||||
end else
|
||||
virtualTile := nil;}
|
||||
|
||||
if not editing then
|
||||
highlight := False
|
||||
{else if item = virtualTile then
|
||||
highlight := False} //todo virtual tile
|
||||
else if acDelete.Checked and multiTarget and (item is TStaticItem) then
|
||||
highlight := True
|
||||
else if ((acElevate.Checked) or (acMove.Checked)) and multiTarget then
|
||||
highlight := True
|
||||
else if (acHue.Checked and multiTarget and (item is TMapCell)) then
|
||||
highlight := True
|
||||
else
|
||||
highlight := (not acSelect.Checked) and
|
||||
(not acHue.Checked) and
|
||||
(item = CurrentTile) or
|
||||
((item is TMapCell) and (item = ghostTile));
|
||||
|
||||
if highlight then
|
||||
begin
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
glLogicOp(GL_COPY_INVERTED);
|
||||
end;
|
||||
|
||||
if acFlat.Checked then
|
||||
z := 0
|
||||
else
|
||||
z := item.Z;
|
||||
|
||||
glColor4f(intensity, intensity, intensity, 1.0);
|
||||
|
||||
{if TObject(draw[i]) = virtualTile then
|
||||
begin
|
||||
glBindTexture(GL_TEXTURE_2D, FVLayerMaterial.Texture);
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0, 0); glVertex2d(drawX - 22, drawY - z * 4);
|
||||
glTexCoord2f(1, 0); glVertex2d(drawX - 22 + FVLayerMaterial.Width, drawY - z * 4);
|
||||
glTexCoord2f(1, 1); glVertex2d(drawX - 22 + FVLayerMaterial.Width, drawY + FVLayerMaterial.Height - z * 4);
|
||||
glTexCoord2f(0, 1); glVertex2d(drawX - 22, drawY + FVLayerMaterial.Height - z * 4);
|
||||
glEnd;
|
||||
|
||||
FScreenBuffer.Store(Bounds(Trunc(drawX - 22), Trunc(drawY - z * 4), 44, 44), virtualTile, FVLayerMaterial);
|
||||
end else} if item is TMapCell then //TODO : virtual tile!
|
||||
begin
|
||||
cell := TMapCell(item);
|
||||
|
||||
{if ResMan.Tiledata.LandTiles[cell.TileID].HasFlag(tdfTranslucent) then
|
||||
glColor4f(intensity, intensity, intensity, 0.5);} //Possible, but probably not like the OSI client
|
||||
|
||||
mat := nil;
|
||||
|
||||
if not acFlat.Checked then
|
||||
begin
|
||||
west := FLandscape.GetLandAlt(item.X, item.Y + 1, z);
|
||||
south := FLandscape.GetLandAlt(item.X + 1, item.Y + 1, z);
|
||||
east := FLandscape.GetLandAlt(item.X + 1, item.Y, z);
|
||||
|
||||
if (west <> z) or (south <> z) or (east <> z) then
|
||||
begin
|
||||
mat := FTextureManager.GetTexMaterial(cell.TileID);
|
||||
end;
|
||||
end;
|
||||
|
||||
if mat = nil then
|
||||
begin
|
||||
mat := FTextureManager.GetArtMaterial(cell.TileID);
|
||||
if (not (ghostTile is TMapCell)) or
|
||||
(item = ghostTile) then //when we have a ghosttile, only draw that, but still store the real one
|
||||
begin
|
||||
glBindTexture(GL_TEXTURE_2D, mat.Texture);
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0, 0); glVertex2d(drawX - 22, drawY - z * 4);
|
||||
glTexCoord2f(1, 0); glVertex2d(drawX - 22 + mat.Width, drawY - z * 4);
|
||||
glTexCoord2f(1, 1); glVertex2d(drawX - 22 + mat.Width, drawY + mat.Height - z * 4);
|
||||
glTexCoord2f(0, 1); glVertex2d(drawX - 22, drawY + mat.Height - z * 4);
|
||||
glEnd;
|
||||
end;
|
||||
|
||||
if item <> ghostTile then
|
||||
FScreenBuffer.Store(Bounds(Trunc(drawX - 22), Trunc(drawY - z * 4), 44, 44), cell, mat);
|
||||
end else // Texture found
|
||||
begin
|
||||
if (not (ghostTile is TMapCell)) or
|
||||
(item = ghostTile) then //when we have a ghosttile, only draw that, but still store the real one
|
||||
begin
|
||||
glBindTexture(GL_TEXTURE_2D, mat.Texture);
|
||||
//if (not cell.Selected) and (intensity = 1.0) then
|
||||
if not cell.Selected then
|
||||
glEnable(GL_LIGHTING);
|
||||
normals := FLandscape.Normals[item.X, item.Y];
|
||||
glBegin(GL_TRIANGLES);
|
||||
glNormal3f(normals[3].X, normals[3].Y, normals[3].Z);
|
||||
glTexCoord2f(0, 1); glVertex2d(drawX - 22, drawY + 22 - west * 4);
|
||||
glNormal3f(normals[0].X, normals[0].Y, normals[0].Z);
|
||||
glTexCoord2f(0, 0); glVertex2d(drawX, drawY - z * 4);
|
||||
glNormal3f(normals[1].X, normals[1].Y, normals[1].Z);
|
||||
glTexCoord2f(1, 0); glVertex2d(drawX + 22, drawY + 22 - east * 4);
|
||||
glNormal3f(normals[1].X, normals[1].Y, normals[1].Z);
|
||||
glTexCoord2f(1, 0); glVertex2d(drawX + 22, drawY + 22 - east * 4);
|
||||
glNormal3f(normals[2].X, normals[2].Y, normals[2].Z);
|
||||
glTexCoord2f(1, 1); glVertex2d(drawX, drawY + 44 - south * 4);
|
||||
glNormal3f(normals[3].X, normals[3].Y, normals[3].Z);
|
||||
glTexCoord2f(0, 1); glVertex2d(drawX - 22, drawY + 22 - west * 4);
|
||||
glEnd;
|
||||
//if (not cell.Selected) and (intensity = 1.0) then
|
||||
if not cell.Selected then
|
||||
glDisable(GL_LIGHTING);
|
||||
end;
|
||||
|
||||
if item <> ghostTile then
|
||||
FScreenBuffer.Store(Rect(Trunc(drawX - 22), Trunc(drawY - z * 4), Trunc(drawX + 22), Trunc(drawY + 44 - south * 4)), cell, mat);
|
||||
end;
|
||||
end else if item is TStaticItem then
|
||||
begin
|
||||
staticItem := TStaticItem(item);
|
||||
|
||||
staticTileData := ResMan.Tiledata.StaticTiles[staticItem.TileID];
|
||||
if tbSetHue.Down and ((singleTarget and (item = CurrentTile)) or multiTarget) then
|
||||
begin
|
||||
if frmHueSettings.lbHue.ItemIndex > 0 then
|
||||
hue := ResMan.Hue.Hues[frmHueSettings.lbHue.ItemIndex - 1]
|
||||
else
|
||||
hue := nil;
|
||||
end else if staticItem.Hue > 0 then
|
||||
hue := ResMan.Hue.Hues[staticItem.Hue - 1]
|
||||
else
|
||||
hue := nil;
|
||||
|
||||
if staticTileData.HasFlag(tdfTranslucent) then
|
||||
glColor4f(intensity, intensity, intensity, 0.5);
|
||||
|
||||
mat := FTextureManager.GetArtMaterial($4000 + staticItem.TileID, hue, (staticTileData.Flags and tdfPartialHue) = tdfPartialHue);
|
||||
south := mat.RealHeight;
|
||||
east := mat.RealWidth div 2;
|
||||
glBindTexture(GL_TEXTURE_2D, mat.Texture);
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0, 0); glVertex2d(drawX - east, drawY + 44 - south - z * 4);
|
||||
glTexCoord2f(1, 0); glVertex2d(drawX - east + mat.Width, drawY + 44 - south - z * 4);
|
||||
glTexCoord2f(1, 1); glVertex2d(drawX - east + mat.Width, drawY + 44 - south + mat.Height - z * 4);
|
||||
glTexCoord2f(0, 1); glVertex2d(drawX - east, drawY + 44 - south + mat.Height - z * 4);
|
||||
glEnd;
|
||||
|
||||
if TObject(draw[i]) <> ghostTile then
|
||||
FScreenBuffer.Store(Bounds(Trunc(drawX - east), Trunc(drawY + 44 - south - z * 4), mat.RealWidth, Trunc(south)), staticItem, mat);
|
||||
end;}
|
||||
|
||||
end;
|
||||
|
||||
FOverlayUI.Draw(oglGameWindow);
|
||||
|
@ -2362,6 +2195,8 @@ begin
|
|||
virtualTile.X := tileX;
|
||||
virtualTile.Y := tileY;
|
||||
virtualTile.Z := frmVirtualLayer.seZ.Value;
|
||||
virtualTile.Priority := virtualTile.Z;
|
||||
virtualTile.PriorityBonus := MaxInt;
|
||||
|
||||
Inc(i);
|
||||
end;
|
||||
|
|
|
@ -101,6 +101,8 @@ type
|
|||
procedure CleanUp;
|
||||
end;
|
||||
|
||||
TVirtualTile = class(TWorldItem);
|
||||
|
||||
function CompareWorldItems(AItem1, AItem2: Pointer): Integer;
|
||||
|
||||
implementation
|
||||
|
@ -122,6 +124,10 @@ begin
|
|||
if (TObject(AItem1) is TMapCell) and (TObject(AItem2) is TStaticItem) then
|
||||
Result := -1
|
||||
else if (TObject(AItem1) is TStaticItem) and (TObject(AItem2) is TMapCell) then
|
||||
Result := 1
|
||||
else if (TObject(AItem1) is TMapCell) and (TObject(AItem2) is TVirtualTile) then
|
||||
Result := -1
|
||||
else if (TObject(AItem1) is TVirtualTile) and (TObject(AItem2) is TMapCell) then
|
||||
Result := 1;
|
||||
end;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const
|
||||
ProductVersion = '0.4.1';
|
||||
ProductVersion = '0.4.5';
|
||||
ProtocolVersion = 6;
|
||||
Revision = '71';
|
||||
Copyright = '2008 Andreas Schneider';
|
||||
Copyright = '2009 Andreas Schneider';
|
||||
|
|
Loading…
Reference in New Issue