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 225 by alloc, Tue Jun 19 19:57:28 2007 UTC vs.
Revision 248 by alloc, Mon Nov 26 11:02:28 2007 UTC

# 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 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)