- Fixed typo in UMulManager
- Added array initialization to TAnimDataProvider - Adjusted frmLogin - Some code cleanups
This commit is contained in:
parent
06c9c2c507
commit
1759e0763c
|
@ -31,7 +31,7 @@ interface
|
|||
|
||||
uses
|
||||
Classes, SysUtils, UArtProvider, UTileDataProvider, UTexmapProvider,
|
||||
ULandscape, UHueProvider;
|
||||
ULandscape, UHueProvider, UAnimDataProvider;
|
||||
|
||||
type
|
||||
|
||||
|
@ -45,6 +45,7 @@ type
|
|||
FDataDir: string;
|
||||
FArtProvider: TArtProvider;
|
||||
FTiledataProvider: TTiledataProvider;
|
||||
FAnimdataProvider: TAnimdataProvider;
|
||||
FTexmapProvider: TTexmapProvider;
|
||||
FHueProvider: THueProvider;
|
||||
FLandscape: TLandscape;
|
||||
|
@ -54,6 +55,7 @@ type
|
|||
property Hue: THueProvider read FHueProvider;
|
||||
property Landscape: TLandscape read FLandscape;
|
||||
property Tiledata: TTiledataProvider read FTiledataProvider;
|
||||
property Animdata: TAnimDataProvider read FAnimdataProvider;
|
||||
property Texmaps: TTexmapProvider read FTexmapProvider;
|
||||
|
||||
{ Methods }
|
||||
|
@ -84,6 +86,7 @@ begin
|
|||
|
||||
FArtProvider := TArtProvider.Create(GetFile('art.mul'), GetFile('artidx.mul'), True);
|
||||
FTiledataProvider := TTiledataProvider.Create(GetFile('tiledata.mul'), True);
|
||||
FAnimdataProvider := TAnimDataProvider.Create(GetFile('animdata.mul'), True);
|
||||
FTexmapProvider := TTexmapProvider.Create(GetFile('texmaps.mul'), GetFile('texidx.mul'), True);
|
||||
FHueProvider := THueProvider.Create(GetFile('hues.mul'), True);
|
||||
end;
|
||||
|
@ -92,6 +95,7 @@ destructor TGameResourceManager.Destroy;
|
|||
begin
|
||||
FreeAndNil(FArtProvider);
|
||||
FreeAndNil(FTiledataProvider);
|
||||
FreeAndNil(FAnimdataProvider);
|
||||
FreeAndNil(FTexmapProvider);
|
||||
FreeAndNil(FHueProvider);
|
||||
FreeAndNil(FLandscape);
|
||||
|
|
|
@ -22,7 +22,7 @@ object dmNetwork: TdmNetwork
|
|||
Interval = 30000
|
||||
OnTimer = tmNoOpTimer
|
||||
OnStartTimer = tmNoOpStartTimer
|
||||
left = 72
|
||||
left = 112
|
||||
top = 24
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* CDDL HEADER END
|
||||
*
|
||||
*
|
||||
* Portions Copyright 2007 Andreas Schneider
|
||||
* Portions Copyright 2009 Andreas Schneider
|
||||
*)
|
||||
unit UdmNetwork;
|
||||
|
||||
|
@ -95,9 +95,9 @@ end;
|
|||
|
||||
procedure TdmNetwork.DataModuleDestroy(Sender: TObject);
|
||||
begin
|
||||
if FSendQueue <> nil then FreeAndNil(FSendQueue);
|
||||
if FReceiveQueue <> nil then FreeAndNil(FReceiveQueue);
|
||||
if PacketHandlers[$02] <> nil then FreeAndNil(PacketHandlers[$02]);
|
||||
FreeAndNil(FSendQueue);
|
||||
FreeAndNil(FReceiveQueue);
|
||||
FreeAndNil(PacketHandlers[$02]);
|
||||
end;
|
||||
|
||||
procedure TdmNetwork.TCPClientConnect(aSocket: TLSocket);
|
||||
|
@ -290,28 +290,33 @@ procedure TdmNetwork.DoLogin;
|
|||
begin
|
||||
tmNoOp.Enabled := False;
|
||||
frmLogin := TfrmLogin.Create(dmNetwork);
|
||||
if frmInitialize = nil then frmInitialize := TfrmInitialize.Create(dmNetwork);
|
||||
if frmTileInfo <> nil then FreeAndNil(frmTileInfo);
|
||||
if frmEditAccount <> nil then FreeAndNil(frmEditAccount);
|
||||
if frmAccountControl <> nil then FreeAndNil(frmAccountControl);
|
||||
if frmConfirmation <> nil then FreeAndNil(frmConfirmation);
|
||||
if frmDrawSettings <> nil then FreeAndNil(frmDrawSettings);
|
||||
if frmMoveSettings <> nil then FreeAndNil(frmMoveSettings);
|
||||
if frmElevateSettings <> nil then FreeAndNil(frmElevateSettings);
|
||||
if frmHueSettings <> nil then FreeAndNil(frmHueSettings);
|
||||
if frmBoundaries <> nil then FreeAndNil(frmBoundaries);
|
||||
if frmFilter <> nil then FreeAndNil(frmFilter);
|
||||
if frmVirtualLayer <> nil then FreeAndNil(frmVirtualLayer);
|
||||
if frmAbout <> nil then FreeAndNil(frmAbout);
|
||||
if frmRegionControl <> nil then FreeAndNil(frmRegionControl);
|
||||
if frmLargeScaleCommand <> nil then FreeAndNil(frmLargeScaleCommand);
|
||||
if frmRadarMap <> nil then FreeAndNil(frmRadarMap);
|
||||
if frmInitialize = nil then
|
||||
frmInitialize := TfrmInitialize.Create(dmNetwork);
|
||||
|
||||
FreeAndNil(frmTileInfo);
|
||||
FreeAndNil(frmEditAccount);
|
||||
FreeAndNil(frmAccountControl);
|
||||
FreeAndNil(frmConfirmation);
|
||||
FreeAndNil(frmDrawSettings);
|
||||
FreeAndNil(frmMoveSettings);
|
||||
FreeAndNil(frmElevateSettings);
|
||||
FreeAndNil(frmHueSettings);
|
||||
FreeAndNil(frmBoundaries);
|
||||
FreeAndNil(frmFilter);
|
||||
FreeAndNil(frmVirtualLayer);
|
||||
FreeAndNil(frmAbout);
|
||||
FreeAndNil(frmRegionControl);
|
||||
FreeAndNil(frmLargeScaleCommand);
|
||||
FreeAndNil(frmRadarMap);
|
||||
|
||||
if frmMain <> nil then
|
||||
begin
|
||||
frmMain.ApplicationProperties1.OnIdle := nil;
|
||||
FreeAndNil(frmMain);
|
||||
end;
|
||||
if GameResourceManager <> nil then FreeAndNil(GameResourceManager);
|
||||
|
||||
FreeAndNil(GameResourceManager);
|
||||
|
||||
frmInitialize.Hide;
|
||||
while frmLogin.ShowModal = mrOK do
|
||||
begin
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
object frmLogin: TfrmLogin
|
||||
Left = 290
|
||||
Height = 265
|
||||
Height = 246
|
||||
Top = 171
|
||||
Width = 489
|
||||
ActiveControl = edHost
|
||||
Width = 481
|
||||
ActiveControl = btnOK
|
||||
BorderIcons = [biSystemMenu]
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'UO CentrED'
|
||||
ClientHeight = 265
|
||||
ClientWidth = 489
|
||||
ClientHeight = 246
|
||||
ClientWidth = 481
|
||||
Font.Height = -11
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
|
@ -16,53 +16,85 @@ object frmLogin: TfrmLogin
|
|||
ShowInTaskBar = stAlways
|
||||
LCLVersion = '0.9.29'
|
||||
object lblCopyright: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 14
|
||||
Top = 251
|
||||
Width = 489
|
||||
Align = alBottom
|
||||
Height = 15
|
||||
Top = 231
|
||||
Width = 481
|
||||
Alignment = taCenter
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
ParentColor = False
|
||||
end
|
||||
object gbConnection: TGroupBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = gbActions
|
||||
AnchorSideBottom.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 128
|
||||
Top = 8
|
||||
Width = 321
|
||||
Top = 4
|
||||
Width = 314
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 4
|
||||
Caption = 'Connection'
|
||||
ClientHeight = 110
|
||||
ClientWidth = 317
|
||||
ClientHeight = 114
|
||||
ClientWidth = 312
|
||||
TabOrder = 0
|
||||
object lblHost: TLabel
|
||||
Left = 30
|
||||
AnchorSideLeft.Control = imgHost
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edHost
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 32
|
||||
Height = 14
|
||||
Top = 9
|
||||
Top = 10
|
||||
Width = 28
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Host:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblUsername: TLabel
|
||||
Left = 30
|
||||
AnchorSideLeft.Control = imgUsername
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edUsername
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 32
|
||||
Height = 14
|
||||
Top = 43
|
||||
Width = 55
|
||||
Top = 46
|
||||
Width = 58
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Username:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblPassword: TLabel
|
||||
Left = 30
|
||||
AnchorSideLeft.Control = imgPassword
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edPassword
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 32
|
||||
Height = 14
|
||||
Top = 77
|
||||
Width = 53
|
||||
Top = 81
|
||||
Width = 54
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Password:'
|
||||
ParentColor = False
|
||||
end
|
||||
object imgHost: TImage
|
||||
Left = 6
|
||||
AnchorSideLeft.Control = gbConnection
|
||||
AnchorSideTop.Control = lblHost
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 16
|
||||
Top = 9
|
||||
Width = 16
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 8
|
||||
Picture.Data = {
|
||||
07545069786D61702E0A00002F2A2058504D202A2F0A73746174696320636861
|
||||
72202A64756D6D795B5D3D7B0A223136203136203132342032222C0A22517420
|
||||
|
@ -150,9 +182,12 @@ object frmLogin: TfrmLogin
|
|||
Transparent = True
|
||||
end
|
||||
object imgUsername: TImage
|
||||
Left = 6
|
||||
AnchorSideLeft.Control = imgHost
|
||||
AnchorSideTop.Control = lblUsername
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 16
|
||||
Top = 43
|
||||
Top = 45
|
||||
Width = 16
|
||||
AutoSize = True
|
||||
Picture.Data = {
|
||||
|
@ -242,9 +277,12 @@ object frmLogin: TfrmLogin
|
|||
Transparent = True
|
||||
end
|
||||
object imgPassword: TImage
|
||||
Left = 6
|
||||
AnchorSideLeft.Control = imgUsername
|
||||
AnchorSideTop.Control = lblPassword
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 16
|
||||
Top = 77
|
||||
Top = 80
|
||||
Width = 16
|
||||
AutoSize = True
|
||||
Picture.Data = {
|
||||
|
@ -324,34 +362,66 @@ object frmLogin: TfrmLogin
|
|||
Transparent = True
|
||||
end
|
||||
object edHost: TEdit
|
||||
Left = 101
|
||||
Height = 21
|
||||
Top = 5
|
||||
Width = 137
|
||||
AnchorSideLeft.Control = lblUsername
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbConnection
|
||||
AnchorSideRight.Control = edPort
|
||||
Left = 98
|
||||
Height = 19
|
||||
Top = 8
|
||||
Width = 143
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
TabOrder = 0
|
||||
Text = 'localhost'
|
||||
end
|
||||
object edUsername: TEdit
|
||||
Left = 101
|
||||
Height = 21
|
||||
Top = 39
|
||||
Width = 201
|
||||
AnchorSideLeft.Control = edHost
|
||||
AnchorSideTop.Control = edHost
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = edPort
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 98
|
||||
Height = 19
|
||||
Top = 44
|
||||
Width = 206
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 17
|
||||
TabOrder = 2
|
||||
end
|
||||
object edPassword: TEdit
|
||||
Left = 101
|
||||
Height = 21
|
||||
Top = 73
|
||||
Width = 201
|
||||
AnchorSideLeft.Control = edUsername
|
||||
AnchorSideTop.Control = edUsername
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = edUsername
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 98
|
||||
Height = 19
|
||||
Top = 79
|
||||
Width = 206
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 16
|
||||
BorderSpacing.Bottom = 16
|
||||
EchoMode = emPassword
|
||||
PasswordChar = '*'
|
||||
TabOrder = 3
|
||||
end
|
||||
object edPort: TSpinEdit
|
||||
Left = 246
|
||||
Height = 21
|
||||
Top = 5
|
||||
Width = 56
|
||||
AnchorSideLeft.Control = edHost
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edHost
|
||||
AnchorSideRight.Control = gbConnection
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = edHost
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 249
|
||||
Height = 19
|
||||
Top = 8
|
||||
Width = 55
|
||||
Anchors = [akTop, akRight, akBottom]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
MaxValue = 65565
|
||||
MinValue = 1024
|
||||
TabOrder = 1
|
||||
|
@ -359,18 +429,33 @@ object frmLogin: TfrmLogin
|
|||
end
|
||||
end
|
||||
object gbActions: TGroupBox
|
||||
Left = 336
|
||||
Height = 96
|
||||
Top = 8
|
||||
Width = 145
|
||||
ClientHeight = 78
|
||||
AnchorSideLeft.Control = gbConnection
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbConnection
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 330
|
||||
Height = 76
|
||||
Top = 12
|
||||
Width = 143
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
ClientHeight = 74
|
||||
ClientWidth = 141
|
||||
TabOrder = 2
|
||||
object btnOK: TButton
|
||||
Left = 6
|
||||
AnchorSideLeft.Control = gbActions
|
||||
AnchorSideTop.Control = gbActions
|
||||
AnchorSideRight.Control = gbActions
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 25
|
||||
Top = 5
|
||||
Width = 128
|
||||
Top = 8
|
||||
Width = 125
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Around = 8
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = '&OK'
|
||||
Default = True
|
||||
|
@ -378,10 +463,17 @@ object frmLogin: TfrmLogin
|
|||
TabOrder = 0
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 6
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = btnOK
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = btnOK
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 25
|
||||
Top = 39
|
||||
Width = 128
|
||||
Top = 41
|
||||
Width = 125
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Bottom = 8
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = '&Cancel'
|
||||
ModalResult = 2
|
||||
|
@ -390,51 +482,83 @@ object frmLogin: TfrmLogin
|
|||
end
|
||||
end
|
||||
object gbData: TGroupBox
|
||||
AnchorSideLeft.Control = gbConnection
|
||||
AnchorSideTop.Control = gbConnection
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbConnection
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 97
|
||||
Top = 144
|
||||
Width = 321
|
||||
Height = 95
|
||||
Top = 136
|
||||
Width = 314
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 4
|
||||
Caption = 'Data files'
|
||||
ClientHeight = 79
|
||||
ClientWidth = 317
|
||||
ClientHeight = 81
|
||||
ClientWidth = 312
|
||||
TabOrder = 1
|
||||
object lblData: TLabel
|
||||
Left = 7
|
||||
Height = 32
|
||||
Top = 8
|
||||
Width = 304
|
||||
AutoSize = False
|
||||
Caption = 'Select the directory containing art.mul, artidx.mul, hues.mul, tiledata.mul, texmaps.mul and texidx.mul.'
|
||||
AnchorSideLeft.Control = gbData
|
||||
AnchorSideTop.Control = gbData
|
||||
AnchorSideRight.Control = gbData
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 46
|
||||
Top = 4
|
||||
Width = 296
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Select the directory containing art.mul, artidx.mul, hues.mul, tiledata.mul, animdata.mul, texmaps.mul and texidx.mul.'
|
||||
ParentColor = False
|
||||
WordWrap = True
|
||||
end
|
||||
object edData: TDirectoryEdit
|
||||
Left = 7
|
||||
Height = 21
|
||||
Top = 48
|
||||
Width = 280
|
||||
AnchorSideLeft.Control = lblData
|
||||
AnchorSideTop.Control = lblData
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 19
|
||||
Top = 54
|
||||
Width = 272
|
||||
ShowHidden = False
|
||||
ButtonWidth = 23
|
||||
NumGlyphs = 1
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Bottom = 8
|
||||
MaxLength = 0
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 336
|
||||
Height = 88
|
||||
Top = 112
|
||||
Width = 145
|
||||
object gbProfiles: TGroupBox
|
||||
AnchorSideLeft.Control = gbActions
|
||||
AnchorSideTop.Control = gbActions
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbActions
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 330
|
||||
Height = 85
|
||||
Top = 96
|
||||
Width = 143
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Profiles'
|
||||
ClientHeight = 70
|
||||
ClientHeight = 71
|
||||
ClientWidth = 141
|
||||
TabOrder = 3
|
||||
object btnSaveProfile: TSpeedButton
|
||||
Left = 86
|
||||
AnchorSideTop.Control = btnDeleteProfile
|
||||
AnchorSideRight.Control = btnDeleteProfile
|
||||
Left = 81
|
||||
Height = 22
|
||||
Hint = 'Save profile'
|
||||
Top = 40
|
||||
Width = 23
|
||||
Top = 41
|
||||
Width = 22
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 8
|
||||
Color = clBtnFace
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
|
@ -479,11 +603,18 @@ object frmLogin: TfrmLogin
|
|||
ParentShowHint = False
|
||||
end
|
||||
object btnDeleteProfile: TSpeedButton
|
||||
AnchorSideTop.Control = cbProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = cbProfile
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 111
|
||||
Height = 22
|
||||
Hint = 'Delete profile'
|
||||
Top = 40
|
||||
Width = 23
|
||||
Top = 41
|
||||
Width = 22
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
Color = clBtnFace
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
|
@ -528,11 +659,19 @@ object frmLogin: TfrmLogin
|
|||
ParentShowHint = False
|
||||
end
|
||||
object cbProfile: TComboBox
|
||||
Left = 6
|
||||
Height = 21
|
||||
Top = 8
|
||||
Width = 128
|
||||
ItemHeight = 13
|
||||
AnchorSideLeft.Control = gbProfiles
|
||||
AnchorSideTop.Control = gbProfiles
|
||||
AnchorSideRight.Control = gbProfiles
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 29
|
||||
Top = 4
|
||||
Width = 125
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Right = 8
|
||||
ItemHeight = 0
|
||||
OnChange = cbProfileChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* CDDL HEADER END
|
||||
*
|
||||
*
|
||||
* Portions Copyright 2007 Andreas Schneider
|
||||
* Portions Copyright 2009 Andreas Schneider
|
||||
*)
|
||||
unit UfrmLogin;
|
||||
|
||||
|
@ -48,7 +48,7 @@ type
|
|||
gbConnection: TGroupBox;
|
||||
gbData: TGroupBox;
|
||||
gbActions: TGroupBox;
|
||||
GroupBox1: TGroupBox;
|
||||
gbProfiles: TGroupBox;
|
||||
imgHost: TImage;
|
||||
imgUsername: TImage;
|
||||
imgPassword: TImage;
|
||||
|
@ -108,12 +108,13 @@ begin
|
|||
(not FileExists(path + 'artidx.mul')) or
|
||||
(not FileExists(path + 'hues.mul')) or
|
||||
(not FileExists(path + 'tiledata.mul')) or
|
||||
(not FileExists(path + 'animdata.mul')) or
|
||||
(not FileExists(path + 'texmaps.mul')) or
|
||||
(not FileExists(path + 'texidx.mul')) then
|
||||
begin
|
||||
MessageDlg('Incorrect directory', 'The data path you specified does not seem to be correct.', mtWarning, [mbOK], 0);
|
||||
MessageDlg('Incorrect directory', 'The data path you specified does not '
|
||||
+ 'seem to be correct.', mtWarning, [mbOK], 0);
|
||||
edData.SetFocus;
|
||||
Exit;
|
||||
end else
|
||||
ModalResult := mrOK;
|
||||
end;
|
||||
|
@ -168,9 +169,11 @@ procedure TfrmLogin.FormCreate(Sender: TObject);
|
|||
var
|
||||
searchRec: TSearchRec;
|
||||
begin
|
||||
lblCopyright.Caption := Format('UO CentrED Client Version %s (c) %s', [ProductVersion, Copyright]);
|
||||
lblCopyright.Caption := Format('UO CentrED Client Version %s (c) %s',
|
||||
[ProductVersion, Copyright]);
|
||||
|
||||
FProfilePath := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'Profiles' + PathDelim;
|
||||
FProfilePath := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName))
|
||||
+ 'Profiles' + PathDelim;
|
||||
ForceDirectories(FProfilePath);
|
||||
if FindFirst(FProfilePath + '*.ini', faAnyFile, searchRec) = 0 then
|
||||
begin
|
||||
|
|
|
@ -48,6 +48,7 @@ type
|
|||
FAnimData: TAnimDataArray;
|
||||
function CalculateOffset(AID: Integer): Integer; override;
|
||||
function GetData(AID, AOffset: Integer): TAnimData; override;
|
||||
procedure InitArray;
|
||||
procedure SetData(AID, AOffset: Integer; ABlock: TMulBlock); override;
|
||||
public
|
||||
property AnimData: TAnimDataArray read FAnimData;
|
||||
|
@ -61,15 +62,22 @@ implementation
|
|||
constructor TAnimDataProvider.Create(AData: TStream; AReadOnly: Boolean);
|
||||
begin
|
||||
inherited Create(AData, AReadOnly);
|
||||
InitArray;
|
||||
end;
|
||||
|
||||
constructor TAnimDataProvider.Create(AData: string; AReadOnly: Boolean);
|
||||
begin
|
||||
inherited Create(AData, AReadOnly);
|
||||
InitArray;
|
||||
end;
|
||||
|
||||
destructor TAnimDataProvider.Destroy;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to Length(FAnimData) - 1 do
|
||||
FreeAndNil(FAnimData[i]);
|
||||
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
|
@ -83,6 +91,17 @@ begin
|
|||
Result := FAnimData[AID];
|
||||
end;
|
||||
|
||||
procedure TAnimDataProvider.InitArray;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to Length(FAnimData) - 1 do
|
||||
begin
|
||||
FData.Position := GetAnimDataOffset(i);
|
||||
FAnimData[i] := TAnimData.Create(FData);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnimDataProvider.SetData(AID, AOffset: Integer; ABlock: TMulBlock);
|
||||
begin
|
||||
FreeAndNil(FAnimData[AID]);
|
||||
|
|
|
@ -123,7 +123,7 @@ procedure TMulManager.RegisterAnimDataProvider(
|
|||
AAnimDataProvider: TAnimDataProvider);
|
||||
begin
|
||||
FreeAndNil(FAnimDataProvider);
|
||||
FTileDataProvider := AAnimDataProvider;
|
||||
FAnimDataProvider := AAnimDataProvider;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
|
|
@ -69,16 +69,16 @@ type
|
|||
property Unknown: LongInt read FUnknown write FUnknown;
|
||||
end;
|
||||
|
||||
function GetAnimDataOffset(Block: Integer): Integer;
|
||||
function GetAnimDataOffset(AID: Integer): Integer;
|
||||
|
||||
implementation
|
||||
|
||||
function GetAnimDataOffset(Block: Integer): Integer;
|
||||
function GetAnimDataOffset(AID: Integer): Integer;
|
||||
var
|
||||
group, tile: Integer;
|
||||
begin
|
||||
group := Block div 8;
|
||||
tile := Block mod 8;
|
||||
group := AID div 8;
|
||||
tile := AID mod 8;
|
||||
|
||||
Result := group * AnimDataGroupSize + 4 + tile * AnimDataSize;
|
||||
end;
|
||||
|
|
Loading…
Reference in New Issue