Changeset 209


Ignore:
Timestamp:
Jun 5, 2007, 12:07:29 AM (14 years ago)
Author:
alloc
Message:
 
Location:
oup/current
Files:
3 added
12 edited

Legend:

Unmodified
Added
Removed
  • oup/current/DataAccess/Access_OniArchive.pas

    r192 r209  
    1616    FRawOpened:          Boolean;
    1717    FSepOpened:          Boolean;
     18    procedure SetUnloadWhenUnused(doit: Boolean);
    1819  protected
    1920  public
    20     property UnloadWhenUnused: Boolean Read FUnloadWhenUnused Write FUnloadWhenUnused;
     21    property UnloadWhenUnused: Boolean Read FUnloadWhenUnused Write SetUnloadWhenUnused;
    2122
    2223    constructor Create(DatFilename: String; ConnectionID: Integer; var Msg: TStatusMessages); override;
     
    161162  FChangeRights := [CR_EditDat, CR_EditRaw, CR_AppendRaw];
    162163end;
     164
     165
     166
     167
     168procedure TAccess_OniArchive.SetUnloadWhenUnused(doit: Boolean);
     169begin
     170  FUnloadWhenUnused := doit;
     171  if FUnloadWhenUnused then
     172  begin
     173    if FDatOpened then
     174    begin
     175      FDatOpened := False;
     176      Fdat_file.Free;
     177    end;
     178    if FRawOpened then
     179    begin
     180      FRawOpened := False;
     181      Fraw_file.Free;
     182    end;
     183    if FSepOpened then
     184    begin
     185      FSepOpened := False;
     186      Fsep_file.Free;
     187    end;
     188  end
     189  else
     190  begin
     191    if not FDatOpened then
     192    begin
     193      Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite);
     194      FDatOpened := True;
     195    end;
     196    if not FRawOpened then
     197    begin
     198      Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'),
     199        fmOpenReadWrite);
     200      FRawOpened := True;
     201    end;
     202    if (not FSepOpened) and (FDataOS <> DOS_WIN) then
     203    begin
     204      Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'),
     205        fmOpenReadWrite);
     206      FSepOpened := True;
     207    end;
     208  end;
     209end;
     210
    163211
    164212
  • oup/current/FileClasses/TXMP.pas

    r207 r209  
    44
    55uses
    6   TypeDefs, _FileTypes, _DataTypes;
     6  _FileTypes;
    77
    88type
     
    1717
    1818uses
    19   ConnectionManager, Math, Classes;
     19  ConnectionManager, Math, Classes, TypeDefs, _DataTypes;
    2020
    21 { TFile_SNDD }
    22 
    23 procedure TFile_TXMP.InitDatLinks;
    24 begin
    25   SetLength(FDatLinks, 2);
    26   FDatLinks[0].SrcOffset := $94;
    27   FDatLinks[0].DestID := -1;
    28   FDatLinks[0].PosDestExts := '*';
    29   FDatLinks[1].SrcOffset := $98;
    30   FDatLinks[1].DestID := -1;
    31   FDatLinks[1].PosDestExts := 'TXMP';
    32 end;
    33 
     21{ TFile_TXMP }
    3422
    3523procedure TFile_TXMP.InitDataFields;
     
    119107
    120108
     109procedure TFile_TXMP.InitDatLinks;
     110begin
     111  SetLength(FDatLinks, 2);
     112  FDatLinks[0].SrcOffset := $94;
     113  FDatLinks[0].DestID := GetDatLinkValue(FFile, $94);
     114  FDatLinks[0].PosDestExts := '*';
     115  FDatLinks[1].SrcOffset := $98;
     116  FDatLinks[1].DestID := GetDatLinkValue(FFile, $98);
     117  FDatLinks[1].PosDestExts := 'TXMP';
     118end;
     119
     120
    121121procedure TFile_TXMP.InitRawList;
    122122var
  • oup/current/FileClasses/_FileTypes.pas

    r207 r209  
    1212      FConnectionID: Integer;
    1313      FFileID: Integer;
     14      FFileName: String;
    1415      FFile: TMemoryStream;
    1516
     
    3435      property FileStream: TMemoryStream read FFile;
    3536      property FileID: Integer read FFileID;
     37      property FileName: String read FFileName;
    3638      property ConnectionID: Integer read FConnectionID;
    3739
     
    5052
    5153
     54function GetDatLinkValue(stream: TStream; offset: Integer): Integer;
     55
     56
     57
    5258implementation
    5359
     
    6369  FConnectionID := ConnectionID;
    6470  FFileID := FileID;
    65   FFile := nil;
     71  FFileName := ConManager.Connection[ConnectionID].GetFileInfo(FileID).Name;
    6672
    6773  FFile := TMemoryStream.Create;
     
    7177  InitDataFields();
    7278  InitRawList();
    73 
    74   if FDataFields.FieldCount > 0 then
    75   begin
    76     for i := 0 to FDataFields.FieldCount - 1 do
    77     begin
    78       ShowMessage(FDataFields.FieldByIndex[i].ValueAsString);
    79     end;
    80   end;
    8179
    8280  FFile.Free;
     
    171169end;
    172170
     171
     172
     173function GetDatLinkValue(stream: TStream; offset: Integer): Integer;
     174begin
     175  stream.Seek(Offset, soFromBeginning);
     176  stream.Read(Result, 4);
     177  if Result > 0 then
     178    Result := Result div 256
     179  else
     180    Result := -1;
     181end;
     182
    173183end.
  • oup/current/Global/RawList.pas

    r178 r209  
    200200  Result[0].SrcOffset := $0C;
    201201  Result[0].RawAddr   := link;
    202   if link > 0 then
    203     Result[0].RawSize := frames * 4
    204   else
    205     Result[0].RawSize := 0;
     202  Result[0].RawSize := frames * 4;
    206203  {y-pos}
    207204  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $10, 4, @link);
    208205  Result[1].SrcOffset := $10;
    209206  Result[1].RawAddr   := link;
    210   if link > 0 then
    211     Result[1].RawSize := frames * 8
    212   else
    213     Result[1].RawSize := 0;
     207  Result[1].RawSize := frames * 8;
    214208  {attacks}
    215209  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $182, 1, @tempb);
     
    240234  Result[6].SrcOffset := $24;
    241235  Result[6].RawAddr   := link;
    242   if link > 0 then
    243     Result[6].RawSize := 24
    244   else
    245     Result[6].RawSize := 0;
     236  Result[6].RawSize := 24;
    246237  {footstep}
    247238  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $186, 1, @tempb);
     
    410401      Break;
    411402    end;
     403  if Length(Result) > 0 then
     404    for i := 0 to High(Result) do
     405      if Result[i].RawAddr = 0 then
     406        Result[i].RawSize := 0;
    412407end;
    413408
  • oup/current/Main.dfm

    r105 r209  
    66  Caption = 'Form_Main'
    77  ClientHeight = 571
    8   ClientWidth = 742
     8  ClientWidth = 842
    99  Color = clBtnFace
    1010  Constraints.MinHeight = 500
     
    2626    Left = 0
    2727    Top = 554
    28     Width = 742
     28    Width = 842
    2929    Height = 17
    3030    BiDiMode = bdLeftToRight
     
    4343      end>
    4444    ParentBiDiMode = False
     45    ExplicitWidth = 742
    4546  end
    4647  object DockTop: TTBDock
    4748    Left = 0
    4849    Top = 0
    49     Width = 742
     50    Width = 842
    5051    Height = 75
     52    ExplicitWidth = 742
    5153    object MainMenu: TTBToolbar
    5254      Left = 0
     
    135137        object menu_meta: TTBItem
    136138          Caption = '&Meta editor'
    137           Enabled = False
    138139          ImageIndex = 11
    139140          ShortCut = 16461
     
    353354  end
    354355  object DockRight: TTBDock
    355     Left = 733
     356    Left = 833
    356357    Top = 75
    357358    Width = 9
    358359    Height = 470
    359360    Position = dpRight
     361    ExplicitLeft = 733
    360362  end
    361363  object DockBottom: TTBDock
    362364    Left = 0
    363365    Top = 545
    364     Width = 742
     366    Width = 842
    365367    Height = 9
    366368    Position = dpBottom
     369    ExplicitWidth = 742
    367370  end
    368371  object opend: TOpenDialog
  • oup/current/Main.pas

    r197 r209  
    136136
    137137uses
    138   LevelDB;
     138  LevelDB, MetaEditor;
    139139
    140140{$R *.dfm}
     
    415415  tb_txmpreplacer.Enabled := active;
    416416  tb_extractor.Enabled := active;
     417  tb_meta.Enabled := active;
    417418//  tb_compare.Enabled := active;
    418419//  tb_structure.Enabled := active;
     
    605606
    606607procedure TForm_Main.menu_metaClick(Sender: TObject);
    607 begin
    608   ShowMessage('TBD');
     608var
     609  toolform:    TForm_Meta;
     610  i:           Integer;
     611  tag:         Integer;
     612  iconindex:   Integer;
     613begin
     614  tag := 1;
     615  if MDIChildCount > 0 then
     616    for i := 0 to MDIChildCount - 1 do
     617      if MDIChildren[i].Tag >= tag then
     618        tag := MDIChildren[i].Tag + 1;
     619
     620  iconindex := -1;
     621
     622  toolform := nil;
     623
     624  toolform         := TForm_Meta.Create(Self);
     625  toolform.Caption := 'MetaEditor' + ' ' + IntToStr(tag) + '       ';
     626  iconindex        := 11;
     627
     628  if Assigned(toolform) then
     629  begin
     630    toolform.Name    := 'meta' + IntToStr(tag);
     631    toolform.Tag     := tag;
     632    MDITab.AddTab(TForm(toolform), iconindex);
     633    toolform.Caption := AnsiReplaceStr(toolform.Caption, '       ', '');
     634  end;
    609635end;
    610636
  • oup/current/OniUnPacker.bdsproj

    r206 r209  
    176176                        <Language Name="ProjectLang">$00000000</Language>
    177177                        <Language Name="RootDir"></Language>
    178                 </Language> 
    179    
    180    
    181    
    182     <Excluded_Packages>
     178                </Language>  <Excluded_Packages>
    183179      <Excluded_Packages Name="d:\programme\borland\bds\3.0\Bin\dbwebxprt.bpl">Borland Web Wizard Package</Excluded_Packages>
    184180    </Excluded_Packages>
  • oup/current/OniUnPacker.dpr

    r206 r209  
    3232  LevelDB in 'Helper\LevelDB.pas' {Form_LevelDB},
    3333  Img_DDSTypes in 'Global\Img_DDSTypes.pas',
    34   TXMP in 'FileClasses\TXMP.pas';
     34  TXMP in 'FileClasses\TXMP.pas',
     35  MetaEditor in 'Tools\MetaEditor.pas' {Form_Meta},
     36  _FileManager in 'FileClasses\_FileManager.pas';
    3537
    3638{$R *.res}
  • oup/current/Tools/Preview.dfm

    r194 r209  
    2727    end
    2828    object img: TImage
    29       Left = 0
    30       Top = 20
    31       Width = 283
    32       Height = 403
     29      AlignWithMargins = True
     30      Left = 3
     31      Top = 23
     32      Width = 277
     33      Height = 397
    3334      Align = alClient
     35      ExplicitLeft = 0
     36      ExplicitTop = 20
    3437      ExplicitWidth = 313
    3538      ExplicitHeight = 453
  • oup/current/Tools/TxmpReplace.dfm

    r196 r209  
    8484      TabOrder = 0
    8585      object image_bmppreview: TImage
    86         Left = 2
    87         Top = 45
    88         Width = 279
    89         Height = 297
     86        AlignWithMargins = True
     87        Left = 5
     88        Top = 48
     89        Width = 273
     90        Height = 291
    9091        Align = alClient
     92        ExplicitLeft = 2
     93        ExplicitTop = 45
    9194        ExplicitWidth = 182
    9295        ExplicitHeight = 302
  • oup/current/Tools/TxmpReplace.pas

    r206 r209  
    234234  Self.OnNewFileSelected := SelectFile;
    235235  opend.Filter := saved.Filter;
    236 
    237   TXMP := TFile_TXMP.Create(ConnectionID, 8552);
    238   TXMP.Free;
    239236end;
    240237
Note: See TracChangeset for help on using the changeset viewer.