ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/current/Tools/BinEdit.pas
(Generate patch)

Comparing oup/current/Tools/BinEdit.pas (file contents):
Revision 218 by alloc, Fri Jun 15 22:12:39 2007 UTC vs.
Revision 248 by alloc, Mon Nov 26 11:02:28 2007 UTC

# Line 6 | Line 6 | uses
6    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7    Dialogs, VirtualTrees, Grids, Wrapgrid, MPHexEditor,
8    StdCtrls, Menus, ExtCtrls, Buttons,
9 <  Data, TypeDefs, ConnectionManager, Template,
10 <  _TemplateFileList, VTHeaderPopup;
9 >  Data, TypeDefs, ConnectionManager,
10 >  _TemplateFileList, VTHeaderPopup, ComCtrls;
11  
12   type
13    TForm_BinEdit = class(TForm_TemplateFileList)
# Line 29 | Line 29 | type
29      value_viewer_context_copyashex: TMenuItem;
30      procedure NewFile(fileinfo: TFileInfo);
31  
32    procedure LoadDat(_fileid: Integer);
32      function Save: Boolean;
33      function GetValue(datatype: Word; offset: Integer): String;
34      procedure SetNewValue(datatype: Word; offset: Integer; Value: String);
# Line 70 | Line 69 | type
69   implementation
70   {$R *.dfm}
71   uses ValueEdit, Main, Functions, DatStructureLoader, RawEdit, RawList,
72 <  StrUtils, Clipbrd;
72 >  StrUtils, Clipbrd, _TemplateFile;
73  
74  
75   type
# Line 120 | Line 119 | end;
119  
120  
121   procedure TForm_BinEdit.NewFile(fileinfo: TFileInfo);
123 begin
124  LoadDat(fileinfo.ID);
125 end;
126
127
128
129
130 function AddVSTEntry(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
131  ARecord: TNodeData): PVirtualNode;
132 var
133  Data: PNodeData;
134 begin
135  Result := AVST.AddChild(ANode);
136  Data   := AVST.GetNodeData(Result);
137  AVST.ValidateNode(Result, False);
138  Data^ := ARecord;
139 end;
140
141
142
143
144 procedure TForm_BinEdit.LoadDat(_fileid: Integer);
122   var
123    mem:  TMemoryStream;
124   begin
# Line 156 | Line 133 | begin
133        end;
134      end;
135    end;
136 <  if _fileid >= 0 then
136 >  if fileinfo.ID >= 0 then
137    begin
138 <    fileid := _fileid;
138 >    fileid := fileinfo.ID;
139      ConID := ConnectionID;
140 <    if ConManager.Connection[ConID].ExtractFileIDOfName(filelist.Items.Strings[filelist.ItemIndex]) <> fileid then
141 <      Self.SelectFileID(ConnectionID, fileid);
140 > //    if ConManager.Connection[ConID].ExtractFileIDOfName(filelist.Items.Strings[filelist.ItemIndex]) <> fileid then
141 > //      Self.SelectFileID(ConnectionID, fileid);
142      Self.ClearStructViewer;
166    mem := nil;
167    ConManager.Connection[ConID].LoadDatFile(fileid, TStream(mem));
168    rawlist := ConManager.Connection[ConID].GetRawList(fileid);
169    hex.LoadFromStream(mem);
170    mem.Free;
143      ClearValues;
144 <    WriteStructureInfos;
144 >    mem := nil;
145 >    hex.DataSize := 0;
146 >    if fileinfo.Size > 0 then
147 >    begin
148 >      ConManager.Connection[ConID].LoadDatFile(fileid, TStream(mem));
149 >      rawlist := ConManager.Connection[ConID].GetRawList(fileid);
150 >      hex.LoadFromStream(mem);
151 >      mem.Free;
152 >      WriteStructureInfos;
153 >    end;
154    end
155    else
156    begin
157 <    fileid := _fileid;
157 >    fileid := -1;
158      ConID := -1;
159      Self.ClearStructViewer;
160      ClearValues;
# Line 184 | Line 165 | end;
165  
166  
167  
168 +
169 + function AddVSTEntry(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
170 +  ARecord: TNodeData): PVirtualNode;
171 + var
172 +  Data: PNodeData;
173 + begin
174 +  Result := AVST.AddChild(ANode);
175 +  Data   := AVST.GetNodeData(Result);
176 +  AVST.ValidateNode(Result, False);
177 +  Data^ := ARecord;
178 + end;
179 +
180 +
181 +
182 +
183 +
184   function TForm_BinEdit.GetValue(datatype: Word; offset: Integer): String;
185   var
186    Data: TByteData;

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)